From 4ccbdecc48ba3eaad48528e798b886dc72f879b7 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Mon, 10 Feb 2025 13:37:53 +0100 Subject: [PATCH 01/10] added phrases for new Beurteilungsformular 2025 --- system/phrasesupdate.php | 309 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 309 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index cfaf85ec7..f8a2763e3 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -37297,7 +37297,316 @@ array( 'insertvon' => 'system' ) ) + ), + // PROJEKTARBEITSBEURTEILUNG SS2025 PHRASEN --------------------------------------------------------------------------- + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'maxPunkte', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Max. Punkte', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Max. points', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'bewertung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bewertung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Score', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'problemstellungZieldefinition', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Problemstellung und Zieldefinition', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'problemstellungZieldefinitionText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Problemstellung ist klar und präzise definiert und in einen wissenschaftlichen Kontext eingebettet. +Die Zielsetzung sowie eventuelle Messgrößen sind eindeutig formuliert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methodikLoesungsansatz', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Methodik und Lösungsansatz', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methodikLoesungsansatzText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das methodische Vorgehen ist logisch und nachvollziehbar strukturiert, passend zur Zielsetzung, +und die angewandten Methoden sind korrekt und fundiert umgesetzt. +Die Methodik ist fachspezifisch angemessen, literaturbasiert begründet und wissenschaftlich vertretbar.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ergebnisseDiskussion', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse und Diskussion', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ergebnisseDiskussionText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Ergebnisse werden fundiert analysiert und in Bezug auf die Zielsetzung schlüssig interpretiert. +Die Diskussion reflektiert die Relevanz und Grenzen der Ergebnisse kritisch und ist logisch strukturiert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'strukturAufbau', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Struktur und Aufbau', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'strukturAufbauText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Arbeit folgt einer logischen, klaren Gliederung und einem konsistenten roten Faden. +Verzeichnisse, Grafiken, Tabellen und der Text sind gemäß den aktuell gültigen wissenschaftlichen Richtlinien der FH Technikum Wien aufbereitet.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'stilAusdruck', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stil und Ausdruck', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'stilAusdruckText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Der sprachliche Ausdruck ist präzise, +fachlich korrekt und erfüllt die Anforderungen an gendergerechte Sprache gemäß den geltenden Richtlinien der FH Technikum Wien.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zitierregelnQuellenangaben', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zitierregeln und Quellenangaben', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zitierregelnQuellenangabenText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Umfang, Qualität und Aktualität der verarbeiteten Quellen sind angemessen +und repräsentieren den aktuellen Stand der Forschung zum Thema. Die Zitierregeln (IEEE oder Harvard) werden konsequent und korrekt angewendet.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'notenschluesselHinweisGewichtungEinzeln', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Falls ein Kriterium negativ bewertet wird, ist die {0} insgesamt als negativ zu beurteilen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'If a criterion has a negative score, the {0} is to be assessed as negative overall.', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) + // PROJEKTARBEITSBEURTEILUNG SS2025 ENDE --------------------------------------------------------------------------- ); From 92f3f0d89c71c1b6eb89287cef39d5adc6b9f995 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Wed, 12 Feb 2025 19:15:43 +0100 Subject: [PATCH 02/10] changed Projektarbeitsbeurteilung phrases --- system/phrasesupdate.php | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index f8a2763e3..59da9ab39 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -37327,13 +37327,13 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Bewertung', + 'text' => 'Bewertung (Prozent)', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Score', + 'text' => 'Score (percentage)', 'description' => '', 'insertvon' => 'system' ) @@ -37353,7 +37353,7 @@ array( ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Problem Definition and Objective Setting', 'description' => '', 'insertvon' => 'system' ) @@ -37374,7 +37374,8 @@ Die Zielsetzung sowie eventuelle Messgrößen sind eindeutig formuliert.', ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The problem is clearly and precisely defined and embedded in a scientific context. +The objective, along with any potential metrics, is clearly formulated.', 'description' => '', 'insertvon' => 'system' ) @@ -37394,7 +37395,7 @@ Die Zielsetzung sowie eventuelle Messgrößen sind eindeutig formuliert.', ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Methodology and Approach', 'description' => '', 'insertvon' => 'system' ) @@ -37416,7 +37417,9 @@ Die Methodik ist fachspezifisch angemessen, literaturbasiert begründet und wiss ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The methodological approach is logically and comprehensively structured, +aligned with the objective, and the applied methods are implemented correctly and soundly. +The methodology is appropriate to the field, justified based on literature, and scientifically valid.', 'description' => '', 'insertvon' => 'system' ) @@ -37436,7 +37439,7 @@ Die Methodik ist fachspezifisch angemessen, literaturbasiert begründet und wiss ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Results and Discussion', 'description' => '', 'insertvon' => 'system' ) @@ -37457,7 +37460,9 @@ Die Diskussion reflektiert die Relevanz und Grenzen der Ergebnisse kritisch und ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The quality of the solution sufficiently meets the objective. +The results are thoroughly analyzed and coherently interpreted with respect to the objective. +The discussion critically reflects on the relevance and limitations of the results and is logically structured.', 'description' => '', 'insertvon' => 'system' ) @@ -37477,7 +37482,7 @@ Die Diskussion reflektiert die Relevanz und Grenzen der Ergebnisse kritisch und ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Structure and Organization', 'description' => '', 'insertvon' => 'system' ) @@ -37498,7 +37503,8 @@ Verzeichnisse, Grafiken, Tabellen und der Text sind gemäß den aktuell gültige ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The work follows a logical and clear outline with a consistent narrative thread. +Directories, graphics, tables, and text are prepared in accordance with the currently valid scientific guidelines of FH Technikum Wien.', 'description' => '', 'insertvon' => 'system' ) @@ -37518,7 +37524,7 @@ Verzeichnisse, Grafiken, Tabellen und der Text sind gemäß den aktuell gültige ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Style and Expression', 'description' => '', 'insertvon' => 'system' ) @@ -37539,7 +37545,8 @@ fachlich korrekt und erfüllt die Anforderungen an gendergerechte Sprache gemä ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The linguistic expression is precise, professionally accurate, +and meets the requirements of gender-sensitive language as per the applicable guidelines of FH Technikum Wien.', 'description' => '', 'insertvon' => 'system' ) @@ -37559,7 +37566,7 @@ fachlich korrekt und erfüllt die Anforderungen an gendergerechte Sprache gemä ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'Citation Rules and References', 'description' => '', 'insertvon' => 'system' ) @@ -37580,7 +37587,8 @@ und repräsentieren den aktuellen Stand der Forschung zum Thema. Die Zitierregel ), array( 'sprache' => 'English', - 'text' => '', + 'text' => 'The scope, quality, and timeliness of the sources processed are appropriate +and represent the current state of research on the topic. The prescribed citation rules are consistently and correctly applied.', 'description' => '', 'insertvon' => 'system' ) @@ -37594,13 +37602,13 @@ und repräsentieren den aktuellen Stand der Forschung zum Thema. Die Zitierregel 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Falls ein Kriterium negativ bewertet wird, ist die {0} insgesamt als negativ zu beurteilen.', + 'text' => 'Wenn ein Kriterium mit unter 50% bewertet wird, ist die Arbeit insgesamt als negativ zu beurteilen.', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'If a criterion has a negative score, the {0} is to be assessed as negative overall.', + 'text' => 'Each criterion must receive a minimum score of 50%; otherwise, the entire work is rated negatively.', 'description' => '', 'insertvon' => 'system' ) From de895362be5d3a8f520864be8daa7ef43fcaf8a2 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Wed, 12 Feb 2025 19:28:27 +0100 Subject: [PATCH 03/10] changed Projektarbeitsbeurteilung phrases even more --- system/phrasesupdate.php | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 59da9ab39..51399bbf2 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -37613,6 +37613,46 @@ and represent the current state of research on the topic. The prescribed citatio 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'begruendung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Begründung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Overall comment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'begruendungVerpflichtend', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Eine Begründung der Bewertung ist notwendig', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'An overall comment is mandatory and must be completed', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) // PROJEKTARBEITSBEURTEILUNG SS2025 ENDE --------------------------------------------------------------------------- ); From 7083955702e871fcd4c14b44a150e2cb6b831360 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Fri, 14 Feb 2025 16:44:33 +0100 Subject: [PATCH 04/10] changed Proektarbeitsbeurteilung phrases --- system/phrasesupdate.php | 41 +++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 51399bbf2..85373ff28 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -37327,13 +37327,35 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Bewertung (Prozent)', + 'text' => 'Erfüllungsgrad (Prozent) zum Ausfüllen', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Score (percentage)', + 'text' => 'Degree of Fulfilment (Percentage) to Fill In', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'details', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Details (angemessener und korrekter Einsatz von +Werkzeugen und Technologien in jedem Schritt)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Details +(appropriate and correct use of tools and technologies at each step)', 'description' => '', 'insertvon' => 'system' ) @@ -37453,8 +37475,9 @@ The methodology is appropriate to the field, justified based on literature, and 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die Ergebnisse werden fundiert analysiert und in Bezug auf die Zielsetzung schlüssig interpretiert. -Die Diskussion reflektiert die Relevanz und Grenzen der Ergebnisse kritisch und ist logisch strukturiert.', + 'text' => 'Die Qualität der Lösung ist bezogen auf die Zielsetzung ausreichend. + Die Ergebnisse werden fundiert analysiert und in Bezug auf die Zielsetzung schlüssig interpretiert. + Die Diskussion reflektiert die Relevanz und Grenzen der Ergebnisse kritisch und ist logisch strukturiert.', 'description' => '', 'insertvon' => 'system' ), @@ -37602,7 +37625,7 @@ and represent the current state of research on the topic. The prescribed citatio 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Wenn ein Kriterium mit unter 50% bewertet wird, ist die Arbeit insgesamt als negativ zu beurteilen.', + 'text' => 'Jedes Kriterium muss mit mind. 50% bewertet werden, sonst ist die gesamte Arbeit negativ.', 'description' => '', 'insertvon' => 'system' ), @@ -37617,12 +37640,12 @@ and represent the current state of research on the topic. The prescribed citatio array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', - 'phrase' => 'begruendung', + 'phrase' => 'gesamtkommentar', 'insertvon' => 'system', 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Begründung', + 'text' => 'Gesamtkommentar', 'description' => '', 'insertvon' => 'system' ), @@ -37637,12 +37660,12 @@ and represent the current state of research on the topic. The prescribed citatio array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', - 'phrase' => 'begruendungVerpflichtend', + 'phrase' => 'gesamtkommentarVerpflichtend', 'insertvon' => 'system', 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Eine Begründung der Bewertung ist notwendig', + 'text' => 'Gesamtkommentar verpflichtend auszufüllen', 'description' => '', 'insertvon' => 'system' ), From 57eec9b940dc15af0289ca29decf5cdd3e827fee Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Fri, 14 Feb 2025 23:47:19 +0100 Subject: [PATCH 05/10] adapted document export to new Projektarbeit version (percent assessment) --- cis/private/lehre/abgabe_lektor_details.php | 8 +- cis/private/lehre/abgabe_student.php | 4 +- cis/private/lehre/abgabe_student_details.php | 4 +- .../projektbeurteilungDocumentExport.php | 45 ++++ cis/private/pdfExport.php | 54 ++-- include/projektarbeit.class.php | 248 +++++++++++------- 6 files changed, 238 insertions(+), 125 deletions(-) create mode 100644 cis/private/lehre/projektbeurteilungDocumentExport.php diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index a8705e7f9..74722607f 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -125,7 +125,7 @@ $projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz; // paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden $paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); -if(!is_numeric($paIsCurrent) || $paIsCurrent < 0) +if(!is_bool($paIsCurrent)) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } @@ -166,7 +166,7 @@ if(in_array($betreuerart, array('Erstbegutachter', 'Senatsvorsitz'))) } // Mail mit Token an Zweitbegutachter senden - if (count($zweitbetreuerArr) > 0 && $paIsCurrent >= 1 && isset($_GET['zweitbegutachtertoken']) && isset($_GET['zweitbetreuer_person_id'])) + if (count($zweitbetreuerArr) > 0 && $paIsCurrent === true && isset($_GET['zweitbegutachtertoken']) && isset($_GET['zweitbetreuer_person_id'])) { $qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid); if(!$result_std=$db->db_query($qry_std)) @@ -482,7 +482,7 @@ $htmlstr .= "\n"; $htmlstr .= ""; $htmlstr .= ""; } diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 860eb7579..f040ed034 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -472,8 +472,8 @@ if($command=="update" && $error!=true) else { // paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden - $num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); - if(!is_numeric($num_rows_sem) || $num_rows_sem < 0) + $paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); + if(!is_bool($paIsCurrent)) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } diff --git a/cis/private/lehre/projektbeurteilungDocumentExport.php b/cis/private/lehre/projektbeurteilungDocumentExport.php new file mode 100644 index 000000000..195650a24 --- /dev/null +++ b/cis/private/lehre/projektbeurteilungDocumentExport.php @@ -0,0 +1,45 @@ +getBerechtigungen($user); + +$projektarbeit = new projektarbeit(); +$projektarbeit->load($_GET['projektarbeit_id']); + +$betreuer = new person(); +$betreuer->getPersonFromBenutzer($user); + +//Überprüft ob es der Betreuer oder der Student ist +if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) + die("

Sie haben keine Berechtigung für diese Aktion.

"); + +$projektarbeitVorlage = new projektarbeit(); + +// passende Vorlage holen +$vorlage = $projektarbeitVorlage->getVorlage($_GET['projektarbeit_id'], $_GET['betreuerart_kurzbz']); + + +if ($vorlage == null) + die("

".$projektarbeitVorlage->errormsg."

"); + +// weiterleiten auf Dokumentexport +header('Location: ' . APP_ROOT . '/cis/private/pdfExport.php?xml=projektarbeitsbeurteilung.xml.php' + .'&xsl='.$vorlage.'&betreuerart_kurzbz=' . $_GET['betreuerart_kurzbz'] + . '&projektarbeit_id=' . $_GET['projektarbeit_id'] . '&person_id=' . $_GET['person_id']. '&uid=' . $user +); +die(); diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index ad2bb1fae..7393a084c 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -196,41 +196,41 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf') else $output = 'pdf'; -if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung')) -{ - if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id'])) - die('Fehlerhafte Parameteruebergabe'); +//~ if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung')) +//~ { + //~ if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id'])) + //~ die('Fehlerhafte Parameteruebergabe'); - $projektarbeit = new projektarbeit(); - $projektarbeit->load($_GET['projektarbeit_id']); + //~ $projektarbeit = new projektarbeit(); + //~ $projektarbeit->load($_GET['projektarbeit_id']); - $betreuer = new person(); - $betreuer->getPersonFromBenutzer($user); + //~ $betreuer = new person(); + //~ $betreuer->getPersonFromBenutzer($user); - //Überprüft ob es der Betreuer oder der Student ist - if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) - die("

Sie haben keine Berechtigung für diese Aktion.

"); + //~ //Überprüft ob es der Betreuer oder der Student ist + //~ if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) + //~ die("

Sie haben keine Berechtigung für diese Aktion.

"); - switch ($_GET['betreuerart_kurzbz']) - { - case 'Begutachter' : - case 'Senatsvorsitz' : - $xsl = 'ProjektBeurteilungBA'; - break; - case 'Erstbegutachter' : - $xsl = 'ProjektBeurteilungMAErst'; - break; - case 'Zweitbegutachter' : - $xsl = 'ProjektBeurteilungMAZweit'; - break; - } + //~ switch ($_GET['betreuerart_kurzbz']) + //~ { + //~ case 'Begutachter' : + //~ case 'Senatsvorsitz' : + //~ $xsl = 'ProjektBeurteilungBA'; + //~ break; + //~ case 'Erstbegutachter' : + //~ $xsl = 'ProjektBeurteilungMAErst'; + //~ break; + //~ case 'Zweitbegutachter' : + //~ $xsl = 'ProjektBeurteilungMAZweit'; + //~ break; + //~ } - $allowed = true; -} + //~ $allowed = true; +//~ } $konto = new konto(); -if ((((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) || (isset($allowed) && $allowed === true)) +if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) { $buchungstypen = array(); if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 783a0670b..5f07cf69d 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher and + * Rudolf Hangl . */ /** * Klasse projektarbeit @@ -27,7 +27,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php'); class projektarbeit extends basis_db { - public $new; // boolean + public $new; // boolean public $result = array(); // adresse Objekt //Tabellenspalten @@ -59,6 +59,37 @@ class projektarbeit extends basis_db public $abgabedatum; + // Welche Version der Projektarbeit wird in welchem Semester verwendet + private $_versions = array( + 'Diplom' => array( + 'SS2025' => 3, + 'SS2023' => 2, + 'SS2022' => 1 + ), + 'Others' => array( + 'SS2025' => 2, + 'SS2022' => 1 + ) + ); + + // welche Vorlagen werden für welche Projekarbeitsversion verwendet (beginnend mit 0) + private $_projektarbeitVorlageMappings = array( + 'Begutachter' => array( + 2 => 'ProjektBeurteilungBAProzent', + 0 => 'ProjektBeurteilungBA' + ), + 'Senatsvorsitz' => array( + 2 => 'ProjektBeurteilungBAProzent', + 0 => 'ProjektBeurteilungBA' + ), + 'Erstbegutachter' => array( + 3 => 'ProjektBeurteilungMAProzent', + 0 => 'ProjektBeurteilungMAErst' + ), + 'Zweitbegutachter' => array( + 0 => 'ProjektBeurteilungMAZweit' + ) + ); /** * Konstruktor @@ -233,25 +264,25 @@ class projektarbeit extends basis_db $qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte, beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung, insertamum, insertvon, updateamum, updatevon, titel_english, final) VALUES('. - $this->db_add_param($this->projekttyp_kurzbz).', '. - $this->db_add_param($this->titel).', '. - $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. - $this->db_add_param($this->student_uid).', '. - $this->db_add_param($this->firma_id, FHC_INTEGER).', '. - $this->db_add_param($this->note).', '. - $this->db_add_param($this->punkte).', '. - $this->db_add_param($this->beginn).', '. - $this->db_add_param($this->ende).', '. - $this->db_add_param($this->faktor).', '. - $this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '. - $this->db_add_param($this->gesperrtbis).', '. - $this->db_add_param($this->stundensatz).', '. - $this->db_add_param($this->gesamtstunden).', '. - $this->db_add_param($this->themenbereich).', '. - $this->db_add_param($this->anmerkung).', now(), '. - $this->db_add_param($this->insertvon).', now(), '. - $this->db_add_param($this->updatevon).','. - $this->db_add_param($this->titel_english).','. + $this->db_add_param($this->projekttyp_kurzbz).', '. + $this->db_add_param($this->titel).', '. + $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. + $this->db_add_param($this->student_uid).', '. + $this->db_add_param($this->firma_id, FHC_INTEGER).', '. + $this->db_add_param($this->note).', '. + $this->db_add_param($this->punkte).', '. + $this->db_add_param($this->beginn).', '. + $this->db_add_param($this->ende).', '. + $this->db_add_param($this->faktor).', '. + $this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '. + $this->db_add_param($this->gesperrtbis).', '. + $this->db_add_param($this->stundensatz).', '. + $this->db_add_param($this->gesamtstunden).', '. + $this->db_add_param($this->themenbereich).', '. + $this->db_add_param($this->anmerkung).', now(), '. + $this->db_add_param($this->insertvon).', now(), '. + $this->db_add_param($this->updatevon).','. + $this->db_add_param($this->titel_english).','. $this->db_add_param($this->final, FHC_BOOLEAN).');'; } else @@ -471,92 +502,129 @@ class projektarbeit extends basis_db } /** - * Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester). - * Masterarbeiten sind ab der Änderung zur Gewichtung der Punkte aktuell, - * Bachelorarbeiten schon ab dem Umstieg auf das Online Beurteilungsformular. + * Prüft ob Projektarbeit aktuell ist (also zurzeit online bewertet wird). * @param $projektarbeit_id - * @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell + * @return boolean */ public function projektarbeitIsCurrent($projektarbeit_id) { + $version = $this->getVersion($projektarbeit_id); // paarbeit sollte nur ab einem Studiensemester online bewertet werden - $qry="SELECT 1 - FROM lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." - AND - ( - ( - projekttyp_kurzbz = 'Diplom' - AND tbl_studiensemester.start::date >= ( - SELECT start - FROM public.tbl_studiensemester - WHERE studiensemester_kurzbz = 'SS2023' - )::date - ) - OR - ( - projekttyp_kurzbz <> 'Diplom' - AND tbl_studiensemester.start::date >= ( - SELECT start - FROM public.tbl_studiensemester - WHERE studiensemester_kurzbz = 'SS2022' - )::date - ) - ) - LIMIT 1"; - - $result_sem=$this->db_query($qry); - - if (!$result_sem) - { - $this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität"; - return -1; - } - - $num_rows = $this->db_num_rows($result_sem); - - if ($num_rows < 0) - { - $this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten"; - } - - return $num_rows; + return $version === null ? null : $version->isCurrent; } /** - * Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester), vor der Änderung zur Gewichtung der Punkte. + * Holt sich Version der Projektarbeit. + * Liefert auch mit, ob die Version die aktuellste ist. + * z.B.: Masterarbeiten waren ab der Änderung zur Gewichtung der Punkte aktuell, + * Bachelorarbeiten waren ab dem Umstieg auf das Online Beurteilungsformular aktuell. * @param $projektarbeit_id - * @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell + * @return objekt mit Versionsinfo, null im Fehlerfall */ - public function projektarbeitIsCurrentBeforeWeightening($projektarbeit_id) + public function getVersion($projektarbeit_id) { // paarbeit sollte nur ab einem Studiensemester online bewertet werden - $qry="SELECT 1 - FROM lehre.tbl_projektarbeit + $qry=" + SELECT + CASE + WHEN semesters_diplom.studiensemester_kurzbz IS NOT NULL + THEN semesters_diplom.studiensemester_kurzbz + ELSE semesters.studiensemester_kurzbz + END AS version_studiensemester_kurzbz, + pa.projekttyp_kurzbz + FROM + lehre.tbl_projektarbeit pa JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." - AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date - LIMIT 1"; + JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz) + LEFT JOIN ( + SELECT + start, studiensemester_kurzbz + FROM + public.tbl_studiensemester + WHERE + studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Others'])).") + ) semesters ON sem.start >= semesters.start AND pa.projekttyp_kurzbz <> 'Diplom' + LEFT JOIN ( + SELECT + start, studiensemester_kurzbz + FROM + public.tbl_studiensemester + WHERE + studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Diplom'])).") + ) semesters_diplom ON sem.start >= semesters_diplom.start AND pa.projekttyp_kurzbz = 'Diplom' + WHERE + projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." + ORDER BY + semesters.start DESC, semesters_diplom.start DESC + LIMIT 1"; - $result_sem=$this->db_query($qry); + $errormsg = "Fehler beim Ermitteln der Projektarbeit Version"; - if (!$result_sem) + if ($this->db_query($qry)) { - $this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität"; - return -1; + if ($row = $this->db_fetch_object()) + { + // known project types + if (isset($this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz])) + { + $row->versionNumber = $this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz]; + $row->isCurrent = + $this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz] + == max($this->_versions[$row->projekttyp_kurzbz]); + + } + elseif (isset($this->_versions['Others'][$row->version_studiensemester_kurzbz])) + { + $row->versionNumber = $this->_versions['Others'][$row->version_studiensemester_kurzbz]; + $row->isCurrent = + $this->_versions['Others'][$row->version_studiensemester_kurzbz] + == max($this->_versions['Others']); + } + else + { + $row->isCurrent = false; + $row->versionNumber = 0; + } + return $row; + } + else + { + $this->errormsg = $errormsg; + return null; + } + } + else + { + $this->errormsg = $errormsg; + return null; + } + } + + /** + * Holt Version einer Projektarbeit für eine Betreuerart. + * @param $projektarbeit_id + * @param $betreuerart_kurzbz + * @return string Vorlagenname + */ + public function getVorlage($projektarbeit_id, $betreuerart_kurzbz) + { + $version = $this->getVersion($projektarbeit_id); + + if ($version == null) return null; + + $key = 0; + if (isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz])) + { + foreach ($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz] as $versionNumber => $vorlage) + { + if ($versionNumber <= $version->versionNumber && $versionNumber > $key) $key = $versionNumber; + } } - $num_rows = $this->db_num_rows($result_sem); - - if ($num_rows < 0) - { - $this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten"; - } - - return $num_rows; + return + isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key]) + ? $this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key] + : ''; } } ?> From 9fb2ea4ae31b16a30120212924111581c2d4c4d0 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Mon, 17 Feb 2025 19:03:53 +0100 Subject: [PATCH 06/10] Projektarbeitsbeurteilung: added authorization (Berechtigungen) check to document export --- .../projektbeurteilungDocumentExport.php | 23 +-------- cis/private/pdfExport.php | 50 ++++++++----------- include/projektarbeit.class.php | 19 ++++++- 3 files changed, 41 insertions(+), 51 deletions(-) diff --git a/cis/private/lehre/projektbeurteilungDocumentExport.php b/cis/private/lehre/projektbeurteilungDocumentExport.php index 195650a24..08f7127ee 100644 --- a/cis/private/lehre/projektbeurteilungDocumentExport.php +++ b/cis/private/lehre/projektbeurteilungDocumentExport.php @@ -6,40 +6,21 @@ * daraus ein PDF */ require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); require_once('../../../include/projektarbeit.class.php'); -require_once('../../../include/person.class.php'); if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id'])) die('Fehlerhafte Parameteruebergabe'); -$user = get_uid(); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -$projektarbeit = new projektarbeit(); -$projektarbeit->load($_GET['projektarbeit_id']); - -$betreuer = new person(); -$betreuer->getPersonFromBenutzer($user); - -//Überprüft ob es der Betreuer oder der Student ist -if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) - die("

Sie haben keine Berechtigung für diese Aktion.

"); - -$projektarbeitVorlage = new projektarbeit(); - // passende Vorlage holen +$projektarbeitVorlage = new projektarbeit(); $vorlage = $projektarbeitVorlage->getVorlage($_GET['projektarbeit_id'], $_GET['betreuerart_kurzbz']); - if ($vorlage == null) die("

".$projektarbeitVorlage->errormsg."

"); // weiterleiten auf Dokumentexport header('Location: ' . APP_ROOT . '/cis/private/pdfExport.php?xml=projektarbeitsbeurteilung.xml.php' .'&xsl='.$vorlage.'&betreuerart_kurzbz=' . $_GET['betreuerart_kurzbz'] - . '&projektarbeit_id=' . $_GET['projektarbeit_id'] . '&person_id=' . $_GET['person_id']. '&uid=' . $user + . '&projektarbeit_id=' . $_GET['projektarbeit_id'] . '&person_id=' . $_GET['person_id'] ); die(); diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 7393a084c..d4638d1bd 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -196,41 +196,35 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf') else $output = 'pdf'; -//~ if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung')) -//~ { - //~ if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id'])) - //~ die('Fehlerhafte Parameteruebergabe'); +// Berechtigungprüfung Projektarbeit +if (isset($_GET['projektarbeit_id'])) +{ + $projektarbeitVorlage = new projektarbeit(); + $allePaVorlagen = $projektarbeitVorlage->getAllVorlagen(); - //~ $projektarbeit = new projektarbeit(); - //~ $projektarbeit->load($_GET['projektarbeit_id']); + if (!is_array($allePaVorlagen)) + die("

Fehler beim Holen der Projektarbeit Vorlagen

"); - //~ $betreuer = new person(); - //~ $betreuer->getPersonFromBenutzer($user); + if (in_array($xsl, $allePaVorlagen)) + { + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($user); - //~ //Überprüft ob es der Betreuer oder der Student ist - //~ if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) - //~ die("

Sie haben keine Berechtigung für diese Aktion.

"); + $projektarbeit = new projektarbeit(); + $projektarbeit->load($_GET['projektarbeit_id']); - //~ switch ($_GET['betreuerart_kurzbz']) - //~ { - //~ case 'Begutachter' : - //~ case 'Senatsvorsitz' : - //~ $xsl = 'ProjektBeurteilungBA'; - //~ break; - //~ case 'Erstbegutachter' : - //~ $xsl = 'ProjektBeurteilungMAErst'; - //~ break; - //~ case 'Zweitbegutachter' : - //~ $xsl = 'ProjektBeurteilungMAZweit'; - //~ break; - //~ } - - //~ $allowed = true; -//~ } + $betreuer = new person(); + $betreuer->getPersonFromBenutzer($user); + //Überprüft ob es der Betreuer oder der Student ist + if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz')) + die("

Sie haben keine Berechtigung für diese Aktion.

"); + $paBerechtigt = true; + } +} $konto = new konto(); -if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) +if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin') || (isset($paBerechtigt) && $paBerechtigt === true)) { $buchungstypen = array(); if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 5f07cf69d..c191550b7 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -59,7 +59,7 @@ class projektarbeit extends basis_db public $abgabedatum; - // Welche Version der Projektarbeit wird in welchem Semester verwendet + // Welche Version der Projektarbeit wird ab welchem Semester verwendet private $_versions = array( 'Diplom' => array( 'SS2025' => 3, @@ -72,7 +72,7 @@ class projektarbeit extends basis_db ) ); - // welche Vorlagen werden für welche Projekarbeitsversion verwendet (beginnend mit 0) + // welche Vorlagen werden ab welcher Projekarbeitsversion verwendet (0 - erste "default" Vorlage) private $_projektarbeitVorlageMappings = array( 'Begutachter' => array( 2 => 'ProjektBeurteilungBAProzent', @@ -626,5 +626,20 @@ class projektarbeit extends basis_db ? $this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key] : ''; } + + /** + * Holt alle möglichen, jemals verwendeten Projektarbeits-Vorlagen + * @return array mit Vorlagennamen + */ + public function getAllVorlagen() + { + $vorlagen = array(); + foreach ($this->_projektarbeitVorlageMappings as $mappings) + { + $vorlagen = array_unique(array_merge($vorlagen, $mappings)); + } + + return $vorlagen; + } } ?> From a63c321f97634e95e3d3860636163594cd17025a Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Fri, 28 Feb 2025 12:09:26 +0100 Subject: [PATCH 07/10] added Projektarbeitsbeurteilung phrases --- system/phrasesupdate.php | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 85373ff28..0e8ea3d8e 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -37676,6 +37676,66 @@ and represent the current state of research on the topic. The prescribed citatio 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'eingabefeld', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Eingabefeld', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Input field', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'universitaetLogo', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Universitätslogo', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'University logo', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'textEingabefeldBewertung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Text-Eingabefeld zur Bewertung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Text inut field for assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) // PROJEKTARBEITSBEURTEILUNG SS2025 ENDE --------------------------------------------------------------------------- ); From 037811c24c1faee50a4627730b2bcbb7c378e350 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Mon, 3 Mar 2025 12:39:07 +0100 Subject: [PATCH 08/10] Paarbeitsabgabe: replaced num_rows_sem with new paiscurrent variable --- cis/private/lehre/abgabe_student_details.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index f040ed034..84ba608a1 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -495,7 +495,7 @@ if($command=="update" && $error!=true) $maildata['student_voller_name'] = trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); $maildata['abgabetyp'] = $abgabetyp; $maildata['parbeituebersichtlink'] = "

Zur Projektarbeitsübersicht

"; - $maildata['bewertunglink'] = $num_rows_sem >= 1 && $paabgabetyp_kurzbz == 'end' ? "

Zur Beurteilung der Arbeit

" : ""; + $maildata['bewertunglink'] = $paIsCurrent && $paabgabetyp_kurzbz == 'end' ? "

Zur Beurteilung der Arbeit

" : ""; $maildata['token'] = ""; $mailres = sendSanchoMail( @@ -557,8 +557,8 @@ if($command=="update" && $error!=true) $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; $zweitbetmaildata['abgabetyp'] = $abgabetyp; $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; - $zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; - $zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($begutachterMitToken->zugangstoken) && !$intern ? "

Zugangstoken: " . $begutachterMitToken->zugangstoken . "

" : ""; + $zweitbetmaildata['bewertunglink'] = $paIsCurrent ? "

Zur Beurteilung der Arbeit

" : ""; + $zweitbetmaildata['token'] = $paIsCurrent && isset($begutachterMitToken->zugangstoken) && !$intern ? "

Zugangstoken: " . $begutachterMitToken->zugangstoken . "

" : ""; $mailres = sendSanchoMail( 'ParbeitsbeurteilungEndupload', From e61b6b447cd5f8b10e472682d9882c94f079142f Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Mon, 3 Mar 2025 13:37:33 +0100 Subject: [PATCH 09/10] Abgabetool: removed hyperlink from benoten button quickinfo --- cis/private/lehre/abgabe_lektor_details.php | 5 +++-- locale/de-AT/abgabetool.php | 1 + locale/en-US/abgabetool.php | 1 + locale/it-IT/abgabetool.php | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 74722607f..f97dfa159 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -495,7 +495,8 @@ if ($semester_benotbar && $endupload_vorhanden) } else { - $quick_info = !$semester_benotbar ? $p->t('abgabetool/aeltereParbeitBenoten') : $p->t('abgabetool/keinEnduploadErfolgt'); + $quick_info = !$semester_benotbar ? $p->t('abgabetool/aeltereParbeitBenotenQuickInfo') : $p->t('abgabetool/keinEnduploadErfolgt'); + $info_text = !$semester_benotbar ? $p->t('abgabetool/aeltereParbeitBenoten') : $p->t('abgabetool/keinEnduploadErfolgt'); $htmlstr .= ""; $htmlstr .= ""; @@ -516,7 +517,7 @@ else } $htmlstr .= "
- + "; $htmlstr .= "\n"; diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php index aae3ca2de..18f413b74 100644 --- a/locale/de-AT/abgabetool.php +++ b/locale/de-AT/abgabetool.php @@ -1,6 +1,7 @@ phrasen['abgabetool/abgabetool']='Abgabetool'; $this->phrasen['abgabetool/aeltereParbeitBenoten']='Projektarbeit für älteres Semester, bitte Word-Formular zur Benotung verwenden!'; +$this->phrasen['abgabetool/aeltereParbeitBenotenQuickInfo']='Projektarbeit für älteres Semester, bitte Word-Formular zur Benotung verwenden!'; $this->phrasen['abgabetool/keinEnduploadErfolgt']='Endupload ist noch nicht erfolgt'; $this->phrasen['abgabetool/typ']='Typ'; $this->phrasen['abgabetool/titel']='Titel'; diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php index c13ebd90d..1c2b7c142 100644 --- a/locale/en-US/abgabetool.php +++ b/locale/en-US/abgabetool.php @@ -1,6 +1,7 @@ phrasen['abgabetool/abgabetool']='Submission tool'; $this->phrasen['abgabetool/aeltereParbeitBenoten']='Thesis handed in for older semester, please use word form for assessment!'; +$this->phrasen['abgabetool/aeltereParbeitBenotenQuickInfo']='Thesis handed in for older semester, please use word form for assessment!'; $this->phrasen['abgabetool/keinEnduploadErfolgt']='Final version not uploaded yet'; $this->phrasen['abgabetool/typ']='Type'; $this->phrasen['abgabetool/titel']='Title'; diff --git a/locale/it-IT/abgabetool.php b/locale/it-IT/abgabetool.php index f7e7d9cf9..eecadfd5e 100644 --- a/locale/it-IT/abgabetool.php +++ b/locale/it-IT/abgabetool.php @@ -1,6 +1,7 @@ phrasen['abgabetool/abgabeLektorenbereich']='Consegna portale lettori'; $this->phrasen['abgabetool/aeltereParbeitBenoten']='Thesis handed in for older semester, please use word form for assessment!'; +$this->phrasen['abgabetool/aeltereParbeitBenotenQuickInfo']='Thesis handed in for older semester, please use word form for assessment!'; $this->phrasen['abgabetool/abgabeStudentenbereich']='consegna portale studente'; $this->phrasen['abgabetool/abgabetermine']='scadenze consegna'; $this->phrasen['abgabetool/abgabetool']='Strumenti di consegna'; From 2cbbcc9039aec377585ef973d9b85bfe1b9c1840 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Wed, 5 Mar 2025 14:52:55 +0100 Subject: [PATCH 10/10] changed Projektarbeitsbeurteilung phrase --- system/phrasesupdate.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 0e8ea3d8e..82f3904f0 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10087,13 +10087,13 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Der Plagiatscheck wurde durchgeführt und bestätigt, dass der zentrale Inhalt der Arbeit im erforderlichen Ausmaß eigenständig verfasst wurde (vgl. Satzungsteil Studienrechtliche Bestimmungen / Prüfungsordnung, § 18 Abs. 2 und 3).', + 'text' => 'Der Plagiatscheck wurde durchgeführt und bestätigt, dass der zentrale Inhalt der Arbeit im erforderlichen Ausmaß eigenständig verfasst wurde (vgl. Satzungsteil Studienrechtliche Bestimmungen / Prüfungsordnung, § 20 Abs. 2 und 3).', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'The plagiarism check has been carried out and confirms that the central content of the thesis has been written independently to the required extent (cf. part of the Statutes on Studies Act Provisions / Examination Regulations, § 18 Para. 2 and 3).', + 'text' => 'The plagiarism check has been carried out and confirms that the central content of the thesis has been written independently to the required extent (cf. part of the Statutes on Studies Act Provisions / Examination Regulations, § 20 Para. 2 and 3).', 'description' => '', 'insertvon' => 'system' )
".$p->t('abgabetool/student').": ".$db->convert_html_chars($studentenname).""; -$semester_benotbar = $paIsCurrent >= 1; +$semester_benotbar = $paIsCurrent === true; $endupload_vorhanden = $num_rows_endupload >= 1; if ($semester_benotbar && $endupload_vorhanden) @@ -544,7 +544,7 @@ if (isset($zweitbetreuerArr) && is_array($zweitbetreuerArr)) // wenn es Zweitbet $htmlstr .= "  " . $p->t("; // Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist - if (isset($zweitbetreuer->email) && !isset($zweitbetreuer->uid) && $paIsCurrent >= 1) + if (isset($zweitbetreuer->email) && !isset($zweitbetreuer->uid) && $paIsCurrent === true) { $htmlstr .= "
\n"; $htmlstr .= ""; diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index 2512d9831..0a0385970 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -195,13 +195,13 @@ else $htmlstr .= "
"; if (!is_null($row->babgeschickt)) - $htmlstr .= "".$p->t('abgabetool/projektbeurteilungErstDownload').""; + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungErstDownload').""; if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt)) $htmlstr .= "/"; if (!is_null($row->zweitbetreuer_abgeschickt)) - $htmlstr .= "".$p->t('abgabetool/projektbeurteilungZweitDownload').""; + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungZweitDownload').""; $htmlstr .= "
" . $p->t('abgabetool/titel') . ": ".$db->convert_html_chars($titel)."".(isset($quick_info) ? $quick_info : '')."".(isset($info_text) ? $info_text : '')." ".$p->t('abgabetool/studentenansicht')."