Commit Graph

15 Commits

Author SHA1 Message Date
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 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 d834accd90 MDL-77705 reportbuilder: avoid re-using field alias between entities.
Ensure that when the user entity is added multiple times to a report,
when there are custom profile fields, each of those gets a unique table
alias per-entity.
2023-03-21 16:43:00 +00:00
Paul Holden 65c4ae7bda MDL-76873 reportbuilder: correct checks for profile field visibility. 2023-02-20 09:22:00 +00:00
Paul Holden 147c31800b MDL-75345 reportbuilder: improve course/user custom report tests.
Ensure column and filters provided by each source have sufficient
coverage. Re-factor individual entity/helper class tests to test
their own specific implementation only.

Remove now-defunct test fixtures.
2023-02-01 15:41:32 +00:00
Paul Holden 8f72165233 MDL-75733 reportbuilder: re-use user field data table alias/joins.
Ensure that when a column/filter on the same user profile field is
used, they share a single join.
2022-10-04 11:46:01 +01:00
Paul Holden 208adcf3d1 MDL-73938 reportbuilder: better Oracle support of long text columns.
Specifically during column grouping/aggregation, we need to avoid CLOB
datatype inconsistencies (ORA-00932).
2022-09-05 12:08:54 +01:00
Paul Holden 0d1aadc361 MDL-75290 reportbuilder: show user identity data on access tab.
Observe configured user identity for the site to determine additional
columns and filters to display on custom report access tab.
2022-07-28 20:35:34 +01:00
Paul Holden d0d749289d MDL-74477 reportbuilder: sortable custom user profile field columns. 2022-04-11 14:58:30 +01:00
Paul Holden 628541b5e1 MDL-73493 reportbuilder: correct handling of empty string in filters.
This is specifically for Oracle, which treats empty strings and NULL
in an inconsistent manner unless passed as query parameters. Increase
test coverage of the same.

Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2022-01-21 15:43:01 +00:00
Carlos Castillo 3d8620854a MDL-73493 reportbuilder: Consider users without profile field defined
Include users who haven't defined text/checkbox custom profile field
in filter operators: 'Is not empty', 'Does not contain' and 'Is not equal to'.
2022-01-19 08:47:26 -05:00
Paul Holden 8bed417833 MDL-73280 reportbuilder: format checkbox profile fields correctly. 2021-12-09 14:09:44 +00:00
Paul Holden 805b9521fc MDL-73280 reportbuilder: remove profile field column alias.
It's not required, and also could cause issues for fields that
contained differing casing in their shortname.

Co-authored-by: David Matamoros <davidmc@moodle.com>
2021-12-09 12:42:40 +00:00
Sara Arjona 7a63ff9f0b MDL-70794 reportbuilder: introduce the concept of report entities.
Entities are re-usable collections of report columns and filters. When
creating system reports, we can re-use those elements from entities
without having to know specific details about their implementation.

They can be joined to reports, or other entities, using standard SQL
query syntax.

Define base classes, and create two example entities: course and user.

Co-Authored-By: David Matamoros <davidmc@moodle.com>
2021-07-28 16:40:50 +01:00