From cde106bb1993215bfbb62553d7298c2c45df2b38 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 9 Nov 2016 00:00:13 +0100 Subject: [PATCH] power zones --- rowers/templates/workout_form.html | 9 +++++- rowers/tests.py | 1 - rowers/urls.py | 1 + rowers/views.py | 44 ++++++++++++++++++++++++++++++ rowsandall_app/settings.py | 9 ------ rowsandall_app/settings_dev.py | 9 ++++++ 6 files changed, 62 insertions(+), 11 deletions(-) diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 6e08a409..866ba83b 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -86,6 +86,13 @@ Add Pie Chart

+
+ +
+

+ Power Pie Chart +

+

Generating images takes roughly 1 second per minute of your workout's duration. Please reload after a minute or so.

@@ -218,4 +225,4 @@ {{ gmdiv|safe }}
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/rowers/tests.py b/rowers/tests.py index 9e73ea0a..45b21246 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -321,7 +321,6 @@ class ViewTest(TestCase): } form = DocumentsForm(form_data,file_data) - response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() diff --git a/rowers/urls.py b/rowers/urls.py index 8fb2884c..2a829525 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -89,6 +89,7 @@ urlpatterns = [ url(r'^workout/(\d+)/$',views.workout_view), url(r'^workout/(\d+)/addtimeplot$',views.workout_add_timeplot_view), url(r'^workout/(\d+)/addpiechart$',views.workout_add_piechart_view), + url(r'^workout/(\d+)/addpowerpiechart$',views.workout_add_power_piechart_view), url(r'^workout/(\d+)/adddistanceplot$',views.workout_add_distanceplot_view), url(r'^workout/(\d+)/adddistanceplot2$',views.workout_add_distanceplot2_view), url(r'^workout/(\d+)/addotwpowerplot$',views.workout_add_otw_powerplot_view), diff --git a/rowers/views.py b/rowers/views.py index 7b032b52..f850dc5e 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2830,6 +2830,50 @@ def workout_add_piechart_view(request,id): url = "/rowers/workout/"+str(w.id)+"/edit" return HttpResponseRedirect(url) +@login_required() +def workout_add_power_piechart_view(request,id): + w = Workout.objects.get(id=id) + if (checkworkoutuser(request.user,w)==False): + return HttpResponse("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' + fullpathimagename = 'static/plots/'+imagename + u = request.user + r = Rower.objects.get(user=u) + hrpwrdata = { + 'hrmax':r.max, + 'hrut2':r.ut2, + 'hrut1':r.ut1, + 'hrat':r.at, + 'hrtr':r.tr, + 'hran':r.an, + 'ftp':r.ftp, + } + + # make plot - asynchronous task + plotnr = 13 + + if (w.workouttype=='water'): + 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=datetime.datetime.now(), +# filename=fullpathimagename) + i = GraphImage(workout=w,creationdatetime=timezone.now(), + filename=fullpathimagename) + i.save() + + url = "/rowers/workout/"+str(w.id)+"/edit" + return HttpResponseRedirect(url) + @login_required() def workout_add_timeplot_view(request,id): w = Workout.objects.get(id=id) diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 127d1f53..732345a4 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -168,15 +168,6 @@ MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') -BROKER_URL = 'redis://localhost:6379/0' -CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' -CELERY_IGNORE_RESULT = False - -CELERY_ACCEPT_CONTENT = ['json'] -CELERY_TASK_SERIALIZER = 'json' -CELERY_RESULT_SERIALIZER = 'json' -CELERY_TRACK_STARTED = True -CELERY_SEND_TASK_SENT_EVENT = True # user authentication diff --git a/rowsandall_app/settings_dev.py b/rowsandall_app/settings_dev.py index a1b69514..b3268cb3 100644 --- a/rowsandall_app/settings_dev.py +++ b/rowsandall_app/settings_dev.py @@ -30,6 +30,15 @@ DATABASES = { # } } +BROKER_URL = 'redis://localhost:6379/0' +CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' +CELERY_IGNORE_RESULT = False + +CELERY_ACCEPT_CONTENT = ['json'] +CELERY_TASK_SERIALIZER = 'json' +CELERY_RESULT_SERIALIZER = 'json' +CELERY_TRACK_STARTED = True +CELERY_SEND_TASK_SENT_EVENT = True # SECURITY WARNING: don't run with debug turned on in production!