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)

+
    +
  • +
    + + {% if form.errors %} +

    + Please correct the error{{ form.errors|pluralize }} below. +

    + {% endif %} + +
    + {% csrf_token %} + + {{ form.as_table }} +
    + Terms of Service + + +
    +
    +
  • +
  • + +

    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 %}