Refactor code structure for improved readability and maintainability

This commit is contained in:
Torsten Schulz (local)
2026-05-29 10:55:59 +02:00
parent cdbe71eaec
commit 1ea9596006
9 changed files with 502 additions and 13 deletions

View File

@@ -325,14 +325,30 @@ Wenn du willst, trage ich die einzelnen Subtickets in unserem lokalen Issue-Trac
- [x] B3.2: Status-Filter + Archiv
- [ ] B4: Newsletter
- [ ] B4.1: Entwurf → Senden Flow mit Preview
- [ ] B4.2: Gruppenverwaltung (CRUD)
- [x] B4.1: Entwurf → Senden Flow mit Preview
- [x] B4.2: Gruppenverwaltung (CRUD)
- [ ] B5: Config / Seiten
- [ ] B5.1: Sichern/Zurücksetzen mit Undo
- [ ] B5.2: Satzung: PDF-Upload-Feld + native PDF-Viewer
- [ ] B5: Config / Seiten
- WebStatus: Die WebUI bietet bereits umfassende CMSUIs für `cms/startseite`, `cms/vereinsmeisterschaften`, `cms/sportbetrieb` und `cms/einstellungen` (Drag&Drop, CSVImport/Export, TabbedUIs, ImageUpload, nativelike Modals). `cms/startseite` speichert `homepage.sections` via `PUT /api/config`, `vereinsmeisterschaften` arbeitet mit CSVExport/Import, `sportbetrieb` kapselt Termine/Mannschaften/Spielpläne in Tabs, `einstellungen` ist ein umfangreicher ConfigEditor.
- AndroidStatus: In der AndroidApp sind diese Bereiche derzeit nur rudimentär bzw. als Platzhalter umgesetzt (Startseite, Vereinsmeisterschaften, Sportbetrieb, Einstellungen, PasswortResetDiagnose fehlen noch als vollwertige AdminTools).
- Konkrete AndroidToDos (B5.x):
- B5.1: `cms/startseite` (StartseitenLayout)
- Implementieren: Reorderable list + Visibility Toggle, Save → `PUT /api/config` (`homepage.sections`), Lade/SaveSnackbar, Undo/Historie.
- B5.2: `cms/vereinsmeisterschaften`
- Implementieren: CSVLoad/Parser, UI zur Anzeige gruppiert nach Jahr/Kategorie, Modal für ErgebnisCRUD, CSV Export via `/api/cms/save-csv`.
- B5.3: `cms/sportbetrieb`
- Implementieren: Tabbed UI (Termine / Mannschaften / Spielpläne), Wiederverwendung von bestehenden native Komponenten (`TermineScreen`, `MannschaftenScreen`, `SpielplanScreen`) und AdminModi (Add/Edit/Delete).
- B5.4: `cms/einstellungen`
- Implementieren: Tabbed Config Editor (Vereinsdaten, Training, Trainer, Mitgliedschaft), ImageUpload, PDFFeld für Satzung, Validierung + Save/Preview.
- B5.5: Roundtrip & Tests
- RoundtripTests: RichText ↔ Web (Quill/HTML), CSV parser/tests für Vereinsmeisterschaften, ViewModelUnitTests und ComposeUIsmoke tests für Save/Load flows.
- [ ] B6: Diagnostics / Passwort-Reset-Diagnose (Export/Detail)
- [ ] B6: Diagnostics / Passwort-Reset-Diagnose (Export/Detail)
- WebStatus: `cms/passwort-reset-diagnose` zeigt vollständige DiagnoseUI mit Suche, Maskierung, Filter (nur Auffälligkeiten) und listbaren ResetVersuchen; Backend: `/api/cms/password-reset-diagnostics` liefert `matchingUsers`, `attempts`, `retentionHours`.
- AndroidStatus: rudimentär/fehlend — AdminDiagnose ist nicht vollständig portiert.
- Konkrete AndroidToDos (B6.x):
- B6.1: Implementieren Suche + Filter UI, Rendering der `attempts` mit Zeitstempeln, StatusBadges und Details.
- B6.2: Logs exportieren / share (falls API Export unterstützt) und Datenschutz: EMail Maskierung beibehalten.
- [ ] C1: Offline-/Caching-Strategie (verschlüsselt für geschützte CMS-Daten)
- [ ] C2: Tests & CI