A few more fixes
This commit is contained in:
@@ -98,6 +98,10 @@ def can_start_plantrial(user):
|
|||||||
|
|
||||||
return user.rower.plantrialexpires == datetime.date(1970,1,1)
|
return user.rower.plantrialexpires == datetime.date(1970,1,1)
|
||||||
|
|
||||||
|
@rules.predicate
|
||||||
|
def is_staff(user):
|
||||||
|
return user.is_staff
|
||||||
|
|
||||||
@rules.predicate
|
@rules.predicate
|
||||||
def is_coach(user):
|
def is_coach(user):
|
||||||
return user.rower.rowerplan in ['coach','freecoach']
|
return user.rower.rowerplan in ['coach','freecoach']
|
||||||
@@ -274,6 +278,7 @@ def can_plan_user(user,rower):
|
|||||||
rules.add_perm('rower.add_plan',can_plan_user) # replaces checkaccessplanuser
|
rules.add_perm('rower.add_plan',can_plan_user) # replaces checkaccessplanuser
|
||||||
rules.add_perm('rower.is_coach',is_coach_user) # replaces checkaccessuser
|
rules.add_perm('rower.is_coach',is_coach_user) # replaces checkaccessuser
|
||||||
rules.add_perm('rower.is_pro',ispromember)
|
rules.add_perm('rower.is_pro',ispromember)
|
||||||
|
rules.add_perm('rower.is_staff',is_staff)
|
||||||
|
|
||||||
# WORKOUT permissions
|
# WORKOUT permissions
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
,sander,sander-pc,01.02.2020 09:22,file:///home/sander/.config/libreoffice/4;
|
,sander,sander-pc,01.02.2020 11:32,file:///home/sander/.config/libreoffice/4;
|
||||||
@@ -58,12 +58,12 @@
|
|||||||
56,62,workout_forcecurve_view,force curve,TRUE,302,pro,200,302,pro,403,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
56,62,workout_forcecurve_view,force curve,TRUE,302,pro,200,302,pro,403,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
57,63,workout_unsubscribe_view,unsubscribe from comments,TRUE,302,basic,200,302,basic,200,302,basic,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
57,63,workout_unsubscribe_view,unsubscribe from comments,TRUE,302,basic,200,302,basic,200,302,basic,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
58,64,workout_comment_view,comment on workout,TRUE,302,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
58,64,workout_comment_view,comment on workout,TRUE,302,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
59,65,workout_tcxemail_view,download TCX file,TRUE,403,basic,200,302,basic,403,403,coach,200,403,FALSE,FALSE,TRUE,TRUE,FALSE
|
59,65,workout_tcxemail_view,download TCX file,TRUE,403,basic,200,302,basic,403,403,coach,200,403,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
60,66,workout_gpxemail_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
60,66,workout_gpxemail_view,download GPX file,TRUE,403,basic,200,302,basic,403,403,coach,200,403,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
61,67,workout_csvemail_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
61,67,workout_csvemail_view,download CSV file,TRUE,403,basic,200,302,basic,403,403,coach,200,403,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
62,68,workout_csvtoadmin_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
62,68,workout_csvtoadmin_view,send CSV to admin,TRUE,403,basic,200,200,basic,200,200,coach,200,200,TRUE,FALSE,TRUE,FALSE,TRUE
|
||||||
63,69,workout_edit_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
63,69,workout_edit_view,Edit Workout,TRUE,403,basic,200,403,basic,403,403,coach,200,403,FALSE,FALSE,TRUE,FALSE,TRUE
|
||||||
64,70,workout_map_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
64,70,workout_map_view,View workout Map,TRUE,302,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,TRUE,TRUE
|
||||||
65,71,workout_update_cp_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
65,71,workout_update_cp_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
||||||
66,72,instroke_chart,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,FALSE,FALSE,FALSE
|
66,72,instroke_chart,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,FALSE,FALSE,FALSE
|
||||||
67,73,instroke_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
67,73,instroke_view,,TRUE,200,basic,200,302,basic,200,302,coach,200,302,FALSE,FALSE,TRUE,FALSE,FALSE
|
||||||
|
|||||||
|
@@ -261,6 +261,7 @@ def workout_csvemail_view(request,id=0):
|
|||||||
|
|
||||||
# Get Workout CSV file and send it to user's email address
|
# Get Workout CSV file and send it to user's email address
|
||||||
@login_required()
|
@login_required()
|
||||||
|
@permission_required('rower.is_staff',fn=get_user_by_userid,raise_exception=True)
|
||||||
def workout_csvtoadmin_view(request,id=0):
|
def workout_csvtoadmin_view(request,id=0):
|
||||||
message = ""
|
message = ""
|
||||||
r = getrower(request.user)
|
r = getrower(request.user)
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ def paidplans_view(request):
|
|||||||
else:
|
else:
|
||||||
r = None
|
r = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return render(request,
|
return render(request,
|
||||||
'paidplans.html',
|
'paidplans.html',
|
||||||
{'rower':r})
|
{'rower':r})
|
||||||
@@ -24,7 +24,7 @@ def billing_view(request):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
||||||
@@ -42,7 +42,7 @@ def billing_view(request):
|
|||||||
for attr, value in cd.items():
|
for attr, value in cd.items():
|
||||||
setattr(r, attr, value)
|
setattr(r, attr, value)
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
if billingaddressform.is_valid():
|
if billingaddressform.is_valid():
|
||||||
if planselectform.is_valid():
|
if planselectform.is_valid():
|
||||||
plan = planselectform.cleaned_data['plan']
|
plan = planselectform.cleaned_data['plan']
|
||||||
@@ -58,7 +58,7 @@ def billing_view(request):
|
|||||||
})
|
})
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
billingaddressform = RowerBillingAddressForm(instance=r)
|
billingaddressform = RowerBillingAddressForm(instance=r)
|
||||||
planselectform = PlanSelectForm(paymentprocessor='braintree')
|
planselectform = PlanSelectForm(paymentprocessor='braintree')
|
||||||
@@ -69,13 +69,13 @@ def billing_view(request):
|
|||||||
'billingaddressform':billingaddressform,
|
'billingaddressform':billingaddressform,
|
||||||
'planselectform':planselectform,
|
'planselectform':planselectform,
|
||||||
})
|
})
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def upgrade_view(request):
|
def upgrade_view(request):
|
||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
||||||
@@ -93,7 +93,7 @@ def upgrade_view(request):
|
|||||||
for attr, value in cd.items():
|
for attr, value in cd.items():
|
||||||
setattr(r, attr, value)
|
setattr(r, attr, value)
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
if planselectform.is_valid():
|
if planselectform.is_valid():
|
||||||
plan = planselectform.cleaned_data['plan']
|
plan = planselectform.cleaned_data['plan']
|
||||||
if billingaddressform.is_valid():
|
if billingaddressform.is_valid():
|
||||||
@@ -102,7 +102,7 @@ def upgrade_view(request):
|
|||||||
'planid':plan.id
|
'planid':plan.id
|
||||||
})
|
})
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
billingaddressform = RowerBillingAddressForm(instance=r)
|
billingaddressform = RowerBillingAddressForm(instance=r)
|
||||||
planselectform = PlanSelectForm(paymentprocessor='braintree',
|
planselectform = PlanSelectForm(paymentprocessor='braintree',
|
||||||
@@ -114,13 +114,13 @@ def upgrade_view(request):
|
|||||||
'billingaddressform':billingaddressform,
|
'billingaddressform':billingaddressform,
|
||||||
'planselectform':planselectform,
|
'planselectform':planselectform,
|
||||||
})
|
})
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def downgrade_view(request):
|
def downgrade_view(request):
|
||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
||||||
@@ -138,7 +138,7 @@ def downgrade_view(request):
|
|||||||
for attr, value in cd.items():
|
for attr, value in cd.items():
|
||||||
setattr(r, attr, value)
|
setattr(r, attr, value)
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
if planselectform.is_valid():
|
if planselectform.is_valid():
|
||||||
plan = planselectform.cleaned_data['plan']
|
plan = planselectform.cleaned_data['plan']
|
||||||
|
|
||||||
@@ -150,14 +150,14 @@ def downgrade_view(request):
|
|||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
else:
|
else:
|
||||||
nextview = downgrade_confirm_view
|
nextview = downgrade_confirm_view
|
||||||
|
|
||||||
if billingaddressform.is_valid():
|
if billingaddressform.is_valid():
|
||||||
url = reverse(nextview,
|
url = reverse(nextview,
|
||||||
kwargs={
|
kwargs={
|
||||||
'planid':plan.id
|
'planid':plan.id
|
||||||
})
|
})
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
billingaddressform = RowerBillingAddressForm(instance=r)
|
billingaddressform = RowerBillingAddressForm(instance=r)
|
||||||
planselectform = PlanSelectForm(paymentprocessor='braintree',
|
planselectform = PlanSelectForm(paymentprocessor='braintree',
|
||||||
@@ -169,17 +169,17 @@ def downgrade_view(request):
|
|||||||
'billingaddressform':billingaddressform,
|
'billingaddressform':billingaddressform,
|
||||||
'planselectform':planselectform,
|
'planselectform':planselectform,
|
||||||
})
|
})
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def plan_stop_view(request):
|
def plan_stop_view(request):
|
||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
subscriptions = []
|
subscriptions = []
|
||||||
|
|
||||||
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
|
||||||
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
|
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ def plan_stop_view(request):
|
|||||||
except ProcessorCustomerError:
|
except ProcessorCustomerError:
|
||||||
r.paymentprocessor = None
|
r.paymentprocessor = None
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return render(request,
|
return render(request,
|
||||||
@@ -203,7 +203,7 @@ def plan_tobasic_view(request,id=0):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
if r.paidplan.paymentprocessor == 'braintree':
|
if r.paidplan.paymentprocessor == 'braintree':
|
||||||
@@ -217,15 +217,15 @@ def plan_tobasic_view(request,id=0):
|
|||||||
url = reverse(plan_stop_view)
|
url = reverse(plan_stop_view)
|
||||||
|
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def upgrade_confirm_view(request,planid = 0):
|
def upgrade_confirm_view(request,planid = 0):
|
||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
plan = PaidPlan.objects.get(id=planid)
|
plan = PaidPlan.objects.get(id=planid)
|
||||||
except PaidPlan.DoesNotExist:
|
except PaidPlan.DoesNotExist:
|
||||||
@@ -253,7 +253,7 @@ def downgrade_confirm_view(request,planid = 0):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
plan = PaidPlan.objects.get(id=planid)
|
plan = PaidPlan.objects.get(id=planid)
|
||||||
except PaidPlan.DoesNotExist:
|
except PaidPlan.DoesNotExist:
|
||||||
@@ -279,7 +279,7 @@ def payment_confirm_view(request,planid = 0):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
plan = PaidPlan.objects.get(id=planid)
|
plan = PaidPlan.objects.get(id=planid)
|
||||||
except PaidPlan.DoesNotExist:
|
except PaidPlan.DoesNotExist:
|
||||||
@@ -350,13 +350,13 @@ def checkouts_view(request):
|
|||||||
|
|
||||||
url = reverse(paidplans_view)
|
url = reverse(paidplans_view)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def upgrade_checkouts_view(request):
|
def upgrade_checkouts_view(request):
|
||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
@@ -402,7 +402,7 @@ def downgrade_checkouts_view(request):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
@@ -450,7 +450,7 @@ def payment_completed_view(request):
|
|||||||
|
|
||||||
amount = request.GET.get('amount',0)
|
amount = request.GET.get('amount',0)
|
||||||
|
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
return render(request,
|
return render(request,
|
||||||
@@ -465,7 +465,7 @@ def downgrade_completed_view(request):
|
|||||||
if not PAYMENT_PROCESSING_ON:
|
if not PAYMENT_PROCESSING_ON:
|
||||||
url = reverse('promembership')
|
url = reverse('promembership')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
r = request.user.rower
|
r = request.user.rower
|
||||||
|
|
||||||
return render(request,
|
return render(request,
|
||||||
@@ -480,7 +480,7 @@ def rower_register_view(request):
|
|||||||
nextpage = request.GET.get('next','/rowers/list-workouts/')
|
nextpage = request.GET.get('next','/rowers/list-workouts/')
|
||||||
if nextpage == '':
|
if nextpage == '':
|
||||||
nextpage = '/rowers/list-workouts/'
|
nextpage = '/rowers/list-workouts/'
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
#form = RegistrationFormUniqueEmail(request.POST)
|
#form = RegistrationFormUniqueEmail(request.POST)
|
||||||
form = RegistrationFormSex(request.POST)
|
form = RegistrationFormSex(request.POST)
|
||||||
@@ -517,7 +517,7 @@ def rower_register_view(request):
|
|||||||
timestr = strftime("%Y%m%d-%H%M%S")
|
timestr = strftime("%Y%m%d-%H%M%S")
|
||||||
f2 = f[:-7]+timestr+'.csv.gz'
|
f2 = f[:-7]+timestr+'.csv.gz'
|
||||||
copyfile(f,f2)
|
copyfile(f,f2)
|
||||||
|
|
||||||
response = dataprep.new_workout_from_file(therower,f2,
|
response = dataprep.new_workout_from_file(therower,f2,
|
||||||
title='New User Sample Data',
|
title='New User Sample Data',
|
||||||
notes='This is an example workout to get you started')
|
notes='This is an example workout to get you started')
|
||||||
@@ -527,17 +527,17 @@ def rower_register_view(request):
|
|||||||
w.startdatetime = timezone.now()
|
w.startdatetime = timezone.now()
|
||||||
w.date = timezone.now().date()
|
w.date = timezone.now().date()
|
||||||
w.save()
|
w.save()
|
||||||
|
|
||||||
# Create and send email
|
# Create and send email
|
||||||
fullemail = first_name + " " + last_name + " " + "<" + email + ">"
|
fullemail = first_name + " " + last_name + " " + "<" + email + ">"
|
||||||
subject = "Thank you for registering on rowsandall.com"
|
subject = "Thank you for registering on rowsandall.com"
|
||||||
from_address = 'Sander Roosendaal <info@rowsandall.com>'
|
from_address = 'Sander Roosendaal <info@rowsandall.com>'
|
||||||
|
|
||||||
d = {'first_name':theuser.first_name}
|
d = {'first_name':theuser.first_name}
|
||||||
|
|
||||||
send_template_email(from_address,[fullemail],
|
send_template_email(from_address,[fullemail],
|
||||||
subject,'registeremail.html',d)
|
subject,'registeremail.html',d)
|
||||||
|
|
||||||
|
|
||||||
subject2 = "New User"
|
subject2 = "New User"
|
||||||
message2 = "New user registered.\n"
|
message2 = "New user registered.\n"
|
||||||
@@ -550,7 +550,7 @@ def rower_register_view(request):
|
|||||||
|
|
||||||
theuser = authenticate(username=username,password=password)
|
theuser = authenticate(username=username,password=password)
|
||||||
login(request,theuser)
|
login(request,theuser)
|
||||||
|
|
||||||
return HttpResponseRedirect(nextpage)
|
return HttpResponseRedirect(nextpage)
|
||||||
# '/rowers/register/thankyou/')
|
# '/rowers/register/thankyou/')
|
||||||
|
|
||||||
@@ -572,7 +572,7 @@ def freecoach_register_view(request):
|
|||||||
nextpage = request.GET.get('next','/rowers/me/teams/')
|
nextpage = request.GET.get('next','/rowers/me/teams/')
|
||||||
if nextpage == '':
|
if nextpage == '':
|
||||||
nextpage = '/rowers/me/teams/'
|
nextpage = '/rowers/me/teams/'
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
#form = RegistrationFormUniqueEmail(request.POST)
|
#form = RegistrationFormUniqueEmail(request.POST)
|
||||||
form = RegistrationFormSex(request.POST)
|
form = RegistrationFormSex(request.POST)
|
||||||
@@ -605,17 +605,17 @@ def freecoach_register_view(request):
|
|||||||
# create default favorite charts
|
# create default favorite charts
|
||||||
add_defaultfavorites(therower)
|
add_defaultfavorites(therower)
|
||||||
|
|
||||||
|
|
||||||
# Create and send email
|
# Create and send email
|
||||||
fullemail = first_name + " " + last_name + " " + "<" + email + ">"
|
fullemail = first_name + " " + last_name + " " + "<" + email + ">"
|
||||||
subject = "Thank you for registering on rowsandall.com"
|
subject = "Thank you for registering on rowsandall.com"
|
||||||
from_address = 'Sander Roosendaal <info@rowsandall.com>'
|
from_address = 'Sander Roosendaal <info@rowsandall.com>'
|
||||||
|
|
||||||
d = {'first_name':theuser.first_name}
|
d = {'first_name':theuser.first_name}
|
||||||
|
|
||||||
send_template_email(from_address,[fullemail],
|
send_template_email(from_address,[fullemail],
|
||||||
subject,'coachregisteremail.html',d)
|
subject,'coachregisteremail.html',d)
|
||||||
|
|
||||||
|
|
||||||
subject2 = "New Free Coach"
|
subject2 = "New Free Coach"
|
||||||
message2 = "New Free Coach registered.\n"
|
message2 = "New Free Coach registered.\n"
|
||||||
@@ -628,7 +628,7 @@ def freecoach_register_view(request):
|
|||||||
|
|
||||||
theuser = authenticate(username=username,password=password)
|
theuser = authenticate(username=username,password=password)
|
||||||
login(request,theuser)
|
login(request,theuser)
|
||||||
|
|
||||||
return HttpResponseRedirect(nextpage)
|
return HttpResponseRedirect(nextpage)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -647,6 +647,7 @@ def freecoach_register_view(request):
|
|||||||
'next':nextpage,})
|
'next':nextpage,})
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
|
@permission_required('rower.is_staff',fn=get_user_by_userid,raise_exception=True)
|
||||||
def transactions_view(request):
|
def transactions_view(request):
|
||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
raise PermissionDenied("Not Allowed")
|
raise PermissionDenied("Not Allowed")
|
||||||
@@ -662,7 +663,7 @@ def transactions_view(request):
|
|||||||
response = HttpResponse(df.to_csv())
|
response = HttpResponse(df.to_csv())
|
||||||
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
|
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
|
||||||
response['Content-Type'] = 'application/octet-stream'
|
response['Content-Type'] = 'application/octet-stream'
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -673,4 +674,3 @@ def transactions_view(request):
|
|||||||
{
|
{
|
||||||
'dateform':dateform
|
'dateform':dateform
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user