MDL-60972 core_course: delete section files, when section is deleted.

This commit is contained in:
Andreas Wagner
2019-01-17 08:04:13 +01:00
parent 4c5b60a0f9
commit d5ef685249
3 changed files with 30 additions and 1 deletions
+5
View File
@@ -1111,6 +1111,11 @@ abstract class format_base {
$DB->delete_records('course_sections', array('id' => $section->id));
rebuild_course_cache($course->id, true);
// Delete section summary files.
$context = \context_course::instance($course->id);
$fs = get_file_storage();
$fs->delete_area_files($context->id, 'course', 'section', $section->id);
// Descrease 'numsections' if needed.
if ($decreasenumsections) {
$this->update_course_format_options(array('numsections' => $course->numsections - 1));
+24
View File
@@ -2516,5 +2516,29 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2018120301.02);
}
if ($oldversion < 2019011100.01) {
// Delete all files that have been used in sections, which are already deleted.
$sql = "SELECT DISTINCT f.itemid as sectionid, f.contextid
FROM {files} f
LEFT JOIN {course_sections} s ON f.itemid = s.id
WHERE f.component = :component AND f.filearea = :filearea AND s.id IS NULL ";
$params = [
'component' => 'course',
'filearea' => 'section'
];
$stalefiles = $DB->get_recordset_sql($sql, $params);
$fs = get_file_storage();
foreach ($stalefiles as $stalefile) {
$fs->delete_area_files($stalefile->contextid, 'course', 'section', $stalefile->sectionid);
}
$stalefiles->close();
upgrade_main_savepoint(true, 2019011100.01);
}
return true;
}
+1 -1
View File
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2019011100.00; // YYYYMMDD = weekly release date of this DEV branch.
$version = 2019011100.01; // YYYYMMDD = weekly release date of this DEV branch.
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.