34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Search indexes app signals."""
|
|
from django.db.models.signals import post_save, post_delete
|
|
from django.dispatch import receiver
|
|
from django_elasticsearch_dsl.registries import registry
|
|
|
|
|
|
@receiver(post_save)
|
|
def update_document(sender, **kwargs):
|
|
from establishment.models import Establishment
|
|
app_label = sender._meta.app_label
|
|
model_name = sender._meta.model_name
|
|
instance = kwargs['instance']
|
|
|
|
if app_label == 'location':
|
|
if model_name == 'country':
|
|
establishments = Establishment.objects.filter(
|
|
address__city__country=instance)
|
|
for establishment in establishments:
|
|
registry.update(establishment)
|
|
|
|
if model_name == 'city':
|
|
establishments = Establishment.objects.filter(
|
|
address__city=instance)
|
|
for establishment in establishments:
|
|
registry.update(establishment)
|
|
|
|
if model_name == 'address':
|
|
establishments = Establishment.objects.filter(
|
|
address=instance)
|
|
for establishment in establishments:
|
|
registry.update(establishment)
|
|
|
|
# todo: delete document
|