From 6c20c3ab7f4c42741c9e4fe51c1b62db8d650f93 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 3 Jan 2019 21:54:34 +0100 Subject: [PATCH] passes tests now - for what it's worth --- rowers/management/commands/processemail.py | 4 +- rowers/tests/test_imports.py | 45 ++++---- rowers/tests/test_urls.py | 95 +++++++++-------- rowers/tests/tests.py | 56 +++++----- rowers/views.py | 117 +++++++++++---------- 5 files changed, 165 insertions(+), 152 deletions(-) diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 23b640b7..84e34924 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -23,7 +23,7 @@ from rowers.mailprocessing import make_new_workout_from_email, send_confirm import rowers.polarstuff as polarstuff import rowers.c2stuff as c2stuff import rowers.stravastuff as stravastuff - +from rowers.opaque import encoder workoutmailbox = Mailbox.objects.get(name='workouts') failedmailbox = Mailbox.objects.get(name='Failed') @@ -82,7 +82,7 @@ def processattachment(rower, fileobj, title, uploadoptions,testing=False): ) if uploadoptions and not 'error' in uploadoptions: - workout = Workout.objects.get(id=workoutid[0]) + workout = Workout.objects.get(id=encoder.decode_hex(workoutid[0])) uploads.make_private(workout, uploadoptions) uploads.set_workouttype(workout, uploadoptions) uploads.do_sync(workout, uploadoptions) diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index ee537e2e..0f0ef704 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -32,6 +32,9 @@ from mock import Mock, patch from minimocktest import MockTestCase import pandas as pd import rowers.c2stuff as c2stuff +from rowers.opaque import encoder +encoded1 = str(encoder.encode_hex(1)) +encoded2 = str(encoder.encode_hex(2)) import json import numpy as np @@ -123,13 +126,13 @@ class C2Objects(DjangoTestCase): @patch('rowers.c2stuff.requests.post', side_effect=mocked_requests) @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests) def test_c2_upload(self, mock_get, mock_post): - response = self.c.get('/rowers/workout/1/c2uploadw/') + response = self.c.get('/rowers/workout/'+encoded1+'/c2uploadw/') self.assertRedirects(response, - expected_url = '/rowers/workout/1/edit', + expected_url = '/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) - self.assertEqual(response.url, '/rowers/workout/1/edit') + self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit') self.assertEqual(response.status_code, 302) @patch('rowers.c2stuff.requests.post', side_effect=mocked_requests) @@ -146,7 +149,7 @@ class C2Objects(DjangoTestCase): response = self.c.get('/rowers/workout/c2import/12/',follow=True) self.assertRedirects(response, - expected_url='/rowers/workout/2/edit', + expected_url='/rowers/workout/'+encoded2+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -294,7 +297,7 @@ class StravaObjects(DjangoTestCase): response = self.c.get('/rowers/workout/stravaimport/12',follow=True) self.assertRedirects(response, - expected_url='/rowers/workout/1/edit', + expected_url='/rowers/workout/'+encoded1+'/edit', status_code=301,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -375,13 +378,13 @@ class STObjects(DjangoTestCase): @patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests) @patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests) def test_sporttracks_upload(self, mock_get, mock_post): - response = self.c.get('/rowers/workout/1/sporttracksuploadw/') + response = self.c.get('/rowers/workout/'+encoded1+'/sporttracksuploadw/') self.assertRedirects(response, - expected_url = '/rowers/workout/1/edit', + expected_url = '/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) - self.assertEqual(response.url, '/rowers/workout/1/edit') + self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit') self.assertEqual(response.status_code, 302) @patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests) @@ -396,7 +399,7 @@ class STObjects(DjangoTestCase): response = self.c.get('/rowers/workout/sporttracksimport/12/',follow=True) self.assertRedirects(response, - expected_url='/rowers/workout/2/edit', + expected_url='/rowers/workout/'+encoded2+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -485,13 +488,13 @@ class RunKeeperObjects(DjangoTestCase): @patch('rowers.runkeeperstuff.requests.post', side_effect=mocked_requests) @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests) def test_runkeeper_upload(self, mock_get, mock_post): - response = self.c.get('/rowers/workout/1/runkeeperuploadw/') + response = self.c.get('/rowers/workout/'+encoded1+'/runkeeperuploadw/') self.assertRedirects(response, - expected_url = '/rowers/workout/1/edit', + expected_url = '/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) - self.assertEqual(response.url, '/rowers/workout/1/edit') + self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit') self.assertEqual(response.status_code, 302) @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests) @@ -506,7 +509,7 @@ class RunKeeperObjects(DjangoTestCase): response = self.c.get('/rowers/workout/runkeeperimport/12/',follow=True) self.assertRedirects(response, - expected_url='/rowers/workout/2/edit', + expected_url='/rowers/workout/'+encoded2+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -587,13 +590,13 @@ class UAObjects(DjangoTestCase): @patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests) @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests) def test_underarmour_upload(self, mock_get, mock_post): - response = self.c.get('/rowers/workout/1/underarmouruploadw/') + response = self.c.get('/rowers/workout/'+encoded1+'/underarmouruploadw/') self.assertRedirects(response, - expected_url = '/rowers/workout/1/edit', + expected_url = '/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) - self.assertEqual(response.url, '/rowers/workout/1/edit') + self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit') self.assertEqual(response.status_code, 302) @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests) @@ -609,7 +612,7 @@ class UAObjects(DjangoTestCase): response = self.c.get('/rowers/workout/underarmourimport/12/',follow=True) self.assertRedirects(response, - expected_url='/rowers/workout/2/edit', + expected_url='/rowers/workout/'+encoded2+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -689,13 +692,15 @@ class TPObjects(DjangoTestCase): @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests) @patch('rowers.tpstuff.requests.get', side_effect=mocked_requests) def test_tp_upload(self, mock_get, mock_post): - response = self.c.get('/rowers/workout/1/tpuploadw/') + url = '/rowers/workout/'+encoded1+'/tpuploadw/' + + response = self.c.get(url) self.assertRedirects(response, - expected_url = '/rowers/workout/1/edit', + expected_url = '/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) - self.assertEqual(response.url, '/rowers/workout/1/edit') + self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit') self.assertEqual(response.status_code, 302) diff --git a/rowers/tests/test_urls.py b/rowers/tests/test_urls.py index 012a8bc4..d4f77b1a 100644 --- a/rowers/tests/test_urls.py +++ b/rowers/tests/test_urls.py @@ -2,6 +2,9 @@ import pytest pytestmark = pytest.mark.django_db +from rowers.opaque import encoder + +encoded1 = str(encoder.encode_hex(1)) from bs4 import BeautifulSoup import re @@ -223,52 +226,52 @@ class URLTests(TestCase): '/rowers/user-multiflex-select/user/1/2016-01-01/2016-12-31', '/rowers/user-multiflex/', '/rowers/user-multiflex/user/1', - '/rowers/workout/1/', - '/rowers/workout/1/adddistanceplot', - '/rowers/workout/1/adddistanceplot2', - '/rowers/workout/1/addotwpowerplot', - '/rowers/workout/1/addpiechart', - '/rowers/workout/1/addpowerpiechart', - '/rowers/workout/1/addstatic', - '/rowers/workout/1/addstatic/3', - '/rowers/workout/1/addtimeplot', - '/rowers/workout/1/addtimeplot2', - '/rowers/workout/1/comment', - '/rowers/workout/1/darkskywind', - '/rowers/workout/1/data', - '/rowers/workout/1/edit', - '/rowers/workout/1/editintervals', - '/rowers/workout/1/flexchart', - '/rowers/workout/1/flexchart/spm/hr/None', - '/rowers/workout/1/flexchart/spm/hr/None/scatter', - '/rowers/workout/1/flexchart/spm/hr/None/scatter/', - '/rowers/workout/1/forcecurve', - '/rowers/workout/1/get-testscript', - '/rowers/workout/1/get-thumbnails', - '/rowers/workout/1/histo', - '/rowers/workout/1/image', - '/rowers/workout/1/instroke', - '/rowers/workout/1/interactiveotwplot', - '/rowers/workout/1/map', - '/rowers/workout/1/otwsetpower', - '/rowers/workout/1/recalcsummary/', - '/rowers/workout/1/restore', - '/rowers/workout/1/smoothenpace', - '/rowers/workout/1/split', - '/rowers/workout/1/stats', - '/rowers/workout/1/stream', - '/rowers/workout/1/task', - '/rowers/workout/1/test_strokedata', - '/rowers/workout/1/toggle-ranking', - '/rowers/workout/1/undosmoothenpace', - '/rowers/workout/1/unsubscribe', - '/rowers/workout/1/updatecp', - '/rowers/workout/1/view', - '/rowers/workout/1/wind', - '/rowers/workout/1/workflow', - '/rowers/workout/compare/1/2016-01-01/2016-12-31', - '/rowers/workout/fusion/1/', - '/rowers/workout/fusion/1/2016-01-01/2016-12-31', + '/rowers/workout/'+encoded1+'/', + '/rowers/workout/'+encoded1+'/adddistanceplot', + '/rowers/workout/'+encoded1+'/adddistanceplot2', + '/rowers/workout/'+encoded1+'/addotwpowerplot', + '/rowers/workout/'+encoded1+'/addpiechart', + '/rowers/workout/'+encoded1+'/addpowerpiechart', + '/rowers/workout/'+encoded1+'/addstatic', + '/rowers/workout/'+encoded1+'/addstatic/3', + '/rowers/workout/'+encoded1+'/addtimeplot', + '/rowers/workout/'+encoded1+'/addtimeplot2', + '/rowers/workout/'+encoded1+'/comment', + '/rowers/workout/'+encoded1+'/darkskywind', + '/rowers/workout/'+encoded1+'/data', + '/rowers/workout/'+encoded1+'/edit', + '/rowers/workout/'+encoded1+'/editintervals', + '/rowers/workout/'+encoded1+'/flexchart', + '/rowers/workout/'+encoded1+'/flexchart/spm/hr/None', + '/rowers/workout/'+encoded1+'/flexchart/spm/hr/None/scatter', + '/rowers/workout/'+encoded1+'/flexchart/spm/hr/None/scatter/', + '/rowers/workout/'+encoded1+'/forcecurve', + '/rowers/workout/'+encoded1+'/get-testscript', + '/rowers/workout/'+encoded1+'/get-thumbnails', + '/rowers/workout/'+encoded1+'/histo', + '/rowers/workout/'+encoded1+'/image', + '/rowers/workout/'+encoded1+'/instroke', + '/rowers/workout/'+encoded1+'/interactiveotwplot', + '/rowers/workout/'+encoded1+'/map', + '/rowers/workout/'+encoded1+'/otwsetpower', + '/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+'/toggle-ranking', + '/rowers/workout/'+encoded1+'/undosmoothenpace', + '/rowers/workout/'+encoded1+'/unsubscribe', + '/rowers/workout/'+encoded1+'/updatecp', + '/rowers/workout/'+encoded1+'/view', + '/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+'/2016-01-01/2016-12-31', '/rowers/workout/upload/', '/rowers/workout/upload/team/', '/rowers/workouts-join', diff --git a/rowers/tests/tests.py b/rowers/tests/tests.py index 9a298642..793896fc 100644 --- a/rowers/tests/tests.py +++ b/rowers/tests/tests.py @@ -41,6 +41,10 @@ from rowers.views import error500_view,error404_view,error400_view,error403_view from rowers.dataprep import delete_strokedata +from rowers.opaque import encoder + +encoded1 = str(encoder.encode_hex(1)) + from redis import StrictRedis redis_connection = StrictRedis() @@ -429,22 +433,22 @@ class ViewTest(TestCase): f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) - response = self.c.get('/rowers/workout/1/', form_data, follow=True) + response = self.c.get('/rowers/workout/'+encoded1+'/', form_data, follow=True) self.assertEqual(response.status_code, 200) - response = self.c.get('/rowers/workout/1/edit', form_data, follow=True) + response = self.c.get('/rowers/workout/'+encoded1+'/edit', form_data, follow=True) self.assertEqual(response.status_code, 200) - response = self.c.get('/rowers/workout/1/histo', form_data, follow=True) + response = self.c.get('/rowers/workout/'+encoded1+'/histo', form_data, follow=True) self.assertEqual(response.status_code, 200) - response = self.c.get('/rowers/workout/1/workflow', + response = self.c.get('/rowers/workout/'+encoded1+'/workflow', follow=True) self.assertEqual(response.status_code, 200) @@ -465,7 +469,7 @@ class ViewTest(TestCase): } form = WorkoutForm(data=form_data) self.assertTrue(form.is_valid()) - response = self.c.post('/rowers/workout/1/edit', form_data, follow=True) + response = self.c.post('/rowers/workout/'+encoded1+'/edit', form_data, follow=True) self.assertEqual(response.status_code, 200) @@ -518,12 +522,12 @@ class ViewTest(TestCase): f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) - response = self.c.get('/rowers/workout/1/', form_data, follow=True) + response = self.c.get('/rowers/workout/'+encoded1+'/', form_data, follow=True) self.assertEqual(response.status_code, 200) @@ -560,7 +564,7 @@ class ViewTest(TestCase): f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -629,7 +633,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -640,7 +644,7 @@ class ViewTest(TestCase): form_data = {} form = CNsummaryForm(form_data,file_data) - response = self.c.post('rowers/workout/1/crewnerdsummary', + response = self.c.post('rowers/workout/'+encoded1+'/crewnerdsummary', form_data, follow=True) @@ -679,7 +683,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -716,7 +720,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -755,7 +759,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -791,7 +795,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -828,7 +832,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -867,7 +871,7 @@ class ViewTest(TestCase): response = self.c.post('/rowers/workout/upload/', form_data, follow=True) f.close() - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -903,7 +907,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -936,7 +940,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -969,7 +973,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1002,7 +1006,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1036,7 +1040,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1068,7 +1072,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1100,7 +1104,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1132,7 +1136,7 @@ class ViewTest(TestCase): form = DocumentsForm(form_data,file_data) response = self.c.post('/rowers/workout/upload/', form_data, follow=True) - self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', status_code=302,target_status_code=200) self.assertEqual(response.status_code, 200) @@ -1169,7 +1173,7 @@ class ViewTest(TestCase): # form_data, follow=True, # format='multipart') # f.close() -# self.assertRedirects(response, expected_url='/rowers/workout/1/edit', +# self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit', # status_code=302,target_status_code=200) # self.assertEqual(response.status_code, 200) diff --git a/rowers/views.py b/rowers/views.py index ad5cc33a..48329696 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -1551,7 +1551,7 @@ def rower_register_view(request): response = dataprep.new_workout_from_file(therower,f2, title='New User Sample Data', notes='This is an example workout to get you started') - newworkoutid = response[0] + newworkoutid = encoder.decode_hex(response[0]) w = Workout.objects.get(id=newworkoutid) w.startdatetime = timezone.now() w.save() @@ -1878,7 +1878,7 @@ def workout_tcxemail_view(request,id=0): url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) return HttpResponseRedirect(url) @@ -1891,7 +1891,7 @@ def workout_tcxemail_view(request,id=0): messages.error(request,message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) return HttpResponseRedirect(url) if tcxfile: @@ -1909,7 +1909,7 @@ def workout_tcxemail_view(request,id=0): url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) response = HttpResponseRedirect(url) @@ -1918,7 +1918,7 @@ def workout_tcxemail_view(request,id=0): messages.error(request,message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) response = HttpResponseRedirect(url) @@ -2038,7 +2038,7 @@ def workout_gpxemail_view(request,id=0): messages.error(request, message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) return HttpResponseRedirect(url) @@ -2062,7 +2062,7 @@ def workout_gpxemail_view(request,id=0): messages.info(request,successmessage) url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) response = HttpResponseRedirect(url) @@ -2072,7 +2072,7 @@ def workout_gpxemail_view(request,id=0): messages.error(request,message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':str(w.id), + 'id':encoder.encode_hex(w.id), }) response = HttpResponseRedirect(url) @@ -2086,10 +2086,7 @@ def workouts_summaries_email_view(request): message = "Please check your email address first. Email to this address bounced." messages.error(request, message) return HttpResponseRedirect( - reverse(r.defaultlandingpage, - kwargs = { - 'id':str(w.id), - }) + reverse(workouts_view) ) if request.method == 'POST': @@ -2132,7 +2129,7 @@ def workout_csvemail_view(request,id=0): return HttpResponseRedirect( reverse(r.defaultlandingpage, kwargs = { - 'id':str(w.id), + 'id':encoder.encode_hex(w.id), }) ) @@ -2150,7 +2147,7 @@ def workout_csvemail_view(request,id=0): messages.info(request,successmessage) url = reverse(r.defaultlandingpage, kwargs = { - 'id':str(w.id), + 'id':encoder.encode_hex(w.id), }) response = HttpResponseRedirect(url) @@ -2159,7 +2156,7 @@ def workout_csvemail_view(request,id=0): messages.error(request,message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':str(w.id), + 'id':encoder.encode_hex(w.id), }) response = HttpResponseRedirect(url) @@ -2186,7 +2183,7 @@ def workout_csvtoadmin_view(request,id=0): messages.info(request,successmessage) url = reverse(workout_view, kwargs = { - 'id':str(w.id), + 'id':encoder.encode_hex(w.id), }) response = HttpResponseRedirect(url) @@ -2243,7 +2240,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) @@ -2299,7 +2296,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 @@ -2330,14 +2327,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) @@ -2349,7 +2346,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) @@ -2377,7 +2374,7 @@ def workout_c2_upload_view(request,id=0): url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) }) @@ -2407,7 +2404,7 @@ def workout_runkeeper_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) @@ -2430,7 +2427,7 @@ 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: @@ -2444,7 +2441,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) @@ -2471,7 +2468,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) @@ -2496,7 +2493,8 @@ 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: @@ -2509,7 +2507,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) @@ -2537,7 +2535,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) @@ -2564,7 +2562,8 @@ 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 @@ -2576,7 +2575,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) @@ -3643,7 +3642,7 @@ def workout_test_task_view(request,id=0): url = reverse(workout_edit_view, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -5622,14 +5621,14 @@ def workout_recalcsummary_view(request,id=0): messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) else: message = "Something went wrong. Could not update summary" messages.error(request,message) url = reverse(workout_edit_view, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -5663,7 +5662,7 @@ def workout_makepublic_view(request,id, url = reverse(workout_edit_view, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -5692,7 +5691,7 @@ def workout_setprivate_view(request,id, url = reverse(workout_edit_view, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -5731,7 +5730,7 @@ def workouts_join_view(request): url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -6306,6 +6305,8 @@ def plannedsession_compare_view(request,id=0,userid=0): # Team comparison @login_required() def multi_compare_view(request,id=0,userid=0): + if id != 0: + id = encoder.decode_hex(id) promember=0 if not request.user.is_anonymous(): r = getrower(request.user) @@ -8170,7 +8171,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':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -8183,7 +8184,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':encoder.encode_hex(id), }) return HttpResponseRedirect(url) else: @@ -8261,7 +8262,7 @@ def workout_downloadwind_view(request,id=0, messages.info(request,message) kwargs = { - 'id':int(id)} + 'id':encoder.encode_hex(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8269,7 +8270,7 @@ def workout_downloadwind_view(request,id=0, message = "No latitude/longitude data" messages.error(request,message) kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8328,7 +8329,7 @@ def workout_downloadmetar_view(request,id=0, messages.info(request,message) kwargs = { - 'id':int(id)} + 'id':encoder.encode_hex(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8336,7 +8337,7 @@ def workout_downloadmetar_view(request,id=0, message = "No latitude/longitude data" messages.error(request,message) kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8441,7 +8442,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':int(id) + 'id':encoder.encode_hex(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8529,7 +8530,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':int(id)} + 'id':encoder.encode_hex(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -8653,7 +8654,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 here' messages.info(request,successmessage) kwargs = { - 'id':int(id)} + 'id':encoder.encode_hex(id)} try: url = request.session['referer'] @@ -8667,7 +8668,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':int(id)} + 'id':encoder.encode_hex(id)} url = reverse(workout_otwsetpower_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -11201,7 +11202,7 @@ def workout_uploadimage_view(request,id): messages.error(request,message) url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id), + 'id':encoder.encode_hex(id), }) return HttpResponseRedirect(url) @@ -11359,7 +11360,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) @@ -11917,7 +11918,7 @@ def workout_getimportview(request,externalid,source = 'c2'): startdatetime, workouttype=workouttype) - w = Workout.objects.get(id=id) + w = Workout.objects.get(id=encoder.decode_hex(id)) w.uploadedtoc2 = c2id w.name = 'Imported from C2' w.workouttype = workouttype @@ -11927,7 +11928,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) @@ -11940,7 +11941,7 @@ def workout_getimportview(request,externalid,source = 'c2'): source=source, workoutsource=source) - w = get_workout(id) + w = get_workout(encoder.decode_hex(id)) if 'workout' in data: if 'splits' in data['workout']: @@ -11996,7 +11997,7 @@ def workout_getimportview(request,externalid,source = 'c2'): url = reverse(r.defaultlandingpage, kwargs = { - 'id':int(id) + 'id':id }) return HttpResponseRedirect(url) @@ -12947,7 +12948,7 @@ 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(id), } ) return HttpResponseRedirect(url) @@ -14652,13 +14653,13 @@ def rower_update_empower_view( message = "You can only alter your own workouts" messages.error(request,message) if 'x' in w.boattype and w.oarlength is not None and w.oarlength > 3.30: - message = "Oarlength and boat type mismatch for workout "+str(w.id)+". Skipping workout" + message = "Oarlength and boat type mismatch for workout "+encoder.encode_hex(w.id)+". Skipping workout" messages.error(request,message) elif 'x' not in w.boattype and w.oarlength is not None and w.oarlength <= 3.30: - message = "Oarlength and boat type mismatch for workout "+str(w.id)+". Skipping workout" + message = "Oarlength and boat type mismatch for workout "+encoder.encode_hex(w.id)+". Skipping workout" messages.error(request,message) elif w.oarlength is None: - message = "Incorrect oarlength in workout "+str(w.id)+". Skipping workout" + message = "Incorrect oarlength in workout "+encoder.encode_hex(w.id)+". Skipping workout" messages.error(request,message) else: @@ -18751,7 +18752,7 @@ class GraphDelete(DeleteView): def get_success_url(self): w = self.object.workout - return reverse(workout_edit_view,kwargs={'id':str(w.id)}) + return reverse(workout_edit_view,kwargs={'id':encoder.encode_hex(w.id)}) def get_object(self, *args, **kwargs): obj = super(GraphDelete, self).get_object(*args, **kwargs)