impeller stuff working, need beta testers
This commit is contained in:
@@ -1853,8 +1853,15 @@ parsers = {
|
|||||||
'nklinklogbook': NKLiNKLogbookParser,
|
'nklinklogbook': NKLiNKLogbookParser,
|
||||||
}
|
}
|
||||||
|
|
||||||
def parsenonpainsled(fileformat,f2,summary,startdatetime=''):
|
def parsenonpainsled(fileformat,f2,summary,startdatetime='',empowerfirmware=None,inboard=None,oarlength=None):
|
||||||
try:
|
try:
|
||||||
|
if fileformat == 'nklinklogbook' and empowerfirmware is not None:
|
||||||
|
if inboard is not None and oarlength is not None:
|
||||||
|
row = NKLiNKLogbookParser(f2,firmware=empowerfirmware,inboard=inboard,oarlength=oarlength)
|
||||||
|
print(row,'aap')
|
||||||
|
else:
|
||||||
|
row = NKLiNKLogbookParser(f2)
|
||||||
|
else:
|
||||||
row = parsers[fileformat](f2)
|
row = parsers[fileformat](f2)
|
||||||
if startdatetime != '':
|
if startdatetime != '':
|
||||||
row.rowdatetime = arrow.get(startdatetime).datetime
|
row.rowdatetime = arrow.get(startdatetime).datetime
|
||||||
@@ -1875,6 +1882,8 @@ def parsenonpainsled(fileformat,f2,summary,startdatetime=''):
|
|||||||
summary = row.allstats()
|
summary = row.allstats()
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
summary = ''
|
summary = ''
|
||||||
|
else:
|
||||||
|
fileformat = fileformat+'v'+str(empowerfirmware)
|
||||||
|
|
||||||
# handle FIT
|
# handle FIT
|
||||||
if (fileformat == 'fit'):
|
if (fileformat == 'fit'):
|
||||||
@@ -1889,13 +1898,14 @@ def parsenonpainsled(fileformat,f2,summary,startdatetime=''):
|
|||||||
|
|
||||||
return row,hasrecognized,summary,fileformat
|
return row,hasrecognized,summary,fileformat
|
||||||
|
|
||||||
def handle_nonpainsled(f2, fileformat, summary='',startdatetime=''):
|
def handle_nonpainsled(f2, fileformat, summary='',startdatetime='',empowerfirmware=None):
|
||||||
oarlength = 2.89
|
oarlength = 2.89
|
||||||
inboard = 0.88
|
inboard = 0.88
|
||||||
hasrecognized = False
|
hasrecognized = False
|
||||||
impeller = False
|
impeller = False
|
||||||
|
|
||||||
row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary,startdatetime=startdatetime)
|
row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary,startdatetime=startdatetime,
|
||||||
|
empowerfirmware=empowerfirmware)
|
||||||
|
|
||||||
# Handle c2log
|
# Handle c2log
|
||||||
if (fileformat == 'c2log' or fileformat == 'rowprolog'):
|
if (fileformat == 'c2log' or fileformat == 'rowprolog'):
|
||||||
@@ -1909,7 +1919,7 @@ def handle_nonpainsled(f2, fileformat, summary='',startdatetime=''):
|
|||||||
f2 = f2[:-4] + 'o.csv'
|
f2 = f2[:-4] + 'o.csv'
|
||||||
row2 = rrdata(df = row.df)
|
row2 = rrdata(df = row.df)
|
||||||
|
|
||||||
if 'speedcoach2' in fileformat:
|
if 'speedcoach2' in fileformat or 'nklinklogbook' in fileformat:
|
||||||
# impeller consistency
|
# impeller consistency
|
||||||
impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
|
impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
|
||||||
if impellerdata and consistent:
|
if impellerdata and consistent:
|
||||||
@@ -1990,6 +2000,9 @@ def new_workout_from_file(r, f2,
|
|||||||
makeprivate=False,
|
makeprivate=False,
|
||||||
startdatetime='',
|
startdatetime='',
|
||||||
notes='',
|
notes='',
|
||||||
|
oarlockfirmware='',
|
||||||
|
inboard=None,
|
||||||
|
oarlength=None,
|
||||||
uploadoptions={'boattype':'1x','workouttype':'rower'}):
|
uploadoptions={'boattype':'1x','workouttype':'rower'}):
|
||||||
message = ""
|
message = ""
|
||||||
impeller = False
|
impeller = False
|
||||||
@@ -2095,7 +2108,8 @@ def new_workout_from_file(r, f2,
|
|||||||
f2,
|
f2,
|
||||||
fileformat,
|
fileformat,
|
||||||
startdatetime=startdatetime,
|
startdatetime=startdatetime,
|
||||||
summary=summary
|
summary=summary,
|
||||||
|
empowerfirmware=oarlockfirmware,
|
||||||
)
|
)
|
||||||
if not f2:
|
if not f2:
|
||||||
message = 'Something went wrong'
|
message = 'Something went wrong'
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None
|
|||||||
code = uuid4().hex[:16]
|
code = uuid4().hex[:16]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
userid=int(userid)
|
||||||
|
except TypeError:
|
||||||
|
userid = userid.id
|
||||||
|
|
||||||
strokedata.to_csv(csvfilename, index_label='index', compression='gzip')
|
strokedata.to_csv(csvfilename, index_label='index', compression='gzip')
|
||||||
|
|
||||||
title = data["name"]
|
title = data["name"]
|
||||||
@@ -44,6 +49,7 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None
|
|||||||
oarlockSessions = data["oarlockSessions"]
|
oarlockSessions = data["oarlockSessions"]
|
||||||
deviceId = data["deviceId"] # you could get the firmware version
|
deviceId = data["deviceId"] # you could get the firmware version
|
||||||
|
|
||||||
|
|
||||||
summary = get_nk_allstats(data,strokedata)
|
summary = get_nk_allstats(data,strokedata)
|
||||||
|
|
||||||
speedInput = data['speedInput'] # 0 = GPS; 1 = Impeller
|
speedInput = data['speedInput'] # 0 = GPS; 1 = Impeller
|
||||||
@@ -55,11 +61,16 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None
|
|||||||
oarLength = oarlocksession["oarLength"] # cm
|
oarLength = oarlocksession["oarLength"] # cm
|
||||||
oarInboardLength = oarlocksession["oarInboardLength"] # cm
|
oarInboardLength = oarlocksession["oarInboardLength"] # cm
|
||||||
seatNumber = oarlocksession["seatNumber"]
|
seatNumber = oarlocksession["seatNumber"]
|
||||||
|
try:
|
||||||
|
oarlockfirmware = oarlocksession["firmwareVersion"]
|
||||||
|
except KeyError:
|
||||||
|
oarlockfirmware = ''
|
||||||
else:
|
else:
|
||||||
boatName = ''
|
boatName = ''
|
||||||
oarLength = 289
|
oarLength = 289
|
||||||
oarInboardLength = 88
|
oarInboardLength = 88
|
||||||
seatNumber = 1
|
seatNumber = 1
|
||||||
|
oarlockfirmware = ''
|
||||||
|
|
||||||
workouttype = "water"
|
workouttype = "water"
|
||||||
boattype = "1x"
|
boattype = "1x"
|
||||||
@@ -75,6 +86,7 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None
|
|||||||
'inboard': oarInboardLength/100.,
|
'inboard': oarInboardLength/100.,
|
||||||
'oarlength': oarLength/100.,
|
'oarlength': oarLength/100.,
|
||||||
'summary':summary,
|
'summary':summary,
|
||||||
|
'oarlockfirmware':oarlockfirmware,
|
||||||
}
|
}
|
||||||
|
|
||||||
session = requests.session()
|
session = requests.session()
|
||||||
|
|||||||
@@ -111,7 +111,10 @@ def safetimedelta(x):
|
|||||||
|
|
||||||
siteurl = SITE_URL
|
siteurl = SITE_URL
|
||||||
|
|
||||||
from rowers.nkimportutils import get_nk_summary, get_nk_allstats, get_nk_intervalstats,getdict,strokeDataToDf
|
from rowers.nkimportutils import (
|
||||||
|
get_nk_summary, get_nk_allstats, get_nk_intervalstats,getdict,strokeDataToDf,
|
||||||
|
add_workout_from_data
|
||||||
|
)
|
||||||
|
|
||||||
# testing task
|
# testing task
|
||||||
|
|
||||||
|
|||||||
@@ -476,6 +476,10 @@ class NKObjects(DjangoTestCase):
|
|||||||
|
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
w = Workout.objects.get(id=1)
|
||||||
|
#self.assertEqual(w.inboard,0.89)
|
||||||
|
#self.assertEqual(w.oarlength,2.87)
|
||||||
|
|
||||||
@patch('rowers.nkstuff.requests.get', side_effect=mocked_requests)
|
@patch('rowers.nkstuff.requests.get', side_effect=mocked_requests)
|
||||||
@patch('rowers.nkstuff.requests.post', side_effect=mocked_requests)
|
@patch('rowers.nkstuff.requests.post', side_effect=mocked_requests)
|
||||||
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
|
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
|
||||||
@@ -498,6 +502,9 @@ class NKObjects(DjangoTestCase):
|
|||||||
expected_url='/rowers/workout/'+encoded1+'/edit/',
|
expected_url='/rowers/workout/'+encoded1+'/edit/',
|
||||||
status_code=302,target_status_code=200)
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
w = Workout.objects.get(id=1)
|
||||||
|
#self.assertTrue(w.impeller)
|
||||||
|
|
||||||
|
|
||||||
#@pytest.mark.django_db
|
#@pytest.mark.django_db
|
||||||
@override_settings(TESTING=True)
|
@override_settings(TESTING=True)
|
||||||
|
|||||||
@@ -548,6 +548,19 @@ def do_sync(w,options, quick=False):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
if options['inboard'] != 0 and options['inboard'] != '':
|
||||||
|
w.inboard = options['inboard']
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
if options['oarlength'] != 0 and options['oarlength'] != '':
|
||||||
|
w.oarlength = options['oarlength']
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if options['garminid'] != 0 and options['garminid'] != '':
|
if options['garminid'] != 0 and options['garminid'] != '':
|
||||||
w.uploadedtogarmin = options['garminid']
|
w.uploadedtogarmin = options['garminid']
|
||||||
|
|||||||
@@ -4859,8 +4859,6 @@ def workout_upload_api(request):
|
|||||||
message = {'status':'false','message':'this view cannot be accessed through GET'}
|
message = {'status':'false','message':'this view cannot be accessed through GET'}
|
||||||
return JSONResponse(status=403,data=message)
|
return JSONResponse(status=403,data=message)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# test if JSON
|
# test if JSON
|
||||||
try:
|
try:
|
||||||
json_data = json.loads(request.body)
|
json_data = json.loads(request.body)
|
||||||
@@ -4939,6 +4937,22 @@ def workout_upload_api(request):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
startdatetime = ''
|
startdatetime = ''
|
||||||
|
|
||||||
|
try:
|
||||||
|
oarlockfirmware = post_data['oarlockfirmware']
|
||||||
|
except:
|
||||||
|
oarlockfirmware = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
inboard = post_data['inboard']
|
||||||
|
except:
|
||||||
|
inboard = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
oarlength = post_data['oarlength']
|
||||||
|
except:
|
||||||
|
oarlength = None
|
||||||
|
|
||||||
|
|
||||||
r = None
|
r = None
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
t = form.cleaned_data['title']
|
t = form.cleaned_data['title']
|
||||||
@@ -5011,6 +5025,9 @@ def workout_upload_api(request):
|
|||||||
notes=notes,
|
notes=notes,
|
||||||
uploadoptions=post_data,
|
uploadoptions=post_data,
|
||||||
startdatetime=startdatetime,
|
startdatetime=startdatetime,
|
||||||
|
oarlockfirmware=oarlockfirmware,
|
||||||
|
inboard=inboard,
|
||||||
|
oarlength=oarlength,
|
||||||
)
|
)
|
||||||
|
|
||||||
if id == 0:
|
if id == 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user