feat: Unterrichtsmodus - konsolidierte Ansicht für die laufende Stunde
Verlaufsplan und Sitzplan bisher über mehrere Tabs verteilt, obwohl im Unterricht selbst beides gleichzeitig gebraucht wird. Neuer Button "▶ Unterricht" in der "Heute"-Tagesliste des Stundenplans (nur bei vorhandener Lesson) öffnet ein maximiertes Fenster: links der schreibgeschützte Verlaufsplan als kompakte Kartenliste, rechts der volle, unverändert wiederverwendete SeatingPlanTabView (Drag&Drop, Schnellbewertung, Situations-Tags, PDF-Export). TeachingModeViewModel baut auf dem bestehenden LessonViewerViewModel auf, dadurch kommen "Zur Mitarbeit"/"Zu den Noten" ohne Duplizierung mit. Neue SeatingPlanTabViewModel.SelectOrCreateSessionForLesson verknüpft die Mitarbeitssitzung automatisch mit der konkreten Stunde - anders als die bestehende EnsureTodaySession darf das hier sofort beim Start passieren, da durch den expliziten Klick für genau diese Stunde eindeutig feststeht, worum es geht (keine Geistersitzungs-Gefahr wie beim bloßen Tab-Öffnen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1041,10 +1041,42 @@ folgenden Punkte gehören direkt in `LehrerApp.Desktop`:
|
||||
angewendeten KI-Änderung automatisch (`LessonDialogViewModel.MarkAppliedExternally`, lädt den
|
||||
frischen Stand statt der eigenen Felder), die aufrufende Liste aktualisiert sich wie nach
|
||||
einem normalen Speichern.
|
||||
- [x] **4.5.23** Unterrichtsmodus: eine konsolidierte Ansicht für die gerade laufende Stunde
|
||||
(Nutzer-Idee — im Unterricht selbst bisher zu viele Klicks zwischen Verlaufsplan-Viewer,
|
||||
Sitzplan-Tab und Mitarbeit-Tab einer Gruppe verteilt).
|
||||
|
||||
---
|
||||
**Umsetzung:** Neuer Button "▶ Unterricht" in der "Heute"-Tagesliste des Stundenplans
|
||||
(`TimetableView.axaml`, nur sichtbar wenn für den Slot bereits eine `Lesson` existiert —
|
||||
bewusst NICHT im Wochenraster, der Modus ist für das aktive Unterrichten HEUTE gedacht,
|
||||
nicht zum Durchblättern anderer Tage) öffnet ein neues, maximiertes Fenster
|
||||
`TeachingModeWindow`: links der schreibgeschützte Verlaufsplan (Phasen, Hausaufgabe,
|
||||
Reflexion — kompakte Kartenliste statt der breiten Tabellenansicht des bestehenden
|
||||
`LessonViewerDialog`, da der Platz hier schmaler ist), rechts der volle, unverändert
|
||||
wiederverwendete `SeatingPlanTabView` (Drag&Drop, Schnellbewertung per Sitzplatz-Klick,
|
||||
Situations-Tags, Sitzplan-PDF-Export — alles bereits vorhanden, keine Duplizierung). Die
|
||||
beiden bereits bestehenden Sprungziele aus dem Verlaufsplan-Viewer ("Zur Mitarbeit"/
|
||||
"Zu den Noten", 4.5.3) sind identisch mitgekommen, da `TeachingModeViewModel` das
|
||||
bestehende `LessonViewerViewModel` unverändert für die linke Spalte wiederverwendet statt
|
||||
die Phasenanzeige zu duplizieren.
|
||||
|
||||
## 5. Schülerdokumentation
|
||||
**Sitzung automatisch mit der Stunde verknüpft:** Neue Methode
|
||||
`SeatingPlanTabViewModel.SelectOrCreateSessionForLesson(Lesson)` — anders als die
|
||||
bestehende `EnsureTodaySession()` (anonyme "Sitzplan"-Sitzung, erst bei der ersten
|
||||
tatsächlichen Aktion, um das Geistersitzungs-Problem aus 14.12/7.1.5-Nachtrag zu vermeiden)
|
||||
darf hier sofort beim Start des Unterrichtsmodus eine mit `Lesson.Id` verknüpfte Sitzung
|
||||
angelegt werden: welche Stunde gemeint ist, steht durch den expliziten Klick auf
|
||||
"▶ Unterricht" für genau diese Stunde bereits unzweideutig fest, keine passive
|
||||
Tab-Öffnung wie beim ursprünglichen Bug. Existiert bereits eine verknüpfte Sitzung (z.B.
|
||||
über "Sitzung aus der Stunde erstellen", 3.3.1, aus der Planung heraus angelegt), wird
|
||||
diese wiederverwendet statt einer zweiten.
|
||||
|
||||
**Bewusst zurückgestellt:** kein Entry-Point aus dem Dashboard (dessen "Heute"-Karte
|
||||
navigiert bisher direkt zum Mitarbeit-Tab, ein anderer Anzeigetyp als
|
||||
`TodayLessonItem`) — der Stundenplan-Tab ist der naheliegendere, bereits etablierte Ort für
|
||||
"heutige Stunden mit Lesson-Bezug" (4.5.2 nutzt denselben Ort). Kein eigenes
|
||||
Vollbild-/Kiosk-Fenster (kein `WindowState.FullScreen`, kein Precedent dafür im Code) —
|
||||
stattdessen ein maximiertes, normal schließbares Fenster, um kein neues, ungetestetes
|
||||
UI-Verhalten einzuführen.
|
||||
|
||||
**Wichtige Abweichung von der ursprünglichen Planung (5.2):** Vor der Umsetzung zeigte sich,
|
||||
dass 5.2 wie ursprünglich beschrieben eine zweite, parallele Fehlzeiten-Erfassung neben dem
|
||||
|
||||
Reference in New Issue
Block a user