This allows filter fields to use client-side form validation attributes to check for valid values,
and adds a validation() method for filters to implement custom validation conditions.
In the event of a validation failure, the invalid filters will not be applied, and the URL will
not be updated to avoid user sharing a URL that will generate an error. Filter conditions should
still implement server-side validation and throw exceptions to avoid erroneous values being
manually inserted into the URL.
Previously it was not possible to manually specify the modified time for
a question in the test generator. This extends to the mechanism allowing
the modifying user to be specified (rather than using the current user)
to also allow the timemodified to be specified.
This adds a new datafilter Javascript class for a
datetime filter. This supports filtering by dates before,
after or between the selected value(s).
The fields for selecting datetimes in the filter use
<input type="datetime-local">, so this commit also adds
support for filling reading and writing those fields in
behat tests.
The endorsement has been removed from the JSON because, according to
the OBv2.0specification, it must not be included in either the badge
or the assertion.
Including it results in a format error, rendering the badge invalid.
In timezones where daylight savings time is used, courses that start
on a Monday at 00:00 would display the week headings incorrectly
during the change forward.
When the time changes backwards, courses that have a start time of
Sunday at 23:00 also have a mislabeled week.
This attempts to use the DateTime() library, along with the user's
local timezone setting to display the correct day, rather than just
subtracting 86400.
This commit reverts 57dc5a7f17297c2a0dcffd47b3aecf5e1c228a713 "MDL-83470 composer: Require behat/gherkin 4.9.0 for now"
unpin behat/gherkin and fix Behat failures because of the update.
Most edit logic embed directly into course/view.php and course/mod.php
is now redirected to course/format/update.php. This commit add
deprecations messages to the old get params so it can be removed in
Moodle 6.0 for good.
Now there is course/format/update.php all course actions menus must
point to the new one instead of keep pointing at the course/view.php and
course/mod.php.
Since Moodle 4.0, most course edit actions can be executed using the
core_courseformat_course_edit webservice using only four parameters
(courseid, ids, targetsectionid and targetcmid). However, some actions
logic is still replicated and embed in course/view.php and
course/mod.php files since the beginning of time. Now the
course/update.php offers a non-ajax way of executing the same actions
and replace the old replicated ways of doing the same.
Create provider instances for AI povider plugins.
Each provider plugin can now have multiple instances,
allowing for different configurations and models using
the same base provider.
After deploying to our production environment, we noticed that for large gradebooks, having a max of 200,000 grades per
page was still too high and resulted in the gradebook page crashing or failing to load entirely. This commit will make
this value configurable (e.g. ->maxgradesperpage = 70000) rather than a constant so that other institutions can tune it.
Co-authored-by: Leon Stringer <leon.stringer@ucl.ac.uk>