now passes new tests
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
from rowers.opaque import encoder
|
||||
encoded1 = str(encoder.encode_hex(1))
|
||||
encoded2 = str(encoder.encode_hex(2))
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
|
||||
@@ -112,9 +112,10 @@ class EmpowerTest(TestCase):
|
||||
def test_workflow_map_view(self, mocked_sqlalchemy):
|
||||
login = self.c.login(username='john',password='koeinsloot')
|
||||
self.assertTrue(login)
|
||||
encodedid = str(encoder.encode_hex(self.wote.id))
|
||||
|
||||
url = '/rowers/workout/{id}/workflow/'.format(
|
||||
id = self.wote.id
|
||||
id = encodedid
|
||||
)
|
||||
|
||||
response = self.c.get(url)
|
||||
|
||||
@@ -350,7 +350,7 @@ class StravaObjects(DjangoTestCase):
|
||||
response = self.c.get('/rowers/workout/stravaimport/12',follow=True)
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/workout/'+encoded1+'/edit/',
|
||||
expected_url='/rowers/workout/'+encoded2+'/edit/',
|
||||
status_code=301,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -144,7 +144,7 @@ class WorkoutCompareTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/team-compare-select/workout/1/team/0/user/1/'
|
||||
url = '/rowers/team-compare-select/workout/'+encoded1+'/team/0/user/1/'
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -374,7 +374,8 @@ class ForcecurveTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password = self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/workout/1/forcecurve/'
|
||||
encoded1 = str(encoder.encode_hex(1))
|
||||
url = '/rowers/workout/'+encoded1+'/forcecurve/'
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@@ -206,7 +206,7 @@ class URLTests(TestCase):
|
||||
'/rowers/sessions/teamcreate/',
|
||||
'/rowers/sessions/user/1/',
|
||||
'/rowers/team-compare-select/',
|
||||
'/rowers/team-compare-select/workout/1/',
|
||||
'/rowers/team-compare-select/workout/'+encoded1+'/',
|
||||
'/rowers/team-compare-select/2016-01-01/2016-12-31/',
|
||||
'/rowers/test-job/2/',
|
||||
'/rowers/test-job2/2/',
|
||||
@@ -216,17 +216,17 @@ class URLTests(TestCase):
|
||||
# '/rowers/updatefitness/rower/50/',
|
||||
# '/rowers/user-boxplot/',
|
||||
# '/rowers/user-boxplot-data/',
|
||||
# '/rowers/user-boxplot-select//',
|
||||
# '/rowers/user-boxplot-select/user/1//',
|
||||
# '/rowers/user-boxplot-select/',
|
||||
# '/rowers/user-boxplot-select/user/1/',
|
||||
# '/rowers/user-boxplot/user/1/',
|
||||
# '/rowers/user-multiflex-data/',
|
||||
# '/rowers/user-multiflex-select//',
|
||||
# '/rowers/user-multiflex-select/',
|
||||
# '/rowers/user-multiflex-select/2016-01-01/2016-12-31/',
|
||||
# '/rowers/user-multiflex-select/user/1//',
|
||||
# '/rowers/user-multiflex-select/user/1/',
|
||||
# '/rowers/user-multiflex-select/user/1/2016-01-01/2016-12-31/',
|
||||
# '/rowers/user-multiflex//',
|
||||
# '/rowers/user-multiflex/',
|
||||
# '/rowers/user-multiflex/user/1/',
|
||||
'/rowers/workout/'+encoded1+'//',
|
||||
'/rowers/workout/'+encoded1+'/',
|
||||
'/rowers/workout/'+encoded1+'/adddistanceplot/',
|
||||
'/rowers/workout/'+encoded1+'/adddistanceplot2/',
|
||||
'/rowers/workout/'+encoded1+'/addotwpowerplot/',
|
||||
@@ -251,14 +251,14 @@ class URLTests(TestCase):
|
||||
'/rowers/workout/'+encoded1+'/interactiveotwplot/',
|
||||
'/rowers/workout/'+encoded1+'/map/',
|
||||
'/rowers/workout/'+encoded1+'/otwsetpower/',
|
||||
'/rowers/workout/'+encoded1+'/recalcsummary//',
|
||||
'/rowers/workout/'+encoded1+'/recalcsummary/',
|
||||
'/rowers/workout/'+encoded1+'/restore/',
|
||||
'/rowers/workout/'+encoded1+'/smoothenpace/',
|
||||
'/rowers/workout/'+encoded1+'/split/',
|
||||
'/rowers/workout/'+encoded1+'/stats/',
|
||||
'/rowers/workout/'+encoded1+'/stream/',
|
||||
'/rowers/workout/'+encoded1+'/task/',
|
||||
'/rowers/workout/'+encoded1+'/test_strokedata/',
|
||||
'/rowers/workout/'+encoded1+'/teststrokedata/',
|
||||
'/rowers/workout/'+encoded1+'/toggle-ranking/',
|
||||
'/rowers/workout/'+encoded1+'/undosmoothenpace/',
|
||||
'/rowers/workout/'+encoded1+'/unsubscribe/',
|
||||
@@ -267,7 +267,7 @@ class URLTests(TestCase):
|
||||
'/rowers/workout/'+encoded1+'/wind/',
|
||||
'/rowers/workout/'+encoded1+'/workflow/',
|
||||
'/rowers/workout/compare/'+encoded1+'/2016-01-01/2016-12-31/',
|
||||
'/rowers/workout/fusion/'+encoded1+'//',
|
||||
'/rowers/workout/fusion/'+encoded1+'/',
|
||||
'/rowers/workout/fusion/'+encoded1+'/2016-01-01/2016-12-31/',
|
||||
'/rowers/workout/upload/',
|
||||
'/rowers/workout/upload/team/',
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -175,7 +175,7 @@ urlpatterns = [
|
||||
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/team/(?P<teamid>\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/team/(?P<teamid>\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/workout/(?P<id>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select),
|
||||
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/user/(?P<userid>\d+)/$',views.team_comparison_select),
|
||||
@@ -510,7 +510,7 @@ urlpatterns = [
|
||||
url(r'^edittarget/(?P<pk>\d+)/$',login_required(
|
||||
views.TrainingTargetUpdate.as_view()),
|
||||
name='trainingtarget_update_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/test\_strokedata/$',views.strokedataform),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/teststrokedata/$',views.strokedataform),
|
||||
url(r'^sessions/teamcreate/user/(?P<userid>\d+)/$',views.plannedsession_teamcreate_view),
|
||||
url(r'^sessions/teamcreate/team/(?P<teamid>\d+)/user/(?P<userid>\d+)/$',
|
||||
views.plannedsession_teamcreate_view),
|
||||
|
||||
@@ -1866,6 +1866,7 @@ def add_workout_from_strokedata(user,importid,data,strokedata,
|
||||
# Export workout to TCX and send to user's email address
|
||||
@login_required()
|
||||
def workout_tcxemail_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
successmessage = ""
|
||||
@@ -2019,6 +2020,7 @@ def course_kmldownload_view(request,id=0):
|
||||
# Export workout to GPX and send to user's email address
|
||||
@login_required()
|
||||
def workout_gpxemail_view(request,id=0):
|
||||
if id != 0:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
successmessage = ""
|
||||
@@ -2110,6 +2112,7 @@ def workouts_summaries_email_view(request):
|
||||
# Get Workout CSV file and send it to user's email address
|
||||
@login_required()
|
||||
def workout_csvemail_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
r = getrower(request.user)
|
||||
@@ -2155,6 +2158,7 @@ def workout_csvemail_view(request,id=0):
|
||||
# Get Workout CSV file and send it to user's email address
|
||||
@login_required()
|
||||
def workout_csvtoadmin_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
r = getrower(request.user)
|
||||
@@ -2182,6 +2186,7 @@ def workout_csvtoadmin_view(request,id=0):
|
||||
# Send workout to TP
|
||||
@login_required()
|
||||
def workout_tp_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
message = ""
|
||||
@@ -2240,6 +2245,7 @@ def workout_tp_upload_view(request,id=0):
|
||||
# abundance of error logging here because there were/are some bugs
|
||||
@login_required()
|
||||
def workout_strava_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
r = getrower(request.user)
|
||||
@@ -2345,6 +2351,7 @@ def workout_strava_upload_view(request,id=0):
|
||||
# Upload workout to Concept2 logbook
|
||||
@login_required()
|
||||
def workout_c2_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
# ready to upload. Hurray
|
||||
@@ -2375,6 +2382,7 @@ def workout_c2_upload_view(request,id=0):
|
||||
# Upload workout to RunKeeper
|
||||
@login_required()
|
||||
def workout_runkeeper_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
w = get_workout(id)
|
||||
@@ -2439,6 +2447,7 @@ def workout_runkeeper_upload_view(request,id=0):
|
||||
# Upload workout to Underarmour
|
||||
@login_required()
|
||||
def workout_underarmour_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
w = get_workout(id)
|
||||
@@ -2505,6 +2514,7 @@ def workout_underarmour_upload_view(request,id=0):
|
||||
# Upload workout to SportTracks
|
||||
@login_required()
|
||||
def workout_sporttracks_upload_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
message = ""
|
||||
# ready to upload. Hurray
|
||||
@@ -3561,6 +3571,7 @@ def fitnessmetric_view(request,id=0,mode='rower',
|
||||
message="This functionality requires a Pro plan or higher",
|
||||
redirect_field_name=None)
|
||||
def workout_forcecurve_view(request,id=0,workstrokesonly=False):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -3625,6 +3636,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
|
||||
# Test asynchronous tasking and messaging
|
||||
@login_required()
|
||||
def workout_test_task_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = Workout.objects.get(id=id)
|
||||
res = myqueue(queuehigh,addcomment2,request.user.id,row.id)
|
||||
@@ -3639,6 +3651,7 @@ def workout_test_task_view(request,id=0):
|
||||
# Show Stroke power histogram for a workout
|
||||
@login_required()
|
||||
def workout_histo_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
|
||||
@@ -4815,6 +4828,7 @@ def rankings_view2(request,theuser=0,
|
||||
message="This functionality requires a Pro plan or higher",
|
||||
redirect_field_name=None)
|
||||
def workout_update_cp_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -5596,6 +5610,7 @@ def oterankings_view(request,theuser=0,
|
||||
# Reload the workout and calculate the summary from the stroke data (lapIDx)
|
||||
@login_required()
|
||||
def workout_recalcsummary_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -5908,6 +5923,7 @@ def team_comparison_select(request,
|
||||
teamid=0):
|
||||
|
||||
|
||||
if id != 0:
|
||||
id = encoder.decode_hex(id)
|
||||
r = getrequestrower(request,userid=userid)
|
||||
requestrower = getrower(request.user)
|
||||
@@ -7765,6 +7781,7 @@ def workout_comparison_list(request,id=0,message='',successmessage='',
|
||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||
enddate=timezone.now()):
|
||||
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
try:
|
||||
r = getrower(request.user)
|
||||
@@ -7852,6 +7869,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
|
||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||
enddate=timezone.now()):
|
||||
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
try:
|
||||
r = getrower(request.user)
|
||||
@@ -7951,6 +7969,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
|
||||
def workout_view(request,id=0):
|
||||
request.session['referer'] = absolute(request)['PATH']
|
||||
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
if not request.user.is_anonymous():
|
||||
@@ -8056,6 +8075,7 @@ def workout_view(request,id=0):
|
||||
def workout_undo_smoothenpace_view(
|
||||
request,id=0,message="",successmessage=""
|
||||
):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8094,6 +8114,7 @@ def workout_undo_smoothenpace_view(
|
||||
message="This functionality requires a Pro plan or higher",
|
||||
redirect_field_name=None)
|
||||
def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -8148,6 +8169,7 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
||||
message="This functionality requires a Pro plan or higher",
|
||||
redirect_field_name=None)
|
||||
def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8228,6 +8250,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
|
||||
def workout_downloadwind_view(request,id=0,
|
||||
airportcode=None,
|
||||
message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -8295,6 +8318,7 @@ def workout_downloadwind_view(request,id=0,
|
||||
def workout_downloadmetar_view(request,id=0,
|
||||
airportcode=None,
|
||||
message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -8361,6 +8385,7 @@ def workout_downloadmetar_view(request,id=0,
|
||||
# Show form to update wind data
|
||||
@user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
|
||||
def workout_wind_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8498,6 +8523,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
|
||||
# Show form to update River stream data (for river dwellers)
|
||||
@user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
|
||||
def workout_stream_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8585,6 +8611,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
|
||||
# Form to set average crew weight and boat type, then run power calcs
|
||||
@user_passes_test(ispromember, login_url="/rowers/paidplans",redirect_field_name=None)
|
||||
def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8718,6 +8745,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
|
||||
|
||||
@login_required()
|
||||
def instroke_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -8777,6 +8805,7 @@ def instroke_view(request,id=0):
|
||||
# A special Edit page with all the Geeky functionality for the workout
|
||||
@login_required()
|
||||
def workout_geeky_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -8840,6 +8869,7 @@ def workout_geeky_view(request,id=0,message="",successmessage=""):
|
||||
# generate instroke chart
|
||||
@login_required()
|
||||
def instroke_chart(request,id=0,metric=''):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
|
||||
@@ -9200,6 +9230,7 @@ def cumstats(request,theuser=0,
|
||||
# data explorer
|
||||
@login_required()
|
||||
def workout_data_view(request, id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
r = getrower(request.user)
|
||||
@@ -9300,6 +9331,7 @@ def workout_data_view(request, id=0):
|
||||
# Stats page
|
||||
@login_required()
|
||||
def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
r = getrower(request.user)
|
||||
@@ -9469,6 +9501,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
# The Advanced edit page
|
||||
@login_required()
|
||||
def workout_advanced_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -9527,7 +9560,9 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
|
||||
|
||||
# The interactive plot comparing two workouts (obsolete version)
|
||||
def workout_comparison_view(request,id1=0,id2=0,xparam='distance',yparam='spm'):
|
||||
if id1:
|
||||
id1 = encoder.decode_hex(id1)
|
||||
if id2:
|
||||
id2 = encoder.decode_hex(id2)
|
||||
promember=0
|
||||
if not request.user.is_anonymous():
|
||||
@@ -9564,7 +9599,9 @@ def workout_comparison_view(request,id1=0,id2=0,xparam='distance',yparam='spm'):
|
||||
# Updated version of comparison plot
|
||||
def workout_comparison_view2(request,id1=0,id2=0,xparam='distance',
|
||||
yparam='spm',plottype='line'):
|
||||
if id1:
|
||||
id1 = encoder.decode_hex(id1)
|
||||
if id2:
|
||||
id2 = encoder.decode_hex(id2)
|
||||
promember=0
|
||||
if not request.user.is_anonymous():
|
||||
@@ -10191,6 +10228,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
|
||||
|
||||
# The interactive plot with the colored Heart rate zones
|
||||
def workout_biginteractive_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -10233,6 +10271,7 @@ def workout_biginteractive_view(request,id=0,message="",successmessage=""):
|
||||
|
||||
# The interactive plot with wind corrected pace for OTW outings
|
||||
def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
r = getrower(request.user)
|
||||
@@ -10294,6 +10333,7 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
|
||||
@login_required()
|
||||
def workout_export_view(request,id=0, message="", successmessage=""):
|
||||
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout(id)
|
||||
|
||||
@@ -10352,6 +10392,7 @@ def workout_export_view(request,id=0, message="", successmessage=""):
|
||||
#
|
||||
@login_required()
|
||||
def workout_unsubscribe_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
|
||||
@@ -10383,6 +10424,7 @@ def workout_unsubscribe_view(request,id=0):
|
||||
# list of comments to a workout
|
||||
@login_required()
|
||||
def workout_comment_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
w = get_workout(id)
|
||||
|
||||
@@ -10735,6 +10777,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
||||
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
|
||||
request.session['referer'] = absolute(request)['PATH']
|
||||
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
row = get_workout(id)
|
||||
@@ -10951,6 +10994,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
||||
|
||||
@login_required()
|
||||
def workout_map_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
|
||||
request.session['referer'] = absolute(request)['PATH']
|
||||
@@ -12098,6 +12142,7 @@ def workout_getstravaworkout_next(request):
|
||||
|
||||
@login_required
|
||||
def workout_toggle_ranking(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
is_ajax = False
|
||||
if request.is_ajax():
|
||||
@@ -12366,7 +12411,7 @@ def workout_upload_view(request,
|
||||
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':encoder.decode_hex(id),
|
||||
'id':str(id),
|
||||
})
|
||||
|
||||
if is_ajax:
|
||||
@@ -12729,6 +12774,7 @@ def team_workout_upload_view(request,message="",
|
||||
# Ask the user if he really wants to delete the workout
|
||||
@login_required()
|
||||
def workout_delete_confirm_view(request, id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
try:
|
||||
row = Workout.objects.get(id=id)
|
||||
@@ -12748,6 +12794,7 @@ def workout_delete_confirm_view(request, id=0):
|
||||
# Really deleting the workout
|
||||
@login_required()
|
||||
def workout_delete_view(request,id=0):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
try:
|
||||
row = Workout.objects.get(id=id)
|
||||
@@ -12964,7 +13011,8 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
|
||||
|
||||
# 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):
|
||||
if id:
|
||||
id = encoder.decode_hex(id)
|
||||
row = get_workout_permitted(request.user,id)
|
||||
|
||||
@@ -13057,7 +13105,9 @@ def workout_split_view(request,id=id):
|
||||
# Fuse two workouts
|
||||
@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):
|
||||
if id1:
|
||||
id1 = encoder.decode_hex(id1)
|
||||
if id2:
|
||||
id2 = encoder.decode_hex(id2)
|
||||
|
||||
r = getrower(request.user)
|
||||
@@ -14313,6 +14363,7 @@ def trydf(df,aantal,column):
|
||||
# Stroke data form to test API upload
|
||||
@login_required()
|
||||
def strokedataform(request,id=0):
|
||||
id = encoder.decode_hex(id)
|
||||
|
||||
try:
|
||||
id=int(id)
|
||||
|
||||
Reference in New Issue
Block a user