31 lines
1.3 KiB
Python
31 lines
1.3 KiB
Python
""" receivers of course_published and library_updated events in order to trigger indexing task """
|
|
from datetime import datetime
|
|
from pytz import UTC
|
|
|
|
from django.dispatch import receiver
|
|
|
|
from xmodule.modulestore.django import SignalHandler
|
|
from contentstore.courseware_index import CoursewareSearchIndexer, LibrarySearchIndexer
|
|
|
|
|
|
@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
|
|
if CoursewareSearchIndexer.indexing_is_enabled():
|
|
update_search_index.delay(unicode(course_key), datetime.now(UTC).isoformat())
|
|
|
|
|
|
@receiver(SignalHandler.library_updated)
|
|
def listen_for_library_update(sender, library_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_library_index
|
|
if LibrarySearchIndexer.indexing_is_enabled():
|
|
update_library_index.delay(unicode(library_key), datetime.now(UTC).isoformat())
|