shinkan-jinkendo/backend/routers
Lars 278d719e84
Some checks failed
Deploy Development / deploy (push) Successful in 32s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 5s
Test Suite / playwright-tests (push) Failing after 1m54s
feat: Zielgruppen-Verwaltung (Target Groups CRUD + Admin UI)
Backend:
- GET /api/target-groups: Liste mit hierarchischem Kontext (focus_area → training_style → target_group)
- POST /api/target-groups: Create (admin only)
- PUT /api/target-groups/{id}: Update (admin only)
- DELETE /api/target-groups/{id}: Delete (superadmin only) mit CASCADE-Schutz
- Filter: by training_style_id, status

Frontend:
- api.js: listTargetGroups, createTargetGroup, updateTargetGroup, deleteTargetGroup
- AdminCatalogsPage: Neuer Tab "Zielgruppen" (6. Tab)
- Create-Form: training_style_id, name, description, min_age, max_age
- List-View: Hierarchie-Anzeige (Fokusbereich → Stil → Zielgruppe + Altersbereich)
- Inline-Editing mit Stil-Auswahl-Dropdown
- Delete mit Confirmation Dialog

Architektur:
- Hierarchische Beziehung: target_groups.training_style_id → training_styles → focus_areas
- CASCADE-Protection: DELETE verweigert wenn exercise_target_groups Einträge existieren
- Backend liefert enriched data mit training_style_name + focus_area_name

version: 0.3.2
modules: catalogs 1.2.0
pages: AdminCatalogsPage 1.1.0
2026-04-23 08:55:54 +02:00
..
auth.py fix: Change created to created_at in sessions INSERT 2026-04-21 21:18:09 +02:00
catalogs.py feat: Zielgruppen-Verwaltung (Target Groups CRUD + Admin UI) 2026-04-23 08:55:54 +02:00
clubs.py feat: Clubs & Organization Management complete 2026-04-22 16:48:02 +02:00
exercises.py feat: Exercises-Router M:N Zuordnungen 2026-04-23 08:51:45 +02:00
profiles.py fix: Add /profiles/me endpoint for session persistence 2026-04-22 15:46:40 +02:00
skills.py feat: Skills & Methods catalog complete 2026-04-22 16:50:31 +02:00
training_planning.py feat: Training Planning (core feature) complete 2026-04-22 16:54:34 +02:00