Commit graph

384 commits

Author SHA1 Message Date
Paul Holden
171c615a1b MDL-73149 reportbuilder: update sorting options after aggregation.
Aggregation types can disable column sorting, e.g. both the current
group concatenation types. If such a type is selected for a column
we should update the report sorting options, ensuring that only those
columns that can be sorted are available for selection.
2021-12-01 09:12:07 +00:00
Jun Pataleta
3ae9f4cac3 Merge branch 'MDL-72822' of https://github.com/roland04/moodle 2021-12-01 11:27:06 +08:00
Eloy Lafuente (stronk7)
cee0949109 Merge branch 'MDL-73074' of https://github.com/paulholden/moodle 2021-11-29 23:14:48 +01:00
Mikel Martín
08d31c6657 MDL-72822 core_reportbuilder: Fix focus lost after applying changes
- Fix focus after adding conditions in the editor
- Fix focus after adding Filters in the editor
- Fix focus after applying sorting settings in editor
- Fix focus after selecting column aggregation in editor
2021-11-24 13:13:08 +01:00
Mikel Martín
8e25d534b4 MDL-72822 core_reportbuilder: Accessibility improvements
- Add sr-only headings to tabs
- Change role to 'presentation' in tab <li> elements
- Remove unnecessary aria-labelledby
- Fix heading levels
- Avoid duplicated IDs in audiences
- Replace empty links with buttons
- Fix mustache comments
- Fix mustache contexts
2021-11-24 10:26:14 +01:00
Andrew Nicols
eab5f3cfb2 Merge branch 'MDL-73069' of https://github.com/paulholden/moodle 2021-11-23 10:52:11 +08:00
Sara Arjona
be78cb02f2 Merge branch 'MDL-73129-master' of https://github.com/dravek/moodle 2021-11-23 10:52:11 +08:00
David Matamoros
6d1a7a8283 MDL-73129 reportbuilder: Remove string with trailing whitespace 2021-11-22 10:30:10 +01:00
Paul Holden
faeecd79ea MDL-73074 reportbuilder: consistent lang strings in course filter. 2021-11-22 09:20:04 +00: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
Paul Holden
f4bf4dca36 MDL-73112 reportbuilder: improve handling of concatenated columns.
This change overcomes limitations in certain DB engines (such as
MySQL[1]) which can lead to truncation of data when applying group
concatenation to columns.

Ensure we account for that by validating that we are able to extract
the expected number of fields from each concatenated value.

[1] https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len
2021-11-22 09:14:41 +00:00
Jun Pataleta
357ddcaff6 Merge branch 'MDL-72826' of git://github.com/paulholden/moodle 2021-11-19 11:07:03 +08:00
Paul Holden
80dd297a62 MDL-73090 reportbuilder: confirmation before resetting conditions.
Also prefetch all lang strings used by conditions editor.
2021-11-17 16:27:50 +00:00
Paul Holden
be11216d30 MDL-72826 reportbuilder: per-report option to show only unique rows.
This option allows report creators to avoid duplicate data being
displayed in their report. It is applied only when no columns in the
report currently have aggregation methods applied.
2021-11-16 13:59:16 +00:00
Paul Holden
c0ceaef772 MDL-73011 reportbuilder: remove workarounds for tab switching. 2021-11-11 23:54:56 +00:00
Mikel Martín
68eb55b8e6 MDL-72565 reportbuilder: Add card view functionality
Use card view settings to show a 'card view' for custom reports in small devices
2021-11-11 13:55:32 +01:00
Mikel Martín
aaa7a5a445 MDL-72565 reportbuilder: Add 'Card view' settings to custom reports
- Create a new 'settings' column in reportbuilder_report table and provide an API to manage it
- Add new card view settings to custom reports
2021-11-11 13:55:29 +01:00
Mikel Martín
f2582cc823 MDL-72565 reportbuilder: Use same template for system/custom reports
- rename 'system_report' template to 'report'
- view.php now uses 'report' template

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-11-11 13:44:23 +01:00
Shamim Rezaie
d038fd822d Merge branch 'MDL-72952' of https://github.com/roland04/moodle 2021-11-11 10:38:26 +11:00
Eloy Lafuente (stronk7)
2b18fad922 Merge branch 'MDL-72696' of https://github.com/paulholden/moodle 2021-11-10 19:20:39 +01:00
Mikel Martín
5a2624c472 MDL-72952 reportbuilder: UX behaviour improvements in audiences
- Show a toast notification when saving an audience
- Add form change checker when adding a new audience to prevent user from navigating away if it is not saved
- Remove expand/collapse animation in audience sidebar to be consistent with editor

Co-authored-By: Paul Holden <paulh@moodle.com>
2021-11-10 17:22:00 +01:00
Ilya Tregubov
90b40b99fd Merge branch 'MDL-73001-master' of https://github.com/dravek/moodle 2021-11-09 14:55:30 +02:00
Paul Holden
7a7375df4d MDL-72696 behat: support inplace editable fields of type select.
If an inplace editable field is using the "select" type, we should
treat it as a select field when setting it's value during scenarios.
2021-11-08 13:09:05 +00:00
David Matamoros
aaa041a9bd MDL-73001 reportbuilder: Allow to set custom title to fullname columns 2021-11-08 13:54:41 +01:00
Sara Arjona
2a0c4a8a73 Merge branch 'MDL-72978-master' of https://github.com/dravek/moodle 2021-11-08 09:59:47 +01:00
Sara Arjona
f2d2d7810b Merge branch 'MDL-72959' of https://github.com/paulholden/moodle 2021-11-08 08:57:04 +01:00
Eloy Lafuente (stronk7)
37fa747b30 Merge branch 'MDL-72968' of https://github.com/paulholden/moodle 2021-11-04 17:33:38 +01:00
Ilya Tregubov
6b0b757124 Merge branch 'MDL-72961' of https://github.com/paulholden/moodle 2021-11-04 14:40:26 +02:00
Eloy Lafuente (stronk7)
7faf678b59 Merge branch 'MDL-72987' of https://github.com/paulholden/moodle 2021-11-04 12:52:38 +01:00
Sara Arjona
61fef90a74 Merge branch 'MDL-72962' of git://github.com/paulholden/moodle 2021-11-04 12:30:27 +01:00
Eloy Lafuente (stronk7)
9e40598409 Merge branch 'MDL-72960' of https://github.com/paulholden/moodle 2021-11-03 19:09:11 +01:00
Paul Holden
3191443f47 MDL-72987 reportbuilder: reset manager cache between Behat tests. 2021-11-03 15:31:08 +00:00
Paul Holden
c7a7a54495 MDL-72959 reportbuilder: format course/category names in entities. 2021-11-02 16:21:45 +00:00
Paul Holden
628fcdee55 MDL-72962 reportbuilder: format editable element names for output. 2021-11-02 15:43:07 +00:00
David Matamoros
741f47ea7a MDL-72978 reportbuilder: Report name can't have only blank spaces
- Don't allow to set a report name containing only blank spaces when
creating a new report or editing an existing report name.
- Removed TODO from code related to MDL-71086
2021-11-02 16:27:20 +01:00
Paul Holden
d7e10c3dd1 MDL-72968 reportbuilder: breadcrumb navigation for edit/view report. 2021-11-01 16:00:16 +00:00
Paul Holden
cac0068d88 MDL-72961 reportbuilder: move category elements to correct entity. 2021-11-01 15:44:14 +00:00
Paul Holden
677c2df9d6 MDL-72961 reportbuilder: more defensive usage of report elements.
We should gracefully handle invalid element models that refer to
columns, filters, conditions that are no longer defined within the
report/entity they are linked to.
2021-11-01 14:24:27 +00:00
Paul Holden
31ba06b837 MDL-72588 reportbuilder: fix expected exception message in tests.
See change to exception strings in 07b74820.
2021-11-01 11:21:07 +00:00
Paul Holden
8f27f246a5 MDL-72960 reportbuilder: unique delimeters between concat'd fields.
Use delimeters that are less likely to conflict with genuine row
content, for both column fields and field values, in the group
concatenation aggregation methods.
2021-11-01 08:03:59 +00:00
Jun Pataleta
6f7defeeb6 Merge branch 'MDL-72588' of git://github.com/dravek/moodle 2021-11-01 11:22:48 +08:00
Paul Holden
0188af39a1 MDL-72588 reportbuilder: performance improvement to report loader.
Statically cache list of loaded reports during request lifecycle,
this ensures that computationally heavy initialisation routines
in system reports are only executed once (e.g. the access tab).
2021-10-29 12:50:20 +02:00
Paul Holden
42481d5c43 MDL-72588 reportbuilder: fix dynamic loading of report parameters.
This fixes an issue for system reports that are initialised with
parameters (such as the access report). Previously these parameters
were not preserved, when sorting/paging them via AJAX requests.

We now defer the initialisation of the report until the table
filterset has been set, ensuring all parameters are available.
2021-10-29 12:50:20 +02:00
David Matamoros
8a1e7d913f MDL-72588 reportbuilder: add report access tab.
This tab includes a system report that provides a listing of all
users who can access the report, taking into account all audiences
that have been created for it. Update page of users available
reports to obey audience configuration.

Fix filters JS form to ensure it is only loaded once.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2021-10-29 12:50:20 +02:00
Mikel Martín
144084a2ac MDL-72588 reportbuilder: interface for managing report audiences.
Add new tab to editor, allowing user to select from available audience
types in order to grant access to their reports.

Co-authored-by: David Matamoros <davidmc@moodle.com>
2021-10-29 12:50:15 +02: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
Eloy Lafuente (stronk7)
4f271297ce Merge branch 'MDL-72879-master-enfix' of git://github.com/mudrd8mz/moodle 2021-10-27 22:12:11 +02:00
Mikel Martín
9113f9d2f9 MDL-72588 reportbuilder: convert editing interface into a tab.
In preparation for further tabs in this interface, convert the report
editor to use the Dynamic tabs API.

At the same time, update the editor JS and it's modules to add listeners
on `document` instead of the report element itself, which will move in
and out of the current DOM in the future as tabs are switched.

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-10-27 10:05:53 +02:00
David Matamoros
b2dd94ab8b MDL-72588 reportbuilder: define schema/models for report audiences. 2021-10-27 10:05:44 +02:00
David Mudrák
53bb0947b6 MDL-72879 lang: Use fixed strings in tests, too 2021-10-27 07:37:03 +02:00