From fb6cdb3a9fb0c5635c44cebb62bf2874c6612f97 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Thu, 19 Mar 2020 09:52:58 +0000 Subject: [PATCH] MDL-64429 tool_usertours: upgrade step to fix existing tours sortorder. --- admin/tool/usertours/classes/manager.php | 3 +++ admin/tool/usertours/db/upgrade.php | 7 +++++++ admin/tool/usertours/version.php | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/admin/tool/usertours/classes/manager.php b/admin/tool/usertours/classes/manager.php index d5e4ad07749..b094f63d83e 100644 --- a/admin/tool/usertours/classes/manager.php +++ b/admin/tool/usertours/classes/manager.php @@ -855,6 +855,9 @@ class manager { } $existingtourrecords->close(); + // Ensure we correct the sortorder in any existing tours, prior to adding latest shipped tours. + helper::reset_tour_sortorder(); + foreach (array_reverse($shippedtours) as $filename => $version) { $filepath = $CFG->dirroot . "/{$CFG->admin}/tool/usertours/tours/" . $filename; $tourjson = file_get_contents($filepath); diff --git a/admin/tool/usertours/db/upgrade.php b/admin/tool/usertours/db/upgrade.php index 523a453ceda..2b9bc8c04d6 100644 --- a/admin/tool/usertours/db/upgrade.php +++ b/admin/tool/usertours/db/upgrade.php @@ -64,5 +64,12 @@ function xmldb_tool_usertours_upgrade($oldversion) { // Automatically generated Moodle v3.7.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2019052001) { + // Updating shipped tours will fix broken sortorder records in existing tours. + manager::update_shipped_tours(); + + upgrade_plugin_savepoint(true, 2019052001, 'tool', 'usertours'); + } + return true; } diff --git a/admin/tool/usertours/version.php b/admin/tool/usertours/version.php index be0ca0d5bd7..f58e5ce8c38 100644 --- a/admin/tool/usertours/version.php +++ b/admin/tool/usertours/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2019052000; // The current module version (Date: YYYYMMDDXX). +$plugin->version = 2019052001; // The current module version (Date: YYYYMMDDXX). $plugin->requires = 2019051100; // Requires this Moodle version. $plugin->component = 'tool_usertours'; // Full name of the plugin (used for diagnostics).