Commit Graph

427 Commits

Author SHA1 Message Date
Paul Holden bf0849d9a4 MDL-80943 reportbuilder: select-type customfields should be text.
The column type determines the available aggregation options present
for the column. Custom fields of type "select" should be considered as
text fields for this purpose, because their stored value represents
the index to their available options, rather than having any distinct
meaning of it's own for display.
2024-03-07 09:47:53 +00:00
Sara Arjona 6c1b457252 Merge branch 'MDL-80912-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-20 15:39:24 +01:00
Paul Holden 30fa519fa0 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:53 +00:00
Paul Holden 7f1caa7c57 MDL-80936 reportbuilder: fix when default customfield values are shown.
We should ensure we only show a value for the custom field (default or
otherwise) when it's actually joined to an entity it represents.
2024-02-14 12:22:47 +00:00
Paul Holden ad4046a5a2 Merge branch 'MDL-80735-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-02-06 15:26:47 +00:00
Marina Glancy df7b18b9bc MDL-80735 reportbuilder: do not render filters form during download
this removes unnecessary calculations and also prevents the session mutation
2024-02-06 14:52:38 +00:00
David Mudrák 6142dd41f2 MDL-80725 lang: Use the fixed strings in tests, too 2024-01-31 22:11:01 +01:00
Jun Pataleta b0c3178932 Merge branch 'MDL-80192-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-12 17:28:27 +08:00
Paul Holden d369e3628e MDL-80192 reportbuilder: ensure filter form group elements have labels.
This ensures compliance with the following WCAG criterion:

"H71: Providing a description for groups of form controls using fieldset
and legend elements".
2024-01-12 08:39:40 +00:00
Marina Glancy 5a94a957bc MDL-80564 reportbuilder: Consistent permission check for user full name 2024-01-11 14:45:28 +00:00
Paul Holden a432e1767f MDL-80412 reportbuilder: Behat scenario to view/sort additional names.
Related to fixes from 8f32e623.
2023-12-15 10:55:25 +00:00
Paul Holden 7a0a94b6b2 MDL-80412 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.

Backported from MDL-79270.
2023-12-15 10:54:10 +00:00
Paul Holden 46192ca77e MDL-80254 reportbuilder: better handling of deleted users in schedules.
We should verify that schedule and audience users are active accounts,
and that we don't try to send report schedules either from/to them if
they aren't.
2023-12-04 09:48:42 +00:00
Paul Holden e2049d770c MDL-79705 reportbuilder: remove checkbox field callback handling.
We no longer need special handling of this field type, because it
now returns language strings rather than HTML markup for a checkbox
element on display.
2023-10-17 16:51:29 +01:00
Andrew Nicols af7719682d MDL-79064 core: Update all get_strings as uses 2023-08-29 10:57:54 +08:00
Sara Arjona 999fbc3bdd Merge branch 'MDL-75855' of https://github.com/paulholden/moodle 2023-08-24 16:49:34 +02:00
Ilya Tregubov 60693cd9b6 Merge branch 'MDL-77067' of https://github.com/paulholden/moodle 2023-08-24 09:59:58 +08:00
Paul Holden b9a5a3626e MDL-77067 reportbuilder: indicate when audiences are used in schedules.
Indicate in each audience card whether it's used as part of a report
schedule, and inform user again upon deletion of said audience.
2023-08-23 16:09:17 +01:00
Paul Holden 8fe1f83fe1 MDL-75855 reportbuilder: don't allow condition/filter duplication.
Custom reports shouldn't allow the same condition and/or filter
instance to exist more that once per report.
2023-08-22 18:47:33 +01:00
Paul Holden 3ca41c77e4 MDL-76902 reportbuilder: entity method for defining table join alias. 2023-08-22 15:16:31 +01:00
Sara Arjona df5d62eac2 Merge branch 'MDL-78844' of https://github.com/paulholden/moodle 2023-08-17 09:10:51 +02:00
Sara Arjona 2bb12d9e2c Merge branch 'MDL-78758' of https://github.com/paulholden/moodle 2023-08-17 09:09:16 +02:00
Paul Holden c9f689ae6c MDL-78844 reportbuilder: external validate system report access method. 2023-08-09 13:49:27 +01:00
Sara Arjona 565d6a45a3 Merge branch 'MDL-78879' of https://github.com/paulholden/moodle 2023-08-08 13:04:30 +02:00
Paul Holden 9c108c8d88 MDL-78758 reportbuilder: stricter checking of source default sorting. 2023-08-07 10:21:51 +01:00
Ilya Tregubov c5bbb46886 Merge branch 'MDL-78807' of https://github.com/paulholden/moodle 2023-08-03 09:33:04 +08:00
Paul Holden e4e7e59d90 MDL-78807 reportbuilder: ensure report base conditions are non-empty. 2023-08-02 13:50:50 +01:00
Paul Holden 501a170cb6 MDL-78879 reportbuilder: allow for negation of category filter.
Add "Equal to" and "Not equal to" operators to the filter class.

AMOS BEGIN
 CPY [subcats,qtype_randomsamatch],[includesubcategories,moodle]
AMOS END
2023-08-02 12:26:54 +01:00
Jun Pataleta f8aa9a6504 Merge branch 'MDL-78117' of https://github.com/paulholden/moodle 2023-08-02 16:24:50 +08:00
Paul Holden d8df4ad675 MDL-78117 reportbuilder: use context entity in report sources.
Deprecate existing columns, to be replaced by corresponding elements
from the new entity.
2023-08-02 08:05:50 +01:00
Andrew Nicols 30f7e50770 Merge branch 'MDL-78575-master' of https://github.com/snake/moodle 2023-08-01 09:38:15 +08:00
Paul Holden 36ab5e5d1a MDL-78532 reportbuilder: external method for retrieving system report. 2023-07-18 12:05:07 +01:00
Ilya Tregubov 254fd16dcd Merge branch 'MDL-75359' of https://github.com/paulholden/moodle 2023-07-11 09:29:20 +08: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
Andrew Nicols 3d5afd6061 Merge branch 'MDL-75810' of https://github.com/paulholden/moodle 2023-07-09 22:23:29 +08:00
Paul Holden 2ffda63da8 MDL-75359 reportbuilder: fixes for custom/user profile field elements.
Ensures cross-DB compatibility for all types of both custom and user
profile fields, specifically when they're filtered and/or aggregated.

Implement stress testing of both via appropriate report sources.
2023-07-07 14:45:24 +01:00
Paul Holden d3f189d6db MDL-76769 reportbuilder: re-use custom field data table alias/joins.
Ensure that when a column/filter on the same custom field is used,
they each share a single join (see also 8f721652).
2023-06-29 08:11:45 +01:00
Paul Holden ecf47ff23b MDL-78350 reportbuilder: parse javascript before rendering template. 2023-06-21 17:33:40 +01:00
Paul Holden e8ae9680bc MDL-75810 reportbuilder: entity method for returning tag SQL joins. 2023-06-16 18:21:24 +01:00
Paul Holden 8ed7c78ecf MDL-78364 reportbuilder: earlier calculation of schedule recipients. 2023-06-05 16:22:28 +01:00
Paul Holden f500b2d878 MDL-76900 course: add enrolment/role entities to participants source.
Deprecate columns/filters from current enrolment entity, to be
replaced by corresponding elements from each of the new entities.
2023-05-17 08:02:44 +01:00
Paul Holden 8f7bff9789 MDL-76900 reportbuilder: allow for deprecation of entity elements.
Don't allow deprecated columns/filters to be added to new custom
reports. Where they already exist, emit deprecation debugging.
2023-05-17 08:02:06 +01:00
Paul Holden 5404200d9d MDL-76900 enrol: new enrolment method and role report entities.
The new entities encapsulate related data for easier re-use across
reports, and are also intended to replace similar columns/filters
from the current enrolment entity.
2023-05-15 14:12:31 +01:00
Sara Arjona 7fc14069ea Merge branch 'MDL-77614' of https://github.com/paulholden/moodle 2023-05-10 12:54:34 +02:00
Paul Holden 6312467346 MDL-77614 reportbuilder: throw exception if entity name already exists. 2023-04-25 12:55:09 +01:00
Paul Holden 7c7024af31 MDL-76971 reportbuilder: switch remaining classes to external_api.
Continues on the work started in a3cc26f8, to remove the last
remnants of usage of previous external API classes.
2023-04-25 08:50:47 +01:00
Shamim Rezaie b54fbcf532 Merge branch 'MDL-77555' of https://github.com/paulholden/moodle 2023-04-05 11:25:16 +01:00
Paul Holden 5d0f34bde2 MDL-77555 reportbuilder: improve SQL generation within filters.
Use native ANSI SQL syntax for numeric comparisons where possible,
define filter API for the case where filters must re-use the given
field SQL while ensuring uniqueness of any field parameters.

Currently only necessary in the category filter type.
2023-04-05 09:37:37 +01:00
Sara Arjona 1a01afbcb3 Merge branch 'MDL-77659' of https://github.com/AnupamaSarjoshi/moodle 2023-03-27 16:50:25 +02:00
Paul Holden 4146329063 MDL-77555 reportbuilder: method to ensure unique parameters in SQL. 2023-03-27 10:29:25 +01:00