Commit Graph

481 Commits

Author SHA1 Message Date
Carlos Castillo b90456e62e MDL-84955 reportbuilder: Fix return type of deprecated functions 2025-03-20 17:38:59 +01:00
Sara Arjona 74fb6ec9d6 Merge branch 'MDL-83552' of https://github.com/dravek/moodle 2025-03-12 17:41:33 +01:00
Andrew Nicols b85b7a61ad Merge branch 'MDL-84789' of https://github.com/paulholden/moodle 2025-03-11 22:32:15 +08:00
Paul Holden b445a4ee1e MDL-84789 reportbuilder: consistent user name sort by aliased field.
More work built upon e76d99f2, we need to perform the alias processing
earlier to ensure that it works for system reports where user sorting
isn't the default.
2025-03-10 13:31:33 +00:00
Paul Holden 89738625b4 MDL-84537 reportbuilder: define optional 'separator' aggregation value.
For the group concatenation types, allow callers to define the text to
display between aggregated items. Use this to change the separator for
formatted tag names to be a space character.
2025-03-10 09:55:32 +00:00
David Carrillo c03f47abfd MDL-83552 reportbuilder: Add custom fields to Report builder 2025-03-10 08:21:10 +01:00
Paul Holden bfabec2b65 MDL-84537 reportbuilder: pass options to aggregation type constructor.
Amendments to the column class allow reports/entities to specify these
options for column instances, which are then passed to the aggregation
type when it is applied.
2025-03-09 20:18:54 +00:00
Andrew Nicols e7dd68201b Merge branch 'MDL-80173' of https://github.com/paulholden/moodle 2025-03-07 09:03:55 +08:00
Andrew Nicols 0f4cf18554 Merge branch 'MDL-82936' of https://github.com/paulholden/moodle 2025-03-07 09:01:41 +08:00
Paul Holden e44c23c982 MDL-82936 reportbuilder: implement report actions for existing reports.
Applied to the admin user listing page, and the report/schedule pages
to align the "New X" buttons.
2025-03-06 14:22:53 +00:00
Paul Holden c439e2d3c1 MDL-82936 reportbuilder: new APIs for enhancing report rendering.
We're introducing two new sets of APIs for both custom and system
reports:

* Report actions allow for the definition of an action to belong
  to the report and be rendered alongside the filters button;
* Report info container allows for the definition of content to
  render between the aforementioned action buttons and the table
  content itself
2025-03-06 14:22:53 +00:00
Sara Arjona 25a0af5c20 Merge branch 'MDL-84720' of https://github.com/paulholden/moodle 2025-03-06 15:02:01 +01:00
Andrew Nicols 035a92fa2c Merge branch 'MDL-84135' of https://github.com/paulholden/moodle 2025-03-06 09:09:06 +08:00
Mikel Martín 11657fe082 MDL-84692 theme_boost: Update .btn-icon class
- Update and improve styles for .btn-icon helper class for consistency.
- Added new $btn-icon-border-radius SCSS variable to cuztomize the btn-icon
border radius.
- Fix and simplify current .btn-icon usages
2025-03-04 10:23:00 +01:00
Paul Holden 19a9c8b70f MDL-84720 reportbuilder: note change of column sort field behaviour. 2025-03-03 16:10:25 +00:00
Huong Nguyen dec75083e0 Merge branch 'MDL-84527' of https://github.com/paulholden/moodle 2025-02-27 09:32:44 +07:00
Huong Nguyen ffc3c4116b Merge branch 'MDL-84213' of https://github.com/paulholden/moodle 2025-02-24 10:09:15 +07:00
Paul Holden b45d17ca30 MDL-80173 reportbuilder: remove various Oracle support/workarounds.
"True happiness is to rejoice in the
        <removal of Oracle compatibility>."

Reference: ba1f9cb2, 892b68d5, c63af985, 208adcf3, 9a244403, 3894fa94,
62d22c66, 628541b5, 429508a7.
2025-02-18 13:43:34 +00:00
Paul Holden 72421b1ed9 MDL-80173 reportbuilder: improve performance of date aggregation.
Due to Oracle re-factoring, we can improve the performance of date
aggregation by only executing the column supplied query once. We
can also improve the generated GROUP BY query to re-use the column
alias on supported DBs, rather than executing the aggregation again.
2025-02-18 13:43:34 +00:00
Paul Holden 5e5ee3397d MDL-84527 tag: add formatted tag name column to report entity. 2025-02-18 13:41:38 +00:00
Mikel Martín 5416483611 MDL-75669 theme_boost: Refactor BS5 data attributes
Data attributes for all Bootstrap5 JavaScript plugins are now namespaced
to help distinguish Bootstrap functionality from third parties and your own code.
For example, data-bs-toggle instead of data-toggle.
This commit refactor all old Bootstrap data-attributes to the new syntax.

Co-authored-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-14 09:10:33 +01:00
Jun Pataleta 6b9e75f685 Merge branch 'MDL-84016' of https://github.com/paulholden/moodle 2025-02-06 09:36:07 +08:00
Paul Holden dd3af70440 MDL-74488 reportbuilder: method for retrieving report row counts. 2025-02-05 17:38:21 +00:00
Paul Holden acc654e8ce MDL-84213 reportbuilder: add course "do not force" field options.
Where course entity select elements theme, language and calendar are
defined we should prepend with "Do not force" in order to match the
interface when editing the same fields.

The select filter has been updated to ensure it supports empty values
when switched to simplified version (a0ef4bb8) as well as improving
validation to ensure only present options can be used for filtering.
2025-01-31 09:45:16 +00:00
Sara Arjona 39a5efeace Merge branch 'MDL-84226' of https://github.com/paulholden/moodle 2025-01-29 16:22:11 +01:00
Paul Holden 0c090789f9 MDL-84016 reportbuilder: column methods for setting help icons.
This change exposes the underlying table library API for setting
help icon for table headers, via column instance getter/setter.

Support added for rendering said icons in system reports.
2025-01-29 11:50:10 +00:00
Paul Holden a743f4cf83 MDL-84226 user: add report entity filter for user picture presence. 2025-01-16 08:11:49 +00:00
Paul Holden d24b3b0049 MDL-84129 reportbuilder: improve handling of alternate name fields.
It's possible the first returned field contains a null value, while
subsequent fields may be non-null - in this case we should still
populate the fullname in column callback.
2025-01-13 16:03:23 +00:00
Paul Holden 3947e72ea6 MDL-84135 reportbuilder: support deprecated entity table replacement.
This expands upon original work in d73a827a and allows for an entity
to define replacements for deprecated table names. The previous format
defining only the deprecated table names themselves is also supported.
2025-01-09 10:49:43 +00:00
Paul Holden 952747912c MDL-83738 reportbuilder: allow aggregations to define calculated type.
This allows each class to define the type of data that they return,
regardless of the type of column to which they are applied. This is the
pre-cursor to work on graphing and filtering of aggregated data.

E.g. a text field that is aggregated with "count" is returning numeric
data rather than text.
2024-12-17 08:28:31 +00:00
Paul Holden 812975e218 MDL-83361 reportbuilder: date aggregation for timestamp columns.
This change introduces updates to the existing aggregation API, to
allow types to define whether to group by fields of a column to which
the aggregation is applied.

The new date aggregation utilises this, to allow for creation of time
series reports, e.g. report data grouped by dates.

Co-authored-by: Daniel Neis Araujo <danielneis@gmail.com>
2024-12-13 12:36:22 +00:00
Mikel Martín f9abc562f5 MDL-81825 theme_boost: Refactor .sr-only usages for BS5
- Add .visually-hidden to the Boostratp 5 bridge SCSS file
- Replace .sr-only occurrences with .visually-hidden
- Replace .dropzone-sr-only-focusable  with .dropzone-visually-hidden-focusable
  for consistency
2024-12-10 14:02:32 +01:00
Huong Nguyen 376a4b5f76 Merge branch 'MDL-83345' of https://github.com/paulholden/moodle 2024-12-05 12:05:12 +07:00
Paul Holden f7e0e8cd96 MDL-83345 reportbuilder: migrate filter storage from user preferences.
Use a dedicated persistent table/model for storage of a users' report
filter configuration.
2024-12-03 16:42:35 +00:00
Paul Holden e76d99f29d MDL-83718 reportbuilder: use aliased user fullname sort fields.
This is extending work started in 8f32e623 that removed duplicate
fields when sorting user fullname columns (to ensure compatibility
across supported DBs).

We must now refer to these sorted fields by their alias in order to
ensure they continue working when processed from the report table.

Co-authored-by: David Carrillo <davidmc@moodle.com>
2024-12-03 13:17:41 +00:00
Huong Nguyen c0f349c034 Merge branch 'MDL-83718' of https://github.com/paulholden/moodle 2024-12-03 10:05:33 +07:00
Huong Nguyen bc89603638 Merge branch 'MDL-82913' of https://github.com/paulholden/moodle 2024-12-03 09:45:32 +07:00
Jun Pataleta 5d5cedc8ff Merge branch 'MDL-82475' of https://github.com/paulholden/moodle 2024-11-28 13:23:55 +08:00
Paul Holden a0ef4bb8fe MDL-82913 reportbuilder: simplify select filter for limited options.
Where the select filter contains upto two items (making it a binary
choice), then we can simplify the filter form elements to always
assume: "Equal to [ Option 1 | Option 2 ]".
2024-11-22 15:38:11 +00:00
Huong Nguyen 443871d320 Merge branch 'MDL-80430' of https://github.com/paulholden/moodle 2024-11-22 10:50:47 +07:00
Paul Holden 02186de904 MDL-83718 reportbuilder: use window count method to get table data.
Use the new "counted recordset" DML API from 42664ee49a to obtain
the raw table data for reports. For those databases with defined
support for count window functions, this should give a performance
benefit by combining the count and main query into one request.
2024-11-19 18:07:04 +00:00
Paul Holden 1317aee9e1 MDL-77065 reportbuilder: audience filter for the report access list. 2024-11-15 15:00:11 +00:00
Paul Holden f3cd1df6e1 MDL-80430 reportbuilder: final removal of default table aliases.
They've been auto-generated for some time now, and we can make the
newer `get_default_tables` method abstract to ensure it's always
implemented.
2024-11-15 10:21:45 +00:00
Jun Pataleta 3f5ecfead7 Merge branch 'MDL-77270' of https://github.com/dravek/moodle 2024-11-06 11:14:37 +08:00
Paul Holden 791eefd450 MDL-82088 reportbuilder: improve filtering by report schedule data. 2024-11-04 16:22:05 +00:00
Jun Pataleta 7e63510b03 Merge branch 'MDL-82809' of https://github.com/paulholden/moodle 2024-10-31 11:21:42 +07:00
Jun Pataleta 4af11fc37a Merge branch 'MDL-83202' of https://github.com/paulholden/moodle 2024-10-31 11:21:42 +07:00
David Carrillo 73a507507f MDL-77270 reportbuilder: Add ability to duplicate custom reports 2024-10-25 07:56:04 +02:00
Paul Holden 26bb378e88 MDL-82809 reportbuilder: always apply conditions to custom report.
Including those that are otherwise unavailable to the current user,
ensuring that they are always applied when viewing report output.
2024-10-16 10:51:36 +01:00
Paul Holden b1e9990de1 MDL-82475 reportbuilder: account for duplicate profile field names.
Long-term, it would be better to not allow this scenario to happen
at all but until then we'll have to work around it (see MDL-73461).
2024-10-16 09:33:10 +01:00