fix: _merge_map_objectives保留O+KR额外字段
This commit is contained in:
+12
-1
@@ -308,7 +308,18 @@ def _merge_map_objectives(m, db):
|
||||
for dim in dims:
|
||||
key = dim.get("key", "")
|
||||
if key in grouped:
|
||||
dim["objectives"] = [{"name": o.name, "description": o.description or "", "icon": o.icon or "target", "kpis": o.kpis or []} for o in grouped[key]]
|
||||
merged = []
|
||||
for i, o in enumerate(grouped[key]):
|
||||
# 保留原有JSON中的额外字段(targetValue/krs等)
|
||||
existing = dim["objectives"][i] if i < len(dim["objectives"]) else {}
|
||||
merged.append({
|
||||
"name": o.name,
|
||||
"description": o.description or existing.get("description", ""),
|
||||
"icon": o.icon or existing.get("icon", "target"),
|
||||
"kpis": o.kpis or existing.get("kpis", []),
|
||||
**{k: existing[k] for k in existing if k not in ("name", "description", "icon", "kpis")},
|
||||
})
|
||||
dim["objectives"] = merged
|
||||
m.dimensions = dims
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user