/** * */ protected function definition_grading() { global $CFG; $dataformid = !empty($this->current->id) ? $this->current->id : 0; $mform =& $this->_form; $displaymultilink = false; if ($CFG->dataform_multigradeitems) { if ($dataformid) { $gitems = grade_item::fetch_all(array('itemtype' => 'mod', 'itemmodule' => 'dataform', 'iteminstance' => $dataformid, 'courseid' => $this->current->course)); if ($gitems and count($gitems) > 1) { $displaymultilink = true; } } } if ($displaymultilink) { $mform->addElement('header', 'modstandardgrade', get_string('grade')); $urlparams = array('id' => $this->current->update); $url = new \moodle_url('/mod/dataform/grade/items.php', $urlparams); $label = get_string('usegradeitemsform', 'mod_dataform', $url->out(false)); $mform->addElement('html', $label); } else { $this->standard_grading_coursemodule_elements(); $mform->setDefault('grade', 0); $grademan = new \mod_dataform_grade_manager($dataformid); // Grading rubric/guide. $gradeguide = null; if ($grademan->get_form_definition_grading_areas($mform, 'gradeguide', 'gradecalc')) { $gradeguide = 'gradeguide'; $mform->disabledIf('gradeguide', 'grade[modgrade_type]', 'eq', 'none'); } // Grading formula. $grademan->get_form_definition_grading_calc($mform, 'gradecalc', $gradeguide); $mform->disabledIf('gradecalc', 'grade[modgrade_type]', 'eq', 'none'); } }
/** * Update/create grade item for given dataform. * @param object $data object with extra cmidnumber * @param mixed optional array/object of grade(s); 'reset' means reset grades in gradebook * @return int */ function dataform_grade_item_update($data, $grades = null) { $grademan = \mod_dataform_grade_manager::instance($data->id); $options = $grades == 'reset' ? array('reset' => 1) : array(); foreach ($grademan->grade_items as $itemnumber => $unused) { $res = $grademan->update_grade_item($itemnumber, $options); if ($res != GRADE_UPDATE_OK) { // Break on failure. return $res; } } }
/** * Returns the grade manager for the Dataform instance. * * @return mod_dataform_grade_manager */ public function get_grade_manager() { return mod_dataform_grade_manager::instance($this->id); }