From fe774f990102387b4dca8afcc34093515728b449 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Fri, 7 Mar 2025 11:06:54 -0800
Subject: [PATCH] Maybe a little cleaner

---
 src/paperless/views.py | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/paperless/views.py b/src/paperless/views.py
index 347045699..050bb3f61 100644
--- a/src/paperless/views.py
+++ b/src/paperless/views.py
@@ -32,6 +32,7 @@ from rest_framework.permissions import IsAuthenticated
 from rest_framework.response import Response
 from rest_framework.viewsets import ModelViewSet
 
+from documents.index import DelayedQuery
 from documents.permissions import PaperlessObjectPermissions
 from paperless.filters import GroupFilterSet
 from paperless.filters import UserFilterSet
@@ -66,19 +67,17 @@ class StandardPagination(PageNumberPagination):
         )
 
     def get_all_result_ids(self):
-        ids = []
-        if hasattr(self.page.paginator.object_list, "saved_results"):
-            results_page = self.page.paginator.object_list.saved_results[0]
-            if results_page is not None:
-                for doc_num in results_page.results.docs():
-                    try:
-                        fields = results_page.results.searcher.ixreader.stored_fields(
-                            doc_num,
-                        )
-                        if "id" in fields:
-                            ids.append(fields["id"])
-                    except Exception:
-                        pass
+        query = self.page.paginator.object_list
+        if isinstance(query, DelayedQuery):
+            try:
+                ids = [
+                    query.searcher.ixreader.stored_fields(
+                        doc_num,
+                    )["id"]
+                    for doc_num in query.saved_results.get(0).results.docs()
+                ]
+            except Exception:
+                pass
         else:
             ids = self.page.paginator.object_list.values_list("pk", flat=True)
         return ids