Fix crashes

sync
Laurent 8 months ago
parent 1e109ab884
commit 9d2e2ec912
  1. 5
      tournaments/models/group_stage.py
  2. 9
      tournaments/models/match.py
  3. 5
      tournaments/models/player_registration.py
  4. 5
      tournaments/models/round.py
  5. 5
      tournaments/models/team_registration.py
  6. 11
      tournaments/models/team_score.py
  7. 4
      tournaments/signals.py

@ -34,7 +34,10 @@ class GroupStage(SideStoreModel):
super().save(*args, **kwargs) super().save(*args, **kwargs)
def get_tournament_id(self): def get_tournament_id(self):
return self.tournament.id if self.tournament:
return self.tournament.id
else:
return None
def display_name(self): def display_name(self):
if self.name: if self.name:

@ -46,11 +46,16 @@ class Match(SideStoreModel):
def tournament(self): def tournament(self):
if self.round: if self.round:
return self.round.tournament return self.round.tournament
else: elif self.group_stage:
return self.group_stage.tournament return self.group_stage.tournament
return None
def get_tournament_id(self): def get_tournament_id(self):
return self.tournament().id tournament = self.tournament()
if tournament:
return tournament.id
else:
return None
def court_name(self, index): def court_name(self, index):
club = None club = None

@ -49,7 +49,10 @@ class PlayerRegistration(SideStoreModel):
super().save(*args, **kwargs) super().save(*args, **kwargs)
def get_tournament_id(self): def get_tournament_id(self):
return self.team_registration.tournament.id if self.team_registration and self.team_registration.tournament:
return self.team_registration.tournament.id
else:
return None
def name(self): def name(self):
return f"{self.first_name} {self.last_name}" return f"{self.first_name} {self.last_name}"

@ -31,7 +31,10 @@ class Round(SideStoreModel):
super().save(*args, **kwargs) super().save(*args, **kwargs)
def get_tournament_id(self): def get_tournament_id(self):
return self.tournament.id if self.tournament:
return self.tournament.id
else:
return None
def name(self): def name(self):
if self.parent and self.parent.parent is None: if self.parent and self.parent.parent is None:

@ -50,7 +50,10 @@ class TeamRegistration(SideStoreModel):
super().save(*args, **kwargs) super().save(*args, **kwargs)
def get_tournament_id(self): def get_tournament_id(self):
return self.tournament.id if self.tournament:
return self.tournament.id
else:
return None
def player_names_as_list(self): def player_names_as_list(self):
players = list(self.player_registrations.all()) players = list(self.player_registrations.all())

@ -14,7 +14,10 @@ class TeamScore(SideStoreModel):
pass pass
def __str__(self): def __str__(self):
return f"{self.match.stage_name()} #{self.match.index}: {self.player_names()}" if self.match:
return f"{self.match.stage_name()} #{self.match.index}: {self.player_names()}"
else:
return "Empty"
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
self.store_id = str(self.get_tournament_id()) self.store_id = str(self.get_tournament_id())
@ -29,7 +32,11 @@ class TeamScore(SideStoreModel):
return None return None
def get_tournament_id(self): def get_tournament_id(self):
return self.tournament().id tournament = self.tournament()
if tournament:
return tournament.id
else:
return None
def player_names(self): def player_names(self):
if self.team_registration: if self.team_registration:

@ -91,6 +91,8 @@ def notify_team(team, tournament, message_type):
@receiver(pre_delete, sender=TeamRegistration) @receiver(pre_delete, sender=TeamRegistration)
def unregister_team(sender, instance, **kwargs): def unregister_team(sender, instance, **kwargs):
if not instance.tournament:
return
if instance.tournament.is_deleted: if instance.tournament.is_deleted:
return return
if instance.tournament.enable_online_registration is False: if instance.tournament.enable_online_registration is False:
@ -157,7 +159,7 @@ def check_waiting_list(sender, instance, **kwargs):
@receiver(pre_save, sender=TeamRegistration) @receiver(pre_save, sender=TeamRegistration)
def warn_team_walkout_status_change(sender, instance, **kwargs): def warn_team_walkout_status_change(sender, instance, **kwargs):
if instance.id is None or instance.tournament.enable_online_registration is False: if instance.id is None or instance.tournament is None or instance.tournament.enable_online_registration is False:
return return
previous_instance = None previous_instance = None

Loading…
Cancel
Save