Baustein 8: Lernzielkontrollen mit Freigabe, Abgabe und Korrektur

- Ausbilder gibt frei; vorher sieht der Azubi die Fragen nicht
- Freigabe laesst sich zuruecknehmen, solange nicht abgegeben wurde
- Antworten werden beim Tippen je Frage zwischengespeichert
- Musterloesungen erst nach dem Absenden: sichtbareKontrolle() entfernt sie
  serverseitig, bevor die Daten in die Ausgabe gelangen
- Korrektur mit Punkten und Anmerkung je Frage, Summe und Note laufen mit
- Notenschluessel der IHK; solange eine Frage offen ist, bleibt das Ergebnis
  vorlaeufig und die Kontrolle gilt nicht als korrigiert
- Ergebnis bei beiden sichtbar, Schnitt ueber alle Kontrollen
- Abgegebene Kontrollen unter "Was auf dich wartet" und im Wochenfortschritt
- scripts/pruefungen/musterloesung-dichtheit.mjs prueft die Sperre gegen den
  echten Wortlaut aus der Inhaltsdatei im rohen Seitenquelltext

36 neue Tests, davon 21 fuer die Sichtbarkeit der Musterloesung.
Insgesamt 277.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-11 08:57:00 +02:00
co-authored by Claude Opus 5
parent 7c4a051347
commit d226a6bae8
42 changed files with 2132 additions and 9 deletions
+43
View File
@@ -309,3 +309,46 @@ Leerzeichen keine Wortgrenze. Genau dieser Fall war zuerst durchgerutscht.
Tätigkeitsverben und die Gegenüberstellungen sind Bedienhilfe der Anwendung,
kein Ausbildungsinhalt. Sie ändern sich nicht mit dem Lehrgang und gehören
deshalb nicht in dieselbe Ablage wie Handouts und Aufgaben.
## E32 · Die Musterlösung wird entfernt, nicht versteckt
Der Auftrag verlangt: Musterlösungen dürfen dem Azubi erst nach dem Absenden
angezeigt werden und **niemals vorher über die Schnittstelle abrufbar** sein.
Umgesetzt ist das in `src/lib/kontrollen/sicht.ts`. `sichtbareKontrolle()`
baut die Fassung, die den Browser erreichen darf; ist die Lösung nicht
freigegeben, steht dort `null`. Es gibt keine Stelle, an der die vollständige
Kontrolle an die Oberfläche gereicht und dort ausgeblendet wird.
Zwei Feinheiten:
- Die Funktion nimmt den **ganzen Betrachter** und den Bearbeitungsstand
entgegen, nicht ein vorberechnetes `darfSehen`. Ein Aufrufer kann also nicht
aus Versehen `true` übergeben.
- Die Zwischenspeicher-Aktion gibt nur einen Zeitstempel zurück. Sie reicht
bewusst keinen Datensatz durch, in dem die Lösung mitreisen könnte.
Geprüft wird das doppelt: 21 Tests über alle Betrachter und Zustände, und ein
Durchstich, der den Wortlaut aus der Inhaltsdatei im rohen Seitenquelltext
sucht.
## E33 · Notenschlüssel der IHK, und ein vorläufiges Ergebnis bleibt vorläufig
Gerechnet wird mit dem 100-Punkte-Schlüssel der IHK (ab 92 / 81 / 67 / 50 / 30
Prozent). Wer sich daran gewöhnt, erlebt in der Abschlussprüfung keine
Überraschung.
Solange eine Frage ohne Punkte ist, gilt die Kontrolle **nicht** als
korrigiert: `korrigiert_am` bleibt leer, das Ergebnis heißt „vorläufig", und
die Kontrolle bleibt in der Liste „Was auf dich wartet". Ein halb korrigierter
Fragebogen, der als fertig erscheint, wäre schlimmer als gar keine Anzeige.
## E34 · Antworten werden beim Tippen gespeichert, je Frage einzeln
Eine Lernzielkontrolle dauert 45 Minuten. Ein Browserabsturz oder ein
versehentlich geschlossener Reiter darf nicht 45 Minuten kosten.
Gespeichert wird je Frage einzeln mit knapp einer Sekunde Verzögerung – nicht
das ganze Formular auf einmal. So bleibt jeder Schreibvorgang klein, und eine
lange Antwort auf Frage 1 wird nicht bei jedem Tastendruck in Frage 6 neu
geschrieben.