From de6a0a394b11f5911af91c9b7a9ba5d75b360d9e Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Wed, 12 Jun 2013 13:05:56 +0800 Subject: [PATCH 1/2] MDL-37621 assign: Improvements to assignment default settings. Remove locked flag from datetime settings. Change requiresubmissionstatement to use the new admin flags instead of it's previous custom behaviour. This means there is a language change: AMOS BEGIN CPY [requiresubmissionstatementassignment_help,mod_assign],[requiresubmissionstatement_help,mod_assign] AMOS END --- mod/assign/lang/en/assign.php | 4 +--- mod/assign/locallib.php | 9 +++------ mod/assign/mod_form.php | 16 +++++----------- mod/assign/settings.php | 20 ++++++++++---------- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/mod/assign/lang/en/assign.php b/mod/assign/lang/en/assign.php index f243a24797c..34c193ea4ec 100644 --- a/mod/assign/lang/en/assign.php +++ b/mod/assign/lang/en/assign.php @@ -278,9 +278,7 @@ $string['quickgradingresult'] = 'Quick grading'; $string['quickgradingchangessaved'] = 'The grade changes were saved'; $string['quickgrading_help'] = 'Quick grading allows you to assign grades (and outcomes) directly in the submissions table. Quick grading is not compatible with advanced grading and is not recommended when there are multiple markers.'; $string['requiresubmissionstatement'] = 'Require that students accept the submission statement'; -$string['requiresubmissionstatement_help'] = 'Require that students accept the submission statement for all assignment submissions for this entire Moodle installation. If this setting is not enabled, then submission statements can be enabled or disabled in the settings for each assignment.'; -$string['requiresubmissionstatementassignment'] = 'Require that students accept the submission statement'; -$string['requiresubmissionstatementassignment_help'] = 'Require that students accept the submission statement for all submissions to this assignment.'; +$string['requiresubmissionstatement_help'] = 'Require that students accept the submission statement for all submissions to this assignment.'; $string['requireallteammemberssubmit'] = 'Require all group members submit'; $string['requireallteammemberssubmit_help'] = 'If enabled, all members of the student group must click the submit button for this assignment before the group submission will be considered as submitted. If disabled, the group submission will be considered as submitted as soon as any member of the student group clicks the submit button.'; $string['recordid'] = 'Identifier'; diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 3f307d37e26..25ca157747e 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -3425,8 +3425,7 @@ class assign { $data = new stdClass(); $adminconfig = $this->get_admin_config(); - $requiresubmissionstatement = (!empty($adminconfig->requiresubmissionstatement) || - $this->get_instance()->requiresubmissionstatement) && + $requiresubmissionstatement = $this->get_instance()->requiresubmissionstatement && !empty($adminconfig->submissionstatement); $submissionstatement = ''; @@ -4412,8 +4411,7 @@ class assign { $instance = $this->get_instance(); $data = new stdClass(); $adminconfig = $this->get_admin_config(); - $requiresubmissionstatement = (!empty($adminconfig->requiresubmissionstatement) || - $instance->requiresubmissionstatement) && + $requiresubmissionstatement = $instance->requiresubmissionstatement && !empty($adminconfig->submissionstatement); $submissionstatement = ''; @@ -5485,8 +5483,7 @@ class assign { // Submission statement. $adminconfig = $this->get_admin_config(); - $requiresubmissionstatement = (!empty($adminconfig->requiresubmissionstatement) || - $this->get_instance()->requiresubmissionstatement) && + $requiresubmissionstatement = $this->get_instance()->requiresubmissionstatement && !empty($adminconfig->submissionstatement); $draftsenabled = $this->get_instance()->submissiondrafts; diff --git a/mod/assign/mod_form.php b/mod/assign/mod_form.php index 4570805a325..d622435467f 100644 --- a/mod/assign/mod_form.php +++ b/mod/assign/mod_form.php @@ -103,17 +103,11 @@ class mod_assign_mod_form extends moodleform_mod { $mform->addElement('selectyesno', 'submissiondrafts', $name); $mform->addHelpButton('submissiondrafts', 'submissiondrafts', 'assign'); - if (empty($config->submissionstatement)) { - $mform->addElement('hidden', 'requiresubmissionstatement', 0); - } else if (empty($config->requiresubmissionstatement)) { - $name = get_string('requiresubmissionstatement', 'assign'); - $mform->addElement('selectyesno', 'requiresubmissionstatement', $name); - $mform->addHelpButton('requiresubmissionstatement', - 'requiresubmissionstatementassignment', - 'assign'); - } else { - $mform->addElement('hidden', 'requiresubmissionstatement', 1); - } + $name = get_string('requiresubmissionstatement', 'assign'); + $mform->addElement('selectyesno', 'requiresubmissionstatement', $name); + $mform->addHelpButton('requiresubmissionstatement', + 'requiresubmissionstatement', + 'assign'); $mform->setType('requiresubmissionstatement', PARAM_BOOL); $options = array( diff --git a/mod/assign/settings.php b/mod/assign/settings.php index 6cdc9f17429..f05c91e4421 100644 --- a/mod/assign/settings.php +++ b/mod/assign/settings.php @@ -79,13 +79,6 @@ if ($ADMIN->fulltree) { $description, $default)); - $name = new lang_string('requiresubmissionstatement', 'mod_assign'); - $description = new lang_string('requiresubmissionstatement_help', 'mod_assign'); - $settings->add(new admin_setting_configcheckbox('assign/requiresubmissionstatement', - $name, - $description, - 0)); - $name = new lang_string('defaultsettings', 'mod_assign'); $description = new lang_string('defaultsettings_help', 'mod_assign'); $settings->add(new admin_setting_heading('defaultsettings', $name, $description)); @@ -108,7 +101,6 @@ if ($ADMIN->fulltree) { 0); $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true); $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false); - $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); $settings->add($setting); $name = new lang_string('duedate', 'mod_assign'); @@ -119,7 +111,6 @@ if ($ADMIN->fulltree) { 604800); $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true); $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false); - $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); $settings->add($setting); $name = new lang_string('cutoffdate', 'mod_assign'); @@ -130,7 +121,6 @@ if ($ADMIN->fulltree) { 1209600); $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, false); $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false); - $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); $settings->add($setting); $name = new lang_string('submissiondrafts', 'mod_assign'); @@ -143,6 +133,16 @@ if ($ADMIN->fulltree) { $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); $settings->add($setting); + $name = new lang_string('requiresubmissionstatement', 'mod_assign'); + $description = new lang_string('requiresubmissionstatement_help', 'mod_assign'); + $setting = new admin_setting_configcheckbox('assign/requiresubmissionstatement', + $name, + $description, + 0); + $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false); + $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); + $settings->add($setting); + // Constants from locallib.php $options = array( 'none' => get_string('attemptreopenmethod_none', 'mod_assign'), From c7cd8d9c8443515b7532a311714b6fa1a939e187 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Wed, 12 Jun 2013 13:45:48 +0800 Subject: [PATCH 2/2] MDL-37621 assign: Improvements to default settings. Added a new adminsetting_configempty type so that module settings which can have no sensible defaults can still be configured as advanced. --- lib/adminlib.php | 40 ++++++++++++++++++++++++++++++++++++++++ mod/assign/settings.php | 8 ++++++++ 2 files changed, 48 insertions(+) diff --git a/lib/adminlib.php b/lib/adminlib.php index 1591f4bbe4f..f9146878bd5 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2285,6 +2285,46 @@ if (is_ie) { } } +/** + * Empty setting used to allow flags (advanced) on settings that can have no sensible default. + * Note: Only advanced makes sense right now - locked does not. + * + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class admin_setting_configempty extends admin_setting_configtext { + + /** + * @param string $name + * @param string $visiblename + * @param string $description + */ + public function __construct($name, $visiblename, $description) { + parent::__construct($name, $visiblename, $description, '', PARAM_RAW); + } + + /** + * Returns an XHTML string for the hidden field + * + * @param string $data + * @param string $query + * @return string XHTML string for the editor + */ + public function output_html($data, $query='') { + return format_admin_setting($this, + $this->visiblename, + '
' . + '
', + $this->description, + true, + '', + get_string('none'), + $query); + } +} + /** * Path to directory diff --git a/mod/assign/settings.php b/mod/assign/settings.php index f05c91e4421..135fc900fcd 100644 --- a/mod/assign/settings.php +++ b/mod/assign/settings.php @@ -194,6 +194,14 @@ if ($ADMIN->fulltree) { $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false); $settings->add($setting); + $name = new lang_string('teamsubmissiongroupingid', 'mod_assign'); + $description = new lang_string('teamsubmissiongroupingid_help', 'mod_assign'); + $setting = new admin_setting_configempty('assign/teamsubmissiongroupingid', + $name, + $description); + $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false); + $settings->add($setting); + $name = new lang_string('sendnotifications', 'mod_assign'); $description = new lang_string('sendnotifications_help', 'mod_assign'); $setting = new admin_setting_configcheckbox('assign/sendnotifications',