update
This commit is contained in:
@@ -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}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user