finalisieren zieht die Veranstaltung mit (vorlaeufig/final)

Nur so kommen Turnierergebnisse in die Meisterschaftswertung, ohne dass ein
separater Veranstaltungs-Status-Endpoint noetig ist.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
linus
2026-09-05 20:32:12 +02:00
co-authored by Claude Sonnet 5
parent c33aaa1a4b
commit 6f3143f953
+10 -1
View File
@@ -155,11 +155,20 @@ def turnier_finalisieren(db: DbDep, _key: IngestKey, turnier_id: int):
if t is None:
raise HTTPException(404, "Turnier nicht gefunden")
bericht = turnier_auswerten(db, turnier_id, zeit_aus_messungen=True, schreiben=True)
from oamc.models.enums import TurnierStatus
from oamc.models.enums import TurnierStatus, VeranstaltungStatus
t.status = TurnierStatus.FINAL
# Parent-Veranstaltung mitfuehren: final, wenn alle ihre Turniere final sind,
# sonst mindestens "vorlaeufig" (Voraussetzung fuer die Meisterschaftswertung).
v = t.veranstaltung
if all(x.status == TurnierStatus.FINAL for x in v.turniere):
v.status = VeranstaltungStatus.FINAL
elif v.status == VeranstaltungStatus.GEPLANT:
v.status = VeranstaltungStatus.VORLAEUFIG
return {
"turnier_id": turnier_id,
"turnier_status": t.status.value,
"veranstaltung_status": v.status.value,
"gewertete_starts": bericht.gewertete_starts,
"vorlaeufige_starts": bericht.vorlaeufige_starts,
"abweichungen": [a.__dict__ for a in bericht.abweichungen],