Skip to content
Snippets Groups Projects
Commit 12aafbf1 authored by permcu's avatar permcu
Browse files

Fix and simplify person_overview filtering

The previous filtering result for participations did not survive the
annotations done by annotate_person_statistics_for_school_term.
parent 91b88c4f
No related branches found
No related tags found
1 merge request!422Resolve "Add export functionality to course book"
Pipeline #193389 failed
......@@ -173,15 +173,29 @@ def generate_full_register_printout(
if include_members_table or include_person_overviews:
group = group.prefetch_related("members")
if include_person_overviews:
if include_teachers_and_subjects_table:
group = group.prefetch_related(
Prefetch("courses", queryset=Course.objects.select_related("subject")),
"courses__teachers",
"child_groups",
Prefetch("child_groups__courses", queryset=Course.objects.select_related("subject")),
"child_groups__courses__teachers",
)
group = group[0]
context["group"] = group
if include_members_table or include_person_overviews:
context["members"] = annotate_person_statistics_for_school_term(group.members.all(), group.school_term, group)
if include_person_overviews:
context["members"] = context["members"].prefetch_related(
Prefetch(
"members__participations",
"participations",
queryset=ParticipationStatus.objects
.filter(
# TODO: Not shure this filter works here as intended = test
Q(absence_reason__isnull=False)
| Q(tardiness__isnull=False)
.exclude(
Q(absence_reason__isnull=True)
| Q(tardiness__isnull=True)
)
.select_related("absence_reason")
.prefetch_related(
......@@ -189,11 +203,16 @@ def generate_full_register_printout(
"related_documentation",
queryset=Documentation.objects.select_related("subject").prefetch_related("teachers"),
),
)
),
to_attr="notable_participations",
),
Prefetch(
"members__new_personal_notes",
queryset=NewPersonalNote.objects.prefetch_related(
"new_personal_notes",
queryset=NewPersonalNote.objects
.exclude(
Q(note="")
| Q(extra_marks=None))
.prefetch_related(
Prefetch(
"documentation",
queryset=Documentation.objects.select_related("subject").prefetch_related("teachers"),
......@@ -203,21 +222,6 @@ def generate_full_register_printout(
),
)
if include_teachers_and_subjects_table:
group = group.prefetch_related(
Prefetch("courses", queryset=Course.objects.select_related("subject")),
"courses__teachers",
"child_groups",
Prefetch("child_groups__courses", queryset=Course.objects.select_related("subject")),
"child_groups__courses__teachers",
)
group = group[0]
context["group"] = group
if include_members_table or include_person_overviews:
context["members"] = annotate_person_statistics_for_school_term(group.members.all(), group.school_term, group)
# OLD
context["school_term"] = group.school_term
......
......@@ -92,7 +92,7 @@
</thead>
<tbody>
{% for participation in person.participations %}
{% for participation in person.notable_participations %}
<tr>
<td>{{ participation.documentation.datetime_start.date }}</td>
<td>
......@@ -120,18 +120,16 @@
<tbody>
{% for note in person.new_personal_notes %}
{% if note.note or note.extra_marks.all %}
<tr>
<td>{{ note.documentation.datetime_start.date }}</td>
<td>
{{ note.documentation.subject.short_name }}
</td>
<!-- TODO: Should probably use short_names -->
<td>{{ note.documentation.teachers.all|join:', ' }}</td>
<td>{{ note.extra_mark.short_name }}</td>
<td>{{ note.note }}</td>
</tr>
{% endif %}
<tr>
<td>{{ note.documentation.datetime_start.date }}</td>
<td>
{{ note.documentation.subject.short_name }}
</td>
<!-- TODO: Should probably use short_names -->
<td>{{ note.documentation.teachers.all|join:', ' }}</td>
<td>{{ note.extra_mark.short_name }}</td>
<td>{{ note.note }}</td>
</tr>
{% endfor %}
</tbody>
</table>
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