/** * Perform minimal validation on the grade form * @param array $data * @param array $files */ function validation($data, $files) { global $DB; $errors = parent::validation($data, $files); // advanced grading if (!array_key_exists('grade', $data)) { return $errors; } if ($this->assignment->get_instance()->grade > 0) { if (!is_numeric($data['grade']) and (!empty($data['grade']))) { $errors['grade'] = get_string('invalidfloatforgrade', 'assign', $data['grade']); } else if ($data['grade'] > $this->assignment->get_instance()->grade) { $errors['grade'] = get_string('gradeabovemaximum', 'assign', $this->assignment->get_instance()->grade); } else if ($data['grade'] < 0) { $errors['grade'] = get_string('gradebelowzero', 'assign'); } } else { // this is a scale if ($scale = $DB->get_record('scale', array('id'=>-($this->assignment->get_instance()->grade)))) { $scaleoptions = make_menu_from_list($scale->scale); if (!array_key_exists((int)$data['grade'], $scaleoptions)) { $errors['grade'] = get_string('invalidgradeforscale', 'assign'); } } } return $errors; }
/** * Perform minimal validation on the grade form * @param array $data * @param array $files */ public function validation($data, $files) { global $DB; $errors = parent::validation($data, $files); $instance = $this->assignment->get_instance(); // Advanced grading. if (!array_key_exists('grade', $data)) { return $errors; } if ($instance->grade > 0) { if (unformat_float($data['grade']) === null && (!empty($data['grade']))) { $errors['grade'] = get_string('invalidfloatforgrade', 'assign', $data['grade']); } else if (unformat_float($data['grade']) > $instance->grade) { $errors['grade'] = get_string('gradeabovemaximum', 'assign', $instance->grade); } else if (unformat_float($data['grade']) < 0) { $errors['grade'] = get_string('gradebelowzero', 'assign'); } } else { // This is a scale. if ($scale = $DB->get_record('scale', array('id'=>-($instance->grade)))) { $scaleoptions = make_menu_from_list($scale->scale); if (!array_key_exists((int)$data['grade'], $scaleoptions)) { $errors['grade'] = get_string('invalidgradeforscale', 'assign'); } } } return $errors; }
/** * Perform minimal validation on the grade form * @param array $data * @param array $files */ public function validation($data, $files) { global $DB; $errors = parent::validation($data, $files); $instance = $this->assignment->get_instance(); if ($instance->markingworkflow && !empty($data['sendstudentnotifications']) && $data['workflowstate'] != ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) { $errors['sendstudentnotifications'] = get_string('studentnotificationworkflowstateerror', 'assign'); } // Advanced grading. if (!array_key_exists('grade', $data)) { return $errors; } if ($instance->grade > 0) { if (unformat_float($data['grade']) === null && !empty($data['grade'])) { $errors['grade'] = get_string('invalidfloatforgrade', 'assign', $data['grade']); } else { if (unformat_float($data['grade']) > $instance->grade) { $errors['grade'] = get_string('gradeabovemaximum', 'assign', $instance->grade); } else { if (unformat_float($data['grade']) < 0) { $errors['grade'] = get_string('gradebelowzero', 'assign'); } } } } else { // This is a scale. if ($scale = $DB->get_record('scale', array('id' => -$instance->grade))) { $scaleoptions = make_menu_from_list($scale->scale); if ((int) $data['grade'] !== -1 && !array_key_exists((int) $data['grade'], $scaleoptions)) { $errors['grade'] = get_string('invalidgradeforscale', 'assign'); } } } return $errors; }