MST-675: QuerySet Performance for StudentOnboardingStatusByCourse Endpoint (#26789)
* The original use of user.has_perm('can_take_proctored_exam') in the get_active_enrollments_for_course method had very poor performance when used for multiple learners. The permission is not designed for use in bulk operations. It was being called for each user in a loop by edx-proctoring, resulting in many queries to the database. This lead to timeouts on the client. This change exposes a new service endpoint that performs this permission checking in the database, resulting in one single query to the necessary LMS SQL tables and many fewer queries to the modulestore. * bump version of edx-proctoring to 3.7.3
Showing
- openedx/core/djangoapps/enrollments/services.py 67 additions, 2 deletionsopenedx/core/djangoapps/enrollments/services.py
- openedx/core/djangoapps/enrollments/tests/test_services.py 175 additions, 23 deletionsopenedx/core/djangoapps/enrollments/tests/test_services.py
- requirements/edx/base.txt 1 addition, 1 deletionrequirements/edx/base.txt
- requirements/edx/development.txt 1 addition, 1 deletionrequirements/edx/development.txt
- requirements/edx/testing.txt 1 addition, 1 deletionrequirements/edx/testing.txt
Please register or sign in to comment