diff --git a/doc/howtos/backend/exercise-calendar b/doc/howtos/backend/exercise-calendar index 8f3b59658e8..1ef0cbe2ca7 100644 --- a/doc/howtos/backend/exercise-calendar +++ b/doc/howtos/backend/exercise-calendar @@ -21,7 +21,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py @api.depends('seats', 'attendee_ids') def _taken_seats(self): -@@ -83,6 +86,30 @@ class Session(models.Model): +@@ -83,6 +86,27 @@ class Session(models.Model): }, } @@ -34,9 +34,8 @@ diff --git a/openacademy/models.py b/openacademy/models.py + + # Add duration to start_date, but: Monday + 5 days = Saturday, so + # subtract one second to get on Friday instead -+ start = fields.Datetime.from_string(r.start_date) + duration = timedelta(days=r.duration, seconds=-1) -+ r.end_date = start + duration ++ r.end_date = r.start_date + duration + + def _set_end_date(self): + for r in self: @@ -45,9 +44,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py + + # Compute the difference between dates, but: Friday - Monday = 4 days, + # so add one day to get 5 days instead -+ start_date = fields.Datetime.from_string(r.start_date) -+ end_date = fields.Datetime.from_string(r.end_date) -+ r.duration = (end_date - start_date).days + 1 ++ r.duration = (r.end_date - r.start_date).days + 1 + @api.constrains('instructor_id', 'attendee_ids') def _check_instructor_not_in_attendees(self): diff --git a/doc/howtos/backend/exercise-gantt b/doc/howtos/backend/exercise-gantt index 1e4aedd9624..54d3cb5b37f 100644 --- a/doc/howtos/backend/exercise-gantt +++ b/doc/howtos/backend/exercise-gantt @@ -15,9 +15,9 @@ diff --git a/openacademy/models.py b/openacademy/models.py @api.depends('seats', 'attendee_ids') def _taken_seats(self): for r in self: -@@ -110,6 +113,15 @@ class Session(models.Model): - end_date = fields.Datetime.from_string(r.end_date) - r.duration = (end_date - start_date).days + 1 +@@ -107,6 +110,15 @@ class Session(models.Model): + # so add one day to get 5 days instead + r.duration = (r.end_date - r.start_date).days + 1 + @api.depends('duration') + def _get_hours(self): diff --git a/doc/howtos/backend/exercise-graph b/doc/howtos/backend/exercise-graph index 39d06f74944..8fb2a46dc1f 100644 --- a/doc/howtos/backend/exercise-graph +++ b/doc/howtos/backend/exercise-graph @@ -15,7 +15,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py @api.depends('seats', 'attendee_ids') def _taken_seats(self): for r in self: -@@ -122,6 +125,11 @@ class Session(models.Model): +@@ -119,6 +122,11 @@ class Session(models.Model): for r in self: r.duration = r.hours / 24 diff --git a/doc/howtos/backend/exercise-translations b/doc/howtos/backend/exercise-translations index 08c013783cf..3cd57d2fd33 100644 --- a/doc/howtos/backend/exercise-translations +++ b/doc/howtos/backend/exercise-translations @@ -48,7 +48,7 @@ diff --git a/openacademy/models.py b/openacademy/models.py }, } -@@ -135,4 +135,4 @@ class Session(models.Model): +@@ -132,4 +132,4 @@ class Session(models.Model): def _check_instructor_not_in_attendees(self): for r in self: if r.instructor_id and r.instructor_id in r.attendee_ids: