From 5c5000a7b4165166254d4f9114738f8f2edc0a1a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 13 Feb 2021 17:25:29 +0100 Subject: [PATCH] fixifix --- rowers/models.py | 17 +- rowers/tests/test_plans.py | 629 +++++++++++++++++++------------------ rowers/views/planviews.py | 15 +- 3 files changed, 339 insertions(+), 322 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index ce237c9e..18fd9ae1 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2301,6 +2301,15 @@ class PlannedSession(models.Model): return stri + def update_json(self): + # read file + if self.fitfile: + steps = steps_read_fit(settings.MEDIA_ROOT+'/'+self.fitfile.name) + self.steps_json = json.dumps(steps) + + self.save() + + def save(self, *args, **kwargs): if self.sessionvalue <= 0: self.sessionvalue = 1 @@ -2359,8 +2368,7 @@ class PlannedSession(models.Model): if self.preferreddate < self.startdate: self.preferreddate = self.startdate - print(self.fitfile) - super(PlannedSession,self).save(*args, **kwargs) + #super(PlannedSession,self).save(*args, **kwargs) # read file if self.fitfile: @@ -2370,11 +2378,8 @@ class PlannedSession(models.Model): steps = steps_read_fit(settings.MEDIA_ROOT+'/'+self.fitfile.name) self.steps_json = json.dumps(steps) - try: - super(PlannedSession,self).save(*args, **kwargs) - except: - pass + super(PlannedSession,self).save(*args, **kwargs) from django.core.validators import RegexValidator,validate_email diff --git a/rowers/tests/test_plans.py b/rowers/tests/test_plans.py index cd93bd29..25e10e34 100644 --- a/rowers/tests/test_plans.py +++ b/rowers/tests/test_plans.py @@ -10,6 +10,7 @@ nu = datetime.datetime.now() from rowers.utils import allmonths,allsundays import rowers.plannedsessions as plannedsessions +from django.db import transaction @override_settings(TESTING=True) class TrainingPlanTest(TestCase): @@ -37,134 +38,136 @@ class TrainingPlanTest(TestCase): pass def test_createplan(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + with transaction.atomic(): + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) - url = '/rowers/createplan/' - response = self.c.get(url) - self.assertEqual(response.status_code,200) + url = '/rowers/createplan/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) - # add target + # add target - targetdate = (nu+datetime.timedelta(days=300)) + targetdate = (nu+datetime.timedelta(days=300)) - form_data = { - 'name': faker.word(), - 'date': targetdate.strftime("%Y-%m-%d"), - 'notes': faker.text(), - } + form_data = { + 'name': faker.word(), + 'date': targetdate.strftime("%Y-%m-%d"), + 'notes': faker.text(), + } - targetform = TrainingTargetForm(form_data,user=self.u) - self.assertTrue(targetform.is_valid()) + targetform = TrainingTargetForm(form_data,user=self.u) + self.assertTrue(targetform.is_valid()) - response = self.c.post(url,form_data) - self.assertEqual(response.status_code,200) + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) - form_data = { - 'name': faker.word(), - 'target': '1', - 'startdate': nu.strftime("%Y-%m-%d"), - 'enddate': targetdate.strftime("%Y-%m-%d"), - 'active': True, - } + form_data = { + 'name': faker.word(), + 'target': '1', + 'startdate': nu.strftime("%Y-%m-%d"), + 'enddate': targetdate.strftime("%Y-%m-%d"), + 'active': True, + } - newplanform = TrainingPlanForm(form_data,user=self.u) - self.assertTrue(newplanform.is_valid()) + newplanform = TrainingPlanForm(form_data,user=self.u) + self.assertTrue(newplanform.is_valid()) - response = self.c.post(url,form_data) - self.assertEqual(response.status_code,200) + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) - urlplan = '/rowers/plan/1/' - response = self.c.get(urlplan) - self.assertEqual(response.status_code,200) + urlplan = '/rowers/plan/1/' + response = self.c.get(urlplan) + self.assertEqual(response.status_code,200) - html = BeautifulSoup(response.content,'html.parser') - urls = [a['href'] for a in html.find_all('a')] + html = BeautifulSoup(response.content,'html.parser') + urls = [a['href'] for a in html.find_all('a')] - for url in urls: - if 'macrocycle' in url and 'delete' not in url: - macrourl = url - print(macrourl) - response = self.c.get(macrourl) - self.assertEqual(response.status_code,200) + for url in urls: + if 'macrocycle' in url and 'delete' not in url: + macrourl = url + print(macrourl) + response = self.c.get(macrourl) + self.assertEqual(response.status_code,200) - form_data = { - 'name':faker.word(), - 'startdate':nu.strftime("%Y-%m-%d"), - 'enddate':targetdate.strftime("%Y-%m-%d"), - 'notes':faker.text(), - } + form_data = { + 'name':faker.word(), + 'startdate':nu.strftime("%Y-%m-%d"), + 'enddate':targetdate.strftime("%Y-%m-%d"), + 'notes':faker.text(), + } - macroform = TrainingMacroCycleForm(form_data) - self.assertTrue(macroform.is_valid()) + macroform = TrainingMacroCycleForm(form_data) + self.assertTrue(macroform.is_valid()) - response = self.c.post(macrourl,form_data,follow=True) - self.assertEqual(response.status_code,200) - self.assertRedirects(response, - expected_url='/rowers/plan/1/macro/3/', - status_code=302,target_status_code=200) + response = self.c.post(macrourl,form_data,follow=True) + self.assertEqual(response.status_code,200) + self.assertRedirects(response, + expected_url='/rowers/plan/1/macro/3/', + status_code=302,target_status_code=200) - response = self.c.get(urlplan) - self.assertEqual(response.status_code,200) + response = self.c.get(urlplan) + self.assertEqual(response.status_code,200) - html = BeautifulSoup(response.content,'html.parser') - urls = [a['href'] for a in html.find_all('a')] + html = BeautifulSoup(response.content,'html.parser') + urls = [a['href'] for a in html.find_all('a')] - for url in urls: - if 'planbymonths' in url: - print(url) - response = self.c.get(url,follow=True) - self.assertEqual(response.status_code,200) + for url in urls: + if 'planbymonths' in url: + print(url) + response = self.c.get(url,follow=True) + self.assertEqual(response.status_code,200) - response = self.c.get('/rowers/plan/1/macro/3/') - self.assertEqual(response.status_code,200) + response = self.c.get('/rowers/plan/1/macro/3/') + self.assertEqual(response.status_code,200) - html = BeautifulSoup(response.content,'html.parser') - urls = [a['href'] for a in html.find_all('a')] + html = BeautifulSoup(response.content,'html.parser') + urls = [a['href'] for a in html.find_all('a')] - tested = False + tested = False - for url in urls: - if 'planbyweeks' in url and not tested: - response = self.c.get(url,follow=True) - self.assertEqual(response.status_code,200) - tested = True + for url in urls: + if 'planbyweeks' in url and not tested: + response = self.c.get(url,follow=True) + self.assertEqual(response.status_code,200) + tested = True # add test for creating new sessions def test_sessions_create(self): + with transaction.atomic(): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) - url = reverse('plannedsession_create_view') + url = reverse('plannedsession_create_view') - startdate = nu.date() - enddate = (nu+datetime.timedelta(days=3)).date() - preferreddate = startdate + startdate = nu.date() + enddate = (nu+datetime.timedelta(days=3)).date() + preferreddate = startdate - response = self.c.get(url) - self.assertEqual(response.status_code,200) + response = self.c.get(url) + self.assertEqual(response.status_code,200) - post_data = { - 'comment': faker.text(), - 'criterium': 'none', - 'enddate': enddate.strftime("%Y-%m-%d"), - 'preferreddate': preferreddate.strftime("%Y-%m-%d"), - 'startdate': startdate.strftime("%Y-%m-%d"), - 'sessionmode':'time', - 'sessiontype':'session', - 'sessionunit':'min', - 'sessionvalue': '60', - 'name': faker.word(), - } + post_data = { + 'comment': faker.text(), + 'criterium': 'none', + 'enddate': enddate.strftime("%Y-%m-%d"), + 'preferreddate': preferreddate.strftime("%Y-%m-%d"), + 'startdate': startdate.strftime("%Y-%m-%d"), + 'sessionmode':'time', + 'sessiontype':'session', + 'sessionunit':'min', + 'sessionvalue': '60', + 'name': faker.word(), + } - print('posting to sessions/create') + print('posting to sessions/create') - form = PlannedSessionForm(post_data) - self.assertTrue(form.is_valid()) + form = PlannedSessionForm(post_data) + self.assertTrue(form.is_valid()) - response = self.c.post(url,post_data) - self.assertEqual(response.status_code,200) + response = self.c.post(url,post_data) + self.assertEqual(response.status_code,200) @@ -220,122 +223,124 @@ class SessionLinkTest(TestCase): pass def test_plannedsessions(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + with transaction.atomic(): + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) - w = self.user_workouts[0] - startdatetime = w.startdatetime + w = self.user_workouts[0] + startdatetime = w.startdatetime - startdate = (startdatetime-datetime.timedelta(days=1)).date() - enddate = (startdatetime+datetime.timedelta(days=1)).date() + startdate = (startdatetime-datetime.timedelta(days=1)).date() + enddate = (startdatetime+datetime.timedelta(days=1)).date() - url = '/rowers/sessions/' - response = self.c.get(url) - self.assertEqual(response.status_code,200) + url = '/rowers/sessions/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) - post_data = { - 'startdate':startdate.strftime("%Y-%m-%d"), - 'enddate': enddate.strftime("%Y-%m-%d"), - } - - response = self.c.post(url,post_data) - self.assertEqual(response.status_code,200) - - url2 = '/rowers/sessions/manage/' - response = self.c.get(url2,post_data) - self.assertEqual(response.status_code,200) - - pss = PlannedSession.objects.filter(startdate=startdate,enddate=enddate) - - self.assertTrue(len(pss)>0) - - ps = pss[0] - - post_data = { - 'plannedsession': str(ps.id), - 'workouts':[str(w.id)], + post_data = { + 'startdate':startdate.strftime("%Y-%m-%d"), + 'enddate': enddate.strftime("%Y-%m-%d"), } - plannedsessionstuple = [] - for ps in pss: - sessiontpl = (ps.id,ps.__str__()) - plannedsessionstuple.append(sessiontpl) + response = self.c.post(url,post_data) + self.assertEqual(response.status_code,200) - plannedsessionstuple = tuple(plannedsessionstuple) + url2 = '/rowers/sessions/manage/' + response = self.c.get(url2,post_data) + self.assertEqual(response.status_code,200) + + pss = PlannedSession.objects.filter(startdate=startdate,enddate=enddate) + + self.assertTrue(len(pss)>0) + + ps = pss[0] + + post_data = { + 'plannedsession': str(ps.id), + 'workouts':[str(w.id)], + } + + plannedsessionstuple = [] + for ps in pss: + sessiontpl = (ps.id,ps.__str__()) + plannedsessionstuple.append(sessiontpl) + + plannedsessionstuple = tuple(plannedsessionstuple) - url2 += '?startdate={startdate}&enddate={enddate}'.format( - startdate=startdate.strftime("%Y-%m-%d"), - enddate = enddate.strftime("%Y-%m-%d"), - ) + url2 += '?startdate={startdate}&enddate={enddate}'.format( + startdate=startdate.strftime("%Y-%m-%d"), + enddate = enddate.strftime("%Y-%m-%d"), + ) - workoutdata = {} - workoutdata['initial'] = [] + workoutdata = {} + workoutdata['initial'] = [] - choices = [] - for w in self.user_workouts: - wtpl = (w.id,w.__str__()) - choices.append(wtpl) + choices = [] + for w in self.user_workouts: + wtpl = (w.id,w.__str__()) + choices.append(wtpl) - workoutdata['choices'] = tuple(choices) + workoutdata['choices'] = tuple(choices) - form = PlannedSessionSelectForm(plannedsessionstuple,post_data) + form = PlannedSessionSelectForm(plannedsessionstuple,post_data) - self.assertTrue(form.is_valid()) + self.assertTrue(form.is_valid()) - form = WorkoutSessionSelectForm(workoutdata,post_data) - self.assertTrue(form.is_valid()) + form = WorkoutSessionSelectForm(workoutdata,post_data) + self.assertTrue(form.is_valid()) - response = self.c.post(url2,post_data) - self.assertEqual(response.status_code,200) + response = self.c.post(url2,post_data) + self.assertEqual(response.status_code,200) - urlsession = '/rowers/sessions/{id}/'.format(id=ps.id) + urlsession = '/rowers/sessions/{id}/'.format(id=ps.id) - response = self.c.get(urlsession) - self.assertEqual(response.status_code,200) + response = self.c.get(urlsession) + self.assertEqual(response.status_code,200) - url = '/rowers/sessions/coach/' - response = self.c.get(url) - self.assertEqual(response.status_code,200) + url = '/rowers/sessions/coach/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) def test_multiplesessions(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + with transaction.atomic(): + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) - pss = PlannedSession.objects.all() + pss = PlannedSession.objects.all() - earliestdate = min([ps.startdate for ps in pss]) - latestdate = max([ps.enddate for ps in pss]) + earliestdate = min([ps.startdate for ps in pss]) + latestdate = max([ps.enddate for ps in pss]) - url = '/rowers/sessions/multicreate/?when={be}/{en}'.format( - be = earliestdate.strftime("%Y-%m-%d"), - en = latestdate.strftime("%Y-%m-%d"), - ) + url = '/rowers/sessions/multicreate/?when={be}/{en}'.format( + be = earliestdate.strftime("%Y-%m-%d"), + en = latestdate.strftime("%Y-%m-%d"), + ) - response = self.c.get(url) - self.assertEqual(response.status_code,200) + response = self.c.get(url) + self.assertEqual(response.status_code,200) - url = '/rowers/sessions/multicreate/user/{userid}/extra/1/?when={be}/{en}'.format( - be = earliestdate.strftime("%Y-%m-%d"), - en = latestdate.strftime("%Y-%m-%d"), - userid = self.u.id - ) + url = '/rowers/sessions/multicreate/user/{userid}/extra/1/?when={be}/{en}'.format( + be = earliestdate.strftime("%Y-%m-%d"), + en = latestdate.strftime("%Y-%m-%d"), + userid = self.u.id + ) - response = self.c.get(url) - self.assertEqual(response.status_code,200) + response = self.c.get(url) + self.assertEqual(response.status_code,200) - url = '/rowers/sessions/multiclone/user/{userid}/?when={be}/{en}'.format( - be = earliestdate.strftime("%Y-%m-%d"), - en = latestdate.strftime("%Y-%m-%d"), - userid = self.u.id - ) + url = '/rowers/sessions/multiclone/user/{userid}/?when={be}/{en}'.format( + be = earliestdate.strftime("%Y-%m-%d"), + en = latestdate.strftime("%Y-%m-%d"), + userid = self.u.id + ) - response = self.c.get(url) - self.assertEqual(response.status_code,200) + response = self.c.get(url) + self.assertEqual(response.status_code,200) # 2019-01-13, rScore 69, @@ -456,144 +461,146 @@ class SessionCompleteTest(TestCase): pass def test_session1_complete(self): - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_rscore,self.r - ) - - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_rscore - ) - - self.assertEqual(verdict,'on target') - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_dist,self.r + with transaction.atomic(): + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_rscore,self.r ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_dist - ) - - self.assertEqual(verdict,'on target') - - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_time,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_rscore ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_time - ) + self.assertEqual(verdict,'on target') - self.assertEqual(verdict,'on target') + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_dist,self.r + ) - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_trimp,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_dist ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_trimp - ) + self.assertEqual(verdict,'on target') - self.assertEqual(verdict,'on target') + + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_time,self.r + ) + + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_time + ) + + self.assertEqual(verdict,'on target') + + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_trimp,self.r + ) + + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_trimp + ) + + self.assertEqual(verdict,'on target') def test_session_comment(self): - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + with transaction.atomic(): + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) - url = reverse('plannedsession_comment_view',kwargs={'id':self.ps_rscore.id}) + url = reverse('plannedsession_comment_view',kwargs={'id':self.ps_rscore.id}) - response = self.c.get(url) - self.assertEqual(response.status_code,200) + response = self.c.get(url) + self.assertEqual(response.status_code,200) - form_data = { - 'comment': faker.text() - } + form_data = { + 'comment': faker.text() + } - form = WorkoutCommentForm(form_data) - self.assertTrue(form.is_valid()) + form = WorkoutCommentForm(form_data) + self.assertTrue(form.is_valid()) - response = self.c.post(url,form_data,follow=True) - self.assertEqual(response.status_code,200) + response = self.c.post(url,form_data,follow=True) + self.assertEqual(response.status_code,200) def test_session1_exact_complete(self): - self.ps_rscore.criterium = 'exact' - self.ps_rscore.save() + with transaction.atomic(): + self.ps_rscore.criterium = 'exact' + self.ps_rscore.save() - self.ps_dist.criterium = 'exact' - self.ps_dist.save() + self.ps_dist.criterium = 'exact' + self.ps_dist.save() - self.ps_time.criterium = 'exact' - self.ps_time.save() + self.ps_time.criterium = 'exact' + self.ps_time.save() - self.ps_trimp.criterium = 'exact' - self.ps_trimp.save() + self.ps_trimp.criterium = 'exact' + self.ps_trimp.save() - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_rscore,self.r - ) - - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_rscore - ) - - self.assertEqual(verdict,'on target') - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_dist,self.r + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_rscore,self.r ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_dist - ) - - self.assertEqual(verdict,'on target') - - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_time,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_rscore ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_time - ) + self.assertEqual(verdict,'on target') - self.assertEqual(verdict,'partial') + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_dist,self.r + ) - result = plannedsessions.remove_workout_plannedsession(self.w1,self.ps_time) - - self.assertEqual(result,1) - - result = plannedsessions.remove_workout_plannedsession(self.w1,self.ps_time) - - self.assertEqual(result,0) - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_trimp,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_dist ) - - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_trimp - ) - - self.assertEqual(verdict,'on target') + self.assertEqual(verdict,'on target') - login = self.c.login(username=self.u.username, password=self.password) - self.assertTrue(login) + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_time,self.r + ) - url = '/rowers/sessions/{id}/'.format(id=self.ps_trimp.id) + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_time + ) - response = self.c.get(url) - self.assertEqual(response.status_code,200) + self.assertEqual(verdict,'partial') - url = '/rowers/sessions/' - response = self.c.get(url) - self.assertEqual(response.status_code,200) + result = plannedsessions.remove_workout_plannedsession(self.w1,self.ps_time) + + self.assertEqual(result,1) + + result = plannedsessions.remove_workout_plannedsession(self.w1,self.ps_time) + + self.assertEqual(result,0) + + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_trimp,self.r + ) + + + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_trimp + ) + + self.assertEqual(verdict,'on target') + + + login = self.c.login(username=self.u.username, password=self.password) + self.assertTrue(login) + + url = '/rowers/sessions/{id}/'.format(id=self.ps_trimp.id) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + url = '/rowers/sessions/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) @override_settings(TESTING=True) @@ -711,47 +718,47 @@ class ChallengeCompleteTest(TestCase): pass def test_challenge1_complete(self): - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_rscore,self.r - ) - - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_rscore - ) - - self.assertEqual(verdict,'partial') - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_dist,self.r + with transaction.atomic(): + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_rscore,self.r ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_dist - ) - - self.assertEqual(verdict,'partial') - - - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_time,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_rscore ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_time - ) + self.assertEqual(verdict,'partial') - self.assertEqual(verdict,'partial') + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_dist,self.r + ) - result = plannedsessions.add_workouts_plannedsession( - [self.w1],self.ps_trimp,self.r + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_dist ) - ratio,verdict,completiondate = plannedsessions.is_session_complete( - self.r,self.ps_trimp - ) + self.assertEqual(verdict,'partial') - self.assertEqual(verdict,'partial') + + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_time,self.r + ) + + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_time + ) + + self.assertEqual(verdict,'partial') + + result = plannedsessions.add_workouts_plannedsession( + [self.w1],self.ps_trimp,self.r + ) + + ratio,verdict,completiondate = plannedsessions.is_session_complete( + self.r,self.ps_trimp + ) + + self.assertEqual(verdict,'partial') diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index 11e4aa0a..14e0f728 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -468,11 +468,11 @@ def plannedsession_create_view(request, ps.save() - #if sessioncreateform.cleaned_data['fitfile']: - # f = sessioncreateform.cleaned_data['fitfile'] - # filename, path_and_filename = handle_uploaded_file(f) - # ps.fitfile.name = filename - # ps.save() + if sessioncreateform.cleaned_data['fitfile']: + f = sessioncreateform.cleaned_data['fitfile'] + filename, path_and_filename = handle_uploaded_file(f) + ps.fitfile.name = filename + ps.save() add_rower_session(r,ps) @@ -790,6 +790,11 @@ def plannedsession_teamcreate_view(request, manager=request.user) ps.save() + if fitfile: + f = sessioncreateform.cleaned_data['fitfile'] + filename, path_and_filename = handle_uploaded_file(f) + ps.fitfile.name = filename + ps.save() cd = sessionteamselectform.cleaned_data teams = cd['team']