From bf3aaffe4ddbbde6fc5b523f502c162606cd8d31 Mon Sep 17 00:00:00 2001 From: "Albert (AJ) St. Aubin" Date: Mon, 4 May 2020 21:52:20 -0400 Subject: [PATCH] PR to fix issue loading dashboard when there is a version mismatch in CourseOverview This line of code will cause a failure in the retrieval of the CourseOverview get_from_id method because it attempts to load with a string rather than a CourseKey. --- lms/templates/dashboard.html | 5 ++++- themes/edx.org/lms/templates/dashboard.html | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lms/templates/dashboard.html b/lms/templates/dashboard.html index 2353fb3f83..1661523bb6 100644 --- a/lms/templates/dashboard.html +++ b/lms/templates/dashboard.html @@ -183,7 +183,10 @@ from student.models import CourseEnrollment pseudo_session = unfulfilled_entitlement_pseudo_sessions[str(entitlement.uuid)] if not pseudo_session: continue - enrollment = CourseEnrollment(user=user, course=CourseOverview.get_from_id(pseudo_session['key']), mode=pseudo_session['type']) + pseudo_key = pseudo_session['key'] + if not isinstance(pseudo_key, CourseKey): + pseudo_key = CourseKey.from_string(pseudo_session['key']) + enrollment = CourseEnrollment(user=user, course=CourseOverview.get_from_id(pseudo_key), mode=pseudo_session['type']) # We only show email settings for entitlement cards if the entitlement has an associated enrollment show_email_settings = is_fulfilled_entitlement and (entitlement_session.course_id in show_email_settings_for) else: diff --git a/themes/edx.org/lms/templates/dashboard.html b/themes/edx.org/lms/templates/dashboard.html index de015a173a..c3c7de2df2 100644 --- a/themes/edx.org/lms/templates/dashboard.html +++ b/themes/edx.org/lms/templates/dashboard.html @@ -179,7 +179,10 @@ from student.models import CourseEnrollment pseudo_session = unfulfilled_entitlement_pseudo_sessions[str(entitlement.uuid)] if not pseudo_session: continue - enrollment = CourseEnrollment(user=user, course=CourseOverview.get_from_id(pseudo_session['key']), mode=pseudo_session['type']) + pseudo_key = pseudo_session['key'] + if not isinstance(pseudo_key, CourseKey): + pseudo_key = CourseKey.from_string(pseudo_session['key']) + enrollment = CourseEnrollment(user=user, course=CourseOverview.get_from_id(pseudo_key), mode=pseudo_session['type']) # We only show email settings for entitlement cards if the entitlement has an associated enrollment show_email_settings = is_fulfilled_entitlement and (entitlement_session.course_id in show_email_settings_for) else: