@ -79,9 +79,11 @@ def unregister_team(sender, instance, **kwargs):
teams = instance . tournament . teams ( True )
first_waiting_list_team = instance . tournament . first_waiting_list_team ( teams )
if first_waiting_list_team and first_waiting_list_team . id != instance . id :
waiting_list_teams = instance . tournament . waiting_list_teams ( teams )
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
if instance . tournament . automatic_waiting_list ( ) :
waiting_list_teams = instance . tournament . waiting_list_teams ( teams )
ttc = None
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
first_waiting_list_team . set_time_to_confirm ( ttc )
notify_team ( first_waiting_list_team , instance . tournament , TeamEmailType . OUT_OF_WAITING_LIST )
@ -129,14 +131,17 @@ def check_waiting_list(sender, instance, **kwargs):
]
waiting_list_teams = previous_state . waiting_list_teams ( previous_state_teams )
automatic_waiting_list = instance . automatic_waiting_list ( )
ttc = None
for team in teams_in_to_warn :
if waiting_list_teams is not None :
ttc = previous_state . calculate_time_to_confirm ( len ( waiting_list_teams ) )
if automatic_waiting_list :
if waiting_list_teams is not None :
ttc = previous_state . calculate_time_to_confirm ( len ( waiting_list_teams ) )
team . team_registration . set_time_to_confirm ( ttc )
notify_team ( team . team_registration , instance , TeamEmailType . IN_TOURNAMENT_STRUCTURE )
for team in teams_out_to_warn :
team . team_registration . set_time_to_confirm ( None )
team . team_registration . cancel_time_to_confirm ( )
notify_team ( team . team_registration , instance , TeamEmailType . OUT_OF_TOURNAMENT_STRUCTURE )
@receiver ( pre_save , sender = TeamRegistration )
@ -152,7 +157,7 @@ def warn_team_walkout_status_change(sender, instance, **kwargs):
print ( " TeamRegistration.DoesNotExist " )
return
ttc = None
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 ]
@ -167,27 +172,31 @@ def warn_team_walkout_status_change(sender, instance, **kwargs):
print ( was_out , previous_instance . out_of_tournament ( ) , is_out , instance . out_of_tournament ( ) )
if not instance . out_of_tournament ( ) and is_out and ( previous_instance . out_of_tournament ( ) or not was_out ) :
instance . cancel_time_to_confirm ( )
notify_team ( instance , instance . tournament , TeamEmailType . OUT_OF_WALKOUT_WAITING_LIST )
elif was_out and not is_out :
waiting_list_teams = instance . tournament . waiting_list_teams ( current_teams )
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
if instance . tournament . automatic_waiting_list ( ) :
waiting_list_teams = instance . tournament . waiting_list_teams ( current_teams )
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
instance . set_time_to_confirm ( ttc )
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 ( )
notify_team ( instance , instance . tournament , TeamEmailType . WALKOUT )
if was_out and not is_out :
first_out_of_list = instance . tournament . first_waiting_list_team ( current_teams )
if first_out_of_list :
first_out_of_list . set_time_to_confirm ( None )
first_out_of_list . cancel_time_to_confirm ( )
notify_team ( first_out_of_list , instance . tournament , TeamEmailType . UNEXPECTED_OUT_OF_TOURNAMENT )
elif not was_out and is_out :
first_waiting_list_team = instance . tournament . first_waiting_list_team ( previous_teams )
if first_waiting_list_team :
waiting_list_teams = instance . tournament . waiting_list_teams ( current_teams )
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
if instance . tournament . automatic_waiting_list ( ) :
waiting_list_teams = instance . tournament . waiting_list_teams ( current_teams )
if waiting_list_teams is not None :
ttc = instance . tournament . calculate_time_to_confirm ( len ( waiting_list_teams ) )
first_waiting_list_team . set_time_to_confirm ( ttc )
notify_team ( first_waiting_list_team , instance . tournament , TeamEmailType . OUT_OF_WAITING_LIST )