feat: create new waffle flag for learner home recommendations [VAN-1138] (#31225)
This commit is contained in:
committed by
GitHub
parent
4c0b0f99a0
commit
02568f94dc
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user