aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedrich Beckmann <friedrich.beckmann@gmx.de>2026-02-01 22:25:58 +0100
committerFriedrich Beckmann <friedrich.beckmann@gmx.de>2026-02-01 22:25:58 +0100
commit51cfa87ea5f1ac6f830c456b04809f9d2bf5b4ab (patch)
tree2796203ee3aba44b11ef14b7951fb370b2ae9d29
parent046f73a745b56d9feebd487823e3867c156fce58 (diff)
add Prüfungsamt as teilprüfung and delete option
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.
-rw-r--r--admin-show.php12
-rw-r--r--admin-update.php54
-rw-r--r--setup.php7
3 files changed, 50 insertions, 23 deletions
diff --git a/admin-show.php b/admin-show.php
index 21be02b..cb732c8 100644
--- a/admin-show.php
+++ b/admin-show.php
@@ -68,6 +68,7 @@ echo "<th>Nachname <input type=\"submit\" name=\"snup\" value=\"&#8593\"> <inpu
echo "<th>Vorname</th>";
echo "<th>Labor</th>";
echo "<th>Klausur</th>";
+echo "<th>Prüfungsamt</th>";
echo "</tr>";
echo "<tr>";
echo "<td>";
@@ -132,14 +133,21 @@ foreach ($groups as $semester => $pruefungen) {
} else {
$labornote = "";
}
+ if (!empty($student["noten"][$pruefung]["amt"])) {
+ //$amt = $student["noten"][$pruefung]["amt"];
+ $amt = "checked";
+ } else {
+ $amt = "";
+ }
$displayrow = array (
"semester" => $semester,
"fach" => $pruefung,
"gruppe" => $groupname,
"nachname" => "<a href=\"show-user.php?matrikelnummer=$matrikelnummer\">$nachname</a>",
"vorname" => $vorname,
- "labornote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][labor][$semester]\" value=\"$labornote\" size=2 maxlength=2>",
- "klausurnote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][klausur][$semester]\" value=\"$klausurnote\" size=3 maxlength=3>"
+ "labornote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][$semester][labor]\" value=\"$labornote\" size=2 maxlength=2>",
+ "klausurnote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][$semester][klausur]\" value=\"$klausurnote\" size=3 maxlength=3>",
+ "amt" => "<input type=\"checkbox\" name=\"note[$matrikelnummer][$pruefung][$semester][amt]\" value=\"1\" $amt=>"
);
$displaytable[] = $displayrow;
}
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 "<p>ERROR: Fach $fach bei $matrikelnummer existiert nicht</p>";
- } 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 "<p>ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung </p>";
- }
- }
+ foreach ($pruefungen as $fach => $semesterliste) {
+ $notenupdate[$fach] = [];
+ if (!array_key_exists($fach,$students[$matrikelnummer]["noten"])) {
+ var_dump($students[$matrikelnummer]);
+ echo "<p>ERROR: Fach $fach bei $matrikelnummer existiert nicht</p>";
+ 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 "<p>ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung </p>";
+ }
}
}
}
-
+ foreach ($notenupdate[$fach] as $teilpruefung => $neuenote) {
+ $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $neuenote;
+ db_student_update_note($matrikelnummer,$fach,$teilpruefung,$neuenote);
+ }
}
}
diff --git a/setup.php b/setup.php
index 640ee56..0cd3cd3 100644
--- a/setup.php
+++ b/setup.php
@@ -35,11 +35,18 @@ $pfp = array (
"name" => "Digitaltechnik",
"pnr" => ["3976090"],
"studiengang" => ["TI"]
+ ),
+ "amt" => array (
+ "name" => "Prüfungsamt",
+ "pnr" => [],
+ "studiengang" => []
)
);
$notenlabor = ["BE", "NB", "AB", "NM", "NA"];
$notenklausur = ["100","130","170","200","230","270","300","330","370","400","500"];
+$notenamt = ["1"]; //amt is either 1 or not set, i.e ""
+$notendelete = ["00", "000"]; //Unset value in database "00" for labor, "000" for klausur
$students = array (
"12345" => array (