From 282b46d54e22a918b87b3779221bd4f989826eb8 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 23 Aug 2022 15:26:13 +0200 Subject: [PATCH 01/24] =?UTF-8?q?Added=20betreuerart=20Senatsvorsitz=20and?= =?UTF-8?q?=20Senatspr=C3=BCfer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 6824d350f..515a80bf5 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6273,6 +6273,34 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } } +// lehre.tbl_betreuerart: add type Senatsvorsitz +if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsvorsitz'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsvorsitz', 'Senatsvorsitz kommissionelle Prüfung');"; + + if(!$db->db_query($qry)) + echo 'Betreuerart: '.$db->db_last_error().'
'; + else + echo '
Neue Betreuerart Senatsvorsitz in lehre.tbl_betreuerart hinzugefügt'; + } +} + +// lehre.tbl_betreuerart: add type Senatsprüfer +if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatspruefer'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatspruefer', 'Senatsprüfer kommissionelle Prüfung');"; + + if(!$db->db_query($qry)) + echo 'Betreuerart: '.$db->db_last_error().'
'; + else + echo '
Neue Betreuerart Senatspruefer in lehre.tbl_betreuerart hinzugefügt'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 82d7891f3c81d4abdf33c2be5a04de7412b9ed0f Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 23 Aug 2022 17:45:12 +0200 Subject: [PATCH 02/24] =?UTF-8?q?Projektarbeitsbeurteilung=20possible=20fo?= =?UTF-8?q?r=20Pr=C3=BCfungssenat.=20Mails=20are=20sent=20to=20Senat=20mem?= =?UTF-8?q?bers,=20Senat=20members=20are=20displayed=20with=20correct=20la?= =?UTF-8?q?bels,=20external=20Pr=C3=BCfer=20can=20get=20login=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../education/Projektbetreuer_model.php | 36 +- cis/private/lehre/abgabe_lektor.php | 3 +- cis/private/lehre/abgabe_lektor_details.php | 336 +++++++----- cis/private/lehre/abgabe_student.php | 518 +++++++++--------- cis/private/lehre/abgabe_student_details.php | 95 ++-- include/projektbetreuer.class.php | 68 ++- locale/de-AT/abgabetool.php | 9 +- locale/en-US/abgabetool.php | 7 +- system/phrasesupdate.php | 20 + vilesci/lehre/abgabe_assistenz.php | 6 +- 10 files changed, 611 insertions(+), 487 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 0200f6468..f6205f67f 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -54,18 +54,28 @@ class Projektbetreuer_model extends DB_Model $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 - 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) - LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid - WHERE ben.aktiv - AND projektarbeit_id = ? - AND betreuerart_kurzbz = ? - 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"; + ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid, + ( + SELECT kontakt + FROM public.tbl_kontakt + WHERE kontakttyp = 'email' + AND person_id = pers.person_id + ORDER BY + CASE WHEN zustellung THEN 0 ELSE 1 END, + insertamum DESC NULLS LAST + LIMIT 1 + ) AS private_email + 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) + LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid + WHERE (ben.aktiv OR ben.aktiv IS NULL) + AND projektarbeit_id = ? + AND betreuerart_kurzbz = ? + 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)); } @@ -102,7 +112,7 @@ class Projektbetreuer_model extends DB_Model 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 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 diff --git a/cis/private/lehre/abgabe_lektor.php b/cis/private/lehre/abgabe_lektor.php index 414c5e423..069f3caf3 100644 --- a/cis/private/lehre/abgabe_lektor.php +++ b/cis/private/lehre/abgabe_lektor.php @@ -75,8 +75,7 @@ $sql_query = "SELECT WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).") ".($showall?'':' AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ')." - AND (betreuerart_kurzbz='Betreuer' OR betreuerart_kurzbz='Begutachter' OR betreuerart_kurzbz='Erstbegutachter' - OR betreuerart_kurzbz='Zweitbegutachter' OR betreuerart_kurzbz='Erstbetreuer') + AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Zweitbegutachter', 'Erstbetreuer', 'Senatsvorsitz', 'Senatspruefer') ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy ORDER BY nachname"; diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index a508de098..ed33add27 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -121,9 +121,9 @@ $titel = $projektarbeit_obj->titel; $student_uid = $projektarbeit_obj->student_uid; // paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden -$num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); +$paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); -if(!is_numeric($num_rows_sem) || $num_rows_sem < 0) +if(!is_numeric($paIsCurrent) || $paIsCurrent < 0) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } @@ -143,27 +143,28 @@ if($num_rows_endupload < 0) } // Zweitbegutachter holen -if($betreuerart=="Erstbegutachter") +if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz'))) { - $projektbetreuer = new projektbetreuer(); - $alleBegutachter = $projektbetreuer->getProjektbetreuer($projektarbeit_id); + $alleBegutachter = new projektbetreuer(); + $alleBegutachterRes = $alleBegutachter->getProjektbetreuer($projektarbeit_id); - if ($alleBegutachter) + if ($alleBegutachterRes) { - $alleBegutachterResults = $projektbetreuer->result; - - foreach ($alleBegutachterResults as $begutachter) + $zweitbetreuerArr = array(); + foreach ($alleBegutachter->result as $begutachter) { - if ($begutachter->betreuerart_kurzbz == "Erstbegutachter") + if (in_array($begutachter->betreuerart_kurzbz, array('Erstbegutacher', 'Senatsvorsitz'))) { + // dem Erstbetreuer zugewiesene Zweitbetreuer holen $erstbetreuer_id = $begutachter->person_id; - $zweitbegutachter = $projektbetreuer->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid); - break; + $zweitbegutachter = new projektbetreuer(); + $zweitbegutachterRes = $zweitbegutachter->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid); + if ($zweitbegutachterRes) $zweitbetreuerArr = array_merge($zweitbetreuerArr, $zweitbegutachter->result); } } // Mail mit Token an Zweitbegutachter senden - if ($zweitbegutachter && $num_rows_sem >= 1 && isset($_GET['zweitbegutachtertoken'])) + if ($zweitbegutachterRes && $paIsCurrent >= 1 && 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)) @@ -173,15 +174,24 @@ if($betreuerart=="Erstbegutachter") else { $row_std=@$db->db_fetch_object($result_std); - $mailres = sendZweitbegutachterMail($zweitbegutachter, $erstbetreuer_id, $row_std); + foreach ($zweitbetreuerArr as $zbg) + { + // if Zweitbetreuer is the one for which token was requested, send mail + if ($zbg->person_id == $_GET['zweitbetreuer_person_id']) + { + $mailres = sendZweitbegutachterMail($zbg, $erstbetreuer_id, $row_std); - if ($mailres) - { - echo "
".$p->t('abgabetool/zweitbegutachterMailGesendet', $zweitbegutachter->email)."
 "; - } - else - { - echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zweitbegutachter->email."
 "; + if ($mailres) + { + echo "
" + .$p->t('abgabetool/zweitbegutachterMailGesendet', array($zbg->voller_name, $zbg->email)) + ."
 "; + } + else + { + echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zbg->email."
 "; + } + } } } } @@ -465,7 +475,7 @@ $htmlstr .= "\n"; $htmlstr .= ""; $htmlstr .= ""; $htmlstr .= "\n"; -if (isset($zweitbegutachter) && $zweitbegutachter) // wenn es Zweitbegutachter gibt + +if (isset($zweitbetreuerArr) && is_array($zweitbetreuerArr)) // wenn es Zweitbetreuer gibt { - // Zweitbegutachter anzeigen + // Zweitbetreuer anzeigen $htmlstr .= "\n"; - $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; @@ -545,122 +571,122 @@ $htmlstr .= "\n"; $result=@$db->db_query($qry); - while ($row=@$db->db_fetch_object($result)) +while ($row=@$db->db_fetch_object($result)) +{ + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + if(!$row->abgabedatum) { - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; + if ($row->datumdatum>=date('Y-m-d')) && ($row->datumabgabedatum>$row->datum) + { + //Abgabe nach Termin - weiß auf hellrot + $bgcol='#EA7B7B'; + $fcol='#FFFFFF'; + } + else + { + //Abgabe vor Termin - schwarz auf grün + $bgcol='#00FF00'; + $fcol='#000000'; + } + } + //$htmlstr .= ""; + } + else + { + $htmlstr .= ""; + } + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + if($user==$row->insertvon && $betreuerart!="Zweitbegutachter") + { + $htmlstr .= " "; + if(!$row->abgabedatum) { - if ($row->datumdatum>=date('Y-m-d')) && ($row->datumt('global/loeschen')."' onclick='return confdel()' title='".$p->t('abgabetool/terminLoeschen')."'>"; } else { - if($row->abgabedatum>$row->datum) - { - //Abgabe nach Termin - weiß auf hellrot - $bgcol='#EA7B7B'; - $fcol='#FFFFFF'; - } - else - { - //Abgabe vor Termin - schwarz auf grün - $bgcol='#00FF00'; - $fcol='#000000'; - } + $htmlstr .= " "; } - //$htmlstr .= ""; - } - else - { - $htmlstr .= ""; - } - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " \n"; - if($user==$row->insertvon && $betreuerart!="Zweitbegutachter") - { - $htmlstr .= " "; - - if(!$row->abgabedatum) - { - $htmlstr .= " "; - } - else - { - $htmlstr .= " "; - } - } - else - { - $htmlstr .= " "; - } - if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf')) - { - $htmlstr .= " "; - } - else - { - $htmlstr .= " "; - } - if($row->abgabedatum && $row->paabgabetyp_kurzbz=="end") - { - $htmlstr .= " "; - } - else - { - $htmlstr .= " "; - } - $htmlstr .= " \n"; - - - $htmlstr .= "\n"; } + else + { + $htmlstr .= " "; + } + if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf')) + { + $htmlstr .= " "; + } + else + { + $htmlstr .= " "; + } + if($row->abgabedatum && $row->paabgabetyp_kurzbz=="end") + { + $htmlstr .= " "; + } + else + { + $htmlstr .= " "; + } + $htmlstr .= " \n"; + + + $htmlstr .= "\n"; +} //Eingabezeile fuer neuen Termin $htmlstr .= ''."\n"; @@ -721,10 +747,16 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, if (!$projektbetreuer) return $projektbetreuer; - $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($erstbegutachter_person_id, $zweitbegutachter->projektarbeit_id, $student->uid); + $zweitbetrRes = $projektbetreuer->getZweitbegutachterWithToken( + $erstbegutachter_person_id, + $zweitbegutachter->projektarbeit_id, + $student->uid, + $zweitbegutachter->person_id + ); - if ($zweitbetr) + if ($zweitbetrRes && isset($projektbetreuer->result[0])) { + $zweitbetr = $projektbetreuer->result[0]; $intern = isset($zweitbetr->uid); $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid; diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index 2a328dd35..8782c84c1 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -1,248 +1,270 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/person.class.php'); -require_once('../../../include/benutzer.class.php'); -require_once('../../../include/student.class.php'); -require_once('../../../include/studiengang.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -$getuid=get_uid(); -$uid=$getuid; - -if(isset($_GET['uid'])) -{ - //Studentenansicht - $uid = $_GET['uid']; - //Rechte Pruefen - $allowed=false; - - $student = new student(); - if(!$student->load($uid)) - die($p->t('global/fehlerBeimErmittelnDerUID')); - - $stg_obj = new studiengang(); - if(!$stg_obj->load($student->studiengang_kz)) - die($p->t('global/fehlerBeimLesenAusDatenbank')); - - //Berechtigung ueber das Berechtigungssystem - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($getuid); - if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s')) - $allowed=true; - - //oder Lektor mit Betreuung dieses Studenten - $qry = "SELECT 1 - FROM - lehre.tbl_projektarbeit - JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) - JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) - WHERE - tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND - vw_benutzer.uid=".$db->db_add_param($getuid).";"; - - if($result = $db->db_query($qry)) - { - if($db->db_num_rows($result)>0) - { - $allowed=true; - } - } - - if(!$allowed) - { - die($p->t('abgabetool/keineBerechtigungStudentenansicht')); - } -} -$htmlstr = ''; -$htmlstr1 = ''; -$vorname=''; -$nachname=''; -$zweitbetreuer = ''; - -$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, - (SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname, - (SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre, - (SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost, - (SELECT person_id FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id - AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_person_id, - (SELECT betreuerart_kurzbz FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id - AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_betreuerart_kurzbz, - tbl_projektbetreuer.person_id AS betreuer_person_id, - tbl_projekttyp.bezeichnung AS prjbez, *, - lehre.tbl_projektbetreuer.note as note, - public.tbl_benutzer.aktiv as aktiv, - (SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuer_person_id = tbl_projektbetreuer.person_id) AS babgeschickt, - (SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_abgeschickt - FROM lehre.tbl_projektarbeit - LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) - LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' - OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' - OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' - OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter') - AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." - ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz"; - -//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102'; -if(!$erg=$db->db_query($sql_query)) -{ - $errormsg=$p->t('global/fehlerBeimLesenAusDatenbank'); -} -else -{ - $htmlstr .= "
".$p->t('abgabetool/student').": ".$db->convert_html_chars($studentenname).""; -$semester_benotbar = $num_rows_sem >= 1; +$semester_benotbar = $paIsCurrent >= 1; $endupload_vorhanden = $num_rows_endupload >= 1; if ($semester_benotbar && $endupload_vorhanden) @@ -498,30 +508,46 @@ else } $htmlstr .= "
" . $p->t('abgabetool/titel') . ": ".$db->convert_html_chars($titel)."".$p->t('abgabetool/studentenansicht')."
" . $p->t('abgabetool/zweitBegutachter') . ": " . $zweitbegutachter->voller_name . ""; - - // keine Mail -> Fehler anzeigen - if (!isset($zweitbegutachter->email)) - $htmlstr .= "  " . $p->t("; - - // Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist - if (isset($zweitbegutachter->email) && !isset($zweitbegutachter->uid) && $num_rows_sem >= 1) + $htmlstr .= ""; + $bart = ''; + foreach($zweitbetreuerArr as $zweitbetreuer) { - $htmlstr .= "
\n"; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= " email) . "' alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "'/>\n"; - $htmlstr .= " \n"; - $htmlstr .= "
"; - } + if ($bart !== $zweitbetreuer->betreuerart_kurzbz) + { + $htmlstr .= ($zweitbetreuer->betreuerart_kurzbz == 'Senatspruefer' ? $p->t('abgabetool/senatsPruefer') : $p->t('abgabetool/zweitBegutachter')); + $htmlstr .= ": "; + $bart = $zweitbetreuer->betreuerart_kurzbz; + } + else + $htmlstr .= ", "; + $htmlstr .= "" . $zweitbetreuer->voller_name . ""; + + // keine Mail -> Fehler anzeigen + if (!isset($zweitbetreuer->email)) + $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) + { + $htmlstr .= "
\n"; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= " voller_name, $zweitbetreuer->email)) . "' + alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', array($zweitbetreuer->voller_name, $zweitbetreuer->email)) . "'/>\n"; + $htmlstr .= " "; + $htmlstr .= "
"; + } + } $htmlstr .= "
fixtermin=='t'?'checked=\"checked\"':'')." >"; + //$htmlstr .= "fixtermin=='t'?'checked="checked" style="background-color:#FF0000;"':'')." disabled>"; + if($row->fixtermin=='t') + { + $htmlstr .= "JN".($row->abgabedatum==''?' ':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."       fixtermin=='t'?'checked=\"checked\"':'')." >"; - //$htmlstr .= "fixtermin=='t'?'checked="checked" style="background-color:#FF0000;"':'')." disabled>"; - if($row->fixtermin=='t') - { - $htmlstr .= "JN".($row->abgabedatum==''?' ':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."                     PDF    zusätzliche Daten    
              PDF    zusätzliche Daten    
\n"; - $htmlstr .= "\n"; - $htmlstr .= " - - - - - - - - "; - $htmlstr .= "\n"; - $i = 0; - while($row=$db->db_fetch_object($erg)) - { - $htmlstr1 = ''; - $zweitbetreuer_obj = new person(); - if ($zweitbetreuer_obj->load($row->zweitbetreuer_person_id)) - { - $zweitbetreuer = ', '.$db->convert_html_chars($row->zweitbetreuer_betreuerart_kurzbz).': '.$zweitbetreuer_obj->titelpre.' '.$zweitbetreuer_obj->vorname.' '.$zweitbetreuer_obj->nachname.' '.$zweitbetreuer_obj->titelpost; - } - $htmlstr1 = ''.$db->convert_html_chars($row->betreuerart_kurzbz).': '; - $vorname=$row->vorname; - $nachname=$row->nachname; - $uid=$row->uid; - ($row->btitelpre!=''?$htmlstr1 .= $row->btitelpre.' ':$htmlstr1 .= ''); - $htmlstr1 .= $row->bvorname.' '.$row->bnachname; - ($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= ''); - $htmlstr1 .= $zweitbetreuer; - $htmlstr .= " \n"; //class='liste".($i%2)."' - - if (is_null($row->note) && $row->aktiv === 't') - $htmlstr .= " \n"; - elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt)) - { - $htmlstr .= ""; - } else - { - $htmlstr .= ""; - } - - - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= " \n"; -// $htmlstr .= " \n"; - $htmlstr .= " \n"; - $i++; - } - $htmlstr .= "
".$p->t('abgabetool/details')."".$p->t('lvplan/sem')."".$p->t('lvplan/stg')."".$p->t('global/mail')."".$p->t('abgabetool/betreuer')."".$p->t('abgabetool/typ')."".$p->t('abgabetool/titel')."
".$p->t('abgabetool/upload').""; - - if (!is_null($row->babgeschickt)) - $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 .= "".$row->studiensemester_kurzbz."".strtoupper($row->typ.$row->kurzbz).""; - - $qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person - JOIN public.tbl_benutzer USING(person_id) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";"; - if($result_betr=$db->db_query($qry_betr)) - { - if($row_betr=$db->db_fetch_object($result_betr)) - { - $htmlstr.="email"; - } - else - { - $htmlstr.="UID unknown!"; - } - } - $htmlstr .= " ".$htmlstr1." ".$db->convert_html_chars($row->prjbez)."".$db->convert_html_chars($row->titel)."".$db->convert_html_chars($row->betreuerart_kurzbz)."
\n"; -} -echo ' - - - - Abgabesystem_Studentensicht - - - - - - - - - - - - -'; - - echo '

'.$p->t('abgabetool/ueberschrift'); - if(trim($uid)!='') - echo " ($uid $vorname $nachname)
Anleitung ".$p->t('global/handbuch')."
"; - echo '

'; - echo $htmlstr; - echo ' -'; -?> + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/person.class.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/student.class.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/projektbetreuer.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/phrasen.class.php'); + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); + +$getuid=get_uid(); +$uid=$getuid; + +if(isset($_GET['uid'])) +{ + //Studentenansicht + $uid = $_GET['uid']; + //Rechte Pruefen + $allowed=false; + + $student = new student(); + if(!$student->load($uid)) + die($p->t('global/fehlerBeimErmittelnDerUID')); + + $stg_obj = new studiengang(); + if(!$stg_obj->load($student->studiengang_kz)) + die($p->t('global/fehlerBeimLesenAusDatenbank')); + + //Berechtigung ueber das Berechtigungssystem + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($getuid); + if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s')) + $allowed=true; + + //oder Lektor mit Betreuung dieses Studenten + $qry = "SELECT 1 + FROM + lehre.tbl_projektarbeit + JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) + JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) + WHERE + tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND + vw_benutzer.uid=".$db->db_add_param($getuid).";"; + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)>0) + { + $allowed=true; + } + } + + if(!$allowed) + { + die($p->t('abgabetool/keineBerechtigungStudentenansicht')); + } +} +$htmlstr = ''; +$htmlstr1 = ''; +$vorname=''; +$nachname=''; +$zweitbetreuer = ''; +$senatspruefer = ''; + +$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, + (SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname, + (SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre, + (SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost, + (SELECT person_id FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id + AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_person_id, + (SELECT betreuerart_kurzbz FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id + AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_betreuerart_kurzbz, + tbl_projektbetreuer.person_id AS betreuer_person_id, + tbl_projekttyp.bezeichnung AS prjbez, *, + lehre.tbl_projektbetreuer.note as note, + public.tbl_benutzer.aktiv as aktiv, + (SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuer_person_id = tbl_projektbetreuer.person_id) AS babgeschickt, + (SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_abgeschickt + FROM lehre.tbl_projektarbeit + LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Senatsvorsitz') + AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." + ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz"; + +//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102'; +if(!$erg=$db->db_query($sql_query)) +{ + $errormsg=$p->t('global/fehlerBeimLesenAusDatenbank'); +} +else +{ + $htmlstr .= "
\n"; + $htmlstr .= "\n"; + $htmlstr .= " + + + + + + + + "; + $htmlstr .= "\n"; + $i = 0; + while($row=$db->db_fetch_object($erg)) + { + // get zweitbetreuer, if any + $htmlstr1 = ''; + $zweitbetreuer_obj = new person(); + if ($zweitbetreuer_obj->load($row->zweitbetreuer_person_id)) + { + $zweitbetreuer = ', '.$db->convert_html_chars($row->zweitbetreuer_betreuerart_kurzbz).': '.$zweitbetreuer_obj->titelpre.' '.$zweitbetreuer_obj->vorname.' '.$zweitbetreuer_obj->nachname.' '.$zweitbetreuer_obj->titelpost; + } + $htmlstr1 = ''.$db->convert_html_chars($row->betreuerart_kurzbz).': '; + + // get senatspruefer, if any + if ($row->betreuerart_kurzbz == 'Senatsvorsitz') + { + $senatspruefer_obj = new projektbetreuer(); + $senatsprueferRes = $senatspruefer_obj->getZweitbegutachterWithToken($row->betreuer_person_id, $row->projektarbeit_id, $row->uid); + if ($senatsprueferRes) + { + $senatspruefer .= ', Senatsprüfer: '; + $first = true; + foreach($senatspruefer_obj->result as $spr) + { + if (!$first) + $senatspruefer .= ', '; + $senatspruefer .= $spr->voller_name; + $first = false; + } + } + } + + $vorname=$row->vorname; + $nachname=$row->nachname; + $uid=$row->uid; + + ($row->btitelpre!=''?$htmlstr1 .= $row->btitelpre.' ':$htmlstr1 .= ''); + $htmlstr1 .= $row->bvorname.' '.$row->bnachname; + ($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= ''); + $htmlstr1 .= $zweitbetreuer; + $htmlstr1 .= $senatspruefer; + $htmlstr .= " \n"; //class='liste".($i%2)."' + + if (is_null($row->note) && $row->aktiv === 't') + $htmlstr .= " \n"; + elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt)) + { + $htmlstr .= ""; + } else + { + $htmlstr .= ""; + } + + + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; +// $htmlstr .= " \n"; + $htmlstr .= " \n"; + $i++; + } + $htmlstr .= "
".$p->t('abgabetool/details')."".$p->t('lvplan/sem')."".$p->t('lvplan/stg')."".$p->t('global/mail')."".$p->t('abgabetool/betreuer')."".$p->t('abgabetool/typ')."".$p->t('abgabetool/titel')."
".$p->t('abgabetool/upload').""; + + if (!is_null($row->babgeschickt)) + $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 .= "".$row->note."".$row->studiensemester_kurzbz."".strtoupper($row->typ.$row->kurzbz).""; + + $qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";"; + if($result_betr=$db->db_query($qry_betr)) + { + if($row_betr=$db->db_fetch_object($result_betr)) + { + $htmlstr.="email"; + } + else + { + $htmlstr.="UID unknown!"; + } + } + $htmlstr .= " ".$htmlstr1." ".$db->convert_html_chars($row->prjbez)."".$db->convert_html_chars($row->titel)."".$db->convert_html_chars($row->betreuerart_kurzbz)."
\n"; +} +echo ' + + + + Abgabesystem_Studentensicht + + + + + + + + + + + + +'; + + echo '

'.$p->t('abgabetool/ueberschrift'); + if(trim($uid)!='') + echo " ($uid $vorname $nachname)
Anleitung ".$p->t('global/handbuch')."
"; + echo '

'; + echo $htmlstr; + echo ' +'; +?> diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 29d74ab66..bead1a1e9 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -435,6 +435,8 @@ if($command=="update" && $error!=true) // 1. Begutachter mail ohne Token $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; + $projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz; + $subject = $projektarbeit_obj->projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung'; $abgabetyp = $paabgabetyp_kurzbz == 'end' ? 'Endabgabe' : 'Zwischenabgabe'; $maildata = array(); @@ -452,7 +454,7 @@ if($command=="update" && $error!=true) 'ParbeitsbeurteilungEndupload', $maildata, $row_betr->mitarbeiter_uid."@".DOMAIN, - "Bachelor-/Masterarbeitsbetreuung", + $subject, 'sancho_header_min_bw.jpg', 'sancho_footer_min_bw.jpg', $user."@".DOMAIN); @@ -465,48 +467,63 @@ if($command=="update" && $error!=true) // 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern if ($paabgabetyp_kurzbz == 'end') { - $projektbetreuer = new projektbetreuer(); - $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); + // Zweitbegutachter holen + $zweitbegutachter = new projektbetreuer(); + $zweitbegutachterRes = $zweitbegutachter->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); - if ($zweitbetr) + if ($zweitbegutachterRes) { - $tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id); + $zweitbegutachterResults = $zweitbegutachter->result; - if (!$tokenGenRes) - echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; - - $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); - - if (!$zweitbetr) - echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; - - $intern = isset($zweitbetr->uid); - $mail_link = $intern ? $mail_fulllink : $mail_baselink; - - $zweitbetmaildata = array(); - $zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : ""); - $zweitbetmaildata['anrede'] = $zweitbetr->anrede; - $zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name; - $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; - $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($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; - - $mailres = sendSanchoMail( - 'ParbeitsbeurteilungEndupload', - $zweitbetmaildata, - $zweitbetr->email, - "Masterarbeitsbetreuung", - 'sancho_header_min_bw.jpg', - 'sancho_footer_min_bw.jpg', - $user . "@" . DOMAIN - ); - - if (!$mailres) + foreach ($zweitbegutachterResults as $begutachter) { - echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + // token generieren, wenn noch nicht vorhanden und notwendig (wird in methode überprüft) + $tokenGenRes = $zweitbegutachter->generateZweitbegutachterToken($begutachter->person_id, $projektarbeit_id); + + if (!$tokenGenRes) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + + // Zweitbegutachter (evtl. mit Token) holen + $zweitbegutachterMitToken = new projektbetreuer(); + $begutachterMitTokenRes = $zweitbegutachterMitToken->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid, $begutachter->person_id); + + if (!$begutachterMitTokenRes) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + + // Email an Zweitbegutachter senden + if (isset($zweitbegutachterMitToken->result[0])) + { + $begutachterMitToken = $zweitbegutachterMitToken->result[0]; + + $intern = isset($begutachterMitToken->uid); + $mail_link = $intern ? $mail_fulllink : $mail_baselink; + + $zweitbetmaildata = array(); + $zweitbetmaildata['geehrt'] = "geehrte" . ($begutachterMitToken->anrede == "Herr" ? "r" : ""); + $zweitbetmaildata['anrede'] = $begutachterMitToken->anrede; + $zweitbetmaildata['betreuer_voller_name'] = $begutachterMitToken->voller_name; + $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; + $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 . "

" : ""; + + $mailres = sendSanchoMail( + 'ParbeitsbeurteilungEndupload', + $zweitbetmaildata, + $begutachterMitToken->email, + $subject, + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg', + $user . "@" . DOMAIN + ); + + if (!$mailres) + { + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + } + } } } } diff --git a/include/projektbetreuer.class.php b/include/projektbetreuer.class.php index 04ba36b26..e55ad08d1 100644 --- a/include/projektbetreuer.class.php +++ b/include/projektbetreuer.class.php @@ -395,40 +395,66 @@ class projektbetreuer extends basis_db * @param $erstbegutachter_person_id int person_id des Erstbegutachters * @param $projektarbeit_id int * @param $student_uid string uid des Studenten der Arbeit abgibt + * @param $zweitbegutachter_person_id int person_id des Zweitbegutachters (wenn mehrere Zweitbetreuer zu einem Erstbegutachter erwartet werden) * @return object | bool */ - public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid) + public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid, $zweitbegutachter_person_id = null) { - $qry_betr="SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt, + $qry_betr="SELECT DISTINCT ON (betr.person_id) betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, + tbl_benutzer.uid, kontakt, betr.betreuerart_kurzbz, 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 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' + WHERE + ( + ( + betr.betreuerart_kurzbz = 'Zweitbegutachter' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)." + AND betreuerart_kurzbz = 'Erstbegutachter' + AND projektarbeit_id = betr.projektarbeit_id + ) + ) + OR + ( + betr.betreuerart_kurzbz = 'Senatspruefer' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)." + AND betreuerart_kurzbz = 'Senatsvorsitz' + AND projektarbeit_id = betr.projektarbeit_id + ) + ) + ) AND betr.projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND parb.student_uid = ".$this->db_add_param($student_uid)." - AND EXISTS ( - SELECT 1 FROM lehre.tbl_projektbetreuer - WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)." - 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"; + AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)"; + + if (isset($zweitbegutachter_person_id)) + { + $qry_betr .= " AND betr.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER); + } + + $qry_betr .= " ORDER BY betr.person_id DESC, + (CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */ + SELECT 1 FROM public.tbl_mitarbeiter ma + WHERE ma.mitarbeiter_uid = tbl_benutzer.uid + ) THEN 0 ELSE 1 END), betr.insertamum DESC"; if ($betr=$this->db_query($qry_betr)) { - $row_betr = $this->db_fetch_object($betr); - - if ($row_betr) - return $row_betr; - else - return false; + $result = array(); + while ($row_betr = $this->db_fetch_object()) + { + $this->result[] = $row_betr; + } + return true; } else { @@ -451,7 +477,7 @@ class projektbetreuer extends basis_db LEFT JOIN public.tbl_benutzer USING(person_id) WHERE projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND tbl_projektbetreuer.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER)." - AND betreuerart_kurzbz = 'Zweitbegutachter' + AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatspruefer') LIMIT 1"; if ($betreueruidres = $this->db_query($betreuerUidQry)) @@ -494,7 +520,7 @@ class projektbetreuer extends basis_db zugangstoken_gueltigbis = CURRENT_DATE + interval '1 year' WHERE projektarbeit_id = " . $this->db_add_param($projektarbeit_id, FHC_INTEGER) . " AND person_id = " . $this->db_add_param($row_betr->person_id, FHC_INTEGER) . " - AND betreuerart_kurzbz = 'Zweitbegutachter'"; + AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatspruefer')"; if ($this->db_query($qry_upd)) { diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php index c4b17318b..e52b91c9a 100644 --- a/locale/de-AT/abgabetool.php +++ b/locale/de-AT/abgabetool.php @@ -83,12 +83,13 @@ $this->phrasen['abgabetool/gelesenUndAkzeptiert']='Gelesen und akzeptiert'; $this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Erklärung nicht akzeptiert'; $this->phrasen['abgabetool/downloadProjektarbeit']='Dokument herunterladen'; $this->phrasen['abgabetool/zweitBegutachter']='ZweitbegutachterIn'; -$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken an ZweitbegutachterIn noch einmal senden'; -$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an ZweitbegutachterIn (%s) gesendet'; -$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an ZweitbegutachterIn (%s) senden'; -$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail für Zweitbegutachter vorhanden!'; +$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken noch einmal senden'; +$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an %s (%s) gesendet'; +$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an %s (%s) senden'; +$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail vorhanden!'; $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'; +$this->phrasen['abgabetool/senatsPruefer']='Prüfer'; ?> diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php index b05456faa..27a885a11 100644 --- a/locale/en-US/abgabetool.php +++ b/locale/en-US/abgabetool.php @@ -84,11 +84,12 @@ $this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Declaration not accepted $this->phrasen['abgabetool/downloadProjektarbeit']='Download File'; $this->phrasen['abgabetool/zweitBegutachter']='Second assessor'; $this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor'; -$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)'; -$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)'; -$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!'; +$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to assessor %s (%s)'; +$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to assessor %s (%s)'; +$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Assessor has no delivery mail adress!'; $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'; +$this->phrasen['abgabetool/senatsPruefer']='Examiner'; ?> diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index ca59997fa..7f051459d 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10389,6 +10389,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'senatsvorsitz', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Senatsvorsitz', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', diff --git a/vilesci/lehre/abgabe_assistenz.php b/vilesci/lehre/abgabe_assistenz.php index 3c939a330..4de70fd31 100644 --- a/vilesci/lehre/abgabe_assistenz.php +++ b/vilesci/lehre/abgabe_assistenz.php @@ -149,11 +149,7 @@ else LEFT JOIN PUBLIC.tbl_benutzer ON (PUBLIC.tbl_benutzer.person_id = PUBLIC.tbl_person.person_id) LEFT JOIN PUBLIC.tbl_mitarbeiter ON (PUBLIC.tbl_benutzer.uid = PUBLIC.tbl_mitarbeiter.mitarbeiter_uid) WHERE projektarbeit_id = ".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." - AND ( - tbl_projektbetreuer.betreuerart_kurzbz = 'Erstbegutachter' - OR tbl_projektbetreuer.betreuerart_kurzbz = 'Betreuer' - OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter' - ) + AND tbl_projektbetreuer.betreuerart_kurzbz IN ('Erstbegutachter', 'Betreuer', 'Begutachter', 'Senatsvorsitz') UNION From a1622d8b7473a1ab0f00b3ea5156405b0a9d142c Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 17:05:30 +0200 Subject: [PATCH 03/24] made betreuert SenatsprueferIn gender neutral --- system/dbupdate_3.3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 515a80bf5..e362bedba 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6292,7 +6292,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) VALUES('Senatspruefer', 'Senatsprüfer kommissionelle Prüfung');"; + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatspruefer', 'SenatsprüferIn kommissionelle Prüfung');"; if(!$db->db_query($qry)) echo 'Betreuerart: '.$db->db_last_error().'
'; From 1d5d5e4a84b575af9a98ae7f694cdc95d80972f8 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 18:07:34 +0200 Subject: [PATCH 04/24] added getEndabgabe method to Paabgabe model --- .../models/education/Paabgabe_model.php | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/application/models/education/Paabgabe_model.php b/application/models/education/Paabgabe_model.php index 087c27663..b876030a6 100644 --- a/application/models/education/Paabgabe_model.php +++ b/application/models/education/Paabgabe_model.php @@ -1,7 +1,6 @@ dbTable = 'campus.tbl_paabgabe'; $this->pk = 'paabgabe_id'; } + + /** + * Gets last Endabgabe of a Projektarbeit, including filename. + * @param int $projektarbeit_id + * @return object + */ + public function getEndabgabe($projektarbeit_id) + { + $qry = "SELECT paabgabe_id, student_uid, paabg.datum, paabg.abgabedatum, projekttyp_kurzbz, titel, titel_english, + paabgabe_id || '_' || student_uid || '.pdf' AS filename + FROM campus.tbl_paabgabe paabg + JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) + WHERE projektarbeit_id = ? + AND paabgabetyp_kurzbz = 'end' + AND paabg.abgabedatum IS NOT NULL + ORDER BY paabg.abgabedatum, paabg.datum DESC + LIMIT 1"; + + return $this->execQuery($qry, array($projektarbeit_id)); + } } From 2125fdc21913ab563a3b3b4c444b65059b40c449 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 18:09:30 +0200 Subject: [PATCH 05/24] sending of zweitbetreuer mail with token: correct subject depending on projekttyp --- cis/private/lehre/abgabe_lektor_details.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index ed33add27..852529d53 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -119,6 +119,7 @@ if(!$projektarbeit_obj->load($projektarbeit_id)) die('Fehler beim Laden der Projektarbeit'); $titel = $projektarbeit_obj->titel; $student_uid = $projektarbeit_obj->student_uid; +$projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz; // paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden $paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); @@ -179,7 +180,7 @@ if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz'))) // if Zweitbetreuer is the one for which token was requested, send mail if ($zbg->person_id == $_GET['zweitbetreuer_person_id']) { - $mailres = sendZweitbegutachterMail($zbg, $erstbetreuer_id, $row_std); + $mailres = sendZweitbegutachterMail($zbg, $erstbetreuer_id, $row_std, $projekttyp_kurzbz); if ($mailres) { @@ -734,7 +735,7 @@ echo $htmlstr; * @param object $student * @return bool|projektbetreuer|void|null */ -function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $student) +function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $student, $projekttyp_kurzbz) { if (!isset($zweitbegutachter->email) || $zweitbegutachter->email == '') return false; @@ -758,6 +759,7 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, { $zweitbetr = $projektbetreuer->result[0]; $intern = isset($zweitbetr->uid); + $mail_subject = $projekttyp_kurzbz == 'Diplom' ? "Masterarbeitsbetreuung" : "Bachelorarbeitsbetreuung"; $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid; $mail_link = $intern ? $mail_fulllink : $mail_baselink; @@ -777,7 +779,7 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, 'ParbeitsbeurteilungEndupload', $maildata, $zweitbetr->email, - "Masterarbeitsbetreuung", + $mail_subject, 'sancho_header_min_bw.jpg', 'sancho_footer_min_bw.jpg' ); From 60d675f22b1a316d8bcb321dd08f5545c056d8d3 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 18:09:53 +0200 Subject: [PATCH 06/24] added parbeitDownload phrases for Projektarbeitsbeurteilung --- system/phrasesupdate.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 7f051459d..db9a33812 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10409,6 +10409,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'parbeitDownload', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Download Projektarbeit', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Download thesis', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 1d408b9d65e475c2e3eeda9a79c48f0325b66474 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 19:39:31 +0200 Subject: [PATCH 07/24] added comment to getZweitbegutachterWithToken method in projektbetreuer class --- include/projektbetreuer.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/projektbetreuer.class.php b/include/projektbetreuer.class.php index e55ad08d1..1fe2a5e1a 100644 --- a/include/projektbetreuer.class.php +++ b/include/projektbetreuer.class.php @@ -421,7 +421,7 @@ class projektbetreuer extends basis_db AND projektarbeit_id = betr.projektarbeit_id ) ) - OR + OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */ ( betr.betreuerart_kurzbz = 'Senatspruefer' AND EXISTS ( From 2ff067193d868ca43b6919e14d17748f4d661e23 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 24 Aug 2022 19:39:59 +0200 Subject: [PATCH 08/24] added Senatsvorsitz to betreuerart kurzbz in pdfExport --- cis/private/pdfExport.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 99b5c94f0..2743205d1 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -150,14 +150,14 @@ if (isset($_GET['betreuerart_kurzbz'])) if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung') { $requestdata = $_SERVER['QUERY_STRING']; - + $log = new Webservicelog(); $log->webservicetyp_kurzbz = 'content'; $log->request_id = isset($_GET['buchungsnummern']) && !empty($_GET['buchungsnummern']) ? $_GET['buchungsnummern'] : NULL; $log->beschreibung = 'Zahlungsbestaetigungsdownload'; $log->request_data = $requestdata; $log->execute_user = get_uid(); - + $log->save(true); } @@ -207,6 +207,7 @@ if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung')) switch ($_GET['betreuerart_kurzbz']) { case 'Begutachter' : + case 'Senatsvorsitz' : $xsl = 'ProjektBeurteilungBA'; break; case 'Erstbegutachter' : From 92762c5dc2ace2b6cf61c641f880c97719b64996 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Sat, 27 Aug 2022 01:34:03 +0200 Subject: [PATCH 09/24] Projektarbeitsbeurteilung: - getZweitbegutachterWithToken: returns Zweitbegutachter (Senatspruefer) from Senatspruefungen as well - added phrase --- .../education/Projektbetreuer_model.php | 66 +++++++++++++------ system/phrasesupdate.php | 20 ++++++ 2 files changed, 67 insertions(+), 19 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index f6205f67f..d23342c85 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -106,8 +106,10 @@ class Projektbetreuer_model extends DB_Model * @param $student_uid string uid des Studenten der Arbeit abgibt * @return object | bool */ - public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid) + public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid, $zweitbegutachter_person_id = null) { + $params = array($erstbegutachter_person_id, $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 @@ -117,20 +119,46 @@ class Projektbetreuer_model extends DB_Model 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' + WHERE + ( + ( + betr.betreuerart_kurzbz = 'Zweitbegutachter' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ? + AND betreuerart_kurzbz = 'Erstbegutachter' + AND projektarbeit_id = betr.projektarbeit_id + ) + ) + OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */ + ( + betr.betreuerart_kurzbz = 'Senatspruefer' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ? + AND betreuerart_kurzbz = 'Senatsvorsitz' + AND projektarbeit_id = betr.projektarbeit_id + ) + ) + ) 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 + AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)"; + + if (isset($zweitbegutachter_person_id)) + { + $qry_betr .= " AND betr.person_id = ?"; + $params[] = $zweitbegutachter_person_id; + } + + $qry_betr .= " ORDER BY betr.person_id DESC, + (CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */ + SELECT 1 FROM public.tbl_mitarbeiter ma + WHERE ma.mitarbeiter_uid = tbl_benutzer.uid + ) THEN 0 ELSE 1 END), betr.insertamum DESC LIMIT 1"; - return $this->execQuery($qry_betr, array($projektarbeit_id, $student_uid, $erstbegutachter_person_id)); + return $this->execQuery($qry_betr, $params); } /** @@ -141,23 +169,23 @@ class Projektbetreuer_model extends DB_Model */ public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id) { - $betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id + $betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id, betreuerart_kurzbz 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' + AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatspruefer') LIMIT 1"; - $betreueruidres = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id)); + $betreueruidRes = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id)); - if (!hasData($betreueruidres)) + if (!hasData($betreueruidRes)) return error('Zweitbegutachter nicht gefunden'); - $row_betr = getData($betreueruidres)[0]; + $zweitbetreuer = getData($betreueruidRes)[0]; - if (!isset($row_betr->uid)) + if (!isset($zweitbetreuer->uid)) { do { $token = generateToken(16); @@ -166,8 +194,8 @@ class Projektbetreuer_model extends DB_Model $result = $this->update( array('projektarbeit_id' => $projektarbeit_id, - 'person_id' => $row_betr->person_id, - 'betreuerart_kurzbz' => 'Zweitbegutachter'), + 'person_id' => $zweitbetreuer->person_id, + 'betreuerart_kurzbz' => $zweitbetreuer->betreuerart_kurzbz), array('zugangstoken' => $token, 'zugangstoken_gueltigbis' => date('Y-m-d', strtotime('+1 year'))) ); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index db9a33812..0c2bb0edf 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10429,6 +10429,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'betreuerart', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betreuerart', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessor type', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 824a148b92cb67ae84c1ba3bf5c088f8cb0861a5 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 31 Aug 2022 13:38:38 +0200 Subject: [PATCH 10/24] adapted core to Projektarbeitsbeurteilung Zweitbegutachter/Erstbegutacher Controller split --- .../education/Projektbetreuer_model.php | 82 +++++++++---------- cis/private/lehre/abgabe_lektor_details.php | 13 +-- cis/private/lehre/abgabe_student_details.php | 5 +- 3 files changed, 52 insertions(+), 48 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index d23342c85..8a333d47c 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -111,52 +111,52 @@ class Projektbetreuer_model extends DB_Model $params = array($erstbegutachter_person_id, $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 - ( + 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 EXISTS ( - SELECT 1 FROM lehre.tbl_projektbetreuer - WHERE person_id = ? - AND betreuerart_kurzbz = 'Erstbegutachter' - AND projektarbeit_id = betr.projektarbeit_id + ( + betr.betreuerart_kurzbz = 'Zweitbegutachter' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ? + AND betreuerart_kurzbz = 'Erstbegutachter' + AND projektarbeit_id = betr.projektarbeit_id + ) + ) + OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */ + ( + betr.betreuerart_kurzbz = 'Senatspruefer' + AND EXISTS ( + SELECT 1 FROM lehre.tbl_projektbetreuer + WHERE person_id = ? + AND betreuerart_kurzbz = 'Senatsvorsitz' + AND projektarbeit_id = betr.projektarbeit_id + ) ) ) - OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */ - ( - betr.betreuerart_kurzbz = 'Senatspruefer' - AND EXISTS ( - SELECT 1 FROM lehre.tbl_projektbetreuer - WHERE person_id = ? - AND betreuerart_kurzbz = 'Senatsvorsitz' - AND projektarbeit_id = betr.projektarbeit_id - ) - ) - ) - AND betr.projektarbeit_id = ? - AND parb.student_uid = ? - AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)"; + AND betr.projektarbeit_id = ? + AND parb.student_uid = ? + AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)"; - if (isset($zweitbegutachter_person_id)) - { - $qry_betr .= " AND betr.person_id = ?"; - $params[] = $zweitbegutachter_person_id; - } + if (isset($zweitbegutachter_person_id)) + { + $qry_betr .= " AND betr.person_id = ?"; + $params[] = $zweitbegutachter_person_id; + } - $qry_betr .= " ORDER BY betr.person_id DESC, - (CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */ - SELECT 1 FROM public.tbl_mitarbeiter ma - WHERE ma.mitarbeiter_uid = tbl_benutzer.uid - ) THEN 0 ELSE 1 END), betr.insertamum DESC - LIMIT 1"; + $qry_betr .= " ORDER BY betr.person_id DESC, + (CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */ + SELECT 1 FROM public.tbl_mitarbeiter ma + WHERE ma.mitarbeiter_uid = tbl_benutzer.uid + ) THEN 0 ELSE 1 END), betr.insertamum DESC + LIMIT 1"; return $this->execQuery($qry_betr, $params); } diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 852529d53..eb41620ce 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -144,7 +144,7 @@ if($num_rows_endupload < 0) } // Zweitbegutachter holen -if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz'))) +if(in_array($betreuerart, array('Erstbegutachter', 'Senatsvorsitz'))) { $alleBegutachter = new projektbetreuer(); $alleBegutachterRes = $alleBegutachter->getProjektbetreuer($projektarbeit_id); @@ -154,7 +154,7 @@ if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz'))) $zweitbetreuerArr = array(); foreach ($alleBegutachter->result as $begutachter) { - if (in_array($begutachter->betreuerart_kurzbz, array('Erstbegutacher', 'Senatsvorsitz'))) + if (in_array($begutachter->betreuerart_kurzbz, array('Erstbegutachter', 'Senatsvorsitz'))) { // dem Erstbetreuer zugewiesene Zweitbetreuer holen $erstbetreuer_id = $begutachter->person_id; @@ -165,7 +165,7 @@ if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz'))) } // Mail mit Token an Zweitbegutachter senden - if ($zweitbegutachterRes && $paIsCurrent >= 1 && isset($_GET['zweitbegutachtertoken']) && isset($_GET['zweitbetreuer_person_id'])) + if (count($zweitbetreuerArr) > 0 && $paIsCurrent >= 1 && 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)) @@ -481,7 +481,8 @@ $endupload_vorhanden = $num_rows_endupload >= 1; if ($semester_benotbar && $endupload_vorhanden) { - $htmlstr .= "
"; + $beurtPfad = $betreuerart == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter'; + $htmlstr .= ""; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "
"; @@ -759,8 +760,8 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, { $zweitbetr = $projektbetreuer->result[0]; $intern = isset($zweitbetr->uid); - $mail_subject = $projekttyp_kurzbz == 'Diplom' ? "Masterarbeitsbetreuung" : "Bachelorarbeitsbetreuung"; - $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; + $mail_subject = $projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung'; + $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungZweitbegutachter"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid; $mail_link = $intern ? $mail_fulllink : $mail_baselink; diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index bead1a1e9..522e89dd3 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -433,7 +433,7 @@ if($command=="update" && $error!=true) $row_std=$db->db_fetch_object($result_std); // 1. Begutachter mail ohne Token - $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; + $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungErstbegutachter"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; $projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz; $subject = $projektarbeit_obj->projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung'; @@ -495,6 +495,9 @@ if($command=="update" && $error!=true) { $begutachterMitToken = $zweitbegutachterMitToken->result[0]; + $path = $begutachterMitToken->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter'; + $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$path"; + $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; $intern = isset($begutachterMitToken->uid); $mail_link = $intern ? $mail_fulllink : $mail_baselink; From cc33502ab3ad6ce31fd1819d62b8f768a80a19f9 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 1 Sep 2022 02:23:32 +0200 Subject: [PATCH 11/24] adapted "resend token for Begutachter" mail to Projektarbeitsbeurteilung controller split --- application/models/education/Projektbetreuer_model.php | 5 +++-- cis/private/lehre/abgabe_lektor_details.php | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 8a333d47c..db9310eed 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -110,9 +110,10 @@ class Projektbetreuer_model extends DB_Model { $params = array($erstbegutachter_person_id, $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, + $qry_betr = "SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, 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 + CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, kontakt, + abg.abgabedatum, betr.betreuerart_kurzbz 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 diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index eb41620ce..2bda94848 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -760,8 +760,9 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, { $zweitbetr = $projektbetreuer->result[0]; $intern = isset($zweitbetr->uid); + $mail_link_path = $zweitbetr->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter'; $mail_subject = $projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung'; - $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungZweitbegutachter"; + $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$mail_link_path"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid; $mail_link = $intern ? $mail_fulllink : $mail_baselink; From 29809b6bf1ab0403e87e3debfdb80d7482389d6a Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 8 Nov 2022 16:15:16 +0100 Subject: [PATCH 12/24] moved Beurteilungsformulare Pruefungssenat changes to dbupdate_3.4 --- system/dbupdate_3.3.php | 28 ---------------------------- system/dbupdate_3.4.php | 2 ++ system/dbupdate_3.4/19154.php | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 28 deletions(-) create mode 100644 system/dbupdate_3.4/19154.php diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 342c9d264..3c016cc39 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6807,34 +6807,6 @@ if(!@$db->db_query("SELECT herkunftsland_code FROM bis.tbl_bisio LIMIT 1")) echo '
Spalte herkunftsland_code in bis.tbl_bisio hinzugefügt'; } -// lehre.tbl_betreuerart: add type Senatsvorsitz -if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsvorsitz'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsvorsitz', 'Senatsvorsitz kommissionelle Prüfung');"; - - if(!$db->db_query($qry)) - echo 'Betreuerart: '.$db->db_last_error().'
'; - else - echo '
Neue Betreuerart Senatsvorsitz in lehre.tbl_betreuerart hinzugefügt'; - } -} - -// lehre.tbl_betreuerart: add type Senatsprüfer -if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatspruefer'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatspruefer', 'SenatsprüferIn kommissionelle Prüfung');"; - - if(!$db->db_query($qry)) - echo 'Betreuerart: '.$db->db_last_error().'
'; - else - echo '
Neue Betreuerart Senatspruefer in lehre.tbl_betreuerart hinzugefügt'; - } -} - // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index c3600d250..5c79d6c76 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -28,6 +28,8 @@ require_once('dbupdate_3.4/example2.php'); ... */ +require_once('dbupdate_3.4/19154.php'); + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/system/dbupdate_3.4/19154.php b/system/dbupdate_3.4/19154.php new file mode 100644 index 000000000..c13a7b98e --- /dev/null +++ b/system/dbupdate_3.4/19154.php @@ -0,0 +1,30 @@ +db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsvorsitz'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsvorsitz', 'Senatsvorsitz kommissionelle Prüfung');"; + + if(!$db->db_query($qry)) + echo 'Betreuerart: '.$db->db_last_error().'
'; + else + echo '
Neue Betreuerart Senatsvorsitz in lehre.tbl_betreuerart hinzugefügt'; + } +} + +// lehre.tbl_betreuerart: add type Senatsprüfer +if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatspruefer'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatspruefer', 'SenatsprüferIn kommissionelle Prüfung');"; + + if(!$db->db_query($qry)) + echo 'Betreuerart: '.$db->db_last_error().'
'; + else + echo '
Neue Betreuerart Senatspruefer in lehre.tbl_betreuerart hinzugefügt'; + } +} From f0b36610b7323f02d4dd181ddec3f2e45ab81744 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 10 Nov 2022 19:38:16 +0100 Subject: [PATCH 13/24] Projektarbeitsbeurteilung: added phrases, updated filter for uebersicht-page --- system/filtersupdate.php | 13 ++++++------- system/phrasesupdate.php | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index c9c14d2a1..a3bb99a43 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -1035,7 +1035,6 @@ $filters = array( {"name": "Note"}, {"name": "ErstNachname"}, {"name": "ErstAbgeschickt"}, - {"name": "ZweitNachname"}, {"name": "ZweitAbgeschickt"} ], "filters": [] @@ -1111,12 +1110,12 @@ $filters = array( {"name": "Standardkostenstelle"} ], "filters": [ - { - "name": "Nachname", - "option": "", - "condition": "", - "operation": "" - } + { + "name": "Nachname", + "option": "", + "condition": "", + "operation": "" + } ] } ', diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 3bb133f09..8e01d29bd 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -10449,6 +10449,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'nebenBegutachter', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nebenbegutachter*in', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'secondary assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'anrechnung', From 763b0bb756f406df18fa1e6fa3fdd2e5c198e9d3 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 16 Nov 2022 17:19:13 +0100 Subject: [PATCH 14/24] renamed betreuerart of secondary examiner of bachelor thesis with Vorsitz from Senatspruefer to Senatsmitglied --- .../education/Projektbetreuer_model.php | 4 +-- cis/private/lehre/abgabe_lektor.php | 20 +++++++------ cis/private/lehre/abgabe_lektor_details.php | 2 +- cis/private/lehre/abgabe_student.php | 30 ++++++++++++------- include/projektbetreuer.class.php | 6 ++-- locale/de-AT/abgabetool.php | 2 +- locale/en-US/abgabetool.php | 2 +- system/dbupdate_3.4/19154.php | 10 +++---- system/phrasesupdate.php | 2 +- 9 files changed, 44 insertions(+), 34 deletions(-) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index db9310eed..93fb656a7 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -133,7 +133,7 @@ class Projektbetreuer_model extends DB_Model ) OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */ ( - betr.betreuerart_kurzbz = 'Senatspruefer' + betr.betreuerart_kurzbz = 'Senatsmitglied' AND EXISTS ( SELECT 1 FROM lehre.tbl_projektbetreuer WHERE person_id = ? @@ -176,7 +176,7 @@ class Projektbetreuer_model extends DB_Model LEFT JOIN public.tbl_benutzer USING(person_id) WHERE projektarbeit_id = ? AND tbl_projektbetreuer.person_id = ? - AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatspruefer') + AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied') LIMIT 1"; $betreueruidRes = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id)); diff --git a/cis/private/lehre/abgabe_lektor.php b/cis/private/lehre/abgabe_lektor.php index 6b087d256..3d20c8a7e 100644 --- a/cis/private/lehre/abgabe_lektor.php +++ b/cis/private/lehre/abgabe_lektor.php @@ -61,8 +61,10 @@ $sql_query = "SELECT FROM (SELECT tbl_person.vorname, tbl_person.nachname, tbl_studiengang.typ, tbl_studiengang.kurzbz, tbl_projektarbeit.projekttyp_kurzbz, tbl_projekttyp.bezeichnung, tbl_projektarbeit.titel, tbl_projektarbeit.projektarbeit_id, - tbl_projektbetreuer.betreuerart_kurzbz, tbl_benutzer.uid, tbl_student.matrikelnr, tbl_lehreinheit.studiensemester_kurzbz - FROM lehre.tbl_projektarbeit LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id) + tbl_projektbetreuer.betreuerart_kurzbz, tbl_betreuerart.beschreibung AS betreuerart_beschreibung, tbl_benutzer.uid, tbl_student.matrikelnr, tbl_lehreinheit.studiensemester_kurzbz + FROM lehre.tbl_projektarbeit + LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id) + LEFT JOIN lehre.tbl_betreuerart using(betreuerart_kurzbz) LEFT JOIN public.tbl_benutzer on(uid=student_uid) LEFT JOIN public.tbl_student on(public.tbl_benutzer.uid=public.tbl_student.student_uid) LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) @@ -75,7 +77,7 @@ $sql_query = "SELECT WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).") ".($showall?'':' AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ')." - AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Zweitbegutachter', 'Erstbetreuer', 'Senatsvorsitz', 'Senatspruefer') + AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Zweitbegutachter', 'Erstbetreuer', 'Senatsvorsitz', 'Senatsmitglied') ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy ORDER BY nachname"; @@ -111,7 +113,7 @@ else $htmlstr .= " ".strtoupper($row->typ.$row->kurzbz)."\n"; $htmlstr .= " ".$db->convert_html_chars($row->studiensemester_kurzbz)."\n"; $htmlstr .= " ".$db->convert_html_chars($row->titel)."\n"; - $htmlstr .= " ".$db->convert_html_chars($row->betreuerart_kurzbz)."\n"; + $htmlstr .= " ".($row->betreuerart_beschreibung == null ? $db->convert_html_chars($row->betreuerart_kurzbz) : $db->convert_html_chars($row->betreuerart_beschreibung))."\n"; $htmlstr .= " \n"; $i++; } @@ -126,11 +128,11 @@ echo ' '.$p->t('abgabetool/abgabetool').' - - - - - + + + + +