diff --git a/cms/djangoapps/contentstore/config/waffle.py b/cms/djangoapps/contentstore/config/waffle.py index bde49c25eca8..4c07260b5fc6 100644 --- a/cms/djangoapps/contentstore/config/waffle.py +++ b/cms/djangoapps/contentstore/config/waffle.py @@ -50,13 +50,11 @@ def waffle_flags(): # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Toggles the new micro-frontend-based implementation of the library authoring experience. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-08-03 -# .. toggle_expiration_date: 2020-12-31 +# .. toggle_target_removal_date: 2020-12-31 # .. toggle_warnings: Also set settings.LIBRARY_AUTHORING_MICROFRONTEND_URL and ENABLE_LIBRARY_AUTHORING_MICROFRONTEND. # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/COMM/pages/1545011241/BD-14+Blockstore+Powered+Content+Libraries+Taxonomies -# .. toggle_status: supported REDIRECT_TO_LIBRARY_AUTHORING_MICROFRONTEND = WaffleFlag( waffle_namespace=waffle_flags(), flag_name='library_authoring_mfe', diff --git a/cms/envs/common.py b/cms/envs/common.py index 99f2ab2a260b..a9d45cadaac6 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -170,9 +170,10 @@ 'ENABLE_DISCUSSION_SERVICE': True, 'ENABLE_TEXTBOOK': True, + # When True, all courses will be active, regardless of start date # DO NOT SET TO True IN THIS FILE # Doing so will cause all courses to be released on production - 'DISABLE_START_DATES': False, # When True, all courses will be active, regardless of start date + 'DISABLE_START_DATES': False, # email address for studio staff (eg to request course creation) 'STUDIO_REQUEST_EMAIL': '', @@ -303,8 +304,6 @@ # Whether or not the dynamic EnrollmentTrackUserPartition should be registered. 'ENABLE_ENROLLMENT_TRACK_USER_PARTITION': True, - # Whether to send an email for failed password reset attempts or not. This is mainly useful for notifying users - # that they don't have an account associated with email addresses they believe they've registered with. 'ENABLE_PASSWORD_RESET_FAILURE_EMAIL': False, # Whether archived courses (courses with end dates in the past) should be @@ -338,14 +337,11 @@ # .. toggle_name: ENABLE_CHANGE_USER_PASSWORD_ADMIN # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: Set to True to enable changing a user password through django admin. This is disabled by default because enabling allows a method to bypass password policy. - # .. toggle_category: admin + # .. toggle_description: Set to True to enable changing a user password through django admin. This is disabled by + # default because enabling allows a method to bypass password policy. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-02-21 - # .. toggle_expiration_date: None # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/21616' - # .. toggle_status: supported - # .. toggle_warnings: None 'ENABLE_CHANGE_USER_PASSWORD_ADMIN': False, ### ORA Feature Flags ### @@ -354,42 +350,36 @@ # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Set to True to enable team-based ORA submissions. - # .. toggle_category: ora - # .. toggle_use_cases: incremental_release + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_TEAM_SUBMISSIONS': False, # .. toggle_name: ENABLE_ORA_ALL_FILE_URLS # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: A "work-around" feature toggle meant to help in cases where some file uploads are not - # discoverable. If enabled, will iterate through all possible file key suffixes up to the max for displaying - # file metadata in staff assessments. - # .. toggle_category: ora - # .. toggle_use_cases: graceful_degradation + # discoverable. If enabled, will iterate through all possible file key suffixes up to the max for displaying file + # metadata in staff assessments. + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_ALL_FILE_URLS': False, # .. toggle_name: ENABLE_ORA_USER_STATE_UPLOAD_DATA # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: A "work-around" feature toggle meant to help in cases where some file uploads are not - # discoverable. If enabled, will pull file metadata from StudentModule.state for display in staff assessments. - # .. toggle_category: ora - # .. toggle_use_cases: graceful_degradation + # discoverable. If enabled, will pull file metadata from StudentModule.state for display in staff assessments. + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_USER_STATE_UPLOAD_DATA': False, # .. toggle_name: DEPRECATE_OLD_COURSE_KEYS_IN_STUDIO @@ -400,26 +390,24 @@ # To disable, set to False. # To enable with a custom support deadline, set to an ISO-8601 date string: # eg: '2020-09-01' - # .. toggle_category: n/a - # .. toggle_use_cases: incremental_release + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-06-12 - # .. toggle_expiration_date: 2020-12-01 - # .. toggle_warnings: This can be removed once support is removed for deprecated course keys. + # .. toggle_target_removal_date: 2020-12-01 + # .. toggle_warnings: This can be removed once support is removed for deprecated + # course keys. # .. toggle_tickets: https://openedx.atlassian.net/browse/DEPR-58 - # .. toggle_status: supported 'DEPRECATE_OLD_COURSE_KEYS_IN_STUDIO': True, # .. toggle_name: ENABLE_LIBRARY_AUTHORING_MICROFRONTEND # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Set to True to enable the Library Authoring MFE - # .. toggle_category: micro-frontend - # .. toggle_use_cases: incremental_release + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-06-20 - # .. toggle_expiration_date: 2020-12-31 + # .. toggle_target_removal_date: 2020-12-31 # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/COMM/pages/1545011241/BD-14+Blockstore+Powered+Content+Libraries+Taxonomies - # .. toggle_status: supported - # .. toggle_warnings: Also set settings.LIBRARY_AUTHORING_MICROFRONTEND_URL and see REDIRECT_TO_LIBRARY_AUTHORING_MICROFRONTEND for rollout. + # .. toggle_warnings: Also set settings.LIBRARY_AUTHORING_MICROFRONTEND_URL and see + # REDIRECT_TO_LIBRARY_AUTHORING_MICROFRONTEND for rollout. 'ENABLE_LIBRARY_AUTHORING_MICROFRONTEND': False, } @@ -2271,26 +2259,22 @@ # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Toggle for removing the deprecated /signin url. -# .. toggle_category: n/a -# .. toggle_use_cases: incremental_release +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2019-12-02 -# .. toggle_expiration_date: 2020-06-01 +# .. toggle_target_removal_date: 2020-06-01 # .. toggle_warnings: This url can be removed once it no longer has any real traffic. # .. toggle_tickets: ARCH-1253 -# .. toggle_status: supported DISABLE_DEPRECATED_SIGNIN_URL = False # .. toggle_name: DISABLE_DEPRECATED_SIGNUP_URL # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Toggle for removing the deprecated /signup url. -# .. toggle_category: n/a -# .. toggle_use_cases: incremental_release +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2019-12-02 -# .. toggle_expiration_date: 2020-06-01 +# .. toggle_target_removal_date: 2020-06-01 # .. toggle_warnings: This url can be removed once it no longer has any real traffic. # .. toggle_tickets: ARCH-1253 -# .. toggle_status: supported DISABLE_DEPRECATED_SIGNUP_URL = False ##### LOGISTRATION RATE LIMIT SETTINGS ##### diff --git a/doc.rst.j2 b/doc.rst.j2 index dc787e616adb..b4bd36750971 100644 --- a/doc.rst.j2 +++ b/doc.rst.j2 @@ -11,15 +11,13 @@ These are all of our well-documented feature toggles! {{ group.toggle_description }} * Type: {{ group.toggle_type[0] }} -* Status: {{ group.toggle_status }} * Use cases: {{ group.toggle_use_cases|join(", ") }} {% if group.toggle_warnings != 'None' -%} * Warnings: {{ group.toggle_warnings }} {% endif -%} -{% if group.toggle_expiration_date != 'None' -%} -* Expiration date: {{ group.toggle_expiration_date }} +{% if group.toggle_target_removal_date != 'None' -%} +* Expiration date: {{ group.toggle_target_removal_date }} {% endif -%} -* Category: {{ group.toggle_category }} {% if group.toggle_tickets != 'None' -%} * Tickets: {{ group.toggle_tickets }} {% endif -%} diff --git a/lms/djangoapps/bulk_email/models.py b/lms/djangoapps/bulk_email/models.py index 1e2340b7aec2..2e093ad8b0a5 100644 --- a/lms/djangoapps/bulk_email/models.py +++ b/lms/djangoapps/bulk_email/models.py @@ -468,18 +468,6 @@ def __str__(self): return u"Course '{}': Instructor Email {}Enabled".format(text_type(self.course_id), not_en) -# .. toggle_name: require_course_email_auth -# .. toggle_implementation: ConfigurationModel -# .. toggle_default: True (enabled) -# .. toggle_description: 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. -# .. toggle_category: bulk email -# .. toggle_use_cases: open_edx -# .. toggle_creation_date: 2016-05-05 -# .. toggle_expiration_date: None -# .. toggle_warnings: None -# .. toggle_tickets: None -# .. toggle_status: supported @python_2_unicode_compatible class BulkEmailFlag(ConfigurationModel): """ @@ -490,6 +478,15 @@ class BulkEmailFlag(ConfigurationModel): 2. Course-specific authorization not required, or course authorized to use bulk email. .. no_pii: + + .. toggle_name: require_course_email_auth + .. toggle_implementation: ConfigurationModel + .. toggle_default: True (enabled) + .. toggle_description: If the flag is enabled, course-specific authorization is + required, and the course_id is either not provided or not authorized, the feature + is not available. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2016-05-05 """ # boolean field 'enabled' inherited from parent ConfigurationModel require_course_email_auth = models.BooleanField(default=True) diff --git a/lms/djangoapps/course_api/__init__.py b/lms/djangoapps/course_api/__init__.py index 790a495b4ea8..514905f0b96e 100644 --- a/lms/djangoapps/course_api/__init__.py +++ b/lms/djangoapps/course_api/__init__.py @@ -5,5 +5,21 @@ WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='course_list_api_rate_limit') +# .. toggle_name: course_list_api_rate_limit.rate_limit_2 +# .. toggle_implementation: WaffleSwitch +# .. toggle_default: False +# .. toggle_description: Waffle switch to enable the throttling of 2 requests/minute to the course API. For staff +# users, this limit is 10 requests/minute. +# .. toggle_use_cases: circuit_breaker +# .. toggle_creation_date: 2018-06-12 +# .. toggle_tickets: https://openedx.atlassian.net/browse/LEARNER-5527 USE_RATE_LIMIT_2_FOR_COURSE_LIST_API = WaffleSwitch(WAFFLE_SWITCH_NAMESPACE, 'rate_limit_2', __name__) +# .. toggle_name: course_list_api_rate_limit.rate_limit_10 +# .. toggle_implementation: WaffleSwitch +# .. toggle_default: False +# .. toggle_description: Waffle switch to enable the throttling of 10 requests/minute to the course API. For staff +# users, this limit is 20 requests/minute. +# .. toggle_use_cases: circuit_breaker +# .. toggle_creation_date: 2018-06-12 +# .. toggle_tickets: https://openedx.atlassian.net/browse/LEARNER-5527 USE_RATE_LIMIT_10_FOR_COURSE_LIST_API = WaffleSwitch(WAFFLE_SWITCH_NAMESPACE, 'rate_limit_10', __name__) diff --git a/lms/djangoapps/course_api/blocks/toggles.py b/lms/djangoapps/course_api/blocks/toggles.py index 6ca707d3ae78..628cabe3dce6 100644 --- a/lms/djangoapps/course_api/blocks/toggles.py +++ b/lms/djangoapps/course_api/blocks/toggles.py @@ -3,23 +3,17 @@ """ -from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlag, WaffleFlagNamespace +from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace COURSE_BLOCKS_API_NAMESPACE = WaffleFlagNamespace(name=u'course_blocks_api') -# Waffle flag to hide access denial message. # .. toggle_name: course_blocks_api.hide_access_denials # .. toggle_implementation: WaffleFlag # .. toggle_default: False -# .. toggle_description: ?? -# .. toggle_category: course api -# .. toggle_use_cases: incremental_release, open_edx -# .. toggle_creation_date: 2019-04-10 -# .. toggle_expiration_date: ?? -# .. toggle_warnings: ?? -# .. toggle_tickets: ?? -# .. toggle_status: ?? +# .. toggle_description: Waffle flag to hide access denial messages in the course blocks. +# .. toggle_use_cases: temporary, open_edx +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. HIDE_ACCESS_DENIALS_FLAG = WaffleFlag( waffle_namespace=COURSE_BLOCKS_API_NAMESPACE, flag_name=u'hide_access_denials', diff --git a/lms/djangoapps/courseware/toggles.py b/lms/djangoapps/courseware/toggles.py index 8c863a7fedf5..a80eacaf0073 100644 --- a/lms/djangoapps/courseware/toggles.py +++ b/lms/djangoapps/courseware/toggles.py @@ -8,35 +8,33 @@ # Namespace for courseware waffle flags. WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='courseware') -# Waffle flag to redirect to another learner profile experience. # .. toggle_name: courseware.courseware_mfe # .. toggle_implementation: ExperimentWaffleFlag # .. toggle_default: False -# .. toggle_description: Supports staged rollout to students for a new micro-frontend-based implementation of the courseware page. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_description: Waffle flag to redirect to another learner profile experience. Supports staged rollout to +# students for a new micro-frontend-based implementation of the courseware page. +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-01-29 -# .. toggle_expiration_date: 2020-12-31 -# .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and ENABLE_COURSEWARE_MICROFRONTEND. +# .. toggle_target_removal_date: 2020-12-31 +# .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and +# ENABLE_COURSEWARE_MICROFRONTEND. # .. toggle_tickets: TNL-7000 -# .. toggle_status: supported REDIRECT_TO_COURSEWARE_MICROFRONTEND = ExperimentWaffleFlag( WAFFLE_FLAG_NAMESPACE, 'courseware_mfe', __name__, use_course_aware_bucketing=False ) -# Waffle flag to display a link for the new learner experience to course teams without redirecting students. -# # .. toggle_name: courseware.microfrontend_course_team_preview # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False -# .. toggle_description: Supports staged rollout to course teams of a new micro-frontend-based implementation of the courseware page. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_description: Waffle flag to display a link for the new learner experience to course teams without +# redirecting students. Supports staged rollout to course teams of a new micro-frontend-based implementation of the +# courseware page. +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-03-09 -# .. toggle_expiration_date: 2020-12-31 -# .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and ENABLE_COURSEWARE_MICROFRONTEND. +# .. toggle_target_removal_date: 2020-12-31 +# .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and +# ENABLE_COURSEWARE_MICROFRONTEND. # .. toggle_tickets: TNL-6982 -# .. toggle_status: supported COURSEWARE_MICROFRONTEND_COURSE_TEAM_PREVIEW = CourseWaffleFlag( WAFFLE_FLAG_NAMESPACE, 'microfrontend_course_team_preview', __name__ ) diff --git a/lms/djangoapps/discussion/config/settings.py b/lms/djangoapps/discussion/config/settings.py index b931c8e27e79..946754cb1b19 100644 --- a/lms/djangoapps/discussion/config/settings.py +++ b/lms/djangoapps/discussion/config/settings.py @@ -6,14 +6,11 @@ # .. toggle_name: FEATURES['ENABLE_FORUM_DAILY_DIGEST'] # .. toggle_implementation: DjangoSetting # .. toggle_default: True -# .. toggle_description: Settings for forums/discussions to on/off daily digest feature. Set this to True if you want to enable users to subscribe and unsubscribe for daily digest. This setting enables deprecation of daily digest. -# .. toggle_category: discussion +# .. toggle_description: Settings for forums/discussions to on/off daily digest +# feature. Set this to True if you want to enable users to subscribe and unsubscribe +# for daily digest. This setting enables deprecation of daily digest. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-03-09 -# .. toggle_expiration_date: None -# .. toggle_tickets: None -# .. toggle_status: supported -# .. toggle_warnings: None ENABLE_FORUM_DAILY_DIGEST = 'enable_forum_daily_digest' diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index 57c8aa19c8fa..3d954da94ef2 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -38,13 +38,11 @@ # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Toggle for adding the current course's program information to user metadata -# .. toggle_category: experiments -# .. toggle_use_cases: monitored_rollout +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2019-2-25 -# .. toggle_expiration_date: None -# .. toggle_warnings: None +# .. toggle_target_removal_date: None # .. toggle_tickets: REVEM-63, REVEM-198 -# .. toggle_status: supported +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. PROGRAM_INFO_FLAG = WaffleFlag( waffle_namespace=experiments_namespace, flag_name=u'add_programs', @@ -55,13 +53,11 @@ # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Toggle for adding info about each course to the dashboard metadata -# .. toggle_category: experiments -# .. toggle_use_cases: monitored_rollout +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2019-3-28 -# .. toggle_expiration_date: None -# .. toggle_warnings: None +# .. toggle_target_removal_date: None # .. toggle_tickets: REVEM-118 -# .. toggle_status: supported +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. DASHBOARD_INFO_FLAG = WaffleFlag(experiments_namespace, u'add_dashboard_info', __name__) # TODO END: clean up as part of REVEM-199 (End) @@ -70,13 +66,11 @@ # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Make sure upsell tracking JS works as expected. -# .. toggle_category: experiments -# .. toggle_use_cases: monitored_rollout +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-7-7 -# .. toggle_expiration_date: None -# .. toggle_warnings: None +# .. toggle_target_removal_date: None # .. toggle_tickets: REV-1205 -# .. toggle_status: supported +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. UPSELL_TRACKING_FLAG = WaffleFlag( waffle_namespace=experiments_namespace, flag_name=u'add_upsell_tracking', diff --git a/lms/djangoapps/experiments/views_custom.py b/lms/djangoapps/experiments/views_custom.py index 1ee2b8c30eec..95445816a457 100644 --- a/lms/djangoapps/experiments/views_custom.py +++ b/lms/djangoapps/experiments/views_custom.py @@ -31,17 +31,15 @@ from track import segment -# .. feature_toggle_name: experiments.mobile_upsell_rev934 -# .. feature_toggle_type: flag -# .. feature_toggle_default: False -# .. feature_toggle_description: Toggle mobile upsell enabled -# .. feature_toggle_category: experiments -# .. feature_toggle_use_cases: monitored_rollout -# .. feature_toggle_creation_date: 2019-09-05 -# .. feature_toggle_expiration_date: None -# .. feature_toggle_warnings: None -# .. feature_toggle_tickets: REV-934 -# .. feature_toggle_status: supported +# .. toggle_name: experiments.mobile_upsell_rev934 +# .. toggle_type: flag +# .. toggle_default: False +# .. toggle_description: Toggle mobile upsell enabled +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2019-09-05 +# .. toggle_target_removal_date: None +# .. toggle_tickets: REV-934 +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. MOBILE_UPSELL_FLAG = WaffleFlag( waffle_namespace=WaffleFlagNamespace(name=u'experiments'), flag_name=u'mobile_upsell_rev934', diff --git a/lms/djangoapps/grades/api.py b/lms/djangoapps/grades/api.py index 92ad492f569c..3c2de86d1de4 100644 --- a/lms/djangoapps/grades/api.py +++ b/lms/djangoapps/grades/api.py @@ -134,7 +134,7 @@ def undo_override_subsection_grade(user_id, course_key_or_id, usage_key_or_id, f def should_override_grade_on_rejected_exam(course_key_or_id): - """Convienence function to return the state of the CourseWaffleFlag REJECTED_EXAM_OVERRIDES_GRADE""" + """Convenience function to return the state of the CourseWaffleFlag REJECTED_EXAM_OVERRIDES_GRADE""" from .config.waffle import waffle_flags, REJECTED_EXAM_OVERRIDES_GRADE course_key = _get_key(course_key_or_id, CourseKey) return waffle_flags()[REJECTED_EXAM_OVERRIDES_GRADE].is_enabled(course_key) diff --git a/lms/djangoapps/grades/config/models.py b/lms/djangoapps/grades/config/models.py index 94b814c25fd6..ea60c0854023 100644 --- a/lms/djangoapps/grades/config/models.py +++ b/lms/djangoapps/grades/config/models.py @@ -24,6 +24,18 @@ class PersistentGradesEnabledFlag(ConfigurationModel): feature to take effect. .. no_pii: + + .. toggle_name: PersistentGradesEnabledFlag.enabled + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: When enabled, grades are persisted. This means that PersistentCourseGrade objects are + created for student grades. In order for this to take effect, CoursePersistentGradesFlag objects must also be + created individually for each course. Alternatively, the PersistentGradesEnabledFlag.enabled_for_all_courses + waffle flag or the PERSISTENT_GRADES_ENABLED_FOR_ALL_TESTS feature flag can be set to True to enable this + feature for all courses. + .. toggle_use_cases: temporary + .. toggle_creation_date: 2016-08-26 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/13329 """ # this field overrides course-specific settings to enable the feature for all courses enabled_for_all_courses = BooleanField(default=False) diff --git a/lms/djangoapps/grades/config/waffle.py b/lms/djangoapps/grades/config/waffle.py index 9ed8ba7f1c84..41a171428c8b 100644 --- a/lms/djangoapps/grades/config/waffle.py +++ b/lms/djangoapps/grades/config/waffle.py @@ -10,13 +10,67 @@ WAFFLE_NAMESPACE = u'grades' # Switches + +# .. toggle_name: grades.assume_zero_grade_if_absent +# .. toggle_implementation: WaffleSwitch +# .. toggle_default: False +# .. toggle_description: When enabled, an absent grade is assumed to be zero. Alternatively, defining the +# `settings.FEATURES["ASSUME_ZERO_GRADE_IF_ABSENT_FOR_ALL_TESTS"]` feature flag in the LMS will enable this feature +# for all courses. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2017-04-11 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/14771 +# .. toggle_warnings: This requires the PersistentGradesEnabledFlag to be enabled. ASSUME_ZERO_GRADE_IF_ABSENT = u'assume_zero_grade_if_absent' +# .. toggle_name: grades.disable_regrade_on_policy_change +# .. toggle_implementation: WaffleSwitch +# .. toggle_default: False +# .. toggle_description: When enabled, a change in grading policy will not trigger re-grading. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2017-08-03 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/15733 DISABLE_REGRADE_ON_POLICY_CHANGE = u'disable_regrade_on_policy_change' # Course Flags + +# .. toggle_name: grades.rejected_exam_overrides_grade +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: When enabled, a rejected exam will trigger a grade override. Note that this flag is not used +# in edx-platform, but only in edx-proctoring. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2019-05-29 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/20719 REJECTED_EXAM_OVERRIDES_GRADE = u'rejected_exam_overrides_grade' +# .. toggle_name: grades.rejected_exam_overrides_grade +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: When enabled, grades can no longer be updated 30 days after a course has ended. Note that this +# is only valid for courses which actually have an end date. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2018-10-01 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/19026 ENFORCE_FREEZE_GRADE_AFTER_COURSE_END = u'enforce_freeze_grade_after_course_end' + +# .. toggle_name: grades.writable_gradebook +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: When enabled, add GET/POST endpoints for updating gradebook entries in bulk. Also, a link to +# the writable gradebook is added to the instructor dashboard. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2018-10-03 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/19054 +# .. toggle_warnings: Enabling this requires that the `WRITABLE_GRADEBOOK_URL` setting be properly defined. WRITABLE_GRADEBOOK = u'writable_gradebook' + +# .. toggle_name: grades.bulk_management +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: When enabled, bulk features are visible for management in masters course. As far +# as we understand, this feature is now unused and obsolete. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2019-08-20 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/21389 BULK_MANAGEMENT = u'bulk_management' diff --git a/lms/djangoapps/grades/services.py b/lms/djangoapps/grades/services.py index 0daac4d9d15f..6d03e8b56d11 100644 --- a/lms/djangoapps/grades/services.py +++ b/lms/djangoapps/grades/services.py @@ -61,5 +61,5 @@ def undo_override_subsection_grade(self, user_id, course_key_or_id, usage_key_or return api.undo_override_subsection_grade(user_id, course_key_or_id, usage_key_or_id, feature=feature) def should_override_grade_on_rejected_exam(self, course_key_or_id): - """Convienence function to return the state of the CourseWaffleFlag REJECTED_EXAM_OVERRIDES_GRADE""" + """Convenience function to return the state of the CourseWaffleFlag REJECTED_EXAM_OVERRIDES_GRADE""" return api.should_override_grade_on_rejected_exam(course_key_or_id) diff --git a/lms/djangoapps/verify_student/toggles.py b/lms/djangoapps/verify_student/toggles.py index b04701c74707..3df8a34854cf 100644 --- a/lms/djangoapps/verify_student/toggles.py +++ b/lms/djangoapps/verify_student/toggles.py @@ -11,14 +11,13 @@ # .. toggle_name: verify_student.use_new_email_templates # .. toggle_implementation: WaffleFlag # .. toggle_default: False -# .. toggle_description: Supports staged rollout to students for a new email templates implementation for ID verification. -# .. toggle_category: verify student -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_description: Supports staged rollout to students for a new email templates +# implementation for ID verification. +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-06-25 -# .. toggle_expiration_date: n/a -# .. toggle_warnings: n/a +# .. toggle_target_removal_date: None +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. # .. toggle_tickets: PROD-1639 -# .. toggle_status: supported USE_NEW_EMAIL_TEMPLATES = WaffleFlag( waffle_namespace=WAFFLE_FLAG_NAMESPACE, flag_name='use_new_email_templates', @@ -35,13 +34,11 @@ def use_new_templates_for_id_verification_emails(): # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Supports staged rollout to students for the new IDV flow. -# .. toggle_category: verify student -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-07-09 -# .. toggle_expiration_date: n/a -# .. toggle_warnings: n/a +# .. toggle_target_removal_date: None +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. # .. toggle_tickets: MST-318 -# .. toggle_status: supported REDIRECT_TO_IDV_MICROFRONTEND = WaffleFlag( waffle_namespace=WAFFLE_FLAG_NAMESPACE, flag_name='redirect_to_idv_microfrontend', diff --git a/lms/envs/common.py b/lms/envs/common.py index aef8036fb048..27c755246da8 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -82,65 +82,127 @@ # Features FEATURES = { + # .. toggle_name: DISPLAY_DEBUG_INFO_TO_STAFF + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: Add a "Staff Debug" button to course modules for debugging + # by course staff. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2015-09-04 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2425 'DISPLAY_DEBUG_INFO_TO_STAFF': True, 'DISPLAY_HISTOGRAMS_TO_STAFF': False, # For large courses this slows down courseware access for staff. 'REROUTE_ACTIVATION_EMAIL': False, # nonempty string = address for all activation emails + # .. toggle_name: DISABLE_START_DATES + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: When True, all courses will be active, regardless of start + # date. + # .. toggle_use_cases: open_edx + # .. toggle_warnings: This will cause ALL courses to be immediately visible. + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/17913 ## DO NOT SET TO True IN THIS FILE ## Doing so will cause all courses to be released on production - 'DISABLE_START_DATES': False, # When True, all courses will be active, regardless of start date + 'DISABLE_START_DATES': False, # for consistency in user-experience, keep the value of the following 3 settings # in sync with the corresponding ones in cms/envs/common.py 'ENABLE_DISCUSSION_SERVICE': True, + + # .. toggle_name: ENABLE_TEXTBOOK + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: Add PDF and HTML textbook tabs to the courseware. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-03-27 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/3064 'ENABLE_TEXTBOOK': True, # discussion home panel, which includes a subscription on/off setting for discussion digest emails. # this should remain off in production until digest notifications are online. 'ENABLE_DISCUSSION_HOME_PANEL': False, - # Set this to True if you want the discussion digest emails enabled automatically for new users. - # This will be set on all new account registrations. - # It is not recommended to enable this feature if ENABLE_DISCUSSION_HOME_PANEL is not enabled, since - # subscribers who receive digests in that case will only be able to unsubscribe via links embedded - # in their emails, and they will have no way to resubscribe. + # .. toggle_name: ENABLE_DISCUSSION_EMAIL_DIGEST + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Set this to True if you want the discussion digest emails + # enabled automatically for new users. This will be set on all new account + # registrations. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-08-19 + # .. toggle_warnings: It is not recommended to enable this feature if ENABLE_DISCUSSION_HOME_PANEL is not enabled, + # since subscribers who receive digests in that case will only be able to unsubscribe via links embedded in + # their emails, and they will have no way to resubscribe. + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/4891 'ENABLE_DISCUSSION_EMAIL_DIGEST': False, + # .. toggle_name: ENABLE_UNICODE_USERNAME + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Set this to True to allow unicode characters in username. Enabling this will also + # automatically enable SOCIAL_AUTH_CLEAN_USERNAMES. When this is enabled, usernames will have to match the + # regular expression defined by USERNAME_REGEX_PARTIAL. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2017-06-27 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/14729 + 'ENABLE_UNICODE_USERNAME': False, + 'ENABLE_DJANGO_ADMIN_SITE': True, # set true to enable django's admin site, even on prod (e.g. for course ops) 'ENABLE_LMS_MIGRATION': False, - 'ENABLE_MASQUERADE': True, # allow course staff to change to student view of courseware + # .. toggle_name: ENABLE_MASQUERADE + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2013-04-13 + 'ENABLE_MASQUERADE': True, # .. toggle_name: ENABLE_SYSADMIN_DASHBOARD # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: enables dashboard at /syadmin/ for django staff, for seeing overview of system status, for deleting and loading courses, for seeing log of git imports of courseware. - # .. toggle_category: admin + # .. toggle_description: enables dashboard at /syadmin/ for django staff, for seeing overview of system status, for + # deleting and loading courses, for seeing log of git imports of courseware. Note that some views are noopen_edx # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-12-12 - # .. toggle_expiration_date: None - # .. toggle_warnings: some views are not performant when there are more than 100 courses - # .. toggle_tickets: None - # .. toggle_status: unsupported + # .. toggle_target_removal_date: None + # .. toggle_warnings: This feature is not supported anymore and should have a target removal date. 'ENABLE_SYSADMIN_DASHBOARD': False, # sysadmin dashboard, to see what courses are loaded, to delete & load courses 'DISABLE_LOGIN_BUTTON': False, # used in systems where login is automatic, eg MIT SSL - # Toggles OAuth2 authentication provider + # .. toggle_name: ENABLE_OAUTH2_PROVIDER + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Enable this feature to allow this Open edX platform to be an OAuth2 authentication + # provider. This is necessary to enable some other features, such as the REST API for the mobile application. + # .. toggle_use_cases: temporary + # .. toggle_creation_date: 2014-09-09 + # .. toggle_target_removal_date: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_OAUTH2_PROVIDER': False, - # Allows to enable an API endpoint to serve XBlock view, used for example by external applications. - # See jquey-xblock: https://github.com/edx-solutions/jquery-xblock + # .. toggle_name: ENABLE_XBLOCK_VIEW_ENDPOINT + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Enable an API endpoint, named "xblock_view", to serve rendered XBlock views. This might be + # used by external applications. See for instance jquery-xblock (now unmaintained): + # https://github.com/edx-solutions/jquery-xblock + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-03-14 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2968 'ENABLE_XBLOCK_VIEW_ENDPOINT': False, - # Allows to configure the LMS to provide CORS headers to serve requests from other domains + # Allows to configure the LMS to provide CORS headers to serve requests from other + # domains 'ENABLE_CORS_HEADERS': False, # Can be turned off if course lists need to be hidden. Effects views and templates. 'COURSES_ARE_BROWSABLE': True, - # Set to hide the courses list on the Learner Dashboard if they are not enrolled in any courses yet. + # Set to hide the courses list on the Learner Dashboard if they are not enrolled in + # any courses yet. 'HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED': False, # Give a UI to show a student's submission history in a problem by the @@ -180,14 +242,11 @@ # .. toggle_name: DISABLE_HONOR_CERTIFICATES # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: Set to True to disable honor certificates. Typically used when your installation only allows verified certificates, like courses.edx.org. - # .. toggle_category: certificates + # .. toggle_description: Set to True to disable honor certificates. Typically used when your installation only + # allows verified certificates, like courses.edx.org. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2019-05-14 - # .. toggle_expiration_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/PROD-269 - # .. toggle_status: supported - # .. toggle_warnings: ??? 'DISABLE_HONOR_CERTIFICATES': False, # Toggle to disable honor certificates 'DISABLE_AUDIT_CERTIFICATES': False, # Toggle to disable audit certificates @@ -195,9 +254,36 @@ # for acceptance and load testing 'AUTOMATIC_AUTH_FOR_TESTING': False, - # Prevent auto auth from creating superusers or modifying existing users + # .. toggle_name: RESTRICT_AUTOMATIC_AUTH + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: Prevent auto auth from creating superusers or modifying existing users. Auto auth is a + # mechanism where superusers can simply modify attributes of other users by accessing the "/auto_auth url" with + # the right + # querystring parameters. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2018-05-07 + # .. toggle_tickets: https://openedx.atlassian.net/browse/TE-2545 'RESTRICT_AUTOMATIC_AUTH': True, + # .. toggle_name: ENABLE_LOGIN_MICROFRONTEND + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Enable the login micro frontend. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2018-05-07 + # .. toggle_warnings: The login MFE domain name should be listed in LOGIN_REDIRECT_WHITELIST. + 'ENABLE_LOGIN_MICROFRONTEND': False, + + # .. toggle_name: SKIP_EMAIL_VALIDATION + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Turn this on to skip sending emails for user validation. + # Beware, as this leaves the door open to potential spam abuse. + # .. toggle_use_cases: open_edx + # .. toggle_warnings: The login MFE domain name should be listed in LOGIN_REDIRECT_WHITELIST. + 'SKIP_EMAIL_VALIDATION': False, + # Toggle the availability of the shopping cart page 'ENABLE_SHOPPING_CART': False, @@ -207,7 +293,15 @@ # Enable flow for payments for course registration (DIFFERENT from verified student flow) 'ENABLE_PAID_COURSE_REGISTRATION': False, - # Enable the display of cosmetic course price display (set in course advanced settings) + # .. toggle_name: ENABLE_COSMETIC_DISPLAY_PRICE + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Enable the display of "cosmetic_display_price", set in a course advanced settings. This + # cosmetic price is used when there is no registration price associated to the course. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-10-10 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6876 + # .. toggle_warnings: The use case of this feature toggle is uncertain. 'ENABLE_COSMETIC_DISPLAY_PRICE': False, # Automatically approve student identity verification attempts @@ -238,11 +332,25 @@ # defaults, so that we maintain current behavior 'ALLOW_WIKI_ROOT_ACCESS': True, - # Turn on third-party auth. Disabled for now because full implementations are not yet available. Remember to run - # migrations if you enable this; we don't create tables by default. + # .. toggle_name: ENABLE_THIRD_PARTY_AUTH + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Turn on third-party auth. Disabled for now because full mplementations are not yet + # available. Remember to run migrations if you enable this; we don't create tables by default. This feature can + # be enabled on a per-site basis. When enabling this feature, remember to define the allowed authentication + # backends with the AUTHENTICATION_BACKENDS setting. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-09-15 'ENABLE_THIRD_PARTY_AUTH': False, - # Toggle to enable alternate urls for marketing links + # .. toggle_name: ENABLE_MKTG_SITE + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Toggle to enable alternate urls for marketing links. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2014-03-24 + # .. toggle_warnings: When this is enabled, the MKTG_URLS setting should be defined. The use case of this feature + # toggle is uncertain. 'ENABLE_MKTG_SITE': False, # Prevent concurrent logins per user @@ -253,15 +361,40 @@ # False to not redirect the user 'ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER': True, - # When a user goes to the homepage ('/') the user sees the - # courses listed in the announcement dates order - this is default Open edX behavior. - # Set to True to change the course sorting behavior by their start dates, latest first. + # .. toggle_name: ENABLE_COURSE_SORTING_BY_START_DATE + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: When a user goes to the homepage ('/') the user sees the courses listed in the + # announcement dates order - this is default Open edX behavior. Set to True to change the course sorting behavior + # by their start dates, latest first. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2015-03-27 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7548 'ENABLE_COURSE_SORTING_BY_START_DATE': True, + # .. toggle_name: ENABLE_COURSE_HOME_REDIRECT + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: When enabled, along with the ENABLE_MKTG_SITE feature toggle, users who attempt to access a + # course "about" page will be redirected to the course home url. This url might be the course "info" page or the + # unified course tab (when the UNIFIED_COURSE_TAB_FLAG waffle is enabled). + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2019-01-15 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/19604 + 'ENABLE_COURSE_HOME_REDIRECT': True, + # Expose Mobile REST API. Note that if you use this, you must also set # ENABLE_OAUTH2_PROVIDER to True 'ENABLE_MOBILE_REST_API': False, + # .. toggle_name: ENABLE_COMBINED_LOGIN_REGISTRATION_FOOTER + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Display the standard footer in the login page. This feature can be overridden by a site- + # specific configuration. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2016-06-24 + # .. toggle_tickets: https://openedx.atlassian.net/browse/OSPR-1320 'ENABLE_COMBINED_LOGIN_REGISTRATION_FOOTER': False, # Enable organizational email opt-in @@ -302,13 +435,29 @@ # log all information from cybersource callbacks 'LOG_POSTPAY_CALLBACKS': True, - # Toggle platform-wide course licensing + # .. toggle_name: LICENSING + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Toggle platform-wide course licensing. The course.license attribute is then used to append + # license information to the courseware. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2015-05-14 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7315 'LICENSING': False, # Certificates Web/HTML Views 'CERTIFICATES_HTML_VIEW': False, - # Course discovery feature + # .. toggle_name: ENABLE_COURSE_DISCOVERY + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Add a course search widget to the LMS for searching courses. When this is enabled, the + # latest courses are no longer displayed on the LMS landing page. Also, an "Explore Courses" item is added to the + # navbar. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2015-04-23 + # .. toggle_warnings: The COURSE_DISCOVERY_MEANINGS setting should be properly defined. + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7845 'ENABLE_COURSE_DISCOVERY': False, # Setting for overriding default filtering facets for Course discovery @@ -326,7 +475,13 @@ # How many seconds to show the bumper again, default is 7 days: 'SHOW_BUMPER_PERIODICITY': 7 * 24 * 3600, - # Special Exams, aka Timed and Proctored Exams + # .. toggle_name: ENABLE_SPECIAL_EXAMS + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Enable to use special exams, aka timed and proctored exams. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2015-09-04 + # .. toggle_tickets: https://github.com/edx/edx-platform/pull/9744 'ENABLE_SPECIAL_EXAMS': False, # Enable OpenBadge support. See the BADGR_* settings later in this file. @@ -346,10 +501,15 @@ # Show the language selector in the footer 'SHOW_FOOTER_LANGUAGE_SELECTOR': False, - # Write new CSM history to the extended table. - # This will eventually default to True and may be - # removed since all installs should have the separate - # extended history table. + # .. toggle_name: ENABLE_CSMH_EXTENDED + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: Write Courseware Student Module History (CSMH) to the extended table: this logs all + # student activities to MySQL, in a separate database. + # .. toggle_use_cases: open_edx + # .. toggle_warnings: Even though most Open edX instances run with a separate CSMH database, it may not always be + # the case. When disabling this feature flag, remember to remove "coursewarehistoryextended" from the + # INSTALLED_APPS and the "StudentModuleHistoryExtendedRouter" from the DATABASE_ROUTERS. 'ENABLE_CSMH_EXTENDED': True, # Read from both the CSMH and CSMHE history tables. @@ -361,7 +521,14 @@ # Set this to False to facilitate cleaning up invalid xml from your modulestore. 'ENABLE_XBLOCK_XML_VALIDATION': True, - # Allow public account creation + # .. toggle_name: ALLOW_PUBLIC_ACCOUNT_CREATION + # .. toggle_implementation: DjangoSetting + # .. toggle_default: True + # .. toggle_description: Allow public account creation. If this is disabled, users will no longer have access to + # the signup page. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2017-04-12 + # .. toggle_tickets: https://openedx.atlassian.net/browse/YONK-513 'ALLOW_PUBLIC_ACCOUNT_CREATION': True, # Enable footer banner for cookie consent. @@ -390,8 +557,16 @@ # Whether HTML XBlocks/XModules return HTML content with the Course Blocks API student_view_data 'ENABLE_HTML_XBLOCK_STUDENT_VIEW_DATA': False, - # Whether to send an email for failed password reset attempts or not. This is mainly useful for notifying users - # that they don't have an account associated with email addresses they believe they've registered with. + # .. toggle_name: ENABLE_CHANGE_USER_PASSWORD_ADMIN + # .. toggle_implementation: DjangoSetting + # .. toggle_default: False + # .. toggle_description: Whether to send an email for failed password reset attempts or not. This happens when a + # user asks for a password reset but they don't have an account associated to their email. This is useful for + # notifying users that they don't have an account associated with email addresses they believe they've registered + # with. This setting can be overridden by a site-specific configuration. + # .. toggle_use_cases: open_edx + # .. toggle_creation_date: 2017-07-20 + # .. toggle_tickets: https://openedx.atlassian.net/browse/OSPR-1832 'ENABLE_PASSWORD_RESET_FAILURE_EMAIL': False, # Sets the default browser support. For more information go to http://browser-update.org/customize.html @@ -407,40 +582,35 @@ # .. toggle_name: ENABLE_CHANGE_USER_PASSWORD_ADMIN # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: Set to True to enable changing a user password through django admin. This is disabled by default because enabling allows a method to bypass password policy. - # .. toggle_category: admin + # .. toggle_description: Set to True to enable changing a user password through django admin. This is disabled by + # default because enabling allows a method to bypass password policy. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-02-21 - # .. toggle_expiration_date: None # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/21616' - # .. toggle_status: supported - # .. toggle_warnings: None 'ENABLE_CHANGE_USER_PASSWORD_ADMIN': False, # .. toggle_name: ENABLE_COURSEWARE_MICROFRONTEND # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: Set to True to enable the Courseware MFE at the platform level for global staff (see REDIRECT_TO_COURSEWARE_MICROFRONTEND for course rollout) - # .. toggle_category: admin + # .. toggle_description: Set to True to enable the Courseware MFE at the platform level for global staff (see + # REDIRECT_TO_COURSEWARE_MICROFRONTEND for course rollout) # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-03-05 - # .. toggle_expiration_date: None # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/23317' - # .. toggle_status: supported - # .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and see REDIRECT_TO_COURSEWARE_MICROFRONTEND for rollout. + # .. toggle_warnings: Also set settings.LEARNING_MICROFRONTEND_URL and see REDIRECT_TO_COURSEWARE_MICROFRONTEND for + # rollout. 'ENABLE_COURSEWARE_MICROFRONTEND': False, # .. toggle_name: ENABLE_LOGISTRATION_MICROFRONTEND # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Supports staged rollout of a new micro-frontend-based implementation of the logistration. - # .. toggle_category: micro-frontend - # .. toggle_use_cases: incremental_release, open_edx + # .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-09-08 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/24908' - # .. toggle_status: supported - # .. toggle_warnings: Also set settings.ACCOUNT_MICROFRONTEND_URL and set REDIRECT_TO_ACCOUNT_MICROFRONTEND for rollout. + # .. toggle_warnings: Also set settings.ACCOUNT_MICROFRONTEND_URL and set REDIRECT_TO_ACCOUNT_MICROFRONTEND for + # rollout. This temporary feature toggle does not have a target removal date. 'ENABLE_LOGISTRATION_MICROFRONTEND': False, ### ORA Feature Flags ### @@ -449,55 +619,48 @@ # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Set to True to enable team-based ORA submissions. - # .. toggle_category: ora - # .. toggle_use_cases: incremental_release + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_TEAM_SUBMISSIONS': False, # .. toggle_name: ENABLE_ORA_ALL_FILE_URLS # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: A "work-around" feature toggle meant to help in cases where some file uploads are not - # discoverable. If enabled, will iterate through all possible file key suffixes up to the max for displaying - # file metadata in staff assessments. - # .. toggle_category: ora - # .. toggle_use_cases: graceful_degradation + # discoverable. If enabled, will iterate through all possible file key suffixes up to the max for displaying + # file metadata in staff assessments. + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_ALL_FILE_URLS': False, # .. toggle_name: ENABLE_ORA_USER_STATE_UPLOAD_DATA # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: A "work-around" feature toggle meant to help in cases where some file uploads are not - # discoverable. If enabled, will pull file metadata from StudentModule.state for display in staff assessments. - # .. toggle_category: ora - # .. toggle_use_cases: graceful_degradation + # discoverable. If enabled, will pull file metadata from StudentModule.state for display in staff assessments. + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-03-03 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/EDUCATOR-4951 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_USER_STATE_UPLOAD_DATA': False, # .. toggle_name: ENABLE_ORA_USERNAMES_ON_DATA_EXPORT # .. toggle_implementation: DjangoSetting # .. toggle_default: False - # .. toggle_description: Set to True to add deanonymized usernames to ORA data report. - # .. toggle_category: ora - # .. toggle_use_cases: incremental_release + # .. toggle_description: Set to True to add deanonymized usernames to ORA data + # report. + # .. toggle_use_cases: temporary # .. toggle_creation_date: 2020-06-11 - # .. toggle_expiration_date: None + # .. toggle_target_removal_date: None # .. toggle_tickets: https://openedx.atlassian.net/browse/TNL-7273 - # .. toggle_status: supported - # .. toggle_warnings: None + # .. toggle_warnings: This temporary feature toggle does not have a target removal date. 'ENABLE_ORA_USERNAMES_ON_DATA_EXPORT': False, } @@ -2761,6 +2924,14 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring ################ Enable credit eligibility feature #################### ENABLE_CREDIT_ELIGIBILITY = True +# .. toggle_name: ENABLE_CREDIT_ELIGIBILITY +# .. toggle_implementation: DjangoSetting +# .. toggle_default: True +# .. toggle_description: When enabled, it is possible to define a credit eligibility criteria in the CMS. A "Credit +# Eligibility" section then appears for those courses in the LMS. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2015-06-17 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/8550 FEATURES['ENABLE_CREDIT_ELIGIBILITY'] = ENABLE_CREDIT_ELIGIBILITY ############# Cross-domain requests ################# diff --git a/openedx/core/djangoapps/user_api/accounts/toggles.py b/openedx/core/djangoapps/user_api/accounts/toggles.py index fb5b0f9c5db6..5bb2f019b523 100644 --- a/openedx/core/djangoapps/user_api/accounts/toggles.py +++ b/openedx/core/djangoapps/user_api/accounts/toggles.py @@ -11,13 +11,12 @@ # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Supports staged rollout of a new micro-frontend-based implementation of the order history page. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2019-04-11 -# .. toggle_expiration_date: 2020-12-31 -# .. toggle_warnings: Also set settings.ORDER_HISTORY_MICROFRONTEND_URL and site's ENABLE_ORDER_HISTORY_MICROFRONTEND. +# .. toggle_target_removal_date: 2020-12-31 +# .. toggle_warnings: Also set settings.ORDER_HISTORY_MICROFRONTEND_URL and site's +# ENABLE_ORDER_HISTORY_MICROFRONTEND. # .. toggle_tickets: DEPR-17 -# .. toggle_status: supported REDIRECT_TO_ORDER_HISTORY_MICROFRONTEND = WaffleFlag('order_history', 'redirect_to_microfrontend', __name__) @@ -32,13 +31,11 @@ def should_redirect_to_order_history_microfrontend(): # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Supports staged rollout of a new micro-frontend-based implementation of the account page. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2019-04-30 -# .. toggle_expiration_date: 2020-12-31 +# .. toggle_target_removal_date: 2020-12-31 # .. toggle_warnings: Also set settings.ACCOUNT_MICROFRONTEND_URL and site's ENABLE_ACCOUNT_MICROFRONTEND. # .. toggle_tickets: DEPR-17 -# .. toggle_status: supported REDIRECT_TO_ACCOUNT_MICROFRONTEND = WaffleFlag('account', 'redirect_to_microfrontend', __name__) diff --git a/openedx/core/djangoapps/user_authn/config/waffle.py b/openedx/core/djangoapps/user_authn/config/waffle.py index 1d0ab676fa78..933d3cf395a0 100644 --- a/openedx/core/djangoapps/user_authn/config/waffle.py +++ b/openedx/core/djangoapps/user_authn/config/waffle.py @@ -11,14 +11,13 @@ # .. toggle_name: user_authn.enable_login_using_thirdparty_auth_only # .. toggle_implementation: WaffleSwitch # .. toggle_default: False -# .. toggle_description: When enabled, users must be sign in using their allowed domain SSO account. -# .. toggle_category: authn -# .. toggle_use_cases: incremental_release +# .. toggle_description: When enabled, users must be sign in using their allowed domain SSO account. This includes sign- +# ins to the Django admin dashboard at "/admin". +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2019-11-20 -# .. toggle_expiration_date: 2020-01-31 +# .. toggle_target_removal_date: 2020-01-31 # .. toggle_warnings: Requires THIRD_PARTY_AUTH_ONLY_DOMAIN to also be set. # .. toggle_tickets: ENT-2461 -# .. toggle_status: supported ENABLE_LOGIN_USING_THIRDPARTY_AUTH_ONLY = WaffleSwitch( _WAFFLE_SWITCH_NAMESPACE, 'enable_login_using_thirdparty_auth_only', diff --git a/openedx/core/djangoapps/user_authn/views/register.py b/openedx/core/djangoapps/user_authn/views/register.py index ecef9e78aa28..de1010fe55fb 100644 --- a/openedx/core/djangoapps/user_authn/views/register.py +++ b/openedx/core/djangoapps/user_authn/views/register.py @@ -96,17 +96,14 @@ REGISTER_USER = Signal(providing_args=["user", "registration"]) -# .. feature_toggle_name: registration.enable_failure_logging -# .. feature_toggle_type: flag -# .. feature_toggle_default: False -# .. feature_toggle_description: Enable verbose logging of registration failure messages -# .. feature_toggle_category: registration -# .. feature_toggle_use_cases: monitored_rollout -# .. feature_toggle_creation_date: 2020-04-30 -# .. feature_toggle_expiration_date: 2020-06-01 -# .. feature_toggle_warnings: None -# .. feature_toggle_tickets: None -# .. feature_toggle_status: supported +# .. toggle_name: registration.enable_failure_logging +# .. toggle_type: flag +# .. toggle_default: False +# .. toggle_description: Enable verbose logging of registration failure messages +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2020-04-30 +# .. toggle_target_removal_date: 2020-06-01 +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. REGISTRATION_FAILURE_LOGGING_FLAG = WaffleFlag( waffle_namespace=WaffleFlagNamespace(name=u'registration'), flag_name=u'enable_failure_logging', diff --git a/openedx/core/djangoapps/video_config/models.py b/openedx/core/djangoapps/video_config/models.py index fad795d61b21..a263097b95b2 100644 --- a/openedx/core/djangoapps/video_config/models.py +++ b/openedx/core/djangoapps/video_config/models.py @@ -23,6 +23,14 @@ class HLSPlaybackEnabledFlag(ConfigurationModel): take effect. .. no_pii: + + .. toggle_name: HLSPlaybackEnabledFlag.enabled_for_all_courses + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: Add the "hls" profile to all displayed videos on the platform. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2017-04-19 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/14924 """ # this field overrides course-specific settings enabled_for_all_courses = BooleanField(default=False) @@ -65,6 +73,14 @@ class CourseHLSPlaybackEnabledFlag(ConfigurationModel): enabled for this to take effect. .. no_pii: + + .. toggle_name: CourseHLSPlaybackEnabledFlag.course_id + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: Add the "hls" profile to all displayed videos for a single course. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2017-04-19 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/14924 """ KEY_FIELDS = ('course_id',) diff --git a/openedx/core/djangoapps/video_pipeline/api.py b/openedx/core/djangoapps/video_pipeline/api.py index dbff3408c743..a83888cbb0b6 100644 --- a/openedx/core/djangoapps/video_pipeline/api.py +++ b/openedx/core/djangoapps/video_pipeline/api.py @@ -9,7 +9,6 @@ from oauth2_provider.models import Application from slumber.exceptions import HttpClientError -from openedx.core.djangoapps.video_pipeline.config.waffle import ENABLE_VEM_PIPELINE, waffle_flags from openedx.core.djangoapps.video_pipeline.models import VEMPipelineIntegration, VideoPipelineIntegration from openedx.core.djangoapps.video_pipeline.utils import create_video_pipeline_api_client diff --git a/openedx/core/djangoapps/video_pipeline/config/waffle.py b/openedx/core/djangoapps/video_pipeline/config/waffle.py index ce7a4cc861eb..1cb9e88f9c7b 100644 --- a/openedx/core/djangoapps/video_pipeline/config/waffle.py +++ b/openedx/core/djangoapps/video_pipeline/config/waffle.py @@ -8,8 +8,26 @@ # Videos Namespace WAFFLE_NAMESPACE = 'videos' -# Waffle flag telling whether youtube is deprecated. +# .. toggle_name: videos.deprecate_youtube +# .. toggle_implementation: WaffleFlag +# .. toggle_default: False +# .. toggle_description: Waffle flag telling whether youtube is deprecated. When enabled, videos are no longer uploaded +# to YouTube as part of the video pipeline. +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2018-08-03 +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/18765 DEPRECATE_YOUTUBE = 'deprecate_youtube' +# .. toggle_name: videos.enable_devstack_video_uploads +# .. toggle_implementation: WaffleFlag +# .. toggle_default: False +# .. toggle_description: When enabled, use Multi-Factor Authentication (MFA) for authenticating to AWS. These short- +# lived access tokens are well suited for development (probably?). [At the time of annotation, the exact consequences +# of enabling this feature toggle are uncertain.] +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2020-03-12 +# .. toggle_warnings: Enabling this feature requires that the ROLE_ARN, MFA_SERIAL_NUMBER, MFA_TOKEN settings are +# properly defined. +# .. toggle_tickets: https://github.com/edx/edx-platform/pull/23375 ENABLE_DEVSTACK_VIDEO_UPLOADS = 'enable_devstack_video_uploads' ENABLE_VEM_PIPELINE = 'enable_vem_pipeline' diff --git a/openedx/core/djangoapps/video_pipeline/models.py b/openedx/core/djangoapps/video_pipeline/models.py index 4911a15ae0fe..1302510a0578 100644 --- a/openedx/core/djangoapps/video_pipeline/models.py +++ b/openedx/core/djangoapps/video_pipeline/models.py @@ -50,6 +50,15 @@ class VEMPipelineIntegration(ConfigurationModel): Manages configuration for connecting to the video encode manager service and using its API. .. no_pii: + + .. toggle_name: VEMPipelineIntegration.enabled + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: Send videos to the Video Encode Manager (VEM) as part of the + video pipeline. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2020-06-04 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/24093 """ client_name = models.CharField( max_length=100, @@ -80,9 +89,18 @@ def get_service_user(self): @python_2_unicode_compatible class VideoUploadsEnabledByDefault(ConfigurationModel): """ - Enables video uploads enabled By default feature across the platform. + Enables video uploads across the platform. .. no_pii: + + .. toggle_name: VideoUploadsEnabledByDefault.enabled_for_all_courses + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: Allow video uploads for all courses of the platform. This + enables the "Video Uploads" menu in the CMS. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2017-11-10 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/16536 """ # this field overrides course-specific settings enabled_for_all_courses = models.BooleanField(default=False) @@ -122,10 +140,18 @@ def __str__(self): @python_2_unicode_compatible class CourseVideoUploadsEnabledByDefault(ConfigurationModel): """ - Enables video uploads enabled by default feature for a specific course. Its global feature must be - enabled for this to take effect. + Enables video uploads for a specific course. .. no_pii: + + .. toggle_name: CourseVideoUploadsEnabledByDefault.course_id + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: Allow video uploads for a specific course. This enables the + "Video Uploads" menu in the CMS. + .. toggle_use_cases: open_edx + .. toggle_creation_date: 2017-11-10 + .. toggle_tickets: https://github.com/edx/edx-platform/pull/16536 """ KEY_FIELDS = ('course_id',) diff --git a/openedx/core/djangoapps/video_pipeline/tests/test_api.py b/openedx/core/djangoapps/video_pipeline/tests/test_api.py index 7ef781b5653a..d6ab2e8e173f 100644 --- a/openedx/core/djangoapps/video_pipeline/tests/test_api.py +++ b/openedx/core/djangoapps/video_pipeline/tests/test_api.py @@ -7,14 +7,11 @@ import ddt from django.test.testcases import TestCase from mock import Mock, patch -from opaque_keys.edx.locations import CourseLocator from slumber.exceptions import HttpClientError from student.tests.factories import UserFactory from openedx.core.djangoapps.video_pipeline.api import update_3rd_party_transcription_service_credentials -from openedx.core.djangoapps.video_pipeline.config.waffle import ENABLE_VEM_PIPELINE, waffle_flags from openedx.core.djangoapps.video_pipeline.tests.mixins import VideoPipelineMixin -from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag @ddt.ddt diff --git a/openedx/core/djangoapps/waffle_utils/__init__.py b/openedx/core/djangoapps/waffle_utils/__init__.py index b46f359712f8..20cf06480f50 100644 --- a/openedx/core/djangoapps/waffle_utils/__init__.py +++ b/openedx/core/djangoapps/waffle_utils/__init__.py @@ -378,17 +378,14 @@ def _get_waffle_flag_custom_metrics_set(): waffle_flag_custom_metrics = waffle_flag_custom_metrics if waffle_flag_custom_metrics else [] return set(waffle_flag_custom_metrics) - # .. toggle_name: WAFFLE_FLAG_CUSTOM_METRICS - # .. toggle_implementation: DjangoSetting - # .. toggle_default: False - # .. toggle_description: A list of waffle flag to track with custom metrics having values of (True, False, or Both). - # .. toggle_category: monitoring - # .. toggle_use_cases: opt_in - # .. toggle_creation_date: 2020-06-17 - # .. toggle_expiration_date: None - # .. toggle_tickets: None - # .. toggle_status: supported - # .. toggle_warnings: Intent is for temporary research (1 day - several weeks) of a flag's usage. +# .. toggle_name: WAFFLE_FLAG_CUSTOM_METRICS +# .. toggle_implementation: DjangoSetting +# .. toggle_default: False +# .. toggle_description: A list of waffle flag to track with custom metrics having +# values of (True, False, or Both). +# .. toggle_use_cases: opt_in +# .. toggle_creation_date: 2020-06-17 +# .. toggle_warnings: Intent is for temporary research (1 day - several weeks) of a flag's usage. _WAFFLE_FLAG_CUSTOM_METRICS = 'WAFFLE_FLAG_CUSTOM_METRICS' # set of waffle flags that should be instrumented with custom metrics diff --git a/openedx/features/course_duration_limits/models.py b/openedx/features/course_duration_limits/models.py index 41f3f4b0e764..70a46031d628 100644 --- a/openedx/features/course_duration_limits/models.py +++ b/openedx/features/course_duration_limits/models.py @@ -18,6 +18,15 @@ class CourseDurationLimitConfig(StackedConfigurationModel): Configuration to manage the Course Duration Limit facility. .. no_pii: + + .. toggle_name: CourseDurationLimitConfig.enabled + .. toggle_implementation: ConfigurationModel + .. toggle_default: False + .. toggle_description: When enabled, users will have a limited time to complete and audit the course. The exact + duration is given by the "weeks_to_complete" course detail. When enabled, it is necessary to also define the + "enabled_as_of" flag: only enrollments created after this date will be affected. + .. toggle_use_cases: opt_in + .. toggle_creation_date: 2018-11-02 """ STACKABLE_FIELDS = ('enabled', 'enabled_as_of') diff --git a/openedx/features/course_experience/__init__.py b/openedx/features/course_experience/__init__.py index 394e75b1f068..bc9e7cec64d0 100644 --- a/openedx/features/course_experience/__init__.py +++ b/openedx/features/course_experience/__init__.py @@ -90,13 +90,12 @@ def is_flag_active(self, flag_name, check_before_waffle_callback=None): # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: Used with our integration with CourseTalk to display reviews for a course. -# .. toggle_category: course_experience -# .. toggle_use_cases: monitored_rollout +# .. toggle_use_cases: temporary # .. toggle_creation_date: 2017-06-19 -# .. toggle_expiration_date: ??? -# .. toggle_warnings: We are no longer integrating with CourseTalk, so this probably should be deprecated and the code for reviews should be removed. +# .. toggle_target_removal_date: None +# .. toggle_warnings: We are no longer integrating with CourseTalk, so this probably should be deprecated and the code +# for reviews should be removed. This temporary feature toggle should have a target removal date. # .. toggle_tickets: DEPR-48 -# .. toggle_status: unsupported SHOW_REVIEWS_TOOL_FLAG = CourseWaffleFlag(WAFFLE_FLAG_NAMESPACE, 'show_reviews_tool', __name__) # Waffle flag to enable the setting of course goals. @@ -104,13 +103,10 @@ def is_flag_active(self, flag_name, check_before_waffle_callback=None): # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: Used to determine whether or not to use course goals for the particular course. -# .. toggle_category: course_experience -# .. toggle_use_cases: opt_out, monitored_rollout +# .. toggle_use_cases: opt_out, temporary # .. toggle_creation_date: 2017-09-11 -# .. toggle_expiration_date: ??? -# .. toggle_warnings: N/A -# .. toggle_tickets: N/A -# .. toggle_status: supported +# .. toggle_target_removal_date: None +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. ENABLE_COURSE_GOALS = CourseWaffleFlag(WAFFLE_FLAG_NAMESPACE, 'enable_course_goals', __name__) # Waffle flag to control the display of the hero @@ -124,13 +120,10 @@ def is_flag_active(self, flag_name, check_before_waffle_callback=None): # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: Used to switch between 'welcome message' and 'latest update' on the course home page. -# .. toggle_category: course_experience # .. toggle_use_cases: opt_out # .. toggle_creation_date: 2017-09-11 -# .. toggle_expiration_date: ??? -# .. toggle_warnings: This is meant to be configured using waffle_utils course override only. Either do not create the actual waffle flag, or be sure to unset the flag even for Superusers. -# .. toggle_tickets: N/A -# .. toggle_status: supported +# .. toggle_warnings: This is meant to be configured using waffle_utils course override only. Either do not create the +# actual waffle flag, or be sure to unset the flag even for Superusers. LATEST_UPDATE_FLAG = CourseWaffleFlag(WAFFLE_FLAG_NAMESPACE, 'latest_update', __name__) # Waffle flag to enable anonymous access to a course diff --git a/openedx/features/course_experience/waffle.py b/openedx/features/course_experience/waffle.py index e8258fc88721..a00dab3a9a66 100644 --- a/openedx/features/course_experience/waffle.py +++ b/openedx/features/course_experience/waffle.py @@ -13,13 +13,8 @@ # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: Used to determine whether to show custom HTML in the sidebar on the internal course about page. -# .. toggle_category: course-experience # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-01-26 -# .. toggle_expiration_date: ??? -# .. toggle_warnings: N/A -# .. toggle_tickets: N/A -# .. toggle_status: supported ENABLE_COURSE_ABOUT_SIDEBAR_HTML = u'enable_about_sidebar_html' diff --git a/openedx/features/discounts/applicability.py b/openedx/features/discounts/applicability.py index 610e2cf3618b..42f12d0d1857 100644 --- a/openedx/features/discounts/applicability.py +++ b/openedx/features/discounts/applicability.py @@ -26,17 +26,15 @@ from student.models import CourseEnrollment from track import segment -# .. feature_toggle_name: discounts.enable_discounting -# .. feature_toggle_type: flag -# .. feature_toggle_default: False -# .. feature_toggle_description: Toggle discounts always being disabled -# .. feature_toggle_category: discounts -# .. feature_toggle_use_cases: monitored_rollout -# .. feature_toggle_creation_date: 2019-4-16 -# .. feature_toggle_expiration_date: None -# .. feature_toggle_warnings: None -# .. feature_toggle_tickets: REVEM-282 -# .. feature_toggle_status: supported +# .. toggle_name: discounts.enable_discounting +# .. toggle_type: flag +# .. toggle_default: False +# .. toggle_description: Toggle discounts always being disabled +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2019-4-16 +# .. toggle_target_removal_date: None +# .. toggle_tickets: REVEM-282 +# .. toggle_warnings: This temporary feature toggle does not have a target removal date. DISCOUNT_APPLICABILITY_FLAG = WaffleFlag( waffle_namespace=WaffleFlagNamespace(name=u'discounts'), flag_name=u'enable_discounting', diff --git a/openedx/features/learner_profile/toggles.py b/openedx/features/learner_profile/toggles.py index 9f9a5509afab..208bcb45fcb6 100644 --- a/openedx/features/learner_profile/toggles.py +++ b/openedx/features/learner_profile/toggles.py @@ -15,13 +15,11 @@ # .. toggle_implementation: WaffleFlag # .. toggle_default: False # .. toggle_description: Supports staged rollout of a new micro-frontend-based implementation of the profile page. -# .. toggle_category: micro-frontend -# .. toggle_use_cases: incremental_release, open_edx +# .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2019-02-19 -# .. toggle_expiration_date: 2020-12-31 +# .. toggle_target_removal_date: 2020-12-31 # .. toggle_warnings: Also set settings.PROFILE_MICROFRONTEND_URL and site's ENABLE_PROFILE_MICROFRONTEND. # .. toggle_tickets: DEPR-17 -# .. toggle_status: supported REDIRECT_TO_PROFILE_MICROFRONTEND = WaffleFlag(WAFFLE_FLAG_NAMESPACE, 'redirect_to_microfrontend', __name__)