${_('Course details')}
diff --git a/openedx/features/course_experience/api/v1/views.py b/openedx/features/course_experience/api/v1/views.py
index 7fa64a4893..8ae9b7681a 100644
--- a/openedx/features/course_experience/api/v1/views.py
+++ b/openedx/features/course_experience/api/v1/views.py
@@ -20,7 +20,7 @@ from edx_rest_framework_extensions.auth.session.authentication import SessionAut
from opaque_keys.edx.keys import CourseKey
from lms.djangoapps.course_api.api import course_detail
-from lms.djangoapps.course_home_api.toggles import course_home_mfe_is_active
+from lms.djangoapps.course_home_api.toggles import course_home_legacy_is_active
from lms.djangoapps.courseware.access import has_access
from lms.djangoapps.courseware.courses import get_course_with_access
from lms.djangoapps.courseware.masquerade import is_masquerading, setup_masquerade
@@ -90,10 +90,10 @@ def reset_course_deadlines(request):
})
tracker.emit('edx.ui.lms.reset_deadlines.clicked', research_event_data)
- if course_home_mfe_is_active(course_key):
- body_link = get_learning_mfe_home_url(course_key=str(course_key), view_name='dates')
- else:
+ if course_home_legacy_is_active(course_key):
body_link = '{}{}'.format(settings.LMS_ROOT_URL, reverse('dates', args=[str(course_key)]))
+ else:
+ body_link = get_learning_mfe_home_url(course_key=str(course_key), view_name='dates')
return Response({
'body': format_html('{}', body_link, _('View all dates')),
diff --git a/openedx/features/course_experience/tests/views/test_course_home.py b/openedx/features/course_experience/tests/views/test_course_home.py
index b581f9cb59..358e7e6c88 100644
--- a/openedx/features/course_experience/tests/views/test_course_home.py
+++ b/openedx/features/course_experience/tests/views/test_course_home.py
@@ -28,6 +28,7 @@ from common.djangoapps.student.tests.factories import StaffFactory
from lms.djangoapps.commerce.models import CommerceConfiguration
from lms.djangoapps.commerce.utils import EcommerceService
from lms.djangoapps.course_goals.api import add_course_goal, get_course_goal
+from lms.djangoapps.course_home_api.toggles import COURSE_HOME_USE_LEGACY_FRONTEND
from lms.djangoapps.courseware.tests.helpers import get_expiration_banner_text
from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
@@ -158,6 +159,7 @@ class CourseHomePageTestCase(BaseCourseUpdatesTestCase):
class TestCourseHomePage(CourseHomePageTestCase): # lint-amnesty, pylint: disable=missing-class-docstring
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_welcome_message_when_unified(self):
# Create a welcome message
self.create_course_update(TEST_WELCOME_MESSAGE)
@@ -166,6 +168,7 @@ class TestCourseHomePage(CourseHomePageTestCase): # lint-amnesty, pylint: disab
response = self.client.get(url)
self.assertContains(response, TEST_WELCOME_MESSAGE, status_code=200)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
@override_waffle_flag(DISABLE_UNIFIED_COURSE_TAB_FLAG, active=True)
def test_welcome_message_when_not_unified(self):
# Create a welcome message
@@ -175,6 +178,7 @@ class TestCourseHomePage(CourseHomePageTestCase): # lint-amnesty, pylint: disab
response = self.client.get(url)
self.assertNotContains(response, TEST_WELCOME_MESSAGE, status_code=200)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_updates_tool_visibility(self):
"""
Verify that the updates course tool is visible only when the course
@@ -189,6 +193,7 @@ class TestCourseHomePage(CourseHomePageTestCase): # lint-amnesty, pylint: disab
response = self.client.get(url)
self.assertContains(response, TEST_COURSE_UPDATES_TOOL, status_code=200)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_queries(self):
"""
Verify that the view's query count doesn't regress.
@@ -270,6 +275,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
[True, COURSE_VISIBILITY_PUBLIC, CourseUserType.GLOBAL_STAFF, True, True],
)
@ddt.unpack
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_home_page(
self, enable_unenrolled_access, course_visibility, user_type,
expected_enroll_message, expected_course_outline,
@@ -320,6 +326,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
self.assertContains(private_response,
'You must be enrolled in the course to see course content.')
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
@override_waffle_flag(DISABLE_UNIFIED_COURSE_TAB_FLAG, active=True)
@ddt.data(
[CourseUserType.ANONYMOUS, 'To see course content'],
@@ -356,6 +363,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
if expected_message:
self.assertContains(response, expected_message)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_sign_in_button(self):
"""
Verify that the sign in button will return to this page.
@@ -603,6 +611,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
response = self.client.get(url)
assert response.status_code == 404
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
@override_waffle_flag(COURSE_PRE_START_ACCESS_FLAG, active=True)
def test_masters_course_message(self):
enroll_button_html = ""
@@ -632,6 +641,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
self.assertContains(response, expected_message)
self.assertNotContains(response, enroll_button_html)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
@override_waffle_flag(COURSE_PRE_START_ACCESS_FLAG, active=True)
def test_course_messaging(self):
"""
@@ -700,6 +710,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
self.assertContains(response, TEST_COURSE_HOME_MESSAGE)
self.assertContains(response, TEST_COURSE_HOME_MESSAGE_PRE_START)
+ @override_waffle_flag(COURSE_HOME_USE_LEGACY_FRONTEND, active=True)
def test_course_messaging_for_staff(self):
"""
Staff users will not see the expiration banner when course duration limits
diff --git a/openedx/features/course_experience/views/course_dates.py b/openedx/features/course_experience/views/course_dates.py
index bc746fdd1d..87d55b8324 100644
--- a/openedx/features/course_experience/views/course_dates.py
+++ b/openedx/features/course_experience/views/course_dates.py
@@ -14,7 +14,7 @@ from web_fragments.fragment import Fragment
from lms.djangoapps.courseware.courses import get_course_date_blocks, get_course_with_access
from lms.djangoapps.courseware.tabs import DatesTab
-from lms.djangoapps.course_home_api.toggles import course_home_mfe_is_active
+from lms.djangoapps.course_home_api.toggles import course_home_legacy_is_active
from openedx.features.course_experience.url_helpers import get_learning_mfe_home_url
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
@@ -34,10 +34,10 @@ class CourseDatesFragmentView(EdxFragmentView):
course_date_blocks = get_course_date_blocks(course, request.user, request, num_assignments=1)
dates_tab_enabled = DatesTab.is_enabled(course, request.user)
- if course_home_mfe_is_active(course_key):
- dates_tab_link = get_learning_mfe_home_url(course_key=course.id, view_name='dates')
- else:
+ if course_home_legacy_is_active(course_key):
dates_tab_link = reverse('dates', args=[course.id])
+ else:
+ dates_tab_link = get_learning_mfe_home_url(course_key=course.id, view_name='dates')
context = {
'course_date_blocks': [block for block in course_date_blocks if block.title != 'current_datetime'],
diff --git a/openedx/features/course_experience/views/course_home.py b/openedx/features/course_experience/views/course_home.py
index 3b772764d1..02d6eb2c31 100644
--- a/openedx/features/course_experience/views/course_home.py
+++ b/openedx/features/course_experience/views/course_home.py
@@ -13,7 +13,7 @@ from django.views.decorators.csrf import ensure_csrf_cookie
from opaque_keys.edx.keys import CourseKey
from web_fragments.fragment import Fragment
-from lms.djangoapps.course_home_api.toggles import course_home_mfe_is_active
+from lms.djangoapps.course_home_api.toggles import course_home_legacy_is_active
from lms.djangoapps.courseware.access import has_access
from lms.djangoapps.courseware.courses import can_self_enroll_in_course, get_course_info_section, get_course_with_access
from lms.djangoapps.course_goals.api import (
@@ -67,11 +67,11 @@ class CourseHomeView(CourseTabView):
def render_to_fragment(self, request, course=None, tab=None, **kwargs): # lint-amnesty, pylint: disable=arguments-differ, unused-argument
course_id = str(course.id)
- if course_home_mfe_is_active(course.id) and not request.user.is_staff:
- microfrontend_url = get_learning_mfe_home_url(course_key=course_id, view_name="home")
- raise Redirect(microfrontend_url)
- home_fragment_view = CourseHomeFragmentView()
- return home_fragment_view.render_to_fragment(request, course_id=course_id, **kwargs)
+ if course_home_legacy_is_active(course.id) or request.user.is_staff:
+ home_fragment_view = CourseHomeFragmentView()
+ return home_fragment_view.render_to_fragment(request, course_id=course_id, **kwargs)
+ microfrontend_url = get_learning_mfe_home_url(course_key=course_id, view_name="home")
+ raise Redirect(microfrontend_url)
class CourseHomeFragmentView(EdxFragmentView):