From f19c1b4eafb8e975bde42cd7f278226c113c3bc8 Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Mon, 2 Sep 2024 14:47:40 +0200 Subject: [PATCH] adds the lector and the gruppe as objects to the endpoint result instead of just strings --- .../components/Cis/Stundenplan.php | 44 ++++++++++++++++++- .../models/ressource/Stundenplan_model.php | 26 ++++++----- public/js/apps/Cis/Stundenplan.js | 3 +- public/js/components/Calendar/Calendar.js | 1 - 4 files changed, 60 insertions(+), 14 deletions(-) diff --git a/application/controllers/components/Cis/Stundenplan.php b/application/controllers/components/Cis/Stundenplan.php index 31ed34dbd..8755212af 100755 --- a/application/controllers/components/Cis/Stundenplan.php +++ b/application/controllers/components/Cis/Stundenplan.php @@ -35,8 +35,48 @@ class Stundenplan extends Auth_Controller if (isError($result)) return $this->outputJsonError(getError($result)); */ - $res = $this->StundenplanModel->stundenPlanGruppierung($this->StundenplanModel->getStudenPlanQuery(get_uid())); - $res = getData($res); + + + $res = $this->StundenplanModel->stundenplanGruppierung($this->StundenplanModel->getStudenPlanQuery(get_uid())); + + $res = getData($res); + + // get the benutzer object for the lektor of the lv + $this->load->model('ressource/Mitarbeiter_model','MitarbeiterModel'); + $this->load->model('organisation/Lehrverband_model', 'LehrverbandModel'); + foreach($res as $item){ + $lektor_obj_array = array(); + $gruppe_obj_array = array(); + foreach($item->lektor as $lv_lektor){ + $lektor_obj = $this->MitarbeiterModel->loadWhere(["kurzbz"=>$lv_lektor]); + if (isError($lektor_obj)) { + $this->outputJsonError(getError($lektor_obj)); + } + $lektor_obj = getData($lektor_obj); + $lektor_obj_array[] = $lektor_obj; + } + foreach ($item->gruppe as $lv_gruppe) { + $lv_gruppe = str_replace("(","",$lv_gruppe); + $lv_gruppe = str_replace(")", "", $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]; + $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); + $gruppe_obj_array[] = $lehrverband_obj; + } + //replace the array of lektor strings with the objects of lektor information + $item->lektor = $lektor_obj_array; + //replace the array of gruppen string with the lehrverband object information + $item->gruppe = $gruppe_obj_array; + + } + $this->outputJsonSuccess($res); } diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php index 5936106f2..11299fe3c 100755 --- a/application/models/ressource/Stundenplan_model.php +++ b/application/models/ressource/Stundenplan_model.php @@ -142,8 +142,11 @@ 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 @@ -151,23 +154,26 @@ class Stundenplan_model extends DB_Model unr,datum, stunde, CONCAT(lehrfach,'-',lehrform) as topic, '' as beschreibung, - string_agg(DISTINCT gruppe, '/') as gruppe, - string_agg(DISTINCT lektor, '/') as lektor, - 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 + array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz)) as gruppe, + array_agg(DISTINCT gruppe_bezeichnung) as gruppe_bezeichnung, + array_agg(DISTINCT lektor) as lektor, + + ort_kurzbz, studiengang_kz, titel, lehrform, lehrfach, semester, verband FROM ( SELECT unr,datum, stunde, - 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, + CASE WHEN sp.mitarbeiter_kurzbz IS NOT NULL THEN sp.mitarbeiter_kurzbz ELSE lektor END as lektor, - 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 + 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 FROM (".$stundenplanViewQuery.") sp @@ -175,7 +181,7 @@ class Stundenplan_model extends DB_Model GROUP BY - ort_kurzbz,unr, datum, stunde, lehreinheit_id, lehrfach_id,studiengang_kz,titel,anmerkung,fix,lehrveranstaltung_id,stg_kurzbzlang,stg_bezeichnung,stg_typ,fachbereich_kurzbz,lehrfach,lehrfach_bez,farbe,lehrform,anmerkung_lehreinheit + unr, datum, stunde, lehrfach, lehrform, ort_kurzbz, titel, studiengang_kz, lehrform, lehrfach, semester, verband ORDER BY datum, stunde "); diff --git a/public/js/apps/Cis/Stundenplan.js b/public/js/apps/Cis/Stundenplan.js index 47d945c29..70d3f6361 100755 --- a/public/js/apps/Cis/Stundenplan.js +++ b/public/js/apps/Cis/Stundenplan.js @@ -54,9 +54,10 @@ const app = Vue.createApp({
+ {{event.orig.title}} {{event.orig.ort_kurzbz}} - {{event.orig.mitarbeiter_kurzbz}} + {{event.orig.lektor}}
` diff --git a/public/js/components/Calendar/Calendar.js b/public/js/components/Calendar/Calendar.js index 4fb4c821e..00f450d15 100755 --- a/public/js/components/Calendar/Calendar.js +++ b/public/js/components/Calendar/Calendar.js @@ -113,7 +113,6 @@ export default { this.$refs.calendarModal.show(); }) - console.log(day,"this is the day") this.$emit(day[0], day[1]); } },