diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js
index f5e4379d3..127f731ed 100644
--- a/cis/private/lehre/pruefung/pruefung.js
+++ b/cis/private/lehre/pruefung/pruefung.js
@@ -196,7 +196,7 @@ function loadPruefungen()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
- var table = writePruefungsTable(e, data);
+ var table = writePruefungsTable(e, data, true);
$("#pruefungen").append(table);
}
});
@@ -230,7 +230,7 @@ function loadPruefungenOfStudiengang()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
- var table = writePruefungsTable(e, data);
+ var table = writePruefungsTable(e, data, true);
$("#pruefungenStudiengang").append(table);
}
});
@@ -262,7 +262,7 @@ function loadPruefungenGesamt()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
- var table = writePruefungsTable(e, data);
+ var table = writePruefungsTable(e, data, false);
$("#pruefungenGesamt").append(table);
}
});
@@ -277,27 +277,13 @@ function loadPruefungenGesamt()
* @param {type} data Daten der Anmeldungen
* @returns {String}
*/
-function writePruefungsTable(e, data)
+function writePruefungsTable(e, data, anmeldung)
{
var row = "";
var teilnehmer = "";
var button = "";
- row += "
| "+e.organisationseinheit+" | "+e.lehrveranstaltung[0].bezeichnung+" | ";
+ row += " |
| "+e.organisationseinheit+" | "+e.lehrveranstaltung[0].bezeichnung+" | ";
e.pruefung.termine.forEach(function(d){
- var termin = d.von.split(" ");
- termin = termin[0].split("-");
- termin = new Date(termin[0], termin[1]-1,termin[2]);
- termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
- row += termin+"";
-
- if(d.max === null)
- {
- teilnehmer += "unbegrenzt";
- }
- else
- {
- teilnehmer += (d.max - d.teilnehmer)+"/"+d.max+"";
- }
var storno = false;
var anmeldung_id = null;
data.result.anmeldungen.forEach(function(anmeldung){
@@ -307,18 +293,44 @@ function writePruefungsTable(e, data)
anmeldung_id= anmeldung.pruefungsanmeldung_id;
}
});
- if(storno)
+ var termin = d.von.split(" ");
+ termin = termin[0].split("-");
+ termin = new Date(termin[0], termin[1]-1,termin[2]);
+ var frist = termin;
+ termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
+ frist = frist.getTime();
+ frist = frist - (3*24*60*60*1000);
+ frist = new Date(frist);
+ frist = frist.getDate()+"."+(frist.getMonth()+1)+"."+frist.getFullYear();
+ if(anmeldung || e.lehrveranstaltung[0].angemeldet)
{
- button += "";
+ if(storno)
+ {
+ button = " Stornieren (bis "+frist+"): ";
+ }
+ else
+ {
+ button = " Anmelden (bis "+frist+"): ";
+
+ }
}
else
{
- button += "";
-
+ button = "Anmelden (bis "+frist+"): ";
}
+
+ row += button;
+
+ if(d.max === null)
+ {
+ teilnehmer += "unbegrenzt";
+ }
+ else
+ {
+ teilnehmer += ""+(d.max - d.teilnehmer)+"/"+d.max+" ";
+ }
});
row += " | "+teilnehmer+" | ";
- row += " | "+button+" |
";
return row;
}
@@ -354,10 +366,14 @@ function showPruefungsDetails(prfId, lvId)
if(p.einzeln === true)
{
$("#prfEinzeln").html("Einzelprüfung!");
+ $("#prfIntervall").html(p.pruefungsintervall+" min");
+ $("#prfIntervall").prev().css("visibility", "visible");
}
else
{
$("#prfEinzeln").html("");
+ $("#prfIntervall").html("");
+ $("#prfIntervall").prev().css("visibility", "hidden");
}
$("#lvBez").html(l.bezeichnung);
if(l.ects !== null)
@@ -629,7 +645,7 @@ function writeAnmeldungen(data)
{
case 'angemeldet':
liste += ""+vorname+" "+nachname+"";
- liste += ""+count+"
";
+ liste += ""+count+"
";
if(d.wuensche !== null)
{
liste += "";
@@ -638,7 +654,7 @@ function writeAnmeldungen(data)
break;
case 'bestaetigt':
liste += ""+vorname+" "+nachname+"";
- liste += ""+count+"
bestätigt
";
+ liste += ""+count+"
";
if(d.wuensche !== null)
{
liste += "";
@@ -996,6 +1012,7 @@ function savePruefungstermin()
var lehrveranstaltungen = [];
var error = false;
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
+ var pruefungsintervall = $("#pruefungsintervall").val();
$("#prfTermin tr").each(function(i,v){
var termin = {};
$(v).find("input").each(function(j, w){
@@ -1028,6 +1045,19 @@ function savePruefungstermin()
markMissingFormEntry("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"max");
}
+ if(einzeln)
+ {
+ if(!checkPruefungsintervall(pruefungsintervall, termin))
+ {
+ error = true;
+ markMissingFormEntry("pruefungsintervall");
+ markMissingFormEntry($(v).attr("id"));
+ }
+ }
+ else
+ {
+ pruefungsintervall = false;
+ }
termine.push(termin);
});
@@ -1095,7 +1125,8 @@ function savePruefungstermin()
einzeln: einzeln,
termine: termine,
lehrveranstaltungen: lehrveranstaltungen,
- mitarbeiter_uid: mitarbeiter_uid
+ mitarbeiter_uid: mitarbeiter_uid,
+ pruefungsintervall: pruefungsintervall
},
error: loadError
}).success(function(data){
@@ -1299,6 +1330,8 @@ function loadPruefungsDetails(prfId)
if(result.pruefung.einzeln)
{
$("#einzeln").prop("checked", "checked");
+ $("#pruefungsintervall").parent().parent().css("visibility", "visible");
+ $("#pruefungsintervall").val(result.pruefung.pruefungsintervall);
}
else
{
@@ -1363,12 +1396,13 @@ function updatePruefung(prfId)
var titel = $("#titel").val();
var beschreibung = $("#beschreibung").val();
var methode = $("#methode").val();
- var einzeln = $("#einzeln").val();
+ var einzeln = $("#einzeln").prop("checked");
var termine = [];
var termineNeu = [];
var lehrveranstaltungen = [];
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
-
+ var pruefungsintervall = $("#pruefungsintervall").val();
+ var error = false;
$('#prfTermin tr').has("span").each(function(i,v){
var termin = {};
$(v).find("span").each(function(j, w){
@@ -1398,6 +1432,15 @@ function updatePruefung(prfId)
error = true;
markMissingFormEntry($(v).attr("id"));
}
+ if(einzeln)
+ {
+ if(!checkPruefungsintervall(pruefungsintervall, termin))
+ {
+ error = true;
+ markMissingFormEntry("pruefungsintervall");
+ markMissingFormEntry($(v).attr("id"));
+ }
+ }
termine.push(termin);
});
@@ -1422,9 +1465,23 @@ function updatePruefung(prfId)
break;
}
});
+ if(!checkTermin(termin))
+ {
+ error = true;
+ markMissingFormEntry($(v).attr("id"));
+ }
+ if(einzeln)
+ {
+ if(!checkPruefungsintervall(pruefungsintervall, termin))
+ {
+ error = true;
+ markMissingFormEntry("pruefungsintervall");
+ markMissingFormEntry($(v).attr("id"));
+ }
+ }
termineNeu.push(termin);
});
- var error = false;
+
$("#lvDropdowns select").each(function(i,v){
if($(v).val() !== "null")
lehrveranstaltungen.push($(v).val());
@@ -1489,7 +1546,8 @@ function updatePruefung(prfId)
termine: termine,
termineNeu: termineNeu,
lehrveranstaltungen: lehrveranstaltungen,
- mitarbeiter_uid: mitarbeiter_uid
+ mitarbeiter_uid: mitarbeiter_uid,
+ pruefungsintervall: pruefungsintervall
},
error: loadError
}).success(function(data){
@@ -1683,6 +1741,20 @@ function checkTermin(termin)
return true;
}
+function checkPruefungsintervall(intervall, termin)
+{
+ var beginn = stringToDate(termin.datum, termin.beginn);
+ var ende = stringToDate(termin.datum, termin.ende);
+ var maxTeilnehmer = ((ende - beginn) / 1000 / 60 / intervall);
+ console.log(maxTeilnehmer);
+ console.log(termin.max);
+ if(maxTeilnehmer < termin.max)
+ {
+ return false;
+ }
+ return true;
+}
+
/**
* Formatiert eine Datum von String in eine Date-Objekt
* @param {string} datum Ein Datum als String im Format "DD.MM.YYYY"
@@ -1711,6 +1783,9 @@ function resetPruefungsverwaltung()
$("#methode").val("");
resetLehrveranstaltungen();
resetTermine();
+ $("#pruefungsintervall").val("15");
+ $("#einzeln").removeAttr("checked");
+ $("#pruefungsintervall").closest("tr").css("visibility", "hidden");
$("#modalOverlay").removeClass("modalOverlay");
$("#buttonSave").attr("onclick", "savePruefungstermin();");
}
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
index 7281776bc..4e317b334 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
@@ -59,13 +59,14 @@ switch($method)
$data = saveReihung();
break;
case 'anmeldungBestaetigen':
- $data = anmeldungBestaetigen();
+ $data = anmeldungBestaetigen($uid);
break;
case 'getStudiengaenge':
$data = getStudiengaenge();
break;
case 'getPruefungenStudiengang':
- $data = getPruefungenStudiengang();
+ $studiensemester = new studiensemester();
+ $data = getPruefungenStudiengang($uid, $studiensemester->getakt());
break;
case 'saveKommentar':
$data = saveKommentar();
@@ -87,7 +88,7 @@ echo json_encode($data);
function getPruefungByLv($aktStudiensemester = null, $uid = null)
{
$lehrveranstaltungen = new lehrveranstaltung();
- $lehrveranstaltungen->load_lva_student($uid);
+ $lehrveranstaltungen->load_lva_student($uid, $aktStudiensemester);
$lvIds = array();
foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs)
{
@@ -155,6 +156,13 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null)
function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
{
$lehrveranstaltungen = new lehrveranstaltung();
+ $lv_angemeldet = new lehrveranstaltung();
+ $lv_angemeldet->load_lva_student($uid, $aktStudiensemester);
+ $lvIds_angemeldet = array();
+ foreach($lv_angemeldet->lehrveranstaltungen as $lv)
+ {
+ array_push($lvIds_angemeldet, $lv->lehrveranstaltung_id);
+ }
$student = new student($uid);
$lehrveranstaltungen->load_lva($student->studiengang_kz);
$lvIds = array();
@@ -167,10 +175,18 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
if($pruefung->getPruefungByLv($lehrveranstaltungen))
{
$pruefungen = array();
- foreach($pruefung->lehrveranstaltungen as $lv)
+ foreach($pruefung->lehrveranstaltungen as $key=>$lv)
{
$lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id);
$lehrveranstaltung = $lehrveranstaltung->cleanResult();
+ if(in_array($lehrveranstaltung[0]->lehrveranstaltung_id, $lvIds_angemeldet))
+ {
+ $lehrveranstaltung[0]->angemeldet = true;
+ }
+ else
+ {
+ $lehrveranstaltung[0]->angemeldet = false;
+ }
$lehreinheit = new lehreinheit();
$lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester);
$lehreinheiten = $lehreinheit->lehreinheiten;
@@ -513,12 +529,12 @@ function saveReihung()
* Ändert den Status einer Prüfungsanmeldung auf "bestaetigt"
* @return Array
*/
-function anmeldungBestaetigen()
+function anmeldungBestaetigen($uid)
{
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
$status = "bestaetigt";
$anmeldung = new pruefungsanmeldung();
- if($anmeldung->changeState($pruefungsanmeldung_id, $status))
+ if($anmeldung->changeState($pruefungsanmeldung_id, $status, $uid))
{
$data['result']=true;
$data['error']='false';
@@ -567,7 +583,7 @@ function getStudiengaenge()
* Lädt alle Prüfungen eines Studienganges
* @return Array
*/
-function getPruefungenStudiengang()
+function getPruefungenStudiengang($uid, $aktStudiensemester)
{
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load_lva($_REQUEST["studiengang_kz"], null, null, true, true);
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php
index e7036bcd8..de3e025b6 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php
@@ -36,12 +36,6 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
-$lehrveranstaltung = new lehrveranstaltung();
-$lehrveranstaltung->load_lva_student($uid);
-
-$studiensemester = new studiensemester();
-$studiensemester->getAll();
-
$benutzer = new student($uid);
?>
@@ -80,7 +74,7 @@ $benutzer = new student($uid);
}
#accordion {
- width: 80%;
+ width: 60%;
clear: left;
clear: right;
}
@@ -98,6 +92,22 @@ $benutzer = new student($uid);
font-weight: bold;
}
+ .columnheader1 {
+ width: 30%;
+ }
+ .columnheader2 {
+ width: 30%;
+ }
+ .columnheader3 {
+ width: 30%;
+ }
+ .columnheader4 {
+ width: 5%;
+ }
+
+ #accordion p {
+ margin: 0;
+ }
/* div {
float: left;
}*/
@@ -118,7 +128,7 @@ $benutzer = new student($uid);
{
$("#accordion").accordion({
header: "h2",
- heightstyle: "content"
+ autoHeight: false
});
$("#accordion").attr("style", "visibility: visible;");
}
@@ -133,7 +143,17 @@ $benutzer = new student($uid);
autoOpen: false,
width: "400px"
});
+ $("#dialog").dialog({ autoOpen: false });
});
+ convert_html_chars($uid).'");
+ $("#dialog").dialog("open");
+ }'
+ ;
+ ?>
Prüfungsanmeldung für vorname." ".$benutzer->nachname." (".$uid.")"; ?>
@@ -149,6 +169,7 @@ $benutzer = new student($uid);
Methode:
Beschreibung:
+ Intervall:
@@ -158,12 +179,10 @@ $benutzer = new student($uid);
- | Insitut |
- Lehrveranstaltung |
- Termin |
- freie Plätze |
- Frist |
- |
+ Insitut |
+ Lehrveranstaltung |
+ Termin |
+ freie Plätze |
@@ -176,12 +195,10 @@ $benutzer = new student($uid);
- | Insitut |
- Lehrveranstaltung |
- Termin |
- freie Plätze |
- Frist |
- |
+ Insitut |
+ Lehrveranstaltung |
+ Termin |
+ freie Plätze |
@@ -194,12 +211,10 @@ $benutzer = new student($uid);
- | Insitut |
- Lehrveranstaltung |
- Termin |
- freie Plätze |
- Frist |
- |
+ Insitut |
+ Lehrveranstaltung |
+ Termin |
+ freie Plätze |
@@ -249,5 +264,7 @@ $benutzer = new student($uid);
+
+