diff --git a/application/controllers/api/frontend/v1/Stundenplan.php b/application/controllers/api/frontend/v1/Stundenplan.php
index 019a8ab4a..d746990be 100644
--- a/application/controllers/api/frontend/v1/Stundenplan.php
+++ b/application/controllers/api/frontend/v1/Stundenplan.php
@@ -143,8 +143,8 @@ class Stundenplan extends FHCAPI_Controller
$result = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($result);
- // loop over the days
- $day_events = $this->filterEventsIntoAssociativeDateArray($result, $start_date, $end_date);
+ // imperative approach
+ /* $day_events = $this->filterEventsIntoAssociativeDateArray($result, $start_date, $end_date);
$final_reservierungen = array();
foreach($day_events as $date => $day_eventArray){
@@ -203,7 +203,7 @@ class Stundenplan extends FHCAPI_Controller
}
}
- $this->terminateWithSuccess($final_reservierungen);
+ $this->terminateWithSuccess($final_reservierungen); */
}
private function filterEventsIntoAssociativeDateArray($events, $start_date, $end_date){
diff --git a/application/models/ressource/Reservierung_model.php b/application/models/ressource/Reservierung_model.php
index c06fce206..b4fedba5e 100755
--- a/application/models/ressource/Reservierung_model.php
+++ b/application/models/ressource/Reservierung_model.php
@@ -22,21 +22,26 @@ class Reservierung_model extends DB_Model
{
$raum_reservierungen= $this->execReadOnlyQuery("
- SELECT ort_kurzbz, studiengang_kz, array_agg(uid) as lektor, stunde, datum, titel, beschreibung, gruppe, gruppe_kurzbz, stg_kurzbz, stg
+ SELECT
+
+ array_agg(DISTINCT uid) as lektor,
+ array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz,gruppen_kuerzel)) as gruppe,
+ COALESCE(titel, beschreibung) as topic,
+ ort_kurzbz, studiengang_kz, reservierungen.stunde, datum, beginn, ende
+
FROM
(
- SELECT res.* ,
+ SELECT res.*, beginn, ende,
CASE
- WHEN res.verband IS NOT NULL OR res.semester IS NOT NULL THEN
- CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz),'-',res.verband,res.semester)
- ELSE
- CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz))
- END AS stg
+ WHEN res.gruppe_kurzbz IS NOT NULL THEN res.gruppe_kurzbz
+ ELSE CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz),'-',COALESCE(CAST(res.semester AS varchar),'/'),COALESCE(CAST(res.verband AS varchar),'/'))
+ END as gruppen_kuerzel
FROM lehre.vw_reservierung res
JOIN public.tbl_studiengang studg ON studg.studiengang_kz=res.studiengang_kz
+ JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde = res.stunde
WHERE res.ort_kurzbz = ? AND datum >= ? AND datum <= ?
) AS reservierungen
- GROUP BY ort_kurzbz, studiengang_kz, stunde, datum, titel, beschreibung, gruppe, stg, gruppe_kurzbz, stg_kurzbz
+ GROUP BY ort_kurzbz, studiengang_kz, reservierungen.stunde, datum, titel, beschreibung, beginn, ende
", [$ort_kurzbz, $start_date, $end_date]);
if(isError($raum_reservierungen)){
@@ -46,19 +51,48 @@ class Reservierung_model extends DB_Model
$raum_reservierungen = getData($raum_reservierungen) ?? [];
$this->load->model("ressrouce/Mitarbeiter_model","MitarbeiterModel");
+
foreach($raum_reservierungen as $reservierung){
- $lektoren_array = array();
- foreach($reservierung->lektor as $lektor){
+
+ $lektor_obj_array = array();
+ $gruppe_obj_array = array();
+
+ // load lektor object
+ foreach ($reservierung->lektor as $lektor) {
$this->MitarbeiterModel->addLimit(1);
- $lektor_obj= $this->MitarbeiterModel->load($lektor);
- if(isError($lektor_obj)){
- show_error(getError($lektor_obj));
+ $lektor_object = $this->execReadOnlyQuery("
+ SELECT mitarbeiter_uid, vorname, nachname, kurzbz
+ FROM public.tbl_mitarbeiter
+ JOIN public.tbl_benutzer benutzer ON benutzer.uid = mitarbeiter_uid
+ JOIN public.tbl_person person ON person.person_id = benutzer.person_id
+ WHERE mitarbeiter_uid = ?", [$lektor]);
+ if (isError($lektor_object)) {
+ $this->show_error(getError($lektor_object));
}
- $lektor_obj = current(getData($lektor_obj));
- $lektoren_array[] = $lektor_obj;
+ $lektor_object = current(getData($lektor_object));
+ // only provide needed information of the mitarbeiter object
+ $lektor_obj_array[] = $lektor_object;
}
- $reservierung->lektor = $lektoren_array;
+ // load gruppe object
+ foreach ($reservierung->gruppe as $lv_gruppe) {
+ $lv_gruppe = strtr($lv_gruppe, ['(' => '', ')' => '', '"' => '']);
+ $lv_gruppe_array = explode(",", $lv_gruppe);
+ list($gruppe, $verband, $semester, $studiengang_kz, $gruppen_kuerzel) = $lv_gruppe_array;
+
+ $lv_gruppe_object = new stdClass();
+ $lv_gruppe_object->gruppe = $gruppe;
+ $lv_gruppe_object->verband = $verband;
+ $lv_gruppe_object->semester = $semester;
+ $lv_gruppe_object->studiengang_kz = $studiengang_kz;
+ $lv_gruppe_object->kuerzel = $gruppen_kuerzel;
+
+ $gruppe_obj_array[] = $lv_gruppe_object;
+ }
+
+
+ $reservierung->gruppe = $gruppe_obj_array;
+ $reservierung->lektor = $lektor_obj_array;
}
return success($raum_reservierungen);
diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php
index 6b1ed4ef0..482e1a30a 100755
--- a/application/models/ressource/Stundenplan_model.php
+++ b/application/models/ressource/Stundenplan_model.php
@@ -145,12 +145,11 @@ class Stundenplan_model extends DB_Model
$gruppierteEvents = $this->execReadOnlyQuery("
SELECT
- unr,datum, sp.stunde,
CONCAT(lehrfach,'-',lehrform) as topic,
array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz,gruppen_kuerzel)) as gruppe,
array_agg(DISTINCT lektor) as lektor,
- ort_kurzbz, titel, lehrfach, lehrform, lehrfach_bez, beginn, ende
+ unr,datum, sp.stunde, ort_kurzbz, titel, lehrfach, lehrform, lehrfach_bez, beginn, ende
FROM
(
diff --git a/public/js/components/Cis/Mylv/RoomInformation.js b/public/js/components/Cis/Mylv/RoomInformation.js
index 877869fa3..4be66938b 100644
--- a/public/js/components/Cis/Mylv/RoomInformation.js
+++ b/public/js/components/Cis/Mylv/RoomInformation.js
@@ -100,6 +100,9 @@ export default{
el.start = new Date(el.datum + ' ' + this.stunden[el.stunde].beginn);
el.end = new Date(el.datum + ' ' + this.stunden[el.stunde].ende);
+ if(el.titel){
+
+ }
el.title = el.lehrfach;
if (el.lehrform)
el.title += '-' + el.lehrform;
@@ -130,7 +133,7 @@ export default{
{{event.orig.topic}}
- {{gruppe_kurzbz}}
+ {{gruppe.kuerzel}}
{{lektor.kurzbz}}