signals.py 1.33 KB
Newer Older
1
""" receivers of course_published and library_updated events in order to trigger indexing task """
2 3 4 5 6 7
from datetime import datetime
from pytz import UTC

from django.dispatch import receiver

from xmodule.modulestore.django import SignalHandler
8
from contentstore.courseware_index import CoursewareSearchIndexer, LibrarySearchIndexer
9 10 11 12 13 14 15 16 17


@receiver(SignalHandler.course_published)
def listen_for_course_publish(sender, course_key, **kwargs):  # pylint: disable=unused-argument
    """
    Receives signal and kicks off celery task to update search index
    """
    # import here, because signal is registered at startup, but items in tasks are not yet able to be loaded
    from .tasks import update_search_index
18
    if CoursewareSearchIndexer.indexing_is_enabled():
19
        update_search_index.delay(unicode(course_key), datetime.now(UTC).isoformat())
20 21 22


@receiver(SignalHandler.library_updated)
23
def listen_for_library_update(sender, library_key, **kwargs):  # pylint: disable=unused-argument
24 25 26 27 28 29 30
    """
    Receives signal and kicks off celery task to update search index
    """
    # import here, because signal is registered at startup, but items in tasks are not yet able to be loaded
    from .tasks import update_library_index
    if LibrarySearchIndexer.indexing_is_enabled():
        update_library_index.delay(unicode(library_key), datetime.now(UTC).isoformat())