Remove CourseOverview.get_from_id[s]_if_exists (#22918)
The functions `CourseOverview.get_from_id_if_exists` and `CourseOverview.get_from_ids if exists` are bug- prone, in that they do not go to the modulestore when a CourseOverview is out-of-date or uncached. The docstrings spell this out, but callers seem not to understand the implications. So, in this commit, we: * Remove both functions * Add `CourseOverview.get_from_ids` for almost-as-fast yet safer bulk-fetching of overviews * Update call sites to use `course_exists` or `get_from_ids` in place of the old functions. * Add tests for @verify_course_exists. This PR should specifically fix an issue where the program_enrollments API was breaking when the CourseOverview version was bumped. CR-1708
Showing
- lms/djangoapps/certificates/apis/v0/views.py 1 addition, 1 deletionlms/djangoapps/certificates/apis/v0/views.py
- lms/djangoapps/program_enrollments/rest_api/v1/views.py 1 addition, 1 deletionlms/djangoapps/program_enrollments/rest_api/v1/views.py
- openedx/core/djangoapps/content/course_overviews/models.py 19 additions, 33 deletionsopenedx/core/djangoapps/content/course_overviews/models.py
- openedx/core/djangoapps/content/course_overviews/signals.py 4 additions, 1 deletionopenedx/core/djangoapps/content/course_overviews/signals.py
- openedx/core/djangoapps/content/course_overviews/tests/test_course_overviews.py 40 additions, 37 deletions...s/content/course_overviews/tests/test_course_overviews.py
- openedx/core/lib/api/tests/test_view_utils.py 66 additions, 0 deletionsopenedx/core/lib/api/tests/test_view_utils.py
- openedx/core/lib/api/view_utils.py 1 addition, 1 deletionopenedx/core/lib/api/view_utils.py
Please register or sign in to comment