Merge pull request #32389 from openedx/ammar/trigger-signals-to-import-course-details

feat: trigger signals to import and delete course details
This commit is contained in:
Muhammad Ammar
2023-06-13 10:55:41 +05:00
committed by GitHub

View File

@@ -6,6 +6,7 @@ Signal handler for invalidating cached course overviews
import logging
from django.db import transaction
from django.db.models.signals import post_save
from django.dispatch import Signal
from django.dispatch.dispatcher import receiver
@@ -20,6 +21,10 @@ LOG = logging.getLogger(__name__)
COURSE_START_DATE_CHANGED = Signal()
# providing_args=["updated_course_overview", "previous_self_paced"]
COURSE_PACING_CHANGED = Signal()
# providing_args=["courserun_key"]
IMPORT_COURSE_DETAILS = Signal()
# providing_args=["courserun_key"]
DELETE_COURSE_DETAILS = Signal()
@receiver(SignalHandler.course_published)
@@ -43,6 +48,26 @@ def _listen_for_course_delete(sender, course_key, **kwargs): # pylint: disable=
invalidates the corresponding CourseOverview cache entry if one exists.
"""
CourseOverview.objects.filter(id=course_key).delete()
courserun_key = str(course_key)
LOG.info(f'DELETE_COURSE_DETAILS triggered upon course_deleted signal. Key: [{courserun_key}]')
DELETE_COURSE_DETAILS.send(
sender=None,
courserun_key=courserun_key,
)
@receiver(post_save, sender=CourseOverview)
def trigger_import_course_details_signal(sender, instance, created, **kwargs): # lint-amnesty, pylint: disable=unused-argument
"""
Triggers the `IMPORT_COURSE_DETAILS` signal which will be handled in `federated_content_connector` plugin
"""
if created:
courserun_key = str(instance.id)
LOG.info(f'IMPORT_COURSE_DETAILS triggered upon CourseOverview.post_save signal. Key: [{courserun_key}]')
IMPORT_COURSE_DETAILS.send(
sender=None,
courserun_key=courserun_key,
)
def _check_for_course_changes(previous_course_overview, updated_course_overview):