diff --git a/src/planning/models.py b/src/planning/models.py index d60bb12..5798ab9 100644 --- a/src/planning/models.py +++ b/src/planning/models.py @@ -330,6 +330,12 @@ class Course(Markdownizable, Temporizable): """ return time_diff(self.hour_begin, self.hour_end) + @property + def total_number_of_hours(self) -> timedelta: + """Retourne le temps total a été consacré à ce cours + """ + return self.get_number_of_real_occurrences * self.number_of_hours + @property def get_number_of_planned_occurrences(self): return self.get_total_occurence() diff --git a/src/planning/tests/tests_models.py b/src/planning/tests/tests_models.py index d8cb8e5..cf7f946 100644 --- a/src/planning/tests/tests_models.py +++ b/src/planning/tests/tests_models.py @@ -73,6 +73,23 @@ class TestCourse(TestCase): self.assertEqual(course.get_number_of_real_occurrences, 0) + def test_total_number_of_hours_should_be_39_times_3(self): + """Vérifie que le nombre total d'heures consacrées est bien égal à 39 séances * 3h + + Remarks: + 39 séances * 3h = 117h = 4 jours + 21h = timedelta(days=3, seconds=75600) :-) + """ + course = Course.objects.create( + iso_day_number=2, + datebegin=datetime(2021, 1, 1), + dateend=datetime(2021, 9, 30), + hour_begin=time(hour=19, minute=0), + hour_end=time(hour=22, minute=0), + club=self.club + ) + + self.assertEqual(course.total_number_of_hours, timedelta(days=4, seconds=75600)) + def test_number_of_real_occurrences_should_be_21(self): course = Course.objects.create( iso_day_number=2,