* Use full LMS imports paths in LMS settings and urls modules * Use full LMS import paths in Studio settings and urls modules * Import from lms.djangoapps.badges instead of badges * Import from lms.djangoapps.branding instead of branding * Import from lms.djangoapps.bulk_email instead of bulk_email * Import from lms.djangoapps.bulk_enroll instead of bulk_enroll * Import from lms.djangoapps.ccx instead of ccx * Import from lms.djangoapps.course_api instead of course_api * Import from lms.djangoapps.course_blocks instead of course_blocks * Import from lms.djangoapps.course_wiki instead of course_wiki * Import from lms.djangoapps.courseware instead of courseware * Import from lms.djangoapps.dashboard instead of dashboard * Import from lms.djangoapps.discussion import discussion * Import from lms.djangoapps.email_marketing instead of email_marketing * Import from lms.djangoapps.experiments instead of experiments * Import from lms.djangoapps.gating instead of gating * Import from lms.djangoapps.grades instead of grades * Import from lms.djangoapps.instructor_analytics instead of instructor_analytics * Import form lms.djangoapps.lms_xblock instead of lms_xblock * Import from lms.djangoapps.lti_provider instead of lti_provider * Import from lms.djangoapps.mobile_api instead of mobile_api * Import from lms.djangoapps.rss_proxy instead of rss_proxy * Import from lms.djangoapps.static_template_view instead of static_template_view * Import from lms.djangoapps.survey instead of survey * Import from lms.djangoapps.verify_student instead of verify_student * Stop suppressing EdxPlatformDeprecatedImportWarnings
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
"""
|
|
Provides Python APIs exposed from Bulk Email models.
|
|
"""
|
|
|
|
|
|
from lms.djangoapps.bulk_email.models import BulkEmailFlag, CourseAuthorization, Optout
|
|
|
|
|
|
def is_user_opted_out_for_course(user, course_id):
|
|
"""
|
|
Arguments:
|
|
user: user whose opt out status is to be returned
|
|
course_id (CourseKey): id of the course
|
|
|
|
Returns:
|
|
bool: True if user has opted out of e-mails for the course
|
|
associated with course_id, False otherwise.
|
|
"""
|
|
return Optout.is_user_opted_out_for_course(user, course_id)
|
|
|
|
|
|
def is_bulk_email_feature_enabled(course_id=None):
|
|
"""
|
|
Looks at the currently active configuration model to determine whether the bulk email feature is available.
|
|
|
|
Arguments:
|
|
course_id (string; optional): the course id of the course
|
|
|
|
Returns:
|
|
bool: True or False, depending on the following:
|
|
If the flag is not enabled, the feature is not available.
|
|
If the flag is enabled, course-specific authorization is required, and the course_id is either not provided
|
|
or not authorixed, the feature is not available.
|
|
If the flag is enabled, course-specific authorization is required, and the provided course_id is authorized,
|
|
the feature is available.
|
|
If the flag is enabled and course-specific authorization is not required, the feature is available.
|
|
"""
|
|
return BulkEmailFlag.feature_enabled(course_id)
|
|
|
|
|
|
def is_bulk_email_enabled_for_course(course_id):
|
|
"""
|
|
Arguments:
|
|
course_id: the course id of the course
|
|
|
|
Returns:
|
|
bool: True if the Bulk Email feature is enabled for the course
|
|
associated with the course_id; False otherwise
|
|
"""
|
|
return CourseAuthorization.instructor_email_enabled(course_id)
|