Files
edx-platform/lms/djangoapps/course_goals/handlers.py
Feanil Patel 9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00

30 lines
1015 B
Python

"""
Signal handlers for course goals.
"""
import six
from django.db import models
from django.dispatch import receiver
import six
from course_modes.models import CourseMode
from student.models import CourseEnrollment
from .api import add_course_goal, remove_course_goal
from .models import GOAL_KEY_CHOICES
@receiver(models.signals.post_save, sender=CourseEnrollment, dispatch_uid="update_course_goal_on_enroll_change")
def update_course_goal_on_enroll_change(sender, instance, **kwargs): # pylint: disable=unused-argument
"""
Updates goals as follows on enrollment changes:
1) Set the course goal to 'certify' when the user enrolls as a verified user.
2) Remove the course goal when the user's enrollment is no longer active.
"""
course_id = six.text_type(instance.course_id)
if not instance.is_active:
remove_course_goal(instance.user, course_id)
elif instance.mode == CourseMode.VERIFIED:
add_course_goal(instance.user, course_id, GOAL_KEY_CHOICES.certify)