This commit is contained in:
team3
2026-06-14 22:53:10 +02:00
parent 08dd0ccd69
commit 25a07ede4d
5 changed files with 79 additions and 30 deletions

View File

@@ -243,14 +243,20 @@ async def baustein_pruefung_route(req: BausteinPruefungRequest):
if not req.frage.strip():
raise HTTPException(400, "Antwort braucht eine laufende Frage")
data = await pruefung_bewertung(
req.topic, req.baustein, req.section, vertiefung, req.frage, msgs, gute, provider=req.provider,
req.topic, req.baustein, req.section, vertiefung, req.frage, msgs, gute,
nachfrage_runde=req.nachfrage_runde, provider=req.provider,
)
if data is None:
raise HTTPException(502, "Bewertung fehlgeschlagen — bitte erneut versuchen")
# Mündliche Prüfung: noch unklar → Folgefrage stellen, KEINE Wertung, kein Score.
if data["status"] == "nachfrage":
return {"frage": data["frage"], "feedback": data["feedback"], "bewertung": None,
"gute_antworten": gute, "absolviert": absolviert, "verstanden": verstanden, "gemeistert": gemeistert}
# Score driftfrei aus dem Basis-Score rechnen (Re-Bewertung ersetzt das vorige Ergebnis).
score = score_berechnen(
req.score_vor_frage, data["bewertung"] == "gut", req.tier2, req.tier3, absolviert, gemeistert,
req.score_vor_frage, data["status"] == "gut", req.tier2, req.tier3, absolviert, gemeistert,
)
gute = await set_baustein_score(req.topic, req.baustein, score)
if score >= NOETIG and not absolviert:
@@ -263,7 +269,7 @@ async def baustein_pruefung_route(req: BausteinPruefungRequest):
if score >= MEISTERN and not gemeistert:
await set_baustein_gemeistert(req.topic, req.baustein)
gemeistert = True
return {"feedback": data["feedback"], "bewertung": data["bewertung"], "gute_antworten": gute, "absolviert": absolviert, "verstanden": verstanden, "gemeistert": gemeistert}
return {"feedback": data["feedback"], "bewertung": data["status"], "gute_antworten": gute, "absolviert": absolviert, "verstanden": verstanden, "gemeistert": gemeistert}
# --- Guides ---