code reduces using request.is_ajax()
This commit is contained in:
366
rowers/views.py
366
rowers/views.py
@@ -1671,6 +1671,7 @@ def workout_csvtoadmin_view(request,id=0):
|
||||
# Send workout to TP
|
||||
@login_required()
|
||||
def workout_tp_upload_view(request,id=0):
|
||||
|
||||
message = ""
|
||||
r = getrower(request.user)
|
||||
res = -1
|
||||
@@ -8401,287 +8402,6 @@ def workout_getc2workout_view(request,c2id):
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# This is the main view for processing uploaded files
|
||||
#@csrf_exempt
|
||||
@login_required()
|
||||
def workout_upload_ajax(request,
|
||||
uploadoptions={
|
||||
'makeprivate':False,
|
||||
'make_plot':False,
|
||||
'upload_to_C2':False,
|
||||
'plottype':'timeplot',
|
||||
'landingpage':'workout_edit_view',
|
||||
},
|
||||
docformoptions={
|
||||
'workouttype':'rower',
|
||||
}):
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if 'uploadoptions' in request.session:
|
||||
uploadoptions = request.session['uploadoptions']
|
||||
try:
|
||||
defaultlandingpage = uploadoptions['landingpage']
|
||||
except KeyError:
|
||||
uploadoptions['landingpage'] = r.defaultlandingpage
|
||||
defaultlandingpage = r.defaultlandingpage
|
||||
else:
|
||||
request.session['uploadoptions'] = uploadoptions
|
||||
|
||||
if 'docformoptions' in request.session:
|
||||
docformoptions = request.session['docformoptions']
|
||||
else:
|
||||
request.session['docformoptions'] = docformoptions
|
||||
|
||||
try:
|
||||
makeprivate = uploadoptions['makeprivate']
|
||||
except KeyError:
|
||||
makeprivate = False
|
||||
try:
|
||||
make_plot = uploadoptions['make_plot']
|
||||
except KeyError:
|
||||
make_plot = False
|
||||
|
||||
try:
|
||||
workouttype = docformoptions['workouttype']
|
||||
except KeyError:
|
||||
workouttype = 'rower'
|
||||
|
||||
try:
|
||||
plottype = uploadoptions['plottype']
|
||||
except KeyError:
|
||||
plottype = 'timeplot'
|
||||
|
||||
try:
|
||||
landingpage = uploadoptions['landingpage']
|
||||
except KeyError:
|
||||
landingpage = r.defaultlandingpage
|
||||
uploadoptions['landingpage'] = landingpage
|
||||
|
||||
try:
|
||||
upload_to_c2 = uploadoptions['upload_to_C2']
|
||||
except KeyError:
|
||||
upload_to_c2 = False
|
||||
|
||||
try:
|
||||
upload_to_strava = uploadoptions['upload_to_Strava']
|
||||
except KeyError:
|
||||
upload_to_strava = False
|
||||
|
||||
try:
|
||||
upload_to_st = uploadoptions['upload_to_SportTracks']
|
||||
except KeyError:
|
||||
upload_to_st = False
|
||||
|
||||
try:
|
||||
upload_to_rk = uploadoptions['upload_to_RunKeeper']
|
||||
except KeyError:
|
||||
upload_to_rk = False
|
||||
|
||||
try:
|
||||
upload_to_ua = uploadoptions['upload_to_MapMyFitness']
|
||||
except KeyError:
|
||||
upload_to_ua = False
|
||||
|
||||
try:
|
||||
upload_to_tp = uploadoptions['upload_to_TrainingPeaks']
|
||||
except KeyError:
|
||||
upload_to_tp = False
|
||||
|
||||
if request.method == 'POST':
|
||||
form = DocumentsForm(request.POST,request.FILES)
|
||||
optionsform = UploadOptionsForm(request.POST)
|
||||
|
||||
if form.is_valid():
|
||||
try:
|
||||
f = request.FILES['file']
|
||||
except:
|
||||
f = request.FILES['file2']
|
||||
res = handle_uploaded_file(f)
|
||||
t = form.cleaned_data['title']
|
||||
workouttype = form.cleaned_data['workouttype']
|
||||
request.session['docformoptions'] = {
|
||||
'workouttype':workouttype,
|
||||
}
|
||||
|
||||
notes = form.cleaned_data['notes']
|
||||
offline = form.cleaned_data['offline']
|
||||
|
||||
if optionsform.is_valid():
|
||||
make_plot = optionsform.cleaned_data['make_plot']
|
||||
plottype = optionsform.cleaned_data['plottype']
|
||||
upload_to_c2 = optionsform.cleaned_data['upload_to_C2']
|
||||
upload_to_strava = optionsform.cleaned_data['upload_to_Strava']
|
||||
upload_to_st = optionsform.cleaned_data['upload_to_SportTracks']
|
||||
upload_to_rk = optionsform.cleaned_data['upload_to_RunKeeper']
|
||||
upload_to_ua = optionsform.cleaned_data['upload_to_MapMyFitness']
|
||||
upload_to_tp = optionsform.cleaned_data['upload_to_TrainingPeaks']
|
||||
makeprivate = optionsform.cleaned_data['makeprivate']
|
||||
landingpage = optionsform.cleaned_data['landingpage']
|
||||
uploadoptions = {
|
||||
'makeprivate':makeprivate,
|
||||
'make_plot':make_plot,
|
||||
'plottype':plottype,
|
||||
'upload_to_C2':upload_to_c2,
|
||||
'upload_to_Strava':upload_to_strava,
|
||||
'upload_to_SportTracks':upload_to_st,
|
||||
'upload_to_RunKeeper':upload_to_rk,
|
||||
'upload_to_MapMyFitness':upload_to_ua,
|
||||
'upload_to_TrainingPeaks':upload_to_tp,
|
||||
'landingpage':landingpage,
|
||||
}
|
||||
|
||||
|
||||
request.session['uploadoptions'] = uploadoptions
|
||||
|
||||
f1 = res[0] # file name
|
||||
f2 = res[1] # file name incl media directory
|
||||
|
||||
if not offline:
|
||||
id,message,f2 = dataprep.new_workout_from_file(
|
||||
r,f2,
|
||||
workouttype=workouttype,
|
||||
makeprivate=makeprivate,
|
||||
title = t,
|
||||
notes=''
|
||||
)
|
||||
else:
|
||||
job = myqueue(
|
||||
queuehigh,
|
||||
handle_zip_file,
|
||||
r.user.email,
|
||||
t,
|
||||
f2)
|
||||
|
||||
messages.info(
|
||||
request,
|
||||
"The file was too large to process in real time. It will be processed in a background process. You will receive an email when it is ready")
|
||||
url = reverse(workout_upload_view)
|
||||
return JSONResponse({'result':1,'url':url})
|
||||
|
||||
if not id:
|
||||
messages.error(request,message)
|
||||
return JSONResponse({'result':0})
|
||||
elif id == -1:
|
||||
message = 'The zip archive will be processed in the background. The files in the archive will only be uploaded without the extra actions. You will receive email when the workouts are ready.'
|
||||
messages.info(request,message)
|
||||
return JSONResponse({'result':1})
|
||||
else:
|
||||
if message:
|
||||
messages.error(request,message)
|
||||
|
||||
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':int(id),
|
||||
})
|
||||
response = {'result': 1,'url':url}
|
||||
w = Workout.objects.get(id=id)
|
||||
|
||||
r = getrower(request.user)
|
||||
if (make_plot):
|
||||
id = uploads.make_plot(r,w,f1,f2,plottype,t)
|
||||
|
||||
# upload to C2
|
||||
if (upload_to_c2):
|
||||
try:
|
||||
message,id = c2stuff.workout_c2_upload(request.user,w)
|
||||
except C2NoTokenError:
|
||||
id = 0
|
||||
message = "Something went wrong with the Concept2 sync"
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
if (upload_to_strava):
|
||||
try:
|
||||
message,id = stravastuff.workout_strava_upload(
|
||||
request.user,w
|
||||
)
|
||||
except StravaNoTokenError:
|
||||
id = 0
|
||||
message = "Please connect to Strava first"
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
if (upload_to_st):
|
||||
try:
|
||||
message,id = sporttracksstuff.workout_sporttracks_upload(
|
||||
request.user,w
|
||||
)
|
||||
except SportTracksNoTokenError:
|
||||
message = "Please connect to SportTracks first"
|
||||
id = 0
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
if (upload_to_rk):
|
||||
try:
|
||||
message,id = runkeeperstuff.workout_runkeeper_upload(
|
||||
request.user,w
|
||||
)
|
||||
except RunKeeperNoTokenError:
|
||||
message = "Please connect to Runkeeper first"
|
||||
id = 0
|
||||
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
|
||||
if (upload_to_ua):
|
||||
try:
|
||||
message,id = underarmourstuff.workout_ua_upload(
|
||||
request.user,w
|
||||
)
|
||||
except UnderArmourNoTokenError:
|
||||
message = "Please connect to MapMyFitness first"
|
||||
id = 0
|
||||
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
|
||||
if (upload_to_tp):
|
||||
try:
|
||||
message,id = tpstuff.workout_tp_upload(
|
||||
request.user,w
|
||||
)
|
||||
except TPNoTokenError:
|
||||
message = "Please connect to TrainingPeaks first"
|
||||
id = 0
|
||||
|
||||
if id>1:
|
||||
messages.info(request,message)
|
||||
else:
|
||||
messages.error(request,message)
|
||||
|
||||
if landingpage != 'workout_upload_view':
|
||||
url = reverse(landingpage,
|
||||
kwargs = {
|
||||
'id':w.id,
|
||||
})
|
||||
response = {'result':1, 'url':url}
|
||||
else:
|
||||
url = reverse(landingpage)
|
||||
response = {'result':1, 'url':url}
|
||||
|
||||
return JSONResponse(response)
|
||||
else:
|
||||
response = {'result':0}
|
||||
|
||||
return JSONResponse(response)
|
||||
else:
|
||||
response = {'result':0}
|
||||
return JSONResponse(response)
|
||||
|
||||
@login_required()
|
||||
def workout_upload_view(request,
|
||||
uploadoptions={
|
||||
@@ -8695,6 +8415,10 @@ def workout_upload_view(request,
|
||||
'workouttype':'rower',
|
||||
}):
|
||||
|
||||
is_ajax = False
|
||||
if request.is_ajax():
|
||||
is_ajax = True
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if 'uploadoptions' in request.session:
|
||||
@@ -8772,10 +8496,8 @@ def workout_upload_view(request,
|
||||
optionsform = UploadOptionsForm(request.POST)
|
||||
|
||||
if form.is_valid():
|
||||
try:
|
||||
f = request.FILES['file']
|
||||
except:
|
||||
f = request.FILES['file2']
|
||||
f = request.FILES['file']
|
||||
|
||||
res = handle_uploaded_file(f)
|
||||
t = form.cleaned_data['title']
|
||||
workouttype = form.cleaned_data['workouttype']
|
||||
@@ -8837,20 +8559,29 @@ def workout_upload_view(request,
|
||||
request,
|
||||
"The file was too large to process in real time. It will be processed in a background process. You will receive an email when it is ready")
|
||||
url = reverse(workout_upload_view)
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':1,'url':url})
|
||||
else:
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
|
||||
if not id:
|
||||
messages.error(request,message)
|
||||
url = reverse(workout_upload_view)
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':0,'url':url})
|
||||
else:
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
elif id == -1:
|
||||
message = 'The zip archive will be processed in the background. The files in the archive will only be uploaded without the extra actions. You will receive email when the workouts are ready.'
|
||||
messages.info(request,message)
|
||||
url = reverse(workout_upload_view)
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':1,'url':url})
|
||||
else:
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
else:
|
||||
if message:
|
||||
messages.error(request,message)
|
||||
@@ -8859,8 +8590,12 @@ def workout_upload_view(request,
|
||||
kwargs = {
|
||||
'id':int(id),
|
||||
})
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
if is_ajax:
|
||||
response = {'result': 1,'url':url}
|
||||
else:
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
w = Workout.objects.get(id=id)
|
||||
|
||||
r = getrower(request.user)
|
||||
@@ -8956,25 +8691,36 @@ def workout_upload_view(request,
|
||||
})
|
||||
else:
|
||||
url = reverse(landingpage)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
response = render(request,
|
||||
'document_form.html',
|
||||
{'form':form,
|
||||
'teams':get_my_teams(request.user),
|
||||
'optionsform': optionsform,
|
||||
})
|
||||
|
||||
return response
|
||||
if is_ajax:
|
||||
response = {'result':1,'url':url}
|
||||
else:
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
if not is_ajax:
|
||||
response = render(request,
|
||||
'document_form.html',
|
||||
{'form':form,
|
||||
'teams':get_my_teams(request.user),
|
||||
'optionsform': optionsform,
|
||||
})
|
||||
|
||||
|
||||
if is_ajax:
|
||||
return JSONResponse(response)
|
||||
else:
|
||||
return response
|
||||
else:
|
||||
form = DocumentsForm(initial=docformoptions)
|
||||
optionsform = UploadOptionsForm(initial=uploadoptions)
|
||||
return render(request, 'document_form.html',
|
||||
{'form':form,
|
||||
'teams':get_my_teams(request.user),
|
||||
'optionsform': optionsform,
|
||||
})
|
||||
if not is_ajax:
|
||||
form = DocumentsForm(initial=docformoptions)
|
||||
optionsform = UploadOptionsForm(initial=uploadoptions)
|
||||
return render(request, 'document_form.html',
|
||||
{'form':form,
|
||||
'teams':get_my_teams(request.user),
|
||||
'optionsform': optionsform,
|
||||
})
|
||||
else:
|
||||
return {'result':0}
|
||||
|
||||
|
||||
# This is the main view for processing uploaded files
|
||||
|
||||
Reference in New Issue
Block a user