Module abschaltbar machen

Merkkarten, Praxisaufgaben, Checklisten, Berichtsheft, Lernzielkontrollen
und Feedbackgespraech lassen sich unter Verwaltung -> Module fuer die ganze
Lern-Bar ab- und einschalten. Wochenplan, Handouts, Glossar, Auswertung und
Verwaltung bleiben immer an.

Gesperrt wird an drei Stellen, nicht im Layout (Next rendert Layouts beim
Seitenwechsel darunter nicht neu): Seiten mit erfordereModul, Routen fuer
PDF, Anhaenge und Lernstand mit modulAn, alle 37 Serveraktionen der Module
mit pruefeModul. Die Anmeldepruefung kommt jeweils zuerst, damit ein
Unangemeldeter nicht am 404 abliest, was abgeschaltet ist.

Ein abgeschaltetes Modul traegt nirgends bei: Wochenplan, Fortschritt,
Was-wartet, Mein Stand, Ergebnisverlauf, Rahmenplanabdeckung, Vorschlaege
fuers Berichtsheft, Karten im Handout, Kurzbefehle im Manifest. Die
Lernstand-Schnittstelle antwortet mit 410, das Geraet verwirft daraufhin
seine Offline-Warteschlange. Abschalten loescht nichts.

Gespeichert in modul_einstellung (Migration 0010); fehlt die Zeile, ist das
Modul an, eine bestehende Datenbank verhaelt sich also wie vorher.

12 Tests fuer die Regeln, Abschnitt A8 im Abnahmelauf, Anleitung Kapitel 9
mit Bildschirmfoto, README, E43.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-10-05 16:58:32 +02:00
co-authored by Claude Opus 5.5
parent 54ce7d87ae
commit 44e6c8bb79
52 changed files with 993 additions and 158 deletions
+16 -6
View File
@@ -1,6 +1,6 @@
# Abnahmeprotokoll
Erzeugt am 2026-10-04 16:24 Uhr
Erzeugt am 2026-10-05 14:48 Uhr
Erzeugt von `scripts/pruefungen/abnahme.mjs` gegen eine **frische, leere Datenbank**.
@@ -54,15 +54,25 @@ Erzeugt von `scripts/pruefungen/abnahme.mjs` gegen eine **frische, leere Datenba
- ✓ Der Azubi legt das Wochenblatt der laufenden Woche an
- ✓ Ein Wochenblatt lässt sich öffnen
- ✓ Das Wochenblatt kommt als PDF heraus — HTTP 200, 2649 Bytes
- ✓ Das Wochenblatt kommt als PDF heraus — HTTP 200, 2646 Bytes
## A8 · Sicherung zurückspielen
## A8 · Module abschalten
- ✓ Die Sicherung läuft durch — lernbar-20261004-182433.tar.gz
- ✓ Der Ausbilder schaltet das Berichtsheft ab
- ✓ Das Berichtsheft verschwindet aus der Navigation
- ✓ Die Seite ist für beide Rollen gesperrt, nicht nur ausgeblendet — Azubi HTTP 404, Ausbilder HTTP 404
- ✓ Auch das PDF ist gesperrt — HTTP 404
- ✓ Ohne Merkkarten zeigt das Handout keine Karten
- ✓ Ein Gerät mit gesammelten Bewertungen erfährt, dass es sie verwerfen soll — HTTP 410
- ✓ Nach dem Einschalten ist das Wochenblatt unverändert wieder da — HTTP 200
## A9 · Sicherung zurückspielen
- ✓ Die Sicherung läuft durch — lernbar-20261005-164818.tar.gz
- ✓ Zum Beweis wird der Datenbestand beschädigt — 2 → 1 Konten
- ✓ Die Rückspielung läuft durch — ohne Fehler
- ✓ Der gelöschte Azubi ist wieder da — Tim Vogt
- ✓ Auch der Lernverlauf kam mit zurück — 1 Einträge
- ✓ Der überschriebene Stand wurde zur Seite gelegt, nicht gelöscht — verdraengt-20261004-182436
- ✓ Der überschriebene Stand wurde zur Seite gelegt, nicht gelöscht — verdraengt-20261005-164821
**36 von 36 Prüfungen erfüllt.**
**43 von 43 Prüfungen erfüllt.**
+64 -24
View File
@@ -22,24 +22,25 @@ gemalt, sondern gemessen.
6. [Eine Lernzielkontrolle korrigieren](#6-eine-lernzielkontrolle-korrigieren)
7. [Die Rahmenplanabdeckung lesen](#7-die-rahmenplanabdeckung-lesen)
8. [Ein Feedbackgespräch führen](#8-ein-feedbackgespräch-führen)
9. [Module ein- und ausschalten](#9-module-ein--und-ausschalten)
**Für den Azubi**
9. [Die Woche](#9-die-woche)
10. [Handouts lesen und suchen](#10-handouts-lesen-und-suchen)
11. [Merkkarten lernen](#11-merkkarten-lernen)
12. [Eine Praxisaufgabe abgeben](#12-eine-praxisaufgabe-abgeben)
13. [Eine Checkliste abarbeiten](#13-eine-checkliste-abarbeiten)
14. [Das Berichtsheft führen](#14-das-berichtsheft-führen)
15. [Eine Lernzielkontrolle schreiben](#15-eine-lernzielkontrolle-schreiben)
10. [Die Woche](#10-die-woche)
11. [Handouts lesen und suchen](#11-handouts-lesen-und-suchen)
12. [Merkkarten lernen](#12-merkkarten-lernen)
13. [Eine Praxisaufgabe abgeben](#13-eine-praxisaufgabe-abgeben)
14. [Eine Checkliste abarbeiten](#14-eine-checkliste-abarbeiten)
15. [Das Berichtsheft führen](#15-das-berichtsheft-führen)
16. [Eine Lernzielkontrolle schreiben](#16-eine-lernzielkontrolle-schreiben)
**Überall**
16. [Auf dem Handy](#16-auf-dem-handy)
17. [Ohne Netz](#17-ohne-netz)
18. [Hell und dunkel](#18-hell-und-dunkel)
19. [Drucken](#19-drucken)
20. [Wenn etwas nicht geht](#20-wenn-etwas-nicht-geht)
17. [Auf dem Handy](#17-auf-dem-handy)
18. [Ohne Netz](#18-ohne-netz)
19. [Hell und dunkel](#19-hell-und-dunkel)
20. [Drucken](#20-drucken)
21. [Wenn etwas nicht geht](#21-wenn-etwas-nicht-geht)
---
@@ -218,11 +219,49 @@ Unterschriftenfeldern. Abweichungen sind auch dort markiert.
> anpassen. Ein bereits geführtes Gespräch behält seine Fassung, auch wenn du
> die Vorlage später änderst.
### 9. Module ein- und ausschalten
**Verwaltung → Module**
![Verwaltung, Bereich Module, das Berichtsheft ist abgeschaltet](bilder/25-module.png)
Nicht jeder Betrieb braucht alles. Führt ihr das Berichtsheft zum Beispiel im
Portal der Kammer, schaltest du es hier ab – für die ganze Lern-Bar, für alle
Azubis und Ausbilder zugleich.
| Modul | Abschaltbar |
|---|---|
| Merkkarten, Praxisaufgaben, Checklisten, Berichtsheft, Lernzielkontrollen, Feedbackgespräch | ja |
| Wochenplan, Handouts, Glossar, Auswertung, Verwaltung | nein – das Gerüst |
Was beim Abschalten passiert:
- **Das Modul verschwindet** aus der Navigation, aus dem Wochenplan, aus „Was
auf dich wartet" und aus der Auswertung. Zu jedem Modul steht auf der Seite,
was sich genau ändert.
- **Seiten und PDFs sind gesperrt**, nicht nur ausgeblendet. Wer sich die
Adresse gemerkt hat, bekommt „Diese Seite gibt es nicht".
- **Der Wochenfortschritt** zählt das Modul nicht mehr mit. Eine Woche ohne
Merkkarten erreicht also trotzdem 100 %.
- **Die Rahmenplanabdeckung** zählt abgeschaltete Aufgaben und Checklisten
nicht mehr. Bleiben nur Handouts, gilt eine Position mit zwei gelesenen
Handouts als vermittelt.
- **Nichts wird gelöscht.** Was im Modul schon geschrieben wurde – Berichtshefte,
Bewertungen, Abnahmen –, bleibt gespeichert und ist nach dem Einschalten
unverändert wieder da.
Unter jedem Modul steht, wer es wann zuletzt umgeschaltet hat.
> **Berichtsheft abschalten heißt nicht, kein Berichtsheft zu führen.** Der
> Ausbildungsnachweis ist Pflicht und Voraussetzung für die Zulassung zur
> Abschlussprüfung. Er wird dann eben woanders geführt. In den Wochenplänen
> steht freitags weiterhin „Berichtsheft schreiben" – das gilt auch dann.
---
## Für den Azubi
### 9. Die Woche
### 10. Die Woche
![Woche des Azubis](bilder/10-azubi-woche.png)
@@ -232,7 +271,7 @@ Frage lautet „Was mache ich jetzt?", nicht „Wie ist meine Gesamtlage?".
---
### 10. Handouts lesen und suchen
### 11. Handouts lesen und suchen
![Handouts](bilder/11-handouts-liste.png)
@@ -254,7 +293,7 @@ mit Querverweisen.
---
### 11. Merkkarten lernen
### 12. Merkkarten lernen
![Merkkarten](bilder/14-merkkarten.png)
@@ -273,7 +312,7 @@ nachzuholen.
---
### 12. Eine Praxisaufgabe abgeben
### 13. Eine Praxisaufgabe abgeben
![Aufgaben](bilder/16-aufgaben-liste.png)
@@ -287,7 +326,7 @@ Dann gibst du ab. Der Ausbilder nimmt ab oder gibt zurück, mit Bemerkung.
---
### 13. Eine Checkliste abarbeiten
### 14. Eine Checkliste abarbeiten
![Checklisten](bilder/18-checklisten.png)
@@ -304,7 +343,7 @@ begonnen hast. Am Ende gibt es ein PDF – ein Beispiel liegt unter
---
### 14. Das Berichtsheft führen
### 15. Das Berichtsheft führen
![Berichtsheft](bilder/21-berichtsheft.png)
@@ -323,7 +362,7 @@ Nach dem Abzeichnen ist das Blatt unveränderlich.
---
### 15. Eine Lernzielkontrolle schreiben
### 16. Eine Lernzielkontrolle schreiben
Der Ausbilder gibt die Kontrolle frei, du siehst sie unter *Kontrollen*. Du
schreibst deine Antworten und sendest ab.
@@ -336,7 +375,7 @@ Kontrolle, deren Lösung vorher abrufbar wäre, misst nichts.
## Überall
### 16. Auf dem Handy
### 17. Auf dem Handy
Die Anwendung ist für das Handy gebaut, nicht dafür angepasst. Der Azubi hat es
in der Tasche, nicht den Laptop.
@@ -355,7 +394,7 @@ Danach startet sie ohne Adresszeile und mit eigenem Symbol.
---
### 17. Ohne Netz
### 18. Ohne Netz
Im Serverraum, im Keller, im Zug gibt es kein Netz. Deshalb:
@@ -376,7 +415,7 @@ weggeräumt.
---
### 18. Hell und dunkel
### 19. Hell und dunkel
![Dunkle Fassung](bilder/20-dunkel.png)
@@ -386,7 +425,7 @@ hast – sonst käme schwarzes Papier aus dem Drucker.
---
### 19. Drucken
### 20. Drucken
Für die Dokumente, die eine Unterschrift tragen, gibt es **PDFs**:
Wochenblatt, Checklisten-Durchlauf, Feedbackgespräch.
@@ -397,11 +436,12 @@ mitten durchgeschnitten, aufklappbare Abschnitte drucken aufgeklappt.
---
### 20. Wenn etwas nicht geht
### 21. Wenn etwas nicht geht
| Beobachtung | Woran es liegt |
|---|---|
| „Zu viele Fehlversuche" bei der Anmeldung | Nach fünf falschen Passwörtern wird die Adresse für eine Minute gesperrt, bei weiteren Fehlversuchen länger, höchstens 15 Minuten. Abwarten – oder Passwort vom Ausbilder neu setzen lassen. Hat sich das einzige Ausbilderkonto ausgesperrt: `docker compose restart lernbar` setzt die Sperre zurück. |
| Ein Bereich fehlt in der Navigation, oder seine Seite meldet „Diese Seite gibt es nicht" | Das Modul ist abgeschaltet. Ein Ausbilder schaltet es unter **Verwaltung → Module** wieder ein; die Daten sind noch da. |
| „Diese Seite gibt es nicht" bei fremden Daten | Kein Fehler, sondern die Rechteprüfung. Ob es zu einer Kennung überhaupt Daten gibt, geht Unbefugte nichts an – deshalb 404 und nicht „kein Zugriff". |
| Die Anwendung startet nicht, nennt aber Datei und Zeile | Ein Inhaltsfehler unter `content/`. Die Meldung sagt genau, wo. `npm run inhalte:pruefen` prüft ohne Start. |
| Ein Anhang lässt sich nicht hochladen | Über 25 MB. Bei einem Reverse Proxy zusätzlich `client_max_body_size 30m` setzen (siehe README). |
Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB