From e8a3077bfae1dc5c183883480e1c74a37d92a85b Mon Sep 17 00:00:00 2001 From: "Albert St. Aubin" Date: Thu, 29 Mar 2018 07:10:58 -0400 Subject: [PATCH] Protection for when there is no CourseOverview data available. --- common/djangoapps/entitlements/utils.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common/djangoapps/entitlements/utils.py b/common/djangoapps/entitlements/utils.py index 5c80e481b8..1ee2f81673 100644 --- a/common/djangoapps/entitlements/utils.py +++ b/common/djangoapps/entitlements/utils.py @@ -1,8 +1,12 @@ +import logging + from django.utils import timezone from course_modes.models import CourseMode from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +log = logging.getLogger("common.entitlements.utils") + def is_course_run_entitlement_fulfillable(course_run_key, entitlement, compare_date=timezone.now()): """ @@ -22,6 +26,13 @@ def is_course_run_entitlement_fulfillable(course_run_key, entitlement, compare_d """ course_overview = CourseOverview.get_from_id(course_run_key) + if not course_overview: + log.error(('There is no CourseOverview entry available for {course_run_id}, ' + 'course run cannot be applied to entitlement').format( + course_run_id=str(course_run_key) + )) + return False + # Verify that the course is still running run_start = course_overview.start run_end = course_overview.end