diff --git a/rowers/urls.py b/rowers/urls.py index 45d75a9f..99959d6c 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -719,7 +719,7 @@ urlpatterns = [ re_path(r'^me/cancelsubscription/(?P[\w\ ]+.*)/$',views.plan_tobasic_view,name='plan_tobasic_view'), re_path(r'^checkouts/$',views.checkouts_view,name='checkouts'), re_path(r'^upgradecheckouts/$',views.upgrade_checkouts_view,name='upgrade_checkouts'), - re_path(r'^upgradecheckouts/$',views.upgrade_checkouts_view,name='upgrade_checkouts'), + re_path(r'^downgradecheckouts/$',views.downgrade_checkouts_view,name='downgrade_checkouts'), re_path(r'^purchasecheckouts/$',views.purchase_checkouts_view,name='purchase_checkouts_view'), re_path(r'^planrequired/',views.planrequired_view,name='planrequired_view'), re_path(r'^starttrial/$',views.start_trial_view,name='start_trial_view'), diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py index 3d3435d5..95dc56c1 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -84,7 +84,9 @@ def billing_view(request): 'planselectform':planselectform, }) -@login_required() +@user_passes_test(can_plan,login_url="/rowers/paidplans", + message="This functionality requires a Coach or Self-Coach plan", + redirect_field_name=None) def buy_trainingplan_view(request,id=0): if not PAYMENT_PROCESSING_ON: url = reverse('promembership') @@ -119,7 +121,6 @@ def buy_trainingplan_view(request,id=0): cd = form.cleaned_data enddate = cd['enddate'] - rowers = cd['rowers'] notes = cd['notes'] status = cd['status'] @@ -145,7 +146,7 @@ def buy_trainingplan_view(request,id=0): 'enddate':enddate, 'notes':notes, 'status':status, - 'rower':rowers[0].id, + 'rower':r.id, } params = urllib.parse.urlencode(pars) url = reverse('confirm_trainingplan_purchase_view',kwargs={'id':plan.id}) @@ -165,7 +166,9 @@ def buy_trainingplan_view(request,id=0): 'form':form, }) -@login_required() +@user_passes_test(can_plan,login_url="/rowers/paidplans", + message="This functionality requires a Coach or Self-Coach plan", + redirect_field_name=None) def purchase_checkouts_view(request): if not PAYMENT_PROCESSING_ON: url = reverse('promembership') @@ -245,7 +248,9 @@ def purchase_checkouts_view(request): }) return HttpResponseRedirect(url) -@login_required() +@user_passes_test(can_plan,login_url="/rowers/paidplans", + message="This functionality requires a Coach or Self-Coach plan", + redirect_field_name=None) def confirm_trainingplan_purchase_view(request,id = 0): if not PAYMENT_PROCESSING_ON: url = reverse('promembership') @@ -359,6 +364,7 @@ def downgrade_view(request): setattr(r, attr, value) r.save() + if planselectform.is_valid(): plan = planselectform.cleaned_data['plan'] @@ -376,6 +382,7 @@ def downgrade_view(request): kwargs={ 'planid':plan.id }) + return HttpResponseRedirect(url) else: