From e5ea5e71d5f225c8cb90a3db6949701d4fc9a683 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Fri, 3 Oct 2025 11:22:36 +0100 Subject: [PATCH] MDL-80524 rating: preserve activity idnumber when adding rating. See also e9a5485f for context regarding similar problem with grade updates. Co-authored-by: Julian Tovar --- public/lib/tests/gradelib_test.php | 2 +- public/rating/lib.php | 4 ++-- public/rating/rate.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/lib/tests/gradelib_test.php b/public/lib/tests/gradelib_test.php index 3d20c10f5e2..a7e262ea7ed 100644 --- a/public/lib/tests/gradelib_test.php +++ b/public/lib/tests/gradelib_test.php @@ -52,7 +52,7 @@ final class gradelib_test extends \advanced_testcase { // Function grade_update_mod_grades() requires 2 additional properties, cmidnumber and modname. $cm = get_coursemodule_from_instance('assign', $modinstance->id, 0, false, MUST_EXIST); - $modinstance->cmidnumber = $cm->id; + $modinstance->cmidnumber = $cm->idnumber; $modinstance->modname = 'assign'; $this->assertTrue(grade_update_mod_grades($modinstance)); diff --git a/public/rating/lib.php b/public/rating/lib.php index a8cc8cca4c1..9d0a779a8b9 100644 --- a/public/rating/lib.php +++ b/public/rating/lib.php @@ -1133,10 +1133,10 @@ class rating_manager { // Future possible enhancement: add a setting to turn grade updating off for those who don't want them in gradebook. // Note that this would need to be done in both rate.php and rate_ajax.php. if ($context->contextlevel == CONTEXT_MODULE) { - // Tell the module that its grades have changed. + // Tell the module that its grades have changed (note that 'cmidnumber' is required in order to update grades). $modinstance = $DB->get_record($cm->modname, array('id' => $cm->instance)); if ($modinstance) { - $modinstance->cmidnumber = $cm->id; // MDL-12961. + $modinstance->cmidnumber = $cm->idnumber; $functionname = $cm->modname.'_update_grades'; require_once($CFG->dirroot."/mod/{$cm->modname}/lib.php"); if (function_exists($functionname)) { diff --git a/public/rating/rate.php b/public/rating/rate.php index a8bd265aa9b..2f56dc1f20a 100644 --- a/public/rating/rate.php +++ b/public/rating/rate.php @@ -99,9 +99,9 @@ if ($userrating != RATING_UNSET_RATING) { } if (!empty($cm) && $context->contextlevel == CONTEXT_MODULE) { - // Tell the module that its grades have changed. + // Tell the module that its grades have changed (note that 'cmidnumber' is required in order to update grades). $modinstance = $DB->get_record($cm->modname, array('id' => $cm->instance), '*', MUST_EXIST); - $modinstance->cmidnumber = $cm->id; // MDL-12961. + $modinstance->cmidnumber = $cm->idnumber; $functionname = $cm->modname.'_update_grades'; require_once($CFG->dirroot."/mod/{$cm->modname}/lib.php"); if (function_exists($functionname)) {