diff --git a/src/documents/management/commands/document_importer.py b/src/documents/management/commands/document_importer.py index 282f5c48e..3e614c6a6 100644 --- a/src/documents/management/commands/document_importer.py +++ b/src/documents/management/commands/document_importer.py @@ -48,12 +48,13 @@ if settings.AUDIT_LOG_ENABLED: @contextmanager -def disable_signal(sig, receiver, sender) -> Generator: +def disable_signal(sig, receiver, sender, *, weak: bool | None = None) -> Generator: try: sig.disconnect(receiver=receiver, sender=sender) yield finally: - sig.connect(receiver=receiver, sender=sender) + kwargs = {"weak": weak} if weak is not None else {} + sig.connect(receiver=receiver, sender=sender, **kwargs) class Command(CryptMixin, BaseCommand): @@ -258,16 +259,19 @@ class Command(CryptMixin, BaseCommand): post_save, receiver=update_filename_and_move_files, sender=Document, + weak=False, ), disable_signal( m2m_changed, receiver=update_filename_and_move_files, sender=Document.tags.through, + weak=False, ), disable_signal( post_save, receiver=update_filename_and_move_files, sender=CustomFieldInstance, + weak=False, ), disable_signal( post_save, diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 738ecb086..bce376f76 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -393,9 +393,9 @@ class CannotMoveFilesException(Exception): # should be disabled in /src/documents/management/commands/document_importer.py handle -@receiver(models.signals.post_save, sender=CustomFieldInstance) -@receiver(models.signals.m2m_changed, sender=Document.tags.through) -@receiver(models.signals.post_save, sender=Document) +@receiver(models.signals.post_save, sender=CustomFieldInstance, weak=False) +@receiver(models.signals.m2m_changed, sender=Document.tags.through, weak=False) +@receiver(models.signals.post_save, sender=Document, weak=False) def update_filename_and_move_files( sender, instance: Document | CustomFieldInstance,