diff --git a/aleksis/apps/alsijil/tasks.py b/aleksis/apps/alsijil/tasks.py index 7216716a72d56879a00aa3e09cda5b8f77314916..f7aa866d33ba06f23d709a40af8b380d62a30c0d 100644 --- a/aleksis/apps/alsijil/tasks.py +++ b/aleksis/apps/alsijil/tasks.py @@ -163,11 +163,9 @@ def generate_person_register_printout( doc_query_set = Documentation.objects.select_related("subject").prefetch_related("teachers") statistics = ( - ( - StatisticsBuilder(Person.objects.filter(id=person.id)) - .use_from_school_term(school_term) - .annotate_statistics() - ) + StatisticsBuilder(Person.objects.filter(id=person.id)) + .use_from_school_term(school_term) + .annotate_statistics() .prefetch_relevant_participations(documentation_with_details=doc_query_set) .prefetch_relevant_personal_notes(documentation_with_details=doc_query_set) .build() diff --git a/aleksis/apps/alsijil/util/statistics.py b/aleksis/apps/alsijil/util/statistics.py index f9d13f846dc8cf7f463ce4274527fbbf87e029e4..158a3efd3a316435973229f0db751cb3491f2153 100644 --- a/aleksis/apps/alsijil/util/statistics.py +++ b/aleksis/apps/alsijil/util/statistics.py @@ -17,7 +17,7 @@ class BuilderError(Exception): class StatisticsBuilder: """Builder class for building queries with annotated statistics on persons. - To build queries, you can combine one `use_` with multiple `annotate` or `prefetch` + To build queries, you can combine `use_` with multiple `annotate` or `prefetch` methods. At the end, call `build` to get the actual queryset. >>> StatisticsBuilder(person_qs).use_from_school_term(school_term).annotate_statistics().build() @@ -87,7 +87,7 @@ class StatisticsBuilder: def _annotate_filtered_participations(self, condition: Q | None = None) -> "StatisticsBuilder": """Annotate a filtered relation for participations.""" if not self.participations_filter and not condition: - raise BuilderError + raise BuilderError("Annotation of participations needs a participation filter.") self.qs = self.qs.annotate( filtered_participation_statuses=FilteredRelation( "participations", @@ -99,7 +99,7 @@ class StatisticsBuilder: def _annotate_filtered_personal_notes(self, condition: Q | None = None) -> "StatisticsBuilder": """Annotate a filtered relation for personal notes.""" if not self.personal_notes_filter and not condition: - raise BuilderError + raise BuilderError("Annotation of personal notes needs a participation filter.") self.qs = self.qs.annotate( filtered_personal_notes=FilteredRelation( "new_personal_notes",