Private
Public Access
1
0

adding coach trial functionality

This commit is contained in:
Sander Roosendaal
2022-08-24 13:32:53 +02:00
parent 85612b2a47
commit 936a524804
10 changed files with 140 additions and 15 deletions

View File

@@ -1289,7 +1289,7 @@ def plannedsessions_coach_view(request,
else:
theteam = False
if 'coach' in request.user.rower.rowerplan:
if is_coach(request.user) or is_coachtrial(request.user):
sps = get_sessions_manager(request.user, teamid=teamid,
enddate=enddate,
startdate=startdate)
@@ -1303,7 +1303,7 @@ def plannedsessions_coach_view(request,
rowers = []
for ps in sps:
if 'coach' in request.user.rower.rowerplan:
if is_coach(request.user) or is_coachtrial(request.user):
rowers += ps.rower.all().exclude(rowerplan='freecoach')
else: # pragma: no cover
rowers += ps.rower.filter(
@@ -1539,8 +1539,9 @@ def plannedsessions_view(request,
totals['actualtrimp'] += thetrimp
if not sps and request.user.rower.rowerplan == 'basic': # pragma: no cover
messages.error(request,
"You must purchase Coach or Self-coach plans or be part of a team to get planned sessions")
if user_is_basic(request.user):
messages.error(request,
"You must purchase Coach or Self-coach plans or be part of a team to get planned sessions")
for ps in sps:
ratio, status, cdate = is_session_complete(r, ps)

View File

@@ -77,8 +77,9 @@ from rowers.rower_rules import (
can_view_plan, can_change_plan, can_delete_plan,
can_view_cycle, can_change_cycle, can_delete_cycle,
can_add_workout_member, can_plan_user, is_paid_coach,
can_start_trial, can_start_plantrial, can_plan, is_workout_team,
is_promember,
can_start_trial, can_start_plantrial, can_start_coachtrial,
can_plan, is_workout_team,
is_promember,user_is_basic, is_coachtrial, is_coach
)
from django.shortcuts import render

View File

@@ -175,7 +175,7 @@ def get_teams(request):
private='open').exclude(
rower=r).exclude(manager=request.user).order_by('name')
if r.rowerplan == 'basic':
if user_is_basic(request.user):
otherteams = otherteams.filter(manager__rower__rowerplan='coach')
return myteams, memberteams, otherteams
@@ -234,7 +234,7 @@ def rower_teams_view(request): # pragma: no cover
coachees = teams.coach_getcoachees(request.user.rower)
if request.user.rower.rowerplan == 'coach':
if is_coach(request.user) or is_coachtrial(request.user):
potentialathletes = Rower.objects.filter(
team__in=myteams).exclude(
user__in=invitedathletes).exclude(
@@ -471,7 +471,7 @@ def team_requestmembership_view(request, teamid, userid):
def request_coaching_view(request, coachid):
coach = User.objects.get(id=coachid).rower
if 'coach' in coach.rowerplan:
if is_coach(coach.user) or is_coachtrial(request.user):
res, text = teams.create_coaching_request(coach, request.user)
if res:
messages.info(request, text)

View File

@@ -143,6 +143,40 @@ def survey(request): # pragma: no cover
return render(request, 'survey.html', context)
@login_required()
def start_coachtrial_view(request):
r = getrower(request.user)
if not can_start_coachtrial(request.user): # pragma: no cover
messages.error(request, 'You do not qualify for a coach trial')
url = '/rowers/paidplans'
return HttpResponseRedirect(url)
r.coachtrialexpires = timezone.now()+datetime.timedelta(13)
r.clubsize = 2
r.save()
url = reverse('workouts_view')
messages.info(request, 'We have started your 14 day coach trial period')
subject2 = "User started Coach Trial"
message2 = "User Started Coach Trial.\n"
message2 += request.user.email + "\n"
message2 += "User name: "+request.user.username
send_mail(subject2, message2,
'Rowsandall Server <info@rowsandall.com>',
['roosendaalsander@gmail.com'])
send_template_email('Rowsandall <info@rowsandall.com>',
[r.user.email],
'Welcome to the Rowsandall Coach Trial',
'coachtrialwelcome.html',
{'first_name': r.user.first_name,
'last_name': r.user.last_name})
return HttpResponseRedirect(url)
@login_required()
def start_trial_view(request):