From 3e673f59b32226edea618990fe0c193c52f7ca8f Mon Sep 17 00:00:00 2001
From: David Ormsbee <dave@edx.org>
Date: Wed, 28 Apr 2021 23:57:11 -0400
Subject: [PATCH] perf: Remove Modulestore call from Credit Service.

We can get the same information much more cheaply and predictably
by using CourseOverviews. This was contributing to slow traces for
the edx_proctoring.views:StudentOnboardingStatusView.get
transaction.
---
 openedx/core/djangoapps/credit/services.py | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/openedx/core/djangoapps/credit/services.py b/openedx/core/djangoapps/credit/services.py
index 7884a8000a5..6966bbf691d 100644
--- a/openedx/core/djangoapps/credit/services.py
+++ b/openedx/core/djangoapps/credit/services.py
@@ -1,8 +1,6 @@
 """
 Implementation of "credit" XBlock service
 """
-
-
 import logging
 
 from django.contrib.auth.models import User  # lint-amnesty, pylint: disable=imported-auth-user
@@ -10,7 +8,8 @@ from django.core.exceptions import ObjectDoesNotExist
 from opaque_keys.edx.keys import CourseKey
 
 from common.djangoapps.student.models import CourseEnrollment
-from xmodule.modulestore.django import modulestore
+from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
+
 
 log = logging.getLogger(__name__)
 
@@ -101,10 +100,10 @@ class CreditService:
         }
 
         if return_course_info:
-            course = modulestore().get_course(course_key, depth=0)
+            course_overview = CourseOverview.get_from_id(course_key)
             result.update({
-                'course_name': course.display_name,
-                'course_end_date': course.end,
+                'course_name': course_overview.display_name,
+                'course_end_date': course_overview.end_date,
             })
         return result
 
-- 
GitLab