From 335c6c3820c3fa57c68a856fb784e8fd86401fd7 Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Sun, 27 Oct 2024 19:45:31 -0700 Subject: [PATCH] Fix: Update filename correctly if the document is in the trash (#8066) * Fixes an issue where the filename is not updated if the document is in the trash (but the file is moved) --- src/documents/signals/handlers.py | 4 +++- src/documents/tests/test_file_handling.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 0bf20fd5c..73aee2936 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -348,6 +348,8 @@ def cleanup_document_deletion(sender, instance, **kwargs): f"While deleting document {instance!s}, the file " f"{filename} could not be deleted: {e}", ) + elif filename and not os.path.isfile(filename): + logger.warn(f"Expected {filename} tp exist, but it did not") delete_empty_directories( os.path.dirname(instance.source_path), @@ -461,7 +463,7 @@ def update_filename_and_move_files( shutil.move(old_archive_path, instance.archive_path) # Don't save() here to prevent infinite recursion. - Document.objects.filter(pk=instance.pk).update( + Document.global_objects.filter(pk=instance.pk).update( filename=instance.filename, archive_filename=instance.archive_filename, modified=timezone.now(), diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py index e942b4daa..476068a51 100644 --- a/src/documents/tests/test_file_handling.py +++ b/src/documents/tests/test_file_handling.py @@ -150,7 +150,7 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase): with ( mock.patch( - "documents.signals.handlers.Document.objects.filter", + "documents.signals.handlers.Document.global_objects.filter", ) as m, disable_auditlog(), ): @@ -865,7 +865,9 @@ class TestFileHandlingWithArchive(DirectoriesMixin, FileSystemAssertsMixin, Test archive_filename="0000001.pdf", archive_checksum="B", ) - with mock.patch("documents.signals.handlers.Document.objects.filter") as m: + with mock.patch( + "documents.signals.handlers.Document.global_objects.filter", + ) as m: m.side_effect = DatabaseError() doc.save()