From cad122bef6039882fe148b370f61407f1efe5337 Mon Sep 17 00:00:00 2001 From: adisposkofh Date: Thu, 8 Oct 2026 15:02:12 +0200 Subject: [PATCH] neu cis displaying wahlname --- application/config/search.php | 48 +++++++++++++++++-- application/config/searchcis.php | 2 +- .../api/frontend/v1/Cis4FhcApi.php | 1 + .../api/frontend/v1/OtherLvPlan.php | 1 + application/libraries/ProfilLib.php | 2 +- application/models/person/Person_model.php | 2 +- .../js/components/Cis/LvPlan/OtherLvPlan.js | 2 +- .../Cis/Profil/MitarbeiterProfil.js | 2 +- .../Cis/Profil/MitarbeiterViewProfil.js | 2 +- .../js/components/Cis/Profil/StudentProfil.js | 2 +- .../Cis/Profil/StudentViewProfil.js | 2 +- public/js/components/Dashboard/Dashboard.js | 2 +- 12 files changed, 55 insertions(+), 13 deletions(-) diff --git a/application/config/search.php b/application/config/search.php index bedf8d888..33935c6d0 100644 --- a/application/config/search.php +++ b/application/config/search.php @@ -26,6 +26,10 @@ $config['person'] = [ 'comparison' => 'similar', 'field' => 'nachname' ], + 'wahlname' => [ + 'comparison' => 'similar', + 'field' => 'wahlname' + ], 'name' => [ 'comparison' => 'similar', 'field' => "(vorname || ' ' || nachname)" @@ -68,7 +72,7 @@ $config['person'] = [ 'resultfields' => [ "ARRAY( SELECT uid FROM public.tbl_benutzer WHERE person_id = p.person_id ) AS uids", "p.person_id", - "(p.vorname || ' ' || p.nachname) AS name", + "CASE WHEN p.wahlname IS NOT NULL THEN (p.wahlname || ' ' || p.nachname) ELSE (p.vorname || ' ' || p.nachname) END AS name", "ARRAY( SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp = 'email' AND person_id=p.person_id ) AS email", "CASE WHEN p.foto IS NOT NULL THEN 'data:image/jpeg' || CONVERT_FROM(DECODE('3b','hex'), 'UTF8') || 'base64,' || p.foto @@ -117,6 +121,20 @@ $config['student'] = [ ] ] ], + 'wahlname' => [ + 'comparison' => 'similar', + 'field' => 'wahlname', + 'join' => [ + [ + 'table' => "public.tbl_prestudent", + 'using' => "prestudent_id" + ], + [ + 'table' => "public.tbl_person", + 'using' => "person_id" + ] + ] + ], 'name' => [ 'comparison' => 'similar', 'field' => "(vorname || ' ' || nachname)", @@ -196,7 +214,7 @@ $config['student'] = [ "s.student_uid AS uid", "s.matrikelnr", "p.person_id", - "(p.vorname || ' ' || p.nachname) AS name", + "CASE WHEN p.wahlname IS NOT NULL THEN (p.wahlname || ' ' || p.nachname) ELSE (p.vorname || ' ' || p.nachname) END AS name", "(s.student_uid || '@" . DOMAIN . "') || ARRAY( SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp = 'email' AND person_id=p.person_id ) AS email", "CASE WHEN p.foto IS NOT NULL THEN 'data:image/jpeg' || CONVERT_FROM(DECODE('3b','hex'), 'UTF8') || 'base64,' || p.foto @@ -257,6 +275,14 @@ $config['prestudent'] = [ 'using' => "person_id" ] ], + 'wahlname' => [ + 'comparison' => 'similar', + 'field' => 'wahlname', + 'join' => [ + 'table' => "public.tbl_person", + 'using' => "person_id" + ] + ], 'name' => [ 'comparison' => 'similar', 'field' => "(vorname || ' ' || nachname)", @@ -314,7 +340,7 @@ $config['prestudent'] = [ "s.matrikelnr", "p.person_id", "b.uid", - "(p.vorname || ' ' || p.nachname) AS name", + "CASE WHEN p.wahlname IS NOT NULL THEN (p.wahlname || ' ' || p.nachname) ELSE (p.vorname || ' ' || p.nachname) END AS name", "(b.uid || '@" . DOMAIN . "') || ARRAY( SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp = 'email' AND person_id=p.person_id ) AS email", "CASE WHEN p.foto IS NOT NULL THEN 'data:image/jpeg' || CONVERT_FROM(DECODE('3b','hex'), 'UTF8') || 'base64,' || p.foto @@ -390,6 +416,20 @@ $config['employee'] = [ ] ] ], + 'wahlname' => [ + 'comparison' => 'similar', + 'field' => "wahlname", + 'join' => [ + [ + 'table' => "public.tbl_benutzer", + 'on' => "uid = mitarbeiter_uid" + ], + [ + 'table' => "public.tbl_person", + 'using' => "person_id" + ] + ] + ], 'name' => [ 'comparison' => 'similar', 'field' => "(vorname || ' ' || nachname)", @@ -472,7 +512,7 @@ $config['employee'] = [ 'resultfields' => [ "b.uid", "p.person_id", - "(p.vorname || ' ' || p.nachname) AS name", + "CASE WHEN p.wahlname IS NOT NULL THEN (p.wahlname || ' ' || p.nachname) ELSE (p.vorname || ' ' || p.nachname) END AS name", "ARRAY( SELECT '[' || ot.bezeichnung || '] ' || o.bezeichnung AS bezeichnung diff --git a/application/config/searchcis.php b/application/config/searchcis.php index 6d513c499..93928e0fc 100644 --- a/application/config/searchcis.php +++ b/application/config/searchcis.php @@ -25,7 +25,7 @@ $config['student']['resultfields'] = [ "s.matrikelnr AS personenkennzeichen", "p.person_id", "p.matr_nr AS matrikelnummer", - "(p.vorname || ' ' || p.nachname) AS name", + "CASE WHEN p.wahlname IS NOT NULL THEN (p.wahlname || ' ' || p.nachname) ELSE (p.vorname || ' ' || p.nachname) END AS name", "ARRAY[s.student_uid || '@' || '" . DOMAIN . "'] AS email", "CASE WHEN (p.foto_sperre = false AND p.foto IS NOT NULL) THEN 'data:image/jpeg' || CONVERT_FROM(DECODE('3b','hex'), 'UTF8') || 'base64,' || p.foto diff --git a/application/controllers/api/frontend/v1/Cis4FhcApi.php b/application/controllers/api/frontend/v1/Cis4FhcApi.php index 4d0f906f0..84cefd987 100644 --- a/application/controllers/api/frontend/v1/Cis4FhcApi.php +++ b/application/controllers/api/frontend/v1/Cis4FhcApi.php @@ -50,6 +50,7 @@ class Cis4FhcApi extends FHCAPI_Controller $viewData = array( 'uid' => getAuthUID(), 'name' => $personData->vorname, + 'wahlname' => $personData->wahlname, 'person_id' => $personData->person_id, 'timezone' => $this->config->item('timezone'), ); diff --git a/application/controllers/api/frontend/v1/OtherLvPlan.php b/application/controllers/api/frontend/v1/OtherLvPlan.php index 1807f0a4a..bb69b5a32 100644 --- a/application/controllers/api/frontend/v1/OtherLvPlan.php +++ b/application/controllers/api/frontend/v1/OtherLvPlan.php @@ -62,6 +62,7 @@ class OtherLvPlan extends FHCAPI_Controller "foto" => $profileData->data->foto, "vorname" => $profileData->data->vorname, "nachname" => $profileData->data->nachname, + "wahlname" => $profileData->data->wahlname, "titel" => $profileData->data->titel, "postnomen" => $profileData->data->postnomen, ], diff --git a/application/libraries/ProfilLib.php b/application/libraries/ProfilLib.php index 43a110b85..e9e79d87f 100644 --- a/application/libraries/ProfilLib.php +++ b/application/libraries/ProfilLib.php @@ -329,7 +329,7 @@ class ProfilLib{ private function getPersonInfo($uid, $geburtsInfo = null) { $this->ci->load->model("person/Benutzer_model","BenutzerModel"); - $selectClause = ["foto", "foto_sperre", "anrede", "titelpost as postnomen", "titelpre as titel", "vorname", "nachname"]; + $selectClause = ["foto", "foto_sperre", "anrede", "titelpost as postnomen", "titelpre as titel", "vorname", "nachname", "wahlname"]; /** @param integer $geburtsInfo */ if ($geburtsInfo) { array_push($selectClause, "gebort"); diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index c893c51de..98666aa6d 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -245,7 +245,7 @@ class Person_model extends DB_Model */ public function getByUid($uid) { - $this->addSelect('vorname, nachname, gebdatum, person_id, bpk, matr_nr, foto'); + $this->addSelect('vorname, nachname, wahlname, gebdatum, person_id, bpk, matr_nr, foto'); $this->addJoin('tbl_benutzer', 'person_id'); return $this->loadWhere(array('uid' => $uid)); diff --git a/public/js/components/Cis/LvPlan/OtherLvPlan.js b/public/js/components/Cis/LvPlan/OtherLvPlan.js index 48bc03760..72d13ee8c 100644 --- a/public/js/components/Cis/LvPlan/OtherLvPlan.js +++ b/public/js/components/Cis/LvPlan/OtherLvPlan.js @@ -213,7 +213,7 @@ export default { this.isOtherPersonStudent = !!viewData?.user_data?.is_student; let fullNameWithTitleFragments = [ viewData?.user_data?.titel, - viewData?.user_data?.vorname, + viewData?.user_data?.wahlname ?? viewData?.user_data?.vorname, viewData?.user_data?.nachname, viewData?.user_data?.postnomen, ]; diff --git a/public/js/components/Cis/Profil/MitarbeiterProfil.js b/public/js/components/Cis/Profil/MitarbeiterProfil.js index 68a3a0d75..b035d75cf 100644 --- a/public/js/components/Cis/Profil/MitarbeiterProfil.js +++ b/public/js/components/Cis/Profil/MitarbeiterProfil.js @@ -274,7 +274,7 @@ export default { } return { - Vorname: this.data.vorname, + Vorname: this.data.wahlname ?? this.data.vorname, Nachname: this.data.nachname, Username: this.data.username, Anrede: this.data.anrede, diff --git a/public/js/components/Cis/Profil/MitarbeiterViewProfil.js b/public/js/components/Cis/Profil/MitarbeiterViewProfil.js index 3d23e7714..50c5108de 100644 --- a/public/js/components/Cis/Profil/MitarbeiterViewProfil.js +++ b/public/js/components/Cis/Profil/MitarbeiterViewProfil.js @@ -160,7 +160,7 @@ export default { } return { - Vorname: this.data.vorname, + Vorname: this.data.wahlname ?? this.data.vorname, Nachname: this.data.nachname, Username: this.data.username, Anrede: this.data.anrede, diff --git a/public/js/components/Cis/Profil/StudentProfil.js b/public/js/components/Cis/Profil/StudentProfil.js index 06b981b12..6d07314f0 100644 --- a/public/js/components/Cis/Profil/StudentProfil.js +++ b/public/js/components/Cis/Profil/StudentProfil.js @@ -204,7 +204,7 @@ export default { } return { - Vorname: this.data.vorname, + Vorname: this.data.wahlname ?? this.data.vorname, Nachname: this.data.nachname, Username: this.data.username, Anrede: this.data.anrede, diff --git a/public/js/components/Cis/Profil/StudentViewProfil.js b/public/js/components/Cis/Profil/StudentViewProfil.js index cca9b22a5..2e8ee6382 100644 --- a/public/js/components/Cis/Profil/StudentViewProfil.js +++ b/public/js/components/Cis/Profil/StudentViewProfil.js @@ -33,7 +33,7 @@ export default { } return { - Vorname: this.data.vorname, + Vorname: this.data.wahlname ?? this.data.vorname, Nachname: this.data.nachname, Username: this.data.username, Anrede: this.data.anrede, diff --git a/public/js/components/Dashboard/Dashboard.js b/public/js/components/Dashboard/Dashboard.js index e390f16d4..e847c3f58 100644 --- a/public/js/components/Dashboard/Dashboard.js +++ b/public/js/components/Dashboard/Dashboard.js @@ -184,7 +184,7 @@ export default { let viewDataResult = await this.$api.call(ApiDashboard.getViewData()); const viewData = viewDataResult.data; this.timezone = viewData?.timezone; - this.userFirstName = viewData?.name; + this.userFirstName = viewData?.wahlname ?? viewData?.name; } }, async created() {