/** * Create grade item for given scheduler * * @param object $scheduler object * @param mixed optional array/object of grade(s); 'reset' means reset grades in gradebook * @return int 0 if ok, error code otherwise */ function scheduler_grade_item_update($scheduler, $grades = null) { global $CFG, $DB; require_once $CFG->libdir . '/gradelib.php'; if (!isset($scheduler->courseid)) { $scheduler->courseid = $scheduler->course; } $moduleid = $DB->get_field('modules', 'id', array('name' => 'scheduler')); $cmid = $DB->get_field('course_modules', 'id', array('module' => $moduleid, 'instance' => $scheduler->id)); if ($scheduler->scale == 0) { // Delete any grade item. scheduler_grade_item_delete($scheduler); return 0; } else { $params = array('itemname' => $scheduler->name, 'idnumber' => $cmid); if ($scheduler->scale > 0) { $params['gradetype'] = GRADE_TYPE_VALUE; $params['grademax'] = $scheduler->scale; $params['grademin'] = 0; } else { if ($scheduler->scale < 0) { $params['gradetype'] = GRADE_TYPE_SCALE; $params['scaleid'] = -$scheduler->scale; } else { $params['gradetype'] = GRADE_TYPE_TEXT; // Allow text comments only. } } if ($grades === 'reset') { $params['reset'] = true; $grades = null; } return grade_update('mod/scheduler', $scheduler->courseid, 'mod', 'scheduler', $scheduler->id, 0, $grades, $params); } }
/** * Delete the scheduler */ public function delete() { $this->slots->delete_children(); scheduler_grade_item_delete($this); parent::delete(); }