This commit is contained in:
Team3
2026-06-07 10:17:21 +02:00
parent 1d44fcd891
commit 6743b1234e
2 changed files with 15 additions and 15 deletions

View File

@@ -46,8 +46,9 @@ async def get_topics():
return db_topics + sorted(derived - set(db_topics))
# Lernschulden-Regel: höchstens 5 erstellte, aber nicht absolvierte Guides.
# Darüber sind nur Neu-Generierungen bereits erstellter Guides erlaubt.
# Lernschulden-Regel: JE Format (MiniGuide/Guide/FullGuide) höchstens 5 erstellte,
# aber nicht absolvierte Guides. Darüber sind nur Neu-Generierungen bereits
# erstellter Guides erlaubt. Themen, Bausteine und OnePager sind unbegrenzt.
MAX_OFFENE_GUIDES = 5
@@ -168,12 +169,12 @@ async def create(req: GuideCreateRequest):
for g in await list_guides():
if g["topic"] == req.topic.strip() and g["format"] == req.format and g["status"] in ("queued", "generating"):
raise HTTPException(409, "Generierung läuft bereits")
# Lernschulden-Regel: neue Guides nur, wenn weniger als 5 offene (erstellt, nicht absolviert)
# Lernschulden-Regel: neue Guides nur, wenn das Format weniger als 5 offene hat (erstellt, nicht absolviert)
if req.format != "OnePager" and not guide_content_path(req.topic.strip(), req.format).exists():
formate = await _formate_stats()
offen = sum(v["erstellt"] - v["absolviert"] for v in formate.values())
stat = (await _formate_stats()).get(req.format, {"erstellt": 0, "absolviert": 0})
offen = stat["erstellt"] - stat["absolviert"]
if offen >= MAX_OFFENE_GUIDES:
raise HTTPException(409, f"Erst Guides absolvieren — maximal {MAX_OFFENE_GUIDES} offene erlaubt ({offen} offen)")
raise HTTPException(409, f"Erst {req.format}s absolvieren — maximal {MAX_OFFENE_GUIDES} offene erlaubt ({offen} offen)")
await create_topic(req.topic.strip())
now = datetime.now(timezone.utc).isoformat()
guide = {