From b9eb6382cae3f594c5bf59d0e17a70737e7a31f6 Mon Sep 17 00:00:00 2001 From: Raz Date: Wed, 16 Apr 2025 13:23:31 +0200 Subject: [PATCH] add a confirm if place signal on team reg --- tournaments/models/team_registration.py | 10 ++++++++++ tournaments/signals.py | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/tournaments/models/team_registration.py b/tournaments/models/team_registration.py index bf77748..672ac7b 100644 --- a/tournaments/models/team_registration.py +++ b/tournaments/models/team_registration.py @@ -342,6 +342,16 @@ class TeamRegistration(SideStoreModel): player.registration_status = RegistrationStatus.CONFIRMED player.save() + def confirm_if_placed(self): + if self.needs_confirmation() is False: + return + if self.group_stage or self.round or self.confirmation_date is not None: + for player in self.players_sorted_by_rank: + if player.registration_status is not RegistrationStatus.CONFIRMED: + player.time_to_confirm = None + player.registration_status = RegistrationStatus.CONFIRMED + player.save() + # Add to TeamRegistration class in team_registration.py def get_payment_status(self): """ diff --git a/tournaments/signals.py b/tournaments/signals.py index 4dad2f8..e485073 100644 --- a/tournaments/signals.py +++ b/tournaments/signals.py @@ -150,6 +150,7 @@ def warn_team_walkout_status_change(sender, instance, **kwargs): except TeamRegistration.DoesNotExist: return + previous_teams = instance.tournament.teams(True) current_teams = instance.tournament.teams(True, instance) previous_retrieved_teams = [team for team in previous_teams if team.team_registration.id == previous_instance.id] @@ -188,3 +189,9 @@ def warn_team_walkout_status_change(sender, instance, **kwargs): first_waiting_list_team.set_time_to_confirm(ttc) notify_team(first_waiting_list_team, instance.tournament, TeamEmailType.OUT_OF_WAITING_LIST) + +@receiver(post_save, sender=TeamRegistration) +def team_confirm_if_placed(sender, instance, **kwargs): + if instance.id is None or instance.tournament is None or instance.tournament.enable_online_registration is False: + return + instance.confirm_if_placed()