diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index dc8714579d..1a339519e1 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -432,3 +432,23 @@ def use_new_unit_page(course_key): Returns a boolean if new studio course outline mfe is enabled """ return ENABLE_NEW_STUDIO_UNIT_PAGE.is_enabled(course_key) + + +# .. toggle_name: new_studio_mfe.use_new_course_team_page +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: This flag enables the use of the new studio course team page mfe +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2023-5-15 +# .. toggle_target_removal_date: 2023-8-31 +# .. toggle_tickets: TNL-10619 +# .. toggle_warning: +ENABLE_NEW_STUDIO_COURSE_TEAM_PAGE = CourseWaffleFlag( + f'{CONTENTSTORE_NAMESPACE}.new_studio_mfe.use_new_course_team_page', __name__) + + +def use_new_course_team_page(course_key): + """ + Returns a boolean if new studio course team mfe is enabled + """ + return ENABLE_NEW_STUDIO_COURSE_TEAM_PAGE.is_enabled(course_key) diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index daf5f8dd06..14f86917b4 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -36,6 +36,7 @@ from cms.djangoapps.contentstore.toggles import ( use_new_export_page, use_new_files_uploads_page, use_new_grading_page, + use_new_course_team_page, use_new_home_page, use_new_import_page, use_new_schedule_details_page, @@ -227,13 +228,13 @@ def get_editor_page_base_url(course_locator) -> str: return editor_url -def get_studio_home_url(course_locator): +def get_studio_home_url(): """ Gets course authoring microfrontend URL for Studio Home view. """ studio_home_url = None if use_new_home_page(): - mfe_base_url = get_course_authoring_url(course_locator) + mfe_base_url = settings.COURSE_AUTHORING_MICROFRONTEND_URL if mfe_base_url: studio_home_url = f'{mfe_base_url}/home' return studio_home_url @@ -246,7 +247,7 @@ def get_schedule_details_url(course_locator) -> str: schedule_details_url = None if use_new_schedule_details_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/settings/details/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/details' if mfe_base_url: schedule_details_url = course_mfe_url return schedule_details_url @@ -259,7 +260,7 @@ def get_advanced_settings_url(course_locator) -> str: advanced_settings_url = None if use_new_advanced_settings_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/settings/advanced/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/advanced' if mfe_base_url: advanced_settings_url = course_mfe_url return advanced_settings_url @@ -272,12 +273,25 @@ def get_grading_url(course_locator) -> str: grading_url = None if use_new_grading_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/settings/grading/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/settings/grading' if mfe_base_url: grading_url = course_mfe_url return grading_url +def get_course_team_url(course_locator) -> str: + """ + Gets course authoring microfrontend URL for course team page view. + """ + course_team_url = None + if use_new_course_team_page(course_locator): + mfe_base_url = get_course_authoring_url(course_locator) + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/course_team' + if mfe_base_url: + course_team_url = course_mfe_url + return course_team_url + + def get_updates_url(course_locator) -> str: """ Gets course authoring microfrontend URL for updates page view. @@ -285,7 +299,7 @@ def get_updates_url(course_locator) -> str: updates_url = None if use_new_updates_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/course_info/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/course_info' if mfe_base_url: updates_url = course_mfe_url return updates_url @@ -298,7 +312,7 @@ def get_import_url(course_locator) -> str: import_url = None if use_new_import_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/import/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/import' if mfe_base_url: import_url = course_mfe_url return import_url @@ -311,7 +325,7 @@ def get_export_url(course_locator) -> str: export_url = None if use_new_export_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/export/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/export' if mfe_base_url: export_url = course_mfe_url return export_url @@ -324,7 +338,7 @@ def get_files_uploads_url(course_locator) -> str: files_uploads_url = None if use_new_files_uploads_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/assets/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/assets' if mfe_base_url: files_uploads_url = course_mfe_url return files_uploads_url @@ -337,7 +351,7 @@ def get_video_uploads_url(course_locator) -> str: video_uploads_url = None if use_new_video_uploads_page(course_locator): mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/assets/{course_locator}' + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/videos/' if mfe_base_url: video_uploads_url = course_mfe_url return video_uploads_url diff --git a/cms/templates/widgets/header.html b/cms/templates/widgets/header.html index 48b818da95..41029ca66d 100644 --- a/cms/templates/widgets/header.html +++ b/cms/templates/widgets/header.html @@ -9,7 +9,7 @@ from urllib.parse import quote_plus from common.djangoapps.student.auth import has_studio_advanced_settings_access from cms.djangoapps.contentstore import toggles - from cms.djangoapps.contentstore.utils import get_pages_and_resources_url + from cms.djangoapps.contentstore.utils import get_pages_and_resources_url, get_course_outline_url, get_updates_url, get_files_uploads_url, get_video_uploads_url, get_schedule_details_url, get_grading_url, get_advanced_settings_url, get_import_url, get_export_url, get_studio_home_url, get_course_team_url from openedx.core.djangoapps.discussions.config.waffle import ENABLE_PAGES_AND_RESOURCES_MICROFRONTEND from openedx.core.djangoapps.lang_pref.api import header_language_selector_is_enabled, released_languages %> @@ -17,12 +17,23 @@