From 8524996f06a52d31cbbb0bb4ae5e72eb0adc23b8 Mon Sep 17 00:00:00 2001 From: imperosol Date: Mon, 1 Sep 2025 15:30:39 +0200 Subject: [PATCH] simplify `Subscription.save()` --- subscription/models.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/subscription/models.py b/subscription/models.py index 1d182ad0..e8aa4ff7 100644 --- a/subscription/models.py +++ b/subscription/models.py @@ -71,19 +71,21 @@ class Subscription(models.Model): else: return f"No user - {self.pk}" - def save(self, *args, **kwargs): + def save(self, *args, **kwargs) -> None: + if self.member.was_subscribed: + super().save() + return + from counter.models import Customer - if not self.member.was_subscribed: - # This is the first ever subscription for this user - customer, _ = Customer.get_or_create(self.member) - # Someone who subscribed once will be considered forever - # as an old subscriber. - self.member.groups.add(settings.SITH_GROUP_OLD_SUBSCRIBERS_ID) - self.member.make_home() - # now that the user is an old subscriber, change the cached - # property accordingly - self.member.__dict__["was_subscribed"] = True + customer, _ = Customer.get_or_create(self.member) + # Someone who subscribed once will be considered forever + # as an old subscriber. + self.member.groups.add(settings.SITH_GROUP_OLD_SUBSCRIBERS_ID) + self.member.make_home() + # now that the user is an old subscriber, change the cached + # property accordingly + self.member.__dict__["was_subscribed"] = True super().save() def get_absolute_url(self):