Stundenverlaufsplan: Viewer und Alternativpfad-Katalog (Kapitel 4.2 Nachtrag)
Schreibgeschützter LessonViewerDialog (größere Schrift, ohne Bearbeitungs-/Verlängern-/ Verschieben-Funktion) für den Einsatz während des Unterrichtens, erreichbar über "Anzeigen" im Stunden-Toolbar. Alternative Unterrichtsabläufe (z.B. Kurzversion bei Zeitmangel) laufen jetzt über einen echten Katalog (neues Modell AlternativeLessonPath: Name + Beschreibung) statt Freitext direkt an der Phase: im Verlaufsplan-Editor eine kompakte, farbig unterstützte Checkbox statt einer durchgehend sichtbaren Eingabespalte, Zuordnung/Neuanlage über einen eigenen Dialog. Der Viewer gruppiert Phasen entsprechend und zeigt die hinterlegte Beschreibung. Schema-Migration v3→v4 führt bestehende Freitextwerte verlustfrei in Katalogeinträge über. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -314,13 +314,57 @@ brauchen:
|
||||
müsste.
|
||||
- "Fertig"/"Überziehen" je Phase anklickbar, nachfolgende Phasenzeiten passen sich automatisch an;
|
||||
Visualisierung, wie weit man dem Plan hinterherhängt.
|
||||
- Hinterlegte alternative Stundenenden, in die man bei Zeitnot direkt hineinspringen kann.
|
||||
- Live-Sprung zwischen Wegen während des Haltens der Stunde (per Klick direkt in den alternativen
|
||||
Ablauf springen) — die Planungs-/Anzeigeseite (Kennzeichnen, gruppierte Darstellung) ist bereits
|
||||
umgesetzt, siehe Nachtrag unten; nur die Live-Interaktion beim Halten fehlt noch.
|
||||
- "Phase in nächste Stunde schieben"-Aktion, mit Hinweis-Symbol an der Folgestunde, dass dort noch
|
||||
offene Phasen/Arbeitsaufträge der Vorstunde einzuplanen sind.
|
||||
- Phasen-"Parkplatz": beim Planen Phasen ablegen können, ohne sie sofort einer Stunde zuzuordnen,
|
||||
und später flexibel in eine beliebige Stunde einfügen — Werkzeug, um Einheiten während des
|
||||
Schuljahres an die Realität anzupassen, wenn der Unterricht nicht wie geplant läuft.
|
||||
|
||||
**Nachtrag — schreibgeschützte Verlaufsplan-Ansicht:** Um den Verlaufsplan-Editor überhaupt im
|
||||
Unterricht benutzen zu können, ohne versehentlich etwas zu verändern, gibt es jetzt
|
||||
`LessonViewerDialog` (erreichbar über "Anzeigen" im Stunden-Toolbar, sichtbar bei ausgewählter
|
||||
Stunde) — reine, größer geschriebene Anzeige des Verlaufsplans inkl. abgeleiteter Uhrzeit je
|
||||
Phase, ohne jede Bearbeitungs- oder Verlängern-/Verschieben-Funktion. Das ist bewusst nur ein
|
||||
Ausschnitt aus der "Fortschrittslinie"-Idee oben (rein statische Anzeige, keine Live-Aktualisierung
|
||||
nach Uhrzeit, kein "fertig"/"überziehen") — der volle Live-Modus bleibt Ideensammlung.
|
||||
|
||||
**Nachtrag — Alternative Unterrichtsabläufe, zweite Iteration (echter Katalog statt Freitext):**
|
||||
Die erste Umsetzung (`LessonPhaseStep.AlternativePath: string?`, freier Bezeichner, Zuweisung über
|
||||
eine durchgehend sichtbare `AutoCompleteBox`-Spalte) wirkte im Alltag zu prominent für einen Fall,
|
||||
der selten vorkommt. Nutzer-Feedback: eine unauffällige Checkbox reicht für den Normalfall, die
|
||||
eigentliche Zuordnung gehört in einen separaten Dialog, und ein alternativer Ablauf sollte eine
|
||||
Erklärung tragen können (wann/wofür er gedacht ist, z.B. "bei Zeitmangel").
|
||||
|
||||
Redesign:
|
||||
- Neues Modell [`AlternativeLessonPath`](LehrerApp.Core/Models/Planning.cs) (Name + optionale
|
||||
`Description`) als eigener, wiederverwendbarer Katalog — `LessonPhaseStep.AlternativePathId:
|
||||
Guid?` referenziert einen Eintrag statt Freitext direkt zu speichern (`null` = Hauptweg).
|
||||
`IAlternativeLessonPathRepository`/`AlternativeLessonPathRepository`, eindeutig auf `Name`,
|
||||
kein eigenes Verwaltungs-UI in den Einstellungen — Einträge entstehen inline beim Zuweisen.
|
||||
- **Editor**: Die "Pfad"-Spalte ist jetzt eine einzelne `CheckBox` (`PhaseStepEditItem.
|
||||
HasAlternativePath`), deren `Content` bei Zuordnung den Namen des Ablaufs zeigt, `Foreground`
|
||||
deterministisch aus dem Namen eingefärbt (kleines, farbig unterstütztes Label statt breiter
|
||||
Eingabespalte). Ankreuzen öffnet `AlternativePathDialog` (Combobox über vorhandene Abläufe +
|
||||
Formular zum Anlegen eines neuen inkl. Beschreibung); Abwählen entfernt die Zuordnung direkt
|
||||
ohne Dialog. `LessonDialogViewModel.OnPickAlternativePath` (vom Code-Behind von `LessonDialog`
|
||||
selbst verdrahtet, nicht vom übergeordneten `PlanningTabView` — der Dialog braucht das
|
||||
`LessonDialog`-Fenster als Owner) kapselt diesen Ablauf.
|
||||
- **Viewer**: `LessonViewerViewModel` löst `AlternativePathId` über den Katalog auf und zeigt die
|
||||
hinterlegte Beschreibung unter der Gruppenüberschrift.
|
||||
- **Migration v3→v4** (`MigrateLessonAlternativePaths`): alte `AlternativePath`-Freitextwerte
|
||||
werden pro distinktem Namen zu einem `AlternativeLessonPath`-Katalogeintrag zusammengeführt
|
||||
(gleicher Name über mehrere Stunden hinweg → derselbe Eintrag, wiederverwendet) und referenziert.
|
||||
- Weiterhin bewusst **kein** Bedingungsfeld ("wenn an Stelle X nur noch weniger als Y Minuten") —
|
||||
das setzt Live-Zeiterfassung während des Unterrichtens voraus (siehe Live-Unterrichtsmodus oben)
|
||||
und war ausdrücklich als Idee, nicht als Anforderung formuliert. `AlternativeLessonPath.
|
||||
Description` deckt die Erklärung als Freitext ab; eine echte Bedingung bliebe für später.
|
||||
- Bewusst weiterhin **kein** Fork-Punkt-Modell: jede Gruppe berechnet ihre abgeleitete Uhrzeit im
|
||||
Viewer unabhängig ab `Lesson.StartTime`, nicht ab einer gemeinsamen Verzweigungsstelle im
|
||||
Hauptweg — deutlich einfacher und für den schnellen Überblick ausreichend.
|
||||
|
||||
### 4.3 Stundenplan
|
||||
- [ ] **4.3.1** Neues Modell `TimetableSlot` (Gruppe, Wochentag, Stunde, Raum) + Repository.
|
||||
- [ ] **4.3.2** Wochenstundenplan-Ansicht als Raster mit Farbcodierung je Gruppe.
|
||||
|
||||
Reference in New Issue
Block a user