From 57c48f2c4ad610d2270bf3c02330a77ccf324557 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Wed, 26 Aug 2026 13:15:16 +0200 Subject: [PATCH 1/8] cis4 studium page dont filter away lehrveranstaltungen without a module and give them their own box in the ui; --- application/controllers/api/frontend/v1/Studium.php | 12 ++++++++++-- public/js/components/Cis/Studium/Studium.js | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/frontend/v1/Studium.php b/application/controllers/api/frontend/v1/Studium.php index f53a4105c..4794bedd3 100644 --- a/application/controllers/api/frontend/v1/Studium.php +++ b/application/controllers/api/frontend/v1/Studium.php @@ -167,7 +167,9 @@ class Studium extends FHCAPI_Controller if($aktuelles_studienplan){ $lehrveranstaltungen = $this->computeStudienplanLehrveranstaltungen($aktuelles_studienplan->studienplan_id, $aktuelles_semester); foreach($lehrveranstaltungen as $lehrv){ - foreach($lehrv->lehrveranstaltungen as $lv){ + // a lehrveranstaltung without a modul has no children and gets its lektoren directly + $lvs = isset($lehrv->lehrveranstaltungen) ? $lehrv->lehrveranstaltungen : [$lehrv]; + foreach($lvs as $lv){ $lvLektoren =$this->computeLektorenFromLehrveranstaltung($lv->lehrveranstaltung_id,$aktuelles_semester, $aktuelles_studiengang->studiengang_kz, $aktuelles_studiensemester->studiensemester_kurzbz); $lv->lektoren = $lvLektoren; } @@ -286,6 +288,7 @@ SELECT tbl_lehrveranstaltung.*, $lehrveranstaltungen = $this->LehrveranstaltungModel->execReadOnlyQuery($query,[$studienplan_id, $semester]); $lehrveranstaltungen = $this->getDataOrTerminateWithError($lehrveranstaltungen); + usort($lehrveranstaltungen, function($a, $b){ if($a->lehrtyp_kurzbz == "modul"){ return -1; @@ -302,12 +305,17 @@ SELECT tbl_lehrveranstaltung.*, } else{ $parent =array_filter($carry, function($item)use($lehrv){ - return $item->studienplan_lehrveranstaltung_id == $lehrv->studienplan_lehrveranstaltung_id_parent; + return isset($item->lehrveranstaltungen) + && $item->studienplan_lehrveranstaltung_id == $lehrv->studienplan_lehrveranstaltung_id_parent; }); $parent = current($parent); if($parent){ $parent->lehrveranstaltungen[] = $lehrv; } + else{ + // lehrveranstaltung without a modul: keep it on the top level + array_push($carry, $lehrv); + } } return $carry; }, []); diff --git a/public/js/components/Cis/Studium/Studium.js b/public/js/components/Cis/Studium/Studium.js index 721fec8ad..77459c913 100644 --- a/public/js/components/Cis/Studium/Studium.js +++ b/public/js/components/Cis/Studium/Studium.js @@ -206,6 +206,8 @@ export default { }); this.lehrveranstaltungen.forEach((lehrveranstaltung)=>{ + // a lehrveranstaltung without a modul has no children + if(!Array.isArray(lehrveranstaltung.lehrveranstaltungen)) return; lehrveranstaltung.lehrveranstaltungen.sort((lv1,lv2)=>{ if (lv1.bezeichnung.toLowerCase() > lv2.bezeichnung.toLowerCase()) { return 1; @@ -393,6 +395,16 @@ export default { +
+ +
From cc9d1f983e452a2549a37d50cd36b473e35abbf1 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Tue, 1 Sep 2026 10:39:02 +0200 Subject: [PATCH 2/8] bugfix: missing call to getStudiensemesterKurzbz --- application/controllers/api/frontend/v1/stv/Students.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/controllers/api/frontend/v1/stv/Students.php b/application/controllers/api/frontend/v1/stv/Students.php index 39ed72072..6427df0ac 100644 --- a/application/controllers/api/frontend/v1/stv/Students.php +++ b/application/controllers/api/frontend/v1/stv/Students.php @@ -108,6 +108,7 @@ class Students extends FHCAPI_Controller 'studiensemester_kurzbz' => $studiensemester_kurzbz ]); + $studiensemester_kurzbz = $this->getStudiensemesterKurzbz($studiensemester_kurzbz); $this->studentlistlib->addJoin( "( @@ -153,7 +154,8 @@ class Students extends FHCAPI_Controller $this->addMeta('ci_params', [ 'studiensemester_kurzbz' => $studiensemester_kurzbz ]); - + + $studiensemester_kurzbz = $this->getStudiensemesterKurzbz($studiensemester_kurzbz); $this->studentlistlib->addJoin( "( @@ -213,6 +215,7 @@ class Students extends FHCAPI_Controller 'studiensemester_kurzbz' => $studiensemester_kurzbz ]); + $studiensemester_kurzbz = $this->getStudiensemesterKurzbz($studiensemester_kurzbz); $this->studentlistlib->addJoin( "( From 658c8d6bd4ec916f77aa461dfc3f2a38bb04c5ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 3 Sep 2026 08:44:10 +0200 Subject: [PATCH 3/8] =?UTF-8?q?Schreibberechtigungspr=C3=BCfung=20bei=20An?= =?UTF-8?q?rechnungen=20angepasst=20damit=20diese=20korrekt=20angezeigt=20?= =?UTF-8?q?wird=20wenn=20oe=5Fkurzb=20nicht=20gleich=20der=20Kurzbz=20des?= =?UTF-8?q?=20Studiegangs=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/lehre/anrechnung/approveAnrechnungUebersichtData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php index acfcbd907..dccc31187 100644 --- a/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php +++ b/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php @@ -16,7 +16,7 @@ $query = ' anrechnung.begruendung_id, anrechnung.dms_id, CASE - WHEN stg.typ || stg.kurzbz IN (' . $ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT . ') THEN TRUE + WHEN stg.oe_kurzbz IN (' . $ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT . ') THEN TRUE ELSE FALSE END "schreibberechtigt", anrechnung.studiensemester_kurzbz, From 6378b80d87d8c6ec715ed61916859d575b1fe097 Mon Sep 17 00:00:00 2001 From: adisposkofh Date: Mon, 7 Sep 2026 15:24:38 +0200 Subject: [PATCH 4/8] fixed issue where exported gradelist excel file formatted group names as numbers --- cis/private/lehre/notenliste.xls.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 52b18b056..62b896e43 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -351,7 +351,7 @@ if (!$berechtigung->isBerechtigt('admin') { $worksheet->write($lines,3,$elem->vorname); } - $worksheet->write($lines,4,$elem->semester.$elem->verband.$elem->gruppe); + $worksheet->writeString($lines,4,$elem->semester.$elem->verband.$elem->gruppe); $worksheet->write($lines,5,trim($elem->matrikelnr),$format_highlight); $worksheet->write($lines,6, $note, $format_highlightright); From 4ac108174b064cb5e3aeb01d975b9ffc48777dbe Mon Sep 17 00:00:00 2001 From: Manuela Thamer Date: Tue, 8 Sep 2026 08:29:08 +0200 Subject: [PATCH 5/8] rename title delete button --- .../Details/Noten/Zeugnis.js | 2 +- system/phrasesupdate.php | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js b/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js index 74c9f1d92..0f9d45883 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Noten/Zeugnis.js @@ -255,7 +255,7 @@ export default { deleteButton.className = 'btn btn-outline-secondary'; const icon = document.createElement('i'); icon.className = 'fa fa-trash'; - icon.title = this.$p.t('ui/loeschen'); + icon.title = this.$p.t('lehre/info_deleteMarkEntry'); deleteButton.append(icon); deleteButton.addEventListener('click', evt => { evt.stopPropagation(); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 280a1cf42..f5105a28c 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -62411,6 +62411,26 @@ I have been informed that I am under no obligation to consent to the transmissio ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'info_deleteMarkEntry', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Noteneintrag entfernen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Remove grade entry', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), ); From 52f24645fbfe807b18cedaa14dcc16e182ba467e Mon Sep 17 00:00:00 2001 From: Manuela Thamer Date: Tue, 8 Sep 2026 14:23:59 +0200 Subject: [PATCH 6/8] update link StudVW --- application/views/system/infocenter/infocenterDetails.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index fb023c5fd..b5761405c 100644 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -57,7 +57,7 @@
From f74b88525365c28169e4b407429bf8418ef5738e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 9 Sep 2026 08:55:24 +0200 Subject: [PATCH 7/8] =?UTF-8?q?Abfrage=20von=20Vertr=C3=A4gen=20korrigiert?= =?UTF-8?q?=20f=C3=BCr=20F=C3=A4lle=20wo=20der=20Monatsletzte=20gleichzeit?= =?UTF-8?q?ig=20der=20Start=20des=20neuen=20Studiensemesters=20ist=20(zB?= =?UTF-8?q?=2031.08.2026)=20damit=20die=20Abrechnung=20korrekt=20funktioni?= =?UTF-8?q?ert=20(BFI)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/vertrag.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/vertrag.class.php b/include/vertrag.class.php index 1d9ec364b..7cfa64ee2 100644 --- a/include/vertrag.class.php +++ b/include/vertrag.class.php @@ -121,7 +121,7 @@ class vertrag extends basis_db JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE vertrag_id=tbl_vertrag.vertrag_id - AND studiensemester_kurzbz in (SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start>=".$this->db_add_param($datum).") + AND studiensemester_kurzbz in (SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start>".$this->db_add_param($datum).") ) )"; } From 9fbbd6b85578414bb0a7433e5b73c96d588113dc Mon Sep 17 00:00:00 2001 From: adisposkofh Date: Wed, 9 Sep 2026 15:14:20 +0200 Subject: [PATCH 8/8] moved studvw 'clear filter' action button into 'actions' slot in the filter component --- .../Stv/Studentenverwaltung/List.js | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/List.js b/public/js/components/Stv/Studentenverwaltung/List.js index e4132c2a2..9422e7790 100644 --- a/public/js/components/Stv/Studentenverwaltung/List.js +++ b/public/js/components/Stv/Studentenverwaltung/List.js @@ -822,18 +822,33 @@ export default { @headerFilterOn="handleHeaderFilter" > - + + + - -