From f346bc6fcbfc18b803ce2cba3b6e82873f781db5 Mon Sep 17 00:00:00 2001
From: Johann Hoffmann
Date: Thu, 9 Jul 2026 15:53:09 +0200
Subject: [PATCH] zweitbetreuer in StudentDetail; query the fullname of
insertvon user to display upon creating a new abgabetermin;
---
.../controllers/api/frontend/v1/Abgabe.php | 10 ++++++++
.../Cis/Abgabetool/AbgabeStudentDetail.js | 19 +++++++++++++-
.../Cis/Abgabetool/AbgabetoolStudent.js | 25 ++++++++++++++-----
3 files changed, 47 insertions(+), 7 deletions(-)
diff --git a/application/controllers/api/frontend/v1/Abgabe.php b/application/controllers/api/frontend/v1/Abgabe.php
index 759c32d58..819a1071b 100644
--- a/application/controllers/api/frontend/v1/Abgabe.php
+++ b/application/controllers/api/frontend/v1/Abgabe.php
@@ -947,6 +947,16 @@ class Abgabe extends FHCAPI_Controller
$paabgabeArr = $this->getDataOrTerminateWithError($result, 'general');
$paabgabe = $paabgabeArr[0];
+ // resolve the insert/update user full names so the frontend info string ("saved at X by Y")
+ // renders immediately for freshly created/updated termine without needing a reload.
+ $this->load->model('person/Person_model', 'PersonModel');
+ if(!empty($paabgabe->insertvon)) {
+ $paabgabe->insertvon_fullname = getData($this->PersonModel->getFullName($paabgabe->insertvon));
+ }
+ if(!empty($paabgabe->updatevon)) {
+ $paabgabe->updatevon_fullname = getData($this->PersonModel->getFullName($paabgabe->updatevon));
+ }
+
// check if abgabe even has note
if($paabgabe->note) {
$this->load->model('education/Note_model', 'NoteModel');
diff --git a/public/js/components/Cis/Abgabetool/AbgabeStudentDetail.js b/public/js/components/Cis/Abgabetool/AbgabeStudentDetail.js
index 80750babc..eb27412a1 100644
--- a/public/js/components/Cis/Abgabetool/AbgabeStudentDetail.js
+++ b/public/js/components/Cis/Abgabetool/AbgabeStudentDetail.js
@@ -306,6 +306,22 @@ export const AbgabeStudentDetail = {
const noteOpt = this.notenOptions.find(opt => opt.note == termin.note)
return noteOpt ? noteOpt.bezeichnung : ''
},
+ hasZweitbetreuer(projektarbeit) {
+ return !!(projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer)
+ },
+ getErstbetreuerLabel(projektarbeit) {
+ return projektarbeit.betreuerart_kurzbz
+ ? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz))
+ : this.$capitalize(this.$p.t('abgabetool/c4betreuerv2'))
+ },
+ getZweitbetreuerLabel(projektarbeit) {
+ return projektarbeit.zweitbetreuer_betreuerart_kurzbz
+ ? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz))
+ : this.$capitalize(this.$p.t('abgabetool/c4zweitbetreuerv2'))
+ },
+ getZweitbetreuerName(projektarbeit) {
+ return projektarbeit.zweitbetreuer?.first ?? ''
+ },
},
watch: {
projektarbeit(newVal) {
@@ -430,7 +446,8 @@ export const AbgabeStudentDetail = {
- {{$capitalize( $p.t('abgabetool/c4betreuerv2') ) }}: {{projektarbeit ? $p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz) + ' ' + projektarbeit.betreuer : ''}}
+ {{ getErstbetreuerLabel(projektarbeit) }}: {{ projektarbeit.betreuer }}
+ {{ getZweitbetreuerLabel(projektarbeit) }}: {{ getZweitbetreuerName(projektarbeit) }}
diff --git a/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js b/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
index 1c00c21e9..bdba6c191 100644
--- a/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
+++ b/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
@@ -308,6 +308,19 @@ export const AbgabetoolStudent = {
hasZweitbetreuer(projektarbeit) {
return !!(projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer)
},
+ getErstbetreuerLabel(projektarbeit) {
+ return projektarbeit.betreuerart_kurzbz
+ ? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz))
+ : this.$capitalize(this.$p.t('abgabetool/c4betreuerv2'))
+ },
+ getZweitbetreuerLabel(projektarbeit) {
+ return projektarbeit.zweitbetreuer_betreuerart_kurzbz
+ ? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz))
+ : this.$capitalize(this.$p.t('abgabetool/c4zweitbetreuerv2'))
+ },
+ getZweitbetreuerName(projektarbeit) {
+ return projektarbeit.zweitbetreuer?.first ?? ''
+ },
getErstbetreuerEmailLabel(projektarbeit) {
// with only one betreuer keep the generic label; with multiple betreuer
// distinguish the email rows by their betreuungsart bezeichnung
@@ -510,9 +523,9 @@ export const AbgabetoolStudent = {
-
{{ projektarbeit?.betreuerart_kurzbz ? $capitalize( $p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz) ) : $capitalize( $p.t('abgabetool/c4betreuerv2') ) }}
+
{{ getErstbetreuerLabel(projektarbeit) }}
- {{ projektarbeit.betreuerart_kurzbz ? projektarbeit.betreuer : '' }}
+ {{ projektarbeit.betreuer }}
@@ -521,13 +534,13 @@ export const AbgabetoolStudent = {
-
-
{{ projektarbeit.zweitbetreuer_betreuerart_kurzbz ? $p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz) : '' }}
+
+
{{ getZweitbetreuerLabel(projektarbeit) }}
- {{ projektarbeit.zweitbetreuer?.first }}
+ {{ getZweitbetreuerName(projektarbeit) }}
-
+
{{ getZweitbetreuerEmailLabel(projektarbeit) }}