diff --git a/course/completion_form.php b/course/completion_form.php index 937a0eee15092..def50c66aa601 100644 --- a/course/completion_form.php +++ b/course/completion_form.php @@ -266,4 +266,31 @@ public function definition() { $mform->addElement('cancel'); } } + + /** + * Form validation + * + * @param array $data + * @param array $files + * @return array + */ + public function validation($data, $files) { + $errors = []; + + if (!isset($data['criteria_course']) || $data['criteria_course'] === 0) { + return $errors; + } + + foreach ($data['criteria_course'] as $courseid) { + $course = get_course($courseid); + $completioninfo = new completion_info($course); + + if (! $completioninfo->is_enabled()) { + $errors[] = get_string('completionnotenabledforcourse', 'completion'); + break; + } + } + + return $errors; + } }