395 Commits

Author SHA1 Message Date
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
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
Sara Arjona
8975155060 Merge branch 'MDL-77705' of https://github.com/paulholden/moodle 2023-03-23 18:30:21 +01:00
Paul Holden
d834accd90
MDL-77705 reportbuilder: avoid re-using field alias between entities.
Ensure that when the user entity is added multiple times to a report,
when there are custom profile fields, each of those gets a unique table
alias per-entity.
2023-03-21 16:43:00 +00:00
Paul Holden
a2a2ea51aa
MDL-77692 reportbuilder: format custom field condition/filter names. 2023-03-20 16:09:25 +00:00
Anupama Sarjoshi
79370e225e MDL-77659 core_reportbuilder: fix user profile fields phpunit tests 2023-03-20 12:19:57 +00:00
Andrew Nicols
9ec46c232d MDL-77186 core: Move all uses of cronlib to new class 2023-03-13 21:21:13 +08:00
Ilya Tregubov
1e8c9685fd Merge branch 'MDL-77056' of https://github.com/paulholden/moodle 2023-03-09 16:16:59 +08:00
Andrew Nicols
511401f4f6 MDL-77559 js: Rebuild all JS with Node 16 2023-03-09 09:53:19 +08:00
Paul Holden
198db552b0
MDL-77056 reportbuilder: relative date filter for before given period. 2023-03-07 22:46:50 +00:00
Jun Pataleta
916503658d Merge branch 'MDL-75012-master-5' of https://github.com/andrewnicols/moodle 2023-03-02 12:34:34 +08:00
Andrew Nicols
33b1e41f13 MDL-75012 js: Full build of all grunt things 2023-03-02 11:55:32 +08:00
Andrew Nicols
b517dc7c88 Merge branch 'MDL-77150' of https://github.com/roland04/moodle 2023-03-02 10:46:49 +08:00
Andrew Nicols
5c1707e598 Merge branch 'MDL-77321' of https://github.com/paulholden/moodle 2023-03-02 09:24:44 +08:00
Mikel Martín
292925d4c0 MDL-77150 reportbuilder: Fix report attributes classes are ignored
Fix report attributes with key 'class' being ingored when adding them to report classes.
2023-02-28 16:19:26 +01:00
Sumaiya Javed
567504d8fd MDL-77412 reportbuilder: Make groupconcat aggregation method sortable. 2023-02-28 10:39:00 +13:00
Paul Holden
54b135e034 MDL-77321 reportbuilder: cache list of loaded reports per user.
Since 0188af39 we've cached loaded reports, however there was an
edge case in those report sources that relied on the current user
as part of their own initialization (e.g. checking capabilities).

Co-authored-by: Marina Glancy <marina@moodle.com>
2023-02-27 21:13:11 +00:00
Andrew Nicols
e515c15cfa Merge branch 'MDL-77352' of https://github.com/paulholden/moodle 2023-02-23 19:04:29 +01:00
Ilya Tregubov
07053e8140 Merge branch 'MDL-76873' of https://github.com/paulholden/moodle 2023-02-23 09:57:45 +08:00
Andrew Nicols
5a896a722c Merge branch 'MDL-76815' of https://github.com/paulholden/moodle 2023-02-23 09:14:03 +08:00
Paul Holden
d58b28d97e MDL-77352 javascript: declare debouncer outside the event handler.
It needs to be declared as such, otherwise each time the event is
triggered a new debouncer is created.
2023-02-21 22:38:59 +00:00
Paul Holden
65c4ae7bda MDL-76873 reportbuilder: correct checks for profile field visibility. 2023-02-20 09:22:00 +00:00
Paul Holden
b3a50f4a82 MDL-76815 reportbuilder: avoid duplication getting audience component.
The component the audience belongs to is used by the cards exporter
for rendering the editing interface. Avoid duplication in determining
this value by defining appropriate method in the base class.
2023-02-16 12:15:52 +00:00
Jun Pataleta
98055a3468 Merge branch 'MDL-77223' of https://github.com/roland04/moodle 2023-02-15 11:07:16 +08:00
Paul Holden
650b6caf83 MDL-77201 reportbuilder: pass current aggregation to column callbacks. 2023-02-14 11:03:03 +00:00
Mikel Martín
96215abdc8 MDL-77223 reportbuilder: Fix first report column as integer 2023-02-13 16:15:38 +01:00
Jun Pataleta
f9ced0f475 Merge branch 'MDL-76901' of https://github.com/paulholden/moodle 2023-02-07 22:56:20 +08:00
Paul Holden
bfb5197738 MDL-76901 reportbuilder: cache custom report element persistents.
During request lifecycle ensure that column, filter and condition
persistents are only loaded a single time to prevent additional
database reads.

Provide invalidation method, used by the report helpers, to ensure
that the persistents are re-loaded appropriately.

Co-authored-by: Marina Glancy <marina@moodle.com>
2023-02-07 13:10:14 +00:00
Andrew Nicols
92d04b9e7b Merge branch 'MDL-77091' of https://github.com/paulholden/moodle 2023-02-06 12:58:56 +08:00
Andrew Nicols
ba4adc5321 Merge branch 'MDL-76591' of https://github.com/paulholden/moodle 2023-02-02 11:00:29 +08:00
Paul Holden
147c31800b MDL-75345 reportbuilder: improve course/user custom report tests.
Ensure column and filters provided by each source have sufficient
coverage. Re-factor individual entity/helper class tests to test
their own specific implementation only.

Remove now-defunct test fixtures.
2023-02-01 15:41:32 +00:00
Paul Holden
5b644bfd30 MDL-77091 reportbuilder: set base time in schedule test generator.
The base time allows for the setting of the "current time" for the
purposes of the schedule test against recurrence configuration.

We should ensure the generator method allows this property so that
it can be used when calculating the initial "next send time" of the
schedule upon creation (and avoiding excessive recursion when the
actual current time is used for the calculation).
2023-02-01 14:39:21 +00:00
Paul Holden
648b80c201 MDL-76591 comment: convert existing overview page to system report.
Re-use the entity definitions previously created in fdf2f8f3 for
custom reporting, to create a new system report class.
2023-01-30 15:53:59 +00:00
Andrew Nicols
a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00