mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-31914 Ensure that completion criteria are deleted when removing a course module
This commit is contained in:
parent
8589241024
commit
8a28dbd4e1
2 changed files with 22 additions and 1 deletions
|
@ -7030,6 +7030,25 @@ FROM
|
|||
upgrade_main_savepoint(true, 2011120501.12);
|
||||
}
|
||||
|
||||
if ($oldversion < 2011120502.07) {
|
||||
require_once($CFG->libdir . '/completion/completion_criteria.php');
|
||||
// Delete orphaned criteria which were left when modules were removed
|
||||
if ($DB->get_dbfamily() === 'mysql') {
|
||||
$sql = "DELETE cc FROM {course_completion_criteria} cc
|
||||
LEFT JOIN {course_modules} cm ON cm.id = cc.moduleinstance
|
||||
WHERE cm.id IS NULL AND cc.criteriatype = ".COMPLETION_CRITERIA_TYPE_ACTIVITY;
|
||||
} else {
|
||||
$sql = "DELETE FROM {course_completion_criteria}
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 'x' FROM {course_modules}
|
||||
WHERE {course_modules}.id = {course_completion_criteria}.moduleinstance)
|
||||
AND cc.criteriatype = ".COMPLETION_CRITERIA_TYPE_ACTIVITY;
|
||||
}
|
||||
$DB->execute($sql);
|
||||
|
||||
// Main savepoint reached
|
||||
upgrade_main_savepoint(true, 2011120502.07);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue