Skip to content
Snippets Groups Projects
Commit 41f66b0d authored by permcu's avatar permcu
Browse files

Expose select_related from participation and personal_note prefetch

parent 2dc28493
No related branches found
No related tags found
1 merge request!422Resolve "Add export functionality to course book"
...@@ -157,7 +157,7 @@ def generate_full_register_printout( ...@@ -157,7 +157,7 @@ def generate_full_register_printout(
prefetched_persons.append(person) prefetched_persons.append(person)
# NEXT begins here: # NEXT begins here:
def prefetch_notable_participations(*prefetch_related): def prefetch_notable_participations(select_related=[], prefetch_related=[]):
return Prefetch( return Prefetch(
"participations", "participations",
to_attr="notable_participations", to_attr="notable_participations",
...@@ -166,18 +166,18 @@ def generate_full_register_printout( ...@@ -166,18 +166,18 @@ def generate_full_register_printout(
Q(absence_reason__isnull=True) Q(absence_reason__isnull=True)
| Q(tardiness__isnull=True) | Q(tardiness__isnull=True)
) )
.select_related("absence_reason") .select_related("absence_reason", *select_related)
.prefetch_related(*prefetch_related), .prefetch_related(*prefetch_related),
) )
def prefetch_personal_notes(name, *prefetch_related): def prefetch_personal_notes(name, select_related=[], prefetch_related=[]):
return Prefetch( return Prefetch(
name, name,
queryset=NewPersonalNote.objects queryset=NewPersonalNote.objects
.exclude( .exclude(
Q(note="") Q(note="")
| Q(extra_mark=None)) | Q(extra_mark=None))
.select_related("extra_mark") .select_related("extra_mark", *select_related)
.prefetch_related(*prefetch_related), .prefetch_related(*prefetch_related),
) )
...@@ -222,17 +222,21 @@ def generate_full_register_printout( ...@@ -222,17 +222,21 @@ def generate_full_register_printout(
doc_query_set = Documentation.objects.select_related("subject").prefetch_related("teachers"), doc_query_set = Documentation.objects.select_related("subject").prefetch_related("teachers"),
context["members"] = context["members"].prefetch_related( context["members"] = context["members"].prefetch_related(
prefetch_notable_participations( prefetch_notable_participations(
Prefetch( prefetch_related=[
"related_documentation", Prefetch(
queryset=doc_query_set, "related_documentation",
) queryset=doc_query_set,
)
],
), ),
prefetch_personal_notes( prefetch_personal_notes(
"new_personal_notes", "new_personal_notes",
Prefetch( prefetch_related=[
"documentation", Prefetch(
queryset=doc_query_set, "documentation",
) queryset=doc_query_set,
)
],
), ),
) )
......
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