From a502fbcd1ee64351cbf97f970a848cda104106d0 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Wed, 1 Nov 2023 13:05:59 +0000 Subject: [PATCH] MDL-79962 roles: consistent sorting of role entity name column. The "name" field is typically omitted for default/pre-defined roles, which should be accounted for when sorting. --- admin/roles/classes/reportbuilder/local/entities/role.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/roles/classes/reportbuilder/local/entities/role.php b/admin/roles/classes/reportbuilder/local/entities/role.php index 125ec87dd8c..34a699349c6 100644 --- a/admin/roles/classes/reportbuilder/local/entities/role.php +++ b/admin/roles/classes/reportbuilder/local/entities/role.php @@ -97,7 +97,7 @@ class role extends base { ->set_type(column::TYPE_TEXT) ->add_fields("{$rolealias}.name, {$rolealias}.shortname, {$rolealias}.id, {$contextalias}.id AS contextid") ->add_fields(context_helper::get_preload_record_columns_sql($contextalias)) - ->set_is_sortable(true) + ->set_is_sortable(true, ["CASE WHEN {$rolealias}.name = '' THEN {$rolealias}.shortname ELSE {$rolealias}.name END"]) ->set_callback(static function($name, stdClass $role): string { if ($name === null) { return '';