From e23db52cb959fe9fdc1b865925023f9faa9f46fe Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Mon, 9 Jan 2017 19:15:31 +0100 Subject: [PATCH] =?UTF-8?q?Pr=C3=BCfungsmodul=20Bugfixes=20und=20Erweiteru?= =?UTF-8?q?ngen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/pruefung/pruefung.js.php | 35 +++- .../pruefung/pruefungsanmeldung.json.php | 25 +++ .../pruefungsanmeldungen_liste.pdf.php | 160 ++++++++++++++++++ locale/de-AT/pruefung.php | 1 + locale/en-US/pruefung.php | 1 + locale/it-IT/pruefung.php | 1 + 6 files changed, 222 insertions(+), 1 deletion(-) create mode 100755 cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index 310bebc16..b809fb7e0 100755 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -809,7 +809,7 @@ function writeAnmeldungen(data) }); liste += ""; $("#anmeldung_hinzufuegen").html("' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>"); - $("#reihungSpeichernButton").html("' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"); + $("#reihungSpeichernButton").html("' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>' onclick='alleBestaetigen(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"); $("#lvdaten").html(lv_bezeichnung+" ("+prf_termin+")"); $("#anmeldeDaten").html(liste); $("#listeDrucken").html("t('pruefung/listeDrucken'); ?>"); @@ -929,6 +929,39 @@ function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltun }); } +/** + * Ändert den Status aller Anmeldungen eines Termins auf "bestätigt" + * @param {type} termin_id ID des Prüfungstermines + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function alleBestaetigen(termin_id, lehrveranstaltung_id) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "alleBestaetigen", + termin_id: termin_id, + lehrveranstaltung_id: lehrveranstaltung_id + }, + error: loadError + }).success(function(data){ + if(data.error === 'false' && data.result === true) + { + if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined') + { + showAnmeldungen(termin_id, lehrveranstaltung_id); + } + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }); +} + /** * Anzeige eines DIVs zur Darstellung von Fehlermeldungen, etc. * @param {type} divId ID des DIVs in dem die Meldung dargestellt werden soll diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 5c299374f..5d3d23254 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -97,6 +97,9 @@ switch($method) case 'anmeldungBestaetigen': $data = anmeldungBestaetigen($uid); break; + case 'alleBestaetigen': + $data = alleBestaetigen($uid); + break; case 'getStudiengaenge': $data = getStudiengaenge(); break; @@ -932,6 +935,28 @@ function saveReihung() return $data; } +/** + * Ändert den Status aller Prüfungsanmeldungen eines Termins/LV auf "bestaetigt" + * @return Array + */ +function alleBestaetigen($uid) +{ + $lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $pruefungstermin_id = $_REQUEST["termin_id"]; + $pruefungstermin = new pruefungstermin($pruefungstermin_id); + $pruefungsanmeldung = new pruefungsanmeldung(); + $pranmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id); + foreach($pranmeldungen as $a) + { + $anmeldung = new pruefungsanmeldung(); + $anmeldung->changeState($a->pruefungsanmeldung_id, 'bestaetigt', $uid); + } + $data['result']=true; + $data['error']='false'; + $data['errormsg']=''; + return $data; +} + /** * Ändert den Status einer Prüfungsanmeldung auf "bestaetigt" * @return Array diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php new file mode 100755 index 000000000..11b69a1b6 --- /dev/null +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php @@ -0,0 +1,160 @@ + + */ +require_once('../../../../config/cis.config.inc.php'); +require_once('../../../../include/dokument_export.class.php'); +require_once('../../../../include/benutzerberechtigung.class.php'); +require_once('../../../../include/pruefungsanmeldung.class.php'); +require_once('../../../../include/pruefungCis.class.php'); +require_once('../../../../include/pruefungstermin.class.php'); +require_once('../../../../include/studiensemester.class.php'); +require_once('../../../../include/lehrveranstaltung.class.php'); +require_once('../../../../include/mitarbeiter.class.php'); +require_once('../../../../include/student.class.php'); +require_once('../../../../include/datum.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user=get_uid(); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); + +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); + +if(isset($_GET['lehrveranstaltung_id']) && is_numeric($_GET['lehrveranstaltung_id'])) + $lvid = $_GET['lehrveranstaltung_id']; +else + die('Eine gueltige LvID muss uebergeben werden'); + +if(isset($_GET['studiensemester'])) + $studiensemester = $_GET['studiensemester']; +else + die('Eine Studiensemester muss uebergeben werden'); + +if(isset($_GET['termin_id']) && is_numeric($_GET['termin_id'])) + $termin_id = $_GET['termin_id']; +else + die('Eine Termin-ID muss uebergeben werden'); + +if(!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester)) + die('Sie muessen LektorIn der LV oder Admin sein, um diese Seite aufrufen zu koennen'); + +$output='pdf'; + +if(isset($_GET['output']) && ($output='odt' || $output='doc')) + $output=$_GET['output']; + + + +$lv = new lehrveranstaltung(); +$lv->load($lvid); + +$doc = new dokument_export('Pruefungslist'); + + +$stg = new studiengang(); +$stg->load($lv->studiengang_kz); + +$studiengang_bezeichnung=$stg->bezeichnung; + +$stg->getAllTypes(); + +$datum = new datum(); +$stdsem = new studiensemester($studiensemester); +$pruefungsanmeldung = new pruefungsanmeldung(); +$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lvid, $studiensemester, "bestaetigt"); +$lehrveranstaltung = new lehrveranstaltung($lvid); +$einzeln = FALSE; +if(!empty($anmeldungen)) +{ + $pruefung = new pruefungCis($anmeldungen[0]->pruefung_id); + $pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id); + $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); + $dozent = $mitarbeiter->getFullName(FALSE); + $termin_datum = $datum->formatDatum($pruefungstermin->von, "d.m.Y - H:i"); + + + $data = array( + 'bezeichnung'=>$lv->bezeichnung, + 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, + 'studiengang'=>$studiengang_bezeichnung, + 'studiengang_kz'=>$lv->studiengang_kz, + 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'studiensemester'=>$studiensemester, + 'semester'=>$lv->semester, + 'orgform'=>$lv->orgform_kurzbz, + 'dozent'=>$dozent, + 'termin_datum'=>$termin_datum + ); + + $count = 0; + foreach($anmeldungen as $anmeldung) + { + $student = new student($anmeldung->uid); + $prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id); + + if($einzeln) + { + $date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s"); + $date = strtotime($date); + $date = $date+(60*$pruefungsintervall*($count)); + $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date); + $count++; + } + else + { + $date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i"); + $count++; + } + $date = $datum->formatDatum($prfTermin->von,"d.m.Y"); + $data[] = array('student'=>array( + 'count' => $count, + 'vorname' => $student->vorname, + 'nachname' => $student->nachname, + 'matr_nr' => $student->matr_nr, + 'datum' => $date + )); + + } + + + $doc->addDataArray($data,'pruefungsliste'); + + //header("Content-type: application/xhtml+xml"); + //echo $doc->ConvertArrayToXML($data,'anwesenheitsliste'); + //exit; + + if(!$doc->create($output)) + die($doc->errormsg); + $doc->output(); + $doc->close(); +} +else { + echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); +} + +?> diff --git a/locale/de-AT/pruefung.php b/locale/de-AT/pruefung.php index 38b41cf9c..5ab429cc6 100755 --- a/locale/de-AT/pruefung.php +++ b/locale/de-AT/pruefung.php @@ -75,6 +75,7 @@ $this->phrasen['pruefung/terminGeloescht'] = 'Termin gelöscht'; $this->phrasen['pruefung/unbegrenzt'] = 'unbegrenzt'; $this->phrasen['pruefung/bewertungenZu'] = 'Bewertungen zu'; $this->phrasen['pruefung/keineAuswahl'] = 'Keine Auswahl'; +$this->phrasen['pruefung/alleBestaetigen'] = 'Alle bestätigen'; // pruefungsbewertung $this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Prüfungsbewertung'; diff --git a/locale/en-US/pruefung.php b/locale/en-US/pruefung.php index da5ed3238..01c743ff7 100755 --- a/locale/en-US/pruefung.php +++ b/locale/en-US/pruefung.php @@ -75,6 +75,7 @@ $this->phrasen['pruefung/terminGeloescht'] = 'Termin gelöscht'; $this->phrasen['pruefung/unbegrenzt'] = 'unlimited'; $this->phrasen['pruefung/bewertungenZu'] = 'Bewertungen zu'; $this->phrasen['pruefung/keineAuswahl'] = 'Keine Auswahl'; +$this->phrasen['pruefung/alleBestaetigen'] = 'Confirm all'; // pruefungsbewertung $this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Prüfungsbewertung'; diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php index 4b1ca3d56..73e9ae022 100755 --- a/locale/it-IT/pruefung.php +++ b/locale/it-IT/pruefung.php @@ -75,6 +75,7 @@ $this->phrasen['pruefung/terminGeloescht'] = 'Appello eliminato'; $this->phrasen['pruefung/unbegrenzt'] = ''; $this->phrasen['pruefung/bewertungenZu'] = 'Studenti iscritti all’appello di'; $this->phrasen['pruefung/keineAuswahl'] = 'Nessuna selezione'; +$this->phrasen['pruefung/alleBestaetigen'] = 'Confermare tutti'; // pruefungsbewertung $this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Voti d’esame';