diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html index e4cf09b92381b447036dc7325cac00eb4a998cda..826d5b8fe8a5d5159adb996e6bc0f46e2dce0d9a 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 49421615169bd68233ca347af4f4dc86f1747fb5..ac9cee7584efcf65263f78ea8a8cdf1933aa6f7d 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 6820996b7370426869a37a054a58d5faf77aa0a6..85ac0fbca5b83004f40621abc5a39bde0864dc47 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 c93526317efd15abf07a730486895fa0fd1dba17..a659b2e60f39b69598fde0e018727d325cbb50c9 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(