add unique_random_index in team

sync_v2
Raz 6 months ago
parent 0da223f5e6
commit 0650ebd77f
  1. 18
      tournaments/migrations/0123_teamregistration_unique_random_index.py
  2. 1
      tournaments/models/team_registration.py
  3. 21
      tournaments/models/tournament.py
  4. 2
      tournaments/templates/tournaments/broadcast/broadcast_club.html

@ -0,0 +1,18 @@
# Generated by Django 5.1 on 2025-05-13 09:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tournaments', '0122_groupstage_planned_start_date_and_more'),
]
operations = [
migrations.AddField(
model_name='teamregistration',
name='unique_random_index',
field=models.IntegerField(default=0),
),
]

@ -32,6 +32,7 @@ class TeamRegistration(SideStoreModel):
final_ranking = models.IntegerField(null=True, blank=True)
points_earned = models.IntegerField(null=True, blank=True)
unique_random_index = models.IntegerField(default=0)
def delete_dependencies(self):
for player_registration in self.player_registrations.all():

@ -432,20 +432,22 @@ class Tournament(BaseModel):
t.registration_date is None,
t.registration_date or datetime.min,
t.initial_weight,
t.unique_random_index,
t.team_registration.id
))
waiting_teams.sort(key=lambda t: (
t.registration_date is None,
t.registration_date or datetime.min,
t.initial_weight,
t.unique_random_index,
t.team_registration.id
))
else:
complete_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
waiting_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
complete_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
waiting_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
wildcard_group_stage.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
wildcard_bracket.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
wildcard_group_stage.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
wildcard_bracket.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
# Split teams into main bracket and waiting list
computed_team_count = self.team_count - len(wildcard_bracket) - len(wildcard_group_stage)
@ -454,8 +456,8 @@ class Tournament(BaseModel):
qualified_teams = complete_teams[:computed_team_count]
excess_teams = complete_teams[computed_team_count:]
qualified_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
excess_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
qualified_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
excess_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
# Combine all waiting list teams
waiting_list = excess_teams + waiting_teams
@ -464,16 +466,17 @@ class Tournament(BaseModel):
t.registration_date is None,
t.registration_date or datetime.min,
t.initial_weight,
t.unique_random_index,
t.team_registration.id
))
else:
waiting_list.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
waiting_list.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
# Return final sorted list
bracket_teams = qualified_teams[:bracket_seeds] + wildcard_bracket
gs_teams = qualified_teams[bracket_seeds:(bracket_seeds+group_stage_team_count)] + wildcard_group_stage
bracket_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
gs_teams.sort(key=lambda t: (t.initial_weight, t.team_registration.id))
bracket_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
gs_teams.sort(key=lambda t: (t.initial_weight, t.unique_random_index, t.team_registration.id))
all_teams = bracket_teams + gs_teams
for team in bracket_teams:
team.set_stage("Tableau")

@ -8,7 +8,7 @@
{% block content %}
<div class="grid-x">
<div class="cell topblock padding10">
<div class="cell topblock">
<div class="bubble">
{% for tournament in tournaments %}

Loading…
Cancel
Save