From e9a5485f3e090bbefff28838e527fffc6c58858b Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Tue, 5 May 2020 23:12:42 +0100 Subject: [PATCH] MDL-68618 mod_forum: stop reverting idnumber when updating instance. --- mod/forum/classes/grades/forum_gradeitem.php | 7 +++++-- mod/forum/lib.php | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mod/forum/classes/grades/forum_gradeitem.php b/mod/forum/classes/grades/forum_gradeitem.php index 42b142176a3..0094e578cf3 100644 --- a/mod/forum/classes/grades/forum_gradeitem.php +++ b/mod/forum/classes/grades/forum_gradeitem.php @@ -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; } diff --git a/mod/forum/lib.php b/mod/forum/lib.php index e1462938e5c..79cc80fc5fb 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -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', -- 2.43.0