diff --git a/application/controllers/components/Cis/Stundenplan.php b/application/controllers/components/Cis/Stundenplan.php index 8755212af..b33a0ddee 100755 --- a/application/controllers/components/Cis/Stundenplan.php +++ b/application/controllers/components/Cis/Stundenplan.php @@ -47,32 +47,36 @@ class Stundenplan extends Auth_Controller foreach($res as $item){ $lektor_obj_array = array(); $gruppe_obj_array = array(); + // load lektor object foreach($item->lektor as $lv_lektor){ + $this->MitarbeiterModel->addLimit(1); $lektor_obj = $this->MitarbeiterModel->loadWhere(["kurzbz"=>$lv_lektor]); if (isError($lektor_obj)) { $this->outputJsonError(getError($lektor_obj)); } - $lektor_obj = getData($lektor_obj); + $lektor_obj = current(getData($lektor_obj)); $lektor_obj_array[] = $lektor_obj; } + // load gruppe object foreach ($item->gruppe as $lv_gruppe) { - $lv_gruppe = str_replace("(","",$lv_gruppe); - $lv_gruppe = str_replace(")", "", $lv_gruppe); + $lv_gruppe = strtr($lv_gruppe,['('=>'',')'=>'','"'=>'']); $lv_gruppe_array = explode(",",$lv_gruppe); - $gruppe = str_replace("\"","",$lv_gruppe_array[0]); - $verband = $lv_gruppe_array[1]; - $semester = $lv_gruppe_array[2]; - $studiengang_kz = $lv_gruppe_array[3]; + list($gruppe,$verband, $semester,$studiengang_kz) = $lv_gruppe_array; + $this->LehrverbandModel->addLimit(1); $lehrverband_obj = $this->LehrverbandModel->loadWhere(["gruppe" => $gruppe, "verband" => $verband, "semester" => $semester, "studiengang_kz" => $studiengang_kz]); if (isError($lehrverband_obj)) { $this->outputJsonError(getError($lehrverband_obj)); } - $lehrverband_obj = getData($lehrverband_obj); + $lehrverband_obj = current(getData($lehrverband_obj)); $gruppe_obj_array[] = $lehrverband_obj; } - //replace the array of lektor strings with the objects of lektor information + // studiengangs object + $this->load->model('organisation/Studiengang_model','StudiengangModel'); + $this->StudiengangModel->addLimit(1); + $studiengang_object = $this->StudiengangModel->load($item->studiengang_kz); + $studiengang_object = current(getData($studiengang_object)); + $item->studiengang = $studiengang_object; $item->lektor = $lektor_obj_array; - //replace the array of gruppen string with the lehrverband object information $item->gruppe = $gruppe_obj_array; } diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php index 11299fe3c..9f699c6cb 100755 --- a/application/models/ressource/Stundenplan_model.php +++ b/application/models/ressource/Stundenplan_model.php @@ -142,23 +142,16 @@ class Stundenplan_model extends DB_Model */ public function stundenplanGruppierung($stundenplanViewQuery) { - - /* CASE - WHEN gruppe_kurzbz IS NOT NULL THEN gruppe_kurzbz - ELSE CONCAT(UPPER(sp.stg_typ),UPPER(sp.stg_kurzbz),'-',COALESCE(CAST(sp.semester AS varchar),'/'),COALESCE(CAST(sp.verband AS varchar),'/')) - END as gruppe, */ $gruppierteEvents = $this->execReadOnlyQuery(" SELECT - 'stundenplan' as type, unr,datum, stunde, CONCAT(lehrfach,'-',lehrform) as topic, - '' as beschreibung, + array_agg(DISTINCT gruppen_kurzbz) as gruppen_kurzbz, array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz)) as gruppe, - array_agg(DISTINCT gruppe_bezeichnung) as gruppe_bezeichnung, - array_agg(DISTINCT lektor) as lektor, + array_agg(DISTINCT lektor) as lektor, - ort_kurzbz, studiengang_kz, titel, lehrform, lehrfach, semester, verband + ort_kurzbz, studiengang_kz, titel, lehrfach, lehrform, lehrfach_bez FROM ( @@ -172,8 +165,8 @@ class Stundenplan_model extends DB_Model CASE WHEN gruppe_kurzbz IS NOT NULL THEN gruppe_kurzbz ELSE CONCAT(UPPER(sp.stg_typ),UPPER(sp.stg_kurzbz),'-',COALESCE(CAST(sp.semester AS varchar),'/'),COALESCE(CAST(sp.verband AS varchar),'/')) - END as gruppe_bezeichnung, - ort_kurzbz, studiengang_kz, titel,'' as beschreibung,lehreinheit_id,lehrfach_id,anmerkung,fix,lehrveranstaltung_id,stg_kurzbzlang,stg_bezeichnung,stg_typ,fachbereich_kurzbz,lehrfach,lehrfach_bez,farbe,lehrform,anmerkung_lehreinheit,gruppe, verband, semester + END as gruppen_kurzbz, + ort_kurzbz, studiengang_kz, titel,lehreinheit_id,lehrfach_id,anmerkung,fix,lehrveranstaltung_id,stg_kurzbzlang,stg_bezeichnung,stg_typ,fachbereich_kurzbz,lehrfach,lehrfach_bez,farbe,lehrform,anmerkung_lehreinheit,gruppe, verband, semester,stg_kurzbz FROM (".$stundenplanViewQuery.") sp @@ -181,7 +174,7 @@ class Stundenplan_model extends DB_Model GROUP BY - unr, datum, stunde, lehrfach, lehrform, ort_kurzbz, titel, studiengang_kz, lehrform, lehrfach, semester, verband + unr, datum, stunde, ort_kurzbz, titel, studiengang_kz, lehrform, lehrfach, lehrfach_bez ORDER BY datum, stunde "); diff --git a/public/js/apps/Cis/Stundenplan.js b/public/js/apps/Cis/Stundenplan.js index 70d3f6361..773495c27 100755 --- a/public/js/apps/Cis/Stundenplan.js +++ b/public/js/apps/Cis/Stundenplan.js @@ -54,10 +54,9 @@ const app = Vue.createApp({
- {{event.orig.title}} + {{lektor.kurzbz}} {{event.orig.ort_kurzbz}} - {{event.orig.lektor}}
` diff --git a/public/js/components/Calendar/CalendarModal.js b/public/js/components/Calendar/CalendarModal.js index 7ca6e7930..40fb3a7b3 100644 --- a/public/js/components/Calendar/CalendarModal.js +++ b/public/js/components/Calendar/CalendarModal.js @@ -55,7 +55,8 @@ export default { template: /*html*/ `