[WIP] refactoring/location-club-statistics #71
|
@ -131,11 +131,20 @@ class Club(models.Model):
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Une structure (dict) reprenant les informations suivantes:
|
Une structure (dict) reprenant les informations suivantes:
|
||||||
|
|
||||||
|
{
|
||||||
|
"total_hours_paid": <Le nombre d'heures devant être payées pour ce cours>
|
||||||
|
}
|
||||||
|
|
||||||
* La liste des cours associés à ce club et à la saison passée en paramètre
|
* La liste des cours associés à ce club et à la saison passée en paramètre
|
||||||
* Des informations statistiques concernant les gymnastes associés à chacun de ces cours
|
* Des informations statistiques concernant les gymnastes associés à chacun de ces cours
|
||||||
* Le nombre total de cours réellement donnés
|
* Le nombre total de cours réellement donnés
|
||||||
* Le nombre
|
* Le nombre d'heures réellement passées pour l'ensemble des cours
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
courses = self.courses.filter(season=season)
|
courses = self.courses.filter(season=season)
|
||||||
|
|
||||||
|
return {
|
||||||
|
"total_hours_paid": sum[x.total_number_of_paid_hours for x in courses]
|
||||||
|
}
|
||||||
|
|
|
@ -336,6 +336,12 @@ class Course(Markdownizable, Temporizable):
|
||||||
"""
|
"""
|
||||||
return self.get_number_of_real_occurrences * self.number_of_hours
|
return self.get_number_of_real_occurrences * self.number_of_hours
|
||||||
|
|
||||||
|
@property
|
||||||
|
def total_number_of_paid_hours(self) -> timedelta:
|
||||||
|
"""Retourne le temps total consacré à ce cours par le(s) entraineur(s)
|
||||||
|
"""
|
||||||
|
return self.total_number_of_hours * self.number_of_trainers
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def get_number_of_planned_occurrences(self):
|
def get_number_of_planned_occurrences(self):
|
||||||
return self.get_total_occurence()
|
return self.get_total_occurence()
|
||||||
|
|
|
@ -124,6 +124,23 @@ class TestCourse(TestCase):
|
||||||
|
|
||||||
self.assertEqual(course.number_of_trainers, 2)
|
self.assertEqual(course.number_of_trainers, 2)
|
||||||
|
|
||||||
|
def test_total_number_of_paid_hours(self):
|
||||||
|
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
|
||||||
|
)
|
||||||
|
|
||||||
|
course.trainers.add(self.user1)
|
||||||
|
course.trainers.add(self.user2)
|
||||||
|
|
||||||
|
self.assertEqual(course.total_number_of_paid_hours, timedelta(days=4, seconds=75600) * 2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_number_of_course_hours(self):
|
def test_number_of_course_hours(self):
|
||||||
course = Course.objects.create(
|
course = Course.objects.create(
|
||||||
iso_day_number=2,
|
iso_day_number=2,
|
||||||
|
|
Loading…
Reference in New Issue