MDL-68618 mod_forum: stop reverting idnumber when updating instance.

This commit is contained in:
Paul Holden 2020-05-05 23:12:42 +01:00
parent a7d9b53e72
commit e9a5485f3e
2 changed files with 7 additions and 4 deletions

View File

@ -265,9 +265,12 @@ class forum_gradeitem extends component_gradeitem {
$DB->update_record($this->get_table_name(), $grade);
// Update in the gradebook.
// Update in the gradebook (note that 'cmidnumber' is required in order to update grades).
$mapper = forum_container::get_legacy_data_mapper_factory()->get_forum_data_mapper();
forum_update_grades($mapper->to_legacy_object($this->forum), $grade->userid);
$forumrecord = $mapper->to_legacy_object($this->forum);
$forumrecord->cmidnumber = $this->forum->get_course_module_record()->idnumber;
forum_update_grades($forumrecord, $grade->userid);
return true;
}

View File

@ -808,13 +808,13 @@ function forum_print_recent_activity($course, $viewfullnames, $timestart) {
function forum_update_grades($forum, $userid = 0): void {
global $CFG, $DB;
require_once($CFG->libdir.'/gradelib.php');
$cm = get_coursemodule_from_instance('forum', $forum->id);
$forum->cmidnumber = $cm->idnumber;
$ratings = null;
if ($forum->assessed) {
require_once($CFG->dirroot.'/rating/lib.php');
$cm = get_coursemodule_from_instance('forum', $forum->id);
$rm = new rating_manager();
$ratings = $rm->get_user_grades((object) [
'component' => 'mod_forum',