From 443a35d18c66d8dd4f487b15559f01fa5dbf6d48 Mon Sep 17 00:00:00 2001 From: Peter Dias Date: Wed, 7 Oct 2020 10:55:25 +0800 Subject: [PATCH] MDL-50955 core: Reset lessons completion criteria if grade type is none --- lib/db/upgrade.php | 18 ++++++++++++++++++ version.php | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index e46eae0dae9..5133db0bb84 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2998,5 +2998,23 @@ function xmldb_main_upgrade($oldversion) { // Automatically generated Moodle v3.10.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2020111500.01) { + // Get all lessons that are set with a completion criteria of 'requires grade' but with no grade type set. + $sql = "SELECT cm.id + FROM {course_modules} cm + JOIN {lesson} l ON l.id = cm.instance + JOIN {modules} m ON m.id = cm.module + WHERE m.name = :name AND cm.completiongradeitemnumber IS NOT NULL AND l.grade = :grade"; + + do { + if ($invalidconfigrations = $DB->get_records_sql($sql, ['name' => 'lesson', 'grade' => 0], 0, 1000)) { + list($insql, $inparams) = $DB->get_in_or_equal(array_keys($invalidconfigrations), SQL_PARAMS_NAMED); + $DB->set_field_select('course_modules', 'completiongradeitemnumber', null, "id $insql", $inparams); + } + } while ($invalidconfigrations); + + upgrade_main_savepoint(true, 2020111500.01); + } + return true; } diff --git a/version.php b/version.php index c315c0f3242..1dce40ebd59 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2020111500.00; // 20201109 = branching date YYYYMMDD - do not modify! +$version = 2020111500.01; // 20201109 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches. // .XX = incremental changes. $release = '3.11dev (Build: 20201115)';// Human-friendly version name