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, })