This commit is contained in:
team3
2026-06-27 09:50:50 +02:00
parent f018ca5048
commit 8a43839f18
9 changed files with 63 additions and 1189 deletions

View File

@@ -232,21 +232,18 @@ async def get_frage_muster(topic: str, baustein: str):
@router.get("/bausteine/artefakte")
async def get_artefakte(topic: str, typ: str | None = None):
"""Lern-Artefakte (Karteikarten/Beispiele/Diagramme) je Thema, gruppiert nach Baustein-Norm.
Diagramm liegt auf Baustein-Ebene (sub_norm=''), Karteikarte/Beispiel je Subbaustein."""
"""Lern-Artefakte (Karteikarten/Beispiele) je Thema, gruppiert nach Baustein-Norm — je Subbaustein."""
rows = await get_sub_artefakte(topic, typ)
out: dict[str, dict] = {}
for r in rows:
b = out.setdefault(r["baustein_norm"], {"baustein": r["baustein"], "karteikarte": [], "beispiel": [], "diagramm": None})
b = out.setdefault(r["baustein_norm"], {"baustein": r["baustein"], "karteikarte": [], "beispiel": []})
if r["baustein"] and not b["baustein"]:
b["baustein"] = r["baustein"]
try:
daten = json.loads(r["daten"])
except (ValueError, TypeError):
continue
if r["typ"] == "diagramm":
b["diagramm"] = daten
elif r["typ"] in ("karteikarte", "beispiel"):
if r["typ"] in ("karteikarte", "beispiel"):
b[r["typ"]].append({"subbaustein": r["sub_titel"], **daten})
return {"artefakte": out}