From ee39e5a3f74dfce583af6eaf17b84f4fd8a4fc2f Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 7 Jun 2016 14:06:25 +0200 Subject: [PATCH 1/9] =?UTF-8?q?Maximalen=20Datumsbereich=20auf=20400=20Tag?= =?UTF-8?q?e=20vergroessert=20da=20es=20sonst=20zu=20Problemen=20kommt=20w?= =?UTF-8?q?enn=20das=20aktuelle=20und=20das=20n=C3=A4chste=20StSem=20nach?= =?UTF-8?q?=20Google=20exportiert=20wird?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lvplan/stpl_kalender.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cis/private/lvplan/stpl_kalender.php b/cis/private/lvplan/stpl_kalender.php index 47258eab2..bae1b5795 100644 --- a/cis/private/lvplan/stpl_kalender.php +++ b/cis/private/lvplan/stpl_kalender.php @@ -231,7 +231,8 @@ if(!isset($begin) || !isset($ende)) } } -if($ende-$begin>31536000) + +if($ende-$begin>34560000) // = 400 Tage { die($p->t('lvplan/datumsbereichZuGross')."!"); } From cf3ce680d6f6887dfedcd3ea977d4bec652438c6 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Wed, 8 Jun 2016 13:32:06 +0200 Subject: [PATCH 2/9] config-eintraege hinzugefuegt; bugfixes pruefungsverwaltung und studienplanansicht im cis; anpassungen zeugnis --- CHANGELOG.md | 4 + .../benotungstool/lvgesamtnoteverwalten.php | 609 ++++++++++-------- cis/private/lehre/pruefung/pruefung.js | 4 +- cis/private/lehre/pruefung/pruefung.js.php | 30 +- .../pruefung/pruefungsanmeldung.json.php | 100 +-- .../lehre/pruefung/pruefungsanmeldung.php | 2 + cis/private/profile/studienplan.php | 88 ++- config/cis.config-default.inc.php | 3 + config/global.config-default.inc.php | 11 + rdf/lehrveranstaltungszeugnis_ktu.rdf.php | 14 +- rdf/zeugnis.rdf.php | 19 +- 11 files changed, 514 insertions(+), 370 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 336515567..27f75aa38 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ - **[CIS]** LVPlan Export für Excel - **[FAS]** Termine Karteireiter im FAS zeigt die Anmerkung aus dem LVPlan an - **[CIS]** Onlinebewerbungstool greift auf mehrsprachige Statusbezeichnungen zu. +- **[CIS]** Config-Einträge für die Tabellenspalten beim Eintragen der Gesamtnote hinzugefügt. +- **[CIS]** Prüfungsverwaltung: Config-Eintrag hinzugefügt um die Accordion-Elemente ein- und auszublenden. ### Changed - **[FAS]** Dokumente Menü im FAS neu sortiert um den Lebenszyklus des Studierenden abzubilden @@ -18,6 +20,8 @@ - **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben. - **[CIS]** Im Menü 'Zeitsperren' Link zu Resturlaubsübersicht entfernt. Falls benötigt Verlinkung über CMS möglich. - **[CORE]** Removed NOT NULL constraint on 'verfasser\_uid' from public.tbl\_notiz +- **[CIS]** Studienplanansicht: Wenn eine LV nicht benotet ist, aber eine kompatible LV mit vorhandener Anrechnung benotet ist wird diese Note angezeigt. +- **[FAS]** Die RDF-Schnittstelle für das Zeugnis prüft bei Anrechnungen ob, die ECTS-Punkte übereinstimmen und wählt bei ungleichen Werten jene der angerechneten LV. ### Updateinfo - **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde. diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index c5827b826..b91eb180d 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -840,9 +840,15 @@ echo " ".$p->t('global/uid')." ".$p->t('global/nachname')." - ".$p->t('global/vorname')." - ".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)')." - ".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')." + ".$p->t('global/vorname').""; + + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + echo "".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)').""; + } + + + echo "".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')." ".$p->t('benotungstool/lvNote')."
@@ -853,26 +859,38 @@ echo "
- ".$p->t('benotungstool/zeugnisnote')." - ".$p->t('benotungstool/nachpruefung').""; + ".$p->t('benotungstool/zeugnisnote').""; + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) + { + echo "".$p->t('benotungstool/nachpruefung').""; + } if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { echo "".$p->t('benotungstool/nachpruefung2').""; } + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) + { + echo "".$p->t('benotungstool/kommissionellePruefung').""; + } echo " - ".$p->t('benotungstool/kommissionellePruefung')." + -   - - - - - - - -
".$p->t('global/datum')."".$p->t('benotungstool/note')."
- "; +  "; + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) + { + echo " + + + + + + +
".$p->t('global/datum')."".$p->t('benotungstool/note')."
+ "; + } + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { echo " @@ -885,66 +903,73 @@ echo " "; } - echo " - - - - - - - -
".$p->t('global/datum')."".$p->t('benotungstool/note')."
- + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) + { + echo " + + + + + + + +
".$p->t('global/datum')."".$p->t('benotungstool/note')."
+ "; + } + echo " "; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + if($grade_from_moodle) + { + flush(); + ob_flush(); - if($grade_from_moodle) - { - flush(); - ob_flush(); + $moodle24 = new moodle24_course(); + $moodle24->loadNoten($lvid, $stsem); - $moodle24 = new moodle24_course(); - $moodle24->loadNoten($lvid, $stsem); + $moodle24_course_bezeichnung=array(); - $moodle24_course_bezeichnung=array(); + if(count($moodle24->result)>0) + { + // Bezeichnungen der Moodlekurse laden + foreach($moodle24->result as $obj) + { + if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id])) + { + $moodle24course = new moodle24_course(); + $moodle24course->load($obj->mdl_course_id); - if(count($moodle24->result)>0) - { - // Bezeichnungen der Moodlekurse laden - foreach($moodle24->result as $obj) - { - if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id])) - { - $moodle24course = new moodle24_course(); - $moodle24course->load($obj->mdl_course_id); + $moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname; + } - $moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname; - } + if(!isset($moodle24_course_gewicht[$obj->mdl_course_id])) + { + $mdl_obj = new moodle24_course(); + $mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id); - if(!isset($moodle24_course_gewicht[$obj->mdl_course_id])) - { - $mdl_obj = new moodle24_course(); - $mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id); + foreach($mdl_lehreinheiten as $row_mdl_lehreinheit) + { + if($row_mdl_lehreinheit!='') + { + $lehreinheit_gewicht_obj = new lehreinheit(); + $lehreinheit_gewicht_obj->load($row_mdl_lehreinheit); - foreach($mdl_lehreinheiten as $row_mdl_lehreinheit) - { - if($row_mdl_lehreinheit!='') - { - $lehreinheit_gewicht_obj = new lehreinheit(); - $lehreinheit_gewicht_obj->load($row_mdl_lehreinheit); - - if($lehreinheit_gewicht_obj->gewicht!='') - { - $moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht; - break; - } - } - } - } - } - } - } + if($lehreinheit_gewicht_obj->gewicht!='') + { + $moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht; + break; + } + } + } + } + } + } + } + } // studentenquery $qry_stud = "SELECT @@ -978,165 +1003,168 @@ echo " $note_le_gewichtet=0; $gewichtsumme=0; $note=0; - if($grade_from_moodle) - { - //Moodle 1.9 + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + if($grade_from_moodle) + { + //Moodle 1.9 - // Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt. - if (is_null($mdldaten) && defined('CONN_STRING_MOODLE')) - { - //Noten aus Moodle - if (!isset($moodle_course)) - $moodle_course = new moodle19_course(); + // Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt. + if (is_null($mdldaten) && defined('CONN_STRING_MOODLE')) + { + //Noten aus Moodle + if (!isset($moodle_course)) + $moodle_course = new moodle19_course(); - if (!$mdldaten = $moodle_course->loadNoten($lvid, $stsem, '', true,$debg)) - $mdldaten=''; - } - // Verarbeitet die Kursdaten - if (!is_null($mdldaten) && is_array($mdldaten)) - { - reset($mdldaten); - $title=""; - $mdl_shortname=''; - for ($imdldaten=0;$imdldatenloadNoten($lvid, $stsem, '', true,$debg)) + $mdldaten=''; + } + // Verarbeitet die Kursdaten + if (!is_null($mdldaten) && is_array($mdldaten)) + { + reset($mdldaten); + $title=""; + $mdl_shortname=''; + for ($imdldaten=0;$imdldatenresult; - $kursArr=(isset($mdldata[2])?$mdldata[2]:array()); - $kursasObj=(isset($mdldata[3])?$mdldata[3]:array()); - $kursname=(isset($mdldata[7])?$mdldata[7]:''); - $shortname=(isset($mdldata[8])?$mdldata[8]:''); + $mdldata=$mdldaten[$imdldaten]->result; + $kursArr=(isset($mdldata[2])?$mdldata[2]:array()); + $kursasObj=(isset($mdldata[3])?$mdldata[3]:array()); + $kursname=(isset($mdldata[7])?$mdldata[7]:''); + $shortname=(isset($mdldata[8])?$mdldata[8]:''); - $note=0; - $userGef=false; + $note=0; + $userGef=false; - reset($kursArr); - for ($iKurs=0;$iKursuid))==strtolower(trim($kursArr[$iKurs][2])) ) - { - $note=trim($kursArr[$iKurs][6]); - $userGef=true; + reset($kursArr); + for ($iKurs=0;$iKursuid))==strtolower(trim($kursArr[$iKurs][2])) ) + { + $note=trim($kursArr[$iKurs][6]); + $userGef=true; - if (is_numeric($note) || $debg) - { - if (is_numeric($note)) - { - $note_le += $note; - $note_le_gewichtet +=$note*$gewichtung; - $gewichtsumme+=$gewichtung; - $le_anz += 1; - } - if ($note == 5) - $leneg = " style='color:red; font-weight:bold'"; - else - $leneg = " style='font-weight:bold'"; + if (is_numeric($note) || $debg) + { + if (is_numeric($note)) + { + $note_le += $note; + $note_le_gewichtet +=$note*$gewichtung; + $gewichtsumme+=$gewichtung; + $le_anz += 1; + } + if ($note == 5) + $leneg = " style='color:red; font-weight:bold'"; + else + $leneg = " style='font-weight:bold'"; - $mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname; - $title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; - foreach ($kursasObj[$iKurs] as $key => $value) - { - $title.=$key."=>".$value."\r\n"; - } + $mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname; + $title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; + foreach ($kursasObj[$iKurs] as $key => $value) + { + $title.=$key."=>".$value."\r\n"; + } - $note_les_str .= "".$note." (".$mdl_shortname.") "; - } - } // ende If Richtiger User + $note_les_str .= "".$note." (".$mdl_shortname.") "; + } + } // ende If Richtiger User - if ($userGef) - { - $iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden - } + if ($userGef) + { + $iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden + } - } // ende Kursschleife - } // MoodleKurse abarbeiten + } // ende Kursschleife + } // MoodleKurse abarbeiten - #echo "

$title Anzahl Noten gef. $le_anz $note_le

"; - } - else - { - if(defined('CONN_STRING_MOODLE')) - { - //den Error nur einmal anzeigen und nicht fuer jeden Studenten - $moodle_course->errormsg=trim($moodle_course->errormsg); - if(!$errorshown && !empty($moodle_course->errormsg) ) - { - //echo '
'.$moodle_course->errormsg.'
'; - $errorshown=true; - } - } - } + #echo "

$title Anzahl Noten gef. $le_anz $note_le

"; + } + else + { + if(defined('CONN_STRING_MOODLE')) + { + //den Error nur einmal anzeigen und nicht fuer jeden Studenten + $moodle_course->errormsg=trim($moodle_course->errormsg); + if(!$errorshown && !empty($moodle_course->errormsg) ) + { + //echo '
'.$moodle_course->errormsg.'
'; + $errorshown=true; + } + } + } - // Moodle 2.4 - if(isset($moodle24) && count($moodle24->result)>0) - { - foreach($moodle24->result as $moodle24_noten) - { - if($moodle24_noten->uid==$row_stud->uid) - { - $gewichtung=1; - $note_le+=$moodle24_noten->note; - if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id])) - $gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id]; + // Moodle 2.4 + if(isset($moodle24) && count($moodle24->result)>0) + { + foreach($moodle24->result as $moodle24_noten) + { + if($moodle24_noten->uid==$row_stud->uid) + { + $gewichtung=1; + $note_le+=$moodle24_noten->note; + if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id])) + $gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id]; - if($gewichtung=='') - $gewichtung=1; - $note_le_gewichtet+=$moodle24_noten->note*$gewichtung; - $gewichtsumme+=$gewichtung; - $le_anz+=1; - //if ($moodle24_noten->note == 5) - // $leneg = " style='color:red; font-weight:bold'"; - //else - $leneg = ' style="font-weight: bold;"'; - $title="Moodle KursID: ".$moodle24_noten->mdl_course_id. - "\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id]. - "\nUser: ".$moodle24_noten->uid. - "\nNote: ".$moodle24_noten->note; - if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) - $title.="\nGewichtung: ".$gewichtung; - $note_les_str .= "
".$moodle24_noten->note." (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].") "; + if($gewichtung=='') + $gewichtung=1; + $note_le_gewichtet+=$moodle24_noten->note*$gewichtung; + $gewichtsumme+=$gewichtung; + $le_anz+=1; + //if ($moodle24_noten->note == 5) + // $leneg = " style='color:red; font-weight:bold'"; + //else + $leneg = ' style="font-weight: bold;"'; + $title="Moodle KursID: ".$moodle24_noten->mdl_course_id. + "\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id]. + "\nUser: ".$moodle24_noten->uid. + "\nNote: ".$moodle24_noten->note; + if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) + $title.="\nGewichtung: ".$gewichtung; + $note_les_str .= "
".$moodle24_noten->note." (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].") "; - } - } - } - } - else - { - //Noten aus Uebungstool - $le = new lehreinheit(); - $le->load_lehreinheiten($lvid, $stsem); - foreach($le->lehreinheiten as $l) - { - $legesamtnote = new legesamtnote($l->lehreinheit_id); + } + } + } + } + else + { + //Noten aus Uebungstool + $le = new lehreinheit(); + $le->load_lehreinheiten($lvid, $stsem); + foreach($le->lehreinheiten as $l) + { + $legesamtnote = new legesamtnote($l->lehreinheit_id); - if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id)) - { - //$note_les_str .= "- (".$l->lehreinheit_id.")"; - } - else - { - $note_le += $legesamtnote->note; + if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id)) + { + //$note_les_str .= "- (".$l->lehreinheit_id.")"; + } + else + { + $note_le += $legesamtnote->note; - $gewicht = $l->gewicht; - if($l->gewicht=='') - $gewicht = 1; - $note_le_gewichtet+=$legesamtnote->note*$gewicht; - $gewichtsumme+=$gewicht; + $gewicht = $l->gewicht; + if($l->gewicht=='') + $gewicht = 1; + $note_le_gewichtet+=$legesamtnote->note*$gewicht; + $gewichtsumme+=$gewicht; - $le_anz += 1; - if ($legesamtnote->note == 5) - $leneg = " style='color:red; font-weight:bold'"; - else - $leneg = ""; - if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) - $title='Gewichtung: '.$l->gewicht; - else - $title=''; - $note_les_str .= ''.$legesamtnote->note.' ('.$l->lehreinheit_id.') '; - } - } - } + $le_anz += 1; + if ($legesamtnote->note == 5) + $leneg = " style='color:red; font-weight:bold'"; + else + $leneg = ""; + if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) + $title='Gewichtung: '.$l->gewicht; + else + $title=''; + $note_les_str .= ''.$legesamtnote->note.' ('.$l->lehreinheit_id.') '; + } + } + } + } if ($lvgesamtnote = new lvgesamtnote($lvid,$row_stud->uid,$stsem)) { @@ -1190,8 +1218,10 @@ echo " else $znote = null; - - echo "".$note_les_str." "; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + echo "".$note_les_str." "; + } if (key_exists($row_stud->uid,$studpruef_arr)) $hide = "style='display:none;visibility:hidden;'"; @@ -1275,43 +1305,46 @@ echo " if(isset($noten_array[$znote]) && $noten_array[$znote]['positiv']==false) $summe_ng++; - // Pruefung 2. Termin - if (key_exists($row_stud->uid, $studpruef_arr)) + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) { - echo ""; - echo ""; - echo ""; - $le_id_arr = array(); - $le_id_arr = array_keys($studpruef_arr[$row_stud->uid]); - foreach ($le_id_arr as $le_id_stud) - { - $pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"]; - $pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"]; - $pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"]; - $pr_le_id = $le_id_stud; + // Pruefung 2. Termin + if (key_exists($row_stud->uid, $studpruef_arr)) + { + echo ""; - } - else - { - if (!is_null($note_lv) || !is_null($znote)) - echo ""; - else - echo ""; - } + echo ' + + + '; + } + echo "
"; + echo ""; + echo ""; + $le_id_arr = array(); + $le_id_arr = array_keys($studpruef_arr[$row_stud->uid]); + foreach ($le_id_arr as $le_id_stud) + { + $pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"]; + $pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"]; + $pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"]; + $pr_le_id = $le_id_stud; - if($pr_punkte!='') - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; - else - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; + if($pr_punkte!='') + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; + else + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; - echo ' - - - '; - } - echo "
'.$pr_datum.''.$pr_notenbezeichnung.' -
"; - echo "
"; - echo "
'.$pr_datum.''.$pr_notenbezeichnung.' +
"; + echo "
"; + echo ""; + } + else + { + if (!is_null($note_lv) || !is_null($znote)) + echo ""; + else + echo ""; + } + } if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { @@ -1354,39 +1387,42 @@ echo " } } - // komm Pruefung - if (key_exists($row_stud->uid,$studpruef_komm)) + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) { - echo ""; - echo ""; - echo ""; - $le_id_arr = array(); - $le_id_arr = array_keys($studpruef_komm[$row_stud->uid]); - foreach ($le_id_arr as $le_id_stud) - { - $pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"]; - $pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"]; - $pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"]; - $pr_le_id = $le_id_stud; + // komm Pruefung + if (key_exists($row_stud->uid,$studpruef_komm)) + { + echo ""; - } - else - { - echo ""; - } + echo ' + + + '; + } + echo "
"; + echo ""; + echo ""; + $le_id_arr = array(); + $le_id_arr = array_keys($studpruef_komm[$row_stud->uid]); + foreach ($le_id_arr as $le_id_stud) + { + $pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"]; + $pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"]; + $pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"]; + $pr_le_id = $le_id_stud; - if($pr_punkte!='') - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; - else - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; + if($pr_punkte!='') + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; + else + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; - echo ' - - - '; - } - echo "
'.$pr_datum.''.$pr_notenbezeichnung.'
"; - echo "
"; - echo "
'.$pr_datum.''.$pr_notenbezeichnung.'
"; + echo "
"; + echo ""; + } + else + { + echo ""; + } + } echo ""; $i++; @@ -1397,12 +1433,27 @@ echo " echo " Σ - $summe_stud - - $summe_ng - $summe_t2 - $summe_t3 - $summe_komm + $summe_stud"; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && (!CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)) + { + echo ""; + } + else + { + echo ""; + } + echo "$summe_ng"; + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2): ?> + "'>$summe_t2; + + "'>$summe_t3"; + + "'>$summe_komm + diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index a68c07d08..620f20db0 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -589,6 +589,8 @@ function resetForm() */ function setTablesorter(tableId) { + if($("#"+tableId).length != 0) + { if($("#"+tableId)[0].hasInitialized !== true) { $("#"+tableId).tablesorter({ @@ -602,6 +604,7 @@ function setTablesorter(tableId) var sorting = [[1,0],[0,0]]; $("#"+tableId).trigger("sorton",[sorting]); } + } } /** @@ -688,7 +691,6 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) function writeAnmeldungen(data) { - console.log(data); if(data.error === 'false') { var terminId = data.result.anmeldungen[0].pruefungstermin_id; diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index 3ef462d05..02d0e1b9d 100755 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -633,19 +633,22 @@ function resetForm() */ function setTablesorter(tableId) { - if($("#"+tableId)[0].hasInitialized !== true) - { - $("#"+tableId).tablesorter({ - widgets: ["zebra"], - sortList: [[1,0]] - }); - } - else - { - $("#"+tableId).trigger("updateAll"); - var sorting = [[1,0],[0,0]]; - $("#"+tableId).trigger("sorton",[sorting]); - } + if($("#"+tableId).length != 0) + { + if($("#"+tableId)[0].hasInitialized !== true) + { + $("#"+tableId).tablesorter({ + widgets: ["zebra"], + sortList: [[1,0]] + }); + } + else + { + $("#"+tableId).trigger("updateAll"); + var sorting = [[1,0],[0,0]]; + $("#"+tableId).trigger("sorton",[sorting]); + } + } } /** @@ -732,7 +735,6 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) function writeAnmeldungen(data) { - console.log(data); if(data.error === 'false') { var terminId = data.result.anmeldungen[0].pruefungstermin_id; diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 137e27a45..90b13f5bc 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -500,6 +500,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $konto = new konto(); $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); + if($creditpoints !== false) { if($creditpoints < $lehrveranstaltung->ects) @@ -547,6 +548,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $person->getPersonFromBenutzer($uid); $prestudent = new prestudent(); $prestudent->getPrestudenten($person->person_id); + $studiensemester = new studiensemester(); + $stdsem = $studiensemester->getaktorNext(); if(count($prestudent->result) > 0) { @@ -563,58 +566,65 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } if($prestudent_id != "") { - $anrechungSaveResult = false; - if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) - { - $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - $anrechungSaveResult = $anrechnung->save(); - } - else - { - $anrechungSaveResult = true; - } - + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + if($lv_komp->lehrveranstaltung_id != null && ($lv_komp->lehrveranstaltung_id != $lehrveranstaltung->lehrveranstaltung_id)) + { + $anrechnung->lehrveranstaltung_id = $lv_komp->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + } + else + { + $anrechungSaveResult = true; + } + if($anrechungSaveResult) { - if($anrechnung->anrechnung_id == "") - $anmeldung->anrechnung_id = null; - else - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - - if($anmeldung->save(true)) - { - $pruefung = new pruefungCis($termin->pruefung_id); - if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) - $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; else - $to = $pruefung->mitarbeiter_uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); - $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - $student = new student($uid); - $datum = new datum(); + if($anmeldung->save(true)) + { + $pruefung = new pruefungCis($termin->pruefung_id); + if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) + $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + else + $to = $pruefung->mitarbeiter_uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); + $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $student = new student($uid); + $datum = new datum(); - $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); - $mail->setHTMLContent($html); - $mail->send(); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } + $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); + $mail->setHTMLContent($html); + $mail->send(); + + $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } } else { diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index 900e25a0a..5551adb70 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -230,6 +230,7 @@ $studiensemester->getAll(); +

t('pruefung/lvVonStudiengang'); ?>

@@ -246,6 +247,7 @@ $studiensemester->getAll();
+

t('pruefung/lvAlle'); ?>

diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 9b7fb170e..5ae32db11 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -43,6 +43,7 @@ require_once('../../../include/benutzergruppe.class.php'); require_once('../../../include/konto.class.php'); require_once('../../../include/lvinfo.class.php'); require_once('../../../include/addon.class.php'); +require_once('../../../include/anrechnung.class.php'); $uid = get_uid(); @@ -305,7 +306,9 @@ if($zeugnisnote->getZeugnisnoten('',$uid,'')) foreach($zeugnisnote->result as $row_note) { if($row_note->note!='') + { $noten_arr[$row_note->lehrveranstaltung_id][$row_note->studiensemester_kurzbz]=$row_note->note; + } } } @@ -364,7 +367,7 @@ drawTree($tree,0); function drawTree($tree, $depth) { global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; - global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr; + global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; foreach($tree as $row_tree) { @@ -448,7 +451,7 @@ function drawTree($tree, $depth) $lv_kompatibel = new lehrveranstaltung(); $kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); - + if(isset($noten_arr[$row_tree->lehrveranstaltung_id])) { // Positive Note fuer diese LV vorhanden? @@ -471,23 +474,40 @@ function drawTree($tree, $depth) $found = false; $i = 0; while(!$found && $i < count($kompatibleLVs)) - { - for($i; $i < (count($kompatibleLVs)); $i++) + { + foreach($kompatibleLVs as $komp) { - if(isset($noten_arr[$kompatibleLVs[$i]])) + + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) { - $positiv=false; - foreach($noten_arr[$kompatibleLVs[$i]] as $note) + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv])) { - if($note_pruef_arr[$note]->positiv) - $positiv=true; + $positiv=false; + foreach($noten_arr[$lv] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } + + $found = true; + } + else + { + /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert + * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde + */ + if(!$found) + $found = false; } - - $found = true; } + $i++; } - $i++; } + if($found) { if($positiv) @@ -544,22 +564,34 @@ function drawTree($tree, $depth) elseif(count($kompatibleLVs) > 0) { $found = false; - foreach($kompatibleLVs as $komp) - { - if(isset($noten_arr[$komp][$stsem])) - { - $found = true; - if($note_pruef_arr[$noten_arr[$komp][$stsem]]->positiv) - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; - else - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; - } - } - - if(!$found) - { - $tdinhalt.= '-'; - } + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) + { + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv][$stsem])) + { + $found = true; + if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + } + } + $i++; + } + + if(!$found) + { + $tdinhalt.= '-'; + } + } } else { diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 0ec57fc77..84d4613fe 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -215,6 +215,9 @@ define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung'); // Soll für die Prüfungsanmeldungen eine Anrechnung erstellt werden define('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG', true); +//Gibt an, ob der Bereich zur Anmeldung zu Pruefungen des gesamten Studiengangs angezeigt werden soll +define('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG', true); + //Gibt an, wie viele Semester aus der Vergangenheit unter Meine LV angezeigt werden define('CIS_MEINELV_ANZAHL_SEMESTER_PAST', 3); diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 01925ac08..75a31a31c 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -59,9 +59,20 @@ define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true); // Gewichtung der Lehreinheiten bei Noteneintragung true|false define('CIS_GESAMTNOTE_GEWICHTUNG', true); +// Bei Gesamtnote eine zusaetzliche Spalte fuer den 2. Termin anzeigen +define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2',true); + // Bei Gesamtnote eine zusaetzliche Spalte fuer den 3. Termin anzeigen define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3',true); +// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen +define('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF', true); + +// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen +define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_NOTE', true); + +// Bei Gesamtnote die Spalte fuer die Quelle der Noten anzeigen (Moodle oder LE) +define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE', true); // Gibt an ob im FAS bei den Lehrveranstaltungsnoten ein zusaetzliches Formular angezeigt wird um // Vertraege fuer Pruefungshonorare anzulegen diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index b8f4020f9..e632a92e6 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -315,7 +315,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= " ".$lehrform_kurzbz.""; $xml .= " ".$lehrform_bezeichnung.""; $xml .= " ".($sws==0?'':number_format(sprintf('%.1F',$sws),1)).""; - $xml .= " ".number_format($ects,1).""; + $xml .= " ".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'').""; $xml .= " "; $xml .= " "; @@ -327,6 +327,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } $xml .= " "; + $anrechnung = new anrechnung(); $anrechnung->getAnrechnungPrestudent($student->prestudent_id, null, $lehrveranstaltung_id); @@ -339,6 +340,17 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= $anrechnung->result[0]->lehrveranstaltung_bez; } $xml .= ""; + + if($lehrveranstaltung_id_kompatibel != "") + { + $lv = new lehrveranstaltung($lehrveranstaltung_id_kompatibel); + if(($lv->ects !== $ects) && ($lv->ects != "") && ($lv->ects != null)) + { + $ects = $lv->ects; + } + } + + $xml .= " ".number_format($ects,1).""; $lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id); diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index 805b29aa0..efc8a36d8 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -33,6 +33,7 @@ require_once('../include/datum.class.php'); require_once('../include/note.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/mitarbeiter.class.php'); +require_once('../include/anrechnung.class.php'); $datum = new datum(); $db = new basis_db(); @@ -241,6 +242,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz); $ects_gesamt = 0; + $prestudent_id = $row->prestudent_id; foreach ($obj->result as $row) { if($row->zeugnis) @@ -368,7 +370,20 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= " ".$note2.""; $xml .= " ".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1)).""; $ectspunkte=''; - + + + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($prestudent_id, null, $row->lehrveranstaltung_id); + + if($anrechnung->result != null) + { + $lv = new lehrveranstaltung($anrechnung->result[0]->lehrveranstaltung_id); + if(($lv->ects !== $row->ects) && ($lv->ects != "") && ($lv->ects != null)) + { + $row->ects = $lv->ects; + } + } + if($row->ects==0 || $row->ects=='') $ectspunkte=''; else @@ -379,7 +394,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") else $ectspunkte=number_format($row->ects,2); } - $ects_gesamt+=$ectspunkte; + $ects_gesamt+=$ectspunkte; $xml .= " ".$ectspunkte.""; $xml .= " ".$row->lv_lehrform_kurzbz.""; From 8d10a9a6540dfe526abe7ab00e7697800e2447d2 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 8 Jun 2016 18:14:30 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Fehlerbehandlung=20bei=20Dokumentenexport?= =?UTF-8?q?=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dokument_export.class.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/dokument_export.class.php b/include/dokument_export.class.php index f60f94c3e..89ccfea65 100644 --- a/include/dokument_export.class.php +++ b/include/dokument_export.class.php @@ -291,6 +291,9 @@ class dokument_export if($download) { + if(headers_sent()) + exit('Header wurden bereits gesendet -> Abbruch'); + switch($this->outputformat) { case 'pdf': @@ -310,6 +313,8 @@ class dokument_export header('Content-Disposition: attachment; filename="'.$this->filename.'.odt"'); header('Content-Length: '.$fsize); break; + default: + exit('Outputformat is not defined'); } while (!feof($handle)) @@ -389,5 +394,11 @@ class dokument_export } return $_xml_data->asXML(); } + + public function getXML() + { + $this->xml_data->formatOutput=true; + return $this->xml_data->saveXML(); + } } ?> From 6089be78f767341b29af615a6f17169e0915ca8a Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 9 Jun 2016 09:53:00 +0200 Subject: [PATCH 4/9] Anmerkung/Prio wird bei Aliqoute Reduktion mit angezeigt --- include/prestudent.class.php | 8 ++++++-- vilesci/personen/aliquote_reduktion.php | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 17f84fd32..0656aa110 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -1761,7 +1761,9 @@ class prestudent extends person if($stg_obj->typ=='m') { - $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) @@ -1787,7 +1789,9 @@ class prestudent extends person } else { - $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index be9094b7d..6cc58cce1 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -403,6 +403,7 @@ + @@ -418,6 +419,7 @@ + + @@ -455,6 +458,7 @@ +
Reihung RT Gesamt InterviewbogenAnmerkung/Prio Status {{aqr.choosenStuds}}/{{aqr.selectedStudienplatz.apz}} {{aqr.choosenStuds}}/Keine APZ{{stud.seqPlace}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}{{stud.anmerkung}} {{stud.laststatus}} @@ -441,6 +443,7 @@ Reihung RT Gesamt InterviewbogenAnmerkung/Prio Status
{{stud.seqPlace}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}{{stud.anmerkung}} {{stud.laststatus}} From c8e743d7cd9d1eeff4d10c3489460abbafbfd210 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Fri, 10 Jun 2016 14:49:34 +0200 Subject: [PATCH 5/9] added stg bezeichnung --- rdf/lehrveranstaltungszeugnis_ktu.rdf.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index e632a92e6..28b3036c6 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -300,6 +300,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $stg = new studiengang(); $stg->load($lvstg); + + $xml .= " ".$stg_oe_obj->bezeichnung.""; $xml .= " ".$stg->bezeichnung.""; $xml .= " ".$stg->typ.""; $xml .= " ".sprintf('%04s',$lvstg).""; From c57b84d10cb8c69f60a21bf2243a23221a5566b6 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Tue, 14 Jun 2016 10:11:16 +0200 Subject: [PATCH 6/9] implemented the aliquote reduction --- vilesci/personen/aliquote_reduktion.php | 87 ++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index 6cc58cce1..b46ee84a1 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -74,6 +74,7 @@ aqr.studiengaenge = []; aqr.studiensemester = []; aqr.studienplaetze = []; + aqr.zgvElems = []; aqr.actualSequence = 1; SERVICE_TARGET = "aliquote_reduktion.json.php"; @@ -112,6 +113,12 @@ if(!confirm("Es wurden zu viel Studenten gewählt!")) return; } + else + { + if(!confirm("Sind Sie sicher, dass Sie die ausgewählten Personen aufnehmen wollen?")) + return; + } + var prestudent_ids = []; aqr.studenten.forEach(function(i) @@ -190,7 +197,7 @@ aqr.studenten=res; aqr.studenten.forEach(function(i) { - if(i.laststatus=='Wartender'||i.laststatus=='Bewerber') + if((i.laststatus=='Wartender'||i.laststatus=='Bewerber') && i.rt_gesamtpunkte !== null) i.applicant = true; else if(i.laststatus=='Student'||i.laststatus=='Aufgenommener') i.selected=true; @@ -212,12 +219,12 @@ return ret; } - aqr.getAcceptedCount = function() + aqr.getAcceptedCount = function(zgvGruppe) { var ret = 0; aqr.studenten.forEach(function(i) { - if(i.laststatus=='Student'||i.laststatus=='Aufgenommener') + if((i.laststatus=='Student'||i.laststatus=='Aufgenommener') && (zgvGruppe === undefined || zgvGruppe === i.bezeichnung)) ret++; }); return ret; @@ -225,24 +232,55 @@ aqr.doPreselection = function() { - if(parseInt(aqr.selectedStudienplatz.apz) >= 0) + aqr.zgvElems = []; + if(parseInt(aqr.selectedStudienplatz.apz) >= 0) // we only preselect, if we have an APZ { aqr.studenten.sort(sortStudentenRTP); var zgvs = aqr.getZGVArray(); var neededStudentsCount = aqr.selectedStudienplatz.apz - aqr.getAcceptedCount(); - var perZGV = parseInt(neededStudentsCount / zgvs.length); + var perZGV = aqr.studenten.length; var zgvElems = []; + var allApplicants = []; + + aqr.studenten.forEach(function(j) + { + if(j.applicant) + allApplicants.push(j); + }); zgvs.forEach(function(i) { - zgvElems.push({name:i,needed:perZGV}); + var applicantsFromZGV = []; + aqr.studenten.forEach(function(j) + { + if(j.applicant && j.bezeichnung === i) + applicantsFromZGV.push(j); + }); + + // calculate the aliquote reduction for every ZGV + var percent = applicantsFromZGV.length / allApplicants.length * 100; + var neededFromZGV = (aqr.selectedStudienplatz.apz / 100 * percent) - aqr.getAcceptedCount(i); + + if(neededFromZGV < 0) + neededFromZGV = 0; + + zgvElems.push({name:i, needed:neededFromZGV, percent:percent, accepted: aqr.getAcceptedCount(i), neededSum: (aqr.selectedStudienplatz.apz / 100 * percent)}); }); - var residual = perZGV * zgvs.length; + aqr.zgvElems = JSON.parse(JSON.stringify(zgvElems)); + + // calculate the already distributed students + var residual = 0; + zgvElems.forEach(function(i) + { + residual += i.needed; + }); + + // calculate the difference from needed to already distributed var resDiff = neededStudentsCount - residual; // distribute the remaining places on the present ZGVs - while(resDiff > 0) + while(resDiff > 0 && zgvElems.length > 0/*if there are no zgvs(to prevent a deadlock)*/) { zgvElems.forEach(function(i) { @@ -284,9 +322,10 @@ if( aqr.studenten[j].laststatus!='Abgewiesener' && aqr.studenten[j].laststatus!='Abbrecher' - && zgvElems[i].needed > 0 + && parseInt(zgvElems[i].needed) > 0 && aqr.studenten[j].bezeichnung == zgvElems[i].name - && !aqr.studenten[j].seqPlace) + && !aqr.studenten[j].seqPlace + && !aqr.studenten[j].selected) { aqr.setSequence(aqr.studenten[j]); zgvElems[i].needed --; @@ -431,6 +470,34 @@ +

ZGV Informationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameProzentInsgesamt benötigtBereits aufgenommenNoch benötigte Personen
{{zgv.name}}{{zgv.percent | number: 2}}%{{zgv.neededSum | parseInt}}{{zgv.accepted}}{{zgv.needed | parseInt}}
Summe{{aqr.selectedStudienplatz.apz}}{{aqr.getAcceptedCount()}}{{aqr.selectedStudienplatz.apz - aqr.getAcceptedCount()}}

Bereits aufgenommene

From 7ba5026436eb969c3a7a408876eab93c3553a5dc Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 14 Jun 2016 17:09:49 +0200 Subject: [PATCH 7/9] =?UTF-8?q?Personen=20ohne=20RTGesamtpunkte=20werden?= =?UTF-8?q?=20nicht=20ber=C3=BCcksichtigt=20Wenn=20zu=20weniger=20Bewerber?= =?UTF-8?q?=20als=20APZ=20vorhanden=20sind=20wird=20die=20Anzahl=20der=20P?= =?UTF-8?q?ersonen=20aufgrund=20der=20Gesamtzahl=20der=20Bewerber=20berech?= =?UTF-8?q?net=20anstatt=20anhand=20der=20APZ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/personen/aliquote_reduktion.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index b46ee84a1..dd2f86df2 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -197,7 +197,7 @@ aqr.studenten=res; aqr.studenten.forEach(function(i) { - if((i.laststatus=='Wartender'||i.laststatus=='Bewerber') && i.rt_gesamtpunkte !== null) + if((i.laststatus=='Wartender'||i.laststatus=='Bewerber') && i.rt_gesamtpunkte !== null && i.rt_gesamtpunkte > 0) i.applicant = true; else if(i.laststatus=='Student'||i.laststatus=='Aufgenommener') i.selected=true; @@ -249,6 +249,11 @@ allApplicants.push(j); }); + var applicantCount = aqr.selectedStudienplatz.apz; + if(applicantCount > allApplicants.length) + applicantCount = allApplicants.length; + + zgvs.forEach(function(i) { var applicantsFromZGV = []; @@ -260,12 +265,12 @@ // calculate the aliquote reduction for every ZGV var percent = applicantsFromZGV.length / allApplicants.length * 100; - var neededFromZGV = (aqr.selectedStudienplatz.apz / 100 * percent) - aqr.getAcceptedCount(i); + var neededFromZGV = (applicantCount / 100 * percent) - aqr.getAcceptedCount(i); if(neededFromZGV < 0) neededFromZGV = 0; - zgvElems.push({name:i, needed:neededFromZGV, percent:percent, accepted: aqr.getAcceptedCount(i), neededSum: (aqr.selectedStudienplatz.apz / 100 * percent)}); + zgvElems.push({name:i, needed:neededFromZGV, percent:percent, accepted: aqr.getAcceptedCount(i), neededSum: (applicantCount / 100 * percent)}); }); aqr.zgvElems = JSON.parse(JSON.stringify(zgvElems)); @@ -314,7 +319,7 @@ { var beginNeeded = needed; - //distribute the remainig applicants to the present ZGVs + //distribute the applicants to the present ZGVs for(var i=0; i < zgvElems.length; i++) { for(var j in aqr.studenten) @@ -325,7 +330,8 @@ && parseInt(zgvElems[i].needed) > 0 && aqr.studenten[j].bezeichnung == zgvElems[i].name && !aqr.studenten[j].seqPlace - && !aqr.studenten[j].selected) + && !aqr.studenten[j].selected + && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); zgvElems[i].needed --; @@ -342,7 +348,7 @@ //distribute the rest of the applicants, WITH a ZGV group for(var j in aqr.studenten) { - if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung) + if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber')) @@ -355,7 +361,7 @@ //distribute the rest of the applicants, WITHOUT a ZGV group for(var j in aqr.studenten) { - if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung) + if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber')) @@ -490,7 +496,7 @@ - + @@ -499,7 +505,7 @@
{{zgv.needed | parseInt}}
SummeGesamt {{aqr.selectedStudienplatz.apz}} {{aqr.getAcceptedCount()}}
-

Bereits aufgenommene

+

Restliche Studenten

From a09a892b0b7f3003e64d129608a83df160ec8032 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 14 Jun 2016 17:12:41 +0200 Subject: [PATCH 8/9] =?UTF-8?q?Automatische=20Gruppe=20f=C3=BCr=20alle=20L?= =?UTF-8?q?eitungen=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/mlists/mlists_generate.php | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index 56465f353..211431324 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -1702,6 +1702,42 @@ $error_msg=''; $error_msg.=$db->db_last_error().' '.$sql_querys; } + $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; + if(!($result_oe = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error().' '.$sql_query; + // Personen holen die nicht im Verteiler sind + while($row_oe = $db->db_fetch_object($result_oe)) + { + $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; + if(!$db->db_query($sql_query)) + { + $error_msg.=$db->db_last_error().$sql_query; + } + } + + // ************************************************************** + // Alle MA mit Funktion Leitung oder stvLeitung oder gfLtg + $mlist_name='TW_LEITUNG'; + + $grp = new gruppe(); + setGeneriert($mlist_name); + + // Personen holen die nicht mehr in den Verteiler gehoeren + echo '
'.$mlist_name.' wird abgeglichen!'; + flush(); + + $sql_query = "SELECT DISTINCT uid FROM tbl_person JOIN tbl_benutzer + USING (person_id) JOIN tbl_benutzerfunktion USING (uid) + WHERE funktion_kurzbz in('Leitung','stvLtg','gLtg') + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + + $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; + if(!$db->db_query($sql_querys)) + { + $error_msg.=$db->db_last_error().' '.$sql_querys; + } + $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; if(!($result_oe = $db->db_query($sql_query))) $error_msg.=$db->db_last_error().' '.$sql_query; From a4fbebbf305b1f066173813371e1bdaa20655db5 Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Wed, 15 Jun 2016 00:38:19 +0200 Subject: [PATCH 9/9] layout pruefungsanmeldeliste, ital phrases --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 10 ++++++---- .../lehre/pruefung/pruefungsanmeldungen_liste.php | 4 ++-- locale/it-IT/pruefung.php | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 90b13f5bc..805fb2409 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -486,8 +486,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) { - $pruefung = new pruefungCis(); - $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); + $pruefung = new pruefungCis(); + $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); $anmeldung = new pruefungsanmeldung(); $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; @@ -500,7 +500,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $konto = new konto(); $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); - + if($creditpoints !== false) { if($creditpoints < $lehrveranstaltung->ects) @@ -550,6 +550,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $prestudent->getPrestudenten($person->person_id); $studiensemester = new studiensemester(); $stdsem = $studiensemester->getaktorNext(); + if ($aktStudiensemester) + $stdsem = $aktStudiensemester; if(count($prestudent->result) > 0) { @@ -588,7 +590,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { $anrechungSaveResult = true; } - + if($anrechungSaveResult) { if($anrechnung->anrechnung_id == "") diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index 85126e44a..bcb256b9b 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -66,7 +66,7 @@ $rechte->getBerechtigungen($uid); min-height: 297mm; padding: 20mm; margin: 10mm auto; - border: 1px #D3D3D3 solid; + border: 1px #ffffff solid; border-radius: 5px; background: white; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); @@ -75,7 +75,7 @@ $rechte->getBerechtigungen($uid); #subpage { padding: 10mm; - border: 1px black solid; + border: 1px white solid; height: 256mm; outline: 20mm } diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php index e61d6c8f4..f3839a96d 100755 --- a/locale/it-IT/pruefung.php +++ b/locale/it-IT/pruefung.php @@ -46,7 +46,7 @@ $this->phrasen['pruefung/anmeldenMoeglichBis'] = 'Possibilità di iscrizione ent $this->phrasen['pruefung/stornoNichtMehrMoeglich'] = 'Non è più possibile annullare l’iscrizione.'; $this->phrasen['pruefung/zurLvAnmeldung'] = 'iscriversi al corso'; $this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Scegliere prima l’esame.'; -$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'inserito da docente'; +$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'iscrizione da segreteria'; $this->phrasen['pruefung/bestaetigen'] = 'Confermare'; $this->phrasen['pruefung/anmerkungDesStudenten'] = 'Osservazioni dello studente:
'; $this->phrasen['pruefung/bestaetigt'] = 'confermato'; @@ -102,7 +102,7 @@ $this->phrasen['pruefung/keineLvAngegeben'] = 'Nessun corso definito.'; $this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Date sovrapposte.'; $this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'La data dell’appello non è nel passato.'; $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessun corso disponibile.'; -$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna registrazione disponibile.'; +$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna studente iscritto.'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Gestione delle prenotazioni degli appelli';