This makes it very difficult to develop extensions that save outcomes to the gradebook as it is impossible to know if the save has occurred properly.
here's a working version:
function grade_update_outcomes($source, $courseid, $itemtype, $itemmodule, $iteminstance, $userid, $data) {
|
if ($items = grade_item::fetch_all(array('itemtype'=>$itemtype, 'itemmodule'=>$itemmodule, 'iteminstance'=>$iteminstance, 'courseid'=>$courseid))) {
|
$errors = false;
|
foreach ($items as $item) {
|
if (!array_key_exists($item->itemnumber, $data)) {
|
continue;
|
}
|
$grade = $data[$item->itemnumber] < 1 ? null : $data[$item->itemnumber];
|
$errors = ($item->update_final_grade($userid, $grade, $source)) ? $errors : true;
|
}
|
return $errors;
|
}
|
return false;
|
}
|