From c929f1c94c44bd526c700f3cabdaabaa499da5d3 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 12 Feb 2026 22:45:23 -0800 Subject: [PATCH] dont add extra content query --- src/documents/index.py | 21 +++++++++++---------- src/documents/signals/handlers.py | 5 ++++- src/documents/tests/test_task_signals.py | 4 ++++ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/documents/index.py b/src/documents/index.py index 709e2bd21..7d75119ff 100644 --- a/src/documents/index.py +++ b/src/documents/index.py @@ -50,7 +50,6 @@ from documents.models import CustomFieldInstance from documents.models import Document from documents.models import Note from documents.models import User -from documents.versioning import get_latest_version_for_root if TYPE_CHECKING: from django.db.models import QuerySet @@ -159,7 +158,11 @@ def open_index_searcher() -> Searcher: searcher.close() -def update_document(writer: AsyncWriter, doc: Document) -> None: +def update_document( + writer: AsyncWriter, + doc: Document, + effective_content: str | None = None, +) -> None: tags = ",".join([t.name for t in doc.tags.all()]) tags_ids = ",".join([str(t.id) for t in doc.tags.all()]) notes = ",".join([str(c.note) for c in Note.objects.filter(document=doc)]) @@ -186,15 +189,10 @@ def update_document(writer: AsyncWriter, doc: Document) -> None: only_with_perms_in=["view_document"], ) viewer_ids: str = ",".join([str(u.id) for u in users_with_perms]) - effective_content = ( - get_latest_version_for_root(doc).content - if doc.root_document_id is None - else doc.content - ) writer.update_document( id=doc.pk, title=doc.title, - content=effective_content, + content=effective_content or doc.content, correspondent=doc.correspondent.name if doc.correspondent else None, correspondent_id=doc.correspondent.id if doc.correspondent else None, has_correspondent=doc.correspondent is not None, @@ -237,9 +235,12 @@ def remove_document_by_id(writer: AsyncWriter, doc_id) -> None: writer.delete_by_term("id", doc_id) -def add_or_update_document(document: Document) -> None: +def add_or_update_document( + document: Document, + effective_content: str | None = None, +) -> None: with open_index_writer() as writer: - update_document(writer, document) + update_document(writer, document, effective_content=effective_content) def remove_document_from_index(document: Document) -> None: diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index b09e6a14b..2a3bc73d4 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -724,7 +724,10 @@ def add_to_index(sender, document, **kwargs) -> None: index.add_or_update_document(document) if document.root_document_id is not None and document.root_document is not None: # keep in sync when a new version is consumed. - index.add_or_update_document(document.root_document) + index.add_or_update_document( + document.root_document, + effective_content=document.content, + ) def run_workflows_added( diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index 098cf8491..4f17a8fd2 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -232,3 +232,7 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): self.assertEqual(add.call_count, 2) self.assertEqual(add.call_args_list[0].args[0].id, version.id) self.assertEqual(add.call_args_list[1].args[0].id, root.id) + self.assertEqual( + add.call_args_list[1].kwargs, + {"effective_content": version.content}, + )