MDL-74923 quiz: move admin setting classes to mod_quiz\admin namespace

This commit is contained in:
Tim Hunt
2022-12-13 16:24:58 +00:00
parent 48ffa04076
commit 9efec07f77
16 changed files with 88 additions and 87 deletions
+9 -3
View File
@@ -309,11 +309,17 @@ class manager {
$classname = null;
// Getting the appropiate class to get the correct setting value.
// Getting the appropriate class to get the correct setting value.
$settingtype = get_class($settingdata);
// Check if it is a setting from a plugin.
$plugindata = explode('_', $settingtype);
$namespacedata = explode('\\', $settingtype);
if (count($namespacedata) > 1) {
$plugindata = explode('_', $namespacedata[0]);
$settingtype = end($namespacedata);
} else {
$plugindata = explode('_', $settingtype, 2);
}
$types = \core_component::get_plugin_types();
if (array_key_exists($plugindata[0], $types)) {
$plugins = \core_component::get_plugin_list($plugindata[0]);
+2 -2
View File
@@ -133,8 +133,8 @@ class manager_test extends \advanced_testcase {
$settingpage = $adminroot->locate('modsettingquiz');
$settingdata = $settingpage->settings->quizbrowsersecurity;;
$result = $manager->get_setting($settingdata, '');
$this->assertInstanceOf('\mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_browsersecurity', $result);
$this->assertNotEquals('core_adminpresets\local\setting\adminpresets_setting', get_class($result));
$this->assertInstanceOf(\mod_quiz\adminpresets\adminpresets_browser_security_setting::class, $result);
$this->assertNotEquals(\core_adminpresets\local\setting\adminpresets_setting::class, get_class($result));
// Check the adminpresets_setting class is returned when no specific class exists.
$settingpage = $adminroot->locate('managecustomfields');
@@ -14,27 +14,19 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Admin settings class for the quiz browser security option.
*
* @package mod_quiz
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_quiz\admin;
/**
* Admin settings class for the quiz browser security option.
*
* Just so we can lazy-load the choices.
*
* @package mod_quiz
* @category admin
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_admin_setting_browsersecurity extends admin_setting_configselect_with_advanced {
class browser_security_setting extends \admin_setting_configselect_with_advanced {
public function load_choices() {
global $CFG;
@@ -43,7 +35,7 @@ class mod_quiz_admin_setting_browsersecurity extends admin_setting_configselect_
}
require_once($CFG->dirroot . '/mod/quiz/locallib.php');
$this->choices = quiz_access_manager::get_browser_security_choices();
$this->choices = \quiz_access_manager::get_browser_security_choices();
return true;
}
@@ -14,27 +14,19 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Admin settings class for the quiz grading method.
*
* @package mod_quiz
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_quiz\admin;
/**
* Admin settings class for the quiz grading method.
*
* Just so we can lazy-load the choices.
*
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package mod_quiz
* @category admin
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_admin_setting_grademethod extends admin_setting_configselect_with_advanced {
class grade_method_setting extends \admin_setting_configselect_with_advanced {
public function load_choices() {
global $CFG;
@@ -14,27 +14,19 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Admin settings class for the quiz overdue attempt handling method.
*
* @package mod_quiz
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_quiz\admin;
/**
* Admin settings class for the quiz overdue attempt handling method.
*
* Just so we can lazy-load the choices.
*
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package mod_quiz
* @category admin
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_admin_setting_overduehandling extends admin_setting_configselect_with_advanced {
class overdue_handling_setting extends \admin_setting_configselect_with_advanced {
public function load_choices() {
global $CFG;
@@ -14,25 +14,17 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace mod_quiz\admin;
/**
* Admin settings class for the quiz review options.
*
* @package mod_quiz
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Admin settings class for the quiz review options.
*
* @category admin
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_admin_review_setting extends admin_setting {
class review_setting extends \admin_setting {
/**
* @var integer should match the constants defined in
* {@see display_options}. Copied for performance reasons.
@@ -14,27 +14,19 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Admin settings class for the choices for how to display the user's image
*
* @package mod_quiz
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_quiz\admin;
/**
* Admin settings class for the choices for how to display the user's image.
*
* Just so we can lazy-load the choices.
*
* @package mod_quiz
* @category admin
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_admin_setting_user_image extends admin_setting_configselect_with_advanced {
class user_image_setting extends \admin_setting_configselect_with_advanced {
public function load_choices() {
global $CFG;
@@ -26,7 +26,7 @@ use core_adminpresets\local\setting\adminpresets_admin_setting_configselect_with
* @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David Monllaó <david.monllao@urv.cat> code
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class adminpresets_mod_quiz_admin_setting_browsersecurity extends adminpresets_admin_setting_configselect_with_advanced {
class adminpresets_browser_security_setting extends adminpresets_admin_setting_configselect_with_advanced {
public function set_behaviors() {
$this->behaviors['loadchoices'] = &$this->settingdata;
@@ -26,7 +26,7 @@ use core_adminpresets\local\setting\adminpresets_admin_setting_configselect_with
* @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David Monllaó <david.monllao@urv.cat> code
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class adminpresets_mod_quiz_admin_setting_grademethod extends adminpresets_admin_setting_configselect_with_advanced {
class adminpresets_grade_method_setting extends adminpresets_admin_setting_configselect_with_advanced {
public function set_behaviors() {
$this->behaviors['loadchoices'] = &$this->settingdata;
@@ -26,7 +26,7 @@ use core_adminpresets\local\setting\adminpresets_admin_setting_configselect_with
* @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David Monllaó <david.monllao@urv.cat> code
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class adminpresets_mod_quiz_admin_setting_overduehandling extends adminpresets_admin_setting_configselect_with_advanced {
class adminpresets_overdue_handling_setting extends adminpresets_admin_setting_configselect_with_advanced {
public function set_behaviors() {
$this->behaviors['loadchoices'] = &$this->settingdata;
@@ -27,15 +27,15 @@ use core_adminpresets\local\setting\adminpresets_setting;
* @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David Monllaó <david.monllao@urv.cat> code
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class adminpresets_mod_quiz_admin_review_setting extends adminpresets_setting {
class adminpresets_review_setting extends adminpresets_setting {
/**
* The setting value is a sum of 'mod_quiz_admin_review_setting::times'
* The setting value is a sum of 'review_setting::times'
*/
protected function set_visiblevalue() {
// Getting the masks descriptions (mod_quiz_admin_review_setting protected method).
$reflectiontimes = new ReflectionMethod('mod_quiz_admin_review_setting', 'times');
// Getting the masks descriptions (review_setting protected method).
$reflectiontimes = new ReflectionMethod('mod_quiz\admin\review_setting', 'times');
$reflectiontimes->setAccessible(true);
$times = $reflectiontimes->invoke(null);
@@ -26,7 +26,7 @@ use core_adminpresets\local\setting\adminpresets_admin_setting_configselect_with
* @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David Monllaó <david.monllao@urv.cat> code
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class adminpresets_mod_quiz_admin_setting_user_image extends adminpresets_admin_setting_configselect_with_advanced {
class adminpresets_user_image_setting extends adminpresets_admin_setting_configselect_with_advanced {
public function set_behaviors() {
$this->behaviors['loadchoices'] = &$this->settingdata;
+15
View File
@@ -31,4 +31,19 @@ $renamedclasses = [
'mod_quiz_display_options' => 'mod_quiz\question\display_options',
'qubaids_for_quiz' => 'mod_quiz\question\qubaids_for_quiz',
'qubaids_for_quiz_user' => 'mod_quiz\question\qubaids_for_quiz_user',
'mod_quiz_admin_setting_browsersecurity' => 'mod_quiz\admin\browser_security_setting',
'mod_quiz_admin_setting_grademethod' => 'mod_quiz\admin\grade_method_setting',
'mod_quiz_admin_setting_overduehandling' => 'mod_quiz\admin\overdue_handling_setting',
'mod_quiz_admin_review_setting' => 'mod_quiz\admin\review_setting',
'mod_quiz_admin_setting_user_image' => 'mod_quiz\admin\user_image_setting',
'mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_browsersecurity' =>
'mod_quiz\adminpresets\adminpresets_browser_security_setting',
'mod_quiz\adminpresets/adminpresets_mod_quiz_admin_setting_grademethod' =>
'mod_quiz\adminpresets\adminpresets_grade_method_setting',
'mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_overduehandling' =>
'mod_quiz\adminpresets\adminpresets_overdue_handling_setting',
'mod_quiz\adminpresets\adminpresets_mod_quiz_admin_review_setting' =>
'mod_quiz\adminpresets\adminpresets_review_setting',
'mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_user_image' =>
'mod_quiz\adminpresets\adminpresets_user_image_setting',
];
-1
View File
@@ -27,7 +27,6 @@ define('NO_OUTPUT_BUFFERING', true);
require_once(__DIR__ . '/../../config.php');
require_once($CFG->dirroot . '/mod/quiz/locallib.php');
require_once($CFG->dirroot . '/mod/quiz/report/reportlib.php');
require_once($CFG->dirroot . '/mod/quiz/report/default.php');
$id = optional_param('id', 0, PARAM_INT);
$q = optional_param('q', 0, PARAM_INT);
+9 -8
View File
@@ -22,6 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use mod_quiz\admin\review_setting;
defined('MOODLE_INTERNAL') || die();
@@ -72,7 +73,7 @@ if ($ADMIN->fulltree) {
get_string('attemptgradeddelay', 'quiz'), get_string('attemptgradeddelay_desc', 'quiz'), 5 * HOURSECS, HOURSECS));
// What to do with overdue attempts.
$setting = new mod_quiz_admin_setting_overduehandling('quiz/overduehandling',
$setting = new \mod_quiz\admin\overdue_handling_setting('quiz/overduehandling',
get_string('overduehandling', 'quiz'), get_string('overduehandling_desc', 'quiz'),
array('value' => 'autosubmit', 'adv' => false), null);
$setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
@@ -104,7 +105,7 @@ if ($ADMIN->fulltree) {
$quizsettings->add($setting);
// Grading method.
$setting = new mod_quiz_admin_setting_grademethod('quiz/grademethod',
$setting = new \mod_quiz\admin\grade_method_setting('quiz/grademethod',
get_string('grademethod', 'quiz'), get_string('configgrademethod', 'quiz'),
array('value' => QUIZ_GRADEHIGHEST, 'adv' => false), null);
$setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
@@ -174,21 +175,21 @@ if ($ADMIN->fulltree) {
// Review options.
$quizsettings->add(new admin_setting_heading('reviewheading',
get_string('reviewoptionsheading', 'quiz'), ''));
foreach (mod_quiz_admin_review_setting::fields() as $field => $name) {
$default = mod_quiz_admin_review_setting::all_on();
foreach (review_setting::fields() as $field => $name) {
$default = review_setting::all_on();
$forceduring = null;
if ($field == 'attempt') {
$forceduring = true;
} else if ($field == 'overallfeedback') {
$default = $default ^ mod_quiz_admin_review_setting::DURING;
$default = $default ^ review_setting::DURING;
$forceduring = false;
}
$quizsettings->add(new mod_quiz_admin_review_setting('quiz/review' . $field,
$quizsettings->add(new review_setting('quiz/review' . $field,
$name, '', $default, $forceduring));
}
// Show the user's picture.
$setting = new mod_quiz_admin_setting_user_image('quiz/showuserpicture',
$setting = new \mod_quiz\admin\user_image_setting('quiz/showuserpicture',
get_string('showuserpicture', 'quiz'), get_string('configshowuserpicture', 'quiz'),
array('value' => 0, 'adv' => false), null);
$setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
@@ -259,7 +260,7 @@ if ($ADMIN->fulltree) {
$quizsettings->add($setting);
// Browser security.
$setting = new mod_quiz_admin_setting_browsersecurity('quiz/browsersecurity',
$setting = new \mod_quiz\admin\browser_security_setting('quiz/browsersecurity',
get_string('showinsecurepopup', 'quiz'), get_string('configpopup', 'quiz'),
array('value' => '-', 'adv' => true), null);
$setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
+20
View File
@@ -10,6 +10,26 @@ This files describes API changes in the quiz code.
- qubaids_for_quiz => mod_quiz\question\qubaids_for_quiz
- qubaids_for_quiz_user => mod_quiz\question\qubaids_for_quiz_user - which is deprecated, because
it is almost the same as mod_quiz\question\qubaids_for_users_attempts.
- mod_quiz_admin_setting_browsersecurity => mod_quiz\admin\browser_security_setting
- mod_quiz_admin_setting_grademethod => mod_quiz\admin\grade_method_setting
- mod_quiz_admin_setting_overduehandling => mod_quiz\admin\overdue_handling_setting
- mod_quiz_admin_review_setting => mod_quiz\admin\review_setting
- mod_quiz_admin_setting_user_image => mod_quiz\admin\user_image_setting
- mod_quiz_admin_setting_browsersecurity => mod_quiz\admin\browser_security_setting
- mod_quiz_admin_setting_grademethod => mod_quiz\admin\grade_method_setting
- mod_quiz_admin_setting_overduehandling => mod_quiz\admin\overdue_handling_setting
- mod_quiz_admin_review_setting => mod_quiz\admin\review_setting
- mod_quiz_admin_setting_user_image => mod_quiz\admin\user_image_setting
- mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_browsersecurity =>
mod_quiz\adminpresets\adminpresets_browser_security_setting
- mod_quiz\adminpresets/adminpresets_mod_quiz_admin_setting_grademethod =>
mod_quiz\adminpresets\adminpresets_grade_method_setting
- mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_overduehandling =>
mod_quiz\adminpresets\adminpresets_overdue_handling_setting
- mod_quiz\adminpresets\adminpresets_mod_quiz_admin_review_setting =>
mod_quiz\adminpresets\adminpresets_review_setting
- mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_user_image =>
mod_quiz\adminpresets\adminpresets_user_image_setting
=== 4.1 ===