From f0d64796234601482e385593f78f2ebed1953573 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Thu, 6 Feb 2014 14:58:52 +0800 Subject: [PATCH 1/2] MDL-42870 completion: show failed activities as incompleted --- report/completion/index.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/report/completion/index.php b/report/completion/index.php index e80bb566687..13765fc0868 100644 --- a/report/completion/index.php +++ b/report/completion/index.php @@ -587,18 +587,17 @@ foreach ($progress as $user) { $activity = $modinfo->cms[$criterion->moduleinstance]; // Get progress information and state + if (array_key_exists($activity->id, $user->progress)) { + $state = $user->progress[$activity->id]->completionstate; + } else if ($is_complete) { + $state = COMPLETION_COMPLETE; + } else { + $state = COMPLETION_INCOMPLETE; + } if ($is_complete) { $date = userdate($criteria_completion->timecompleted, get_string('strftimedatetimeshort', 'langconfig')); - - if (array_key_exists($activity->id, $user->progress)) { - $thisprogress = $user->progress[$activity->id]; - $state = $thisprogress->completionstate; - } else { - $state = COMPLETION_COMPLETE; - } } else { $date = ''; - $state = COMPLETION_INCOMPLETE; } // Work out how it corresponds to an icon From 30a32f147adeba624efe21e41bbf9fe1f700e575 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Thu, 6 Feb 2014 15:00:12 +0800 Subject: [PATCH 2/2] 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'); } }