From 56b2a1235c7b9b54aacbd2c77dbb7c83de7d26bb Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 1 Jan 2025 15:50:29 +0100 Subject: [PATCH] removing some remnants of coach and plan --- rowers/braintreestuff.py | 25 +++++---- rowers/models.py | 12 ++--- rowers/tasks.py | 8 ++- rowers/tests/test_basicrower.py | 23 --------- rowers/tests/testdata/testdata.tcx.gz | Bin 3989 -> 3989 bytes rowers/urls.py | 4 -- rowers/views/exportviews.py | 4 +- rowers/views/statements.py | 4 +- rowers/views/teamviews.py | 7 +-- rowers/views/userviews.py | 70 +------------------------- 10 files changed, 28 insertions(+), 129 deletions(-) diff --git a/rowers/braintreestuff.py b/rowers/braintreestuff.py index 64ba63b9..145a766d 100644 --- a/rowers/braintreestuff.py +++ b/rowers/braintreestuff.py @@ -281,7 +281,7 @@ def update_subscription(rower, data, method='up'): _ = credits.upgrade(amount_int, rower) rower.planexpires = result.subscription.billing_period_end_date rower.teamplanexpires = result.subscription.billing_period_end_date - rower.clubsize = plan.clubsize + rower.clubsize = 10 rower.paymenttype = plan.paymenttype rower.rowerplan = plan.shortname rower.subscription_id = result.subscription.id @@ -293,19 +293,18 @@ def update_subscription(rower, data, method='up'): l=rower.user.last_name, ) - if rower.paidplan != 'coach': - try: - coachgroup = rower.mycoachgroup - except CoachingGroup.DoesNotExist: # pragma: no cover - coachgroup = CoachingGroup() - coachgroup.save() - rower.mycoachgroup = coachgroup - rower.save() + try: + coachgroup = rower.mycoachgroup + except CoachingGroup.DoesNotExist: # pragma: no cover + coachgroup = CoachingGroup() + coachgroup.save() + rower.mycoachgroup = coachgroup + rower.save() - athletes = Rower.objects.filter( - coachinggroups__in=[rower.mycoachgroup]).distinct() - for athlete in athletes: # pragma: no cover - athlete.coachinggroups.remove(rower.mycoachgroup) + athletes = Rower.objects.filter( + coachinggroups__in=[rower.mycoachgroup]).distinct() + for athlete in athletes: # pragma: no cover + athlete.coachinggroups.remove(rower.mycoachgroup) if method == 'up': transactions = result.subscription.transactions diff --git a/rowers/models.py b/rowers/models.py index dc7ca8a5..d48474ac 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -891,7 +891,7 @@ class PaidPlan(models.Model): active = models.BooleanField(default=True) - clubsize = models.IntegerField(default=0) + clubsize = models.IntegerField(default=10) def __str__(self): return '{name} - {shortname} at {price:.2f} EURO ({paymenttype} payment)'.format( @@ -1034,7 +1034,7 @@ class Rower(models.Model): planexpires = models.DateField(default=current_day) teamplanexpires = models.DateField(default=current_day) - clubsize = models.IntegerField(default=0) + clubsize = models.IntegerField(default=10) protrialexpires = models.DateField(default=datetime.date(1970, 1, 1)) plantrialexpires = models.DateField(default=datetime.date(1970, 1, 1)) coachtrialexpires = models.DateField(default=datetime.date(1970, 1, 1)) @@ -1427,12 +1427,6 @@ def check_teams_on_change(sender, **kwargs): m2m_changed.connect(check_teams_on_change, sender=Rower.team.through) -# @receiver(models.signals.post_save,sender=Rower) -# def auto_delete_teams_on_change(sender, instance, **kwargs): -# if instance.rowerplan != 'coach': -# teams = Team.objects.filter(manager=instance.user) -# for team in teams: -# team.delete() favchartlabelsx = axlabels.copy() favchartlabelsy1 = axlabels.copy() @@ -5186,7 +5180,7 @@ class AccountRowerForm(ModelForm): def __init__(self, *args, **kwargs): super(AccountRowerForm, self).__init__(*args, **kwargs) - if 'coach' not in self.instance.rowerplan: + if 'pro' not in self.instance.rowerplan: self.fields.pop('offercoaching') try: diff --git a/rowers/tasks.py b/rowers/tasks.py index 1db9fc03..774a1d3e 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -214,8 +214,12 @@ def summaryfromsplitdata(splitdata, data, filename, sep='|', workouttype='rower' except (ZeroDivisionError, OverflowError): # pragma: no cover restpace = 0. - velo = totaldist/totaltime - avgpower = 2.8*velo**(3.0) + try: + velo = totaldist/totaltime + avgpower = 2.8*velo**(3.0) + except (ZeroDivisionError, OverflowError): # pragma: no cover + velo = 0 + avgpower = 0 if workouttype in ['bike', 'bikeerg']: # pragma: no cover velo = velo/2. avgpower = 2.8*velo**(3.0) diff --git a/rowers/tests/test_basicrower.py b/rowers/tests/test_basicrower.py index 934c7737..e04c9890 100644 --- a/rowers/tests/test_basicrower.py +++ b/rowers/tests/test_basicrower.py @@ -50,26 +50,3 @@ class SimpleViewTest(TestCase): expected_url='/rowers/list-workouts/', status_code=302,target_status_code=200) - def test_start_plantrial(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) - - url = '/rowers/startplantrial/' - - response = self.c.get(url,follow=True) - - self.assertRedirects(response, - expected_url='/rowers/list-workouts/', - status_code=302,target_status_code=200) - - def test_start_coachtrial(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) - - url = '/rowers/startcoachtrial/' - - response = self.c.get(url,follow=True) - - self.assertRedirects(response, - expected_url='/rowers/list-workouts/', - status_code=302,target_status_code=200) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 63ab84dcc0159ee27eedb5d4e0c5afc123c3aedf..6f58751b7219c042daac97f2d016b97d34f32aa4 100644 GIT binary patch delta 15 WcmbO#KUJPhzMF$1D`X>EKR*B>cLY2D delta 15 WcmbO#KUJPhzMF&NsM= timezone.now().date(): + elif r.protrialexpires >= timezone.now().date(): return True diff --git a/rowers/views/teamviews.py b/rowers/views/teamviews.py index 0c895026..a2987c57 100644 --- a/rowers/views/teamviews.py +++ b/rowers/views/teamviews.py @@ -21,9 +21,6 @@ def team_view(request, team_id=0, userid=0): t = get_object_or_404(Team, pk=team_id) - # if r.rowerplan == 'basic' and t.manager.rower.rowerplan != 'coach': - # raise PermissionDenied("You need to be on a Paid Plan to see or join this team") - q = User.objects.filter(rower__isnull=False, rower__team__in=myteams).distinct( ).exclude(rower__team__name=t.name) mygroups = [request.user.rower.mycoachgroup] @@ -176,7 +173,7 @@ def get_teams(request): rower=r).exclude(manager=request.user).order_by('name') if user_is_basic(request.user): - otherteams = otherteams.filter(manager__rower__rowerplan='coach') + otherteams = otherteams.filter(manager__rower__rowerplan='pro') return myteams, memberteams, otherteams @@ -224,7 +221,7 @@ def rower_teams_view(request): # pragma: no cover coaches = teams.rower_get_coaches(r) potentialcoaches = [ - t.manager for t in memberteams if t.manager not in coaches and 'coach' in t.manager.rower.rowerplan] + t.manager for t in memberteams if t.manager not in coaches and 'pro' in t.manager.rower.rowerplan] offercoaches = [ r.user for r in Rower.objects.all().exclude(user=request.user) if r.can_coach() ] diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index 0ab645d6..7df07582 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -27,7 +27,7 @@ def deactivate_user(request): r.paidplan = None r.teamplanexpires = timezone.now() r.planexpires = timezone.now() - r.clubsize = 0 + r.clubsize = 10 r.rowerplan = 'basic' r.save() @@ -142,40 +142,6 @@ def survey(request): # pragma: no cover return render(request, 'survey.html', context) -@login_required() -def start_coachtrial_view(request): - r = getrower(request.user) - - if not can_start_coachtrial(request.user): # pragma: no cover - messages.error(request, 'You do not qualify for a coach trial') - url = '/rowers/paidplans' - return HttpResponseRedirect(url) - - r.coachtrialexpires = timezone.now()+datetime.timedelta(13) - r.clubsize = 2 - r.save() - - url = reverse('workouts_view') - - messages.info(request, 'We have started your 14 day coach trial period') - - subject2 = "User started Coach Trial" - message2 = "User Started Coach Trial.\n" - message2 += request.user.email + "\n" - message2 += "User name: "+request.user.username - - send_mail(subject2, message2, - 'Rowsandall Server ', - ['roosendaalsander@gmail.com']) - - send_template_email('Rowsandall ', - [r.user.email], - 'Welcome to the Rowsandall Coach Trial', - 'coachtrialwelcome.html', - {'first_name': r.user.first_name, - 'last_name': r.user.last_name}) - - return HttpResponseRedirect(url) @login_required() def start_trial_view(request): @@ -212,40 +178,6 @@ def start_trial_view(request): return HttpResponseRedirect(url) -@login_required() -def start_plantrial_view(request): - r = getrower(request.user) - - if not can_start_plantrial(request.user): # pragma: no cover - messages.error(request, 'You do not qualify for a trial') - url = '/rowers/paidplans' - return HttpResponseRedirect(url) - - r.plantrialexpires = timezone.now()+datetime.timedelta(13) - r.protrialexpires = timezone.now()+datetime.timedelta(13) - r.save() - - url = reverse('workouts_view') - - messages.info(request, 'We have started your 14 day trial period') - - subject2 = "User started Plan Trial" - message2 = "User Started Plan Trial.\n" - message2 += request.user.email + "\n" - message2 += "User name: "+request.user.username - - send_mail(subject2, message2, - 'Rowsandall Server ', - ['roosendaalsander@gmail.com']) - - send_template_email('Rowsandall ', - [r.user.email], - 'Welcome to the Rowsandall Self-Coach Trial', - 'plantrialwelcome.html', - {'first_name': r.user.first_name, - 'last_name': r.user.last_name}) - - return HttpResponseRedirect(url) @login_required() def user_messages_delete_all(request, userid=0):