From 602fef295473e6ae70b8a89e9ee24f6691f1d73e Mon Sep 17 00:00:00 2001 From: Leangseu Kim Date: Tue, 11 Oct 2022 15:08:31 -0400 Subject: [PATCH] feat: add rollout waffle flag for leaner_home_mfe Create flag learner_home_mfe.enabled chore: update requested change --- common/djangoapps/student/tests/test_views.py | 8 +++++++ common/djangoapps/student/views/dashboard.py | 5 ++++ lms/djangoapps/learner_home/waffle.py | 24 +++++++++++++++++++ lms/envs/test.py | 2 ++ 4 files changed, 39 insertions(+) create mode 100644 lms/djangoapps/learner_home/waffle.py diff --git a/common/djangoapps/student/tests/test_views.py b/common/djangoapps/student/tests/test_views.py index 9d88752bf1..c67aed1347 100644 --- a/common/djangoapps/student/tests/test_views.py +++ b/common/djangoapps/student/tests/test_views.py @@ -235,6 +235,14 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin, response = self.client.get(self.path) self.assertRedirects(response, reverse('account_settings')) + def test_redirect_to_learner_home(self): + """ + if learner home mfe is enabled, redirect to learner home mfe + """ + with patch('lms.djangoapps.learner_home.waffle.ENABLE_LEARNER_HOME_MFE.is_enabled', return_value=True): + response = self.client.get(self.path) + self.assertRedirects(response, settings.LEARNER_HOME_MICROFRONTEND_URL, fetch_redirect_response=False) + def test_course_cert_available_message_after_course_end(self): course_key = CourseKey.from_string('course-v1:edX+DemoX+Demo_Course') course = CourseOverviewFactory.create( diff --git a/common/djangoapps/student/views/dashboard.py b/common/djangoapps/student/views/dashboard.py index f65fa18669..39fc850163 100644 --- a/common/djangoapps/student/views/dashboard.py +++ b/common/djangoapps/student/views/dashboard.py @@ -30,6 +30,7 @@ from common.djangoapps.edxmako.shortcuts import render_to_response, render_to_st from common.djangoapps.entitlements.models import CourseEntitlement from lms.djangoapps.commerce.utils import EcommerceService from lms.djangoapps.courseware.access import has_access +from lms.djangoapps.learner_home.waffle import should_redirect_to_learner_home_mfe from lms.djangoapps.experiments.utils import get_dashboard_course_info, get_experiment_user_metadata_context from lms.djangoapps.verify_student.services import IDVerificationService from openedx.core.djangoapps.catalog.utils import ( @@ -518,6 +519,10 @@ def student_dashboard(request): # lint-amnesty, pylint: disable=too-many-statem if not UserProfile.objects.filter(user=user).exists(): return redirect(reverse('account_settings')) + enable_learner_home_mfe = should_redirect_to_learner_home_mfe() + if enable_learner_home_mfe: + return redirect(settings.LEARNER_HOME_MICROFRONTEND_URL) + platform_name = configuration_helpers.get_value("platform_name", settings.PLATFORM_NAME) enable_verified_certificates = configuration_helpers.get_value( diff --git a/lms/djangoapps/learner_home/waffle.py b/lms/djangoapps/learner_home/waffle.py new file mode 100644 index 0000000000..4870fa08d7 --- /dev/null +++ b/lms/djangoapps/learner_home/waffle.py @@ -0,0 +1,24 @@ +""" +This module contains various configuration settings via +waffle switches for the teams app. +""" + +from edx_toggles.toggles import WaffleFlag +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers + +# .. toggle_name: learner_home_mfe.enabled +# .. toggle_implementation: WaffleFlag +# .. toggle_default: False +# .. toggle_description: Waffle flag to enable to redirect user to learner home mfe +# .. toggle_use_cases: open_edx +# .. toggle_creation_date: 2022-10-11 +# .. toggle_tickets: AU-879 +ENABLE_LEARNER_HOME_MFE = WaffleFlag( + 'learner_home_mfe.enabled', + __name__, +) + + +def should_redirect_to_learner_home_mfe(): + return configuration_helpers.get_value('ENABLE_LEARNER_HOME_MFE', + ENABLE_LEARNER_HOME_MFE.is_enabled()) diff --git a/lms/envs/test.py b/lms/envs/test.py index ad9372e09b..94bbb61709 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -594,6 +594,8 @@ AUTHN_MICROFRONTEND_URL = "http://authn-mfe" AUTHN_MICROFRONTEND_DOMAIN = "authn-mfe" LEARNING_MICROFRONTEND_URL = "http://learning-mfe" DISCUSSIONS_MICROFRONTEND_URL = "http://discussions-mfe" +LEARNER_HOME_MICROFRONTEND_URL = "http://learner-home-mfe" +ORA_GRADING_MICROFRONTEND_URL = "http://ora-grading-mfe" ########################## limiting dashboard courses ######################