MDL-31914 Ensure that completion criteria are deleted when removing a course module

Conflicts:

	lib/db/upgrade.php
	version.php

Conflicts:

	version.php
This commit is contained in:
Andrew Robert Nicols
2012-03-27 10:31:34 +02:00
committed by Eloy Lafuente (stronk7)
parent 3d06074953
commit a8a076708e
3 changed files with 21 additions and 1 deletions
+1
View File
@@ -2836,6 +2836,7 @@ function delete_course_module($id) {
// very quick on an empty table)
$DB->delete_records('course_modules_completion', array('coursemoduleid' => $cm->id));
$DB->delete_records('course_modules_availability', array('coursemoduleid'=> $cm->id));
$DB->delete_records('course_completion_criteria', array('moduleinstance'=> $cm->id));
delete_context(CONTEXT_MODULE, $cm->id);
return $DB->delete_records('course_modules', array('id'=>$cm->id));
+19
View File
@@ -6762,6 +6762,25 @@ FROM
upgrade_main_savepoint(true, 2011070104.12);
}
if ($oldversion < 2011070105.03) {
// 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";
} else {
$sql = "DELETE FROM {course_completion_criteria}
WHERE NOT EXISTS (
SELECT 'x' FROM {course_modules}
WHERE {course_modules}.id = {course_completion_criteria}.moduleinstance)";
}
$DB->execute($sql);
// Main savepoint reached
upgrade_main_savepoint(true, 2011070105.03);
}
return true;
}
+1 -1
View File
@@ -30,7 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2011070105.02; // 20110701 = branching date YYYYMMDD - do not modify!
$version = 2011070105.03; // 20110701 = branching date YYYYMMDD - do not modify!
// RR = release increments - 00 in DEV branches
// .XX = incremental changes