Punkteeingabe & Korrektur für Klausuren (1.4)
Neuer Dialog ExamGradingDialog, erreichbar über "Punkte eingeben" im Klausuren-Tab (Button + Kontextmenü bei ausgewählter Klausur): - Eingaberaster: Schüler-Zeilen × Aufgaben-Spalten, Summe und Note live über GradingService.CalculateGrade() berechnet. - Tab bewegt sich nativ zur nächsten Zelle; Enter/Pfeil-Hoch/Pfeil-Runter springen zur gleichen Spalte in der Nachbarzeile (auch über noch nicht realisierte, virtualisierte Zeilen hinweg via ScrollIntoView). Komma oder Punkt als Dezimaltrennzeichen werden beide akzeptiert. - Abwesend-Checkbox (Note zeigt dann "abwesend") und Kommentarfeld pro Schüler. - Punkte außerhalb 0..Maximalpunkte werden rot markiert und bewusst nicht gespeichert; der zuletzt gültige Stand bleibt erhalten. - Autosave nach jeder Zelle, kein Speichern-Button nötig. Dabei nebenbei behoben: die Schülerliste berücksichtigt jetzt Enrollment- Zeiträume (H1/H2/Custom) relativ zum Klausurdatum, analog zur bereits bestehenden Logik im Mitarbeit-Tab, statt pauschal alle im Schuljahr eingeschriebenen Schüler zu zeigen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,14 +60,19 @@ Modelle `Exam`, `ExamTask`, `GradingKeyEntry`, `ExamResult` existieren bereits i
|
||||
(`GradingService.ValidateGradingKey`).
|
||||
|
||||
### 1.4 Punkteeingabe & Korrektur
|
||||
- [ ] **1.4.1** Eingaberaster: Zeilen = Schüler, Spalten = Aufgaben, letzte Spalte Summe + Note.
|
||||
- [x] **1.4.1** Eingaberaster: Zeilen = Schüler, Spalten = Aufgaben, letzte Spalte Summe + Note.
|
||||
Note wird live über `GradingService.CalculateGrade()` berechnet.
|
||||
- [ ] **1.4.2** Tastaturnavigation analog zum Mitarbeit-Dialog: Tab/Enter = nächstes Feld,
|
||||
Pfeiltasten, direkte Zifferneingabe, halbe Punkte (0,5) erlaubt.
|
||||
- [ ] **1.4.3** Kennzeichnung "Abwesend" (`ExamResult.Absent`) — Schüler aus Statistik ausschließen.
|
||||
- [ ] **1.4.4** Kommentarfeld pro Schüler (`ExamResult.Comment`).
|
||||
- [ ] **1.4.5** Validierung: Punkte > Maximalpunkte der Aufgabe wird rot markiert und nicht gespeichert.
|
||||
- [ ] **1.4.6** Autosave nach jeder Zelle (kein expliziter Speichern-Button nötig).
|
||||
Umgesetzt als eigener Dialog `ExamGradingDialog`, erreichbar über "Punkte eingeben"
|
||||
im Klausuren-Tab (Button/Kontextmenü bei ausgewählter Klausur).
|
||||
- [x] **1.4.2** Tastaturnavigation: Tab bewegt sich nativ zur nächsten Zelle, Enter/Pfeil-Hoch/
|
||||
Pfeil-Runter springen zur gleichen Spalte in der Nachbarzeile, direkte Zifferneingabe
|
||||
und halbe Punkte (Komma oder Punkt) erlaubt.
|
||||
- [x] **1.4.3** Kennzeichnung "Abwesend" (`ExamResult.Absent`) per Checkbox — Note zeigt "abwesend"
|
||||
statt einer berechneten Note. Ausschluss aus Statistiken folgt mit 1.5 (noch nicht umgesetzt).
|
||||
- [x] **1.4.4** Kommentarfeld pro Schüler (`ExamResult.Comment`).
|
||||
- [x] **1.4.5** Validierung: Punkte < 0 oder > Maximalpunkte der Aufgabe wird rot markiert und nicht
|
||||
gespeichert (`PointsCell.TrySetValue`).
|
||||
- [x] **1.4.6** Autosave nach jeder Zelle (kein expliziter Speichern-Button nötig).
|
||||
|
||||
### 1.5 Klausurauswertung
|
||||
- [ ] **1.5.1** Notenspiegel (Häufigkeitsverteilung als Balken), Durchschnitt, Median,
|
||||
|
||||
Reference in New Issue
Block a user