- Change retire mailings endpoint to use new USER_RETIRE_THIRD_PARTY_MAILINGS signal, currently only used by Sailthru retirement - Move USER_RETIRE_MAILINGS signal firing to the LMS misc endpoint - Remove duplicate clearing of UserOrgTags - Remove LMS imports in openedx/core and update usage to use new USER_RETIRE_LMS_CRITICAL and USER_RETIRE_LMS_MISC signals - Add testing for new signal handlers and app registration for the LMS survey app
33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
"""
|
|
Signal handler for setting default course verification dates
|
|
"""
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.dispatch.dispatcher import receiver
|
|
|
|
from openedx.core.djangoapps.user_api.accounts.signals import USER_RETIRE_LMS_CRITICAL
|
|
from xmodule.modulestore.django import SignalHandler, modulestore
|
|
|
|
from .models import SoftwareSecurePhotoVerification, VerificationDeadline
|
|
|
|
|
|
@receiver(SignalHandler.course_published)
|
|
def _listen_for_course_publish(sender, course_key, **kwargs): # pylint: disable=unused-argument
|
|
"""
|
|
Catches the signal that a course has been published in Studio and
|
|
sets the verification deadline date to a default.
|
|
"""
|
|
course = modulestore().get_course(course_key)
|
|
if course:
|
|
try:
|
|
deadline = VerificationDeadline.objects.get(course_key=course_key)
|
|
if not deadline.deadline_is_explicit and deadline.deadline != course.end:
|
|
VerificationDeadline.set_deadline(course_key, course.end)
|
|
except ObjectDoesNotExist:
|
|
VerificationDeadline.set_deadline(course_key, course.end)
|
|
|
|
|
|
@receiver(USER_RETIRE_LMS_CRITICAL)
|
|
def _listen_for_lms_retire(sender, **kwargs): # pylint: disable=unused-argument
|
|
user = kwargs.get('user')
|
|
SoftwareSecurePhotoVerification.retire_user(user.id)
|