From 01f108e9c36262cf016ab361937ba1d8796f3bac Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Tue, 7 May 2019 09:35:17 +0200
Subject: [PATCH] registration form (just copy paste of user registration)
---
rowers/middleware.py | 2 +-
.../freecoach_registration_form.html | 51 ++++++++++++
rowers/templatetags/rowerfilters.py | 4 +
rowers/urls.py | 1 +
rowers/views/paymentviews.py | 77 +++++++++++++++++++
templates/newbase.html | 2 +-
6 files changed, 135 insertions(+), 2 deletions(-)
create mode 100644 rowers/templates/freecoach_registration_form.html
diff --git a/rowers/middleware.py b/rowers/middleware.py
index 35a979ca..c7a8df6d 100644
--- a/rowers/middleware.py
+++ b/rowers/middleware.py
@@ -124,7 +124,7 @@ class RowerPlanMiddleWare(object):
self.get_response = get_response
def __call__(self, request):
- if request.user.is_authenticated and request.user.rower.rowerplan != 'basic':
+ if request.user.is_authenticated and request.user.rower.rowerplan not in ['basic','freecoach']:
if request.user.rower.paymenttype == 'single':
if request.user.rower.planexpires < timezone.now().date():
messg = 'Your paid plan has expired. We have reset you to a free basic plan.'
diff --git a/rowers/templates/freecoach_registration_form.html b/rowers/templates/freecoach_registration_form.html
new file mode 100644
index 00000000..dfa330bb
--- /dev/null
+++ b/rowers/templates/freecoach_registration_form.html
@@ -0,0 +1,51 @@
+{% extends "newbase.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
+{% block title %}New User Registration{% endblock title %}
+{% block meta %}
+
+{% endblock %}
+{% block main %}
+New Coach Registration (free Coach Plan)
+
+ -
+
+
+ -
+
+
To use rowsandall, you need to register and agree with the Terms of Service.
+ Registration is free.
+
+ Some of our advanced services only work if you give us your
+ (approximate) birth date, sex and weight category, with 72.5 kg the
+ bounday between heavies and lighties for men, and 59 kg for women.
+
+
+ Also, we are restricting access to the site to 16 years and older
+ because of EU data protection regulations.
+
+
+
+
+{% endblock main %}
+
+{% block sidebar %}
+{% include 'menu_help.html' %}
+{% endblock %}
diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py
index 0f747488..a15a0452 100644
--- a/rowers/templatetags/rowerfilters.py
+++ b/rowers/templatetags/rowerfilters.py
@@ -51,6 +51,10 @@ def nogoals(user):
date__gte=datetime.date.today())
return len(targets)==0
+@register.filter
+def notfree(rower):
+ return rower.rowerplan not in ['basic','freecoach']
+
def strfdelta(tdelta):
minutes,seconds = divmod(tdelta.seconds,60)
tenths = int(tdelta.microseconds/1e5)
diff --git a/rowers/urls.py b/rowers/urls.py
index 22847ffa..448c43a2 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -533,6 +533,7 @@ urlpatterns = [
# re_path(r'^paypaltest', TemplateView.as_view(template_name='paypaltest.html'),name='paypaltest'),
re_path(r'^legal', TemplateView.as_view(template_name='legal.html'),name='legal'),
re_path(r'^register/$',views.rower_register_view,name='rower_register_view'),
+ re_path(r'^coachregister/$',views.freecoach_register_view,name='freecoach_register_view'),
re_path(r'^register/thankyou/$', TemplateView.as_view(template_name='registerthankyou.html'), name='registerthankyou'),
re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/workflow/$',views.workout_workflow_view,
name='workout_workflow_view'),
diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py
index 13489aa4..d1016571 100644
--- a/rowers/views/paymentviews.py
+++ b/rowers/views/paymentviews.py
@@ -566,6 +566,83 @@ def rower_register_view(request):
{'form':form,
'next':nextpage,})
+# User registration
+def freecoach_register_view(request):
+
+ nextpage = request.GET.get('next','/rowers/me/teams/')
+ if nextpage == '':
+ nextpage = '/rowers/me/teams/'
+
+ if request.method == 'POST':
+ #form = RegistrationFormUniqueEmail(request.POST)
+ form = RegistrationFormSex(request.POST)
+ if form.is_valid():
+ first_name = form.cleaned_data['first_name']
+ last_name = form.cleaned_data['last_name']
+ email = form.cleaned_data['email']
+ password = form.cleaned_data['password1']
+ username = form.cleaned_data['username']
+ sex = form.cleaned_data['sex']
+ birthdate = form.cleaned_data['birthdate']
+ weightcategory = form.cleaned_data['weightcategory']
+ adaptiveclass = form.cleaned_data['adaptiveclass']
+ nextpage = request.POST['next']
+ theuser = User.objects.create_user(username,password=password)
+ theuser.first_name = first_name
+ theuser.last_name = last_name
+ theuser.email = email
+ theuser.save()
+
+ birthdate = birthdate.replace(tzinfo=None)
+
+ therower = Rower(user=theuser,sex=sex,birthdate=birthdate,
+ weightcategory=weightcategory,
+ adaptiveclass=adaptiveclass,
+ rowerplan='freecoach')
+
+ therower.save()
+
+ # create default favorite charts
+ add_defaultfavorites(therower)
+
+
+ # Create and send email
+ fullemail = first_name + " " + last_name + " " + "<" + email + ">"
+ subject = "Thank you for registering on rowsandall.com"
+ from_address = 'Sander Roosendaal '
+
+ d = {'first_name':theuser.first_name}
+
+ send_template_email(from_address,[fullemail],
+ subject,'registeremail.html',d)
+
+
+ subject2 = "New Free Coach"
+ message2 = "New Free Coach registered.\n"
+ message2 += fullemail + "\n"
+ message2 += "User name: "+username
+
+ send_mail(subject2, message2,
+ 'Rowsandall Server ',
+ ['roosendaalsander@gmail.com'])
+
+ theuser = authenticate(username=username,password=password)
+ login(request,theuser)
+
+ return HttpResponseRedirect(nextpage)
+
+ else:
+ return render(request,
+ "freecoach_registration_form.html",
+ {'form':form,
+ 'next':nextpage,})
+ else:
+ form = RegistrationFormSex()
+ return render(request,
+ "freecoach_registration_form.html",
+ {'form':form,
+ 'next':nextpage,})
+
@login_required()
def transactions_view(request):
if not request.user.is_staff:
diff --git a/templates/newbase.html b/templates/newbase.html
index e0789d5b..16dffcd2 100644
--- a/templates/newbase.html
+++ b/templates/newbase.html
@@ -234,7 +234,7 @@
{% endif %}
- {% if user.rower.planexpires and user.rower.rowerplan != 'basic' and user.rower.paymenttype == 'single'%}
+ {% if user.rower.planexpires and user.rower|notfree and user.rower.paymenttype == 'single'%}
{% if user.rower.planexpires|is_future_date %}
{% if user.rower.planexpires|date_dif|ddays < 4 %}