From 4b65cbf483b51c6e2f654ea153676e50d3a57423 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 3 Aug 2021 07:59:26 +0200 Subject: [PATCH] fixes issue #624 --- rowers/models.py | 5 ++--- rowers/plannedsessions.py | 4 ++++ rowers/templates/list_workouts.html | 10 +++++----- rowers/tests/test_unit_tests.py | 4 ++++ rowers/views/workoutviews.py | 9 ++++++--- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 89cac53a..d8035d00 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2222,6 +2222,7 @@ class TrainingMicroCycle(models.Model): return stri def save(self, *args, **kwargs): + if self.enddate < self.startdate: # pragma: no cover startdate = self.startdate enddate = self.enddate @@ -2249,9 +2250,7 @@ class TrainingMicroCycle(models.Model): if othercycle.enddate >= self.startdate and othercycle.enddate <= self.enddate: self.startdate = othercycle.enddate+datetime.timedelta(days=1) - - - if not self.enddate <= self.startdate: + if not self.enddate < self.startdate: super(TrainingMicroCycle,self).save(*args, **kwargs) class TrainingMesoCycleForm(ModelForm): diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index e57d9d2d..f1efda14 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -379,6 +379,10 @@ def get_todays_micro(plan,thedate=date.today()): if thismicro: thismicro = thismicro[0] + else: + mms = TrainingMicroCycle.objects.all() + + return None return thismicro diff --git a/rowers/templates/list_workouts.html b/rowers/templates/list_workouts.html index 21c5944d..c29deca2 100644 --- a/rowers/templates/list_workouts.html +++ b/rowers/templates/list_workouts.html @@ -115,14 +115,14 @@ + href="?page={{ workouts.previous_page_number }}&q={{ request.GET.q }}&when={{ timeperiod }}"> {% else %} - + - + {% endif %} @@ -138,14 +138,14 @@ + href="?page={{ workouts.paginator.num_pages }}&q={{ request.GET.q }}&when={{ timeperiod }}"> {% else %} - + {% endif %} diff --git a/rowers/tests/test_unit_tests.py b/rowers/tests/test_unit_tests.py index cebed126..ebc81d96 100644 --- a/rowers/tests/test_unit_tests.py +++ b/rowers/tests/test_unit_tests.py @@ -247,6 +247,7 @@ class PlannedSessionTests(TestCase): nextsunday = sundays[i] + micro = TrainingMicroCycle(startdate=monday, enddate=nextsunday, plan=cycle, @@ -255,6 +256,7 @@ class PlannedSessionTests(TestCase): micro.save() + # sessions startdatetime = self.w1.startdatetime @@ -346,6 +348,8 @@ class PlannedSessionTests(TestCase): def test_todays_micro(self): micro1 = plannedsessions.get_todays_micro(self.plan) micro2 = plannedsessions.get_todays_micro(self.plan,thedate=datetime.date.today()) + self.assertFalse(micro1 is None) + self.assertFalse(micro2 is None) self.assertEqual(micro1.id,micro2.id) def test_get_session_ids(self): diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 62dd7f64..669df38a 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -6170,9 +6170,12 @@ def workout_summary_edit_view(request,id,message="",successmessage="" df['time'] = rowdata.df['TimeStamp (sec)'].values - timeprev = int(df['time'].values[0]) - timenext = int(df['time'].values[result[0]]) - s = '{delta}sec'.format(delta=timenext-timeprev) + try: + timeprev = int(df['time'].values[0]) + timenext = int(df['time'].values[result[0]]) + s = '{delta}sec'.format(delta=timenext-timeprev) + except IndexError: + s = '0sec' for i in range(len(result)-1):