-
Bug
-
Resolution: Won't Do
-
Minor
-
None
-
3.0
-
MOODLE_30_STABLE
-
Easy
The criterion during review, does not take into account the completion time of course it is checking, instead it applies current time.
Affected method:
public function review($completion, $mark = true) { |
global $DB; |
|
$course = $DB->get_record('course', array('id' => $this->courseinstance)); |
$info = new completion_info($course); |
|
// If the course is complete |
if ($info->is_course_complete($completion->userid)) { |
|
if ($mark) { |
$completion->mark_complete(); |
}
|
|
return true; |
}
|
|
return false; |
}
|
And a simple fix:
public function review($completion, $mark = true) { |
global $DB; |
|
$course = $DB->get_record('course', array('id' => $this->courseinstance)); |
$info = new completion_info($course); |
|
// If the course is complete |
if ($info->is_course_complete($completion->userid)) { |
|
if ($mark) { |
$cc = new completion_completion(['userid'=>$completion->userid,'course'=>$course->id]); |
$completion->mark_complete($cc->timecompleted); |
}
|
|
return true; |
}
|
|
return false; |
}
|