feat(management-feature): add centralized administration screens and back-navigation support

- Introduced comprehensive management screens for horses, riders, clubs, and officials.
- Integrated reusable `ManagementTableScreen` component for standardized layouts and operations.
- Added back-navigation support in `DesktopNavigationPort` with a stack-based implementation.
- Refined `DesktopMainLayout` with enhanced routing and dynamic placeholders for in-development screens.
- Updated roadmap to reflect completion of Phase 7: "Zentrale Verwaltung".

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-01 17:26:44 +02:00
parent 09debdef86
commit 6fc6c8fc79
17 changed files with 1019 additions and 121 deletions
+19 -7
View File
@@ -186,18 +186,30 @@ und über definierte Schnittstellen kommunizieren.
## 4. Geplante Phasen
### PHASE 7: Desktop-Vernetzung & Event-First Workflow 🔵 IN ARBEIT
### PHASE 7: Desktop-Vernetzung & Zentrale Verwaltung ✅ ABGESCHLOSSEN
*Ziel: LAN-Kommunikation zwischen Apps und Fokus auf Veranstaltungs-Verwaltung.*
*Ziel: LAN-Kommunikation Vorbereitung und Etablierung der "Veranstaltung-Verwaltung" als zentrale Schaltstelle.*
* [x] **Zentrale Verwaltung:** Etablierung der `Veranstaltung-Verwaltung` (Zentrale) als administratives Cockpit.
* [x] **Navigation:** Implementierung eines Back-Stack-Systems für intelligente "Zurück"-Navigation.
* [x] **Domänen-Synchronisation:** Anpassung der Frontend-Stores an die Backend-Masterdata-Modelle (Reiter, Pferde,
Vereine, Funktionäre).
* [x] **ZNS-Integration (Frontend):** ZNS-Importer in die Zentrale integriert; Konzept "Globaler Pool -> Lokale
Synchronisation" gefestigt.
* [x] **Terminologie:** UI-weit Umstellung von "Event" auf "Veranstaltung" (ÖTO-konform).
* [x] **Konzept:** LAN-Discovery (mDNS) und Echtzeit-Sync (WebSockets) entworfen.
* [x] **ADR:** ADR-0020 (Lokale Netzwerk-Kommunikation) erstellt.
* [ ] **Discovery:** Implementierung des mDNS-Service für die Geräte-Suche.
* [ ] **Transport:** Aufbau der WebSocket-Infrastruktur für P2P-Sync.
* [ ] **Event-First:** Umstellung des App-Startpunkts auf die Veranstaltungs-Liste (Login-Skip).
* [ ] **Wizard:** Implementierung des `VeranstaltungNeuWizard` zur Neuanlage.
### PHASE 8: Series-Context & Erweiterungen 🔵 PHASE 2+
### PHASE 8: Bewerbe-Management & Startlisten 🔵 IN ARBEIT
*Ziel: Fachliche Tiefe in den Turnieren (Import, Generierung, Zeitberechnung).*
* [ ] **Bewerbe-Import:** Implementierung der Merge-Logik (ZNS-XML -> BewerbUiModel).
* [ ] **Startlisten-Automatisierung:** Generierung und Zeitberechnung (Pausen, Umbauzeiten).
* [ ] **Discovery:** Implementierung des mDNS-Service für die Geräte-Suche (Phase 7 Übertrag).
* [ ] **Transport:** Aufbau der WebSocket-Infrastruktur für P2P-Sync (Phase 7 Übertrag).
### PHASE 9: Series-Context & Erweiterungen 🔵 PHASE 2+
*Ziel: Cups, Serien und Meisterschaften mit konfigurierbaren Reglements.*
+75
View File
@@ -0,0 +1,75 @@
### Diagramm (Screen-Flow) - Stand 01. April 2026 (Abend-Update)
Das Frontend nutzt nun einen **Back-Stack Mechanism**, d.h. der "Zurück"-Button (TopBar) führt immer zum jeweils
vorherigen Screen im Verlauf.
```mermaid
graph TD
A[Onboarding] -- " Login / Start " --> H[Veranstaltung-Verwaltung]
subgraph "Verwaltung (Zentrale)"
H
H1[Pferde-Verwaltung]
H2[Reiter-Verwaltung]
H3[Verein-Verwaltung]
H4[Funktionär-Verwaltung]
H5[Veranstalter-Verwaltung]
H6[ZNS-Importer]
end
H -- " Pferde " --> H1
H -- " Reiter " --> H2
H -- " Vereine " --> H3
H -- " Funktionäre " --> H4
H -- " Veranstalter " --> H5
H -- " ZNS-Importer " --> H6
H6 -- " Back-Stack " --> H
H1 -- " Pferde-Profil " --> P1[Pferde-Profil]
H2 -- " Reiter-Profil " --> P2[Reiter-Profil]
H3 -- " Verein-Profil " --> P3[Verein-Profil]
H4 -- " Funktionär-Profil " --> P4[Funktionär-Profil]
H5 -- " Pferde-Profil " --> P1
P1 -- " Back-Stack " --> H
P2 -- " Back-Stack " --> H
P3 -- " Back-Stack " --> H
P4 -- " Back-Stack " --> H
H -- " Neue Veranstaltung " --> E[VeranstaltungKonfigV2]
H -- " Veranstaltung öffnen " --> F[Veranstaltung-Profil]
F -- " Turnier öffnen / Neu " --> G[TurnierDetailScreen]
F -- " Veranstalter-Profil " --> H5
subgraph "TurnierDetailScreen (Tabs)"
G1[STAMMDATEN]
G2[ORGANISATION]
G3[BEWERBE]
G4[ARTIKEL]
G5[ABRECHNUNG]
G6[NENNUNGEN]
G7[STARTLISTEN]
G8[ERGEBNISLISTEN]
end
G --> G1
G --> G3
G --> G7
F -- " Back-Stack " --> H
H5 -- " Back-Stack " --> F
H -- " Logout / Zurück " --> A
subgraph "Legacy / Administrative Screens"
L1[AdminUebersichtScreen]
L2[PingScreen]
L3[ProfileScreen]
L4[VereinScreen]
L5[VeranstaltungDetailScreen]
end
H -- " Ping " --> L2
H -- " Profil " --> L3
H -- " Vereine " --> L4
H -- " Legacy View " --> L1
%% Fallback navigation
L1 -- " Veranstalter Auswahl " --> H
L1 -- " Legacy Event Detail " --> L5
L5 -- " Turnier öffnen " --> G
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 868 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

@@ -0,0 +1,51 @@
# 🧹 Curator Session Log (2026-04-01 - Abschluss Vormittag)
## Zusammenfassung
Die heutige Vormittags-Sitzung markiert den Übergang von einer "Sammlung von Screens" zu einer integrierten **Zentralen
Verwaltung**. Wir haben das "Chaos" im Frontend durch eine klare Hierarchie und einen intelligenten Navigations-Flow (
Back-Stack) gezähmt.
## Kern-Erkenntnisse & Architektur-Updates
### 1. Die "Zentrale" als Cockpit
- Die `Veranstaltung-Verwaltung` ist nun der primäre Einstiegspunkt nach dem Onboarding.
- Alle administrativen Domänen (Pferde, Reiter, Vereine, Funktionäre, Veranstalter) sind über diese Zentrale erreichbar.
- Dies entspricht dem Wunsch des Users nach einer "Haupt-Verwaltungs-Zentrale" (`verwaltung_01-04-26.png`).
### 2. ZNS-Datenfluss: Globaler Pool -> Lokale Synchronisation
- **Konzept:** Stammdaten (ZNS) werden global in die Desktop-App geladen (ZNS-Importer).
- **Vorteil:** Turniere müssen Daten nicht mehr isoliert halten, sondern synchronisieren sich selektiv mit dem globalen
Pool über den "Aktualisieren"-Button.
- Die Domänen-Modelle in `Stores.kt` wurden vollständig an die Backend-Modelle (`DomPferd`, `DomReiter`, etc.)
angepasst.
### 3. Navigations-Logik (Back-Stack)
- Implementierung von `navigateBack()` im `DesktopNavigationPort`.
- Der "Zurück"-Button merkt sich nun den Pfad (z.B. Veranstaltung-Profil -> Veranstalter-Profil -> Zurück ->
Veranstaltung-Profil).
### 4. Terminologie-Bereinigung
- UI-weit wurde "Event" durch **"Veranstaltung"** ersetzt (ÖTO-konform).
- Technische IDs behalten den Namen `eventId` zur Stabilität.
## Durchgeführte Code-Änderungen (Zusammenfassung)
- `AppScreen.kt`: Neue Routen für Verwaltungen und Profile.
- `ManagementScreens.kt`: Generische Tabellen-Komponente mit Suche und CRUD-Aktionen.
- `Stores.kt`: Erweiterte Datenklassen und realistische Testdaten.
- `DesktopMainLayout.kt`: Integration des Back-Stacks und der neuen Routen.
- `VeranstaltungScreens.kt`: Umbenennung in `VeranstaltungProfilScreen` und Header-Updates.
## Status der Dokumentation
- [x] **Screen-Flow:** `docs/06_Frontend/screen-flow_1-04-26.md` aktualisiert.
- [x] **Journal:** Einzelergebnisse in separaten Logs dokumentiert.
- [x] **Roadmap:** `MASTER_ROADMAP.md` auf Phase 8 (Bewerbe-Management) aktualisiert.
---
*Dokumentiert durch den Curator am 01.04.2026 um 17:40 Uhr.*
@@ -0,0 +1,41 @@
# Session Log: 01. April 2026 - Vormittag (Zentrale & ZNS-Logik)
## 🏗️ [Lead Architect] | Status & Entscheidungen
### 1. Die "Zentrale" (Veranstaltung-Verwaltung)
Wir haben die **Veranstaltung-Verwaltung** als neue strategische Zentrale etabliert. Von hier aus sind alle
administrativen Bereiche (Pferde, Reiter, Vereine, Funktionäre, Veranstalter) erreichbar. Dies löst das "Chaos" im
Frontend durch eine klare Hierarchie.
### 2. ZNS-Datenfluss: Global -> Lokal
Ein entscheidendes Architektur-Konzept wurde heute Vormittag gefestigt:
* **Globaler Pool:** ZNS-Stammdaten (Pferde, Personen, Vereine) werden über den ZNS-Importer in die globale Datenbank
der Desktop-App geladen.
* **Lokale Synchronisation:** In den Turnier-Details (z.B. `TurnierBewerbeTab`) dient der Button **"Aktualisieren"**
dazu, die Daten für dieses spezifische Turnier mit dem globalen Pool abzugleichen.
* **Vorteil:** Daten müssen nicht pro Turnier neu importiert werden. Ein globaler Stand (z.B. nach einem ZNS-Update)
kann selektiv in die aktiven Turniere "gepusht" werden.
### 3. Terminologie-Bereinigung
Alle UI-Texte wurden auf **"Veranstaltung"** umgestellt, um konform mit der ÖTO (§ 2 Abs. 1) zu sein. "Event" bleibt ein
technischer Begriff im Code.
## 👷 [Backend/Frontend] | Durchgeführte Änderungen
* **App-Routing:** `AppScreen.kt` um neue Verwaltungs-Routen erweitert.
* **Navigation:** `DesktopMainLayout.kt` implementiert nun den Flow von der Zentrale in die Fachbereiche.
* **Importer-Integration:** Der ZNS-Importer ist nun direkt aus der Zentrale erreichbar.
* **Bugfix:** Kompilierfehler in der Navigation (fehlender `onBack` Parameter) behoben.
## 🧐 [QA Specialist] | Offene Punkte für den Nachmittag
* [ ] **Bewerbe-Import:** Implementierung der konkreten Merge-Logik (ZNS-XML -> `BewerbUiModel`).
* [ ] **Startlisten-Sortierung:** Validierung der ÖTO-konformen Auslosung.
* [ ] **Profil-Screens:** Die Placeholder für Pferde-, Reiter- etc. Profile müssen mit Leben gefüllt werden.
---
*Dokumentiert durch den Curator am 01.04.2026*