Files
edx-platform/lms/djangoapps/bulk_email/signals.py
Usama Sadiq 7f6cabbf98 Ran pyupgrade on lms/djangoapps (#26519)
* refactor: ran pyupgrade on lms/djangoapps/bulk_enroll
Co-authored-by: M. Zulqarnain <muhammad.zulqarnain@arbisoft.com>
2021-03-01 17:13:18 +05:00

27 lines
796 B
Python

"""
Signal handlers for the bulk_email app
"""
from django.dispatch import receiver
from common.djangoapps.student.models import CourseEnrollment
from openedx.core.djangoapps.user_api.accounts.signals import USER_RETIRE_MAILINGS
from .models import Optout
@receiver(USER_RETIRE_MAILINGS)
def force_optout_all(sender, **kwargs): # lint-amnesty, pylint: disable=unused-argument
"""
When a user is retired from all mailings this method will create an Optout
row for any courses they may be enrolled in.
"""
user = kwargs.get('user', None)
if not user:
raise TypeError('Expected a User type, but received None.')
for enrollment in CourseEnrollment.objects.filter(user=user):
Optout.objects.get_or_create(user=user, course_id=enrollment.course.id)