Commit graph

124 commits

Author SHA1 Message Date
David Matamoros
39b90208e1 MDL-72757 reportbuilder: Events for CRUD operations on report models 2022-01-05 09:55:36 +01:00
Paul Holden
335f608abb MDL-72598 reportbuilder: tasks and API for report schedule delivery. 2021-12-21 09:44:43 +00:00
Paul Holden
a05683d027 MDL-72598 reportbuilder: interface elements for creating schedules.
Add new tab to the report editor, with system report, external API
and Javascript modules for managing report schedules.
2021-12-21 08:57:17 +00:00
Víctor Déniz
3eafc7a1bc Merge branch 'MDL-73280' of git://github.com/paulholden/moodle 2021-12-13 18:44:10 +00:00
Paul Holden
8bed417833 MDL-73280 reportbuilder: format checkbox profile fields correctly. 2021-12-09 14:09:44 +00:00
Eloy Lafuente (stronk7)
deb0e76eee MDL-73278 phpunit: Rename already namespaced classes to match file name
These are the only cases 100% safe to apply the renaming of the
testcase class names to match the file names.

All other cases are not safe, because they are missing namespace
and may enter into name conflicts. Adding namespaces is not as
simple as imagined because it implies to, also, add a good number
of modifications to core. See the issue for more details.
2021-12-07 23:54:29 +01:00
Paul Holden
881dccaa7d MDL-73069 reportbuilder: filter/condition for selecting user.
This allows a report creator to create personalised reports
according to the user who is viewing the report.
2021-11-22 09:17:52 +00:00
David Matamoros
aaa041a9bd MDL-73001 reportbuilder: Allow to set custom title to fullname columns 2021-11-08 13:54:41 +01:00
Ilya Tregubov
6b0b757124 Merge branch 'MDL-72961' of https://github.com/paulholden/moodle 2021-11-04 14:40:26 +02:00
Paul Holden
cac0068d88 MDL-72961 reportbuilder: move category elements to correct entity. 2021-11-01 15:44:14 +00:00
Jun Pataleta
6f7defeeb6 Merge branch 'MDL-72588' of git://github.com/dravek/moodle 2021-11-01 11:22:48 +08:00
David Matamoros
70085ef7ac MDL-72588 reportbuilder: implement audience helpers and classes.
Create the base audience class, to be extended by all audience types
across the site. Implement types allowing audiences to be created per
user, cohort or system role assignment.

The helper class is used for interrogating report audience instances
and retrieving access lists of those users able to view specific
reports.

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-10-29 12:28:24 +02:00
Paul Holden
5ec86bf501 MDL-72663 reportbuilder: improvements to column aggregation methods.
The group concatenation types now consistently sort the returned values
and support aggregating columns containing multiple fields and those
with defined callbacks.
2021-10-22 16:17:31 +01:00
Paul Holden
16a65f73e7 MDL-72663 reportbuilder: column API changes to improve aggregation.
Refinements to how columns can be defined in relation to available
aggregation methods:

* Disable aggregation types;
* Set column GROUP BY during aggregation;
* Defer column sorting to that of the aggregation method
2021-10-22 16:17:17 +01:00
Paul Holden
f47e89a9bd MDL-70795 reportbuilder: editor elements to set column aggregation.
Aggregation of report columns allows the report editor to perform
common types of data aggregation (concatenation, sum, count, etc)
on given columns.
2021-10-19 13:56:05 +01:00
David Matamoros
db7102eba5 MDL-70795 reportbuilder: report configuration for default sorting.
Co-authored-By: Mikel Martín <mikel@moodle.com>
2021-10-19 13:56:05 +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
e55abd713e MDL-72662 reportbuilder: add relative date options to date filter.
Allow user to filter dates relative to the current date, e.g dates
within the previous year, the current week or next month.
2021-10-03 11:53:11 +01:00
Paul Holden
bd258be549 MDL-67686 reportbuilder: new duration filter type.
This report filter can be used for filtering reports by given
duration, via selection of time value and unit (seconds, minutes,
hours, etc).
2021-09-24 08:14:37 +01: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
Paul Holden
514caaa4ea MDL-70794 reportbuilder: output components and classes.
This change contains most of the output components required for
reports such as exporters, templates, AMD modules.

Also included are classes within the component table namespace which
are required for extending the dynamic table API.
2021-07-28 16:40:50 +01:00
Paul Holden
93025be2e7 MDL-70794 reportbuilder: management and further utility classes.
We define the base classes and APIs for reports, that can contain
columns and filters instances themselves.
2021-07-28 16:40:50 +01:00
David Matamoros
2a20238924 MDL-70794 reportbuilder: implement report filters and filter types.
Implement base filter classes as well as commonly used filter types
(e.g. text, date, select, etc).

Filters are used in reports to allow users to narrow down the data
that is being displayed.

Co-Authored-By: Paul Holden <paulh@moodle.com>
2021-07-28 16:40:50 +01:00
Paul Holden
907ff8555f MDL-70794 reportbuilder: implement report column and action classes.
The column class encapsulates all data related to a report column. It
allows developers to define the type of data contained within it, in
addition to how that data is retrieved and formatted for users.

Report actions are used to define action elements that are added to
each report row. They define an icon and link, and can be used to
direct users to related pages according to the current row data.
2021-07-28 16:40:50 +01:00