c2 import list
This commit is contained in:
@@ -1499,7 +1499,7 @@ def workout_getc2workout_all(request,page=1,message=""): # pragma: no cover
|
||||
|
||||
r = getrequestrower(request)
|
||||
|
||||
result = c2stuff.get_c2_workouts(r,do_async=True)
|
||||
result = c2stuff.get_c2_workouts(r,page=page,do_async=True)
|
||||
|
||||
if result:
|
||||
messages.info(request,'Your C2 workouts will be imported in the coming few minutes')
|
||||
@@ -1534,8 +1534,8 @@ def workout_getrp3workout_all(request): # pragma: no cover
|
||||
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
|
||||
def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
|
||||
r = getrequestrower(request,userid=userid)
|
||||
if r.user != request.user:
|
||||
rower = getrequestrower(request,userid=userid)
|
||||
if rower.user != request.user:
|
||||
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
|
||||
url = reverse('workout_c2import_view',kwargs={'userid':request.user.id})
|
||||
return HttpResponseRedirect(url)
|
||||
@@ -1556,17 +1556,17 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
workouts = []
|
||||
c2ids = [item['id'] for item in res.json()['data']]
|
||||
knownc2ids = uniqify([
|
||||
w.uploadedtoc2 for w in Workout.objects.filter(user=r)
|
||||
w.uploadedtoc2 for w in Workout.objects.filter(user=rower)
|
||||
])
|
||||
tombstones = [
|
||||
t.uploadedtoc2 for t in TombStone.objects.filter(user=r)
|
||||
t.uploadedtoc2 for t in TombStone.objects.filter(user=rower)
|
||||
]
|
||||
parkedids = []
|
||||
try:
|
||||
with open('c2blocked.json','r') as c2blocked:
|
||||
jsondata = json.load(c2blocked)
|
||||
parkedids = jsondata['ids']
|
||||
except FileNotFoundError: # pragma: no cover
|
||||
except (FileNotFoundError,JSONDecodeError): # pragma: no cover
|
||||
pass
|
||||
|
||||
knownc2ids = uniqify(knownc2ids+tombstones+parkedids)
|
||||
@@ -1586,8 +1586,38 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
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)
|
||||
ress = dict(zip(keys,values))
|
||||
workouts.append(ress)
|
||||
|
||||
if request.method == "POST":
|
||||
try: # pragma: no cover
|
||||
tdict = dict(request.POST.lists())
|
||||
ids = tdict['workoutid']
|
||||
c2ids = [int(id) for id in ids]
|
||||
alldata = {}
|
||||
|
||||
for item in res.json()['data']:
|
||||
alldata[item['id']] = item
|
||||
counter = 0
|
||||
for c2id in c2ids:
|
||||
csvfilename = 'media/{code}_{c2id}.csv'.format(code=uuid4().hex[:16],c2id=c2id)
|
||||
result = myqueue(
|
||||
queue,
|
||||
handle_c2_async_workout,
|
||||
alldata,
|
||||
rower.user.id,
|
||||
rower.c2token,
|
||||
c2id,
|
||||
counter,
|
||||
rower.defaulttimezone
|
||||
)
|
||||
counter = counter+1
|
||||
# done, redirect to workouts list
|
||||
messages.info(request,'Your Concept2 workouts will be imported in the background. It may take a few minutes before it appears.'.format(c2id=c2id))
|
||||
url = reverse('workouts_view')
|
||||
return HttpResponseRedirect(url)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
||||
breadcrumbs = [
|
||||
@@ -1605,16 +1635,19 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
}
|
||||
]
|
||||
|
||||
r = getrower(request.user)
|
||||
rower = getrower(request.user)
|
||||
|
||||
checknew = request.GET.get('selectallnew',False)
|
||||
|
||||
return render(request,
|
||||
'c2_list_import2.html',
|
||||
{'workouts':workouts,
|
||||
'rower':r,
|
||||
'rower':rower,
|
||||
'active':'nav-workouts',
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'teams':get_my_teams(request.user),
|
||||
'page':page,
|
||||
'checknew':checknew,
|
||||
})
|
||||
|
||||
importlistviews = {
|
||||
|
||||
Reference in New Issue
Block a user