Private
Public Access
1
0

split workout (bugs)

This commit is contained in:
Sander Roosendaal
2017-08-22 20:15:06 +02:00
parent 6a65214d48
commit f44fee0f12
5 changed files with 219 additions and 2 deletions

View File

@@ -36,7 +36,7 @@ from rowers.forms import (
RegistrationFormUniqueEmail,CNsummaryForm,UpdateWindForm,
UpdateStreamForm,WorkoutMultipleCompareForm,ChartParamChoiceForm,
FusionMetricChoiceForm,BoxPlotChoiceForm,MultiFlexChoiceForm,
TrendFlexModalForm,
TrendFlexModalForm,WorkoutSplitForm,
)
from rowers.models import Workout, User, Rower, WorkoutForm,FavoriteChart
from rowers.models import (
@@ -7773,6 +7773,8 @@ def workout_delete_view(request,id=0):
messages.info(request,'Workout deleted')
try:
url = request.session['referer']
if 'rowers/workout/' in url:
url = reverse(workouts_view)
except KeyError:
url = reverse(workouts_view)
@@ -7877,7 +7879,7 @@ def graph_show_view(request,id):
raise Http404("This graph doesn't exist")
except Workout.DoesNotExist:
raise Http404("This workout doesn't exist")
# Restore original stroke data and summary
@login_required()
def workout_summary_restore_view(request,id,message="",successmessage=""):
@@ -7935,6 +7937,54 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
)
return HttpResponseRedirect(url)
# Split a workout
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
def workout_split_view(request,id=id):
try:
row = Workout.objects.get(id=id)
if (checkworkoutuser(request.user,row)==False):
raise PermissionDenied("You are not allowed to edit this workout")
except Workout.DoesNotExist:
raise Http404("Workout doesn't exist")
r = getrower(request.user)
if not checkworkoutuser(request.user,row):
raise PermissionDenied("You are not allowed to edit this workout")
if request.method == 'POST':
form = WorkoutSplitForm(request.POST)
if form.is_valid():
splittime = form.cleaned_data['splittime']
splitsecond = splittime.hour*3600
splitsecond += splittime.minute*60
splitsecond += splittime.second
splitsecond += splittime.microsecond/1.e6
splitmode = form.cleaned_data['splitmode']
ids,mesgs = dataprep.split_workout(r,row,splitsecond,splitmode)
for message in mesgs:
messages.info(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url)
form = WorkoutSplitForm()
# create interactive plot
try:
res = interactive_chart(id,promember=1)
script = res[0]
div = res[1]
except ValueError:
pass
return render(request, 'splitworkout.html',
{'form':form,
'workout':row,
'thediv':script,
'thescript':div,
})
# Fuse two workouts
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
def workout_fusion_view(request,id1=0,id2=1):