Huong Nguyen [Tue, 19 May 2026 03:37:54 +0000 (10:37 +0700)]
weekly release 5.1.4+
AMOS bot [Sun, 17 May 2026 00:09:18 +0000 (00:09 +0000)]
Automatically generated installer lang files
AMOS bot [Sat, 16 May 2026 00:07:56 +0000 (00:07 +0000)]
Automatically generated installer lang files
thomas.schoenlein [Sat, 11 Apr 2026 07:27:57 +0000 (09:27 +0200)]
MDL-88342 question: Remove duplicate empty icon links from bank list
Muhammad Arnaldo [Wed, 13 May 2026 06:29:44 +0000 (13:29 +0700)]
MDL-88314 core_ai: Strip think tags from AI-generated text
Luca Bösch [Sun, 15 Feb 2026 18:42:37 +0000 (19:42 +0100)]
MDL-72933 mod_lesson: display audio reliably in questions.
Jake Dallimore [Tue, 12 May 2026 02:53:03 +0000 (10:53 +0800)]
weekly release 5.1.4+
rxdelacruz [Fri, 8 May 2026 07:40:28 +0000 (15:40 +0800)]
MDL-87701 core: update calendar events when overrides change
Ensures assign and lesson override creation/update triggers calendar event
updates so user and group deadlines remain in sync.
rxdelacruz [Fri, 8 May 2026 05:43:23 +0000 (13:43 +0800)]
MDL-87701 behat: add override generators and replace manual steps
Adds user and group override support to assign and lesson Behat generators.
Refactors existing scenarios to use data generators instead of manual UI steps,
reducing @javascript usage and improving execution time.
danghieu1407 [Mon, 11 May 2026 07:10:30 +0000 (14:10 +0700)]
MDL-88401 AI: Improve accessibility labels for copy/regenerate buttons
Jai Gupta [Sat, 25 Apr 2026 14:44:29 +0000 (20:14 +0530)]
MDL-88518 h5p: Register sites with the H5P Hub using POST
Andi Permana [Mon, 4 May 2026 04:22:13 +0000 (11:22 +0700)]
MDL-88252 aiprovider_azureai: allow dots in deployment and apiversion
Paul Holden [Wed, 6 May 2026 15:24:14 +0000 (16:24 +0100)]
MDL-88660 enrol_self: ensure returned form submission is string.
Iñigo Zendegi [Tue, 3 Feb 2026 11:29:40 +0000 (12:29 +0100)]
MDL-87398 mod_assign: Remove cut-off date information
Andrew Nicols [Wed, 6 May 2026 06:22:21 +0000 (14:22 +0800)]
MDL-88561 core: Set a version for swagger-ui-plugin-hierarchical-tags
Huong Nguyen [Wed, 6 May 2026 03:45:40 +0000 (10:45 +0700)]
MDL-88642 tool_recyclebin: Fix Behat failures
Fix Behat failures introduced by MDL-88369
Andi Permana [Wed, 22 Apr 2026 08:37:15 +0000 (15:37 +0700)]
MDL-88432 search_simpledb: strip single quotes in simple query
Andi Permana [Thu, 23 Apr 2026 09:15:21 +0000 (16:15 +0700)]
MDL-86733 libraries: fix PHP 8.2 deprecation in Google HTTP request
Luca Bösch [Wed, 8 Apr 2026 10:32:12 +0000 (12:32 +0200)]
MDL-88395 login: Vertical space when multiple OAuth2 buttons present.
Luca Bösch [Fri, 12 Dec 2025 18:43:29 +0000 (19:43 +0100)]
MDL-87459 feedback: Filter feedback name in mailed out subject, too.
Luca Bösch [Fri, 12 Dec 2025 15:40:23 +0000 (16:40 +0100)]
MDL-87455 workshop: Striped hovering fields table with BS 5.
Luca Bösch [Sun, 15 Feb 2026 18:09:54 +0000 (19:09 +0100)]
MDL-68682 mod_lesson: display shortanswer fields inline.
Shamim Rezaie [Fri, 1 May 2026 07:23:11 +0000 (17:23 +1000)]
weekly release 5.1.4+
David Woloszyn [Wed, 29 Apr 2026 00:44:06 +0000 (10:44 +1000)]
MDL-88453 mod_scorm: One section page view returns to section on exit
Stephan Robotta [Sat, 14 Mar 2026 08:47:04 +0000 (09:47 +0100)]
MDL-88217 questions: Fix warning for numeric cloze questions
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
Paul Holden [Thu, 30 Apr 2026 14:14:56 +0000 (15:14 +0100)]
MDL-88605 user: update calendar preferences for correct user.
Paul Holden [Fri, 6 Mar 2026 07:22:04 +0000 (07:22 +0000)]
MDL-88136 admin: fix invalid port list configuration error.
Muhammad Arnaldo [Mon, 27 Apr 2026 07:12:34 +0000 (14:12 +0700)]
MDL-88400 backup: fix backup failing for long shortnames
Paul Holden [Wed, 29 Apr 2026 09:10:41 +0000 (10:10 +0100)]
MDL-88586 block_rss_client: fix comparison of course ID parameter.
Philipp Memmel [Thu, 26 Feb 2026 08:27:22 +0000 (09:27 +0100)]
MDL-88083 mod_assign: Do not count assignments of unenrolled users
@Co-authored-by: Rajneel Totaram <rjnlfj@yahoo.com>
Andi Permana [Tue, 7 Apr 2026 02:38:50 +0000 (09:38 +0700)]
MDL-87555 enrol_fee: add scheduled task to process enrolment expirations
Andi Permana [Mon, 27 Apr 2026 06:33:12 +0000 (13:33 +0700)]
MDL-88424 libraries: fix PHP 8.1 stripos() null deprecation in XHProf
Luca Bösch [Fri, 3 Apr 2026 11:13:01 +0000 (13:13 +0200)]
MDL-88369 backup: Multilang course name in recycle bin.
Huong Nguyen [Mon, 27 Apr 2026 02:40:16 +0000 (09:40 +0700)]
weekly release 5.1.4+
AMOS bot [Sat, 25 Apr 2026 00:07:49 +0000 (00:07 +0000)]
Automatically generated installer lang files
Huong Nguyen [Fri, 24 Apr 2026 04:12:14 +0000 (11:12 +0700)]
MDL-87219 course: Remove failed Behat test
AMOS bot [Fri, 24 Apr 2026 00:08:18 +0000 (00:08 +0000)]
Automatically generated installer lang files
james-cnz [Mon, 9 Jan 2023 00:15:28 +0000 (13:15 +1300)]
MDL-66780 course: Fix section visibility with restrictions
AMOS bot [Thu, 23 Apr 2026 00:07:48 +0000 (00:07 +0000)]
Automatically generated installer lang files
Paul Holden [Fri, 6 Feb 2026 16:11:31 +0000 (16:11 +0000)]
MDL-87896 admin: inform admin of incorrect upgrade key.
Paul Holden [Thu, 5 Mar 2026 22:15:37 +0000 (22:15 +0000)]
MDL-88133 repository: avoid double escaping of file listing.
Escaping already happens in the front end, which means it should
not happen in the backend lest we double escape the content.
Stefan Hanauska [Tue, 17 Feb 2026 15:57:33 +0000 (16:57 +0100)]
MDL-87983 calendar: Check hidden categories
AMOS bot [Wed, 22 Apr 2026 00:07:49 +0000 (00:07 +0000)]
Automatically generated installer lang files
Paul Holden [Fri, 17 Apr 2026 12:14:11 +0000 (13:14 +0100)]
MDL-88479 output: correct initial spacing of paging size selector.
See also
0faeff2e, which largely resolved this. We just need to match
the expected DOM attributes here.
Paul Holden [Thu, 29 Jan 2026 16:12:40 +0000 (16:12 +0000)]
MDL-87801 blocks: fix empty check for title in block edit controls.
See also
4be66b0d.
Paul Holden [Mon, 29 Dec 2025 12:26:48 +0000 (12:26 +0000)]
MDL-87566 communication: defensive usage of processor instance.
Ensure it actually exists before trying to interact with it.
Paul Holden [Wed, 14 Jan 2026 14:09:39 +0000 (14:09 +0000)]
MDL-87668 output: ensure toggle element reflects current values.
This affected the various AI provider/placement admin tables, where
using the toggle and then refreshing the page could show the previous
value on reload.
Brendan Heywood [Fri, 5 Dec 2025 15:16:42 +0000 (02:16 +1100)]
MDL-83091 theme: Serve correct 404's when cached files not found
Muhammad Arnaldo [Tue, 28 Oct 2025 14:34:22 +0000 (21:34 +0700)]
MDL-83815 core_rating: Grade update after forum rating removal
Prevents the previous non-null rating value from persisting in
the gradebook and single view report after an instructor sets a
forum post rating back to "Rate...". This ensures the gradebook
correctly reflects the null rating and allows forum rating
settings to be updated as expected after a rating is removed.
Brendan Heywood [Fri, 20 Mar 2026 07:11:44 +0000 (18:11 +1100)]
MDL-88162 course: Allow course delete task to retry
AMOS bot [Tue, 21 Apr 2026 00:09:30 +0000 (00:09 +0000)]
Automatically generated installer lang files
yusufwib01 [Wed, 1 Apr 2026 16:58:02 +0000 (23:58 +0700)]
MDL-88137 tool_mfa: prevent lock counter exceeding lockout threshold
yusufwib01 [Tue, 7 Apr 2026 16:01:43 +0000 (23:01 +0700)]
MDL-86816 quiz: skip restricted users in open-soon notifications
Stefan Hanauska [Wed, 18 Feb 2026 06:24:58 +0000 (07:24 +0100)]
MDL-87879 courseformat: Exclude not displaying modules from state update
Jayce Birrell [Mon, 17 Nov 2025 02:30:05 +0000 (13:00 +1030)]
MDL-80321 mod_lesson: redirect to correct page on unlimited attempts
Brendan Heywood [Fri, 5 Dec 2025 14:29:04 +0000 (01:29 +1100)]
MDL-86088 cachestore_file: Fix warnings when cache is purged
AMOS bot [Sun, 19 Apr 2026 00:07:56 +0000 (00:07 +0000)]
Automatically generated installer lang files
AMOS bot [Sat, 18 Apr 2026 00:07:49 +0000 (00:07 +0000)]
Automatically generated installer lang files
AMOS bot [Fri, 17 Apr 2026 00:07:52 +0000 (00:07 +0000)]
Automatically generated installer lang files
Muhammad Arnaldo [Thu, 2 Apr 2026 09:27:52 +0000 (16:27 +0700)]
MDL-87930 core: fix hidden restricted subsections in navigation
Huong Nguyen [Thu, 16 Apr 2026 02:57:55 +0000 (09:57 +0700)]
Moodle release 5.1.4
Huong Nguyen [Thu, 16 Apr 2026 02:57:55 +0000 (09:57 +0700)]
NOBUG: Add upgrade notes
AMOS bot [Thu, 16 Apr 2026 00:07:50 +0000 (00:07 +0000)]
Automatically generated installer lang files
Luca Bösch [Mon, 6 Apr 2026 08:58:18 +0000 (10:58 +0200)]
MDL-88375 tool_customlang: title row without borders.
Yerai Rodríguez [Mon, 13 Apr 2026 09:48:17 +0000 (11:48 +0200)]
MDL-88403 customfield: fix recalculating numbers for shared CF
For shared custom fields, the number provider was not being recalculated
due to a mismatch between the task custom data and the
custom field's actual field component/area.
Mihail Geshoski [Wed, 15 Apr 2026 10:48:34 +0000 (18:48 +0800)]
weekly release 5.1.3+
Mihail Geshoski [Wed, 15 Apr 2026 10:48:34 +0000 (18:48 +0800)]
NOBUG: Add upgrade notes
Huong Nguyen [Wed, 8 Apr 2026 03:03:23 +0000 (10:03 +0700)]
MDL-87760 message: Improve the validation
`can_send_message_to_conversation()` has been updated
to improve the validation of the sender and the recipient
Paul Holden [Tue, 3 Mar 2026 10:37:06 +0000 (10:37 +0000)]
MDL-88087 gradepenalty_duedate: verify sesskey when resetting rules.
Michael Hawkins [Mon, 13 Apr 2026 07:40:38 +0000 (15:40 +0800)]
MDL-88423 repository: Filename in prepared file path should be a name only
yusufwib01 [Tue, 24 Mar 2026 09:48:10 +0000 (16:48 +0700)]
MDL-88138 auth_db: drop sybasequoting setting
Vincent Schneider [Wed, 4 Mar 2026 15:40:22 +0000 (16:40 +0100)]
MDL-84495 MNet: Improve authorization check and mitigate CSRF risk
Andi Permana [Wed, 4 Feb 2026 07:59:29 +0000 (14:59 +0700)]
MDL-87598 libraries: add S3 key-commitment validation
Huong Nguyen [Tue, 14 Apr 2026 03:59:22 +0000 (10:59 +0700)]
MDL-85352 aiprovider_openai: Switch to b64_json format
Previously, the OpenAI image generation processor sent a fixed
response_format=url and downloaded the generated image via a second
HTTP request. This approach does not work for newer models such as
gpt-image-1.5, which always return base64-encoded image data and use
output_format instead of response_format.
Changes:
- Add `openai_image_base` interface with four per-model methods:
`response_format()`, `get_output_format()`, `calculate_size()`, and
`calculate_quality()`. Models return null from `response_format()` or
`get_output_format()` to omit those parameters from the API request.
- Update dalle3 to implement `openai_image_base`. It now returns
response_format=b64_json (dropping the URL round-trip), omits
`output_format` (not accepted by DALL-E 3), and moves size/quality
logic into the class. Quality values are passed through unchanged
('standard', 'hd') as DALL-E 3 uses them directly.
- Add gptimage1 model class for gpt-image-1.5. This model does not
accept `response_format`, so that method returns null. It uses
output_format=png and maps Moodle quality values to the API values
expected by gpt-image-1.5: standard -> medium, hd -> high.
Image sizes also differ from DALL-E 3 (e.g. 1536x1024 for
landscape).
- Update process_generate_image to delegate size and quality
calculation to the model class (with a fallback for unknown
models),
conditionally set response_format and output_format based on what
the model reports, and decode the returned b64_json directly into a
local file instead of downloading from a URL.
David Mudrák [Tue, 7 Apr 2026 21:05:32 +0000 (23:05 +0200)]
MDL-88363 lang: Use the fixed strings in the tests, too
Helen Foster [Wed, 8 Apr 2026 20:03:13 +0000 (22:03 +0200)]
MDL-88363 lang: Import fixed English strings (en_fix)
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
Andrew Nicols [Thu, 15 Jan 2026 07:00:54 +0000 (15:00 +0800)]
MDL-87676 core: get_route_name_for_callable should not instantiate
Laurent David [Mon, 30 Mar 2026 09:46:05 +0000 (11:46 +0200)]
MDL-88213 core: Fix basepath for route_testcase
Co-authored-by: Andrew Lyons <andrew@nicols.co.uk>
Cameron Ball [Mon, 13 Apr 2026 05:37:38 +0000 (13:37 +0800)]
MDL-88422 core: Assert PSR response interfaces in router tests
Luca Bösch [Wed, 8 Apr 2026 10:02:57 +0000 (12:02 +0200)]
MDL-87219 course: Remove hidden class in course index visible activities
jfedericobn [Fri, 10 Apr 2026 13:34:19 +0000 (13:34 +0000)]
MDL-86165 mod_bigbluebuttonbn: added logging for recording events
Dan Marsden [Tue, 17 Mar 2026 01:56:48 +0000 (14:56 +1300)]
MDL-83526 core: Improve SameSite handling.
Shamim Rezaie [Fri, 10 Apr 2026 07:10:04 +0000 (17:10 +1000)]
weekly release 5.1.3+
Shamim Rezaie [Fri, 10 Apr 2026 07:10:03 +0000 (17:10 +1000)]
NOBUG: Add upgrade notes
Laurent David [Thu, 11 Dec 2025 10:00:15 +0000 (11:00 +0100)]
MDL-83437 theme_boost: Adapt sticky footer width
* Adapt sticky footer with to take into account left and right drawers
* Sticky footer will now be below the drawer and its content between
the drawers.
Anupama Sarjoshi [Wed, 14 Jan 2026 07:55:11 +0000 (13:25 +0530)]
MDL-86386 qbank_managecategories: Use batches to remove stale questions
Iterate through stale questions in batches using get_records_sql
to better handle large question banks and avoid memory or timeout
issues during processing.
Michael Hawkins [Mon, 10 Nov 2025 11:30:17 +0000 (19:30 +0800)]
MDL-88145 core: Update deprecated function in security helper unit test
Michael Hawkins [Mon, 10 Nov 2025 11:28:32 +0000 (19:28 +0800)]
MDL-88145 core: Security helper additional unit test and typo fix
Adds unit testing to incorrect call order for get_resolve_info() and
also fixes an incorrect bracket closure on an empty statement.
Muhammad Arnaldo [Wed, 8 Apr 2026 04:52:54 +0000 (11:52 +0700)]
MDL-88360 message: fix cannot send error shown in group conversations
Paul Holden [Tue, 7 Apr 2026 19:11:45 +0000 (20:11 +0100)]
MDL-88390 repository: explicit string cast of file source data.
Brendan Heywood [Wed, 28 Jan 2026 23:27:11 +0000 (10:27 +1100)]
MDL-87778 tasks: Fix bug with deep linking to log page
Simon Parzer [Sat, 26 Apr 2025 14:32:15 +0000 (16:32 +0200)]
MDL-80496 filter_codehighlighter: add prism- prefix to CSS classes
Add CustomClass plugin to PrismJS
Update behat test
Brendan Heywood [Mon, 9 Feb 2026 23:12:07 +0000 (10:12 +1100)]
MDL-87903 core: Warm local hooks cache from shared cache
Huong Nguyen [Fri, 3 Apr 2026 02:22:48 +0000 (09:22 +0700)]
weekly release 5.1.3+
Huong Nguyen [Fri, 3 Apr 2026 02:22:47 +0000 (09:22 +0700)]
NOBUG: Add upgrade notes
Huong Nguyen [Fri, 3 Apr 2026 02:22:25 +0000 (09:22 +0700)]
NOBUG: Fixed SVG browser compatibility
AMOS bot [Fri, 3 Apr 2026 00:07:51 +0000 (00:07 +0000)]
Automatically generated installer lang files
Paul Holden [Tue, 3 Mar 2026 13:57:35 +0000 (13:57 +0000)]
MDL-88006 ai: normalise line breaks in AI response helper.
Match multiple instances of either CRLF, LF and/or BR tags, replace
them with double <br/> tags for consistent output.
Safat [Wed, 1 Apr 2026 12:05:13 +0000 (23:05 +1100)]
MDL-88092 core_h5p: Fix version conflict
AMOS bot [Thu, 2 Apr 2026 00:08:13 +0000 (00:08 +0000)]
Automatically generated installer lang files