Private
Public Access
1
0

Merge branch 'develop' into feature/restapi

This commit is contained in:
Sander Roosendaal
2016-11-30 10:54:42 +01:00
6 changed files with 103 additions and 5 deletions

View File

@@ -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']

View File

@@ -11,7 +11,7 @@ from rowingdata import rower as rrower
from rowingdata import main as rmain
from rowingdata import rowingdata as rrdata
from rowingdata import TCXParser,RowProParser,ErgDataParser,TCXParserNoHR
from rowingdata import MysteryParser
from rowingdata import MysteryParser,BoatCoachParser
from rowingdata import painsledDesktopParser,speedcoachParser,ErgStickParser
from rowingdata import SpeedCoach2Parser,FITParser,fitsummarydata
from rowingdata import make_cumvalues
@@ -131,6 +131,10 @@ def make_new_workout_from_email(rr,f2,name,cntr=0):
if (fileformat == 'ergdata'):
row = ErgDataParser('media/'+f2)
# handle BoatCoach
if (fileformat == 'boatcoach'):
row = BoatCoachParser('media/'+f2)
# handle painsled desktop
if (fileformat == 'painsleddesktop'):
row = painsledDesktopParser('media/'+f2)

View File

@@ -77,7 +77,6 @@ class Rower(models.Model):
team = models.ForeignKey(Team,blank=True,null=True)
def __str__(self):
return self.user.username
@@ -192,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()

View File

@@ -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')
@@ -851,6 +882,33 @@ class ViewTest(TestCase):
f_to_be_deleted = w.csvfilename
os.remove(f_to_be_deleted)
def test_upload_view_sled_boatcoach(self):
self.c.login(username='john',password='koeinsloot')
filename = 'C:\\python\\rowingdata\\testdata\\boatcoach.csv'
f = open(filename,'rb')
file_data = {'file': f}
form_data = {
'title':'test',
'workouttype':'rower',
'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)
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_sled_ergstick(self):
self.c.login(username='john',password='koeinsloot')

View File

@@ -18,7 +18,7 @@ from rowers.permissions import IsOwnerOrNot,IsOwnerOrReadOnly
from rowers.serializers import WorkoutSerializer,RowerSerializer
class WorkoutViewSet(viewsets.ModelViewSet):
queryset = Workout.objects.all().order_by("-date", "-starttime")
queryset = Workout.objects.none().order_by("-date", "-starttime")
serializer_class = WorkoutSerializer
permission_classes = (IsOwnerOrNot,)

View File

@@ -51,6 +51,7 @@ from rowingdata import rower as rrower
from rowingdata import main as rmain
from rowingdata import rowingdata as rrdata
from rowingdata import TCXParser,RowProParser,ErgDataParser,TCXParserNoHR
from rowingdata import BoatCoachParser
from rowingdata import MysteryParser
from rowingdata import painsledDesktopParser,speedcoachParser,ErgStickParser
from rowingdata import SpeedCoach2Parser,FITParser,fitsummarydata
@@ -3567,6 +3568,10 @@ def workout_upload_view(request,message=""):
if (fileformat == 'ergdata'):
row = ErgDataParser(f2)
# handle BoatCoach
if (fileformat == 'boatcoach'):
row = BoatCoachParser(f2)
# handle painsled desktop
if (fileformat == 'painsleddesktop'):
row = painsledDesktopParser(f2)
@@ -3855,6 +3860,10 @@ def workout_upload_view_debug(request,message=""):
if (fileformat == 'ergdata'):
row = ErgDataParser(f2)
# handle BoatCoach
if (fileformat == 'boatcoach'):
row = BoatCoachParser(f2)
# handle painsled desktop
if (fileformat == 'painsleddesktop'):