Implement MVVM + UDF: Add BewerbAnlegenViewModel, VeranstalterViewModel, and state management for Veranstalter and Bewerb workflows. Refactor existing Composables to use ViewModels and intents. Update Turnier UI for Bewerb creation with mandatory division logic, and add documentation for MVVM patterns and guidelines. Mark A-1 and A-2 as complete in the roadmap.
This commit is contained in:
@@ -7,20 +7,30 @@
|
||||
|
||||
## 🔴 Sprint A — Sofort (diese Woche)
|
||||
|
||||
- [ ] **A-1** | ViewModel-Architektur definieren und Referenz-Implementierung umsetzen
|
||||
- [ ] MVVM mit UDF (Unidirectional Data Flow) als verbindliches Muster festlegen
|
||||
- [ ] `Intent`- und `State`-Klassen-Struktur definieren (Vorlage für alle anderen ViewModels)
|
||||
- [ ] `VeranstalterViewModel` als vollständige Referenz-Implementierung umsetzen
|
||||
- [ ] `State`-Klasse definieren
|
||||
- [ ] `Intent`-Klasse (Sealed Class) definieren
|
||||
- [ ] Business-Logik aus Composables herausziehen (keine `StoreV2`-Aufrufe mehr direkt in `onSaved`)
|
||||
- [ ] Lokalen `remember`-State durch ViewModel-State ersetzen
|
||||
- [ ] Ergebnis als Muster-Dokument in `docs/06_Frontend/` ablegen
|
||||
- [x] **A-1** | ViewModel-Architektur definieren und Referenz-Implementierung umsetzen
|
||||
- [x] MVVM mit UDF (Unidirectional Data Flow) als verbindliches Muster festlegen
|
||||
- [x] `Intent`- und `State`-Klassen-Struktur definieren (Vorlage für alle anderen ViewModels)
|
||||
- [x] `VeranstalterViewModel` als vollständige Referenz-Implementierung umsetzen
|
||||
- [x] `State`-Klasse definieren
|
||||
- [x] `Intent`-Klasse (Sealed Class) definieren
|
||||
- [x] Business-Logik aus Composables herausziehen (keine `StoreV2`-Aufrufe mehr direkt in `onSaved`)
|
||||
- [x] Lokalen `remember`-State durch ViewModel-State ersetzen
|
||||
- [x] Ergebnis als Muster-Dokument in `docs/06_Frontend/` ablegen
|
||||
|
||||
Referenzen:
|
||||
- docs/06_Frontend/MVVM_UDF_Pattern.md (Regeln, Vorlage, Referenz-Code)
|
||||
- frontend/features/veranstalter-feature/src/commonMain/.../VeranstalterViewModel.kt
|
||||
- frontend/features/veranstalter-feature/src/jvmMain/.../DefaultVeranstalterRepository.kt
|
||||
- frontend/features/veranstalter-feature/src/jvmMain/.../VeranstalterAuswahlScreen.kt (nutzt ViewModel/Intents)
|
||||
|
||||
- [ ] **A-2** | Abteilungs-Logik im Bewerb-Dialog berücksichtigen
|
||||
- [ ] Beim Anlegen eines Bewerbs: Abteilungs-Auswahl als Teil des Dialogs
|
||||
- [ ] CSN-C-NEU: Automatischer Vorschlag der Pflicht-Teilung (ohne/mit Lizenz; R1/R2+)
|
||||
- [ ] Abteilungs-Typ setzen: `SEPARATE_SIEGEREHRUNG` oder `ORGANISATORISCH`
|
||||
- [x] **A-2** | Abteilungs-Logik im Bewerb-Dialog berücksichtigen
|
||||
- [x] Beim Anlegen eines Bewerbs: Abteilungs-Auswahl als Teil des Dialogs
|
||||
- [x] CSN-C-NEU: Automatischer Vorschlag der Pflicht-Teilung (ohne/mit Lizenz; R1/R2+)
|
||||
- [x] Abteilungs-Typ setzen: `SEPARATE_SIEGEREHRUNG` oder `ORGANISATORISCH`
|
||||
|
||||
Referenzen:
|
||||
- frontend/features/turnier-feature/src/commonMain/.../BewerbAnlegenViewModel.kt (State, Intents, Auto-Vorschlag)
|
||||
- frontend/features/turnier-feature/src/jvmMain/.../TurnierBewerbeTab.kt (Button „Bewerb Einfügen“ öffnet Dialog)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user