diff --git a/backend/services/operating_context.py b/backend/services/operating_context.py index e122ce3..ede67fd 100644 --- a/backend/services/operating_context.py +++ b/backend/services/operating_context.py @@ -54,20 +54,27 @@ def _seed_ui_profile(archetype_key: str) -> dict[str, Any]: return resolve_ui_profile(archetype_key) +def _normalize_ui_profile_capabilities(profile: dict[str, Any]) -> dict[str, Any]: + """Spiegelt resolve_ui_profile: omCapabilities aus dataSlices falls fehlend.""" + result = dict(profile) + slices = list(result.get("dataSlices") or []) + caps = list(result.get("omCapabilities") or slices) + result["dataSlices"] = slices + result["omCapabilities"] = caps + return result + + def _resolve_ui_profile(archetype_key: str) -> dict[str, Any]: seed_profile = _seed_ui_profile(archetype_key) db_profile = _load_ui_profile_from_db(archetype_key) if not db_profile: - return seed_profile + return _normalize_ui_profile_capabilities(seed_profile) merged = {**seed_profile, **db_profile} if not (merged.get("omCapabilities") or merged.get("dataSlices")): seed_slices = seed_profile.get("dataSlices") or [] merged["dataSlices"] = list(seed_slices) - merged["omCapabilities"] = list( - seed_profile.get("omCapabilities") or seed_slices - ) - return merged + return _normalize_ui_profile_capabilities(merged) def _resolve_om_capabilities(ui_profile: dict[str, Any]) -> frozenset[str]: