mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 16:44:28 +00:00
Merge branch 'master' into demo
This commit is contained in:
@@ -382,7 +382,7 @@ function writePruefungsTable(e, data, anmeldung)
|
||||
}
|
||||
else if(new Date() > minimumFrist)
|
||||
{
|
||||
button = "<p><a href='#' title='<?php echo $p->t('pruefung/anmeldenMoeglichBis'); ?> "+frist+"'><input style='width: 140px; background-color: green;' type='button' value='"+termin+" "+time+"' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung.replace("'", "'")+"\", \""+d.von+"\", \""+d.bis+"\");'></a></p>";
|
||||
button = "<p><a href='#' title='<?php echo $p->t('pruefung/anmeldenMoeglichBis'); ?> "+frist+"'><input style='width: 140px; background-color: green;' type='button' value='"+termin+" "+time+"' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung.replace("'", "'")+"\", \""+d.von+"\", \""+d.bis+"\", \""+e.lehrveranstaltung[0].ects +"\");'></a></p>";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -479,13 +479,15 @@ function showPruefungsDetails(prfId, lvId)
|
||||
* @param {type} lvBezeichnung Bezeichnung der Lehrveranstaltung
|
||||
* @param {type} terminVon Beginn der Prüfung
|
||||
* @param {type} terminBis Ende der Prüfung
|
||||
* @param {type} ects der LV
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, terminBis)
|
||||
function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, terminBis, ects)
|
||||
{
|
||||
$("#lehrveranstaltungHidden").val(lehrveranstaltung_id);
|
||||
$("#terminHidden").val(termin_id);
|
||||
$("#lehrveranstaltung").html(lvBezeichnung);
|
||||
$("#ectsangabe").val(ects);
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
@@ -582,6 +584,12 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
if($('#prestudent_studiengang').length)
|
||||
studiengang_kz = $('#prestudent_studiengang option:selected').val();
|
||||
|
||||
var ects = null;
|
||||
if ($('#ectsangabe').length)
|
||||
{
|
||||
ects = $('#ectsangabe').val();
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
@@ -593,7 +601,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
bemerkung: bemerkungen,
|
||||
uid: uid,
|
||||
studienverpflichtung_id: studienverpflichtung_id,
|
||||
studiengang_kz: studiengang_kz
|
||||
studiengang_kz: studiengang_kz,
|
||||
ects: ects
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
@@ -804,6 +813,7 @@ function writeAnmeldungen(data, showMessage = true)
|
||||
var pruefung_id = data.result.anmeldungen[0].pruefung_id;
|
||||
var lehrveranstaltung_id = data.result.anmeldungen[0].lehrveranstaltung_id;
|
||||
var ort_kurzbz = data.result.ort_kurzbz;
|
||||
var anderer_raum = data.result.anderer_raum;
|
||||
var lv_bezeichnung = data.result.lv_bezeichnung;
|
||||
var lv_lehrtyp = data.result.lv_lehrtyp;
|
||||
var prf_termin = data.result.datum;
|
||||
@@ -816,24 +826,33 @@ function writeAnmeldungen(data, showMessage = true)
|
||||
count++;
|
||||
var vorname = d.student.vorname !== "null" ? d.student.vorname : "";
|
||||
var nachname = d.student.nachname !== "null" ? d.student.nachname : "";
|
||||
|
||||
let ects = "";
|
||||
<?php if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true)): ?>
|
||||
ects = d.ects !== null ? "(" + d.ects + " ECTS) ": "";
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
switch(d.status_kurzbz)
|
||||
{
|
||||
case 'angemeldet':
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+vorname+" "+nachname+"</a>";
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+ects+vorname+" "+nachname+"</a>";
|
||||
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 34%;'><input style='vertical-align: top; height: 24px;' type='button' value='<?php echo $p->t('pruefung/bestaetigen'); ?>' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>";
|
||||
liste += "<input style='vertical-align: top; height: 24px; background-color: #dd514c;' type='button' value='X' onclick='anmeldungLoeschen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
|
||||
if(d.wuensche !== null)
|
||||
{
|
||||
liste += "<div class='anmerkungInfo'><a href='#' title='<?php echo $p->t('pruefung/anmerkungDesStudenten'); ?>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
|
||||
let msg = $('<div>').text(d.wuensche).html();
|
||||
liste += `<div class='anmerkungInfo'><a href='#' data-msg="${msg}" onclick="openKommentarDialog(this.dataset.msg)"><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>`;
|
||||
}
|
||||
liste += "</li>";
|
||||
break;
|
||||
case 'bestaetigt':
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+vorname+" "+nachname+"</a>";
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+ects+vorname+" "+nachname+"</a>";
|
||||
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'><a href='#' title='<?php echo $p->t('pruefung/statusAenderungVon'); ?>: "+d.statusupdatevon+"'><?php echo $p->t('pruefung/bestaetigt'); ?></a></div>";
|
||||
if(d.wuensche !== null)
|
||||
{
|
||||
liste += "<div class='anmerkungInfo'><a href='#' title='<?php echo $p->t('pruefung/anmerkungDesStudenten'); ?>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
|
||||
let msg = $('<div>').text(d.wuensche).html();
|
||||
liste += `<div class='anmerkungInfo'><a href='#' data-msg="${msg}" onclick="openKommentarDialog(this.dataset.msg)"><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>`;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -844,13 +863,14 @@ function writeAnmeldungen(data, showMessage = true)
|
||||
});
|
||||
liste += "</ul>";
|
||||
$("#anmeldung_hinzufuegen").html("<input id='anmeldung_hinzufuegen_uid' type='text' placeholder='StudentIn-UID' /><input type='button' value='<?php echo $p->t('global/hinzufuegen'); ?>' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>");
|
||||
$("#reihungSpeichernButton").html("<input type='button' value='<?php echo $p->t('pruefung/reihungSpeichern'); ?>' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'><input type='button' value='<?php echo $p->t('pruefung/alleBestaetigen'); ?>' onclick='alleBestaetigen(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
|
||||
$("#reihungSpeichernButton").html("<label for='emails'>E-Mail: <input type='email' id='emails' multiple /> <br /><br />" +
|
||||
"<input type='button' value='<?php echo $p->t('pruefung/reihungSpeichern'); ?>' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'><input type='button' value='<?php echo $p->t('pruefung/alleBestaetigen'); ?>' onclick='alleBestaetigen(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
|
||||
$("#lvdaten").html(lv_bezeichnung+" ("+prf_termin+")");
|
||||
$("#anmeldeDaten").html(liste);
|
||||
$("#listeDrucken").html(listenLinks);
|
||||
if(ort_kurzbz !== null)
|
||||
if(ort_kurzbz !== null || anderer_raum !== null)
|
||||
{
|
||||
$("#raumLink").html("<span><?php echo $p->t('pruefung/pruefungsraum'); ?></span>"+ort_kurzbz);
|
||||
$("#raumLink").html("<span><?php echo $p->t('pruefung/pruefungsraum'); ?></span>"+ (ort_kurzbz ?? anderer_raum));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -883,11 +903,17 @@ function writeAnmeldungen(data, showMessage = true)
|
||||
function openRaumDialog(terminId, lehrveranstaltung_id)
|
||||
{
|
||||
getRaeume(terminId);
|
||||
$("#raum").html('<h2><?php echo $p->t('pruefung/pruefungsraum'); ?></h2><input onChange="changeStateOfRaumDropdown();" type="checkbox" /><span><?php echo $p->t('pruefung/imBuero'); ?></span><br /><span style="font-weight: bold;"><?php echo $p->t('pruefung/raum'); ?>: </span><select id="raeumeDropdown"></select>');
|
||||
$("#raum").html('<h2><?php echo $p->t('pruefung/pruefungsraum'); ?></h2><div id="raumInfos"><input onChange="changeStateOfRaumDropdown();" type="checkbox" /><span><?php echo $p->t('pruefung/imBuero'); ?></span><br /><span style="font-weight: bold;"><?php echo $p->t('pruefung/raum'); ?>: </span><select id="raeumeDropdown"></select><br /></div><input onChange="changeStateOfRaumInputs();" id="andererRaum" type="checkbox"/><span><?php echo $p->t('pruefung/andererRaum'); ?></span> <input type="text" id="andereRaumInput" placeholder="<?php echo $p->t('pruefung/andererRaum'); ?>"/><br />');
|
||||
$("#raumSpeichernButton").html("<input type='button' value='<?php echo $p->t('pruefung/raumSpeichern'); ?>' onclick='saveRaum(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'/>");
|
||||
$("#raumDialog").dialog("open");
|
||||
}
|
||||
|
||||
function openKommentarDialog(text)
|
||||
{
|
||||
$('#kommentarimDialog').text(text);
|
||||
$('#kommentarDialog').dialog('open');
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert die Reihung der Studenten einer Prüfungsanmeldung
|
||||
* @param {type} terminId ID des Prüfungstermines
|
||||
@@ -1011,6 +1037,30 @@ function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_i
|
||||
*/
|
||||
function alleBestaetigen(termin_id, lehrveranstaltung_id)
|
||||
{
|
||||
const input = $('#emails').val();
|
||||
|
||||
let emails = '';
|
||||
if (input)
|
||||
{
|
||||
emails = input.split(",").map(s => s.trim());
|
||||
const re = /^([\w-+]+(?:\.[\w-+]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,63}(?:\.[a-z]{2})?)$/i;
|
||||
|
||||
let valid = true;
|
||||
$.each(emails, function(index, email)
|
||||
{
|
||||
if (re.test(email) === false)
|
||||
{
|
||||
alert("<?php echo $p->t('pruefung/bitteEmailAngeben')?>");
|
||||
valid = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!valid)
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
@@ -1018,7 +1068,8 @@ function alleBestaetigen(termin_id, lehrveranstaltung_id)
|
||||
data: {
|
||||
method: "alleBestaetigen",
|
||||
termin_id: termin_id,
|
||||
lehrveranstaltung_id: lehrveranstaltung_id
|
||||
lehrveranstaltung_id: lehrveranstaltung_id,
|
||||
emails: emails
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
@@ -1090,15 +1141,12 @@ function loadStudiengaenge()
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen zu einem Studiengang
|
||||
* @param {type} studiengang_kz Studiengangskennzahl
|
||||
* Lädt alle Prüfungen zu einem Studiensemester
|
||||
* @param {type} studiensemester Studiensemester
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
function loadPruefungStudiengang(studiensemester)
|
||||
{
|
||||
if(studiengang_kz === undefined)
|
||||
studiengang_kz = $("#select_studiengang option:selected").val();
|
||||
|
||||
if(studiensemester === undefined)
|
||||
studiensemester = $("#filter_studiensemester option:selected").val();
|
||||
|
||||
@@ -1107,8 +1155,7 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPruefungenStudiengang",
|
||||
studiengang_kz: studiengang_kz,
|
||||
method: "getPruefungenStudiensemester",
|
||||
studiensemester: studiensemester
|
||||
},
|
||||
error: loadError,
|
||||
@@ -1118,25 +1165,61 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
$("#pruefungenListe").empty();
|
||||
if(data.result.length > 0)
|
||||
{
|
||||
var liste = "";
|
||||
data.result.forEach(function(e){
|
||||
liste += "<ul><li>"+e.bezeichnung+"<ul>";
|
||||
try
|
||||
{
|
||||
e.pruefung[0].termine.forEach(function(d){
|
||||
liste += "<li> <a onclick='showAnmeldungen(\""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\");'>"+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"</a></li>";
|
||||
$('#table4').show()
|
||||
let rows = '';
|
||||
|
||||
data.result.forEach(function(e)
|
||||
{
|
||||
let termine = [];
|
||||
if (e.pruefung) {
|
||||
e.pruefung.forEach(p => {
|
||||
if (p.termine) {
|
||||
termine = termine.concat(p.termine);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch(err)
|
||||
|
||||
if (termine.length === 0)
|
||||
{
|
||||
var errmsg = err.message;
|
||||
rows += `
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>${e.bezeichnung}</td>
|
||||
<td colspan="5">Keine Termine</td>
|
||||
</tr>`;
|
||||
}
|
||||
else
|
||||
{
|
||||
termine.forEach(function(d) {
|
||||
let vonDate = convertDateTime(d.von);
|
||||
let vonTime = convertDateTime(d.von, 'time');
|
||||
let bisTime = convertDateTime(d.bis, 'time');
|
||||
let onClick = `showAnmeldungen(${d.pruefungstermin_id}, ${e.lehrveranstaltung_id})`;
|
||||
|
||||
rows += `
|
||||
<tr>
|
||||
<td><input type="checkbox"
|
||||
class="termin-checkbox"
|
||||
data-termin-id="${d.pruefungstermin_id}"
|
||||
data-lv-id="${e.lehrveranstaltung_id}"
|
||||
data-datum="${vonDate}"
|
||||
/></td>
|
||||
<td>${e.studiengang}</td>
|
||||
<td>${e.bezeichnung}</td>
|
||||
<td>${vonDate}</td>
|
||||
<td>${vonTime}</td>
|
||||
<td>${bisTime}</td>
|
||||
<td><a onclick="${onClick}"><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></a></td>
|
||||
</tr>`;
|
||||
});
|
||||
}
|
||||
liste += "</ul></li></ul>";
|
||||
});
|
||||
$("#pruefungenListe").append(liste);
|
||||
$("#pruefungenListe").html(rows);
|
||||
setTablesorter('table4')
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#table4').hide()
|
||||
$("#pruefungenListe").html("<?php echo $p->t('pruefung/keinePruefungenVorhanden'); ?>");
|
||||
}
|
||||
}
|
||||
@@ -1148,6 +1231,42 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
});
|
||||
}
|
||||
|
||||
function terminezusammenlegen(termine, lv_id)
|
||||
{
|
||||
if(termine.length <= 1)
|
||||
return;
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "terminezusammenlegen",
|
||||
'termine[]': termine,
|
||||
lv_id: lv_id
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
if(data.error === 'false')
|
||||
{
|
||||
loadPruefungStudiengang()
|
||||
$("#anmeldung_hinzufuegen").empty();
|
||||
$("#lvdaten").empty();
|
||||
$("#anmeldeDaten").empty();
|
||||
$("#reihungSpeichernButton").empty();
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
$("#raumLink").empty();
|
||||
$("#listeDrucken").empty();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeigt das Formularfeld zur Eingabe eines Kommentars in der Anmeldungsverwaltung an.
|
||||
* @param {String} vorname Vorname des Studenten
|
||||
@@ -1241,6 +1360,7 @@ function loadStudiensemester()
|
||||
data.result.forEach(function(d){
|
||||
selectData += "<option "+((d.studiensemester_kurzbz === data.aktSem) ? "selected" : "")+" value='"+d.studiensemester_kurzbz+"'>"+d.studiensemester_kurzbz+"</option>";
|
||||
});
|
||||
|
||||
$('#studiensemester').html(selectData);
|
||||
loadPruefungsfenster();
|
||||
loadLehrveranstaltungen();
|
||||
@@ -1540,7 +1660,7 @@ function loadPruefungsDetails(prfId)
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 10000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
$("#pruefungsfenster").html("<option value='null'><?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?></option>");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2188,10 +2308,28 @@ function changeStateOfRaumDropdown()
|
||||
}
|
||||
}
|
||||
|
||||
function changeStateOfRaumInputs()
|
||||
{
|
||||
if ($("#andererRaum").prop("checked") === true)
|
||||
{
|
||||
$("#raumInfos").hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#raumInfos").show();
|
||||
}
|
||||
}
|
||||
|
||||
function saveRaum(terminId, lehrveranstaltung_id)
|
||||
{
|
||||
var ort_kurzbz;
|
||||
if($("#raum input[type=checkbox]").prop("checked") === true)
|
||||
let anderer_raum = '';
|
||||
if ($("#andererRaum").prop("checked") === true && $('#andereRaumInput').val() !== '')
|
||||
{
|
||||
ort_kurzbz = "";
|
||||
anderer_raum = $('#andereRaumInput').val();
|
||||
}
|
||||
else if($("#raum input[type=checkbox]").prop("checked") === true)
|
||||
{
|
||||
ort_kurzbz = "buero";
|
||||
}
|
||||
@@ -2206,7 +2344,8 @@ function saveRaum(terminId, lehrveranstaltung_id)
|
||||
data: {
|
||||
method: "saveRaum",
|
||||
ort_kurzbz: ort_kurzbz,
|
||||
terminId: terminId
|
||||
terminId: terminId,
|
||||
anderer_raum: anderer_raum
|
||||
},
|
||||
error: loadError
|
||||
}).done(function(data){
|
||||
|
||||
@@ -106,9 +106,14 @@ switch($method)
|
||||
case 'getStudiengaenge':
|
||||
$data = getStudiengaenge();
|
||||
break;
|
||||
case 'getPruefungenStudiengang':
|
||||
case 'getPruefungenStudiensemester':
|
||||
$studiensemester = filter_input(INPUT_POST,"studiensemester");
|
||||
$data = getPruefungenStudiengang($uid, $studiensemester);
|
||||
$data = getPruefungenStudiengangBySemester($studiensemester);
|
||||
break;
|
||||
case 'terminezusammenlegen':
|
||||
$termine = filter_input(INPUT_POST, 'termine', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
|
||||
$lv_id = filter_input(INPUT_POST, 'lv_id');
|
||||
$data = terminezusammenlegen($termine, $lv_id);
|
||||
break;
|
||||
case 'saveKommentar':
|
||||
$data = saveKommentar();
|
||||
@@ -120,7 +125,8 @@ switch($method)
|
||||
case 'saveRaum':
|
||||
$terminId = $_REQUEST["terminId"];
|
||||
$ort_kurzbz = $_REQUEST["ort_kurzbz"];
|
||||
$data = saveRaum($terminId, $ort_kurzbz, $uid);
|
||||
$anderer_raum = $_REQUEST["anderer_raum"];
|
||||
$data = saveRaum($terminId, $ort_kurzbz, $uid, $anderer_raum);
|
||||
break;
|
||||
case 'getLvKompatibel':
|
||||
$lvid = filter_input(INPUT_POST, "lehrveranstaltung_id");
|
||||
@@ -397,6 +403,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$lv_besucht = false;
|
||||
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
|
||||
$studiengang_kz = filter_input(INPUT_POST, "studiengang_kz");
|
||||
$ects = filter_input(INPUT_POST, "ects");
|
||||
|
||||
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
|
||||
$maxAnzahlVersuche = 0;
|
||||
@@ -731,6 +738,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
else
|
||||
$anmeldung->anrechnung_id = $anrechnung->anrechnung_id;
|
||||
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true))
|
||||
{
|
||||
$anmeldung->ects = $ects;
|
||||
}
|
||||
if($anmeldung->save(true))
|
||||
{
|
||||
$pruefung = new pruefungCis($termin->pruefung_id);
|
||||
@@ -960,9 +971,13 @@ function alleBestaetigen($uid)
|
||||
global $p;
|
||||
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
|
||||
$pruefungstermin_id = $_REQUEST["termin_id"];
|
||||
$emails = $_REQUEST["emails"];
|
||||
$pruefungstermin = new pruefungstermin($pruefungstermin_id);
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$pranmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
|
||||
$mail_benutzer = [];
|
||||
$mail_inhalt = [];
|
||||
foreach($pranmeldungen as $a)
|
||||
{
|
||||
$anmeldung = new pruefungsanmeldung($a->pruefungsanmeldung_id);
|
||||
@@ -976,6 +991,13 @@ function alleBestaetigen($uid)
|
||||
$ma = new mitarbeiter($uid);
|
||||
$datum = new datum();
|
||||
$ort = new ort($termin->ort_kurzbz);
|
||||
|
||||
$ortbezeichnung = $ort->bezeichnung;
|
||||
if (is_null($termin->ort_kurzbz) && !is_null($termin->anderer_raum))
|
||||
{
|
||||
$ortbezeichnung = $termin->anderer_raum;
|
||||
}
|
||||
|
||||
$pruefung = new pruefungCis($termin->pruefung_id);
|
||||
|
||||
$to = $anm->uid."@".DOMAIN;
|
||||
@@ -995,17 +1017,66 @@ function alleBestaetigen($uid)
|
||||
}
|
||||
else
|
||||
$html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "H:i")."<br>";
|
||||
$html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."<br>";
|
||||
$html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ortbezeichnung."<br>";
|
||||
$html .= "<br>";
|
||||
$html .= "<a href='".APP_ROOT."cis/private/lehre/pruefung/pruefungsanmeldung.php'>".$p->t('pruefung/emailBodyLinkZurAnmeldung')."</a><br>";
|
||||
$html .= "<br>";
|
||||
|
||||
$mail_benutzer[] = [
|
||||
'uid' => $anm->uid
|
||||
];
|
||||
|
||||
if (empty($mail_inhalt))
|
||||
{
|
||||
$mail_inhalt = array(
|
||||
'von' => $ma->vorname." ".$ma->nachname,
|
||||
'lv' => $lv->bezeichnung,
|
||||
'ort' => $ortbezeichnung,
|
||||
'datum' => $datum->formatDatum($termin->von, "d.m.Y") . ' ' . $p->t('pruefung/emailBodyUm') . ' ' . (isset($von) ? $von : $datum->formatDatum($termin->von, "H:i")),
|
||||
'dauer' => $pruefung->einzeln ? ($pruefung->pruefungsintervall . ' ' . $p->t('pruefung/emailBodyMinuten')): '');
|
||||
}
|
||||
|
||||
$mail = new mail($to, $from, $subject,$p->t('pruefung/emailBodyBitteHtmlSicht'));
|
||||
$mail->setHTMLContent($html);
|
||||
$mail->send();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($emails) && !empty($mail_inhalt))
|
||||
{
|
||||
foreach ($emails as $email)
|
||||
{
|
||||
$from = "noreply@".DOMAIN;
|
||||
$subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung');
|
||||
$html = $p->t('pruefung/sammelemailBody',array($mail_inhalt['lv'], $mail_inhalt['datum'], $mail_inhalt['von']));
|
||||
|
||||
if ($mail_inhalt['ort'])
|
||||
{
|
||||
$html .= $p->t('pruefung/sammelemailBody2',array($mail_inhalt['ort']));
|
||||
}
|
||||
|
||||
$html .= "<br /><table border='1'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>UID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>";
|
||||
|
||||
foreach($mail_benutzer as $benutzer)
|
||||
{
|
||||
$html .= "<tr>
|
||||
<td>" . htmlspecialchars($benutzer['uid']) . "</td>
|
||||
</tr>";
|
||||
}
|
||||
$html .= "</tbody></table><br />";
|
||||
|
||||
$mail = new mail($email, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht'));
|
||||
$mail->setHTMLContent($html);
|
||||
$mail->send();
|
||||
}
|
||||
}
|
||||
$data['result']=true;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
@@ -1032,6 +1103,12 @@ function anmeldungBestaetigen($uid)
|
||||
$ort = new ort($termin->ort_kurzbz);
|
||||
$pruefung = new pruefungCis($termin->pruefung_id);
|
||||
|
||||
$ortbezeichnung = $ort->bezeichnung;
|
||||
if (is_null($termin->ort_kurzbz) && !is_null($termin->anderer_raum))
|
||||
{
|
||||
$ortbezeichnung = $termin->anderer_raum;
|
||||
}
|
||||
|
||||
$to = $anmeldung->uid."@".DOMAIN;
|
||||
$from = "noreply@".DOMAIN;
|
||||
$subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung');
|
||||
@@ -1049,7 +1126,7 @@ function anmeldungBestaetigen($uid)
|
||||
}
|
||||
else
|
||||
$html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "H:i")."<br>";
|
||||
$html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."<br>";
|
||||
$html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ortbezeichnung."<br>";
|
||||
$html .= "<br>";
|
||||
$html .= "<a href='".APP_ROOT."cis/private/lehre/pruefung/pruefungsanmeldung.php'>".$p->t('pruefung/emailBodyLinkZurAnmeldung')."</a><br>";
|
||||
$html .= "<br>";
|
||||
@@ -1166,6 +1243,258 @@ function getPruefungenStudiengang($uid, $aktStudiensemester)
|
||||
return $data;
|
||||
}
|
||||
|
||||
function getPruefungenStudiengangBySemester($aktStudiensemester)
|
||||
{
|
||||
$result = array();
|
||||
$pruefungen = new pruefungCis();
|
||||
$pruefungen->getPruefungByStudiensemester($aktStudiensemester);
|
||||
|
||||
if(!empty($pruefungen->lehrveranstaltungen))
|
||||
{
|
||||
$lehrveranstaltungen = [];
|
||||
foreach ($pruefungen->lehrveranstaltungen as $prf)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($prf->pruefung_id);
|
||||
|
||||
if ($pruefung->storniert)
|
||||
continue;
|
||||
|
||||
$pruefung->getTermineByPruefung();
|
||||
|
||||
$lvid = $prf->lehrveranstaltung_id;
|
||||
|
||||
if (!isset($lehrveranstaltungen[$lvid]))
|
||||
{
|
||||
$lv = new stdClass();
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$lv->bezeichnung = $lehrveranstaltung->bezeichnung;
|
||||
$lv->lehrveranstaltung_id = $lvid;
|
||||
$lv->studiengang = $studiengang->kuerzel;
|
||||
$lv->pruefung = [];
|
||||
$lehrveranstaltungen[$lvid] = $lv;
|
||||
}
|
||||
|
||||
$lehrveranstaltungen[$lvid]->pruefung[] = $pruefung;
|
||||
}
|
||||
$result = array_values($lehrveranstaltungen);
|
||||
}
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
return $data;
|
||||
}
|
||||
|
||||
function terminezusammenlegen($termine, $lv_id)
|
||||
{
|
||||
$result = array();
|
||||
$alle_termine = array();
|
||||
$error = false;
|
||||
$terminkollision = defined('CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION') ? CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION : false;
|
||||
foreach($termine as $termin)
|
||||
{
|
||||
$pruefungstermin = new pruefungstermin();
|
||||
$pruefungstermin->load($termin);
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefungstermin->pruefung_id);
|
||||
$pruefung->getLehrveranstaltungenByPruefung();
|
||||
|
||||
$lehrveranstaltungen = array_column($pruefung->lehrveranstaltungen, 'lehrveranstaltung_id');
|
||||
if (!in_array($lv_id, $lehrveranstaltungen))
|
||||
continue;
|
||||
|
||||
$pruefung->lehrveranstaltung_id = $lv_id;
|
||||
$pruefung->termin = $pruefungstermin;
|
||||
$alle_termine[] = $pruefung;
|
||||
}
|
||||
|
||||
|
||||
if (count($alle_termine) >= 1)
|
||||
{
|
||||
usort($alle_termine, function($a, $b) {
|
||||
return strcmp($a->termin->von, $b->termin->von);
|
||||
});
|
||||
|
||||
$first_termin = $alle_termine[0];
|
||||
|
||||
$first_mitarbeiter = $first_termin->mitarbeiter_uid;
|
||||
$first_date = date('Y-m-d', strtotime($first_termin->termin->von));
|
||||
$first_studiensemester = $first_termin->studiensemester_kurzbz;
|
||||
$first_sammelklausur = $first_termin->termin->sammelklausur;
|
||||
$first_ort = $first_termin->termin->ort_kurzbz;
|
||||
$first_raum = $first_termin->termin->anderer_raum;
|
||||
$first_lv = $first_termin->lehrveranstaltung_id;
|
||||
$first_titel = $first_termin->titel;
|
||||
|
||||
$max_von = strtotime($first_termin->termin->von);
|
||||
$max_bis = strtotime($first_termin->termin->bis);
|
||||
$teilnehmer_min = (int)$first_termin->termin->teilnehmer_min;
|
||||
$teilnehmer_max = (int)$first_termin->termin->teilnehmer_max;
|
||||
|
||||
|
||||
$prevEnd = $max_bis;
|
||||
|
||||
foreach ($alle_termine as $termin)
|
||||
{
|
||||
if (date('Y-m-d', strtotime($termin->termin->von)) !== $first_date)
|
||||
{
|
||||
$data['errormsg'] = 'Nicht der gleiche Tag!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($termin->mitarbeiter_uid !== $first_mitarbeiter)
|
||||
{
|
||||
$data['errormsg'] = 'Unterschiedliche Lektoren!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($termin->studiensemester_kurzbz !== $first_studiensemester)
|
||||
{
|
||||
$data['errormsg'] = 'Unterschiedliche Studiensemester!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($termin->termin->sammelklausur !== $first_sammelklausur)
|
||||
{
|
||||
$data['errormsg'] = 'Sammelklausur unterschiedlich!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if (!($termin->termin->ort_kurzbz === $first_ort || $first_termin->termin->anderer_raum == $first_raum))
|
||||
{
|
||||
$data['errormsg'] = 'Ort/Raum unterschiedlich!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($termin->lehrveranstaltung_id !== $first_lv)
|
||||
{
|
||||
$data['errormsg'] = 'Lehrveranstaltungen unterscheiden sich!';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
|
||||
$start = strtotime($termin->termin->von);
|
||||
$max_von = min($max_von, $start);
|
||||
$max_bis = max($max_bis, strtotime($termin->termin->bis));
|
||||
$teilnehmer_min = min($teilnehmer_min, (int)$termin->termin->teilnehmer_min);
|
||||
$teilnehmer_max = max($teilnehmer_max, (int)$termin->termin->teilnehmer_max);
|
||||
|
||||
if (($start - $prevEnd > 0) && $first_ort)
|
||||
{
|
||||
$stunde = new stunde();
|
||||
|
||||
$gapStartStr = date('Y-m-d H:i:s', $prevEnd);
|
||||
$gapEndStr = date('Y-m-d H:i:s', $start);
|
||||
|
||||
$gapStartArr = explode(' ', $gapStartStr);
|
||||
$gapEndArr = explode(' ', $gapEndStr);
|
||||
|
||||
$stunden = $stunde->getStunden($gapStartArr[1], $gapEndArr[1]);
|
||||
|
||||
$reservierung = new reservierung();
|
||||
$reserviert = false;
|
||||
|
||||
$reservierungs_stunden = $reservierung->getReservierungen($first_ort, $gapStartArr[0]);
|
||||
|
||||
$need_stunden = array_diff($stunden, $reservierungs_stunden);
|
||||
|
||||
foreach ($need_stunden as $h)
|
||||
{
|
||||
if ($reservierung->isReserviert($first_ort, $gapStartArr[0], $h))
|
||||
$reserviert = true;
|
||||
}
|
||||
|
||||
if (!$terminkollision && $reserviert && !$first_sammelklausur)
|
||||
{
|
||||
$error = true;
|
||||
$data['errormsg'] = 'Kann nicht zusammengelegt werden, da der Raum reserviert ist';
|
||||
}
|
||||
else
|
||||
{
|
||||
$reservierung->studiengang_kz = "0";
|
||||
$reservierung->ort_kurzbz = $first_ort;
|
||||
$reservierung->uid = $first_mitarbeiter;
|
||||
$reservierung->datum = $gapStartArr[0];
|
||||
$reservierung->titel = $first_titel;
|
||||
if (strlen($first_titel) > 10)
|
||||
{
|
||||
$reservierung->titel = "Prüfung";
|
||||
}
|
||||
$reservierung->beschreibung = "Prüfung";
|
||||
$reservierung->insertamum = date('Y-m-d G:i:s');
|
||||
$reservierung->insertvon = get_uid();
|
||||
$reservierungError = false;
|
||||
|
||||
foreach ($need_stunden as $h)
|
||||
{
|
||||
$reservierung->stunde = $h;
|
||||
if (!$reservierungError)
|
||||
{
|
||||
if (!$reservierung->save(true))
|
||||
{
|
||||
$error = true;
|
||||
$data['errormsg'] = $reservierung->errormsg;
|
||||
$reservierungError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$prevEnd = strtotime($termin->termin->bis);
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
$first_pruefungstermin = new pruefungstermin();
|
||||
$first_pruefungstermin->load($first_termin->termin->pruefungstermin_id);
|
||||
|
||||
$first_pruefungstermin->von = date('Y-m-d H:i:s', $max_von);
|
||||
$first_pruefungstermin->bis = date('Y-m-d H:i:s', $max_bis);
|
||||
$first_pruefungstermin->teilnehmer_min = $teilnehmer_min;
|
||||
$first_pruefungstermin->teilnehmer_max = $teilnehmer_max;
|
||||
|
||||
$first_pruefungstermin->save();
|
||||
|
||||
$alle_termine = array_slice($alle_termine, 1);
|
||||
|
||||
foreach ($alle_termine as $termin)
|
||||
{
|
||||
$anmeldung_termin = new pruefungsanmeldung();
|
||||
$anmeldungen_termine = $anmeldung_termin->getAnmeldungenByTermin($termin->termin->pruefungstermin_id);
|
||||
|
||||
if (count($anmeldungen_termine) === 0)
|
||||
{
|
||||
$first_pruefungstermin->delete($termin->termin->pruefungstermin_id);
|
||||
}
|
||||
$i = 0;
|
||||
$anmeldungen_termine_count = count($anmeldungen_termine);
|
||||
foreach ($anmeldungen_termine as $anmeldungtermin)
|
||||
{
|
||||
$anmeldung = new pruefungsanmeldung();
|
||||
$anmeldung->load($anmeldungtermin->pruefungsanmeldung_id);
|
||||
$old_pruefuengstermin_id = $anmeldung->pruefungstermin_id;
|
||||
$anmeldung->pruefungstermin_id = $first_termin->termin->pruefungstermin_id;
|
||||
if ($anmeldung->save(false) && ($i === $anmeldungen_termine_count - 1))
|
||||
{
|
||||
$first_pruefungstermin->delete($old_pruefuengstermin_id);
|
||||
}
|
||||
$i ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$data['result']= $result;
|
||||
$data['error']= $error ? 'true' : 'false';
|
||||
//$data['errormsg']='';
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return typespeichert ein Kommentar zu einer Prüfungsanmeldung
|
||||
@@ -1246,7 +1575,7 @@ function compareRaeume($a, $b)
|
||||
return strcmp($a->ort_kurzbz, $b->ort_kurzbz);
|
||||
}
|
||||
|
||||
function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
function saveRaum($terminId, $ort_kurzbz, $uid, $anderer_raum = '')
|
||||
{
|
||||
$terminkollision = defined('CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION') ? CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION : false;
|
||||
$pruefungstermin = new pruefungstermin($terminId);
|
||||
@@ -1265,7 +1594,24 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
{
|
||||
$pruefung = new pruefungCis($pruefungstermin->pruefung_id);
|
||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||
if($ort_kurzbz === "buero")
|
||||
|
||||
if ($ort_kurzbz === "" && $anderer_raum !== "")
|
||||
{
|
||||
$pruefungstermin->anderer_raum = $anderer_raum;
|
||||
|
||||
if($pruefungstermin->save(false))
|
||||
{
|
||||
$data['result']="reserviert";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefungstermin->errormsg;
|
||||
}
|
||||
}
|
||||
else if($ort_kurzbz === "buero")
|
||||
{
|
||||
$pruefungstermin->ort_kurzbz = $mitarbeiter->ort_kurzbz;
|
||||
if($pruefungstermin->save(false))
|
||||
|
||||
@@ -321,6 +321,20 @@ $studiensemester->getAll();
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE')
|
||||
&& CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true):
|
||||
?>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('pruefung/ects'); ?>:
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" size="3" id="ectsangabe" placeholder="<?php echo $p->t('pruefung/ects'); ?>"/>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr id="studiengang">
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -235,12 +235,18 @@ $rechte->getBerechtigungen($uid);
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('benotungstool/note'); ?></th>
|
||||
<th><?php echo $p->t('global/anmerkung'); ?></th>
|
||||
|
||||
<?php
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true)):
|
||||
?>
|
||||
<th><?php echo $p->t('pruefung/ects'); ?></th>
|
||||
<?php endif; ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$count = 0;
|
||||
/*@var $anmeldung pruefungsanmeldung */
|
||||
foreach($anmeldungen as $anmeldung)
|
||||
{
|
||||
$student = new student($anmeldung->uid);
|
||||
@@ -269,6 +275,8 @@ $rechte->getBerechtigungen($uid);
|
||||
echo '<td>'.$date.'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td></td>';
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true))
|
||||
echo '<td>'. $anmeldung->ects .'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -233,6 +233,11 @@ $rechte->getBerechtigungen($uid);
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('benotungstool/note'); ?></th>
|
||||
<th><?php echo $p->t('global/anmerkung'); ?></th>
|
||||
<?php
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true)):
|
||||
?>
|
||||
<th><?php echo $p->t('pruefung/ects'); ?></th>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -265,6 +270,8 @@ $rechte->getBerechtigungen($uid);
|
||||
echo '<td>'.$date.'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td></td>';
|
||||
if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true))
|
||||
echo '<td>'. $anmeldung->ects .'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -76,7 +76,7 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
width: 850px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*border: 1px solid #dddddd;*/
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 70%;
|
||||
width: 300px;
|
||||
width: 40%;
|
||||
top: 180px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
/*border-radius: 25px;*/
|
||||
@@ -117,9 +117,9 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
/*top: 45px;*/
|
||||
left: 350px;
|
||||
left: 45%;
|
||||
top: 180px;
|
||||
width: 500px;
|
||||
width: 40%;
|
||||
height: 70%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
/*border-radius: 25px;*/
|
||||
@@ -228,7 +228,6 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
loadStudiengaenge();
|
||||
$("#filter_studiensemester").css("visibility","visible");
|
||||
|
||||
$("#raumDialog").dialog({
|
||||
@@ -236,17 +235,66 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
});
|
||||
|
||||
$("#kommentarDialog").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px",
|
||||
buttons: {
|
||||
Ok: function() {
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$("#table4").tablesorter({
|
||||
widgets: ["zebra"],
|
||||
headers: {
|
||||
0: { sorter: false },
|
||||
3: { sorter: 'shortDate',
|
||||
dateFormat: 'ddmmyyyy' },
|
||||
4: { sorter: 'time' },
|
||||
5: { sorter: 'time' }
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#zusammenlegen').on('click', function() {
|
||||
let ausgewaehlte_termine = $('.termin-checkbox:checked');
|
||||
|
||||
if (ausgewaehlte_termine.length === 0)
|
||||
return;
|
||||
|
||||
let erster_termin = ausgewaehlte_termine.first();
|
||||
let erstes_datum = erster_termin.data('datum');
|
||||
let erste_lvid = erster_termin.data('lv-id');
|
||||
|
||||
let termine = [];
|
||||
ausgewaehlte_termine.each(function() {{
|
||||
let termin = $(this);
|
||||
let datum = termin.data('datum');
|
||||
let lv_id = termin.data('lv-id');
|
||||
|
||||
if (erstes_datum !== datum)
|
||||
return alert("Die ausgewählten Termine liegen nicht am selben Tag und können daher nicht zusammengelegt werden.")
|
||||
if (erste_lvid !== lv_id)
|
||||
return alert("Bei den ausgewählten Terminen handelt es sich um unterschiedliche Lehrveranstaltungen, die daher nicht zusammengelegt werden können.")
|
||||
|
||||
termine.push(termin.data('termin-id'));
|
||||
}})
|
||||
|
||||
if (termine.length > 0)
|
||||
{
|
||||
terminezusammenlegen(termine, erste_lvid);
|
||||
}
|
||||
})
|
||||
|
||||
loadPruefungStudiengang();
|
||||
});
|
||||
</script>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungenVerwalten'); ?></h1>
|
||||
<div id='stgWrapper'>
|
||||
<div id='studiengaenge'>
|
||||
<div>
|
||||
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
||||
<div id='stgListe'>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
||||
<?php
|
||||
@@ -255,7 +303,6 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
$studiensemester->getPlusMinus(null, 5);
|
||||
foreach($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
/*@var $sem studiensemester */
|
||||
if ($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
||||
@@ -273,9 +320,21 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
<button id="zusammenlegen">Termine zusammenlegen</button>
|
||||
<table id="table4" class="tablesorter" style="display:none">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><?php echo $p->t('global/studiengang'); ?></th>
|
||||
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('global/von'); ?></th>
|
||||
<th><?php echo $p->t('global/bis'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenListe"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
@@ -311,6 +370,9 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="kommentarDialog" title="<?php echo $p->t('pruefung/anmerkungDesStudenten'); ?>" style="display:none;">
|
||||
<div id="kommentarimDialog"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
@@ -69,6 +69,8 @@ if(isset($_GET['getAnmeldung']))
|
||||
|
||||
$lehrveranstaltung_id=$_GET['lehrveranstaltung_id'];
|
||||
$stsem = $_GET['stsem'];
|
||||
$semester = $_GET['semester'];
|
||||
$studienplan_id = $_GET['studienplan_id'];
|
||||
|
||||
echo $p->t('studienplan/LehrveranstalungWaehlen').'
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?uid='.$db->convert_html_chars($uid).'" method="POST">
|
||||
@@ -83,6 +85,10 @@ if(isset($_GET['getAnmeldung']))
|
||||
$datum = new datum();
|
||||
$kompatibel[]=$lehrveranstaltung_id;
|
||||
$kompatibel = array_unique($kompatibel);
|
||||
$stsem_obj = new studiensemester();
|
||||
$aktornext = $stsem_obj->getaktorNext();
|
||||
|
||||
$lvregel = new lvregel();
|
||||
foreach($kompatibel as $lvid)
|
||||
{
|
||||
$lvangebot = new lvangebot();
|
||||
@@ -95,19 +101,50 @@ if(isset($_GET['getAnmeldung']))
|
||||
$angebot = $lvangebot->result[0];
|
||||
if($angebot->AnmeldungMoeglich())
|
||||
{
|
||||
$anzahl++;
|
||||
// LV wird angeboten und Anmeldefenster ist offen
|
||||
$kompatible_lv = $lehrveranstaltung->getStudienplanLehrveranstaltung($lvid, $studienplan_id);
|
||||
|
||||
$bngruppe = new benutzergruppe();
|
||||
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
||||
$lvregelExists = false;
|
||||
$abgeschlossen = false;
|
||||
$semesterlock = false;
|
||||
$regelerfuellt = true;
|
||||
|
||||
if ($kompatible_lv)
|
||||
{
|
||||
// User ist noch nicht angemeldet
|
||||
echo '<br><input type="radio" value="'.$lvid.'" name="lv"/>'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')';
|
||||
$lvregelExists = $lvregel->exists($kompatible_lv);
|
||||
|
||||
if(!$lvregel->checkSemester($kompatible_lv, $semester))
|
||||
{
|
||||
$semesterlock=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($stsem === $aktornext)
|
||||
{
|
||||
$result = $lvregel->isZugangsberechtigt($uid, $kompatible_lv, $stsem);
|
||||
if((is_array($result)) && ($result[0] !== true))
|
||||
{
|
||||
$regelerfuellt=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if (!$semesterlock && $regelerfuellt)
|
||||
{
|
||||
// Bereits angemeldet
|
||||
echo '<br><input type="radio" disabled="true" value="'.$lvid.'" name="lv" /><span class="ok">'.$lv->bezeichnung.'</span><img src="../../../skin/images/information.png" title="'.$p->t('studienplan/bereitsAngemeldet').'"/>';
|
||||
$anzahl++;
|
||||
// LV wird angeboten und Anmeldefenster ist offen
|
||||
|
||||
$bngruppe = new benutzergruppe();
|
||||
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
||||
{
|
||||
// User ist noch nicht angemeldet
|
||||
echo '<br><input type="radio" value="'.$lvid.'" name="lv"/>'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Bereits angemeldet
|
||||
echo '<br><input type="radio" disabled="true" value="'.$lvid.'" name="lv" /><span class="ok">'.$lv->bezeichnung.'</span><img src="../../../skin/images/information.png" title="'.$p->t('studienplan/bereitsAngemeldet').'"/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
/* else
|
||||
@@ -170,9 +207,9 @@ echo '
|
||||
$("#dialog").dialog({ autoOpen: false, width: "auto" });
|
||||
});
|
||||
|
||||
function OpenAnmeldung(lehrveranstaltung_id, stsem)
|
||||
function OpenAnmeldung(lehrveranstaltung_id, stsem, semester, studienplan_id)
|
||||
{
|
||||
$("#dialog").load("studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&uid='.$db->convert_html_chars($uid).'");
|
||||
$("#dialog").load("studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&semester="+semester+"&studienplan_id="+studienplan_id+"&uid='.$db->convert_html_chars($uid).'");
|
||||
$("#dialog").dialog("open");
|
||||
}
|
||||
</script>
|
||||
@@ -359,7 +396,7 @@ drawTree($tree,0);
|
||||
|
||||
function drawTree($tree, $depth)
|
||||
{
|
||||
global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext;
|
||||
global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext, $studienplan_id;
|
||||
global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student;
|
||||
global $anrechnung;
|
||||
|
||||
@@ -639,12 +676,12 @@ function drawTree($tree, $depth)
|
||||
$tdclass[]='angebot';
|
||||
if($angemeldet)
|
||||
{
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\'); return false;"><img src="../../../skin/images/ja.png" title="'.$p->t('studienplan/legendeAngemeldet').'" /></a>';
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\',\''.$semester.'\',\''.$studienplan_id.'\'); return false;"><img src="../../../skin/images/ja.png" title="'.$p->t('studienplan/legendeAngemeldet').'" /></a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($anmeldungmoeglich)
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\'); return false;"><img src="../../../skin/images/anmelden.png" title="'.$p->t('studienplan/anmelden').'" height="15px" /></a>';
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\', \''.$semester.'\', \''.$studienplan_id.'\'); return false;"><img src="../../../skin/images/anmelden.png" title="'.$p->t('studienplan/anmelden').'" height="15px" /></a>';
|
||||
else
|
||||
$tdinhalt.= '<span title="'.$anmeldeinformation.'">-</a>';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user