Chore: set signal receivers with weak=False

This commit is contained in:
shamoon
2025-11-17 10:02:32 -08:00
parent b6e3827ab1
commit b3d6359afc
2 changed files with 9 additions and 5 deletions

View File

@@ -48,12 +48,13 @@ if settings.AUDIT_LOG_ENABLED:
@contextmanager @contextmanager
def disable_signal(sig, receiver, sender) -> Generator: def disable_signal(sig, receiver, sender, *, weak: bool | None = None) -> Generator:
try: try:
sig.disconnect(receiver=receiver, sender=sender) sig.disconnect(receiver=receiver, sender=sender)
yield yield
finally: 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): class Command(CryptMixin, BaseCommand):
@@ -258,16 +259,19 @@ class Command(CryptMixin, BaseCommand):
post_save, post_save,
receiver=update_filename_and_move_files, receiver=update_filename_and_move_files,
sender=Document, sender=Document,
weak=False,
), ),
disable_signal( disable_signal(
m2m_changed, m2m_changed,
receiver=update_filename_and_move_files, receiver=update_filename_and_move_files,
sender=Document.tags.through, sender=Document.tags.through,
weak=False,
), ),
disable_signal( disable_signal(
post_save, post_save,
receiver=update_filename_and_move_files, receiver=update_filename_and_move_files,
sender=CustomFieldInstance, sender=CustomFieldInstance,
weak=False,
), ),
disable_signal( disable_signal(
post_save, post_save,

View File

@@ -393,9 +393,9 @@ class CannotMoveFilesException(Exception):
# should be disabled in /src/documents/management/commands/document_importer.py handle # should be disabled in /src/documents/management/commands/document_importer.py handle
@receiver(models.signals.post_save, sender=CustomFieldInstance) @receiver(models.signals.post_save, sender=CustomFieldInstance, weak=False)
@receiver(models.signals.m2m_changed, sender=Document.tags.through) @receiver(models.signals.m2m_changed, sender=Document.tags.through, weak=False)
@receiver(models.signals.post_save, sender=Document) @receiver(models.signals.post_save, sender=Document, weak=False)
def update_filename_and_move_files( def update_filename_and_move_files(
sender, sender,
instance: Document | CustomFieldInstance, instance: Document | CustomFieldInstance,