diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html index 40cc7f00..5c06f2a4 100644 --- a/rowers/templates/menu_workout.html +++ b/rowers/templates/menu_workout.html @@ -291,13 +291,13 @@
  • - {% if workout.impeller %}• {% else %} {% endif %}Use GPS data + {% if workout.impeller %} {% else %}• {% endif %}Use GPS data
  • - {% if workout.impeller %} {% else %}• {% endif %}Use Impeller data + {% if workout.impeller %}• {% else %} {% endif %}Use Impeller data
  • {% endif %} diff --git a/rowers/urls.py b/rowers/urls.py index 5696c0d4..97a45af6 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -283,6 +283,10 @@ urlpatterns = [ re_path(r'^graph/(?P\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'), re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails, name='get_thumbnails'), + re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/otwuseimpeller/$',views.otw_use_impeller, + name='otw_use_impeller'), + re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/otwusegps/$',views.otw_use_gps, + name='otw_use_gps'), re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking, name='workout_toggle_ranking'), re_path(r'^workout/(?P\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript, diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 592cbc14..f72537f9 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -456,18 +456,54 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False): 'teams':get_my_teams(request.user), }) -# Test asynchronous tasking and messaging -#@login_required() -#def workout_test_task_view(request,id=0): -# row = Workout.objects.get(id=id) -# res = myqueue(queuehigh,addcomment2,request.user.id,row.id)# -# -# -# url = reverse('workout_edit_view', -# kwargs = { -# 'id':int(id), -# }) -# return HttpResponseRedirect(url) +# Switch from GPS to Impeller (only for SpeedCoach 2, if impeller data) +@login_required +def otw_use_impeller(request,id=0): + w = get_workout(id) + + if (checkworkoutuser(request.user,w)==False): + raise PermissionDenied("Access denied") + + row = rdata(w.csvfilename) + success = row.use_impellerdata() + if success: + row.write_csv(w.csvfilename) + dataprep.update_strokedata(w.id,row.df) + w.impeller = True + w.save() + messages.info(request,'The distance and speed data are now based on Impeller data') + else: + messages.error(request,'No impeller data found') + + url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)}) + + return HttpResponseRedirect(url) + + +# Switch from Impeller to GPS (only for SpeedCoach 2, if impeller data) +@login_required +def otw_use_gps(request,id=0): + w = get_workout(id) + + if (checkworkoutuser(request.user,w)==False): + raise PermissionDenied("Access denied") + + row = rdata(w.csvfilename) + success = row.use_gpsdata() + if success: + row.write_csv(w.csvfilename) + dataprep.update_strokedata(w.id,row.df) + w.impeller = False + w.save() + messages.info(request,'The distance and speed data are now based on GPS data') + else: + messages.error(request,'No GPS data found') + + url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)}) + + return HttpResponseRedirect(url) + + # Show Stroke power histogram for a workout @login_required()