From a3e22da63319e7a9e0dbf49d6b559d128162c78a Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 20 Mar 2025 17:21:42 +0100 Subject: [PATCH 01/13] calcEntschuldigungen minDate as workdays in config; updatevon/um anwCheckIn; Orgform dual in sancho mail; zusatz (d.d.i)/(d.d.o) & (o) auch wenn bis datum leer ist aber von bereits eingetragen --- include/lehrelisthelper.class.php | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php index d6ceaf918..b1821391f 100644 --- a/include/lehrelisthelper.class.php +++ b/include/lehrelisthelper.class.php @@ -200,7 +200,7 @@ class LehreListHelper //Studierende der LV laden und in ein Array schreiben $qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid, + distinct on(nachname, vorname, public.tbl_benutzer.person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id @@ -209,7 +209,8 @@ class LehreListHelper tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_person.geschlecht, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz, tbl_zeugnisnote.note, (CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree, - (tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout + (tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout, + public.tbl_prestudent.gsstudientyp_kurzbz as ddtype FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) @@ -223,6 +224,7 @@ class LehreListHelper LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + LEFT JOIN public.tbl_prestudent USING(prestudent_id) WHERE vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester); @@ -231,7 +233,7 @@ class LehreListHelper if($this->lehreinheit!='') $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); - $qry.=' ORDER BY nachname, vorname, person_id, daysout DESC, doubledegree DESC'; + $qry.=' ORDER BY nachname, vorname, public.tbl_benutzer.person_id, daysout DESC, doubledegree DESC'; $stsem_obj = new studiensemester(); $stsem_obj->load($this->studiensemester); @@ -263,8 +265,13 @@ class LehreListHelper //Outgoing if($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '') - && $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30)) + && $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30)) { $zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')'; + } else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von > $stsemdatumvon || $row->von == '')) { + // if bis datum is not yet known but von is available already + $zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')'; + } + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen $zusatz.= '('. $row->anmerkung. ')'; @@ -275,8 +282,13 @@ class LehreListHelper if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende $zusatz.='(a.o.)'; - if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student - $zusatz .= '(d.d.)'; + if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) { + //Double Degree Student + $zusatz .= '(d.d.'; + if($row->ddtype == 'Intern') $zusatz .= 'i.)'; + else if ($row->ddtype == 'Extern') $zusatz .='o.)'; + else $zusatz .= ')'; + } if(($row->wahlname != '')) { From ba806c13fb046f9cfd76f115606279b38d203898 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 27 Mar 2025 17:15:37 +0100 Subject: [PATCH 02/13] assistenz edit entschuldigung modal for editing von/bis date (on open excuse notes) & textarea for notiz - which is still limited to 255 characters; added student semester column to assistenz table; removed column width constraints & layout changed to fitData, persistence option is TRUE now; WIP von/bis/uplaoddate headerfilter; automatically send email to students on entschuldigungn status changed; added minimum time range for Kontrolle to be at least the length of 1 teaching unit(per config) - currently 45minutes; start new kontrolle modal more clearly shows when time & date values have been read from stundenplan; increased qr degeneration timer from 200 to 5000ms to avoid "missed" checkins due to network time; lektor can retrieve all entschuldigungen ranges & statuses of students when hovering their row; lektor can show anw qr window seperately now; into externalzuordnung admin/person_id fix in deleteEntschuldigung; moved fetch semesterinfo into global setup; fixed some vue template warnings; --- public/js/components/Bootstrap/Modal.js | 1 + system/phrasesupdate.php | 106 +++++++++++++++++++++++- 2 files changed, 104 insertions(+), 3 deletions(-) diff --git a/public/js/components/Bootstrap/Modal.js b/public/js/components/Bootstrap/Modal.js index e390319e8..e94579d89 100644 --- a/public/js/components/Bootstrap/Modal.js +++ b/public/js/components/Bootstrap/Modal.js @@ -114,6 +114,7 @@ export default {