From a721c1d14d59836fc263c7b221f9bec1d25ff0c7 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 24 Jun 2026 15:22:57 +0200 Subject: [PATCH 01/17] add default permission assistenz:rw for tag functionality --- application/core/Tag_Controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/core/Tag_Controller.php b/application/core/Tag_Controller.php index fb14563ba..82e9b8e74 100644 --- a/application/core/Tag_Controller.php +++ b/application/core/Tag_Controller.php @@ -7,7 +7,7 @@ class Tag_Controller extends FHCAPI_Controller { private $_uid; - const BERECHTIGUNG_KURZBZ = 'admin:rw'; + const BERECHTIGUNG_KURZBZ = ['admin:rw', 'assistenz:rw']; public function __construct($permissions) { From d5ee6f9cc2d0163ba97fd5bbd88c1c80ad783333 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 24 Jun 2026 15:48:04 +0200 Subject: [PATCH 02/17] adapt query for outgoing students --- application/models/codex/Bisio_model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/models/codex/Bisio_model.php b/application/models/codex/Bisio_model.php index 055b8e4ea..4b790781d 100644 --- a/application/models/codex/Bisio_model.php +++ b/application/models/codex/Bisio_model.php @@ -60,6 +60,7 @@ class Bisio_model extends DB_Model JOIN public.tbl_prestudentstatus pss ON (ps.prestudent_id = pss.prestudent_id) JOIN public.tbl_studiensemester ss ON (pss.studiensemester_kurzbz = ss.studiensemester_kurzbz) WHERE ss.studiensemester_kurzbz = ? + AND nation_code <> 'A' AND ( tbl_bisio.von <= ss.ende AND ( From e7c133586ba2abb0e8f4c430a391d16adb9cdf79 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 25 Jun 2026 08:47:00 +0200 Subject: [PATCH 03/17] adding of 4 new colours and use shorter labels for automated tags --- public/css/tags.css | 21 ++++++++++++++++++- .../75959_StudVw_Automatische_Tags.php | 20 +++++++++--------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/public/css/tags.css b/public/css/tags.css index f424b6699..3b3377d5d 100644 --- a/public/css/tags.css +++ b/public/css/tags.css @@ -46,7 +46,6 @@ background-color: #ffA500ff; } - .tag_braun { background-color: #6d4c41; } @@ -72,6 +71,26 @@ color: black; } +.tag_turquoise { + background-color: #89cccf; + color: black; +} + +.tag_bordeaux { + background-color: #7B1B38; + color: white; +} + +.tag_olive { + background-color: #868d07; + color: white; +} + +.tag_beige { + background-color: #E4D5B4; + color: black; +} + .tag_done { text-decoration: line-through; } diff --git a/system/dbupdate_3.4/75959_StudVw_Automatische_Tags.php b/system/dbupdate_3.4/75959_StudVw_Automatische_Tags.php index c75d0ce14..1b6d6b1dd 100644 --- a/system/dbupdate_3.4/75959_StudVw_Automatische_Tags.php +++ b/system/dbupdate_3.4/75959_StudVw_Automatische_Tags.php @@ -16,28 +16,28 @@ if(!@$db->db_query("SELECT taglib FROM public.tbl_notiz_typ LIMIT 1")) $tags = [ [ 'typ_kurzbz' => 'wh_auto', - 'bezeichnung' => '{Wiederholer, repeater}', + 'bezeichnung' => '{WH, R}', 'style' => 'tag_dark_grey', 'prioritaet' => 11, 'taglib' => 'tags/CoreWiederholerTagLib' ], [ 'typ_kurzbz' => 'dd_auto', - 'bezeichnung' => '{DoubleDegree, DoubleDegree}', + 'bezeichnung' => '{DD, DD}', 'style' => 'tag_braun', 'prioritaet' => 10, 'taglib' => 'tags/CoreDoubleDegreeTagLib' ], [ 'typ_kurzbz' => 'out_auto', - 'bezeichnung' => '{Outgoing, Outgoing}', + 'bezeichnung' => '{Out, Out}', 'style' => 'tag_limette', 'prioritaet' => 12, 'taglib' => 'tags/CoreOutgoingTagLib' ], [ 'typ_kurzbz' => 'prewh_auto', - 'bezeichnung' => '{Pre-Wiederholer, pre-repeater}', + 'bezeichnung' => '{Pre-WH, pre-R}', 'style' => 'tag_light_grey', 'prioritaet' => 13, 'taglib' => 'tags/CorePrewiederholerTagLib' @@ -45,28 +45,28 @@ $tags = [ [ 'typ_kurzbz' => 'zgv_auto', 'bezeichnung' => '{ZGV offen, ZGV missing}', - 'style' => 'tag_lavendel', + 'style' => 'tag_beige', 'prioritaet' => 14, 'taglib' => 'tags/CoreMissingZgvTagLib' ], [ 'typ_kurzbz' => 'unterbrecher_auto', - 'bezeichnung' => '{Unterbrecher, Interrupter}', - 'style' => 'tag_blau', + 'bezeichnung' => '{UB, I}', + 'style' => 'tag_turquoise', 'prioritaet' => 15, 'taglib' => 'tags/CoreUnterbrecherTagLib' ], [ 'typ_kurzbz' => 'stbtr_erh_auto', 'bezeichnung' => '{erh.Studienbeitrag, Incr. Tuition Fees}', - 'style' => 'tag_pfirsich', + 'style' => 'tag_bordeaux', 'prioritaet' => 16, 'taglib' => 'tags/CoreStbErhoehtTagLib' ], [ 'typ_kurzbz' => 'jgv_auto', - 'bezeichnung' => '{JGV, Year Group Representative}', - 'style' => 'tag_gelb', + 'bezeichnung' => '{JGV, YGR}', + 'style' => 'tag_olive', 'prioritaet' => 17, 'taglib' => 'tags/CoreJgvTagLib' ], From ecd6588ead8c9f8bf0d747f92fc48c5f48b28976 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 25 Jun 2026 12:56:35 +0200 Subject: [PATCH 04/17] edit default permissions: in core controller admin, in stv controller admin and assistance --- application/controllers/api/frontend/v1/stv/Tags.php | 4 +++- application/core/Tag_Controller.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Tags.php b/application/controllers/api/frontend/v1/stv/Tags.php index e5af9becc..bd5c61953 100644 --- a/application/controllers/api/frontend/v1/stv/Tags.php +++ b/application/controllers/api/frontend/v1/stv/Tags.php @@ -15,7 +15,9 @@ class Tags extends Tag_Controller 'addTag' => self::BERECHTIGUNG_KURZBZ, 'updateTag' => self::BERECHTIGUNG_KURZBZ, 'doneTag' => self::BERECHTIGUNG_KURZBZ, - 'deleteTag' => self::BERECHTIGUNG_KURZBZ + 'deleteTag' => self::BERECHTIGUNG_KURZBZ, + 'getAllTags' => self::BERECHTIGUNG_KURZBZ, + 'rebuildTagsForTypeId' => self::BERECHTIGUNG_KURZBZ, ]); $this->config->load('stv'); diff --git a/application/core/Tag_Controller.php b/application/core/Tag_Controller.php index 82e9b8e74..c4c5afa88 100644 --- a/application/core/Tag_Controller.php +++ b/application/core/Tag_Controller.php @@ -7,7 +7,7 @@ class Tag_Controller extends FHCAPI_Controller { private $_uid; - const BERECHTIGUNG_KURZBZ = ['admin:rw', 'assistenz:rw']; + const BERECHTIGUNG_KURZBZ = ['admin:rw']; public function __construct($permissions) { From f751df55b65ba9b249b4cd27ae2268927e8391ba Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 25 Jun 2026 13:27:17 +0200 Subject: [PATCH 05/17] update query isPrestudentOutgoing to show only outgoing --- application/models/codex/Bisio_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/models/codex/Bisio_model.php b/application/models/codex/Bisio_model.php index 4b790781d..9a9fd37fb 100644 --- a/application/models/codex/Bisio_model.php +++ b/application/models/codex/Bisio_model.php @@ -84,7 +84,7 @@ class Bisio_model extends DB_Model JOIN public.tbl_prestudentstatus pss ON (ps.prestudent_id = pss.prestudent_id) JOIN public.tbl_studiensemester ss ON (pss.studiensemester_kurzbz = ss.studiensemester_kurzbz) WHERE ss.studiensemester_kurzbz = ? - --AND pss.status_kurzbz = 'Student' + AND nation_code <> 'A' AND ( tbl_bisio.von <= ss.ende AND ( From 90907d4276632c3f98d6d39e5134f6bb52ba6b95 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 26 Jun 2026 13:45:14 +0200 Subject: [PATCH 06/17] add persistance pruefungsantritt_kurzbz to abschlusspruefung --- .../Details/Abschlusspruefung/Abschlusspruefung.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js index e0bdeb187..96aeb818c 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js @@ -302,7 +302,7 @@ export default { //prepare local Storage let STORAGE_KEY = 'finalExamDefaultData'; - const id = '20260224_02'; + const id = '20260625_01'; const stored = JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; if (stored[id]) { @@ -312,6 +312,7 @@ export default { this.formData.datum = data.datum; this.formData.sponsion = data.sponsion; this.formData.akadgrad_id = data.akadgrad_id; + this.formData.pruefungsantritt_kurzbz = data.pruefungsantritt_kurzbz; if (data.vorsitz_uid) { this.selectedVorsitz = { @@ -393,11 +394,12 @@ export default { saveOrUpdateLocalStorage(){ let STORAGE_KEY = 'finalExamDefaultData'; - const id = '20260224_02'; + const id = '20260625_01'; const stored = JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; stored[id] = { pruefungstyp_kurzbz: this.formData.pruefungstyp_kurzbz, + pruefungsantritt_kurzbz: this.formData.pruefungsantritt_kurzbz, vorsitz_uid: this.selectedVorsitz?.mitarbeiter_uid || null, vorsitz_person_id: this.selectedVorsitz?.person_id || null, vorsitz_label: this.selectedVorsitz?.label || null, From 3e48401a041efd64882a48865564095acfc29dbe Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 29 Jun 2026 11:16:10 +0200 Subject: [PATCH 07/17] add uids to success and error alerts --- .../Abschlusspruefung/Abschlusspruefung.js | 43 +++++++++++++------ system/phrasesupdate.php | 20 +++++++++ 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js index 96aeb818c..51a25c815 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js @@ -78,7 +78,7 @@ export default { layout: 'fitDataStretchFrozen', layoutColumnsOnNewData: false, height: 'auto', - minHeight: '200', + minHeight: '200' } }, computed: { @@ -437,20 +437,37 @@ export default { }, async addNewAbschlusspruefungMulti(){ try { - for (const student of this.studentUids) { + const arraySuccessfullySent = []; + const arrayError = []; - await this.$refs.formFinalExam.call( - ApiStvAbschlusspruefung.addNewAbschlusspruefung({ - uid: student, - formData: this.formData - }) - ); + for (const student of this.studentUids) { + try { + await this.$refs.formFinalExam.call( + ApiStvAbschlusspruefung.addNewAbschlusspruefung({ + uid: student, + formData: this.formData + }) + ); + arraySuccessfullySent.push(student); + } catch (error) { + arrayError.push(student); + } + } + if (arraySuccessfullySent.length) { + //this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); + //TODO(Manu) check if really needed in case of success + this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave') + ': Uids: ' + arraySuccessfullySent.join(", ")); + } + + if (arrayError.length) { + this.$fhcAlert.alertError(this.$p.t('ui', 'errorSavingData') + ': Uids: ' + arrayError.join(", ")); + } + + if (arraySuccessfullySent.length) { + this.saveOrUpdateLocalStorage(); + this.hideModal("finalexamModal"); + this.resetForm(); } - this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); - //save formData fields in LocalStorage - this.saveOrUpdateLocalStorage(); - this.hideModal('finalexamModal'); - this.resetForm(); } catch (error) { this.$fhcAlert.handleSystemError(error); } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 05bdfbbef..06f46950e 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -58377,6 +58377,26 @@ I have been informed that I am under no obligation to consent to the transmissio ) ) ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'errorSavingData', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Speichern der Daten nicht erfolgreich', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' =>'Data saving failed', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), ); From 3e8445304c096a538036769337461cad55c65a10 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 29 Jun 2026 11:40:32 +0200 Subject: [PATCH 08/17] detailheader: append tagContainer only for one selected student --- public/js/components/DetailHeader/DetailHeader.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js index 3509761e3..02332c49e 100644 --- a/public/js/components/DetailHeader/DetailHeader.js +++ b/public/js/components/DetailHeader/DetailHeader.js @@ -293,8 +293,10 @@ export default { this.semesterDates.ende ); - this.$refs.tagWrapper.innerHTML = ''; - this.$refs.tagWrapper.appendChild(container); + if(this.headerData.length == 1) { + this.$refs.tagWrapper.innerHTML = ''; + this.$refs.tagWrapper.appendChild(container); + } }, getAllTags(prestudent_id){ return this.$api From ff38731077f5e4e4bfc34ec9a2653be0c5f1bd01 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 29 Jun 2026 13:55:11 +0200 Subject: [PATCH 09/17] refactor rowSelectionChanged --- public/js/components/Stv/Studentenverwaltung/List.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/public/js/components/Stv/Studentenverwaltung/List.js b/public/js/components/Stv/Studentenverwaltung/List.js index 8b2edb3e2..399d35a3d 100644 --- a/public/js/components/Stv/Studentenverwaltung/List.js +++ b/public/js/components/Stv/Studentenverwaltung/List.js @@ -420,8 +420,12 @@ export default { rowSelectionChanged(data, rows, selected, deselected) { this.selectedcount = data.length; - if(selected.length > 0 || deselected.length > 0){ + //in case of empty selection (eg. in future or past semester of selected student without sem) + if(selected.length == 0 ) { this.lastSelected = this.selected; + } + + if(selected.length > 0 || deselected.length > 0){ //for tags this.selectedRows = this.$refs.table.tabulator.getSelectedRows(); From 01f2099c28abbbcfaf2f5acda17dc257058edfa9 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 30 Jun 2026 08:24:08 +0200 Subject: [PATCH 10/17] remove injection currentSemester, already as prop --- public/js/components/DetailHeader/DetailHeader.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js index 02332c49e..c5b8c348d 100644 --- a/public/js/components/DetailHeader/DetailHeader.js +++ b/public/js/components/DetailHeader/DetailHeader.js @@ -59,10 +59,6 @@ export default { from: 'configStvTagsEnabled', default: false }, - currentSemester: { - from: 'currentSemester', - required: true - }, lists: { from: 'lists', required: true From 06ec020c1cba57fa2a08d9077ba1db1c4fae4ad0 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 30 Jun 2026 08:25:46 +0200 Subject: [PATCH 11/17] make div for studentNames scrollable, do not show details in alert if ok --- .../Details/Abschlusspruefung/Abschlusspruefung.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js index 51a25c815..5d3514580 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js @@ -454,9 +454,9 @@ export default { } } if (arraySuccessfullySent.length) { - //this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); + this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); //TODO(Manu) check if really needed in case of success - this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave') + ': Uids: ' + arraySuccessfullySent.join(", ")); + //this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave') + ': Uids: ' + arraySuccessfullySent.join(", ")); } if (arrayError.length) { @@ -699,7 +699,12 @@ export default { From 9948060ed8142f0c98566e5e16599ebd4a939e59 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 30 Jun 2026 08:26:41 +0200 Subject: [PATCH 12/17] add shortcut str+alt for studentlist, add css for studentNames scrollable --- public/css/Studentenverwaltung.css | 7 +++++++ public/js/components/Stv/Studentenverwaltung/List.js | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/public/css/Studentenverwaltung.css b/public/css/Studentenverwaltung.css index 8beafe25f..870a58bdf 100644 --- a/public/css/Studentenverwaltung.css +++ b/public/css/Studentenverwaltung.css @@ -96,6 +96,13 @@ html.fs_huge { overflow: visible !important; } +/* to enable scrolling for many student entries*/ +.stv-details-abschlusspruefung-student-names { + max-height: 80px; + overflow-y: auto; + overflow-x: hidden; +} + .p-dropdown-item{ z-index: 1201 !important; } diff --git a/public/js/components/Stv/Studentenverwaltung/List.js b/public/js/components/Stv/Studentenverwaltung/List.js index 399d35a3d..66fd2c16b 100644 --- a/public/js/components/Stv/Studentenverwaltung/List.js +++ b/public/js/components/Stv/Studentenverwaltung/List.js @@ -514,6 +514,14 @@ export default { this.$reloadList(); }, onKeydown(e) { // TODO(chris): this should be in the filter component + + if ((e.ctrlKey || e.metaKey) && e.code === "KeyA") { + e.preventDefault(); + + this.$refs.table.tabulator.deselectRow(); + this.$refs.table.tabulator.selectRow(); + } + if (!this.focusObj) return; From 9bc9e57deb03b993a1b52c9c1b5b7a1a305da384 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 30 Jun 2026 14:28:12 +0200 Subject: [PATCH 13/17] add selectable to tabledownload in studentList --- public/js/components/Stv/Studentenverwaltung/List.js | 8 ++++---- public/js/components/filter/Table/Download.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/List.js b/public/js/components/Stv/Studentenverwaltung/List.js index 66fd2c16b..0ee63ea28 100644 --- a/public/js/components/Stv/Studentenverwaltung/List.js +++ b/public/js/components/Stv/Studentenverwaltung/List.js @@ -283,7 +283,6 @@ export default { }; }); }, - //TODO(Manu) check: replace download or additional entry? downloadConfig() { return { csv: { @@ -292,8 +291,9 @@ export default { options: { delimiter: ';', bom: true, - } - } + }, + rowRange: this.selectedcount > 0 ? "selected" : "all", + }, }; }, fileString() { @@ -650,7 +650,7 @@ export default { // TODO(chris): focusin, focusout, keydown and tabindex should be in the filter component // TODO(chris): filter component column chooser has no accessibilty features template: ` -
+
Date: Tue, 30 Jun 2026 15:43:19 +0200 Subject: [PATCH 14/17] enable deletion of zgv and zgv master date with null and empty string --- application/controllers/api/frontend/v1/stv/Prestudent.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/api/frontend/v1/stv/Prestudent.php b/application/controllers/api/frontend/v1/stv/Prestudent.php index d8c8d1ff2..33957872f 100644 --- a/application/controllers/api/frontend/v1/stv/Prestudent.php +++ b/application/controllers/api/frontend/v1/stv/Prestudent.php @@ -193,7 +193,7 @@ class Prestudent extends FHCAPI_Controller } elseif ( $val === '' - && in_array($prop, ['zgvnation', 'zgvmanation', 'zgvdoktornation', 'berufstaetigkeit_code', 'ausbildungcode']) + && in_array($prop, ['zgvnation', 'zgvmanation', 'zgvdoktornation', 'berufstaetigkeit_code', 'ausbildungcode', 'zgvdatum', 'zgvmadatum']) ) { $val = null; From fb1c7f8e904feb98e53825a2e12cf86bb1da25ff Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Jul 2026 08:12:06 +0200 Subject: [PATCH 15/17] =?UTF-8?q?Rename=20Lehrauftr=C3=A4ge=20to=20Lehrauf?= =?UTF-8?q?tragsverwaltung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/config/navigation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/navigation.php b/application/config/navigation.php index 0a7c0131f..cd71b02ca 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -385,7 +385,7 @@ $config['navigation_menu']['apps'] = [ ], 'lav' => [ 'link' => site_url('lehre/lehrauftrag/Lehrauftrag/Dashboard'), - 'description' => 'Lehraufträge', + 'description' => 'Lehrauftragsverwaltung', #'icon' => 'person-chalkboard', 'requiredPermissions' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:r') ] From 6d23f2b9fac4b87bcc61cebd30751ad23b078904 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Jul 2026 15:58:23 +0200 Subject: [PATCH 16/17] Add Einstiegssemester - calculate semester_berechnet also for Stati 'Aufgenommener','Bewerber','Wartender' - show Einstiegssemester in DetailHeader for 'Aufgenommener','Bewerber','Wartender' and 'Interessent' --- application/libraries/stv/StudentListLib.php | 2 +- public/js/components/DetailHeader/DetailHeader.js | 6 ++++++ public/js/components/Stv/Studentenverwaltung/List.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/application/libraries/stv/StudentListLib.php b/application/libraries/stv/StudentListLib.php index a00f92822..432b75bd4 100644 --- a/application/libraries/stv/StudentListLib.php +++ b/application/libraries/stv/StudentListLib.php @@ -72,7 +72,7 @@ class StudentListLib $this->addSelect('pls.bestaetigtam AS status_bestaetigung'); $this->addSelect(" CASE - WHEN pls.status_kurzbz = 'Interessent' + WHEN pls.status_kurzbz IN ('Interessent','Aufgenommener','Bewerber','Wartender') THEN pls.ausbildungssemester ELSE s.semester END AS semester_berechnet diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js index c5b8c348d..e266b9d11 100644 --- a/public/js/components/DetailHeader/DetailHeader.js +++ b/public/js/components/DetailHeader/DetailHeader.js @@ -435,6 +435,12 @@ export default { {{headerData[0].verband}} | {{$p.t('lehre', 'gruppe')}} {{headerData[0].gruppe}} + | Einstiegssemester {{headerData[0].semester_berechnet}} +