Neuer Tab in der Gruppendetailansicht (LearningGroup.IsClassTeacher-Flag), zeigt
Klassenbucheinträge anderer Lehrkräfte sowie Fehlzeiten der ganzen Klasse über alle
Fächer, pro Schüler*in und Tag zusammengefasst. Beides rein lesend, kein Übernehmen
in lokale Daten. Fehlzeiten-Bericht (AbsencePerStudent) adressiert die Klasse über
"KL"+getKlassen-ID, automatisch aufgelöst - noch nicht mit echtem WebUntis-Zugang
gegengeprüft (siehe TODO.md).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Neue-Stunde-Dialog: Datum wird beim Anlegen anhand des Stundenplans
und der letzten Stunde der Einheit vorbelegt statt auf "heute"
(behebt eine falsch erkannte Doppelstunde, wenn "heute" nicht auf
den passenden Wochentag fiel).
- Zeiterfassung: Button "Unterrichtszeit heute übernehmen" schlägt
Start/Ende aus dem heutigen Stundenplan inkl. Puffer davor/danach vor.
- Dashboard: neue Kachel "Ungeplante Stunden" erinnert an Stunden ohne
Thema für heute/morgen, mit Opt-out je Gruppe ("Benötigt
Unterrichtsplanung"), Doppelstunden-Erkennung (keine doppelte Meldung
für die zweite Periode) und Berücksichtigung von Stundenausfall.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CLAUDE.md mit Projektkonventionen für künftige Claude-Code-Sitzungen.
Wiederkehrende UI-Muster konsolidiert: neue PageHeader-Control für
Titel/Untertitel in den Listen- und Detailansichten, globale Styles für
Dialog-Titel und Leerlisten-Hinweise statt inline wiederholter Werte.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Zentrale Exception-Behandlung (Dispatcher.UIThread.UnhandledException,
AppDomain, TaskScheduler) verhindert Abstürze und protokolliert Fehler
über AppLogger in eine rotierende Log-Datei im App-Datenverzeichnis.
Toast-Benachrichtigungen zeigen Erfolg/Fehler global an. Alle Dialoge
mit Formularfeldern zeigen Validierungsmeldungen jetzt direkt am
betroffenen Feld statt in einem Sammel-Label.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Für Fächer mit Binnendifferenzierung (z.B. Mathematik E/G-Niveau,
Förderniveau) innerhalb derselben Lerngruppe:
- LearningGroup.IsDifferentiated: neue Checkbox in den Stammdaten,
aktiviert die Niveau-Funktionen optional für Klassen und Kurse.
- Enrollment.Niveau: Niveau-Zuordnung je Schüler innerhalb der Gruppe,
editierbar über eine neue Spalte im Schüler-Tab (nur sichtbar bei
differenzierter Gruppe).
- Exam.Niveau: Klausuren können optional einem Niveau zugeordnet
werden. Workflow nutzt die bestehende Duplizieren-Funktion (1.1.4):
G-Klausur anlegen, für die E-Variante duplizieren und eigene
Aufgaben/Punkte vergeben — Niveau wird beim Duplizieren bewusst
zurückgesetzt, damit nicht versehentlich zwei gleiche entstehen.
- Punkteeingabe und Auswertung filtern automatisch auf die Schüler
mit passendem Niveau; Klausuren ohne Niveau-Zuordnung verhalten
sich unverändert (gesamte Gruppe). Beide Dialoge zeigen das Niveau
als Badge im Titel, die Klausurenliste als eigene Spalte.
- Individuelle Förderklausuren (nur für einen Schüler) laufen
pragmatisch über die bestehende Abwesend-Markierung der übrigen
Schüler statt über eine eigene Pro-Schüler-Zuordnung.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- MainWindow: App-Titel durch ein kompaktes Logo-Badge ersetzt; im
minimierten Zustand der Sidebar werden Nav-Icons automatisch größer
und zentriert, Beschriftungen sowie Abschnittsüberschriften blenden
aus (Classes-Binding auf DrawerPage.IsOpen).
- LearningGroup.IsOwnClass: neues Feld, per Checkbox im Gruppen-Dialog
editierbar ("Gehört zu meiner Klasse"), mehrere Gruppen markierbar.
- Dashboard: kleiner Monatskalender mit Monatsnavigation, dezenter
Einfärbung für Unterrichtstage, Klausur-Marker und Rahmen-Hervor-
hebung für Tage der eigenen Klasse, inkl. Tooltip und Legende.
Feste Kartenposition/-breite, damit weder Monatsnamenlänge noch die
wachsende Lerngruppen-Liste das Layout verschieben.
- TODO.md: geplante Kalender-Detailansicht (Tag auswählen → Termine
des Tages mit Sprung in die jeweilige Ansicht) unter 9.8 vermerkt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Fach kommt jetzt aus der Lerngruppe statt manuell pro Klausur
eingegeben zu werden: Fach-Feld im Anlegen-Dialog der Lerngruppe
ist nicht mehr auf Typ "Kurs" beschränkt, da eine Gruppe genau ein
Fach unterrichtet (bei zwei Fächern legt man zwei Gruppen an). Im
Klausur-Dialog ist das Fach dadurch nur noch read-only Kontext statt
eines redundanten Eingabefelds.
- Neues Feld Exam.ReturnedAt: wird beim Statuswechsel auf "Zurück-
gegeben" automatisch mit dem heutigen Datum belegt (und beim
Zurücknehmen des Status wieder geleert), ist im Klausur-Dialog aber
auch manuell nachträglich korrigierbar. Sichtbar als eigene Spalte
im Klausuren-Tab.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>