Merge pull request #28129 from edx/jhynes/microba-1289_overviews
refactor!: remove the `get_course_overview` function in favor of `get_course_overview_or_none`
This commit is contained in:
@@ -43,6 +43,7 @@ from lms.djangoapps.certificates.utils import (
|
||||
get_certificate_url as _get_certificate_url,
|
||||
has_html_certificates_enabled as _has_html_certificates_enabled
|
||||
)
|
||||
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview_or_none
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
|
||||
log = logging.getLogger("edx.certificate")
|
||||
@@ -52,7 +53,7 @@ MODES = GeneratedCertificate.MODES
|
||||
|
||||
def _format_certificate_for_user(username, cert):
|
||||
"""
|
||||
Helper function to serialize an user certificate.
|
||||
Helper function to serialize a user certificate.
|
||||
|
||||
Arguments:
|
||||
username (unicode): The identifier of the user.
|
||||
@@ -60,7 +61,8 @@ def _format_certificate_for_user(username, cert):
|
||||
|
||||
Returns: dict
|
||||
"""
|
||||
try:
|
||||
course_overview = get_course_overview_or_none(cert.course_id)
|
||||
if cert.download_url or course_overview:
|
||||
return {
|
||||
"username": username,
|
||||
"course_key": cert.course_id,
|
||||
@@ -78,8 +80,8 @@ def _format_certificate_for_user(username, cert):
|
||||
else None
|
||||
),
|
||||
}
|
||||
except CourseOverview.DoesNotExist:
|
||||
return None
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def get_certificates_for_user(username):
|
||||
|
||||
@@ -318,7 +318,7 @@ class CertificatesListRestApiTest(AuthAndScopesTestMixin, SharedModuleStoreTestC
|
||||
assert len(resp.data) == 0
|
||||
|
||||
# Test student with 1 certificate
|
||||
with self.assertNumQueries(10):
|
||||
with self.assertNumQueries(12):
|
||||
resp = self.get_response(
|
||||
AuthType.jwt,
|
||||
requesting_user=self.global_staff,
|
||||
@@ -358,7 +358,7 @@ class CertificatesListRestApiTest(AuthAndScopesTestMixin, SharedModuleStoreTestC
|
||||
download_url='www.google.com',
|
||||
grade="0.88",
|
||||
)
|
||||
with self.assertNumQueries(10):
|
||||
with self.assertNumQueries(12):
|
||||
resp = self.get_response(
|
||||
AuthType.jwt,
|
||||
requesting_user=self.global_staff,
|
||||
|
||||
@@ -10,7 +10,7 @@ from eventtracking import tracker
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
|
||||
from lms.djangoapps.certificates.models import GeneratedCertificate
|
||||
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview
|
||||
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview_or_none
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -42,7 +42,7 @@ def emit_certificate_event(event_name, user, course_id, course_overview=None, ev
|
||||
event_name = '.'.join(['edx', 'certificate', event_name])
|
||||
|
||||
if not course_overview:
|
||||
course_overview = get_course_overview(course_id)
|
||||
course_overview = get_course_overview_or_none(course_id)
|
||||
|
||||
context = {
|
||||
'org_id': course_overview.org,
|
||||
@@ -67,7 +67,7 @@ def get_certificate_url(user_id=None, course_id=None, uuid=None, user_certificat
|
||||
"""
|
||||
url = ''
|
||||
|
||||
course_overview = _course_from_key(course_id)
|
||||
course_overview = get_course_overview_or_none(_safe_course_key(course_id))
|
||||
if not course_overview:
|
||||
return url
|
||||
|
||||
@@ -119,13 +119,6 @@ def _certificate_download_url(user_id, course_id, user_certificate=None):
|
||||
return ''
|
||||
|
||||
|
||||
def _course_from_key(course_key):
|
||||
"""
|
||||
Returns the course overview
|
||||
"""
|
||||
return get_course_overview(_safe_course_key(course_key))
|
||||
|
||||
|
||||
def _safe_course_key(course_key):
|
||||
"""
|
||||
Returns the course key
|
||||
|
||||
@@ -24,7 +24,7 @@ from common.djangoapps.util.json_request import JsonResponse
|
||||
from lms.djangoapps.certificates.api import generate_certificate_task, get_certificates_for_user
|
||||
from lms.djangoapps.certificates.permissions import GENERATE_ALL_CERTIFICATES, VIEW_ALL_CERTIFICATES
|
||||
from lms.djangoapps.instructor_task.api import generate_certificates_for_students
|
||||
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview
|
||||
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview_or_none
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@@ -187,9 +187,8 @@ def regenerate_certificate_for_user(request):
|
||||
user = params["user"]
|
||||
course_key = params["course_key"]
|
||||
|
||||
try:
|
||||
get_course_overview(course_key)
|
||||
except CourseOverview.DoesNotExist:
|
||||
course_overview = get_course_overview_or_none(course_key)
|
||||
if not course_overview:
|
||||
msg = _("The course {course_key} does not exist").format(course_key=course_key)
|
||||
return HttpResponseBadRequest(msg)
|
||||
|
||||
|
||||
@@ -11,13 +11,6 @@ from openedx.core.djangoapps.content.course_overviews.serializers import (
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_course_overview(course_id):
|
||||
"""
|
||||
Retrieve and return course overview data for the provided course id.
|
||||
"""
|
||||
return CourseOverview.get_from_id(course_id)
|
||||
|
||||
|
||||
def get_course_overview_or_none(course_id):
|
||||
"""
|
||||
Retrieve and return course overview data for the provided course id.
|
||||
@@ -25,7 +18,7 @@ def get_course_overview_or_none(course_id):
|
||||
If the course overview does not exist, return None.
|
||||
"""
|
||||
try:
|
||||
return get_course_overview(course_id)
|
||||
return CourseOverview.get_from_id(course_id)
|
||||
except CourseOverview.DoesNotExist:
|
||||
log.warning(f"Course overview does not exist for {course_id}")
|
||||
return None
|
||||
|
||||
@@ -5,7 +5,6 @@ course_overview api tests
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
|
||||
from openedx.core.djangoapps.content.course_overviews.api import (
|
||||
get_course_overview,
|
||||
get_course_overview_or_none,
|
||||
get_course_overviews
|
||||
)
|
||||
@@ -24,14 +23,6 @@ class TestCourseOverviewsApi(ModuleStoreTestCase):
|
||||
for _ in range(3):
|
||||
CourseOverviewFactory.create()
|
||||
|
||||
def test_get_course_overview(self):
|
||||
"""
|
||||
Test for `get_course_overview` function to retrieve a single course overview.
|
||||
"""
|
||||
course_overview = CourseOverviewFactory.create()
|
||||
retrieved_course_overview = get_course_overview(course_overview.id)
|
||||
assert course_overview.id == retrieved_course_overview.id
|
||||
|
||||
def test_get_course_overview_or_none(self):
|
||||
"""
|
||||
Test for `test_get_course_overview_or_none` function when the overview exists.
|
||||
|
||||
Reference in New Issue
Block a user