From 9ebc847e8eae17e8482e07426a58c6ebb13657de Mon Sep 17 00:00:00 2001 From: Cristina Date: Thu, 22 Jan 2026 14:59:00 +0100 Subject: [PATCH 1/6] =?UTF-8?q?Added=20lvevaluierung=20phrasen=20for=20Lek?= =?UTF-8?q?toren=20=C3=9Cbersichtsseite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/phrasesupdate.php | 600 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 600 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 4e8e844dd..561fff729 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -53235,6 +53235,606 @@ I have been informed that I am under no obligation to consent to the transmissio ) ) ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'lektorseiteTitle', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Evaluation | Übersicht LV-Leitung und Lehrende', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'LV-Evaluation | Overview Course Leader and Lecturers', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluierungebeneGesamt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Evaluierung der LV erfolgt auf Gesamt-Ebene', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'This course is evaluated at the overall level', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluierungGruppen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Evaluierung der LV erfolgt auf Gruppen-Ebene', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'This course is evaluated at group level', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipVerbindlichGewaehlt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Evaluierung ist verbindlich vorgesehen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Course evaluation is mandatory', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipVerbindlichAbgewaehlt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV wird nicht evaluiert (Abwahl durch STGL)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Course evaluation is disabled (cancelled by STGL)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipAlleStudierendeAngemailt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle Studierenden wurden zur LV-Evaluierung eingeladen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'All students were invited to the course evaluation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipNichtAlleStudierendenAngemailt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Studierende müssen noch zur LV-Evaluierung eingeladen werden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Students still have to be invited to the course evaluation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipRuecklauf', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Abgeschlossene LV-Evaluierungen / zur LV-Evaluierung eingeladene Studierende', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Completed course evaluations / students invited to course evaluation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluationNotAvailable', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse LV-Evaluierung noch nicht verfügbar, LV-Reflexion noch nicht möglich.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Results of course evaluation not yet available, course reflection not yet possible.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluationAvailable', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse LV- Evaluierung verfügbar, LV-Reflexion durchzuführen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Results of course evaluation available, course reflection required.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluationReady', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse LV- Evaluierung und LV-Reflexion.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Results of course evaluation and course reflection.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'verbindlich', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'verbindlich', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'mandatory', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'abgewaehlt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'abgewählt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'disabled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'enddatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Enddatum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Enddate', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'startdatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Startdatum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Startdate', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'startdatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Startdatum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Startdate', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'gespeichertAmVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Gespeichert am {date} von {name}', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Saved on {date} von {name}', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'xEingeladeneStudierende', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => '{x} eingeladene Studierende', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '{x} invited students', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'studierendeEinladen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Studierende zur LV-Evaluierung einladen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Invite students to course evaluation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'xEmailsVersandt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => '{x} E-Mail-Einladungen versandt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '{x} invitation emails sent', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'email', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'E-Mail', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'email', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'emailVersandBereit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bereit zum Versand der E-Mail-Einladungen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Ready to send inivitation mails', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'bearbeitungNurLehrende', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bearbeitung nur durch Lehrende*n möglich', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Only lecturer of course can edit', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'bearbeitungNurLvLeitung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bearbeitung nur durch LV-Leitung möglich', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Only course leader can edit', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'notAvailableEvaluierungGruppenebene', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Evaluierung auf Gruppen-Ebene ist nicht verfügbar, da die Zuordnung Studierendenverband zu einer*m Lehrenden nicht eindeutig möglich ist', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Course evaluation at group level is not available, as it is not possible to link a specific student group to one lecturer', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'noChangeGruppenebene', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Entscheidung für Gesamt- oder Gruppen-Ebene kann nicht mehr verändert werden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Decision for overall or group level can no longer be changed', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'evalPeriodAlreadyStarted', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Evaluierungszeitfenster kann nicht mehr verändert werden, da Studierende bereits eingeladen wurden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Evaluation response window can no longer be changed, as students have already been invited', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluierungByLv', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "Die Evaluierung der LV erfolgt auf Gesamt-Ebene.

Das Start-und enddatum der LV-Evaluierung kann geändert bzw. angepasst werden, solange die Studierenden noch nicht eingelanden wurden.

Der Zugriff für Studierende ist auf dieses Evaluierungsfenster beschränkt.", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "This course is evaluated at the overall level.

The start and end dates of the course evaluation can be changed or adjusted as long as the students have not yet been invited.

Student access is limited to this evaluation response window.", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipEvaluierungByLe', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "Die Evaluierung der LV erfolgt auf Gruppen-Ebene.

Das Start-und enddatum der LV-Evaluierung kann geändert bzw. angepasst werden, solange die Studierenden noch nicht eingelanden wurden.

Der Zugriff für Studierende ist auf dieses Evaluierungsfenster beschränkt.", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "This course is evaluated at the group level.

The start and end dates of the course evaluation can be changed or adjusted as long as the students have not yet been invited.

Student access is limited to this evaluation response window.", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'infoStudierendenlink', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "Der Versand der E-Mail-Einladung zur LV-Evaluierung ist nur einmalig möglich. Jede*r Studierende*r erhält einen anonymen Zugangslink.", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "The email invitation to the course evaluation can only be sent once. Each student receives an anonymous access link.", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), // ### DOKUMENTE ERSTELLEN PHRASEN END ### // ### Personen zusammenlegen Phrasen BEGIN array( From 7ccc26c8783d7c5cbf929f1d89f5adf68fb96e23 Mon Sep 17 00:00:00 2001 From: Cristina Date: Thu, 22 Jan 2026 15:41:25 +0100 Subject: [PATCH 2/6] =?UTF-8?q?Added=20lvevaluierung=20phrasen=20for=20STG?= =?UTF-8?q?L=20=C3=9Cbersichtsseite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/phrasesupdate.php | 280 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 280 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 561fff729..67ad69732 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -53400,6 +53400,26 @@ I have been informed that I am under no obligation to consent to the transmissio 'category' => 'global', 'phrase' => 'tooltipEvaluationNotAvailable', 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse LV-Evaluierung und LV-Reflexion noch nicht verfügbar.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Results of course evaluation and course reflection not yet available.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipReflexionNotAvailable', + 'insertvon' => 'system', 'phrases' => array( array( 'sprache' => 'German', @@ -53835,6 +53855,266 @@ I have been informed that I am under no obligation to consent to the transmissio ) ) ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'stglseiteTitle', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Evaluation | Übersicht Studiengangsleitung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'LV-Evaluation | Overview Program Director', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'kfseiteTitle', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV-Evaluation | Übersicht Kompetenzfeldleitung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'LV-Evaluation | Overview Head of Competence Center', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'confirmHeader', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte bestätigen Sie:', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please confirm:', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'malveSubmitBtn', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'MALVE-STGL abschließen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Close MALVE-STGL', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'malveSubmitConfirmMessage', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ich habe alle LV-Evaluierungen des Studiengangs {studiengang} im {studiensemester} geprüft. Notwendige Maßnahmen für die STG-Weiterentwicklung wurden abgeleitet.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'I have reviewed all the course evaluations for the {studiengang} degree programme in {studiensemester}. The necessary measures for further developing the STG have been identified.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'evaluationsebene', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Evaluationsebene', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Evaluation level', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'confirmHeader', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte bestätigen Sie:', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please confirm:', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'geprueft', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Geprüft', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Checked', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipGeprueft', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Optional zur besseren persönlichen Übersicht', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Optional for better personal overview.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'lvKeinQuellkurs', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'LV mit keinem Quellkurs verknüpft', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Course not linked to any (Moodle) source template', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'stgWeiterentwicklungBtn', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'STG-Weiterentwicklung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'STG-Continued Improvement', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipStgWeiterentwicklungBtn', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'MALVE-STGL: Schnittstelle zur Maßnahmenableitung für den STG in OP.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'MALVE-STGL: An interface for deriving measures for the degree programme in OP.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'lvevaluierung', + 'category' => 'global', + 'phrase' => 'tooltipLvWeiterentwicklungBtn', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Schnittstelle zur Maßnahmenableitung für die einzelnen LVs in OP.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Interface for deriving measures for individual courses in OP.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), // ### DOKUMENTE ERSTELLEN PHRASEN END ### // ### Personen zusammenlegen Phrasen BEGIN array( From 27a91de5f6934d373e4d50c8b03fdc2b1d163e8b Mon Sep 17 00:00:00 2001 From: Cristina Date: Thu, 22 Jan 2026 15:51:05 +0100 Subject: [PATCH 3/6] Added app lvevaluierung to system.tbl_app --- system/dbupdate_3.4/62063_lv_evaluierung.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.4/62063_lv_evaluierung.php b/system/dbupdate_3.4/62063_lv_evaluierung.php index 5a0714772..0aa8d9105 100644 --- a/system/dbupdate_3.4/62063_lv_evaluierung.php +++ b/system/dbupdate_3.4/62063_lv_evaluierung.php @@ -1,6 +1,19 @@ db_query("SELECT 1 FROM system.tbl_app WHERE app='lvevaluierung' LIMIT 1")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_app (app) VALUES ('lvevaluierung');"; + + if(!$db->db_query($qry)) + echo 'system.tbl_app: '.$db->db_last_error().'
'; + else + echo ' system.tbl_app: lvevaluierung hinzugefügt
'; + } +} + //Add column evaluierung to lehre.tbl_lehrveranstaltung if(!@$db->db_query("SELECT evaluierung FROM lehre.tbl_lehrveranstaltung LIMIT 1")) { @@ -12,4 +25,4 @@ if(!@$db->db_query("SELECT evaluierung FROM lehre.tbl_lehrveranstaltung LIMIT 1" echo 'lehre.tbl_lehrveranstaltung '.$db->db_last_error().'
'; else echo '
Spalte evaluierung zu Tabelle lehre.tbl_lehrveranstaltung hinzugefügt'; -} +} \ No newline at end of file From c57eb1b8de9108dcfbbaa561bf75bc70095bfa98 Mon Sep 17 00:00:00 2001 From: Cristina Date: Mon, 2 Mar 2026 11:00:05 +0100 Subject: [PATCH 4/6] Adapted method getLvLeitung: filter Dummy and allow only active Benutzer/Person --- application/models/education/Lehrveranstaltung_model.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index ccac33bc7..5422c290e 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -402,14 +402,17 @@ class Lehrveranstaltung_model extends DB_Model SELECT vorname, nachname, mitarbeiter_uid, lehrfunktion_kurzbz FROM - lehre.tbl_lehreinheit + lehre.tbl_lehreinheit le JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id) JOIN public.tbl_benutzer b ON b.uid = lema.mitarbeiter_uid JOIN public.tbl_person p using (person_id) WHERE - tbl_lehreinheit.lehrveranstaltung_id= ? - AND tbl_lehreinheit.studiensemester_kurzbz = ? + le.lehrveranstaltung_id= ? + AND le.studiensemester_kurzbz = ? AND lehrfunktion_kurzbz = 'LV-Leitung' + AND lema.mitarbeiter_uid NOT like '_Dummy%' + AND b.aktiv = TRUE + AND p.aktiv = TRUE ORDER BY lema.insertamum DESC LIMIT 1 From 3f53c5febacf6b0a1913d97248ed20b9db0e4542 Mon Sep 17 00:00:00 2001 From: Cristina Date: Thu, 2 Apr 2026 14:23:59 +0200 Subject: [PATCH 5/6] Added: method getKFLByUID to get Kompetenzfeldleitung by UID --- .../models/person/Benutzerfunktion_model.php | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/application/models/person/Benutzerfunktion_model.php b/application/models/person/Benutzerfunktion_model.php index 8c43e4f84..dff422b7d 100644 --- a/application/models/person/Benutzerfunktion_model.php +++ b/application/models/person/Benutzerfunktion_model.php @@ -261,6 +261,42 @@ class Benutzerfunktion_model extends DB_Model } + /** + * Get active Kompetenzfeldleitung bei UID. + * + * @param $uid + * @return array|stdClass|null + */ + public function getKFLByUID($uid) + { + $query = ' + SELECT + bf.uid, + bf.oe_kurzbz, + oe.organisationseinheittyp_kurzbz + FROM + public.tbl_benutzerfunktion bf + JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz) + JOIN public.tbl_benutzer b USING (uid) + WHERE + b.uid = ? + AND b.aktiv = TRUE + AND funktion_kurzbz = \'Leitung\' + AND organisationseinheittyp_kurzbz = \'Kompetenzfeld\' + AND (datum_von IS NULL OR datum_von <= now()) + AND (datum_bis IS NULL OR datum_bis >= now()) + '; + + $parameters_array = array(); + if (is_string($uid)) + { + $parameters_array[] = $uid; + } + + return $this->execQuery($query, $parameters_array); + } + + public function insertBenutzerfunktion($Json) { unset($Json['benutzerfunktion_id']); From b2538075ee50e6e596d897a00c68e9f1932cd154 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 7 Apr 2026 10:35:06 +0200 Subject: [PATCH 6/6] use STV_TAGS_ENABLED config when preparing sql statement for students list to query tags only if enabled --- .../api/frontend/v1/stv/Students.php | 76 +++++++++++-------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Students.php b/application/controllers/api/frontend/v1/stv/Students.php index 55f4b8976..f87e527e0 100644 --- a/application/controllers/api/frontend/v1/stv/Students.php +++ b/application/controllers/api/frontend/v1/stv/Students.php @@ -626,7 +626,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); $result = $this->PrestudentModel->loadWhere($where); - + $data = $this->getDataOrTerminateWithError($result); $this->terminateWithSuccess($data); @@ -851,40 +851,44 @@ class Students extends FHCAPI_Controller $stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL'; $this->load->config('stv'); - $tags = $this->config->item('stv_prestudent_tags'); - $whereTags = ''; - if (is_array($tags) && !isEmptyArray($tags)) { - $tags = array_keys($tags); + if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED) + { + $tags = $this->config->item('stv_prestudent_tags'); - foreach ($tags as $key => $tag) { - $tags[$key] = $this->db->escape($tag); + $whereTags = ''; + if (is_array($tags) && !isEmptyArray($tags)) { + $tags = array_keys($tags); + + foreach ($tags as $key => $tag) { + $tags[$key] = $this->db->escape($tag); + } + $whereTags = " AND nt.typ_kurzbz IN (" . implode(",", $tags) . ")"; } - $whereTags = " AND nt.typ_kurzbz IN (" . implode(",", $tags) . ")"; + $subQueryTag = " + ( + SELECT + tag.prestudent_id, + COALESCE(json_agg(tag ORDER BY tag.done), '[]'::json) AS tags + FROM ( + SELECT DISTINCT ON (n.notiz_id) + n.notiz_id AS id, + nt.typ_kurzbz, + array_to_json(nt.bezeichnung_mehrsprachig)->>0 AS beschreibung, + n.text AS notiz, + nt.style, + n.erledigt AS done, + nz.prestudent_id + FROM public.tbl_notizzuordnung AS nz + JOIN public.tbl_notiz AS n ON nz.notiz_id = n.notiz_id + JOIN public.tbl_notiz_typ AS nt ON n.typ = nt.typ_kurzbz " + . $whereTags . + " + ) AS tag + GROUP BY tag.prestudent_id + ) AS tag_data_agg + "; } - $subQueryTag = " - ( - SELECT - tag.prestudent_id, - COALESCE(json_agg(tag ORDER BY tag.done), '[]'::json) AS tags - FROM ( - SELECT DISTINCT ON (n.notiz_id) - n.notiz_id AS id, - nt.typ_kurzbz, - array_to_json(nt.bezeichnung_mehrsprachig)->>0 AS beschreibung, - n.text AS notiz, - nt.style, - n.erledigt AS done, - nz.prestudent_id - FROM public.tbl_notizzuordnung AS nz - JOIN public.tbl_notiz AS n ON nz.notiz_id = n.notiz_id - JOIN public.tbl_notiz_typ AS nt ON n.typ = nt.typ_kurzbz " - . $whereTags . - " - ) AS tag - GROUP BY tag.prestudent_id - ) AS tag_data_agg - "; $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT'); $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id'); @@ -907,11 +911,17 @@ class Students extends FHCAPI_Controller AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ') AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')', 'LEFT'); - $this->PrestudentModel->addJoin($subQueryTag, 'tag_data_agg.prestudent_id = tbl_prestudent.prestudent_id', 'LEFT'); + if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED) + { + $this->PrestudentModel->addJoin($subQueryTag, 'tag_data_agg.prestudent_id = tbl_prestudent.prestudent_id', 'LEFT'); + } $this->PrestudentModel->addSelect("b.uid"); - $this->PrestudentModel->addSelect('tag_data_agg.tags'); + if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED) + { + $this->PrestudentModel->addSelect('tag_data_agg.tags'); + } $this->PrestudentModel->addSelect('titelpre'); $this->PrestudentModel->addSelect('nachname'); $this->PrestudentModel->addSelect('vorname');