Commit Graph

20 Commits

Author SHA1 Message Date
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 dd3af70440 MDL-74488 reportbuilder: method for retrieving report row counts. 2025-02-05 17:38:21 +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
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
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 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 9b827c09ce MDL-81434 reportbuilder: ensure filter/condition parameter uniqueness.
This change fixes an edge case that could be triggered by creating a
custom report that contained a filter instance that was active as both
a filter and condition, where the filter instance provides parameters
to it's SQL fragment.

There is only one such filter present currently with which we can test
this, see 2f9001cbe9.
2024-05-10 09:48:52 +01:00
Paul Holden 1acca870d9 MDL-80912 reportbuilder: output table caption when rendering reports.
Move the `get_name` method to the base report class, so that it can be
implemented by all report types. Provide a default implementation for
system reports based on the name of the class.

Use the name of the report as the caption. Target via Behat selectors.
2024-02-19 11:57:51 +00: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
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
Paul Holden 5b353b73d6 MDL-72058 reportbuilder: replace custom dataformat export format.
The formatting of exported dataformat content is now always dependent
on whether the format supports HTML or not, so we no longer need our
custom export class for providing the same.
2022-10-03 09:16:06 +01:00
Paul Holden 8a657e6d23 MDL-74140 reportbuilder: debugging panel while editing reports. 2022-09-12 10:36:48 +01:00
Bas Brands 729ae8f096 MDL-73902 theme_boost: prevent dropdowns being cut off 2022-03-03 09:44:33 +01:00
Paul Holden a73d989a65 MDL-73682 reportbuilder: allow columns to define how they're sorted. 2022-02-02 10:17:56 +00:00
Paul Holden 98e7d99720 MDL-73468 reportbuilder: observe configured sorting when editing.
Users preferred sorting (via clicking on column headers) should only
take effect when pre/viewing the report, not when editing it.
2021-12-30 11:35:07 +00:00
Paul Holden 7d753bed0b MDL-73275 reportbuilder: dataformat exporter for downloading.
If the current dataformat doesn't support HTML then clean the text
and remove all tags.
2021-12-06 10:41:29 +00:00
David Matamoros 0457fb6675 MDL-70795 reportbuilder: allow user to view custom reports.
Reports can be viewed via two methods. Non-editing users can
access them via their report listing page, and report editors
can switch between editing and preview mode while working on
their reports.

Clean up remaining string definitions.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2021-10-19 13:57:30 +01:00
David Matamoros 09b69d04e3 MDL-70795 reportbuilder: custom report filters editor.
Implement module for filters editing, allowing the report
editor to define which filters are available when users
are viewing the report.

These filters allow those users viewing the report to further
limit the data being displayed (after conditions have been
applied), by selecting their own values for each filter.

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-10-19 13:56:04 +01:00
Paul Holden ab596ec11a MDL-70795 reportbuilder: custom report condition editor.
Report conditions allow report creators to limit which data
is displayed when the report is viewed. Users viewing the
report cannot override these condition values.
2021-10-19 13:56:04 +01:00
Paul Holden 8ca9e04f9a MDL-70795 reportbuilder: beginnings of the report editor.
Implement UI elements for editing columns of a report, taking their
definitions from the selected datasource.

Co-authored-By: David Matamoros <davidmc@moodle.com>
Co-authored-By: Mikel Martín <mikel@moodle.com>
2021-10-19 13:56:02 +01:00