Commit 3acb2948 authored by Neill Magill's avatar Neill Magill
Browse files

MDL-60945 Web services: Too many progress records retrieved

The core_completion_get_activities_completion_status was getting the
progress for all users on the course called, and then discarding all
the records but one.

This change ensures that only progress for the user we are interested in
is retrieved from the database.

This has a side benefit of removing a full table scan from the query
finding the users inside the get_progress_all() method.
parent 109aa076
......@@ -249,7 +249,7 @@ class core_completion_external extends external_api {
$completion = new completion_info($course);
$activities = $completion->get_activities();
$progresses = $completion->get_progress_all();
$progresses = $completion->get_progress_all(' = :uid', ['uid' => $params['userid']]);
$userprogress = $progresses[$user->id];
$results = array();
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment