MDL-68715 completion: fix form default value for course prerequisites.
Adds filtering on the completion criteria form to ensure we are only selecting actual course instances of this type. Prior to this change we would also get NULL values from unrelated criteria types.
This commit is contained in:
@@ -128,14 +128,16 @@ class course_completion_form extends moodleform {
|
||||
}
|
||||
|
||||
// Get applicable courses (prerequisites).
|
||||
$selectedcourses = $DB->get_fieldset_sql("SELECT cc.courseinstance
|
||||
FROM {course_completion_criteria} cc WHERE cc.course = ?", [$course->id]);
|
||||
$hasselectablecourses = core_course_category::search_courses(['onlywithcompletion' => true], ['limit' => 2]);
|
||||
unset($hasselectablecourses[$course->id]);
|
||||
if ($hasselectablecourses) {
|
||||
// Show multiselect box.
|
||||
$mform->addElement('course', 'criteria_course', get_string('coursesavailable', 'completion'),
|
||||
array('multiple' => 'multiple', 'onlywithcompletion' => true, 'exclude' => $course->id));
|
||||
$mform->setType('criteria_course', PARAM_INT);
|
||||
|
||||
$selectedcourses = $DB->get_fieldset_select('course_completion_criteria', 'courseinstance',
|
||||
'course = :course AND criteriatype = :type', ['course' => $course->id, 'type' => COMPLETION_CRITERIA_TYPE_COURSE]);
|
||||
$mform->setDefault('criteria_course', $selectedcourses);
|
||||
|
||||
// Map aggregation methods to context-sensitive human readable dropdown menu.
|
||||
|
||||
Reference in New Issue
Block a user