mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Refresh the instance from the database before doing any file handling with it
This commit is contained in:
		| @@ -405,6 +405,7 @@ class Consumer(LoggingMixin): | ||||
|  | ||||
|                 # Don't save with the lock active. Saving will cause the file | ||||
|                 # renaming logic to acquire the lock as well. | ||||
|                 # This triggers things like file renaming | ||||
|                 document.save() | ||||
|  | ||||
|                 # Delete the file only if it was successfully consumed | ||||
| @@ -438,6 +439,9 @@ class Consumer(LoggingMixin): | ||||
|  | ||||
|         self._send_progress(100, 100, "SUCCESS", MESSAGE_FINISHED, document.id) | ||||
|  | ||||
|         # Return the most up to date fields | ||||
|         document.refresh_from_db() | ||||
|  | ||||
|         return document | ||||
|  | ||||
|     def _store(self, text, date, mime_type) -> Document: | ||||
|   | ||||
| @@ -400,6 +400,13 @@ def update_filename_and_move_files(sender, instance, **kwargs): | ||||
|  | ||||
|     with FileLock(settings.MEDIA_LOCK): | ||||
|         try: | ||||
|  | ||||
|             # If this was waiting for the lock, the filename or archive_filename | ||||
|             # of this document may have been updated.  This happens if multiple updates | ||||
|             # get queued from the UI for the same document | ||||
|             # So freshen up the data before doing anything | ||||
|             instance.refresh_from_db() | ||||
|  | ||||
|             old_filename = instance.filename | ||||
|             old_source_path = instance.source_path | ||||
|  | ||||
|   | ||||
| @@ -14,6 +14,7 @@ except ImportError: | ||||
|     import backports.zoneinfo as zoneinfo | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.utils import timezone | ||||
| from django.test import override_settings | ||||
| from django.test import TestCase | ||||
|  | ||||
| @@ -326,6 +327,12 @@ class TestConsumer(DirectoriesMixin, TestCase): | ||||
|     def testNormalOperation(self): | ||||
|  | ||||
|         filename = self.get_test_file() | ||||
|  | ||||
|         # Get the local time, as an aware datetime | ||||
|         # Roughly equal to file modification time | ||||
|         rough_create_date_local = timezone.localtime(timezone.now()) | ||||
|  | ||||
|         # Consume the file | ||||
|         document = self.consumer.try_consume_file(filename) | ||||
|  | ||||
|         self.assertEqual(document.content, "The Text") | ||||
| @@ -351,7 +358,20 @@ class TestConsumer(DirectoriesMixin, TestCase): | ||||
|  | ||||
|         self._assert_first_last_send_progress() | ||||
|  | ||||
|         self.assertEqual(document.created.tzinfo, zoneinfo.ZoneInfo("America/Chicago")) | ||||
|         # Convert UTC time from DB to local time | ||||
|         document_date_local = timezone.localtime(document.created) | ||||
|  | ||||
|         self.assertEqual( | ||||
|             document_date_local.tzinfo, | ||||
|             zoneinfo.ZoneInfo("America/Chicago"), | ||||
|         ) | ||||
|         self.assertEqual(document_date_local.tzinfo, rough_create_date_local.tzinfo) | ||||
|         self.assertEqual(document_date_local.year, rough_create_date_local.year) | ||||
|         self.assertEqual(document_date_local.month, rough_create_date_local.month) | ||||
|         self.assertEqual(document_date_local.day, rough_create_date_local.day) | ||||
|         self.assertEqual(document_date_local.hour, rough_create_date_local.hour) | ||||
|         self.assertEqual(document_date_local.minute, rough_create_date_local.minute) | ||||
|         # Skipping seconds and more precise | ||||
|  | ||||
|     @override_settings(FILENAME_FORMAT=None) | ||||
|     def testDeleteMacFiles(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Trenton H
					Trenton H