feat: Abwesenheits-Hinweise, Fehlquote bei Zeugnisnoten, Gruppen-Dokumentation
- Schnellbewerten-Dialog: abwesende Schüler werden gedimmt und mit ihrem Anwesenheitsstatus statt der Aspektbeschriftung angezeigt, damit keine Mitarbeitsnote für nicht anwesende Schüler vergeben wird. - Zeugnisnoten-Dialog: zeigt je Schüler die Fehlquote im gewählten Zeitraum, ab 50 % hervorgehoben (informativ, keine automatische Notenänderung). - Gruppen-Tab "Dokumentation" (bisher Platzhalter) implementiert: listet alle Dokumentationseinträge der Gruppen-Schüler, mit Schüler-Filter und optionalem "Nur dieser Unterricht"-Schalter. Einträge aus anderen Lerngruppen werden standardmäßig mitangezeigt, aber gedimmt. Der Dokumentationsdialog bekommt dafür einen optionalen Schüler-Picker. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -129,6 +129,15 @@ vollständig umgesetzt (siehe unten), ebenso der gleichnamige Tab im Schülerdet
|
||||
- [x] **2.4.2** Manuelles Übersteuern mit Pflicht-Begründung (pädagogischer Spielraum).
|
||||
- [x] **2.4.3** Zeugnisnoten-Ansicht mit Sperren/Festschreiben zum Konferenztermin.
|
||||
- [x] **2.4.4** Export der Zeugnisnotenliste (siehe 11.2).
|
||||
- [x] **2.4.5** Fehlquote je Schüler im Zeugnisnoten-Dialog anzeigen (Nutzer-Feedback: "ab 50 %
|
||||
darf eine 5 gegeben werden"). `ReportGradeDialogViewModel` berechnet je Schüler über
|
||||
`AttendanceBalanceService.Calculate` die Fehlquote aus den `ParticipationSession`s dieser
|
||||
Gruppe im gewählten Zeitraum (Halbjahr/Schuljahr) — bewusst nur diese Gruppe, anders als
|
||||
`StudentDetailViewModel.LoadAttendanceBalance`, das gruppenübergreifend über den ganzen
|
||||
Schüler rechnet. Anzeige als kleine Zeile unter dem Schülernamen
|
||||
(`ReportGradeRow.AbsenceRateDisplay`), ab `HighAbsenceThresholdPercent = 50` rot
|
||||
hervorgehoben (`AbsenceRateColorHex`) mit Tooltip-Hinweis auf die Regel — reine Information,
|
||||
kein automatisches Übersteuern der berechneten Note.
|
||||
|
||||
### 2.5 Notenentwicklung
|
||||
- [x] **2.5.1** Verlaufsdiagramm pro Schüler über das Schuljahr (im Schülerdetail).
|
||||
@@ -216,6 +225,14 @@ Siehe [ParticipationViewModels.cs](LehrerApp.Desktop/ViewModels/Groups/Participa
|
||||
Bewertungen), aber "Deaktivieren" ist der empfohlene Weg — ein echter Verwendungs-Check vor
|
||||
dem Löschen (durchsucht alle `ParticipationEntry.Ratings` nach dem Key) ist nicht umgesetzt,
|
||||
da `AspectRating` nicht nach Aspekt-Key indiziert ist.
|
||||
- [x] **3.1.5** Abwesende Schüler im Schnellbewerten-Dialog kenntlich machen (Nutzer-Feedback:
|
||||
"es macht ja keinen Sinn Schülern eine Mitarbeitsnote zu erteilen, die gar nicht da waren").
|
||||
`ParticipationStudentRow.IsAbsent` (gesetzte `Attendance`, aber nicht `Present`) treibt
|
||||
`QuickInputViewModel.CurrentStudentIsAbsent`/`CurrentStudentContentOpacity`: die
|
||||
Aspektliste wird gedimmt, der Schülername zeigt stattdessen den konkreten
|
||||
Anwesenheitsstatus ("⚠ Abwesend — Krank, unentschuldigt" o.ä.) in Orange. Bewusst kein
|
||||
Blockieren der Eingabe (manche Bewertungssysteme erwarten trotzdem einen expliziten
|
||||
Eintrag) — nur ein visueller Hinweis.
|
||||
|
||||
### 3.2 Aggregation zur Mitarbeitsnote
|
||||
- [x] **3.2.1** Gewichtung je Aspekt konfigurierbar (z.B. Qualität 50 %, Quantität 30 %, Experiment 20 %).
|
||||
@@ -1019,6 +1036,26 @@ dadurch faktisch schon (Quick-Input-Dialog bzw. "Offene Entschuldigungen" im Das
|
||||
im UI (nur im Tooltip) — wirkte dadurch wie zufällige/abwechselnde Farbgebung statt wie das
|
||||
eigentliche Signal "Auffälligkeit". Jetzt als kleine Legende über dem Diagramm sichtbar,
|
||||
siehe [StudentDetailView.axaml](LehrerApp.Desktop/Views/Students/StudentDetailView.axaml).
|
||||
- [x] **5.1.7** Dokumentation je Lerngruppe (Nutzer-Feedback: der "Dokumentation"-Tab der
|
||||
Lerngruppe war seit seiner Anlage nur ein Platzhalter — "Wird implementiert."). Neuer
|
||||
[GroupDocumentationTabView](LehrerApp.Desktop/Views/Groups/GroupDocumentationTabView.axaml)/
|
||||
[GroupDocumentationTabViewModel](LehrerApp.Desktop/ViewModels/Groups/GroupDocumentationViewModels.cs)
|
||||
listet die Dokumentationseinträge aller (auch ehemaligen) Schüler der Gruppe an einem Ort,
|
||||
mit Schüler-Filter (Dropdown) und optionalem "Nur dieser Unterricht"-Schalter. Design-
|
||||
Entscheidung nach Rückfrage: Einträge aus **anderen** Lerngruppen desselben Schülers werden
|
||||
standardmäßig **mit angezeigt statt versteckt** — nur optisch gedimmt
|
||||
(`DocumentationItem.ContentOpacity`) und mit `"aus: <Gruppenname>"` beschriftet — damit
|
||||
Muster über mehrere Fächer/Kurse hinweg nicht verborgen bleiben; der Schalter blendet sie
|
||||
bei Bedarf ganz aus. Einträge ohne Gruppenbezug (`Documentation.GroupId == null`, z.B. vom
|
||||
Schüler-Tab aus angelegt) gelten als "eigen" und werden nie gedimmt.
|
||||
`DocumentationDialogViewModel` bekam dafür einen optionalen Schüler-Picker
|
||||
(`StudentOptions`/`SelectedStudent`, neuer `StudentOption`-Record): beim Anlegen aus dem
|
||||
Gruppen-Tab (ohne festen Schüler) ist die Auswahl Pflicht (`StudentError`), neue Einträge
|
||||
bekommen automatisch die `GroupId` der aktuellen Gruppe gesetzt; der bestehende Aufruf vom
|
||||
Schüler-Tab (fester `studentId`, keine Optionsliste) bleibt unverändert und zeigt die
|
||||
Auswahl gar nicht erst an. "Gespräch begleiten" (Elternanruf) und Anhänge funktionieren im
|
||||
Gruppen-Tab identisch zum Schüler-Tab, da beide dieselbe `DocumentationItem`/
|
||||
`DocumentationDialog`-Infrastruktur verwenden.
|
||||
|
||||
### 5.2 Fehlzeiten (als Auswertung des bestehenden Anwesenheits-Trackings, siehe oben)
|
||||
- [x] **5.2.1** Schnelle Abwesenheitserfassung je Stunde — bereits vorhanden über
|
||||
|
||||
Reference in New Issue
Block a user