Skip to content
Browse files

MDL-39412 question behaviours: hide manual graded option

The ability to set all your quiz questions to require manual grading is
an interesting possibility, but practically almost useless.

If you set that accidentally, then you are badly stuck. There is no way
to fix it after the students have answered the quiz.

Therefore, we should set the config option to hide that option from the
UI. We do this for all Moodle sites as part of the upgrade, not just for
new installs.

If any admin wants to re-enable this, they can later.
  • Loading branch information...
1 parent e038687 commit 617947c0b7e72e8bfe805cdb699d92376db120a9 @timhunt timhunt committed Apr 29, 2013
View
49 question/behaviour/manualgraded/db/install.php
@@ -0,0 +1,49 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Post-install script for manual graded question behaviour.
+ * @package qbehaviour_manualgraded
+ * @copyright 2013 The Open Universtiy
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+
+defined('MOODLE_INTERNAL') || die();
+
+
+/**
+ * Post-install script
+ */
+function xmldb_qbehaviour_manualgraded_install() {
+
+ // Hide the manualgraded behaviour from the list of behaviours that users
+ // can select in the user-interface. If a user accidentally chooses manual
+ // graded behaviour for a quiz, there is no way to get the questions automatically
+ // graded after the student has answered them. If teachers really want to do
+ // this they can ask their admin to enable it on the manage behaviours
+ // screen in the UI.
+ $disabledbehaviours = get_config('question', 'disabledbehaviours');
+ if (!empty($disabledbehaviours)) {
+ $disabledbehaviours = explode(',', $disabledbehaviours);
+ } else {
+ $disabledbehaviours = array();
+ }
+ if (array_search('manualgraded', $disabledbehaviours) === false) {
+ $disabledbehaviours[] = 'manualgraded';
+ set_config('disabledbehaviours', implode(',', $disabledbehaviours), 'question');
+ }
+}
View
64 question/behaviour/manualgraded/db/upgrade.php
@@ -0,0 +1,64 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Post-install script for the manual graded question behaviour.
+ *
+ * @package qbehaviour_manualgraded
+ * @copyright 2013 The Open Universtiy
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+
+defined('MOODLE_INTERNAL') || die();
+
+
+/**
+ * Manual graded question behaviour upgrade code.
+ */
+function xmldb_qbehaviour_manualgraded_upgrade($oldversion) {
+ global $DB;
+
+ $dbman = $DB->get_manager();
+
+ // Moodle v2.4.0 release upgrade line
+ // Put any upgrade step following this
+
+ if ($oldversion < 2012112901) {
+ // Hide the manualgraded behaviour from the list of behaviours that users
+ // can select in the user-interface. If a user accidentally chooses manual
+ // graded behaviour for a quiz, there is no way to get the questions automatically
+ // graded after the student has answered them. If teachers really want to do
+ // this they can ask their admin to enable it on the manage behaviours
+ // screen in the UI.
+ $disabledbehaviours = get_config('question', 'disabledbehaviours');
+ if (!empty($disabledbehaviours)) {
+ $disabledbehaviours = explode(',', $disabledbehaviours);
+ } else {
+ $disabledbehaviours = array();
+ }
+ if (array_search('manualgraded', $disabledbehaviours) === false) {
+ $disabledbehaviours[] = 'manualgraded';
+ set_config('disabledbehaviours', implode(',', $disabledbehaviours), 'question');
+ }
+
+ // Manual graded question behaviour savepoint reached.
+ upgrade_plugin_savepoint(true, 2012112901, 'qbehaviour', 'manualgraded');
+ }
+
+ return true;
+}
+
View
2 question/behaviour/manualgraded/version.php
@@ -26,7 +26,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'qbehaviour_manualgraded';
-$plugin->version = 2012112900;
+$plugin->version = 2012112901;
$plugin->requires = 2012112900;

0 comments on commit 617947c

Please sign in to comment.
Something went wrong with that request. Please try again.