diff --git a/rowers/dataprep.py b/rowers/dataprep.py
index 646ab380..d935e5c7 100644
--- a/rowers/dataprep.py
+++ b/rowers/dataprep.py
@@ -2507,7 +2507,7 @@ def read_df_sql(id):
try:
f = 'media/strokedata_{id}.parquet.gz'.format(id=id)
df = pd.read_parquet(f)
- except (OSError,ArrowInvalid):
+ except (OSError,ArrowInvalid,IndexError):
rowdata,row = getrowdata(id=id)
if rowdata and len(rowdata.df):
data = dataprep(rowdata.df,id=id,bands=True,otwpower=True,barchart=True)
diff --git a/rowers/templates/developers.html b/rowers/templates/developers.html
index 50b3e667..d8e5125e 100644
--- a/rowers/templates/developers.html
+++ b/rowers/templates/developers.html
@@ -227,6 +227,8 @@
- power: Power (Watt)
+ - latitude: GPS position (latitude)
+ - longitude: GPS position (longitude)
- drivelength: Drive length (meters)
- dragfactor: Drag factor
- drivetime: Drive time (ms)
diff --git a/rowers/views/apiviews.py b/rowers/views/apiviews.py
index 46301d92..6bc75bab 100644
--- a/rowers/views/apiviews.py
+++ b/rowers/views/apiviews.py
@@ -111,6 +111,10 @@ def strokedatajson_v2(request,id):
return JSONResponse(data)
if request.method == 'POST':
+ with open('media/apilog.log','a') as logfile:
+ print(str(timezone.now()))
+ logfile.write(str(timezone.now())+": ")
+ logfile.write(request.user.username+"(POST) \n")
checkdata, r = dataprep.getrowdata_db(id=row.id)
if not checkdata.empty:
return HttpResponse("Duplicate Error",status=409)
@@ -226,6 +230,15 @@ def strokedatajson_v2(request,id):
except KeyError:
hr = 0*df['time']
+ try:
+ latitude = df['latitude']
+ except KeyError:
+ latitude = 0*df['time']
+
+ try:
+ longitude = df['longitude']
+ except KeyError:
+ longitude = 0*df['time']
starttime = totimestamp(row.startdatetime)+time[0]
@@ -256,6 +269,8 @@ def strokedatajson_v2(request,id):
'wash':wash,
'driveenergy':driveenergy,
'peakforceangle':peakforceangle,
+ ' latitude': latitude,
+ ' longitude': longitude,
})
r = getrower(request.user)
@@ -286,7 +301,12 @@ def strokedatajson_v2(request,id):
datadf = dataprep.dataprep(rowdata,id=row.id,bands=True,barchart=True,otwpower=True,empower=True)
- return(HttpResponse(encoder.encode_hex(row.id),status=201))
+ return(JsonResponse(
+ {"workout public id":encoder.encode_hex(row.id),
+ "workout private id":row.id,
+ "status":"success",
+ }))
+ #return(HttpResponse(encoder.encode_hex(row.id),status=201))
return HttpResponseNotAllowed("Method not supported")
@@ -316,11 +336,16 @@ def strokedatajson(request,id):
columns = ['spm','time','hr','pace','power','distance']
datadf = dataprep.getsmallrowdata_db(columns,ids=[id])
with open('media/apilog.log','a') as logfile:
+ print(str(timezone.now()))
logfile.write(str(timezone.now())+": ")
logfile.write(request.user.username+"(GET) \n")
return JSONResponse(datadf)
if request.method == 'POST':
+ with open('media/apilog.log','a') as logfile:
+ print(str(timezone.now()))
+ logfile.write(str(timezone.now())+": ")
+ logfile.write(request.user.username+"(POST) \n")
checkdata,r = dataprep.getrowdata_db(id=row.id)
if not checkdata.empty:
return HttpResponse("Duplicate Error",status=409)