Merge tag 'v7.04' into develop
another attempts
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -70,7 +70,7 @@ rowingmetrics = (
|
||||
|
||||
('velo',{
|
||||
'numtype':'float',
|
||||
'null':False,
|
||||
'null':True,
|
||||
'verbose_name': 'Boat Speed (m/s)',
|
||||
'ax_min': 0,
|
||||
'ax_max': 8,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user