Private
Public Access
1
0

passing all but one test

This commit is contained in:
Sander Roosendaal
2019-02-13 21:42:08 +01:00
parent d35d7e8e2c
commit 292e703766
14 changed files with 188 additions and 152 deletions

View File

@@ -60,7 +60,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
'the_div':div,
'js_res': js_resources,
'css_res':css_resources,
'id':int(id),
'id':id,
'mayedit':mayedit,
'workstrokesonly': not workstrokesonly,
'teams':get_my_teams(request.user),
@@ -126,7 +126,7 @@ def workout_histo_view(request,id=0):
'workout':w,
'rower':r,
'the_div':div,
'id':int(id),
'id':id,
'mayedit':mayedit,
'teams':get_my_teams(request.user),
})
@@ -248,7 +248,7 @@ def addmanual_view(request):
url = reverse(
'workout_edit_view',
kwargs={'id':id}
kwargs={'id':encoder.encode_hex(id)}
)
return HttpResponseRedirect(url)
else:
@@ -371,14 +371,14 @@ def workout_recalcsummary_view(request,id=0):
messages.info(request,successmessage)
url = reverse('workout_edit_view',
kwargs = {
'id':int(id),
'id':id,
})
else:
message = "Something went wrong. Could not update summary"
messages.error(request,message)
url = reverse('workout_edit_view',
kwargs = {
'id':int(id),
'id':id,
})
return HttpResponseRedirect(url)
@@ -419,7 +419,7 @@ def workouts_join_view(request):
url = reverse(r.defaultlandingpage,
kwargs = {
'id':int(id),
'id':encoder.encode_hex(id),
})
return HttpResponseRedirect(url)
@@ -740,7 +740,7 @@ def team_comparison_select(request,
if not checkworkoutuser(request.user,firstworkout):
raise PermissionDenied("You are not allowed to sue this workout")
firstworkoutquery = Workout.objects.filter(id=id)
firstworkoutquery = Workout.objects.filter(id=encoder.decode_hex(id))
workouts = firstworkoutquery | workouts
else:
firstworkout = None
@@ -856,7 +856,7 @@ def virtualevent_compare_view(request,id=0):
workouts = []
for id in workoutids:
try:
workouts.append(Workout.objects.get(id=id))
workouts.append(Workout.objects.get(id=encode.decode_hex(id)))
except Workout.DoesNotExist:
pass
@@ -888,7 +888,7 @@ def virtualevent_compare_view(request,id=0):
workouts = []
for id in workoutids:
try:
workouts.append(Workout.objects.get(id=id))
workouts.append(Workout.objects.get(id=encoded.decode_hex(id)))
except Workout.DoesNotExist:
pass
@@ -989,7 +989,8 @@ def plannedsession_compare_view(request,id=0,userid=0):
request.session['ps'] = ps.id
if ids:
url = reverse('multi_compare_view',kwargs={'userid':userid,'id':ids[0]})
url = reverse('multi_compare_view',
kwargs={'userid':userid,'id':encoder.encode_hex(ids[0])})
else:
url = reverse('plannedsession_view',kwargs={'id':ps.id})
@@ -1400,10 +1401,13 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
s = enddate
enddate = startdate
startdate = s
if id:
theid = encoder.decode_hex(id)
workouts = Workout.objects.filter(user=r,
startdatetime__gte=startdate,
startdatetime__lte=enddate).order_by("-date", "-starttime").exclude(id=id)
startdatetime__lte=enddate).order_by("-date", "-starttime").exclude(id=theid)
query = request.GET.get('q')
if query:
@@ -1438,7 +1442,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
'name':'Workouts'
},
{
'url':get_workout_default_page(request,row.id),
'url':get_workout_default_page(request,encoder.encode_hex(row.id)),
'name': row.name
},
{
@@ -1449,7 +1453,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
]
return render(request, 'fusion_list.html',
{'id':int(id),
{'id':id,
'workout':row,
'rower':r,
'searchform':searchform,
@@ -1474,7 +1478,7 @@ def workout_view(request,id=0):
rower = None
try:
row = Workout.objects.get(id=id)
row = Workout.objects.get(id=encoder.decode_hex(id))
except Workout.DoesNotExist:
raise Http404("Workout doesn't exist")
@@ -1499,7 +1503,7 @@ def workout_view(request,id=0):
# create interactive plot
res = interactive_chart(id)
res = interactive_chart(encoder.decode_hex(id))
script = res[0]
div = res[1]
@@ -1591,7 +1595,7 @@ def workout_undo_smoothenpace_view(
row.df[' Stroke500mPace (sec/500m)'] = 500./velo
row.write_csv(filename,gzip=True)
dataprep.update_strokedata(id,row.df)
dataprep.update_strokedata(encoder.decode_hex(id),row.df)
url = reverse(r.defaultlandingpage,
kwargs = {
@@ -1641,7 +1645,7 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
row.df = row.df.fillna(0)
row.write_csv(filename,gzip=True)
dataprep.update_strokedata(id,row.df)
dataprep.update_strokedata(encoder.decode_hex(id),row.df)
messages.info(request,'A smoothening filter was applied to your pace data')
@@ -1694,7 +1698,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
messages.info(request,successmessage)
url = reverse('workout_edit_view',
kwargs = {
'id':int(id),
'id':id,
})
return HttpResponseRedirect(url)
@@ -1707,7 +1711,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
messages.error(request,message)
url = reverse('workout_edit_view',
kwargs = {
'id':int(id),
'id':id,
})
return HttpResponseRedirect(url)
else:
@@ -1785,7 +1789,7 @@ def workout_downloadwind_view(request,id=0,
messages.info(request,message)
kwargs = {
'id':int(id)}
'id':id}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -1793,7 +1797,7 @@ def workout_downloadwind_view(request,id=0,
message = "No latitude/longitude data"
messages.error(request,message)
kwargs = {
'id':int(id)
'id':id
}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -1851,7 +1855,7 @@ def workout_downloadmetar_view(request,id=0,
messages.info(request,message)
kwargs = {
'id':int(id)}
'id':id}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -1859,7 +1863,7 @@ def workout_downloadmetar_view(request,id=0,
message = "No latitude/longitude data"
messages.error(request,message)
kwargs = {
'id':int(id)
'id':id
}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -1963,7 +1967,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
message = "Invalid Form"
messages.error(request,message)
kwargs = {
'id':int(id)
'id':id
}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -1972,7 +1976,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
form = UpdateWindForm()
# create interactive plot
res = interactive_windchart(id,promember=1)
res = interactive_windchart(encoder.decode_hex(id),promember=1)
script = res[0]
div = res[1]
@@ -2050,7 +2054,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
message = "Invalid Form"
messages.error(request,message)
kwargs = {
'id':int(id)}
'id':id}
url = reverse('workout_wind_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -2058,7 +2062,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
form = UpdateStreamForm()
# create interactive plot
res = interactive_streamchart(id,promember=1)
res = interactive_streamchart(encoder.decode_hex(id),promember=1)
script = res[0]
div = res[1]
@@ -2173,7 +2177,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
successmessage = 'Your calculations have been submitted. You will receive an email when they are done. You can check the status of your calculations <a href="/rowers/jobs-status/" target="_blank">here</a>'
messages.info(request,successmessage)
kwargs = {
'id':int(id)}
'id':id}
try:
url = request.session['referer']
@@ -2187,7 +2191,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
message = "Invalid Form"
messages.error(request,message)
kwargs = {
'id':int(id)}
'id':id}
url = reverse('workout_otwsetpower_view',kwargs=kwargs)
response = HttpResponseRedirect(url)
@@ -2366,7 +2370,7 @@ def workout_data_view(request, id=0):
]
datadf,row = dataprep.getrowdata_db(id=id)
datadf,row = dataprep.getrowdata_db(id=encoder.decode_hex(id))
datadf.sort_values(['ftime'],inplace=True)
@@ -2473,14 +2477,14 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
# prepare data frame
datadf,row = dataprep.getrowdata_db(id=id)
datadf,row = dataprep.getrowdata_db(id=encoder.decode_hex(id))
if (checkworkoutuser(request.user,row)==False):
raise PermissionDenied('Access Denied')
datadf = dataprep.clean_df_stats(datadf,workstrokesonly=workstrokesonly)
if datadf.empty:
datadf,row = dataprep.getrowdata_db(id=id)
datadf,row = dataprep.getrowdata_db(id=encoder.decode_hex(id))
datadf = dataprep.clean_df_stats(datadf,workstrokesonly=False)
workstrokesonly=False
if datadf.empty:
@@ -2964,7 +2968,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
css_resources,
workstrokesonly
) = interactive_flex_chart2(
id,xparam=xparam,yparam1=yparam1,
encoder.decode_hex(id),xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly
@@ -2977,7 +2981,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
css_resources,
workstrokesonly
) = interactive_flex_chart2(
id,xparam=xparam,yparam1=yparam1,
encoder.decode_hex(id),xparam=xparam,yparam1=yparam1,
yparam2=yparam2,
promember=promember,plottype=plottype,
workstrokesonly=workstrokesonly
@@ -3044,7 +3048,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
flexoptionsform = FlexOptionsForm(initial=initial)
row = Workout.objects.get(id=id)
row = Workout.objects.get(id=encoder.decode_hex(id))
breadcrumbs = [
{
@@ -3076,7 +3080,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
'js_res': js_resources,
'css_res':css_resources,
'teams':get_my_teams(request.user),
'id':int(id),
'id':id,
'xparam':xparam,
'yparam1':yparam1,
'yparam2':yparam2,
@@ -3135,7 +3139,7 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
mayedit=1
# create interactive plot
res = interactive_otw_advanced_pace_chart(id,promember=promember)
res = interactive_otw_advanced_pace_chart(encoder.decode_hex(id),promember=promember)
script = res[0]
div = res[1]
@@ -3213,7 +3217,7 @@ def workout_comment_view(request,id=0):
c.save()
url = reverse('workout_comment_view',
kwargs={
'id':id
'id':id,
})
message = '{name} says: <a href="{url}">{comment}</a>'.format(
name = request.user.first_name,
@@ -3342,20 +3346,20 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
try:
boattype = request.POST['boattype']
except KeyError:
boattype = Workout.objects.get(id=id).boattype
boattype = Workout.objects.get(id=encoder.decode_hex(id)).boattype
try:
privacy = request.POST['privacy']
except KeyError:
privacy = Workout.objects.get(id=id).privacy
privacy = Workout.objects.get(id=row.id).privacy
try:
rankingpiece = form.cleaned_data['rankingpiece']
except KeyError:
rankingpiece =- Workout.objects.get(id=id).rankingpiece
rankingpiece =- Workout.objects.get(id=row.id).rankingpiece
try:
duplicate = form.cleaned_data['duplicate']
except KeyError:
duplicate = Workout.objects.get(id=id).duplicate
duplicate = Workout.objects.get(id=row.id).duplicate
if private:
privacy = 'private'
@@ -3418,7 +3422,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
return HttpResponse("Error: CSV Data File Not Found")
r.rowdatetime = startdatetime
r.write_csv(row.csvfilename,gzip=True)
dataprep.update_strokedata(id,r.df)
dataprep.update_strokedata(encoder.decode_hex(id),r.df)
successmessage = "Changes saved"
if rankingpiece:
@@ -3427,7 +3431,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
messages.info(request,successmessage)
url = reverse('workout_edit_view',
kwargs = {
'id':str(row.id),
'id':encoder.encode_hex(row.id),
})
response = HttpResponseRedirect(url)
@@ -3486,11 +3490,11 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
'name':'Workouts'
},
{
'url':get_workout_default_page(request,id),
'url':get_workout_default_page(request,encoder.encode_hex(row.id)),
'name': row.name
},
{
'url':reverse('workout_edit_view',kwargs={'id':id}),
'url':reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(row.id)}),
'name': 'Edit'
}
@@ -3631,7 +3635,7 @@ def workout_uploadimage_view(request,id):
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':int(id),
'id':id,
})
return HttpResponseRedirect(url)
@@ -3729,7 +3733,7 @@ def workout_add_chart_view(request,id,plotnr=1):
request.session['async_tasks'] = [(jobid,'make_plot')]
url = reverse(r.defaultlandingpage,kwargs={'id':str(w.id)})
url = reverse(r.defaultlandingpage,kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
@@ -4004,9 +4008,11 @@ def workout_upload_view(request,
if message:
messages.error(request,message)
w = Workout.objects.get(id=id)
url = reverse('workout_edit_view',
kwargs = {
'id':int(id),
'id':encoder.encode_hex(w.id),
})
if is_ajax:
@@ -4014,7 +4020,6 @@ def workout_upload_view(request,
else:
response = HttpResponseRedirect(url)
w = Workout.objects.get(id=id)
r = getrower(request.user)
if (make_plot):
@@ -4135,7 +4140,7 @@ def workout_upload_view(request,
if landingpage != 'workout_upload_view':
url = reverse(landingpage,
kwargs = {
'id':w.id,
'id':encoder.encode_hex(w.id),
})
else:
url = reverse(landingpage)
@@ -4326,7 +4331,7 @@ def team_workout_upload_view(request,message="",
url = reverse('team_workout_upload_view')
response = HttpResponseRedirect(url)
w = Workout.objects.get(id=id)
w = Workout.objects.get(id=encoder.decode_hex(id))
r = getrower(request.user)
if (make_plot):
@@ -4459,12 +4464,7 @@ def graph_show_view(request,id):
# Restore original stroke data and summary
@login_required()
def workout_summary_restore_view(request,id,message="",successmessage=""):
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")
row = get_workout_permitted(request.user,id)
s = ""
# still here - this is a workout we may edit
@@ -4489,14 +4489,14 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
raise Http404("Error: CSV Data File Not Found")
rowdata.restoreintervaldata()
rowdata.write_csv(f1,gzip=True)
dataprep.update_strokedata(id,rowdata.df)
dataprep.update_strokedata(encoder.decode_hex(id),rowdata.df)
intervalstats = rowdata.allstats()
row.summary = intervalstats
row.save()
# create interactive plot
try:
res = interactive_chart(id,promember=1)
res = interactive_chart(encoder.decode_hex(id),promember=1)
script = res[0]
div = res[1]
except ValueError:
@@ -4506,14 +4506,14 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
messages.info(request,'Original Interval Data Restored')
url = reverse('workout_summary_edit_view',
kwargs={
'id':int(id),
'id':encoder.encode_hex(row.id),
}
)
return HttpResponseRedirect(url)
# Split a workout
@user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_split_view(request,id=id):
def workout_split_view(request,id=0):
row = get_workout_permitted(request.user,id)
r = row.user
@@ -4524,11 +4524,11 @@ def workout_split_view(request,id=id):
'name':'Workouts'
},
{
'url':get_workout_default_page(request,row.id),
'url':get_workout_default_page(request,id),
'name': row.name
},
{
'url':reverse('graph_show_view',
'url':reverse('workout_split_view',
kwargs={'id':id}),
'name': 'Chart'
}
@@ -4586,7 +4586,7 @@ def workout_split_view(request,id=id):
# create interactive plot
try:
res = interactive_chart(id,promember=1)
res = interactive_chart(encoder.decode_hex(id),promember=1)
script = res[0]
div = res[1]
except ValueError:
@@ -4607,6 +4607,12 @@ def workout_split_view(request,id=id):
@user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_fusion_view(request,id1=0,id2=1):
try:
id1 = encoder.decode_hex(id1)
id2 = encoder.decode_hex(id2)
except:
pass
r = getrower(request.user)
try:
@@ -4645,7 +4651,7 @@ def workout_fusion_view(request,id1=0,id2=1):
url = reverse('workout_edit_view',
kwargs={
'id':idnew,
'id':encoder.encode_hex(idnew),
})
return HttpResponseRedirect(url)
@@ -4662,12 +4668,15 @@ def workout_fusion_view(request,id1=0,id2=1):
'name': str(w1.id)
},
{
'url':reverse('workout_fusion_list',kwargs={'id':id1}),
'url':reverse('workout_fusion_list',kwargs={'id':encoder.encode_hex(id1)}),
'name': 'Sensor Fusion'
},
{
'url':reverse('workout_fusion_view',
kwargs={'id1':id1,'id2':id2}),
kwargs={
'id1':encoder.encode_hex(id1),
'id2':encoder.encode_hex(id2)
}),
'name': str(w2.id)
}
@@ -4837,7 +4846,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
rowdata.write_csv(f1,gzip=True)
dataprep.update_strokedata(id,rowdata.df)
dataprep.update_strokedata(encoder.decode_hex(id),rowdata.df)
messages.info(request,"Updated interval data saved")
data = {
@@ -4881,7 +4890,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
row.save()
rowdata.write_csv(f1,gzip=True)
dataprep.update_strokedata(id,rowdata.df)
dataprep.update_strokedata(encoder.decode_hex(id),rowdata.df)
messages.info(request,"Updated interval data saved")
data = {'intervalstring':s}
form = SummaryStringForm(initial=data)
@@ -4996,7 +5005,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
row.save()
rowdata.write_csv(f1,gzip=True)
dataprep.update_strokedata(id,rowdata.df)
dataprep.update_strokedata(encoder.decode_hex(id),rowdata.df)
messages.info(request,"Updated interval data saved")
form = SummaryStringForm()
@@ -5077,11 +5086,12 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
'normp': normp,
'normv': normv,
}
res = interactive_chart(id,promember=1,intervaldata=intervaldata)
res = interactive_chart(encoder.decode_hex(id),promember=1,intervaldata=intervaldata)
script = res[0]
div = res[1]
except ValueError:
pass
script = ''
div = ''
# render page