From 3041e59e1d9273fb3a47d9ceeda9b6948db36fc6 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 14 Mar 2019 15:23:59 +0100 Subject: [PATCH 01/11] tasks - added csvfile= argument to rowingdata --- rowers/tasks.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/rowers/tasks.py b/rowers/tasks.py index 07ca5969..01def2df 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -265,10 +265,10 @@ def handle_check_race_course(self, row = rdata(csvfile=f1) except IOError: try: - row = rdata(f1 + '.csv') + row = rdata(csvfile=f1 + '.csv') except IOError: try: - row = rdata(f1 + '.gz') + row = rdata(csvfile=f1 + '.gz') except IOError: return 0 @@ -526,13 +526,13 @@ def handle_update_empower(self, havedata = 1 try: - rowdata = rdata(f1) + rowdata = rdata(csvfile=f1) except IOError: try: - rowdata = rdata(f1 + '.csv') + rowdata = rdata(csvfile=f1 + '.csv') except IOError: try: - rowdata = rdata(f1 + '.gz') + rowdata = rdata(csvfile=f1 + '.gz') except IOError: havedata = 0 @@ -597,13 +597,13 @@ def handle_calctrimp(id, engine = create_engine(database_url, echo=False) try: - rowdata = rdata(csvfilename) + rowdata = rdata(csvfile=csvfilename) except IOError: try: - rowdata = rdata(csvfilename + '.csv') + rowdata = rdata(csvfile=csvfilename + '.csv') except IOError: try: - rowdata = rdata(csvfilename + '.gz') + rowdata = rdata(csvfile=csvfilename + '.gz') except IOError: return 0 @@ -719,13 +719,13 @@ def handle_updatedps(useremail, workoutids, debug=False,**kwargs): for wid, f1 in workoutids: havedata = 1 try: - rowdata = rdata(f1) + rowdata = rdata(csvfile=f1) except IOError: try: - rowdata = rdata(f1 + '.csv') + rowdata = rdata(csvfile=f1 + '.csv') except IOError: try: - rowdata = rdata(f1 + '.gz') + rowdata = rdata(csvfile=f1 + '.gz') except IOError: havedata = 0 @@ -1384,12 +1384,12 @@ def handle_otwsetpower(self,f1, boattype, weightvalue, try: - rowdata = rdata(f1) + rowdata = rdata(csvfile=f1) except IOError: try: - rowdata = rdata(f1 + '.csv') + rowdata = rdata(csvfile=f1 + '.csv') except IOError: - rowdata = rdata(f1 + '.gz') + rowdata = rdata(csvfile=f1 + '.gz') weightvalue = float(weightvalue) @@ -1490,13 +1490,13 @@ def handle_updateergcp(rower_id,workoutfilenames,debug=False,**kwargs): therows = [] for f1 in workoutfilenames: try: - rowdata = rdata(f1) + rowdata = rdata(csvfile=f1) except IOError: try: - rowdata = rdata(f1 + '.csv') + rowdata = rdata(csvfile=f1 + '.csv') except IOError: try: - rowdata = rdata(f1 + '.gz') + rowdata = rdata(csvfile=f1 + '.gz') except IOError: rowdata = 0 if rowdata != 0: @@ -1653,9 +1653,9 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename, ftp=ftp, powerperc=powerperc, powerzones=powerzones) try: - row = rdata(f2, rower=rr) + row = rdata(csvfile=f2, rower=rr) except IOError: - row = rdata(f2 + '.gz', rower=rr) + row = rdata(csvfile=f2 + '.gz', rower=rr) try: haspower = row.df[' Power (watts)'].mean() > 50 From 6a008535541967196c1612e9f0a5e02d445d4210 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 07:57:00 +0100 Subject: [PATCH 02/11] fiddling with style & layout --- rowers/templatetags/rowerfilters.py | 17 ++++++++++++++++- static/css/rowsandall2.css | 14 ++++++++++++++ static/css/styles2.css | 13 +++++++++++-- templates/newbase.html | 23 ++++++++++++++++++++--- 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py index 547f13b6..3bff8112 100644 --- a/rowers/templatetags/rowerfilters.py +++ b/rowers/templatetags/rowerfilters.py @@ -11,7 +11,7 @@ from rowers.utils import calculate_age from rowers.models import ( course_length,WorkoutComment, TrainingMacroCycle,TrainingMesoCycle, TrainingMicroCycle, - Rower,Workout + Rower,Workout,SiteAnnouncement ) from rowers.plannedsessions import ( race_can_register, race_can_submit,race_rower_status @@ -33,6 +33,12 @@ import arrow from six import string_types +@register.filter +def nogoals(user): + targets = TrainingTarget.objects.filter(rowers=user.rower, + date__gte=datetime.date.today()) + return len(targets)==0 + def strfdelta(tdelta): minutes,seconds = divmod(tdelta.seconds,60) tenths = int(tdelta.microseconds/1e5) @@ -333,6 +339,15 @@ def user_teams(user): return teams +@register.filter +def announcements(request): + announcements = SiteAnnouncement.objects.filter( + expires__gte=datetime.date.today()).order_by( + "-created", + "-id" + ) + + return announcements[0:4] @register.filter def has_teams(user): diff --git a/static/css/rowsandall2.css b/static/css/rowsandall2.css index 388f56eb..2493cdd4 100644 --- a/static/css/rowsandall2.css +++ b/static/css/rowsandall2.css @@ -240,6 +240,7 @@ th.rotate > div > span { padding: .2em .5em .2em 0em; } + .site-announcement { font: 1.0em/1.2em sans-serif; text-decoration: none; @@ -253,6 +254,19 @@ th.rotate > div > span { border: solid 1px #333; } +.site-announcement-white { + font: 1.0em/1.2em sans-serif; + text-decoration: none; + display: block; + padding: .2em .5em .2em .5em; + zoom: 1; +/* border-radius: .5em; */ +/* -moz-border-radius: .5em; */ +/* -webkit-border-radius: .5em; */ + text-align: left; + border: solid 1px #fff; +} + .contentli { diff --git a/static/css/styles2.css b/static/css/styles2.css index e3dc143f..d7d23e7d 100644 --- a/static/css/styles2.css +++ b/static/css/styles2.css @@ -80,6 +80,15 @@ padding: 15px; } + ad h1 { + font-weight: bold; + text-align: left; + font-size: 1.4em; + /* color: #dddddd; */ + color: #f8f8ff; + padding: 15px; + } + aside h1 a { font-weight: bold; text-align: left; @@ -647,8 +656,8 @@ "side-nav nav nav" "sidebar content content" "sidebar content content" - "sidebar content content" - "sidebar footer footer" + "ad content content" + "ad footer footer" "ad footer footer" } diff --git a/templates/newbase.html b/templates/newbase.html index 5ae54c80..87661000 100644 --- a/templates/newbase.html +++ b/templates/newbase.html @@ -309,10 +309,27 @@ + {% if request|announcements %} +

What's New?

+ {% for a in request|announcements %} +
+
+ {{ a.created }}: + {{ a.announcement|urlize }} +
+
+ + {% endfor %} + {% endif %} + {% if user|nogoals %} +

+ Create a Training Target! +

+ {% endif %} {% block ad %} - - -

Prygl Rowing Camps

+
+ +

Prygl Rowing Camps

{% endblock %}
From 528da3bce817fe021599814861538c52e9170222 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 08:22:18 +0100 Subject: [PATCH 03/11] tools above --- rowers/interactiveplots.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index c17283a9..4cf5c33a 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -3146,7 +3146,7 @@ def interactive_flex_chart2(id=0,promember=0, plot = Figure(x_axis_type=x_axis_type,y_axis_type=y_axis_type, - tools=TOOLS, + tools=TOOLS,toolbar_location='above', toolbar_sticky=False ) From e5a38c88021aece31a19913b6ba840366c244827 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 08:23:06 +0100 Subject: [PATCH 04/11] fitness chart popup yyyy-mm-dd --- rowers/interactiveplots.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 4cf5c33a..282894bd 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -748,8 +748,9 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower',startdate=None, power2k = power2k, date = date, power1hr = power1hr, - fdate=groups['dates'].map(lambda x: x.strftime('%d-%m-%Y')) ) + fdate=groups['dates'].map(lambda x: x.strftime('%Y-%m-%d')) ) + ) # fit From dfea13b8f9179b306f359be7e24b371e1d8ece99 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 08:50:55 +0100 Subject: [PATCH 05/11] bugs fixed (passing tests) --- rowers/tests/testdata/testdata.csv.gz | Bin 12523 -> 12547 bytes templates/newbase.html | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 563360349b75673d966e62179b5bd2eb9b45b4f4..f6dfa2b288c9de75c5c4027afead0be453ba8a9d 100644 GIT binary patch literal 12547 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 ZRGP!8PX8YO009600|0|~Uw5N}006Pz4Wa-5 literal 12523 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 Create a Training Target!

From 3fae33f366b20dbfd61ac807893eac14d9116a3a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 10:27:35 +0100 Subject: [PATCH 06/11] adding drag factor --- rowers/models.py | 2 ++ rowers/templates/workout_form.html | 13 ++++++++++++- rowers/views/workoutviews.py | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/rowers/models.py b/rowers/models.py index 2f8c8844..1201fdd6 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2536,6 +2536,7 @@ class Workout(models.Model): max_length=100) distance = models.IntegerField(default=0,blank=True) duration = models.TimeField(default=1,blank=True) + dragfactor = models.IntegerField(default=0,blank=True) trimp = models.IntegerField(default=-1,blank=True) rscore = models.IntegerField(default=-1,blank=True) hrtss = models.IntegerField(default=-1,blank=True) @@ -2960,6 +2961,7 @@ class WorkoutForm(ModelForm): 'distance', 'workouttype', 'boattype', + 'dragfactor', 'weightcategory', 'adaptiveclass', 'notes', diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 047a8a2c..40346ee1 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -32,7 +32,18 @@ $( document ).ready(function() { } else { $('#id_boattype').toggle(false); $('#id_boattype').val('1x'); - } +} + if ( + $(this).val() == 'rower' + || $(this).val() == 'dynamic' + || $(this).val() == 'slides' + ) { + $('#id_dragfactor').toggle(true); + } else { + $('#id_dragfactor').toggle(false); + $('#id_dragfactor').val('0'); +} + }); $('#id_workouttype').change(); }); diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index d5ca9e42..c95cfdda 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3345,6 +3345,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""): distance = form.cleaned_data['distance'] private = form.cleaned_data['private'] notes = form.cleaned_data['notes'] + newdragfactor = form.cleaned_data['dragfactor'] thetimezone = form.cleaned_data['timezone'] try: @@ -3416,6 +3417,11 @@ def workout_edit_view(request,id=0,message="",successmessage=""): row.timezone = thetimezone row.plannedsession = ps + dragchanged = False + if newdragfactor != row.dragfactor: + row.dragfactor = newdragfactor + dragchanged = True + try: row.save() except IntegrityError: @@ -3427,6 +3433,12 @@ def workout_edit_view(request,id=0,message="",successmessage=""): # change data in csv file r = rdata(row.csvfilename) + if dragchanged: + try: + r.change_drag(newdragfactor) + except AttributeError: + pass + if r == 0: return HttpResponse("Error: CSV Data File Not Found") r.rowdatetime = startdatetime From 85a023ce5ce64ca474ca67e89c7599964c930004 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 10:33:47 +0100 Subject: [PATCH 07/11] fix #433 --- rowers/dataprep.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 4f62e80d..ab3bdd13 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -83,7 +83,7 @@ queuelow = django_rq.get_queue('low') queuehigh = django_rq.get_queue('default') from rowsandall_app.settings import SITE_URL -from rowers.mytypes import otwtypes +from rowers.mytypes import otwtypes,otetypes from rowers.database import * from rowers.opaque import encoder @@ -998,6 +998,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', if dosummary: summary = row.allstats() + + timezone_str = 'UTC' try: workoutstartdatetime = timezone.make_aware(row.rowdatetime) @@ -1050,6 +1052,9 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', maxhr = np.nan_to_num(maxhr) averagehr = np.nan_to_num(averagehr) + dragfactor = 0 + if workouttype in otetypes: + dragfactor = row.dragfactor t = datetime.datetime.strptime(duration,"%H:%M:%S.%f") delta = datetime.timedelta(hours=t.hour, minutes=t.minute, seconds=t.second) @@ -1079,6 +1084,7 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', w = Workout(user=r, name=title, date=workoutdate, workouttype=workouttype, boattype=boattype, + dragfactor=dragfactor, duration=duration, distance=totaldist, weightcategory=weightcategory, adaptiveclass=adaptiveclass, From f0caba6d4f8882a7187744ea0a3a4d325b1753c6 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 10:56:15 +0100 Subject: [PATCH 08/11] bug fix in test --- rowers/tests/test_uploads.py | 1 + rowers/tests/testdata/testdata.csv.gz | Bin 12547 -> 12547 bytes 2 files changed, 1 insertion(+) diff --git a/rowers/tests/test_uploads.py b/rowers/tests/test_uploads.py index b691dcb7..27264a58 100644 --- a/rowers/tests/test_uploads.py +++ b/rowers/tests/test_uploads.py @@ -100,6 +100,7 @@ class ViewTest(TestCase): 'adaptiveclass':'PR1', 'workouttype':'rower', 'boattype':'1x', + 'dragfactor':'112', 'private':True, 'notes':'noot mies', } diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index f6dfa2b288c9de75c5c4027afead0be453ba8a9d..9da031921ff5add9b23af5a39858101562f8c59b 100644 GIT binary patch delta 15 WcmZopYEEL4@8;lWFW$)Z*8l)1lLcu2 delta 15 WcmZopYEEL4@8;m}h}_8b*8l(~mjw_2 From 4fe6470fce819a5ab124d9ff70c42b092d35bda9 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 11:13:57 +0100 Subject: [PATCH 09/11] passing tests --- rowers/tests/testdata/testdata.csv.gz | Bin 12547 -> 12572 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 9da031921ff5add9b23af5a39858101562f8c59b..c1c85bf9a615ccdc5e0c5a6877f30f31b5e7d2ab 100644 GIT binary patch literal 12572 zcmV+%G2_l3iwFq*c#B*D|8!+@bYx+4VJ>5Hb^wfh+pc8Ck=?t2`3FAAK;bB_k(rOS z5t!j`1=pv{_Veg|F4hl{_^Rs`rp5P`QfK;`ltVb zmwx{IJ%4Tg#((|t^@soa<)?3-{_@?ge*FCH^Vgs8;y-`;`sL4`drCk4{?i}rt-t2q z@T1>+`u_7z`r0?V<>z1j_`^^9lz;lo-@bnLt3UjeZ~6U~fBB5R{L80r-+tEL_zTYX z{PTCe`ZNB>Pyg%Z&)?&;UmF5D>^EQj_S3ihm*4*I^S4iW$_44SUw`=f=l}lsr$2rB z-_Nhw*ZDDk|I_C`e);?7um5)Z;D3Jk`sd$&{%Sw}?pOck%isR;nXmsRyzkSWKI`ZF zO!-I;`(OE(kN(jf zMewKfNccf6lNB&r;KQjJ1D}FM@V+mgEQ-87It!?NB@r`*^$s?yya!T^RA3kbY z_)|&iBZ<`ZXm~5n!Xbc@1J3#=b>^P3Ldp-o!za{_j8oP}!#kJbDx#RvDvyG<^@6i2 z-rF*MK01HB6&xW0{{j%ccg`lG&C(^8CH0Z#{E*aonUAv8$Hd#pO!iL)$ZSU&%5tGx zMcMOs)CZ6>q68cXko99d1c&ogeQQo_O0FPe z77%^)k1}NT`KUR4wAn`&#ij=uwi?**Zdr;8FY-G-YT}VYJ^;pn;Y9s}j|q}C;IB%) z#~S$Q9EuAc^ccVcT%GT%6<4>)XnmGcd7C)DuilzdtUPJ~#TQ<~XI4Ac@U_4efp=HERGIkljLdq@uZQME$PDi+8WZX&@uuodJ(j@qP zr2q+7bk@|e7_fB_u5Vxi--eeuob~X7!CP$;WXOU`8h*nyKPE37T;Dgd=s)!#j3x9k5MfAGuHd-Z8!5b$`NU2% zY$LD<#2@0N*aj8DfNTl{urF#2#|DX^JV3VUdQ4y|#cp>>VB?n`U8RNCz_e{m>8%pm z1UB$aORc1X|0>xjEisIGvSFNok#fHLmcbKMl)XQtGd9e=fNKqKxb>W2!uU2|?#JJz} zApqB*n4o|^l+ichN&W^nYCMv4*_D$KGqfA|n(~5Q-dCPm2SdurASt8{ECU)&kpy;u zCjO8f&CnG9q`1NK^8>$;vx*8BYh5giPpMsT<2UhVd?F}r zv>nP4&9PRcZFa0u+K>hVRCy+lLU}=dd8c+jNg&&nTbzsiFdaW@(07 zXl|&H%vkYZK>(t{~uO5G#Qn zhz|q13~(=K*>R(|NO-e^JRO6(`eD|f6*?r?9DO)kiT0FUepRZ%M+m%as@eNMi17qC zD<8~PoneYi@5KPuPO*b=8*m@se}-ZsA0Qw|^bJW<#o&0uu0c28_r?{QAcU&44~)H< z9tG}lMu1l6Sxp~gNACK99vQxCa~iiRUNIL3pR+C75PBySl8%4%_RhKKpl#|+Cb5^~ zU>ti`Hn>pmj;gtjcwOL9kiHl4_8$2YvDMDyb_!j0A7ZG&xEPx8j3D}h!vx2WKEz<0 zGx5tE-vZpR206N9N8yme(t(MfZ~6{c@e@WdU}6M6rkzLLpsR66QBi^kY&Qz`u*WKL zCG0WGPJ^s1xMzcbM zroB9gRQF>YWf(Gqgte_?&LUn%ut#^nTt1rM@`SOyv%zJafJxn%T%zb;jnf1p+7Y}3 zrZY3LhxY}}rT5bjj+G7;SBVk_;fTYILFm)C5Ko#R2FX($YTB_&eUWL@A0wea0X1a& z?w7{8lx4NE%GOW-aK{%;Ll9Xf zBY=aleKA0zM|p_X^5Y$C*fFpcoPV(xg2{}fiK3iU4=^niTtL1x-x2>VFI-?Q7w(aI z?NC;*wG*-dzJy*K_?GkqD}2X&OUxj^UG9j34$L(<496Vyi~4Y`=JZ8mSQx2SI0!|Z z8*1hNJq+|D|5<2uDg+4yi*LK-3k(fg039~rSBryi#9_TAse@R`5F@f@CeeZu^A75!u9$aVi1F|K%dQNyU^?_|gKIJu z*|)3ty7Eb#niFQNQQuY%iZ;kFU(f>xm70^42WujsGXG&H-9tl(5~;b(CSqApe3-H<0{TVO&*5 zb-K38%^Io@9OR?UR}L+X(L9Rl@`pg_fi>aJ_D%*xY?Ar{`AA6^`lY@%KE{r9jA6R) zt_sgx+$GSX!8IV%tlMdp6DIQ@3bUTqkI!GX9D@XCbG}!Ao(T?DgD!yOo%x;fEzIn! zLOa(;Is@b2!=kZpP*&LqG5&;d$>e<74$XX`adwBMr56uzZ4WWuU0Dc+bgF<3T)nD@ zCBdiXh|%9TwT#^qhu0IrtSyauvvCGr&oDEvgqFvv%)D()Hq@#WbHMQyjmpM2shpfO zc&Ry1x0aW{69cW&WS{__u;(>uWJU#UkTj-E3~oEJckQxkIN(E8aRtHG^MIyop1lK` z?PLx^1=84@M!e-sK(>O$HAh&3=o~5xK`!L2=eHz=&=&+D>#!9qISj{K0y9&Bvm00Q z^`cR5D?55!{REvI^myXxR$olBrTT|uvdR&dr3p8@!oO`z5@itrm*_o07IA0zcKL)} z9E?M+0UbU$xY~G{uNU>rS`|-=)V#T48h14Jd77HGA!p3q-07|Ns7DjJRoav~NpC`- z3n}-YhbZ-2N7(}9(wdH$HonfB<-niBt#Pjhfr+wj9=^wBVJN0X5iLh%p|v*XH?Xk7 z8U&+j-~ma=x>-}9`nBy?2YH#c376MFtoZy8fH+9xe zYsRYz9Spr79rQ~jjm(mBg|4H;fY}u0e?ebW!i3omm=Z7>PGVKqN`#6GmyDp~!~P;C z%FalHeicxvH7oKeVEP5&u3U-T1%(Yq0dZr4#NQI61s(%@bmhwKr#i+F7!ff+3%Jf2 z8lb`%Y-6Xv`t}qxbdU{F?&Zcdue1_#x@6I1WNv;@IDNbBh};olBp zJQcTwO03g0C|!CDY9`)UW7f&2EF8Il@nUoe;?jdI#xEX-O(M?_48d-4Y&Vwe;yr-2NH!4ZdH0~b{|XqI@)T2i55f|YdF zr=D_GHT0wB^XMg#imlAS^=oW0#$6*yf8av&whCu_H zLf>@-nzecX0}f_$KWFq4YSxI4K1Hu#f_EOI92|T^J0g%D=mkyRtdoJE5n!F?IGh`% zb84g+dYCWGFt4I5IFF*l5T^Eb#6HG>luA8WdgHDq`cYTg@%uV_V9VcFfr}ZOSr=5C z7AeCA7FxrG;PRw!aV!ozEE?_HfScpoP_jBty zymJz?m|Q=)8nz^_3Gt?)8AWQu=D1-5lZi@@xj-#1W*JejBp(zOF^`l8C~7zyc38Rw zYur~gQDf~&-2~j2hq0-jA%$il$kohm-Xh=|XseU<$SlAufIK0t06p;$iNV@n%{C2Y zk+i)+D`}A!>tWJZyo6E_#RwPzX@)vj*}c+r3oY};_^fN!YuTZ?zsML!4(~QE1Qer? z+$_N{Ns3d+teuBLZ_uRj;tYjD4#Uh#&K_eyX=Ag$3(HP2W(6%q4339zuQ(*mK{>MvH_E z;(AJiNDkh;XGryT&r;unSztK_%pjW7jfRl3)CVdW2uB#kryn4l}LS_~GtCS?Z0M$yQoj5)OX3zW2D9cCCW$bD+7 zImk?c;5y(Q7mou+Jukm&!h)Ji%zX7T&A1}otw*e|z=!n05ju64t#|P**n_21Rj`u% zcn2E>OjvIPw{My9|y<{SG>nw;zh9W2K=&@h-?6dK8`& zTSb=|hLeqjg{r)c;0)w7Fb+O!7)u1x3VoWa&n#oj2RtQ*9vv%$t_dpq2tqf~t*xe9 zXor#(B2Er(_C?2lV?IkOnzjSm;jbX8z`H|0oKHVo_UYc&8pdqUcok<~_Ff1}=Oec* zcbk1__SvYD-%)ww5Ij)jYQe(gcI~vuzer?dO?L4K?}Fr3g|-}n0}fj@SyGv9eMz7- znNebA-ZFucBY?aRKi7AL+BMm%e3;+iQQehcfYGh1u3p(4RyD!jnbx0Ln1TtYY=`IF z83>0Qc5O0mTZg$}#rmQ<8vwd`CXA1q##AAT=`{8R6ujfAo^6cc7)?W5)w9C(lEv=z z0h}xzHHJL+A(P~Qks37w=xC=p#xQ4dupBr{0kfQ!*jX^N#hVZ>)2kRKGmbP9OPkqu z2zDdnRAy}>1gta}EbbwyQ8%6g3^2qavbO>?JQv(cCFnli!G=*=bVpY+tX13L7h9^Y z5alE&dCU0Jp+MGByg0%S0QZ9J(^2`k{_6EZQnG-NUpO z#XUjC(k<1zATvVsa& z#nLF~-(AbH*&-K4sKcwADZ&`VnVI^dNHAR#KG$*|Cc6(Kw-OmbC1GPiTX3|Rwq24X z6H}SD8X4$k2RqQPUyGroJ25OYK{ZVF(TdA_ucwx(j*_2u54K8pF*>c%dZ2u^SiI&` zn4WDgmWUg>ViZ5tF1uG!Hurv+@%rsA8GKs2u$w`GUtecqC^}eVA z4Zf^h7_}Az&8z6}0`y_cMHMK67nPmi$2!avFzZJH%;dh7rnVsx9X^tFfR=g10*X=` z<&wJsohf|S4SBe)HTC{4oj(~Z!H1O!USn)Qn*##{(q@GEZ8X*Sprv8(!G;u=h4U1M z&n+y}MwvqQdS)GB0cLpyO*eMo4Y$Nrx)NJ9Wnk*fQFchppp(^QQ5@-vx5|DQfn>qj zW}QM9%a3)KIbagTYL?TgY&zrE1M`PXFbWZ3X>vG7@xl>J3 zd*`T(8^eMsRUJv43L;&>vAwXL?#8h*`>_tQ228jQ@JozetMvdv`7>1@#;^5M_nMD? z$FMD`AaIDnchwlNN7W1b3e1eQ8w?`jZ4O%K@ES2$9*LwHe)ELhcpl!0OC-$P=I z0jeMDFnhq{L<+2c>w?PmMTTOJX>D{jpydhZ-A>(Nfpx3Ty#kfSxyh1`+}ly810Cnl zK{qdZwF;9KR!!6tMbXp^Zcq!_;Dl5Tw8D(Op3kAIv(^3pYfefuCbDY^YN}Nz@>E&q zd*h|Bn$2KQsk_g2v?I{MNP)QKTXU?C9b;gEmA$#N?VwiC4kn!mKsfDm77o(Ye&V6w zVGb5&0ARI?42Iu_qr#@oBw5QbprIY>Aj4`EnkXo(oz4a%2rtm$E2I>!n})AbG|Tx| zc}Lu9oOm;nx8V0>`8{f~4YsOZ-PI4QPYnhuhfQ#&aBlw1_rN=|6=@{+#6{@$3I{$o zs1xjahTwo|SR8p+GiZVY>tME_v1Pe1&|1}+W>QQvusRaZ=VPe_oAs=U?|O5)rR68n zg>2a?2@EVltKyS$w`X1PH7yUAhQm>ZO@l^2Y}$?9Y@I@247x23WJu}*v?lnOlPiy< z22IX5#(Fqh=4P}4&+~utj16+<1lue}B?;Kp5yh;qYg7kwr;gaJ+}Y;%SQf^x;JgR5 zSl3}C!t#f>gQJ6ECuN8G-o{lIR#uHN#~-1Dnc4&UErF((+V>}^CLI`B)z5X5ValKl z*p#^y1mhOC#_RzV@g7deC(dFx2ejkrw;=mq1Pj)Wz8J_`Z_K(@rU3f8`b_5pNXs_s z41@;20f$k8I$&3>1q&R+g0r@YfV!7@2*;r_i2y41dn zH_U6j!ABnod^6!#9;|<5z2{Bh^K3@}VGWE!5A)VJm(B)Kh0acnMV4G^=iKE+=kCy9 z|JS^sZNV1mgf)q>-C7*L0j(E%kd%EBn^0PK4xN-=+StS!wDTQp*tyQWqqV#q%0U6} zt*%d4M{PXdW|mX5Honxbjk5!=9tF`6<+|t6coan8Lon^Z?E!jKDZIuNmW@6ryql$) z7dX_=KeSj__JjZjoGyrMI7DrhNzw6VC`(F5A^hn0t5C0SUDy@F*{-u0bh3pECSJ#j zuaoycbQm?!*&x08qM@!TF5J|1Px>B+SD>9WA6A#=-Ku4s?q!N08ce^@xSSv1at>#7EzZyMhw zQ%^+SHu1X=-_bu!aOyXpvve?acb!qJE$1SBqE3c@BOoHXRhWvw99UCtXb#RhZ`g`s z!wzewLmG1#Y)*5i*Orqszv^qzh{9&usWSJ_gm>0F{WF(X8uYLtwQ~Ce)J5&gr9~F> zU2mn`pPs+rhS_5uG`#nzaJx>P=opT7)^{EH4=NW{w|LJ_!8~zsq++|p$|Dlh{v5qw zg3x1TVR{G74rkP&+}|m{9D&r4PQAHt%%`WYesr-w1Jxf~qOq!WoTMq<5YtcYsA9OK z*^(AYqnuDzFhmWt43O{}5_|J&BGQ8&5Fk&^aU9;7U7#Y^fWrd93n5eMHW_Z#K-9uv z8Thbzx$Hzc*dnubN?PS-Iv*C$nrocS)B5Nm9Vr|^)nTqA%-n-NVD7lhB3#ZhE2&@& z&PE?baB>sG660#ywZn=YzOAd0n=CTHZEQ+~i&q*T$dW3UueMfNtf&aCqttZcBlTq4?+gkZbprHq|I z+(0&5F?_Y8BOjf7U0J(LMb~#s6SlQa-kUbU4lXw7|S-<5YTe;^Rq1W+OV}*$gs^Rb4>K)SP_CFnK^2fv9iHaZX4kpN%i)r zkxvabS^T8b^BR@p?ZjG-HjzjHLIc;q_C)yO_5DyprV!4oi9khY05;@p_~;RQ=;W0F zW~ZIdk%Ky~zBMFmyv;P+Qfl$?UL~)3NU9_`bQ=83#HPT?O%YnXfRSwMX#yqbJB-(YEWF3FeFQyoQbE5k6C&E$gl1jYZJE-HF|MVJ+KN@C1-j5b!a( z&}LWj0gcp(wQPgQ;p{8gy3gKdd!S`Q0Mx0z=FW|tJe(sPtlY$D&PTokzg*5Bxu6~i1E4-#gOsr~| za*KxeYFM*k)k}NDx_cZgnIacfAYAY>=%03u*Kn#~ais-CtaHNFR`QH}^aeWvY@>%A zV3&Rh2RX`c8M~%ol&&n*>)}*2xA;zC!pnL{+p(HwX6hcPQ@B*>Z4W7>9p2P10?!R$ zV_t!Iut{W?tZ}A~{L1&68d6JjAg+dZBza!blwQUFS98Z_XJ2>+j2r^cJ{`a11l%2<}weHGjh#ZRf<((=we>}L^eit zAM+{Rv&|vboX5e{T1GyK$-GSBVJ5pmmUYghbXNRzn-nka0&Lx|JCq)KJHi!=mQp5MHiR~iR0etUeexVn)2xcj zj^0qi*0HB^StY6HI9Jnsb1bR5^!0M`L}B4y{hw!^=$9ec{$@IsPt8LqL!UyMY1UBk zeYWc8J64niW5W)kS9OJi2hkjz;xG$Io2t8Qb3L)LybYI%MDXtm$u0#gw;4c$OJHH> z487WH3VPO2a*mGKa~M$Z8le3J!T@rY)7+UO4p4QSY0dQF%&0`}#lOI~czV1j>g{0c zSnJ~HtRBW-9u~%cjm7XfnbU(ZZfRH?U1T4;frkBKGaBy60wzX@eK4_-X|cY{K%q)d*IajDD*0ImtSi}4^ou%=N5WlZ*8x^HST)~wq zS>d*1`T)m0AIA(w=A6ij+L+t7zHA9sOK=#!4EFP>0C7WUIb39TJBjA;ra$J!wZBK0 zL^`yyEYlwx_<={=b%s#f6h}p*Xkuo^^f-%bK4z{x3_@hE*(z=MYDbwz3t+Tpr(Q>CH*? z^z1#vD@WMG89{uP!nk_eLcDVXK!MrG8)=w5cCt2Wohv$#0)nVYaofc)$&;vsts}hF zYzr-q%HxP+z2!Ng@+fn3{y#B4P<2?Lu>YX_yLCs!X+SpcFn^uPh8Oj-L8pfWX(p_> zTt$Te)b2Bfu3xW3t;}jqYj1uV)`{_p1~7K(!mVJ1rB9=B-A8Y*VE`pxgV{x=J%;Yr zq^Aq1jklP;;%( zrVGk_tMybD3NptyR<2?FSO(H9HqP9>vO*Iq#TS8ItE}(9hb_T8wmKZpyAPaP86#ramXGSHoSSfMOR)v>wP?Wa_)@R1Dh+z2+}uz7=I zOyD51A)EwQx?l~0(%gpBe7D}y&6sVxd|MgWjTZf~*IZ4`EKm|z{TCW7GTU;CmU0xL zBG?ON!|DyKQ#J#fwLQ+#LEYVrTu&lb-8cO)vSkV0YPp$WMXg(Ds0xTmN7R#4K{IuN z4{!J8X2*3bZf;@pxaGN8t5DId`Zcwys`-F>ixnzL+U`iJEn+-;xO!QV>C4Z;pU4PD zVNT$HO|~+!yKVG#E$=2}8(ik0Ypt3u)Kml;aTq^MgqC4ux^cm9*1A)h;&G6icDha7 zH_ok#Pp(|6Pw~`dX1V%cc8txf=w)&$Zk62MamH;yr=p!l)~JOE(9MF34QjDjXh!4_#@%qx5iYH1Z95(Q2Gq7(k8` zCCzD6UALpDjDD4KQa^Lb+MuSKYOAi2uRPp3V;u{)dN>+%<4TjI6FbcR#|AEr#v5k#M7bTtAh=mH8ERt3;V{H zt%n;X(k`U^s5f2vN{TLghn+B_To{x!>_@!lcDeR@s(uyQ8EmPddoFojzvhw;2b1;| zlEsR-#iUm%`K^Cx%Y4eQmOKSsdc$CE#mf~{R3U7@s!rLJpLn3W&9m5^l9f-bFde+L zEMG|rm{d4s@FEH`tD>7V=w+lc&jJDLkmvJj=$@2u)Sj-@B_&gCR+<))@F^ZmcX_d0 zv$;ll_BYq%Z`%5jFWQ_Yu#2Wz&DbGJ20fz(Hm(C zq`KPI0}$ZQwOxFF7H0=`;iMz#TXw(CWnbH6a_QuwDZpxPF;=Ss)@iVK(z9+n<27(8 zrs$-7p*KA*;0j~|zswz5MLQYHfoHBfTl#DtP7c^?cd7Rh&+=N>Q^4BgWyks&N1?Jt zZ3-4pxV9XAkroinLM00$e3Zm7WvhS<&;AAy-vGW(T^m0;Q;R;hM(XbOSoNOVTIMw` z+o<}SD;md|+Q`dsze(wg`oX@fjQaxMH~F}JLD-N-K%Rs=vp;bOkUNKi!F5;H$Sp~( zeW)Ip^dkb?M!Os>%JG~Q$Q(S3s$-!#c^56pl62{4Id>l^Ktr$*he4#m4=;mLmD7kU zX(N8hggWA92h?_+tnvzf`NK#e6IyE;qfkV2qj0Rf;QCi~w5%J!=Z3T4hm~Z3y@z-* ztJkezfm@&~=pIjXiKQMWWzsgFthbfSd2hv-Ep<2*lk*9c+UR^J!`X|WXh-br$r3h_ za$L0*QT5p!T}N#)8=y@fuSX6k)Woh#p8ZT~+l12lyJGRYb+ZdG^64mWK7?iT+rs#x zon2uXkc~TxV&eqH>ZYz4p+l;t&I=V!h5r8nFSkXCGqR0sr~7^x_~n}1dbkMFaBSRR z85=hN&vEGxZYb3K5*d2RyPM`&U(4DT?5?TpNRfI{c^4(}Q%U|Q-`uzdb8z9(y(Aw; zZ?It#p(-XEzDr?)n?xrCGVI=mEe2e-Ep^sEst*j&F{7t`W=|mbKXJU7f!pd zRq`B&<-!ln@SZxF7!AS(9p;fcv>ROjS9$ma(Mq5`_@`L{sh*%^gJuTFR;G;Cx_0-y z4@UwCq2;7`8T6}fHj!2El5_%IvDwiZY?#EZ<0JhFRJapzs;4ySPQ*;v%3||F*(o~P zl``K*owyXFUvANOX@Q}pUffc2HV_c3VcF=z9C8R0R%(;Fuqj_3l$JU3FD8chBz4;8 zndi0TDdY63ugQ|+I~BI*Rqm4-T=;@lZYvj=jl@sPZz4E5d!r3Yh>)kUmTy?`cDnC; zf0x}0GoB@{UX-4<`bj(MC+oHgUk0<6i2hR@GViM<&Q2lVtvNMbJ#s#;(81PIwm#!NwaY2<;IR#!ek_|kJB5!g`^G>-lW@YV<;W_~W zK6ap}D_y5{N?X~=)~wtf7G_W_YN^K@K_6^WwLcJ;9leo;C1hz= zrZ|mpBiwYvZ&s#f&fB?uN$ud+cF?x0w3~8nA%o{aZ)lgvhq38?#(WdOH;cR#p+VS? z!ya<68GKoTT)7q3^xm}T*vh5Q2X$5NneR+)mlw#Z9y_t+@Q$RES?C|ts%??66I=My z$tG5qAT&FBV-4%a?PhZg%gS(v^U}RV6drfvMm@K87wtoL9c`Oe?hgsu<8#)UGJjD= zb0(=n03*%Oc{I#+ztQ=^vayFPgnmG{)6Kr{8ISY;c`uUvc_#aS^cL+20_nBy-pxfJH8RJ`VIu)d##4cbR0jM(FPC zrOotIAkVFgw!P&VmpQ8T-4oSE8Jr^$0Dv%-8i5s-&K}~XX;nUS+RB^+YDo4Y{K8Bw zenot5Lyqs9v##QpYj^EmGab$AnueU;E?=H1`|wtn^gYvk#p2vXTlMLu6@M;oE3>yo z6n$FcI+CX|EF+6VX*+%FIOQS|u1HJGC+%iF6^gajdq0wIaj7r;NLJ}=#{-a__vjv# zPJ{)M`*F^EFA*Aq4f(Q+5MyR+YVmw;<Fg>yH`($L z%_wtQu9`g3VzlF)A?v=a;3~XunQm&O@-c)oIrMPYe0e@YB54)Y$Xz#t4Y>tm;a=4Z z8L>QfIFs1cZl-N+ho`OcI6H!w{k2tT9?$3)X9UAp6i$w^V@ckQqrk{_KG0ZA4QjxUzT8mI7K?{H9}|%W8=J<+{`|2k zrv#>hddO!2VfGDSLmmN{CATTvO-w5~xv6UvmuG78Qw2F^^G)e3%;#c2v|pB62MQEA z3<~05u2dVkWBApupDidPt6|unXMnb~yQZ6A^tv@#@@kKHyR(dFn01V8uGdMA5zomg z$I$5Wz}@wjtj>iJ(yNsbNzQdVn=W6wUkW#sac0Pw*Pdlb#?(nXgDTHZuZcTb|1!(F zf#-Z%0)()Ab`J7SoHq5L0Y~EhSpK7Aw8Qr!VN-zRqiIWZu&{Y_2HV3X!faq?oi*>F y10(vd1!~EE7wkDC0U}mzw(r19RtT*383~o^6jks42LJ&7{{sM@<_0h!g#ZB15^j(H literal 12547 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 ZRGP!8PX8YO009600|0|~Uw5N}006se4f_B9 From f7a4a6b9769e0028f5554f018fb58624a9c27bb8 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 18:23:02 +0100 Subject: [PATCH 10/11] paid plan info for basic empower users --- rowers/tests/testdata/testdata.csv.gz | Bin 12572 -> 12531 bytes rowers/views/workoutviews.py | 12 ++++++++++++ 2 files changed, 12 insertions(+) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index c1c85bf9a615ccdc5e0c5a6877f30f31b5e7d2ab..0c6c7fd2041ab80886b0fa574b83d4a69ccab55f 100644 GIT binary patch literal 12531 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

E>@Zpm<_Jc%b( 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 Jt)QKN005M;VI=?n literal 12572 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 diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index c95cfdda..a2dd3f36 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3328,6 +3328,18 @@ def workout_edit_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): raise PermissionDenied("Access denied") + if request.user.rower.rowerplan == 'basic' and 'speedcoach2' in row.workoutsource: + data = getsmallrowdata_db(['wash'],ids=[encoder.decode_hex(id)]) + try: + if data['wash'].std() != 0: + url = reverse('paidplans') + messages.info( + request, + 'Some Empower Oarlock data are only available to users with a paid plan'.format(u=url) + ) + except: + pass + form = WorkoutForm(instance=row) if request.method == 'POST': From 7dd156c8e3709db8226cfb97e649e514dd0b0e07 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 15 Mar 2019 19:19:38 +0100 Subject: [PATCH 11/11] fixed url --- rowers/tests/testdata/testdata.csv.gz | Bin 12531 -> 12523 bytes rowers/urls.py | 2 ++ 2 files changed, 2 insertions(+) diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 0c6c7fd2041ab80886b0fa574b83d4a69ccab55f..8c7458925e7b6c705f32aa763b435f40a62fa069 100644 GIT binary patch literal 12523 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

E>@Zpm<_Jc%b( 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 Jt)QKN005M;VI=?n diff --git a/rowers/urls.py b/rowers/urls.py index b7b67c0e..99a1dcf8 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -147,6 +147,8 @@ urlpatterns = [ name='workouts_view'), # url(r'^(?P\d+)/list-workouts/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/$',views.workouts_view, # name='workouts_view'), + url(r'^list-workouts/ranking/user/(?P\d+)/$',views.workouts_view,{'rankingonly':True}, + name='workouts_view'), url(r'^list-workouts/user/(?P\d+)/$',views.workouts_view, name='workouts_view'), # url(r'^list-workouts/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.workouts_view,