All checks were successful
Deploy Development / deploy (push) Successful in 41s
Test Suite / pytest-backend (push) Successful in 35s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 12s
Test Suite / playwright-tests (push) Successful in 1m15s
- Updated app version to 0.8.110 and database schema version to 20260512057, reflecting recent enhancements. - Revised project status documentation to include new versioning and next steps for development. - Enhanced the functional specification for training modules and combination exercises, detailing upcoming features and improvements. - Improved technical specifications to align with the latest code changes, ensuring consistency across documentation. - Introduced new UI elements for toast notifications and unsaved changes prompts to enhance user experience. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.4 KiB
4.4 KiB
Umsetzungsplan: Trainingsmodule & Kombinationsübungen
Bezug: functional/Shinkan Trainingsmodule Kombinationsuebungen Spezifikation V2.md (Kopf „V3“, inkl. § 10.2.1, § 10.4 Coaching-Stufen, Anhang A Implementierungsabgleich — Drift-Schutz)
Technische Entwurfsspezifikation: technical/TRAINING_MODULES_AND_COMBINATION_EXERCISES_SPEC.md
Stand dieses Dokuments: 2026-05-12 (Abgleich mit Code App 0.8.110, siehe backend/version.py)
Ziele
Umsetzung der MVP-Punkte aus der Fachspezifikation ohne die bestehende Planung zu destabilisieren: schrittweise Migrationen, bestehende Sektions-/Item-Struktur (training_unit_sections, training_unit_section_items) beibehalten, Kopiersemantik bei Übernahmen.
Phasenüberblick
| Phase | Inhalt | Status |
|---|---|---|
| 1 | Trainingsmodule (Bibliothek): Tabellen training_modules, training_module_items; REST CRUD mit Governance wie andere Bibliotheken; Übernahme in eine bestehende Einheit per POST /api/training-units/{id}/apply-training-module (Anfügen ans Ende eines Abschnitts via section_order_index); optionale Lineage-Spalte source_training_module_id auf Planungsitems; UI: Liste/Editor unter /planning/training-modules, Link von der Planung, Modal „Modul übernehmen“ |
umgesetzt (MVP Schritt 1) |
| 2 | Kombinationsübungen: exercise_kind/combination_*, Slots, Pools, method_archetype, method_profile (JSON) |
teilweise — wie links; zusätzlich 057 planning_method_profile; Planungs-Merge Client (effectiveComboMethodProfile); Archetypen weiterhin nur Code-Konstanten (kein Admin) |
| 3 | Planungsblöcke: Gruppierung, Auflösen, „als Modul speichern“, erweiterter Übernahmemodus (Zwischenposition) | geplant |
| 4 | Coaching: Archetyp-Support | teilweise: Stufe A — Merge Katalog+Planung; CombinationPlanBracket in Peek/Run; globale Profilzahlen mit Labels (describeGlobalComboProfile); Stations-/Timing-Zusammenfassung inkl. Wdh.-Hinweise. Stufe B/C — offen (§ 10.6, Anhang A) |
| 5 | Rahmenprogramm: Modulübernahme UX in Slot-Blueprint-Editor konsolidieren | geplant |
Coaching — verbindliche Arbeitspakete (gegen Spec-Drift)
| Paket | Spec-Referenz | Kurzinhalt |
|---|---|---|
| 4a (Ist/Ziel) | § 10.2.1 | Archetyp-Schlüssel bleiben identisch zu backend/routers/exercises.py (COMBINATION_ARCHETYPE_IDS) und frontend/src/constants/combinationArchetypes.js. |
| 4b | § 10.4 Stufe A | Erreicht (0.8.110): Slots + Kandidaten; Archetyp-Hilfstext; wirksames Profil lesend mit fachlichen Labels; Klammerdarstellung konsistent (CombinationPlanBracket, comboPlanningMethodProfile.js). |
| 4c | § 10.4 Stufe B | Entscheidung: virtuelle Substeps vs. persistierte Items; Konsistenz sectionsToPutPayload/Ist-Zeit. |
| 4d | § 10.4 Stufe C | Archetyp-spezifische Timer/Wechsel/Abhaken an method_profile — nach 4c. |
| 4e | § 10.6 | Archetyp-Verwaltung: DB/UI oder Konfiguration statt nur Release — Labels, Defaults, ggf. Vereins-/Rollen-Sichtbarkeit. |
| 4f | § 10.6 · COMBINATION_TIMING_PROFILE_PLAN.md |
Massen-Vorbelegung: ein Klick alle Slot-Zeiten/Anzahlen aus Archetyp/Global; Modal „Archetyp-Vorlage anwenden?“ (Phase 2 des Timing-Plans). |
| 4g | § 10.6 | Backend-Validierung: Pflichtfelder/Wertebereiche je method_archetype; optional serverseitiger Merge mit Katalog (aktuell nur Client). |
Phase 1 (technische Notizen)
- Governance:
visibility/club_id/created_byanalogtraining_plan_templates; Listenfilterlibrary_content_visibility_sql. - Übernahme: Keine Live-Verknüpfung; Items werden kopiert;
source_training_module_iddokumentiert Herkunft. - Schnittstelle Übernahme:
section_order_indexentspricht der Reihenfolge der Abschnitte in der gespeicherten Einheit (0-basiert), konsistent zur Planungs-API.
Pflege nach Merge
DATABASE_SCHEMA.mdbei größeren Schema-Erweiterungen ergänzen.ACCESS_LAYER_ENDPOINT_AUDIT.mdbei neuen mandantenbezogenen Endpunkten fortpflegen.- Nach jeder Kombi-/Coach-Änderung:
functional/… Spezifikation V2.mdAnhang A und diese Tabelle Phasen 2/4 abstimmen.