diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 39d09199..756299f5 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2199,15 +2199,16 @@ def interactive_chart(id=0,promember=0): hover.mode = 'mouse' - plot.extra_y_ranges["hrax"] = Range1d(start=100,end=200) - plot.line('time','hr',source=source,color="red", - y_range_name="hrax", legend="Heart Rate") - plot.add_layout(LinearAxis(y_range_name="hrax",axis_label="HR"),'right') + plot.extra_y_ranges["spmax"] = Range1d(start=10,end=45) + plot.line('time','spm',source=source,color="red", + y_range_name="spmax", legend="Stroke Rate") + plot.add_layout(LinearAxis(y_range_name="spmax",axis_label="SPM"),'right') plot.legend.location = "bottom_right" script, div = components(plot) + return [script,div] def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='', diff --git a/rowers/models.py b/rowers/models.py index 5ef03d68..db5795ed 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1349,6 +1349,7 @@ class VirtualRaceResult(models.Model): verbose_name='Weight Category') race = models.ForeignKey(VirtualRace) duration = models.TimeField(default=datetime.time(1,0)) + distance = models.IntegerField(default=0) boattype = models.CharField(choices=boattypes,max_length=40, default='1x', verbose_name = 'Boat Type' diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 847d2f26..10a11d8f 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -720,6 +720,7 @@ def add_workout_race(ws,race,r): return result,comments, errors record.coursecompleted=coursecompleted + record.distance = int(coursemeters) record.workoutid=ws[0].id record.duration = duration record.save() diff --git a/rowers/sporttracksstuff.py b/rowers/sporttracksstuff.py index 94e1eddf..d8de7b20 100644 --- a/rowers/sporttracksstuff.py +++ b/rowers/sporttracksstuff.py @@ -102,6 +102,11 @@ def do_refresh_token(refreshtoken): refresh_token = token_json['refresh_token'] except KeyError: refresh_token = refreshtoken + try: + expires_in = int(expires_in) + except (TypeError,ValueError): + expires_in = 0 + return [thetoken,expires_in,refresh_token] @@ -131,6 +136,10 @@ def get_token(code): refresh_token = token_json['refresh_token'] except KeyError: refresh_token = refreshtoken + try: + expires_in = int(expires_in) + except (ValueError,TypeError): + expires_in = 0 else: return [0,0,0] diff --git a/rowers/templates/course_view.html b/rowers/templates/course_view.html index 89b8b03d..fa10318a 100644 --- a/rowers/templates/course_view.html +++ b/rowers/templates/course_view.html @@ -40,7 +40,7 @@ Country{{ course.country }} - Notes{{ course.notes }} + Notes{{ course.notes|linebreaks }} diff --git a/rowers/templates/racelist.html b/rowers/templates/racelist.html index b2f391b1..2784b896 100644 --- a/rowers/templates/racelist.html +++ b/rowers/templates/racelist.html @@ -8,6 +8,7 @@ Event Country Course + Distance Click for Details @@ -25,6 +26,7 @@ {{ race.name }} {{ race.course.country }} {{ race.course.name }} + {{ race.sessionvalue }} m {% if rower %} {% if race|can_register:rower %} diff --git a/rowers/templates/virtualevent.html b/rowers/templates/virtualevent.html index 954f66b4..8fe2c290 100644 --- a/rowers/templates/virtualevent.html +++ b/rowers/templates/virtualevent.html @@ -23,6 +23,9 @@ Course{{ race.course }} + + Distance{{ race.sessionvalue }} m + Registration closure {{ race.registration_closure }} @@ -98,6 +101,7 @@   Boat Time + Distance Details @@ -114,6 +118,7 @@ {{ result.weightcategory }} {{ result.boattype }} {{ result.duration |durationprint:"%H:%M:%S.%f" }} + {{ result.distance }} m Details diff --git a/rowers/views.py b/rowers/views.py index 057c5737..e06f9591 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2662,6 +2662,7 @@ def rower_process_sporttrackscallback(request): access_token = res[0] expires_in = res[1] refresh_token = res[2] + expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in) r = getrower(request.user) @@ -9597,6 +9598,8 @@ def workout_sporttracksimport_view(request,message=""): if (r.sporttrackstoken == '') or (r.sporttrackstoken is None): s = "Token doesn't exist. Need to authorize" return HttpResponseRedirect("/rowers/me/sporttracksauthorize/") + else: + return HttpResponseRedirect("/rowers/me/sporttracksrefresh/") message = "Something went wrong in workout_sporttracksimport_view" messages.error(request,message) if settings.DEBUG: @@ -13624,6 +13627,7 @@ def virtualevent_create_view(request): course=geocourse, comment=comment, sessiontype = 'coursetest', + sessionvalue = sessionvalue, timezone=timezone_str, evaluation_closure=evaluation_closure, registration_closure=registration_closure,