Open dsoini opened 5 years ago
Hello, here is code we have used to fix the broken behavior described above.
` /**
@param bool $nullifnone - not used */ function ouwiki_update_grades($ouwiki, $userid=0, $nullifnone=true) { global $CFG; require_once($CFG->libdir.'/gradelib.php');
if ($ouwiki->grade == 0) { ouwiki_grade_item_update($ouwiki);
} else if ($grades = ouwiki_get_user_grades($ouwiki, $userid)) { foreach ($grades as $k => $v) { if ($v->rawgrade == -1) { $grades[$k]->rawgrade = null; } } ouwiki_grade_item_update($ouwiki, $grades);
} else { ouwiki_grade_item_update($ouwiki); } }
/**
@return array array of grades, false if none */ function ouwiki_get_user_grades($ouwiki, $userid = 0) { global $CFG;
require_once($CFG->libdir.'/gradelib.php');
$grading_info = grade_get_grades($ouwiki->course, 'mod', 'ouwiki', $ouwiki->id, $userid);
$grade_item_grademax = $grading_info->items[0]->grademax; $user_final_grade = $grading_info->items[0]->grades[$userid]; } `
Saw broken gradebook behavior in moodle 3.5 in a course. Steps to produce the broken behavior:
A course with multiple kinds of activities.