@@ -630,7 +630,27 @@ class PerProcessStatusViewSet(viewsets.ReadOnlyModelViewSet):
630630 get_filtered_queryset = RegionRestrictedAdmin .get_filtered_queryset
631631
632632 def get_queryset (self ):
633- queryset = Overview .objects .order_by ("country" , "-assessment_number" , "-date_of_assessment" )
633+ queryset = (
634+ Overview .objects .order_by ("country" , "-assessment_number" , "-date_of_assessment" )
635+ .select_related ("country" , "country__region" , "type_of_assessment" )
636+ .prefetch_related (
637+ Prefetch (
638+ "perassessment_set" ,
639+ queryset = PerAssessment .objects .order_by ("-id" ).only ("id" , "overview_id" ),
640+ to_attr = "latest_perassessments" ,
641+ ),
642+ Prefetch (
643+ "formprioritization_set" ,
644+ queryset = FormPrioritization .objects .order_by ("-id" ).only ("id" , "overview_id" ),
645+ to_attr = "latest_prioritizations" ,
646+ ),
647+ Prefetch (
648+ "perworkplan_set" ,
649+ queryset = PerWorkPlan .objects .order_by ("-id" ).only ("id" , "overview_id" ),
650+ to_attr = "latest_workplans" ,
651+ ),
652+ )
653+ )
634654 return self .get_filtered_queryset (self .request , queryset , dispatch = 0 )
635655
636656
@@ -640,7 +660,27 @@ class PublicPerProcessStatusViewSet(viewsets.ReadOnlyModelViewSet):
640660 ordering_fields = "__all__"
641661
642662 def get_queryset (self ):
643- return Overview .objects .order_by ("country" , "-assessment_number" , "-date_of_assessment" )
663+ return (
664+ Overview .objects .order_by ("country" , "-assessment_number" , "-date_of_assessment" )
665+ .select_related ("country" , "country__region" , "type_of_assessment" )
666+ .prefetch_related (
667+ Prefetch (
668+ "perassessment_set" ,
669+ queryset = PerAssessment .objects .order_by ("-id" ).only ("id" , "overview_id" ),
670+ to_attr = "latest_perassessments" ,
671+ ),
672+ Prefetch (
673+ "formprioritization_set" ,
674+ queryset = FormPrioritization .objects .order_by ("-id" ).only ("id" , "overview_id" ),
675+ to_attr = "latest_prioritizations" ,
676+ ),
677+ Prefetch (
678+ "perworkplan_set" ,
679+ queryset = PerWorkPlan .objects .order_by ("-id" ).only ("id" , "overview_id" ),
680+ to_attr = "latest_workplans" ,
681+ ),
682+ )
683+ )
644684
645685
646686class FormAssessmentViewSet (viewsets .ModelViewSet ):
0 commit comments