diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 2be3c390..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 @@ -930,16 +938,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] 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 6efdff9e..4bb62ea9 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2871,6 +2871,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,r.df) successmessage = "Changes saved" url = "/rowers/workout/"+str(row.id)+"/edit" url = reverse(workout_edit_view, @@ -4213,6 +4214,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() @@ -4297,6 +4299,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' @@ -4348,6 +4351,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()