Private
Public Access
1
0

added generic static chart routine

This commit is contained in:
Sander Roosendaal
2017-09-25 13:14:56 +02:00
parent fc321ad72f
commit 00acc23259
2 changed files with 44 additions and 83 deletions

View File

@@ -215,13 +215,22 @@ urlpatterns = [
url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'),
url(r'^partners$',TemplateView.as_view(template_name='partners.html'),name='partners'),
url(r'^workout/(?P<id>\d+)/$',views.workout_view),
url(r'^workout/(?P<id>\d+)/addtimeplot$',views.workout_add_timeplot_view),
url(r'^workout/(?P<id>\d+)/addpiechart$',views.workout_add_piechart_view),
url(r'^workout/(?P<id>\d+)/addpowerpiechart$',views.workout_add_power_piechart_view),
url(r'^workout/(?P<id>\d+)/adddistanceplot$',views.workout_add_distanceplot_view),
url(r'^workout/(?P<id>\d+)/adddistanceplot2$',views.workout_add_distanceplot2_view),
url(r'^workout/(?P<id>\d+)/addotwpowerplot$',views.workout_add_otw_powerplot_view),
url(r'^workout/(?P<id>\d+)/addtimeplot2$',views.workout_add_timeplot2_view),
url(r'^workout/(?P<id>\d+)/addtimeplot$',views.workout_add_chart_view,
{'plotnr':'1'}),
url(r'^workout/(?P<id>\d+)/addpiechart$',views.workout_add_chart_view,
{'plotnr':'3'}),
url(r'^workout/(?P<id>\d+)/addpowerpiechart$',views.workout_add_chart_view,
{'plotnr':'13'}),
url(r'^workout/(?P<id>\d+)/adddistanceplot$',views.workout_add_chart_view,
{'plotnr':'2'}),
url(r'^workout/(?P<id>\d+)/adddistanceplot2$',views.workout_add_chart_view,
{'plotnr':'7'}),
url(r'^workout/(?P<id>\d+)/addotwpowerplot$',views.workout_add_chart_view,
{'plotnr':'9'}),
url(r'^workout/(?P<id>\d+)/addtimeplot2$',views.workout_add_chart_view,
{'plotnr':'8'}),
url(r'^workout/(?P<id>\d+)/addstatic/(?P<plotnr>\d+)$',views.workout_add_chart_view),
url(r'^workout/(?P<id>\d+)/addstatic$',views.workout_add_chart_view),
url(r'^workout/(?P<id>\d+)/delete$',views.workout_delete_view),
url(r'^workout/(?P<id>\d+)/smoothenpace$',views.workout_smoothenpace_view),
url(r'^workout/(?P<id>\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view),

View File

@@ -6621,7 +6621,31 @@ def workout_edit_view_navionics(request,id=0,message="",successmessage=""):
return HttpResponseRedirect(url)
# Generic chart creation
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
def workout_add_chart_view(request,id,plotnr=1):
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
raise Http404("Workout doesn't exist")
plotnr = int(plotnr)
if (checkworkoutuser(request.user,w)==False):
raise PermissionDenied("You are not allowed add plots to this workout")
else:
f1 = w.csvfilename[6:-4]
timestr = strftime("%Y%m%d-%H%M%S")
imagename = f1+timestr+'.png'
u = w.user.user
r = getrower(u)
title = w.name
res = uploads.make_plot(r,w,f1,w.csvfilename,'timeplot',title,plotnr=plotnr,
imagename=imagename)
url = "/rowers/workout/"+str(w.id)+"/edit"
return HttpResponseRedirect(url)
# Create the chart image with wind corrected pace (OTW)
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
@@ -6755,45 +6779,9 @@ def workout_add_distanceplot2_view(request,id):
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
ftp = float(r.ftp)
if w.workouttype in ('water','coastal'):
ftp = ftp*(100.-r.otwslack)/100.
hrpwrdata = {
'hrmax':r.max,
'hrut2':r.ut2,
'hrut1':r.ut1,
'hrat':r.at,
'hrtr':r.tr,
'hran':r.an,
'ftp':ftp,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
plotnr = 7
if w.workouttype in ('water','coastal'):
plotnr = plotnr+3
if settings.DEBUG:
res = handle_makeplot.delay(f1,w.csvfilename,
w.name,hrpwrdata,plotnr,imagename)
else:
res = queue.enqueue(handle_makeplot,f1,w.csvfilename,
w.name,hrpwrdata,plotnr,imagename)
title = w.name
res = uploads.make_plot(r,w,f1,w.csvfilename,'distanceplot',title,plotnr=7,imagename=imagename)
i = GraphImage(workout=w,creationdatetime=timezone.now(),
filename=fullpathimagename)
i.save()
url = "/rowers/workout/"+str(w.id)+"/edit"
return HttpResponseRedirect(url)
@@ -6815,44 +6803,8 @@ def workout_add_timeplot2_view(request,id):
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
ftp = float(r.ftp)
if w.workouttype in ('water','coastal'):
ftp = ftp*(100.-r.otwslack)/100.
hrpwrdata = {
'hrmax':r.max,
'hrut2':r.ut2,
'hrut1':r.ut1,
'hrat':r.at,
'hrtr':r.tr,
'hran':r.an,
'ftp':ftp,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
plotnr = 8
if w.workouttype in ('water','coastal'):
plotnr = plotnr+3
if settings.DEBUG:
res = handle_makeplot.delay(f1,w.csvfilename,
w.name,hrpwrdata,plotnr,imagename)
else:
res = queue.enqueue(handle_makeplot,f1,w.csvfilename,
w.name,hrpwrdata,plotnr,imagename)
i = GraphImage(workout=w,creationdatetime=timezone.now(),
filename=fullpathimagename)
i.save()
title = w.name
res = uploads.make_plot(r,w,f1,w.csvfilename,'distanceplot',title,plotnr=8,imagename=imagename)
url = "/rowers/workout/"+str(w.id)+"/edit"
return HttpResponseRedirect(url)