From 5e4e5bf13ebac16884074a4bb78fb7f024e5e342 Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Wed, 24 Jul 2024 16:15:57 +0200 Subject: [PATCH] MDL-80017 core_grades: Fix return type for itemname --- .upgradenotes/MDL-80017-2024072409112838.yml | 9 +++++++++ grade/classes/external/get_gradeitems.php | 2 +- grade/report/user/classes/external/user.php | 2 +- grade/report/user/tests/externallib_test.php | 2 +- grade/tests/external/get_gradeitems_test.php | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 .upgradenotes/MDL-80017-2024072409112838.yml diff --git a/.upgradenotes/MDL-80017-2024072409112838.yml b/.upgradenotes/MDL-80017-2024072409112838.yml new file mode 100644 index 00000000000..2cde8fe8bf8 --- /dev/null +++ b/.upgradenotes/MDL-80017-2024072409112838.yml @@ -0,0 +1,9 @@ +issueNumber: MDL-80017 +notes: + core_grades: + - message: > + The grade `itemname` property contained in the return structure of + the following external methods is now PARAM_RAW: + - `core_grades_get_gradeitems` + - `gradereport_user_get_grade_items` + type: changed diff --git a/grade/classes/external/get_gradeitems.php b/grade/classes/external/get_gradeitems.php index fde28588c93..1a39239d99c 100644 --- a/grade/classes/external/get_gradeitems.php +++ b/grade/classes/external/get_gradeitems.php @@ -96,7 +96,7 @@ class get_gradeitems extends external_api { 'gradeItems' => new external_multiple_structure( new external_single_structure([ 'id' => new external_value(PARAM_ALPHANUM, 'An ID for the grade item', VALUE_REQUIRED), - 'itemname' => new external_value(PARAM_CLEANHTML, 'The full name of the grade item', VALUE_REQUIRED), + 'itemname' => new external_value(PARAM_RAW, 'The full name of the grade item', VALUE_REQUIRED), 'category' => new external_value(PARAM_TEXT, 'The grade category of the grade item', VALUE_OPTIONAL), ]) ), diff --git a/grade/report/user/classes/external/user.php b/grade/report/user/classes/external/user.php index c29c999c69b..564aade0155 100644 --- a/grade/report/user/classes/external/user.php +++ b/grade/report/user/classes/external/user.php @@ -509,7 +509,7 @@ class user extends external_api { new external_single_structure( [ 'id' => new external_value(PARAM_INT, 'Grade item id'), - 'itemname' => new external_value(PARAM_CLEANHTML, 'Grade item name'), + 'itemname' => new external_value(PARAM_RAW, 'Grade item name'), 'itemtype' => new external_value(PARAM_ALPHA, 'Grade item type'), 'itemmodule' => new external_value(PARAM_PLUGIN, 'Grade item module'), 'iteminstance' => new external_value(PARAM_INT, 'Grade item instance'), diff --git a/grade/report/user/tests/externallib_test.php b/grade/report/user/tests/externallib_test.php index 0c82e6bc10d..5a07d1db4c7 100644 --- a/grade/report/user/tests/externallib_test.php +++ b/grade/report/user/tests/externallib_test.php @@ -72,7 +72,7 @@ class externallib_test extends externallib_advanced_testcase { groups_add_member($group1->id, $teacher->id); groups_add_member($group2->id, $student2->id); - $assignment = $this->getDataGenerator()->create_module('assign', ['name' => "Test assign", 'course' => $course->id]); + $assignment = $this->getDataGenerator()->create_module('assign', ['name' => "Test assign & grade items", 'course' => $course->id]); $modcontext = get_coursemodule_from_instance('assign', $assignment->id, $course->id); $assignment->cmidnumber = $modcontext->id; diff --git a/grade/tests/external/get_gradeitems_test.php b/grade/tests/external/get_gradeitems_test.php index cc64f1a2733..5f5d9a64b66 100644 --- a/grade/tests/external/get_gradeitems_test.php +++ b/grade/tests/external/get_gradeitems_test.php @@ -41,7 +41,7 @@ class get_gradeitems_test extends \externallib_advanced_testcase { $course = $this->getDataGenerator()->create_course(); $this->getDataGenerator()->create_module('forum', ['course' => $course->id]); $this->getDataGenerator()->create_module('h5pactivity', ['course' => $course->id]); - $this->getDataGenerator()->create_module('assign', ['course' => $course->id]); + $this->getDataGenerator()->create_module('assign', ['course' => $course->id, 'name' => 'Assignment & grade items']); $result = get_gradeitems::execute($course->id); $result = external_api::clean_returnvalue(get_gradeitems::execute_returns(), $result);