1 |
efrain |
1 |
This file describes API changes in /reportbuilder/*
|
|
|
2 |
Information provided here is intended especially for developers.
|
|
|
3 |
|
|
|
4 |
=== 4.4.1 ===
|
|
|
5 |
|
|
|
6 |
* New database helper method `sql_replace_parameters` to help ensure uniqueness of parameters within a SQL expression
|
|
|
7 |
|
|
|
8 |
=== 4.4 ===
|
|
|
9 |
|
|
|
10 |
* New methods `get_identity_[columns|filters]` in user entity, for retrieving all user identity field report elements
|
|
|
11 |
* Entity table aliases are now auto-generated, hence usage of the `get_default_table_aliases` method is now deprecated. Instead,
|
|
|
12 |
entities should implement the `get_default_tables` method to define the tables they use
|
|
|
13 |
* New method `get_table_aliases` in base entity class, for retrieving all table aliases in a single call
|
|
|
14 |
* The database helper `generate_alias[es]` and `generate_param_name[s]` methods now accept an optional `$suffix` argument for
|
|
|
15 |
appending additional string to the generated value
|
|
|
16 |
* The `get_name` method has been moved to the base report class and can now be implemented for both custom and system reports, it
|
|
|
17 |
will be used as the caption when rendering tables (which can also be targeted in Behat scenarios)
|
|
|
18 |
* The default value for the filename when calling `set_downloadable` is now taken from calling `get_name` on the current report
|
|
|
19 |
* The base datasource `add_all_from_entity` method accepts additional parameters to limit which columns, filters and conditions
|
|
|
20 |
are added. The `add_[columns|filters|conditions]_from_entity` class methods also now support wildcard matching in both `$include`
|
|
|
21 |
and `$exclude` parameters
|
|
|
22 |
* Custom reports now implement the tag API, with options for specifying in the `report::[create|update]_report` helper methods
|
|
|
23 |
as well as in the `create_report` test generator method
|
|
|
24 |
* The `tags` filter has been improved to also allow for filtering by component/itemtype core_tag definition - this is more
|
|
|
25 |
suited for system reports
|
|
|
26 |
* New report filter types:
|
|
|
27 |
- `cohort` for reports containing cohort data
|
|
|
28 |
- `courserole` for reports showing course enrolments
|
|
|
29 |
- `filesize` for reports containing filesize data
|
|
|
30 |
|
|
|
31 |
=== 4.3 ===
|
|
|
32 |
|
|
|
33 |
* New external methods for retrieving system report data:
|
|
|
34 |
- `core_reportbuilder_can_view_system_report`
|
|
|
35 |
- `core_reportbuilder_retrieve_system_report`
|
|
|
36 |
* New `get_tag_joins_for_entity` helper in base entity class, for returning SQL joins necessary for retrieving tags
|
|
|
37 |
* New methods `[set|has]_table_join_alias` in the base entity class, to allow entities to reduce joins on the same table
|
|
|
38 |
* New `set_is_deprecated` method in base `local\report\[column|filter]` classes to deprecate report entity columns and filters
|
|
|
39 |
* The following report entity columns have been deprecated, with replacements as follows:
|
|
|
40 |
- `comment:context` => `context:name`
|
|
|
41 |
- `comment:contexturl` => `context:link`
|
|
|
42 |
- `enrolment:method` => `enrol:name` (plus enrolment formatter `enrolment_name` method)
|
|
|
43 |
- 'enrolment:role` => `role:name`
|
|
|
44 |
- `file:context` => `context:name`
|
|
|
45 |
- `file:contexturl` => `context:link`
|
|
|
46 |
- `instance:context` (tag) => `context:name`
|
|
|
47 |
- `instance:contexturl` (tag) => `context:link`
|
|
|
48 |
* The following report entity filters/conditions have been deprecated, with replacements as follows:
|
|
|
49 |
- `enrolment:method` => `enrol:plugin`
|
|
|
50 |
* The `local/audience/form` template outer region has renamed some of it's `data-` attributes (relevant for any themes that
|
|
|
51 |
have overridden this template):
|
|
|
52 |
- `data-instanceid` => `data-audience-id`
|
|
|
53 |
- `data-title` => `data-audience-title`
|
|
|
54 |
* The `add_base_condition_sql` method of the base report class will now ignore empty where clauses
|
|
|
55 |
* If a non-default column is specified in a datasource `get_default_column_sorting` method, a coding exception will be thrown
|
|
|
56 |
* Trying to add/annotate duplicate entity names to a report will now throw a coding exception
|
|
|
57 |
* The `get_default_entity_name` method of the base entity class is now private, and shouldn't be overridden in extending classes
|
|
|
58 |
* The report helper methods `add_report_[condition|filter]` now throw an exception when trying to add duplicate conditions or
|
|
|
59 |
filters to a report
|
|
|
60 |
* Two new methods:
|
|
|
61 |
- `get_default_no_results_notice` and
|
|
|
62 |
- `set_default_no_results_notice`
|
|
|
63 |
have been added to core_reportbuilder\local\report\base, allowing report implementations to control what lang string is used in
|
|
|
64 |
the notice when the report has no results. Reports can either set a preferred lang string, or pass null if the notice isn't
|
|
|
65 |
required in that particular report.
|
|
|
66 |
|
|
|
67 |
=== 4.2 ===
|
|
|
68 |
|
|
|
69 |
* New method `set_checkbox_toggleall` in system report class to allow reports to easily create checkbox toggle columns
|
|
|
70 |
* Column callbacks are now passed a fourth argument to indicate the aggregation type currently being applied, which allows
|
|
|
71 |
for columns to define how the aggregated data is displayed
|
|
|
72 |
* New methods `[add|get]_attributes` added to report base class, for including custom attributes in report container HTML
|
|
|
73 |
* New database helper method `sql_replace_parameter_names` to help ensure uniqueness of parameters within an expression (where
|
|
|
74 |
that expression can be used multiple times as part of a larger query)
|
|
|
75 |
* The local report filter class has a new `get_field_sql_and_params` method which should be used by filter types that re-use
|
|
|
76 |
the filter field SQL within their generated expression, to ensure SQL containing parameters works correctly
|
|
|
77 |
* The following attributes can be added to custom reports in order to control card view display (via the `add_attributes` method):
|
|
|
78 |
- `data-force-card` to force cards view
|
|
|
79 |
- `data-force-table` to force table view
|
|
|
80 |
* New optional parameter `pagesize` in external method `core_reportbuilder_reports_get` to set the displayed rows per page.
|
|
|
81 |
* Javascript reports repository module method `getReport` updated to accept new pagesize parameter.
|
|
|
82 |
* The schedule helper `create_schedule` method accepts a `$timenow` parameter to use for comparisons against current date
|
|
|
83 |
during tests
|
|
|
84 |
* The `datasource_stress_test_columns` test helper now enables sorting on those columns that support it
|
|
|
85 |
* The `create_[column|filter|condition]` test generator methods now allow for setting all persistent properties
|
|
|
86 |
* The `get_category` method of the base audience class has been deprecated, callers should instead use `get_component_displayname`
|
|
|
87 |
|
|
|
88 |
=== 4.1 ===
|
|
|
89 |
|
|
|
90 |
* New method `add_action_divider()` in base system report class, to allow adding a divider to the action menu.
|
|
|
91 |
* New external method `core_reportbuilder_set_filters` for setting report filter values (plus `setFilters` AJAX repository
|
|
|
92 |
export for calling from Javascript modules)
|
|
|
93 |
* New method `set_filter_form_default` in base system report class, to override whether the default filters form
|
|
|
94 |
should be shown for a report
|
|
|
95 |
* The external `core_reportbuilder_filters_reset` method now accepts an optional `parameters` argument, required by
|
|
|
96 |
some system reports
|
|
|
97 |
* New external methods for retrieving custom report data:
|
|
|
98 |
- `core_reportbuilder_list_reports`
|
|
|
99 |
- `core_reportbuilder_retrieve_report`
|
|
|
100 |
- `core_reportbuilder_view_report`
|
|
|
101 |
* For consistency, the following entity classes have moved namespace (usage of previous namespace will generate debugging):
|
|
|
102 |
- `core_admin\{ => reportbuilder}\local\entities\task_log`
|
|
|
103 |
- `core_cohort\{ => reportbuilder}\local\entities\cohort`
|
|
|
104 |
- `core_cohort\{ => reportbuilder}\local\entities\cohort_member`
|
|
|
105 |
- `core_course\{ => reportbuilder}\local\entities\course_category`
|
|
|
106 |
- `report_configlog\{ => reportbuilder}\local\entities\config_change`
|
|
|
107 |
* 'set_default_per_page' and 'get_default_per_page' methods have been added to \local\report\base class
|
|
|
108 |
to manage the default displayed rows per page.
|
|
|
109 |
* Added two new methods in the datasource class:
|
|
|
110 |
- add_all_from_entity() to add all columns/filters/conditions from the given entity to the report at once
|
|
|
111 |
- add_all_from_entities() to add all columns/filters/conditions from all the entities added to the report at once
|
|
|
112 |
* New database helper methods for generating multiple unique values: `generate_aliases` and `generate_param_names`
|
|
|
113 |
* The base aggregation `format_value` method has a `$columntype` argument in order to preserve type during aggregation. When
|
|
|
114 |
defining column callbacks, strict typing will now be preserved in your callback methods when the column is being aggregated
|
|
|
115 |
* The method `get_joins()` in the base entity class is now public, allowing for easier joins within reports
|
|
|
116 |
* New method `set_table_aliases` in base entity class, for overriding multiple table aliases in a single call
|
|
|
117 |
* The following local helper methods have been deprecated, their implementation moved to exporters:
|
|
|
118 |
- `audience::get_all_audiences_menu_types` -> `custom_report_audience_cards_exporter`
|
|
|
119 |
- `report::get_available_columns` -> `custom_report_column_cards_exporter`
|
|
|
120 |
* The `custom_report_exporter` class now defines its editor element properties as optional, rather than each of those exporters
|
|
|
121 |
defining their own properties as optional. In turn, this means the structure of the following external methods will always be
|
|
|
122 |
present and consistent:
|
|
|
123 |
- `core_reportbuilder_columns_*`
|
|
|
124 |
- `core_reportbuilder_conditions_*`
|
|
|
125 |
- `core_reportbuilder_filters_*`
|
|
|
126 |
* The `custom_report_*` exporters now accept only classes that extend datasource as part of their related data properties
|
|
|
127 |
* The following permission methods now accept an optional `$context` parameter (default system context):
|
|
|
128 |
- `[require_]can_view_reports_list`
|
|
|
129 |
- `[require_]can_create_report`
|
|
|
130 |
* New method `get_default_condition_values()` in base datasource class, to be overridden by sources that wish to
|
|
|
131 |
define default values for conditions upon report creation.
|
|
|
132 |
* New methods `get_identity_[column|filter]` in user entity, for retrieving user identity field report elements
|
|
|
133 |
* New method `user_reports_list_access_sql` in audience helper for retrieving list of all reports for given user
|
|
|
134 |
* New report filter types:
|
|
|
135 |
- `category` for reports containing course categories
|
|
|
136 |
- `tags` for reports containing entities with support for core_tag API
|
|
|
137 |
- `autocomplete` for reports that contain pre-defined values for selection.
|
|
|
138 |
* New method `get_sample_values()` added to base filter class, to be overridden in all filter types to support stress testing
|
|
|
139 |
* New test helpers for automated stress testing of report sources:
|
|
|
140 |
- `datasource_stress_test_columns`
|
|
|
141 |
- `datasource_stress_test_columns_aggregation`
|
|
|
142 |
- `datasource_stress_test_conditions`
|
|
|
143 |
* The test helper method `get_custom_report_content()` now accepts a list of filter values and applies them to the report
|
|
|
144 |
* New method `get_default_column_sorting` in base datasource class, to be overridden by sources that wish to
|
|
|
145 |
define default columns sort order upon report creation.
|