Skip to content
Snippets Groups Projects
Commit 72c91a05 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch 'fix/filtering-statistics' into 'master'

Fix filtering of personal notes in generate_person_list_with_class_register_statistics

See merge request !102
parents 2eff0b6f da6360fe
No related branches found
No related tags found
1 merge request!102Fix filtering of personal notes in generate_person_list_with_class_register_statistics
Pipeline #4372 failed
......@@ -281,7 +281,7 @@ def get_owner_groups_with_lessons(self: Person):
Groups which have child groups with related lessons are also included.
"""
return Group.get_groups_with_lessons().filter(owners=self)
return Group.get_groups_with_lessons().filter(owners=self).distinct()
@Group.method
......@@ -299,6 +299,10 @@ def generate_person_list_with_class_register_statistics(
filter=Q(
personal_notes__absent=True,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
excused=Count(
......@@ -308,6 +312,10 @@ def generate_person_list_with_class_register_statistics(
personal_notes__excused=True,
personal_notes__excuse_type__isnull=True,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
unexcused=Count(
......@@ -316,14 +324,28 @@ def generate_person_list_with_class_register_statistics(
personal_notes__absent=True,
personal_notes__excused=False,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
tardiness=Sum(
"personal_notes__late",
filter=(
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
tardiness=Sum("personal_notes__late"),
tardiness_count=Count(
"personal_notes",
filter=~Q(personal_notes__late=0)
& Q(
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
)
......@@ -336,6 +358,12 @@ def generate_person_list_with_class_register_statistics(
filter=Q(
personal_notes__extra_marks=extra_mark,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(
personal_notes__lesson_period__lesson__groups__parent_groups=self
)
),
)
}
......@@ -350,6 +378,12 @@ def generate_person_list_with_class_register_statistics(
personal_notes__absent=True,
personal_notes__excuse_type=excuse_type,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(
personal_notes__lesson_period__lesson__groups__parent_groups=self
)
),
)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment