Merge pull request #13684 from edx/student_cleanup/decoupled_dependencies
Decouple student's dependency on badges with django signals
This commit is contained in:
20
lms/djangoapps/badges/apps.py
Normal file
20
lms/djangoapps/badges/apps.py
Normal 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
|
||||
17
lms/djangoapps/badges/handlers.py
Normal file
17
lms/djangoapps/badges/handlers.py
Normal 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)
|
||||
Reference in New Issue
Block a user