Private
Public Access
1
0

first version actual/executed chart for plan

This commit is contained in:
Sander Roosendaal
2019-10-05 14:35:06 +02:00
parent 65db7ee6d8
commit c12a2c8fe3
6 changed files with 299 additions and 97 deletions

View File

@@ -1053,7 +1053,7 @@ def plannedsessions_coach_view(request,
}
)
from rowers.plannedsessions import cratiocolors
from rowers.plannedsessions import cratiocolors,checkscores
@login_required()
def plannedsessions_view(request,
@@ -2329,6 +2329,63 @@ class MacroCycleDelete(DeleteView):
return obj
@user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None)
def rower_trainingplan_execution_view(request,
id=0,
userid=0):
startdate,enddate = get_dates_timeperiod(request)
try:
plan = TrainingPlan.objects.get(id=id)
except TrainingPlan.DoesNotExist:
raise Http4040("Training Plan Does Not Exist")
r = getrequestrower(request,userid=userid)
if not checkaccessuser(request.user,plan.manager):
if request.user.rower not in plan.rowers.all():
raise PermissionDenied("Access denied")
data,message = get_execution_report(r,plan.startdate,plan.enddate,plan=plan)
script, div = interactive_planchart(data,plan.startdate,plan.enddate)
breadcrumbs = [
{
'url':reverse(plannedsessions_view,
kwargs={'userid':userid}),
'name': 'Plan'
},
{
'url':reverse(rower_trainingplan_view,
kwargs={'userid':userid,
'id':id}),
'name': plan.name
},
{
'url':reverse(rower_trainingplan_execution_view,
kwargs={'userid':userid,
'id':id}),
'name': 'Execution'
}
]
return render(request,'trainingplan_chart.html',
{
'plan':plan,
'todays_date': timezone.now().date(),
'active': 'nav-plan',
'breadcrumbs':breadcrumbs,
'rower':r,
'the_script':script,
'the_div':div
}
)
@user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None)
@@ -2359,99 +2416,7 @@ def rower_trainingplan_view(request,
plan=plan,
type='userdefined').order_by("startdate")
for m in macrocycles:
createmesofillers(m)
m.plantime = 0
m.actualtime = 0
m.plandistance = 0
m.actualdistance = 0
m.planrscore = 0
m.actualrscore = 0
m.plantrimp = 0
m.actualtrimp = 0
mesocycles = TrainingMesoCycle.objects.filter(
plan=m,
type='userdefined').order_by("startdate")
for me in mesocycles:
me.plantime = 0
me.actualtime = 0
me.plandistance = 0
me.actualdistance = 0
me.planrscore = 0
me.actualrscore = 0
me.plantrimp = 0
me.actualtrimp = 0
microcycles = TrainingMicroCycle.objects.filter(
plan=me,
type='userdefined').order_by("startdate")
for mm in microcycles:
sps = get_sessions(r,startdate=mm.startdate,enddate=mm.enddate)
# sps = PlannedSession.objects.filter(
# rower = r,
# startdate__lte=mm.enddate,
# enddate__gte=mm.startdate)
mm.plantime = 0
mm.actualtime = 0
mm.plandistance = 0
mm.actualdistance = 0
mm.planrscore = 0
mm.actualrscore = 0
mm.plantrimp = 0
mm.actualtrimp = 0
if mm.type == 'userdefined':
for ps in sps:
ratio, status, cdate = is_session_complete(r,ps)
if ps.sessionmode == 'time':
mm.plantime += ps.sessionvalue
mm.actualtime += int(ps.sessionvalue*ratio)
elif ps.sessionmode == 'distance' and ps.sessiontype != 'race':
mm.plandistance += ps.sessionvalue
mm.actualdistance += int(ps.sessionvalue*ratio)
elif ps.sessionmode == 'rScore':
mm.planrscore += ps.sessionvalue
mm.actualrscore += int(ps.sessionvalue*ratio)
elif ps.sessionmode == 'TRIMP':
mm.plantrimp += ps.sessionvalue
mm.actualtrimp += int(ps.sessionvalue*ratio)
mm.save()
me.plantime += mm.plantime
me.actualtime += mm.actualtime
me.plandistance += mm.plandistance
me.actualdistance += mm.actualdistance
me.planrscore += mm.planrscore
me.actualrscore += mm.actualrscore
me.plantrimp += mm.plantrimp
me.actualtrimp += mm.actualtrimp
if me.type == 'userdefined':
me.save()
m.plantime += me.plantime
m.actualtime += me.actualtime
m.plandistance += me.plandistance
m.actualdistance += me.actualdistance
m.planrscore += me.planrscore
m.actualrscore += me.actualrscore
m.plantrimp += me.plantrimp
m.actualtrimp += me.actualtrimp
if m.type == 'userdefined':
m.save()
checkscores(r,macrocycles)
createmacrofillers(plan)
macrocycles = TrainingMacroCycle.objects.filter(plan=plan).order_by("startdate")