Private
Public Access
1
0

passes checks in python3

This commit is contained in:
Sander Roosendaal
2019-02-24 15:57:26 +01:00
parent c7ec31344b
commit 866566172c
51 changed files with 4037 additions and 3999 deletions

View File

@@ -1,4 +1,4 @@
from statements import *
from rowers.views.statements import *
# Send workout to TP
@@ -71,17 +71,17 @@ def workout_strava_upload_view(request,id=0):
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
else:
# ready to upload. Hurray
# ready to upload. Hurray
w = get_workout_permitted(request.user,id)
r = w.user
if (checkworkoutuser(request.user,w)):
if (checkworkoutuser(request.user,w)):
try:
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w)
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w)
if tcxfile:
with open(tcxfile,'rb') as f:
with open(tcxfile,'rb') as f:
try:
newnotes = w.notes+'\n from '+w.workoutsource+' via rowsandall.com'
except TypeError:
@@ -91,38 +91,38 @@ def workout_strava_upload_view(request,id=0):
else:
activity_type = mytypes.stravamapping[w.workouttype]
res,mes = stravastuff.handle_stravaexport(
res,mes = stravastuff.handle_stravaexport(
f,w.name,
r.stravatoken,
description=newnotes,
r.stravatoken,
description=newnotes,
activity_type=activity_type)
if res==0:
messages.error(request,mes)
w.uploadedtostrava = -1
w.save()
w.uploadedtostrava = -1
w.save()
try:
os.remove(tcxfile)
os.remove(tcxfile)
except WindowsError:
pass
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
return response
try:
w.uploadedtostrava = res
w.save()
w.uploadedtostrava = res
w.save()
try:
os.remove(tcxfile)
os.remove(tcxfile)
except WindowsError:
pass
url = reverse('workout_edit_view',kwargs={'id':w.id})
messages.info(request,mes)
except:
except:
with open("media/stravaerrors.log","a") as errorlog:
errorstring = str(sys.exc_info()[0])
timestr = strftime("%Y%m%d-%H%M%S")
@@ -135,33 +135,33 @@ def workout_strava_upload_view(request,id=0):
messages.error(request,message)
w.uploadedtostrava = -1
w.save()
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
}
)
response = HttpResponseRedirect(url)
except ActivityUploadFailed as e:
message = "Strava Upload error: %s" % e
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
}
)
response = HttpResponseRedirect(url)
except ActivityUploadFailed as e:
message = "Strava Upload error: %s" % e
messages.error(request,message)
w.uploadedtostrava = -1
w.save()
os.remove(tcxfile)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
w.uploadedtostrava = -1
w.save()
os.remove(tcxfile)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
response = HttpResponseRedirect(url)
return response
return response
# Upload workout to Concept2 logbook
@login_required()
def workout_c2_upload_view(request,id=0):
@@ -199,59 +199,59 @@ def workout_runkeeper_upload_view(request,id=0):
r = w.user
try:
thetoken = runkeeper_open(r.user)
thetoken = runkeeper_open(r.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/runkeeperauthorize/")
return HttpResponseRedirect("/rowers/me/runkeeperauthorize/")
# ready to upload. Hurray
if (checkworkoutuser(request.user,w)):
data = runkeeperstuff.createrunkeeperworkoutdata(w)
data = runkeeperstuff.createrunkeeperworkoutdata(w)
if not data:
message = "Data error"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':id,
})
kwargs = {
'id':id,
})
return HttpResponseRedirect(url)
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/vnd.com.runkeeper.NewFitnessActivity+json',
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/vnd.com.runkeeper.NewFitnessActivity+json',
'Content-Length':'nnn'}
url = "https://api.runkeeper.com/fitnessActivities"
response = requests.post(url,headers=headers,data=json.dumps(data))
url = "https://api.runkeeper.com/fitnessActivities"
response = requests.post(url,headers=headers,data=json.dumps(data))
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
messages.error(request,message)
w.uploadedtorunkeeper = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
runkeeperid = runkeeperstuff.getidfromresponse(response)
w.uploadedtorunkeeper = runkeeperid
w.save()
w.uploadedtorunkeeper = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
runkeeperid = runkeeperstuff.getidfromresponse(response)
w.uploadedtorunkeeper = runkeeperid
w.save()
url = reverse('workout_edit_view',
kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_runkeeper_upload_view: %s - %s" % (s.reason,s.text)
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_runkeeper_upload_view: %s - %s" % (s.reason,s.text)
messages.error(request,message)
else:
message = "You are not authorized to upload this workout"
message = "You are not authorized to upload this workout"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
kwargs = {
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
@@ -263,59 +263,59 @@ def workout_underarmour_upload_view(request,id=0):
r = w.user
try:
thetoken = underarmour_open(r.user)
thetoken = underarmour_open(r.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
# ready to upload. Hurray
if (checkworkoutuser(request.user,w)):
data = underarmourstuff.createunderarmourworkoutdata(w)
data = underarmourstuff.createunderarmourworkoutdata(w)
if not data:
message = "Data error"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
kwargs = {
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'Api-Key': UNDERARMOUR_CLIENT_KEY,
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/json',
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/json',
}
url = "https://api.ua.com/v7.1/workout/"
response = requests.post(url,headers=headers,data=json.dumps(data))
url = "https://api.ua.com/v7.1/workout/"
response = requests.post(url,headers=headers,data=json.dumps(data))
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
messages.error(request,message)
w.uploadedtounderarmour = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
underarmourid = underarmourstuff.getidfromresponse(response)
w.uploadedtounderarmour = underarmourid
w.save()
w.uploadedtounderarmour = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
underarmourid = underarmourstuff.getidfromresponse(response)
w.uploadedtounderarmour = underarmourid
w.save()
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_underarmour_upload_view: %s " % s.reason
messages.error(request,message)
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_underarmour_upload_view: %s " % s.reason
messages.error(request,message)
else:
message = "You are not authorized to upload this workout"
message = "You are not authorized to upload this workout"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
kwargs = {
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
@@ -328,64 +328,64 @@ def workout_sporttracks_upload_view(request,id=0):
r = w.user
try:
thetoken = sporttracks_open(r.user)
thetoken = sporttracks_open(r.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
if (checkworkoutuser(request.user,w)):
data = sporttracksstuff.createsporttracksworkoutdata(w)
data = sporttracksstuff.createsporttracksworkoutdata(w)
if not data:
message = "Data error"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
kwargs = {
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/json'}
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
'Content-Type': 'application/json'}
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
response = requests.post(url,headers=headers,data=json.dumps(data))
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
response = requests.post(url,headers=headers,data=json.dumps(data))
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
messages.error(request,message)
w.uploadedtosporttracks = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
s= response.json()
sporttracksid = sporttracksstuff.getidfromresponse(response)
w.uploadedtosporttracks = sporttracksid
w.save()
w.uploadedtosporttracks = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
s= response.json()
sporttracksid = sporttracksstuff.getidfromresponse(response)
w.uploadedtosporttracks = sporttracksid
w.save()
message = "Upload to SportTracks was successful"
messages.info(request,message)
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_sporttracks_upload_view: %s" % s.reason
messages.error(request,message)
return HttpResponseRedirect(url)
else:
s = response
message = "Something went wrong in workout_sporttracks_upload_view: %s" % s.reason
messages.error(request,message)
else:
message = "You are not authorized to upload this workout"
message = "You are not authorized to upload this workout"
messages.error(request,message)
url = reverse(r.defaultlandingpage,
kwargs = {
'id':encoder.encode_hex(w.id),
})
kwargs = {
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
# Concept2 authorization
# Concept2 authorization
@login_required()
def rower_c2_authorize(request):
# Generate a random string for the state parameter
@@ -411,7 +411,7 @@ def rower_strava_authorize(request):
params = {"client_id": STRAVA_CLIENT_ID,
"response_type": "code",
"redirect_uri": STRAVA_REDIRECT_URI,
"scope": "activity:write,activity:read_all"}
"scope": "activity:write,activity:read_all"}
url = "https://www.strava.com/oauth/authorize?"+ urllib.urlencode(params)
@@ -427,7 +427,7 @@ def rower_polar_authorize(request):
"response_type": "code",
"redirect_uri": POLAR_REDIRECT_URI,
"state": state,
# "scope":"accesslink.read_all"
# "scope":"accesslink.read_all"
}
url = "https://flow.polar.com/oauth2/authorization?" +urllib.urlencode(params)
@@ -445,7 +445,7 @@ def rower_runkeeper_authorize(request):
params = {"client_id": RUNKEEPER_CLIENT_ID,
"response_type": "code",
"state": state,
"state": state,
"redirect_uri": RUNKEEPER_REDIRECT_URI}
url = "https://runkeeper.com/apps/authorize?"+ urllib.urlencode(params)
@@ -463,7 +463,7 @@ def rower_sporttracks_authorize(request):
params = {"client_id": SPORTTRACKS_CLIENT_ID,
"response_type": "code",
"state": state,
"state": state,
"redirect_uri": SPORTTRACKS_REDIRECT_URI}
url = "https://api.sporttracks.mobi/oauth2/authorize?"+ urllib.urlencode(params)
@@ -499,7 +499,7 @@ def rower_tp_authorize(request):
"response_type": "code",
"redirect_uri": TP_REDIRECT_URI,
"scope": "file:write",
}
}
url = "https://oauth.trainingpeaks.com/oauth/authorize/?" +urllib.urlencode(params)
return HttpResponseRedirect(url)
@@ -624,16 +624,16 @@ def rower_sporttracks_token_refresh(request):
@login_required()
def rower_process_callback(request):
try:
code = request.GET['code']
res = c2stuff.get_token(code)
code = request.GET['code']
res = c2stuff.get_token(code)
except MultiValueDictKeyError:
message = "The resource owner or authorization server denied the request"
message = "The resource owner or authorization server denied the request"
messages.error(request,message)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
access_token = res[0]
if access_token == 0:
message = res[1]
@@ -643,7 +643,7 @@ def rower_process_callback(request):
url = reverse('workouts_view')
return HttpResponseRedirect(url)
expires_in = res[1]
refresh_token = res[2]
@@ -893,24 +893,24 @@ def workout_stravaimport_view(request,message="",userid=0):
messages.info(request,"You cannot import other people's workouts from Strava")
try:
thetoken = strava_open(request.user)
thetoken = strava_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
res = stravastuff.get_strava_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = getrower(request.user)
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
message = "Something went wrong in workout_stravaimport_view"
if (res.status_code == 401):
r = getrower(request.user)
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
message = "Something went wrong in workout_stravaimport_view"
messages.error(request,message)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
else:
workouts = []
r = getrower(request.user)
@@ -944,7 +944,7 @@ def workout_stravaimport_view(request,message="",userid=0):
])
newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
for item in res.json():
for item in res.json():
d = int(float(item['distance']))
i = item['id']
if i in knownstravaids:
@@ -956,9 +956,9 @@ def workout_stravaimport_view(request,message="",userid=0):
s = item['start_date']
r = item['type']
keys = ['id','distance','duration','starttime','type','name','new']
values = [i,d,ttot,s,r,n,nnn]
res = dict(zip(keys,values))
workouts.append(res)
values = [i,d,ttot,s,r,n,nnn]
res = dict(zip(keys,values))
workouts.append(res)
breadcrumbs = [
{
@@ -974,13 +974,13 @@ def workout_stravaimport_view(request,message="",userid=0):
r = getrower(request.user)
return render(request,'strava_list_import.html',
{'workouts':workouts,
return render(request,'strava_list_import.html',
{'workouts':workouts,
'rower':r,
'active':'nav-workouts',
'breadcrumbs':breadcrumbs,
'teams':get_my_teams(request.user),
})
})
return HttpResponse(res)
@@ -989,32 +989,32 @@ def workout_stravaimport_view(request,message="",userid=0):
def workout_runkeeperimport_view(request,message="",userid=0):
res = runkeeperstuff.get_runkeeper_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = getrower(request.user)
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/runkeeperauthorize/")
message = "Something went wrong in workout_runkeeperimport_view"
if (res.status_code == 401):
r = getrower(request.user)
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/runkeeperauthorize/")
message = "Something went wrong in workout_runkeeperimport_view"
messages.error(request,message)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
workouts = []
for item in res.json()['items']:
d = int(float(item['total_distance']))
i = getidfromuri(item['uri'])
d = int(float(item['total_distance']))
i = getidfromuri(item['uri'])
ttot = str(datetime.timedelta(seconds=int(float(item['duration']))))
s = item['start_time']
r = item['type']
keys = ['id','distance','duration','starttime','type']
values = [i,d,ttot,s,r]
keys = ['id','distance','duration','starttime','type']
values = [i,d,ttot,s,r]
res = dict(zip(keys,values))
workouts.append(res)
res = dict(zip(keys,values))
workouts.append(res)
breadcrumbs = [
{
@@ -1030,12 +1030,12 @@ def workout_runkeeperimport_view(request,message="",userid=0):
r = getrower(request.user)
return render(request,'runkeeper_list_import.html',
{'workouts':workouts,
{'workouts':workouts,
'rower':r,
'active':'nav-workouts',
'breadcrumbs':breadcrumbs,
'teams':get_my_teams(request.user),
})
})
return HttpResponse(res)
@@ -1044,14 +1044,14 @@ def workout_runkeeperimport_view(request,message="",userid=0):
def workout_underarmourimport_view(request,message="",userid=0):
res = underarmourstuff.get_underarmour_workout_list(request.user)
if (res.status_code != 200):
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
workouts = []
items = res.json()['_embedded']['workouts']
for item in items:
s = item['start_datetime']
s = item['start_datetime']
i,r = underarmourstuff.get_idfromuri(request.user,item['_links'])
n = item['name']
n = item['name']
try:
d = item['aggregates']['distance_total']
except KeyError:
@@ -1061,11 +1061,11 @@ def workout_underarmourimport_view(request,message="",userid=0):
except KeyError:
ttot = 0
keys = ['id','distance','duration','starttime','type']
values = [i,d,ttot,s,r]
thedict = dict(zip(keys,values))
keys = ['id','distance','duration','starttime','type']
values = [i,d,ttot,s,r]
thedict = dict(zip(keys,values))
workouts.append(thedict)
workouts.append(thedict)
rower = getrower(request.user)
breadcrumbs = [
@@ -1080,12 +1080,12 @@ def workout_underarmourimport_view(request,message="",userid=0):
]
return render(request,'underarmour_list_import.html',
{'workouts':workouts,
{'workouts':workouts,
'breadcrumbs':breadcrumbs,
'rower':rower,
'active':'nav-workouts',
'teams':get_my_teams(request.user),
})
})
return HttpResponse(res)
@@ -1153,20 +1153,20 @@ def workout_sporttracksimport_view(request,message="",userid=0):
res = sporttracksstuff.get_sporttracks_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = getrower(request.user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
if (res.status_code == 401):
r = getrower(request.user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
else:
return HttpResponseRedirect("/rowers/me/sporttracksrefresh/")
message = "Something went wrong in workout_sporttracksimport_view"
message = "Something went wrong in workout_sporttracksimport_view"
messages.error(request,message)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
workouts = []
r = getrower(request.user)
@@ -1177,19 +1177,19 @@ def workout_sporttracksimport_view(request,message="",userid=0):
newids = [stid for stid in stids if not stid in knownstids]
for item in res.json()['items']:
d = int(float(item['total_distance']))
i = int(getidfromuri(item['uri']))
i = int(getidfromuri(item['uri']))
if i in knownstids:
nnn = ''
else:
nnn = 'NEW'
n = item['name']
ttot = str(datetime.timedelta(seconds=int(float(item['duration']))))
s = item['start_time']
r = item['type']
keys = ['id','distance','duration','starttime','type','name','new']
values = [i,d,ttot,s,r,n,nnn]
res = dict(zip(keys,values))
workouts.append(res)
n = item['name']
ttot = str(datetime.timedelta(seconds=int(float(item['duration']))))
s = item['start_time']
r = item['type']
keys = ['id','distance','duration','starttime','type','name','new']
values = [i,d,ttot,s,r,n,nnn]
res = dict(zip(keys,values))
workouts.append(res)
r = getrower(request.user)
@@ -1205,55 +1205,55 @@ def workout_sporttracksimport_view(request,message="",userid=0):
]
return render(request,'sporttracks_list_import.html',
{'workouts':workouts,
{'workouts':workouts,
'breadcrumbs':breadcrumbs,
'active':'nav-workouts',
'rower':r,
'teams':get_my_teams(request.user),
})
})
return HttpResponse(res)
# List of workouts on Concept2 logbook. This view only used for debugging
@login_required()
def c2listdebug_view(request,page=1,message=""):
try:
thetoken = c2_open(request.user)
thetoken = c2_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/")
return HttpResponseRedirect("/rowers/me/c2authorize/")
r = getrower(request.user)
res = c2stuff.get_c2_workout_list(request.user,page=page)
if (res.status_code != 200):
message = "Something went wrong in workout_c2import_view (C2 token renewal)"
message = "Something went wrong in workout_c2import_view (C2 token renewal)"
messages.error(request,message)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
if settings.DEBUG:
return HttpResponse(res)
else:
url = reverse('workouts_view')
return HttpResponseRedirect(url)
else:
workouts = []
workouts = []
for item in res.json()['data']:
d = item['distance']
i = item['id']
ttot = item['time_formatted']
s = item['date']
r = item['type']
s2 = item['source']
c = item['comments']
keys = ['id','distance','duration','starttime','rowtype','source','comment']
values = [i,d,ttot,s,r,s2,c]
res = dict(zip(keys,values))
workouts.append(res)
for item in res.json()['data']:
d = item['distance']
i = item['id']
ttot = item['time_formatted']
s = item['date']
r = item['type']
s2 = item['source']
c = item['comments']
keys = ['id','distance','duration','starttime','rowtype','source','comment']
values = [i,d,ttot,s,r,s2,c]
res = dict(zip(keys,values))
workouts.append(res)
return render(request,
'c2_list_import2.html',
{'workouts':workouts,
return render(request,
'c2_list_import2.html',
{'workouts':workouts,
'teams':get_my_teams(request.user),
})
@@ -1261,14 +1261,14 @@ def c2listdebug_view(request,page=1,message=""):
@login_required()
def workout_getc2workout_all(request,page=1,message=""):
try:
thetoken = c2_open(request.user)
thetoken = c2_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/")
return HttpResponseRedirect("/rowers/me/c2authorize/")
res = c2stuff.get_c2_workout_list(request.user,page=page)
if (res.status_code != 200):
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
messages.error(request,message)
else:
r = getrower(request.user)
@@ -1302,17 +1302,17 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
r = getrower(request.user)
try:
thetoken = c2_open(request.user)
thetoken = c2_open(request.user)
except NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/")
return HttpResponseRedirect("/rowers/me/c2authorize/")
res = c2stuff.get_c2_workout_list(request.user,page=page)
if (res.status_code != 200):
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
messages.error(request,message)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
workouts = []
c2ids = [item['id'] for item in res.json()['data']]
@@ -1321,21 +1321,21 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
])
newids = [c2id for c2id in c2ids if not c2id in knownc2ids]
for item in res.json()['data']:
d = item['distance']
i = item['id']
ttot = item['time_formatted']
s = item['date']
r = item['type']
s2 = item['source']
c = item['comments']
d = item['distance']
i = item['id']
ttot = item['time_formatted']
s = item['date']
r = item['type']
s2 = item['source']
c = item['comments']
if i in knownc2ids:
nnn = ''
else:
nnn = 'NEW'
keys = ['id','distance','duration','starttime','rowtype','source','comment','new']
values = [i,d,ttot,s,r,s2,c,nnn]
res = dict(zip(keys,values))
workouts.append(res)
keys = ['id','distance','duration','starttime','rowtype','source','comment','new']
values = [i,d,ttot,s,r,s2,c,nnn]
res = dict(zip(keys,values))
workouts.append(res)
breadcrumbs = [
@@ -1356,8 +1356,8 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
r = getrower(request.user)
return render(request,
'c2_list_import2.html',
{'workouts':workouts,
'c2_list_import2.html',
{'workouts':workouts,
'rower':r,
'active':'nav-workouts',
'breadcrumbs':breadcrumbs,
@@ -1449,7 +1449,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
'id':encoder.encode_hex(w.id),
})
return HttpResponseRedirect(url)
return HttpResponseRedirect(url)
# strokedata not empty - continue
id,message = importsources[source].add_workout_from_data(