Mark Phase 9 as complete: finalize Zeitplan-Optimierung, add audit logging for Bewerb modifications, implement ZNS B-Satz export, and enhance Zeitplan tab with drag-and-drop scheduling and conflict validation.
This commit is contained in:
parent
92aecf9abf
commit
edfbbb805f
16
CHANGELOG.md
16
CHANGELOG.md
|
|
@ -13,7 +13,21 @@ Versionierung folgt [Semantic Versioning](https://semver.org/lang/de/).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## [Unreleased]
|
### [Unreleased]
|
||||||
|
|
||||||
|
### Hinzugefügt
|
||||||
|
- **Zeitplan-Optimierung (Phase 9):**
|
||||||
|
- **Frontend:** Interaktiver Drag & Drop Zeitplan mit automatischem 5-Minuten-Snapping und Konflikt-Visualisierung.
|
||||||
|
- **Frontend:** "B-Satz Export (ZNS)" Toolbar-Aktion mit integriertem Vorschau-Dialog.
|
||||||
|
- **Frontend:** "Änderungs-Historie" (Audit-Log) Sektion zur Nachverfolgung von Zeitplan-Anpassungen.
|
||||||
|
- **Backend:** `audit_log` Persistenz und Abfrage-API für manuelle Eingriffe in Bewerbe.
|
||||||
|
- **Backend:** ZNS B-Satz Export Endpunkt (`/export/zns/b-satz`) zur Generierung von `BBEWERBE` Datensätzen.
|
||||||
|
- **Core:** `FixedWidthLineBuilder` zur präzisen Generierung von ZNS-konformen Festbreiten-Formaten.
|
||||||
|
|
||||||
|
### Behoben
|
||||||
|
- **Infrastruktur:** Veraltete `newSuspendedTransaction` in `DatabaseFactory.kt` durch moderne `suspendTransaction` (Exposed v1) ersetzt.
|
||||||
|
- **Frontend (Desktop):** Kompilierfehler in `ScreenPreviews.kt` behoben, indem fehlende Interface-Methoden im Mock-Repository implementiert wurden.
|
||||||
|
- **Backend (Tests):** `JdbcSQLSyntaxErrorException` im `BewerbeZeitplanIntegrationTest` durch Korrektur des Schema-Setups (Audit-Log Tabelle) gelöst.
|
||||||
|
|
||||||
### Hinzugefügt
|
### Hinzugefügt
|
||||||
- **Bugfix**: Behebung von Build-Fehlern im `veranstalter-feature` nach der Paket-Konsolidierung.
|
- **Bugfix**: Behebung von Build-Fehlern im `veranstalter-feature` nach der Paket-Konsolidierung.
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class FixedWidthLineReader(private val line: String) {
|
||||||
|
|
||||||
return try {
|
return try {
|
||||||
LocalDate(year, month, day)
|
LocalDate(year, month, day)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ und über definierte Schnittstellen kommunizieren.
|
||||||
* [x] **Offline-First Desktop↔Backend:** Umsetzung gemäß Konzept „Offline-First Synchronisation (Desktop ↔ Backend)“ → `docs/01_Architecture/konzept-offline-first-desktop-backend-de.md`. ✓
|
* [x] **Offline-First Desktop↔Backend:** Umsetzung gemäß Konzept „Offline-First Synchronisation (Desktop ↔ Backend)“ → `docs/01_Architecture/konzept-offline-first-desktop-backend-de.md`. ✓
|
||||||
* [x] **Regelwerks-Validierung:** Implementierung des strukturierten Abteilungs-Warnungssystems gemäß ÖTO § 39 inkl. UI-Integration. ✓
|
* [x] **Regelwerks-Validierung:** Implementierung des strukturierten Abteilungs-Warnungssystems gemäß ÖTO § 39 inkl. UI-Integration. ✓
|
||||||
|
|
||||||
### PHASE 9: Zeitplan-Optimierung & Protokollierung 🔵 IN ARBEIT
|
### PHASE 9: Zeitplan-Optimierung & Protokollierung ✅ ABGESCHLOSSEN
|
||||||
|
|
||||||
*Ziel: Dynamische Zeitplan-Anpassungen, Protokollierung von Änderungen und Export-Funktionen.*
|
*Ziel: Dynamische Zeitplan-Anpassungen, Protokollierung von Änderungen und Export-Funktionen.*
|
||||||
|
|
||||||
|
|
@ -237,17 +237,18 @@ und über definierte Schnittstellen kommunizieren.
|
||||||
* [x] **Rulebook-Check:** ÖTO §43 "Parcoursbesichtigung zu Pferd" eingearbeitet. ✓
|
* [x] **Rulebook-Check:** ÖTO §43 "Parcoursbesichtigung zu Pferd" eingearbeitet. ✓
|
||||||
* [x] **Feature-Migration:** Pferde-, Reiter-, Funktionärs- und Veranstalter-Module vollständig auf KMP umgestellt. ✓
|
* [x] **Feature-Migration:** Pferde-, Reiter-, Funktionärs- und Veranstalter-Module vollständig auf KMP umgestellt. ✓
|
||||||
* [x] **Cleanup:** `FRONTEND_CLEANUP_TODO.md` für Migration von `v2` Screens weitestgehend abgeschlossen. ✓
|
* [x] **Cleanup:** `FRONTEND_CLEANUP_TODO.md` für Migration von `v2` Screens weitestgehend abgeschlossen. ✓
|
||||||
* [ ] **Zeitplan:** Dynamische Verschiebung von Bewerben (Drag & Drop im Kalender).
|
* [x] **Zeitplan:** Dynamische Verschiebung von Bewerben (Drag & Drop im Kalender). ✓
|
||||||
* [ ] **Protokoll:** Implementierung eines Event-Logs für manuelle Eingriffe in Startlisten.
|
* [x] **Protokoll:** Implementierung eines Event-Logs für manuelle Eingriffe in Startlisten (Audit-Log). ✓
|
||||||
* [ ] **Export:** Startlisten-Export für ZNS (XML-B-Satz).
|
* [x] **Export:** Startlisten-Export für ZNS (XML-B-Satz). ✓
|
||||||
|
|
||||||
### PHASE 10: Series-Context & Erweiterungen 🔵 PHASE 2+
|
### PHASE 10: Series-Context & Erweiterungen 🔵 IN ARBEIT
|
||||||
|
|
||||||
*Ziel: Cups, Serien und Meisterschaften mit konfigurierbaren Reglements.*
|
*Ziel: Cups, Serien und Meisterschaften mit konfigurierbaren Reglements.*
|
||||||
|
|
||||||
* [ ] **`series-context`:** Pluggable Berechnungsmodell, konfigurierbare Paar-Bindung.
|
* [ ] **`series-context`:** Pluggable Berechnungsmodell, konfigurierbare Paar-Bindung.
|
||||||
* [ ] **Web-Portal:** Shared Module aus Desktop-App extrahieren → Web-Portal aufbauen.
|
* [ ] **Web-Portal:** Shared Module aus Desktop-App extrahieren → Web-Portal aufbauen.
|
||||||
* [ ] **Mobile:** KMP-Sharing auf Android/iOS ausweiten.
|
* [ ] **Mobile:** KMP-Sharing auf Android/iOS ausweiten.
|
||||||
|
* [ ] **UX-Refinement:** Optimierung der Zeitplan-Ansicht (Multi-Platz-Support).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Curator Log: Abschluss Phase 9 & Zeitplan-Optimierung
|
||||||
|
|
||||||
|
**Datum:** 11. April 2026
|
||||||
|
**Agent:** 🧹 [Curator]
|
||||||
|
**Status:** ✅ PHASE 9 ABGESCHLOSSEN
|
||||||
|
|
||||||
|
## Zusammenfassung
|
||||||
|
Die Phase 9 der Master-Roadmap (Zeitplan-Optimierung & Protokollierung) wurde erfolgreich abgeschlossen. Alle Kernfunktionalitäten für die dynamische Turnier-Planung und die Schnittstelle zum ZNS (Zentrales Nennungs-System) sind implementiert und verifiziert.
|
||||||
|
|
||||||
|
## Durchgeführte Arbeiten
|
||||||
|
|
||||||
|
### 1. Zeitplan-Frontend (Desktop)
|
||||||
|
- **Drag & Drop:** Implementierung eines interaktiven Zeitstrahls (07:00 - 20:00) mit 5-Minuten-Snapping.
|
||||||
|
- **Konflikt-Management:** Visuelle Kennzeichnung von Zeitplan-Konflikten (Überlappungen, Richter-Doppelbelegungen) basierend auf dem ÖTO-Regelwerk.
|
||||||
|
- **Toolbar:** Zentrale Steuerung für Filter, Historie und Export.
|
||||||
|
|
||||||
|
### 2. Audit-Log & Protokollierung
|
||||||
|
- **Backend:** Einführung der `audit_log` Tabelle und Hooks im `BewerbService`.
|
||||||
|
- **Frontend:** Dedizierte Historien-Sektion zur Visualisierung von Änderungen pro Bewerb (Wer hat wann was verschoben?).
|
||||||
|
- **Stabilität:** Behebung von Initialisierungs-Problemen im Test-Scope.
|
||||||
|
|
||||||
|
### 3. ZNS B-Satz Export
|
||||||
|
- **Parser:** Erweiterung des `ZnsBewerbParser` um die Generierung von Festbreiten-Strings (`FixedWidthLineBuilder`).
|
||||||
|
- **Export-API:** REST-Endpunkt zur Bereitstellung der `BBEWERBE` Datensätze.
|
||||||
|
- **Vorschau:** Integrierter Dialog im Frontend zur schnellen Übernahme der Daten in `.n2` Dateien.
|
||||||
|
|
||||||
|
### 4. Technisches Hardening
|
||||||
|
- **Deprecation Fixes:** Umstellung auf `suspendTransaction` in `DatabaseFactory.kt`.
|
||||||
|
- **Typ-Sicherheit:** Harmonierung der Zeit-Modelle (`kotlin.time.Instant`, `LocalDate`, `LocalTime`).
|
||||||
|
|
||||||
|
## Nächste Schritte
|
||||||
|
Der Fokus verlagert sich nun auf **Phase 10: Series-Context**.
|
||||||
|
- Analyse der Reglements für Cups und Meisterschaften.
|
||||||
|
- Entwurf eines konfigurierbaren Berechnungsmodells für Punktesysteme.
|
||||||
|
- Vorbereitung der Web-Plattform Integration.
|
||||||
|
|
||||||
|
---
|
||||||
|
*Gez. Curator*
|
||||||
Loading…
Reference in New Issue
Block a user