From 8d9816a238e701b3195bd4d1e9dd25b02c8391df Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 29 Nov 2016 22:20:17 +0100 Subject: [PATCH] empower --- rowers/dataprep.py | 25 ++++++++++++++++++++++++- rowers/models.py | 7 ++++++- rowers/tests.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index a262244d..31720733 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -244,7 +244,8 @@ def smalldataprep(therows,xparam,yparam1,yparam2): return df -def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True): +def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True, + empower=True): rowdatadf.set_index([range(len(rowdatadf))],inplace=True) t = rowdatadf.ix[:,'TimeStamp (sec)'] t = pd.Series(t-rowdatadf.ix[0,'TimeStamp (sec)']) @@ -338,6 +339,28 @@ def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True): data['x_right'] = x_right + if empower: + try: + wash = rowdatadf.ix[:,'wash'] + catch = rowdatadf.ix[:,'catch'] + finish = rowdatadf.ix[:,'finish'] + peakforce = rowdatadf.ix[:'peakforce'] + averageforce = rowdatadf.ix[:'averageforce'] + peakforceangle = rowdatadf.ix[:,'peakforceangle'] + driveenergy = rowdatadf.ix[:,'driveenergy'] + drivelength = driveenergy/(averageforce*4.44822) + slip = rowdatadf.ix[:,'slip'] + data['wash'] = wash + data['catch'] = catch + data['slip'] = slip + data['finish'] = finish + data['peakforceangle'] = peakforceangle + data['driveenergy'] = driveenergy + data['peakforce'] = peakforce + data['averageforce'] = averageforce + except KeyError: + pass + if otwpower: try: nowindpace = rowdatadf.ix[:,'nowindpace'] diff --git a/rowers/models.py b/rowers/models.py index 62d9897b..be9e55c0 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -191,7 +191,12 @@ class StrokeData(models.Model): equivergpower = models.FloatField(null=True) fergpace = models.CharField(max_length=30) fnowindpace = models.CharField(max_length=30) - + catch = models.FloatField(default=0,null=True) + slip = models.FloatField(default=0,null=True) + finish = models.FloatField(default=0,null=True) + wash = models.FloatField(default=0,null=True) + peakforceangle = models.FloatField(default=0,null=True) + class GraphImage(models.Model): filename = models.CharField(default='',max_length=150,blank=True,null=True) creationdatetime = models.DateTimeField() diff --git a/rowers/tests.py b/rowers/tests.py index d162a5ee..0e0c4acd 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -659,6 +659,37 @@ class ViewTest(TestCase): f_to_be_deleted = w.csvfilename os.remove(f_to_be_deleted) + def test_upload_view_SpeedCoach2v127(self): + self.c.login(username='john',password='koeinsloot') + + filename = 'C:\\python\\rowingdata\\testdata\\SpeedCoach2Linkv1.27.csv' + f = open(filename,'rb') + file_data = {'file': f} + + form_data = { + 'title':'test', + 'workouttype':'water', + 'notes':'aap noot mies', + 'make_plot':False, + 'upload_to_c2':False, + 'plottype':'timeplot', + 'file': f, + } + + form = DocumentsForm(form_data,file_data) + + response = self.c.post('/rowers/workout/upload/', form_data, follow=True) + f.close() + self.assertRedirects(response, expected_url='/rowers/workout/1/edit', + status_code=302,target_status_code=200) + + self.assertEqual(response.status_code, 200) + + w = Workout.objects.get(id=1) + f_to_be_deleted = w.csvfilename + os.remove(f_to_be_deleted) + + def test_upload_view_TCX_NoHR(self): self.c.login(username='john',password='koeinsloot')