From a9dfe8f3f7057238c596e2804883bf4f5bd916ba Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 3 Nov 2025 08:42:29 -0800 Subject: [PATCH] Fix: use original_file when attaching docs to workflow emails with added trigger (#11266) --- src/documents/signals/handlers.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 8862b064b8..22abf625eb 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -31,6 +31,8 @@ from guardian.shortcuts import remove_perm from documents import matching from documents.caching import clear_document_caches +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentSource from documents.file_handling import create_source_path_directory from documents.file_handling import delete_empty_directories from documents.file_handling import generate_unique_filename @@ -55,7 +57,6 @@ from documents.templating.workflows import parse_w_workflow_placeholders if TYPE_CHECKING: from documents.classifier import DocumentClassifier - from documents.data_models import ConsumableDocument from documents.data_models import DocumentMetadataOverrides logger = logging.getLogger("paperless.handlers") @@ -1163,8 +1164,21 @@ def run_workflows( ) try: attachments = [] - if action.email.include_document and original_file: - attachments = [document] + if action.email.include_document: + if trigger_type in [ + WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, + WorkflowTrigger.WorkflowTriggerType.SCHEDULED, + ]: + # Updated and scheduled can pass the document directly + attachments = [document] + elif original_file: + # For consumed and added document is not yet saved, so pass the original file + attachments = [ + ConsumableDocument( + source=DocumentSource.ApiUpload, + original_file=original_file, + ), + ] n_messages = send_email( subject=subject, body=body, -- 2.47.3