Private
Public Access
1
0

downgrade notifications

This commit is contained in:
Sander Roosendaal
2018-12-20 17:40:32 +01:00
parent 954bd46bce
commit ab9579a048
10 changed files with 423 additions and 12 deletions

View File

@@ -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):