downgrade notifications
This commit is contained in:
112
rowers/views.py
112
rowers/views.py
@@ -1147,6 +1147,54 @@ def upgrade_view(request):
|
||||
'planselectform':planselectform,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def downgrade_view(request):
|
||||
r = getrequestrower(request)
|
||||
|
||||
if r.subscription_id is None or r.subscription_id == '':
|
||||
url = reverse(billing_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
if request.method == 'POST':
|
||||
billingaddressform = RowerBillingAddressForm(request.POST)
|
||||
planselectform = PlanSelectForm(request.POST,paymentprocessor='braintree')
|
||||
if billingaddressform.is_valid():
|
||||
cd = billingaddressform.cleaned_data
|
||||
for attr, value in cd.items():
|
||||
setattr(r, attr, value)
|
||||
r.save()
|
||||
|
||||
if planselectform.is_valid():
|
||||
plan = planselectform.cleaned_data['plan']
|
||||
|
||||
if plan.price > r.paidplan.price:
|
||||
nextview = upgrade_confirm_view
|
||||
elif plan.price == r.paidplan.price:
|
||||
messages.info(request,'You did not select a new plan')
|
||||
url = reverse(downgrade_view)
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
nextview = downgrade_confirm_view
|
||||
|
||||
if billingaddressform.is_valid():
|
||||
url = reverse(nextview,
|
||||
kwargs={
|
||||
'planid':plan.id
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
else:
|
||||
billingaddressform = RowerBillingAddressForm(instance=r)
|
||||
planselectform = PlanSelectForm(paymentprocessor='braintree',
|
||||
rower=r,includeall=True, initial={'plan':r.paidplan})
|
||||
|
||||
return render(request,
|
||||
'downgrade.html',
|
||||
{'rower':r,
|
||||
'billingaddressform':billingaddressform,
|
||||
'planselectform':planselectform,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def plan_stop_view(request):
|
||||
r = getrequestrower(request)
|
||||
@@ -1207,6 +1255,28 @@ def upgrade_confirm_view(request,planid = 0):
|
||||
'rower':r,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def downgrade_confirm_view(request,planid = 0):
|
||||
try:
|
||||
plan = PaidPlan.objects.get(id=planid)
|
||||
except PaidPlan.DoesNotExist:
|
||||
messages.error(request,"Something went wrong. Please try again.")
|
||||
url = reverse(billing_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
r = getrequestrower(request)
|
||||
|
||||
client_token = braintreestuff.get_client_token(r)
|
||||
|
||||
return render(request,
|
||||
"downgradeconfirm.html",
|
||||
{
|
||||
'plan':plan,
|
||||
'client_token':client_token,
|
||||
'rower':r,
|
||||
})
|
||||
|
||||
|
||||
@login_required()
|
||||
def payment_confirm_view(request,planid = 0):
|
||||
try:
|
||||
@@ -1288,7 +1358,37 @@ def upgrade_checkouts_view(request):
|
||||
|
||||
url = reverse(paidplans_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
@login_required()
|
||||
def downgrade_checkouts_view(request):
|
||||
|
||||
r = getrequestrower(request)
|
||||
|
||||
if request.method != 'POST':
|
||||
url = reverse(paidplans_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
form = BillingForm(request.POST)
|
||||
if form.is_valid():
|
||||
data = form.cleaned_data
|
||||
success = braintreestuff.update_subscription(r,data,method='down')
|
||||
if success:
|
||||
messages.info(request,"Your plan has been updated")
|
||||
url = reverse(downgrade_completed_view)
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
messages.error(request,"There was a problem with your transaction")
|
||||
url = reverse(upgrade_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
else:
|
||||
messages.error(request,"There was an error in the payment form")
|
||||
url = reverse(upgrade_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
url = reverse(paidplans_view)
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
@login_required()
|
||||
def payment_completed_view(request):
|
||||
@@ -1300,6 +1400,16 @@ def payment_completed_view(request):
|
||||
'rower':r
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def downgrade_completed_view(request):
|
||||
r = getrequestrower(request)
|
||||
|
||||
return render(request,
|
||||
"downgrade_completed.html",
|
||||
{
|
||||
'rower':r
|
||||
})
|
||||
|
||||
# User registration
|
||||
def rower_register_view(request):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user