if ($hiddenuntil) { $grade_grade->set_hidden($hiddenuntil); } else { $grade_grade->set_hidden($hidden); // checkbox data might be undefined } } } if (isset($data->locked) and !$grade_item->is_locked()) { if (($old_grade_grade->locked or $old_grade_grade->locktime) and (!has_capability('moodle/grade:manage', $context) and !has_capability('moodle/grade:unlock', $context))) { //ignore data } else { if (!$old_grade_grade->locked and !$old_grade_grade->locktime and (!has_capability('moodle/grade:manage', $context) and !has_capability('moodle/grade:lock', $context))) { //ignore data } else { $grade_grade->set_locktime($data->locktime); //set_lock may reset locktime $grade_grade->set_locked($data->locked, false, true); // reload grade in case it was regraded from activity $grade_grade = new grade_grade(array('userid' => $data->userid, 'itemid' => $grade_item->id), true); $grade_grade->grade_item =& $grade_item; // no db fetching } } } if (isset($data->excluded) and has_capability('moodle/grade:manage', $context)) { $grade_grade->set_excluded($data->excluded); } // detect cases when we need to do full regrading if ($old_grade_grade->excluded != $grade_grade->excluded) { $parent = $grade_item->get_parent_category();
$grade_grade->set_hidden($hidden); // checkbox data might be undefined } } } if (isset($data->locked) and !$grade_item->is_locked()) { if (($old_grade_grade->locked or $old_grade_grade->locktime) and (!has_capability('moodle/grade:manage', $context) and !has_capability('moodle/grade:unlock', $context))) { //ignore data } else if ((!$old_grade_grade->locked and !$old_grade_grade->locktime) and (!has_capability('moodle/grade:manage', $context) and !has_capability('moodle/grade:lock', $context))) { //ignore data } else { $grade_grade->set_locktime($data->locktime); //set_lock may reset locktime $grade_grade->set_locked($data->locked, false, true); // reload grade in case it was regraded from activity $grade_grade = new grade_grade(array('userid'=>$data->userid, 'itemid'=>$grade_item->id), true); $grade_grade->grade_item =& $grade_item; // no db fetching } } if (isset($data->excluded) and has_capability('moodle/grade:manage', $context)) { $grade_grade->set_excluded($data->excluded); } // detect cases when we need to do full regrading if ($old_grade_grade->excluded != $grade_grade->excluded) { $parent = $grade_item->get_parent_category(); $parent->force_regrading();