188 lines
11 KiB
C#
188 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Core.FileService;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.OsztalyCsoport.Logic;
|
|
using Kreta.Web.Areas.OsztalyCsoport.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.TabStrip;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.OsztalyCsoport.Controllers
|
|
{
|
|
public class BaseCsoportController : Controller
|
|
{
|
|
protected readonly IFeatureContext FeatureContext;
|
|
protected readonly IFileService FileService;
|
|
|
|
public BaseCsoportController(IFeatureContext featureContext, IFileService fileService)
|
|
{
|
|
FeatureContext = featureContext;
|
|
FileService = fileService;
|
|
}
|
|
|
|
[NonAction]
|
|
public ActionResult OpenCsoportAddPopup(int? id, int? szervezetId, bool isFromSzervezet)
|
|
{
|
|
var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id);
|
|
csmodel.IsFeladatellatasiHelySzures = false;
|
|
csmodel.IsFromSzervezet = isFromSzervezet;
|
|
csmodel.IsKretaIntezmenyiAdminIsFromSzervezet = ClaimManager.HasPackage("Adminisztrator") && isFromSzervezet;
|
|
|
|
PopUpModel pm = new PopUpModel(csmodel, "CsoportAdd_Bevitel");
|
|
pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel");
|
|
pm = pm.AddOkBtn(pm, "CsoportHelper.modifyAddSave");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[NonAction]
|
|
public ActionResult OpenCsoportModifyPopup(int? id, int? szervezetId, bool isFromSzervezet, string controllerName, string apiControllerName)
|
|
{
|
|
bool isAmiAlapkepzesesGimnaziumkentKezelendo = false;
|
|
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
if (!isFromSzervezet && osztalyCsoportHelper.GetOsztalyCsoportFeladatKategoria(id.Value) != (int)OktNevelesiKategoriaEnum.NevelesOktatas)
|
|
{
|
|
var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat);
|
|
if (!(gimnaziumAlapkepzeseskentKezelendo && osztalyCsoportHelper.GetOsztalyCsoportOktatasNevelesiFeladatTipus(id.Value) == (int)OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium))
|
|
{
|
|
return OpenCsoportPropertiesTab(id.Value, isFromSzervezet, controllerName, apiControllerName, true);
|
|
}
|
|
|
|
isAmiAlapkepzesesGimnaziumkentKezelendo = true;
|
|
}
|
|
|
|
AlapkepzesCsoportModel csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id);
|
|
csmodel.IsFromSzervezet = isFromSzervezet;
|
|
|
|
csmodel.TabList = new List<TabStripItemModel>();
|
|
csmodel.TabList.Add(new TabStripItemModel() { ItemId = "1", ItemName = StringResourcesUtil.GetString(3880) /*Csoport alapadatok*/, Model = csmodel, PartialViewName = "CsoportModify_Bevitel", IsActive = true });
|
|
csmodel.TabList.Add(new TabStripItemModel() { ItemId = "2", ItemName = StringResourcesUtil.GetString(3881) /*A csoportba járó tanulók listája*/, Model = csmodel, PartialViewName = "CsoportTanulo_Bevitel" });
|
|
|
|
if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny && !isFromSzervezet)
|
|
{
|
|
csmodel.OsztalyCsoportTanuloinakMunkarendjeModel.OsztalyCsoportId = id.Value;
|
|
csmodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsOsztaly = false;
|
|
OsztalyCsoportLogic.SetCsoportMunkarendVisibility(csmodel, id);
|
|
csmodel.TabList.Add(new TabStripItemModel() { ItemId = "3", ItemName = CommonResource.Munkarend, Model = csmodel, PartialViewName = "Info_CsoportMunkarend_Tab" });
|
|
}
|
|
|
|
csmodel.IsAmiAlapkepzesesGimnaziumkentKezelendo = isAmiAlapkepzesesGimnaziumkentKezelendo;
|
|
|
|
PopUpModel pm = new PopUpModel(csmodel, "CsoportModify_Bevitel_Tab");
|
|
pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel");
|
|
pm = pm.AddOkBtn(pm, "CsoportHelper.modifyAddSave");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[NonAction]
|
|
public ActionResult OpenCsoportPropertiesTab(int csoportID, bool isFromSzervezet, string controllerName, string apiControllerName, bool fromAdd = false)
|
|
{
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
Enum.TryParse(osztalyCsoportHelper.GetOsztalyCsoportFeladatKategoria(csoportID).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
if (kategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
|
|
{
|
|
var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat);
|
|
if (!(gimnaziumAlapkepzeseskentKezelendo && osztalyCsoportHelper.GetOsztalyCsoportOktatasNevelesiFeladatTipus(csoportID) == (int)OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium))
|
|
{
|
|
return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.CsoportAmi, new { csoportID, fromAdd });
|
|
}
|
|
}
|
|
|
|
if (kategoria == OktNevelesiKategoriaEnum.Kollegium)
|
|
{
|
|
return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.KollegiumCsoport, new { csoportID, fromAdd });
|
|
}
|
|
|
|
if (kategoria == OktNevelesiKategoriaEnum.EGYMI)
|
|
{
|
|
return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.EGYMICsoport, new { csoportID, fromAdd });
|
|
}
|
|
|
|
var csmodel = new AlapkepzesCsoportModel() { ID = csoportID };
|
|
|
|
csmodel.ControllerName = controllerName;
|
|
csmodel.ApiControllerName = apiControllerName;
|
|
csmodel.IsFromSzervezet = isFromSzervezet;
|
|
csmodel.IsKretaIntezmenyiAdminIsFromSzervezet = ClaimManager.HasPackage("Adminisztrator") && isFromSzervezet;
|
|
csmodel.TabList = GetTabItems(csmodel);
|
|
|
|
var pm = new PopUpModel(csmodel, "CsoportProperties_Info");
|
|
pm = pm.AddCancelBtn(pm, "CsoportHelper.propertiesCancel");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[NonAction]
|
|
public ActionResult OpenModPopup(List<AlapkepzesCsoportModel> csoportLista, bool isFromSzervezet)
|
|
{
|
|
var model = AlapkepzesOsztalyCsoportLogic.GetModelForCsoportModPopup(csoportLista, isFromSzervezet);
|
|
if (!isFromSzervezet)
|
|
{
|
|
AlapkepzesOsztalyCsoportLogic.ValidateTobbesModFeladatKategoria(model.CsoportIDArrayString);
|
|
}
|
|
model.IsFromSzervezet = isFromSzervezet;
|
|
PopUpModel pm = new PopUpModel(model, "CsoportTobbModify_bevitel");
|
|
pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel");
|
|
pm = pm.AddOkBtn(pm, "CsoportHelper.confirmCsopModWindow");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
[NonAction]
|
|
public ActionResult GetCsoportBaseProperties(int? id, bool isFromSzervezet)
|
|
{
|
|
var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id);
|
|
csmodel.IsFromSzervezet = isFromSzervezet;
|
|
return PartialView("Info_Alapadatok_Tab", csmodel);
|
|
}
|
|
|
|
public List<TabStripItemModel> GetTabItems(AlapkepzesCsoportModel model)
|
|
{
|
|
var csoportController = model.ControllerName;
|
|
|
|
var items = new List<TabStripItemModel>();
|
|
items.Add(new TabStripItemModel { ItemId = "1", ItemName = StringResourcesUtil.GetString(161), Area = "OsztalyCsoport", Controller = csoportController, Action = "GetCsoportBaseProperties", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } } });
|
|
items.Add(new TabStripItemModel { ItemId = "2", ItemName = OsztalyCsoportResource.Tanulok, /*Tanulók*/ Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanuloi", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } } });
|
|
items.Add(new TabStripItemModel { ItemId = "3", ItemName = StringResourcesUtil.GetString(164)/*Foglalkozások*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportFoglalkozasai", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } } });
|
|
|
|
if (!ClaimData.IsSzirIntezmeny)
|
|
{
|
|
items.Add(new TabStripItemModel { ItemId = "4", ItemName = OsztalyCsoportResource.OrarendiOrak, Area = "OsztalyCsoport", Controller = csoportController, Action = "GetCsoportOrarendiOrai", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() }, { "apiControllerName", model.ApiControllerName } }, IsETTFDisabled = true });
|
|
items.Add(new TabStripItemModel { ItemId = "5", ItemName = OsztalyCsoportResource.Tanmenetek, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanmenetei", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true });
|
|
items.Add(new TabStripItemModel { ItemId = "6", ItemName = StringResourcesUtil.GetString(167)/*Megtartott tanórák*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportMegtartottTanorai", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true });
|
|
items.Add(new TabStripItemModel { ItemId = "7", ItemName = StringResourcesUtil.GetString(1701)/*Értékelések*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportErtekelesei", RouteParameters = new Dictionary<string, string>() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true });
|
|
}
|
|
|
|
if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny && !model.IsFromSzervezet)
|
|
{
|
|
items.Add(new TabStripItemModel { ItemId = "8", ItemName = CommonResource.Munkarend, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanuloinakMunkarendje", RouteParameters = new Dictionary<string, string>() { { "id", model.ID.ToString() } } });
|
|
}
|
|
|
|
return items;
|
|
}
|
|
|
|
[NonAction]
|
|
public ActionResult GetCsoportOrarendiOrai(int id, string apiControllerName, bool isFromSzervezet)
|
|
{
|
|
var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id);
|
|
csmodel.ApiControllerName = apiControllerName;
|
|
csmodel.IsFromSzervezet = isFromSzervezet;
|
|
return PartialView("Info_CsoportOrarendiOrai_Tab", csmodel);
|
|
}
|
|
|
|
}
|
|
}
|