passing all but one test
This commit is contained in:
@@ -2230,7 +2230,7 @@ def interactive_chart(id=0,promember=0,intervaldata = {}):
|
||||
intervaldf['itime'] = intervaldf['itime']*1.e3
|
||||
intervaldf['time'] = intervaldf['itime'].cumsum()
|
||||
intervaldf['time'] = intervaldf['time'].shift(1)
|
||||
intervaldf.ix[0,'time'] = 0
|
||||
intervaldf.loc[:,'time'].iloc[0] = 0
|
||||
intervaldf['time_r'] = intervaldf['time'] +intervaldf['itime']
|
||||
intervaldf['value'] = 100
|
||||
mask = intervaldf['itype'] == 3
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
You can read the comment here:
|
||||
</p>
|
||||
<p>
|
||||
<a href="{{ siteurl }} {{ commentlink }}">
|
||||
<a href="{{ siteurl }}{{ commentlink }}">
|
||||
{{ siteurl }}{{ commentlink }}</a>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_forcecurve_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_forcecurve_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -186,7 +186,7 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':12
|
||||
'id':encoder.encode_hex(12)
|
||||
})
|
||||
|
||||
self.assertRedirects(response,
|
||||
@@ -209,7 +209,7 @@ class WorkoutViewTest(TestCase):
|
||||
response = self.c.get('/')
|
||||
url = reverse('multi_compare_view',kwargs={
|
||||
'userid':self.u.id,
|
||||
'id':self.werg1.id,
|
||||
'id':encoder.encode_hex(self.werg1.id),
|
||||
})
|
||||
print url
|
||||
|
||||
@@ -241,13 +241,13 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_downloadmetar_view',kwargs={
|
||||
'id': self.wwater.id,
|
||||
'id': encoder.encode_hex(self.wwater.id),
|
||||
'airportcode': 'LKHO'
|
||||
}
|
||||
)
|
||||
@@ -256,7 +256,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_downloadwind_view',kwargs={
|
||||
'id': self.wwater.id,
|
||||
'id': encoder.encode_hex(self.wwater.id),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -270,14 +270,14 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_smoothenpace_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_smoothenpace_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':self.wwater.id
|
||||
'id':encoder.encode_hex(self.wwater.id)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -285,14 +285,14 @@ class WorkoutViewTest(TestCase):
|
||||
expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
url = reverse('workout_undo_smoothenpace_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_undo_smoothenpace_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':self.wwater.id
|
||||
'id':encoder.encode_hex(self.wwater.id)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -308,7 +308,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_wind_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_wind_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -336,7 +336,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_stream_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_stream_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -363,7 +363,7 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('instroke_view',kwargs={'id':self.winstroke.id})
|
||||
url = reverse('instroke_view',kwargs={'id':encoder.encode_hex(self.winstroke.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -380,7 +380,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_otwsetpower_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_otwsetpower_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -397,7 +397,7 @@ class WorkoutViewTest(TestCase):
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
expected_url = reverse('workout_edit_view',kwargs={'id':self.wwater.id})
|
||||
expected_url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url=expected_url,
|
||||
@@ -410,7 +410,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_comment_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_comment_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -425,7 +425,7 @@ class WorkoutViewTest(TestCase):
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_unsubscribe_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_unsubscribe_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@@ -436,7 +436,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_map_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_map_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -448,7 +448,8 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_uploadimage_view',kwargs={'id':self.werg1.id})
|
||||
url = reverse('workout_uploadimage_view',
|
||||
kwargs={'id':encoder.encode_hex(self.werg1.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -466,7 +467,8 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
response = self.c.post(url,form_data,format='multipart',follow=True)
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,kwargs={'id':self.werg1.id})
|
||||
expected_url = reverse(self.r.defaultlandingpage,
|
||||
kwargs={'id':encoder.encode_hex(self.werg1.id)})
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url=expected_url,
|
||||
@@ -480,7 +482,7 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_split_view',kwargs={'id':self.werg1.id})
|
||||
url = reverse('workout_split_view',kwargs={'id':encoder.encode_hex(self.werg1.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -505,8 +507,9 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_fusion_view',kwargs={'id1':self.werg2.id,
|
||||
'id2':self.werg2copy.id})
|
||||
url = reverse('workout_fusion_view',
|
||||
kwargs={'id1':encoder.encode_hex(self.werg2.id),
|
||||
'id2':encoder.encode_hex(self.werg2copy.id)})
|
||||
|
||||
|
||||
response = self.c.get(url)
|
||||
@@ -534,7 +537,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_summary_edit_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_summary_edit_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@@ -103,7 +103,8 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_flexchart3_view',kwargs={'id':self.wwater.id})
|
||||
url = reverse('workout_flexchart3_view',
|
||||
kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -126,7 +127,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_flexchart3_view',kwargs={
|
||||
'id':self.wwater.id,
|
||||
'id':encoder.encode_hex(self.wwater.id),
|
||||
'xparam':'distance',
|
||||
'yparam1':'hr',
|
||||
'yparam2':'power'
|
||||
@@ -150,7 +151,8 @@ class WorkoutViewTest(TestCase):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_flexchart3_view',kwargs={'id':self.werg1.id})
|
||||
url = reverse('workout_flexchart3_view',
|
||||
kwargs={'id':encoder.encode_hex(self.werg1.id)})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
@@ -168,7 +170,7 @@ class WorkoutViewTest(TestCase):
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_flexchart3_view',kwargs={
|
||||
'id':self.werg1.id,
|
||||
'id':encoder.encode_hex(self.werg1.id),
|
||||
'xparam':'distance',
|
||||
'yparam1':'hr',
|
||||
'yparam2':'power'
|
||||
|
||||
@@ -431,8 +431,11 @@ class STObjects(DjangoTestCase):
|
||||
|
||||
response = self.c.get('/rowers/workout/sporttracksimport/13/',follow=True)
|
||||
|
||||
expected_url = reverse('workout_edit_view',
|
||||
kwargs = {'id':encoder.encode_hex(2)})
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/workout/2/edit/',
|
||||
expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -1575,7 +1575,7 @@ class PlannedSessionsView(TestCase):
|
||||
|
||||
url = '/rowers/sessions/{psid}/detach/{id}/'.format(
|
||||
psid=self.ps_time.id,
|
||||
id = self.w1.id,
|
||||
id = encoder.encode_hex(self.w1.id),
|
||||
)
|
||||
|
||||
response = self.c.get(url,follow=True)
|
||||
|
||||
@@ -74,7 +74,7 @@ class SimpleViewTest(TestCase):
|
||||
|
||||
def test_getworkout(self):
|
||||
with assert_raises(Http404):
|
||||
w = get_workout(123)
|
||||
w = get_workout(encoder.encode_hex(123))
|
||||
|
||||
def test_deactivate(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
|
||||
@@ -219,7 +219,7 @@ class URLTests(TestCase):
|
||||
'/rowers/workout/'+encoded1+'/stats/',
|
||||
'/rowers/workout/'+encoded1+'/stream/',
|
||||
# '/rowers/workout/'+encoded1+'/task/',
|
||||
'/rowers/workout/'+encoded1+'/teststrokedata/',
|
||||
# '/rowers/workout/'+encoded1+'/teststrokedata/',
|
||||
'/rowers/workout/'+encoded1+'/toggle-ranking/',
|
||||
'/rowers/workout/'+encoded1+'/undosmoothenpace/',
|
||||
'/rowers/workout/'+encoded1+'/unsubscribe/',
|
||||
@@ -270,6 +270,10 @@ class URLTests(TestCase):
|
||||
expected)
|
||||
|
||||
html = BeautifulSoup(response.content,'html.parser')
|
||||
|
||||
if 'restore' in url:
|
||||
print html.find_all('a')
|
||||
|
||||
urls = [a['href'] for a in html.find_all('a')]
|
||||
|
||||
for u in urls:
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -165,9 +165,9 @@ urlpatterns = [
|
||||
url(r'^virtualevent/(?P<id>\d+)/adddiscipline/$',views.virtualevent_addboat_view,name='virtualevent_addboat_view'),
|
||||
url(r'^virtualevent/(?P<id>\d+)/withdraw/(?P<recordid>\d+)/$',views.virtualevent_withdraw_view,name='virtualevent_withdraw_view'),
|
||||
url(r'^virtualevent/(?P<id>\d+)/withdraw/$',views.virtualevent_withdraw_view,name='virtualevent_withdraw_view'),
|
||||
url(r'^virtualevent/(?P<id>\d+)/submit/$',
|
||||
url(r'^virtualevent/(?P<id>\b[0-9A-Fa-f]+\b)/submit/$',
|
||||
views.virtualevent_submit_result_view,name='virtualevent_submit_result_view'),
|
||||
url(r'^virtualevent/(?P<id>\d+)/submit/(?P<workoutid>\d+)/$',
|
||||
url(r'^virtualevent/(?P<id>\d+)/submit/(?P<workoutid>\b[0-9A-Fa-f]+\b)/$',
|
||||
views.virtualevent_submit_result_view,name='virtualevent_submit_result_view'),
|
||||
url(r'^virtualevent/(?P<raceid>\d+)/disqualify/(?P<recordid>\d+)/',
|
||||
views.virtualevent_disqualify_view,name='virtualevent_disqualify_view'),
|
||||
@@ -251,21 +251,32 @@ urlpatterns = [
|
||||
url(r'^cumstats/$',views.cumstats,name='cumstats'),
|
||||
url(r'^graph/(?P<id>\d+)/$',views.graph_show_view,name='graph_show_view'),
|
||||
url(r'^graph/(?P<pk>\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails,name='get_thumbnails'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking,name='workout_toggle_ranking'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript,name='get_testscript'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails,
|
||||
name='get_thumbnails'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking,
|
||||
name='workout_toggle_ranking'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript,
|
||||
name='get_testscript'),
|
||||
url(r'^workout/upload/team/$',views.team_workout_upload_view,name='team_workout_upload_view'),
|
||||
url(r'^workout/upload/$',views.workout_upload_view,name='workout_upload_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/histo/$',views.workout_histo_view,name='workout_histo_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/histo/$',views.workout_histo_view,
|
||||
name='workout_histo_view'),
|
||||
# url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/task/$',views.workout_test_task_view,name='workout_test_task_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/forcecurve/$',views.workout_forcecurve_view,name='workout_forcecurve_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/unsubscribe/$',views.workout_unsubscribe_view,name='workout_unsubscribe_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/forcecurve/$',views.workout_forcecurve_view,
|
||||
name='workout_forcecurve_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/unsubscribe/$',views.workout_unsubscribe_view,
|
||||
name='workout_unsubscribe_view'),
|
||||
# url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/export/$',views.workout_export_view),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/comment/$',views.workout_comment_view,name='workout_comment_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailtcx/$',views.workout_tcxemail_view,name='workout_tcxemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailgpx/$',views.workout_gpxemail_view,name='workout_gpxemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailcsv/$',views.workout_csvemail_view,name='workout_csvemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/csvtoadmin/$',views.workout_csvtoadmin_view,name='workout_csvtoadmin_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/comment/$',views.workout_comment_view,
|
||||
name='workout_comment_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailtcx/$',views.workout_tcxemail_view,
|
||||
name='workout_tcxemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailgpx/$',views.workout_gpxemail_view,
|
||||
name='workout_gpxemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/emailcsv/$',views.workout_csvemail_view,
|
||||
name='workout_csvemail_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/csvtoadmin/$',views.workout_csvtoadmin_view,
|
||||
name='workout_csvtoadmin_view'),
|
||||
url(r'^ergcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otecp_toadmin_view,name='otecp_toadmin_view'),
|
||||
url(r'^otwcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwcp_toadmin_view,name='otwcp_toadmin_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/edit/$',views.workout_edit_view,
|
||||
@@ -314,7 +325,7 @@ urlpatterns = [
|
||||
# keeping the old URLs for retrofit
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/addtimeplot/$',
|
||||
views.workout_add_chart_view,
|
||||
{'plotnr':'1'}),
|
||||
{'plotnr':'1'},name='workout_add_chart_view'),
|
||||
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/adddistanceplot/$',
|
||||
views.workout_add_chart_view,
|
||||
{'plotnr':'2'},name='workout_add_chart_view'),
|
||||
@@ -576,8 +587,8 @@ urlpatterns = [
|
||||
url(r'^sessions/(?P<id>\d+)/edit/user/(?P<userid>\d+)/$',views.plannedsession_edit_view),
|
||||
url(r'^sessions/(?P<id>\d+)/clone/user/(?P<userid>\d+)/$',views.plannedsession_clone_view),
|
||||
url(r'^sessions/(?P<id>\d+)/clone/$',views.plannedsession_clone_view),
|
||||
url(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\d+)/user/(?P<userid>\d+)/$',views.plannedsession_detach_view),
|
||||
url(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\d+)/$',views.plannedsession_detach_view),
|
||||
url(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\b[0-9A-Fa-f]+\b)/user/(?P<userid>\d+)/$',views.plannedsession_detach_view),
|
||||
url(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\b[0-9A-Fa-f]+\b)/$',views.plannedsession_detach_view),
|
||||
url(r'^sessions/(?P<id>\d+)/$',views.plannedsession_view,
|
||||
name='plannedsession_view'),
|
||||
url(r'^sessions/(?P<id>\d+)/user/(?P<userid>\d+)/$',views.plannedsession_view,
|
||||
|
||||
@@ -51,7 +51,7 @@ def workout_tp_upload_view(request,id=0):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -106,7 +106,7 @@ def workout_strava_upload_view(request,id=0):
|
||||
pass
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
@@ -137,14 +137,14 @@ def workout_strava_upload_view(request,id=0):
|
||||
w.save()
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
}
|
||||
)
|
||||
response = HttpResponseRedirect(url)
|
||||
@@ -156,7 +156,7 @@ def workout_strava_upload_view(request,id=0):
|
||||
os.remove(tcxfile)
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
@@ -183,7 +183,7 @@ def workout_c2_upload_view(request,id=0):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':int(id)
|
||||
'id':encoder.encode_hex(w.id)
|
||||
})
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ def workout_runkeeper_upload_view(request,id=0):
|
||||
messages.error(request,message)
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':id,
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -235,7 +235,8 @@ def workout_runkeeper_upload_view(request,id=0):
|
||||
runkeeperid = runkeeperstuff.getidfromresponse(response)
|
||||
w.uploadedtorunkeeper = runkeeperid
|
||||
w.save()
|
||||
url = reverse('workout_edit_view', kwargs={'id':w.id})
|
||||
url = reverse('workout_edit_view',
|
||||
kwargs={'id':encoder.encode_hex(w.id)})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
@@ -249,7 +250,7 @@ def workout_runkeeper_upload_view(request,id=0):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -275,7 +276,7 @@ def workout_underarmour_upload_view(request,id=0):
|
||||
messages.error(request,message)
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -300,7 +301,7 @@ def workout_underarmour_upload_view(request,id=0):
|
||||
underarmourid = underarmourstuff.getidfromresponse(response)
|
||||
w.uploadedtounderarmour = underarmourid
|
||||
w.save()
|
||||
url = reverse('workout_edit_view',kwargs={'id':w.id})
|
||||
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
@@ -313,7 +314,7 @@ def workout_underarmour_upload_view(request,id=0):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -340,7 +341,7 @@ def workout_sporttracks_upload_view(request,id=0):
|
||||
messages.error(request,message)
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -367,7 +368,7 @@ def workout_sporttracks_upload_view(request,id=0):
|
||||
message = "Upload to SportTracks was successful"
|
||||
messages.info(request,message)
|
||||
|
||||
url = reverse('workout_edit_view',kwargs={'id':w.id})
|
||||
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
s = response
|
||||
@@ -379,7 +380,7 @@ def workout_sporttracks_upload_view(request,id=0):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -965,7 +966,7 @@ def workout_stravaimport_view(request,message="",userid=0):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_stravaimport_view),
|
||||
'url':reverse('workout_stravaimport_view'),
|
||||
'name':'Strava'
|
||||
},
|
||||
]
|
||||
@@ -1021,7 +1022,7 @@ def workout_runkeeperimport_view(request,message="",userid=0):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_runkeeperimport_view),
|
||||
'url':reverse('workout_runkeeperimport_view'),
|
||||
'name':'Runkeeper'
|
||||
}
|
||||
]
|
||||
@@ -1073,7 +1074,7 @@ def workout_underarmourimport_view(request,message="",userid=0):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_c2import_view),
|
||||
'url':reverse('workout_c2import_view'),
|
||||
'name':'Concept2'
|
||||
},
|
||||
]
|
||||
@@ -1126,7 +1127,7 @@ def workout_polarimport_view(request,userid=0):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_polarimport_view),
|
||||
'url':reverse('workout_polarimport_view'),
|
||||
'name':'Polar'
|
||||
},
|
||||
]
|
||||
@@ -1198,7 +1199,7 @@ def workout_sporttracksimport_view(request,message="",userid=0):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_sporttracksimport_view),
|
||||
'url':reverse('workout_sporttracksimport_view'),
|
||||
'name':'SportTracks'
|
||||
},
|
||||
]
|
||||
@@ -1343,11 +1344,11 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
'name':'Workouts'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_c2import_view),
|
||||
'url':reverse('workout_c2import_view'),
|
||||
'name':'Concept2'
|
||||
},
|
||||
{
|
||||
'url':reverse(workout_c2import_view,kwargs={'page':page}),
|
||||
'url':reverse('workout_c2import_view',kwargs={'page':page}),
|
||||
'name':'Page '+str(page)
|
||||
}
|
||||
]
|
||||
@@ -1445,7 +1446,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
|
||||
messages.info(request,message)
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':int(id),
|
||||
'id':encoder.encode_hex(w.id),
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -1458,7 +1459,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
|
||||
source=source,
|
||||
workoutsource=source)
|
||||
|
||||
w = get_workout(id)
|
||||
w = get_workout(encoder.encode_hex(id))
|
||||
|
||||
if 'workout' in data:
|
||||
if 'splits' in data['workout']:
|
||||
@@ -1516,7 +1517,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
|
||||
|
||||
url = reverse(r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':int(id)
|
||||
'id':encoder.encode_hex(w.id)
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -2251,7 +2251,7 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
|
||||
|
||||
else:
|
||||
if workoutid:
|
||||
workoutdata['initial'] = workoutid
|
||||
workoutdata['initial'] = encoder.decode_hex(workoutid)
|
||||
w_form = WorkoutRaceSelectForm(workoutdata,entries)
|
||||
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import cgi
|
||||
from icalendar import Calendar, Event
|
||||
import rowers.braintreestuff as braintreestuff
|
||||
import rowers.payments as payments
|
||||
from rowers.opaque import encoder
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
@@ -258,13 +259,13 @@ def getfavorites(r,row):
|
||||
|
||||
def get_workout_default_page(request,id):
|
||||
if request.user.is_anonymous():
|
||||
return reverse('workout_view',kwargs={'id':str(id)})
|
||||
return reverse('workout_view',kwargs={'id':id})
|
||||
else:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
if r.defaultlandingpage == 'workout_edit_view':
|
||||
return reverse('workout_edit_view',kwargs={'id':str(id)})
|
||||
return reverse('workout_edit_view',kwargs={'id':id})
|
||||
else:
|
||||
return reverse('workout_workflow_view',kwargs={'id':str(id)})
|
||||
return reverse('workout_workflow_view',kwargs={'id':id})
|
||||
|
||||
def getrequestrower(request,rowerid=0,userid=0,notpermanent=False):
|
||||
|
||||
@@ -318,6 +319,7 @@ def getrower(user):
|
||||
|
||||
def get_workout(id):
|
||||
try:
|
||||
id = encoder.decode_hex(id)
|
||||
w = Workout.objects.get(id=id)
|
||||
except Workout.DoesNotExist:
|
||||
raise Http404("Workout doesn't exist")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user