From 51cfa87ea5f1ac6f830c456b04809f9d2bf5b4ab Mon Sep 17 00:00:00 2001 From: Friedrich Beckmann Date: Sun, 1 Feb 2026 22:25:58 +0100 Subject: =?UTF-8?q?add=20Pr=C3=BCfungsamt=20as=20teilpr=C3=BCfung=20and=20?= =?UTF-8?q?delete=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I added Prüfungsamt as checkbox item to indicate if the result is reported to Prüfungsamt. The delete option allows to remove an entry from the database. --- admin-update.php | 54 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 21 deletions(-) (limited to 'admin-update.php') diff --git a/admin-update.php b/admin-update.php index f0d3896..c952618 100644 --- a/admin-update.php +++ b/admin-update.php @@ -9,30 +9,42 @@ if (empty($_POST["note"])) { $notenneu = $_POST["note"]; foreach ($notenneu as $matrikelnummer => $pruefungen) { - foreach ($pruefungen as $fach => $teilpruefungen) { - foreach ($teilpruefungen as $teilpruefung => $semesterliste) { - foreach ($semesterliste as $semestername => $note) { - if (!array_key_exists($fach,$students[$matrikelnummer]["noten"])) { - var_dump($students[$matrikelnummer]); - echo "

ERROR: Fach $fach bei $matrikelnummer existiert nicht

"; - } else { - if (!empty($note) and ( - empty($students[$matrikelnummer]["noten"][$fach][$teilpruefung]) or - $students[$matrikelnummer]["noten"][$fach][$teilpruefung] !== $note)) { - if (($teilpruefung === "klausur" and in_array($note,$notenklausur) or - $teilpruefung === "labor" and in_array($note,$notenlabor))) { - $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $note; - db_student_update_note($matrikelnummer,$fach,$teilpruefung,$note); - break; - } else { - var_dump($students[$matrikelnummer]); - echo "

ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung

"; - } - } + foreach ($pruefungen as $fach => $semesterliste) { + $notenupdate[$fach] = []; + if (!array_key_exists($fach,$students[$matrikelnummer]["noten"])) { + var_dump($students[$matrikelnummer]); + echo "

ERROR: Fach $fach bei $matrikelnummer existiert nicht

"; + break; + } + foreach ($semesterliste as $semestername => $teilpruefungen) { + // "amt" is a checkbox input where the name exists only when checked + // So the $teilpruefung loop will only iterate if it is checked. + if (!empty($students[$matrikelnummer]["noten"][$fach]["amt"]) + and empty($teilpruefungen["amt"])) { + $notenupdate[$fach]["amt"]=""; + } + foreach ($teilpruefungen as $teilpruefung => $note) { + if (!empty($note) + and (in_array($note,$notendelete) + or empty($students[$matrikelnummer]["noten"][$fach][$teilpruefung]) + or $students[$matrikelnummer]["noten"][$fach][$teilpruefung] !== $note)) { + if ($teilpruefung === "klausur" and in_array($note,$notenklausur) + or $teilpruefung === "labor" and in_array($note,$notenlabor) + or $teilpruefung === "amt" and in_array($note,$notenamt) + or in_array($note,$notendelete)) { + $note = in_array($note,$notendelete) ? "" : $note; + $notenupdate[$fach][$teilpruefung]=$note; + } else { + var_dump($students[$matrikelnummer]); + echo "

ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung

"; + } } } } - + foreach ($notenupdate[$fach] as $teilpruefung => $neuenote) { + $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $neuenote; + db_student_update_note($matrikelnummer,$fach,$teilpruefung,$neuenote); + } } } -- cgit v1.2.3