From bfa24ae53a3d3f3099864e16fddea2d7fd12f6c7 Mon Sep 17 00:00:00 2001 From: Sara Arjona Date: Thu, 23 Dec 2021 16:07:53 +0100 Subject: [PATCH] MDL-73394 admin_presets: New setting to store last preset applied A new setting has been added to config_plugins to store the last preset identifier applied. --- admin/tool/admin_presets/classes/manager.php | 5 +++++ admin/tool/admin_presets/tests/manager_test.php | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/admin/tool/admin_presets/classes/manager.php b/admin/tool/admin_presets/classes/manager.php index 3c1d67c5d2b..a691bac488d 100644 --- a/admin/tool/admin_presets/classes/manager.php +++ b/admin/tool/admin_presets/classes/manager.php @@ -399,6 +399,11 @@ class manager { $applied = array_merge($settingsapplied, $pluginsapplied); $skipped = array_merge($settingsskipped, $pluginsskipped); + if (!$simulate) { + // Store it in a config setting as the last preset applied. + set_config('lastpresetapplied', $presetid, 'tool_admin_presets'); + } + return [$applied, $skipped]; } diff --git a/admin/tool/admin_presets/tests/manager_test.php b/admin/tool/admin_presets/tests/manager_test.php index 884642b323a..c60e89fc32a 100644 --- a/admin/tool/admin_presets/tests/manager_test.php +++ b/admin/tool/admin_presets/tests/manager_test.php @@ -236,6 +236,14 @@ class manager_test extends \advanced_testcase { $this->assertArrayHasKey('assign', $enabledplugins); $enabledplugins = \core\plugininfo\qtype::get_enabled_plugins(); $this->assertArrayHasKey('truefalse', $enabledplugins); + + // Check the presetid has been also stored in the lastpresetapplied config setting. + $this->assertEquals($presetid, get_config('tool_admin_presets', 'lastpresetapplied')); + + // Call apply_preset as a simulation, so it shouldn't be applied and lastpresetapplied should still be $presetid. + $presetid2 = $generator->create_preset(); + $manager->apply_preset($presetid2, true); + $this->assertEquals($presetid, get_config('tool_admin_presets', 'lastpresetapplied')); }