Private
Public Access
1
0

Merge tag 'v7.04' into develop

another attempts
This commit is contained in:
Sander Roosendaal
2018-06-27 18:24:51 +02:00
7 changed files with 62 additions and 15 deletions

View File

@@ -56,7 +56,6 @@ from django.conf import settings
from sqlalchemy import create_engine
import sqlalchemy as sa
import sys
import utils
import datautils
from utils import lbstoN,myqueue,is_ranking_piece,wavg

View File

@@ -627,11 +627,11 @@ def delete_strokedata(id,debug=False):
conn.close()
engine.dispose()
def update_strokedata(id,df,debug=False):
def update_strokedata(id,df,debug=False,bands=True,barchart=True,otwpower=True):
delete_strokedata(id,debug=debug)
if debug:
print "updating ",id
rowdata = dataprep(df,id=id,bands=True,barchart=True,otwpower=True,
rowdata = dataprep(df,id=id,bands=False,barchart=True,otwpower=True,
debug=debug)
return rowdata
@@ -1222,10 +1222,12 @@ def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True,
# write data if id given
if id != 0:
data['workoutid'] = id
if debug:
engine = create_engine(database_url_debug, echo=False)
else:
engine = create_engine(database_url, echo=False)
with engine.connect() as conn, conn.begin():
data.to_sql('strokedata',engine,if_exists='append',index=False)
conn.close()

View File

@@ -70,7 +70,7 @@ rowingmetrics = (
('velo',{
'numtype':'float',
'null':False,
'null':True,
'verbose_name': 'Boat Speed (m/s)',
'ax_min': 0,
'ax_max': 8,

View File

@@ -119,19 +119,28 @@ def get_strava_workout_list(user):
return s
def add_stroke_data(user,stravaid,workoutid,startdatetime,csvfilename):
def add_stroke_data(user,stravaid,workoutid,startdatetime,csvfilename,debug=False):
r = Rower.objects.get(user=user)
starttimeunix = arrow.get(startdatetime).timestamp
job = myqueue(queue,
handle_strava_import_stroke_data,
r.stravatoken,
stravaid,
workoutid,
starttimeunix,
csvfilename)
if not debug:
job = myqueue(queue,
handle_strava_import_stroke_data,
r.stravatoken,
stravaid,
workoutid,
starttimeunix,
csvfilename)
else:
handle_strava_import_stroke_data(
r.stravatoken,
stravaid,
workoutid,
starttimeunix,
csvfilename,
debug=debug
)
# gets all new Strava workouts for a rower
def get_strava_workouts(rower):
@@ -160,7 +169,7 @@ def get_strava_workouts(rower):
return 1
def create_async_workout(alldata,user,stravaid):
def create_async_workout(alldata,user,stravaid,debug=False):
data = alldata[stravaid]
r = Rower.objects.get(user=user)
distance = data['distance']
@@ -245,7 +254,7 @@ def create_async_workout(alldata,user,stravaid):
# Check if workout has stroke data, and get the stroke data
result = add_stroke_data(user,stravaid,w.id,rowdatetime,csvfilename)
result = add_stroke_data(user,stravaid,w.id,rowdatetime,csvfilename,debug=debug)
return w.id

View File

@@ -206,6 +206,8 @@ def handle_strava_import_stroke_data(stravatoken,
res = df.to_csv(csvfilename+'.gz',index_label='index',compression='gzip')
# data = update_strokedata(workoutid,df,debug=debug)
data = dataprep(df,id=workoutid,bands=False,debug=debug)
# startdatetime = datetime.datetime.strptime(startdatetime,"%Y-%m-%d-%H:%M:%S")

View File

@@ -326,6 +326,7 @@ urlpatterns = [
url(r'^workout/c2import/all/(?P<page>\d+)$',views.workout_getc2workout_all),
url(r'^workout/stravaimport/(?P<stravaid>\d+)/$',views.workout_getstravaworkout_view),
url(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all),
url(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next),
url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view),
url(r'^workout/sporttracksimport/(?P<sporttracksid>\d+)/$',views.workout_getsporttracksworkout_view),
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),

View File

@@ -10234,6 +10234,40 @@ def workout_getstravaworkout_all(request):
return HttpResponseRedirect(url)
# Imports all new workouts from SportTracks
@login_required()
def workout_getstravaworkout_next(request):
r = Rower.objects.get(user=request.user)
res = stravastuff.get_strava_workout_list(r.user)
if (res.status_code != 200):
return 0
else:
stravaids = [int(item['id']) for item in res.json()]
alldata = {}
for item in res.json():
alldata[item['id']] = item
knownstravaids = uniqify([
w.uploadedtostrava for w in Workout.objects.filter(user=r)
])
newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
theid = newids[0]
workoutid = stravastuff.create_async_workout(alldata,r.user,stravaid,debug=True)
url = reverse(workouts_view)
return HttpResponseRedirect(url)
# Imports a workout from Concept2
@login_required()