diff --git a/rowers/middleware.py b/rowers/middleware.py index 95cb5583..4cdc20bd 100644 --- a/rowers/middleware.py +++ b/rowers/middleware.py @@ -2,7 +2,7 @@ from django.utils import timezone from rowers.models import Workout, PowerTimeFitnessMetric, Rower import datetime -from utils import myqueue +from rowers.utils import myqueue import django_rq queue = django_rq.get_queue('default') from rowers.tasks import handle_updatefitnessmetric,handle_sendemail_expired diff --git a/rowers/tasks.py b/rowers/tasks.py index 24bd08c4..1b00357d 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -4,7 +4,6 @@ from __future__ import print_function from __future__ import unicode_literals """ Background tasks done by Celery (develop) or QR (production) """ -from __future__ import absolute_import import os import time import gc diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py index e44015eb..4dbb906e 100644 --- a/rowers/templatetags/rowerfilters.py +++ b/rowers/templatetags/rowerfilters.py @@ -36,10 +36,10 @@ def strfdelta(tdelta): minutes,seconds = divmod(tdelta.seconds,60) tenths = int(tdelta.microseconds/1e5) res = "{minutes:0>1}:{seconds:0>2}.{tenths:0>1}".format( - minutes=minutes, - seconds=seconds, - tenths=tenths, - ) + minutes=minutes, + seconds=seconds, + tenths=tenths, + ) return res @@ -48,11 +48,11 @@ def strfdeltah(tdelta): minutes,seconds = divmod(rest,60) tenths = int(tdelta.microseconds/1e5) res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}.{tenths:0>1}".format( - hours=hours, - minutes=minutes, - seconds=seconds, - tenths=tenths, - ) + hours=hours, + minutes=minutes, + seconds=seconds, + tenths=tenths, + ) return res @@ -60,10 +60,10 @@ def secondstotimestring(tdelta): hours, rest = divmod(tdelta,3600) minutes,seconds = divmod(rest,60) res = "{hours:0>2}:{minutes:0>2}:{seconds:0>2}".format( - hours=hours, - minutes=minutes, - seconds=seconds, - ) + hours=hours, + minutes=minutes, + seconds=seconds, + ) return res @@ -107,9 +107,9 @@ def spacetohtml(t): @register.filter def durationprint(d,dstring): if (d == None): - return d + return d else: - return d.strftime(dstring)[:-5] + return d.strftime(dstring)[:-5] def getstartenddate(timeperiod): s,e = timeperiod.split('/') @@ -165,16 +165,16 @@ def previousperiodstart(timeperiod): @register.filter def paceprint(d): if (d == None): - return d + return d else: - return strfdelta(d) + return strfdelta(d) @register.filter def deltatimeprint(d): if (d == None): - return d + return d else: - return strfdeltah(d) + return strfdeltah(d) @register.filter def c2userid(user): @@ -221,7 +221,7 @@ def lookup(dict, key): s = dict.get(key) if isinstance(s,basestring) and len(s) > 22: - s = s[:22] + s = s[:22] return s @register.filter diff --git a/rowers/tests/test_urls.py b/rowers/tests/test_urls.py index fc1c0b31..83814fb7 100644 --- a/rowers/tests/test_urls.py +++ b/rowers/tests/test_urls.py @@ -18,47 +18,47 @@ tested = [ class URLTests(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') - u = User.objects.create_user('john', - 'sander@ds.ds', - 'koeinsloot', + u = User.objects.create_user('john', + 'sander@ds.ds', + 'koeinsloot', ) - r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True, + r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True, gdproptindate=timezone.now()) - self.c = Client() + self.c = Client() + + self.nu = datetime.datetime.now() + filename = 'rowers/tests/testdata/testdata.csv' + self.wotw = Workout.objects.create(name='testworkout', + workouttype='water', + user=r,date=self.nu.strftime('%Y-%m-%d'), + starttime=self.nu.strftime('%H:%M:%S'), + duration="0:55:00",distance=8000, + csvfilename=filename) + + self.wote = Workout.objects.create(name='testworkout', + workouttype='Indoor Rower', + user=r,date=self.nu.strftime('%Y-%m-%d'), + starttime=self.nu.strftime('%H:%M:%S'), + duration="0:55:00",distance=8000, + csvfilename=filename) - self.nu = datetime.datetime.now() - filename = 'rowers/tests/testdata/testdata.csv' - self.wotw = Workout.objects.create(name='testworkout', - workouttype='water', - user=r,date=self.nu.strftime('%Y-%m-%d'), - starttime=self.nu.strftime('%H:%M:%S'), - duration="0:55:00",distance=8000, - csvfilename=filename) - - self.wote = Workout.objects.create(name='testworkout', - workouttype='Indoor Rower', - user=r,date=self.nu.strftime('%Y-%m-%d'), - starttime=self.nu.strftime('%H:%M:%S'), - duration="0:55:00",distance=8000, - csvfilename=filename) - powerperc = 100*np.array([r.pw_ut2, r.pw_ut1, r.pw_at, r.pw_tr,r.pw_an])/r.ftp - self.hrdata = { - 'hrmax':r.max, - 'hrut2':r.ut2, - 'hrut1':r.ut1, - 'hrat':r.at, - 'hrtr':r.tr, - 'hran':r.an, - 'ftp':r.ftp, + self.hrdata = { + 'hrmax':r.max, + 'hrut2':r.ut2, + 'hrut1':r.ut1, + 'hrat':r.at, + 'hrtr':r.tr, + 'hran':r.an, + 'ftp':r.ftp, 'powerperc':serialize_list(powerperc), 'powerzones':serialize_list(r.powerzones), - } + } urlstotest = [ '/rowers/400/', @@ -103,7 +103,7 @@ class URLTests(TestCase): '/rowers/help/', '/rowers/histo/', '/rowers/histo/user/1/', -# '/rowers/histo/user/1/2016-01-01/2016-12-31/', +# '/rowers/histo/user/1/2016-01-01/2016-12-31/', '/rowers/histodata/', # '/rowers/job-kill/1/', # '/rowers/jobs-status/', @@ -264,7 +264,7 @@ class URLTests(TestCase): mock_post): if url not in tested: - login = self.c.login(username='john',password='koeinsloot') + login = self.c.login(username='john',password='koeinsloot') self.assertTrue(login) response = self.c.get(url,follow=True) if response.status_code != expected: diff --git a/rowers/tests/test_user.py b/rowers/tests/test_user.py index bc3cc9b4..c599b2a8 100644 --- a/rowers/tests/test_user.py +++ b/rowers/tests/test_user.py @@ -14,44 +14,44 @@ from rowers.models import User,Rower, Workout class UserMiddleWareTest(TestCase): def setUp(self): - u = User.objects.create_user('john', - 'sander@ds.ds', - 'koeinsloot') - self.r = Rower.objects.create(user=u) + u = User.objects.create_user('john', + 'sander@ds.ds', + 'koeinsloot') + self.r = Rower.objects.create(user=u) self.c = Client() self.c.login(username='john',password='koeinsloot') - self.nu = datetime.datetime.now() + self.nu = datetime.datetime.now() - filename = 'rowers/tests/testdata/testdata.csv' - - rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2, - hrut1=self.r.ut1,hrat=self.r.at, - hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp) - row = rdata(filename,rower=rr) - totaldist = row.df['cum_dist'].max() - totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min() - totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0] + filename = 'rowers/tests/testdata/testdata.csv' + + rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2, + hrut1=self.r.ut1,hrat=self.r.at, + hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp) + row = rdata(filename,rower=rr) + totaldist = row.df['cum_dist'].max() + totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min() + totaltime = totaltime+row.df.loc[:,' ElapsedTime (sec)'].iloc[0] - - hours = int(totaltime/3600.) - minutes = int((totaltime - 3600.*hours)/60.) - seconds = int(totaltime - 3600.*hours - 60.*minutes) - tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds)) + + hours = int(totaltime/3600.) + minutes = int((totaltime - 3600.*hours)/60.) + seconds = int(totaltime - 3600.*hours - 60.*minutes) + tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds)) - duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths) + duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths) - workoutdate = row.rowdatetime.strftime('%Y-%m-%d') - workoutstarttime = row.rowdatetime.strftime('%H:%M:%S') + workoutdate = row.rowdatetime.strftime('%Y-%m-%d') + workoutstarttime = row.rowdatetime.strftime('%H:%M:%S') - self.w = Workout.objects.create( + self.w = Workout.objects.create( name='testworkout',workouttype='water', - user=self.r,date=self.nu.strftime('%Y-%m-%d'), - starttime=workoutstarttime, + user=self.r,date=self.nu.strftime('%Y-%m-%d'), + starttime=workoutstarttime, startdatetime=row.rowdatetime, - duration=duration,distance=totaldist, - csvfilename=filename + duration=duration,distance=totaldist, + csvfilename=filename ) @@ -62,9 +62,9 @@ class UserMiddleWareTest(TestCase): class UserTestsNoRower(TestCase): def setUp(self): - u = User.objects.create_user('john', - 'sander@ds.ds', - 'koeinsloot') + u = User.objects.create_user('john', + 'sander@ds.ds', + 'koeinsloot') self.c = Client() self.c.login(username='john',password='koeinsloot') diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 93f4edb8..502d9a58 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -819,15 +819,26 @@ def get_blog_posts(request): image_url = '' - title = postdata['title']['rendered'].encode( - 'ascii','xmlcharrefreplace') + try: + title = postdata['title']['rendered'].encode( + 'ascii','xmlcharrefreplace') - excerpt = postdata['excerpt']['rendered'].encode( - 'ascii','xmlcharrefreplace') + excerpt = postdata['excerpt']['rendered'].encode( + 'ascii','xmlcharrefreplace') - ptester = re.compile('\(\w.*)\<\/p\>') - excerpt_first = ptester.match(excerpt).group(1) - + ptester = re.compile('\(\w.*)\<\/p\>') + excerpt_first = ptester.match(excerpt).group(1) + except TypeError: + title = postdata['title']['rendered'].encode( + 'ascii','xmlcharrefreplace').decode('utf-8') + + excerpt = postdata['excerpt']['rendered'].encode( + 'ascii','xmlcharrefreplace').decode('utf-8') + + + ptester = re.compile('\(\w.*)\<\/p\>') + excerpt_first = ptester.match(excerpt).group(1) + thedict = { 'title': title, 'author': '',