Merge pull request #13684 from edx/student_cleanup/decoupled_dependencies

Decouple student's dependency on badges with django signals
This commit is contained in:
Nimisha Asthagiri
2016-10-07 13:44:11 -04:00
committed by GitHub
5 changed files with 40 additions and 7 deletions

View File

@@ -0,0 +1,20 @@
"""
Badges Application Configuration
Signal handlers are connected here.
"""
from django.apps import AppConfig
class BadgesConfig(AppConfig):
"""
Application Configuration for Badges.
"""
name = u'badges'
def ready(self):
"""
Connect signal handlers.
"""
from . import handlers # pylint: disable=unused-variable

View File

@@ -0,0 +1,17 @@
"""
Badges related signal handlers.
"""
from django.dispatch import receiver
from lms.djangoapps.badges.events.course_meta import award_enrollment_badge
from lms.djangoapps.badges.utils import badges_enabled
from student.models import ENROLL_STATUS_CHANGE, EnrollStatusChange
@receiver(ENROLL_STATUS_CHANGE)
def award_badge_on_enrollment(sender, event=None, user=None, **kwargs): # pylint: disable=unused-argument
"""
Awards enrollment badge to the given user on new enrollments.
"""
if badges_enabled and event == EnrollStatusChange.enroll:
award_enrollment_badge(user)