diff --git a/src/oamc/api/v1/ingest.py b/src/oamc/api/v1/ingest.py index 1b4b2ee..bb61ca2 100644 --- a/src/oamc/api/v1/ingest.py +++ b/src/oamc/api/v1/ingest.py @@ -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],