From 8d815278affd65348393740b702b327e4f6841ad Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 8 Nov 2020 15:36:43 +0100 Subject: [PATCH] Show count of tardiness next to sum of tardiness in all views --- .../templates/alsijil/class_register/person.html | 2 +- .../alsijil/class_register/week_view.html | 3 +++ .../templates/alsijil/print/full_register.html | 4 ++-- aleksis/apps/alsijil/views.py | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html index e4cf09b92..826d5b8fe 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html @@ -108,7 +108,7 @@ </tr> <tr> <th colspan="2">{% trans 'Tardiness' %}</th> - <td>{{ stat.tardiness }}'</td> + <td>{{ stat.tardiness }}'/{{ stat.tardiness_count }} ×</td> </tr> {% for extra_mark in extra_marks %} <tr> diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html index 494216151..ac9cee758 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html @@ -264,6 +264,9 @@ <p class="card-text"> {% trans "Summed up tardiness" %}: {% firstof person.person.tardiness_sum|to_time|time:"H\h i\m" "–" %} </p> + <p class="card-text"> + {% trans "Count of tardiness" %}: {{ person.person.tardiness_count }} × + </p> {% for extra_mark in extra_marks %} <p class="card-text"> {{ extra_mark.name }}: {{ person.person|get_dict:extra_mark.count_label }} diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html index 6820996b7..85ac0fbca 100644 --- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html +++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html @@ -149,7 +149,7 @@ <td>{{ person|get_dict:excuse_type.count_label }}</td> {% endfor %} <td>{{ person.unexcused }}</td> - <td>{{ person.tardiness }}'</td> + <td>{{ person.tardiness }}'/{{ person.tardiness_count }} ×</td> {% for extra_mark in extra_marks %} <td>{{ person|get_dict:extra_mark.count_label }}</td> {% endfor %} @@ -285,7 +285,7 @@ </tr> <tr> <th colspan="2">{% trans 'Tardiness' %}</th> - <td>{{ person.tardiness }}'</td> + <td>{{ person.tardiness }}'/{{ person.tardiness_count }} ×</td> </tr> </table> diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index c93526317..a659b2e60 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -324,6 +324,16 @@ def week_view( .annotate(tardiness_sum=Sum("personal_notes__late")) .values("tardiness_sum") ), + tardiness_count=Count( + "personal_notes", + filter=Q( + personal_notes__lesson_period__in=lesson_periods_pk, + personal_notes__week=wanted_week.week, + personal_notes__year=wanted_week.year, + ) + & ~Q(personal_notes__late=0), + distinct=True, + ), ) ) @@ -656,6 +666,11 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp ) ) stat.update(personal_notes.aggregate(tardiness=Sum("late"))) + stat.update( + personal_notes.filter(~Q(late=0)).aggregate( + tardiness_count=Count("late") + ) + ) for extra_mark in extra_marks: stat.update( -- GitLab