Feature: Alle 104 Übungen aus DB in Übungsseite — 9 Tabs, DB-basiert, abwärtskompatibel — SW by-v493, APP_VER 470
This commit is contained in:
parent
175984e80f
commit
6d9f4a097e
5 changed files with 109 additions and 24 deletions
|
|
@ -10,6 +10,45 @@ from auth import get_current_user
|
|||
|
||||
router = APIRouter()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Alle Übungen aus DB (öffentlich, kein Auth)
|
||||
# ------------------------------------------------------------------
|
||||
@router.get("/exercises")
|
||||
async def get_exercises():
|
||||
"""Alle Übungen aus der DB, gruppiert nach Tab-ID."""
|
||||
import json as _json
|
||||
CAT_TO_TAB = {
|
||||
'Grundkommando': 'grundkommandos',
|
||||
'Trick': 'tricks',
|
||||
'Problemverhalten': 'problemverhalten',
|
||||
'Mentale Auslastung': 'mentale-auslastung',
|
||||
'Hundesport': 'hundesport',
|
||||
'Koerperpflege': 'koerperpflege',
|
||||
'Körperpflege': 'koerperpflege',
|
||||
'Welpe Basics': 'welpe-basics',
|
||||
}
|
||||
with db() as conn:
|
||||
rows = conn.execute("""
|
||||
SELECT exercise_id, name, kategorie, schwierigkeit, alter_ab,
|
||||
dauer, beschreibung, schritte, tipp
|
||||
FROM training_exercises ORDER BY kategorie, name
|
||||
""").fetchall()
|
||||
by_tab = {}
|
||||
for r in rows:
|
||||
tab = CAT_TO_TAB.get(r['kategorie'], r['kategorie'].lower().replace(' ', '-'))
|
||||
by_tab.setdefault(tab, []).append({
|
||||
'exercise_id': r['exercise_id'],
|
||||
'name': r['name'],
|
||||
'kategorie': tab,
|
||||
'schwierigkeit': r['schwierigkeit'] or 'mittel',
|
||||
'alter': r['alter_ab'],
|
||||
'dauer': r['dauer'],
|
||||
'beschreibung': r['beschreibung'],
|
||||
'schritte': _json.loads(r['schritte'] or '[]'),
|
||||
'tipp': r['tipp'],
|
||||
})
|
||||
return by_tab
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Übungs-Status
|
||||
# ------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue