mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 09:52:22 +00:00
Added additional filters to 'classScheduleOverview' component
This commit is contained in:
@@ -61,6 +61,13 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
public function getAllClassTimeValidityPeriods()
|
||||
{
|
||||
$entitledOrganizationalUnitsShortCodes = $this->permissionlib->getOE_isEntitledFor('lehre/unterrichtszeiten_gk');
|
||||
|
||||
$organizationalUnitShortCode = $this->input->get('organizationalUnitShortCode');
|
||||
$validityPeriodFrom = $this->input->get('validityPeriodFrom');
|
||||
$validityPeriodTo = $this->input->get('validityPeriodTo');
|
||||
|
||||
$this->ClassTimeSlotValidityPeriodModel->db->where_in('lehre.tbl_unterrichtszeiten_gueltigkeit.oe_kurzbz', $entitledOrganizationalUnitsShortCodes);
|
||||
$this->ClassTimeSlotValidityPeriodModel->addSelect(
|
||||
'lehre.tbl_unterrichtszeiten_gueltigkeit.*,' .
|
||||
'public.tbl_organisationseinheit.bezeichnung as organisationseinheit_bezeichnung,' .
|
||||
@@ -72,6 +79,20 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
$this->ClassTimeSlotValidityPeriodModel->addJoin('public.tbl_organisationseinheit', 'public.tbl_organisationseinheit.oe_kurzbz=lehre.tbl_unterrichtszeiten_gueltigkeit.oe_kurzbz', 'LEFT');
|
||||
$this->ClassTimeSlotValidityPeriodModel->addJoin('lehre.tbl_unterrichtszeiten_typ', 'lehre.tbl_unterrichtszeiten_typ.unterrichtszeitentyp_kurzbz=lehre.tbl_unterrichtszeiten_gueltigkeit.unterrichtszeitentyp_kurzbz', 'LEFT');
|
||||
$this->ClassTimeSlotValidityPeriodModel->addOrder('gueltig_von', 'DESC');
|
||||
|
||||
if ($organizationalUnitShortCode) {
|
||||
$this->ClassTimeSlotValidityPeriodModel->db->where('lehre.tbl_unterrichtszeiten_gueltigkeit.oe_kurzbz', $organizationalUnitShortCode);
|
||||
}
|
||||
|
||||
if ($validityPeriodFrom) {
|
||||
$this->ClassTimeSlotValidityPeriodModel->db
|
||||
->where('lehre.tbl_unterrichtszeiten_gueltigkeit.gueltig_von >=', date('Y-m-d', strtotime($validityPeriodFrom)));
|
||||
}
|
||||
if ($validityPeriodTo) {
|
||||
$this->ClassTimeSlotValidityPeriodModel->db
|
||||
->where('lehre.tbl_unterrichtszeiten_gueltigkeit.gueltig_bis <=', date('Y-m-d', strtotime($validityPeriodTo)));
|
||||
}
|
||||
|
||||
$class_time_slot_validity_period_res = $this->ClassTimeSlotValidityPeriodModel->load();
|
||||
$class_time_slot_validity_period_res = $this->getDataOrTerminateWithError($class_time_slot_validity_period_res);
|
||||
$this->terminateWithSuccess($class_time_slot_validity_period_res);
|
||||
@@ -79,6 +100,10 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
public function getAllClassTimeValidityPeriodsPerOrganizationalUnit($organizationUnitId)
|
||||
{
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($organizationUnitId, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->ClassTimeSlotValidityPeriodModel->addSelect(
|
||||
'lehre.tbl_unterrichtszeiten_gueltigkeit.*,' .
|
||||
'public.tbl_organisationseinheit.bezeichnung as organisationseinheit_bezeichnung,' .
|
||||
@@ -97,11 +122,24 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
public function getClassTimeValidityPeriod($classTimeSlotValidityPeriodId)
|
||||
{
|
||||
$this->ClassTimeSlotValidityPeriodModel->addSelect('lehre.tbl_unterrichtszeiten_gueltigkeit.*, public.tbl_organisationseinheit.oe_kurzbz as oe_kurzbz, lehre.tbl_studienplan.studienplan_id, lehre.tbl_studienplan.bezeichnung as studienplan_bezeichnung');
|
||||
$this->ClassTimeSlotValidityPeriodModel->addSelect('
|
||||
lehre.tbl_unterrichtszeiten_gueltigkeit.*,
|
||||
public.tbl_organisationseinheit.oe_kurzbz as oe_kurzbz,
|
||||
public.tbl_organisationseinheit.bezeichnung as oe_bezeichnung,
|
||||
public.tbl_organisationseinheit.organisationseinheittyp_kurzbz as oe_organisationseinheittyp_kurzbz,
|
||||
lehre.tbl_studienplan.studienplan_id,
|
||||
lehre.tbl_studienplan.bezeichnung as studienplan_bezeichnung,
|
||||
');
|
||||
$this->ClassTimeSlotValidityPeriodModel->addJoin('public.tbl_organisationseinheit', 'public.tbl_organisationseinheit.oe_kurzbz=lehre.tbl_unterrichtszeiten_gueltigkeit.oe_kurzbz', 'LEFT');
|
||||
$this->ClassTimeSlotValidityPeriodModel->addJoin('lehre.tbl_studienplan', 'lehre.tbl_studienplan.studienplan_id=lehre.tbl_unterrichtszeiten_gueltigkeit.studienplan_id', 'LEFT');
|
||||
$class_time_slot_validity_period_res = $this->ClassTimeSlotValidityPeriodModel->load($classTimeSlotValidityPeriodId);
|
||||
|
||||
$class_time_slot_validity_period_res = $this->getDataOrTerminateWithError($class_time_slot_validity_period_res);
|
||||
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($class_time_slot_validity_period_res[0]->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess($class_time_slot_validity_period_res);
|
||||
}
|
||||
|
||||
@@ -126,6 +164,10 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
if($this->form_validation->run() == FALSE) $this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($this->input->post('organizationalUnitShortCode'), 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->ClassTimeSlotValidityPeriodModel->insert([
|
||||
@@ -170,6 +212,10 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
if($this->form_validation->run() == FALSE) $this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($this->input->post('organizationalUnitShortCode'), 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->ClassTimeSlotValidityPeriodModel->update($classTimeSlotValidityPeriodId, [
|
||||
@@ -193,6 +239,12 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
public function deleteClassTimeSlotValidityPeriod($classTimeSlotValidityPeriodId)
|
||||
{
|
||||
$validityPeriodResult = $this->ClassTimeSlotValidityPeriodModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$validityPeriodResult = $this->getDataOrTerminateWithError($validityPeriodResult)[0];
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($validityPeriodResult->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->ClassTimeSlotModel->delete(['unterrichtszeitengueltigkeit_id'=> $classTimeSlotValidityPeriodId]);
|
||||
@@ -212,6 +264,12 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
public function getClassTimeSlotsForValidityPeriod($classTimeSlotValidityPeriodId)
|
||||
{
|
||||
$validityPeriodResult = $this->ClassTimeSlotValidityPeriodModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$validityPeriodResult = $this->getDataOrTerminateWithError($validityPeriodResult)[0];
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($validityPeriodResult->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->ClassTimeSlotModel->addOrder('insertamum', 'DESC');
|
||||
$class_time_slots_res = $this->ClassTimeSlotModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$class_time_slots_res = $this->getDataOrTerminateWithError($class_time_slots_res);
|
||||
@@ -223,6 +281,12 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
$this->form_validation->set_rules('unterrichtszeiten', 'Class Time Slots', 'callback_validate_items_in_class_time_slots');
|
||||
if($this->form_validation->run() == FALSE) $this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
|
||||
$validityPeriodResult = $this->ClassTimeSlotValidityPeriodModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$validityPeriodResult = $this->getDataOrTerminateWithError($validityPeriodResult)[0];
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($validityPeriodResult->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$timeSlotGroupIdentifier = uniqid();
|
||||
@@ -253,6 +317,12 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
$this->form_validation->set_rules('unterrichtszeiten', 'Class Time Slots', 'callback_validate_items_in_class_time_slots');
|
||||
if($this->form_validation->run() == FALSE) $this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
|
||||
$validityPeriodResult = $this->ClassTimeSlotValidityPeriodModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$validityPeriodResult = $this->getDataOrTerminateWithError($validityPeriodResult)[0];
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($validityPeriodResult->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$timeSlotGroupIdentifier = uniqid();
|
||||
@@ -286,6 +356,12 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
}
|
||||
public function deleteClassTimeSlotsForValidityPeriodPerGroup($classTimeSlotValidityPeriodId, $groupIdentifikator)
|
||||
{
|
||||
$validityPeriodResult = $this->ClassTimeSlotValidityPeriodModel->loadWhere(['unterrichtszeitengueltigkeit_id' => $classTimeSlotValidityPeriodId]);
|
||||
$validityPeriodResult = $this->getDataOrTerminateWithError($validityPeriodResult)[0];
|
||||
if (!$this->isUserEntitledForOrganizationalUnit($validityPeriodResult->oe_kurzbz, 'lehre/unterrichtszeiten_gk')) {
|
||||
$this->terminateWithError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->ClassTimeSlotModel->delete(['unterrichtszeitengueltigkeit_id'=> $classTimeSlotValidityPeriodId, 'unterrichtszeit_gruppe_identifikator' => $groupIdentifikator]);
|
||||
@@ -542,5 +618,11 @@ class ClassScheduleApi extends FHCAPI_Controller
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function isUserEntitledForOrganizationalUnit($organizationalUnitShortCode, $requiredPermission)
|
||||
{
|
||||
$entitledOrganizationalUnitsShortCodes = $this->permissionlib->getOE_isEntitledFor($requiredPermission);
|
||||
return in_array($organizationalUnitShortCode, $entitledOrganizationalUnitsShortCodes);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ class OrganizationalUnitApi extends FHCAPI_Controller
|
||||
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$this->load->model('education/ClassTimeSlotValidityPeriod_model', "ClassTimeSlotValidityPeriodModel");
|
||||
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
|
||||
|
||||
// Loads phrases system
|
||||
$this->loadPhrases([
|
||||
@@ -44,8 +44,11 @@ class OrganizationalUnitApi extends FHCAPI_Controller
|
||||
|
||||
public function getAllOrganizationalUnits()
|
||||
{
|
||||
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
|
||||
$entitledOrganizationalUnitsShortCodes = $this->permissionlib->getOE_isEntitledFor('basis/organisationseinheit');
|
||||
|
||||
$this->OrganisationseinheitModel->db->where_in('oe_kurzbz', $entitledOrganizationalUnitsShortCodes);
|
||||
$result = $this->OrganisationseinheitModel->load();
|
||||
|
||||
$organization_units_result = $this->getDataOrTerminateWithError($result);
|
||||
|
||||
$this->terminateWithSuccess($organization_units_result);
|
||||
|
||||
@@ -22,7 +22,8 @@ class Studienplan extends FHCAPI_Controller
|
||||
parent::__construct([
|
||||
'getAllStudyPlans' => self::PERM_LOGGED,
|
||||
'getStudyPlansByOrganizationalUnitAndSemesterDates' => self::PERM_LOGGED,
|
||||
'getBySemester' => self::PERM_LOGGED
|
||||
'getBySemester' => self::PERM_LOGGED,
|
||||
'getStudyPlan' => self::PERM_LOGGED,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -96,4 +97,15 @@ class Studienplan extends FHCAPI_Controller
|
||||
|
||||
$this->terminateWithSuccess(hasData($result) ? getData($result) : []);
|
||||
}
|
||||
|
||||
public function getStudyPlan($id)
|
||||
{
|
||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
|
||||
$result = $this->StudienplanModel->loadWhere(['studienplan_id' => $id]);
|
||||
if (isError($result)) $this->terminateWithError(getError($result), self::ERROR_TYPE_DB);
|
||||
if (!hasData($result)) return $this->terminateWithSuccess(null);
|
||||
|
||||
$this->terminateWithSuccess(getData($result)[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user