Add user-initiated registration cancellation logic

main
Razmig Sarkissian 3 weeks ago
parent 11d6913807
commit 34924db360
  1. 8
      tournaments/models/team_registration.py
  2. 3
      tournaments/services/tournament_unregistration.py
  3. 4
      tournaments/signals.py

@ -37,6 +37,7 @@ class TeamRegistration(TournamentSubModel):
final_ranking = models.IntegerField(null=True, blank=True)
points_earned = models.IntegerField(null=True, blank=True)
unique_random_index = models.IntegerField(default=0)
user_canceled_registration = False
def delete_dependencies(self):
for player_registration in self.player_registrations.all():
@ -560,3 +561,10 @@ class TeamRegistration(TournamentSubModel):
return player_registrations[0].player_contact()
return None
def cancel_registration(self):
self.walk_out = True
self.user_canceled_registration = True
def user_did_cancel_registration(self):
return self.user_canceled_registration and self.walk_out

@ -110,7 +110,8 @@ class TournamentUnregistrationService:
def _delete_registered_team(self):
team_registration = self.player_registration.team_registration
team_registration.delete()
team_registration.cancel_registration()
team_registration.save()
def _cleanup_session(self):
self.request.session['team_registration'] = []

@ -190,6 +190,10 @@ def warn_team_walkout_status_change(sender, instance, **kwargs):
notify_team(instance, instance.tournament, TeamEmailType.OUT_OF_WALKOUT_IS_IN)
elif not previous_instance.out_of_tournament() and instance.out_of_tournament():
instance.cancel_time_to_confirm()
print("User did cancel registration", instance.user_did_cancel_registration())
if instance.user_did_cancel_registration():
notify_team(instance, instance.tournament, TeamEmailType.UNREGISTERED)
else:
notify_team(instance, instance.tournament, TeamEmailType.WALKOUT)
if was_out and not is_out:

Loading…
Cancel
Save