moodle/reportbuilder/UPGRADING.md
2024-12-19 20:07:48 +08:00

6.4 KiB

core_reportbuilder (subsystem) Upgrade notes

5.0dev

Added

  • New get_deprecated_tables method in base entity, to be overridden when an entity no longer uses a table (due to column/filter re-factoring, etc) in order to avoid breaking third-party reports

    For more information see MDL-78118

  • The base aggregation class has a new column_groupby method, to be implemented in aggregation types to determime whether report tables should group by the fields of the aggregated column

    For more information see MDL-83361

  • There is a new date aggregation type, that can be applied in custom and system reports

    For more information see MDL-83361

  • The core_reportbuilder_testcase class has been moved to new autoloaded core_reportbuilder\tests\core_reportbuilder_testcase location, affected tests no longer have to manually require /reportbuilder/tests/helpers.php

    For more information see MDL-84000

Changed

  • The get_active_conditions method of the base report class has a new $checkavailable parameter to determine whether to check the returned conditions availability

    For more information see MDL-82809

  • Report table instances no longer populate the countsql and countparams class properties. Instead calling code can access totalrows to obtain the same value, rather than manually counting via the prior properties

    For more information see MDL-83718

Removed

  • The following deprecated report entity elements have been removed:

    • comment:context
    • comment:contexturl
    • enrolment:method (plus enrolment formatter enrolment_name method)
    • 'enrolment:role`
    • file:context
    • file:contexturl
    • instance:context (tag)
    • instance:contexturl (tag)

    Use of the context table is also deprecated in the file and instance (tag) entities

    For more information see MDL-78118

  • Final removal of support for get_default_table_aliases method. Entities must now implement get_default_tables, which is now abstract, to define the tables they use

    For more information see MDL-80430

4.5

Added

  • The return type of the set_checkbox_toggleall callback, defined by system reports, can now be null. Use if the checkbox should not be shown for the row.

    For more information see MDL-52046

  • System reports now support native entity column aggregation via each columns set_aggregation() method

    For more information see MDL-76392

  • The following external methods now return tags data relevant to each custom report:

    • core_reportbuilder_list_reports
    • core_reportbuilder_retrieve_report

    For more information see MDL-81433

  • Added a new database helper method sql_replace_parameters to help ensure uniqueness of parameters within a SQL expression.

    For more information see MDL-81434

  • A new static method, \core_reportbuilder\local\helpers\format::format_time(), has been added for use in column callbacks that represent a duration of time (for example "3 days 4 hours").

    For more information see MDL-82466

  • The following methods have been moved from \core_reportbuilder\datasource class to its parent class \core_reportbuilder\base to make them available for use in system reports:

    • add_columns_from_entity()
    • add_filters_from_entity()
    • report_element_search()

    For more information see MDL-82529

Changed

  • In order to better support float values in filter forms, the following filter types now cast given SQL prior to comparison:

    • duration
    • filesize
    • number

    For more information see MDL-81168

  • The base datasource \core_reportbuilder\datasource::add_all_from_entities() method accepts a new optional array $entitynames parameter to specify which entities to add elements from.

    For more information see MDL-81330

  • All time-related code has been updated to the PSR-20 Clock interface, as such the following methods no longer accept a $timenow parameter (instead please use \core\clock dependency injection):

    • core_reportbuilder_generator::create_schedule
    • core_reportbuilder\local\helpers\schedule::create_schedule()
    • core_reportbuilder\local\helpers\schedule::calculate_next_send_time()

    For more information see MDL-82041

  • The following classes have been moved to use the new exception API as a L2 namespace:

    Old class New class
    \core_reportbuilder\report_access_exception \core_reportbuilder\exception\report_access_exception
    \core_reportbuilder\source_invalid_exception \core_reportbuilder\exception\source_invalid_exception
    \core_reportbuilder\source_unavailable_exception \core_reportbuilder\exception\source_unavailable_exception

    For more information see MDL-82133

Removed

  • Support for the following entity classes, renamed since 4.1, have now been removed completely:

    • \core_admin\local\entities\task_log
    • \core_cohort\local\entities\cohort
    • \core_cohort\local\entities\cohort_member
    • \core_course\local\entities\course_category
    • \report_configlog\local\entities\config_change

    For more information see MDL-74583

  • The following previously deprecated local helper methods have been removed and can no longer be used:

    • \core_reportbuilder\local\helpers\audience::get_all_audiences_menu_types()
    • \core_reportbuilder\local\helpers\report::get_available_columns()

    For more information see MDL-76690