Commit a4599bb6 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

prefetch data in advanced_search

parent 0388de12
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1176,8 +1176,10 @@ def advanced_search(

    if fetch_resources:
        # Search Resources first
        resources_set = Resource.objects.filter(
            ptr_project=project, deleted_at__isnull=True
        resources_set = (
            Resource.objects.filter(ptr_project=project, deleted_at__isnull=True)
            .select_related("file", "file__project", "file__file_type")
            .prefetch_related("tags", "file__tags")
        )
        if collection_id:
            resources_set = resources_set.filter(
@@ -1239,6 +1241,12 @@ def advanced_search(
                )
        serializer_cache = SerializerCache()
        results["resources_count"] = resources_set.distinct().count()
        if include_metas:
            resources_set = resources_set.prefetch_related(
                "file__metadataresourcevalue_set",
                "file__metadataresourcevalue_set__metadata",
                "file__metadataresourcevalue_set__metadata__set",
            )
        for resource_instance in (
            resources_set.annotate(
                title_binary=Cast("title", output_field=BinaryField())