Private
Public Access
1
0

import list rp3 working

This commit is contained in:
Sander Roosendaal
2021-01-27 08:39:33 +01:00
parent 3ef8d4ba57
commit 2d7d07a914
5 changed files with 139 additions and 123 deletions

View File

@@ -964,6 +964,78 @@ def rower_process_testcallback(request):
return HttpResponse(text)
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
def workout_rp3import_view(request,userid=0):
r = getrequestrower(request,userid=userid)
try:
thetoken = rp3stuff.rp3_open(request.user)
except NoTokenError:
url = reverse('rower_rp3_authorize')
return HttpResponseRedirect(url)
res = rp3stuff.get_rp3_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"
messages.error(request,message)
url = reverse('workouts_view')
return HttpResponseRedirect(url)
workouts_list = pd.json_normalize(res.json()['data']['workouts'])
rp3ids = workouts_list['id'].values
knownrp3ids = uniqify([
w.uploadedtorp3 for w in Workout.objects.filter(user=r)
])
newids = [rp3id for rp3id in rp3ids if not rp3id in knownrp3ids]
workouts = []
for key,data in workouts_list.iterrows():
i = data['id']
if i in knownrp3ids:
nnn = ''
else:
nnn = 'NEW'
s = data['executed_at']
keys = ['id','starttime','new']
values = [i,s,nnn]
res = dict(zip(keys,values))
workouts.append(res)
breadcrumbs = [
{
'url':'/rowers/list-workouts/',
'name':'Workouts'
},
{
'url':reverse('workout_stravaimport_view'),
'name':'Strava'
},
]
return render(request,'rp3_list_import.html',
{
'workouts':workouts,
'rower':r,
'active':'nav-workouts',
'breadcrumbs':breadcrumbs,
'teams':get_my_teams(request.user)
})
# The page where you select which Strava workout to import