From bc589aa6db5c395ab4c0c1d7ed016436e32d472e Mon Sep 17 00:00:00 2001 From: irfanuddinahmad Date: Thu, 23 Apr 2026 12:11:57 +0500 Subject: [PATCH] feat!: General cleanup of legacy Studio page waffle flags and related code. Remove the waffle flags and helper functions for all legacy Studio pages that have been replaced by the Authoring MFE: - legacy_studio.schedule_details - legacy_studio.advanced_settings - legacy_studio.grading - legacy_studio.import - legacy_studio.export - legacy_studio.course_team - legacy_studio.certificates - legacy_studio.configurations Also removes the course_waffle_flags REST API endpoint (GET /api/contentstore/v1/course_waffle_flags) and its serializer, view, and tests, as these only existed to expose the now-removed flags. Simplifies URL helpers in utils.py to unconditionally return MFE URLs. This work is part of https://github.com/openedx/edx-platform/issues/36108 BREAKING CHANGE: All of the above waffle flags are removed. The GET /api/contentstore/v1/course_waffle_flags endpoint is removed. --- cms/djangoapps/contentstore/toggles.py | 6 ---- cms/djangoapps/contentstore/utils.py | 38 +++++++++++--------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 0e55f073fc8d..94960ba66ec0 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -159,9 +159,6 @@ def use_react_markdown_editor(course_key): return ENABLE_REACT_MARKDOWN_EDITOR.is_enabled(course_key) - - - # .. toggle_name: contentstore.new_studio_mfe.use_new_video_uploads_page # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False @@ -216,9 +213,6 @@ def use_new_unit_page(course_key): return not LEGACY_STUDIO_UNIT_EDITOR.is_enabled(course_key) - - - # .. toggle_name: contentstore.mock_video_uploads # .. toggle_implementation: WaffleFlag # .. toggle_default: False diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index 16e26cf4db38..4c284fb07efb 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -297,9 +297,8 @@ def get_schedule_details_url(course_locator) -> str: Gets course authoring microfrontend URL for schedule and details pages view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/settings/details' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/details' + return course_mfe_url if mfe_base_url else None def get_advanced_settings_url(course_locator) -> str | None: @@ -307,9 +306,8 @@ def get_advanced_settings_url(course_locator) -> str | None: Gets course authoring microfrontend URL for advanced settings page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/settings/advanced' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/advanced' + return course_mfe_url if mfe_base_url else None def get_grading_url(course_locator) -> str: @@ -317,9 +315,8 @@ def get_grading_url(course_locator) -> str: Gets course authoring microfrontend URL for grading page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/settings/grading' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/grading' + return course_mfe_url if mfe_base_url else None def get_course_team_url(course_locator) -> str: @@ -327,9 +324,8 @@ def get_course_team_url(course_locator) -> str: Gets course authoring microfrontend URL for course team page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/course_team' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/course_team' + return course_mfe_url if mfe_base_url else None def get_updates_url(course_locator) -> str: @@ -349,9 +345,8 @@ def get_import_url(course_locator) -> str | None: Gets course authoring microfrontend URL for import page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/import' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/import' + return course_mfe_url if mfe_base_url else None def get_export_url(course_locator) -> str | None: @@ -359,9 +354,8 @@ def get_export_url(course_locator) -> str | None: Gets course authoring microfrontend URL for export page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/export' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/export' + return course_mfe_url if mfe_base_url else None def get_optimizer_url(course_locator) -> str: @@ -445,9 +439,8 @@ def get_certificates_url(course_locator) -> str: Gets course authoring microfrontend URL for certificates page view. """ mfe_base_url = get_course_authoring_url(course_locator) - if mfe_base_url: - return f'{mfe_base_url}/course/{course_locator}/certificates' - return None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/certificates' + return course_mfe_url if mfe_base_url else None def get_textbooks_url(course_locator) -> str: @@ -467,7 +460,8 @@ def get_group_configurations_url(course_locator) -> str: Gets course authoring microfrontend URL for group configurations page view. """ mfe_base_url = get_course_authoring_url(course_locator) - return f'{mfe_base_url}/course/{course_locator}/group_configurations' if mfe_base_url else None + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/group_configurations' + return course_mfe_url if mfe_base_url else None def get_custom_pages_url(course_locator) -> str: