Meisterschaft: eine pro Saison, mit zugeordneten Turnieren
Auf Vorgabe des Auftraggebers umgestellt:
* genau eine Meisterschaft je Saison (unique auf saison_jahr)
* turnier.meisterschaft_id (nullable FK) statt bool zaehlt_meisterschaft;
NULL = "o. M.". Kompat-Property turnier.zaehlt_meisterschaft bleibt.
* Teilwertungen (Erwachsene-Gesamt, Jugend J1-J5) sind (Kategorie, Klasse)-
Sichten auf die eine Meisterschaft, keine eigenen Zeilen mehr
* meisterschaft_stand: kategorie + klasse_id + Unique je Wertung/Fahrer
* berechne_stand(kategorie=, klasse_id=), wertungen_fuer(), berechne_alle_wertungen()
* Read-API: /meisterschaften/{id}/stand[?wertung=], .../endlauf-qualifikation?wertung=
* Ingest: POST /turniere haengt zaehlende Turniere an die Jahres-Meisterschaft
* Initialmigration neu erzeugt (Projekt noch nicht ausgerollt); Seed: eine
"HTH-Meisterschaft <jahr>"
* Tests angepasst/ergaenzt (61 gruen)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+10
-2
@@ -10,6 +10,7 @@ from oamc.models import (
|
||||
Ergebnis,
|
||||
Fahrer,
|
||||
Klasse,
|
||||
Meisterschaft,
|
||||
Start,
|
||||
Turnier,
|
||||
Veranstaltung,
|
||||
@@ -18,6 +19,11 @@ from oamc.models import (
|
||||
from oamc.models.enums import StartStatus, TurnierStatus, VeranstaltungStatus
|
||||
|
||||
|
||||
def meisterschaft(db, jahr=2026):
|
||||
"""Die eine Meisterschaft der Saison (aus dem Seed)."""
|
||||
return db.scalars(select(Meisterschaft).where(Meisterschaft.saison_jahr == jahr)).one()
|
||||
|
||||
|
||||
def klasse(db, code="J 3"):
|
||||
return db.scalars(select(Klasse).where(Klasse.code == code, Klasse.saison_jahr == 2026)).one()
|
||||
|
||||
@@ -33,11 +39,13 @@ def veranstaltung(db, *, datum=date(2026, 5, 31), titel="Testturnier", status=Ve
|
||||
return v
|
||||
|
||||
|
||||
def turnier(db, v=None, *, name="Reinheim", zaehlt_meisterschaft=True, aktiv=False,
|
||||
def turnier(db, v=None, *, name="Reinheim", meisterschaft=None, aktiv=False,
|
||||
status=TurnierStatus.LAUFEND, flush=True):
|
||||
"""``meisterschaft``: Meisterschaft-Objekt (zaehlt zur Jahreswertung) oder None."""
|
||||
v = v or veranstaltung(db)
|
||||
t = Turnier(
|
||||
veranstaltung_id=v.id, name=name, zaehlt_meisterschaft=zaehlt_meisterschaft,
|
||||
veranstaltung_id=v.id, name=name,
|
||||
meisterschaft_id=meisterschaft.id if meisterschaft is not None else None,
|
||||
ist_aktiv=aktiv, status=status,
|
||||
)
|
||||
db.add(t)
|
||||
|
||||
Reference in New Issue
Block a user