From 922c8df4162bedc620eb531e9b0e7cdc8c8a4327 Mon Sep 17 00:00:00 2001 From: Adrian Greeve Date: Thu, 29 Jun 2017 09:05:46 +0800 Subject: [PATCH] MDL-59287 core_completion: Update API to use less DB calls. --- completion/classes/api.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/completion/classes/api.php b/completion/classes/api.php index 418d8498866..12d6559fdd8 100644 --- a/completion/classes/api.php +++ b/completion/classes/api.php @@ -45,18 +45,23 @@ class api { * * @param int $cmid The course module id * @param string $modulename The name of the module (eg. assign, quiz) - * @param int $instanceid The instance idLOL + * @param stdClass|int $instanceorid The instance object or ID. * @param int|null $completionexpectedtime The time completion is expected, null if not set * @return bool */ - public static function update_completion_date_event($cmid, $modulename, $instanceid, $completionexpectedtime) { + public static function update_completion_date_event($cmid, $modulename, $instanceorid, $completionexpectedtime) { global $CFG, $DB; // Required for calendar constant CALENDAR_EVENT_TYPE_ACTION. require_once($CFG->dirroot . '/calendar/lib.php'); - $instance = $DB->get_record($modulename, array('id' => $instanceid), '*', MUST_EXIST); - $course = $DB->get_record('course', array('id' => $instance->course), '*', MUST_EXIST); + $instance = null; + if (is_object($instanceorid)) { + $instance = $instanceorid; + } else { + $instance = $DB->get_record($modulename, array('id' => $instanceorid), '*', MUST_EXIST); + } + $course = get_course($instance->course); $completion = new \completion_info($course);