$data->feedback = $old_grade_grade->feedback; $data->feedbackformat = $old_grade_grade->feedbackformat; } // update final grade or feedback $grade_item->update_final_grade($data->userid, $data->finalgrade, 'editgrade', $data->feedback, $data->feedbackformat); $grade_grade = new grade_grade(array('userid' => $data->userid, 'itemid' => $grade_item->id), true); $grade_grade->grade_item =& $grade_item; // no db fetching if (has_capability('moodle/grade:manage', $context) or has_capability('moodle/grade:edit', $context)) { if (!grade_floats_different($data->finalgrade, $old_grade_grade->finalgrade) and $data->feedback === $old_grade_grade->feedback) { // change overridden flag only if grade or feedback not changed if (!isset($data->overridden)) { $data->overridden = 0; // checkbox } $grade_grade->set_overridden($data->overridden); } } if (has_capability('moodle/grade:manage', $context) or has_capability('moodle/grade:hide', $context)) { $hidden = empty($data->hidden) ? 0 : $data->hidden; $hiddenuntil = empty($data->hiddenuntil) ? 0 : $data->hiddenuntil; if ($grade_item->is_hidden()) { if ($old_grade_grade->hidden == 1 and $hiddenuntil == 0) { //nothing to do - grade was originally hidden, we want to keep it that way } else { $grade_grade->set_hidden($hiddenuntil); } } else { if ($hiddenuntil) { $grade_grade->set_hidden($hiddenuntil); } else {