diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index ea4c1eff0..4f6a6fd70 100644 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -565,7 +565,7 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t * @param {type} termin_id ID des Prüfungstermines * @returns {undefined} */ -function saveAnmeldung(lehrveranstaltung_id, termin_id) +function saveAnmeldung(lehrveranstaltung_id, termin_id, force = false) { var uid = $("#anmeldung_hinzufuegen_uid").val(); if(lehrveranstaltung_id === undefined) @@ -602,10 +602,21 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id) uid: uid, studienverpflichtung_id: studienverpflichtung_id, studiengang_kz: studiengang_kz, - ects: ects + ects: ects, + force: force }, error: loadError, success: function(data){ + + if (data?.confirm === 'true') + { + if (confirm(data.errormsg)) + { + saveAnmeldung(lehrveranstaltung_id, termin_id, true); + } + return; + } + if(data.error === 'false') { messageBox("message", data.result, "green", "highlight", 10000); diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index e4f17860a..2b07bf9d5 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -394,7 +394,7 @@ function loadTermine() */ function saveAnmeldung($aktStudiensemester = null, $uid = null) { - global $p; + global $p, $rechte; $termin = new pruefungstermin($_REQUEST["termin_id"]); $pruefung = new pruefung(); $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); @@ -404,6 +404,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id"); $studiengang_kz = filter_input(INPUT_POST, "studiengang_kz"); $ects = filter_input(INPUT_POST, "ects"); + $force = filter_input(INPUT_POST, "force", FILTER_VALIDATE_BOOLEAN); //Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben) $maxAnzahlVersuche = 0; @@ -557,11 +558,28 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $ects_verwendet += $lehrveranstaltung->ects; $datum = new datum(); - if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) + + $kollision = ($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis)); + if ($kollision) { - $data['result'][$temp->pruefungstermin_id] = "true"; - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + $is_berechtigt = $rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'); + + if ($is_berechtigt) + { + if (!$force) + { + $data['result'][$temp->pruefungstermin_id] = "true"; + $data['error'] = 'true'; + $data['confirm'] = 'true'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldungForce'); + } + } + else + { + $data['result'][$temp->pruefungstermin_id] = "true"; + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + } } } diff --git a/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php b/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php index 64f7c5cdb..ddf4c8621 100644 --- a/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php +++ b/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php @@ -202,9 +202,9 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_ } $method = $_GET["method"]; } -else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete") +else if(isset($_POST["delete"])) { - $pruefungsfenster_id = $_GET["id"]; + $pruefungsfenster_id = $_POST["delete"]; $pruefungsfenster = new pruefungsfenster(); $pruefungsfenster->load($pruefungsfenster_id); @@ -226,7 +226,7 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_ { echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen'); } - $method = $_GET["method"]; + $method = 'delete'; } else { @@ -394,39 +394,41 @@ else if(!empty($prfFenster->result)){ ?> -
| t('global/studiensemester'); ?> | -t('global/organisationseinheit'); ?> | -t('pruefung/start'); ?> | -t('pruefung/ende'); ?> | -t('global/bearbeiten'); ?> | -t('global/loeschen'); ?> | -
|---|