return false;
}
+ // we need proper floats here for !== comparison later
+ if (!is_null($grade->finalgrade)) {
+ $grade->finalgrade = (float)$grade->finalgrade;
+ }
+
$oldgrade = new object();
$oldgrade->finalgrade = $grade->finalgrade;
$oldgrade->overridden = $grade->overridden;
$grade->overridden = 0;
}
- if (!is_null($finalgrade)) {
- $finalgrade = bounded_number($this->grademin, $finalgrade, $this->grademax);
+ if (is_null($finalgrade)) {
+ $grade->finalgrade = null;
} else {
- $finalgrade = $finalgrade;
+ $grade->finalgrade = (float)bounded_number($this->grademin, $finalgrade, $this->grademax);
}
- $grade->finalgrade = $finalgrade;
}
// do we have comment from teacher?
$grade->timecreated = $datesubmitted;
if (empty($dategraded)) {
- $grade->dategraded = time();
+ $grade->timemodified = time();
} else {
- $grade->dategraded = $dategraded;
+ $grade->timemodified = $dategraded;
}
if ($grade->is_locked()) {
return false;
}
+ // we need proper floats here for !== comparison later
+ if (!is_null($grade->rawgrade)) {
+ $grade->rawgrade = (float)$grade->rawgrade;
+ }
+
$oldgrade = new object();
$oldgrade->finalgrade = $grade->finalgrade;
$oldgrade->rawgrade = $grade->rawgrade;
$grade->feedbackformat = $feedbackformat;
}
+ if (is_null($grade->rawgrade)) {
+ $grade->timemodified = null; // dategraded hack - not graded if no grade present, comments do not count here as grading
+ }
+
if (empty($grade->id)) {
- if (is_null($grade->rawgrade)) {
- $grade->dategraded = null;
- }
$result = (boolean)$grade->insert($source);
} else if ($grade->finalgrade !== $oldgrade->finalgrade
or $grade->rawscaleid !== $oldgrade->rawscaleid
or $grade->feedback !== $oldgrade->feedback
or $grade->feedbackformat !== $oldgrade->feedbackformat) {
- if (is_null($grade->rawgrade)) {
- $grade->dategraded = null;
- }
$result = $grade->update($source);
}