MDL-78835 group: include custom fields in related report entities.
This commit is contained in:
@@ -18,6 +18,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace core_group\reportbuilder\datasource;
|
||||
|
||||
use core_customfield_generator;
|
||||
use core_reportbuilder_generator;
|
||||
use core_reportbuilder_testcase;
|
||||
use core_reportbuilder\local\filters\{boolean_select, date, select, text};
|
||||
@@ -114,16 +115,37 @@ class groups_test extends core_reportbuilder_testcase {
|
||||
*/
|
||||
public function test_datasource_non_default_columns(): void {
|
||||
$this->resetAfterTest();
|
||||
$this->setAdminUser();
|
||||
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$user = $this->getDataGenerator()->create_and_enrol($course, 'student');
|
||||
|
||||
$group = $this->getDataGenerator()->create_group(['courseid' => $course->id, 'idnumber' => 'G101', 'enrolmentkey' => 'S',
|
||||
'description' => 'My group']);
|
||||
/** @var core_customfield_generator $generator */
|
||||
$generator = $this->getDataGenerator()->get_plugin_generator('core_customfield');
|
||||
|
||||
// Create group with custom field, and single group member.
|
||||
$groupfieldcategory = $generator->create_category(['component' => 'core_group', 'area' => 'group']);
|
||||
$generator->create_field(['categoryid' => $groupfieldcategory->get('id'), 'shortname' => 'hi']);
|
||||
|
||||
$group = $this->getDataGenerator()->create_group([
|
||||
'courseid' => $course->id,
|
||||
'idnumber' => 'G101',
|
||||
'enrolmentkey' => 'S',
|
||||
'description' => 'My group',
|
||||
'customfield_hi' => 'Hello',
|
||||
]);
|
||||
$this->getDataGenerator()->create_group_member(['userid' => $user->id, 'groupid' => $group->id]);
|
||||
|
||||
$grouping = $this->getDataGenerator()->create_grouping(['courseid' => $course->id, 'idnumber' => 'GR101',
|
||||
'description' => 'My grouping']);
|
||||
// Create grouping with custom field, and single group.
|
||||
$groupingfieldcategory = $generator->create_category(['component' => 'core_group', 'area' => 'grouping']);
|
||||
$generator->create_field(['categoryid' => $groupingfieldcategory->get('id'), 'shortname' => 'bye']);
|
||||
|
||||
$grouping = $this->getDataGenerator()->create_grouping([
|
||||
'courseid' => $course->id,
|
||||
'idnumber' => 'GR101',
|
||||
'description' => 'My grouping',
|
||||
'customfield_bye' => 'Goodbye',
|
||||
]);
|
||||
$this->getDataGenerator()->create_grouping_group(['groupingid' => $grouping->id, 'groupid' => $group->id]);
|
||||
|
||||
/** @var core_reportbuilder_generator $generator */
|
||||
@@ -142,6 +164,7 @@ class groups_test extends core_reportbuilder_testcase {
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'group:picture']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'group:timecreated']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'group:timemodified']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'group:customfield_hi']);
|
||||
|
||||
// Grouping.
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'grouping:name']);
|
||||
@@ -149,6 +172,7 @@ class groups_test extends core_reportbuilder_testcase {
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'grouping:description']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'grouping:timecreated']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'grouping:timemodified']);
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'grouping:customfield_bye']);
|
||||
|
||||
// Group member.
|
||||
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'group_member:timeadded']);
|
||||
@@ -170,11 +194,13 @@ class groups_test extends core_reportbuilder_testcase {
|
||||
$grouppicture,
|
||||
$grouptimecreated,
|
||||
$grouptimemodified,
|
||||
$groupcustomfield,
|
||||
$groupingname,
|
||||
$groupingidnumber,
|
||||
$groupingdescription,
|
||||
$groupingtimecreated,
|
||||
$groupingtimemodified,
|
||||
$groupingcustomfield,
|
||||
$groupmembertimeadded,
|
||||
$groupmemebercomponent,
|
||||
$userusername,
|
||||
@@ -189,11 +215,13 @@ class groups_test extends core_reportbuilder_testcase {
|
||||
$this->assertEmpty($grouppicture);
|
||||
$this->assertNotEmpty($grouptimecreated);
|
||||
$this->assertNotEmpty($grouptimemodified);
|
||||
$this->assertEquals('Hello', $groupcustomfield);
|
||||
$this->assertEquals($grouping->name, $groupingname);
|
||||
$this->assertEquals('GR101', $groupingidnumber);
|
||||
$this->assertEquals(format_text($grouping->description), $groupingdescription);
|
||||
$this->assertNotEmpty($groupingtimecreated);
|
||||
$this->assertNotEmpty($groupingtimemodified);
|
||||
$this->assertEquals('Goodbye', $groupingcustomfield);
|
||||
$this->assertNotEmpty($groupmembertimeadded);
|
||||
$this->assertEmpty($groupmemebercomponent);
|
||||
$this->assertEquals($user->username, $userusername);
|
||||
|
||||
Reference in New Issue
Block a user