diff --git a/src/mahjong_ranking/models.py b/src/mahjong_ranking/models.py index 2b87234..39e2b25 100644 --- a/src/mahjong_ranking/models.py +++ b/src/mahjong_ranking/models.py @@ -93,7 +93,10 @@ class Hanchan(models.Model): ) player1 = models.ForeignKey( - settings.AUTH_USER_MODEL, related_name='user_hanchan+', + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + limit_choices_to={'is_active': True, 'membership': True}, + related_name='user_hanchan+', verbose_name=_('Player 1')) player1_input_score = models.IntegerField(_('Score')) player1_game_score = models.PositiveIntegerField( @@ -110,7 +113,10 @@ class Hanchan(models.Model): _('Comment'), blank=True, max_length=255, editable=False) player2 = models.ForeignKey( - settings.AUTH_USER_MODEL, related_name='user_hanchan+', + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + limit_choices_to={'is_active': True, 'membership': True}, + related_name='user_hanchan+', verbose_name=_('Player 2')) player2_input_score = models.IntegerField(_('Score')) player2_game_score = models.PositiveIntegerField( @@ -127,7 +133,10 @@ class Hanchan(models.Model): _('Comment'), blank=True, max_length=255, editable=False) player3 = models.ForeignKey( - settings.AUTH_USER_MODEL, related_name='user_hanchan+', + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + limit_choices_to={'is_active': True, 'membership': True}, + related_name='user_hanchan+', verbose_name=_('Player 3')) player3_input_score = models.IntegerField(_('Score')) player3_game_score = models.PositiveIntegerField( @@ -144,7 +153,10 @@ class Hanchan(models.Model): _('Comment'), blank=True, max_length=255, editable=False) player4 = models.ForeignKey( - settings.AUTH_USER_MODEL, related_name='user_hanchan+', + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + limit_choices_to={'is_active': True, 'membership': True}, + related_name='user_hanchan+', verbose_name=_('Player 4')) player4_input_score = models.IntegerField(_('Score')) player4_game_score = models.PositiveIntegerField( @@ -587,21 +599,16 @@ class SeasonRanking(models.Model): def update_ranking(sender, instance, **kwargs): - for user in ( - instance.player1, instance.player2, instance.player3, instance.player4): + for user in (instance.player1, instance.player2, instance.player3, instance.player4): logger.debug("marking %s's kyu/dan for recalculation", user) set_dirty(user=user.id) - logger.debug( - "marking event %s for recalculation.", instance.event) - set_dirty(event=instance.event_id, user=user.id) - if instance.season: - logger.debug( - "marking %s's ladder %i season for recalculation.", user, - instance.season) + logger.debug("marking %s's ladder %i season for recalculation.", user, instance.season) set_dirty(user=user.id, season=instance.season) + logger.debug("marking season %d for recalculation.", instance.season) set_dirty(season=instance.season) - + logger.debug("marking event %s for recalculation.", instance.event) + set_dirty(event=instance.event_id, user=user.id) models.signals.pre_delete.connect(update_ranking, sender=Hanchan) models.signals.post_save.connect(update_ranking, sender=Hanchan) diff --git a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html index 894aceb..a4e77cb 100755 --- a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html @@ -56,7 +56,8 @@