Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 26... Línea 26...
26
require_once($CFG->libdir.'/gradelib.php');
26
require_once($CFG->libdir.'/gradelib.php');
27
require_once($CFG->dirroot.'/user/renderer.php');
27
require_once($CFG->dirroot.'/user/renderer.php');
28
require_once($CFG->dirroot.'/grade/lib.php');
28
require_once($CFG->dirroot.'/grade/lib.php');
29
require_once($CFG->dirroot.'/grade/report/grader/lib.php');
29
require_once($CFG->dirroot.'/grade/report/grader/lib.php');
Línea -... Línea 30...
-
 
30
 
-
 
31
// This report may require a lot of memory and time on large courses.
-
 
32
raise_memory_limit(MEMORY_HUGE);
-
 
33
set_time_limit(120);
30
 
34
 
31
$courseid      = required_param('id', PARAM_INT);        // course id
35
$courseid      = required_param('id', PARAM_INT);        // course id
32
$page          = optional_param('page', 0, PARAM_INT);   // active page
36
$page          = optional_param('page', 0, PARAM_INT);   // active page
Línea 33... Línea 37...
33
$edit          = optional_param('edit', -1, PARAM_BOOL); // sticky editting mode
37
$edit          = optional_param('edit', -1, PARAM_BOOL); // sticky editting mode
Línea 43... Línea 47...
43
 
47
 
44
$graderreportsifirst  = optional_param('sifirst', null, PARAM_NOTAGS);
48
$graderreportsifirst  = optional_param('sifirst', null, PARAM_NOTAGS);
Línea 45... Línea 49...
45
$graderreportsilast   = optional_param('silast', null, PARAM_NOTAGS);
49
$graderreportsilast   = optional_param('silast', null, PARAM_NOTAGS);
-
 
50
 
Línea 46... Línea 51...
46
 
51
$studentsperpage = optional_param('perpage', null, PARAM_INT);
47
$studentsperpage = optional_param('perpage', null, PARAM_INT);
52
$baseurl = new moodle_url('/grade/report/grader/index.php', ['id' => $courseid]);
48
 
-
 
49
$PAGE->set_url(new moodle_url('/grade/report/grader/index.php', array('id'=>$courseid)));
-
 
50
$PAGE->set_pagelayout('report');
-
 
51
$PAGE->requires->js_call_amd('gradereport_grader/stickycolspan', 'init');
-
 
Línea 52... Línea 53...
52
$PAGE->requires->js_call_amd('gradereport_grader/user', 'init');
53
 
53
$PAGE->requires->js_call_amd('gradereport_grader/feedback_modal', 'init');
54
$PAGE->set_url(new moodle_url('/grade/report/grader/index.php', array('id'=>$courseid)));
54
$PAGE->requires->js_call_amd('core_grades/gradebooksetup_forms', 'init');
55
$PAGE->set_pagelayout('report');
55
 
56
 
Línea 56... Línea 57...
56
// basic access checks
57
// basic access checks
57
if (!$course = $DB->get_record('course', array('id' => $courseid))) {
58
if (!$course = $DB->get_record('course', array('id' => $courseid))) {
58
    throw new \moodle_exception('invalidcourseid');
59
    throw new \moodle_exception('invalidcourseid');
59
}
60
}
Línea 60... Línea 61...
60
 
61
 
61
// Conditionally add the group JS if we have groups enabled.
62
// Conditionally add the group JS if we have groups enabled.
Línea 122... Línea 123...
122
if (!empty($target) && !empty($action) && confirm_sesskey()) {
123
if (!empty($target) && !empty($action) && confirm_sesskey()) {
123
    grade_report_grader::do_process_action($target, $action, $courseid);
124
    grade_report_grader::do_process_action($target, $action, $courseid);
124
}
125
}
Línea 125... Línea 126...
125
 
126
 
126
$reportname = get_string('pluginname', 'gradereport_grader');
-
 
-
 
127
$reportname = get_string('pluginname', 'gradereport_grader');
-
 
128
$regradetask = \core_course\task\regrade_final_grades::create($courseid);
-
 
129
$indicatorheading = get_string('recalculatinggrades', 'grades');
-
 
130
$indicatormessage = get_string('recalculatinggradesadhoc', 'grades');
-
 
131
$taskindicator = new \core\output\task_indicator($regradetask, $indicatorheading, $indicatormessage, $PAGE->url);
127
 
132
if (!$taskindicator->has_task_record()) {
128
// Do this check just before printing the grade header (and only do it once).
133
    // Do this check just before printing the grade header (and only do it once).
-
 
134
    grade_regrade_final_grades_if_required($course);
Línea 129... Línea 135...
129
grade_regrade_final_grades_if_required($course);
135
}
130
 
136
 
131
//Initialise the grader report object that produces the table
137
//Initialise the grader report object that produces the table
132
//the class grade_report_grader_ajax was removed as part of MDL-21562
138
//the class grade_report_grader_ajax was removed as part of MDL-21562
Línea 136... Línea 142...
136
// We have lots of hardcoded 'ASC' and 'DESC' strings in grade/report/grader.lib :(. So we need to uppercase the sort.
142
// We have lots of hardcoded 'ASC' and 'DESC' strings in grade/report/grader.lib :(. So we need to uppercase the sort.
137
$sort = strtoupper($sort);
143
$sort = strtoupper($sort);
Línea 138... Línea 144...
138
 
144
 
Línea 139... Línea -...
139
$report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid, $sort);
-
 
140
 
-
 
141
// We call this a little later since we need some info from the grader report.
-
 
142
$PAGE->requires->js_call_amd('gradereport_grader/collapse', 'init', [
-
 
143
    'userID' => $USER->id,
-
 
144
    'courseID' => $courseid,
-
 
145
    'defaultSort' => $report->get_default_sortable()
-
 
146
]);
145
$report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid, $sort);
Línea 147... Línea 146...
147
 
146
 
148
$numusers = $report->get_numusers(true, true);
147
$numusers = $report->get_numusers(true, true);
149
 
148
 
Línea 163... Línea 162...
163
if ($isediting && ($data = data_submitted()) && confirm_sesskey()) {
162
if ($isediting && ($data = data_submitted()) && confirm_sesskey()) {
164
    // Processing posted grades here.
163
    // Processing posted grades here.
165
    $warnings = $report->process_data($data);
164
    $warnings = $report->process_data($data);
166
}
165
}
Línea -... Línea 166...
-
 
166
 
-
 
167
if ($taskindicator->has_task_record()) {
-
 
168
    echo $OUTPUT->render($taskindicator);
-
 
169
    echo $OUTPUT->footer();
-
 
170
    exit;
-
 
171
}
-
 
172
 
-
 
173
// We call this a little later since we need some info from the grader report.
-
 
174
$PAGE->requires->js_call_amd('gradereport_grader/collapse', 'init', [
-
 
175
    'userID' => $USER->id,
-
 
176
    'courseID' => $courseid,
-
 
177
    'defaultSort' => $report->get_default_sortable(),
-
 
178
]);
-
 
179
$PAGE->requires->js_call_amd('gradereport_grader/stickycolspan', 'init');
-
 
180
$PAGE->requires->js_call_amd('gradereport_grader/user', 'init', [$baseurl->out(false)]);
-
 
181
$PAGE->requires->js_call_amd('gradereport_grader/feedback_modal', 'init');
-
 
182
$PAGE->requires->js_call_amd('core_grades/gradebooksetup_forms', 'init');
167
 
183
 
168
// Final grades MUST be loaded after the processing.
184
// Final grades MUST be loaded after the processing.
169
$report->load_users();
185
$report->load_users();
Línea 170... Línea 186...
170
$report->load_final_grades();
186
$report->load_final_grades();
Línea 189... Línea 205...
189
    $pagingoptions[] = $studentsperpage; // To make sure the current preference is within the options.
205
    $pagingoptions[] = $studentsperpage; // To make sure the current preference is within the options.
190
}
206
}
191
$pagingoptions = array_unique($pagingoptions);
207
$pagingoptions = array_unique($pagingoptions);
192
sort($pagingoptions);
208
sort($pagingoptions);
193
$pagingoptions = array_combine($pagingoptions, $pagingoptions);
209
$pagingoptions = array_combine($pagingoptions, $pagingoptions);
194
if ($numusers > grade_report_grader::MAX_STUDENTS_PER_PAGE) {
210
$maxusers = $report->get_max_students_per_page();
-
 
211
if ($numusers > $maxusers) {
195
    $pagingoptions['0'] = grade_report_grader::MAX_STUDENTS_PER_PAGE;
212
    $pagingoptions['0'] = $maxusers;
196
} else {
213
} else {
197
    $pagingoptions['0'] = get_string('all');
214
    $pagingoptions['0'] = get_string('all');
198
}
215
}
Línea 199... Línea 216...
199
 
216
 
200
$perpagedata = [
217
$perpagedata = [
201
    'baseurl' => new moodle_url('/grade/report/grader/index.php', ['id' => s($courseid), 'report' => 'grader']),
218
    'baseurl' => (new moodle_url('/grade/report/grader/index.php', ['id' => s($courseid), 'report' => 'grader']))->out(false),
202
    'options' => []
219
    'options' => []
203
];
220
];
204
foreach ($pagingoptions as $key => $name) {
221
foreach ($pagingoptions as $key => $name) {
205
    $perpagedata['options'][] = [
222
    $perpagedata['options'][] = [
Línea 213... Línea 230...
213
    $OUTPUT->render_from_template('gradereport_grader/perpage', $perpagedata)
230
    $OUTPUT->render_from_template('gradereport_grader/perpage', $perpagedata)
214
    , 'col-auto'
231
    , 'col-auto'
215
);
232
);
Línea 216... Línea 233...
216
 
233
 
217
// The number of students per page is always limited even if it is claimed to be unlimited.
234
// The number of students per page is always limited even if it is claimed to be unlimited.
218
$studentsperpage = $studentsperpage ?: grade_report_grader::MAX_STUDENTS_PER_PAGE;
235
$studentsperpage = $studentsperpage ?: $maxusers;
219
$footercontent .= html_writer::div(
236
$footercontent .= html_writer::div(
220
    $OUTPUT->paging_bar($numusers, $report->page, $studentsperpage, $report->pbarurl),
237
    $OUTPUT->paging_bar($numusers, $report->page, $studentsperpage, $report->pbarurl),
221
    'col'
238
    'col'