Merge branch 'MDL-76354-401' of https://github.com/paulholden/moodle into MOODLE_401_...
[moodle.git] / reportbuilder / upgrade.txt
blob110cd00adadfcebbc25ab99c175125dc167e3dbc
1 This file describes API changes in /reportbuilder/*
2 Information provided here is intended especially for developers.
4 === 4.1.2 ===
6 * The schedule helper `create_schedule` method accepts a `$timenow` parameter to use for comparisons against current date
7   during tests
9 === 4.1.1 ===
11 * The `datasource_stress_test_columns` test helper now enables sorting on those columns that support it
12 * The `create_[column|filter|condition]` test generator methods now allow for setting all persistent properties
14 === 4.1 ===
16 * New method `add_action_divider()` in base system report class, to allow adding a divider to the action menu.
17 * New external method `core_reportbuilder_set_filters` for setting report filter values (plus `setFilters` AJAX repository
18   export for calling from Javascript modules)
19 * New method `set_filter_form_default` in base system report class, to override whether the default filters form
20   should be shown for a report
21 * The external `core_reportbuilder_filters_reset` method now accepts an optional `parameters` argument, required by
22   some system reports
23 * New external methods for retrieving custom report data:
24   - `core_reportbuilder_list_reports`
25   - `core_reportbuilder_retrieve_report`
26   - `core_reportbuilder_view_report`
27 * For consistency, the following entity classes have moved namespace (usage of previous namespace will generate debugging):
28   - `core_admin\{ => reportbuilder}\local\entities\task_log`
29   - `core_cohort\{ => reportbuilder}\local\entities\cohort`
30   - `core_cohort\{ => reportbuilder}\local\entities\cohort_member`
31   - `core_course\{ => reportbuilder}\local\entities\course_category`
32   - `report_configlog\{ => reportbuilder}\local\entities\config_change`
33 * 'set_default_per_page' and 'get_default_per_page' methods have been added to \local\report\base class
34   to manage the default displayed rows per page.
35 * Added two new methods in the datasource class:
36   - add_all_from_entity() to add all columns/filters/conditions from the given entity to the report at once
37   - add_all_from_entities() to add all columns/filters/conditions from all the entities added to the report at once
38 * New database helper methods for generating multiple unique values: `generate_aliases` and `generate_param_names`
39 * The base aggregation `format_value` method has a `$columntype` argument in order to preserve type during aggregation. When
40   defining column callbacks, strict typing will now be preserved in your callback methods when the column is being aggregated
41 * The method `get_joins()` in the base entity class is now public, allowing for easier joins within reports
42 * New method `set_table_aliases` in base entity class, for overriding multiple table aliases in a single call
43 * The following local helper methods have been deprecated, their implementation moved to exporters:
44   - `audience::get_all_audiences_menu_types` -> `custom_report_audience_cards_exporter`
45   - `report::get_available_columns` -> `custom_report_column_cards_exporter`
46 * The `custom_report_exporter` class now defines its editor element properties as optional, rather than each of those exporters
47   defining their own properties as optional. In turn, this means the structure of the following external methods will always be
48   present and consistent:
49   - `core_reportbuilder_columns_*`
50   - `core_reportbuilder_conditions_*`
51   - `core_reportbuilder_filters_*`
52 * The `custom_report_*` exporters now accept only classes that extend datasource as part of their related data properties
53 * The following permission methods now accept an optional `$context` parameter (default system context):
54   - `[require_]can_view_reports_list`
55   - `[require_]can_create_report`
56 * New method `get_default_condition_values()` in base datasource class, to be overridden by sources that wish to
57   define default values for conditions upon report creation.
58 * New methods `get_identity_[column|filter]` in user entity, for retrieving user identity field report elements
59 * New method `user_reports_list_access_sql` in audience helper for retrieving list of all reports for given user
60 * New report filter types:
61   - `category` for reports containing course categories
62   - `tags` for reports containing entities with support for core_tag API
63   - `autocomplete` for reports that contain pre-defined values for selection.
64 * New method `get_sample_values()` added to base filter class, to be overridden in all filter types to support stress testing
65 * New test helpers for automated stress testing of report sources:
66   - `datasource_stress_test_columns`
67   - `datasource_stress_test_columns_aggregation`
68   - `datasource_stress_test_conditions`
69 * The test helper method `get_custom_report_content()` now accepts a list of filter values and applies them to the report
70 * New method `get_default_column_sorting` in base datasource class, to be overridden by sources that wish to
71   define default columns sort order upon report creation.