chore: füge Navigation zum Veranstalter-Wizard hinzu, erweitere Mock-Daten und verbessere Veranstaltungs-Flow
Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
parent
1a295c18c8
commit
9b4af2bb56
|
|
@ -1,8 +1,8 @@
|
|||
# Journal: 21. April 2026 - Abschluss der Morgen-Session (Curator)
|
||||
|
||||
## 🏁 Session-Abschluss (10:45)
|
||||
## 🏁 Session-Abschluss (11:15)
|
||||
|
||||
In dieser Session haben wir die Brücke zwischen der ZNS-Datenquelle und der strukturierten Anlage von Veranstaltungen und Turnieren geschlagen. Der Fokus lag auf Datenintegrität und der Einhaltung von ADR-0024 (Plug-and-Play).
|
||||
In dieser Session haben wir die Brücke zwischen der ZNS-Datenquelle und der strukturierten Anlage von Veranstaltungen und Turnieren geschlagen. Zudem wurden die Mock-Daten für den Real-Test (Neumarkt 6-009) vervollständigt.
|
||||
|
||||
### ✅ Erreichte Meilensteine
|
||||
|
||||
|
|
@ -11,7 +11,16 @@ In dieser Session haben wir die Brücke zwischen der ZNS-Datenquelle und der str
|
|||
* Fehlen Daten, wird der `StammdatenImportScreen` direkt im Wizard eingebettet.
|
||||
* Modul-Abhängigkeit zu `zns-import-feature` in `veranstaltung-feature` hergestellt.
|
||||
|
||||
2. **User-Identity & Onboarding (SCS: Identity):**
|
||||
2. **Mock-Daten & Real-Integration:**
|
||||
* Erweiterung des `FakeVereinRepository` um den Verein **"Reitclub Neumarkt" (6-009)**.
|
||||
* Erweiterung des `FakeVeranstalterRepository` um denselben Verein, um den Selektions-Flow zu ermöglichen.
|
||||
* Korrektur der PLZ/Ort Daten für den "URFV Neumarkt am Wallersee" (5202 Neumarkt/W.).
|
||||
|
||||
3. **Navigation & UX-Verbesserung:**
|
||||
* Aktivierung des Buttons "Diesen Verein als neuen Veranstalter anlegen" im `VeranstaltungWizard`.
|
||||
* Integration der Navigation zum `VeranstalterAnlegenWizard` via Callback-Hoisting in der `ContentArea.kt`.
|
||||
|
||||
4. **User-Identity & Onboarding (SCS: Identity):**
|
||||
* Neuer `ProfileOnboardingWizard` zur Verknüpfung des lokalen Users mit einer ZNS-Satznummer.
|
||||
* Integration des Onboarding-Flows in die Desktop-Shell (`ContentArea.kt`).
|
||||
* Erweiterung der `AppScreen` Navigation um `/profile/onboarding`.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ class FakeVeranstalterRepository : VeranstalterRepository {
|
|||
Veranstalter(2, "RV Schloß Rosenau", "3-0012", "Rosenau", "Aktiv"),
|
||||
Veranstalter(3, "Reitclub Tulln", "3-1520", "Tulln", "Inaktiv"),
|
||||
Veranstalter(4, "RC St. Pölten", "3-0101", "St. Pölten", "Aktiv"),
|
||||
Veranstalter(5, "Union Reitklub Wien", "9-0001", "Wien", "Aktiv")
|
||||
Veranstalter(5, "Union Reitklub Wien", "9-0001", "Wien", "Aktiv"),
|
||||
Veranstalter(6, "Reitclub Neumarkt", "6-009", "Neumarkt", "Aktiv")
|
||||
)
|
||||
|
||||
override suspend fun list(): Result<List<Veranstalter>> = Result.success(mockData)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ import kotlin.uuid.ExperimentalUuidApi
|
|||
fun VeranstaltungWizardScreen(
|
||||
viewModel: VeranstaltungWizardViewModel,
|
||||
onBack: () -> Unit,
|
||||
onFinish: () -> Unit
|
||||
onFinish: () -> Unit,
|
||||
onNavigateToVeranstalterNeu: () -> Unit = {}
|
||||
) {
|
||||
val state = viewModel.state
|
||||
|
||||
|
|
@ -69,7 +70,7 @@ fun VeranstaltungWizardScreen(
|
|||
) {
|
||||
when (state.currentStep) {
|
||||
WizardStep.ZNS_CHECK -> ZnsCheckStep(viewModel)
|
||||
WizardStep.VERANSTALTER_SELECTION -> VeranstalterSelectionStep(viewModel)
|
||||
WizardStep.VERANSTALTER_SELECTION -> VeranstalterSelectionStep(viewModel, onNavigateToVeranstalterNeu)
|
||||
WizardStep.ANSPRECHPERSON_MAPPING -> AnsprechpersonMappingStep(viewModel)
|
||||
WizardStep.META_DATA -> MetaDataStep(viewModel)
|
||||
WizardStep.TURNIER_ANLAGE -> TurnierAnlageStep(viewModel)
|
||||
|
|
@ -228,7 +229,10 @@ private fun ZnsCheckStep(viewModel: VeranstaltungWizardViewModel) {
|
|||
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalUuidApi::class)
|
||||
@Composable
|
||||
private fun VeranstalterSelectionStep(viewModel: VeranstaltungWizardViewModel) {
|
||||
private fun VeranstalterSelectionStep(
|
||||
viewModel: VeranstaltungWizardViewModel,
|
||||
onNavigateToVeranstalterNeu: () -> Unit
|
||||
) {
|
||||
var searchQuery by remember { mutableStateOf("") }
|
||||
Column(verticalArrangement = Arrangement.spacedBy(16.dp)) {
|
||||
Text("Schritt 2: Veranstalter auswählen", style = MaterialTheme.typography.titleLarge)
|
||||
|
|
@ -288,7 +292,7 @@ private fun VeranstalterSelectionStep(viewModel: VeranstaltungWizardViewModel) {
|
|||
Text("Verein nicht gefunden?", style = MaterialTheme.typography.labelLarge)
|
||||
|
||||
Button(
|
||||
onClick = { /* Navigiere zu Veranstalter anlegen */ },
|
||||
onClick = onNavigateToVeranstalterNeu,
|
||||
colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.secondary)
|
||||
) {
|
||||
Icon(Icons.Default.Add, null)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,15 @@ class FakeVereinRepository : VereinRepository {
|
|||
id = "v1",
|
||||
name = "URFV Neumarkt am Wallersee",
|
||||
oepsNr = "4221",
|
||||
ort = "Neumarkt/M.",
|
||||
ort = "Neumarkt/W.",
|
||||
plz = "5202",
|
||||
status = VereinStatus.AKTIV
|
||||
),
|
||||
Verein(
|
||||
id = "v3",
|
||||
name = "Reitclub Neumarkt",
|
||||
oepsNr = "6-009",
|
||||
ort = "Neumarkt",
|
||||
plz = "4221",
|
||||
status = VereinStatus.AKTIV
|
||||
),
|
||||
|
|
|
|||
|
|
@ -240,7 +240,8 @@ fun DesktopContentArea(
|
|||
at.mocode.veranstaltung.feature.presentation.VeranstaltungWizardScreen(
|
||||
viewModel = viewModel,
|
||||
onBack = onBack,
|
||||
onFinish = { onBack() }
|
||||
onFinish = { onBack() },
|
||||
onNavigateToVeranstalterNeu = { onNavigate(AppScreen.VeranstalterNeu) }
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user