484 Commits

Author SHA1 Message Date
Paul Holden
9300828cee
MDL-82132 user: re-factor code for generating dummy user fullname. 2025-04-15 16:00:46 +01:00
Mikel Martín
ad14d58dc5 MDL-85077 theme_boost: Fix responsive tables after BS5 upgrade
- Replace class 'no-overflow' with 'table-responsive' for responsive tables.
- Fix dropdown positioning inside responsive tables.
- Fix visually-hidden elements inside tables generating incorrect page scrolling.
2025-04-10 10:28:23 +02:00
Paul Holden
337e69545d
MDL-84985 reportbuilder: export report action attributes correctly.
When included as part of external response data, extra validation
was performed on the returned structure.
2025-03-24 08:31:52 +00:00
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