From 9e06059126dc32fe9162cf85995cc4d00d76bac2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 11 Mar 2019 20:18:13 +0100 Subject: [PATCH 1/5] improved activity chart --- requirements.txt | 13 ++++++++++++- rowers/interactiveplots.py | 4 ++-- rowers/tests/testdata/testdata.csv.gz | Bin 12572 -> 12523 bytes 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index d09e4c29..784be40e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ amqp==2.4.1 +apipkg==1.5 arrow==0.13.1 atomicwrites==1.3.0 attrs==18.2.0 @@ -7,15 +8,18 @@ beautifulsoup4==4.7.1 billiard==3.5.0.5 bleach==3.1.0 bokeh==1.0.4 +boto==2.49.0 braintree==3.51.0 celery==4.2.1 certifi==2018.11.29 chardet==3.0.4 Click==7.0 colorama==0.4.1 +colorclass==2.2.0 cookies==2.2.1 coreapi==2.3.3 coreschema==0.0.4 +coverage==4.5.2 cycler==0.10.0 dask==1.1.1 decorator==4.3.2 @@ -40,6 +44,7 @@ django-rest-framework==0.1.0 django-rest-swagger==2.2.0 django-rq==1.3.0 django-rq-dashboard==0.3.3 +django-ses==0.8.10 django-shell-plus==1.1.7 django-social-share==1.3.2 django-suit==0.2.26 @@ -49,6 +54,7 @@ djangorestframework==3.5.3 docopt==0.6.2 docutils==0.14 entrypoints==0.3 +execnet==1.5.0 factory-boy==2.11.1 Faker==1.0.2 fitparse==1.0.1 @@ -107,6 +113,7 @@ pbr==5.1.2 pexpect==4.6.0 pickleshare==0.7.5 Pillow==5.4.1 +pip-upgrader==1.4.6 pluggy==0.9.0 prometheus-client==0.6.0 prompt-toolkit==2.0.9 @@ -117,9 +124,12 @@ pyparsing==2.3.1 pyrsistent==0.14.11 pytest==4.3.0 pytest-django==3.4.7 +pytest-forked==1.0.2 pytest-runner==4.4 pytest-sugar==0.9.2 +pytest-xdist==1.26.1 python-dateutil==2.8.0 +python-memcached==1.59 python-twitter==3.5 pytz==2018.9 pyviz-comms==0.7.0 @@ -130,7 +140,7 @@ ratelim==0.1.6 redis==3.2.0 requests==2.21.0 requests-oauthlib==1.2.0 -rowingdata==2.0.6 +rowingdata==2.1.2 rowingphysics==0.5.0 rq==0.13.0 scipy==1.2.1 @@ -145,6 +155,7 @@ sqlparse==0.2.4 stravalib==0.10.2 termcolor==1.1.0 terminado==0.8.1 +terminaltables==3.1.0 testpath==0.4.2 text-unidecode==1.2 timezonefinder==3.4.2 diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 46f954b3..932198aa 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -316,8 +316,8 @@ def interactive_activitychart(workouts,startdate,enddate,stack='type'): bars=table.to.bars(['date',stack],['duration']) bars.opts( opts.Bars(color=hv.Cycle('Category10'), show_legend=True, stacked=True, - tools=['hover'], width=600, xrotation=90,)) -# legend_position='bottom',show_frame=True)) + tools=['hover'], width=550, xrotation=45,padding=(0,(0,.1)), + legend_position='bottom',show_frame=True)) p = hv.render(bars) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 55f22803bfeefb08be24b5227dd7c7a7f1adbef0..c2a8912caf9fac678115717c19057c6eee3a65c1 100644 GIT binary patch literal 12523 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 From 10391cb632d29a396edb1f5b7f59d5bbb720d799 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 11 Mar 2019 20:35:25 +0100 Subject: [PATCH 2/5] handle_makeplot in high queue --- rowers/uploads.py | 4 ++-- rowsandall_app/settings.py | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/rowers/uploads.py b/rowers/uploads.py index 4a9276a8..83489c8f 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -28,7 +28,7 @@ from verbalexpressions import VerEx import django_rq queue = django_rq.get_queue('default') queuelow = django_rq.get_queue('low') -queuehigh = django_rq.get_queue('low') +queuehigh = django_rq.get_queue('high') from rowers.mytypes import workouttypes,boattypes,otwtypes,workoutsources @@ -438,7 +438,7 @@ def make_plot(r,w,f1,f2,plottype,title,imagename='',plotnr=0): plotnr = plotnr+3 - job = myqueue(queue,handle_makeplot,f1,f2, + job = myqueue(queuehigh,handle_makeplot,f1,f2, title,hrpwrdata, plotnr,imagename) diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 031f3afb..88aaae22 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -303,6 +303,13 @@ RQ_QUEUES = { 'HOST': 'localhost', 'PORT': 6379, 'DB': 0, +# 'PASSWORD': 'some-password', + 'DEFAULT_TIMEOUT': 360, + }, + 'high': { + 'HOST': 'localhost', + 'PORT': 6379, + 'DB': 0, # 'PASSWORD': 'some-password', 'DEFAULT_TIMEOUT': 360, }, From bec981cb9427ea189ff3f98dd406493bbcec863f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 12 Mar 2019 08:46:57 +0100 Subject: [PATCH 3/5] breadcrumb with non opaque reference --- rowers/views/workoutviews.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 4a5328d4..db1018ef 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -5148,8 +5148,10 @@ class GraphDelete(DeleteView): 'name':'Workouts' }, { - 'url':get_workout_default_page(self.request,self.object.workout.id), - 'name': str(self.object.workout.id) + 'url':get_workout_default_page( + self.request, + encoder.encode_hex(self.object.workout.id)), + 'name': self.object.workout.name }, { 'url':reverse('graph_show_view',kwargs={'id':self.object.pk}), From caa8aca92ab18a5c9fb5b07881d1240d93a4136d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 12 Mar 2019 17:05:13 +0100 Subject: [PATCH 4/5] fixes #435 --- rowers/dataprep.py | 2 ++ rowers/rows.py | 6 +++--- rowers/tests/testdata/testdata.csv.gz | Bin 12523 -> 12547 bytes 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 6ecbb890..4f62e80d 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1638,6 +1638,8 @@ def rdata(file, rower=rrower()): res = rrdata() except: res = rrdata() + except EOFError: + res = rrdata() return res diff --git a/rowers/rows.py b/rowers/rows.py index 9b6331d6..6393fa02 100644 --- a/rowers/rows.py +++ b/rowers/rows.py @@ -83,15 +83,15 @@ def validate_kml(value): def handle_uploaded_image(i): - import StringIO + from io import StringIO, BytesIO from PIL import Image, ImageOps, ExifTags import os from django.core.files import File - image_str = "" + image_str = b'' for chunk in i.chunks(): image_str += chunk - imagefile = StringIO.StringIO(image_str) + imagefile = BytesIO(image_str) image = Image.open(i) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index c2a8912caf9fac678115717c19057c6eee3a65c1..4df4a9cd063df9577bcf78c0acee1801ef2c0d75 100644 GIT binary patch literal 12547 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 ZRGP!8PX8YO009600|0|~Uw5N}008gh4sQSe literal 12523 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 Date: Tue, 12 Mar 2019 18:26:54 +0100 Subject: [PATCH 5/5] tested --- rowers/tests/testdata/testdata.csv.gz | Bin 12547 -> 12543 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 4df4a9cd063df9577bcf78c0acee1801ef2c0d75..ca5e2cacb989e3eeaca6417f7aa85e60e7045272 100644 GIT binary patch literal 12543 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 zʩ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 ZRGP!8PX8YO009600|0|~Uw5N}008gh4sQSe