feat: add masters program restrictions for UT Austin (#31873)

Co-authored-by: Syed Sajjad  Hussain Shah <syed.sajjad@H7FKF7K6XD.local>
This commit is contained in:
Syed Sajjad Hussain Shah
2023-03-06 10:31:23 +05:00
committed by GitHub
parent 6b2ea70599
commit 7b0b14c703
5 changed files with 17 additions and 15 deletions

View File

@@ -441,15 +441,15 @@ class TestCourseRecommendationApiView(TestCase):
)
@mock.patch(
"lms.djangoapps.learner_dashboard.api.v0.views.is_user_enrolled_in_masters_program"
"lms.djangoapps.learner_dashboard.api.v0.views.is_user_enrolled_in_ut_austin_masters_program"
)
def test_no_recommendations_for_masters_program_learners(
self, is_user_enrolled_in_masters_program_mock
self, is_user_enrolled_in_ut_austin_masters_program_mock
):
"""
Verify API returns no recommendations if a user is enrolled in masters program.
Verify API returns no recommendations if a user is enrolled in UT Austin masters program.
"""
is_user_enrolled_in_masters_program_mock.return_value = True
is_user_enrolled_in_ut_austin_masters_program_mock.return_value = True
response = self.client.get(self.url)

View File

@@ -27,7 +27,7 @@ from openedx.core.djangoapps.programs.utils import (
from lms.djangoapps.learner_recommendations.utils import (
filter_recommended_courses,
get_amplitude_course_recommendations,
is_user_enrolled_in_masters_program,
is_user_enrolled_in_ut_austin_masters_program,
)
@@ -419,7 +419,7 @@ class CourseRecommendationApiView(APIView):
"""Retrieves course recommendations details of a user in a specified course."""
user_id = request.user.id
if is_user_enrolled_in_masters_program(request.user):
if is_user_enrolled_in_ut_austin_masters_program(request.user):
return self._recommendations_response(user_id, None, [], False)
fallback_recommendations = settings.GENERAL_RECOMMENDATIONS if show_fallback_recommendations() else []

View File

@@ -308,15 +308,15 @@ class TestCourseRecommendationApiView(TestCase):
@override_waffle_flag(ENABLE_LEARNER_HOME_AMPLITUDE_RECOMMENDATIONS, active=True)
@mock.patch(
"lms.djangoapps.learner_home.recommendations.views.is_user_enrolled_in_masters_program"
"lms.djangoapps.learner_home.recommendations.views.is_user_enrolled_in_ut_austin_masters_program"
)
def test_no_recommendations_for_masters_program_learners(
self, is_user_enrolled_in_masters_program_mock
self, is_user_enrolled_in_ut_austin_masters_program_mock
):
"""
Verify API returns no recommendations if a user is enrolled in masters program.
Verify API returns no recommendations if a user is enrolled in UT Austin masters program.
"""
is_user_enrolled_in_masters_program_mock.return_value = True
is_user_enrolled_in_ut_austin_masters_program_mock.return_value = True
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)

View File

@@ -26,7 +26,7 @@ from lms.djangoapps.learner_home.recommendations.waffle import (
from lms.djangoapps.learner_recommendations.utils import (
filter_recommended_courses,
get_amplitude_course_recommendations,
is_user_enrolled_in_masters_program,
is_user_enrolled_in_ut_austin_masters_program,
)
@@ -57,7 +57,7 @@ class CourseRecommendationApiView(APIView):
user_id = request.user.id
if is_user_enrolled_in_masters_program(request.user):
if is_user_enrolled_in_ut_austin_masters_program(request.user):
return self._recommendations_response(user_id, None, [], False)
fallback_recommendations = settings.GENERAL_RECOMMENDATIONS if show_fallback_recommendations() else []

View File

@@ -192,7 +192,7 @@ def get_amplitude_course_recommendations(user_id, recommendation_id):
return True, False, []
def is_user_enrolled_in_masters_program(user):
def is_user_enrolled_in_ut_austin_masters_program(user):
"""
Checks if a user is enrolled in any masters program
@@ -200,7 +200,7 @@ def is_user_enrolled_in_masters_program(user):
user: The user object
Returns:
True if the user is enrolled in any masters program otherwise False
True if the user is enrolled in UT Austin masters program otherwise False
"""
program_enrollments = fetch_program_enrollments_by_student(
user=user,
@@ -210,7 +210,9 @@ def is_user_enrolled_in_masters_program(user):
enrolled_programs = get_programs(uuids=uuids) or []
for enrolled_program in enrolled_programs:
if enrolled_program.get("type", None) == "Masters":
return True
authoring_organizations = enrolled_program.get("authoring_organizations", [])
if any(org.get("key", None) == "UTAustinX" for org in authoring_organizations):
return True
return False