From c4cf0a9afbbbc145614191f518f7192d64d1e806 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 3 Dec 2016 08:57:56 +0100 Subject: [PATCH 1/4] togglestrokes hotfix --- rowers/views.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rowers/views.py b/rowers/views.py index b1539dcd..eded3d99 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2867,6 +2867,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) + dataprep.update_strokedata(id,rowdata.df) successmessage = "Changes saved" url = "/rowers/workout/"+str(row.id)+"/edit" url = reverse(workout_edit_view, @@ -4209,6 +4210,7 @@ def workout_summary_restore_view(request,id,message="",successmessage=""): return HttpResponse("Error: CSV Data File Not Found") rowdata.restoreintervaldata() rowdata.write_csv(f1) + dataprep.update_strokedata(id,rowdata.df) intervalstats = rowdata.allstats() row.summary = intervalstats row.save() @@ -4293,6 +4295,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" row.notes += "\n"+s row.save() rowdata.write_csv(f1) + dataprep.update_strokedata(id,rowdata.df) data = {'intervalstring':s} form = SummaryStringForm(initial=data) savebutton = 'savestringform' @@ -4344,6 +4347,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" row.notes += "\n"+s row.save() rowdata.write_csv(f1) + dataprep.update_strokedata(id,rowdata.df) form = SummaryStringForm() From 9f8869f0a0d41d01c169175b7e0ea1e783e96744 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 4 Dec 2016 13:44:39 +0100 Subject: [PATCH 2/4] Added workout form test + fixed strokedata update bug --- rowers/tests.py | 19 +++++++++++++++++-- rowers/views.py | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/rowers/tests.py b/rowers/tests.py index 2ee797c7..8a5a4b7d 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -434,9 +434,24 @@ class ViewTest(TestCase): response = self.c.get('/rowers/workout/1/histo', form_data, follow=True) self.assertEqual(response.status_code, 200) - + form_data = { + 'name':'aap', + 'date':'2016-11-05', + 'starttime':'09:07:14', + 'duration':'1:00:00.5', + 'distance':'15000', + 'workouttype':'rower', + 'notes':'noot mies', + } + form = WorkoutForm(data=form_data) + self.assertTrue(form.is_valid()) + response = self.c.post('/rowers/workout/1/edit', form_data, follow=True) + self.assertRedirects(response, + expected_url='/rowers/workout/1/edit/s/Changes%20saved', + status_code=302,target_status_code=200) + - w = Workout.objects.get(id=1) + w = Workout.objects.get(id=1) f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) diff --git a/rowers/views.py b/rowers/views.py index eded3d99..08b7e9e3 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2867,7 +2867,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) - dataprep.update_strokedata(id,rowdata.df) + dataprep.update_strokedata(id,r.df) successmessage = "Changes saved" url = "/rowers/workout/"+str(row.id)+"/edit" url = reverse(workout_edit_view, From a636ed198e6be78f4e95b60f5b9bf5165fd6bcdb Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 4 Dec 2016 14:29:19 +0100 Subject: [PATCH 3/4] Sort / use limited nr of columns on flexchart SQL query --- rowers/interactiveplots.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 2be3c390..d7a53f19 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -930,16 +930,18 @@ def interactive_flex_chart2(id=0,promember=0, 'peakforceangle': 20, } - rowdata,row = dataprep.getrowdata_db(id=id) - #columns = [xparam,yparam1,yparam2, - # 'ftime','distance','fpace', - # 'power','hr','spm', - # 'time','pace'] - #rowdata = dataprep.getsmallrowdata_db(columns,ids=[id]) - #row = Workout.objects.get(id=id) + #rowdata,row = dataprep.getrowdata_db(id=id) + columns = [xparam,yparam1,yparam2, + 'ftime','distance','fpace', + 'power','hr','spm', + 'time','pace','workoutstate'] + rowdata = dataprep.getsmallrowdata_db(columns,ids=[id]) + row = Workout.objects.get(id=id) if rowdata.empty: return "","CSV Data File Not Found" - + else: + rowdata.sort_values(by='time',ascending=True,inplace=True) + workoutstateswork = [1,4,5,8,9,6,7] workoutstatesrest = [3] workoutstatetransition = [0,2,10,11,12,13] From 2364c06c1f2ca3fc13bcbeb66f35a5eaa4e57e90 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 4 Dec 2016 14:54:30 +0100 Subject: [PATCH 4/4] interactive_chart reads only 3 columns now --- rowers/interactiveplots.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index d7a53f19..44e13503 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -497,9 +497,17 @@ def interactive_chart(id=0,promember=0): TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair' - datadf,row = dataprep.getrowdata_db(id=id) + columns = ['time','pace','hr'] + datadf = dataprep.getsmallrowdata_db(columns,ids=[id]) + row = Workout.objects.get(id=id) if datadf.empty: return "","CSV Data File Not Found" + else: + datadf.sort_values(by='time',ascending=True,inplace=True) + + #datadf,row = dataprep.getrowdata_db(id=id) + #if datadf.empty: + #return "","CSV Data File Not Found" source = ColumnDataSource( datadf