diff --git a/assets b/assets index 51d42292a..4f457e1b6 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 51d42292abdc12d512d0b4acb170efa2f0524a12 +Subproject commit 4f457e1b6e7cbcf67b8fa0bd293894f8a2bd4ef3 diff --git a/per/drf_views.py b/per/drf_views.py index 890d86f90..2c1703b64 100644 --- a/per/drf_views.py +++ b/per/drf_views.py @@ -630,7 +630,27 @@ class PerProcessStatusViewSet(viewsets.ReadOnlyModelViewSet): get_filtered_queryset = RegionRestrictedAdmin.get_filtered_queryset def get_queryset(self): - queryset = Overview.objects.order_by("country", "-assessment_number", "-date_of_assessment") + queryset = ( + Overview.objects.order_by("country", "-assessment_number", "-date_of_assessment") + .select_related("country", "country__region", "type_of_assessment") + .prefetch_related( + Prefetch( + "perassessment_set", + queryset=PerAssessment.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_perassessments", + ), + Prefetch( + "formprioritization_set", + queryset=FormPrioritization.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_prioritizations", + ), + Prefetch( + "perworkplan_set", + queryset=PerWorkPlan.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_workplans", + ), + ) + ) return self.get_filtered_queryset(self.request, queryset, dispatch=0) @@ -640,7 +660,27 @@ class PublicPerProcessStatusViewSet(viewsets.ReadOnlyModelViewSet): ordering_fields = "__all__" def get_queryset(self): - return Overview.objects.order_by("country", "-assessment_number", "-date_of_assessment") + return ( + Overview.objects.order_by("country", "-assessment_number", "-date_of_assessment") + .select_related("country", "country__region", "type_of_assessment") + .prefetch_related( + Prefetch( + "perassessment_set", + queryset=PerAssessment.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_perassessments", + ), + Prefetch( + "formprioritization_set", + queryset=FormPrioritization.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_prioritizations", + ), + Prefetch( + "perworkplan_set", + queryset=PerWorkPlan.objects.order_by("-id").only("id", "overview_id"), + to_attr="latest_workplans", + ), + ) + ) class FormAssessmentViewSet(viewsets.ModelViewSet):