Merge branch 'MDL-53170_master' of git://github.com/dmonllao/moodle
[moodle.git] / mod / assign / settings.php
blob5d7d3ce72d30e3e20d783c00981764ea6376cc81
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
17 /**
18 * This file adds the settings pages to the navigation menu
20 * @package mod_assign
21 * @copyright 2012 NetSpot {@link http://www.netspot.com.au}
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 defined('MOODLE_INTERNAL') || die;
27 require_once($CFG->dirroot . '/mod/assign/adminlib.php');
29 $ADMIN->add('modsettings', new admin_category('modassignfolder', new lang_string('pluginname', 'mod_assign'), $module->is_enabled() === false));
31 $settings = new admin_settingpage($section, get_string('settings', 'mod_assign'), 'moodle/site:config', $module->is_enabled() === false);
33 if ($ADMIN->fulltree) {
34 $menu = array();
35 foreach (core_component::get_plugin_list('assignfeedback') as $type => $notused) {
36 $visible = !get_config('assignfeedback_' . $type, 'disabled');
37 if ($visible) {
38 $menu['assignfeedback_' . $type] = new lang_string('pluginname', 'assignfeedback_' . $type);
42 // The default here is feedback_comments (if it exists).
43 $name = new lang_string('feedbackplugin', 'mod_assign');
44 $description = new lang_string('feedbackpluginforgradebook', 'mod_assign');
45 $settings->add(new admin_setting_configselect('assign/feedback_plugin_for_gradebook',
46 $name,
47 $description,
48 'assignfeedback_comments',
49 $menu));
51 $name = new lang_string('showrecentsubmissions', 'mod_assign');
52 $description = new lang_string('configshowrecentsubmissions', 'mod_assign');
53 $settings->add(new admin_setting_configcheckbox('assign/showrecentsubmissions',
54 $name,
55 $description,
56 0));
58 $name = new lang_string('sendsubmissionreceipts', 'mod_assign');
59 $description = new lang_string('sendsubmissionreceipts_help', 'mod_assign');
60 $settings->add(new admin_setting_configcheckbox('assign/submissionreceipts',
61 $name,
62 $description,
63 1));
65 $name = new lang_string('submissionstatement', 'mod_assign');
66 $description = new lang_string('submissionstatement_help', 'mod_assign');
67 $default = get_string('submissionstatementdefault', 'mod_assign');
68 $settings->add(new admin_setting_configtextarea('assign/submissionstatement',
69 $name,
70 $description,
71 $default));
73 $name = new lang_string('maxperpage', 'mod_assign');
74 $options = array(
75 -1 => get_string('unlimitedpages', 'mod_assign'),
76 10 => 10,
77 20 => 20,
78 50 => 50,
79 100 => 100,
81 $description = new lang_string('maxperpage_help', 'mod_assign');
82 $settings->add(new admin_setting_configselect('assign/maxperpage',
83 $name,
84 $description,
85 -1,
86 $options));
88 $name = new lang_string('defaultsettings', 'mod_assign');
89 $description = new lang_string('defaultsettings_help', 'mod_assign');
90 $settings->add(new admin_setting_heading('defaultsettings', $name, $description));
92 $name = new lang_string('alwaysshowdescription', 'mod_assign');
93 $description = new lang_string('alwaysshowdescription_help', 'mod_assign');
94 $setting = new admin_setting_configcheckbox('assign/alwaysshowdescription',
95 $name,
96 $description,
97 1);
98 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
99 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
100 $settings->add($setting);
102 $name = new lang_string('allowsubmissionsfromdate', 'mod_assign');
103 $description = new lang_string('allowsubmissionsfromdate_help', 'mod_assign');
104 $setting = new admin_setting_configduration('assign/allowsubmissionsfromdate',
105 $name,
106 $description,
108 $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true);
109 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
110 $settings->add($setting);
112 $name = new lang_string('duedate', 'mod_assign');
113 $description = new lang_string('duedate_help', 'mod_assign');
114 $setting = new admin_setting_configduration('assign/duedate',
115 $name,
116 $description,
117 604800);
118 $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true);
119 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
120 $settings->add($setting);
122 $name = new lang_string('cutoffdate', 'mod_assign');
123 $description = new lang_string('cutoffdate_help', 'mod_assign');
124 $setting = new admin_setting_configduration('assign/cutoffdate',
125 $name,
126 $description,
127 1209600);
128 $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, false);
129 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
130 $settings->add($setting);
132 $name = new lang_string('submissiondrafts', 'mod_assign');
133 $description = new lang_string('submissiondrafts_help', 'mod_assign');
134 $setting = new admin_setting_configcheckbox('assign/submissiondrafts',
135 $name,
136 $description,
138 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
139 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
140 $settings->add($setting);
142 $name = new lang_string('requiresubmissionstatement', 'mod_assign');
143 $description = new lang_string('requiresubmissionstatement_help', 'mod_assign');
144 $setting = new admin_setting_configcheckbox('assign/requiresubmissionstatement',
145 $name,
146 $description,
148 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
149 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
150 $settings->add($setting);
152 // Constants from "locallib.php".
153 $options = array(
154 'none' => get_string('attemptreopenmethod_none', 'mod_assign'),
155 'manual' => get_string('attemptreopenmethod_manual', 'mod_assign'),
156 'untilpass' => get_string('attemptreopenmethod_untilpass', 'mod_assign')
158 $name = new lang_string('attemptreopenmethod', 'mod_assign');
159 $description = new lang_string('attemptreopenmethod_help', 'mod_assign');
160 $setting = new admin_setting_configselect('assign/attemptreopenmethod',
161 $name,
162 $description,
163 'none',
164 $options);
165 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
166 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
167 $settings->add($setting);
169 // Constants from "locallib.php".
170 $options = array(-1 => get_string('unlimitedattempts', 'mod_assign'));
171 $options += array_combine(range(1, 30), range(1, 30));
172 $name = new lang_string('maxattempts', 'mod_assign');
173 $description = new lang_string('maxattempts_help', 'mod_assign');
174 $setting = new admin_setting_configselect('assign/maxattempts',
175 $name,
176 $description,
178 $options);
179 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
180 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
181 $settings->add($setting);
183 $name = new lang_string('teamsubmission', 'mod_assign');
184 $description = new lang_string('teamsubmission_help', 'mod_assign');
185 $setting = new admin_setting_configcheckbox('assign/teamsubmission',
186 $name,
187 $description,
189 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
190 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
191 $settings->add($setting);
193 $name = new lang_string('preventsubmissionnotingroup', 'mod_assign');
194 $description = new lang_string('preventsubmissionnotingroup_help', 'mod_assign');
195 $setting = new admin_setting_configcheckbox('assign/preventsubmissionnotingroup',
196 $name,
197 $description,
199 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
200 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
201 $settings->add($setting);
203 $name = new lang_string('requireallteammemberssubmit', 'mod_assign');
204 $description = new lang_string('requireallteammemberssubmit_help', 'mod_assign');
205 $setting = new admin_setting_configcheckbox('assign/requireallteammemberssubmit',
206 $name,
207 $description,
209 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
210 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
211 $settings->add($setting);
213 $name = new lang_string('teamsubmissiongroupingid', 'mod_assign');
214 $description = new lang_string('teamsubmissiongroupingid_help', 'mod_assign');
215 $setting = new admin_setting_configempty('assign/teamsubmissiongroupingid',
216 $name,
217 $description);
218 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
219 $settings->add($setting);
221 $name = new lang_string('sendnotifications', 'mod_assign');
222 $description = new lang_string('sendnotifications_help', 'mod_assign');
223 $setting = new admin_setting_configcheckbox('assign/sendnotifications',
224 $name,
225 $description,
227 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
228 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
229 $settings->add($setting);
231 $name = new lang_string('sendlatenotifications', 'mod_assign');
232 $description = new lang_string('sendlatenotifications_help', 'mod_assign');
233 $setting = new admin_setting_configcheckbox('assign/sendlatenotifications',
234 $name,
235 $description,
237 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
238 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
239 $settings->add($setting);
241 $name = new lang_string('sendstudentnotificationsdefault', 'mod_assign');
242 $description = new lang_string('sendstudentnotificationsdefault_help', 'mod_assign');
243 $setting = new admin_setting_configcheckbox('assign/sendstudentnotifications',
244 $name,
245 $description,
247 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
248 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
249 $settings->add($setting);
251 $name = new lang_string('blindmarking', 'mod_assign');
252 $description = new lang_string('blindmarking_help', 'mod_assign');
253 $setting = new admin_setting_configcheckbox('assign/blindmarking',
254 $name,
255 $description,
257 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
258 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
259 $settings->add($setting);
261 $name = new lang_string('markingworkflow', 'mod_assign');
262 $description = new lang_string('markingworkflow_help', 'mod_assign');
263 $setting = new admin_setting_configcheckbox('assign/markingworkflow',
264 $name,
265 $description,
267 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
268 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
269 $settings->add($setting);
271 $name = new lang_string('markingallocation', 'mod_assign');
272 $description = new lang_string('markingallocation_help', 'mod_assign');
273 $setting = new admin_setting_configcheckbox('assign/markingallocation',
274 $name,
275 $description,
277 $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
278 $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
279 $settings->add($setting);
282 $ADMIN->add('modassignfolder', $settings);
283 // Tell core we already added the settings structure.
284 $settings = null;
286 $ADMIN->add('modassignfolder', new admin_category('assignsubmissionplugins',
287 new lang_string('submissionplugins', 'assign'), !$module->is_enabled()));
288 $ADMIN->add('assignsubmissionplugins', new assign_admin_page_manage_assign_plugins('assignsubmission'));
289 $ADMIN->add('modassignfolder', new admin_category('assignfeedbackplugins',
290 new lang_string('feedbackplugins', 'assign'), !$module->is_enabled()));
291 $ADMIN->add('assignfeedbackplugins', new assign_admin_page_manage_assign_plugins('assignfeedback'));
293 foreach (core_plugin_manager::instance()->get_plugins_of_type('assignsubmission') as $plugin) {
294 /** @var \mod_assign\plugininfo\assignsubmission $plugin */
295 $plugin->load_settings($ADMIN, 'assignsubmissionplugins', $hassiteconfig);
298 foreach (core_plugin_manager::instance()->get_plugins_of_type('assignfeedback') as $plugin) {
299 /** @var \mod_assign\plugininfo\assignfeedback $plugin */
300 $plugin->load_settings($ADMIN, 'assignfeedbackplugins', $hassiteconfig);