| "+e.organisationseinheit+" | "+e.lehrveranstaltung[0].bezeichnung+" ("+e.lehrveranstaltung[0].lehrform_kurzbz+", "+e.lehrveranstaltung[0].ects+" ECTS, "+e.pruefung.mitarbeiter_uid+") | ";
e.pruefung.termine.forEach(function(d){
var storno = false;
var anmeldung_id = null;
@@ -336,7 +346,7 @@ function writePruefungsTable(e, data, anmeldung)
var frist = termin;
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
frist = frist.getTime();
- frist = frist - (3*24*60*60*1000);
+ frist = frist - (*24*60*60*1000);
var fristDate = new Date(frist);
frist = fristDate.getDate()+"."+(fristDate.getMonth()+1)+"."+fristDate.getFullYear();
@@ -345,7 +355,7 @@ function writePruefungsTable(e, data, anmeldung)
if(!storno)
button = " t('pruefung/anmeldefristAbgelaufen'); ?>";
else
- button = " Storno nicht mehr möglich.";
+ button = " t('pruefung/stornoNichtMehrMoeglich'); ?>";
}
else if(anmeldung || e.lehrveranstaltung[0].angemeldet)
{
@@ -370,7 +380,7 @@ function writePruefungsTable(e, data, anmeldung)
if(d.max === null)
{
- teilnehmer += "unbegrenzt";
+ teilnehmer += "t('pruefung/unbegrenzt'); ?>";
}
else
{
@@ -958,10 +968,17 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
var liste = "";
data.result.forEach(function(e){
liste += " ";
+ try
+ {
+ e.pruefung[0].termine.forEach(function(d){
+ liste += " "+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"";
+ });
+ }
+ catch(err)
+ {
+ var errmsg = err.message;
+ }
+ liste += "";
});
$("#pruefungenListe").append(liste);
}
@@ -1309,6 +1326,7 @@ function unmarkMissingFormEntry()
function loadLehrveranstaltungen()
{
var studiensemester_kurzbz = $("#studiensemester").val();
+ //alert(studiensemester_kurzbz);
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
$.ajax({
dataType: 'json',
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
index bd093c2a5..137e27a45 100755
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
@@ -31,6 +31,14 @@ require_once('../../../../include/mail.class.php');
require_once('../../../../include/anrechnung.class.php');
require_once('../../../../include/prestudent.class.php');
require_once('../../../../include/person.class.php');
+require_once('../../../../include/phrasen.class.php');
+require_once('../../../../include/globals.inc.php');
+require_once('../../../../include/sprache.class.php');
+
+$sprache = getSprache();
+$lang = new sprache();
+$lang->load($sprache);
+$p = new phrasen($sprache);
$uid = get_uid();
@@ -361,6 +369,7 @@ function loadTermine()
*/
function saveAnmeldung($aktStudiensemester = null, $uid = null)
{
+ global $p;
$termin = new pruefungstermin($_REQUEST["termin_id"]);
$pruefung = new pruefung();
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
@@ -426,6 +435,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$pruefung->getPruefungen($uid, NULL, $lehrveranstaltung->lehrveranstaltung_id);
$anmeldung_moeglich = true;
$anzahlPruefungen = count($pruefung->result);
+
+ // Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen
+ if(!isset($pruefungstyp_kurzbzArray))
+ $pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef");
if(isset($pruefungstyp_kurzbzArray))
{
if($anzahlPruefungen < count($pruefungstyp_kurzbzArray))
@@ -445,8 +458,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
{
$pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id);
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
- $p = new pruefungCis($pruefungstermin->pruefung_id);
- $pruefungsfenster = new pruefungsfenster($p->pruefungsfenster_id);
+ $pf = new pruefungCis($pruefungstermin->pruefung_id);
+ $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id);
$studiensemester = new studiensemester();
$stdsem = $studiensemester->getaktorNext();
$i=0;
@@ -492,7 +505,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
if($creditpoints < $lehrveranstaltung->ects)
{
$data['error'] = 'true';
- $data['errormsg'] = 'Credit-Points-Guthaben ist zu gering.';
+ $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints');
return $data;
}
}
@@ -506,7 +519,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
{
$data['result'][$temp->pruefungstermin_id] = "true";
$data['error'] = 'true';
- $data['errormsg'] = 'Kollision mit anderer Anmeldung.';
+ $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung');
}
}
if(isset($data['error']) && $data['error'] = 'true')
@@ -517,14 +530,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
else
{
$data['error']='true';
- $data['errormsg']='Keine freien Plätze vorhanden.';
+ $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden');
return $data;
}
}
else
{
$data['error']='true';
- $data['errormsg']='Anmeldung auf Grund von Sperre nicht möglich.';
+ $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich');
return $data;
}
@@ -581,19 +594,19 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
else
$to = $pruefung->mitarbeiter_uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
- $subject = "Anmeldung zur Prüfung";
- $mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.");
+ $subject = $p->t('pruefung/emailLektorSubjectAnmeldung');
+ $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht'));
$student = new student($uid);
$datum = new datum();
$lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id);
- $html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet.";
+ $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'] = "Anmeldung erfolgreich!";
+ $data['result'] = $p->t('pruefung/anmeldungErfolgreich');
$data['error']='false';
$data['errormsg']='';
}
@@ -612,13 +625,13 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
else
{
$data['error']='true';
- $data['errormsg']="Prestudent nicht gefunden.";
+ $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden');
}
}
else
{
$data['error']='true';
- $data['errormsg']="Prestudent nicht gefunden.";
+ $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden');
}
return $data;
}
@@ -694,6 +707,7 @@ function getAllPruefungen($aktStudiensemester = null, $uid = null)
*/
function stornoAnmeldung($uid = null)
{
+ global $p;
$pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id'];
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
$anrechnung = new anrechnung($pruefungsanmeldung->anrechnung_id);
@@ -701,7 +715,7 @@ function stornoAnmeldung($uid = null)
{
if($anrechnung->delete($anrechnung->anrechnung_id))
{
- $data['result'] = 'Anmeldung erfolgreich gelöscht.';
+ $data['result'] = $p->t('pruefung/anmeldungErfolgreichGeloescht');
$data['error'] = 'false';
$data['errormsg'] = '';
}
@@ -722,6 +736,7 @@ function stornoAnmeldung($uid = null)
*/
function getAnmeldungenTermin()
{
+ global $p;
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
$pruefungstermin_id = $_REQUEST["pruefungstermin_id"];
$pruefungstermin = new pruefungstermin($pruefungstermin_id);
@@ -751,7 +766,7 @@ function getAnmeldungenTermin()
}
else
{
- $data['errormsg']= 'Keine Anmeldungen vorhanden';
+ $data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden');
}
}
return $data;
@@ -785,6 +800,7 @@ function saveReihung()
*/
function anmeldungBestaetigen($uid)
{
+ global $p;
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
$status = "bestaetigt";
$anmeldung = new pruefungsanmeldung();
@@ -800,27 +816,27 @@ function anmeldungBestaetigen($uid)
$to = $anmeldung->uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
- $subject = "Anmeldungsbestätigung zur Prüfung";
- $html = "Ihre Anmeldung zur Prüfung wurde von ".$ma->vorname." ".$ma->nachname." bestätigt. ";
+ $subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung');
+ $html = $p->t('pruefung/emailBody1')." ".$ma->vorname." ".$ma->nachname." ".$p->t('pruefung/emailBody2')." ";
$html .= " ";
- $html .= "Prüfung: ".$lv->bezeichnung." ";
+ $html .= $p->t('pruefung/emailBodyPruefung')." ".$lv->bezeichnung." ";
if($pruefung->einzeln)
{
$date = $datum->formatDatum($termin->von, "Y-m-d h:i:s");
$date = strtotime($date);
$date = $date+(60*$pruefung->pruefungsintervall*($anmeldung->reihung-1));
$von = date("h:i",$date);
- $html .= "Termin: ".$datum->formatDatum($termin->von, "d.m.Y")." um ".$von." ";
- $html .= "Dauer: ".$pruefung->pruefungsintervall." Minuten";
+ $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$von." ";
+ $html .= $p->t('pruefung/emailBodyDauer')." ".$pruefung->pruefungsintervall." ".$p->t('pruefung/emailBodyMinuten')."";
}
else
- $html .= "Termin: ".$datum->formatDatum($termin->von, "d.m.Y")." um ".$datum->formatDatum($termin->von, "h:i")." ";
- $html .= "Ort: ".$ort->bezeichnung." ";
+ $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "h:i")." ";
+ $html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung." ";
$html .= " ";
- $html .= "Link zur Anmeldung ";
+ $html .= "".$p->t('pruefung/emailBodyLinkZurAnmeldung')." ";
$html .= " ";
- $mail = new mail($to, $from, $subject,"Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.");
+ $mail = new mail($to, $from, $subject,$p->t('pruefung/emailBodyBitteHtmlSicht'));
$mail->setHTMLContent($html);
$mail->send();
diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.js.php b/cis/private/lehre/pruefung/pruefungsbewertung.js.php
new file mode 100644
index 000000000..e6369eb97
--- /dev/null
+++ b/cis/private/lehre/pruefung/pruefungsbewertung.js.php
@@ -0,0 +1,300 @@
+
+ */
+
+
+require_once('../../../../config/cis.config.inc.php');
+require_once('../../../../include/phrasen.class.php');
+require_once('../../../../include/globals.inc.php');
+require_once('../../../../include/sprache.class.php');
+
+$sprache = getSprache();
+$lang = new sprache();
+$lang->load($sprache);
+$p = new phrasen($sprache);
+
+?>
+
+
+/**
+ * Error-Behandlung bei Ajax Requests
+ */
+
+
+function loadError(xhr, textStatus, errorThrown)
+{
+ if(xhr.status==200)
+ alert('Fehler:'+xhr.responseText);
+ else
+ alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
+}
+
+/**
+ * Lädt alle Prüfungen eines Mitarbeiters
+ * @returns {undefined}
+ */
+function loadPruefungenMitarbeiter()
+{
+ var uid = $("#mitarbeiter_uid").val();
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsbewertung.json.php",
+ type: "POST",
+ data: {
+ method: "getPruefungMitarbeiter",
+ mitarbeiter_uid: uid
+ },
+ error: loadError
+ }).success(function(data){
+ $("#pruefungen").find("h2").first().text("t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")");
+ if(data.error === 'false')
+ {
+ var liste = "";
+ data.result.forEach(function(e){
+ liste += ""+e.bezeichnung+"";
+ e.pruefung.lehrveranstaltungen.forEach(function(d)
+ {
+ d.pruefung.termine.forEach(function(f){
+ liste += "- "+convertDateTime(f.von)+"
";
+ });
+ })
+ liste += " ";
+ });
+ $("#pruefungenListe").html(liste);
+ }
+ else
+ {
+ $("#pruefungenListe").html(data.errormsg);
+ }
+ });
+}
+
+/**
+ * Lädt die Anmeldungen zu einer Prüfung
+ * @param {type} pruefungstermin_id ID des Prüfungstermins
+ * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
+ * @returns {undefined}
+ */
+function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstaltung, datum)
+{
+ $("#modalOverlay").addClass("modalOverlay");
+ $("#anmeldeDaten").empty();
+ $("#anmeldungen").children("h2").text("Bewertungen zu "+lehrveranstaltung+" ("+datum+")");
+ var noten = "";
+ }
+ else
+ {
+ messageBox("message",data.errormsg, "red", "highlight", 1000);
+ }
+ }).complete(function(event, xhr, settings){
+ var notenSelect = noten;
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsbewertung.json.php",
+ type: "POST",
+ data: {
+ method: "getAnmeldungenTermin",
+ pruefungstermin_id: pruefungstermin_id,
+ lehrveranstaltung_id: lehrveranstaltung_id
+ },
+ error: loadError
+ }).success(function(data){
+ var entry = "";
+ if(data.error === "false")
+ {
+ data.result.forEach(function(d)
+ {
+ if(d.status_kurzbz === "bestaetigt")
+ {
+ var datum = d.von.split(" ");
+ if(d.pruefung.note===null)
+ {
+ entry = "";
+ }
+ else
+ {
+ entry = "";
+ }
+ $("#anmeldeDaten").append(entry);
+ if(d.pruefung.note!==null)
+ {
+ markAsSaved(document.getElementById(d.student.uid).firstChild);
+ $("#"+d.student.uid).find("select").val(d.pruefung.note);
+ }
+ else
+ {
+ markAsUnsaved(document.getElementById(d.student.uid).firstChild);
+ }
+ var t = $("#note_anmerkung_"+d.student.uid).parent().find('select').first().width();
+ $("#note_anmerkung_"+d.student.uid).width(t);
+ }
+ });
+ if(entry === "")
+ {
+ entry = "Keine Anmeldungen vorhanden. ";
+ $("#anmeldeDaten").html(entry);
+ }
+ }
+ else
+ {
+ entry = "";
+ $("#anmeldeDaten").html(entry);
+ }
+ }).complete(function(event, xhr, settings){
+ $("#modalOverlay").removeClass("modalOverlay");
+ });
+ });
+}
+
+/**
+ * Speichert eine Beurteilung
+ * @param {type} ele Element das die Funtkion aufruft
+ * @param {type} datum
+ * @param {type} pruefungsanmeldung_id ID der Anmeldung
+ * @param {type} pruefung_id ID der Prüfung
+ * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
+ * @returns {void}
+ */
+function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrveranstaltung_id)
+{
+ var student_uid = $(ele).parent().attr("id");
+ var mitarbeiter_uid = $("#mitarbeiter_uid").val();
+ var note = $(ele).parent().find("select").val();
+ if((note === "null") || (note===null))
+ {
+ messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000);
+ return false;
+ }
+ var anmerkung = $("#note_anmerkung_"+student_uid).val();
+
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsbewertung.json.php",
+ type: "POST",
+ data: {
+ method: "saveBeurteilung",
+ pruefung_id: pruefung_id,
+ lehrveranstaltung_id: lehrveranstaltung_id,
+ student_uid: student_uid,
+ mitarbeiter_uid: mitarbeiter_uid,
+ note: note,
+ //TODO Datum der Prüfung oder der Beurteilung?????
+ datum: datum,
+ anmerkung: anmerkung,
+ pruefungsanmeldung_id: pruefungsanmeldung_id
+ },
+ error: loadError
+ }).success(function(data){
+ if(data.error != 'true')
+ {
+ markAsSaved(ele);
+ $(ele).attr("onclick", "updateBeurteilung(this,\""+data.result+"\")");
+ }
+ else
+ {
+ messageBox("message",data.errormsg, "red", "highlight", 1000);
+ $(ele).parent().find("select").val(null);
+ }
+ }).complete(function(event, xhr, settings){
+
+ });
+}
+
+/**
+ * Aktualisiert eine Beurteilung
+ * @param {type} ele Element das die Funtkion aufruft
+ * @param {type} pruefung_id ID der Prüfung
+ * @returns {undefined}
+ */
+function updateBeurteilung(ele, pruefung_id)
+{
+ var student_uid = $(ele).parent().attr("id");
+ var mitarbeiter_uid = $("#mitarbeiter_uid").val();
+ var note = $(ele).parent().find("select").val();
+ var anmerkung = $("#note_anmerkung_"+student_uid).val();
+ if((note === "null") || (note===null))
+ {
+ messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000);
+ return false;
+ }
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsbewertung.json.php",
+ type: "POST",
+ data: {
+ method: "updateBeurteilung",
+ pruefung_id: pruefung_id,
+ note: note,
+ anmerkung: anmerkung
+ },
+ error: loadError
+ }).success(function(data){
+ if(data.error != 'true')
+ {
+ markAsSaved(ele);
+ }
+ else
+ {
+ messageBox("message",data.errormsg, "red", "highlight", 1000);
+ }
+
+
+ }).complete(function(event, xhr, settings){
+
+ });
+}
+
+/**
+ * Markiert einen Datensatz als gespeichert
+ * @param {type} ele Element das die Funtkion aufruft
+ * @returns {undefined}
+ */
+function markAsSaved(ele)
+{
+ $(ele).parent().removeClass("unsaved");
+ $(ele).parent().addClass("saved");
+}
+
+/**
+ * Markiert einen Datensatz als ungespeichert
+ * @param {type} ele Element das die Funtkion aufruft
+ * @returns {undefined}
+ */
+function markAsUnsaved(ele)
+{
+ $(ele).parent().removeClass("saved");
+ $(ele).parent().addClass("unsaved");
+}
diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.php b/cis/private/lehre/pruefung/pruefungsbewertung.php
index 28894e13c..7137e0a35 100755
--- a/cis/private/lehre/pruefung/pruefungsbewertung.php
+++ b/cis/private/lehre/pruefung/pruefungsbewertung.php
@@ -62,7 +62,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
-
+
diff --git a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
index 909ea18bd..31428cdaf 100755
--- a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
+++ b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
@@ -195,7 +195,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|