schon/evibes/signal_processors.py
Egor fureunoir Gorbunov 13e7af52aa Features: 1) Improved request processing in middleware by adding mutable QueryDict implementation; 2) Extended type annotations across various modules for enhanced type safety; 3) Refined JWT token lifetime configuration for environment-specific logic.
Fixes: 1) Addressed missing or incorrect imports and type hints with `# ty:ignore` markers; 2) Fixed search queryset error handling in filters module; 3) Resolved issues in viewsets with updated `@action` method usage.

Extra: Removed unused classes and dependencies (e.g., `BaseMutation`, `basedpyright`, and related packages); streamlined GraphQL mutation implementations; cleaned up unused arguments in model `save` methods.
2025-12-19 15:17:17 +03:00

29 lines
1.2 KiB
Python

from django.db import models
from django_elasticsearch_dsl.registries import registry
from django_elasticsearch_dsl.signals import (
CelerySignalProcessor, # ty:ignore[possibly-missing-import]
)
class SelectiveSignalProcessor(CelerySignalProcessor):
def setup(self):
for doc in registry.get_documents():
model = doc.django.model
models.signals.post_save.connect(self.handle_save, sender=model, weak=False)
models.signals.post_delete.connect(
self.handle_delete, sender=model, weak=False
)
models.signals.pre_delete.connect(
self.handle_pre_delete, sender=model, weak=False
)
models.signals.m2m_changed.connect(
self.handle_m2m_changed, sender=model, weak=False
)
def teardown(self):
for doc in registry.get_documents():
model = doc.django.model
models.signals.post_save.disconnect(self.handle_save, sender=model)
models.signals.post_delete.disconnect(self.handle_delete, sender=model)
models.signals.pre_delete.disconnect(self.handle_pre_delete, sender=model)
models.signals.m2m_changed.disconnect(self.handle_m2m_changed, sender=model)