diff --git a/src/documents/barcodes.py b/src/documents/barcodes.py index 6742e6704..9054475f4 100644 --- a/src/documents/barcodes.py +++ b/src/documents/barcodes.py @@ -164,6 +164,9 @@ class BarcodePlugin(ConsumeTaskPlugin): mailrule_id=self.input_doc.mailrule_id, # Can't use same folder or the consume might grab it again original_file=(tmp_dir / new_document.name).resolve(), + # Adding optional original_path for later uses in + # workflow matching + original_path=self.input_doc.original_file, ), # All the same metadata self.metadata, diff --git a/src/documents/data_models.py b/src/documents/data_models.py index fbba36dcc..7f98a1f05 100644 --- a/src/documents/data_models.py +++ b/src/documents/data_models.py @@ -156,6 +156,7 @@ class ConsumableDocument: source: DocumentSource original_file: Path + original_path: Path | None = None mailrule_id: int | None = None mime_type: str = dataclasses.field(init=False, default=None) diff --git a/src/documents/matching.py b/src/documents/matching.py index 2088a6042..72f1af5cf 100644 --- a/src/documents/matching.py +++ b/src/documents/matching.py @@ -314,11 +314,19 @@ def consumable_document_matches_workflow( trigger_matched = False # Document path vs trigger path + + # Use the original_path if set, else us the original_file + match_against = ( + document.original_path + if document.original_path is not None + else document.original_file + ) + if ( trigger.filter_path is not None and len(trigger.filter_path) > 0 and not fnmatch( - document.original_file, + match_against, trigger.filter_path, ) ): diff --git a/src/documents/tests/test_barcodes.py b/src/documents/tests/test_barcodes.py index b2c28a82b..0ad98344d 100644 --- a/src/documents/tests/test_barcodes.py +++ b/src/documents/tests/test_barcodes.py @@ -614,14 +614,16 @@ class TestBarcodeNewConsume( self.assertIsNotFile(temp_copy) # Check the split files exist + # Check the original_path is set # Check the source is unchanged # Check the overrides are unchanged for ( new_input_doc, new_doc_overrides, ) in self.get_all_consume_delay_call_args(): - self.assertEqual(new_input_doc.source, DocumentSource.ConsumeFolder) self.assertIsFile(new_input_doc.original_file) + self.assertEqual(new_input_doc.original_path, temp_copy) + self.assertEqual(new_input_doc.source, DocumentSource.ConsumeFolder) self.assertEqual(overrides, new_doc_overrides)