chore(version): update version and changelog for release 0.8.130
All checks were successful
Deploy Development / deploy (push) Successful in 40s
Test Suite / pytest-backend (push) Successful in 36s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 12s
Test Suite / k6 /health Baseline (push) Successful in 33s
Test Suite / playwright-tests (push) Successful in 1m9s

- Bumped APP_VERSION to 0.8.130 and updated the changelog to reflect recent changes.
- Fixed PUT/POST for training_units to handle assistant_trainer_profile_ids as JSONB using psycopg2.extras.Json, resolving a ProgrammingError during co-assignment.
This commit is contained in:
Lars 2026-05-14 15:40:45 +02:00
parent a1a3f2e0a1
commit b0faa4bfab
2 changed files with 12 additions and 4 deletions

View File

@ -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:

View File

@ -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",