Files
edx-platform/openedx/core/djangoapps/signals/handlers.py
2017-09-13 12:42:51 -04:00

31 lines
1.1 KiB
Python

"""
This module contains all general use or cross-use handlers.
"""
import logging
from django.dispatch import receiver
from certificates.models import CertificateGenerationCourseSetting
from signals import COURSE_PACING_CHANGED
log = logging.getLogger(__name__)
@receiver(COURSE_PACING_CHANGED, dispatch_uid="update_cert_settings_on_pacing_change")
def _update_cert_settings_on_pacing_change(sender, updated_course_overview, **kwargs): # pylint: disable=unused-argument
"""
Catches the signal that course pacing has changed and enable/disable
the self-generated certificates according to course-pacing.
"""
toggle_self_generated_certs(updated_course_overview.id, updated_course_overview.self_paced)
log.info(u'Certificate Generation Setting Toggled for {course_id} via pacing change'.format(
course_id=updated_course_overview.id
))
def toggle_self_generated_certs(course_key, course_self_paced):
"""
Enable or disable self-generated certificates for a course according to pacing.
"""
CertificateGenerationCourseSetting.set_self_generatation_enabled_for_course(course_key, course_self_paced)