The "Switch question bank" modal was attempting to load every question
bank in the system the user has access to. For a highly privileged user,
this could mean loading the coursemodinfo cache for every course in the
system, resulting in memory exhaustion.
This change updates the API for getting shared question banks so it can
be searched by name and limited to a number of results. There is a new
external service that uses this functionality, and a Javascript data
provider for calling the service. The autocomplete in the "Switch
question bank" modal will now use this data provider for the "Other
question bank" autocomplete, rather than loading all banks up front.
The previous create_module actions uses section number instead of
section id. This produces several bugs when sections are moved around
the course in edit mode. This issue implements a new_module action with
all related mutations and webservices. The new one uses section id
instead of section number.
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.
Both core_course_edit_section and core_course_edit_module are not needed
anymore. All course edit actions are now executed as state actions from
core_courseformat_update_course. Also, the core_course_get_module is
fully replaced by the core_courseformat cmitem fragment (including also
any possible JS module).
- Add new 'FEATURE_QUICKCREATE' plugin feature that indicates the module can
be created with a single click. It will use its own 'quickcreatename' defined
string as the initial default name.
- Add new 'core_courseformat\external\create_module' web service to create new
modules with the quickcreate featuer in the course page.
- Add a new 'create_module' state action.
- Alters existing progress_bar class to support extension
- Adds stored_progress_bar class as child of progress_bar
- Adds webservice to poll stored progress
- Updates database tables
- Bumps version
- Adds unit/behat tests
This admin setting allows you to display a check anywhere in the admin
tree. It uses a webservice to execute the check, so the impact on the
admin tree performance is as low as possible.
Checks do not necessarily need to be registered in the plugins callback
to be shown here, allowing customisation of what is shown in the
settings versus the reports.
Set the web service functions core_calendar_get_action_events_by_timesort
and core_calendar_get_action_events_by_timesort to use read only
sessions. These functions can hold long session locks
and read-only sessions will prevent them blocking other requests.
Set the web service function core_message_send_instant_messages to use
read-only sessions. This function can take a few seconds to process if
it is sending messages to lots of users, and setting it to use read-only
sessions will prevent it from blocking other requests.