From 5b87181b0da3dc4ce1c29dd7b922b7562b6347e2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 31 May 2019 14:50:44 +0200 Subject: [PATCH 1/8] free coach has pro if four pro athletes --- rowers/models.py | 4 ++++ rowers/templates/paidplans.html | 23 +++++++++++++++++++++-- rowers/tests/testdata/testdata.csv.gz | Bin 12523 -> 12557 bytes rowers/utils.py | 5 +++++ rowers/views/statements.py | 3 ++- static/css/rowsandall.css | 1 + static/css/rowsandall2.css | 5 +++++ 7 files changed, 38 insertions(+), 3 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 7f50af9f..2fec8b3f 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -651,6 +651,10 @@ class CoachingGroup(models.Model): id = self.pk, name = self.name ) + + def __len__(self): + rs = Rower.objects.filter(coachinggroups__in=[self]) + return len(rs) # Extension of User with rowing specific data @python_2_unicode_compatible diff --git a/rowers/templates/paidplans.html b/rowers/templates/paidplans.html index 4038f032..5d27fb7c 100644 --- a/rowers/templates/paidplans.html +++ b/rowers/templates/paidplans.html @@ -27,6 +27,7 @@ PRO SELF-COACH COACH + Free COACH @@ -36,6 +37,7 @@ ✔ ✔ ✔ + ✔ Manual Import, Export, Synchronization and download of all your data @@ -43,6 +45,7 @@ ✔ ✔ ✔ + ✔ Heart rate and power zones @@ -50,6 +53,7 @@ ✔ ✔ ✔ + ✔ Ranking Pieces, Stroke Analysis @@ -57,6 +61,7 @@ ✔ ✔ ✔ + ✔ Automatic Synchronization with other fitness sites @@ -64,6 +69,7 @@ ✔ ✔ ✔ +   Advanced Analysis (Critical Power, Stats, Box Chart, Trend Flex) @@ -71,6 +77,7 @@ ✔ ✔ ✔ + ✔* Compare Workouts @@ -78,6 +85,7 @@ ✔ ✔ ✔ + ✔* Empower Stroke Profile @@ -85,6 +93,7 @@ ✔ ✔ ✔ + ✔* Sensor Fusion, Split Workout, In-stroke metrics @@ -92,6 +101,7 @@ ✔ ✔ ✔ + ✔* Create and manage groups. @@ -99,6 +109,7 @@ ✔ ✔ ✔ + ✔ Create Training plans, tests and challenges for yourself and your training group. Track your performance @@ -107,6 +118,7 @@   ✔ ✔ +   Create Training plans, tests and challenges for your athletes. Track their performance @@ -115,6 +127,7 @@     ✔ + ✔ Manage your athlete's workouts @@ -122,6 +135,7 @@     ✔ + ✔ Run analytics for your athletes @@ -129,6 +143,7 @@     ✔ + ✔* Change zone intensities and other workout related settings for your athletes @@ -136,6 +151,7 @@     ✔ + ✔ Pricing @@ -143,6 +159,7 @@ From 25€/year From 75€/year From 90€/year + Free   @@ -310,10 +327,12 @@ can purchase upgrades to "Pro" and "Self-Coach" plans.

-

+

The Coach plans come in two versions: free and paid. On the free coach plan, you can only have athletes who are on the PRO paid plans or higher, and you - cannot upload any workouts to your own account. On the paid + cannot upload any workouts to your own account. Some of the advanced Analysis functionality + becomes available when the athlete group is larger than 4. + On the paid plans, your athletes can be on the free plan, and you have full access to the site functionality for your own workouts and those of your athletes.

diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index b9e56fb2332713c161efa8de7dcfba4697a56d47..556f84d62277b72e094156b9f9efff55a109a49d 100644 GIT binary patch literal 12557 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 datetime.date.today() + if not result and r.rowerplan == 'freecoach': + if r.mycoachgroup is not None: + result = len(r.mycoachgroup)>=4 return result diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 045ef2ea..8b9a9991 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -1049,7 +1049,8 @@ def hasplannedsessions(user): return result -from rowers.utils import isprorower,ProcessorCustomerError +from rowers.utils import ProcessorCustomerError +from rowers.utils import isprorower # Check if a user is a Pro member def ispromember(user): diff --git a/static/css/rowsandall.css b/static/css/rowsandall.css index 86682c66..4e6f3ab2 100644 --- a/static/css/rowsandall.css +++ b/static/css/rowsandall.css @@ -26,6 +26,7 @@ background-image: url("/static/img/landing8b.jpg"); } + .watermark { position: absolute; float: center; diff --git a/static/css/rowsandall2.css b/static/css/rowsandall2.css index 2f0ccff9..9dd82684 100644 --- a/static/css/rowsandall2.css +++ b/static/css/rowsandall2.css @@ -26,6 +26,11 @@ background-image: url("/static/img/landing8b.jpg"); } +.errorlist { + color: red; +} + + .watermark { position: absolute; float: center; From 5e5b7a7f53438cd78030a79bea3e5123c400b08c Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 10 Jun 2019 20:38:28 +0200 Subject: [PATCH 2/8] fixed #487 --- rowers/tests/testdata/testdata.csv.gz | Bin 12557 -> 12543 bytes rowers/views/analysisviews.py | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 556f84d62277b72e094156b9f9efff55a109a49d..5a3579527002620a30039592cedc2498ec437cd1 100644 GIT binary patch literal 12543 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 zʩ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 Date: Tue, 11 Jun 2019 17:17:11 +0200 Subject: [PATCH 3/8] fix #486 --- rowers/views/workoutviews.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 83046177..92c7e7ee 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3563,8 +3563,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""): else: indoorraces = [] - r = getrower(request.user) - + + r = row.user # render page return render(request, 'workout_form.html', {'form':form, From 37ee7287691ab4071abe0a5e7c164f75791d7848 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 11 Jun 2019 17:27:00 +0200 Subject: [PATCH 4/8] fix #485 --- rowers/views/otherviews.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/views/otherviews.py b/rowers/views/otherviews.py index 2a1f0be2..b2e74531 100644 --- a/rowers/views/otherviews.py +++ b/rowers/views/otherviews.py @@ -96,7 +96,7 @@ def remove_user(request): success, themessages,errormessages = braintreestuff.cancel_subscription(r,id) for message in themessages: messages.info(request,message) - except ProcessorCustomerError: + except: pass if cd['delete_user']: From 55e519380838b96cc54745f88b13c39ced20d9e7 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 11 Jun 2019 18:01:39 +0200 Subject: [PATCH 5/8] improving date picker rendering in clone microcycles --- rowers/models.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 2fec8b3f..37a13822 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2490,14 +2490,16 @@ class PlannedSessionFormSmall(ModelForm): ] dateTimeOptions = { - 'format': 'yyyy-mm-dd', + 'format': '%Y-%m-%d', 'autoclose': True, } + + input_formats=('%Y-%m-%d') widgets = { - 'startdate': DateInput(attrs={'size':10}), - 'enddate': DateInput(attrs={'size':10}), - 'preferreddate': DateInput(attrs={'size':10}), + 'startdate': DateInput(attrs={'size':10, 'class':'datepicker'}, format='%Y-%m-%d'), + 'enddate': DateInput(attrs={'size':10, 'class':'datepicker'}, format='%Y-%m-%d'), + 'preferreddate': DateInput(attrs={'size':10, 'class':'datepicker'}, format='%Y-%m-%d'), 'name': forms.TextInput(attrs={'size':10}), 'sessionvalue': forms.TextInput(attrs={'style':'width:5em', 'type':'number'}), From 488e09fd493171a889a61cd0f7e9db7efbcee0eb Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 11 Jun 2019 21:59:34 +0200 Subject: [PATCH 6/8] homepage -> landing page --- rowers/forms.py | 6 +++ .../freecoach_registration_form.html | 44 +++++------------ rowers/templates/landingpage.html | 2 +- rowers/templates/registration_form.html | 46 ++++++------------ rowers/tests/testdata/testdata.csv.gz | Bin 12543 -> 12523 bytes rowsandall_app/urls.py | 2 +- 6 files changed, 35 insertions(+), 65 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index 3c3cef2d..c0ee89fd 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -578,6 +578,12 @@ class RegistrationForm(UserCreationForm): model = User fields = ("username", "first_name", "last_name", "email", "password1", "password2") + widgets = { + 'username': forms.TextInput(attrs={'autocomplete':'new-password'}), + 'password1': forms.PasswordInput(attrs={'autocomplete':'new-password'}), + 'password2': forms.PasswordInput(attrs={'autocomplete':'new-password'}), + } + class RegistrationFormTermsOfService(RegistrationForm): """ Subclass of ``RegistrationForm`` which adds a required checkbox diff --git a/rowers/templates/freecoach_registration_form.html b/rowers/templates/freecoach_registration_form.html index b747e2b0..d28ca581 100644 --- a/rowers/templates/freecoach_registration_form.html +++ b/rowers/templates/freecoach_registration_form.html @@ -10,7 +10,11 @@
  • New Coach Registration (free Coach Plan)

  • -
  • +
  • +

    + This form is for registration as a coach. + Click here to register as a rower. +

    {% if form.errors %} @@ -19,14 +23,18 @@

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

    + Terms of Service +

    +

    + + +

  • @@ -43,32 +51,6 @@

    Also, we are restricting access to the site to 16 years and older because of EU data protection regulations.

    -
  • - -

    Register as a coach (free)

    -

    Click here and fill out the form to start with a free Coach plan. This allows you - to manage up to 10 athletes (who have to be on the Pro plan). You cannot upload your own - workouts. -

    -

    - From this free plan, you can upgrade to any of the paid plans, including coach plans for larger - athlete groups or rower plans for managing your own training plan and workouts. -

    -
    -
  • -
  • - -

    Register as an athlete (free)

    -

    Click here and fill out the form to start with a free Athlete plan. This allows you - to store and analyze your own workouts. -

    -

    - From this free plan, you can upgrade to any of the paid plans, including - coach plans for managing larger athlete groups or rower plans for expanded - analytics. -

    -
    -
  • diff --git a/rowers/templates/landingpage.html b/rowers/templates/landingpage.html index d077263a..60f01d68 100644 --- a/rowers/templates/landingpage.html +++ b/rowers/templates/landingpage.html @@ -179,7 +179,7 @@ {% else %}
    - Enter  + Launch App 
    {% endif %}
    diff --git a/rowers/templates/registration_form.html b/rowers/templates/registration_form.html index ef098e65..9619d239 100644 --- a/rowers/templates/registration_form.html +++ b/rowers/templates/registration_form.html @@ -8,9 +8,13 @@ {% block main %}
    • -

      New User Registration

      +

      New Rower Registration

    • -
    • +
    • +

      + This form is for registration as a rower. + Click here to register as a coach. +

      {% if form.errors %} @@ -19,14 +23,18 @@

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

      + Terms of Service +

      +

      + + +

    • @@ -43,32 +51,6 @@

      Also, we are restricting access to the site to 16 years and older because of EU data protection regulations.

      -
    • - -

      Register as a coach (free)

      -

      Click here and fill out the form to start with a free Coach plan. This allows you - to manage up to 10 athletes (who have to be on the Pro plan). You cannot upload your own - workouts. -

      -

      - From this free plan, you can upgrade to any of the paid plans, including coach plans for larger - athlete groups or rower plans for managing your own training plan and workouts. -

      -
      -
    • -
    • - -

      Register as an athlete (free)

      -

      Click here and fill out the form to start with a free Athlete plan. This allows you - to store and analyze your own workouts. -

      -

      - From this free plan, you can upgrade to any of the paid plans, including - coach plans for managing larger athlete groups or rower plans for expanded - analytics. -

      -
      -
    diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 5a3579527002620a30039592cedc2498ec437cd1..953fbc06a699a8fcac6f21835141511ecaba826d 100644 GIT binary patch literal 12523 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 zʩ#=1hb_}VRZ>xe7ZaMW6yPtn@>A+Q@%LOfFfy)Fm_xH(`J$-2~OP)gF7NL@BK zX0A0p)Ouqy?~`6Ze@x_iBV@Ythd_bDd?3o@(y^vncAri7*&srq8U};h9kQ*SHC+q? zSFPodmwHUJon=2mtfOLmJkM4%f8tX*#xWm9+V%sVDwi@y%~tj!F~@$kTHHHR61RDA zI%hJiJ$;c3sk3edR33runKoOS($lLE;&@q`gHXIzj>LDI)^$Dpk+eV7-Z zaHxEQYRVHT>>J&^a Date: Tue, 11 Jun 2019 22:04:46 +0200 Subject: [PATCH 7/8] added link to sign in on register pages --- rowers/templates/freecoach_registration_form.html | 3 +++ rowers/templates/registration_form.html | 3 +++ 2 files changed, 6 insertions(+) diff --git a/rowers/templates/freecoach_registration_form.html b/rowers/templates/freecoach_registration_form.html index d28ca581..a1746819 100644 --- a/rowers/templates/freecoach_registration_form.html +++ b/rowers/templates/freecoach_registration_form.html @@ -15,6 +15,9 @@ This form is for registration as a coach. Click here to register as a rower.

    +

    + Already signed up? Click here to sign in. +

    {% if form.errors %} diff --git a/rowers/templates/registration_form.html b/rowers/templates/registration_form.html index 9619d239..d7c27f4c 100644 --- a/rowers/templates/registration_form.html +++ b/rowers/templates/registration_form.html @@ -15,6 +15,9 @@ This form is for registration as a rower. Click here to register as a coach.

    +

    + Already signed up? Click here to sign in. +

    {% if form.errors %} From 6c95439612d7c8573d3ed2d07bea65fb62a0e3a2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 12 Jun 2019 21:08:39 +0200 Subject: [PATCH 8/8] tested --- rowers/tests/testdata/testdata.csv.gz | Bin 12523 -> 12523 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 953fbc06a699a8fcac6f21835141511ecaba826d..eb6a3b613a007d7d43c9b7dbf857b28244d52d5d 100644 GIT binary patch delta 16 XcmaEz_&SkYzMF$%x-a8K_9q4aIGP3v delta 16 XcmaEz_&SkYzMF&N4Lid|_9q4aIYb5-