Codepflege: CLAUDE.md und UI-Konsolidierung (Kapitel 13.4)
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>
This commit is contained in:
@@ -580,12 +580,33 @@ Fächer- und Kompetenzverwaltung existiert bereits in
|
||||
sinnvoll zu testen.
|
||||
|
||||
### 13.4 Codepflege
|
||||
- [ ] **13.4.1** `CLAUDE.md` mit Projektkonventionen anlegen (`/init`).
|
||||
- [x] **13.4.1** `CLAUDE.md` mit Projektkonventionen anlegen (`/init`) — [CLAUDE.md](CLAUDE.md).
|
||||
- [ ] **13.4.2** `AllRepositories.cs` und `IRepositories.cs` in Themendateien aufteilen,
|
||||
sobald weitere Repositories dazukommen.
|
||||
- [ ] **13.4.3** Wiederkehrende UI-Muster (Suchleiste, Kopfzeile, leere Liste) als
|
||||
wiederverwendbare Controls in `Views/Shared/`.
|
||||
- [ ] **13.4.4** Konverter und Styles zentralisieren (aktuell teils inline in den Views).
|
||||
sobald weitere Repositories dazukommen. Aktuell (319 bzw. 154 Zeilen für ~20 Repositories)
|
||||
noch nicht unübersichtlich genug, um die Bedingung auszulösen — bewusst zurückgestellt.
|
||||
- [x] **13.4.3** Wiederkehrende UI-Muster als wiederverwendbare Controls/Styles.
|
||||
Bestandsaufnahme vor der Umsetzung ergab drei echte Duplikate (Suchleiste dagegen nur 3×
|
||||
und jedes Mal eine simple `TextBox` ohne gemeinsames Chrome — Extraktion lohnt sich dort
|
||||
nicht):
|
||||
- Seiten-Kopfzeile (Titel 22px SemiBold + optionaler Untertitel) war identisch in
|
||||
`GroupListView`, `StudentListView`, `GroupDetailView`, `StudentDetailView`,
|
||||
`SettingsView` nachgebaut → neue
|
||||
[PageHeader](LehrerApp.Desktop/Views/Shared/PageHeader.axaml)-Control, dort eingesetzt.
|
||||
- Dialog-Titel (`FontSize="18" FontWeight="SemiBold"` als erstes Element) kam in 16
|
||||
Dialogen jeweils inline vor → globale Style-Klasse `TextBlock.dialogtitle`
|
||||
([App.axaml](LehrerApp.Desktop/App.axaml)).
|
||||
- Leerlisten-Hinweis ("Noch keine …") kam an 10 Stellen vor, dabei war Opacity/FontSize
|
||||
bereits leicht auseinandergedriftet (0.35 vs. 0.4, 12 vs. 13) → globale Style-Klasse
|
||||
`TextBlock.emptyhint`, normalisiert alle Stellen auf einen Wert.
|
||||
Absichtlich nicht angefasst: die vier Views mit eigenen lokalen `<Style Selector=>`-Blöcken
|
||||
(MainWindow, DashboardView, StudentDetailView, ExamEvaluationDialog) sind jeweils
|
||||
einzigartige Spezial-Visualisierungen (Kalenderzellen, Sparkline, Balkendiagramm,
|
||||
Toast/Drawer) ohne Duplikate untereinander.
|
||||
- [x] **13.4.4** Konverter und Styles zentralisieren. Bei der Bestandsaufnahme für 13.4.3 zeigte
|
||||
sich: es gibt keine einzige eigene `IValueConverter`-Implementierung im Projekt — überall
|
||||
werden bereits konsistent Avalonias eingebaute statische Konverter (`StringConverters`,
|
||||
`BoolConverters`, `ObjectConverters`) verwendet. Nichts zu zentralisieren; die
|
||||
Style-Duplikate wurden im Zuge von 13.4.3 behoben (siehe oben).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user