From 97165d3460bd66e91c6604fe1c177b33c4619395 Mon Sep 17 00:00:00 2001 From: "Albert St. Aubin" Date: Thu, 1 Feb 2018 12:36:19 -0500 Subject: [PATCH] Updates to allow leaving a session on entitlements with only 1 run available [LEARNER-4050] --- openedx/core/djangoapps/catalog/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openedx/core/djangoapps/catalog/utils.py b/openedx/core/djangoapps/catalog/utils.py index 8ca8de5ce9..bde8b66a8e 100644 --- a/openedx/core/djangoapps/catalog/utils.py +++ b/openedx/core/djangoapps/catalog/utils.py @@ -325,8 +325,13 @@ def get_fulfillable_course_runs_for_entitlement(entitlement, course_runs): for course_run in course_runs: course_id = CourseKey.from_string(course_run.get('key')) is_enrolled = CourseEnrollment.is_enrolled(entitlement.user, course_id) - if is_course_run_entitlement_fullfillable(course_id, entitlement, search_time) and not is_enrolled: - enrollable_sessions.append(course_run) + if is_course_run_entitlement_fullfillable(course_id, entitlement, search_time): + if (is_enrolled and + entitlement.enrollment_course_run and + course_id == entitlement.enrollment_course_run.course_id): + enrollable_sessions.append(course_run) + elif not is_enrolled: + enrollable_sessions.append(course_run) enrollable_sessions.sort(key=lambda session: session.get('start')) return enrollable_sessions