From 35ecbdefa8ff24f0d55fbccc27d5878238bf7ea1 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 14 Jul 2026 13:17:27 +0200 Subject: [PATCH 01/13] studvw prestudent ZGV date fields and konto date fields use iso date as model-type --- public/js/components/Stv/Studentenverwaltung/Details/Konto.js | 3 ++- .../components/Stv/Studentenverwaltung/Details/Konto/Edit.js | 1 + .../js/components/Stv/Studentenverwaltung/Details/Konto/New.js | 1 + .../components/Stv/Studentenverwaltung/Details/Prestudent.js | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Konto.js b/public/js/components/Stv/Studentenverwaltung/Details/Konto.js index 36e5bbbd3..5b6e1b6bb 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Konto.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Konto.js @@ -27,7 +27,7 @@ export default { return { filter: false, studiengang_kz: false, - counterdate: new Date() + counterdate: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate() }; }, computed: { @@ -259,6 +259,7 @@ export default { Date: Tue, 14 Jul 2026 13:24:04 +0200 Subject: [PATCH 02/13] initialize with luxon date iso format --- .../js/components/Stv/Studentenverwaltung/Details/Konto/New.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Konto/New.js b/public/js/components/Stv/Studentenverwaltung/Details/Konto/New.js index 9c850faef..19aa7a867 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Konto/New.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Konto/New.js @@ -88,7 +88,7 @@ export default { this.data = { buchungstyp_kurzbz: '', betrag: '-0.00', - buchungsdatum: new Date(), + buchungsdatum: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate(), buchungstext: '', mahnspanne: 30, studiensemester_kurzbz: this.currentSemester, From 67eb238876203e0edea82224abc276a9b48f4e28 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 13:37:19 +0200 Subject: [PATCH 03/13] use model-type isodate for field Details Gebdatum --- public/js/components/Stv/Studentenverwaltung/Details/Details.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Details.js b/public/js/components/Stv/Studentenverwaltung/Details/Details.js index 3cd314fc1..199a79d38 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Details.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Details.js @@ -293,6 +293,7 @@ export default { :label="$p.t('person', 'geburtsdatum')" type="DatePicker" v-model="data.gebdatum" + model-type="yyyy-MM-dd" name="gebdatum" :clearable="false" no-today From b1c47da3c374b3c5a6984b6028b2dc38e46c1588 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 14:01:12 +0200 Subject: [PATCH 04/13] use model-type isodate for fields in StatusModal datum and bestaetigtam --- .../components/Stv/Studentenverwaltung/Details/Status/Modal.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js index 7507b0ebd..68683316b 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js @@ -276,6 +276,7 @@ export default{ container-class="mb-3" type="DatePicker" v-model="formData.datum" + model-type="yyyy-MM-dd" name="datum" :label="$p.t('global/datum')" auto-apply @@ -291,6 +292,7 @@ export default{ container-class="mb-3" type="DatePicker" v-model="formData.bestaetigtam" + model-type="yyyy-MM-dd" name="bestaetigtam" :label="$p.t('lehre/bestaetigt_am')" auto-apply From 9111edf4425f5891ce94160c7b8662e95cf785b5 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 14:06:59 +0200 Subject: [PATCH 05/13] Dokumente: use model-type isodate for field nachgereicht_am --- .../Stv/Studentenverwaltung/Details/Dokumente/Modal/Edit.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/Modal/Edit.js b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/Modal/Edit.js index c96dcfd78..f536c016e 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/Modal/Edit.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/Modal/Edit.js @@ -103,6 +103,7 @@ export default { Date: Tue, 14 Jul 2026 14:19:25 +0200 Subject: [PATCH 06/13] Mobility: use model-type isodate for fields von and bis --- .../Stv/Studentenverwaltung/Details/Mobility/Mobility.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js index e71c0dfb8..dd2899bf1 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js @@ -467,6 +467,7 @@ export default { :label="$p.t('ui', 'von')" type="DatePicker" v-model="formData.von" + model-type="yyyy-MM-dd" auto-apply :enable-time-picker="false" text-input @@ -501,6 +502,7 @@ export default { :label="$p.t('global', 'bis')" type="DatePicker" v-model="formData.bis" + model-type="yyyy-MM-dd" auto-apply :enable-time-picker="false" text-input From 19b9906c863060c2c5c4a70266a2d520e1014d35 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 14:23:37 +0200 Subject: [PATCH 07/13] Aufnahmetermine: use model-type isodate for field anmeldedatum --- .../Details/Aufnahmetermine/Aufnahmetermine.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js index 7f39496e9..a0e8c9465 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js @@ -470,6 +470,7 @@ export default { :label="$p.t('admission', 'anmeldundRtAm')" type="DatePicker" v-model="formData.anmeldedatum" + model-type="yyyy-MM-dd" auto-apply :enable-time-picker="false" text-input From 2064008f9e55e2d6f57c5bae05ebc9b5c4339cc0 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 14:31:13 +0200 Subject: [PATCH 08/13] add model-type to fields Betriebsmittel/ausgegebenam, Betriebsmittel/retouram, Funktionen/datumvon und Funktionen/datumbis --- public/js/components/Betriebsmittel/Betriebsmittel.js | 2 ++ public/js/components/Funktionen/Funktionen.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js index 08d6a8947..9f8290222 100644 --- a/public/js/components/Betriebsmittel/Betriebsmittel.js +++ b/public/js/components/Betriebsmittel/Betriebsmittel.js @@ -433,6 +433,7 @@ export default { :label="$p.t('wawi/ausgegebenam')" name="ausgegebenam" v-model="formData.ausgegebenam" + model-type="yyyy-MM-dd" auto-apply :enable-time-picker="false" text-input @@ -449,6 +450,7 @@ export default { :label="$p.t('wawi/retouram')" name="retouram" v-model="formData.retouram" + model-type="yyyy-MM-dd" auto-apply :enable-time-picker="false" text-input diff --git a/public/js/components/Funktionen/Funktionen.js b/public/js/components/Funktionen/Funktionen.js index 2c1bce445..bf02995a1 100644 --- a/public/js/components/Funktionen/Funktionen.js +++ b/public/js/components/Funktionen/Funktionen.js @@ -551,6 +551,7 @@ export default { container-class="mb-3 col-3" type="DatePicker" v-model="formData.datum_von" + model-type="yyyy-MM-dd" name="datum_von" :label="$p.t('ui/from') + ' *'" auto-apply @@ -566,6 +567,7 @@ export default { container-class="mb-3 col-3" type="DatePicker" v-model="formData.datum_bis" + model-type="yyyy-MM-dd" name="datum_bis" :label="$p.t('global/bis')" auto-apply From 7841a73fc05fc961775e901928e04705d82bf923 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 15:05:54 +0200 Subject: [PATCH 09/13] prepare field bewerbung_abgeschicktamum for showing in frontend (datestamp in database) and add also model-type to datepicker --- .../Stv/Studentenverwaltung/Details/Status/Modal.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js index 68683316b..9d657b4db 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js @@ -135,6 +135,11 @@ export default{ .then(result => { this.statusNew = false; this.formData = result.data; + //to show Date in correct format in the modal (is timestamp in database) + if (this.formData.bewerbung_abgeschicktamum) { + this.formData.bewerbung_abgeschicktamum = + this.formData.bewerbung_abgeschicktamum.substring(0, 10); + } this.originalDatum = new Date(result.data.datum); return prestudent; }) @@ -308,6 +313,7 @@ export default{ container-class="mb-3" type="DatePicker" v-model="formData.bewerbung_abgeschicktamum" + model-type="yyyy-MM-dd" name="bewerbung_abgeschicktamum" :label="$p.t('lehre/bewerbung_abgeschickt_am')" auto-apply From b217681ee5d997f93c1da68c88c19887f2ac3599 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 14 Jul 2026 15:23:06 +0200 Subject: [PATCH 10/13] use model-type for interessenten anlegen, listNew --- public/js/components/Stv/Studentenverwaltung/List/New.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/Stv/Studentenverwaltung/List/New.js b/public/js/components/Stv/Studentenverwaltung/List/New.js index 6b7df3581..90d4e498b 100644 --- a/public/js/components/Stv/Studentenverwaltung/List/New.js +++ b/public/js/components/Stv/Studentenverwaltung/List/New.js @@ -285,6 +285,7 @@ export default { uid="stv-list-new-gebdatum" name="gebdatum" v-model="formDataPerson['gebdatum']" + model-type="yyyy-MM-dd" :disabled="!!person" @update:model-value="loadSuggestions" text-input From c0b5f2f7488e95c0951d61b4825a8acb33683a42 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 16 Jul 2026 12:58:00 +0200 Subject: [PATCH 11/13] add permission to DetailHeader function for use in pv21 --- .../api/frontend/v1/detailheader/Detailheader.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/controllers/api/frontend/v1/detailheader/Detailheader.php b/application/controllers/api/frontend/v1/detailheader/Detailheader.php index ada10c5b6..2aacb4cc0 100644 --- a/application/controllers/api/frontend/v1/detailheader/Detailheader.php +++ b/application/controllers/api/frontend/v1/detailheader/Detailheader.php @@ -9,9 +9,9 @@ class Detailheader extends FHCAPI_Controller public function __construct() { parent::__construct([ - 'getHeader' => ['vertrag/mitarbeiter:r'], - 'getPersonAbteilung' => ['vertrag/mitarbeiter:r'], - 'getLeitungOrg' => ['vertrag/mitarbeiter:r'], + 'getHeader' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'], + 'getPersonAbteilung' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'], + 'getLeitungOrg' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'], ]); } From fd1b5daf9c93958ac61d8cbc6c0b45dda06a4f37 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 30 Jun 2026 15:43:19 +0200 Subject: [PATCH 12/13] 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 576a44838f7e5db19001b03a2f337f23bc0956ab Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 16 Jul 2026 15:53:32 +0200 Subject: [PATCH 13/13] datetime format bewerbung_abgeschickt_am --- .../Stv/Studentenverwaltung/Details/Status/Modal.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js index 9d657b4db..ce190fdb5 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Status/Modal.js @@ -135,11 +135,6 @@ export default{ .then(result => { this.statusNew = false; this.formData = result.data; - //to show Date in correct format in the modal (is timestamp in database) - if (this.formData.bewerbung_abgeschicktamum) { - this.formData.bewerbung_abgeschicktamum = - this.formData.bewerbung_abgeschicktamum.substring(0, 10); - } this.originalDatum = new Date(result.data.datum); return prestudent; }) @@ -313,14 +308,14 @@ export default{ container-class="mb-3" type="DatePicker" v-model="formData.bewerbung_abgeschicktamum" - model-type="yyyy-MM-dd" + model-type="yyyy-MM-dd HH:mm:ss" name="bewerbung_abgeschicktamum" :label="$p.t('lehre/bewerbung_abgeschickt_am')" auto-apply - :enable-time-picker="false" - format="dd.MM.yyyy" + :enable-time-picker="true" + format="dd.MM.yyyy HH:mm:ss" text-input - preview-format="dd.MM.yyyy" + preview-format="dd.MM.yyyy HH:mm:ss" :teleport="true" :disabled="bisLocked || !hasPrestudentstatusPermission" >