Spezialisierung je Thema: begrenzt den Umfang auf einen Ausschnitt
Drittes Feld neben Thema und Hinweisen. Hinweise fügen hinzu, die Spezialisierung nimmt weg: Recherche, Gliederung, Kapitel und Prüfung bekommen sie als verbindliche Grenze; nur Stoff, der dafür gebraucht wird, Grundlagen nur soweit nötig. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,7 @@ app.add_middleware(GZipMiddleware, minimum_size=1000) # Buchdaten sind 1–2 MB
|
||||
class ThemaNeu(BaseModel):
|
||||
name: str
|
||||
hinweise: str = ""
|
||||
spezialisierung: str = ""
|
||||
|
||||
|
||||
class Position(BaseModel):
|
||||
@@ -67,7 +68,7 @@ def _thema_info(t: dict) -> dict | None:
|
||||
if not vs:
|
||||
return None
|
||||
neueste = vs[-1]
|
||||
return {"slug": t["slug"], "name": t["name"], "titel": t["titel"], "hinweise": t.get("hinweise", ""),
|
||||
return {"slug": t["slug"], "name": t["name"], "titel": t["titel"], "hinweise": t.get("hinweise", ""), "spezialisierung": t.get("spezialisierung", ""),
|
||||
"angelegt": t.get("angelegt", ""), "status": neueste["status"], "laeuft": neueste["laeuft"],
|
||||
"stufe": neueste["stufe"], "versionen": vs}
|
||||
|
||||
@@ -83,7 +84,7 @@ async def thema_anlegen(body: ThemaNeu):
|
||||
if not state.name_ok(name):
|
||||
raise HTTPException(400, "Ungültiger Name")
|
||||
try:
|
||||
return _thema_info(state.anlegen(name, body.hinweise))
|
||||
return _thema_info(state.anlegen(name, body.hinweise, body.spezialisierung))
|
||||
except ValueError as e:
|
||||
raise HTTPException(409, str(e))
|
||||
|
||||
@@ -114,7 +115,7 @@ async def zustand(slug: str, n: int):
|
||||
key = _key(slug, n)
|
||||
t = _thema(slug)
|
||||
st = state.zustand(key)
|
||||
return {"slug": slug, "name": t["name"], "version": n, "titel": t["titel"], "hinweise": t.get("hinweise", ""), **st,
|
||||
return {"slug": slug, "name": t["name"], "version": n, "titel": t["titel"], "hinweise": t.get("hinweise", ""), "spezialisierung": t.get("spezialisierung", ""), **st,
|
||||
"deutung": st.get("deutung") or state.deutung(key), "ereignisse": st["ereignisse"][-100:]}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user