From 5961c2d9cd9627a71c350e407e748eedb3b2b2ca Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Wed, 18 Jan 2023 19:33:28 +0000 Subject: [PATCH] MDL-76471 enrol: report filter on enrolment instance custom name. --- .../datasource/participants_test.php | 16 ++++++++++++++++ .../reportbuilder/local/entities/enrol.php | 12 +++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/course/tests/reportbuilder/datasource/participants_test.php b/course/tests/reportbuilder/datasource/participants_test.php index eb0bf7fd3f1..85fbcbf4a47 100644 --- a/course/tests/reportbuilder/datasource/participants_test.php +++ b/course/tests/reportbuilder/datasource/participants_test.php @@ -24,6 +24,7 @@ use core_reportbuilder\local\filters\boolean_select; use core_reportbuilder\local\filters\date; use core_reportbuilder\local\filters\duration; use core_reportbuilder\local\filters\select; +use core_reportbuilder\local\filters\text; use core_reportbuilder_generator; use core_reportbuilder_testcase; use grade_item; @@ -281,6 +282,21 @@ class participants_test extends core_reportbuilder_testcase { ], ['Lionel', 'Kira', 'Luna'], ], + [ + 'enrol:customname', + [ + 'enrol:customname_operator' => text::IS_EMPTY, + ], + ['Luna', 'Kira', 'Lionel'], + ], + [ + 'enrol:customname', + [ + 'enrol:customname_operator' => text::IS_EQUAL_TO, + 'enrol:customname_value' => 'All night long' + ], + [], + ], [ 'role:name', [ diff --git a/enrol/classes/reportbuilder/local/entities/enrol.php b/enrol/classes/reportbuilder/local/entities/enrol.php index a30f8bebea9..7d6f4eff505 100644 --- a/enrol/classes/reportbuilder/local/entities/enrol.php +++ b/enrol/classes/reportbuilder/local/entities/enrol.php @@ -20,7 +20,7 @@ use enrol_plugin; use lang_string; use stdClass; use core_reportbuilder\local\entities\base; -use core_reportbuilder\local\filters\{boolean_select, date, duration, select}; +use core_reportbuilder\local\filters\{boolean_select, date, duration, select, text}; use core_reportbuilder\local\helpers\format; use core_reportbuilder\local\report\{column, filter}; @@ -205,6 +205,16 @@ class enrol extends base { }, enrol_get_plugins(true)); }); + // Custom name filter. + $filters[] = (new filter( + text::class, + 'customname', + new lang_string('custominstancename', 'core_enrol'), + $this->get_entity_name(), + "{$enrolalias}.name" + )) + ->add_joins($this->get_joins()); + // Enabled filter. $filters[] = (new filter( boolean_select::class,