diff --git a/rowers/middleware.py b/rowers/middleware.py index c1b968f2..3b58f0c8 100644 --- a/rowers/middleware.py +++ b/rowers/middleware.py @@ -136,6 +136,12 @@ class RowerPlanMiddleWare(object): paymentprocessor='braintree') r.paidplan = basicplans[0] r.save() + # remove from Free Coach groups + for group in r.coachinggroups.all(): + coach = rower.objects.get(mycoachgroup=group) + if coach.rowerplan == 'freecoach': + r.coachinggroups.remove(group) + # send email job = myqueue(queue, handle_sendemail_expired, diff --git a/rowers/models.py b/rowers/models.py index ec2f772e..f9d2ae9f 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -878,7 +878,17 @@ class Rower(models.Model): def clean_email(self): return self.user.email.lower() - + def save(self, *args, **kwargs): + try: + for group in self.coachinggroups.all(): + coach = Rower.objects.get(mycoachgroup=group) + if coach.rowerplan == 'freecoach': + self.coachinggroups.remove(group) + except ValueError: + pass + + super(Rower, self).save(*args, **kwargs) + class DeactivateUserForm(forms.ModelForm): class Meta: model = User diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 4f7fc75a..9941ccb4 100644 Binary files a/rowers/tests/testdata/testdata.csv.gz and b/rowers/tests/testdata/testdata.csv.gz differ