SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 4e3f06d3 authored by George Katsikas's avatar George Katsikas :goat:
Browse files

optimize task queries with prefetch

parent 172b4047
No related branches found
No related tags found
No related merge requests found
...@@ -87,6 +87,7 @@ class ScheduleSubsidyPayments(TaskKind): ...@@ -87,6 +87,7 @@ class ScheduleSubsidyPayments(TaskKind):
Q(collective__isnull=True) Q(collective__isnull=True)
& (Q(schedule_blank=True) | Q(schedule_complete=False)) & (Q(schedule_blank=True) | Q(schedule_complete=False))
) )
.prefetch_related("organization")
) )
...@@ -131,6 +132,7 @@ class ScheduleSubsidyCollectivePayments(TaskKind): ...@@ -131,6 +132,7 @@ class ScheduleSubsidyCollectivePayments(TaskKind):
), ),
) )
.filter(Q(schedule_complete=False)) .filter(Q(schedule_complete=False))
.prefetch_related("coordinator")
) )
...@@ -173,6 +175,7 @@ class SendSubsidyInvoiceTask(TaskKind): ...@@ -173,6 +175,7 @@ class SendSubsidyInvoiceTask(TaskKind):
Q(due_date__isnull=False) Q(due_date__isnull=False)
& (Q(status=SUBSIDY_PROMISED) | Q(status=SUBSIDY_UPTODATE)) & (Q(status=SUBSIDY_PROMISED) | Q(status=SUBSIDY_UPTODATE))
) )
.prefetch_related("organization")
) )
...@@ -216,6 +219,7 @@ class CheckSubsidyPaymentTask(TaskKind): ...@@ -216,6 +219,7 @@ class CheckSubsidyPaymentTask(TaskKind):
), ),
) )
.filter(Q(status=SUBSIDY_INVOICED)) .filter(Q(status=SUBSIDY_INVOICED))
.prefetch_related("organization")
) )
...@@ -283,9 +287,11 @@ class VetCommentTask(TaskKind): ...@@ -283,9 +287,11 @@ class VetCommentTask(TaskKind):
@classmethod @classmethod
def get_queryset(cls) -> "QuerySet": def get_queryset(cls) -> "QuerySet":
return get_objects_for_user( return (
cls.user, "comments.can_vet_comments" get_objects_for_user(cls.user, "comments.can_vet_comments")
).awaiting_vetting() .awaiting_vetting()
.prefetch_related("author__user")
)
class VetReportTask(TaskKind): class VetReportTask(TaskKind):
...@@ -320,19 +326,20 @@ class VetReportTask(TaskKind): ...@@ -320,19 +326,20 @@ class VetReportTask(TaskKind):
if cls.user is None: if cls.user is None:
return Report.objects.none() return Report.objects.none()
if cls.user.has_perm("scipost.can_vet_submitted_reports"): qs = Report.objects.all()
return Report.objects.awaiting_vetting() if not cls.user.has_perm("scipost.can_vet_submitted_reports"):
qs = qs.filter(
return Report.objects.filter( submission__in=Submission.objects.in_pool_filter_for_eic(
submission__in=Submission.objects.in_pool_filter_for_eic( cls.user, latest=False, historical=True
cls.user, latest=False, historical=True )
) )
).awaiting_vetting()
return qs.awaiting_vetting().prefetch_related("submission")
class SelectRefereeingCycleTask(TaskKind): class SelectRefereeingCycleTask(TaskKind):
name = "Select Refereeing Cycle" name = "Select Refereeing Cycle"
task_title = "Select Refereeing Cycle for {object}" task_title = "Select Refereeing Cycle for {object.title}"
description = "Select the refereeing cycle for a submission." description = "Select the refereeing cycle for a submission."
actions = [ actions = [
lambda task: ViewAction( lambda task: ViewAction(
...@@ -361,5 +368,5 @@ class SelectRefereeingCycleTask(TaskKind): ...@@ -361,5 +368,5 @@ class SelectRefereeingCycleTask(TaskKind):
return Submission.objects.filter( return Submission.objects.filter(
editor_in_charge=cls.user.contributor, editor_in_charge=cls.user.contributor,
refereeing_cycle__isnull=True, refereeing_cycle__isnull=False,
) )
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