shinkan-jinkendo/backend/version.py
Lars 5277f4f4cf
Some checks failed
Deploy Development / deploy (push) Successful in 34s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 5s
Test Suite / playwright-tests (push) Failing after 1m55s
feat: add maturity models functionality and update version
- Introduced new maturity models feature with CRUD operations in the API.
- Added routes and frontend components for managing maturity models.
- Updated version to 0.7.1 with corresponding build date and schema version.
- Enhanced admin navigation to include maturity models section.
- Documented changes in the changelog for version 0.7.1.
2026-04-27 11:32:30 +02:00

179 lines
8.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Shinkan Jinkendo Version Information
APP_VERSION = "0.7.1"
BUILD_DATE = "2026-04-27"
DB_SCHEMA_VERSION = "20260427024"
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": "2.0.0", # BREAKING: Clean-Room Rebuild, Legacy-Felder entfernt, nur M:N
"training_units": "0.1.0",
"training_programs": "0.1.0",
"planning": "0.1.0",
"import_wiki": "1.0.0",
"admin": "1.0.0",
"membership": "1.0.0",
"catalogs": "1.5.0", # Updated: Trainer Contexts API (Migration 012)
"maturity_models": "1.0.0", # Migration 024: Reifegradmodelle / Fähigkeitsmatrix
}
CHANGELOG = [
{
"version": "0.7.1",
"date": "2026-04-27",
"changes": [
"DB: Migration 024 maturity_models, model_levels, model_skills, model_skill_levels",
"API: CRUD Reifegradmodelle, Matrix-Pflege, resolve-Kontext",
"Frontend: Admin Fähigkeitsmatrix (/admin/maturity-models)",
],
},
{
"version": "0.7.0",
"date": "2026-04-24",
"changes": [
"BREAKING: Exercises v2.0 - Clean-Room Rebuild (kein Legacy-Code)",
"DB: Migration 014 - Variant Progression + Search Vector + Legacy DROP (age_groups, focus_area, secondary_areas, training_character)",
"DB: Migration 016 - Saved Exercise Searches",
"DB: Migration 017 - Exercise Blocks + Template Blocks",
"Backend: exercises.py komplett neu nach EXERCISES_API_SPEC.md v1.2",
"Backend: Nur M:N Relations, keine JSONB-Kataloge mehr",
"Backend: enrich_exercise_detail() für vollständige Objekte",
"Backend: assign_exercise_relations() für M:N Management",
"API: GET /exercises - Volltext-Suche via tsvector",
"API: POST/PUT /exercises - M:N Relations (focus_areas_multi, training_styles_multi, etc.)",
"Issue #53 konform: Import = Feld-Zuordnung, keine fachliche Interpretation",
]
},
{
"version": "0.6.0",
"date": "2026-04-24",
"changes": [
"Feature: MediaWiki Import (SMW Direct API)",
"DB: Migration 018 - wiki_import_log + wiki_import_references",
"Backend: SmwClient (login, browse, ask, categorymembers)",
"Backend: SmwMapper (SMW Properties → exercises/skills/methods)",
"Backend: import_wiki Router (preview, execute, status, logs, discover)",
"Config: MEDIAWIKI_API_URL=https://karatetrainer.net/api.php",
]
},
{
"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",
]
}
]