From 30a32f147adeba624efe21e41bbf9fe1f700e575 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Thu, 6 Feb 2014 15:00:12 +0800 Subject: [PATCH] MDL-42870 completion: performance and readability code refactoring --- .../criteria/completion_criteria_activity.php | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/completion/criteria/completion_criteria_activity.php b/completion/criteria/completion_criteria_activity.php index 375c9663cbe..a7b2d1f70f7 100644 --- a/completion/criteria/completion_criteria_activity.php +++ b/completion/criteria/completion_criteria_activity.php @@ -249,33 +249,29 @@ class completion_criteria_activity extends completion_criteria { * type, criteria, requirement, status */ public function get_details($completion) { - global $DB, $CFG; - // Get completion info - $course = new stdClass(); - $course->id = $completion->course; - $info = new completion_info($course); - - $module = $DB->get_record('course_modules', array('id' => $this->moduleinstance)); - $data = $info->get_data($module, false, $completion->userid); - - $activity = $DB->get_record($this->module, array('id' => $module->instance)); + $modinfo = get_fast_modinfo($completion->course); + $cm = $modinfo->get_cm($this->moduleinstance); $details = array(); $details['type'] = $this->get_title(); - $details['criteria'] = ''.$activity->name.''; + if ($cm->has_view()) { + $details['criteria'] = html_writer::link($cm->url, $cm->get_formatted_name()); + } else { + $details['criteria'] = $cm->get_formatted_name(); + } // Build requirements $details['requirement'] = array(); - if ($module->completion == 1) { + if ($cm->completion == COMPLETION_TRACKING_MANUAL) { $details['requirement'][] = get_string('markingyourselfcomplete', 'completion'); - } elseif ($module->completion == 2) { - if ($module->completionview) { + } elseif ($cm->completion == COMPLETION_TRACKING_AUTOMATIC) { + if ($cm->completionview) { $details['requirement'][] = get_string('viewingactivity', 'completion', $this->module); } - if (!is_null($module->completiongradeitemnumber)) { + if (!is_null($cm->completiongradeitemnumber)) { $details['requirement'][] = get_string('achievinggrade', 'completion'); } }