diff --git a/drakul/raids/signals.py b/drakul/raids/signals.py index b791b03..c1c568d 100644 --- a/drakul/raids/signals.py +++ b/drakul/raids/signals.py @@ -28,11 +28,7 @@ def create_raid_no_responses(instance: Raid, **kwargs): @receiver(post_save, sender=User) -def create_user_no_responses(instance: User, created: bool, **kwargs): - if (instance.original_main_id, instance.original_date_joined) == (instance.main_id, instance.date_joined) \ - and not created: - return - +def create_user_no_responses(instance: User, **kwargs): # Delete all pre-existing no-responses for this user, in case date_joined or main was changed RaidResponse.objects.filter(character__user=instance, status=RaidResponse.NO_RESPONSE).delete() # Then create them (again) @@ -43,5 +39,7 @@ def create_user_no_responses(instance: User, created: bool, **kwargs): status=RaidResponse.NO_RESPONSE, attendance=RaidResponse.STATUS_DEFAULT_ATTENDANCE[RaidResponse.NO_RESPONSE] ) - for raid in Raid.objects.filter(response_deadline__gte=instance.date_joined) + for raid in Raid.objects.exclude( + Q(response_deadline__lt=instance.date_joined) | Q(responses__character__user=instance) + ) ) diff --git a/drakul/users/models.py b/drakul/users/models.py index 5081b69..b1985aa 100644 --- a/drakul/users/models.py +++ b/drakul/users/models.py @@ -48,14 +48,6 @@ class User(AbstractUser): class Meta: ordering = ["rank", "username"] - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._set_originals() - - def _set_originals(self): - self.original_main_id = self.main_id - self.original_date_joined = self.date_joined - def clean(self): self.username = self.normalize_username(self.username) if not hasattr(self, "rank"): @@ -83,8 +75,6 @@ class User(AbstractUser): user = super().save(*args, **kwargs) self.main.user = self self.main.save() - - self._set_originals() return user