original_string: 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'], true) === false && (!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;
      }
code: 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'], true) === false && (!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;
      }
code_tokens: 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' ] , true ) === false && ( ! 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 ; }
docstring: Perform minimal validation on the grade form
  @param array $data
  @param array $files
docstring_tokens: Perform minimal validation on the grade form