feat: update discussion settings API to handle changes reported_content_email_notification field

This commit is contained in:
SaadYousaf
2022-04-06 13:18:02 +05:00
committed by Saad Yousaf
parent d22af8ab79
commit 149ca028d7
6 changed files with 42 additions and 4 deletions

View File

@@ -83,7 +83,8 @@ def config_course_discussions(
course,
discussion_topics={},
divided_discussions=[],
always_divide_inline_discussions=False
always_divide_inline_discussions=False,
reported_content_email_notifications=False,
):
"""
Set discussions and configure divided discussions for a course.
@@ -96,6 +97,8 @@ def config_course_discussions(
list to use the same ids as discussion topic names.
always_divide_inline_discussions (bool): Whether inline discussions
should be divided by default.
reported_content_email_notifications (bool): Whether email notifications
are enabled for reported content for moderators.
Returns:
Nothing -- modifies course in place.
@@ -113,6 +116,7 @@ def config_course_discussions(
],
'always_divide_inline_discussions': always_divide_inline_discussions,
'division_scheme': CourseDiscussionSettings.COHORT,
'reported_content_email_notifications': reported_content_email_notifications,
})
course.discussion_topics = {name: {"sort_key": "A", "id": to_id(name)}

View File

@@ -2313,7 +2313,9 @@ class CourseDiscussionSettingsAPIViewTest(APITestCase, UrlResetMixin, ModuleStor
'divided_course_wide_discussions': [],
'id': 1,
'division_scheme': 'cohort',
'available_division_schemes': ['cohort']
'available_division_schemes': ['cohort'],
'reported_content_email_notifications': False,
'reported_content_email_notifications_flag': False,
}
def patch_request(self, data, headers=None):
@@ -2491,6 +2493,15 @@ class CourseDiscussionSettingsAPIViewTest(APITestCase, UrlResetMixin, ModuleStor
expected_response['division_scheme'] = 'none'
self._assert_patched_settings({'division_scheme': 'none'}, expected_response)
def test_update_reported_content_email_notifications(self):
"""Test whether the 'reported_content_email_notifications' setting is updated."""
config_course_cohorts(self.course, is_cohorted=True)
config_course_discussions(self.course, reported_content_email_notifications=True)
expected_response = self._get_expected_response()
expected_response['reported_content_email_notifications'] = True
self._login_as_staff()
self._assert_current_settings(expected_response)
@ddt.ddt
class CourseDiscussionRolesAPIViewTest(APITestCase, UrlResetMixin, ModuleStoreTestCase):

View File

@@ -45,3 +45,16 @@ ENABLE_DISCUSSION_MODERATION_REASON_CODES = CourseWaffleFlag(
'enable_moderation_reason_codes',
__name__,
)
# .. toggle_name: discussions.enable_reported_content_email_notifications
# .. toggle_implementation: CourseWaffleFlag
# .. toggle_default: False
# .. toggle_description: Waffle flag to toggle email notifications for reported content for moderators
# .. toggle_use_cases: temporary, open_edx
# .. toggle_creation_date: 2022-03-08
# .. toggle_target_removal_date: 2022-12-31
ENABLE_REPORTED_CONTENT_EMAIL_NOTIFICATIONS = CourseWaffleFlag(
WAFFLE_FLAG_NAMESPACE,
'enable_reported_content_email_notifications',
__name__,
)