Compare commits

...
Author SHA1 Message Date
shamoon 9c8b9d7a20 Dont need em any more 2026-10-18 23:45:10 -07:00
shamoon 0c4aa7f9f7 Fix: dont include doc content on global search results 2026-10-18 23:32:52 -07:00
3 changed files with 6 additions and 56 deletions

No files matched your search

-23
View File
@@ -2137,29 +2137,6 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
self.assertEqual(len(response.data["documents"]), 1) self.assertEqual(len(response.data["documents"]), 1)
self.assertEqual(response.data["documents"][0]["id"], title_match.id) self.assertEqual(response.data["documents"][0]["id"], title_match.id)
def test_global_search_returns_latest_version_content(self) -> None:
root = Document.objects.create(
title="bank statement",
content="superseded content",
checksum="GSV1",
pk=23,
)
Document.objects.create(
title="bank statement v2",
content="latest content",
checksum="GSV2",
pk=24,
root_document=root,
version_index=1,
)
self.client.force_authenticate(self.user)
response = self.client.get("/api/search/?query=bank&db_only=true")
self.assertEqual(response.status_code, status.HTTP_200_OK)
returned = {doc["id"]: doc["content"] for doc in response.data["documents"]}
self.assertEqual(returned.get(root.id), "latest content")
def test_global_search_filters_owned_mail_objects(self) -> None: def test_global_search_filters_owned_mail_objects(self) -> None:
user1 = UserFactory(username="mail-search-user") user1 = UserFactory(username="mail-search-user")
user2 = UserFactory(username="other-mail-search-user") user2 = UserFactory(username="other-mail-search-user")
@@ -423,35 +423,3 @@ class TestTrashAndGlobalSearchEffectiveContentIsNeverPerInstance:
[result] = [r for r in response.data["results"] if r["id"] == root.id] [result] = [r for r in response.data["results"] if r["id"] == root.id]
assert result["content"] == "own-content" assert result["content"] == "own-content"
assert _get_effective_content_fallback_queries(ctx) == [] assert _get_effective_content_fallback_queries(ctx) == []
def test_global_search_db_only_shows_latest_version_content_with_no_extra_query(
self,
admin_client: APIClient,
) -> None:
"""
GIVEN:
- A root document, findable by title, whose own content differs
from its latest version's
WHEN:
- Using the global search endpoint's db_only mode
THEN:
- The response shows the latest version's content, resolved by
GlobalSearchView's own effective_content annotation
- There is no per-instance fallback query
"""
root = DocumentFactory(title="findme", content="own-content")
DocumentFactory(
root_document=root,
version_index=1,
content="version-content",
)
with CaptureQueriesContext(connection) as ctx:
response = admin_client.get(
"/api/search/?query=findme&db_only=true",
)
assert response.status_code == status.HTTP_200_OK
[result] = [d for d in response.data["documents"] if d["id"] == root.id]
assert result["content"] == "version-content"
assert _get_effective_content_fallback_queries(ctx) == []
+6 -1
View File
@@ -3932,7 +3932,12 @@ class GlobalSearchView(PassUserMixin):
"request": request, "request": request,
} }
docs_serializer = DocumentSerializer(docs, many=True, context=context) docs_serializer = DocumentSerializer(
docs,
many=True,
context=context,
fields=("id", "title", "created"),
)
saved_views_serializer = SavedViewSerializer( saved_views_serializer = SavedViewSerializer(
saved_views, saved_views,
many=True, many=True,