diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py
index 447e17ca..694bb567 100644
--- a/rowers/views/paymentviews.py
+++ b/rowers/views/paymentviews.py
@@ -85,9 +85,6 @@ def billing_view(request):
'planselectform':planselectform,
})
-@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: # pragma: no cover # pragma: no cover
url = reverse('promembership')
@@ -179,9 +176,7 @@ def buy_trainingplan_view(request,id=0):
'form':form,
})
-@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: # pragma: no cover # pragma: no cover
url = reverse('promembership')
@@ -195,6 +190,13 @@ def purchase_checkouts_view(request):
})
return HttpResponseRedirect(url)
+ if r.rowerplan == 'freecoach':
+ messages.error(request,'You cannot purchase this training plan as a free coach member')
+ url = reverse('rower_view_instantplan',kwargs={
+ 'id':plan.uuid,
+ })
+ return HttpResponseRedirect(url)
+
form = TrainingPlanBillingForm(request.POST)
if form.is_valid():
@@ -219,6 +221,14 @@ def purchase_checkouts_view(request):
notes = data['notes']
status = data['status']
startdate = enddate-datetime.timedelta(days=plan.duration)
+
+ # upgrade rower
+ if r.rowerplan == 'basic':
+ messages.info(request,'You have been upgraded to the Self-Coach plan for the duration of the plan')
+ r.rowerplan = 'plan'
+ r.planexpires = enddate
+ r.save()
+
p = TrainingPlan(
name=name,
#target=target,
@@ -266,9 +276,6 @@ def purchase_checkouts_view(request):
})
return HttpResponseRedirect(url) # pragma: no cover
-@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: # pragma: no cover # pragma: no cover
url = reverse('promembership')
diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py
index c5155b94..a61e27c8 100644
--- a/rowers/views/planviews.py
+++ b/rowers/views/planviews.py
@@ -2615,8 +2615,8 @@ def rower_view_instantplan(request,id='',userid=0):
).order_by("-date")
if request.method == 'POST' and not request.user.is_anonymous:
- if not can_plan(request.user): # pragma: no cover
- messages.error(request,'You must be on a paid plan to use this functionality')
+ if not can_plan(request.user) and plan.price == 0: # pragma: no cover
+ messages.error(request,'You must be on a paid plan to use free training plans')
url = reverse('rower_view_instantplan',kwargs={
'id':id,
})