luechtdiode / KuTu

Wettkampf-App für Kunst- und Geräteturnen
Apache License 2.0
8 stars 0 forks source link

Startreihenfolge optimieren #685

Closed luechtdiode closed 1 year ago

luechtdiode commented 1 year ago

Die aktuelle Logik ist zu starr. Innerhalb einer Geräteriege wird stur nach folgender Logik sortiert:

  1. nach Kategorie/Programm (optimiert den Wettkampfablauf)
  2. nach Verein alphabetisch (optimiert den Wettkampfablauf)
  3. nach Jahrgang (berücksichtigt die Wettkampf-Erfahrung. Jüngere haben davon weniger und profitieren davon, wenn jemand mit Erfahrung vorher startet).
  4. nach Athlet-Name alphabetisch (garantiert eine deterministische Reihenfolge, auch mit dezentral verwendeten Installationen)
  5. nach Athlet-Vorname alphabetisch (garantiert eine deterministische Reihenfolge, auch mit dezentral verwendeten Installationen)

Alternativen:

  1. Offset anhand Kalender
  2. Invertierte Reihenfolge anhand Modulo 2 des Wettkampftages
  3. Reihenfolge anhand des Zeitpunktes der Vereins- und Athletregistrierung
  4. Reihenfolge beliebig einstellbar (ohne automatischer Logik)
luechtdiode commented 1 year ago

Eine manuelle Sortierung ist sehr komplex, wenn sie im Zusammenhang mit bestehenden Funktionen wie dezentrale und zentrale Riegenerfassung, An-/Abmeldungen bis zum Wettkampf-Tag mit automatischer Einteilungs-Nachführung etc. konsistent funktionieren soll. Zudem garantiert eine manuelle Sortierung nicht, dass die Reihenfolge dann "gerecht" ist. Ausserdem ist sie bei grösserer Teilnehmerzahlen auch administrativ aufwendig.

Vorschlag

Nachfolgend wird ein Konzept für die automatische Rotierung der Vereine und deren Teilnehmer beschrieben, welches ohne Administrativem Overhead beim Organisator funktioniert und keine Datenmodelländerung erforderlich macht: Die Reihenfolge der Teilnehmenden ist dadurch bei jedem Tag im Jahr eine andere.

Normalisierungsregel Vereinsname

Vereinsnamen werden vor der Sortierung um die vorangestestellen Vereinsart-Bezeichnungen bereinigt (BTV, DTV, STV, GETU, TSV, TV und TZ)

Invertier-Regel

Wenn der aktuelle Tag im Jahr durch 2 teilbar ist, dann werden alphabetische Reihenfolgen umgekehrt.

Rotations-Regel

Die Alphabetische Sortierung verschiebt den Anfangsbuchstaben im Alphabet pro Tag um 1 Zeichen (rotierend).

Altersbegrenzung Alter vor Jugend

Wenn das Alter am Wettkampf 16+ ist, spielt der Jahrgang keine Rolle mehr für die Reihenfolge. Ansonsten starten ältere vor jüngeren.

  1. nach Kategorie/Programm
  2. nach Verein alphabetisch (siehe Normalisierungsregel Vereinsname, Invertier-Regel und Rotations-Regel)
  3. nach Jahrgang (siehe Altersbegrenzung 16+)
  4. nach Athlet-Name alphabetisch (siehe Normalisierungsregel Vereinsname, Invertier-Regel und Rotations-Regel)
  5. nach Athlet-Vorname alphabetisch (siehe Normalisierungsregel Vereinsname, Invertier-Regel und Rotations-Regel)
luechtdiode commented 1 year ago

Die Rotationsregeln können nun pro Wettkampf explizit spezifiziert werden. Es gibt dazu ein neues Feld im Wettkampf Mutationsdialog. Die Regeln können analog der Altersklassen oder Punktegleichstand aus einer Liste von vordefinierten Regeln ausgewählt werden, oder individuell zusammengestellt werden.