diff --git a/backend/routers/training_planning.py b/backend/routers/training_planning.py index 461999e..dfa8fa8 100644 --- a/backend/routers/training_planning.py +++ b/backend/routers/training_planning.py @@ -1863,6 +1863,7 @@ def create_training_unit(data: dict, tenant: TenantContext = Depends(get_tenant_ lead_ins, ) if assistant_set: + av_db = None if assistant_val is None else PsycopgJson(assistant_val) cur.execute( """ INSERT INTO training_units ( @@ -1874,7 +1875,7 @@ def create_training_unit(data: dict, tenant: TenantContext = Depends(get_tenant_ ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING id """, - base_params + (assistant_val,), + base_params + (av_db,), ) else: cur.execute( @@ -2013,7 +2014,7 @@ def update_training_unit(unit_id: int, data: dict, tenant: TenantContext = Depen eff_lead_for_co, ) assist_sql = ", assistant_trainer_profile_ids = %s" - assist_params.append(na) + assist_params.append(None if na is None else PsycopgJson(na)) debrief_frag = "" if "debrief_completed" in data and not is_blueprint: diff --git a/backend/version.py b/backend/version.py index 9e7a6d1..013f24b 100644 --- a/backend/version.py +++ b/backend/version.py @@ -1,6 +1,6 @@ # Shinkan Jinkendo Version Information -APP_VERSION = "0.8.129" +APP_VERSION = "0.8.130" BUILD_DATE = "2026-05-12" DB_SCHEMA_VERSION = "20260514062" @@ -24,7 +24,7 @@ MODULE_VERSIONS = { "exercises": "2.28.0", # GET /api/exercises Keyset cursor_updated_at + cursor_id; Sortierung id als Tie-break "training_units": "0.3.0", # GET /api/training-units Keyset cursor_planned_date + cursor_id (+ optional cursor_planned_time); Sort mit id-Tiebreak "training_programs": "0.1.0", - "planning": "0.9.4", # list_training_units: Keyset-Pagination + stabile Sortierung (NULLS LAST + id) + "planning": "0.9.5", # assistant_trainer_profile_ids: JSONB-Write mit PsycopgJson (Fix 500 bei Co-Liste) "dashboard": "1.1.0", # GET /api/dashboard/kpis inkl. training_home (ein Client-Roundtrip für KPIs + nächste Termine) "training_modules": "1.0.0", "import_wiki": "1.0.0", @@ -36,6 +36,13 @@ MODULE_VERSIONS = { } CHANGELOG = [ + { + "version": "0.8.130", + "date": "2026-05-13", + "changes": [ + "Fix: PUT/POST training_units — assistant_trainer_profile_ids als JSONB mit psycopg2.extras.Json schreiben (rohe Python-Liste → ProgrammingError/500 bei Co-Zuweisung).", + ], + }, { "version": "0.8.129", "date": "2026-05-13",