Skip to content
Snippets Groups Projects
Verified Commit 8d815278 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Show count of tardiness next to sum of tardiness in all views

parent bebf8a17
No related branches found
No related tags found
1 merge request!100Resolve "Add option to count how often a student was late and not the sum of tardiness"
Pipeline #4223 failed
......@@ -108,7 +108,7 @@
</tr>
<tr>
<th colspan="2">{% trans 'Tardiness' %}</th>
<td>{{ stat.tardiness }}'</td>
<td>{{ stat.tardiness }}'/{{ stat.tardiness_count }} &times;</td>
</tr>
{% for extra_mark in extra_marks %}
<tr>
......
......@@ -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 }} &times;
</p>
{% for extra_mark in extra_marks %}
<p class="card-text">
{{ extra_mark.name }}: {{ person.person|get_dict:extra_mark.count_label }}
......
......@@ -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 }} &times;</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 }} &times;</td>
</tr>
</table>
......
......@@ -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(
......
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