Arbeitszeit: Auswertung nach Kategorie/Gruppe + Pflichtstunden-Abgleich (Kapitel 6.3)

Dritter Tab "Auswertung": Zeitraum wahlweise Monat oder Schuljahr, Balken je Kategorie
und Gruppe. Neuer WorkloadSettingsService (gleiches JSON-Muster wie PeriodScheduleService)
für die Pflichtstundenzahl pro Woche, bewusst direkt im Auswertungs-Tab editierbar statt
in den Einstellungen, da das Feld nur dort gebraucht wird. Export (6.3.3) bleibt offen,
da er an das noch fehlende Kapitel 11 (Export-Infrastruktur) hängt.
This commit is contained in:
2026-08-15 23:26:06 +02:00
parent d8b05702bc
commit 52bb9c2c2f
10 changed files with 405 additions and 13 deletions
+21 -7
View File
@@ -778,9 +778,10 @@ dadurch faktisch schon (Quick-Input-Dialog bzw. "Offene Entschuldigungen" im Das
## 6. Arbeitszeit & Aufgaben
Modelle `WorkTask` und `TimeEntry` existieren, Repositories ebenfalls.
Navigationspunkt "Arbeitszeit" zeigt inzwischen Aufgabenverwaltung (6.1) und Zeiterfassung (6.2)
als zwei Tabs (`WorkloadViewModel`/`WorkloadView`, gleiches Container-Tab-Muster wie
`GroupDetailViewModel`); nur die Monats-/Jahresauswertung (6.3) ist noch offen.
Navigationspunkt "Arbeitszeit" zeigt Aufgabenverwaltung (6.1), Zeiterfassung (6.2) und Auswertung
(6.3) als drei Tabs (`WorkloadViewModel`/`WorkloadView`, gleiches Container-Tab-Muster wie
`GroupDetailViewModel`) nur der Export der Auswertung (6.3.3) ist noch offen, da er an das noch
nicht existierende Kapitel 11 (Export-Infrastruktur) hängt.
### 6.1 Aufgabenverwaltung
- [x] **6.1.1** Aufgabenliste mit Filter nach Status, Kategorie, Gruppe und Fälligkeit —
@@ -809,7 +810,7 @@ als zwei Tabs (`WorkloadViewModel`/`WorkloadView`, gleiches Container-Tab-Muster
`AddTimeEntryDialog`: entweder Dauer direkt eintragen oder Von/Bis angeben (daraus wird
die Dauer berechnet); mindestens eines von beidem ist Pflicht.
- [x] **6.2.3** Wochenübersicht der erfassten Zeit, Summen je Kategorie — Balken je Kategorie
(`CategoryWeekSummary`, `TimeEntry.Category` ist bewusst ein freier String statt
(`CategoryTimeSummary`, `TimeEntry.Category` ist bewusst ein freier String statt
`TaskCategory`-Enum wie bei `WorkTask`, da das Domänenmodell das schon so vorgab; die
ComboBox schlägt trotzdem dieselben Kategorienamen vor). Nur die aktuelle Kalenderwoche,
keine Wochennavigation wie im Stundenplan — bei Bedarf später ergänzbar.
@@ -819,9 +820,22 @@ als zwei Tabs (`WorkloadViewModel`/`WorkloadView`, gleiches Container-Tab-Muster
`ITimeEntryRepository`.
### 6.3 Auswertung
- [ ] **6.3.1** Monats-/Jahresauswertung nach Kategorie und Gruppe (Diagramm + Tabelle).
- [ ] **6.3.2** Abgleich mit der Pflichtstundenzahl (in Einstellungen hinterlegt).
- [ ] **6.3.3** Export der Arbeitszeitauswertung (siehe 11.2).
- [x] **6.3.1** Monats-/Jahresauswertung nach Kategorie und Gruppe (Diagramm + Tabelle)
dritter Tab "Auswertung" (`WorkloadEvaluationViewModel`). Zeitraum wahlweise Monat
(Jahr+Monat) oder Schuljahr (nutzt `SchoolYearService`, 1.8.31.7. wie überall sonst in der
App — bewusst kein Kalenderjahr, um konsistent zur restlichen Schuljahres-Logik zu bleiben);
"Diagramm" als Balken je Kategorie/Gruppe (`ProgressBar`, gleiches Muster wie die
Wochenübersicht in 6.2.3), keine eigene Chart-Bibliothek.
- [x] **6.3.2** Abgleich mit der Pflichtstundenzahl — neuer `WorkloadSettingsService`
(`workloadsettings.json`, gleiches Muster wie `PeriodScheduleService`/
`SchoolCalendarSettingsService`). Bewusst **nicht** in den Einstellungen (Kapitel 12)
hinterlegt, sondern direkt auf dem Auswertungs-Tab editierbar: das Feld wird ausschließlich
dort verwendet, ein Sprung in eine andere Seite für eine einzelne Zahl wäre reine
Indirektion (siehe auch das Nutzer-Feedback zum "Stundenplan bearbeiten"-Knopf oben). Die
Pflichtstunden pro Woche werden auf die Wochenzahl des gewählten Zeitraums hochgerechnet und
der erfassten Ist-Zeit gegenübergestellt.
- [ ] **6.3.3** Export der Arbeitszeitauswertung (siehe 11.2) — noch offen, da Kapitel 11
(Export-Infrastruktur) noch nicht existiert.
---