]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: use original_file when attaching docs to workflow emails with added trigger...
authorshamoon <4887959+shamoon@users.noreply.github.com>
Mon, 3 Nov 2025 16:42:29 +0000 (08:42 -0800)
committerGitHub <noreply@github.com>
Mon, 3 Nov 2025 16:42:29 +0000 (08:42 -0800)
src/documents/signals/handlers.py

index 8862b064b8aec86dc4fa49caa3c248a65d1e91d3..22abf625ebfa29b6b8de2e5f2bd9e0a96e18694e 100644 (file)
@@ -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,