From b6411893e56f0a5a3a47f1666f6f658954725997 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 9 Apr 2018 22:02:14 +0200 Subject: [PATCH 1/2] added plan trial --- rowers/templates/promembership.html | 4 +++- rowers/urls.py | 1 + rowers/views.py | 31 +++++++++++++++++++++++++++++ templates/basebase.html | 4 +++- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/rowers/templates/promembership.html b/rowers/templates/promembership.html index 1b9abe94..f1094c22 100644 --- a/rowers/templates/promembership.html +++ b/rowers/templates/promembership.html @@ -135,11 +135,13 @@ You will be taken to the secure PayPal payment site.

Free Trial

You qualify for a 14 day free trial. No credit card needed. - Try out Pro membership for two weeks. Click the button below to + Try out Pro or Self-Coach membership for two weeks. Click the button below to sign up for the trial. After your trial period expires, you will be automatically reset to the Basic plan, unless you upgrade to Pro.

Yes, I want to try Pro membership for 14 days for free. No strings attached.

+
 
+

Yes, I want to try Self-Coach membership for 14 days for free. No strings attached.

{% endif %}

Recurring Payment

diff --git a/rowers/urls.py b/rowers/urls.py index 6d04aaa6..4f0e818f 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -395,6 +395,7 @@ urlpatterns = [ url(r'^analysis', TemplateView.as_view(template_name='analysis.html'),name='analysis'), url(r'^promembership', TemplateView.as_view(template_name='promembership.html'),name='promembership'), url(r'^starttrial$',views.start_trial_view), + url(r'^startplantrial$',views.start_plantrial_view), url(r'^planmembership', TemplateView.as_view(template_name='planmembership.html'),name='planmembership'), url(r'^paypaltest', TemplateView.as_view(template_name='paypaltest.html'),name='paypaltest'), url(r'^legal', TemplateView.as_view(template_name='legal.html'),name='legal'), diff --git a/rowers/views.py b/rowers/views.py index 560166d2..489ade0a 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -876,6 +876,8 @@ def hasplannedsessions(user): r.save() result = user.is_authenticated() and (r.rowerplan=='coach' or r.rowerplan=='plan') + if not result and r.plantrialexpires: + result = user.is_authenticaded() and r.rowerplan=='basic' and r.plantrialexpires >= datetime.date.today() else: result = False @@ -1039,7 +1041,36 @@ def start_trial_view(request): ['roosendaalsander@gmail.com']) return HttpResponseRedirect(url) + +@login_required() +def start_plantrial_view(request): + r = getrower(request.user) + + if r.plantrialexpires is not None: + messages.error(request,'You do not qualify for a trial') + url = '/rowers/promembership' + return HttpResponseRedirect(url) + r.plantrialexpires = datetime.date.today()+datetime.timedelta(13) + r.protrialexpires = datetime.date.today()+datetime.timedelta(13) + r.save() + + url = reverse(workouts_view) + + messages.info(request,'We have started your 14 day trial period') + + subject2 = "User started Pro Trial" + message2 = "User Started Pro Trial.\n" + message2 += request.user.email + "\n" + message2 += "User name: "+request.user.username + + send_mail(subject2, message2, + 'Rowsandall Server ', + ['roosendaalsander@gmail.com']) + + return HttpResponseRedirect(url) + + # Create workout data from Strava or Concept2 # data and create the associated Workout object and save it def add_workout_from_strokedata(user,importid,data,strokedata, diff --git a/templates/basebase.html b/templates/basebase.html index f88878fe..4a7c44a2 100644 --- a/templates/basebase.html +++ b/templates/basebase.html @@ -162,6 +162,8 @@ {% endif %} {% if user.rower.rowerplan == 'basic' and user.rower.protrialexpires|date_dif == 1 %} + {% elif user.rower.rowerplan == 'basic' and user.rower.plantrialexpires|date_dif == 1 %} + {% endif %} @@ -244,7 +246,7 @@ {% endif %} {% if user.rower.protrialexpires and user.rower.protrialexpires|is_future_date %}

- {{ user.rower.protrialexpires|date_dif|ddays }} days left in Pro trial + {{ user.rower.protrialexpires|date_dif|ddays }} days left of your trial

{% endif %} {% if user.rower.emailbounced %} From c05dac188b8412cb1d826369030d6fca3e7ce71a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 10 Apr 2018 08:41:20 +0200 Subject: [PATCH 2/2] fine tuning trial messages and planmembership page --- rowers/templates/planmembership.html | 15 ++++++++------- templates/basebase.html | 12 +++++++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/rowers/templates/planmembership.html b/rowers/templates/planmembership.html index 5a9415d3..5d9c9c3a 100644 --- a/rowers/templates/planmembership.html +++ b/rowers/templates/planmembership.html @@ -6,11 +6,8 @@

Coach and Self-Coach Membership

-

You have arrived at this page, because you tried to create a - training plan for yourself.

- -

This option is restricted to rowers on our "Self-Coach" plan or - coaches on our "Coach" plan.

+

Rowsandall.com's Training Planning functionality + is part of the paid "Self-Coach" and "Coach" plans.

On the "Self-Coach" plan, you can plan your own sessions.

@@ -32,7 +29,8 @@

What training planning functionality do we offer?

-

Over the spring of 2018, we will gradually expand this functionality. +

Over the spring of 2018, we are rolling out the first phases + of Training Planning functionality. Our current roadmap is to deploy the following and more:

@@ -45,12 +43,15 @@

  • Implemented:Track your teams performance against plan. See how well each of your team members adhere to their (team or personalized) plan.
  • Implemented:See test outcomes ranked by performance.
  • -
  • Implemented:Attach courses to your OTW tests. This advanced functionality +
  • Implemented:Attach courses to your OTW tests. + This advanced functionality allows you, for example, to assign "Row the 6km from bridge A to bridge B on Saturday" to your team members. The resulting workout tracks will be evaluated against the course, and you will receive a results table for the net time spent between the start and finish points on the course. It's like a mini head race. +
  • Define your own macro, meso and microcycle start and end dates
  • +
  • More to come ...
  • diff --git a/templates/basebase.html b/templates/basebase.html index 4a7c44a2..47d5bf19 100644 --- a/templates/basebase.html +++ b/templates/basebase.html @@ -158,12 +158,12 @@ {% elif user.rower.rowerplan == 'plan' %}
    Self-Coach
    {% else %} - + {% endif %} {% if user.rower.rowerplan == 'basic' and user.rower.protrialexpires|date_dif == 1 %} {% elif user.rower.rowerplan == 'basic' and user.rower.plantrialexpires|date_dif == 1 %} - + {% endif %}
    @@ -245,8 +245,14 @@

    {% endif %} {% if user.rower.protrialexpires and user.rower.protrialexpires|is_future_date %} + {% if user.rower.plantrialexpires %}

    - {{ user.rower.protrialexpires|date_dif|ddays }} days left of your trial + {{ user.rower.protrialexpires|date_dif|ddays }} days left of your Self-Coach trial - Would you like to upgrade now? + + {% else %} +

    + {{ user.rower.protrialexpires|date_dif|ddays }} days left of your Pro trial - Would you like to upgrade now? + {% endif %}

    {% endif %} {% if user.rower.emailbounced %}