Proyectos de Subversion Moodle

Rev

Rev 1 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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.
13
//
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/>.
16
 
17
/**
18
 * This file adds the settings pages to the navigation menu
19
 *
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
23
 */
24
 
25
defined('MOODLE_INTERNAL') || die;
26
 
1441 ariadna 27
global $CFG;
1 efrain 28
require_once($CFG->dirroot . '/mod/assign/adminlib.php');
1441 ariadna 29
require_once($CFG->dirroot . '/grade/lib.php');
1 efrain 30
 
31
$ADMIN->add('modsettings', new admin_category('modassignfolder', new lang_string('pluginname', 'mod_assign'), $module->is_enabled() === false));
32
 
33
$settings = new admin_settingpage($section, get_string('settings', 'mod_assign'), 'moodle/site:config', $module->is_enabled() === false);
34
 
35
if ($ADMIN->fulltree) {
1441 ariadna 36
    require_once($CFG->dirroot . '/mod/assign/locallib.php');
37
 
1 efrain 38
    $menu = array();
39
    foreach (core_component::get_plugin_list('assignfeedback') as $type => $notused) {
40
        $visible = !get_config('assignfeedback_' . $type, 'disabled');
41
        if ($visible) {
42
            $menu['assignfeedback_' . $type] = new lang_string('pluginname', 'assignfeedback_' . $type);
43
        }
44
    }
45
 
46
    // The default here is feedback_comments (if it exists).
47
    $name = new lang_string('feedbackplugin', 'mod_assign');
48
    $description = new lang_string('feedbackpluginforgradebook', 'mod_assign');
49
    $settings->add(new admin_setting_configselect('assign/feedback_plugin_for_gradebook',
50
                                                  $name,
51
                                                  $description,
52
                                                  'assignfeedback_comments',
53
                                                  $menu));
54
 
55
    $name = new lang_string('showrecentsubmissions', 'mod_assign');
56
    $description = new lang_string('configshowrecentsubmissions', 'mod_assign');
57
    $settings->add(new admin_setting_configcheckbox('assign/showrecentsubmissions',
58
                                                    $name,
59
                                                    $description,
60
                                                    0));
61
 
62
    $name = new lang_string('sendsubmissionreceipts', 'mod_assign');
63
    $description = new lang_string('sendsubmissionreceipts_help', 'mod_assign');
64
    $settings->add(new admin_setting_configcheckbox('assign/submissionreceipts',
65
                                                    $name,
66
                                                    $description,
67
                                                    1));
68
 
69
    $name = new lang_string('submissionstatement', 'mod_assign');
70
    $description = new lang_string('submissionstatement_help', 'mod_assign');
71
    $default = get_string('submissionstatementdefault', 'mod_assign');
72
    $setting = new admin_setting_configtextarea('assign/submissionstatement',
73
                                                    $name,
74
                                                    $description,
75
                                                    $default);
76
    $setting->set_force_ltr(false);
77
    $settings->add($setting);
78
 
79
    $name = new lang_string('submissionstatementteamsubmission', 'mod_assign');
80
    $description = new lang_string('submissionstatement_help', 'mod_assign');
81
    $default = get_string('submissionstatementteamsubmissiondefault', 'mod_assign');
82
    $setting = new admin_setting_configtextarea('assign/submissionstatementteamsubmission',
83
        $name,
84
        $description,
85
        $default);
86
    $setting->set_force_ltr(false);
87
    $settings->add($setting);
88
 
89
    $name = new lang_string('submissionstatementteamsubmissionallsubmit', 'mod_assign');
90
    $description = new lang_string('submissionstatement_help', 'mod_assign');
91
    $default = get_string('submissionstatementteamsubmissionallsubmitdefault', 'mod_assign');
92
    $setting = new admin_setting_configtextarea('assign/submissionstatementteamsubmissionallsubmit',
93
        $name,
94
        $description,
95
        $default);
96
    $setting->set_force_ltr(false);
97
    $settings->add($setting);
98
 
99
    $name = new lang_string('maxperpage', 'mod_assign');
100
    $options = array(
101
        -1 => get_string('unlimitedpages', 'mod_assign'),
102
        10 => 10,
103
        20 => 20,
104
        50 => 50,
105
        100 => 100,
106
    );
107
    $description = new lang_string('maxperpage_help', 'mod_assign');
108
    $settings->add(new admin_setting_configselect('assign/maxperpage',
109
                                                    $name,
110
                                                    $description,
111
                                                    -1,
112
                                                    $options));
113
 
114
    $name = new lang_string('defaultsettings', 'mod_assign');
115
    $description = new lang_string('defaultsettings_help', 'mod_assign');
116
    $settings->add(new admin_setting_heading('defaultsettings', $name, $description));
117
 
118
    $name = new lang_string('alwaysshowdescription', 'mod_assign');
119
    $description = new lang_string('alwaysshowdescription_help', 'mod_assign');
120
    $setting = new admin_setting_configcheckbox('assign/alwaysshowdescription',
121
                                                    $name,
122
                                                    $description,
123
                                                    1);
124
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
125
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
126
    $settings->add($setting);
127
 
128
    $name = new lang_string('allowsubmissionsfromdate', 'mod_assign');
129
    $description = new lang_string('allowsubmissionsfromdate_help', 'mod_assign');
130
    $setting = new admin_setting_configduration('assign/allowsubmissionsfromdate',
131
                                                    $name,
132
                                                    $description,
133
                                                    0);
134
    $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true);
135
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
136
    $settings->add($setting);
137
 
138
    $name = new lang_string('duedate', 'mod_assign');
139
    $description = new lang_string('duedate_help', 'mod_assign');
140
    $setting = new admin_setting_configduration('assign/duedate',
141
                                                    $name,
142
                                                    $description,
143
                                                    604800);
144
    $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true);
145
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
146
    $settings->add($setting);
147
 
148
    $name = new lang_string('cutoffdate', 'mod_assign');
149
    $description = new lang_string('cutoffdate_help', 'mod_assign');
150
    $setting = new admin_setting_configduration('assign/cutoffdate',
151
                                                    $name,
152
                                                    $description,
153
                                                    1209600);
154
    $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, false);
155
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
156
    $settings->add($setting);
157
 
158
    $name = new lang_string('enabletimelimit', 'mod_assign');
159
    $description = new lang_string('enabletimelimit_help', 'mod_assign');
160
    $setting = new admin_setting_configcheckbox(
161
        'assign/enabletimelimit',
162
        $name,
163
        $description,
164
 
165
    );
166
    $settings->add($setting);
167
 
1441 ariadna 168
    $name = new lang_string('defaultgradetype', 'mod_assign');
169
    $description = new lang_string('defaultgradetype_help', 'mod_assign');
170
    $setting = new admin_setting_configselect('mod_assign/defaultgradetype',
171
                                                    $name,
172
                                                    $description,
173
                                                    GRADE_TYPE_VALUE, [
174
                                                        GRADE_TYPE_NONE => new lang_string('modgradetypenone', 'grades'),
175
                                                        GRADE_TYPE_SCALE => new lang_string('modgradetypescale', 'grades'),
176
                                                        GRADE_TYPE_VALUE => new lang_string('modgradetypepoint', 'grades'),
177
                                                    ]);
178
    $settings->add($setting);
179
 
180
    /** @var grade_scale[] $scales */
181
    $scales = grade_scale::fetch_all_global();
182
    $choices = ['' => new lang_string('choosedots')];
183
    foreach ($scales as $scale) {
184
        $choices[$scale->id] = $scale->get_name();
185
    }
186
    $name = new lang_string('defaultgradescale', 'mod_assign');
187
    $description = new lang_string('defaultgradescale_help', 'mod_assign');
188
    if (count($choices) > 1) {
189
        $setting = new admin_setting_configselect('mod_assign/defaultgradescale',
190
            $name,
191
            $description,
192
            '', $choices);
193
    } else {
194
        $setting = new admin_setting_configempty('mod_assign/defaultgradescale',
195
            $name,
196
            $description
197
        );
198
    }
199
    $settings->add($setting);
200
 
1 efrain 201
    $name = new lang_string('gradingduedate', 'mod_assign');
202
    $description = new lang_string('gradingduedate_help', 'mod_assign');
203
    $setting = new admin_setting_configduration('assign/gradingduedate',
204
                                                    $name,
205
                                                    $description,
206
                                                    1209600);
207
    $setting->set_enabled_flag_options(admin_setting_flag::ENABLED, true);
208
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
209
    $settings->add($setting);
210
 
211
    $name = new lang_string('submissiondrafts', 'mod_assign');
212
    $description = new lang_string('submissiondrafts_help', 'mod_assign');
213
    $setting = new admin_setting_configcheckbox('assign/submissiondrafts',
214
                                                    $name,
215
                                                    $description,
216
                                                    0);
217
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
218
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
219
    $settings->add($setting);
220
 
221
    $name = new lang_string('requiresubmissionstatement', 'mod_assign');
222
    $description = new lang_string('requiresubmissionstatement_help', 'mod_assign');
223
    $setting = new admin_setting_configcheckbox('assign/requiresubmissionstatement',
224
                                                    $name,
225
                                                    $description,
226
                                                    0);
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);
230
 
1441 ariadna 231
    $options = [ASSIGN_UNLIMITED_ATTEMPTS => new lang_string('unlimitedattempts', 'mod_assign')];
232
    $options += array_combine(range(1, 30), range(1, 30));
233
    $name = new lang_string('maxattempts', 'mod_assign');
234
    $description = new lang_string('maxattempts_help', 'mod_assign');
235
    $setting = new admin_setting_configselect('assign/maxattempts', $name, $description, 1, $options);
1 efrain 236
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
237
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
238
    $settings->add($setting);
239
 
1441 ariadna 240
    $options = [
241
        ASSIGN_ATTEMPT_REOPEN_METHOD_MANUAL => new lang_string('attemptreopenmethod_manual', 'mod_assign'),
242
        ASSIGN_ATTEMPT_REOPEN_METHOD_AUTOMATIC => new lang_string('attemptreopenmethod_automatic', 'mod_assign'),
243
        ASSIGN_ATTEMPT_REOPEN_METHOD_UNTILPASS => new lang_string('attemptreopenmethod_untilpass', 'mod_assign'),
244
    ];
245
    $name = new lang_string('attemptreopenmethod', 'mod_assign');
246
    $description = new lang_string('attemptreopenmethod_help', 'mod_assign');
247
    $setting = new admin_setting_configselect('assign/attemptreopenmethod', $name, $description, 'untilpass', $options);
1 efrain 248
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
249
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
250
    $settings->add($setting);
251
 
252
    $name = new lang_string('teamsubmission', 'mod_assign');
253
    $description = new lang_string('teamsubmission_help', 'mod_assign');
254
    $setting = new admin_setting_configcheckbox('assign/teamsubmission',
255
                                                    $name,
256
                                                    $description,
257
                                                    0);
258
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
259
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
260
    $settings->add($setting);
261
 
262
    $name = new lang_string('preventsubmissionnotingroup', 'mod_assign');
263
    $description = new lang_string('preventsubmissionnotingroup_help', 'mod_assign');
264
    $setting = new admin_setting_configcheckbox('assign/preventsubmissionnotingroup',
265
        $name,
266
        $description,
267
        0);
268
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
269
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
270
    $settings->add($setting);
271
 
272
    $name = new lang_string('requireallteammemberssubmit', 'mod_assign');
273
    $description = new lang_string('requireallteammemberssubmit_help', 'mod_assign');
274
    $setting = new admin_setting_configcheckbox('assign/requireallteammemberssubmit',
275
                                                    $name,
276
                                                    $description,
277
                                                    0);
278
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
279
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
280
    $settings->add($setting);
281
 
282
    $name = new lang_string('teamsubmissiongroupingid', 'mod_assign');
283
    $description = new lang_string('teamsubmissiongroupingid_help', 'mod_assign');
284
    $setting = new admin_setting_configempty('assign/teamsubmissiongroupingid',
285
                                                    $name,
286
                                                    $description);
287
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
288
    $settings->add($setting);
289
 
290
    $name = new lang_string('sendnotifications', 'mod_assign');
291
    $description = new lang_string('sendnotifications_help', 'mod_assign');
292
    $setting = new admin_setting_configcheckbox('assign/sendnotifications',
293
                                                    $name,
294
                                                    $description,
295
                                                    0);
296
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
297
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
298
    $settings->add($setting);
299
 
300
    $name = new lang_string('sendlatenotifications', 'mod_assign');
301
    $description = new lang_string('sendlatenotifications_help', 'mod_assign');
302
    $setting = new admin_setting_configcheckbox('assign/sendlatenotifications',
303
                                                    $name,
304
                                                    $description,
305
                                                    0);
306
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
307
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
308
    $settings->add($setting);
309
 
310
    $name = new lang_string('sendstudentnotificationsdefault', 'mod_assign');
311
    $description = new lang_string('sendstudentnotificationsdefault_help', 'mod_assign');
312
    $setting = new admin_setting_configcheckbox('assign/sendstudentnotifications',
313
                                                    $name,
314
                                                    $description,
315
                                                    1);
316
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
317
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
318
    $settings->add($setting);
319
 
320
    $name = new lang_string('blindmarking', 'mod_assign');
321
    $description = new lang_string('blindmarking_help', 'mod_assign');
322
    $setting = new admin_setting_configcheckbox('assign/blindmarking',
323
                                                    $name,
324
                                                    $description,
325
                                                    0);
326
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
327
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
328
    $settings->add($setting);
329
 
330
    $name = new lang_string('hidegrader', 'mod_assign');
331
    $description = new lang_string('hidegrader_help', 'mod_assign');
332
    $setting = new admin_setting_configcheckbox('assign/hidegrader',
333
                                                    $name,
334
                                                    $description,
335
                                                    0);
336
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
337
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
338
    $settings->add($setting);
339
 
340
    $name = new lang_string('markingworkflow', 'mod_assign');
341
    $description = new lang_string('markingworkflow_help', 'mod_assign');
342
    $setting = new admin_setting_configcheckbox('assign/markingworkflow',
343
                                                    $name,
344
                                                    $description,
345
                                                    0);
346
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
347
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
348
    $settings->add($setting);
349
 
350
    $name = new lang_string('markingallocation', 'mod_assign');
351
    $description = new lang_string('markingallocation_help', 'mod_assign');
352
    $setting = new admin_setting_configcheckbox('assign/markingallocation',
353
                                                    $name,
354
                                                    $description,
355
                                                    0);
356
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
357
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
358
    $settings->add($setting);
359
 
360
    $name = new lang_string('markinganonymous', 'mod_assign');
361
    $description = new lang_string('markinganonymous_help', 'mod_assign');
362
    $setting = new admin_setting_configcheckbox('assign/markinganonymous',
363
                                                    $name,
364
                                                    $description,
365
                                                    0);
366
    $setting->set_advanced_flag_options(admin_setting_flag::ENABLED, false);
367
    $setting->set_locked_flag_options(admin_setting_flag::ENABLED, false);
368
    $settings->add($setting);
369
}
370
 
371
$ADMIN->add('modassignfolder', $settings);
372
// Tell core we already added the settings structure.
373
$settings = null;
374
 
375
$ADMIN->add('modassignfolder', new admin_category('assignsubmissionplugins',
376
    new lang_string('submissionplugins', 'assign'), !$module->is_enabled()));
377
$ADMIN->add('assignsubmissionplugins', new assign_admin_page_manage_assign_plugins('assignsubmission'));
378
$ADMIN->add('modassignfolder', new admin_category('assignfeedbackplugins',
379
    new lang_string('feedbackplugins', 'assign'), !$module->is_enabled()));
380
$ADMIN->add('assignfeedbackplugins', new assign_admin_page_manage_assign_plugins('assignfeedback'));
381
 
382
foreach (core_plugin_manager::instance()->get_plugins_of_type('assignsubmission') as $plugin) {
383
    /** @var \mod_assign\plugininfo\assignsubmission $plugin */
384
    $plugin->load_settings($ADMIN, 'assignsubmissionplugins', $hassiteconfig);
385
}
386
 
387
foreach (core_plugin_manager::instance()->get_plugins_of_type('assignfeedback') as $plugin) {
388
    /** @var \mod_assign\plugininfo\assignfeedback $plugin */
389
    $plugin->load_settings($ADMIN, 'assignfeedbackplugins', $hassiteconfig);
390
}