MDL-83645 grade: fix text formatting in external grading form method.

This commit is contained in:
Paul Holden 2024-11-06 08:25:36 +00:00
parent 71f5b521e9
commit 29cc42a867
No known key found for this signature in database
GPG Key ID: A81A96D6045F6164
2 changed files with 15 additions and 10 deletions

View File

@ -364,6 +364,7 @@ class core_grading_external extends external_api {
'warningcode' => '1'
);
}
foreach ($activeinstances as $activeinstance) {
$instance = array();
$instance['id'] = $activeinstance->get_id();
@ -371,17 +372,17 @@ class core_grading_external extends external_api {
$instance['itemid'] = $activeinstance->get_data('itemid');
$instance['rawgrade'] = $activeinstance->get_data('rawgrade');
$instance['status'] = $activeinstance->get_data('status');
$instance['feedback'] = $activeinstance->get_data('feedback');
$instance['feedbackformat'] = $activeinstance->get_data('feedbackformat');
// Format the feedback text field.
$formattedtext = \core_external\util::format_text($activeinstance->get_data('feedback'),
[$instance['feedback'], $instance['feedbackformat']] = \core_external\util::format_text(
$activeinstance->get_data('feedback'),
$activeinstance->get_data('feedbackformat'),
$context->id,
$context,
$area->component,
'feedback',
$params['definitionid']);
$instance['feedback'] = $formattedtext[0];
$instance['feedbackformat'] = $formattedtext[1];
$params['definitionid'],
);
$instance['timemodified'] = $activeinstance->get_data('timemodified');
if ($details != null && $getfilling != null) {

View File

@ -274,7 +274,8 @@ final class grading_external_test extends \externallib_advanced_testcase {
'raterid' => $USER->id,
'itemid' => $gid,
'status' => 1,
'feedbackformat' => 0,
'feedback' => 'Fabulous',
'feedbackformat' => FORMAT_HTML,
'timemodified' => 1
);
$instanceid = $DB->insert_record('grading_instances', $instance);
@ -297,9 +298,12 @@ final class grading_external_test extends \externallib_advanced_testcase {
$this->assertEquals($USER->id, $result['instances'][0]['raterid']);
$this->assertEquals($gid, $result['instances'][0]['itemid']);
$this->assertEquals(1, $result['instances'][0]['status']);
$this->assertEquals('Fabulous', $result['instances'][0]['feedback']);
$this->assertEquals(FORMAT_HTML, $result['instances'][0]['feedbackformat']);
$this->assertEquals(1, $result['instances'][0]['timemodified']);
$this->assertEquals(1, count($result['instances'][0]['rubric']));
$this->assertEquals(1, count($result['instances'][0]['rubric']['criteria']));
$this->assertCount(1, $result['instances'][0]['rubric']);
$this->assertCount(1, $result['instances'][0]['rubric']['criteria']);
$criteria = $result['instances'][0]['rubric']['criteria'];
$this->assertEquals($criterionid, $criteria[0]['criterionid']);
$this->assertEquals($levelid, $criteria[0]['levelid']);