diff --git a/lms/djangoapps/learner_home/test_views.py b/lms/djangoapps/learner_home/test_views.py index 99874f9ee8..adfd7f8735 100644 --- a/lms/djangoapps/learner_home/test_views.py +++ b/lms/djangoapps/learner_home/test_views.py @@ -18,7 +18,6 @@ from rest_framework.test import APITestCase from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.entitlements.tests.factories import CourseEntitlementFactory -from common.djangoapps.student.toggles import ENABLE_AMPLITUDE_RECOMMENDATIONS from common.djangoapps.student.tests.factories import ( CourseEnrollmentFactory, UserFactory, @@ -40,6 +39,7 @@ from lms.djangoapps.learner_home.views import ( get_course_share_urls, ) from lms.djangoapps.learner_home.test_serializers import random_url +from lms.djangoapps.learner_home.waffle import ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS from openedx.core.djangoapps.catalog.tests.factories import ( CourseRunFactory as CatalogCourseRunFactory, ProgramFactory, @@ -841,7 +841,7 @@ class TestCourseRecommendationApiView(SharedModuleStoreTestCase): 'marketing_url': 'https://www.marketing_url.com' } - @override_waffle_flag(ENABLE_AMPLITUDE_RECOMMENDATIONS, active=False) + @override_waffle_flag(ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS, active=False) def test_waffle_flag_off(self): """ Verify API returns 400 if waffle flag is off. @@ -850,7 +850,7 @@ class TestCourseRecommendationApiView(SharedModuleStoreTestCase): self.assertEqual(response.status_code, 400) self.assertEqual(response.data, None) - @override_waffle_flag(ENABLE_AMPLITUDE_RECOMMENDATIONS, active=True) + @override_waffle_flag(ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS, active=True) @mock.patch('lms.djangoapps.learner_home.views.get_personalized_course_recommendations') @mock.patch('lms.djangoapps.learner_home.views.get_course_data') def test_no_recommendations_from_amplitude(self, mocked_get_course_data, @@ -865,7 +865,7 @@ class TestCourseRecommendationApiView(SharedModuleStoreTestCase): self.assertEqual(response.status_code, 400) self.assertEqual(response.data, None) - @override_waffle_flag(ENABLE_AMPLITUDE_RECOMMENDATIONS, active=True) + @override_waffle_flag(ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS, active=True) @mock.patch('lms.djangoapps.learner_home.views.get_personalized_course_recommendations') @mock.patch('lms.djangoapps.learner_home.views.get_course_data') def test_get_course_recommendations(self, mocked_get_course_data, @@ -882,7 +882,7 @@ class TestCourseRecommendationApiView(SharedModuleStoreTestCase): self.assertEqual(response.data.get('is_personalized_recommendation'), True) self.assertEqual(len(response.data.get('courses')), expected_recommendations_length) - @override_waffle_flag(ENABLE_AMPLITUDE_RECOMMENDATIONS, active=True) + @override_waffle_flag(ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS, active=True) @mock.patch('lms.djangoapps.learner_home.views.get_personalized_course_recommendations') @mock.patch('lms.djangoapps.learner_home.views.get_course_data') def test_get_enrollable_course_recommendations(self, mocked_get_course_data, diff --git a/lms/djangoapps/learner_home/views.py b/lms/djangoapps/learner_home/views.py index 3b723013b7..80a6cf4dc4 100644 --- a/lms/djangoapps/learner_home/views.py +++ b/lms/djangoapps/learner_home/views.py @@ -34,7 +34,6 @@ from common.djangoapps.student.models import ( CourseEnrollment, get_user_by_username_or_email, ) -from common.djangoapps.student.toggles import should_show_amplitude_recommendations from common.djangoapps.student.views.dashboard import ( complete_course_mode_info, get_course_enrollments, @@ -53,6 +52,7 @@ from lms.djangoapps.courseware.access_utils import ( check_course_open_for_learner, ) from lms.djangoapps.learner_home.serializers import LearnerDashboardSerializer +from lms.djangoapps.learner_home.waffle import should_show_learner_home_amplitude_recommendations from lms.djangoapps.learner_home.utils import ( get_personalized_course_recommendations, exec_time_logged, @@ -537,7 +537,7 @@ class CourseRecommendationApiView(APIView): def get(self, request): """ Retrieves course recommendations details of a user in a specified course. """ - if not should_show_amplitude_recommendations(): + if not should_show_learner_home_amplitude_recommendations(): return Response(status=400) user_id = request.user.id diff --git a/lms/djangoapps/learner_home/waffle.py b/lms/djangoapps/learner_home/waffle.py index 7c4f22ddb4..1dbb5e43e2 100644 --- a/lms/djangoapps/learner_home/waffle.py +++ b/lms/djangoapps/learner_home/waffle.py @@ -6,6 +6,9 @@ waffle switches for the teams app. from edx_toggles.toggles import WaffleFlag from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers +# Namespace for Learner Home MFE waffle flags. +WAFFLE_FLAG_NAMESPACE = "learner_home_mfe" + # .. toggle_name: learner_home_mfe.enabled # .. toggle_implementation: WaffleFlag # .. toggle_default: False @@ -14,7 +17,7 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_ # .. toggle_creation_date: 2022-10-11 # .. toggle_tickets: AU-879 ENABLE_LEARNER_HOME_MFE = WaffleFlag( - "learner_home_mfe.enabled", + f"{WAFFLE_FLAG_NAMESPACE}.enabled", __name__, ) @@ -23,3 +26,22 @@ def should_redirect_to_learner_home_mfe(): return configuration_helpers.get_value( "ENABLE_LEARNER_HOME_MFE", ENABLE_LEARNER_HOME_MFE.is_enabled() ) + + +# Waffle flag to enable to recommendation panel on learner home mfe +# .. toggle_name: learner_home_mfe.enable_learner_home_amplitude_recommendations +# .. toggle_implementation: WaffleFlag +# .. toggle_default: False +# .. toggle_description: Waffle flag to enable to recommendation panel on learner home mfe +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2022-10-28 +# .. toggle_target_removal_date: None +# .. toggle_warning: None +# .. toggle_tickets: VAN-1138 +ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS = WaffleFlag( + f"{WAFFLE_FLAG_NAMESPACE}.enable_learner_home_amplitude_recommendations", __name__ +) + + +def should_show_learner_home_amplitude_recommendations(): + return ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS.is_enabled()