From b8ac076bdb4ddef7b1b8369deacfb0c57eae4165 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 19 Jan 2022 17:56:30 +0100 Subject: [PATCH 01/15] projektbeurteilungs uebersicht hinzugefuegt --- .../education/Projektbetreuer_model.php | 77 ++++++++++++++ .../models/system/Variablenname_model.php | 9 +- system/filtersupdate.php | 25 +++++ system/phrasesupdate.php | 100 ++++++++++++++++++ 4 files changed, 210 insertions(+), 1 deletion(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 4da88e344..22c7be1ec 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -60,4 +60,81 @@ class Projektbetreuer_model extends DB_Model return $this->execQuery($qry, array($zugangstoken)); } + + /** + * Holt Zweitbegutachter einer Projektarbeit mit Mail. + * @param $erstbegutachter_person_id int person_id des Erstbegutachters + * @param $projektarbeit_id int + * @param $student_uid string uid des Studenten der Arbeit abgibt + * @return object | bool + */ + public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid) + { + $qry_betr = "SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt, + trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name, + CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum + FROM lehre.tbl_projektbetreuer betr + JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id + JOIN public.tbl_person pers ON betr.person_id = pers.person_id + LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true + LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id + LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end' + WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter' + AND betr.projektarbeit_id = ? + AND parb.student_uid = ? + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ? + AND betreuerart_kurzbz = 'Erstbegutachter' + AND projektarbeit_id = betr.projektarbeit_id + ) + AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) + ORDER BY betr.insertamum DESC + LIMIT 1"; + + return $this->execQuery($qry_betr, array($projektarbeit_id, $student_uid, $erstbegutachter_person_id)); + } + + /** + * Generiert neuen Token für externen Zweitbetreuer. + * @param int $zweitbegutachter_person_id + * @param int $projektarbeit_id + * @return object | bool + */ + public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id) + { + $betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id + FROM lehre.tbl_projektbetreuer + JOIN public.tbl_person USING(person_id) + LEFT JOIN public.tbl_benutzer USING(person_id) + WHERE projektarbeit_id = ? + AND tbl_projektbetreuer.person_id = ? + AND betreuerart_kurzbz = 'Zweitbegutachter' + LIMIT 1"; + + $betreueruidres = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id)); + + if (!hasData($betreueruidres)) + return error('Zweitbegutachter nicht gefunden'); + + $row_betr = getData($betreueruidres)[0]; + + if (!isset($row_betr->uid)) + { + do { + $token = generateToken(16); + $qry_tokencheck = $this->load(array('zugangstoken' => $token)); + } while(hasData($qry_tokencheck)); + + $result = $this->update( + array('projektarbeit_id' => $projektarbeit_id, + 'person_id' => $row_betr->person_id, + 'betreuerart_kurzbz' => 'Zweitbegutachter'), + array('zugangstoken' => $token, + 'zugangstoken_gueltigbis' => date('Y-m-d', strtotime('+1 year'))) + ); + + return $result; + } + } } diff --git a/application/models/system/Variablenname_model.php b/application/models/system/Variablenname_model.php index 869a03275..33ace3c8d 100644 --- a/application/models/system/Variablenname_model.php +++ b/application/models/system/Variablenname_model.php @@ -12,7 +12,14 @@ class Variablenname_model extends DB_Model ) sem WHERE start > now() LIMIT 1;', - 'infocenter_studiensgangtyp' => 'SELECT infocenter_studiensgangtyp FROM public.tbl_variablenname LIMIT 1' + 'infocenter_studiensgangtyp' => 'SELECT infocenter_studiensgangtyp FROM public.tbl_variablenname LIMIT 1;', + 'projektuebersicht_studiensemester' => 'SELECT studiensemester_kurzbz FROM ( + SELECT DISTINCT ON (studienjahr_kurzbz) start, studiensemester_kurzbz + FROM public.tbl_studiensemester + ORDER BY studienjahr_kurzbz, start + ) sem + WHERE start > now() + LIMIT 1;' ); /** diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 1a1717339..521e6b4dd 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -981,6 +981,31 @@ $filters = array( } ', 'oe_kurzbz' => null, + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'dataset_name' => 'projektuebersicht', + 'filter_kurzbz' => 'alleProjekte', + 'description' => '{Projektübersicht}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "Projektübersicht", + "columns": [ + {"name": "ProjectWorkID"}, + {"name": "ErstNachname"}, + {"name": "ErstAbgeschickt"}, + {"name": "ZweitNachname"}, + {"name": "ZweitAbgeschickt"}, + {"name": "StudentNachname"}, + {"name": "Note"}, + {"name": "Abgabedatum"} + ], + "filters": [] + } + ', + 'oe_kurzbz' => null, ) ); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index e05ee6086..a5bceb40d 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -9772,6 +9772,106 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'projektarbeitsbeurteilungUebersicht', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Projektarbeitsbeurteilungsübersicht', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Projekt Work Assessment Overview', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'abgabedatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Abgabe - Datum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Upload - Date', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'freischaltung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Freischaltung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Activation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'resendToken', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Token an Zweit-Begutachter*in senden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Send token to Second Assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'freischalten', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Freischalten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Unlock', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 094f75ef6105f7d0a79344bbb7f2f764f581951b Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Fri, 21 Jan 2022 00:41:13 +0100 Subject: [PATCH 02/15] - Projektbetreuer_model.php: method getBetreuerOfProjektarbeit for getting Betreuer by betreuerart - phrasesupdate.php: added Projektarbeitsbeurteilung phrases --- .../education/Projektbetreuer_model.php | 29 ++++++- system/phrasesupdate.php | 77 +++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 22c7be1ec..f3af03f86 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -42,6 +42,31 @@ class Projektbetreuer_model extends DB_Model } } + /** + * Checks if a Projektarbeit has a Betreuer of a certain type + * @param int $projektarbeit_id + * @param string $betreuerart_kurzbz + * @return array success with number of Betreuer or error + */ + public function getBetreuerOfProjektarbeit($projektarbeit_id, $betreuerart_kurzbz) + { + $this->addSelect('pers.person_id, betreuerart_kurzbz, vorname, nachname, + anrede, titelpre, titelpost, gebdatum, geschlecht, + ben.uid, ben.aktiv as benutzer_aktiv, ben.alias, student_uid'); + $this->addJoin('lehre.tbl_projektarbeit', 'projektarbeit_id'); + $this->addJoin('public.tbl_person pers', 'person_id'); + $this->addJoin('public.tbl_benutzer ben', 'person_id', 'LEFT'); + $this->addOrder('pers.person_id'); + + return $this->loadWhere( + array( + 'projektarbeit_id' => $projektarbeit_id, + 'betreuerart_kurzbz' => $betreuerart_kurzbz, + 'ben.aktiv' => true + ) + ); + } + /** * Get Projektbetreuer data by authentification token * @param $zugangstoken @@ -99,7 +124,7 @@ class Projektbetreuer_model extends DB_Model * Generiert neuen Token für externen Zweitbetreuer. * @param int $zweitbegutachter_person_id * @param int $projektarbeit_id - * @return object | bool + * @return array */ public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id) { @@ -136,5 +161,7 @@ class Projektbetreuer_model extends DB_Model return $result; } + else + return success("Account vorhanden, kein Token benötigt"); } } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index a5bceb40d..95919b833 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -9872,6 +9872,83 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kommissionellePruefungHinweis', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Dies ist eine zur kommissionellen Wiederholungsprüfung vorgelegte Bachelorarbeit. Die Note sollte daher erst nach Abstimmung mit allen Kommissionsmitgliedern abgesendet werden.', + 'description' => '', + ), + array( + 'sprache' => 'English', + 'text' => 'This bachelor thesis is submitted for the Bachelor Examination before a Committee. It should be graded after consultation with all committee members.', + 'description' => '', + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kommissionMailSenden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Infomail an Kommissionsmitglieder senden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sent info mail to commission members', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kommissionMailGesendet', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Mail an Kommissionsmitglieder gesendet', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sent mail to commission members', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kommissionMailFehler', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Fehler beim Senden der Mail an Kommission', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Error when sending mail to commission members', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 37c19aafc26ec08b2b8a90c96e7398028706a436 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Fri, 21 Jan 2022 02:50:39 +0100 Subject: [PATCH 03/15] Added Betreuerart "Kommission" to lehre.tbl_betreuerart --- system/dbupdate_3.3.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 50f5098c8..ba79ed66a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5716,6 +5716,21 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_zeita } } +// Betreuerart 'Kommission' hinzufügen +if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Kommission'")) +{ + if($db->db_num_rows($result)==0) + { + + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz,beschreibung,aktiv) VALUES('Kommission','Mitglied der Kommission',TRUE);"; + + if(!$db->db_query($qry)) + echo 'Betreuerart: '.$db->db_last_error().'
'; + else + echo '
Neue Betreuerart Kommission in lehre.tbl_betreuerart hinzugefügt'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From cf7cfd7cd25d64ffa0976bdb34dc1cc2f6bd0cf2 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Fri, 21 Jan 2022 05:15:36 +0100 Subject: [PATCH 04/15] sorted results of geBetreuerOfProjektarbeit method of Projektbetreuer_model.php and added mitarbeiter data to the result --- .../education/Projektbetreuer_model.php | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index f3af03f86..4a04b8813 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -43,28 +43,29 @@ class Projektbetreuer_model extends DB_Model } /** - * Checks if a Projektarbeit has a Betreuer of a certain type + * Gets Betreuer of a certain Type of a Projektarbeit. * @param int $projektarbeit_id * @param string $betreuerart_kurzbz * @return array success with number of Betreuer or error */ public function getBetreuerOfProjektarbeit($projektarbeit_id, $betreuerart_kurzbz) { - $this->addSelect('pers.person_id, betreuerart_kurzbz, vorname, nachname, - anrede, titelpre, titelpost, gebdatum, geschlecht, - ben.uid, ben.aktiv as benutzer_aktiv, ben.alias, student_uid'); - $this->addJoin('lehre.tbl_projektarbeit', 'projektarbeit_id'); - $this->addJoin('public.tbl_person pers', 'person_id'); - $this->addJoin('public.tbl_benutzer ben', 'person_id', 'LEFT'); - $this->addOrder('pers.person_id'); + $qry = "SELECT pers.person_id, betreuerart_kurzbz, vorname, nachname, + anrede, titelpre, titelpost, gebdatum, geschlecht, + ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id) + JOIN public.tbl_person pers USING (person_id) + LEFT JOIN public.tbl_benutzer ben USING (person_id) + LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid + WHERE ben.aktiv + AND projektarbeit_id = ? + AND betreuerart_kurzbz = ? + ORDER BY CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter first*/ + CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, + ben.insertamum"; - return $this->loadWhere( - array( - 'projektarbeit_id' => $projektarbeit_id, - 'betreuerart_kurzbz' => $betreuerart_kurzbz, - 'ben.aktiv' => true - ) - ); + return $this->execQuery($qry, array($projektarbeit_id, $betreuerart_kurzbz)); } /** From f9b93f55e4c97c1ec8fe57ab091a497930d88fef Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 25 Jan 2022 12:40:41 +0100 Subject: [PATCH 05/15] - Projektbetreuer model getBetreuerOfProjektarbeit: added full name and projekttyp_kurzbz are also returned - abgabe_lektor_details.php: grading only possible after end upload of thesis, and only beginning with SS2022 - added projektbeurteilung phrases to core locale and phrasesupdate.php --- .../education/Projektbetreuer_model.php | 5 +- cis/private/lehre/abgabe_lektor_details.php | 29 +++- locale/de-AT/abgabetool.php | 2 + locale/en-US/abgabetool.php | 2 + system/phrasesupdate.php | 124 +++++++++++++++++- 5 files changed, 153 insertions(+), 9 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 4a04b8813..b6fbe8a72 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -51,9 +51,10 @@ class Projektbetreuer_model extends DB_Model public function getBetreuerOfProjektarbeit($projektarbeit_id, $betreuerart_kurzbz) { $qry = "SELECT pers.person_id, betreuerart_kurzbz, vorname, nachname, - anrede, titelpre, titelpost, gebdatum, geschlecht, + trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name, + anrede, titelpre, titelpost, gebdatum, geschlecht, pa.projekttyp_kurzbz, ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid - FROM lehre.tbl_projektarbeit + FROM lehre.tbl_projektarbeit pa JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id) JOIN public.tbl_person pers USING (person_id) LEFT JOIN public.tbl_benutzer ben USING (person_id) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 9f74d5cf8..9d89daa49 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -120,13 +120,13 @@ if(!$projektarbeit_obj->load($projektarbeit_id)) $titel = $projektarbeit_obj->titel; $student_uid = $projektarbeit_obj->student_uid; -// paarbeit sollte nur ab SS2021 online bewertet werden +// paarbeit sollte nur ab SS2022 online bewertet werden $qry_sem="SELECT 1 FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." - AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date LIMIT 1"; $result_sem=$db->db_query($qry_sem); $num_rows_sem = $db->db_num_rows($result_sem); @@ -135,6 +135,20 @@ if($num_rows_sem < 0) echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } +// Endupload sollte vor Benotung durchgeführt worden sein +$qry_endupload="SELECT 1 + FROM campus.tbl_paabgabe + WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND paabgabetyp_kurzbz='end' + AND abgabedatum IS NOT NULL + LIMIT 1"; +$result_endupload=$db->db_query($qry_endupload); +$num_rows_endupload = $db->db_num_rows($result_endupload); +if($num_rows_endupload < 0) +{ + echo "".$p->t('abgabetool/fehlerErmittelnEnduploadProjektarbeit')."
 "; +} + // Zweitbegutachter holen if($betreuerart=="Erstbegutachter") { @@ -457,7 +471,11 @@ while ($result_nam && $row_nam=$db->db_fetch_object($result_nam)) $htmlstr .= "\n"; $htmlstr .= ""; $htmlstr .= ""; diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php index 7943868ad..c4b17318b 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/keinEnduploadErfolgt']='Endupload ist noch nicht erfolgt'; $this->phrasen['abgabetool/typ']='Typ'; $this->phrasen['abgabetool/titel']='Titel'; $this->phrasen['abgabetool/betreuerart']='Betreuerart'; @@ -89,4 +90,5 @@ $this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail für $this->phrasen['abgabetool/projektbeurteilungDownload']='Projektbeurteilung herunterladen'; $this->phrasen['abgabetool/projektbeurteilungErstDownload']='Erst-/Begutachter'; $this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Zweitbegutachter'; +$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Fehler beim Ermitteln des Enduplaods der Projektarbeit'; ?> diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php index c4e6eb7bd..b05456faa 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/keinEnduploadErfolgt']='Final version not uploaded yet'; $this->phrasen['abgabetool/typ']='Type'; $this->phrasen['abgabetool/titel']='Title'; $this->phrasen['abgabetool/betreuerart']='Supervisor type'; @@ -89,4 +90,5 @@ $this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no $this->phrasen['abgabetool/projektbeurteilungDownload']='Thesis-Assessment download'; $this->phrasen['abgabetool/projektbeurteilungErstDownload']='First-/Assessor'; $this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Second Assessor'; +$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Error when getting endupload of project work'; ?> diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 95919b833..524a28448 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -9903,7 +9903,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'Sent info mail to commission members', + 'text' => 'Send info mail to commission members', 'description' => '', 'insertvon' => 'system' ) @@ -9923,7 +9923,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'Sent mail to commission members', + 'text' => 'Sent mail to committee members', 'description' => '', 'insertvon' => 'system' ) @@ -9949,6 +9949,126 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zweitbetreuerBewertungFehlt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Absenden erst nach Abschluss der Bewertung durch Zweitbegutachter*in möglich', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sending only possible after completion of assessment by Second Assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'nichtErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'nicht erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'not fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'mindestanforderungErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Mindestanforderung erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'minimum requirement fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'inWeitenTeilenErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'in weiten Teilen erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'fulfilled for the most part', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'vollstaendigErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'vollständig erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'fully fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kommissionsmitglieder', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kommissionsmitglieder', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Commitee members', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From ce381276183ca9be89e1d2207d60ad608364e6a9 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 25 Jan 2022 12:55:29 +0100 Subject: [PATCH 06/15] - FAS hide Projektarbeit Punkte --- content/student/studentprojektarbeitoverlay.xul.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/student/studentprojektarbeitoverlay.xul.php b/content/student/studentprojektarbeitoverlay.xul.php index 4d8ab4835..c522ad4da 100644 --- a/content/student/studentprojektarbeitoverlay.xul.php +++ b/content/student/studentprojektarbeitoverlay.xul.php @@ -492,7 +492,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') - + From 1a8b267a8909c3f599fc7f43ebf3ed5df4e9a500 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 25 Jan 2022 14:55:01 +0100 Subject: [PATCH 07/15] Projektbetreuer_model.php: getBetreuerOfProjektarbeit returns only one row for each person --- application/models/education/Projektbetreuer_model.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index b6fbe8a72..0200f6468 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -44,13 +44,14 @@ class Projektbetreuer_model extends DB_Model /** * Gets Betreuer of a certain Type of a Projektarbeit. + * Returns one row for each person. * @param int $projektarbeit_id * @param string $betreuerart_kurzbz * @return array success with number of Betreuer or error */ public function getBetreuerOfProjektarbeit($projektarbeit_id, $betreuerart_kurzbz) { - $qry = "SELECT pers.person_id, betreuerart_kurzbz, vorname, nachname, + $qry = "SELECT DISTINCT ON (pers.person_id) pers.person_id, betreuerart_kurzbz, vorname, nachname, trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name, anrede, titelpre, titelpost, gebdatum, geschlecht, pa.projekttyp_kurzbz, ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid @@ -62,8 +63,8 @@ class Projektbetreuer_model extends DB_Model WHERE ben.aktiv AND projektarbeit_id = ? AND betreuerart_kurzbz = ? - ORDER BY CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter first*/ - CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, + ORDER BY pers.person_id, CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter account first*/ + CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, /*user with account first*/ ben.insertamum"; return $this->execQuery($qry, array($projektarbeit_id, $betreuerart_kurzbz)); From 37cd868a44f5cd696306bb4823f683b307cb31b2 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Tue, 1 Feb 2022 09:15:22 +0100 Subject: [PATCH 08/15] uebersichtseite angepasst und mail beim updaten entfernt --- system/filtersupdate.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 521e6b4dd..9ccc9200f 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -1000,7 +1000,8 @@ $filters = array( {"name": "ZweitAbgeschickt"}, {"name": "StudentNachname"}, {"name": "Note"}, - {"name": "Abgabedatum"} + {"name": "Abgabedatum"}, + {"name": "Studiengang"} ], "filters": [] } From 1e5674318768d8397de99a21765956c11a8a8fcf Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 1 Feb 2022 22:44:58 +0100 Subject: [PATCH 09/15] added projektarbeitsbeurteilung phrases --- system/phrasesupdate.php | 122 +++++++++++++++++++++++++++++++++++---- 1 file changed, 111 insertions(+), 11 deletions(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 524a28448..7934d1e07 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -8675,12 +8675,12 @@ Any unusual occurrences array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', - 'phrase' => 'plagiatscheckUnauffaellig', + 'phrase' => 'plagiatscheckBeschreibung', 'insertvon' => 'system', 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Der Plagiatscheck ist unauffällig.', + '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).', 'description' => '', 'insertvon' => 'system' ), @@ -8820,7 +8820,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Der Lösungsansatz ist dem Stand der Technik entsprechend argumentiert und zeigt ein adäquates Problemverständnis.', + 'text' => 'Der Lösungsansatz ist für das Thema geeignet und entspricht dem Stand der Technik.', 'description' => '', 'insertvon' => 'system' ), @@ -8860,7 +8860,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die methodische Vorgangsweise ist in Bezug auf die Ausrichtung der Arbeit (technisch-ingenieurwissenschaftlich, sozial-wirtschaftswissenschaftlich…) angemessen, gut begründet und wird korrekt umgesetzt.', + 'text' => 'Das Vorgehen ist in Bezug auf die fachspezifische Ausrichtung der Arbeit angemessen, anhand der Fachliteratur begründet und korrekt umgesetzt.', 'description' => '', 'insertvon' => 'system' ), @@ -8900,7 +8900,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die Frage- bzw. Aufgabenstellungen wurden zielführend beantwortet; die Ergebnisse werden diskutiert.', + 'text' => 'Die Ergebnisse werden im Lichte der Fragestellung interpretiert und kritisch diskutiert im Hinblick auf ihren Mehrwert für Forschung und/oder Berufspraxis. Visualisierungen unterstützen die Argumentation.', 'description' => '', 'insertvon' => 'system' ), @@ -9000,7 +9000,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die Arbeit ist schlüssig aufgebaut und gut strukturiert.', + 'text' => 'Die Arbeit ist schlüssig strukturiert.', 'description' => '', 'insertvon' => 'system' ), @@ -9040,7 +9040,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Der Stil entspricht einer wissenschaftlichen Arbeit. Die Arbeit ist flüssig lesbar und weist eine klare, eindeutige und gendergerechte Sprache auf.', + 'text' => 'Rechtschreibung und Grammatik sind korrekt. Die Verwendung von Fachsprache ist angemessen. Die Anforderungen an gendergerechte Sprache sind nach den geltenden Richtlinien umgesetzt.', 'description' => '', 'insertvon' => 'system' ), @@ -9120,7 +9120,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die verwendeten Quellen sind passend, aktuell und werden ausreichend variiert.', + 'text' => 'Quellen und Literatur sind für die wissenschaftliche Auseinandersetzung mit dem Thema der Arbeit relevant, geben den aktuellen Stand der Forschung wieder und decken das Thema ab.', 'description' => '', 'insertvon' => 'system' ), @@ -9340,13 +9340,33 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Liegt die Punkteanzahl bei den Kriterien "1 - 5" oder "6 - 10" in Summe unter 50%%, ist die %s insgesamt als negativ zu beurteilen.', + 'text' => 'Liegt die Punkteanzahl bei den Kriterien "1 - 5" oder "6 - 10" in Summe unter 50%, ist die {0} insgesamt als negativ zu beurteilen.', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'If the number of points for the criteria "1 - 5" or "6 - 10" is below 50%% in total, the %s is to be assessed as negative overall.', + 'text' => 'If the number of points for the criteria "1 - 5" or "6 - 10" is below 50% in total, the {0} is to be assessed as negative overall.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'notenschluesselHinweisNullPunkteEinKriterium', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Falls ein Kriterium mit 0 Punkten bewertet wird, ist die {0} insgesamt als negativ zu beurteilen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'If the number of points for one criteria is 0, the {0} is to be assessed as negative overall.', 'description' => '', 'insertvon' => 'system' ) @@ -9540,7 +9560,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Ist die Arbeit gut strukturiert?', + 'text' => 'Ist die Arbeit schlüssig strukturiert?', 'description' => '', 'insertvon' => 'system' ), @@ -10069,6 +10089,86 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'plagiatscheckNichtGesetzt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Plagiatscheck auffällig, negative Beurteilung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Plagiarism check not passed, negative assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'titelBearbeiten', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Titel bearbeiten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Edit title', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'titelGespeichert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Titel gespeichert', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Title saved', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'plagiatscheckHinweisNegativeBeurteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => '(Bei Plagiat wird die Arbeit negativ bewertet.)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '(Plagiarism leads to a negative grade.)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 67a86d070575f7033d8dd3444d26a9a9e12a3c4c Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 1 Feb 2022 22:56:20 +0100 Subject: [PATCH 10/15] online assessment or projektarbeit only after SS2022: also added check when sending mails to Begutachter --- cis/private/lehre/abgabe_student_details.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index e9384390b..ffb065b49 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -423,13 +423,13 @@ if($command=="update" && $error!=true) } else { - // paarbeit sollte nur ab SS2021 online bewertet werden + // paarbeit sollte nur ab SS2022 online bewertet werden $qry_sem="SELECT 1 FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." - AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date LIMIT 1"; $result_sem=$db->db_query($qry_sem); From 5d2adedd37d61d0134e7aa0292ffd64c1aa06ea7 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 9 Feb 2022 10:35:39 +0100 Subject: [PATCH 11/15] Kommission in der uebersicht hinzugefuegt --- system/filtersupdate.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 9ccc9200f..62014a5bb 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -1001,7 +1001,8 @@ $filters = array( {"name": "StudentNachname"}, {"name": "Note"}, {"name": "Abgabedatum"}, - {"name": "Studiengang"} + {"name": "Studiengang"}, + {"name": "Kommissionsmitglieder"} ], "filters": [] } From 3b8da2d7d09f3c2cb716886b8c4149e46f1f66a7 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 10 Feb 2022 15:42:19 +0100 Subject: [PATCH 12/15] moved check if projektarbeit is current to projektarbeit.class.php to projektarbeitIsCurrent method --- cis/private/lehre/abgabe_lektor_details.php | 15 +++------ cis/private/lehre/abgabe_student_details.php | 15 ++------- include/projektarbeit.class.php | 34 ++++++++++++++++++++ 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 9d89daa49..a508de098 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -120,17 +120,10 @@ if(!$projektarbeit_obj->load($projektarbeit_id)) $titel = $projektarbeit_obj->titel; $student_uid = $projektarbeit_obj->student_uid; -// paarbeit sollte nur ab SS2022 online bewertet werden -$qry_sem="SELECT 1 - FROM lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE projektarbeit_id=".$db->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"; -$result_sem=$db->db_query($qry_sem); -$num_rows_sem = $db->db_num_rows($result_sem); -if($num_rows_sem < 0) +// 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) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index ffb065b49..29d74ab66 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -423,18 +423,9 @@ if($command=="update" && $error!=true) } else { - // paarbeit sollte nur ab SS2022 online bewertet werden - $qry_sem="SELECT 1 - FROM lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE projektarbeit_id=".$db->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"; - - $result_sem=$db->db_query($qry_sem); - $num_rows_sem = $db->db_num_rows($result_sem); - if($num_rows_sem < 0) + // 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) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 131f8e323..cb5fb8f77 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -469,5 +469,39 @@ class projektarbeit extends basis_db return false; } } + + /** + * Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester). + * @param $projektarbeit_id + * @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell + */ + public function projektarbeitIsCurrent($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 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; + } } ?> From af9ab29c5c06b70d78517487b598d34de4cc9fec Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 18 Feb 2022 14:05:44 +0100 Subject: [PATCH 13/15] variablename in dbupdate eingetragen --- system/dbupdate_3.3.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ba79ed66a..4e9fc43d6 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3418,6 +3418,20 @@ if ($result = @$db->db_query("SELECT 1 FROM public.tbl_variablenname WHERE name } } +// Add new name type in public.tbl_variablenname +if ($result = @$db->db_query("SELECT 1 FROM public.tbl_variablenname WHERE name = 'projektuebersicht_studiensemester';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO public.tbl_variablenname(name, defaultwert) VALUES('projektuebersicht_studiensemester', null);"; + + if (!$db->db_query($qry)) + echo 'public.tbl_variablenname '.$db->db_last_error().'
'; + else + echo 'public.tbl_variablenname: Added name "projektuebersicht_studiensemester"
'; + } +} + // Add column projektphase_id to tbl_zeitaufzeichnung if(!$result = @$db->db_query("SELECT projektphase_id FROM campus.tbl_zeitaufzeichnung LIMIT 1")) { From 0b679bc9e4198e2d2e97c723babd1a4c846767ca Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 8 Mar 2022 03:12:03 +0100 Subject: [PATCH 14/15] =?UTF-8?q?Projektarbeitsbeurteilung:=20added=20engl?= =?UTF-8?q?ish=20phrases,=20renamed=20kommissionsmitglieder=20to=20Pr?= =?UTF-8?q?=C3=BCfungssenatmitglieder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 3 +- system/phrasesupdate.php | 180 ++++++++++++++++++++++++++++++--------- 2 files changed, 141 insertions(+), 42 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 4e9fc43d6..1c0f34608 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5735,8 +5735,7 @@ if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerar { if($db->db_num_rows($result)==0) { - - $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz,beschreibung,aktiv) VALUES('Kommission','Mitglied der Kommission',TRUE);"; + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz,beschreibung,aktiv) VALUES('Kommission','Mitglied des Prüfungssenats',TRUE);"; if(!$db->db_query($qry)) echo 'Betreuerart: '.$db->db_last_error().'
'; diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 7934d1e07..ba9b64d19 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -8672,6 +8672,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'titelDerArbeit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Titel', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Title of ', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', @@ -8686,7 +8706,27 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The plagiarism check reveals nothing of note.', + 'text' => 'The plagiarism check has been carried out and confirms that the central content of the paper has been written independently to the required extent (cf. part of the Statutes on Studies Act Provisions / Examination Regulations, § 18 Para. 2 and 3).', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'plagiatscheckBeschreibungMaster', + 'insertvon' => 'system', + '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).', + '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).', 'description' => '', 'insertvon' => 'system' ) @@ -8786,7 +8826,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The subject was handled in a suitable manner for a master thesis (well-structured, meaningful research questions or tasks, etc.)', + 'text' => 'The subject was handled in a suitable manner for a Master\'s thesis (well-structured, meaningful research questions or tasks, etc.)', 'description' => '', 'insertvon' => 'system' ) @@ -8826,7 +8866,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The approach to the solution is argued according to the state of the art and shows an adequate understanding of the problem.', + 'text' => 'The approach to the solution is suitable for the topic and corresponds to the state of the art.', 'description' => '', 'insertvon' => 'system' ) @@ -8866,7 +8906,27 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The methodological approach is appropriate, well-founded and correctly implemented in relation to the orientation of the work (technical-engineering, socio-economic…).', + 'text' => 'The procedure is appropriate in relation to the subject-specific orientation of the paper, justified on the basis of the specialist literature and correctly implemented.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methodeTextMaster', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Vorgehen ist in Bezug auf die fachspezifische Ausrichtung der Arbeit angemessen, anhand der Fachliteratur begründet und korrekt umgesetzt.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The procedure is appropriate in relation to the subject-specific orientation of the thesis, justified on the basis of the specialist literature and correctly implemented.', 'description' => '', 'insertvon' => 'system' ) @@ -8906,27 +8966,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The research questions or the tasks were answered in a manner appropriate with the objectives; the results are discussed.', - 'description' => '', - 'insertvon' => 'system' - ) - ) - ), - array( - 'app' => 'projektarbeitsbeurteilung', - 'category' => 'projektarbeitsbeurteilung', - 'phrase' => 'ereignisseDiskussionTextMaster', - 'insertvon' => 'system', - 'phrases' => array( - array( - 'sprache' => 'German', - 'text' => 'Die Forschungsfrage(n) wurde(n) zielführend beantwortet; die Ergebnisse werden kritisch diskutiert und liefern einen Mehrwert für Forschung und/oder Berufspraxis.', - 'description' => '', - 'insertvon' => 'system' - ), - array( - 'sprache' => 'English', - 'text' => 'The research question(s) was (were) answered in a manner appropriate with the objectives; the results are examined critically and provide added value for research and / or professional practice.', + 'text' => 'The results are interpreted in the light of the research question and critically discussed with regard to their added value for research and/or professional practice. Visualisations support the argumentation.', 'description' => '', 'insertvon' => 'system' ) @@ -8957,6 +8997,26 @@ Any unusual occurrences 'category' => 'projektarbeitsbeurteilung', 'phrase' => 'eigenstaendigkeitText', 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Arbeit wurde in selbständiger Arbeitsweise (z.B. eigenständige Lösung der Fragestellungen und aufgetretener Probleme) verfasst.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The paper was written in an independent way (e.g. independent solutions to the questions and problems that occurred)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'eigenstaendigkeitTextMaster', + 'insertvon' => 'system', 'phrases' => array( array( 'sprache' => 'German', @@ -9006,7 +9066,27 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The thesis is coherently arranged and well structured.', + 'text' => 'The paper is structured coherently.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'strukturTextMaster', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Arbeit ist schlüssig strukturiert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The thesis is structured coherently.', 'description' => '', 'insertvon' => 'system' ) @@ -9046,7 +9126,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The style is suitable for a piece of scientific work. The thesis is easy to read and has a clear, unambiguous and gender-appropriate language.', + 'text' => 'Spelling and grammar are correct. The use of technical language is appropriate. The requirements for gender-appropriate language are implemented according to the applicable guidelines.', 'description' => '', 'insertvon' => 'system' ) @@ -9126,7 +9206,27 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'The sources used are appropriate, current and sufficiently varied.', + 'text' => 'Sources and literature are relevant for the scientific discussion of the topic of the paper, reflect the current state of the art and cover the topic.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'literaturTextMaster', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Quellen und Literatur sind für die wissenschaftliche Auseinandersetzung mit dem Thema der Arbeit relevant, geben den aktuellen Stand der Forschung wieder und decken das Thema ab.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sources and literature are relevant for the scientific discussion of the topic of the thesis, reflect the current state of the art and cover the topic.', 'description' => '', 'insertvon' => 'system' ) @@ -9366,7 +9466,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'If the number of points for one criteria is 0, the {0} is to be assessed as negative overall.', + 'text' => 'If a criterion is assessed with 0 points, the {0} is to be assessed as negative overall.', 'description' => '', 'insertvon' => 'system' ) @@ -9566,7 +9666,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 'Is the thesis well structured?', + 'text' => 'Is the thesis structured coherently?', 'description' => '', 'insertvon' => 'system' ) @@ -9586,7 +9686,7 @@ Any unusual occurrences ), array( 'sprache' => 'English', - 'text' => 's the structure understandable in terms of content and is it coherent in relation to the topic ("red thread")?', + 'text' => 'Is the structure understandable in terms of content and is it coherent in relation to the topic ("red thread")?', 'description' => '', 'insertvon' => 'system' ) @@ -9899,12 +9999,12 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Dies ist eine zur kommissionellen Wiederholungsprüfung vorgelegte Bachelorarbeit. Die Note sollte daher erst nach Abstimmung mit allen Kommissionsmitgliedern abgesendet werden.', + 'text' => 'Dies ist eine im Rahmen einer kommissionellen Wiederholungsprüfung vorgelegte Bachelorarbeit. Die Beurteilung erfolgt erst im Anschluss an eine Abstimmung der Mitglieder des Prüfungssenats.', 'description' => '', ), array( 'sprache' => 'English', - 'text' => 'This bachelor thesis is submitted for the Bachelor Examination before a Committee. It should be graded after consultation with all committee members.', + 'text' => 'This is a Bachelor\'s thesis submitted within the frame of a committee re-sit examination. The assessment only takes place after a vote of the members of the examination commission.', 'description' => '', ) ) @@ -9917,13 +10017,13 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Infomail an Kommissionsmitglieder senden', + 'text' => 'Infomail an Mitglieder des Prüfungssenats senden', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Send info mail to commission members', + 'text' => 'Send infomail to members of the examination committee', 'description' => '', 'insertvon' => 'system' ) @@ -9937,13 +10037,13 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Mail an Kommissionsmitglieder gesendet', + 'text' => 'Mail an Mitglieder des Prüfungssenats gesendet', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Sent mail to committee members', + 'text' => 'Sent mail to members of the examination committee', 'description' => '', 'insertvon' => 'system' ) @@ -9957,7 +10057,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Fehler beim Senden der Mail an Kommission', + 'text' => 'Fehler beim Senden der Mail an Prüfungssenat', 'description' => '', 'insertvon' => 'system' ), @@ -10077,13 +10177,13 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Kommissionsmitglieder', + 'text' => 'Mitglieder Prüfungssenat', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Commitee members', + 'text' => 'Members of the examination commission', 'description' => '', 'insertvon' => 'system' ) From b758275b5810ac7b769b20cf3b8fc1c5563a2b16 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 16 Mar 2022 17:12:55 +0100 Subject: [PATCH 15/15] added Projektarbeitsbeurteilung phrases --- system/phrasesupdate.php | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index ba9b64d19..b98003768 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10249,6 +10249,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'titelSpeichernFehler', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Fehler beim Speichern des Titels', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Error when saving title', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', @@ -10269,6 +10289,46 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'plagiatscheck', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Plagiatscheck', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Plagiarism check', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'betreuernote', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betreuernote', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessor grade', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung',
".$p->t('abgabetool/student').": ".$db->convert_html_chars($studentenname).""; -if ($num_rows_sem >= 1) + +$semester_benotbar = $num_rows_sem >= 1; +$endupload_vorhanden = $num_rows_endupload >= 1; + +if ($semester_benotbar && $endupload_vorhanden) { $htmlstr .= "
"; $htmlstr .= "\n"; @@ -466,9 +484,10 @@ if ($num_rows_sem >= 1) } else { + $quick_info = !$semester_benotbar ? $p->t('abgabetool/aeltereParbeitBenoten') : $p->t('abgabetool/keinEnduploadErfolgt'); $htmlstr .= ""; - $htmlstr .= ""; + $htmlstr .= ""; $htmlstr .= "
"; } $htmlstr .= "