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'] = '<a href="'.$CFG->wwwroot.'/mod/'.$this->module.'/view.php?id='.$this->moduleinstance.'">'.$activity->name.'</a>'; + 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'); } }