Starts clubs statistics

This commit is contained in:
Fred 2021-06-23 20:37:27 +02:00
parent a612503bf5
commit 40c59cbe22
3 changed files with 33 additions and 1 deletions

View File

@ -131,11 +131,20 @@ class Club(models.Model):
Returns:
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
* Des informations statistiques concernant les gymnastes associés à chacun de ces cours
* 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)
return {
"total_hours_paid": sum[x.total_number_of_paid_hours for x in courses]
}

View File

@ -336,6 +336,12 @@ class Course(Markdownizable, Temporizable):
"""
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
def get_number_of_planned_occurrences(self):
return self.get_total_occurence()

View File

@ -124,6 +124,23 @@ class TestCourse(TestCase):
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):
course = Course.objects.create(
iso_day_number=2,