MDL-39412 disabling manual graded behaviour refinements

1. Change behaviour admin settings so you can only select enabled
behaviours.
2. During the upgrade, change admin settings that might be currently set
to manual graded, so that instead they are set to deferredfeedback (if
that is available. If not, we just take the first alphabetically.)
This commit is contained in:
Tim Hunt
2013-05-09 11:24:43 +08:00
committed by Damyon Wiese
parent e9df9e8f7a
commit cbdb09a9ef
3 changed files with 30 additions and 3 deletions
+1 -1
View File
@@ -4142,7 +4142,7 @@ class admin_setting_question_behaviour extends admin_setting_configselect {
public function load_choices() {
global $CFG;
require_once($CFG->dirroot . '/question/engine/lib.php');
$this->choices = question_engine::get_archetypal_behaviours();
$this->choices = question_engine::get_behaviour_options();
return true;
}
}
+28 -1
View File
@@ -30,7 +30,7 @@ defined('MOODLE_INTERNAL') || die();
* Manual graded question behaviour upgrade code.
*/
function xmldb_qbehaviour_manualgraded_upgrade($oldversion) {
global $DB;
global $CFG, $DB;
$dbman = $DB->get_manager();
@@ -59,6 +59,33 @@ function xmldb_qbehaviour_manualgraded_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2013050200, 'qbehaviour', 'manualgraded');
}
if ($oldversion < 2013050800) {
// Also, fix any other admin settings that currently select manualgraded behaviour.
// Work out a sensible default alternative to manualgraded.
require_once($CFG->libdir . '/questionlib.php');
$behaviours = question_engine::get_behaviour_options();
if (array_key_exists('deferredfeedback', $behaviours)) {
$defaultbehaviour = 'deferredfeedback';
} else {
reset($behaviours);
$defaultbehaviour = key($behaviours);
}
// Fix the question preview default.
if (get_config('question_preview', 'behaviour') == 'manualgraded') {
set_config('behaviour', $defaultbehaviour, 'question_preview');
}
// Fix the quiz settings default.
if (get_config('quiz', 'preferredbehaviour') == 'manualgraded') {
set_config('preferredbehaviour', $defaultbehaviour, 'quiz');
}
// Manual graded question behaviour savepoint reached.
upgrade_plugin_savepoint(true, 2013050800, 'qbehaviour', 'manualgraded');
}
return true;
}
+1 -1
View File
@@ -26,7 +26,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'qbehaviour_manualgraded';
$plugin->version = 2013050200;
$plugin->version = 2013050800;
$plugin->requires = 2013050100;