Commit Graph

338 Commits

Author SHA1 Message Date
Sara Arjona 53a9613bab Merge branch 'MDL-80014' of https://github.com/paulholden/moodle 2024-01-10 16:10:08 +01:00
Huong Nguyen e6b01af686 Merge branch 'MDL-80329' of https://github.com/paulholden/moodle 2023-12-18 14:02:55 +07:00
Paul Holden 8f32e623bb MDL-79270 reportbuilder: remove duplicate columns from order clause.
This works around a problem in SQL Server, which caused it to throw a
DML exception if the same column is duplicated in `ORDER BY` clause.
2023-12-13 17:17:54 +00:00
Paul Holden e56e9cd6de MDL-80329 reportbuilder: trim whitespace in text filter content. 2023-12-13 10:15:32 +00:00
Paul Holden bf39fc43b4 MDL-80014 reportbuilder: entity method to retrieve all table aliases. 2023-12-13 10:06:19 +00:00
Sara Arjona b45cf43e0c Merge branch 'MDL-79270' of https://github.com/dravek/moodle 2023-12-12 17:32:47 +01:00
Ilya Tregubov 00cb0be5cb Merge branch 'MDL-79397' of https://github.com/paulholden/moodle 2023-12-12 09:28:53 +08:00
David Carrillo f76a518cb1 MDL-79270 user: New 'Browse list of users' system report
- The report 'Browse list of users' has been converted to use Report
Builder.
- Behat tests have been fixed and some test have been deleted for not
being relevant anymore.
2023-12-11 12:36:54 +01:00
David Carrillo b0c89b310e MDL-79270 reportbuilder: Add lastip column/filter to user RB entity 2023-12-11 12:35:58 +01:00
Paul Holden 7143cf4cbc MDL-79397 reportbuilder: update existing entity table definitions. 2023-12-07 17:19:01 +00:00
Paul Holden fb53d081da MDL-79397 reportbuilder: always auto-generate entity table aliases.
As the number of report entity classes has grown, each having their own
manually defined table aliases, it becomes harder to ensure each of the
aliases are always unique across report sources.

We can remove that burden by ensuring table aliases are automatically
generated upon request.
2023-12-07 17:19:01 +00:00
Sara Arjona 02b188d6c9 Merge branch 'MDL-79216' of https://github.com/paulholden/moodle 2023-12-05 16:46:10 +01:00
Paul Holden 176ed8e798 MDL-80254 reportbuilder: better handling of deleted users in schedules.
We should verify that schedule and audience users are active accounts,
and that we don't try to send report schedules either from/to them if
they aren't.
2023-12-04 09:48:39 +00:00
Paul Holden 9c8323c932 MDL-79216 reportbuilder: standardize on filter field unit lang string.
Replace/deprecate specific string identifier with generic version that
was introduced in the commit prior.

AMOS BEGIN
 CPY [filterdurationunit,core_reportbuilder],[filterfieldunit,core_reportbuilder]
AMOS END
2023-12-01 09:39:01 +00:00
Paul Holden 0d9b79fb20 MDL-79216 files: new report filter type for filesize data. 2023-12-01 09:39:01 +00:00
Paul Holden 6a9eadceb6 MDL-79998 reportbuilder: user entity method to get identity fields. 2023-11-10 10:22:51 +00:00
Ilya Tregubov 8d7511b230 Merge branch 'MDL-79446' of https://github.com/paulholden/moodle 2023-11-06 09:13:47 +08:00
Paul Holden 28134fe199 MDL-79446 reportbuilder: native support for parameter name suffixes. 2023-11-02 09:27:07 +00:00
Paul Holden da6ef4ac1d MDL-79705 reportbuilder: remove checkbox field callback handling.
We no longer need special handling of this field type, because it
now returns language strings rather than HTML markup for a checkbox
element on display.
2023-10-17 16:51:26 +01:00
Paul Holden e19c4e89d1 MDL-79446 reportbuilder: optional $suffix for generated alias/params.
Allows for, and documents, intended usage when the result of these
methods is used elsewhere (e.g. in `$DB->get_in_or_equal`).
2023-10-11 15:10:39 +01:00
Sara Arjona 999fbc3bdd Merge branch 'MDL-75855' of https://github.com/paulholden/moodle 2023-08-24 16:49:34 +02:00
Ilya Tregubov 60693cd9b6 Merge branch 'MDL-77067' of https://github.com/paulholden/moodle 2023-08-24 09:59:58 +08:00
Paul Holden b9a5a3626e MDL-77067 reportbuilder: indicate when audiences are used in schedules.
Indicate in each audience card whether it's used as part of a report
schedule, and inform user again upon deletion of said audience.
2023-08-23 16:09:17 +01:00
Paul Holden 8fe1f83fe1 MDL-75855 reportbuilder: don't allow condition/filter duplication.
Custom reports shouldn't allow the same condition and/or filter
instance to exist more that once per report.
2023-08-22 18:47:33 +01:00
Paul Holden 3ca41c77e4 MDL-76902 reportbuilder: entity method for defining table join alias. 2023-08-22 15:16:31 +01:00
Sara Arjona df5d62eac2 Merge branch 'MDL-78844' of https://github.com/paulholden/moodle 2023-08-17 09:10:51 +02:00
Sara Arjona 2bb12d9e2c Merge branch 'MDL-78758' of https://github.com/paulholden/moodle 2023-08-17 09:09:16 +02:00
Paul Holden c9f689ae6c MDL-78844 reportbuilder: external validate system report access method. 2023-08-09 13:49:27 +01:00
Sara Arjona 565d6a45a3 Merge branch 'MDL-78879' of https://github.com/paulholden/moodle 2023-08-08 13:04:30 +02:00
Paul Holden 9c108c8d88 MDL-78758 reportbuilder: stricter checking of source default sorting. 2023-08-07 10:21:51 +01:00
Ilya Tregubov c5bbb46886 Merge branch 'MDL-78807' of https://github.com/paulholden/moodle 2023-08-03 09:33:04 +08:00
Paul Holden e4e7e59d90 MDL-78807 reportbuilder: ensure report base conditions are non-empty. 2023-08-02 13:50:50 +01:00
Paul Holden 501a170cb6 MDL-78879 reportbuilder: allow for negation of category filter.
Add "Equal to" and "Not equal to" operators to the filter class.

AMOS BEGIN
 CPY [subcats,qtype_randomsamatch],[includesubcategories,moodle]
AMOS END
2023-08-02 12:26:54 +01:00
Andrew Nicols 30f7e50770 Merge branch 'MDL-78575-master' of https://github.com/snake/moodle 2023-08-01 09:38:15 +08:00
Paul Holden 36ab5e5d1a MDL-78532 reportbuilder: external method for retrieving system report. 2023-07-18 12:05:07 +01:00
Ilya Tregubov 254fd16dcd Merge branch 'MDL-75359' of https://github.com/paulholden/moodle 2023-07-11 09:29:20 +08:00
Jake Dallimore 348e347f79 MDL-78575 core_reportbuilder: allow reports to override the zerostate
Allow report implementations to control what is shown when no results
are found for the current report+filters. Allow setting to null to
allow calling code to omit this notice entirely.
2023-07-10 15:55:56 +08:00
Andrew Nicols 3d5afd6061 Merge branch 'MDL-75810' of https://github.com/paulholden/moodle 2023-07-09 22:23:29 +08:00
Paul Holden 2ffda63da8 MDL-75359 reportbuilder: fixes for custom/user profile field elements.
Ensures cross-DB compatibility for all types of both custom and user
profile fields, specifically when they're filtered and/or aggregated.

Implement stress testing of both via appropriate report sources.
2023-07-07 14:45:24 +01:00
Paul Holden d3f189d6db MDL-76769 reportbuilder: re-use custom field data table alias/joins.
Ensure that when a column/filter on the same custom field is used,
they each share a single join (see also 8f721652).
2023-06-29 08:11:45 +01:00
Paul Holden e8ae9680bc MDL-75810 reportbuilder: entity method for returning tag SQL joins. 2023-06-16 18:21:24 +01:00
Paul Holden 8ed7c78ecf MDL-78364 reportbuilder: earlier calculation of schedule recipients. 2023-06-05 16:22:28 +01:00
Paul Holden 8f7bff9789 MDL-76900 reportbuilder: allow for deprecation of entity elements.
Don't allow deprecated columns/filters to be added to new custom
reports. Where they already exist, emit deprecation debugging.
2023-05-17 08:02:06 +01:00
Paul Holden 5404200d9d MDL-76900 enrol: new enrolment method and role report entities.
The new entities encapsulate related data for easier re-use across
reports, and are also intended to replace similar columns/filters
from the current enrolment entity.
2023-05-15 14:12:31 +01:00
Sara Arjona 7fc14069ea Merge branch 'MDL-77614' of https://github.com/paulholden/moodle 2023-05-10 12:54:34 +02:00
Paul Holden 6312467346 MDL-77614 reportbuilder: throw exception if entity name already exists. 2023-04-25 12:55:09 +01:00
Paul Holden 7c7024af31 MDL-76971 reportbuilder: switch remaining classes to external_api.
Continues on the work started in a3cc26f8, to remove the last
remnants of usage of previous external API classes.
2023-04-25 08:50:47 +01:00
Paul Holden 5d0f34bde2 MDL-77555 reportbuilder: improve SQL generation within filters.
Use native ANSI SQL syntax for numeric comparisons where possible,
define filter API for the case where filters must re-use the given
field SQL while ensuring uniqueness of any field parameters.

Currently only necessary in the category filter type.
2023-04-05 09:37:37 +01:00
Paul Holden 4146329063 MDL-77555 reportbuilder: method to ensure unique parameters in SQL. 2023-03-27 10:29:25 +01:00
Sara Arjona 8975155060 Merge branch 'MDL-77705' of https://github.com/paulholden/moodle 2023-03-23 18:30:21 +01:00