### feat: verbessere Wizard-Validierung und UI-Feedback

- Integriere Fortschrittsanzeige während der Veranstalter-Suche (`isCheckingStats`).
- Zeige Fehlermeldungen bei Suchfehlern im `EventWizardScreen`.
- Füge `hasSelectedVeranstalter`-Guard und zugehörige Tests hinzu.
- Präzisiere `DemoEventFlow` mit expliziter Guard-Logik.
- Aktualisiere Unit-Tests zur Abdeckung neuer Guard-Szenarien.
This commit is contained in:
2026-04-21 21:26:02 +02:00
parent 3f4ba9eea9
commit 9195cdb14d
6 changed files with 138 additions and 32 deletions
@@ -16,7 +16,9 @@ In dieser Session wurde die Brücke zwischen der Wizard-Runtime und dem ZNS-Impo
- `EventWizardScreen`: Der eingebettete `StammdatenImportScreen` nutzt nun `reEvaluateCurrentStep()`, um einen nahtlosen Übergang nach dem Import zu ermöglichen.
- **Stabilität:**
- Erfolgreiche Kompilierung des Desktop-Shell-Moduls (`:frontend:shells:meldestelle-desktop`).
- Wizard-Unit-Tests bleiben grün (9/9).
- Wizard-Unit-Tests (JVM/Common) sind vollständig grün (10/10).
- **Fehlerbehebung (QA):**
- Korrektur von `WizardRuntimeJvmTest.selection_goes_to_ansprechperson_when_guard_true_by_default`, der aufgrund unvollständiger Testdaten (fehlendes `ORG-` Präfix) fehlschlug.
## Verifikation
- **Gradle:** `./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm` läuft fehlerfrei durch.
@@ -28,3 +30,16 @@ In dieser Session wurde die Brücke zwischen der Wizard-Runtime und dem ZNS-Impo
3. Optimierung der ZNS-Importer-Performance für große Datensätze.
🏗️ [Lead Architect] | 👷 [Backend Developer] | 🎨 [Frontend Expert] | 🧹 [Curator]
## Repository-Strategie & Veranstalter-Validierung
Um die Veranstalter-Wahl im Wizard robust zu gestalten, nutzen wir eine zweistufige Repository-Strategie:
1. **`VereinRepository` (Lokal):** Primäre Quelle für bereits bekannte oder manuell angelegte Vereine. Wenn ein Verein hier gefunden wird, gilt er als "validiert" für den Wizard.
2. **`MasterdataRepository` / `ZnsImportProvider` (Global/Remote):** Fallback-Quelle. Falls die OEPS-Nummer lokal unbekannt ist, wird in den (offline verfügbaren) ZNS-Stammdaten gesucht. Ein Fund hier führt zur Übernahme der Daten in den lokalen Kontext.
### Wizard-Guards
- **`hasZns`:** Stellt sicher, dass überhaupt Stammdaten vorhanden sind (Initial-Check).
- **`hasSelectedVeranstalter`:** Verhindert das Voranschreiten im Wizard, solange kein gültiger Veranstalter (lokale ID) ausgewählt wurde.
- **`needsContactPerson`:** Dynamische Weiche; erzwingt die manuelle Eingabe einer Ansprechperson, wenn der Veranstalter-Datensatz unvollständig ist (z.B. neue ZNS-Importe ohne hinterlegte Kontaktperson).
Diese Strategie sichert die Datenqualität beim Erstellen neuer Veranstaltungen, während sie dem User maximale Flexibilität (Import vs. Neuanlage) bietet.