/** * Constructor. Sets local copies of user preferences and initialises grade_tree. * @param int $courseid * @param object $gpr grade plugin return tracking object * @param string $context * @param int $page The current page being viewed (when report is paged) * @param int $sortitemid The id of the grade_item by which to sort the table */ function grade_report_laegrader($courseid, $gpr, $context, $page = null, $sortitemid = null) { global $CFG; parent::grade_report($courseid, $gpr, $context, $page); $this->canviewhidden = has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $this->course->id)); $this->accuratetotals = ($temp = grade_get_setting($this->courseid, 'report_laegrader_accuratetotals', $CFG->grade_report_laegrader_accuratetotals)) ? $temp : 0; // need this array, even tho its useless in the laegrader report or we'll generate warnings $this->collapsed = array('aggregatesonly' => array(), 'gradesonly' => array()); if (empty($CFG->enableoutcomes)) { $nooutcomes = false; } else { $nooutcomes = get_user_preferences('grade_report_shownooutcomes'); } // force category_last to true $switch = true; // Grab the grade_tree for this course $this->gtree = new grade_tree($this->courseid, false, $switch, null, $nooutcomes); // Fill items with parent information needed later $this->gtree->parents = array(); fill_parents($this->gtree->parents, $this->gtree->items, $this->gtree->top_element, $this->gtree->top_element['object']->grade_item->id, $this->accuratetotals); // fill_parents($this->gtree->items, $this->gtree->top_element,$this->gtree->top_element['object']->id,$this->gtree->top_element['object']->aggregation); $this->sortitemid = $sortitemid; // base url for sorting by first/last name $studentsperpage = 0; //$this->get_pref('studentsperpage'); $perpage = ''; $curpage = ''; $this->baseurl = 'index.php?id=' . $this->courseid . $perpage . $curpage . '&'; $this->pbarurl = 'index.php?id=' . $this->courseid . $perpage . '&'; $this->setup_groups(); $this->setup_sortitemid(); }
// Handle toggle change request if (!is_null($toggle) && !empty($toggle_type)) { set_user_preferences(array('grade_report_show' . $toggle_type => $toggle)); } //first make sure we have proper final grades - this must be done before constructing of the grade tree grade_regrade_final_grades($courseid); // Perform actions if (!empty($target) && !empty($action) && confirm_sesskey()) { grade_report_grader::process_action($target, $action); } $reportname = get_string('pluginname', 'gradereport_grader'); /// Print header print_grade_page_head($COURSE->id, 'report', 'grader', $reportname, false, $buttons); //Initialise the grader report object that produces the table //the class grade_report_grader_ajax was removed as part of MDL-21562 $report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid); // make sure separate group does not prevent view if ($report->currentgroup == -2) { echo $OUTPUT->heading(get_string("notingroup")); echo $OUTPUT->footer(); exit; } /// processing posted grades & feedback here if ($data = data_submitted() and confirm_sesskey() and has_capability('moodle/grade:edit', $context)) { $warnings = $report->process_data($data); } else { $warnings = array(); } // final grades MUST be loaded after the processing $report->load_users(); $numusers = $report->get_numusers();
$USER->gradeediting[$course->id] = 0; $buttons = ''; } $gradeserror = array(); // Handle toggle change request if (!is_null($toggle) && !empty($toggle_type)) { set_user_preferences(array('grade_report_show' . $toggle_type => $toggle)); } //first make sure we have proper final grades - this must be done before constructing of the grade tree grade_regrade_final_grades($courseid); // Perform actions if (!empty($target) && !empty($action) && confirm_sesskey()) { grade_report_grader::process_action($target, $action); } // Initialise the grader report object $report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid); /// processing posted grades & feedback here if ($data = data_submitted() and confirm_sesskey() and has_capability('moodle/grade:edit', $context)) { $warnings = $report->process_data($data); } else { $warnings = array(); } // Override perpage if set in URL if ($perpageurl) { $report->user_prefs['studentsperpage'] = $perpageurl; } // final grades MUST be loaded after the processing $report->load_users(); $numusers = $report->get_numusers(); $report->load_final_grades(); /// Print header
foreach ($cmdb as $cm) { $mod = $cm->module; $module = $blocks[$mod]; $instance = $cm->instance; $cms[$module][$instance] = $cm->id; } include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php'; $finalgrades = evalcomix_grades::get_grades($courseid); //$users = $report_evalcomix->load_users(); //$finalgrades = $report_evalcomix->get_grades(); $numpages = (int) ($numusers / $studentsperpage); if ($numusers % $studentsperpage > 0) { $numpages += 1; } for ($ipage = 0; $ipage < $numpages; ++$ipage) { $report_grader = new grade_report_grader($courseid, null, $context, $ipage, $sortitemid); $report_grader->load_users(); $report_grader->load_final_grades(); foreach ($report_grader->users as $userid => $user) { if ($report_grader->canviewhidden) { $altered = array(); $unknown = array(); } else { $hidingaffected = grade_grade::get_hiding_affected($report_grader->grades[$userid], $report_grader->gtree->get_items()); $altered = $hidingaffected['altered']; $unknown = $hidingaffected['unknown']; unset($hidingaffected); } foreach ($report_grader->gtree->items as $itemid => $unused) { $item =& $report_grader->gtree->items[$itemid]; $grade = $report_grader->grades[$userid][$item->id];
$buttons = ''; } $gradeserror = array(); // Handle toggle change request if (!is_null($toggle) && !empty($toggle_type)) { set_user_preferences(array('grade_report_show' . $toggle_type => $toggle)); } //first make sure we have proper final grades - this must be done before constructing of the grade tree grade_regrade_final_grades($courseid); // Perform actions if (!empty($target) && !empty($action) && confirm_sesskey()) { grade_report_grader::process_action($target, $action); } $reportname = get_string('modulename', 'gradereport_grader'); // Initialise the grader report object $report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid); $PAGE->requires->yui_lib('event')->in_head(); // TODO change the JS so we can remove the ->in_head() $PAGE->requires->yui_lib('json')->in_head(); $PAGE->requires->yui_lib('connection')->in_head(); $PAGE->requires->yui_lib('dragdrop')->in_head(); $PAGE->requires->yui_lib('element')->in_head(); $PAGE->requires->yui_lib('container')->in_head(); $PAGE->requires->js('grade/report/grader/functions.js')->in_head(); if ($report->get_pref('enableajax')) { $report = new grade_report_grader_ajax($courseid, $gpr, $context, $page, $sortitemid); } // make sure separate group does not prevent view if ($report->currentgroup == -2) { print_grade_page_head($COURSE->id, 'report', 'grader', $reportname, false, $buttons); echo $OUTPUT->heading(get_string("notingroup"));
/** * Processes a single action against a category, grade_item or grade. * @param string $target eid ({type}{id}, e.g. c4 for category4) * @param string $action Which action to take (edit, delete etc...) * @return */ function process_action($target, $action) { return parent::process_action($target, $action); }
print_error('noitemid', 'grades'); } require_login($course); $context = get_context_instance(CONTEXT_COURSE, $course->id); require_capability('gradereport/grader:view', $context); require_capability('moodle/grade:viewall', $context); require_capability('moodle/grade:edit', $context); /// return tracking object $gpr = new grade_plugin_return(array('type' => 'report', 'plugin' => 'grader', 'courseid' => $courseid, 'page' => $page)); /// last selected report session tracking if (!isset($USER->grade_last_report)) { $USER->grade_last_report = array(); } $USER->grade_last_report[$course->id] = 'grader'; // Initialise the grader report object $report = new grade_report_grader($courseid, $gpr, $context, $page); /// processing posted grades & feedback here if ($data = data_submitted() and confirm_sesskey() and has_capability('moodle/grade:edit', $context)) { $warnings = $report->process_data($data); } else { $warnings = array(); } // Override perpage if set in URL if ($perpageurl) { $report->user_prefs['studentsperpage'] = $perpageurl; } // final grades MUST be loaded after the processing $report->load_users(); $numusers = $report->get_numusers(); $report->load_final_grades(); /// Print header