diff --git a/rowers/dataprep.py b/rowers/dataprep.py index b7efd793..9388c84f 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -527,6 +527,7 @@ def fetchcp(rower,theworkouts,table='cpdata'): theids = [int(w.id) for w in theworkouts] columns = ['power','workoutid','time'] df = getsmallrowdata_db(columns,ids=theids) + df.dropna(inplace=True,axis=0) if df.empty: avgpower2 = {} for id in theids: diff --git a/rowers/forms.py b/rowers/forms.py index f2f40d1f..f4cfb3aa 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -164,6 +164,11 @@ nextpages = list(landingpages) nextpages.append(('workout_upload_view','Upload Another File')) nextpages = tuple(nextpages) +class LandingPageForm(forms.Form): + landingpage = forms.ChoiceField(choices=nextpages, + initial='workout_edit_view', + label='After Upload, go to') + class UploadOptionsForm(forms.Form): plotchoices = ( ('timeplot','Time Plot'), diff --git a/rowers/tasks.py b/rowers/tasks.py index a1b9bfd5..98408a54 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -16,7 +16,9 @@ from matplotlib.backends.backend_agg import FigureCanvas #from matplotlib.backends.backend_cairo import FigureCanvasCairo as FigureCanvas import matplotlib.pyplot as plt - +from rowsandall_app.settings import SITE_URL +from rowsandall_app.settings_dev import SITE_URL as SITE_URL_DEV +from rowsandall_app.settings import PROGRESS_CACHE_SECRET import pandas as pd @@ -296,11 +298,17 @@ def handle_sendemailtcx(first_name, last_name, email, tcxfile,debug=False): @app.task def handle_zip_file(emailfrom, subject, file,debug=False): message = "... zip processing ... " + if debug: + print message email = EmailMessage(subject, message, emailfrom, ['workouts@rowsandall.com']) email.attach_file(file) + if debug: + print "attaching" res = email.send() + if debug: + print "sent" time.sleep(60) return 1 @@ -338,12 +346,36 @@ def handle_sendemailcsv(first_name, last_name, email, csvfile,debug=False): # Calculate wind and stream corrections for OTW rowing -@app.task -def handle_otwsetpower(f1, boattype, weightvalue, - first_name, last_name, email, workoutid, ps=[ - 1, 1, 1, 1], - ratio=1.0, - debug=False): +@app.task(bind=True) +def handle_otwsetpower(self,f1, boattype, weightvalue, + first_name, last_name, email, workoutid, + **kwargs): +# ps=[ +# 1, 1, 1, 1], +# ratio=1.0, +# debug=False): + job = self.request + job_id = job.id + + if 'jobkey' in kwargs: + job_id = kwargs.pop('jobkey') + if 'ps' in kwargs: + ps = kwargs['ps'] + else: + ps = [1,1,1,1] + + if 'ratio' in kwargs: + ratio = kwargs['ratio'] + else: + ratio = 1.0 + if 'debug' in kwargs: + debug = kwargs['debug'] + else: + debug = False + + kwargs['jobid'] = job_id + + try: rowdata = rdata(f1) except IOError: @@ -377,8 +409,19 @@ def handle_otwsetpower(f1, boattype, weightvalue, except KeyError: pass + progressurl = SITE_URL + if debug: + progressurl = SITE_URL_DEV + secret = PROGRESS_CACHE_SECRET + + progressurl += "/rowers/record-progress/" + progressurl += job_id + rowdata.otw_setpower_silent(skiprows=5, mc=weightvalue, rg=rg, - powermeasured=powermeasured) + powermeasured=powermeasured, + progressurl=progressurl, + secret=secret + ) # save data rowdata.write_csv(f1, gzip=True) diff --git a/rowers/templates/async_tasks.html b/rowers/templates/async_tasks.html index dedf883d..9dbfeebc 100644 --- a/rowers/templates/async_tasks.html +++ b/rowers/templates/async_tasks.html @@ -51,6 +51,11 @@ {% endblock %} +{% block scripts %} +{% include "monitorjobs.html" %} +{% endblock %} + + {% block content %} diff --git a/rowers/templates/list_graphs.html b/rowers/templates/list_graphs.html index dc05fc5e..70339c9e 100644 --- a/rowers/templates/list_graphs.html +++ b/rowers/templates/list_graphs.html @@ -4,6 +4,10 @@ {% block title %}Rowsandall Recent Graphs{% endblock %} +{% block scripts %} +{% include "monitorjobs.html" %} +{% endblock %} + {% block content %}