Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
// This file defines settingpages and externalpages under the "grades" section
4
 
5
if (has_capability('moodle/grade:manage', $systemcontext)
6
 or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
7
 
8
    require_once $CFG->libdir.'/grade/constants.php';
9
    $display_types = array(GRADE_DISPLAY_TYPE_REAL => new lang_string('real', 'grades'),
10
                           GRADE_DISPLAY_TYPE_PERCENTAGE => new lang_string('percentage', 'grades'),
11
                           GRADE_DISPLAY_TYPE_LETTER => new lang_string('letter', 'grades'),
12
                           GRADE_DISPLAY_TYPE_REAL_PERCENTAGE => new lang_string('realpercentage', 'grades'),
13
                           GRADE_DISPLAY_TYPE_REAL_LETTER => new lang_string('realletter', 'grades'),
14
                           GRADE_DISPLAY_TYPE_LETTER_REAL => new lang_string('letterreal', 'grades'),
15
                           GRADE_DISPLAY_TYPE_LETTER_PERCENTAGE => new lang_string('letterpercentage', 'grades'),
16
                           GRADE_DISPLAY_TYPE_PERCENTAGE_LETTER => new lang_string('percentageletter', 'grades'),
17
                           GRADE_DISPLAY_TYPE_PERCENTAGE_REAL => new lang_string('percentagereal', 'grades')
18
                           );
19
    asort($display_types);
20
 
21
    // General settings
22
 
23
    $temp = new admin_settingpage('gradessettings', new lang_string('generalsettings', 'grades'), 'moodle/grade:manage');
24
    if ($ADMIN->fulltree) {
25
 
26
        // new CFG variable for gradebook (what roles to display)
27
        $temp->add(new admin_setting_special_gradebookroles());
28
 
29
        // enable outcomes checkbox now in subsystems area
30
 
31
        $temp->add(new admin_setting_grade_profilereport());
32
 
33
        $temp->add(new admin_setting_configselect('grade_aggregationposition', new lang_string('aggregationposition', 'grades'),
34
                                                  new lang_string('aggregationposition_help', 'grades'), GRADE_REPORT_AGGREGATION_POSITION_LAST,
35
                                                  array(GRADE_REPORT_AGGREGATION_POSITION_FIRST => new lang_string('positionfirst', 'grades'),
36
                                                        GRADE_REPORT_AGGREGATION_POSITION_LAST => new lang_string('positionlast', 'grades'))));
37
 
38
        $temp->add(new admin_setting_regradingcheckbox('grade_includescalesinaggregation', new lang_string('includescalesinaggregation', 'grades'), new lang_string('includescalesinaggregation_help', 'grades'), 1));
39
 
40
        $temp->add(new admin_setting_configcheckbox('grade_hiddenasdate', new lang_string('hiddenasdate', 'grades'), new lang_string('hiddenasdate_help', 'grades'), 0));
41
 
42
        // enable publishing in exports/imports
43
        $temp->add(new admin_setting_configcheckbox('gradepublishing', new lang_string('gradepublishing', 'grades'), new lang_string('gradepublishing_help', 'grades'), 0));
44
 
45
        $temp->add(new admin_setting_configcheckbox('grade_export_exportfeedback', new lang_string('exportfeedback', 'grades'),
46
                                                  new lang_string('exportfeedback_desc', 'grades'), 0));
47
 
48
        $temp->add(new admin_setting_configselect('grade_export_displaytype', new lang_string('gradeexportdisplaytype', 'grades'),
49
                                                  new lang_string('gradeexportdisplaytype_desc', 'grades'), GRADE_DISPLAY_TYPE_REAL, $display_types));
50
 
51
        $temp->add(new admin_setting_configselect('grade_export_decimalpoints', new lang_string('gradeexportdecimalpoints', 'grades'),
52
                                                  new lang_string('gradeexportdecimalpoints_desc', 'grades'), 2,
53
                                                  array( '0' => '0',
54
                                                         '1' => '1',
55
                                                         '2' => '2',
56
                                                         '3' => '3',
57
                                                         '4' => '4',
58
                                                         '5' => '5')));
59
 
60
        $setting = new admin_setting_configtext('grade_export_userprofilefields',
61
            new lang_string('gradeexportuserprofilefields', 'grades'),
62
            new lang_string('gradeexportuserprofilefields_desc', 'grades'),
63
            'firstname,lastname,idnumber,institution,department,email', PARAM_TEXT);
64
        $setting->set_force_ltr(true);
65
        $temp->add($setting);
66
 
67
        $setting = new admin_setting_configtext('grade_export_customprofilefields',
68
            new lang_string('gradeexportcustomprofilefields', 'grades'),
69
            new lang_string('gradeexportcustomprofilefields_desc', 'grades'), '', PARAM_TEXT);
70
        $setting->set_force_ltr(true);
71
        $temp->add($setting);
72
 
73
        $temp->add(new admin_setting_configcheckbox('recovergradesdefault', new lang_string('recovergradesdefault', 'grades'), new lang_string('recovergradesdefault_help', 'grades'), 0));
74
 
75
        $temp->add(new admin_setting_special_gradeexport());
76
 
77
        $temp->add(new admin_setting_special_gradeexportdefault());
78
 
79
        $temp->add(new admin_setting_special_gradelimiting());
80
 
81
        $temp->add(new admin_setting_configcheckbox('grade_report_showmin',
82
                                                    get_string('minimum_show', 'grades'),
83
                                                    get_string('minimum_show_help', 'grades'), '1'));
84
 
85
        $temp->add(new admin_setting_special_gradepointmax());
86
 
87
        $temp->add(new admin_setting_special_gradepointdefault());
88
 
89
        $temp->add(new admin_setting_special_grademinmaxtouse());
90
 
91
        $temp->add(new admin_setting_my_grades_report());
92
 
93
        $temp->add(new admin_setting_configtext('gradereport_mygradeurl', new lang_string('externalurl', 'grades'),
94
                new lang_string('externalurl_desc', 'grades'), ''));
95
    }
96
    $ADMIN->add('grades', $temp);
97
 
98
    /// Grade category settings
99
    $temp = new admin_settingpage('gradecategorysettings', new lang_string('gradecategorysettings', 'grades'), 'moodle/grade:manage');
100
    if ($ADMIN->fulltree) {
101
        $temp->add(new admin_setting_configcheckbox('grade_hideforcedsettings', new lang_string('hideforcedsettings', 'grades'), new lang_string('hideforcedsettings_help', 'grades'), '1'));
102
 
103
        $strnoforce = new lang_string('noforce', 'grades');
104
 
105
        // Aggregation type
106
        $options = array(GRADE_AGGREGATE_MEAN            =>new lang_string('aggregatemean', 'grades'),
107
                         GRADE_AGGREGATE_WEIGHTED_MEAN   =>new lang_string('aggregateweightedmean', 'grades'),
108
                         GRADE_AGGREGATE_WEIGHTED_MEAN2  =>new lang_string('aggregateweightedmean2', 'grades'),
109
                         GRADE_AGGREGATE_EXTRACREDIT_MEAN=>new lang_string('aggregateextracreditmean', 'grades'),
110
                         GRADE_AGGREGATE_MEDIAN          =>new lang_string('aggregatemedian', 'grades'),
111
                         GRADE_AGGREGATE_MIN             =>new lang_string('aggregatemin', 'grades'),
112
                         GRADE_AGGREGATE_MAX             =>new lang_string('aggregatemax', 'grades'),
113
                         GRADE_AGGREGATE_MODE            =>new lang_string('aggregatemode', 'grades'),
114
                         GRADE_AGGREGATE_SUM             =>new lang_string('aggregatesum', 'grades'));
115
 
116
        $defaultvisible = array(GRADE_AGGREGATE_SUM);
117
 
118
        $defaults = array('value' => GRADE_AGGREGATE_SUM, 'forced' => false);
119
        $temp->add(new admin_setting_gradecat_combo('grade_aggregation', new lang_string('aggregation', 'grades'), new lang_string('aggregation_help', 'grades'), $defaults, $options));
120
 
121
        $temp->add(new admin_setting_configmultiselect('grade_aggregations_visible', new lang_string('aggregationsvisible', 'grades'),
122
                                                       new lang_string('aggregationsvisiblehelp', 'grades'), $defaultvisible, $options));
123
 
124
        $options = array(0 => new lang_string('no'), 1 => new lang_string('yes'));
125
 
126
        $defaults = array('value' => 1, 'forced' => false);
127
        $temp->add(new admin_setting_gradecat_combo('grade_aggregateonlygraded', new lang_string('aggregateonlygraded', 'grades'),
128
                    new lang_string('aggregateonlygraded_help', 'grades'), $defaults, $options));
129
        $defaults = array('value' => 0, 'forced' => false);
130
        $temp->add(new admin_setting_gradecat_combo('grade_aggregateoutcomes', new lang_string('aggregateoutcomes', 'grades'),
131
                    new lang_string('aggregateoutcomes_help', 'grades'), $defaults, $options));
132
 
133
        $options = array(0 => new lang_string('none'));
134
        for ($i=1; $i<=20; $i++) {
135
            $options[$i] = $i;
136
        }
137
 
138
        $defaults['value'] = 0;
139
        $defaults['forced'] = true;
140
        $temp->add(new admin_setting_gradecat_combo('grade_keephigh', new lang_string('keephigh', 'grades'),
141
                    new lang_string('keephigh_help', 'grades'), $defaults, $options));
142
        $defaults['forced'] = false;
143
        $temp->add(new admin_setting_gradecat_combo('grade_droplow', new lang_string('droplow', 'grades'),
144
                    new lang_string('droplow_help', 'grades'), $defaults, $options));
145
 
146
        $temp->add(new admin_setting_configcheckbox('grade_overridecat', new lang_string('overridecat', 'grades'),
147
                   new lang_string('overridecat_help', 'grades'), 1));
148
    }
149
    $ADMIN->add('grades', $temp);
150
 
151
 
152
    /// Grade item settings
153
    $temp = new admin_settingpage('gradeitemsettings', new lang_string('gradeitemsettings', 'grades'), 'moodle/grade:manage');
154
    if ($ADMIN->fulltree) {
155
        $temp->add(new admin_setting_configselect('grade_displaytype', new lang_string('gradedisplaytype', 'grades'),
156
                                                  new lang_string('gradedisplaytype_help', 'grades'), GRADE_DISPLAY_TYPE_REAL, $display_types));
157
 
158
        $temp->add(new admin_setting_configselect('grade_decimalpoints', new lang_string('decimalpoints', 'grades'),
159
                                                  new lang_string('decimalpoints_help', 'grades'), 2,
160
                                                  array( '0' => '0',
161
                                                         '1' => '1',
162
                                                         '2' => '2',
163
                                                         '3' => '3',
164
                                                         '4' => '4',
165
                                                         '5' => '5')));
166
    }
167
    $ADMIN->add('grades', $temp);
168
 
169
 
170
    /// Scales and outcomes
171
 
172
    $scales = new admin_externalpage('scales', new lang_string('scales'), $CFG->wwwroot.'/grade/edit/scale/index.php', 'moodle/grade:manage');
173
    $ADMIN->add('grades', $scales);
174
    if (!empty($CFG->enableoutcomes)) {
175
        $outcomes = new admin_externalpage('outcomes', new lang_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage');
176
        $ADMIN->add('grades', $outcomes);
177
    }
178
    $letters = new admin_externalpage('letters', new lang_string('letters', 'grades'), $CFG->wwwroot.'/grade/edit/letter/index.php', 'moodle/grade:manageletters');
179
    $ADMIN->add('grades', $letters);
180
 
181
    // The plugins must implement a settings.php file that adds their admin settings to the $settings object
182
 
183
    // Reports
184
    $ADMIN->add('grades', new admin_category('gradereports', new lang_string('reportsettings', 'grades')));
185
    foreach (core_component::get_plugin_list('gradereport') as $plugin => $plugindir) {
186
     // Include all the settings commands for this plugin if there are any
187
        if (file_exists($plugindir.'/settings.php')) {
188
            $settings = new admin_settingpage('gradereport'.$plugin, new lang_string('pluginname', 'gradereport_'.$plugin), 'moodle/grade:manage');
189
            include($plugindir.'/settings.php');
190
            if ($settings) {
191
                $ADMIN->add('gradereports', $settings);
192
            }
193
        }
194
    }
195
 
196
    // Imports
197
    $ADMIN->add('grades', new admin_category('gradeimports', new lang_string('importsettings', 'grades')));
198
    foreach (core_component::get_plugin_list('gradeimport') as $plugin => $plugindir) {
199
 
200
     // Include all the settings commands for this plugin if there are any
201
        if (file_exists($plugindir.'/settings.php')) {
202
            $settings = new admin_settingpage('gradeimport'.$plugin, new lang_string('pluginname', 'gradeimport_'.$plugin), 'moodle/grade:manage');
203
            include($plugindir.'/settings.php');
204
            if ($settings) {
205
                $ADMIN->add('gradeimports', $settings);
206
            }
207
        }
208
    }
209
 
210
 
211
    // Exports
212
    $ADMIN->add('grades', new admin_category('gradeexports', new lang_string('exportsettings', 'grades')));
213
    foreach (core_component::get_plugin_list('gradeexport') as $plugin => $plugindir) {
214
     // Include all the settings commands for this plugin if there are any
215
        if (file_exists($plugindir.'/settings.php')) {
216
            $settings = new admin_settingpage('gradeexport'.$plugin, new lang_string('pluginname', 'gradeexport_'.$plugin), 'moodle/grade:manage');
217
            include($plugindir.'/settings.php');
218
            if ($settings) {
219
                $ADMIN->add('gradeexports', $settings);
220
            }
221
        }
222
    }
223
 
224
} // end of speedup
225