a wrapper around the task queue
This commit is contained in:
@@ -30,7 +30,7 @@ from rowers.dataprepnodjango import (
|
||||
)
|
||||
|
||||
from django.core.mail import send_mail, EmailMessage
|
||||
|
||||
from django.db.utils import OperationalError
|
||||
|
||||
import datautils
|
||||
import utils
|
||||
@@ -376,9 +376,13 @@ def handle_otwsetpower(f1, boattype, weightvalue,
|
||||
res, btvalues, res2 = utils.isbreakthrough(
|
||||
delta, cpvalues, ps[0], ps[1], ps[2], ps[3], ratio)
|
||||
if res:
|
||||
handle_sendemail_breakthrough(workoutid, email,
|
||||
first_name,
|
||||
last_name, btvalues=btvalues.to_json())
|
||||
try:
|
||||
handle_sendemail_breakthrough(
|
||||
workoutid, email,
|
||||
first_name,
|
||||
last_name, btvalues=btvalues.to_json())
|
||||
except OperationalError:
|
||||
pass
|
||||
|
||||
# send email
|
||||
fullemail = first_name + " " + last_name + " " + "<" + email + ">"
|
||||
@@ -394,9 +398,12 @@ def handle_otwsetpower(f1, boattype, weightvalue,
|
||||
message += "Please report any bugs/inconsistencies/unexpected results at rowsandall.slack.com or by reply to this email.\n\n"
|
||||
message += "Best Regards, The Rowsandall Physics Department."
|
||||
|
||||
send_mail(subject, message,
|
||||
'Rowsandall Physics Department <info@rowsandall.com>',
|
||||
[fullemail])
|
||||
try:
|
||||
send_mail(subject, message,
|
||||
'Rowsandall Physics Department <info@rowsandall.com>',
|
||||
[fullemail])
|
||||
except OperationalError:
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@ import math
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import colorsys
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
lbstoN = 4.44822
|
||||
|
||||
@@ -100,7 +102,7 @@ def range_to_color_hex(groupcols,palette='monochrome_blue'):
|
||||
|
||||
try:
|
||||
plt = palettes[palette]
|
||||
except KeyErro:
|
||||
except KeyError:
|
||||
plt = palettes['monochrome_blue']
|
||||
|
||||
rgb = [colorsys.hsv_to_rgb((plt[0]+plt[1]*x)/360.,
|
||||
@@ -214,3 +216,12 @@ def isbreakthrough(delta,cpvalues,p0,p1,p2,p3,ratio):
|
||||
|
||||
|
||||
return res>1,btdf,res2>1
|
||||
|
||||
|
||||
def myqueue(queue,function,*args,**kwargs):
|
||||
if settings.DEBUG:
|
||||
job = function.delay(*args,**kwargs)
|
||||
else:
|
||||
job = queue.enqueue(function,*args,**kwargs)
|
||||
|
||||
return job
|
||||
|
||||
184
rowers/views.py
184
rowers/views.py
@@ -188,7 +188,7 @@ def remove_asynctask(request,id):
|
||||
request.session['async_tasks'] = newtasks
|
||||
|
||||
def get_job_result(jobid):
|
||||
if settings.DEBUG:
|
||||
if settings.EBUG:
|
||||
result = celery_result.AsyncResult(jobid).result
|
||||
else:
|
||||
running_job_ids = rq_registry.get_job_ids()
|
||||
@@ -476,7 +476,7 @@ def splitstdata(lijst):
|
||||
|
||||
from utils import (
|
||||
geo_distance,serialize_list,deserialize_list,uniqify,
|
||||
str2bool,range_to_color_hex,absolute
|
||||
str2bool,range_to_color_hex,absolute,myqueue
|
||||
)
|
||||
|
||||
import datautils
|
||||
@@ -1298,25 +1298,21 @@ def workout_tcxemail_view(request,id=0):
|
||||
except Workout.DoesNotExist:
|
||||
raise Http404("Workout doesn't exist")
|
||||
if (checkworkoutuser(request.user,w)):
|
||||
try:
|
||||
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w,dozip=False)
|
||||
if tcxfile == 0:
|
||||
message = "Something went wrong (TCX export) "+tcxmessg
|
||||
messages.error(request,message)
|
||||
url = reverse(workout_export_view,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
if settings.DEBUG and tcxfile:
|
||||
res = handle_sendemailtcx.delay(r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,tcxfile)
|
||||
|
||||
elif tcxfile:
|
||||
res = queuehigh.enqueue(handle_sendemailtcx,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,tcxfile)
|
||||
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w,dozip=False)
|
||||
if tcxfile == 0:
|
||||
message = "Something went wrong (TCX export) "+tcxmessg
|
||||
messages.error(request,message)
|
||||
url = reverse(workout_export_view,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
if tcxfile:
|
||||
res = myqueue(queuehigh,handle_sendemailtcx,
|
||||
r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
tcxfile)
|
||||
|
||||
successmessage = "The TCX file was sent to you per email"
|
||||
messages.info(request,successmessage)
|
||||
@@ -1324,19 +1320,6 @@ def workout_tcxemail_view(request,id=0):
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
})
|
||||
except:
|
||||
successmessage = ""
|
||||
message = "Something went wrong (TCX export) "+str(sys.exc_info()[0])
|
||||
with open("media/c2errors.log","a") as errorlog:
|
||||
errorstring = str(sys.exc_info()[0])
|
||||
timestr = strftime("%Y%m%d-%H%M%S")
|
||||
errorlog.write(timestr+errorstring+"\r\n")
|
||||
|
||||
messages.error(request,message)
|
||||
url = reverse(workout_export_view,
|
||||
kwargs = {
|
||||
'id':str(w.id),
|
||||
})
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
@@ -1366,15 +1349,11 @@ def workout_gpxemail_view(request,id=0):
|
||||
row = rdata(filename)
|
||||
gpxfilename = filename[:-4]+'.gpx'
|
||||
row.exporttogpx(gpxfilename)
|
||||
if settings.DEBUG:
|
||||
res = handle_sendemailtcx.delay(r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,gpxfilename)
|
||||
|
||||
else:
|
||||
res = queuehigh.enqueue(handle_sendemailtcx,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,gpxfilename)
|
||||
res = myqueue(queuehigh,handle_sendemailtcx,
|
||||
r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,gpxfilename)
|
||||
|
||||
|
||||
successmessage = "The GPX file was sent to you per email"
|
||||
messages.info(request,successmessage)
|
||||
@@ -1407,15 +1386,9 @@ def workout_csvemail_view(request,id=0):
|
||||
raise Http404("Workout doesn't exist")
|
||||
if (checkworkoutuser(request.user,w)):
|
||||
csvfile = w.csvfilename
|
||||
if settings.DEBUG:
|
||||
res = handle_sendemailcsv.delay(r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,csvfile)
|
||||
|
||||
else:
|
||||
res = queuehigh.enqueue(handle_sendemailcsv,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,csvfile)
|
||||
res = myqueue(queuehigh,handle_sendemailcsv,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,csvfile)
|
||||
|
||||
successmessage = "The CSV file was sent to you per email"
|
||||
messages.info(request,successmessage)
|
||||
@@ -1447,19 +1420,12 @@ def workout_csvtoadmin_view(request,id=0):
|
||||
raise Http404("Workout doesn't exist")
|
||||
|
||||
csvfile = w.csvfilename
|
||||
if settings.DEBUG:
|
||||
res = handle_sendemailcsv.delay(
|
||||
'Sander',
|
||||
'Roosendaal',
|
||||
'roosendaalsander@gmail.com',csvfile)
|
||||
|
||||
else:
|
||||
res = queuehigh.enqueue(
|
||||
handle_sendemailcsv,
|
||||
'Sander',
|
||||
'Roosendaal',
|
||||
'roosendaalsander@gmail.com',
|
||||
csvfile)
|
||||
res = myqueue(queuehigh,
|
||||
handle_sendemailcsv,
|
||||
'Sander',
|
||||
'Roosendaal',
|
||||
'roosendaalsander@gmail.com',
|
||||
csvfile)
|
||||
|
||||
successmessage = "The CSV file was sent to the site admin per email"
|
||||
messages.info(request,successmessage)
|
||||
@@ -2579,11 +2545,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
|
||||
@login_required()
|
||||
def workout_test_task_view(request,id=0):
|
||||
row = Workout.objects.get(id=id)
|
||||
if settings.DEBUG:
|
||||
res = addcomment2.delay(request.user.id,row.id)
|
||||
else:
|
||||
#res = queuehigh.enqueue(addcomment2,request.user.id,row.id)
|
||||
res = queuehigh.enqueue(addcomment2,request.user.id,row.id)
|
||||
res = myqueue(queuehigh,addcomment2,request.user.id,row.id)
|
||||
|
||||
|
||||
url = reverse(workout_edit_view,
|
||||
@@ -5662,19 +5624,13 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
|
||||
first_name = u.first_name
|
||||
last_name = u.last_name
|
||||
emailaddress = u.email
|
||||
|
||||
if settings.DEBUG:
|
||||
job = handle_otwsetpower.delay(f1,boattype,weightvalue,
|
||||
first_name,last_name,
|
||||
emailaddress,id,debug=True,
|
||||
ps=[r.p0,r.p1,r.p2,r.p3],
|
||||
ratio=r.cpratio)
|
||||
else:
|
||||
job = queuelow.enqueue(handle_otwsetpower,f1,boattype,
|
||||
weightvalue,
|
||||
first_name,last_name,emailaddress,id,
|
||||
ps=[r.p0,r.p1,r.p2,r.p3],
|
||||
ratio=r.cpratio)
|
||||
|
||||
job = myqueue(queuelow,
|
||||
handle_otwsetpower,f1,boattype,
|
||||
weightvalue,
|
||||
first_name,last_name,emailaddress,id,
|
||||
ps=[r.p0,r.p1,r.p2,r.p3],
|
||||
ratio=r.cpratio)
|
||||
|
||||
try:
|
||||
request.session['async_tasks'] += [(job.id,'otwsetpower')]
|
||||
@@ -6963,49 +6919,30 @@ def workout_comment_view(request,id=0):
|
||||
)
|
||||
if request.user != r.user:
|
||||
a_messages.info(r.user,message)
|
||||
|
||||
if settings.DEBUG and request.user != r.user:
|
||||
res = handle_sendemailnewcomment.delay(r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,w.name,
|
||||
w.id)
|
||||
|
||||
|
||||
elif request.user != r.user:
|
||||
res = queuehigh.enqueue(handle_sendemailnewcomment,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,w.name,w.id)
|
||||
res = myqueue(queuehigh,
|
||||
handle_sendemailnewcomment,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,w.name,w.id)
|
||||
|
||||
commenters = {oc.user for oc in comments if oc.notification}
|
||||
for u in commenters:
|
||||
a_messages.info(u,message)
|
||||
if settings.DEBUG and u != request.user and u != r.user:
|
||||
res = handle_sendemailnewresponse.delay(u.first_name,
|
||||
u.last_name,
|
||||
u.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,
|
||||
w.name,
|
||||
w.id,
|
||||
c.id)
|
||||
elif u != request.user and u != r.user:
|
||||
res = queuelow.enqueue(handle_sendemailnewresponse,
|
||||
u.first_name,
|
||||
u.last_name,
|
||||
u.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,
|
||||
w.name,
|
||||
w.id,
|
||||
c.id)
|
||||
if u != request.user and u != r.user:
|
||||
res = myqueue(queuelow,
|
||||
handle_sendemailnewresponse,
|
||||
u.first_name,
|
||||
u.last_name,
|
||||
u.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,
|
||||
w.name,
|
||||
w.id,
|
||||
c.id)
|
||||
|
||||
url = reverse(workout_comment_view,kwargs = {
|
||||
'id':id})
|
||||
@@ -9654,10 +9591,7 @@ def rower_calcdps_view(request):
|
||||
r = getrower(request.user)
|
||||
|
||||
ws = [(w.id,w.csvfilename) for w in Workout.objects.filter(user=r)]
|
||||
if settings.DEBUG:
|
||||
res = handle_updatedps.delay(r.user.email,ws,debug=True)
|
||||
else:
|
||||
queue.enqueue(handle_updatedps,r.user.email,ws,debug=False)
|
||||
res = myqueue(queue,handle_updatedps,r.user.email,ws,debug=False)
|
||||
|
||||
messages.info(request,"Your workouts are being updated in the background. You will receive email when this is done.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user