OpenSlides/openslides/utils/haystack_processor.py
Emanuel Schuetze 3127048be5 Fixed haystack indexing problem for m2m objects.
Updated django-haystack to <2.4.
2015-01-16 23:07:56 +01:00

24 lines
962 B
Python

from django.db import models
from haystack.signals import RealtimeSignalProcessor
class OpenSlidesProcessor(RealtimeSignalProcessor):
def setup(self):
# Naive (listen to all model saves).
super(OpenSlidesProcessor, self).setup()
models.signals.m2m_changed.connect(self.handle_many_to_many)
def teardown(self):
# Naive (listen to all model saves).
super(OpenSlidesProcessor, self).teardown()
models.signals.m2m_changed.disconnect(self.handle_many_to_many)
def handle_many_to_many(self, sender, instance, **kwargs):
"""
Given an individual model instance, determine which backends the
update should be sent to & update the object on those backends.
"""
model_class = type(instance)
if kwargs['action'] == 'post_add' or kwargs['action'] == 'post_clear' or kwargs['action'] == 'post_remove':
self.handle_save(model_class, instance, **kwargs)