Migration 012:
- exercise_training_characters (M:N junction table)
- trainer_contexts (Fokussierte Trainer-Ansichten)
- Indizes für Performance
- Example seed data
Backend (catalogs.py):
- GET /api/trainer-contexts (list own contexts)
- POST /api/trainer-contexts (create context)
- PUT /api/trainer-contexts/{id} (update own context)
- DELETE /api/trainer-contexts/{id} (delete own context)
- Enriched responses mit focus_area_name, style_direction_name, training_type_name
- Ownership-Validation (nur eigene Kontexte)
Frontend:
- TrainerContextsPage.jsx (vollständige CRUD-UI)
- Kaskadierende Dropdowns (Fokusbereich → Stilrichtung)
- is_style_independent Flag für stilunabhängige Kontexte
- api.js erweitert (listTrainerContexts, create, update, delete)
Architektur:
- Flat Catalogs mit M:N überall
- NULL = 'für alles geeignet'
- Trainer-Kontexte für fokussierte Ansichten
- Vorbereitung für 1000+ Übungen mit flexibler KI-Filterung
version: 0.5.0 (backend + frontend)
module: exercises 0.5.0, catalogs 1.5.0
page: TrainerContextsPage 1.0.0
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
140 lines
6.4 KiB
Python
140 lines
6.4 KiB
Python
# Shinkan Jinkendo Version Information
|
|
|
|
APP_VERSION = "0.5.0"
|
|
BUILD_DATE = "2026-04-23"
|
|
DB_SCHEMA_VERSION = "20260423002"
|
|
|
|
MODULE_VERSIONS = {
|
|
"auth": "1.0.0",
|
|
"profiles": "1.0.0",
|
|
"clubs": "0.1.0",
|
|
"groups": "0.1.0",
|
|
"skills": "0.1.0",
|
|
"methods": "0.1.0",
|
|
"exercises": "0.5.0", # Updated: M:N Training Characters (Migration 012)
|
|
"training_units": "0.1.0",
|
|
"training_programs": "0.1.0",
|
|
"planning": "0.1.0",
|
|
"import_wiki": "0.1.0",
|
|
"admin": "1.0.0",
|
|
"membership": "1.0.0",
|
|
"catalogs": "1.5.0", # Updated: Trainer Contexts API (Migration 012)
|
|
}
|
|
|
|
CHANGELOG = [
|
|
{
|
|
"version": "0.5.0",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"Feature: Trainer-Kontext-System für fokussierte Ansichten",
|
|
"DB: Migration 012 - exercise_training_characters (M:N)",
|
|
"DB: Migration 012 - trainer_contexts (Trainer-Profil-System)",
|
|
"Backend: CRUD API für Trainer-Kontexte (/api/trainer-contexts)",
|
|
"Frontend: TrainerContextsPage für Verwaltung eigener Arbeitsbereiche",
|
|
"Architektur: Flat Catalogs + Smart Filtering für 1000+ Übungen",
|
|
"Architektur: NULL = 'für alles geeignet', M:N = spezifische Zuordnung",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.4.0",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"BREAKING: Migration 010 - Umbenennung training_styles → style_directions",
|
|
"BREAKING: Migration 011 - Neue Dimension training_types (Breitensport/Leistungssport)",
|
|
"DB: Konsistente Terminologie - Stilrichtungen vs. Trainingsstile",
|
|
"DB: Neue Tabelle training_types mit Seed-Daten (Breitensport, Leistungssport, Wettkampf)",
|
|
"DB: Neue Junction-Tabelle exercise_training_types (M:N)",
|
|
"Architektur: Fokusbereich → Stilrichtung → Trainingsstil → Zielgruppe (alle M:N)",
|
|
"Backend: Alle SQL Queries aktualisiert auf neue Tabellennamen (style_directions, style_direction_target_groups)",
|
|
"Backend: API Parameter umbenannt (training_style_id → style_direction_id)",
|
|
"Backend: CRUD Endpoints für training_types hinzugefügt",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.3.4",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"BREAKING: Migration 009 - Zielgruppen M:N Refactoring",
|
|
"DB: target_groups.training_style_id entfernt (jetzt global unabhängig)",
|
|
"DB: Neue Junction-Tabelle training_style_target_groups (M:N)",
|
|
"API: 5 neue Endpoints für M:N Management (GET/POST/PUT/DELETE + hierarchy)",
|
|
"API: GET /training-style-target-groups mit Enrichment (focus_area_name, training_style_name)",
|
|
"API: GET /training-styles/hierarchy für Tree-View (verschachtelte Struktur)",
|
|
"API: POST /training-style-target-groups mit Upsert-Logik",
|
|
"Backward-Compatible: exercise_target_groups weiterhin unterstützt",
|
|
"Architecture: Eine Zielgruppe kann mehreren Stilen zugeordnet werden",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.3.3",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"Fix: Admin-Navigation - Redirect /admin → /admin/catalogs",
|
|
"Fix: Admin-Link funktioniert jetzt (vorher 404)"
|
|
]
|
|
},
|
|
{
|
|
"version": "0.3.2",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"Feature: Zielgruppen-Verwaltung komplett (Backend + Frontend)",
|
|
"API: GET/POST/PUT/DELETE /target-groups mit hierarchischem Kontext (focus_area → training_style → target_group)",
|
|
"Admin UI: Neuer Tab 'Zielgruppen' in Katalogverwaltung",
|
|
"UX: Create/Edit-Forms mit Training-Stil-Auswahl, Altersbereich (min/max)",
|
|
"UX: Hierarchie-Anzeige in Liste (Fokusbereich → Stil → Zielgruppe)",
|
|
"Protection: DELETE mit CASCADE-Schutz (Fehler wenn Übungen zugeordnet)",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.3.1",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"Feature: Exercises-Router unterstützt M:N Zuordnungen",
|
|
"API: GET /exercises/{id} liefert focus_areas[], training_styles[], target_groups[], age_groups_catalog[]",
|
|
"API: POST/PUT /exercises akzeptiert focus_areas_multi[], training_styles_multi[], target_groups_multi[], age_groups_catalog[]",
|
|
"Pattern: DELETE+INSERT für M:N Updates (konsistent mit skills)",
|
|
"Backward-Compatible: Legacy FK-Felder (focus_area_id, training_style_id) bleiben erhalten",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.3.0",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"BREAKING: M:N Beziehungen für Übungen (statt 1:1)",
|
|
"Migration 008: M:N Zuordnungstabellen (exercise_focus_areas, exercise_styles, exercise_target_groups, exercise_age_groups)",
|
|
"Feature: Hierarchische Katalog-Struktur (Fokusbereich → Stil → Zielgruppe)",
|
|
"Feature: Zielgruppen-Verwaltung (training_styles.focus_area_id Hierarchie)",
|
|
"Feature: Primary/Secondary Assignments (is_primary Flag)",
|
|
"Doku: DATABASE_SCHEMA.md + DOMAIN_MODEL.md kontinuierlich gepflegt",
|
|
"Architecture: Smart Cascade-Logik (RESTRICT, Rerouting, Move)",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.2.0",
|
|
"date": "2026-04-23",
|
|
"changes": [
|
|
"Feature: Admin-verwaltbare Kataloge (Focus Areas, Training Styles, Training Characters, Skill Categories)",
|
|
"Feature: Trainer-Fokusbereich-Zuordnung für rollenbasierte Filterung",
|
|
"Migration 007: Katalog-Tabellen + Seed-Daten",
|
|
"Frontend: AdminCatalogsPage mit 5 Tabs (CRUD für alle Kataloge)",
|
|
"Frontend: ExercisesPage nutzt Katalog-Dropdowns (kein Hard-Coding mehr)",
|
|
"Frontend: Trainingsstil-Dropdown hinzugefügt (fehlte komplett)",
|
|
"Standardisierung: Alle Formulare mit Labels oben, volle Breite, linksbündig",
|
|
]
|
|
},
|
|
{
|
|
"version": "0.1.0",
|
|
"date": "2026-04-21",
|
|
"changes": [
|
|
"Initial MVP Setup",
|
|
"Feature: Übungsverwaltung (Kern-Modul)",
|
|
"Feature: Fähigkeiten- und Methodenkataloge",
|
|
"Feature: Trainingsplanung für Gruppen",
|
|
"Feature: Trainingsabschnitte mit Kombinations-Flag",
|
|
"Feature: MediaWiki-Import (einseitig)",
|
|
"Feature: Freigabelogik (privat/Verein/offiziell)",
|
|
"Infrastructure: Auth + Membership von Mitai übernommen",
|
|
]
|
|
}
|
|
]
|