diff --git a/src/documents/consumer.py b/src/documents/consumer.py index f7bbc77f9..a896ffbb6 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -128,7 +128,15 @@ class ConsumerPluginMixin: ) root_document = Document.objects.get(pk=input_doc.root_document_id) version_index = Document.objects.filter(root_document=root_document).count() - self.filename += f"_v{version_index}" + filename_path = Path(self.filename) + if filename_path.suffix: + self.filename = str( + filename_path.with_name( + f"{filename_path.stem}_v{version_index}{filename_path.suffix}", + ), + ) + else: + self.filename = f"{self.filename}_v{version_index}" def _send_progress( self, diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index cea01bc16..f8c93c9ba 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -733,7 +733,7 @@ class TestConsumer( ) consumer.setup() try: - self.assertTrue(consumer.filename.endswith("_v0")) + self.assertTrue(consumer.filename.endswith("_v0.pdf")) consumer.run() finally: consumer.cleanup() @@ -744,7 +744,7 @@ class TestConsumer( assert version is not None assert version.original_filename is not None self.assertEqual(version.version_label, "v2") - self.assertTrue(version.original_filename.endswith("_v0")) + self.assertTrue(version.original_filename.endswith("_v0.pdf")) @mock.patch("documents.consumer.load_classifier") def testClassifyDocument(self, m) -> None: