Compare commits

...

1719 Commits

Author SHA1 Message Date
Huong Nguyen 4da09fd508 Moodle release 5.2beta 2026-03-27 15:42:27 +07:00
Huong Nguyen cf4a87c0d5 NOBUG: Add upgrade notes 2026-03-27 15:42:27 +07:00
Huong Nguyen 6cea834ebf Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-03-27 15:41:59 +07:00
Huong Nguyen 056b540c01 Merge branch 'MDL-81241-main' of https://github.com/junpataleta/moodle 2026-03-26 10:51:05 +07:00
Mihail Geshoski b528807eb2 Merge branch 'MDL-88270-main' of https://github.com/davewoloszyn/moodle 2026-03-26 11:33:40 +08:00
Huong Nguyen 295d4c548a Merge branch 'MDL-88279-main' of https://github.com/meirzamoodle/moodle 2026-03-26 07:49:21 +07:00
AMOS bot 9299a8b280 Automatically generated installer lang files 2026-03-26 00:07:58 +00:00
Huong Nguyen f61d3ac0a0 Merge branch 'MDL-77558-main' of https://github.com/davewoloszyn/moodle 2026-03-25 14:37:48 +07:00
Huong Nguyen ade4a05ea4 Merge branch 'MDL-88260' of https://github.com/paulholden/moodle 2026-03-25 14:32:09 +07:00
Huong Nguyen bc53bbedde Merge branch 'MDL-85451-main' of https://github.com/junpataleta/moodle 2026-03-25 14:29:39 +07:00
Huong Nguyen 19100883e2 Merge branch 'MDL-87560' of https://github.com/paulholden/moodle 2026-03-25 14:27:19 +07:00
David Woloszyn d45fc6d2d8 MDL-77558 mod_forum: Mark posts as read in forum grader 2026-03-25 17:35:00 +11:00
Huong Nguyen 09afcbaf37 Merge branch 'MDL-87548-main' of https://github.com/andimendunia/moodle 2026-03-25 10:50:13 +07:00
Huong Nguyen ef575b0444 Merge branch 'main_MDL-88255' of https://github.com/mattporritt/moodle 2026-03-25 10:17:02 +07:00
Huong Nguyen 13d5d7a6b0 Merge branch 'MDL-88197' of https://github.com/paulholden/moodle 2026-03-25 09:22:40 +07:00
Huong Nguyen 07f4245cdd Merge branch 'MDL-88076' of https://github.com/paulholden/moodle 2026-03-25 09:11:58 +07:00
Huong Nguyen c4d9efd5b5 Merge branch 'MDL-87626-main' of https://github.com/davewoloszyn/moodle 2026-03-25 09:04:17 +07:00
Huong Nguyen fa5785883c Merge branch 'MDL-87803' of https://github.com/paulholden/moodle 2026-03-25 08:59:16 +07:00
Huong Nguyen 4f8c42e11b Merge branch 'MDL-87580-task-autolinking' of https://github.com/brendanheywood/moodle 2026-03-25 08:47:58 +07:00
Matt Porritt cdcb16e670 MDL-88255 Authentication: Fix login page instruction and image format
Improve the styling that controls the image display to better display the image.
Switch from an embedded watermark in the image, to one using the css
::after pseudo-element so the watermark displays correctly on all
screen resolutions and can be translated.

Make the width of the instructions container wider for better
display of default and custom instructions.
2026-03-25 06:43:00 +11:00
Paul Holden 9c5bf31e9f MDL-87560 assignsubmission_onlinetext: indicate truncated summary.
Only when the submission has been truncated should we show the
"View more" link, otherwise it appears to not do anything for already
short text.
2026-03-24 12:48:03 +00:00
David Woloszyn 61b8f8b255 MDL-88270 mod_assign: Differentiate mark panel from grade panel 2026-03-24 20:09:51 +11:00
David Woloszyn e820c69e22 MDL-88270 mod_assign: Show marking button to allocated users only 2026-03-24 20:09:51 +11:00
meirzamoodle 8df28d7014 MDL-88279 core_session: fix cluster test retry count assertion
Update session_redis_cluster_test to expect 3 connection attempts
instead of 5, matching the $maxretries default value in redis.php.
2026-03-24 13:20:01 +07:00
Huong Nguyen b9e7a4e3e1 Merge branch 'MDL-88070-main' of https://github.com/sh-csg/moodle 2026-03-24 08:40:16 +07:00
Huong Nguyen c6dbb9f97c Merge branch 'MDL-87748-main' of https://github.com/lucaboesch/moodle 2026-03-24 08:37:01 +07:00
Huong Nguyen a8b3252cd9 Merge branch 'MDL-51152-main' of https://github.com/christianabila/moodle 2026-03-24 08:32:17 +07:00
Sara Arjona 154ef00435 Merge branch 'MDL-88229-main' of https://github.com/crazyserver/moodle 2026-03-23 14:27:40 +01:00
Huong Nguyen 24d4749940 Merge branch 'MDL-66415-main' of https://github.com/raortegar/moodle 2026-03-23 13:45:53 +07:00
Huong Nguyen c05ca7b89c Merge branch 'MDL-87941' of https://github.com/paulholden/moodle 2026-03-23 13:41:22 +07:00
Huong Nguyen face001295 Merge branch 'MDL-87438-main' of https://github.com/muhammadarnaldo/moodle 2026-03-23 13:36:51 +07:00
David Woloszyn 126e031932 MDL-87626 core_search: Fix typo in input value check
Co-authored-by: Uli Wessmann
2026-03-23 13:37:15 +11:00
Huong Nguyen 65e8669d43 Merge branch 'MDL-88224-main' of https://github.com/andimendunia/moodle 2026-03-23 09:15:27 +07:00
AMOS bot 037d0d2dc4 Automatically generated installer lang files 2026-03-21 00:08:06 +00:00
Paul Holden d63f69202e MDL-88260 reportbuilder: clarify developer changelog notes for 5.2. 2026-03-20 16:42:32 +00:00
Luca Bösch e8e68cff6d MDL-87748 assign: format checkbox with Bootstrap classes. 2026-03-20 09:06:45 +01:00
Mihail Geshoski 4e09dbbc14 Merge branch 'MDL-87715-main' of https://github.com/lucaboesch/moodle 2026-03-20 15:46:00 +08:00
Mihail Geshoski 1ba116a789 Merge branch 'MDL-87661' of https://github.com/paulholden/moodle 2026-03-20 15:41:23 +08:00
Mihail Geshoski e1735d6306 Merge branch 'MDL-88122-navbar_empty-breadcrumb' of https://github.com/stopfstedt/moodle 2026-03-20 15:34:45 +08:00
Mihail Geshoski 569da5e9d7 Merge branch 'MDL-87320-main' of https://github.com/lucaboesch/moodle 2026-03-20 15:24:58 +08:00
Mihail Geshoski 0199f6a7a8 Merge branch 'MDL-84780-main' of https://github.com/sh-csg/moodle 2026-03-20 15:20:32 +08:00
Mihail Geshoski 05a8278e3d Merge branch 'MDL-83459_create_submission_switchids_cmid' of https://github.com/sharpchi/moodle 2026-03-20 15:15:32 +08:00
Andi Permana 8155ae4bd3 MDL-88224 auth: Custom instructions replace full welcome section 2026-03-20 13:33:13 +07:00
Pau Ferrer Ocaña ebd7ac02b7 MDL-88229 tool_mobile: Fix custom user menu items setting label key 2026-03-20 07:06:35 +01:00
Shamim Rezaie 213a869e7f on-demand release 5.2dev+ 2026-03-20 15:12:29 +11:00
Shamim Rezaie bf67d12d71 NOBUG: Add upgrade notes 2026-03-20 15:12:28 +11:00
Shamim Rezaie de6014788c Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-03-20 15:12:10 +11:00
Stefan Hanauska 9a4d2c5083 MDL-84780 course: Disabled modules are not allowed 2026-03-19 20:48:52 +01:00
Luca Bösch abc623658b MDL-87320 forum: Correctly escape group names. 2026-03-19 17:41:41 +01:00
Brendan Heywood 5618416940 MDL-87580 task: Fix task output autolinking 2026-03-20 01:40:46 +11:00
Jun Pataleta 393ba47f01 MDL-81241 theme_boost: Accessibility test for the footer region links 2026-03-19 20:30:13 +08:00
Jun Pataleta 5105244a26 MDL-81241 theme_boost: Ensure footer links have sufficient spacing 2026-03-19 20:30:13 +08:00
Safat ed26c81179 MDL-87959 tool_installaddon: Add extra behat for chooser footer 2026-03-19 12:12:53 +07:00
Paul Holden fb55cab34b MDL-88054 tool_mfa: ensure factor preference icons are circular.
They were once, but then weren't. Probably same cause as that fixed
in 0ff8f7b2 for all emoticons.
2026-03-19 12:54:15 +08:00
Mihail Geshoski 9ee7ac7ff2 Merge branch 'MDL-87321' of https://github.com/paulholden/moodle 2026-03-19 12:54:15 +08:00
Huong Nguyen 132186d33e Merge branch 'MDL-88080' of https://github.com/paulholden/moodle 2026-03-19 12:54:15 +08:00
Huong Nguyen 579b9931f8 Merge branch 'MDL-88225-main' of https://github.com/muhammadarnaldo/moodle 2026-03-19 12:54:15 +08:00
Mihail Geshoski 52315e5604 Merge branch 'MDL-87810-main' of https://github.com/junpataleta/moodle 2026-03-19 12:54:15 +08:00
Huong Nguyen 2a4773c2e2 Merge branch 'MDL-87935-main' of https://github.com/yusufwib01/moodle 2026-03-19 12:54:15 +08:00
Huong Nguyen 0c4255d0b3 Merge branch 'MDL-87592-main' of https://github.com/andimendunia/moodle 2026-03-19 12:54:14 +08:00
Ilya Tregubov e214e4e928 Merge branch 'MDL-75067' of https://github.com/paulholden/moodle 2026-03-19 12:54:14 +08:00
Mihail Geshoski 0c2a99a8cf Merge branch 'MDL-87096' of https://github.com/paulholden/moodle 2026-03-19 12:54:14 +08:00
Paul Holden c0936d0d72 Merge branch 'MDL-88226' of https://github.com/dravek/moodle 2026-03-19 12:54:14 +08:00
Ilya Tregubov 5d2ba5d22a Merge branch 'MDL-88176' of https://github.com/paulholden/moodle 2026-03-19 12:54:14 +08:00
Mihail Geshoski 8d739698bd Merge branch 'MDL-85002-bugfix' of https://github.com/marxjohnson/moodle 2026-03-19 12:54:14 +08:00
Laurent David 1d22c717e7 MDL-88072 core_course: Add separator for collapsed subsections 2026-03-19 12:54:13 +08:00
Mihail Geshoski 0de4b8c9d4 Merge branch 'MDL-87766-main' of https://github.com/josepico01/moodle 2026-03-19 12:53:47 +08:00
Michael Hawkins f3502ab16e Merge branch 'MDL-87649-user-suspended' of https://github.com/brendanheywood/moodle 2026-03-19 12:53:12 +08:00
Huong Nguyen 7f49ab75b9 Merge branch 'MDL-86456-main' of https://github.com/muhammadarnaldo/moodle 2026-03-19 12:53:12 +08:00
Mark Sharp 61698faae4 MDL-83459 mod_assign: change switchids to use cmid 2026-03-18 15:24:02 +00:00
Muhammad Arnaldo 5fe77dc65e MDL-88225 admin: New login screen image
- Improved image and add an AI watermark
2026-03-18 17:55:11 +07:00
Andi Permana 6c1b57d55d MDL-87592 auth_email: preserve wantsurl through MFA email confirmation 2026-03-18 16:05:42 +07:00
Raquel Ortega 8f82f0e50e MDL-66415 core_message: Improve bulk messaging result handling 2026-03-18 09:35:07 +01:00
Jun Pataleta dfa4eb68af MDL-85451 block_timeline: Add accessibility Behat test coverage 2026-03-18 13:24:09 +08:00
Jun Pataleta 1d1496ff3e MDL-85451 block_timeline: Group the due date filter options
To ensure that the filter options for the day filter menu matches
the menu pattern and pass accessibility checks, we need to:
* Group the due date filter options, labelled by the "Due date"
"heading".
* Set the "Due date" heading with a presentation role to prevent
assistive technologies from announcing it when the user goes through
the menu options.
2026-03-18 13:24:09 +08:00
Jun Pataleta 70155ecd4e MDL-85451 block_timeline: Fix heading levels 2026-03-17 23:10:15 +08:00
Paul Holden 5890035d60 MDL-88176 customfield: handle static singleton pattern in base class.
Replace duplicate implementation in all handler implementations. Ensure
that it is consistently reset during PHPUnit/Behat tests.

Co-authored-by: Yerai Rodríguez <yerai.rodriguez@moodle.com>
2026-03-16 14:20:55 +00:00
David Carrillo f9a2f9c041 MDL-88226 phpunit: Fix fragile tests using adhoc task manager
- Reset task manager state when resetting all data
- mod_quiz: Fix fragile adhoc task manager tests
- mod_assign: Fix fragile adhoc task manager tests
2026-03-16 14:11:42 +01:00
Paul Holden 931497c533 MDL-88076 tool_mfa: improved parsing of redirect exclusions config.
Ensure all permutations of EOL markers are covered/trimmed.
2026-03-16 11:36:37 +00:00
Huong Nguyen 601ad4cda9 Merge branch 'MDL-80983-main' of https://github.com/lucaboesch/moodle 2026-03-16 17:41:00 +07:00
Huong Nguyen bca62cf378 Merge branch 'MDL-86458-main' of https://github.com/yusufwib01/moodle 2026-03-16 16:43:53 +07:00
Huong Nguyen b6adb70907 Merge branch 'MDL-86950-main' of https://github.com/raortegar/moodle 2026-03-16 16:39:36 +07:00
Luca Bösch df8412f14c MDL-80983 auth: Filter OAuth2 method name buttons. 2026-03-16 10:37:18 +01:00
Huong Nguyen 682a82a635 Merge branch 'MDL-86839-main' of https://github.com/PhMemmel/moodle 2026-03-16 16:33:03 +07:00
Daniel Ureña 1e82c52b8d MDL-84960 enrol: Fix WS get_enrolled_users with initials 2026-03-16 10:29:07 +01:00
Mark Johnson 3c14bdf6de MDL-85002 mod_quiz: Update override behat test
Update the quiz_override_reason behat test to use the new tertiary
navigation.
2026-03-16 09:27:39 +00:00
Mihail Geshoski 4732478b2f Merge branch 'mdl-86687_main' of https://github.com/james-cnz/moodle 2026-03-16 17:18:11 +08:00
Michael Hawkins 5db8c97941 Merge branch 'MDL-88206-main' of https://github.com/HuongNV13/moodle 2026-03-16 16:59:06 +08:00
Shamiso Jaravaza abfd83f728 MDL-86950 mod_bigbluebuttonbn: Update experimental features settings
* Renamed Experimental Features Setting category string with updated Session Access string
* Moved Register Live Session setting to Extended Capabilities category
2026-03-16 09:39:12 +01:00
Huong Nguyen f045893eb1 Merge branch 'MDL-86457-main' of https://github.com/yusufwib01/moodle 2026-03-16 15:07:54 +07:00
Shamim Rezaie b680eb55cd Merge branch 'MDL-82625-main' of https://github.com/cameron1729/moodle 2026-03-16 18:28:41 +11:00
Andrew Nicols a339ab359d Merge branch 'MDL-87914' of https://github.com/paulholden/moodle 2026-03-16 12:59:10 +08:00
meirzamoodle a140c2ef7e MDL-87987 core: Add React profiler and dev-mode bundle switching
Add core/profiler and core/mount helpers that wrap React components in
<Profiler> when jsrev === -1. Extend import_map to serve .development.js
React bundles in dev mode via a path modifier on react and react-dom entries.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2026-03-16 12:50:43 +08:00
meirzamoodle 1347d848a0 MDL-87987 core: Bundle react-dom profiling build, pin esm.sh to stable/
Add react-dom/client.development.js by fetching the profiling bundle from
esm.sh and outputting it under a different filename via outputFileName.
Switch all esm.sh URLs from the unversioned path to stable/ to get
reproducible, immutable URLs. Replace .replace() with .replaceAll() to
handle multiple occurrences in the rewritten import paths.
2026-03-16 12:50:43 +08:00
Jose Pico 988c1d762c MDL-87766 quiz: Adds capability for customising quiz question numbers
- Introduces 'mod/quiz:customisequestionnumbers' to provide granular
control over who can modify the displayed question numbers in a quiz.
- This capability is also used in external API calls, inplace editing, and
the quiz structure logic.
- An upgrade step ensures existing roles with 'mod/quiz:manage'
automatically receive this new capability to maintain current permissions.
- Includes tests for capability check.
2026-03-16 14:03:01 +11:00
Huong Nguyen 0b3f84d153 Merge branch 'MDL-87795-main' of https://github.com/albertgasset/moodle 2026-03-16 09:45:47 +07:00
Huong Nguyen ebf73f732c MDL-84960 enrol: Fix illegal whitespaces 2026-03-16 09:36:45 +07:00
Huong Nguyen 9b96e7972d Merge branch 'MDL-84960-main' of https://github.com/durenadev/moodle 2026-03-16 09:10:31 +07:00
Juan Leyva 8c9fa2e45f MDL-87495 tool_mobile: Fix WS unit tests 2026-03-16 09:00:53 +07:00
Huong Nguyen 395e4c50a9 MDL-88206 admin: Set default login background image 2026-03-16 08:54:20 +07:00
Huong Nguyen 6c31fd6f09 Merge branch 'MDL-82439' of https://github.com/jonof/moodle 2026-03-16 08:48:42 +07:00
Jake Dallimore fd0081861e Merge branch 'MDL-83096-main' of https://github.com/jason-platts/moodle 2026-03-16 09:42:38 +08:00
Andrew Nicols a7a91f102d MDL-86462 core: Bump composer.json for Guzzle 2026-03-15 21:06:01 +08:00
Andrew Nicols d49b351fa5 Merge branch 'MDL-86462_upgrade-guzzle' of https://github.com/ziegenberg/moodle 2026-03-15 20:59:03 +08:00
Andrew Nicols 0884fe129f MDL-86460 core: Bump composer.json for laravel/serializable-closure 2026-03-15 20:55:23 +08:00
Andrew Nicols 26e257d225 Merge branch 'MDL-86460-main' of https://github.com/andimendunia/moodle 2026-03-15 20:54:28 +08:00
Andrew Nicols 8d793c03ea Merge branch 'MDL-86406' of https://github.com/paulholden/moodle 2026-03-15 20:50:50 +08:00
meirzamoodle f6f2b6fe62 MDL-88124 core: Update tsconfig moduleResolution to bundler
Switch moduleResolution from "node" to "bundler" and remove the
explicit baseUrl, as these settings are now handled by the
extended tsconfig.aliases.json configuration.
2026-03-15 20:48:04 +08:00
meirzamoodle c4855443c6 MDL-88124 grunt: jsconfig generates tsconfig.aliases.json
The `grunt jsconfig` task generates both jsconfig.json and
tsconfig.aliases.json for IDE path resolution for AMD and ESM modules.

React, ReactDOM and @moodlehq/design-system path aliases are not
included in tsconfig.aliases.json as they are declared as dependencies
in package.json — TypeScript resolves their types automatically.

All components with a js/esm/src/ directory receive a path alias,
regardless of whether they currently contain .ts/.tsx files.
2026-03-15 20:48:02 +08:00
Paul Holden 08f19afaf5 MDL-86406 libraries: upgrade to version 5.22.11 of ADOdb. 2026-03-15 11:49:49 +00:00
Brendan Heywood 6caa1d26bc MDL-87649 user: Add suspended label to participants page 2026-03-15 00:21:47 +11:00
yusufwib01 b1b26d40cb MDL-87935 aiprovider_ollama: fix incorrect error response handling 2026-03-14 02:12:16 +07:00
Mihail Geshoski 6b43ff3166 Merge branch 'MDL-87633_main' of https://github.com/marxjohnson/moodle 2026-03-14 00:27:53 +08:00
Sara Arjona de80a3d1fe Merge branch 'MDL-88061-main' of https://github.com/aanabit/moodle 2026-03-13 16:02:50 +01:00
Sara Arjona 0321f1944f Merge branch 'MDL-88211' of https://github.com/paulholden/moodle 2026-03-13 15:25:15 +01:00
Amaia Anabitarte 16fc459834 Merge branch 'MDL-88072-main' of https://github.com/laurentdavid/moodle 2026-03-13 14:03:04 +01:00
Amaia Anabitarte f1b8e977dc MDL-88061 core_course: Redirect non-restricted pages to view. 2026-03-13 13:52:16 +01:00
Paul Holden 90e4b768b3 MDL-88211 backup: remove redundant usage of task manager from tests.
The asynchronouse backup/restore tests are only concerned with testing
the implementation of the accompanying task class directly. When they
try to do so at a distance via the task manager API they introduce
random failures by failing to account for different queued tasks that
come from other components (e.g. Workplace).
2026-03-13 12:36:27 +00:00
Mihail Geshoski 7af4fb348c Merge branch 'MDL-85002-main' of https://github.com/lucaboesch/moodle 2026-03-13 18:15:33 +08:00
Mark Johnson d2e870f221 MDL-87633 qbank_viewquestioname: Link question name to the first action
This updates the question name column to link the name of each question
to the first action in the list of question actions.

The action_link is passed to the questionname inplace editable class,
where its URL and text are used as the URL and title of a link
containing the question name.
2026-03-13 09:48:26 +00:00
Daniel Poggenpohl 6a31907590 MDL-83096 mod_lti: Register view completion when launching in new window 2026-03-13 08:55:17 +00:00
Andrew Nicols adaade73d3 MDL-87909 core: Fix npm-shrinkwrap 2026-03-13 16:42:02 +08:00
Mihail Geshoski 2e1ae57dd5 Merge branch 'MDL-87516-master' of https://github.com/NashTechOpenUniversity/moodle 2026-03-13 15:35:14 +08:00
Huong Nguyen f5eb930174 Merge branch 'MDL-87506-delete-shortcode-idnumber' of https://github.com/brendanheywood/moodle 2026-03-13 14:13:57 +07:00
Laurent David 2a4f96e628 MDL-88072 core_course: Tighten subsection content spacing 2026-03-13 08:10:31 +01:00
Huong Nguyen fd927c5223 Merge branch 'main-MDL-86970' of https://github.com/golenkovm/moodle 2026-03-13 14:10:10 +07:00
Huong Nguyen 8f69c354b9 Merge branch 'MDL-87959-main' of https://github.com/safatshahin/moodle 2026-03-13 14:05:29 +07:00
Andrew Nicols 780f9fff56 MDL-87909 core: Include @moodlehq/design-system js
This commit also includes the @types/react, and teaches typescript how
to consume the design system definition files.
2026-03-13 14:34:57 +08:00
Philipp Memmel 88bc274653 MDL-86839 grunt: Make grunt watch respect --force option 2026-03-13 07:33:34 +01:00
Sara Arjona b46a8f8c3e Merge branch 'MDL-88109-main' of https://github.com/sarjona/moodle 2026-03-13 06:45:46 +01:00
Safat 6aeeb5c0d7 MDL-87959 admin: Add marketplace availability in notifications 2026-03-13 15:47:52 +11:00
Safat b0d45d6812 MDL-87959 tool_installaddon: Add support for marketplace 2026-03-13 15:47:52 +11:00
Safat 9073196c3b Merge branch 'MDL-87923-check-summary' of https://github.com/brendanheywood/moodle 2026-03-13 15:24:31 +11:00
Safat 04a30c9e4b Merge branch 'MDL-86378-502' of https://github.com/catalyst/moodle 2026-03-13 13:45:13 +11:00
Mihail Geshoski 168eb1bd63 Merge branch 'MDL-81608-main-2' of https://github.com/junpataleta/moodle 2026-03-13 09:53:33 +08:00
Mihail Geshoski 3471e2edfc Merge branch 'MDL-86493-502' of https://github.com/catalyst/moodle 2026-03-13 09:42:34 +08:00
Huong Nguyen 56cce80b80 Merge branch 'MDL-87100' of https://github.com/paulholden/moodle 2026-03-13 08:37:54 +07:00
Huong Nguyen 294b28b774 Merge branch 'MDL-86843-main' of https://github.com/lucaboesch/moodle 2026-03-13 08:28:55 +07:00
Jonathon Fowler 42d29ec635 MDL-82439 iplookup: catch and handle GeoIp2 exceptions 2026-03-13 07:42:44 +10:00
Alexander Van der Bellen ff4dce5d0d MDL-86493 mod_quiz: Change overrides cache from O(n*m) to O(n) 2026-03-12 22:38:02 +08:00
Brendan Heywood 31f361c73f MDL-87649 user: Show suspended users more clearly 2026-03-13 00:54:49 +11:00
Albert Gasset 00b4ad2863 MDL-87795 message_airnotifier: Add task to cleanup devices table 2026-03-12 11:50:57 +01:00
Albert Gasset 07168482d7 MDL-87795 message_airnotifier: Handle 404 (unregistered token) responses 2026-03-12 11:50:57 +01:00
Muhammad Arnaldo 6b7f82e3da MDL-86456 libraries: Upgrade Slim Framework to 4.15.1 2026-03-12 16:33:18 +07:00
Paul Holden c2a088d295 MDL-88197 customfield_number: observe required field configuration. 2026-03-12 09:16:14 +00:00
Huong Nguyen ff0f832af2 MDL-86843 tool_task: style tables correctly. 2026-03-12 09:49:17 +01:00
Andi Permana b1e9140e60 MDL-87548 repository_wikimedia: Handle HTTP 429 rate limiting 2026-03-12 15:29:21 +07:00
Andi Permana 0e958af0b3 MDL-87546 theme_boost: Move recaptcha below forgot password link 2026-03-12 15:28:13 +07:00
Andi Permana 51212143ef MDL-86460 libraries: upgrade to version 2.0.10 of Serializable Closure. 2026-03-12 15:21:52 +07:00
Huong Nguyen 096f0e3f18 Merge branch 'MDL-87619-main' of https://github.com/durenadev/moodle 2026-03-12 15:08:56 +07:00
Huong Nguyen 9a18b245d4 Merge branch 'MDL-87495-main' of https://github.com/durenadev/moodle 2026-03-12 15:02:32 +07:00
Huong Nguyen 06226ecf7b Merge branch 'MDL-87556-main-v3' of https://github.com/yusufwib01/moodle 2026-03-12 14:54:23 +07:00
Huong Nguyen 15026d939f Merge branch 'MDL-86616' of https://github.com/timhunt/moodle 2026-03-12 14:43:35 +07:00
Huong Nguyen 655ed29c5f Merge branch 'MDL-81559-main' of https://github.com/davewoloszyn/moodle 2026-03-12 14:41:29 +07:00
Mihail Geshoski d0820d5c43 Merge branch 'MDL-85517_main' of https://github.com/marxjohnson/moodle 2026-03-12 14:26:41 +08:00
Mihail Geshoski 40693a3c8f Merge branch 'MDL-74519-main' of https://github.com/AnupamaSarjoshi/moodle 2026-03-12 14:08:03 +08:00
Mihail Geshoski 86d528fdd1 Merge branch 'MDL-85637-main' of https://github.com/izendegi/moodle 2026-03-12 14:03:03 +08:00
David Woloszyn 91e08ada83 MDL-86006 mod_assign: Fix marker column sorting by disabling it 2026-03-12 12:50:41 +07:00
Misha Golenkov edb7b3236d MDL-86970 core_sms: Resend async SMS when gateway fails 2026-03-12 16:16:14 +11:00
Misha Golenkov 6f7cb5ee55 MDL-86970 core_sms: Remove dedicated SetSMSAttributes call for AWS SNS 2026-03-12 16:15:02 +11:00
yusufwib01 78dff438c7 MDL-87556 tool_mfa: Redesign verification form 2026-03-12 11:47:32 +07:00
Michael Hawkins b0d1d28970 Merge branch 'MDL-87546-main' of https://github.com/HuongNV13/moodle 2026-03-12 12:36:22 +08:00
Huong Nguyen b2e19ee5bb MDL-87546 tool_mfa: support wildcard theme pluginfile exemptions 2026-03-12 11:30:03 +07:00
Huong Nguyen a834b7b935 MDL-87546 theme_boost: Login page redesign
Co-authored-by: Andi Permana <andi.thea96@gmail.com>
2026-03-12 11:30:01 +07:00
Safat 57f026f3f0 Merge branch 'MDL-87708-main' of https://github.com/HuongNV13/moodle 2026-03-12 15:12:20 +11:00
Andrew Nicols 8b4df6920f Merge branch 'MDL-87730-main' of https://github.com/HuongNV13/moodle 2026-03-12 10:44:10 +08:00
Huong Nguyen 70d9da9a6b MDL-87708 admin: Improve MoodleNet removal warnings message 2026-03-12 09:26:29 +07:00
hieuvu 8f41f71361 MDL-87516 core_question: update behaviour when update question attempt. 2026-03-12 09:13:42 +07:00
Alexander Van der Bellen 94b2f36168 MDL-86378 mod_lesson: Add override reason field 2026-03-12 09:47:14 +08:00
Alexander Van der Bellen 7bd4aa2ee7 MDL-86378 mod_assign: Add override reason field 2026-03-12 09:47:14 +08:00
Alexander Van der Bellen b09ae54a1d MDL-86378 mod_quiz: Add override reason field 2026-03-12 09:47:14 +08:00
Stefan Topfstedt 436f9f1af2 MDL-88122 navigation: omit empty breadcrumb container in output. 2026-03-11 17:43:51 -07:00
Jun Pataleta 4d432fe247 MDL-81608 quiz: Deprecated unused lang strings
The language strings `addpagebreak` and `removepagebreak` have been
deprecated and should no longer be used.
2026-03-12 08:20:31 +08:00
Safat 8a48088a04 Merge branch 'MDL-87703-main' of https://github.com/cameron1729/moodle 2026-03-12 10:07:09 +11:00
Sara Arjona a7a88e789a MDL-88109 router: Use unencoded URL for location redirect 2026-03-11 16:46:59 +01:00
Daniel Ureña a1944f3650 MDL-87619 tool_mobile: Add JavaScript allowlist setting for the app 2026-03-11 16:03:53 +01:00
Daniel Ureña 25be227f15 MDL-87495 tool_mobile: Move app-subscription settings to Premium page 2026-03-11 15:59:44 +01:00
Mark Johnson 51e8d3a5db MDL-85002 boost: Standarise tertiary navigation
Switch tertiary navigation from `core/url_select` to
`core/tertiary_navigation_selector`.
2026-03-11 15:28:00 +01:00
Luca Bösch 79ccace5f2 MDL-85002 mod_quiz: Navigation with standard tertiary nav elements. 2026-03-11 15:28:00 +01:00
Luca Bösch 534bde05f8 MDL-85002 question: Navigation with standard tertiary nav elements. 2026-03-11 15:27:58 +01:00
Laurent David d2f3409943 MDL-88072 core_course: Move section info spacing into CSS 2026-03-11 13:10:41 +01:00
Amaia Anabitarte 195a2d31f0 Merge branch 'MDL-88148-main' of https://github.com/roland04/moodle 2026-03-11 12:42:24 +01:00
Hai Nguyen Van 6f055603f2 MDL-86616 filepicker: link restrictions to input via aria-describedby 2026-03-11 10:48:34 +00:00
Iñigo Zendegi e0c32338b0 MDL-85637 question: Optimize max question version SQL query 2026-03-11 11:38:31 +01:00
Mark Johnson 43e4ab354d MDL-85517 course: Reset large courses asynchronously
Very large courses can take a long time to reset due to large number of
users to unenrol, large numbers of grades to delete, etc.

This adds an option to move the processing of a course reset to an
ad-hoc task. A task indicator is displayed on the Reset page to show
progress of the task, and the user is redirected back to the course page
once the task is complete.
2026-03-11 09:06:38 +00:00
Daniel Ureña 2f9d536bba MDL-84960 enrol: Fix wrong indentation in WebService returns method 2026-03-11 09:39:42 +01:00
Daniel Ureña 752a75008a MDL-84960 core: Added initials to the user structures 2026-03-11 09:38:53 +01:00
Mihail Geshoski 0989ec02f5 Merge branch 'MDL-87494-main-fix' of https://github.com/HuongNV13/moodle 2026-03-11 15:59:02 +08:00
yusufwib01 6cdb232f5b MDL-86458 libraries: upgrade to version 3.0.2 of PHPComplex 2026-03-11 14:52:11 +07:00
Huong Nguyen 2649598c87 MDL-87494 tool_mobile: Version bumping 2026-03-11 14:48:44 +07:00
yusufwib01 af9d516359 MDL-86457 libraries: upgrade to version 3.0.1 of PHPMatrix 2026-03-11 14:48:00 +07:00
Huong Nguyen 8eace52334 MDL-87730 library: Integrate Moodle Design System tokens
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2026-03-11 14:19:22 +07:00
Andrew Nicols 21f4760b33 MDL-87765 core: Fix react import 2026-03-11 12:55:34 +08:00
meirzamoodle 5c94f4c2bf MDL-87765 core: Auto-initialise Mustache React components on page load
Add a core ESM auto-init module that mounts React components declared
with data-react-component/data-react-props in Mustache output.

The module resolves component specifiers, parses/normalises props, mounts
and unmounts roots, and watches DOM mutations so dynamically injected
fragments are handled automatically.

Load this auto-init script from page_requirements_manager, update import-map
entries to support react-dom/client resolution, and switch TS JSX mode to
react-jsx.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2026-03-11 12:55:34 +08:00
meirzamoodle ca96f7b127 MDL-87765 core: Add Mustache React helper for mount placeholders
Add a new {{#react}} Mustache lambda helper to render React mount
containers from JSON config in templates.

The helper outputs safe data attributes (including component and props),
supports optional inner fallback content, and is registered in renderer_base
for global template use.

Also add PHPUnit coverage for valid/invalid JSON, attribute output,
escaping, and fallback behaviour.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2026-03-11 12:55:34 +08:00
Anupama Sarjoshi b2d7c1d147 MDL-74519 badges: Fix date validation in course completion criteria
Ensures that badge awarding correctly evaluates the configured by-date
condition in course and course set completion criteria.

Co-authored by: Diego Campos
2026-03-11 09:58:22 +05:30
Mihail Geshoski bd404404a5 Merge branch 'MDL-87955-main-2' of https://github.com/junpataleta/moodle 2026-03-11 11:54:43 +08:00
Mihail Geshoski 1be6fef6f5 Merge branch 'MDL-83902-main' of https://github.com/ntdat1904/datnguyen_moodle 2026-03-11 11:48:07 +08:00
Huong Nguyen 67ca3a8e4c Merge branch 'MDL-87494-main' of https://github.com/durenadev/moodle 2026-03-11 10:45:20 +07:00
Huong Nguyen 31f610ac88 Merge branch 'MDL-87242-main' of https://github.com/durenadev/moodle 2026-03-11 10:38:50 +07:00
Huong Nguyen 23bc8ee345 Merge branch 'MDL-88141-main' of https://github.com/safatshahin/moodle 2026-03-11 10:37:52 +07:00
Mihail Geshoski ffecf61e73 Merge branch 'MDL-83243_main' of https://github.com/sam-smucker/sam_moodle 2026-03-11 11:33:07 +08:00
Safat dda3e45c3e MDL-87708 theme: Remove stale moodlenet logo css
Part of MDL-87885
2026-03-11 09:38:58 +07:00
Andi Permana ff379c923f MDL-87708 course: Remove tool_moodlenet reference from Behat test
Part of MDL-87351
2026-03-11 09:38:58 +07:00
Andi Permana 13e6efabb9 MDL-87708 admin: Remove tool_moodlenet plugin
Part of MDL-87351

The MoodleNet integration plugin has been removed from core
due to the shutdown of MoodleNet public service in April 2026.

Sites using self-hosted MoodleNet instances can install the
plugin from the Moodle Plugins Directory.
2026-03-11 09:38:58 +07:00
yusufwib01 5409ba0e62 MDL-87708 tool_moodlenet: Update adhoc task to create profile fields
Part of MDL-87361
2026-03-11 09:38:58 +07:00
yusufwib01 284c9a9008 MDL-87708 tool_moodlenet: Remove user table moodlenetprofile support
Part of MDL-87361
2026-03-11 09:38:58 +07:00
yusufwib01 b1f6e322f5 MDL-87708 core: Remove MoodleNet profile ID from core
Part of MDL-87361
2026-03-11 09:38:58 +07:00
yusufwib01 f13cb6127f MDL-87708 core: Migrate MoodleNet profile ID to custom profile field
Part of MDL-87361
2026-03-11 09:38:58 +07:00
Muhammad Arnaldo 5153e23d20 MDL-87708 core: Deprecate get_moodlenet_info()
Part of MDL-87350
2026-03-11 09:38:47 +07:00
Muhammad Arnaldo 701f7efb05 MDL-87708 core: Remove MoodleNet repository links
Part of MDL-87350
2026-03-11 09:09:53 +07:00
Muhammad Arnaldo f9979de2a9 MDL-87708 core: Remove MoodleNet outbound sharing
Part of MDL-87350
2026-03-11 09:09:51 +07:00
Muhammad Arnaldo 146fda5681 MDL-87708 core: Remove MoodleNet outbound sharing tests
Part of MDL-87350
2026-03-11 09:08:42 +07:00
Muhammad Arnaldo 32c0db31e1 MDL-87708 core: Remove MoodleNet outbound sharing JS modules
Part of MDL-87350
2026-03-11 09:08:42 +07:00
Muhammad Arnaldo f5ccab8dde MDL-87708 admin: Remove MoodleNet outbound admin settings
Part of MDL-87350
2026-03-11 09:08:41 +07:00
Muhammad Arnaldo 9a885c5342 MDL-87708 oauth2: Remove MoodleNet issuer service integration
Part of MDL-87350
2026-03-11 09:08:41 +07:00
Muhammad Arnaldo 338ab0f0dd MDL-87708 core: Remove MoodleNet navigation entries
Part of MDL-87350
2026-03-11 09:08:41 +07:00
Muhammad Arnaldo f594589084 MDL-87708 theme: Remove MoodleNet outbound sharing styles
Part of MDL-87350
2026-03-11 09:08:41 +07:00
AMOS bot 8726e0b59e Automatically generated installer lang files 2026-03-11 00:09:42 +00:00
Daniel Ureña de34a232f8 MDL-87494 tool_mobile: Update Mobile app subscription page design 2026-03-10 15:21:18 +01:00
cescobedo 09c3dd16d6 Merge branch 'MDL-87023-main' of https://github.com/crazyserver/moodle 2026-03-10 15:11:13 +01:00
Mikel Martín 3776d95c8f MDL-88148 theme_boost: Fix drawers buttons icon styles 2026-03-10 14:13:13 +01:00
Jun Pataleta 82655dc5d8 MDL-81608 quiz: Add Add menu spacing to prevent overlap 2026-03-10 17:55:04 +08:00
Jun Pataleta c46ecf938a MDL-81608 quiz: Set more meaningful button labels
* Add/remove page break buttons
* Move question buttons
2026-03-10 17:55:04 +08:00
Jun Pataleta 51e3ffd811 MDL-81608 core: Add alt text to the YUI spinner image
The accessibility Behat test added to the quiz editing page uncovered
that the loading spinner icon does not have an appropriate alt text.
2026-03-10 17:55:03 +08:00
Jun Pataleta 2f460d01ea MDL-81608 quiz: Adjust size and spacing for the quiz edit page buttons
* In order to meet WCAG 2.2 criterion for minimum target size and make
it easier for users who have mobility limitations to use the quiz
editing page, we need to use the Bootstrap icon button styles and
increase the size and the spacing for the following buttons:
  * Add/remove page break button
  * Lock/unlock question dependency button
* This commit also makes the icons within the buttons as decorative and
moves the accessible name to the button elements themselves via the
aria-label attribute.
* Adjust Behat tests for checking the dependency buttons.
* Add accessibility Behat coverage for the quiz edit page.
2026-03-10 17:55:03 +08:00
Jun Pataleta 166bd34db8 MDL-81608 core: Label YUI dragdrop handles appropriately
The YUI dragdrop handles rely on the button's title attribute for its
accessible label. We should label it appropriately using the
aria-label attribute.
2026-03-10 17:55:03 +08:00
Mihail Geshoski b3b622672f Merge branch 'MDL-86006-main-fix' of https://github.com/HuongNV13/moodle 2026-03-10 17:46:02 +08:00
Pau Ferrer Ocaña 68e41f7db4 MDL-87023 tool_mobile: Update array code style 2026-03-10 10:30:55 +01:00
Pau Ferrer Ocaña bcd2304e6d MDL-87023 tool_mobile: Update feature disabled saved values to match app 2026-03-10 10:30:55 +01:00
Daniel Ureña 00beb65e6e MDL-87242 webservices: list all participants on get_enrolled_users 2026-03-10 08:59:49 +01:00
Laurent David d01961abc6 MDL-88072 core_course: Add separator for collapsed subsections 2026-03-10 08:24:57 +01:00
Andi Permana 1abb24994d MDL-87876 block_myoverview: fix my_courses behat after CTA move 2026-03-10 13:46:14 +07:00
Laurent David 756b0b2803 MDL-88072 core_course: Remove line for last subsection 2026-03-10 07:08:54 +01:00
Laurent David b2a03b4c75 MDL-88072 core_course: Reduce spacing after subsection 2026-03-10 07:08:54 +01:00
Laurent David f0c835b909 MDL-88072 core_course: Remove line under Subsection header 2026-03-10 07:08:54 +01:00
Safat dcf374daa2 MDL-88141 theme_boost: Fix borders for navbar 2026-03-10 12:38:38 +11:00
Huong Nguyen a5fe195a97 Merge branch 'MDL-87876-main' of https://github.com/andimendunia/moodle 2026-03-10 08:27:08 +07:00
Huong Nguyen 42502b7e8a Merge branch 'MDL-86698-main' of https://github.com/mickhawkins/moodle 2026-03-10 08:26:09 +07:00
Paul Holden a5a58eb0b7 MDL-87661 course: add required library to drag/drop upload handler. 2026-03-09 17:10:06 +00:00
Sara Arjona 46497e5efd Merge branch 'MDL-87966-main' of https://github.com/aanabit/moodle 2026-03-09 17:18:45 +01:00
Amaia Anabitarte acbeb4e4ab MDL-87966 router: Fix require_login for routing parameters 2026-03-09 15:13:36 +01:00
Mikel Martín 6600befb62 MDL-88148 theme_boost: Fix drawers toggle alignment 2026-03-09 14:40:27 +01:00
Mikel Martín d0a16682cd MDL-88148 theme_boost: Change svg colour to 'gray-700' colour 2026-03-09 14:40:13 +01:00
Paul Holden 5e7e715788 MDL-88080 admin: initially focus the form element failing validation.
This appears to replicate what the ancient admin_externalpage_print_header
method did prior to being deprecated in db785816, however its replacement
didn't support the same $focus argument - hence doing so manually now.
2026-03-09 11:57:53 +00:00
Adrian Greeve 1ad9883a6b Merge branch 'MDL-87908-main' of https://github.com/andrewnicols/moodle 2026-03-09 14:59:42 +08:00
Andrew Nicols 3af446ebec MDL-87908 admin: Coding style fix thirdpartylibs 2026-03-09 14:08:19 +08:00
Andrew Nicols aa84ee7ed7 MDL-87908 admin: Teach thirdparty libs report about /lib 2026-03-09 14:08:19 +08:00
Andrew Nicols 0d2489f2ae MDL-87908 core: Add react and react-dom libraries 2026-03-09 14:08:19 +08:00
Dai Nguyen Trong 0c158e03b9 MDL-83902 badges: Move awardlib.php to separate and namespaced files 2026-03-09 12:42:37 +07:00
Huong Nguyen dfda3c4a50 MDL-86006 mod_assign: Fix upgrade steps 2026-03-09 11:58:05 +07:00
Andi Permana 8bb990888c MDL-87876 block_myoverview: add persistent course management CTA 2026-03-09 11:18:23 +07:00
Huong Nguyen c159bcefaa Merge branch 'MDL-87544-main-v2' of https://github.com/andimendunia/moodle 2026-03-09 09:14:47 +07:00
Huong Nguyen ed3e5d83c7 Merge branch 'MDL-88093-failed-task-lang' of https://github.com/brendanheywood/moodle 2026-03-09 09:10:39 +07:00
Huong Nguyen 788b2ee953 Merge branch 'MDL-87883' of https://github.com/paulholden/moodle 2026-03-09 09:06:07 +07:00
Huong Nguyen 44a35ba8cf Merge branch 'MDL-79324-main' of https://github.com/lucaboesch/moodle 2026-03-09 09:03:04 +07:00
Huong Nguyen 62f22d6c4f Merge branch 'MDL-86006-main' of https://github.com/davewoloszyn/moodle 2026-03-09 09:00:27 +07:00
Brendan Heywood d1ad371e0a MDL-87506 cli: Allow course delete cli params of shortcode or idnumber 2026-03-07 02:34:03 +11:00
Paul Holden d562582b48 MDL-87803 blocks: set ARIA label to string content value.
Previously it was a string instance, which meant it wasn't encoded
correctly when used as part of the delete block confirmation.
2026-03-06 14:46:01 +00:00
Paul Holden 8f3a22f265 Merge branch 'MDL-87895-main' of https://github.com/roland04/moodle 2026-03-06 13:39:54 +00:00
Michael Hawkins ac02c46d0d MDL-86698 core: Update security.txt expiry 2026-03-06 18:48:43 +08:00
cescobedo 8b2889b68d Merge branch 'MDL-88111-main' of https://github.com/sarjona/moodle 2026-03-06 11:42:25 +01:00
cescobedo b513916daf Merge branch 'MDL-87984-main' of https://github.com/sarjona/moodle 2026-03-06 11:40:15 +01:00
cescobedo 23ff1fd7ed Merge branch 'MDL-88085-main' of https://github.com/sarjona/moodle 2026-03-06 11:32:24 +01:00
Luca Bösch 5c1a1a01cb MDL-87715 scorm: activity overview button class. 2026-03-06 11:11:07 +01:00
Luca Bösch 8d796f496d MDL-87715 quiz: activity overview button class. 2026-03-06 11:11:06 +01:00
Luca Bösch 8a7e98cceb MDL-79324 quiz: Don't show "Back" button in secure layout. 2026-03-06 11:06:58 +01:00
Andi Permana 046112c844 MDL-87544 tool_mobile: expose enablemycourses via webservices 2026-03-06 16:50:32 +07:00
Andi Permana c310b620ad MDL-87544 core: route homepage selection with enablemycourses 2026-03-06 16:50:32 +07:00
Andi Permana f810c5e4fd MDL-87544 core: add enablemycourses config and upgrade step 2026-03-06 16:50:32 +07:00
Sara Arjona e3fa94aa51 MDL-88111 course: Fix error in next/prev when last activity is invalid 2026-03-06 07:17:37 +01:00
Sara Arjona 1f43456cb3 MDL-88085 core: Deprecate drawer icons 2026-03-06 07:14:48 +01:00
Sara Arjona b13907b4ad MDL-87984 course: Override navigation behaviour for resource and url 2026-03-06 07:03:21 +01:00
Sara Arjona 7abd1c8f48 MDL-87984 course: Add cminfo::get/set_navigation_url methods 2026-03-06 06:56:40 +01:00
Sara Arjona 912be5e6ef MDL-87984 router: Use unencoded URL for location redirect 2026-03-06 06:56:40 +01:00
Jake Dallimore 6ebf41a6c2 weekly release 5.2dev 2026-03-06 12:09:59 +08:00
Jake Dallimore bcd6dc1908 NOBUG: Add upgrade notes 2026-03-06 12:09:59 +08:00
Jake Dallimore 839095c033 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-03-06 12:09:45 +08:00
Jake Dallimore 2df3c83725 MDL-87264 core_question: fix upgrade notes missing type declaration 2026-03-06 11:40:25 +08:00
David Woloszyn ac2313b3fd MDL-81559 calendar: adjust end date automatically 2026-03-06 14:06:14 +11:00
Adrian Greeve 5fc6b2440f Merge branch 'MDL-87922-main' of https://github.com/meirzamoodle/moodle 2026-03-06 09:14:05 +07:00
Andrew Nicols 855d1124d6 Merge branch 'MDL-87759-main-new' of https://github.com/meirzamoodle/moodle 2026-03-06 09:14:05 +07:00
Jake Dallimore a4b423f756 Merge branch 'MDL-86154_main' of https://github.com/marxjohnson/moodle 2026-03-06 09:14:03 +07:00
Adrian Greeve 5a46f5f535 Merge branch 'MDL-87045-main-minimal' of https://github.com/andrewnicols/moodle 2026-03-06 09:12:40 +07:00
Adrian Greeve ad5fb52184 Merge branch 'MDL-88009-main' of https://github.com/andrewnicols/moodle 2026-03-06 09:11:14 +07:00
Adrian Greeve f7feeaf855 Merge branch 'MDL-87950-main' of https://github.com/andrewnicols/moodle 2026-03-06 09:11:14 +07:00
Huong Nguyen beab444a8e Merge branch 'MDL-87657' of https://github.com/paulholden/moodle 2026-03-06 09:11:14 +07:00
Huong Nguyen 5af2d59493 Merge branch 'MDL-87553-main' of https://github.com/muhammadarnaldo/moodle 2026-03-06 09:11:14 +07:00
Mihail Geshoski eadb46fbbb Merge branch 'MDL-87264_main' of https://github.com/marxjohnson/moodle 2026-03-06 09:11:14 +07:00
Mihail Geshoski a712570853 Merge branch 'MDL-86691_main' of https://github.com/marxjohnson/moodle 2026-03-06 09:11:13 +07:00
Sara Arjona eeab920279 Merge branch 'MDL-87571-main' of https://github.com/aanabit/moodle 2026-03-06 09:11:11 +07:00
Jun Pataleta 5d2bb3d3c0 Merge branch 'MDL-87949' of https://github.com/paulholden/moodle 2026-03-06 09:04:38 +07:00
Ilya Tregubov ab1be69e00 Merge branch 'MDL-79574' of https://github.com/paulholden/moodle 2026-03-06 09:04:38 +07:00
Sara Arjona f76784be42 Merge branch 'MDL-88003-main' of https://github.com/sarjona/moodle 2026-03-06 09:04:34 +07:00
Sara Arjona fd32880e0b Merge branch 'MDL-87451' of https://github.com/paulholden/moodle 2026-03-06 09:03:41 +07:00
Sara Arjona 062377e7dc Merge branch 'MDL-87981-main' of https://github.com/laurentdavid/moodle 2026-03-06 09:03:40 +07:00
Sara Arjona 2a89ae42d5 Merge branch 'MDL-87979-main' of https://github.com/laurentdavid/moodle 2026-03-06 09:03:40 +07:00
Huong Nguyen 43b7b382eb Merge branch 'MDL-78476' of https://github.com/paulholden/moodle 2026-03-06 09:03:40 +07:00
Muhammad Arnaldo c5f7d7abaf MDL-87438 core: Fix multiselect saving with empty choices 2026-03-05 14:09:26 +07:00
Mikel Martín f56fbbbd36 MDL-87895 theme_boost: Add styles to CF disabled shared categories 2026-03-05 07:38:22 +01:00
Mikel Martín 35dd850a12 MDL-87895 customfield: Update behat tests 2026-03-05 07:38:21 +01:00
Mikel Martín 8c83811253 MDL-87895 customfield: Improve custom fields management UI
- Refactor core_customfield\output\management to improve
  maintainability.
- Separate list.mustache inner contents into category.mustache
  and field.mustache to improve maintainability.
- Convert customfield categories containers into '.card'.
- Update templates to improve the UI.
- Separate component custom field categories and shared categories
  into different containers to improve clarity.
- Add limitedwidth class to course field management pages.
2026-03-05 07:38:18 +01:00
David Woloszyn 05971060c4 MDL-86006 mod_assign: Multimarking Unit/Behat tests 2026-03-05 16:16:33 +11:00
meirzamoodle cd1dae7c3c MDL-87759 js: integrate esbuild with Grunt for React
Introduces the tooling to discover, build, and watch TypeScript/TSX React
source files across Moodle core and plugin components.

Build pipeline (.esbuild/)
- build.mjs: entry point; generates TS path aliases then runs all component
  builds; accepts --dev flag for development mode; throws on build failure
- generate-aliases.mjs: scans component metadata to produce
  tsconfig.aliases.json (@moodle/lms/<component>/* paths); skips rewrite
  when content is unchanged
- plugin/plugincomponents.mjs: single source of all React build logic:
  - buildPluginComponents(isDev): discovers and builds all components in
    parallel via a single glob (public/**/js/react/src/**/*.{ts,tsx});
    throws on any failure
  - watchComponents(isDev, onRebuild): starts esbuild in native watch mode
    using a shared incremental context; calls onRebuild with rebuilt source
    paths after each change so callers can run follow-up tasks (e.g. lint)
  - createBuildConfig(isDev): shared esbuild options (bundle, esm,
    jsx:automatic, minify/sourcemap/jsxDev per mode); define derived
    internally from isDev
  - resolveComponentPaths(entry): exported src->build path mapping so both
    full and single-file builders use the same resolution logic
  - React, ReactDOM and @moodle/lms/* marked external via inline array;
    no custom esbuild plugin needed

Grunt integration (.grunt/)
- tasks/react.js: single react task with three modes:
  - grunt react        — production build
  - grunt react:dev    — development build (sourcemaps, no minification)
  - grunt react:watch  — esbuild native watch; uses esbuild's own
    context.watch() rather than grunt-contrib-watch so the incremental
    build graph is preserved across rebuilds; ESLint runs in check-only
    mode after each change to avoid re-triggering esbuild
- tasks/javascript.js: loads react.js and includes react in the js task
  chain alongside amd and yui; all JS pipeline orchestration in one place
- tasks/startup.js: includes js/react/src/** in the startup file glob
- tasks/eslint.js: adds react ESLint target (fix: true) for source linting
- components.js: adds getReactTsSrcGlobList() for watch file patterns
- Gruntfile.js: exposes reactSrc glob and inReact flag in moodleEnv;
  react task is not loaded directly — javascript.js owns that

Config / deps
- tsconfig.json: base TypeScript config; extends tsconfig.aliases.json
- tsconfig.aliases.json: initial generated @moodle/lms/* path mappings
- .eslintrc: adds react ESLint overrides for TypeScript/TSX files
- package.json: adds esbuild and @typescript-eslint/parser
2026-03-05 10:57:31 +07:00
Conn Warwicker bb03ef4171 MDL-86006 mod_assign: Multimarking privacy provider export/delete 2026-03-05 14:52:27 +11:00
Conn Warwicker 204dda9aa8 MDL-86006 mod_assign: Add multimarking to assign backup and restore 2026-03-05 14:52:27 +11:00
Conn Warwicker 6e3b1b7d2f MDL-86006 mod_assign: Calculate grade from multimarking agreement method 2026-03-05 14:52:27 +11:00
Conn Warwicker 34ab628308 MDL-86006 mod_assign: Ability to set mark workflow state 2026-03-05 14:52:27 +11:00
Conn Warwicker 9f063147dd MDL-86006 mod_assign: Add marker panel 2026-03-05 14:52:27 +11:00
Conn Warwicker 1c0fbe046d MDL-86006 mod_assign: Update marks via quick grading 2026-03-05 14:52:27 +11:00
Conn Warwicker cb09c3ded1 MDL-86006 mod_assign: Allocate markers via quick grading or batch 2026-03-05 14:52:27 +11:00
Conn Warwicker eaf4a6d425 MDL-86006 mod_assign: Display markers on grading table 2026-03-05 14:52:27 +11:00
Conn Warwicker a47646f775 MDL-86006 mod_assign: Add multimarking config and plugin settings
- Add config setting to define max number of markers
- Add instance settings to assignment form to select number of markers
and agreement method
2026-03-05 14:52:27 +11:00
Conn Warwicker 25498c62b4 MDL-86006 mod_assign: Add multimarking database tables and fields
Add new database tables and fields, and remove references to old
"allocatedmarker" user flag field.
2026-03-05 14:52:27 +11:00
Andrew Nicols a48418971a MDL-87045 core: Add initial OpenTelemetry solution
This commit provides changes required for our Open Telemetry
integration.

There are relatively few changes to the code itself, as most changes are
performed by Composer packages which inspect Moodle from outside, as is
typical with Open Telemetry.

The changes that we do have here are:

- introduction of a `\core\telemetry` class to provide helper methods
  for:

  - fetching the Trace ID of the current request's root span
  - fetching the Trace Parent ID of the current request's root span
  - checking if Open Telemetry is available
  - Recording Throwables

- Recording Throwables from the exception handler
- Display the Trace ID in the page footer
- Adding the Trace Parent ID to the rendered page metadata
- Add the Trace parent ID to requests made using the `core/fetch` and
  `core/ajax` modules.
2026-03-05 10:15:27 +08:00
Andrew Nicols 3a50f17e44 MDL-87045 core: Move shutdown manager earlier in init
The shutdown manager was previously instantiated fairly late on in the
bootstrap process, after many files were already included, and after the
`ABORT_AFTER_CONFIG` early exit.

This meant that it was not possible to register shutdown handlers
automatically on some early-init components, such as the observability
API.

To allow the shutdown handler to be processed earlier in the Moodle
bootstrap we need to:

- stop assuming that the `debugging` method is available` as this is
  loaded later;
- stop assuming that `$OUTPUT` and `$DB` are available
- allow its initialisation status to be checked so that an the
  `ABORT_AFTER_CONFIG` behaviour does not lead to warnings about
  multiple instantiations of the handler.
2026-03-05 10:15:26 +08:00
Andrew Nicols 24c90ad175 MDL-87950 core: Remove manual includes of third-party libs 2026-03-05 10:13:05 +08:00
meirzamoodle e8f1cf8837 MDL-87922 core: Add ES module importmap infrastructure for React
Introduces the server-side infrastructure to serve React-based ES modules
and expose them to the browser via a native import map.

* Add `core\output\requirements\import_map` — a JsonSerializable registry
  that is the single source of truth for specifier → URL and specifier →
  filesystem path mappings. Built-in entries cover `react`, `react/`,
  `react-dom`, `@moodlehq/design-system`, and `@moodle/lms/`. Additional
  entries can be registered from a `pre_render` hook via `add_import()`.

* Add `core\route\controller\esm_controller` — serves ESM requests under
  `/esm/{revision}/{scriptpath}`. All resolution is delegated to
  `import_map::get_path_for_script()`. Valid revisions get long-lived
  immutable cache headers with ETag; revision `-1` gets short-lived headers.

* Add `core\param::ESM_PATH` for validating ESM script paths.

* Add PHPUnit tests for `import_map` and `esm_controller`.

Co-Authored-By: Andrew Nicols <andrew@nicols.co.uk>
2026-03-05 08:15:27 +07:00
Jun Pataleta 4d14c39d9a MDL-87810 quiz: Accessibility Behat coverage for quiz attempt 2026-03-05 08:47:06 +08:00
Amaia Anabitarte 6bcea23124 MDL-87571 course: Previous of first activity 2026-03-04 12:49:51 +01:00
Sara Arjona 6ea3b1410f MDL-88003 course: Skip plugins without FEATURE_CAN_DISPLAY in navigation 2026-03-04 10:44:11 +01:00
Laurent David 425a7f599e MDL-87981 mod_feedback: Fix description placement 2026-03-04 08:48:57 +01:00
Andrew Nicols 05387b9bd6 MDL-88009 theme_boost: Disable input sanitisation for footer
The footer popover contains content that we have curated from a range of
places and which does not include user-provided content. It should be
safe to use the content unsanitised.
2026-03-04 15:26:37 +08:00
Andrew Nicols b7b1d286ef MDL-87950 core: Updating coding style on \core\component 2026-03-04 15:25:54 +08:00
Andrew Nicols 6cf0a391dd MDL-87950 core: Add Moodle libraries to composer.json
This change copies all third-party libraries into the composer.json file
at the exact same version that they exist in Moodle.

Only dependencies without any form of customisation have been included.
A small number of dependencies have been modified and these are not
included.

Note: This includes a change to thirdpartylibs.xml to correct a
typo.
2026-03-04 15:25:53 +08:00
Andrew Nicols 67f0177a62 MDL-87950 core: Bump symfony/deprecation-contracts
This is just a metadata bump with no other changes required.
2026-03-04 15:25:53 +08:00
Andrew Nicols 5da5f13a5d MDL-87950 core: Do not block insecure packages
This is a temporary state until we stop pinning insecure packages.
2026-03-04 15:25:53 +08:00
Andrew Nicols 0b6633a4bc MDL-87950 core: Composer files should only be loaded if not included
Composer supports the automatic inclusion of files in its
`composer.json::files` array. To mimic this in Moodle we have a
`$composerautoloadfiles` array in our component autoloader, and at the
time that we register out autoloader we include all of these files.

As we migrate to using Composer for all of our third-party dependencies
we will have a period where they are defined both in Composer, and also
still exist in Moodle.

To support this use-case we need to make Moodle aware that some packages
may be depended upon by Composer and include the same function
definitions.
2026-03-04 15:25:52 +08:00
Jun Pataleta 507a04edd1 MDL-87810 question: Fix colour contrast issues on question view
* Lighten the background for the question formulation container.
* Lighten the background for the question feedback container while
  slightly darkening the text font as well.
2026-03-04 14:00:38 +08:00
Jun Pataleta 6a898fcf39 MDL-87955 mod_forum: Manage subscribers accessibility improvements
* Replace the layout table with responsive Bootstrap columns.
* Add accessible labels for the existing and potential subscribers
  select boxes.
* Add accessibility Behat coverage.
* Remove unused CSS styles
2026-03-04 12:57:36 +08:00
Muhammad Arnaldo 7092a9d63a MDL-87553 admin: Consolidate login settings into dedicated admin page
Creates new "Login" category and moves login-related settings
into a unified loginsettings page.
2026-03-04 11:26:25 +07:00
Huong Nguyen e48dfe9b89 Merge branch 'MDL-85322-main' of https://github.com/durenadev/moodle 2026-03-04 09:19:20 +07:00
Huong Nguyen 4be3fb2914 Merge branch 'MDL-86112' of https://github.com/jonof/moodle 2026-03-04 08:52:49 +07:00
Huong Nguyen fe8687a8ad Merge branch 'MDL-87905-main' of https://github.com/sammarshallou/moodle 2026-03-04 08:49:51 +07:00
AMOS bot 29702c5416 Automatically generated installer lang files 2026-03-04 00:08:00 +00:00
Sam Smucker 7686b11731 MDL-83243 mod_scorm: Redirect user when network is unstable
When a user is on a SCORM player page and has a persistently
unstable network connection, their Moodle session can expire
and/or the SCORM package can fail to save their progress.
This change will force the user to exit the SCORM player page
to avoid losing unsaved progress.
2026-03-03 11:46:00 -06:00
Sam Smucker 51c7facb42 MDL-83243 core: User must leave page after two failed keepalive attempts
On pages using the session manager's keepalive logic, an unstable network
connection should cause an alert modal to appear warning the user that
their learning progress may not be saved. This doesn't always happen
because the modal contents must be fetched with a network request. This
commit pre-fetches the alert modal on page load to ensure that it is
available if network connection is lost, and if two consecutive requests
to touch the session fail, the modal will force the user to leave the
page, either by reloading or redirection.
2026-03-03 10:58:42 -06:00
Daniel Ureña 3f76f05899 MDL-85322 block_html: trust dashboard content in WS context 2026-03-03 11:46:17 +01:00
Huong Nguyen 02bca32630 Merge branch 'MDL-88021-main' of https://github.com/junpataleta/moodle 2026-03-03 17:28:42 +07:00
Laurent David 9b9a5b5674 MDL-87979 core_course: No separator for manual completion 2026-03-03 11:05:01 +01:00
Sara Arjona b04352f6c0 Merge branch 'MDL-87980-main' of https://github.com/laurentdavid/moodle 2026-03-03 10:30:16 +01:00
Mihail Geshoski df8fb8e489 Merge branch 'MDL-87315_main' of https://github.com/marxjohnson/moodle 2026-03-03 16:36:49 +08:00
Paul Holden 81db575c96 MDL-78476 notes: use standard text editor for editing note content.
Also allows for storage/embedding of files attached to the editor.
2026-03-03 07:45:12 +00:00
Simey Lameze 4820de8be2 MDL-87545 behat: add missing step to enable my home 2026-03-03 14:07:50 +07:00
Safat c78eff66eb Merge branch 'MDL-87867-main' of https://github.com/andrewnicols/moodle 2026-03-03 17:27:18 +11:00
Andrew Nicols a72f8beb43 MDL-87867 core: Correct core/deprecated logic
- For final deprecations always show the alert
- For non-final deprecations show the alert:
  - when `emit` is set to `true` (default value); and
  - the deprecation has not been ignored in the `config.php` by the
    site; and
  - either:
    - developer mode is set; or
    - it is a behat site.
2026-03-03 14:03:31 +08:00
Safat 1dece20a43 Merge branch 'MDL-88030-main' of https://github.com/HuongNV13/moodle 2026-03-03 14:49:07 +11:00
Safat 6b6df03ccb Merge branch 'MDL-82731-main' of https://github.com/raortegar/moodle 2026-03-03 14:11:00 +11:00
Safat 4d229c83d7 Merge branch 'MDL-87867-main' of https://github.com/andrewnicols/moodle 2026-03-03 13:54:52 +11:00
Huong Nguyen 1f414bd802 Merge branch 'MDL-87545-main-v2' of https://github.com/andimendunia/moodle 2026-03-03 08:40:13 +07:00
Jonathon Fowler febfc32d9b MDL-86112 courseformat: avoid a JS error modal when marking as done
When viewing an "available but not shown" cm with self-completion set,
then clicking the 'Mark as done' button in the activity header.
2026-03-03 11:39:50 +10:00
Huong Nguyen 28fc618fa5 Merge branch 'MDL-87993-main' of https://github.com/junpataleta/moodle 2026-03-03 08:35:55 +07:00
Huong Nguyen 59309804f6 Merge branch 'MDL-87945' of https://github.com/paulholden/moodle 2026-03-03 08:33:19 +07:00
Huong Nguyen f1f39b9f1b Merge branch 'MDL-60912-main' of https://github.com/AnupamaSarjoshi/moodle 2026-03-03 08:30:36 +07:00
Huong Nguyen ce176bd55f Merge branch 'MDL-87933' of https://github.com/paulholden/moodle 2026-03-03 08:25:35 +07:00
cescobedo 161e8e761d Merge branch 'MDL-86932-main' of https://github.com/durenadev/moodle 2026-03-02 19:07:59 +01:00
Sara Arjona b1c3a27ea0 Merge branch 'MDL-87574-main' of https://github.com/sarjona/moodle 2026-03-02 17:50:01 +01:00
Sara Arjona 3dea9351a8 Merge branch 'MDL-87573-main' of https://github.com/sarjona/moodle 2026-03-02 17:37:24 +01:00
Sara Arjona d6aee4ba4a MDL-87574 course: Handle restricted sections in next/previous nav
Consider restricted sections in the linear navigation.
2026-03-02 17:33:16 +01:00
Sara Arjona 2d87a8d6ee Merge branch 'MDL-87570-main' of https://github.com/laurentdavid/moodle 2026-03-02 17:17:06 +01:00
Laurent David e9090c1d32 MDL-87570 core_course: Next for final course activity 2026-03-02 15:06:23 +01:00
Andrew Nicols a70bf387da MDL-87867 core: Update deprecated JS to use core/deprecated 2026-03-02 21:03:21 +08:00
Andrew Nicols 9d918f9b13 MDL-87867 core: Add core/deprecated AMD module 2026-03-02 21:03:21 +08:00
Paul Holden 9d24b0f994 Merge branch 'MDL-87690' of https://github.com/yerairogo/moodle 2026-03-02 11:55:36 +00:00
Paul Holden f55ebaffb0 MDL-75067 behat: always interact with filepicker inside active dialogue.
This allows for tests to interact with multiple elements of this type
during scenarios, whereas previously Behat would always try to interact
with the first (even when referring to latter file managers).
2026-03-02 10:59:43 +00:00
Raquel Ortega e7e99ea04f MDL-82731 aiprovider_awsbedrock: add to standard plugin list. 2026-03-02 11:38:23 +01:00
Raquel Ortega a13db7e7b8 MDL-82731 AI: Provider Plugin - AWS Bedrock
Add a provider plugin that supports AI models from AWS bedrock.
Supports both text and image models.
Co-authored-by: Matt Porritt <mattporritt@users.noreply.github.com>
Co-authored-by: Safat Shahin <safatshahin@users.noreply.github.com>
2026-03-02 11:38:23 +01:00
Daniel Ureña 158a814447 MDL-86932 mod_choice: Add userresponse field to get_choice_results WS 2026-03-02 10:55:14 +01:00
Mark Johnson ccc43480b1 MDL-86691 questions: Fix incorrect set reference category contexts
During the upgrade to 5.x, question categories are moved to new
mod_qbank module contexts, and any set references using those categories
are updated using `move_question_set_references()`. However, this
function wasn't updating the `cat` arribute of the set reference's
filter condition, leaving it pointing at the original context ID.

This change update `move_question_set_references()` so that when a set
reference is moved (during the 5.x upgrade, or otherwise) the `cat`
parameter will be updated correctly.

For sites that have already gone through the 5.x upgrade, this fix also
adds a CLI script to find and fix incorrect question_set_reference
records. I considered adding this as an upgrade step, but it potentially
has a lot of records to check, and it's redundant if the site is being
upgraded to 5.x with this fix already in place.
2026-03-02 08:52:05 +00:00
Sara Arjona 77b94d53ca MDL-87573 course: Handle restricted modules in next/previous nav 2026-03-02 09:51:33 +01:00
Brendan Heywood 2c17cb1028 MDL-88093 task: Send task failure messages in correct language 2026-03-01 13:46:53 +11:00
Mark Johnson 37b55c085c MDL-87264 qbank_managecategories: Move categories between banks
This restores the ability to move an entire category to a different
context,
which now means a different activity module.

The feature is accessed via the Move option in the category's action
menu,
which now has a "Switch bank" option like the "add from question bank"
UI
in the quiz.

When a category is moved to a different context, it will disappear from
the current page, and a link to the destination bank is displayed.
2026-02-27 14:43:57 +00:00
Mark Johnson 06a467e45c MDL-87264 qbank_managecategories: Remove multiple context support
Since 5.0 we can no longer have categories in contexts above modules, so
there is no need to support multiple contexts in the question bank
category management UI.
2026-02-27 14:43:57 +00:00
Mark Johnson b88e4c78b7 MDL-87264 questions: Add category route 2026-02-27 14:43:56 +00:00
Mark Johnson c6cf0cb951 MDL-87264 questions: Make bank switcher more generic
Currently, the question bank switcher assumes its being displayed
inside a quiz. This means it can't easily be reused in other
activities, or outside activity contexts.

This change makes the inclusion and display of an activity's
question bank on the list of available banks optional, and
removes any references to the quiz.
2026-02-27 14:43:56 +00:00
Andrew Nicols e89205eca2 MDL-87264 router: Add course and coursemodule query parameters 2026-02-27 14:43:56 +00:00
Yerai Rodríguez 0d73fb99d2 MDL-87690 customfield: Feature to convert CF category to shared category
This feature adds the ability to convert an existing custom field
category to a shared custom field category via adding a button to the
custom field management interface.
2026-02-27 15:40:21 +01:00
Mark Johnson 4bad37f98f MDL-86154 questions: Delete unused questions after restore
After restoring an activity using shared questions without the question
bank they belong to, we may have left over question categories in the
target course context. These were being deleted, but any questions they
contained weren't.

This replaces the bulk delete of question category records with a call
to `question_category_delete_safe()` for each category, which will also
delete the questions they contain.
2026-02-27 14:33:20 +00:00
Andi Permana cf7edef142 MDL-87545 tool_mobile: expose enablemyhome via webservices 2026-02-27 21:20:11 +07:00
Andi Permana b2186b51b0 MDL-87545 core: route homepage selection with enablemyhome
MDL-87545 core: add unit coverage for homepage defaults

MDL-87545 core: update behat expectations for homepage options
2026-02-27 21:20:11 +07:00
Andi Permana 7dc6d5cfee MDL-87545 core: add enablemyhome config and upgrade step 2026-02-27 21:20:10 +07:00
Mark Johnson 730752a3a1 MDL-87315 backup: Update set reference question category ID on restore.
When a question bank is restored along with a quiz that uses a random question from that bank,
the set reference for the random question should now point to the category in the restored bank,
rather than original.

This uses the question bank context IDs recorded using the method added in MDL-86136
to decide if the set reference's question context is being restored, and update it
accordingly.

This required adding a new restore step in the restore_root_task, since when a restore is
performed asynchronously, the temp IDs table is deleted after the prechecks are performed
when the task is queued. Adding this step allows the IDs to be recorded again when the restore
runs.
2026-02-27 13:47:28 +00:00
Yerai Rodríguez 17331d2b17 MDL-87690 customfield: Added new partial named selector for CF category 2026-02-27 12:00:54 +01:00
Laurent David 4ba8e8913b MDL-87980 mod_assign: Fix empty description display 2026-02-27 11:44:25 +01:00
Paul Holden b2416de7c8 MDL-79574 reportbuilder: consistent application of column indexes.
No longer reliant on persistent record indexing (whose behaviour
has now changed), we are now explicit in setting each column index
within reports.
2026-02-27 10:30:09 +00:00
Paul Holden 1b92a95ab7 MDL-79574 core: updates to component API that retrieve persistents.
Where the API previously returned the results of `::get_records()` call
then preserve existing behaviour of zero-based index. Update any tests
that call this method directly in order to perform assertions.
2026-02-27 10:30:09 +00:00
Paul Holden b62750dd83 MDL-79574 core: index returned persistent instances on record ID. 2026-02-27 10:30:09 +00:00
Paul Holden 0b5a3d3350 MDL-87451 reportbuilder: pass existing entity instances in method calls. 2026-02-27 10:25:19 +00:00
Paul Holden 33dc3d8102 MDL-87451 reportbuilder: accept entity instances when adding elements.
Where the report already has an instance of the entity, it should be
able to just pass that, avoiding a lookup of the same.
2026-02-27 10:25:19 +00:00
Ilya Tregubov 6b3e76c4b5 Merge branch 'MDL-87967' of https://github.com/paulholden/moodle 2026-02-27 09:04:43 +01:00
Ilya Tregubov 733e0a1bbd Merge branch 'MDL-29421' of https://github.com/paulholden/moodle 2026-02-27 08:51:57 +01:00
Huong Nguyen dcf942624d weekly release 5.2dev 2026-02-27 09:38:14 +07:00
Huong Nguyen 532c512167 NOBUG: Add upgrade notes 2026-02-27 09:38:14 +07:00
Huong Nguyen efe772598f NOBUG: Fixed SVG browser compatibility 2026-02-27 09:38:02 +07:00
Huong Nguyen 95a862c7eb Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-02-27 09:38:01 +07:00
AMOS bot 2a8ff8369c Automatically generated installer lang files 2026-02-27 00:07:51 +00:00
sam marshall 43a92962b9 MDL-87905 Behat: pause incorrectly thinks terminal not interactive
When run from behat/cli/run.php, the pause command may fail because
it thinks the terminal is not interactive, even if the input and
output is passed through from an interactive terminal run.
2026-02-26 09:31:01 +00:00
Anupama Sarjoshi e780afac19 MDL-60912 core_completion: Fix course completion percentage calculation
This change ensures that course completion percentage calculations
include only completion activities visible to the user on the course
home page. Hidden or unavailable activities, and those in hidden
sections, are no longer included in the calculation.
2026-02-26 12:24:21 +05:30
Huong Nguyen f45639da4a Merge branch 'MDL-87831-main' of https://github.com/safatshahin/moodle 2026-02-26 11:18:19 +07:00
Huong Nguyen 2090fd9fdc Merge branch 'MDL-86866-main' of https://github.com/andrewnicols/moodle 2026-02-26 09:16:01 +07:00
Huong Nguyen 9f9fe6c1d6 Merge branch 'MDL-87588-main' of https://github.com/muhammadarnaldo/moodle 2026-02-26 09:07:23 +07:00
Huong Nguyen c8b67fa7e6 Merge branch 'MDL-88020-main' of https://github.com/rxdelacruz/moodle 2026-02-26 09:03:49 +07:00
Huong Nguyen 3fb9b98a8b Merge branch 'MDL-88036-main' of https://github.com/mioyu-ubiq/moodle 2026-02-26 09:01:20 +07:00
Mihail Geshoski 5813fa5f20 Merge branch 'MDL-85902-main' of https://github.com/junpataleta/moodle 2026-02-26 09:56:50 +08:00
Mihail Geshoski 02e39603c4 Merge branch 'MDL-86524_main' of https://github.com/marxjohnson/moodle 2026-02-26 09:43:52 +08:00
AMOS bot 2c31539d83 Automatically generated installer lang files 2026-02-26 00:07:50 +00:00
Paul Holden 8d1d6d33aa MDL-29421 forms: return formatted frozen content for editor element.
This was partly addressed in 82d491ca, however formatted content and
embedded images were rendered incorrectly.
2026-02-25 17:08:37 +00:00
Paul Holden 0603944327 MDL-87949 gradingform_rubric: accessible "Click to edit" colour.
Darken it to meet the WCAG AA standards for accessible text. This
colour is also consistent with the accompanying buttons.
2026-02-25 16:25:37 +00:00
Amaia Anabitarte 400a733315 Merge branch 'MDL-87891-main' of https://github.com/sarjona/moodle 2026-02-25 16:45:21 +01:00
Amaia Anabitarte d5730e395b Merge branch 'MDL-87916-main' of https://github.com/sarjona/moodle 2026-02-25 16:23:54 +01:00
Sara Arjona 5324efa215 Merge branch 'MDL-87975-main' of https://github.com/laurentdavid/moodle 2026-02-25 15:38:35 +01:00
cescobedo c6844e62a6 Merge branch 'MDL-87572-main' of https://github.com/sarjona/moodle 2026-02-25 14:23:13 +01:00
Stefan Hanauska 819fd02189 MDL-88070 javascript: Respect removeOnClose 2026-02-25 11:55:23 +01:00
Ilya Tregubov b0ece9cd5a Merge branch 'MDL-78112' of https://github.com/paulholden/moodle 2026-02-25 11:39:30 +01:00
Andrew Nicols d2dff90aec MDL-86866 core: Do not log route errors
Doing so leads to excessive noise in logs and unit tests.

At the moment we have no way to control these logs. This will change
when we bring in a PSR-4 logger and can use that instead, but at the
moment we do not have any such logger in core.
2026-02-25 18:31:13 +08:00
Andrew Nicols 1be333a5d0 MDL-86866 router: Use response_aware handler for status code 2026-02-25 18:31:13 +08:00
Mark Johnson 3c74184ab8 MDL-86524 quiz: Update restore test with current tag filter format
The test for restoring a random question from Moodle 3.9 using tags was
still testing for the pre-4.3 filtercondition format. This needed
updating to look for the current format.
2026-02-25 09:02:21 +00:00
Mark Johnson f4280d2db5 MDL-86524 qbank_tagquestion: Map qtagids filter to restored tag IDs
When restoring a set reference containing a qtagids filter, check that
the tag ID still exists. If not, or we're restoring to a different site,
replace the ID in the filter with the mapped ID from the restore.

If a tag ID is not found, it is removed from the filter. If no matching
tags are found, the entire filter is removed.
2026-02-25 09:02:21 +00:00
Mark Johnson c300ad8d19 MDL-86524 qbank_managecateories: Fix questionscontextid on restore
If a backup contains a set reference where the questionscontextid does
not match the context of the question category (as the category was
moved, but the reference was not updated correctly), then we might end
up restoring a quiz with a broken question.

This change ensures that we update the context to match the question
category during the restore.
2026-02-25 09:02:19 +00:00
Huong Nguyen c756d8af89 MDL-88011 core: Fix wrong remaining version bumpings 2026-02-25 16:44:47 +08:00
rxdelacruz 12f87dda4c MDL-88020 enrol_self: Add Behat test for cohort restriction 2026-02-25 14:44:53 +08:00
Huong Nguyen a17cc80ab2 Merge branch 'MDL-87190-main' of https://github.com/timhunt/moodle 2026-02-25 10:57:49 +07:00
Mihail Geshoski fae6287548 Merge branch 'mdl-84045_main' of https://github.com/james-cnz/moodle 2026-02-25 10:49:35 +08:00
Hai Nguyen Van c9b8d409d8 MDL-87190 filepicker: clarify error when dragging a folder into picker 2026-02-24 20:56:49 +00:00
Mihail Geshoski a1e44fc1b6 Merge branch 'MDL-88011-main' of https://github.com/HuongNV13/moodle 2026-02-25 00:03:25 +08:00
Andrew Nicols 9263ae528b MDL-86866 core: Web 404 responses should generate HTML not JSON 2026-02-24 22:14:19 +08:00
Sara Arjona 3a7ce91ac8 MDL-87916 course: Handle modules visibility in next/prev nav
Consider modules visibility in the next/previous linear navigation.

Note: Restricted modules are not handled in this change; this logic is
deferred to MDL-87573.
2026-02-24 14:54:18 +01:00
Jun Pataleta 762128e332 MDL-85902 course: Better labeling of activity navigation components
* The arrow icons produced by the `$OUTPUT->larrow()` and
`$OUTPUT->rarrow()` functions are announced by screen readers, and they
do not make sense when heard by screen reader users. To fix this,
we need to override the accessible names of the previous and next
activity links using the `aria-label` attribute and specify whether the
activity links point to the previous or next activities.
* The label for the jump menu "Jump to" is not informative enough to
convey the element's purpose. Let's improve it's accessible label to
"Jump to activity".
2026-02-24 21:33:02 +08:00
Sara Arjona bf83fa9c03 MDL-87572 course: Add sections to next/previous navigation
Allow section pages to be valid destinations in the linear navigation.

Note: Restricted sections are not handled in this change; this logic is
deferred to MDL-87574.
2026-02-24 14:16:40 +01:00
Sara Arjona a94b000c49 MDL-87891 theme: Replace the drawer close icon 2026-02-24 13:51:50 +01:00
mioyu-ubiq 601a175253 MDL-88036 mod_scorm: Fix duplicate scenario name 2026-02-24 17:21:48 +08:00
Huong Nguyen 7ce8351829 Merge branch 'MDL-87542-main' of https://github.com/muhammadarnaldo/moodle 2026-02-24 16:06:52 +07:00
Jun Pataleta dba8714008 MDL-85902 course: Convert activity navigation to a navigation landmark 2026-02-24 16:48:57 +08:00
Mihail Geshoski 4d70715555 Merge branch 'MDL-87492' of https://github.com/cwarwicker/moodle 2026-02-24 14:32:19 +08:00
Mihail Geshoski 0d4d6422d6 Merge branch 'MDL-87452-main' of https://github.com/lucaboesch/moodle 2026-02-24 14:16:43 +08:00
Huong Nguyen cb42682928 Merge branch 'MDL-86809-main' of https://github.com/davewoloszyn/moodle 2026-02-24 11:04:05 +07:00
Huong Nguyen aff7d45197 Merge branch 'MDL-87058-main' of https://github.com/lucaboesch/moodle 2026-02-24 10:49:39 +07:00
Huong Nguyen 0f003bf42b Merge branch 'mdl-87479-main' of https://github.com/juancs/moodle 2026-02-24 10:47:19 +07:00
Huong Nguyen b1fad52fb3 Merge branch 'MDL-87442-main' of https://github.com/andimendunia/moodle 2026-02-24 10:44:28 +07:00
Huong Nguyen cebf01fdf0 Merge branch 'MDL-87456-main' of https://github.com/lucaboesch/moodle 2026-02-24 09:49:40 +07:00
Huong Nguyen 5a660f9858 Merge branch 'MDL-87807' of https://github.com/paulholden/moodle 2026-02-24 09:47:27 +07:00
AMOS bot 75697b531c Automatically generated installer lang files 2026-02-24 00:07:52 +00:00
cescobedo a4034413f9 Merge branch 'MDL-87468-main' of https://github.com/sarjona/moodle 2026-02-23 15:05:54 +01:00
Laurent David b317be3ec5 MDL-87975 core_course: Add separators between activities
* Every activity within a subsection should be separated by a visible
  divider line to maintain visual consistency.
2026-02-23 14:36:43 +01:00
Mark Johnson c88264eccb MDL-86524 questions: Update set reference context after category move
When a category is restored, it is first created in the course context,
them moved it its module context once that has been restored.

When this happens, we also need to update set references that refer to
that category to use the new context. However, this was using the legacy
category fields so was not updating them correctly. It now does.
2026-02-23 11:08:17 +00:00
Mark Johnson 1805a1f21f MDL-86524 questions: Delegate filter condition restore to plugins
The core backup code was taking sole responsibility for conversion and
mapping of IDs in set reference filter conditions during restores.
However, it was only actually processing category conditions, not tags
or any of the more recently added conditions.

This adds a new `restore_filtercondition` method to the
`core_question\local\bank\condition` class which can be overridden by
each condition to convert IDs and add mappings during the restore
process.

It also adds a new `maptags` option to
`convert_legacy_set_reference_filter_condition`, so that if we are
doing the conversion during a restore, we don't also create or map
the tags as they are converted. We record ID mappings of the tags
as the are restored, then these can be used by the
`qbank_tagquestions` plugins later to map the converted condition.
2026-02-23 10:48:16 +00:00
Huong Nguyen 22a4c56d10 MDL-88030 library: Bump Behat and PHPUnit
- Bump Behat to 3.29.0
 - Bump PHPUnit to 11.5.55

Generated with PHP 8.3, following the instructions at:
https://moodledev.io/general/development/tools/composer
2026-02-23 16:11:21 +07:00
Huong Nguyen 04516fbbd4 MDL-88011 core: Fix wrong version bumpings 2026-02-23 15:31:41 +07:00
Luca Bösch 2acedbebf9 MDL-87456 workshop: Amend action links to switch phase. 2026-02-20 20:52:34 +01:00
Luca Bösch 9e687b1a5f MDL-87452 lesson: Align the checkboxes and labels with BS5. 2026-02-20 19:49:50 +01:00
Luca Bösch 15eb1d0790 MDL-87058 forum: "Advanced" option consistent position. 2026-02-20 19:47:04 +01:00
Amaia Anabitarte ae6aa0f371 Merge branch 'MDL-87931-main' of https://github.com/sarjona/moodle 2026-02-20 16:40:57 +01:00
Amaia Anabitarte 0d025c766c Merge branch 'MDL-87929-main' of https://github.com/sarjona/moodle 2026-02-20 15:59:49 +01:00
Andi Permana f73b603bee MDL-87442 theme_boost: Fix "With selected" select in mod_choice 2026-02-20 16:32:42 +07:00
Jun Pataleta 199d4cad44 MDL-88021 core: Set jsdoc destination within the public folder 2026-02-20 15:42:21 +08:00
cescobedo 44c0affd74 Merge branch 'MDL-86893-main' of https://github.com/durenadev/moodle 2026-02-20 08:24:48 +01:00
Jun Pataleta d22048cdd6 MDL-87993 mod_forum: Fix invalid use of SRLogger
* The SRLogger module is meant for reactive instances. Let's use a
visually hidden toast instead.
2026-02-20 15:05:06 +08:00
Jun Pataleta 42439d5667 MDL-87993 core: Use visually hidden core/toast for the srlogger 2026-02-20 15:05:06 +08:00
Jun Pataleta b0d6b628c4 MDL-87993 core: Allow toasts to be visually hidden 2026-02-20 15:05:06 +08:00
Sara Arjona 092ce62b8e MDL-87929 output: Display availability expanded in restricted pages 2026-02-20 06:57:31 +01:00
Sara Arjona 0f248b545c MDL-87931 course: Move dates above secondary nav in activity page 2026-02-20 06:49:08 +01:00
Sara Arjona 6b598b4357 MDL-87931 theme: Add extra header info option to page class 2026-02-20 06:49:08 +01:00
Sara Arjona 6b0f9327bb MDL-87468 core_course: Add previous to the navigation controller 2026-02-20 06:43:59 +01:00
Juan Segarra Montesinos fe1294ef2d MDL-86809 completion: Disable receiveagradegroup when marked as done
Co-authored-by: Yusuf Wibisono <yusuf.wibisono@moodle.com>
2026-02-20 15:11:54 +11:00
Mihail Geshoski dfeb7c1bf7 weekly release 5.2dev 2026-02-20 09:17:00 +08:00
Mihail Geshoski 514e636c96 NOBUG: Add upgrade notes 2026-02-20 09:17:00 +08:00
Mihail Geshoski a5de5fe896 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-02-20 09:16:41 +08:00
AMOS bot 0f5e113615 Automatically generated installer lang files 2026-02-20 00:07:52 +00:00
james-cnz 81d369e545 MDL-84045 core_courseformat: Restore section return functionality 2026-02-19 22:38:05 +13:00
Huong Nguyen 533a1cff7d Merge branch 'MDL-87441-main' of https://github.com/lucaboesch/moodle 2026-02-19 08:53:23 +07:00
Huong Nguyen da98c46fc1 Merge branch 'mdl-87187-main' of https://github.com/matthewhilton/moodle 2026-02-19 08:50:40 +07:00
Huong Nguyen f3bf683c81 Merge branch 'MDL-85301-main' of https://github.com/davewoloszyn/moodle 2026-02-19 08:47:26 +07:00
Jake Dallimore 6b5f17b2d2 Merge branch 'MDL-87991-main' of https://github.com/lameze/moodle 2026-02-19 09:26:39 +08:00
AMOS bot aded08a513 Automatically generated installer lang files 2026-02-19 00:07:51 +00:00
Simey Lameze fe22c069d6 MDL-87991 github: update GHA db connection for composed 2026-02-19 07:49:31 +08:00
Amaia Anabitarte f562e1a6bd Merge branch 'MDL-87467-main' of https://github.com/laurentdavid/moodle 2026-02-18 16:37:26 +01:00
Sara Arjona 54714c7a65 Merge branch 'MDL-87927-main' of https://github.com/aanabit/moodle 2026-02-18 12:19:29 +01:00
Amaia Anabitarte 8a802fba46 MDL-87927 output: Setting an user before creating content in the test 2026-02-18 10:30:23 +01:00
Huong Nguyen 147c85bb3f Merge branch 'MDL-87482-main' of https://github.com/HuongNV13/moodle 2026-02-18 15:39:52 +07:00
ferran df56188eb1 MDL-87467 core_course: add course navigation controller
Co-authored-by: Ferran Recio <ferranrecio@gmail.com>
2026-02-18 07:09:20 +01:00
Mihail Geshoski dd7a3b943f Merge branch 'MDL-85111-main' of https://github.com/muhammadarnaldo/moodle 2026-02-18 10:07:11 +08:00
Safat 2f3316ba9c MDL-87831 theme_boost: Reposition user avatar to right 2026-02-18 11:24:50 +11:00
AMOS bot 2bfcb0f746 Automatically generated installer lang files 2026-02-18 00:07:56 +00:00
Sara Arjona 66c8df9f0e Merge branch 'MDL-87919-main' of https://github.com/aanabit/moodle 2026-02-17 16:54:48 +01:00
Sara Arjona fff1b7f10e Merge branch 'MDL-87927-main' of https://github.com/aanabit/moodle 2026-02-17 16:52:54 +01:00
Sara Arjona 63b3b76598 Merge branch 'MDL-87881-main' of https://github.com/aanabit/moodle 2026-02-17 16:49:52 +01:00
Sara Arjona 1be619f20d Merge branch 'MDL-87679-main' of https://github.com/aanabit/moodle 2026-02-17 16:47:56 +01:00
Amaia Anabitarte 81d93a8af5 MDL-87927 navigation: Don't extend navigation for restricted pages 2026-02-17 15:37:09 +01:00
Amaia Anabitarte 419d1c001e MDL-87881 core_availability: Adding behats to restricted activity page 2026-02-17 15:32:42 +01:00
Amaia Anabitarte 4f774171ee MDL-87679 core_course: New event for viewing restricted elements 2026-02-17 15:28:40 +01:00
Amaia Anabitarte 4b15aebe92 MDL-87919 theme: Fix restricted selected subsections in course index 2026-02-17 15:26:09 +01:00
Daniel Ureña a7502e2fc7 MDL-86893 mod_bigbluebuttonbn: user_must_wait_to_join into meeting info 2026-02-17 10:04:56 +01:00
Luca Bösch b80b4e962c MDL-87441 user: Align the "With selected users..." label with BS5. 2026-02-17 08:21:38 +01:00
Shamim Rezaie 5586d836a9 weekly release 5.2dev 2026-02-17 12:55:20 +11:00
Shamim Rezaie d1bd72ec20 NOBUG: Add upgrade notes 2026-02-17 12:55:19 +11:00
Shamim Rezaie ff6b10ec59 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-02-17 12:55:08 +11:00
Matthew Hilton 211515b18a MDL-87187 bigbluebuttonbn: Fix record time during backup/restore 2026-02-17 09:09:25 +10:00
Paul Holden 7575acb4cb MDL-87967 output: ensure disabled toggle elements show tooltip. 2026-02-16 14:34:51 +00:00
Muhammad Arnaldo 540104c725 MDL-87588 mod_bigbluebuttonbn: Fix missing recordings_deleted column 2026-02-16 17:44:00 +07:00
Paul Holden 6e7062cfee MDL-78112 forms: support frozen filemanager form elements.
Replace editable content with a list of files stored in the file area.
2026-02-16 10:20:49 +00:00
Trisha Milan 240eb35783 MDL-82625 navigation: Add disableactive flag to combobox widget
- Introduced disableactive flag to prevent setting active state on combobox items when a page redirect occurs.
This resolves the issue where incorrect checkmarks remain after using the browser's back button due to bfcache.
- Added Behat test cases to verify correct checkmark behaviour in tertiary navigation when navigating and using
the browser's back/forward buttons.
2026-02-16 15:39:23 +08:00
Mihail Geshoski 3d064561b2 Merge branch 'MDL-81962-main' of https://github.com/andrewnicols/moodle 2026-02-16 14:01:15 +08:00
Mihail Geshoski 831e0920d7 Merge branch 'MDL-85498-additionalhtmlfooter-support-multilang' of https://github.com/szymonk1101/moodle 2026-02-16 13:55:02 +08:00
Mihail Geshoski ad7bf8665e Merge branch 'MDL-85658-main' of https://github.com/HuongNV13/moodle 2026-02-16 13:46:36 +08:00
Andrew Nicols b0b7fdff94 MDL-81962 core: Convert debugging to exception for final deprecation 2026-02-16 13:41:56 +08:00
Andrew Nicols 97d7c5ac5b MDL-81962 core: Final deprecation of moodle-core-notification features 2026-02-16 13:41:55 +08:00
Andrew Nicols 7b9c3b2579 MDL-81962 core: Final deprecation of moodle-core-notification-confirm 2026-02-16 13:41:55 +08:00
Mihail Geshoski e21503839b Merge branch 'MDL-87338-main' of https://github.com/lucaboesch/moodle 2026-02-16 13:37:54 +08:00
Mihail Geshoski 973b982dba Merge branch 'MDL-87552-main' of https://github.com/lucaboesch/moodle 2026-02-16 13:28:55 +08:00
Muhammad Arnaldo 8670fb27a8 MDL-87523 behat: fix relogin behat failure
Adjust the scenario according to the default forcelogin ON.
2026-02-16 13:08:05 +08:00
Andre Krueger ddd68355d2 MDL-85301 aiprovider_ollama: Fix basic authentication 2026-02-16 08:05:15 +11:00
AMOS bot af86f1b241 Automatically generated installer lang files 2026-02-14 00:07:52 +00:00
Jun Pataleta 66e046781b Merge branch 'MDL-87450-main' of https://github.com/junpataleta/moodle 2026-02-13 20:35:04 +08:00
Sara Arjona 2630e6e508 Merge branch 'MDL-87882-main' of https://github.com/aanabit/moodle 2026-02-13 13:13:53 +01:00
Huong Nguyen df5bbe7427 Merge branch 'MDL-87597-main' of https://github.com/yusufwib01/moodle 2026-02-13 15:08:34 +07:00
Huong Nguyen ec07f9e61e Merge branch 'MDL-87523-main' of https://github.com/muhammadarnaldo/moodle 2026-02-13 14:57:46 +07:00
Mihail Geshoski 547220f45a Merge branch 'MDL-87600-main' of https://github.com/junpataleta/moodle 2026-02-13 14:17:01 +08:00
Jun Pataleta afb2759a7e Merge branch 'MDL-76437' of https://github.com/paulholden/moodle 2026-02-13 13:49:54 +08:00
Huong Nguyen be80e589cc Merge branch 'MDL-86985-main' of https://github.com/davewoloszyn/moodle 2026-02-13 11:10:07 +07:00
Muhammad Arnaldo b2a9578b27 MDL-87523 admin: New installs force login ON by default
Include fixing PHPUnit and Behat test failures caused by forcelogin=1 being
the new default.

- Add setAdminUser() to PHPUnit tests requiring elevated permissions and
  update assertions for changed forcelogin default value.
- Update Behat tests to work with forcelogin enabled by default. Adjust
  navigation steps and site configuration as needed.
2026-02-13 11:05:48 +07:00
Huong Nguyen 35e8422d1c Merge branch 'MDL-84909-master' of https://github.com/davewoloszyn/moodle 2026-02-13 11:04:43 +07:00
Jun Pataleta 089d2e978e Merge branch 'MDL-87946-main' of https://github.com/andrewnicols/moodle 2026-02-13 11:59:55 +08:00
Luca Bösch 0b3569904b MDL-86985 mod_data: Stripe and hover effect restored to presets table 2026-02-13 14:52:04 +11:00
tai.letan 874225e71a MDL-84909 tiny_media: add Select all/none link in Unused Files 2026-02-13 14:38:52 +11:00
Luca Bösch 151c3a12e7 MDL-87450 forum: Remove Bootstrap 5 table borders. 2026-02-13 11:04:05 +08:00
Huong Nguyen 5172f39196 Merge branch 'MDL-87458-main' of https://github.com/jfederico/moodle 2026-02-13 09:52:48 +07:00
Huong Nguyen 648fe9b0ac Merge branch 'MDL-87075-main' of https://github.com/raortegar/moodle 2026-02-13 09:50:06 +07:00
Huong Nguyen 181fe2df04 Merge branch 'MDL-81441' of https://github.com/paulholden/moodle 2026-02-13 09:45:46 +07:00
Huong Nguyen 610f5c8369 Merge branch 'MDL-77209-main' of https://github.com/junpataleta/moodle 2026-02-13 09:42:14 +07:00
Huong Nguyen 50088eef41 MDL-87482 core: Better text comparison 2026-02-13 09:31:29 +07:00
Andrew Nicols 8fc311101c MDL-87946 github: Update GHA Database connections
Both the pgsql and mysql steps we were using use `docker:stable`, which
has been abandoned and is not a recommended approach. They are also both
abandoned.

This commit moves to using a service entry for postgres; and a manual
step for mysql.

We can't use the services entry for MySQL because GHA does not support
providing arguments to service containers.
2026-02-13 10:30:46 +08:00
Andi Permana 65d205f7c6 MDL-87482 core_message: Fix compatibility with libxml2 >= 2.14.0 2026-02-13 09:10:25 +07:00
Huong Nguyen b9c3a0e888 MDL-85658 core_h5p: Implement contentLoaded event handler
This improvement will help to avoid random errors
because H5P content needs time to be rendered.
2026-02-13 08:53:05 +07:00
Huong Nguyen 89fa7c1818 MDL-85658 behat: Wait until the iframe is completely loaded 2026-02-13 08:53:05 +07:00
Muhammad Arnaldo 6c67f36c79 MDL-85111 qtype_essay: improve word counting logic
Improve handling of < (less-than) symbol when it's attached to a non-HTML word.

Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2026-02-13 08:40:37 +07:00
Paul Holden 3e7fd69d3f MDL-87941 core: handle param validation of boolean type false. 2026-02-12 17:34:20 +00:00
Paul Holden a04dd3adcb MDL-87657 cohort: fix permission check for viewing system cohorts.
The problem manifested itself in custom reports using the corresponding
cohort field filter, which didn't reload current form values due to
incorrect context tree comparison.
2026-02-12 17:01:15 +00:00
Sara Arjona 5b87981596 Merge branch 'MDL-87671-main' of https://github.com/aanabit/moodle 2026-02-12 17:20:23 +01:00
Paul Holden f448e1a13d MDL-87945 webservice: handle invalid functions when adding to service.
Same thing as we did for API docs in 6e9e73aba0.
2026-02-12 16:03:37 +00:00
Sara Arjona 0648d90183 Merge branch 'MDL-86858-main' of https://github.com/laurentdavid/moodle 2026-02-12 16:59:45 +01:00
Christian Abila 2d5b107d43 MDL-87075 core: Filter roles to include visibility permissions 2026-02-12 14:39:12 +01:00
Amaia Anabitarte 0fb594dfe7 MDL-87671 course: Add restricted page for sections 2026-02-12 14:16:43 +01:00
Amaia Anabitarte 1f7229fc8a MDL-87671 core: New section routing parameter 2026-02-12 14:16:17 +01:00
Sara Arjona 7cafd80649 MDL-87663 course: Remove redundant activity description in classic 2026-02-12 10:23:24 +01:00
Laurent David 7b939c1ea1 MDL-86858 core_course: Change relevant calls to duplicate_module 2026-02-12 09:36:01 +01:00
Laurent David dc4122df5a MDL-86858 core_courseformat: Implement duplicate module in cmactions 2026-02-12 09:36:01 +01:00
Ilya Tregubov 67366156c0 Merge branch 'MDL-87158' of https://github.com/paulholden/moodle 2026-02-12 08:46:54 +01:00
Huong Nguyen 8d40e08e85 Merge branch 'MDL-87513-main' of https://github.com/AnupamaSarjoshi/moodle 2026-02-12 14:39:54 +07:00
Anupama Sarjoshi 279a478c74 MDL-87513 aiprovider_gemini: Fix missing label in generate image 2026-02-12 12:28:07 +05:30
Huong Nguyen 0f8248e986 Merge branch 'MDL-87095-main' of https://github.com/lameze/moodle 2026-02-12 10:24:21 +07:00
Huong Nguyen 5de4f7b4ca Merge branch 'MDL-83325' of https://github.com/timhunt/moodle 2026-02-12 10:20:49 +07:00
Huong Nguyen 85b01d5387 Merge branch 'MDL-87113-main' of https://github.com/timhunt/moodle 2026-02-12 08:59:41 +07:00
Huong Nguyen be25264bc0 Merge branch 'MDL-87358' of https://github.com/paulholden/moodle 2026-02-12 08:56:41 +07:00
Huong Nguyen 5a2c9ce537 Merge branch 'MDL-78343-main' of https://github.com/davewoloszyn/moodle 2026-02-12 08:46:31 +07:00
Huong Nguyen 8cc3bafc3c Merge branch 'MDL-87513-main' of https://github.com/AnupamaSarjoshi/moodle 2026-02-12 08:44:16 +07:00
Simey Lameze c590d0c51f MDL-87095 behat: reorganize lesson question importing tests 2026-02-12 09:13:53 +08:00
Kim Jared Lucas 705f4e5f43 MDL-87095 mod_lesson: add behat test for importing questions into lesson 2026-02-12 09:13:53 +08:00
AMOS bot dc1e07fdb9 Automatically generated installer lang files 2026-02-12 00:09:49 +00:00
Amaia Anabitarte 667e9d772a MDL-87882 course: Fix the restricted activity routing 2026-02-11 22:26:54 +01:00
Paul Holden 4c77f2c82d MDL-87933 core: update list of stale files for 5.2 release. 2026-02-11 20:35:20 +00:00
jfedericobn ebaa15c1ad MDL-87458 bigbluebuttonbn: reset removes local recording references only 2026-02-11 16:42:10 +00:00
yusufwib01 fce6dfdcbb MDL-87597 core_message: Fix double-click to reopen message drawer 2026-02-11 23:24:57 +07:00
Ilya Tregubov 0ae4feb8a5 Merge branch 'MDL-87799' of https://github.com/paulholden/moodle 2026-02-11 13:11:09 +01:00
Jun Pataleta 354c29a904 Merge branch 'MDL-87119-main' of https://github.com/HuongNV13/moodle 2026-02-11 19:21:29 +08:00
Huong Nguyen 7288fb1d24 Merge branch 'MDL-86659' of https://github.com/paulholden/moodle 2026-02-11 17:01:31 +07:00
Hai Nguyen Van 00eeee5b7f MDL-87113 filepicker: fix progress stuck after invalid upload 2026-02-11 09:52:36 +00:00
Jun Pataleta 41aa22a1cd Merge branch 'MDL-87716-main-alt' of https://github.com/andrewnicols/moodle 2026-02-11 17:43:40 +08:00
Michael Kotlyar 3047a331e0 MDL-87492 mod_quiz: Add grade_submission task
This task simply calls $attempt->process_grade_submission for a quiz
attempt. The need for this task has arisen due to some instances of
moodle sites needing to process many and/or complex quiz attempts. This
change only utilises this task for the mod_quiz upgrade script.
2026-02-11 09:35:17 +00:00
Andrew Nicols d3bed4c921 MDL-87716 core: Make phpunit.xml generation more robust 2026-02-11 17:17:20 +08:00
Adrian Greeve c5aba66b3b Merge branch 'MDL-87716-main-alt' of https://github.com/andrewnicols/moodle 2026-02-11 16:00:13 +08:00
Adrian Greeve e0c01d8836 Merge branch 'MDL-87717-main' of https://github.com/andrewnicols/moodle 2026-02-11 15:17:36 +08:00
Andrew Nicols 80be1c2ede MDL-87716 core: Fix failing unit tests
Some tests in core were using paths relative to the process CWD, which
is not safe.

The environment tests needed to be updated to use the Composer
autoloader.
2026-02-11 15:11:59 +08:00
Andrew Nicols 778d3e88c6 MDL-87716 core: Add GitHub Actions tests for PHPUnit 2026-02-11 15:11:58 +08:00
Andrew Nicols c0081c5fc5 MDL-87716 core: Support Behat in Composer/Standard installation
To support Behat we need to update the path to the vendor directory to
be relative to the root package.

We also need to update the `composer.json` to allow the BehatExtension
to be autoloaded using the composer autoloader, which means moving it
out of the dev autoloader. Whilst this is not ideal, it's currently
unavoidable.
2026-02-11 15:11:58 +08:00
Andrew Nicols 7bd997e97c MDL-87716 testing: Stop installing composer if in a composer install 2026-02-11 15:11:58 +08:00
Andrew Nicols 563242cf82 MDL-87716 core: Update coding style
Update coding style for files moved to namespaced locations.
2026-02-11 15:11:58 +08:00
Andrew Nicols 9142bd0ac6 MDL-87716 phpunit: Update phpunit configuration for composer
PHPUnit paths must be provided relative to the `phpunit.xml` file.

In current operation, the `phpunit.xml` is generated in the root
directory, and all paths are relative to this.

When installed using Composer, the Moodle directory is in a
sub-directory of the root package/directory, so the configuration must
reflect this.
2026-02-11 15:11:57 +08:00
Andrew Nicols 429eeaafab MDL-87716 core: Update namespace for various phpunit classes 2026-02-11 15:11:57 +08:00
meirzamoodle 1cf6bd8b87 MDL-87717 core: Update for composer in parent directory
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2026-02-11 15:11:36 +08:00
Sara Arjona e5bb3677c2 Merge branch 'MDL-87712-main' of https://github.com/sarjona/moodle 2026-02-11 07:29:42 +01:00
Sara Arjona 15b0a49e5d Merge branch 'MDL-87663-main' of https://github.com/sarjona/moodle 2026-02-11 07:14:09 +01:00
Sara Arjona c876378ca0 Merge branch 'MDL-87874' of https://github.com/paulholden/moodle 2026-02-11 07:05:12 +01:00
Sara Arjona 21b7d9545c Merge branch 'MDL-87825-main' of https://github.com/sebastsg/moodle 2026-02-11 07:00:27 +01:00
Huong Nguyen cd1b31f6e5 Merge branch 'MDL-87296-main' of https://github.com/micaherne/moodle 2026-02-11 12:56:38 +07:00
Huong Nguyen 13b25b0303 Merge branch 'MDL-87448-main' of https://github.com/lucaboesch/moodle 2026-02-11 12:53:51 +07:00
Huong Nguyen 7bd1597619 Merge branch 'MDL-87660-main' of https://github.com/sarjona/moodle 2026-02-11 12:48:07 +07:00
Sara Arjona f89d91a2dd Merge branch 'MDL-87623-main' of https://github.com/laurentdavid/moodle 2026-02-11 06:45:07 +01:00
Anupama Sarjoshi 13b1c1bc5e MDL-87513 aiprovider_gemini: add to standard plugin list. 2026-02-11 10:51:06 +05:30
Anupama Sarjoshi bc49f9e918 MDL-87513 AI: Integrate the Gemini AI provider plugin into core
Allows AI Subsystem to use Gemini models via
their API.

Co-authored by: Andrea Bertelli <andrea.bertelli@unife.it>
2026-02-11 10:51:06 +05:30
Adrian Greeve 8e0a5f7433 Merge branch 'MDL-87713-main' of https://github.com/andrewnicols/moodle 2026-02-11 13:18:53 +08:00
Brendan Heywood bc22fa8bf4 MDL-87923 checks: Fix bug with details showing on summary pages 2026-02-11 16:10:12 +11:00
Huong Nguyen b2b96a7095 Merge branch 'MDL-87662-main' of https://github.com/sarjona/moodle 2026-02-11 11:53:44 +07:00
Huong Nguyen 69b53c703b Merge branch 'MDL-87863-main' of https://github.com/sarjona/moodle 2026-02-11 11:51:39 +07:00
Huong Nguyen 7a01a70a70 Merge branch 'MDL-87535-main_take2' of https://github.com/lucaboesch/moodle 2026-02-11 11:47:43 +07:00
Huong Nguyen 1515dc04d9 Merge branch 'MDL-86714' of https://github.com/paulholden/moodle 2026-02-11 11:45:35 +07:00
Huong Nguyen 0b5ca7cfbe Merge branch 'MDL-81961-main' of https://github.com/stevandoMoodle/moodle 2026-02-11 11:27:08 +07:00
Huong Nguyen cfd7889ca4 Merge branch 'MDL-68062-main' of https://github.com/sh-csg/moodle 2026-02-11 11:24:31 +07:00
Huong Nguyen c80215ec2b Merge branch 'MDL-87008-main' of https://github.com/lucaboesch/moodle 2026-02-11 11:08:16 +07:00
AMOS bot 4ac00dd8da Automatically generated installer lang files 2026-02-11 00:07:56 +00:00
Paul Holden 7fe896f510 MDL-87914 repository_flickr: switch to JSON from API endpoint.
This change also removes an unsafe call to a long ago (as in, plus ten
years) defunct domain.
2026-02-10 10:21:26 +00:00
Muhammad Arnaldo 07b51c59ea MDL-87523 admin: fix line formatting 2026-02-10 15:33:27 +07:00
Sara Arjona 84203afa0a MDL-87663 course: Display Done status label for automatic completion 2026-02-10 08:49:12 +01:00
Sara Arjona df1eaf806e MDL-87712 course: Relocate dates in activity page 2026-02-10 08:43:13 +01:00
Sara Arjona 2456d4e3bb MDL-87660 course: Redesign automatic completion in activity page 2026-02-10 08:39:18 +01:00
Sara Arjona 6200c31f94 MDL-87662 course: Relocate manual completion button to activity header
Co-author: Ferran Recio <ferran@moodle.com>
2026-02-10 08:32:58 +01:00
Huong Nguyen 53c1adfeca MDL-87119 login: Improve the logout confirmation dialogue 2026-02-10 09:58:12 +07:00
Huong Nguyen 746815af49 weekly release 5.2dev 2026-02-10 08:41:08 +07:00
Huong Nguyen 0e0e57bb7c NOBUG: Add upgrade notes 2026-02-10 08:41:08 +07:00
Huong Nguyen b9ac5c7425 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-02-10 08:40:56 +07:00
Shamim Rezaie 0c6ab91a63 Merge branch 'MDL-87892-main' of https://github.com/HuongNV13/moodle 2026-02-09 21:07:47 +11:00
Huong Nguyen 8aff5ab85b MDL-87892 admin: Fix MoodleNet check 2026-02-09 16:31:45 +07:00
Shamim Rezaie 39c5636b82 Merge branch 'MDL-87892-main' of https://github.com/HuongNV13/moodle 2026-02-09 19:37:06 +11:00
James C 44e8052c38 MDL-86687 core_courseformat: Allow hiding subsection format options 2026-02-09 20:08:05 +13:00
Andrew Nicols 4e6c379810 MDL-81961 core_question: Final deprecation of moodle-question-chooser
Also includes removal of qbank_chooser template which was deprecated
alongside it.
2026-02-09 13:12:03 +08:00
AMOS bot 2368dcb453 Automatically generated installer lang files 2026-02-09 00:07:55 +00:00
AMOS bot d25c6a8095 Automatically generated installer lang files 2026-02-07 00:07:55 +00:00
Paul Holden a2ccfe79ef MDL-87874 customfield_number: validation for maximum size constraints. 2026-02-06 15:35:57 +00:00
Michael Kotlyar 25505c5dd3 MDL-87492 mod_quiz: 'autosubmit' quiz attempt handling fix
Some quiz attempts throw an exception when they are being processed and
are stuck in a 'submitted' state. This change wraps the process in a
transaction so that there are no partial changes made in such cases.
2026-02-06 14:12:51 +00:00
Huong Nguyen 2b84f497ce MDL-87892 admin: Fix MoodleNet removal warning
Instead of introducing a new optional parameter,
we will make all the changes in the Admin Renderer
2026-02-06 19:57:40 +07:00
Paul Holden de07aeb807 MDL-87874 customfield: expand size of decimal data field type.
This change now makes the decimal field size equivalent to that of
the corresponding integer field size.
2026-02-06 11:20:07 +00:00
Amaia Anabitarte 218655f035 MDL-87671 core: Add restricted sections to navigation 2026-02-06 11:56:58 +01:00
Sara Arjona e64b46fda3 MDL-87863 theme: Add course title to sticky header in course index 2026-02-06 11:13:35 +01:00
Paul Holden ce115c5748 MDL-87883 core: correct license page link in project readme. 2026-02-06 09:08:09 +00:00
Jun Pataleta b3fd5c8d20 MDL-77209 core: Make More help links open on a new tab 2026-02-06 10:58:11 +08:00
David Woloszyn 0778a1ad98 MDL-78343 core_table: Improved HTML tag detection in format_text 2026-02-06 13:36:19 +11:00
AMOS bot ab590a6894 Automatically generated installer lang files 2026-02-06 00:07:55 +00:00
Luca Bösch 4329b14925 MDL-87448 qbank: put margins to the end of the buttons to align better. 2026-02-05 17:42:23 +01:00
Luca Bösch 24339b2c40 MDL-87535 quiz: Quiz dates shouldn't show on secure page. 2026-02-05 17:33:01 +01:00
Luca Bösch a47af01ec8 MDL-87338 core_table: avoid string concatenation. 2026-02-05 17:21:09 +01:00
Mihail Geshoski dbf9b2bc1f weekly release 5.2dev 2026-02-05 20:22:57 +08:00
Mihail Geshoski 46bec8391b NOBUG: Add upgrade notes 2026-02-05 20:22:57 +08:00
Mihail Geshoski d6d6a4e67a Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-02-05 20:22:02 +08:00
Sara Arjona a2b6aa81d8 MDL-87863 theme: Remove visibility toggles for drawer content
The code intended to prevent glitches was actually causing them.
Removing it simplifies the component and fixes the regression.
2026-02-05 12:07:55 +01:00
Paul Holden e52076f48c MDL-87870 filter_algebra: switch background colour picker element. 2026-02-05 17:24:02 +07:00
Paul Holden 79d05d08de MDL-87870 admin: tighten up validation of colour picker values. 2026-02-05 17:24:02 +07:00
Paul Holden d287297369 MDL-87870 filter_tex: escape background argument content. 2026-02-05 17:24:02 +07:00
Huong Nguyen 2777159cbd Merge branch 'MDL-86444_main' of https://github.com/marxjohnson/moodle 2026-02-05 17:23:51 +07:00
Huong Nguyen c06208337b Merge branch 'MDL-87352-main' of https://github.com/andimendunia/moodle 2026-02-05 17:23:06 +07:00
Jun Pataleta 978c6c3f71 Merge branch 'MDL-87540-main' of https://github.com/muhammadarnaldo/moodle 2026-02-05 17:23:06 +07:00
Mihail Geshoski 1e5d7ee989 Merge branch 'MDL-87258-main' of https://github.com/rjnl/moodle 2026-02-05 17:23:05 +07:00
Jun Pataleta 4c62d6e459 Merge branch 'MDL-87757-main' of https://github.com/muhammadarnaldo/moodle 2026-02-05 17:23:05 +07:00
Adrian Greeve 9984fbe1fc Merge branch 'MDL-87559-main' of https://github.com/abias/moodle 2026-02-05 11:32:13 +08:00
Mihail Geshoski 2324a31520 Merge branch 'MDL-86437-main' of https://github.com/snake/moodle 2026-02-05 11:32:13 +08:00
Huong Nguyen 6557c37c09 MDL-87843 filter_tex: Switch to use Colour picker setting
This will allow users to easily choose the background colour
and prevent invalid input values
2026-02-05 11:32:12 +08:00
Paul Holden 566054ba11 MDL-87612 repository: safer unserializing of file source data. 2026-02-05 11:32:12 +08:00
Mihail Geshoski c08adf5484 Merge branch 'MDL-87789-main' of https://github.com/snake/moodle 2026-02-05 11:32:12 +08:00
Shamim Rezaie e3c2a760e4 Merge branch 'MDL-85640_main' of https://github.com/marxjohnson/moodle 2026-02-05 11:32:11 +08:00
AMOS bot 87ab0f6ebb Automatically generated installer lang files 2026-02-05 00:07:56 +00:00
Jun Pataleta 13017019d9 MDL-87600 gradereport_overview: Fix heading levels on the index page 2026-02-04 18:49:09 +08:00
Michael Aherne 131fc74e10 MDL-87296 customfield: Improve return type doc for handler::create() 2026-02-04 08:46:03 +00:00
Muhammad Arnaldo 2f19fb4cc1 MDL-87540 dashboard: Add course overview block by default 2026-02-04 10:56:17 +07:00
Muhammad Arnaldo 1c08f8a46f MDL-87757 block_myoverview: Remove navigation role and behat update
- Removal of the navigation role on main and zero-state template
- Add accessibility extra tests for the block_overview
2026-02-04 10:08:35 +07:00
Andi Permana ebb9f4f4c9 MDL-87352 admin: Sort language strings alphabetically 2026-02-04 10:03:52 +07:00
Andi Permana 1828982fe5 MDL-87352 admin: Fix coding style issues 2026-02-04 10:03:51 +07:00
Andi Permana c0bc49de65 MDL-87352 admin: Add MoodleNet removal warnings 2026-02-04 10:03:46 +07:00
AMOS bot 97660829ad Automatically generated installer lang files 2026-02-04 00:07:51 +00:00
cescobedo a90f3533ef Merge branch 'MDL-87658-main' of https://github.com/aanabit/moodle 2026-02-03 18:13:30 +01:00
Muhammad Arnaldo 1ef77081e0 MDL-87757 block_myoverview: fix the heading-order 2026-02-03 22:07:50 +07:00
Laurent David f1393890a2 MDL-87623 theme_boost: Adjust subsection display
* Subsections should be displayed more inline with the course
* Remove border and add a line after subsection header
2026-02-03 15:41:30 +01:00
Sebastian Gundersen 06742626df MDL-87825 customfield_number: Handle shared fields in cron 2026-02-03 15:34:45 +01:00
Mark Johnson 8a020b3637 MDL-85640 questions: Add unique index on question_versions
Adds a unique index on questionbankentryid and version in the
question_versions table, to prevent various issues and query
performance.

Although there should not be, it's possible that there are existing
versions that violate this index, so the upgrade step finds these and
renumbers them.
2026-02-03 10:59:52 +00:00
Mark Johnson 1a63189b56 MDL-86444 questions: Fix question categories with incorrect top parents 2026-02-03 10:47:45 +00:00
Alexander Bias 0c0b74e9cb MDL-87559 core: Set $SCRIPT even outside public/ 2026-02-03 10:39:12 +01:00
Jun Pataleta bbaa119b30 Merge branch 'MDL-83984_master' of https://github.com/santoshndev/moodle 2026-02-03 17:06:57 +08:00
Jake Dallimore c6836c556e Merge branch 'MDL-85535-main' of https://github.com/junpataleta/moodle 2026-02-03 16:59:02 +08:00
Andrew Nicols b54e5a6cc1 Merge branch 'MDL-87199-main' of https://github.com/abias/moodle 2026-02-03 16:51:35 +08:00
Jun Pataleta 1527f0efc3 Merge branch 'MDL-87185-main' of https://github.com/durenadev/moodle 2026-02-03 16:50:22 +08:00
Jun Pataleta a83083fd25 Merge branch 'MDL-87593-main-enfix' of https://github.com/mudrd8mz/moodle 2026-02-03 16:47:58 +08:00
Jun Pataleta c6ffcf7208 Merge branch 'MDL-77162-filepicker-a11y-tab-order-repository-keyboard-selection' of https://github.com/stopfstedt/moodle 2026-02-03 16:44:25 +08:00
Jun Pataleta 0c12cde107 Merge branch 'MDL-87694-course-participant-profile-missing-heading' of https://github.com/stopfstedt/moodle 2026-02-03 15:18:28 +08:00
Rajneel Totaram 43c350ba5d MDL-87258 mod_lti: request access for PNA
Since Chrome 142, public servers accessing resources on local networks
gets blocked by default. Users need to allow access for such requests
to proceed.

This patch introduces a new config setting `ltiallowlocalnetwork`.
This determines if the local-network-access flag should be added to LTI
iframes so that Chrome users get prompted when a local network access
is being made.
2026-02-03 18:46:28 +12:00
Mihail Geshoski 7de0a33072 Merge branch 'MDL-87606_main' of https://github.com/marxjohnson/moodle 2026-02-03 14:21:34 +08:00
Mihail Geshoski 6127ecccd2 Merge branch 'MDL-86609_main' of https://github.com/marxjohnson/moodle 2026-02-03 14:09:39 +08:00
Mihail Geshoski 2dc7c9fb5e Merge branch 'main_MDL-84966' of https://github.com/niko-hoogeveen/moodle 2026-02-03 13:43:43 +08:00
Mihail Geshoski 6412e80432 Merge branch 'MDL-85653_main' of https://github.com/marxjohnson/moodle 2026-02-03 13:35:50 +08:00
Mihail Geshoski cb00262410 Merge branch 'MDL-87029-main' of https://github.com/cameron1729/moodle 2026-02-03 13:25:42 +08:00
Huong Nguyen 777d87e641 Merge branch 'MDL-87334' of https://github.com/paulholden/moodle 2026-02-03 11:07:18 +07:00
Huong Nguyen f30d6de61d Merge branch 'MDL-87289-main' of https://github.com/raortegar/moodle 2026-02-03 10:43:41 +07:00
Huong Nguyen ecf8642a8e Merge branch 'MDL-87396-main' of https://github.com/izendegi/moodle 2026-02-03 10:36:54 +07:00
Huong Nguyen 6b5e3f3cda Merge branch 'MDL-87520-main-branch-number' of https://github.com/mudrd8mz/moodle 2026-02-03 10:32:23 +07:00
Huong Nguyen 6ec9b28337 Merge branch 'MDL-86905-main' of https://github.com/junpataleta/moodle 2026-02-03 10:26:48 +07:00
Huong Nguyen d4b5021389 Merge branch 'MDL-87675-main' of https://github.com/nvhai248/moodle 2026-02-03 10:23:23 +07:00
Huong Nguyen 6400f08f73 Merge branch 'MDL-87543-main' of https://github.com/yusufwib01/moodle 2026-02-03 10:10:54 +07:00
AMOS bot c43522436d Automatically generated installer lang files 2026-02-03 00:08:04 +00:00
Stefan Topfstedt 374d157102 MDL-87694 core: prevent empty heading in context header. 2026-02-02 10:35:54 -08:00
Stefan Topfstedt 5b4fa5eb04 MDL-87694 profile: change page title to "Login required".
This realigns the page title with public/user/view.php.
2026-02-02 10:22:59 -08:00
Stefan Topfstedt e5c97cf83d MDL-87694 profile: set top level heading when accessed as guest user. 2026-02-02 10:04:54 -08:00
Jun Pataleta 3547ff6ad3 MDL-87694 core: headinglevel display option for $OUTPUT->confirm()
`\core\output\core_renderer::confirm()`'s `$displayoptions` parameter
now also accepts a `headinglevel` option that developers can use to
specify the heading level of the confirmation's heading. If not
specified, the confirmation heading will be rendered in an `h4` tag.
2026-02-02 09:18:09 -08:00
Paul Holden f6d26bce02 MDL-86714 mod_scorm: parse reference file post-restore/import.
Ensure the SCORM reference file is setup and ready to use after
restoring from backup file. Additional support for ancient 1.9
backups.
2026-02-02 10:28:53 +00:00
Paul Holden 3e9ecaa1f0 MDL-76437 gradingform_rubric: consistent styles for add buttons.
Remove duplication/redundancy for same elements from the theme.
2026-02-02 10:28:00 +00:00
Paul Holden 9fb37930b1 MDL-87096 enrol_database: observe activity dates display in courses.
Co-authored-by: Owen Herbert <owenherbert@catalyst-au.net>
2026-02-02 10:27:04 +00:00
Jun Pataleta 1e0513be22 MDL-86905 core: Use proper link markup for email links 2026-02-02 18:06:41 +08:00
Jun Pataleta 1e54e42540 Merge branch 'MDL-87082-main' of https://github.com/jleyva/moodle 2026-02-02 15:35:46 +08:00
Juan Leyva 9f6dc2f7ce MDL-87082 tool_mobile: New redirect script to set referer 2026-02-02 08:33:27 +01:00
Huong Nguyen a79822ef8c Merge branch 'MDL-78342-main' of https://github.com/davewoloszyn/moodle 2026-02-02 08:49:46 +07:00
Safat 513358bc39 Merge branch 'MDL-86601-adhoc-index' of https://github.com/bwalkerl/moodle 2026-02-02 12:12:24 +11:00
Cameron Ball 58de7592a7 MDL-87029 quiz: Refetch attempts in overdue task to avoid stale submits
The update_overdue_attempts scheduled task iterated attempts from a recordset
and could act on stale attempt data if the web request finished an attempt
before cron processed it, causing duplicate submissions.

Change get_list_of_overdue_attempts() to return only attempt ids plus computed user
timeclose/timelimit, and refetch each attempt by id inside the task loop before
constructing quiz_attempt. This keeps quiz_attempt APIs unchanged and ensures cron
operates on current state
2026-01-31 15:35:10 +08:00
AMOS bot 87c09f5193 Automatically generated installer lang files 2026-01-31 00:07:58 +00:00
David Mudrák 008c7ff2bb MDL-87593 lang: Fix strings order 2026-01-30 18:55:53 +01:00
David Mudrák da0e3ecd4b MDL-87593 lang: Use the fixed strings in tests 2026-01-30 18:55:53 +01:00
David Mudrák 19cb294211 MDL-87520 core: Fix interpretation of CFG->branch in update API client
Starting in version 3.10, Moodle started to use a different format for
the $CFG->branch that has not been fixed here. This is to make sure that
we request the correct version of the plugin.
2026-01-30 14:11:34 +01:00
Benjamin Walker dac9930a58 MDL-86601 core_task: Add index for scheduled task lastruntime 2026-01-30 22:54:06 +10:00
Benjamin Walker 502f469b5d MDL-86601 core_task: Add index for large adhoc task queues 2026-01-30 22:53:27 +10:00
Luca Bösch fc5ca5b450 MDL-87008 user: Set sticky footer for submit/cancel buttons. 2026-01-30 13:46:43 +01:00
Luca Bösch a9ed3ef6c6 MDL-87552 groupings: Striped hovering lines table with BS 5. 2026-01-30 13:46:00 +01:00
Paul Holden 064a8679cf MDL-87334 course: looser check for empty return field editing course.
When the course format switcher reloads the form, the `$returnto`
parameter is of type string: "0", rather of type integer per initial
load.

In this case the `empty(...)` check is verifying all of empty string,
0 (integer) and "0" (string). Hurrah for PHP type checking.
2026-01-30 10:37:46 +00:00
Paul Holden e3c2dc03ae MDL-87321 courseformat: explicit empty string check renaming module. 2026-01-30 10:36:39 +00:00
Iñigo Zendegi 365e74f853 MDL-87396 mod_assign: Add availability check to notifications 2026-01-30 11:25:27 +01:00
Paul Holden 0f605dfa13 MDL-87807 availability_grade: ensure required library is loaded.
Changes from 8cf9b221 introduced usage of a non-autoloaded class, so
we should be resilient and ensure the library in which it resides is
always loaded.
2026-01-30 10:05:42 +00:00
Huong Nguyen 5f23e7ec57 weekly release 5.2dev 2026-01-30 15:38:55 +07:00
Huong Nguyen 0a795f530e NOBUG: Add upgrade notes 2026-01-30 15:38:55 +07:00
Huong Nguyen b5f9cd4c92 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-01-30 15:38:41 +07:00
Andrew Nicols f5363dab4f MDL-87713 core: Switch to moodle/moodle-testing package for phpunit/behat
This ensures that the same set of dependencies are installed for both a
regular Moodle install, and a Composer-based install.
2026-01-30 15:01:08 +08:00
Andrew Nicols f5bbcca018 NOBUG: Bump composer.lock 2026-01-30 12:11:30 +07:00
Huong Nguyen b56be22578 Merge branch 'MDL-87521' of https://github.com/timhunt/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen 105e5469bf Merge branch 'MDL-87087-main' of https://github.com/lameze/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen 85aa1d0d14 Merge branch 'MDL-86994-main' of https://github.com/mioyu-ubiq/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen bc33719736 Merge branch 'MDL-87018-main' of https://github.com/bhect0/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen 24e7219059 Merge branch 'MDL-87104' of https://github.com/paulholden/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen e13e072d3b Merge branch 'MDL-87323' of https://github.com/paulholden/moodle 2026-01-30 12:11:30 +07:00
Huong Nguyen 6ab00596bf Merge branch 'MDL-86988' of https://github.com/paulholden/moodle 2026-01-30 12:11:29 +07:00
Huong Nguyen 376c72ff4a Merge branch 'MDL-85233-main' of https://github.com/yusufwib01/moodle 2026-01-30 12:11:29 +07:00
Paul Holden da3a262565 MDL-87714 customfield_number: upgrade note for recalculate parameters. 2026-01-30 12:11:29 +07:00
Paul Holden c29198aa86 Merge branch 'MDL-87714-main' of https://github.com/sebastsg/moodle 2026-01-30 12:11:29 +07:00
Amaia Anabitarte 146ac46ea3 Merge branch 'MDL-87616-main' of https://github.com/sarjona/moodle 2026-01-30 12:11:29 +07:00
Amaia Anabitarte 528834a85f Merge branch 'MDL-86862-main' of https://github.com/laurentdavid/moodle 2026-01-30 12:11:29 +07:00
Paul Holden a464eaf84b Merge branch 'MDL-87736' of https://github.com/yerairogo/moodle 2026-01-30 12:11:29 +07:00
Paul Holden 55dd22a949 MDL-87059 customfield: upgrade note regarding shortname uniqueness. 2026-01-30 12:11:28 +07:00
Paul Holden 8e1fc31462 Merge branch 'MDL-87059-main' of https://github.com/dravek/moodle 2026-01-30 12:11:28 +07:00
Paul Holden 91c1f38a6e Merge branch 'MDL-87437-main' of https://github.com/tasiobg/moodle 2026-01-30 12:11:28 +07:00
Sara Arjona 3822b9c20c Merge branch 'MDL-87301-main' of https://github.com/laurentdavid/moodle 2026-01-30 12:11:28 +07:00
Jun Pataleta 065829dab6 Merge branch 'MDL-86639-main' of https://github.com/yusufwib01/moodle 2026-01-30 12:11:28 +07:00
Sara Arjona a07d3f7f97 Merge branch 'MDL-87304-main' of https://github.com/laurentdavid/moodle 2026-01-30 12:11:28 +07:00
Ilya Tregubov e52478a626 Merge branch 'MDL-87135' of https://github.com/paulholden/moodle 2026-01-30 12:11:27 +07:00
Sara Arjona 7a033c362e Merge branch 'MDL-87621-main' of https://github.com/sarjona/moodle 2026-01-30 12:11:27 +07:00
Sara Arjona d0fca05a93 Merge branch 'MDL-87263' of https://github.com/paulholden/moodle 2026-01-30 12:11:27 +07:00
Jun Pataleta 30160d15b5 Merge branch 'MDL-84988_main' of https://github.com/marxjohnson/moodle 2026-01-30 12:11:27 +07:00
Paul Holden 03d7a8d503 MDL-87799 sms: move description attribute into core namespace. 2026-01-29 15:56:24 +00:00
Daniel Ureña 580db27cd7 MDL-87185 block_site_main_menu: Add required library 2026-01-29 13:11:08 +01:00
fgo 4c47a96b83 MDL-86437 enrol_lti: Cast scoreGiven to float for LTI compliance
scoreGiven was being passed as a string (e.g. "8.0"), which caused
validation errors in some LMS implementations such as Rustici Engine.
According to the LTI specification, scoreGiven must be numeric if
present.

Co-authored-by: Jake Dallimore <jake@moodle.com>
2026-01-29 14:57:37 +08:00
Jake Dallimore 44c332251e MDL-87789 libraries: patch lti1p3 for certification support
https://github.com/packbackbooks/lti-1-3-php-library/issues/169 blocks
us from using the new build.1edtech certification tooling. This issue
commits that fix as a library customisation/hack for stables, so the
suite can be used for annual/bi-annual re-certification.
2026-01-29 14:07:27 +08:00
Angelia Dela Cruz a0629290fe MDL-87087 tool_dataprivacy: Test data request by authorized user 2026-01-29 11:04:00 +08:00
AMOS bot 6e82552d1d Automatically generated installer lang files 2026-01-29 00:07:52 +00:00
Helen Foster 030b14aff4 MDL-87593 lang: Import fixed English strings (en_fix) 2026-01-28 21:41:35 +01:00
Tim Hunt 41b22084cf MDL-83325 filepicker: tidy up display of restrictions 2026-01-28 17:22:38 +00:00
Paul Holden 374226dca0 MDL-87158 tool_xmldb: make generated code to rename field idempotent.
Consistent with similar DDL structure change code generated by this tool,
and allows for upgrade steps to be replayed without errors.
2026-01-28 17:04:44 +00:00
Sara Arjona 66ea212c78 MDL-87616 book: Modernise navigation buttons 2026-01-28 16:13:28 +01:00
Tim Hunt 6c879810fb MDL-87521 behat: better error reporting if an adhoc task fails 2026-01-28 14:46:07 +00:00
Yerai Rodríguez 02b9fbcb2d MDL-87736 customfield: Retrieve instances data using component and area 2026-01-28 13:20:35 +01:00
Laurent David 1e8f7936f7 MDL-87301 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.
2026-01-28 10:12:08 +01:00
Sebastian Gundersen f2eb917286 MDL-87714 customfield: Add component/area to field number provider
Fixes ambiguous instances when using shared custom fields.
The component and area parameters are now used to get the proper handler.
2026-01-28 07:02:16 +01:00
mioyu-ubiq 9a319fea73 MDL-86994 mod_assign: Behat to test permitted users can edit submission 2026-01-28 13:30:54 +08:00
Hai Nguyen Van 939edd0ced MDL-87675 core: Add delay for displaying the YUI alert dialogue message
* Add a slight delay for displaying the message content of the YUI
alert dialogue's ARIA live container to allow screen readers to
announce the alert message accordingly.
2026-01-28 03:19:30 +00:00
Yusuf Wibisono 5b96820437 MDL-85233 filter: Remove MimeTeX support and use LaTeX for TeX/algebra
This commit removes MimeTeX support from both filter_tex and filter_algebra,
requiring LaTeX tools (latex, dvips, convert/dvisvgm) for rendering. It also
makes filter_algebra fully independent from filter_tex with its own configuration
settings
2026-01-28 02:16:10 +07:00
Mark Johnson 4d84710aa8 MDL-87606 backup: Include child questions in backups
Since MDL-41924, because we are not always including the whole category
of each question being used in a backup, we have been missing some child
questions.

This expands the query selecting questions belonging to categories
where only annotated questions are being included, to also select any
children of those questions.
2026-01-27 14:52:45 +00:00
Laurent David 4aecf7fa37 MDL-87304 mod_data: Use saveandview instead of "Save"
* As we switched "Save and add another " and "Save", Behat will click on the first
"SaveXXXX" button, and go to edit page again for a new entry. Where we were expecting
to be back to the view page.
2026-01-27 13:39:20 +01:00
Laurent David 5b135cad8d MDL-87304 mod_data: Fix behat tests 2026-01-27 13:39:20 +01:00
Laurent David d78bd0d23a MDL-87304 mod_data: Remove sticky footer other usages
* Remove sticky footer in presets, import, templates and field pages
2026-01-27 13:39:20 +01:00
Laurent David e6ce408bbc MDL-87304 mod_data: Remove sticky footer in view/edit
* Move pagination at the bottom of the view
* Move edit save button at the bottom of the form
2026-01-27 13:39:20 +01:00
Paul Holden bcce7cc7ab MDL-87100 core: infer upgrade note issue number from current branch. 2026-01-27 10:54:54 +00:00
Paul Holden 5bb18b53fa MDL-86659 enrol_flatfile: remove spurious get_config parameters. 2026-01-27 10:40:16 +00:00
Paul Holden 078495c6b0 MDL-87104 message: remove border from contact request sent profile info. 2026-01-27 10:26:02 +00:00
Raquel Ortega 1c436e162d MDL-87289 mod_forum: Disable mediaplugin filter in emails 2026-01-26 21:31:17 +01:00
Niko Hoogeveen cf079acd3d MDL-84966 core_question: Updated question bank tag filter
Fixes a bug where filtering questions by tag the 'NONE'
option was not being respected. Automated testing was also added
to cover tag filtering conditions in the question bank
2026-01-26 11:26:02 -05:00
Paul Holden de9775ce69 MDL-81441 tiny_media: broaden content search for used draft files.
Changes in 47f9106c (upon which this code is based) assumed used files
were always enclosed within quote marks. However this isn't the case
for embedded H5P files which output the filepath directly and rely on
subsequent filtering to turn into appropriate markup.
2026-01-26 10:52:56 +00:00
Huong Nguyen aab15286c4 Merge branch 'MDL-87528-main' of https://github.com/yusufwib01/moodle 2026-01-26 16:19:33 +07:00
Huong Nguyen 64c9d9b853 Merge branch 'MDL-87527-main' of https://github.com/yusufwib01/moodle 2026-01-26 16:10:27 +07:00
Amaia Anabitarte ed6bda0eb5 MDL-87658 ai_placement: Add 'ai_visibility_hint' to moodle_page
'ai_visibility_hint' property indicates whether AI-related
UI elements are preferred to be shown on a given page.
This value acts as an advisory hint only.
It does not enforce the visibility of AI-related UI elements globally
2026-01-26 10:07:06 +01:00
Huong Nguyen 416fe34b9b Merge branch 'MDL-84862-main-test' of https://github.com/yusufwib01/moodle 2026-01-26 15:32:05 +07:00
Huong Nguyen 5d244c5881 Merge branch 'MDL-87525-main' of https://github.com/yusufwib01/moodle 2026-01-26 14:25:50 +07:00
David Carrillo 740b4a751e MDL-87059 customfield: Check if custom field shortname is unique
- If is a shared field check that shortname does not exist anywhere.
- If is an entity field check that the shortname does not exist
within the same entity fields or in the shared fields.
2026-01-26 08:02:18 +01:00
Sara Arjona da8bc486b6 MDL-87621 subsection: Update cleanup links in settings page 2026-01-26 07:06:08 +01:00
Sara Arjona fa3fd42f01 MDL-87621 subsection: Add task to remove subsection descriptions 2026-01-26 07:05:58 +01:00
Sara Arjona 1400322c99 MDL-87621 subsection: Fix automated tests to include summary field 2026-01-26 07:05:45 +01:00
Sara Arjona f6ad471c7d MDL-87621 subsection: Avoid descriptions to be restored 2026-01-26 07:05:19 +01:00
Sara Arjona 14ef8d82f9 MDL-87621 subsection: Add API method to clear descriptions 2026-01-26 07:05:06 +01:00
Sara Arjona ebb649ac0f MDL-87621 subsection: Add summary support to the generator 2026-01-26 07:04:49 +01:00
Laurent David fc45fe4a38 MDL-86862 core_courseformat: Remove uses of move_section 2026-01-26 06:39:56 +01:00
Laurent David 8789141faa MDL-86862 core_course: Add sectionactions::moveafter 2026-01-26 06:39:56 +01:00
Huong Nguyen b3cd83bd48 weekly release 5.2dev 2026-01-26 10:38:36 +07:00
Huong Nguyen 0ff35fef76 NOBUG: Add upgrade notes 2026-01-26 10:38:35 +07:00
Huong Nguyen 09dd1abd1c Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-01-26 10:38:20 +07:00
Huong Nguyen b80b647703 NOBUG: Fix upgrade notes 2026-01-26 10:36:19 +07:00
Héctor Benedicte cdf88a5666 MDL-87018 qtype_essay: Add unit tests for un_summarise_response(). 2026-01-23 19:31:42 +01:00
Andrew Nicols 2a9e8499ff MDL-87648 core: Ignore optional environment checks 2026-01-23 11:23:39 +07:00
AMOS bot 33db94b593 Automatically generated installer lang files 2026-01-23 00:08:10 +00:00
Mark Johnson 66f7c6b009 MDL-84988 qbank_managecategories: Make categories collapsible 2026-01-22 11:05:25 +00:00
Safat 363813c879 Merge branch 'MDL-86527-main' of https://github.com/HuongNV13/moodle 2026-01-22 15:39:33 +11:00
Huong Nguyen cb4ba4a264 Merge branch 'MDL-87188' of https://github.com/paulholden/moodle 2026-01-22 11:02:37 +07:00
Adrian Greeve cbfb384447 Merge branch 'MDL-87648-main' of https://github.com/andrewnicols/moodle 2026-01-22 11:56:02 +08:00
Huong Nguyen 85031054ec Merge branch 'MDL-87317-main' of https://github.com/lucaboesch/moodle 2026-01-22 10:52:48 +07:00
Huong Nguyen 2646fe8824 Merge branch 'MDL-87318-main' of https://github.com/lucaboesch/moodle 2026-01-22 10:46:14 +07:00
Huong Nguyen 47e2024976 Merge branch 'MDL-86797' of https://github.com/paulholden/moodle 2026-01-22 10:44:11 +07:00
Huong Nguyen 317a4519dd Merge branch 'MDL-87092-main' of https://github.com/Kredelirious/moodle 2026-01-22 10:36:37 +07:00
Huong Nguyen 7b39b3d86e Merge branch 'MDL-87090-main' of https://github.com/lameze/moodle 2026-01-22 10:32:19 +07:00
Andrew Nicols 436688d74b MDL-87648 core: Support multiple tests within a check 2026-01-22 11:26:09 +08:00
Andrew Nicols 55ab5d6758 MDL-87648 router: Add check report data for router configuration 2026-01-22 11:26:06 +08:00
Jun Pataleta cdf9cdd315 Merge branch 'MDL-86136_main' of https://github.com/marxjohnson/moodle 2026-01-22 08:32:55 +08:00
Jun Pataleta 2eef0861b8 Merge branch 'MDL-87478_main' of https://github.com/mohdtahseen1/moodle 2026-01-22 08:22:55 +08:00
yusufwib01 1c4f27d4bc MDL-87543 hub: Registration collect defaulthomepage data 2026-01-22 07:17:04 +07:00
Jun Pataleta 9dfce78ca4 Merge branch 'MDL-87517-main' of https://github.com/roland04/moodle 2026-01-22 08:10:59 +08:00
Amaia Anabitarte 3bd4688554 Merge branch 'MDL-87281-main' of https://github.com/sarjona/moodle 2026-01-21 15:36:16 +01:00
Sara Arjona 5ccca059d9 MDL-87281 subsection: Add description cleanup links to settings page 2026-01-21 14:41:40 +01:00
Sara Arjona 00b1f3a2a6 MDL-87281 output: Support custom title and danger for confirm_action 2026-01-21 14:41:40 +01:00
Sara Arjona 40aa295388 MDL-87281 course: Add task to migrate subsection descriptions 2026-01-21 14:41:39 +01:00
Muhammad Arnaldo bc0c7fd770 MDL-87542 dashboard: Move calendar block to the side drawer
By default the calendar block will exist in the
right hand side drawer instead of in the main region.
2026-01-21 16:56:32 +07:00
Mark Johnson 94a802093b MDL-86136 question: Amend version restore test
Restoring a whole course will now restore the backed-up questions to a
new qbank instance. This means the test to restore versions was not
restoring the deleted versions to the original question bank entires,
but to a new question bank entry in the new qbank.

Updating the test to just backup and restore the quiz resolves this.
2026-01-21 09:31:02 +00:00
Mark Johnson de49076931 MDL-86136 qbank: Restore entire activity when it is in the backup
When restoring a backup containing a question bank, we were always
trying to match questions to an existing category on the target course
if once existed. This meant that when duplicating a qbank on the same
course, or importing the same qbank to another course multiple times,
only one of the restored qbanks would end up with questions in it.

This adds a mechanism to record any activities in the backup which
support `FEATURE_PUBLISHES_QUESTIONS`. Then when we restore the
questions, we check if we will be restoring the original activity they
belong to, and skip trying to match them to an existing category. This
means a new copy of each question will be created, and moved to the new
copy of the qbank once it is created.
2026-01-21 09:31:02 +00:00
Yusuf Wibisono c501d99251 MDL-87525 admin: New installs guest login button default disabled 2026-01-21 16:08:15 +07:00
Muhammad Arnaldo 323ec55af7 MDL-86527 behat: Avoid element-click-intercepted failures
Adjusts the window size to accommodate wide tables.
This ensures that columns which were previously clipped
are now visible and accessible to the Behat driver.
2026-01-21 15:04:45 +07:00
Muhammad Arnaldo a7ebc244c1 MDL-86527 behat: Fix random failures when toggling edit mode 2026-01-21 15:04:14 +07:00
Sara Arjona 20b45b01fc Merge branch 'MDL-87689-main' of https://github.com/sarjona/moodle 2026-01-21 07:52:31 +01:00
Adrian Greeve bead385c9e Merge branch 'MDL-87625-main' of https://github.com/andrewnicols/moodle 2026-01-21 13:52:59 +08:00
Adrian Greeve c1645d9864 Merge branch 'MDL-87659-main' of https://github.com/andrewnicols/moodle 2026-01-21 13:12:03 +08:00
Andrew Nicols ba68156c83 MDL-87648 core: Allow routerconfigured in test CFG 2026-01-21 13:06:19 +08:00
Andrew Nicols b9c4be1a65 MDL-87659 core: Hide "Details" section of checks Table when there are none 2026-01-21 13:01:41 +08:00
Huong Nguyen 2efd4b53a4 Merge branch 'MDL-79221-main' of https://github.com/PhMemmel/moodle 2026-01-21 10:14:04 +07:00
Huong Nguyen 8b60934b61 Merge branch 'MDL-51447-main' of https://github.com/AnupamaSarjoshi/moodle 2026-01-21 10:10:25 +07:00
AMOS bot 774d9cd4b5 Automatically generated installer lang files 2026-01-21 00:08:19 +00:00
Yusuf Wibisono d319c7988b MDL-86639 groups: Wrap group names in grade report group selector 2026-01-21 03:04:38 +07:00
Ilya Tregubov d64758d246 Merge branch 'MDL-76975' of https://github.com/yerairogo/moodle 2026-01-20 19:45:05 +02:00
Paul Holden b9e777b1dc MDL-86797 courseformat: account for hidden delegated section info. 2026-01-20 09:54:53 +00:00
Andrew Nicols abfd32852e Merge branch 'MDL-87427-main-update' of https://github.com/meirzamoodle/moodle 2026-01-20 15:25:15 +08:00
Sara Arjona a22c128504 MDL-87689 theme: Add temporary visual highlight to anchor links 2026-01-20 07:30:06 +01:00
meirzamoodle 635d47e40a MDL-87427 core_event: Remove the deprecated relateduserid key 2026-01-20 12:24:17 +07:00
meirzamoodle 22ba1bd38a MDL-87426 core: Remove the deprecated output_select_html() 2026-01-20 11:12:42 +08:00
meirzamoodle 91ab36e36c MDL-87426 mod_choice: Undo the deletion of answer_updated.php 2026-01-20 11:12:42 +08:00
Kim Jared Lucas 2dc2850700 MDL-87092 tool_uploaduser: suspend enrolments via CSV upload 2026-01-20 11:09:02 +08:00
meirzamoodle df8824b1a0 MDL-87427 general: Remove the deprecated code 2026-01-20 09:48:01 +07:00
Mihail Geshoski a28e42fa3f Merge branch 'MDL-87283-main' of https://github.com/aanabit/moodle 2026-01-20 10:43:01 +08:00
Cameron Ball c3c9b8d1b0 MDL-87703 dml: Introduce mark_tables_for_primary method 2026-01-20 10:36:16 +08:00
Mihail Geshoski 1ec2077191 Merge branch 'MDL-87287_main' of https://github.com/marxjohnson/moodle 2026-01-20 10:34:41 +08:00
AMOS bot e925478c31 Automatically generated installer lang files 2026-01-20 00:08:18 +00:00
Mikel Martín 761eceaf4f MDL-87517 theme_boost: Improve dynamic table loading styles 2026-01-19 14:01:17 +01:00
Mikel Martín f0c4200b09 MDL-87517 core: Add new parameters to loading icon
Added new `options` parameter to loadingicon.js functions.
- options.overlay: To display the loading spinner as an overlay of the container
2026-01-19 14:01:12 +01:00
Anupama Sarjoshi c408b7f0c0 MDL-51447 block_completionstatus: Show only user-visible activities
This change ensures that the completion details page displays only the
activities that are visible to the user on the course home page.
Activities that are hidden, unavailable or  located in hidden sections
are no longer shown in the completion details view.

Co-authored by: ewallah <info@ewallah.net>
2026-01-19 17:55:37 +05:30
Mikel Martín f175c75ba8 MDL-87517 theme_boost: Move icon variables to variables.scss file 2026-01-19 12:58:31 +01:00
Anupama Sarjoshi 527af9cad8 MDL-51447 core_completion: Get visible activities with completion on 2026-01-19 15:15:12 +05:30
Amaia Anabitarte 2673d323a8 Merge branch 'MDL-86832-main' of https://github.com/sarjona/moodle 2026-01-19 09:49:46 +01:00
Simey Lameze 5d46e3c88e MDL-87090 behat: improve new test 2026-01-19 13:54:45 +08:00
Jake Dallimore 6d49b898e4 Merge branch 'MDL-87228' of https://github.com/paulholden/moodle 2026-01-19 11:54:27 +08:00
David Woloszyn ccf49dd158 MDL-78342 core_table: Remove line break conversion in format_text 2026-01-19 13:07:19 +11:00
mioyu-ubiq cff6090141 MDL-87090 mod_assign : Teacher can override assignment deadlines 2026-01-19 09:00:21 +08:00
Adrian Greeve 76c1c1e324 Merge branch 'MDL-87426-main-update' of https://github.com/meirzamoodle/moodle 2026-01-19 08:59:55 +08:00
Mark Johnson 80203da42f MDL-86609 qbank_bulkmove: Select the current category by default 2026-01-16 14:27:51 +00:00
Sara Arjona e43eaa5de2 MDL-86832 blocks: Remove activity_modules block 2026-01-16 13:12:28 +01:00
Sara Arjona 2039518cc9 MDL-87281 subsection: Remove task to delete existing descriptions
Although originally introduced as a scheduled task, we are pivoting to a manual execution
model to match the indentation removal UX. This gives administrators more control over
when the process runs.
The task logic was simple enough to be integrated directly into the subsection removal code,
eliminating the need for a background job.
2026-01-16 12:24:34 +01:00
Luca Bösch 031082a8e9 MDL-87318 gradereport_grader: No over-thick table borders with BS 5. 2026-01-16 11:01:17 +01:00
Luca Bösch ec5e6ef3da MDL-87317 report_progress: Striped hovering table rows with BS 5. 2026-01-16 11:00:21 +01:00
Jake Dallimore 19c8567f01 weekly release 5.2dev 2026-01-16 16:38:08 +08:00
Jake Dallimore 10d41c3d4c Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-01-16 16:38:01 +08:00
meirzamoodle 025d3b060b MDL-87426 core_files: Remove the deprecated function 2026-01-16 14:22:59 +07:00
meirzamoodle 15ca816695 MDL-87426 general: Remove the deprecated code 2026-01-16 14:22:59 +07:00
Paul Holden 78b2567395 MDL-85300 grade: account for tooltip size in bulk move dialogue.
Now that it actually works, it obscures some elements required in
Behat scenarios. Resize the icon, and place it to the right.
2026-01-16 15:20:07 +08:00
Jake Dallimore 38b15a9b64 Merge branch 'MDL-87634' of https://github.com/paulholden/moodle 2026-01-16 15:20:07 +08:00
Huong Nguyen b86b9d9924 Merge branch 'MDL-86802-main' of https://github.com/Jayce0808/moodle 2026-01-16 15:20:07 +08:00
Mark Johnson bdfc0026ef MDL-85431 questions: Fix question count behat test 2026-01-16 15:20:07 +08:00
Jake Dallimore 6d886cf11b Merge branch 'MDL-86423-main' of https://github.com/martygilbert/moodle 2026-01-16 15:20:07 +08:00
Jake Dallimore 2854c6fcf4 Merge branch 'MDL-73602_main' of https://github.com/marxjohnson/moodle 2026-01-16 15:20:06 +08:00
Jake Dallimore a12099a0e6 Merge branch 'MDL-87635' of https://github.com/paulholden/moodle 2026-01-16 15:18:08 +08:00
Jake Dallimore 8dcae05f6a Merge branch 'MDL-86342-main' of https://github.com/MartinGauk/moodle 2026-01-16 15:18:08 +08:00
Jake Dallimore 8afa0fd90f Merge branch 'MDL-86869-single-view-overload' of https://github.com/alexkeel/moodle 2026-01-16 15:18:08 +08:00
Paul Holden 4fc5e4ea13 MDL-50364 forms: consistent access to language strings from JS. 2026-01-16 15:18:08 +08:00
Paul Holden fd5d67ff9b Merge branch 'MDL-50364-main' of https://github.com/Jayce0808/moodle 2026-01-16 15:18:08 +08:00
Ilya Tregubov 1985e2f721 Merge branch 'MDL-85300' of https://github.com/paulholden/moodle 2026-01-16 15:18:07 +08:00
Andrew Nicols b5fdad135a Merge branch 'MDL-87425-main' of https://github.com/meirzamoodle/moodle 2026-01-16 15:18:07 +08:00
Andrew Nicols b7f5fe288f Merge branch 'MDL-87608' of https://github.com/paulholden/moodle 2026-01-16 15:18:07 +08:00
Huong Nguyen 35e26344df Merge branch 'MDL-86017-main' of https://github.com/mijiaa/moodle 2026-01-16 15:18:07 +08:00
Huong Nguyen 3bfaf77549 Merge branch 'MDL-87636-main' of https://github.com/lameze/moodle 2026-01-16 15:18:07 +08:00
Huong Nguyen 7d259a83cc Merge branch 'MDL-87070-main' of https://github.com/andelacruz/moodle 2026-01-16 15:18:07 +08:00
Huong Nguyen 3aa7774f26 Merge branch 'MDL-85431_main' of https://github.com/marxjohnson/moodle 2026-01-16 15:18:06 +08:00
Huong Nguyen 3975d8ffc8 Merge branch 'MDL-87444-main' of https://github.com/roland04/moodle 2026-01-16 15:14:30 +08:00
Huong Nguyen 955a66d03a Merge branch 'MDL-87443' of https://github.com/paulholden/moodle 2026-01-16 15:14:30 +08:00
Huong Nguyen 9a68df54b2 Merge branch 'MDL-87229-main' of https://github.com/lucaboesch/moodle 2026-01-16 15:14:30 +08:00
Huong Nguyen c2092dbdbf Merge branch 'MDL-87056' of https://github.com/paulholden/moodle 2026-01-16 15:14:30 +08:00
Huong Nguyen 7714db27dc Merge branch 'MDL-86565' of https://github.com/paulholden/moodle 2026-01-16 15:14:30 +08:00
Huong Nguyen e20212e861 Merge branch 'MDL-87120' of https://github.com/paulholden/moodle 2026-01-16 15:14:29 +08:00
Amaia Anabitarte fc36bec974 MDL-87283 core_course: Create a new page for restricted activities
Only the activities with visible restrictions will be available.
2026-01-15 20:42:41 +01:00
Amaia Anabitarte ad2d1b15b6 MDL-87283 core: Add new path_module parameter type for routing 2026-01-15 20:42:40 +01:00
Nicolas Dunand 94d1076b10 MDL-86609 qbank_bulkmove: Target qbank categoryid fix. 2026-01-15 15:41:31 +00:00
Paul Holden d1dc08db36 MDL-87358 h5plib_v127: add unicode modifier to title matching regex.
See https://github.com/h5p/h5p-php-library/issues/276

Co-authored-by: Фидан Сынбулатов
2026-01-15 11:04:53 +00:00
AMOS bot 9ec8811fb0 Automatically generated installer lang files 2026-01-15 00:08:11 +00:00
Mark Johnson 83cb9d6b89 MDL-85653 qbank_editquestion: Display static status when not editable 2026-01-14 15:40:17 +00:00
Paul Holden f8eff77b0a MDL-87634 core: exclude fixtures from Github actions "one-by-one" job.
This is consistent with the PHPUnit general configuration in 20aa9d05.
2026-01-14 09:25:08 +00:00
Yerai Rodríguez 7c7b6ffa3c MDL-76975 admin: Move AMD dependencies to data attribute to fix overflow
Since there is a 1024 length limit on arguments passed through
js_call_amd(), we pass it through a HTML element dataset to avoid
this limit.
2026-01-13 16:38:40 +01:00
meirzamoodle 7dad909fc3 MDL-87425 core_output: Remove the question/qengine.js 2026-01-13 20:48:18 +07:00
meirzamoodle 4b3661df13 MDL-87425 core_navigation: Remove the deprecated class file 2026-01-13 20:48:18 +07:00
meirzamoodle 02542c2ed4 MDL-87425 core: Remove the deprecated code 2026-01-13 20:48:18 +07:00
meirzamoodle 0546d6b134 MDL-87425 general: Remove the deprecated code 2026-01-13 20:48:18 +07:00
Guest fada07bb9e MDL-87478 mod_quiz: Make pre-create attempts work with previews 2026-01-13 15:45:03 +05:30
Yusuf Wibisono d6eb665612 MDL-87528 admin: Password visibility enabled by default 2026-01-13 16:56:27 +07:00
AMOS bot a88a25e5c7 Automatically generated installer lang files 2026-01-13 00:08:12 +00:00
Andrew Nicols 043146827b MDL-87625 core: Use the /r.php basepath to guess routes 2026-01-13 08:05:33 +08:00
Paul Holden be476af24e MDL-87635 backup: ensure required test libraries are loaded. 2026-01-12 17:21:05 +00:00
Huong Nguyen 8e9be5302e Merge branch 'mdl-85530_main' of https://github.com/james-cnz/moodle 2026-01-12 13:42:08 +07:00
Huong Nguyen 45a5f943a4 Merge branch 'mdl-86959_main' of https://github.com/james-cnz/moodle 2026-01-12 13:40:42 +07:00
Simey Lameze 409e029708 MDL-87088 behat: add missing @javascript tags to required tests 2026-01-12 13:35:56 +07:00
Huong Nguyen 76a4091d9b Merge branch 'MDL-87088-main' of https://github.com/andelacruz/moodle 2026-01-12 13:55:14 +08:00
Andrew Nicols 184f6f8c54 Merge branch 'MDL-87423-main' of https://github.com/meirzamoodle/moodle 2026-01-12 13:55:14 +08:00
Huong Nguyen abfe94823c Merge branch 'MDL-86058-allow-enable-disable-tasks-from-cli-with-pending-upgrade' of https://github.com/duyhuynhdev/moodle 2026-01-12 13:55:14 +08:00
Angelia Dela Cruz 56d86d3184 MDL-87070 mod_glossary: Behat to confirm glossary autolinking works 2026-01-12 10:37:11 +08:00
Simey Lameze 31f3c25b50 MDL-87636 core: bump postgres version to 16 2026-01-12 09:20:25 +08:00
Stefan Topfstedt 30bc544740 MDL-77162 filepicker: default to selecting first repository available. 2026-01-09 08:35:39 -08:00
Paul Holden bfd3a1e6dd MDL-87263 reportbuilder: simplify entity element loading in reports. 2026-01-09 12:09:43 +00:00
Paul Holden 0e3b2cf0f5 MDL-87263 reportbuilder: observe entity order when adding multiple.
Ensure the order in which entities are passed from the datasource is
observed when adding all/multiple. Continuation of work originally done
in 9a8091d5.
2026-01-09 12:09:43 +00:00
Paul Holden a3fc5ae477 MDL-87443 reportbuilder: use Toast selector in Behat scenarios. 2026-01-09 12:07:23 +00:00
Paul Holden 18d65f3c19 MDL-87443 behat: define new Toast message named selector. 2026-01-09 12:07:23 +00:00
Mark Johnson 38f560b7a7 MDL-87287 qbank_deletequestion: Update behat test for tag deletion
Now that deleting a tagged question correctly deletes it tag instances,
the tag is no longer available for re-selection after all the tagged
questions are deleted.
2026-01-09 10:40:00 +00:00
Mark Johnson 2fd133a905 MDL-87287 mod_qbank: De-duplicate tags when migrating questions
In the migration from old-style question banks to mod_qbank, if a
question had the same tag from multiple contexts, when it was moved to
its new question bank context, the migration tried to set multiple tag
instances for the same tag to the same context, which caused a unique
key violation.

This add some checking to the
`question_move_question_tags_to_new_context` function to identify any
tag instances to be moved that will trigger this key violation, and
delte any duplicates before the move so we end up with a single instance
of the tag in the new context. This is done in a transaction that will
only be committed once the remaining tags have been moved.

This required adding the `tiuserid` field to the data returned by
`core_tag_tag::get_items_tag` so we can assemble the unique key without
having to do additional queries.

This also extends the test coverage for the `transfer_questions` task
to ensure tags are moved to the new contexts, and tags on stale questions
are deleted.
2026-01-09 10:40:00 +00:00
Mark Johnson 52b4103388 MDL-87287 qbank_tagquestion: Remove all tags from deleted questions
When we deleted a question, we were including the userid of the user who
performed the delete when checking for question tags. This means that if
user A tagged the question, and user B deleted the question, it might
leave the tags behind.

This fixes the issue by deleting tags regardless of the user, and adds
an upgrade step to find and remove orphaned tag instances.
2026-01-09 10:40:00 +00:00
Tasio 6ea9dd2a6f MDL-87437 course: Make course cached image entries domain-agnostic 2026-01-09 10:03:28 +01:00
Yusuf Wibisono 60f0ff96e7 MDL-87527 admin: New installs enable email login by default 2026-01-09 14:59:08 +07:00
Luca Bösch e2219115a2 MDL-87229 course: Show nice "Other users" table in courses. 2026-01-09 07:12:31 +01:00
Jayce Birrell 0d0c807c76 MDL-50364 forms: calendar header renderer uses translated months 2026-01-09 13:51:19 +10:30
Angelia Dela Cruz 94bfa9818c MDL-87088 core_grades: Behat to view grades from user menu 2026-01-09 10:01:51 +08:00
Huong Nguyen 09590d30cf weekly release 5.2dev 2026-01-09 08:40:59 +07:00
Huong Nguyen b832ab28ee NOBUG: Add upgrade notes 2026-01-09 08:40:58 +07:00
Huong Nguyen 39ab96ceef Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2026-01-09 08:40:32 +07:00
Christian Abila d55df9ae55 MDL-51152 Enrolments: clarify web service 2026-01-08 09:26:20 +01:00
Christian Abila 04e3e64c4a MDL-51152 Enrolments: remove unused parameter roleid 2026-01-08 09:26:20 +01:00
Jun Pataleta 9056401227 MDL-85535 forum: Render discussion navigation at the bottom only 2026-01-08 10:44:51 +08:00
Jun Pataleta 192e37d0f0 MDL-85535 forum: Label discussion navigation 2026-01-08 10:44:50 +08:00
Marty d043577a4e MDL-86423 mod_assign: Reduce duesoon/overdue notifications.
Students shouldn't receive overdue notifications if there is nothing to
submit in Moodle.

Students shouldn't receive due soon notifications if they a) already
have a grade or b) meet activity completion status.
2026-01-07 12:26:40 -05:00
Paul Holden 156c6f69ac MDL-87120 course: observe activity dates display in course requests.
Upgrade step to ensure the default value for this field in the schema
matches the default value used in the interface itself.
2026-01-07 16:43:16 +00:00
Paul Holden ae4ab447c9 MDL-87608 javascript: fix public paths in generated jsconfig file.
This partly reverts changes from 31335206, removing the double public/
directory component of the file paths.
2026-01-07 14:30:37 +00:00
Mikel Martín 31756634e5 MDL-87444 reportbuilder: Fix button icons UI 2026-01-07 08:17:38 +01:00
Mikel Martín 07fd45ea21 MDL-87444 core: Add 'extraclasses' param to drag_handle
Add new 'extraclasses' parameter to drag_handle template. That will help
to customise the button sizing and extra styles.
2026-01-07 08:17:38 +01:00
Mikel Martín baf15e001f MDL-87444 theme_boost: Adjust icon sizes
The iconsizes map value `1` was extremely small and unusable, so values `1` and `2` have been
updated to provide usable icon sizes in the UI.
2026-01-07 08:16:59 +01:00
Safat dd50e326bd Merge branch 'MDL-87406-main' of https://github.com/ericmerrill/moodle 2026-01-07 16:27:09 +11:00
Safat f02c4b8d06 Merge branch 'MDL-67733-main' of https://github.com/HuongNV13/moodle 2026-01-07 16:15:39 +11:00
Andrew Nicols 2b9b2f42e7 Merge branch 'MDL-82284-main' of https://github.com/meirzamoodle/moodle 2026-01-07 13:07:41 +08:00
Jun Pataleta 2a8357c709 Merge branch 'MDL-86436-navigation-accessibility-page-heading-menu-visible-on-larger-screens-even-if-empty' of https://github.com/stopfstedt/moodle 2026-01-07 11:18:18 +08:00
Jun Pataleta 39dc81abdd Merge branch 'MDL-87416-glossary-entry-page-title-missing' of https://github.com/stopfstedt/moodle 2026-01-07 11:14:05 +08:00
Santosh Nagargoje 383f7dd38e MDL-83984 core: Fixed subpanel show/hide issue 2026-01-06 16:21:41 +05:30
Martin Gauk 096512f52c MDL-86342 mod_assign: Allow subplugins to backup data at activity-level 2026-01-06 11:29:40 +01:00
Muhammad Arnaldo a1da81ae33 MDL-86346 core: update the use of ArrayLoader namespace
The Mustache library just got updated to version 3 recently.
The changes include update to psr-4. Hence, we update
the call to the class ArrayLoader.
2026-01-06 08:54:45 +07:00
Adrian Greeve 491debdeaa Merge branch 'MDL-87526-main' of https://github.com/andrewnicols/moodle 2026-01-06 09:04:49 +08:00
Stefan Topfstedt 9ffeee1892 MDL-87416 glossary: set page title on glossary entry details page. 2026-01-05 11:28:51 -08:00
Mark Johnson 8209e0581b MDL-85431 questions: Fix access checks on Question banks page
Users who could not manage activities on a course, but did have
permission to access particular question banks, could not access the
Question banks page.

This modifies the permission checks on that page to allow access if the
user can either manage activities, or has access to at least one
activity that publishes questions. Some additional changes to the output
were required to prevent non-editing users adding banks.

It also modifies the navigation hook to add the Question banks
navigation node if the user can access any activitiy that publishes
questions on the course. This is all based on cached modinfo and
permissions data so should remain performant.
2026-01-05 15:19:45 +00:00
Paul Holden 6a8b6c9a3d Merge branch 'MDL-87529' of https://github.com/yerairogo/moodle 2026-01-05 14:24:30 +00:00
Paul Holden 491941a090 MDL-87251 tool_uploadcourse: update scenarios for self-enrol title. 2026-01-05 10:09:25 +00:00
Paul Holden 30b3dbb0c4 Merge branch 'MDL-87251-main' of https://github.com/roland04/moodle 2026-01-05 09:59:59 +00:00
Paul Holden c5bcb0b084 Merge branch 'MDL-87288-main' of https://github.com/ilyatregubov/moodle 2026-01-05 09:46:51 +00:00
AMOS bot 7e1cb8e002 Automatically generated installer lang files 2026-01-03 00:08:09 +00:00
Mark Johnson 3d5e54f7b4 MDL-73602 questions: Remove qtype_random 2026-01-02 15:37:54 +00:00
Mark Johnson fe29d48b87 MDL-73602 quiz: Remove all qtype_random references
This removes the use of the "random" qtype for random questions from the
quiz module. Instead, the quiz structure now idenfies slots containing
random questions using a `random` boolean field on the slot.

This includes some amendments to statistics classes in the core_question
namespace, as they ultimately get their question data from
mod/quiz/report/reportlib.php

It also introduces a proper (if limited) way to add random questions in
behat tests.
2026-01-02 15:37:53 +00:00
Mark Johnson 0b5311c2dc MDL-73602 quiz: Restore random tag filters to new format
As we are now creating set references using the modern filtercondition
format, this ensures legacy tag filters are also converted directly to
the new format.

We no longer need the tag name as part of this, only the ID, so we have
factored the name out of `process_quiz_slot_tags`.
2026-01-02 15:37:53 +00:00
Andrew Nicols fc137eaa39 MDL-82284 core: Remove all PHP5 constructors 2026-01-01 05:20:12 +07:00
meirzamoodle 2e3c8a0915 MDL-87423 core: Remove the deprecated functions 2025-12-31 15:54:12 +07:00
James C 45761788de MDL-85530 course: Improve PHPDoc types for course format code 2025-12-30 19:40:00 +13:00
James C d21b833ef7 MDL-86959 course: Improve PHPDoc types for course code 2025-12-30 19:39:22 +13:00
Sara Arjona 17cc7848c7 Merge branch 'MDL-87280-main' of https://github.com/sarjona/moodle 2025-12-29 14:51:30 +01:00
Huong Nguyen d8b9d49c56 Merge branch 'MDL-81882-main' of https://github.com/yusufwib01/moodle 2025-12-29 13:51:34 +07:00
Huong Nguyen ab65b85635 Merge branch 'MDL-86346-main' of https://github.com/muhammadarnaldo/moodle 2025-12-29 13:45:41 +07:00
Matt Porritt 7231409e83 MDL-84862 AI: Stop provider instance creataion when no provider plugins
Prevents calls to action to create an AI provider instance from
being displayed to users when there are no AI provider plugins
installed in the instance.

Co-Authored-By: Yusuf Wibisono <yusuf.wibisono@moodle.com>
2025-12-29 11:59:46 +07:00
Muhammad Arnaldo 6084cfef71 MDL-86346 lib: Update mustache helper after upgrade
- Update component file, moved mustache from psr-0 to psr-4 section
- Update mustache helpers
- Update mustache related tests
2025-12-29 10:38:28 +07:00
Huong Nguyen e0d2bbf031 Merge branch 'MDL-87433-main' of https://github.com/muhammadarnaldo/moodle 2025-12-29 09:54:25 +07:00
AMOS bot 4ecc0c8e1a Automatically generated installer lang files 2025-12-27 00:08:11 +00:00
AMOS bot f50dd14bcc Automatically generated installer lang files 2025-12-26 00:08:07 +00:00
Muhammad Arnaldo e8f04c19a3 MDL-87433 course: Add sorting to get_nearest_editable_subcategory
Add ORDER BY to the query to ensure categories are returned in
consistent order. This fixes random test failures, especially
on PostgreSQL.
2025-12-24 15:47:54 +07:00
Mark Johnson 508cfc8619 MDL-73602 questions: Prevent restore of qtype_random questions
This completely removes the step of creating a question with qtype
'random' during the restore process.

Previously, we would create the question bank entry, question version
and question record, then rely on the activity using it to convert it to
a question set reference and delete it. If the activity was never
restored, the question remained in the database.

Now, we store the random question data in a temporary record. The
activity still converts this to a set reference, and now directly to the
new filter condition format. The temporary record will automatically be
cleaned up after the restore.

If the restore process attempts to create a question record with qtype
'random', this will now throw a coding exception as this must never
happen.
2025-12-23 15:29:04 +00:00
Yerai Rodríguez e154ee2811 MDL-87529 core_customfield: reset CF handler cache after form save 2025-12-23 14:00:05 +01:00
Alex Keel e07faa1a53 MDL-86869 gradereport_singleview: Raises memory limit 2025-12-23 12:28:35 +00:00
Amaia Anabitarte 5bf075b391 Merge branch 'MDL-87279-main' of https://github.com/sarjona/moodle 2025-12-23 11:37:53 +01:00
Mihail Geshoski 79d09f28d0 Merge branch 'MDL-84987_main' of https://github.com/marxjohnson/moodle 2025-12-23 16:58:28 +08:00
Mihail Geshoski 87b803cd60 Merge branch 'MDL-85649_main' of https://github.com/marxjohnson/moodle 2025-12-23 16:51:33 +08:00
Mihail Geshoski 138a1f86f8 Merge branch 'MDL-86995-main' of https://github.com/sh-csg/moodle 2025-12-23 16:46:57 +08:00
Mihail Geshoski 3ea18f4297 Merge branch 'MDL-86798_main' of https://github.com/marxjohnson/moodle 2025-12-23 16:09:28 +08:00
Sara Arjona 0f1b23a54b MDL-87280 subsection: Add task to remove existing descriptions 2025-12-23 07:00:36 +01:00
Sara Arjona b00d5a4830 MDL-87279 course: Remove edit description for delegated sections 2025-12-23 07:00:11 +01:00
Sara Arjona 8b603fae41 Merge branch 'MDL-83115-main' of https://github.com/aanabit/moodle 2025-12-23 06:48:42 +01:00
Andrew Nicols 640008e531 MDL-87526 core: Moodle provides moodle/lms 2025-12-23 11:45:09 +08:00
Mark Johnson f51651bbd3 MDL-85649 questions: Show question count in the question banks page
This displays a badge next to each question bank with a count of the
question it contains. The counts are loaded asynchrnously to avoid
adding extra queries to the page load.
2025-12-22 15:01:32 +00:00
Amaia Anabitarte cb561feec1 MDL-83115 course_format: Improve format does not support sections error 2025-12-22 15:47:52 +01:00
Laurent David cefc1f0166 MDL-86854 core_course: refactor moveto_module other usages 2025-12-22 11:56:55 +01:00
Laurent David d5f97d42d2 MDL-86854 core_courseformat: cm_move to use cmactions methods 2025-12-22 11:56:50 +01:00
Laurent David cc388b83d2 MDL-86854 core_courseformat: Add move_before logic by cmactions 2025-12-22 11:56:45 +01:00
Stefan Hanauska 498293e266 MDL-86995 mod_forum: Allow ignoring maxeditingtime for qanda forum 2025-12-22 07:32:19 +01:00
Mark Johnson 50375fed8d MDL-86798 questions: Check original context is on the same site
When checking if the original context exists during a restore, we need
to check that we're looking at the context on the same site, not one on
a different site that happens to have the same ID.
2025-12-19 09:45:28 +00:00
Mark Johnson c25d5fd063 MDL-86798 questions: Track next version for question bank entries
This adds a new "nextversion" field to `question_bank_entries` to track
which version number the next version of the question should have. This
ensures that version numbers are not re-used if the latest version is
deleted.

To use this field, you must call
`\core_question\versions::get_next_version()`. This will initialise the
field to the correct value if it is currently null.

If you create a new version using this value, you must then call
`\core_question\versions::increment_next_version()` to increment the
counter.
2025-12-19 09:45:27 +00:00
Mark Johnson 52db66247d MDL-86798 questions: Restore backups containing deleted versions
If the latest version of a question is deleted, and then a new one
created, the new one will currently re-use the version number of the
deleted version. If the original version was backed up before it was
deleted, then restored later, we end up with two questions in one
question bank entry that have the same version.

To resolve this, when restoring a question, we check if there is already
a version with the same version number, then bump it and any higher
versions up by 1. We also check for any references specifically using
these versions and bump those up by 1. Any references using "always
latest" will be fine, as the latest version will still be the latest.

Additionally, if deleting a version made it hidden, and the backup
contains the same version in "ready" state, restoring the backup will
restore it to "ready" state.
2025-12-19 09:43:47 +00:00
Huong Nguyen 8316779bd9 weekly release 5.2dev 2025-12-19 09:03:57 +07:00
Huong Nguyen 457e397ce0 NOBUG: Add upgrade notes 2025-12-19 09:03:57 +07:00
Mark Johnson 995e4f0afa MDL-84987 qbank_managecategories: In-place editing of category names
Implement an inplace_editable widget for category names.

Currently, category names in the Edit categories interface are a link to
the questions in that category. This reduces that link so it only
applies to the question count, and replaces the static category name
with an inplace_editable widget.

As this is within a reactive component, and the category name is used
elsewhere for things like building the "Move category" modal, once the
inplace_editable returns a successful update we also update the category
name in the state.

The category component now listens for updates to the name in the state,
and updates the `data-categoryname` attribute in the DOM element. As
well as being triggered by the new inplace_editable, this is also
triggered when the name is edited in the modal editing form.
2025-12-18 15:40:34 +00:00
Ilya Tregubov 5cfdbb85fd MDL-87288 output: Fix pagination in small containers. 2025-12-18 09:36:06 +01:00
Huong Nguyen ba2ebe0557 Merge branch 'MDL-87340-main' of https://github.com/lameze/moodle 2025-12-18 11:44:02 +08:00
Huong Nguyen 58f50c519c Merge branch 'MDL-86420-main' of https://github.com/muhammadarnaldo/moodle 2025-12-18 11:44:02 +08:00
Huong Nguyen d24ba5429f Merge branch 'MDL-86086-main' of https://github.com/andimendunia/moodle 2025-12-18 11:44:02 +08:00
Adrian Greeve 4950a972e7 Merge branch 'MDL-87461-main' of https://github.com/andrewnicols/moodle 2025-12-18 11:44:02 +08:00
Huong Nguyen 7adc1424b1 Merge branch 'MDL-87094-main' of https://github.com/andelacruz/moodle 2025-12-18 11:44:02 +08:00
Mihail Geshoski b6924dda27 Merge branch 'MDL-86916-main' of https://github.com/durenadev/moodle 2025-12-18 11:44:02 +08:00
Mihail Geshoski 8dc2817dcf Merge branch 'MDL-82639-main' of https://github.com/cameron1729/moodle 2025-12-18 11:44:02 +08:00
Mihail Geshoski 6a9fe41326 Merge branch 'MDL-72833_main' of https://github.com/marxjohnson/moodle 2025-12-18 11:44:02 +08:00
Andi Permana 69fe5d0129 MDL-86086 theme_boost: Add visual distinction for readonly form inputs 2025-12-17 19:06:29 +07:00
Juan Segarra Montesinos ea1a7cd7c4 MDL-87479 mod_glossary: Manage entries from the showentry page 2025-12-17 08:13:39 +01:00
Mihail Geshoski 76b1fb93aa Merge branch 'MDL-86416-main' of https://github.com/junpataleta/moodle 2025-12-17 12:13:52 +08:00
Huong Nguyen e873d7cb52 MDL-67733 repository_youtube: Use new Google API Client integration 2025-12-17 07:44:46 +07:00
Huong Nguyen 6be7a552ce MDL-67733 core: Add Google API Client integration for Moodle 2025-12-17 07:44:46 +07:00
Huong Nguyen 8d1b8e6d15 MDL-67733 core: Add new libs to namespace 2025-12-17 07:44:45 +07:00
Huong Nguyen e1d5796c11 MDL-67733 core: Include Google PHP API Client Services 2025-12-17 07:44:45 +07:00
Huong Nguyen 08434d6fde MDL-67733 core: Include Google Auth Library for PHP 2025-12-17 07:44:42 +07:00
Huong Nguyen 6be3698476 MDL-67733 core: Include Google APIs version 2 2025-12-17 07:44:42 +07:00
Paul Holden 5a25aada32 MDL-85300 output: ensure Bootstrap tooltips load for dynamic content.
Prior to this change, tooltips would only load for elements in the
initial page DOM without considering those elements subsequently added
dynamically (e.g. via AJAX).

Co-authored-by: Sebastian Gundersen <sebastian@sgundersen.com>
2025-12-16 13:26:10 +00:00
Amaia Anabitarte 2230e39159 Merge branch 'MDL-87276-main' of https://github.com/sarjona/moodle 2025-12-16 12:09:18 +01:00
Andrew Nicols 306275330f MDL-87461 core: Hide diffs for composer.lock 2025-12-16 14:53:57 +08:00
Andrew Nicols c2ada1e080 MDL-87461 core: Update composer lock file 2025-12-16 14:53:56 +08:00
Andrew Nicols 11bab06052 MDL-87461 core: Add Composer config to indicate the use of public dir 2025-12-16 14:53:55 +08:00
Huong Nguyen b09c988ead MDL-67733 core: Include PSR-6/Caching Interface 2025-12-16 11:07:37 +07:00
Huong Nguyen 5f549369ab MDL-67733 core: Include Monolog 2025-12-16 11:07:37 +07:00
Alex Keel d619826d20 MDL-86869 gradereport_singleview: Lower the max per page limit 2025-12-15 15:12:00 +00:00
Amaia Anabitarte d67a0bfa6f Merge branch 'MDL-87436-main' of https://github.com/laurentdavid/moodle 2025-12-15 13:39:54 +01:00
Mark Johnson 85970d91bf MDL-72833 quiz: Respect locale in maxmark setting
Editing maxmarks in quiz slots was not respecting the decimal separator
from the set language's locale, meaning if your language formats numbers
like 1,10 editing didn't work correctly.

This sets the correct parameter to ensure the locale is respected.
2025-12-15 11:47:55 +00:00
Sara Arjona 5e34c6635f MDL-87276 course: Display course subsections inline
This patch:
- Updates subsection navigation links, replacing them with the
relevant anchor on the main section page.
- Removes the View action from the subsection menu in edit mode,
as there is no longer a separate page to view.
- Displays subsections inline always (even when 'Show one section
per page' is defined).
- Descriptions are no longer shown for delegated sections.
2025-12-15 12:36:45 +01:00
Jun Pataleta 8ef8fb82f7 Merge branch 'MDL-87341_main' of https://github.com/TomoTsuyuki/moodle 2025-12-15 18:48:49 +08:00
Laurent David c9b9ac7624 MDL-87436 core_courseformat: Fix id collision when testing
* When testing using phpunit/sqlsrv the ids of sections and cm are colliding
so we need to make sure we separate them as a reference to a cm can be the
same as a reference to a section
2025-12-15 07:08:21 +01:00
Angelia Dela Cruz 230d4976db MDL-87094 core_course: Behat to restrict available activities/resources 2025-12-15 11:58:29 +08:00
Huong Nguyen f12a4836fd Merge branch 'MDL-87034-main' of https://github.com/jleyva/moodle 2025-12-15 09:03:32 +07:00
Andrew Nicols 33bc7ea566 MDL-87461 core: Update Composer type to moodle-core 2025-12-15 10:01:13 +08:00
Huong Nguyen 5be9d36cfc Merge branch 'MDL-86638-main' of https://github.com/josepico01/moodle 2025-12-15 08:58:07 +07:00
Huong Nguyen 72e0a8924b Merge branch 'main_MDL-73396' of https://github.com/niko-hoogeveen/moodle 2025-12-15 08:55:30 +07:00
Huong Nguyen 2151750577 Merge branch 'MDL-86679-main' of https://github.com/andimendunia/moodle 2025-12-15 08:45:22 +07:00
Tomo Tsuyuki 530ce658ef MDL-87341 javascript: Fix aria label issue for navigation bar 2025-12-15 10:16:09 +11:00
Cameron Ball 1c293fec24 MDL-82639 mod_quiz: Improve events for random questions 2025-12-13 11:58:48 +08:00
Cameron Ball d4c1bf260a MDL-82639 mod_quiz: Refactor random filter update 2025-12-13 11:58:48 +08:00
Stefan Topfstedt 1a106d367a MDL-86436 navigation: hide empty page heading menu.
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-12-12 18:06:37 -08:00
Stefan Topfstedt 2bffcbfc9a MDL-87415 profile: set page title when accessed as guest user. 2025-12-12 13:41:52 -08:00
Philipp Memmel ff10608035 MDL-79221 core_grade: Fix fetching context for disabled mod plugins
Activity plugins that are disabled on the site are not included in
the modinfo cache. That's why their context must not be fetched via
modinfo cache.
2025-12-12 06:41:23 +01:00
Philipp Memmel cc3645f51d MDL-79221 core_completion: Do not update state for disabled plugins 2025-12-12 06:41:04 +01:00
Shamim Rezaie 5cf0c68c51 weekly release 5.2dev 2025-12-12 14:05:57 +11:00
Shamim Rezaie a948fc5ee2 NOBUG: Add upgrade notes 2025-12-12 14:05:57 +11:00
Shamim Rezaie d9b1e3aa52 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-12-12 14:05:44 +11:00
Mihail Geshoski 2e0a5a6fa7 MDL-87412 qbank_managecategories: Use single quotes in scenario name 2025-12-12 09:43:38 +07:00
Huong Nguyen 52f2093329 Merge branch 'MDL-86699' of https://github.com/paulholden/moodle 2025-12-12 09:43:38 +07:00
Huong Nguyen 8bd7cd444f Merge branch 'MDL-86997' of https://github.com/paulholden/moodle 2025-12-12 09:43:38 +07:00
Huong Nguyen 5c43bd7790 Merge branch 'MDL-87000' of https://github.com/paulholden/moodle 2025-12-12 09:43:38 +07:00
Huong Nguyen 604a1442db Merge branch 'MDL-84736-main' of https://github.com/lameze/moodle 2025-12-12 09:43:38 +07:00
Huong Nguyen 7d17c61df2 Merge branch 'MDL-86830-main' of https://github.com/andimendunia/moodle 2025-12-12 09:43:38 +07:00
Huong Nguyen 1e86416ed7 Merge branch 'MDL-86808-main' of https://github.com/muhammadarnaldo/moodle 2025-12-12 09:43:38 +07:00
Mihail Geshoski ea8b01957b Merge branch 'MDL-87182-main' of https://github.com/srobotta/moodle 2025-12-12 09:43:38 +07:00
Mihail Geshoski e5517e2617 Merge branch 'MDL-87121_master' of https://github.com/santoshndev/moodle 2025-12-12 09:43:38 +07:00
Mihail Geshoski f19f7d3a22 Merge branch 'MDL-87412_main' of https://github.com/marxjohnson/moodle 2025-12-12 09:43:38 +07:00
Mihail Geshoski 3b88a6eba9 Merge branch 'MDL-87142-main' of https://github.com/lucaboesch/moodle 2025-12-12 09:43:38 +07:00
Jun Pataleta df0e9221e7 Merge branch 'MDL-86807-main' of https://github.com/muhammadarnaldo/moodle 2025-12-12 09:43:37 +07:00
Jun Pataleta 36860ddb4a Merge branch 'MDL-86805-main' of https://github.com/andimendunia/moodle 2025-12-12 09:43:37 +07:00
Mihail Geshoski 1129e683aa MDL-87356 qtype_random: Bump version 2025-12-12 09:43:37 +07:00
Huong Nguyen 7405008d67 Merge branch 'MDL-85336-redis-read-timeout' of https://github.com/bwalkerl/moodle 2025-12-12 09:43:37 +07:00
Huong Nguyen f3a307bc09 Merge branch 'MDL-61588-main' of https://github.com/nvhai248/moodle 2025-12-12 09:43:37 +07:00
Huong Nguyen fb23a0d5bb Merge branch 'MDL-87329-main' of https://github.com/jleyva/moodle 2025-12-12 09:43:37 +07:00
Huong Nguyen f2c4fdc54d Merge branch 'MDL-86593-main' of https://github.com/christianabila/moodle 2025-12-12 09:43:37 +07:00
Juan Leyva 459ad05ea2 MDL-87034 hub: Reset hub registration caches during tests 2025-12-11 09:01:46 +01:00
Juan Leyva 475fea4b46 MDL-87034 webservice: Return additional info for the app. 2025-12-11 09:01:46 +01:00
AMOS bot b34454ba8d Automatically generated installer lang files 2025-12-11 00:08:13 +00:00
Niko Hoogeveen 455298bf61 MDL-73396 auth_oauth2: link non-suspended account on oauth login
Added checks to link non-suspended user accounts to OAuth2, when logging
in. Also added an additional check to prevent users from using OAuth2
to login if their account is suspended in Moodle.
2025-12-10 14:24:08 -05:00
Niko Hoogeveen 801ba01026 MDL-73396 core_user: prioritize active users when retrieving by email
Updated get_users_by_email() to return active users at the
start of the returned array, suspended users last.
2025-12-10 14:23:59 -05:00
Muhammad Arnaldo ae46e41717 MDL-86420 enrol_database: avoid duplicate key violations 2025-12-10 14:53:28 +07:00
Simey Lameze f2bdb3ff23 MDL-84736 behat: add custom step to edit a criterion
This commit also improves the existing tests and add a new scenario to
verify the 'Do not mark for regrade' behavior.
2025-12-09 17:20:43 +08:00
Angelia Dela Cruz e5be425a9a MDL-84736 gradingform : Behat for editing guide with graded submissions 2025-12-09 17:18:33 +08:00
Stefan Topfstedt 12968cd829 MDL-86416 navigation: Render the more menu only when it's not empty
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-12-09 11:17:10 +08:00
Huong Nguyen 38a800d4b9 Merge branch 'MDL-87379_master' of https://github.com/santoshndev/moodle 2025-12-09 09:28:11 +07:00
Mihail Geshoski 66ebc2519b Merge branch 'MDL-82281-main' of https://github.com/lucaboesch/moodle 2025-12-09 09:44:50 +08:00
Mihail Geshoski 41326b277d Merge branch 'MDL-86677-main' of https://github.com/lucaboesch/moodle 2025-12-09 09:27:14 +08:00
Simey Lameze df5878173f MDL-87340 mod_quiz: make test_question_shuffle more robust
This commit improves test_question_shuffle by retrying if questions
remains in the same order after shuffling.
2025-12-09 07:33:13 +08:00
Stephan Robotta 27eec2d364 MDL-87182 quiz: no CBM metric when no data available 2025-12-08 08:46:09 +01:00
Muhammad Arnaldo ddb44b6299 MDL-86807 core_courseformat: RTL chevron in move activity modal 2025-12-08 11:29:41 +07:00
nvhai248 9de8a17280 MDL-61588 filepicker: improve the message if you upload the wrong type 2025-12-08 04:06:06 +00:00
Andi Permana da5a9734a4 MDL-86830 calendar: Fix double encoding in event title attributes 2025-12-08 10:30:33 +07:00
Benjamin Walker 838ec4527c MDL-85336 redis: Split connection and read timeouts 2025-12-08 09:06:27 +10:00
Benjamin Walker 989b236bc8 MDL-85336 cachestore_redis: Split connection and read timeouts 2025-12-08 09:06:27 +10:00
Benjamin Walker d018536312 MDL-85336 redis: Support floats in connection timeout 2025-12-08 09:06:27 +10:00
Benjamin Walker fcb3f1de83 MDL-85336 cachestore_redis: Support floats in connection timeout 2025-12-08 09:06:27 +10:00
Andi Permana c7ba724a46 MDL-86805 courseindex: Fix RTL keyboard navigation in tree 2025-12-06 01:09:12 +07:00
Mark Johnson dc63626520 MDL-87412 qbank_managecategories: Fix "new child" drop target
This fixes the CSS rule that reveals the "as new child of" drop target
shown when dragging a category over another category which has no
children.

We can't behat test the actual drag-drop reordering behaviour with behat
as reactive DragDrop components aren't testable, but we can trigger the
CSS to add a regression test for the drop target's appearance.
2025-12-05 14:10:09 +00:00
Luca Bösch ef4b3d2d6c MDL-82281 quiz: Amend test to circumvent modinfo cache fails. 2025-12-05 11:32:34 +01:00
Santosh Nagargoje 8dd359d1c9 MDL-87379 theme_classic: Fixed mobile responsiveness issue 2025-12-05 15:48:21 +05:30
Daniel Ureña 29d67a6659 MDL-86916 mod_quiz: fix to show overall feedback when marks hidden 2025-12-05 10:59:08 +01:00
Muhammad Arnaldo d9bfe0d83d MDL-86808 theme_boost: misaligned footer popover in RTL
Limit the fallback placement vertically.
2025-12-05 15:53:04 +07:00
Luca Bösch beb4fbd810 MDL-87142 question: dropdown-toggle class for question format select 2025-12-05 08:43:42 +01:00
Luca Bösch 07a58d1f90 MDL-86677 mod_quiz: let the summary of attempt table be striped 2025-12-05 08:42:53 +01:00
Andi Permana 8e0409ca46 MDL-86679 core: Fix MS field mappings in upgrade script 2025-12-05 14:17:12 +07:00
Andi Permana f204a23f63 MDL-86679 oauth2: Support MS personal and work account names 2025-12-05 14:06:56 +07:00
Eric Merrill 4c8dc6a95e MDL-87406 customfield: Use recordset for processing upgrade 2025-12-04 23:56:17 -05:00
Huong Nguyen d58091724b weekly release 5.2dev 2025-12-05 08:08:13 +07:00
Huong Nguyen b27f4f68f3 NOBUG: Add upgrade notes 2025-12-05 08:08:13 +07:00
Huong Nguyen 5a367148f4 NOBUG: Fixed SVG browser compatibility 2025-12-05 08:07:58 +07:00
Huong Nguyen 4e5b9f6501 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-12-05 08:07:57 +07:00
Paul Holden a3996db063 MDL-86699 mod_forum: use course category/module entities in report.
Enhance, and set benchmark for other course module reports in, the
forum custom report source by including category and module data.
2025-12-04 15:07:46 +00:00
Paul Holden 9529a59a91 MDL-86699 reportbuilder: new entities for obtaining course modules data.
These entities are intended to be used/extended in reports specific to
course module data (forums, assignments, etc), in order to provide a
baseline in terms of module reporting and API usage.
2025-12-04 15:05:56 +00:00
Huong Nguyen ae1ece9626 MDL-81304 Performance: Add notes for CTE 2025-12-04 21:11:29 +07:00
Adrian Greeve bf5647fd39 Merge branch 'MDL-86665-main' of https://github.com/andrewnicols/moodle 2025-12-04 20:57:32 +07:00
Huong Nguyen 575562ee6f Merge branch 'MDL-87068-main' of https://github.com/lameze/moodle 2025-12-04 20:57:32 +07:00
Santosh Nagargoje c8c6a29f20 MDL-87121 quiz: Fixed random question performance issue 2025-12-04 17:24:30 +05:30
Christian Abila 950e11e77b MDL-86593 Course completion: Disabled modules not returned as criteria
- Filter out disabled modules
- Update get_criteria method signature
- Fix code style
2025-12-04 07:02:45 +01:00
Angelia Dela Cruz 8d4b31bcd6 MDL-87068 contentbank_h5p: Behat for restoring course contentbank 2025-12-04 10:32:36 +08:00
Huong Nguyen fe68fbacad Merge branch 'MDL-83485-main' of https://github.com/junpataleta/moodle 2025-12-04 09:18:52 +07:00
Huong Nguyen 274a0d7163 Merge branch 'MDL-82232-main' of https://github.com/junpataleta/moodle 2025-12-04 09:12:53 +07:00
Huong Nguyen aa66bacd07 MDL-72744 table: Improve PHPUnit test 2025-12-04 08:56:14 +07:00
David Woloszyn 29820c5ff4 MDL-72744 core_grades: Escape formulas when exporting spreadsheets 2025-12-04 08:56:14 +07:00
David Woloszyn dc57ccc491 MDL-72744 dataformat: Escape formulas when exporting spreadsheets
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2025-12-04 08:56:14 +07:00
Mihail Geshoski 6e3ff5e229 Merge branch 'MDL-85534-main' of https://github.com/junpataleta/moodle 2025-12-04 09:44:16 +08:00
Huong Nguyen 8d77f8350f MDL-86087 core: Use correct required version 2025-12-04 08:35:37 +07:00
Mihail Geshoski bbaac38b19 Merge branch 'MDL-87299-main' of https://github.com/lucaboesch/moodle 2025-12-04 09:21:19 +08:00
Mihail Geshoski 8f53157f04 Merge branch 'MDL-87245-main' of https://github.com/junpataleta/moodle 2025-12-03 23:48:40 +08:00
Mihail Geshoski 352bd4fb49 Merge branch 'main_MDL-81304' of https://github.com/mattporritt/moodle 2025-12-03 23:36:53 +08:00
Jun Pataleta 0e8dc9656b MDL-87245 scorm: Indicate when the SCORM package opens in a new window 2025-12-03 23:35:46 +08:00
Mihail Geshoski 32b37d1ed2 Merge branch 'MDL-85858-main' of https://github.com/junpataleta/moodle 2025-12-03 23:27:25 +08:00
Amaia Anabitarte 0f1c80870a Merge branch 'MDL-87117-main' of https://github.com/sarjona/moodle 2025-12-03 14:06:11 +01:00
Muhammad Arnaldo 218e06965b MDL-86346 lib: Upgrade Mustache to v3.0.0
Major upgrade for Mustache library from version 2.14.2 to 3.0.0
2025-12-03 16:56:39 +07:00
Jun Pataleta 90b3031585 MDL-85534 forum: Set appropriate heading levels for the discussion page 2025-12-03 17:32:21 +08:00
Huong Nguyen 57b3c85b27 Merge branch 'MDL-87091-main' of https://github.com/lameze/moodle 2025-12-03 16:11:15 +07:00
mioyu-ubiq c2b15b076e MDL-87091 behat: Test authloginviaemail setting behavior 2025-12-03 15:54:02 +08:00
Huong Nguyen 8a9c14cdfd MDL-86087 gha: Bump versions for Web Installer 2025-12-03 14:25:31 +07:00
Huong Nguyen 1e7ff52667 MDL-87353 core: Safer unserializing of file references 2025-12-03 14:15:59 +08:00
Jun Pataleta 5d10b2a07f Merge branch 'MDL-86087-main' of https://github.com/HuongNV13/moodle 2025-12-03 14:12:07 +08:00
Stefan Hanauska a308c653ab MDL-86960 mod_glossary: Check user 2025-12-03 13:38:03 +08:00
Stefan Hanauska adc49cf371 MDL-86960 mod_data: Check user 2025-12-03 13:37:52 +08:00
Stefan Hanauska bd0bd01074 MDL-86960 mod_forum: Check user 2025-12-03 13:37:35 +08:00
Huong Nguyen 482a81fab3 Merge branch 'MDL-87339' of https://github.com/paulholden/moodle 2025-12-03 12:14:46 +07:00
Jake Dallimore 62f372e9d8 MDL-87286 enrol_lti: prevent suspended user account auth in legacy LTI 2025-12-03 15:48:19 +11:00
Jake Dallimore c2705e2c18 MDL-87286 auth_lti: prevent suspended user account auth in LTI1p3 2025-12-03 15:48:19 +11:00
Matt Porritt a864082500 MDL-81304 Performance: Improve performance of my courses.
Refactor get_nearest_editable_subcategory to improve performance.

This refactor maintains functionality and signature of
get_nearest_editable_subcategory but improves perofrmance
for varied datasets. This makes rendering of the
my courses page.
2025-12-03 15:41:00 +11:00
raortegar a3063dcaa4 MDL-87267 aiplacement_courseassist: Improve response formatting 2025-12-03 11:15:44 +07:00
Mihail Geshoski ac30e7e193 MDL-82808 assign: Use blindid during submission removal in blind marking 2025-12-03 03:34:22 +00:00
Rajneel Totaram c6cb8d9712 MDL-82808 mod_assign: replace userid with blindid in anonymous marking 2025-12-03 03:34:22 +00:00
David Woloszyn 0c146aa261 MDL-86544 lib: Adjust checks on local URL params 2025-12-03 03:34:22 +00:00
Eric Merrill fa1624c8c9 MDL-80317 auth_oauth2: Restrict login redirect to local url 2025-12-03 03:34:22 +00:00
Stefan Hanauska 0d48779e61 MDL-86507 badge: Check if role is assigned 2025-12-03 03:34:22 +00:00
David Woloszyn c85f153068 MDL-85557 tiny_equation: Sanitise equation preview input 2025-12-03 03:34:22 +00:00
yusufwib01 081650611e MDL-86326 auth: Enhance validation logic in resend_confirmation_email 2025-12-03 03:34:22 +00:00
Huong Nguyen 46b279fa0d Merge branch 'MDL-87168-main' of https://github.com/jleyva/moodle 2025-12-03 10:28:49 +07:00
Huong Nguyen deeacd060b Merge branch 'MDL-86899-main' of https://github.com/crazyserver/moodle 2025-12-03 10:26:20 +07:00
Huong Nguyen 1cdf210418 Merge branch 'MDL-86536-main' of https://github.com/durenadev/moodle 2025-12-03 10:22:21 +07:00
Mihail Geshoski d10c1bd130 Merge branch 'MDL-86749_master' of https://github.com/santoshndev/moodle 2025-12-03 10:58:53 +08:00
Huong Nguyen 2199799b35 Merge branch 'MDL-78442-main' of https://github.com/andimendunia/moodle 2025-12-03 09:55:39 +07:00
Mihail Geshoski 083f627ac2 Merge branch 'MDL-87066_cleanstring_502' of https://github.com/skodak/moodle 2025-12-03 09:46:18 +08:00
AMOS bot d6726806f1 Automatically generated installer lang files 2025-12-03 00:08:13 +00:00
Jun Pataleta 914d8e7102 MDL-82232 behat: Fix breadcrumb navigation on Behat 2025-12-02 18:43:02 +08:00
Juan Leyva 51c361dfcc MDL-87329 tool_mobile: Display mobile subscription info to managers 2025-12-02 10:21:37 +01:00
Andi Permana 89cbc6dc5f MDL-78442 antivirus_clamav: Try SCAN first, then INSTREAM as fallback 2025-12-02 15:30:51 +07:00
Andi Permana 99793be2ab MDL-78442 tool_moodlenet: Fix directory path passed to antivirus scanner 2025-12-02 15:30:51 +07:00
Mihail Geshoski 38a580f49a Merge branch 'MDL-86806-main' of https://github.com/muhammadarnaldo/moodle 2025-12-02 15:08:33 +08:00
Mihail Geshoski bf64704712 Merge branch 'MDL-86523-main_invalidcategoryid' of https://github.com/loewis/moodle 2025-12-02 15:02:24 +08:00
Mihail Geshoski e9829d8f80 Merge branch 'MDL-86844-main' of https://github.com/lucaboesch/moodle 2025-12-02 14:49:38 +08:00
Mihail Geshoski f6de5472b5 Merge branch 'MDL-85405_main' of https://github.com/marxjohnson/moodle 2025-12-02 14:18:52 +08:00
Mihail Geshoski 35994c30f1 Merge branch 'MDL-85334-master' of https://github.com/josepico01/moodle 2025-12-02 14:14:34 +08:00
Huong Nguyen 20cc094c85 Merge branch 'MDL-84898-prohibitjoin' of https://github.com/leonstr/moodle 2025-12-02 10:38:07 +07:00
Huong Nguyen dddd56f672 Merge branch 'MDL-85576-main' of https://github.com/lucaboesch/moodle 2025-12-02 10:34:09 +07:00
Huong Nguyen 0518c971e6 Merge branch 'MDL-86425-main' of https://github.com/sh-csg/moodle 2025-12-02 10:32:24 +07:00
Huong Nguyen 8dc1f02909 Merge branch 'MDL-87218-main-enfix' of https://github.com/mudrd8mz/moodle 2025-12-02 10:30:44 +07:00
Muhammad Arnaldo d07fb0ff61 MDL-86806 core_courseformat: Fix RTL keyboard navigation
Ensure consistent navigation experience across LTR and
RTL interfaces in activity chooser.
2025-12-02 10:07:43 +07:00
AMOS bot b59ac8a117 Automatically generated installer lang files 2025-12-02 00:08:12 +00:00
David Mudrák 4413eb4302 MDL-87218 lang: Use the fixed strings in tests, too 2025-12-01 19:15:15 +01:00
Helen Foster f9c13aa28f MDL-87218 lang: Import fixed English strings (en_fix) 2025-12-01 19:15:15 +01:00
Szymon Karolczuk 0c3393d45a MDL-85498 core_renderer: Multi-lang support for additionalhtmlfooter 2025-12-01 15:10:21 +01:00
Juan Leyva e56bae6ea0 MDL-87168 tool_mobile: Do not send email address to Airnotifier 2025-12-01 14:48:33 +01:00
Jun Pataleta ea12455d61 MDL-82232 core: Change the breadcrumb lang string to Breadcrumb 2025-12-01 19:02:08 +08:00
Sara Arjona 67cc744251 MDL-87117 mod: Update activity descriptions 2025-12-01 10:19:29 +01:00
Sara Arjona 1baacc2be6 MDL-87117 course: Add support in activity chooser to summary and tip 2025-12-01 10:19:29 +01:00
Daniel Ziegenberg 6dc5fbe172 MDL-86462 lib: Upgrade guzzle and friends
- guzzlehttp/guzzle to version 7.10.0
- guzzlehttp/psr7 to version 2.8.0
- guzzlehttp/promises to version 2.3.0
- kevinrob/guzzle-cache-middleware to version 7.0.0

The updates add support for PHP 8.5.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-12-01 09:57:46 +01:00
AMOS bot 6f5a4a3f4d Automatically generated installer lang files 2025-11-30 00:08:17 +00:00
AMOS bot 7c0ec7b54c Automatically generated installer lang files 2025-11-29 00:08:07 +00:00
Jun Pataleta a3f6ec3fb8 MDL-85858 mod_scorm: Fix Table of Contents toggle button's accessibility
* Set proper label via `aria-label`.
* Instead of changing the button's label to 'Show'/'Hide', set the
button's `aria-expanded` attribute accordingly.
* Remove unnecessary event handling for the toggle button when pressing
Enter or Space key. This is already natively supported and triggers
the click event.
* Adjust Behat tests accordingly.
2025-11-28 21:00:35 +08:00
Jun Pataleta 369cb15125 MDL-85858 mod_scorm: Use semantic heading for the Preview mode 2025-11-28 21:00:35 +08:00
Daniel Ureña 75f7075902 MDL-86536 tool_mobile: Add new features supported by app 2025-11-28 11:26:46 +01:00
Luca Bösch 952fdf45ef MDL-86844 qbank: style question bank table as in Moodle 4.5. 2025-11-28 10:40:21 +01:00
Sara Arjona fb206b336c MDL-87117 core: Add i/tip icon 2025-11-28 06:45:54 +01:00
Huong Nguyen 81103b55eb Merge branch 'MDL-86468-main' of https://github.com/muhammadarnaldo/moodle 2025-11-28 09:52:43 +07:00
Jun Pataleta fda49855b8 MDL-85858 mod_scorm: Set page and iframe titles for the SCORM player 2025-11-28 10:22:23 +08:00
Huong Nguyen ba9396de3c MDL-86087 core: Fix PHPUnit 11.5.43+ compatibility
Adjust tests to comply with updated PHPUnit lifecycle behaviour
 - Initialise typed test properties (e.g. core_session memcached test) or make them nullable
 - Add `isset()` checks to avoid accessing properties before initialisation
 - Ensure resetAfterTest() is called before modifying DB or `$USER`
2025-11-28 09:07:15 +07:00
Huong Nguyen a9021e0ac2 MDL-86087 core: Bump versions in moodle_minimum_php_version_is_met() 2025-11-28 09:00:46 +07:00
Huong Nguyen 521a2d478e MDL-86087 core: Bump version in phpcs.xml.dist 2025-11-28 09:00:46 +07:00
Huong Nguyen ab96713105 MDL-86087 gha: Bump versions to the required values
For 5.2:
- Minimum PHP version is bumped to 8.3
- Minimum PostgreSQL version is bumped to 16
2025-11-28 09:00:46 +07:00
Huong Nguyen 6cd11d4a9b MDL-86087 core: Remove upgrade steps from 4.2 and 4.3 2025-11-28 09:00:46 +07:00
Huong Nguyen 900e797570 MDL-86087 core: Update composer.json 2025-11-28 09:00:46 +07:00
Huong Nguyen 103260bbb2 MDL-86087 core: Define environment requirements for Moodle 5.2 2025-11-28 09:00:46 +07:00
AMOS bot e8a2ad8ce0 Automatically generated installer lang files 2025-11-28 00:08:11 +00:00
Paul Holden c75b3722f1 MDL-87339 hook: ensure cache directory present/writeable for use.
Avoids PHP warnings during Behat initialisation:

- file_put_contents(...): Failed to open stream: No such file or directory;
- rename(...): No such file or directory
2025-11-27 19:03:17 +00:00
Paul Holden afc3ce8fff MDL-87323 report_outline: fix report viewed event URL. 2025-11-27 17:22:16 +00:00
Mark Johnson 4014b68a49 MDL-85405 course: Fix indentation and line wrapping 2025-11-27 15:06:27 +00:00
Luca Bösch c5bd7dfe2c MDL-85405 modinfo: Don't show modules without FEATURE_CAN_DISPLAY
Question banks were displaying in places they shouldn't, because
FEATURE_CAN_DISPLAY wasn't fully implemented. This broadens its
usage in the following areas:

- Availability info - Not relevant to qbank. However you could feasibly
have some module which isn't shown to students, but the teacher can
use
  it to track completion, so dont display the link.
- Activities block - links to each activity's index page. We already
have
the Question banks page in the secondary nav. No need to have it here
too.
- Overview report - It doesn't make sense to display question banks
here,
  as they're not an activity students can participate in, they wont have
  dates etc.
- Externallib - Return with candisplay = false. The app needs to handle
  this correctly.
- Visibility options, moodleform_mod, modvisible and visibility
selector.
Not relevant for qbank since it doesn't include the standard
coursemodule
  options, but if an activity with without CAN_DISPLAY did display a
  visibility setting, "Hidden" should be the only option.
- Activity names filter - we dont want automatic links to question
banks.
2025-11-27 15:06:25 +00:00
Petr Skoda ecc5215876 MDL-87066 core: add upgrade note for clean_string() 2025-11-27 14:57:52 +01:00
Petr Skoda 4719994d6d MDL-87066 core: add clean_string() to solve double encoding in Mustache
The idea is to prevent double escaping in s()
and mustache.escape() by using numeric html
entities to sanitise result of format_string(),
get_string() and similar.
2025-11-27 14:57:52 +01:00
Luca Bösch 829d405650 MDL-87299 qtype_match: Remove Bootstrap 5 table borders. 2025-11-27 13:58:59 +01:00
Luca Bösch 2195a490b3 MDL-85576 cli: add noreply email option to cli install. 2025-11-27 13:48:21 +01:00
Mihail Geshoski 52c6473e16 weekly release 5.2dev 2025-11-27 19:39:47 +08:00
Mihail Geshoski c9aa3543d8 NOBUG: Add upgrade notes 2025-11-27 19:39:46 +08:00
Mihail Geshoski 65737f8649 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-11-27 19:39:25 +08:00
Stefan Hanauska 39c786992d MDL-86425 backup: Reset nullcontent flag in xml_writer 2025-11-27 06:13:26 +01:00
Jun Pataleta 523cec694a MDL-83485 core: Add bottom margin on preference links
To meet the WCAG 2.2 Level AA requirement for minimum target size,
we need to add a bit of spacing between the links on the user
preferences page.

More information:
https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html
2025-11-27 11:36:31 +08:00
Jun Pataleta 2afdfa1157 MDL-83485 core: Add accessibility Behat coverage to the preferences page 2025-11-27 11:31:14 +08:00
Andrew Nicols 8ae971f182 Merge branch 'MDL-86255' of https://github.com/paulholden/moodle 2025-11-27 11:10:20 +08:00
Andrew Nicols 878cdc5efe Merge branch 'MDL-86955' of https://github.com/paulholden/moodle 2025-11-27 11:07:24 +08:00
Jun Pataleta 064bef8ee2 Merge branch 'MDL-86351-main' of https://github.com/HuongNV13/moodle 2025-11-27 10:49:39 +08:00
Huong Nguyen 899ef1eb7f MDL-86351 editor_tiny: Upgrade tiny to 8.2.2 2025-11-27 09:32:33 +07:00
Jake Dallimore 3f5cefcc2e Merge branch 'MDL-86840-main' of https://github.com/junpataleta/moodle 2025-11-27 09:40:55 +08:00
Paul Holden 8cb8d3f811 MDL-86988 mod_resource: ensure required library always present.
The `resourcelib` library is explicitly required by the modules
own local library, and neither the add/update methods use it
directly.
2025-11-26 15:09:23 +00:00
Paul Holden cebd007faa MDL-87228 mod_forum: switch lock discussion time to duration element. 2025-11-26 12:55:29 +00:00
Paul Holden 798b2adaa4 MDL-87188 gradereport_grader: prevent overlapping collapsed columns. 2025-11-26 11:38:21 +00:00
Mihail Geshoski 254c3a6e1f Merge branch 'MDL-87259' of https://github.com/x-iy/moodle 2025-11-26 18:01:25 +08:00
Mihail Geshoski 58e21cb6b6 Merge branch 'MDL-86668-main' of https://github.com/lucaboesch/moodle 2025-11-26 17:50:37 +08:00
Mihail Geshoski 56cf7ae227 Merge branch 'MDL-86975' of https://github.com/paulholden/moodle 2025-11-26 17:42:11 +08:00
Mihail Geshoski fbf12fd409 Merge branch 'MDL-87149-main' of https://github.com/junpataleta/moodle 2025-11-26 17:29:07 +08:00
Jun Pataleta 87afa09759 MDL-83485 core: Fix heading level for preferences groups 2025-11-26 11:39:57 +08:00
Jun Pataleta ff21bdc4f4 MDL-83485 core: Render preferences groups as lists 2025-11-26 11:36:41 +08:00
david adamson 4648135548 MDL-87259 course: Correct content item user cache key 2025-11-26 14:30:29 +11:00
Paul Holden 7ccb1eb5e3 Merge branch 'MDL-87046-main' of https://github.com/andrewnicols/moodle into main 2025-11-25 15:25:20 +00:00
Mihail Geshoski a5a9b1cc8b Merge branch 'MDL-87054-main' of https://github.com/bhect0/moodle 2025-11-25 23:08:54 +08:00
Paul Holden 01e20fd327 Merge branch 'MDL-86018-main' of https://github.com/andrewnicols/moodle into main 2025-11-25 14:56:17 +00:00
Paul Holden 079c1e1866 Merge branch 'MDL-85306' of https://github.com/vinod404/moodle into main 2025-11-25 14:44:46 +00:00
Paul Holden c94ea0984d Merge branch 'MDL-87243-main' of https://github.com/roland04/moodle into main 2025-11-25 14:28:02 +00:00
Andrew Nicols b99280b012 Merge branch 'MDL-86656' of https://github.com/paulholden/moodle 2025-11-25 21:12:46 +08:00
Andrew Nicols f47f15d024 Merge branch 'MDL-86419' of https://github.com/paulholden/moodle 2025-11-25 21:06:16 +08:00
Andrew Nicols 71218fdfd6 Merge branch 'MDL-86279' of https://github.com/paulholden/moodle 2025-11-25 21:01:28 +08:00
Andrew Nicols 0b76b6ac98 Merge branch 'MDL-87166' of https://github.com/paulholden/moodle 2025-11-25 20:55:16 +08:00
Andrew Nicols 72bc9b4391 Merge branch 'MDL-86765' of https://github.com/paulholden/moodle 2025-11-25 20:50:19 +08:00
Leon Stringer c487f55e8c MDL-84898 core: Improve prohibit performance
Change the query used to check if a user has a capability but is
assigned a role that prohibits that capability.  This is based on the
query added by Petr Skoda for MDL-57027.
2025-11-25 11:35:39 +00:00
Mikel Martín 3413b09783 MDL-87251 enrol_self: Improve enrolment title display 2025-11-25 08:38:57 +01:00
Huong Nguyen f4da08b136 Merge branch 'MDL-86966' of https://github.com/Chocolate-lightning/moodle 2025-11-25 10:43:47 +07:00
Huong Nguyen 9e0d76c10b Merge branch 'MDL-87017-main-frontpage-block-any-page' of https://github.com/danowar2k/moodle 2025-11-25 10:42:06 +07:00
Huong Nguyen 4301c990c5 Merge branch 'MDL-87194-main' of https://github.com/albertgasset/moodle 2025-11-25 10:39:51 +07:00
Huong Nguyen 8f87e8ccfb Merge branch 'MDL-86161-main' of https://github.com/lucaboesch/moodle 2025-11-25 10:37:59 +07:00
Huong Nguyen d3c4a87e98 Merge branch 'MDL-87031_master' of https://github.com/santoshndev/moodle 2025-11-25 10:35:13 +07:00
Jose Pico 1fa61a78e5 MDL-86638 quiz: Adds debug info to quiz overdue attempt processing
Adds Moodle specific debug information to the overdue quiz attempt processing error logging.
2025-11-25 14:35:06 +11:00
Jun Pataleta 58daea6b85 Merge branch 'MDL-86547-main' of https://github.com/muhammadarnaldo/moodle 2025-11-25 11:10:00 +08:00
Huong Nguyen bbe86a999e Merge branch 'MDL-85930-main' of https://github.com/andimendunia/moodle 2025-11-25 08:51:36 +07:00
Andrew Nicols cee3693c1d MDL-79182 core: Improve upgrade notes for modal deprecation 2025-11-25 09:25:27 +08:00
Andrew Nicols 6f0f243f6a Merge branch 'MDL-79182-main' of https://github.com/stevandoMoodle/moodle 2025-11-25 09:22:30 +08:00
Andrew Nicols 2eae952ea9 Merge branch 'MDL-86745-main-v2' of https://github.com/abgreeve/moodle 2025-11-25 09:18:56 +08:00
Stevani Andolo 3b78700ff4 MDL-79182 core_modal: Removed core/modal_registry and core/modal_factory for final deprecation 2025-11-25 09:13:28 +08:00
Andrew Nicols 687754c4ed Merge branch 'MDL-87072-main' of https://github.com/stevandoMoodle/moodle 2025-11-25 08:04:09 +08:00
Sara Arjona 75c18a3305 Merge branch 'MDL-86861-main' of https://github.com/sarjona/moodle 2025-11-24 18:53:26 +01:00
Sara Arjona 546bb59e19 MDL-86861 course: Replace set_section_visible calls
Calls to set_section_visible have been replaced with
sectionactions::set_visibility.
2025-11-24 18:48:50 +01:00
Sara Arjona 9bf42db5c4 MDL-86861 course: Deprecate set_section_visible 2025-11-24 18:48:50 +01:00
Sara Arjona b456183a5e MDL-86861 courseformat: Add set_visibility to sectionactions 2025-11-24 18:48:50 +01:00
Muhammad Arnaldo 3c2255b105 MDL-86547 theme_boost: Override the code-color
Increase the contrast by overriding the existing code color to match the one on default.scss
2025-11-24 19:20:43 +07:00
Amaia Anabitarte bd86d1f1db Merge branch 'MDL-86860-main' of https://github.com/sarjona/moodle 2025-11-24 10:26:41 +01:00
Jun Pataleta e0d1bacaea Merge branch 'MDL-86547-main' of https://github.com/muhammadarnaldo/moodle 2025-11-24 15:55:33 +08:00
Muhammad Arnaldo 3ba1e0a7ed MDL-86547 theme_boost: Improve inline code contrast in editor
Changed the background color of highlighted inline code for better accessibility.
2025-11-24 13:29:06 +07:00
Adrian Greeve cc70e52303 MDL-86745 install: Stop installation if public directory visible 2025-11-24 14:04:05 +08:00
Adrian Greeve cf411c47a7 Merge branch 'MDL-71368-main' of https://github.com/andrewnicols/moodle 2025-11-24 10:27:52 +08:00
Andrew Nicols 89a6950668 MDL-71368 core: Update uses of http_build_query
Anywhere which actively specified an arg separator of '&' no longer
needs to do so.

Anywhere which did not specify an arg separator _may_ need to do so.

Note: APIs such as `\core\url` already normalised the separator to `&`.
2025-11-24 10:16:49 +08:00
Andrew Nicols 11606aa6e4 MDL-71368 core: Stop overriding the default URL separator 2025-11-24 10:11:00 +08:00
AMOS bot 73c6bc1241 Automatically generated installer lang files 2025-11-23 00:08:30 +00:00
Sara Arjona 12c6e88665 Merge branch 'MDL-86660-main' of https://github.com/sarjona/moodle 2025-11-21 19:35:29 +01:00
Sara Arjona ebf42ca7a7 MDL-86660 course_format: Display restricted activities in Overview 2025-11-21 19:31:37 +01:00
Sara Arjona d9db37a80d Merge branch 'MDL-84082' of https://github.com/paulholden/moodle 2025-11-21 19:27:34 +01:00
Sara Arjona 4a39dfeadd Merge branch 'MDL-86579-main' of https://github.com/aanabit/moodle 2025-11-21 19:23:18 +01:00
Santosh Nagargoje db2dfb91e0 MDL-87031 gradereport: Fixed clear button issue 2025-11-21 23:39:15 +05:30
Sara Arjona da687b4ef4 MDL-86860 course: Replace course_set_marker calls
The function course_set_marker has been replaced. Logic that previously
used course_set_marker must now be updated to use either
sectionactions::set_marker or sectionactions::remove_all_markers, based on
the desired behavior of the original call.
2025-11-21 19:08:02 +01:00
Sara Arjona 1e035230ff MDL-86860 course: Deprecate course_set_marker 2025-11-21 19:08:02 +01:00
Sara Arjona 6304e24dee MDL-86860 courseformat: Add set_marker to sectionactions
Apart from set_marker, the method remove_all_markers has also been
added to sectionactions.
2025-11-21 19:08:02 +01:00
Martin v. Löwis b7b186a6f1 MDL-86523 backup: update context only if also updating category. 2025-11-21 14:25:44 +01:00
Paul Holden fc970cafba MDL-87000 reportbuilder: deprecate and inline enrolment formatters. 2025-11-21 10:52:22 +00:00
Paul Holden 58a124f24a MDL-86997 reportbuilder: deprecate unused filter manager methods. 2025-11-21 10:52:09 +00:00
Paul Holden a8e627e9ba MDL-87135 libraries: upgrade to version 4.5.1 of ChartJS. 2025-11-21 10:50:15 +00:00
Mikel Martín b10aa2fd36 MDL-87243 enrol: Update enrolment card styles
- Update font size
- Replace specific h3 with span for template reusability
- Update template to accept extra attributes
2025-11-21 11:30:30 +01:00
Luca Bösch 5d5f3e94af MDL-86668 course: Support filter in scale names. 2025-11-21 11:23:06 +01:00
Luca Bösch ade06752e4 MDL-86161 groups: Correct picture title and alt text. 2025-11-21 10:46:01 +01:00
Huong Nguyen a280753085 weekly release 5.2dev 2025-11-21 14:32:56 +07:00
Huong Nguyen 57691bd171 NOBUG: Add upgrade notes 2025-11-21 14:32:56 +07:00
Huong Nguyen 1373e70223 NOBUG: Fixed file access permissions 2025-11-21 14:32:41 +07:00
yusufwib01 7213461bc5 MDL-81882 core: Optimize block instance deletion with batch processing
Improve upgrade execution by gathering block instance IDs upfront
and processing deletions of related records in context, block_positions, user_preferences, and block_instances tables in batches.
2025-11-21 13:58:50 +07:00
Stevani Andolo 52a0beb59c MDL-87072 core: Removed ->wwwrootendsinpublic from setup 2025-11-21 11:43:02 +08:00
Huong Nguyen 76b7786ce9 Merge branch 'MDL-87247-main' of https://github.com/andrewnicols/moodle 2025-11-21 08:09:18 +07:00
Mihail Geshoski 4a7b9e8523 Merge branch 'MDL-86984-main' of https://github.com/lucaboesch/moodle 2025-11-21 08:09:18 +07:00
Mihail Geshoski 38eff86728 Merge branch 'MDL-86069' of https://github.com/paulholden/moodle 2025-11-21 08:09:17 +07:00
Mihail Geshoski 2abded866b Merge branch 'MDL-87011-main' of https://github.com/rjnl/moodle 2025-11-21 08:09:17 +07:00
Huong Nguyen 7eb4d7746c Merge branch 'MDL-86323_main' of https://github.com/PhilippImhof/moodle 2025-11-21 08:09:17 +07:00
Huong Nguyen 99bffc833e Merge branch 'MDL-87048-main' of https://github.com/lameze/moodle 2025-11-21 08:09:17 +07:00
Huong Nguyen 1ad37d1cef Merge branch 'MDL-84735-main' of https://github.com/lameze/moodle 2025-11-21 08:09:17 +07:00
Andrew Nicols 36488dcab8 MDL-87046 core: Update namespace of shutdown manager 2025-11-21 08:52:30 +08:00
Andrew Nicols 8e0788fd04 MDL-87046 core: Update coding style on shutdown_manager 2025-11-21 08:52:29 +08:00
Andrew Nicols 70c9e5c113 MDL-87046 core: Fix shutdown manager early return
If the `\core_shutdown_manager::initialize` method is called multiple
times, it should only succeed once.

Unfortunately whilst logging existed, the shutdown manager did not
actually exit.
2025-11-21 08:52:28 +08:00
Amaia Anabitarte 3b3cba843d MDL-86579 core_courseformat: Remove PHPUnit deprecations 2025-11-20 17:15:27 +01:00
Jun Pataleta 9b5e238704 MDL-87245 lang: Add a bracketed form of the opensinnewwindow lang string 2025-11-20 17:27:25 +08:00
Andrew Nicols fe4c8fd31c MDL-87247 github: Remove fund.moodle.org from metadata 2025-11-20 14:44:59 +08:00
Huong Nguyen 2d6c3123af Merge branch 'MDL-85373' of https://github.com/paulholden/moodle 2025-11-20 13:20:26 +07:00
Mihail Geshoski ccab97a0fc Merge branch 'MDL-86967' of https://github.com/Chocolate-lightning/moodle 2025-11-20 13:20:26 +07:00
Mihail Geshoski 6f60b2bd68 Merge branch 'MDL-86846-main' of https://github.com/junpataleta/moodle 2025-11-20 13:20:25 +07:00
Huong Nguyen 6b598ca8a5 Merge branch 'MDL-86272' of https://github.com/paulholden/moodle 2025-11-20 13:20:25 +07:00
Amaia Anabitarte 7bd3ca38ea Merge branch 'MDL-86678' of https://github.com/paulholden/moodle 2025-11-20 13:20:25 +07:00
Amaia Anabitarte 3dda5381e4 Merge branch 'MDL-87198-main' of https://github.com/sarjona/moodle 2025-11-20 13:20:25 +07:00
Huong Nguyen 0ba9442324 Merge branch 'MDL-82511-cache-cron' of https://github.com/bwalkerl/moodle 2025-11-20 13:20:25 +07:00
Huong Nguyen 1f76aa7cb4 Merge branch '86320-fix-qr-code-unit-test-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-11-20 13:20:25 +07:00
Huong Nguyen 4ef9c7ccc2 Merge branch 'MDL-86907-main' of https://github.com/mioyu-ubiq/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen 9ed219e12c Merge branch 'MDL-87173' of https://github.com/dmitriim/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen 0b6993ba88 Merge branch 'MDL-72608' of https://github.com/paulholden/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen 74b05e0664 Merge branch 'MDL-85835-main' of https://github.com/plasger-uni-siegen/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen c1aa2c5dd4 Merge branch 'MDL-86998-main' of https://github.com/junpataleta/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen f65c8d269b Merge branch 'MDL-86350-main' of https://github.com/yusufwib01/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen 189ae50a55 Merge branch 'MDL-86470-main' of https://github.com/muhammadarnaldo/moodle 2025-11-20 13:20:24 +07:00
Huong Nguyen ca1c10c010 Merge branch 'MDL-86349-main' of https://github.com/rajutm25/moodle 2025-11-20 13:20:20 +07:00
Simey Lameze 20bc51f30e MDL-87050 behat: use src for img xpath selector 2025-11-20 13:19:01 +07:00
Mihail Geshoski 1d7605c406 Merge branch 'MDL-85049-main' of https://github.com/lucaboesch/moodle 2025-11-20 13:19:01 +07:00
Mihail Geshoski f36efad642 Merge branch 'MDL-86817_main' of https://github.com/marxjohnson/moodle 2025-11-20 13:19:01 +07:00
Mathew May 0f22bd052b MDL-86966 theme_classic: Remove font size override 2025-11-20 11:45:38 +08:00
Angelia Dela Cruz bc45d62ba2 MDL-87048 tool_lp: Behat for synchronising cohort with learning plan 2025-11-20 10:08:45 +08:00
Angelia Dela Cruz bd06da0c27 MDL-84735 gradingform: Behat for modifying marking guide criterion 2025-11-20 08:31:11 +08:00
Jun Pataleta c509ae3b86 MDL-86846 theme_boost: Make drag handle selector more specific 2025-11-19 14:34:39 +08:00
Jun Pataleta 9a7c14029e MDL-86846 core: Convert drag handle button to a native button 2025-11-19 14:34:39 +08:00
mioyu-ubiq 07ad613089 MDL-86907 mod_choice: Behat test for adding multiple choice responses 2025-11-19 08:38:37 +08:00
Jose b9f70d1fde MDL-85334 quiz: Adds record snapshots to slot deleted event
Ensures critical question data is preserved when a quiz slot is deleted.
This is especially useful when the slot-related information is no longer
available. It adds snapshots for question and random question references
to the event when present.
2025-11-19 10:11:20 +11:00
Paul Holden 8948a97c1d MDL-86272 tool_policy: verify current user before store policy agreed. 2025-11-18 11:47:46 +00:00
Santosh Nagargoje b691287982 MDL-86749 questions: Added index on hashcode column
Identified performance bottlenecks in clear_cached_data() from
mod/quiz/report/statistics/report.php. The delete_records() calls on
question_statistics, question_response_analysis, and quiz_statistics tables
use the hashcode column for filtering, which becomes inefficient with large
datasets.
2025-11-18 17:07:14 +05:30
Paul Holden ec7ce431a2 MDL-86565 courseformat: don't link to sections user cannot see. 2025-11-18 10:31:56 +00:00
Mathew May 9b11e977a8 MDL-86967 theme_classic: Correct orange & yellow vars + warning 2025-11-18 15:02:24 +08:00
Mathew May 6c912e3ed0 MDL-86967 theme_boost: Correct orange & yellow vars + warning 2025-11-18 15:02:23 +08:00
Mathew May be6097e407 MDL-86966 theme_boost: Remove font size override 2025-11-18 14:56:24 +08:00
Muhammad Arnaldo cc52ae3e33 MDL-86468 filter_mathjaxloader: Upgrade MathJax to 4.0.0 2025-11-18 10:27:25 +07:00
Mihail Geshoski 12446b9fa5 Merge branch 'MDL-86099_main' of https://github.com/marxjohnson/moodle 2025-11-17 22:27:30 +08:00
Andi Permana 04c1e99eb2 MDL-85930 tiny_media: Fix adding video from Youtube repo 2025-11-17 18:35:03 +07:00
Paul Holden 35ddb07edc MDL-86279 core: fix deprecation emitting/annotation in AWS helpers. 2025-11-17 11:00:33 +00:00
Paul Holden f2bd4f2f2a MDL-86955 tool_task: ensure tasks are runnable in adhoc table output. 2025-11-17 10:56:30 +00:00
Dmitrii Metelkin 6cc8acc61d MDL-87173 core: make cli for killing sessions more flexible 2025-11-17 21:16:27 +11:00
Huong Nguyen 517d45ad0a Merge branch 'MDL-85235-main' of https://github.com/safatshahin/moodle 2025-11-17 16:01:46 +07:00
Huong Nguyen b1bb744171 Merge branch 'MDL-87050-main' of https://github.com/andelacruz/moodle 2025-11-17 15:58:00 +07:00
Huong Nguyen e76fc383e6 Merge branch 'MDL-87111' of https://github.com/paulholden/moodle 2025-11-17 15:31:29 +07:00
Huong Nguyen 6611003ee0 Merge branch 'MDL-86810' of https://github.com/paulholden/moodle 2025-11-17 15:27:26 +07:00
Huong Nguyen 14026cfaa7 Merge branch 'MDL-86159' of https://github.com/paulholden/moodle 2025-11-17 14:55:50 +07:00
Huong Nguyen 4d7ec679e7 Merge branch 'MDL-85764-quiz-notification' of https://github.com/bwalkerl/moodle 2025-11-17 14:50:33 +07:00
Alexander Bias 998e007310 MDL-87199 core: In public/config.php, use require_once() 2025-11-17 07:42:30 +01:00
vinod404 f8542594be MDL-85306 core/toggle: Move tooltip/title to input to show tooltips.
The title and tooltip attributes are now moved to the input element, ensuring tooltips appear.
2025-11-17 11:01:11 +05:30
Jun Pataleta 7e3999f53f MDL-87149 mod_feedback: Accessibility Behat test coverage
* Check the accessibility of the questionnaire, especially when
there are dependent questions.
* Use generators for a more efficient and faster test execution.
2025-11-17 12:40:51 +08:00
Jun Pataleta 244630ce6c MDL-87149 mod_feedback: Generate dependent questions
Allow the generator to create questions that depend on other questions.
2025-11-17 12:36:03 +08:00
Jun Pataleta bf49b61ebb MDL-87149 theme_boost: Remove the .feedback_is_dependent class
It's no longer being used. So, just remove it.
2025-11-17 10:57:09 +08:00
Jun Pataleta c328ad64c4 MDL-87149 mod_feedback: Do not use .feedback_is_dependent anymore
Making a visual distinction for dependent questions compared to other
questions does not add much value in the perspective of users. We should
just stop adding the `.feedback_is_dependent` class for dependent
questions.
2025-11-17 10:46:01 +08:00
Huong Nguyen 3b8f15eff7 Merge branch 'MDL-87107-main' of https://github.com/andrewnicols/moodle 2025-11-17 09:08:22 +07:00
Mark Johnson 7df6e571f8 MDL-86099 questions: Check for empty bank names
If we call `question_bank_helper::create_default_open_instance` with an
empty `$bankname` parameter, it will currently create a new instance
with no name. This leads to exceptions being thrown when we try to load
the course it belongs to.

This adds some validation to ensure the name being passed is not empty.
Once the issue is resolved, and the bank is created with a proper name,
the course will work as normal.
2025-11-14 16:52:50 +00:00
Albert Gasset 7d5825ef18 MDL-87194 tool_mobile: Fix subscription requests 2025-11-14 16:16:13 +01:00
Albert Gasset 0d5409bc3d MDL-87194 message_airnotifier: Fix access key requests 2025-11-14 16:16:10 +01:00
Sara Arjona 5844fda994 MDL-87198 course_format: Consider section name visibility in Overview 2025-11-14 15:45:24 +01:00
Daniel Poggenpohl ab1c3d2b59 MDL-87017 blocks: Provide page context to page_type_list functions
- The current context may be necessary when deleting a frontpage block displayed on every page with javascript disabled
- The current context may be necessary when a frontpage block is displayed on every page and the question bank is viewed
- Also handle a NULL currentcontext for question_page_type_list() correctly
2025-11-14 15:30:50 +01:00
Paul Holden 22074dc0de MDL-72608 output: define default popover region template lang string. 2025-11-14 13:04:39 +00:00
Paul Holden 5328824faa MDL-86419 enrol_ldap: define plugin's own copy of configuration strings.
AMOS BEGIN
 CPY [ignorehiddencourses,enrol_database],[ignorehiddencourses,enrol_ldap]
 CPY [ignorehiddencourses_desc,enrol_database],[ignorehiddencourses_desc,enrol_ldap]
AMOS END
2025-11-14 13:03:44 +00:00
Benjamin Walker 3f68017b1c MDL-85764 mod_quiz: Improve performance of quiz notifications task 2025-11-14 20:04:09 +10:00
Benjamin Walker 575dc6d79a MDL-82511 cachestore_redis: Reduce blocking when finding keys 2025-11-14 20:03:38 +10:00
Benjamin Walker 79712f6696 MDL-82511 cache: Improve performance of cleanup in cache_cron_task 2025-11-14 20:03:38 +10:00
Paul Holden a02b804a77 MDL-86159 mod_bigbluebuttonbn: consistent/correct course name format. 2025-11-14 07:57:47 +00:00
Philipp Imhof 53a49c15c2 MDL-86323 editor_tiny: allow svg attributes
Co-authored-by: Petr Skoda <commits@skodak.org>
2025-11-14 08:52:04 +01:00
Luca Bösch 9f5b8a0d25 MDL-86984 book: remove borders in print page top table. 2025-11-13 17:06:50 +01:00
Luca Bösch 9f2ce393be MDL-85049 question: complete border around table row for newest question 2025-11-13 17:01:35 +01:00
Mihail Geshoski 982a10e9cf weekly release 5.2dev 2025-11-13 18:48:28 +08:00
Mihail Geshoski a5c93e1757 NOBUG: Add upgrade notes 2025-11-13 18:48:28 +08:00
Mark Johnson 9398da22a4 MDL-86817 qbank: Prevent unique key violations during migration
When fixing categories with broken parents, if the resulting changes
would have led to categories with the same stamp or idnumber being in
the same context, the task failed due to violations of the unique keys
on contextid-stamp and contextid-idnumber.

This checks for violations before moving categories, and either
generates a new stamp or nulls the idnumber on the category being moved,
following the method used in MDL-85869.
2025-11-13 10:33:12 +00:00
Huong Nguyen ad5733e531 MDL-66888 block_myoverview: Fix illegal whitespaces 2025-11-13 17:11:53 +07:00
Muhammad Arnaldo f594a96042 MDL-86470 lib: Set Moodle files after PHPSpreadSheet upgrade 2025-11-13 16:28:21 +07:00
Muhammad Arnaldo 5eb4bcfa9f MDL-86470 lib: Upgrade PHPSpreadSheet to 5.2.0 2025-11-13 16:28:21 +07:00
Angelia Dela Cruz 024e65df30 MDL-87050 mod_folder: Behat for preventing forced file downloads 2025-11-13 15:29:10 +08:00
Huong Nguyen 64f5ccf9d1 Merge branch 'MDL-66888-main' of https://github.com/gattinger/moodle 2025-11-13 11:18:08 +07:00
Mihail Geshoski 25b185b1f6 Merge branch 'MDL-86397_main' of https://github.com/marxjohnson/moodle 2025-11-13 12:15:31 +08:00
Huong Nguyen 0ed7a8c007 Merge branch 'MDL-86845-main' of https://github.com/lucaboesch/moodle 2025-11-13 11:11:42 +07:00
Huong Nguyen 419ea9f601 Merge branch 'MDL-86895-main' of https://github.com/mioyu-ubiq/moodle 2025-11-13 10:43:51 +07:00
Huong Nguyen 54ea82fb44 Merge branch 'MDL-79249-main' of https://github.com/andelacruz/moodle 2025-11-13 10:20:23 +07:00
Huong Nguyen fb2e2f2ca1 Merge branch 'MDL-87047-main' of https://github.com/andelacruz/moodle 2025-11-13 10:16:37 +07:00
Mihail Geshoski 75c8e3d266 Merge branch 'mdl-82720_main_wip' of https://github.com/james-cnz/moodle 2025-11-13 10:51:04 +08:00
Huong Nguyen 2a88de80f9 Merge branch 'MDL-78973-main' of https://github.com/andelacruz/moodle 2025-11-13 08:52:38 +07:00
Huong Nguyen fd9ad54618 Merge branch 'MDL-84967_recordset-not-closed-in-core_analytics_local_analyser_by_course_get_analysables_iterator' of https://github.com/ziegenberg/moodle 2025-11-13 08:47:20 +07:00
Huong Nguyen 1ea10d54ad Merge branch 'MDL-82867' of https://github.com/paulholden/moodle 2025-11-13 08:44:27 +07:00
Héctor Benedicte 51b11e9446 MDL-87054 mod_glossary: Change "Comments" column position. 2025-11-12 17:23:07 +01:00
Mark Johnson ede068579f MDL-86397 calendar: Filter user courses
In the calendar API, `raw_event_retrieval_strategy` accepts a list of
courses to return events for. If one or more users are also specified,
it will find the courses the are enrolled in, then call
`calendar_set_filters()` to return a sorted list of those courses, and
any groups within those courses that they can see events for. The list
of courses in then filtered to those passed to
`raw_event_retrieval_strategy`.

If the user is enrolled on lots of courses, but is only viewing the
caledar for one course, this results in a lot of redundant work to fetch
group data for their courses which is then not used. This either
involves a lot of extra complex queries, or results in an unncessary
cache hit for each course.

This change re-orders the code so that the list of enrolled courses is
filtered to just those courses being viewed, before it is passed to
`calendar_set_filters()`. This means we are only fetching group data for
those courses we will be showing events for.
2025-11-12 14:40:03 +00:00
Amaia Anabitarte cd57bd6d93 Merge branch 'MDL-85621-main' of https://github.com/sarjona/moodle 2025-11-12 12:22:01 +01:00
James C 2c3525f235 MDL-82720 core_courseformat: Allow easier overriding of format JS 2025-11-12 23:10:26 +13:00
Sara Arjona ccbcb9732d MDL-85621 core_badges: Replace manual JSON with exporters 2025-11-12 10:55:30 +01:00
Mihail Geshoski 7c7f764ba5 Merge branch 'MDL-87130' of https://github.com/paulholden/moodle 2025-11-12 17:24:36 +08:00
Mihail Geshoski a89b8f0a5e Merge branch 'MDL-86963-main' of https://github.com/andelacruz/moodle 2025-11-12 17:13:10 +08:00
Mihail Geshoski baa0f4f87e Merge branch 'MDL-85686-main' of https://github.com/lameze/moodle 2025-11-12 16:58:18 +08:00
Mihail Geshoski daea0fd39d Merge branch 'MDL-86886-main' of https://github.com/andelacruz/moodle 2025-11-12 16:34:45 +08:00
Angelia Dela Cruz 176a9f5e66 MDL-87047 tool_lp: Behat optimisation 2025-11-12 16:33:56 +08:00
Angelia Dela Cruz cfb91186ff MDL-87047 tool_lp: Behat to complete a learning plan and alter it 2025-11-12 16:26:05 +08:00
Sara Arjona 1d0ba9771f Merge branch 'MDL-86333-main' of https://github.com/laurentdavid/moodle 2025-11-12 08:18:24 +01:00
Angelia Dela Cruz 38a7526c7b MDL-86963 tool_lp: Behat to perform CRUD operations on competencies 2025-11-12 10:22:42 +08:00
Luca Bösch 5157cb71e9 MDL-86845 admin: Striped hovering plugins + course format table w/ BS 5. 2025-11-12 00:20:45 +01:00
Safat 909367f5b4 MDL-85235 tool_mobile: Implement the augmentation hooks for apps 2025-11-12 09:48:18 +11:00
Safat aa6b232803 MDL-85235 tool_mobile: Add extend ios app banner hook 2025-11-12 09:48:18 +11:00
Paul Holden 50dd0ea1f8 MDL-87130 dml: fix SQL debugging test assertions on Windows.
Ensure that the Windows directory separator ('\') isn't confused
for regular expression control character.
2025-11-11 14:51:01 +00:00
Paul Holden b18516b22b MDL-86765 forms: disable calendar icon if element disabled.
This is similar to change in ec89abc5 which updated the icon state
if the corresponding checkbox was unchecked. Here we're doing the
same if the entire date/time element itself is disabled.
2025-11-11 12:49:36 +00:00
Paul Holden 0d7e792fda MDL-86656 task: remove spurious mtrace parameters in calling code.
Co-authored-by: Jason Lees <jlees@arden.ac.uk>
2025-11-11 12:48:06 +00:00
Paul Holden 5424a6d89a MDL-87056 enrol: update instance modified date when toggling status. 2025-11-11 12:35:25 +00:00
Paul Holden c617f58b2f MDL-87111 filter_tex: remove border-radius of rendered expression. 2025-11-11 12:16:46 +00:00
Paul Holden 1c8f9db3f9 MDL-87166 communication: verify user feature support on user deletion. 2025-11-11 11:44:08 +00:00
Laurent David 2874b49ce5 MDL-86333 core_course: Fix return url for edit section 2025-11-11 12:27:17 +01:00
Sara Arjona 8a66103af5 Merge branch 'MDL-86913' of https://github.com/paulholden/moodle 2025-11-11 12:26:30 +01:00
Jun Pataleta ac52b10f9f MDL-86998 message: Fix accessibility issues in notification settings
* Fix missing labels for the checkboxes that enable notification plugins
* Add an accessible name for the Default notification preferences table
* Fix missing table header for the preference column of the Default
  notification preferences table.
* Accessibility Behat test coverage for the Notification settings
  admin page
* Remove the unnecessary title attributes for the visually hidden labels
2025-11-11 17:30:14 +08:00
Jun Pataleta f4ec6dcd7b MDL-86998 message: Fix accessibility issues in notification preferences
* Fix missing column heading for the preference column
* Fix incorrect label for the toggle controls
* Make the preference name a table heading with a row scope so that the
  toggle controls will be programmatically associated to it.
* Apply a col scope for the processor column headings to
  programmatically associate the toggle controls to their respective
  columns.
2025-11-11 17:30:14 +08:00
Angelia Dela Cruz 98d6c3ca27 MDL-86886 tool_lp: Behat to move and cross-reference competencies 2025-11-11 15:43:30 +08:00
Simon Plasger 6912c0ae3f MDL-85835 TinyMCE: Fix not working tabs on TinyMCE in quiz mode 2025-11-11 07:24:23 +01:00
Jun Pataleta 29ccd85ed7 MDL-86840 forum: Add accessibility Behat coverage
* Add accessibility Behat coverage on the Advanced forum search page.
2025-11-11 11:37:36 +08:00
Jun Pataleta 33b3e89efb MDL-86840 forum: Do not use layout table for the search form 2025-11-11 11:37:35 +08:00
Jun Pataleta 43598d0f34 MDL-86840 forum: Fix heading structure of search form 2025-11-11 11:37:35 +08:00
Simey Lameze 7ffdc5c8aa MDL-85686 mod_quiz: unit test coverage for questions shuffle 2025-11-11 11:10:50 +08:00
Angelia Dela Cruz 9552f31726 MDL-78973 Behat: Behat coverage for invalid file upload in data activity 2025-11-11 10:35:44 +08:00
Mio Yu ae50c133b3 MDL-86895 core_grades: Behat to verify listing and grading submissions 2025-11-11 09:41:19 +08:00
Sara Arjona 8bb1a47fad MDL-85621 core_badges: Redirect legacy JSON files 2025-11-10 14:53:39 +01:00
Sara Arjona 2254652ed1 MDL-85621 core_badges: Organise JSON 2025-11-10 14:53:38 +01:00
Safat 206362d272 MDL-85235 core: Add extend url hook 2025-11-10 21:37:33 +11:00
Safat e0e265810a MDL-85235 tool_mobile: Make mobile manifest cookieless and cacheable 2025-11-10 21:36:52 +11:00
Huong Nguyen 6aaf2256bd Merge branch 'mdl-84440-main' of https://github.com/matthewhilton/moodle 2025-11-10 15:39:40 +07:00
Sara Arjona bf45eacdf1 MDL-85621 core_badges: Improve behat generators 2025-11-10 09:32:21 +01:00
Huong Nguyen f9d8b02efd Merge branch 'MDL-85627-main' of https://github.com/jleyva/moodle 2025-11-10 10:17:02 +07:00
Huong Nguyen 974dac954e Merge branch 'MDL-86999-main' of https://github.com/lucaboesch/moodle 2025-11-10 10:12:55 +07:00
Huong Nguyen 289f45a37f Merge branch 'MDL-81604-main' of https://github.com/t-schroeder/moodle 2025-11-10 10:07:28 +07:00
Shamim Rezaie 724ec198e5 Merge branch 'MDL-78325-main' of https://github.com/meirzamoodle/moodle 2025-11-10 14:05:19 +11:00
Shamim Rezaie b7ded43164 Merge branch 'MDL-86965-master' of https://github.com/NashTechOpenUniversity/moodle 2025-11-10 13:43:24 +11:00
Andrew Nicols 8b5dd507b3 MDL-86665 core: Fix path stripping in format_backtrace 2025-11-10 09:35:46 +08:00
Luca Bösch 07376097df MDL-86999 customfield: Striped hovering fields table with BS 5. 2025-11-07 13:11:08 +01:00
Andrew Nicols 39a08965a2 MDL-87107 core: Improve upgrade running detection 2025-11-07 17:19:20 +08:00
Andrew Nicols 5cfff76727 MDL-87107 core: Stop using MUC for hook manager caching 2025-11-07 17:19:20 +08:00
Huong Nguyen a331b32bef weekly release 5.2dev 2025-11-07 14:48:24 +07:00
Huong Nguyen a056d918db NOBUG: Add upgrade notes 2025-11-07 14:48:24 +07:00
Huong Nguyen 6dc5fc4cf6 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-11-07 14:48:09 +07:00
Huong Nguyen d26737729c Merge branch 'MDL-86701-main-fix' of https://github.com/junpataleta/moodle 2025-11-07 08:44:54 +07:00
hieuvu aca460d6bc MDL-86965 core_question: Fix get_bank_instances query. 2025-11-06 22:31:54 +07:00
Jun Pataleta bbcc025ca3 MDL-86701 behat: Update Behat tests to press edit/delete buttons 2025-11-06 18:29:38 +08:00
meirzamoodle 2c3789be5e MDL-78325 core_grades: Remove legacy Gradebook basewidget and templates
In Moodle 4.2, the legacy Gradebook base widget pattern from 4.1
has been removed and replaced with a new class-based system. The
previous approach became incompatible due to a breaking change
introduced in 4.2 and was overly complex to maintain.

As part of this cleanup, core/grades/basewidget.js and the
deprecated templates in grade/templates/searchwidget/ have been
deleted. Third-party usage is expected to be minimal.
Developers should update custom code to use the new
class system.
2025-11-06 17:23:17 +07:00
Huong Nguyen a64500ef59 MDL-69226 environment: filter extension required for 4.1 2025-11-06 18:19:20 +08:00
Mihail Geshoski 3d785a6400 Merge branch 'MDL-87073-main' of https://github.com/HuongNV13/moodle 2025-11-06 17:06:58 +08:00
Huong Nguyen 2d91f0e061 MDL-87073 PHPUnit: Use non-DST timezone for comparing
Including in this commit
 - Use America/New_York instead of US/Eastern
2025-11-06 15:45:13 +07:00
Huong Nguyen ee8e6179bf Merge branch 'MDL-86908-main' of https://github.com/andelacruz/moodle 2025-11-06 15:42:12 +07:00
Huong Nguyen 7ae9c198f5 Merge branch 'MDL-87049-main' of https://github.com/lameze/moodle 2025-11-06 15:40:16 +07:00
Huong Nguyen 8c7fc77fb7 Merge branch 'MDL-87079-main' of https://github.com/andrewnicols/moodle 2025-11-06 15:37:14 +07:00
Jake Dallimore 79ae38a880 Merge branch 'MDL-86379-main' of https://github.com/lameze/moodle 2025-11-06 14:28:57 +08:00
Mihail Geshoski c1118422d5 Merge branch 'MDL-86010_main' of https://github.com/marxjohnson/moodle 2025-11-06 11:46:21 +08:00
Huong Nguyen 1ffa328454 Merge branch 'MDL-87003-main' of https://github.com/jleyva/moodle 2025-11-06 10:36:55 +07:00
Huong Nguyen d3e9f6c370 Merge branch 'MDL-87019-redis-bloat' of https://github.com/bwalkerl/moodle 2025-11-06 10:34:57 +07:00
Jake Dallimore cdaab6eea7 Merge branch 'MDL-86534-main' of https://github.com/andrewnicols/moodle 2025-11-06 11:32:40 +08:00
Jake Dallimore e0bd312ab4 Merge branch 'MDL-75621-main' of https://github.com/sh-csg/moodle 2025-11-06 11:28:43 +08:00
Huong Nguyen 61579c7a89 Merge branch 'MDL-86701-main' of https://github.com/junpataleta/moodle 2025-11-06 10:27:04 +07:00
Huong Nguyen 7e7f978d84 Merge branch 'MDL-86332' of https://github.com/paulholden/moodle 2025-11-06 10:20:14 +07:00
Huong Nguyen dc7b1bb157 Merge branch 'MDL-86915' of https://github.com/paulholden/moodle 2025-11-06 10:10:16 +07:00
Huong Nguyen f1c8b53be1 Merge branch 'mdl-85036_main' of https://github.com/james-cnz/moodle 2025-11-06 10:34:53 +08:00
Huong Nguyen d246c40f54 Merge branch 'MDL-86296-main' of https://github.com/andimendunia/moodle 2025-11-06 10:34:53 +08:00
Amaia Anabitarte cbf8a365c2 Merge branch 'MDL-86857-main' of https://github.com/laurentdavid/moodle 2025-11-06 10:34:53 +08:00
Jake Dallimore 701025dc86 Merge branch 'MDL-87004_main' of https://github.com/marxjohnson/moodle 2025-11-06 10:34:53 +08:00
Simey Lameze 7251a31a21 MDL-87049 behat: read showcampaigncontent setting when running behat 2025-11-06 08:17:11 +08:00
Angelia Dela Cruz d0e0b1da47 MDL-87049 core: Behat to toggle campaign content banner display 2025-11-06 08:17:11 +08:00
AMOS bot 08f12255d5 Automatically generated installer lang files 2025-11-06 00:08:07 +00:00
Matthew Hilton ee4bbaf2cd MDL-84440 backup: Add configurable default backup filename format 2025-11-06 09:21:36 +10:00
Angelia Dela Cruz f3dedae56f MDL-86908 core_contentbank: Behat to set supported files of contentbank 2025-11-05 17:24:03 +08:00
Simey Lameze 589ae24519 MDL-86379 mod_quiz: move create_test_quiz function into generator 2025-11-05 11:46:17 +08:00
Andrew Nicols b06f52ee0b MDL-87079 core: Call existing pcntl handlers
Whilst `register_shutdown_function` works as a queue, `pcntl_signal`
does not.

To preserve the behaviour of existing signal handlers, as are typically
found in CLI wrappers like PHPUnit and Behat, we should store any
existing handler
2025-11-05 08:51:40 +08:00
Ilya Tregubov 1ac2831c76 Merge branch 'MDL-86953' of https://github.com/paulholden/moodle 2025-11-04 16:43:57 +01:00
Stefan Hanauska 3912f22e5f MDL-68062 badges: Allow revoke by every user with the correct role
Co-authored-by: Rajneel Totaram <rjnlfj@yahoo.com>
2025-11-04 14:11:27 +01:00
James C 92b2ccc7aa MDL-85036 completion: Properly initialize cm_info for user completion 2025-11-04 21:02:17 +13:00
Jake Dallimore d9c0c7b265 Merge branch 'MDL-85391' of https://github.com/NeillM/moodle 2025-11-04 14:13:27 +08:00
Jake Dallimore b2ad8c280d Merge branch 'MDL-86855-main' of https://github.com/junpataleta/moodle 2025-11-04 14:08:40 +08:00
Paul Holden f3dc580f03 MDL-84082 reportbuilder: wildcard support for text contains filter.
The following are now supported when using the [not] contains text
filter operators:

- "*" match any character multiple times;
- "?" match any character single time

They are analogous to native SQL LIKE "%" and "_" operators. Escaping
via backslash is supported for each, to ensure that the characters
themselves can still be matched.
2025-11-03 23:51:35 +00:00
Laurent David de14abaf0e MDL-86857 core_courseformat: Deprecates set_coursemodule_groupmode
Deprecates set_coursemodule_groupmode in favor of core_courseformat\cmactions::set_groupmode
2025-11-03 14:50:02 +01:00
Laurent David 49df7a225f MDL-86857 core_courseformat: Add set_groupmode to coursformat actions 2025-11-03 14:50:02 +01:00
Ilya Tregubov 9dc3dec2b8 Merge branch 'MDL-86952' of https://github.com/paulholden/moodle 2025-11-03 12:39:56 +01:00
Stefan Hanauska 47b169201d MDL-75621 course: Jump to module after editing 2025-11-03 08:39:34 +01:00
Jun Pataleta b164980bcd MDL-86701 customfield: Better naming of custom field action buttons
Include the category and field names for accessible names of the delete
and action buttons to help assistive technology users better understand
the buttons' purpose.
2025-11-03 11:58:14 +08:00
Jun Pataleta c410621d82 MDL-86701 customfield: Improve action buttons accessibility
* Use native HTML buttons for the edit and delete buttons. This provides
default button behaviours which helps keyboard users activate the
buttons using either the Space or Enter key.
* Move the accessible label out of the pix icon and to the action button
itself.
* Style buttons to ensure that they have a minimum clickable size of
24x24 pixels to sufficiently meet WCAG 2.2 SC 2.5.8 - Target Size
(Minimum) (Level AA).
2025-11-03 10:33:41 +08:00
Huong Nguyen aa7c584199 Merge branch 'MDL-69226_verify-that-the-filter-php-extension-is-present' of https://github.com/ziegenberg/moodle 2025-11-03 09:01:59 +07:00
Angelia Dela Cruz 4f31f7ca24 MDL-79249 core_filepicker: Cancel file and folder upload using X button 2025-11-03 09:59:41 +08:00
AMOS bot 40ff285ca2 Automatically generated installer lang files 2025-11-01 00:08:07 +00:00
Andi Permana b474d62d0c MDL-86296 mod_bigbluebuttonbn: Sort lang strings in correct order 2025-10-31 19:09:49 +07:00
Benjamin Walker d4eede6a84 MDL-87019 redis: Avoid storing userhashkey for non-login users 2025-10-31 16:20:28 +10:00
Huong Nguyen 5135d05ad7 Merge branch 'MDL-84173-main' of https://github.com/rajutm25/moodle 2025-10-31 09:41:07 +07:00
Huong Nguyen 38fdd55a28 Merge branch 'MDL-86831-main' of https://github.com/lucaboesch/moodle 2025-10-31 09:37:08 +07:00
Huong Nguyen 6f9770b473 Merge branch 'MDL-86235-main' of https://github.com/andimendunia/moodle 2025-10-31 09:34:31 +07:00
Luca Bösch 216191a856 MDL-86831 behat: Adopt behat paths to include public/ 2025-10-30 18:55:39 +01:00
Mihail Geshoski 543bf96cb7 weekly release 5.2dev 2025-10-30 18:10:39 +08:00
Mihail Geshoski d2ba6aaa3b NOBUG: Add upgrade notes 2025-10-30 18:10:39 +08:00
Mihail Geshoski e40b49ef83 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-10-30 18:10:13 +08:00
Huong Nguyen 0449d6aefa Merge branch 'MDL-86724-main' of https://github.com/davewoloszyn/moodle 2025-10-30 08:23:41 +07:00
Juan Leyva 3497ac936b MDL-85627 mod_bigbluebuttonbn: Remove unused class 2025-10-29 14:14:11 +01:00
Juan Leyva 8ecc917637 MDL-87003 tool_mobile: Return if MFA and reCAPTCHA is enabled 2025-10-29 11:35:39 +01:00
Neill Magill e497d87fdc MDL-85391 course: Handle null course urls
Course urls may be null when navigation is set to true.

The return value from course_get_url being null was not being handled before
this change, which could lead to an exception causing the page not to load.

It also handles null urls in the course index in Boost so that they are
not a link to what ever the current page is.

If either the first or last section in a format did not a
return a url under the Classic theme there would still be
a link displayed with a link to the current page the user
is on.

After this change no link would be displayed in this case.
2025-10-29 08:20:12 +00:00
Huong Nguyen 336602788d Merge branch 'mdl85075-main' of https://github.com/matthewhilton/moodle 2025-10-29 09:31:04 +07:00
Mihail Geshoski 506070e26a Merge branch 'MDL-86894-main' of https://github.com/Kredelirious/moodle 2025-10-29 10:17:37 +08:00
Mihail Geshoski 3c17757b1a Merge branch 'MDL-82190-master' of https://github.com/danghieu1407/moodle 2025-10-29 10:10:08 +08:00
Thorsten Gattinger 78dec4f089 MDL-66888 block_myoverview: Add course sorting options to overview block 2025-10-29 02:40:07 +01:00
Thorsten Gattinger 88f9be609e MDL-66888 block_myoverview: Fix duplicated scenario name in behat test 2025-10-29 02:36:08 +01:00
Daniel Ziegenberg 8c65a1a0af MDL-69226 environment: filter extension required
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-10-28 19:27:55 +01:00
Kim Jared Lucas 228b87bb45 MDL-86894 mod_forum: Behat to verify default forum RSS settings 2025-10-28 10:32:08 +08:00
AMOS bot 7fe4ac996c Automatically generated installer lang files 2025-10-28 00:09:56 +00:00
Rajneel Totaram 71b4bb7866 MDL-87011 mod_assign: Replace deprecated CSS style 2025-10-27 22:19:16 +12:00
Adrian Greeve 72cdac3df4 Merge branch 'MDL-85774-main-3' of https://github.com/junpataleta/moodle 2025-10-27 09:01:11 +08:00
Daniel Ziegenberg 753befc19a MDL-84967 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-10-24 21:01:03 +02:00
Amaia Anabitarte 476115b947 Merge branch 'MDL-84866-main' of https://github.com/aanabit/moodle 2025-10-24 15:22:40 +02:00
Amaia Anabitarte 88d5c3b778 Merge branch 'MDL-86856-main' of https://github.com/sarjona/moodle 2025-10-24 15:20:19 +02:00
ferran c9257e9d7f Merge branch 'MDL-86430-Bad-Display-Of-Scale-Grading' of https://github.com/birdy1976/moodle 2025-10-24 12:13:28 +02:00
Andi Permana ce3b38c5bd MDL-86235 core: Add table-hover class to admintable and generaltable 2025-10-24 15:49:56 +07:00
Mark Johnson 903aea38c5 MDL-87004 backup: Ensure backups include all random questions
Backing up quizzes containing random questions from multiple different
categories was only including one of the categories in the backup.

This was due to doing $array + $array instead of array_merge(), meaning
items in the second array with keys that were already present in the
first did not get added to the result.
2025-10-24 09:48:32 +01:00
rajutm25 ccc02084ad MDL-84173 libraries: upgrade lti1p3 to v6.2.0 2025-10-24 12:49:28 +05:30
Jun Pataleta 7320321bdf MDL-86855 qbank_columnsortorder: Remove the column move handle selector
Remove the Behat selector `column move handle` for the
`qbank_columnsortorder` plugin.
2025-10-24 12:01:34 +08:00
Jun Pataleta d83bfadf8a MDL-86855 qbank_columnsortorder: Render disabled columns as a list
* Lists must be marked up with the proper semantics.
2025-10-24 12:01:34 +08:00
Jun Pataleta 790d8fb029 MDL-86855 qbank_columnsortorder: Fix accessibility issues
* Fix empty column heading in admin settings page
* Add accessible labels for the move buttons
* Fix drag and drop Behat test
* Add accessibility Behat coverage
2025-10-24 12:01:34 +08:00
Huong Nguyen c39b6a6751 weekly release 5.2dev 2025-10-24 10:59:37 +07:00
Huong Nguyen 91f6454571 NOBUG: Add upgrade notes 2025-10-24 10:59:37 +07:00
Huong Nguyen 019ac85f22 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-10-24 10:59:18 +07:00
Martin Vögeli 62952bcfed MDL-86430 theme_boost: Fix display of scale grading when title too long 2025-10-23 17:04:58 +02:00
danghieu1407 5b561078eb MDL-82190 Quiz: Fix quiz preview crash on question version removal 2025-10-23 14:05:01 +07:00
Jun Pataleta aadbb5b03f MDL-85774 login: Check for username/password fields before moving focus
When the login form is not shown but $CFG->loginautofocus is turned on,
we need to verify first that the username and password fields exist
before we move the focus. Otherwise, the JS will break.
2025-10-23 11:26:53 +08:00
Jun Pataleta a266a4291a MDL-85774 login: Remove visually-hidden links
Visually hidden links on login error/info disrupt tab order. We must
remove them.

Instead, announce the div containing the login error/info messages on
page reload.

The visually hidden signup link has also been removed.
2025-10-23 11:26:51 +08:00
Huong Nguyen 1d73edce0d Merge branch 'MDL-86986-main' of https://github.com/junpataleta/moodle 2025-10-23 09:56:33 +07:00
Huong Nguyen 0a0aad3b2a Merge branch 'MDL-80524' of https://github.com/paulholden/moodle 2025-10-23 09:29:03 +07:00
Huong Nguyen e9e17645d6 Merge branch 'MDL-86461-main' of https://github.com/andimendunia/moodle 2025-10-23 09:27:27 +07:00
Mihail Geshoski 7d69081a7d Merge branch 'main' of https://github.com/aneno-m-e/moodle 2025-10-23 10:21:28 +08:00
Matthew Hilton e87bfdef20 MDL-85075 files: Use core security helper first 2025-10-23 12:18:49 +10:00
Andrew Nicols 3159d27d78 Merge branch 'MDL-81804-main-first' of https://github.com/lucaboesch/moodle 2025-10-23 09:14:42 +08:00
Leon Stringer ac2d796e1f MDL-86434 core: Page title for invalid user ID 2025-10-22 23:05:43 +02:00
Luca Bösch 832a0203ef MDL-81804 dml: Passing parameters with -c key=val on PostgreSQL.
Co-authored-by: Marcos Dos Santos De Oliveira <marcos.s.oliveira@fiesc.com.br>
2025-10-22 16:15:41 +02:00
Sara Arjona f5dda47ba2 MDL-86856 course: Replace course_delete_module with cmactions::delete 2025-10-22 16:06:20 +02:00
Sara Arjona 1e96c0ba35 MDL-86856 course: Deprecate course_delete_module 2025-10-22 16:06:19 +02:00
Sara Arjona f81d3af2d2 MDL-86856 courseformat: Add delete and delete_async to cmactions 2025-10-22 16:06:14 +02:00
Amaia Anabitarte b78adea3c3 MDL-84866 core_courseformat: Add duplicate option to subsections 2025-10-22 15:04:00 +02:00
Jun Pataleta 1eaee1ffe3 MDL-86986 core: Add aria-label to the drag handle button 2025-10-22 20:14:06 +08:00
ferran 2966ee92ef Merge branch 'wip_MDL-86435_main' of https://github.com/gjb2048/moodle 2025-10-22 12:55:51 +02:00
Pau Ferrer Ocaña 2a84772a9c MDL-86899 mobile: Add custom user menu items setting 2025-10-22 12:34:52 +02:00
Mihail Geshoski 0b48d7df24 Merge branch 'MDL-85474' of https://github.com/jonof/moodle 2025-10-22 16:45:05 +08:00
Paul Holden e5ea5e71d5 MDL-80524 rating: preserve activity idnumber when adding rating.
See also e9a5485f for context regarding similar problem with grade
updates.

Co-authored-by: Julian Tovar
2025-10-22 09:43:34 +01:00
Mihail Geshoski 74952e65c0 Merge branch 'MDL-86282-main' of https://github.com/srobotta/moodle 2025-10-22 16:29:16 +08:00
Noemie Ariste c27609e42b MDL-75764 mod_assign: remove capability check for bulk downloads 2025-10-22 16:47:54 +13:00
Mihail Geshoski 4191352190 Merge branch 'MDL-86217' of https://github.com/paulholden/moodle 2025-10-22 11:39:43 +08:00
Mihail Geshoski 9bb591e6cc Merge branch 'MDL-86225-main' of https://github.com/josepico01/moodle 2025-10-22 11:00:56 +08:00
Mihail Geshoski 57d50dce29 Merge branch 'MDL-86063' of https://github.com/paulholden/moodle 2025-10-22 10:20:12 +08:00
Huong Nguyen 6275b8fad4 Merge branch '83543-xls-form-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-10-22 09:12:14 +07:00
Huong Nguyen bdaff9c7e4 Merge branch '77137-proxybypass-on-multiple-curl-queries-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-10-22 09:07:00 +07:00
Paul Holden 4889b16004 MDL-86975 mod_book: fix alignment of chapter editing delete icon.
Mis-aligned since changes to previously used action icon in df486967.
2025-10-22 00:23:43 +01:00
Paul Holden a9497e1925 MDL-86915 core: define "core" plugin type string.
Per ae7f3dfd this is now required for all plugin types. In this
specific case, it's used by the privacy plugin registry.
2025-10-21 21:43:57 +01:00
Amaia Anabitarte 219e303280 Merge branch 'MDL-85796-main' of https://github.com/junpataleta/moodle 2025-10-21 19:55:06 +02:00
Pau Ferrer Ocaña 29190702d0 MDL-86899 mobile: Fix custom langstring format on help 2025-10-21 13:19:36 +02:00
Paul Holden 8d67e538a2 MDL-86255 behat: implement methods to assert date/time field value. 2025-10-21 11:26:20 +01:00
ferran 0e25c52a9c Merge branch 'MDL-86119-remove-YUI-TreeView-from-mod-folder_main' of https://github.com/Benjamin-unige/moodle 2025-10-21 11:30:59 +02:00
Huong Nguyen 04d7aae255 Merge branch 'MDL-86848-main' of https://github.com/andrewnicols/moodle 2025-10-21 14:00:34 +07:00
Shamim Rezaie 917c88c4b1 Merge branch 'MDL-85592' of https://github.com/paulholden/moodle 2025-10-21 17:06:44 +11:00
Huong Nguyen 02aa3bbef2 Merge branch 'MDL-85168-main' of https://github.com/phmemmel/moodle 2025-10-21 10:36:19 +07:00
Huong Nguyen 0fabcb9f4b Merge branch 'MDL-85633-main' of https://github.com/lucaboesch/moodle 2025-10-21 09:47:12 +07:00
Huong Nguyen fa60c84696 Merge branch 'MDL-85511-main' of https://github.com/lucaboesch/moodle 2025-10-21 09:44:36 +07:00
Huong Nguyen ed243f35c3 Merge branch 'MDL-85287-main' of https://github.com/sammarshallou/moodle 2025-10-21 09:41:48 +07:00
Huong Nguyen dc80a1ecce Merge branch 'MDL-86559-main' of https://github.com/andimendunia/moodle 2025-10-21 09:39:16 +07:00
Jonathon Fowler 78d978c158 MDL-85474 assign: fix call to undefined 'view_error_page' method
And while doing so, fix $notices parameters that ought to be call-by-
reference to collect notices produced during calls to
process_submit_other_for_grading() and process_submit_for_grading().
2025-10-21 10:08:04 +10:00
Paul Holden 099dcca4fe Merge branch 'MDL-86455' of https://github.com/yerairogo/moodle into main 2025-10-20 16:51:03 +01:00
Paul Holden 7a9fc0dcbe MDL-86396 task: assert outcome of applying read/write log filters. 2025-10-20 16:41:33 +01:00
Paul Holden 54cb5cc869 Merge branch 'MDL-86396' of https://github.com/vinod404/moodle into main 2025-10-20 16:25:21 +01:00
Paul Holden ef42934848 MDL-86385 reportbuilder: fix schedule promise thennable chain. 2025-10-20 16:13:08 +01:00
Paul Holden 56326e2357 Merge branch 'MDL-86385' of https://github.com/dfelipemonroy/moodle into main 2025-10-20 16:08:20 +01:00
Sara Arjona 84619df16f Merge branch 'MDL-86598-main' of https://github.com/aanabit/moodle 2025-10-20 16:58:52 +02:00
Amaia Anabitarte f4381517a7 MDL-86598 course: Render HTML in activity overview section name mustache 2025-10-20 16:11:12 +02:00
Amaia Anabitarte ff9d89fc4a Merge branch 'MDL-86011-main' of https://github.com/sarjona/moodle 2025-10-20 16:00:59 +02:00
Amaia Anabitarte 0eb0da6611 Merge branch 'MDL-86914-main' of https://github.com/sarjona/moodle 2025-10-20 15:56:23 +02:00
Amaia Anabitarte 013fb379d2 Merge branch 'MDL-86607' of https://github.com/paulholden/moodle 2025-10-20 13:36:53 +02:00
Amaia Anabitarte 22bdcb40a6 Merge branch 'MDL-86912-main' of https://github.com/sarjona/moodle 2025-10-20 13:32:21 +02:00
Luca Bösch 9a5a0ffcab MDL-85633 course: Move away from YUI navigation.
Co-authored-by: Mikel Martín Corrales <mikel@moodle.com>
2025-10-20 11:29:21 +02:00
sam marshall b16fb691e0 MDL-85287 User tours: Avoid scrolling while backdrop is displayed
If the page scrolls while the backdrop is displayed, it looks
incorrect because the backdrop does not scroll with page content.
To avoid this, don't show the backdrop until scrolling has finished.
2025-10-20 09:56:54 +01:00
Sara Arjona 1d9c6d5d5f Merge branch 'MDL-83854-main' of https://github.com/roland04/moodle 2025-10-20 10:12:44 +02:00
Benjamin Abraham d182af6585 MDL-86119 mod_folder: Remove YUI TreeView
Remove YUI TreeView and replace it with a layout of "ul" and  "li" tags
Using core/tree javascript module to implement ARIA navigation and collapse toggle
Accessibility text for root folder
Empty alt attributes
Remove unused foldertree class from edit.php form
2025-10-20 10:04:52 +02:00
Sara Arjona 03344e4435 MDL-86912 assign: Prevent admin submitting unless enrolled as student 2025-10-20 09:46:02 +02:00
Sara Arjona 7e42e0d54c MDL-86912 assign: Adjust display of Status column in Overview 2025-10-20 09:46:02 +02:00
Luca Bösch e26394db71 MDL-85511 course: back button for course management course search. 2025-10-20 08:09:31 +02:00
Mihail Geshoski 1f59774400 Merge branch 'MDL-85696-main' of https://github.com/andelacruz/moodle 2025-10-20 10:24:32 +08:00
Huong Nguyen c9d13afae3 Merge branch 'mdl-85917_main' of https://github.com/james-cnz/moodle 2025-10-20 08:48:33 +07:00
David Woloszyn bf019a00ac MDL-86724 hub: Registration collects disk usage data 2025-10-20 12:46:28 +11:00
Huong Nguyen a4ad5eb67d Merge branch 'MDL-85975_main' of https://github.com/marxjohnson/moodle 2025-10-20 08:44:58 +07:00
Huong Nguyen 05dbcf3a01 Merge branch 'MDL-86463-main' of https://github.com/andimendunia/moodle 2025-10-20 08:41:38 +07:00
Paul Holden 3e605a554f MDL-86063 customfield: internally validate numeric data in persistent.
Move previous validation from the data controller, added in 89dbe63d,
into the persistent class itself so that it can internally validate
itself rather than relying on callers.

This resolves problems with empty/null numeric fields contained within
course backups (e.g. during course copy).
2025-10-19 16:53:11 +01:00
Paul Holden eafac40dfd MDL-86217 badges: gracefully handle missing recipient data. 2025-10-19 16:50:11 +01:00
AMOS bot 9325f1ea46 Automatically generated installer lang files 2025-10-18 00:08:01 +00:00
Gareth Barnard fecf035d71 MDL-86435 course: i/groupn.svg is not the same size as other icons. 2025-10-17 16:58:55 +01:00
Paul Holden 3c4d058599 MDL-86953 blocks: constrain block controls menu on narrow screens.
Extension of work in 93cadaba that constrained the dropdown menu,
we now set a breakpoint to account for overflowing when narrow.
2025-10-17 14:43:02 +01:00
Ilya Tregubov ad425e6a25 Merge branch 'MDL-80422' of https://github.com/paulholden/moodle 2025-10-17 15:34:26 +02:00
Paul Holden 5436b7e869 MDL-86952 output: truncate long text in drag/drop dialog options. 2025-10-17 14:06:46 +01:00
Paul Holden bb2de721f3 MDL-86952 output: truncate long text in modal/dialog title element. 2025-10-17 13:37:26 +01:00
Amaia Anabitarte 6797d0b8d6 Merge branch 'MDL-85887' of https://github.com/paulholden/moodle 2025-10-17 13:45:49 +02:00
Amaia Anabitarte 06358effcd Merge branch 'MDL-84290-main' of https://github.com/sarjona/moodle 2025-10-17 13:43:14 +02:00
Paul Holden 484faa9794 MDL-86810 completion: update module completion data correctly.
Ensure we check the correct field to determine form value.
2025-10-17 12:12:55 +01:00
Paul Holden c24ca82883 MDL-85373 admin: update site installation page referenced favicon. 2025-10-17 12:06:18 +01:00
Mikel Martín b34ec479a6 MDL-83854 theme_boost: Add indicator to move activity/section modal 2025-10-17 09:59:28 +02:00
Angelia Dela Cruz 9c66f3cc0c MDL-85696 mod_quiz: Behat to attempt password and time restricted quiz 2025-10-17 14:33:33 +08:00
Huong Nguyen c2450d0888 Merge branch 'MDL-85418' of https://github.com/paulholden/moodle 2025-10-17 10:27:18 +07:00
Huong Nguyen b3bd0f0a37 Merge branch 'MDL-85312' of https://github.com/paulholden/moodle 2025-10-17 10:18:42 +07:00
Huong Nguyen b42d242c61 Merge branch 'MDL-86849-main' of https://github.com/andrewnicols/moodle 2025-10-17 10:15:13 +07:00
Huong Nguyen b7c7923a65 Merge branch 'MDL-86467-main' of https://github.com/yusufwib01/moodle 2025-10-17 10:11:42 +07:00
Huong Nguyen ec89d90361 Merge branch 'MDL-76823-main' of https://github.com/sh-csg/moodle 2025-10-17 10:09:04 +07:00
Andrew Nicols 8012845fb6 Merge branch 'MDL-86344-main' of https://github.com/yusufwib01/moodle 2025-10-17 11:07:57 +08:00
Huong Nguyen da8c345eb6 Merge branch 'MDL-77894' of https://github.com/larsbonczek/moodle 2025-10-17 10:06:00 +07:00
Andrew Nicols 695d75c684 Merge branch 'main-86376' of https://github.com/danmarsden/moodle 2025-10-17 11:05:11 +08:00
Andi Permana 8679ffa163 MDL-86461 tool_messageinbound: Upgrade Roundcube to version 1.6.11 2025-10-17 09:58:08 +07:00
Andrew Nicols 8931ef1cae Merge branch 'MDL-85366-main' of https://github.com/djarran/moodle 2025-10-17 08:46:26 +08:00
Andrew Nicols d8f43d940f Merge branch 'MDL-86822' of https://github.com/paulholden/moodle 2025-10-17 08:33:46 +08:00
Andrew Nicols 0471c59a44 Merge branch 'MDL-85554' of https://github.com/paulholden/moodle 2025-10-17 08:25:45 +08:00
Diego Monroy 70361d24ad MDL-86385 reportbuilder: schedule toggle triggers toast notification. 2025-10-17 01:48:13 +02:00
Andrew Nicols d33ecac29c weekly on-sync release 5.2dev 2025-10-17 07:21:28 +08:00
Andrew Nicols 7f7b815bcf NOBUG: Add upgrade notes 2025-10-17 07:21:27 +08:00
Andrew Nicols 1ce68a5efe weekly release 5.2dev 2025-10-17 06:49:42 +08:00
Andrew Nicols f9285e3092 NOBUG: Add upgrade notes 2025-10-17 06:49:41 +08:00
Paul Holden 8202fdf772 MDL-85554 user: fix class attribute spacing for profile categories.
Update to use non-aliased html_writer class.
2025-10-16 22:29:14 +01:00
Yerai Rodríguez a004eecd52 MDL-86455 forms: disable all modal submit buttons on button click
To provide visual feedback and prevent multiple clicks
on no-submit buttons, all submit buttons within a modal
form will be disabled once any of them is clicked.
2025-10-16 15:57:05 +02:00
vinod404 d8bcefffe2 MDL-86396 reportbuilder: Add DB read/write filters to Task logs report 2025-10-16 18:01:42 +05:30
Mihail Geshoski ddd88d93f5 Merge branch 'MDL-85874_main' of https://github.com/cwarwicker/moodle 2025-10-16 16:50:51 +08:00
Mihail Geshoski 0c7a29b409 Merge branch 'MDL-85729-group-images' of https://github.com/bwalkerl/moodle 2025-10-16 16:10:47 +08:00
Jun Pataleta b23bdb50b5 MDL-85796 core: Remove unnecessary title attribute on profile links
The title attribute with value "View profile" on profile links is
not necessary as the user's name on the link itself is sufficient
to convey the purpose of the link.
2025-10-16 15:48:32 +08:00
Dan Marsden 5d5d875d1d MDL-86376 core: Make public static functions more resilient
a
2025-10-16 20:43:28 +13:00
Andrew Nicols 306fc8cdfe MDL-86848 core: Throw exception instead of redirecting on /index.php 2025-10-16 15:36:00 +08:00
Andrew Nicols 7776b65cfb Merge branch 'MDL-85348' of https://github.com/paulholden/moodle 2025-10-16 13:51:14 +08:00
Andrew Nicols 75c6c78abd Merge branch 'MDL-84745' of https://github.com/paulholden/moodle 2025-10-16 13:43:57 +08:00
Andrew Nicols b8087cbbd8 Merge branch 'MDL-85736' of https://github.com/paulholden/moodle 2025-10-16 13:36:15 +08:00
Andrew Nicols 165ba0581b Merge branch 'MDL-86053' of https://github.com/paulholden/moodle 2025-10-16 13:32:47 +08:00
Andrew Nicols c9c84bebaa Merge branch 'MDL-86293' of https://github.com/paulholden/moodle 2025-10-16 13:24:18 +08:00
Andrew Nicols 143b7c2f35 Merge branch 'MDL-86648' of https://github.com/paulholden/moodle 2025-10-16 13:19:00 +08:00
Mihail Geshoski 88f5906644 Merge branch 'MDL-85988-main' of https://github.com/rjnl/moodle 2025-10-16 10:39:33 +08:00
Huong Nguyen c19e2d8d67 Merge branch 'MDL-84483-main' of https://github.com/jarad-barker/moodle 2025-10-16 09:02:48 +07:00
Mihail Geshoski faea2a7497 Merge branch 'MDL-85618' of https://github.com/paulholden/moodle 2025-10-15 23:37:56 +08:00
hieuvu 53f306ef55 MDL-86621 core_question: Add capability checking for question bank node 2025-10-15 23:16:26 +08:00
ferran 6f524c0250 Merge branch 'MDL-86003' of https://github.com/paulholden/moodle 2025-10-15 15:40:19 +02:00
ferran 5ce37f01b1 Merge branch 'MDL-85486-main' of https://github.com/roland04/moodle 2025-10-15 15:14:58 +02:00
ferran f89494e01a Merge branch 'MDL-66579-main' of https://github.com/rjnl/moodle 2025-10-15 15:07:40 +02:00
Andrew Nicols 1e4e765e72 Merge branch 'MDL-86369' of https://github.com/paulholden/moodle 2025-10-15 17:06:33 +08:00
Andrew Nicols 40ee9be7e6 Merge branch 'MDL-86627' of https://github.com/paulholden/moodle 2025-10-15 17:05:00 +08:00
Andrew Nicols de6e7d3596 Merge branch 'MDL-86645' of https://github.com/paulholden/moodle 2025-10-15 17:00:43 +08:00
Sara Arjona afe53acc05 Merge branch 'MDL-86879-main' of https://github.com/ferranrecio/moodle 2025-10-15 10:59:57 +02:00
Andrew Nicols 8f538ea20a Merge branch 'MDL-86646' of https://github.com/paulholden/moodle 2025-10-15 16:56:35 +08:00
Andrew Nicols 91e74cc3ef Merge branch 'MDL-86147' of https://github.com/paulholden/moodle 2025-10-15 15:53:46 +08:00
Andrew Nicols 419b54fb7b Merge branch 'MDL-86186-main' of https://github.com/lameze/moodle 2025-10-15 15:49:55 +08:00
Andrew Nicols 0fd49592c3 Merge branch 'MDL-81263-main' of https://github.com/phmemmel/moodle 2025-10-15 15:17:03 +08:00
Andrew Nicols de179d940b Merge branch 'MDL-86767-main' of https://github.com/lucaboesch/moodle 2025-10-15 15:14:39 +08:00
Andrew Nicols 50c1f2b490 Merge branch '86322-fix-example-phpdoc-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-10-15 15:09:12 +08:00
Andrew Nicols 9de744a21d Merge branch 'MDL-86762-main' of https://github.com/HuongNV13/moodle 2025-10-15 14:57:39 +08:00
Mihail Geshoski f5a09c1d02 Merge branch 'MDL-81514_main' of https://github.com/marxjohnson/moodle 2025-10-15 10:54:43 +08:00
Mihail Geshoski fee8196806 Merge branch 'MDL-86621-master' of https://github.com/NashTechOpenUniversity/moodle 2025-10-15 09:45:38 +08:00
Paul Holden b80f6ebedb MDL-86627 cohort: format name correctly in report entity column. 2025-10-14 15:04:52 +01:00
Paul Holden 5cfa19b5a7 MDL-86678 reportbuilder: simpler report entity class implementations.
Remove boilerplate, switch to newer API for loading entity report data.
2025-10-14 15:00:13 +01:00
Paul Holden 6bdbbe8dbe MDL-86678 reportbuilder: implement default base entity initialising.
Move boilerplate present across all entity classes to the base class
itself, defining only the minimum number of methods that extending
classes should implement to load entity report data.
2025-10-14 15:00:12 +01:00
Sara Arjona 8faa28992c MDL-86914 choice: Fix inconsistent completion status column in overview 2025-10-14 15:03:42 +02:00
Paul Holden 997dbde2ac MDL-86913 reportbuilder: reduce DB reads in audience access SQL. 2025-10-14 13:58:20 +01:00
Mikel Martín 00bfb9f8f1 MDL-85486 theme_boost: Fix single section page inplace editor
When course format is displayed as single section per page, the inplace editable
in the section page heading was incorrectly displaye, and the instructions panel
was not displayed.
Adding some specific styles to fix that behaviour.
2025-10-14 11:01:42 +02:00
Stephan Robotta e4e3d92a94 MDL-86282 navigation: Main navigation corrected for XMLDB tool 2025-10-14 10:49:35 +02:00
Sara Arjona 055cb985ad MDL-86011 feedback: Prevent admin answering unless enrolled as student 2025-10-14 07:06:54 +02:00
Sara Arjona 4aa0639aa4 MDL-86011 feedback: Adjust display of Responded column in Overview 2025-10-13 14:57:44 +02:00
hieuvu af360dbf2e MDL-86621 core_question: remove incorrect navigation nodes. 2025-10-13 15:34:21 +07:00
Sara Arjona 97c9fea360 MDL-84290 course: Refactor course_controls.feature behat tests 2025-10-13 10:05:08 +02:00
Andi Permana 13c880ebb3 MDL-86559 filter_activitynames: Fix auto links with double spaces 2025-10-13 11:14:47 +07:00
Julien Boulen c44b39e0dd MDL-77137 filelib: Honour proxybypass option for multiple Curl queries 2025-10-12 22:16:58 +02:00
Julien Boulen aace7f2fed MDL-86320 core: Fix unit test qrcode_test 2025-10-12 21:55:21 +02:00
Julien Boulen f9ef1ce02c MDL-86322 phpdoc: Fix the given example in the phpdoc 2025-10-12 21:49:15 +02:00
Julien Boulen 1860955f39 MDL-83543 core: Move download complete status handling to Excel library
When a form is validated, all validation buttons are automatically
locked to prevent them from being sent twice by mistake. When the form
returns a file instead of redirecting to a new HTML page, a mechanism
(\core_form\util::form_download_complete()) must be called to
reactivate the form's validation buttons.

This mechanism is called for CSV files (file lib/csvlib.class.php), but
not when downloading xls files. The mechanism is only called when
downloading grades in Excel format (file
grade/export/xls/grade_export_xls.php).

The patch proposes to call this mechanism globally for all Excel file
downloads (file lib/excellib.class.php), and not just for grade
downloads (file grade/export/xls/grade_export_xls.php).
2025-10-12 21:35:03 +02:00
ferran 97c4e77bda MDL-86879 core_course: optimise subsections loading 2025-10-10 14:02:10 +02:00
Jun Pataleta daefc8b808 MDL-85820 lib: Update pear/readme_moodle.txt 2025-10-10 11:01:13 +08:00
Tim Hunt c120067478 MDL-85820 formslib: don't add '-' to client-side valiation 2025-10-10 10:58:13 +08:00
Luca Bösch 687efadc9a MDL-86767 forum: let forum use standard buttons. 2025-10-09 21:05:23 +02:00
Huong Nguyen 0efd4011ad weekly release 5.2dev 2025-10-09 21:58:07 +07:00
Huong Nguyen 795fec0ca4 Merge branch 'MDL-86777' of https://github.com/paulholden/moodle 2025-10-09 08:47:30 +07:00
Huong Nguyen 017c8853a9 Merge branch 'MDL-86736' of https://github.com/paulholden/moodle 2025-10-09 08:43:36 +07:00
Huong Nguyen 3587e1e26b Merge branch 'MDL-86654-main' of https://github.com/junpataleta/moodle 2025-10-09 08:41:16 +07:00
Huong Nguyen 3de53e238d Merge branch 'MDL-86575' of https://github.com/paulholden/moodle 2025-10-09 08:20:24 +07:00
Huong Nguyen 9d038ea3d3 Merge branch 'MDL-86574' of https://github.com/paulholden/moodle 2025-10-09 08:13:52 +07:00
Rajneel Totaram 1e7fbc4473 MDL-85988 mod_book: Fix chapter content overlaps navigation buttons 2025-10-09 10:44:54 +12:00
Mihail Geshoski eefbc05037 Merge branch 'MDL-78495-main_exclude_badges_from_recyclebin' of https://github.com/sharpchi/moodle 2025-10-08 23:36:32 +08:00
Paul Holden 5aff41fe35 MDL-82867 output: consistently space external link pixicon. 2025-10-08 16:17:47 +01:00
Rajneel Totaram ec953535b1 MDL-66579 mod_book: Make chapter numbering consistent 2025-10-08 23:06:22 +12:00
Mark Sharp 28712cd4fb MDL-78495 Badges: Exclude badges from recycle bin
- co-authored by: Sara Arjona

Add badges to recycle bin test
2025-10-08 11:08:23 +01:00
Andrew Nicols 4762b11f28 MDL-86849 core: configrw check should check the actual config.php 2025-10-08 14:53:45 +08:00
Mihail Geshoski 0438316226 Merge branch 'MDL-86382-main' of https://github.com/PhMemmel/moodle 2025-10-08 13:33:00 +08:00
Mihail Geshoski 7aa5eb0f10 Merge branch 'MDL-86300-main' of https://github.com/sh-csg/moodle 2025-10-08 13:23:31 +08:00
Jun Pataleta a763526d79 Merge branch 'MDL-86828-main' of https://github.com/HuongNV13/moodle 2025-10-08 12:21:03 +08:00
Jun Pataleta 1dbe3c88fd Merge branch 'MDL-86827-main' of https://github.com/HuongNV13/moodle 2025-10-08 12:14:14 +08:00
Paul Holden c060fb6b22 MDL-86332 completion: remove criteria only from current course on save. 2025-10-07 12:23:36 +01:00
Paul Holden 31f9676fdd MDL-86069 blog: verify success state of RSS file before processing.
Avoids subsequent errors in the SimplePie library when trying to
process invalid feed content, triggering numerous PHP deprecation
notices.

See: https://github.com/simplepie/simplepie/issues/810
2025-10-07 12:19:20 +01:00
Jun Pataleta d461aae106 Merge branch 'MDL-86450-forum-accessibility-check-boxes-in-advanced-search-form-not-labeled-corrected' of https://github.com/stopfstedt/moodle 2025-10-07 14:07:52 +08:00
Philipp Memmel e58d9d7a72 MDL-81263 grunt: Respect local .eslintignore and .stylelintignore 2025-10-07 04:08:11 +00:00
Jun Pataleta 428d760fd4 MDL-86654 customfield: Ensure we can test the display of move category
* And simplify checking for the move buttons
2025-10-07 10:00:04 +08:00
james-cnz 99c6386eb2 MDL-85917 course: Relocate section title update code 2025-10-07 13:05:59 +13:00
Jun Pataleta 14dae0b4e7 MDL-86654 customfield: Show drag handles only when necessary
* Show category drag handles when there are 2 or more categories
* Show custom field drag handles when there are a total of 2 or more
fields on the page.
2025-10-06 15:44:23 +08:00
rajutm25 35569b3730 MDL-86349 libraries: Upgrade PHP-JWT to v6.11.1 2025-10-06 12:54:29 +05:30
Paul Holden 5ad9e6598f MDL-86777 customfield: show formatted category name in move dialog. 2025-10-06 08:11:19 +01:00
Huong Nguyen 0bd6f99d04 MDL-86828 upgrade: Add the 5.1.0 separation line to all upgrade scripts 2025-10-04 11:24:26 +07:00
Huong Nguyen 94fa7ba67b MDL-86827 backup: Bump release to 5.2 2025-10-04 11:15:17 +07:00
Huong Nguyen 4e9fd0b248 weekly back-to-dev release 5.2dev 2025-10-04 10:19:07 +07:00
Mark Johnson fdf4031014 MDL-85975 backup: Handle nulls and arrays in restored questiondata
unset_excluded_fields() was using isset() to determine if the field
targeted for removal is present in the provided data structure. However,
isset() returns false if the field exists, but contains null. This means
the field will not be unset when it should be.

This resolves this by changing the isset() to a property_exists() check
for objects, and array_key_exists() check for arrays. It also expands
the function to properly handle arrays of arrays, or arrays of values,
which was not fully covered before and is used by some third-party
question types.
2025-10-03 15:46:44 +01:00
Paul Holden 71f65c7677 MDL-80422 auth_oauth2: honour site/user preferred homepage post-login.
Co-authored-by: Markus Kwaśnicki <markus.kwasnicki@uni-mainz.de>
2025-10-03 14:18:33 +01:00
Paul Holden df337ee4fd MDL-86822 mod_h5pactivity: fix block page type list method parameters.
Similar was done before in 7a77493b.
2025-10-02 12:01:21 +01:00
Huong Nguyen b74305f306 MDL-86762 repository_flickr: Fix Flickr fetching and downloading 2025-10-02 17:46:23 +07:00
Jayce Birrell 98ccf1242e MDL-86802 core: make CURLOPT_USERPWD optional for put()
Microsoft does not always allow an Authorization header when using PUT but the put() method sets one
by default - https://learn.microsoft.com/en-us/graph/api/driveitem-createuploadsession?view=graph-rest-1.0#remarks.
I've included an optional argument to prevent this, but the default
value will maintain the pre-existing logic to avoid other regressions.
2025-10-02 15:50:04 +09:30
Stefan Topfstedt 81782e78b5 MDL-86450 Forum: adds missing IDs to advanced search form elements. 2025-09-30 11:44:57 -07:00
Lars Bonczek e49d18632e MDL-77894 core_output: Ignore themes when template name ends with "!" 2025-09-30 12:03:04 +02:00
Stefan Hanauska 656537ab54 MDL-86300 backup: Save old id of top category
Co-authored-by: Paola Maneggia <paola.maneggia@isb.bayern.de>
2025-09-29 19:22:49 +02:00
Andi Permana 9a09603bad MDL-86463 libraries: Upgrade AWS SDK for PHP to 3.356.22 2025-09-29 18:14:10 +07:00
yusufwib01 bf22703179 MDL-86344 libraries: upgrade EvalMath to 1.0.2 2025-09-29 15:39:45 +07:00
Philipp Memmel 12b5e77eb5 MDL-86382 qbank_bulkmove: Fix selecting placeholder in qbank selector
@Co-authored-by: Luca Bösch <luca.boesch@bfh.ch>
2025-09-26 13:55:54 +00:00
Paul Holden be8e89f026 MDL-86736 block_myoverview: remove stray template content.
Changes made in c530e4c4 left some stray elements in the templates,
which manifested themselves as displaying misplaced pipe characters
depending on unrelated site config (`$CFG->courselistshortnames`).
2025-09-26 11:38:23 +01:00
Mark Johnson 62c27d557e MDL-81514 assign: Show non-participation groups in activity menu
This sets the flag in the activity menu for selecting the grade
summaries for each groups, to include non-participation groups as well.
2025-09-25 16:45:02 +01:00
Mark Johnson 5760b0969e MDL-81514 assign: Enable filtering by non-participation groups
This adds non-participation groups to the group menu on the Submissions
screen, so that submissions can be filtered by these groups.
2025-09-25 16:45:02 +01:00
Mark Johnson dc2a09d59a MDL-81514 groups: Add participationonly option to activity group menu
groups_print_activity_menu() and groups_get_activity_group() now include
an additional $participationonly parameter,
which is true by default. This can be set false when we want the user to
be able to select a non-participation group within
an activity, for example if a teacher wants to filter assignment
submissions by non-participation groups. It should never be
used when the menu is displayed to students, as this may allow them to
participate using non-participation groups.

groups_sort_menu_options() now has a $splitparticipation parameter,
which will split non-participation groups out into their own optgroup at
the end of the menu.
2025-09-25 16:45:02 +01:00
Benjamin Walker 188c3b9d97 MDL-85729 group: Lazy load group image urls in search box 2025-09-25 14:25:04 +10:00
Paul Holden 2d9b7c5669 MDL-86369 mod_scorm: fix attempt deletion behaviour on submit/redirect.
Standard after a POST submission is to redirect back to where user came
from (in this case), to avoid awkward page reload behaviour. Also fix
bug where deleting an attempt for a user, where the attempt didn't exist
would delete all attempts for that user.
2025-09-22 09:06:12 +01:00
Paul Holden d117147b46 MDL-86574 tool_cohortroles: format cohort data during privacy export. 2025-09-22 09:00:28 +01:00
Paul Holden 9dff613510 MDL-86648 mod_assign: refer to selected user when calculating override.
The selected user is either that chosen for a new override, or the saved
value when editing/loading an existing override.
2025-09-17 15:37:39 +01:00
Conn Warwicker ba0d560b34 MDL-85874 core_grade: Fix grade category toggle JS error. 2025-09-16 15:43:33 +01:00
Paul Holden d81ef5cc18 MDL-86646 gradereport_user: ensure table rowspan always populated. 2025-09-16 13:21:34 +01:00
Paul Holden a40136f489 MDL-86645 grade: account for text grade types determining element icon. 2025-09-16 09:54:15 +01:00
Paul Holden 75b5acd903 MDL-85418 user: prevent default click event/scroll in user sub-menus. 2025-09-15 10:41:19 +01:00
Paul Holden 0ac091ce68 MDL-86147 block_myoverview: consistent zero-state view styling.
Make the zero state template consistent with the populated course
template from 6415776d, specifically in regards to borders.
2025-09-15 10:39:24 +01:00
yusufwib01 d3019c1aaf MDL-86467 libraries: upgrade to version 3.2.0 of ZipStream. 2025-09-13 02:14:41 +07:00
Paul Holden 7dccf3087d MDL-85887 tag: style search form using common Bootstrap controls. 2025-09-12 11:38:43 +01:00
Paul Holden 554aa9c44a MDL-86607 mod_feedback: remove/deprecate direct access to $SESSION.
The print_captcha.php script did so, but has been unused since 6cc1599e
some 15 years ago. Time to get rid.
2025-09-11 11:35:48 +01:00
Paul Holden 2d6dad4a32 MDL-86575 cohort: format cohort names in external service return data. 2025-09-07 19:30:06 +02:00
Paul Holden 54538a8c11 MDL-86003 datafield_textarea: define missing media/subtitle options.
In order to insert multimedia using the editor, we need a "subtitle"
filepicker option.
2025-09-07 10:52:57 +02:00
Andrew Nicols 6ae66783ac MDL-86534 mod_forum: Only run bulk action JS if they are enabled 2025-09-03 12:45:23 +02:00
yusufwib01 45f6353c73 MDL-86350 media_videojs: Upgrade VideoJS to 8.23.4 2025-08-27 16:06:42 +07:00
Stefan Hanauska 86a274c76c MDL-76823 course: Sticky footer for course and activity edit form 2025-08-23 19:09:16 +02:00
Paul Holden 37971fa8a3 MDL-85592 output: export missing node sort attribute for template. 2025-08-21 13:06:19 +01:00
Paul Holden 6820464a64 MDL-85618 filter_displayh5p: change regular expression delimeter.
Ensure we don't confuse the expression parser when supplied "Allowed
source" contains coincidental control characters in the URL, e.g. '/'
and '#'.

Note that `preg_quote(...)` isn't appropriate here, because the given
URL may indeed contain genuine control characters already.
2025-08-21 13:00:43 +01:00
Paul Holden 1ab675d964 MDL-85348 cohort: disable report bulk deletion for managed cohorts. 2025-08-20 09:09:22 +01:00
Paul Holden 3cb8225ec7 MDL-85736 core: don't double escape page URL in meta refresh tag.
Co-authored-by: Clay Cross <claycross@gmail.com>
2025-08-19 17:11:47 +01:00
Paul Holden 0102580221 MDL-84745 cohort: capability check prior to bulk deletion button. 2025-08-18 08:51:00 +01:00
Paul Holden 10d11787e9 MDL-86293 communication: queue/execute membership task if appropriate.
Avoid doing so if the current instance does not support user features.
2025-08-15 14:03:03 +01:00
Paul Holden 737cc2fde4 MDL-86053 mod_assign: account for lack of global scales in settings. 2025-08-13 10:15:03 +01:00
Paul Holden 66f05f2b9e MDL-85312 profilefield_menu: remove locked field option formatting.
We shouldn't be formatting the option key when setting constant
value, because that isn't formatted - only the option value is.
2025-08-12 08:34:27 +01:00
Mark Johnson 538845427f MDL-86010 tool_lp: Test fetching evidence works after cm deletion 2025-08-08 15:20:49 +01:00
Michael Kotlyar ba0d0270d6 MDL-86010 competency: Delete competency evidence on cm delete
Evidence recorded against course module competencies was not deleted
with the course module. This led to errors when attempting to view the
competency record on a learning plan.

This change will delete associated evidence records with the cm, and
will clean up any existing orphaned records on upgrade.

Co-Authored-By: Mark Johnson <mark.johnson@catalyst-eu.net>
2025-08-08 15:20:44 +01:00
Jose Pico e832f958b6 MDL-86225 plagiarism: Update data type from object to array 2025-08-06 15:32:16 +10:00
dustinhuynh 60ff6cfd12 MDL-86058 core_task: enable disable tasks with a pending upgrade 2025-08-06 10:10:39 +10:00
Simey Lameze ac3a20fe2c MDL-86186 behat: enlarge window size before asserting 2025-08-04 11:26:53 +08:00
Mi Jia Looi e47c911609 MDL-86017 mod_folder: Cast customdata to object in folder_cm_info_view() 2025-07-22 13:08:19 +10:00
Andrew Nicols 5afee9b51f MDL-86018 tool_xmldb: Check XML content in reconciler 2025-07-15 11:17:34 +08:00
djarrancotleanu e63b4c48bd MDL-85366 core: Add proper PHPMailer handling of .ics files 2025-07-08 10:59:23 +10:00
Tim Schroeder 2d43a2549e MDL-81604 Files: Fix broken file serving w/ Apache + PHP-FPM + PHP >=8.1 2025-07-04 19:44:37 +02:00
Philipp Memmel 35dabb28ca MDL-85168 lib: Move courseid filter to participants_filter.js 2025-05-09 07:21:01 +02:00
Jarad Barker 713a0695be MDL-84483 core_files: Always fire after_file_created hook 2025-02-10 18:00:36 +11:00
36439 changed files with 4122053 additions and 145633 deletions
+185
View File
@@ -0,0 +1,185 @@
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Generates tsconfig.aliases.json for cross-component TypeScript imports.
*
* Moodle ESM source files can import from other components using the alias
* scheme @moodle/lms/<component>/* (e.g. @moodle/lms/core/SomeUtil). This
* file reads the Moodle component registry (.grunt/components.js), finds every
* component that has a js/esm/src/ directory, and writes the corresponding
* TypeScript path mappings to tsconfig.aliases.json.
*
* tsconfig.json extends tsconfig.aliases.json, so TypeScript picks up the
* mappings automatically. The file is skipped if its content is unchanged, to
* avoid unnecessary rebuilds.
*
* This must run before esbuild compilation. The Grunt `jsconfig` task calls
* generateAliases() so that both jsconfig.json and tsconfig.aliases.json are
* kept in sync. The `react` task depends on `jsconfig`, so aliases are always
* up to date before a React build.
*
* @copyright 2026 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import fs from "fs";
import path from "path";
import { createRequire } from "module";
const rootDir = process.cwd();
const tsconfigOut = path.join(rootDir, "tsconfig.aliases.json");
const TS_ALIASES_WARNING =
"// WARNING: Do not edit this file manually. It is generated by `grunt jsconfig`.\n";
/**
* Load Moodle component paths from `.grunt/components.js`.
*
* @returns {Record<string, string>} Map of component paths to component names.
*/
function loadComponentPathMap() {
const require = createRequire(import.meta.url);
// Load Moodle's components data from .grunt/components.js.
const { fetchComponentData } = require(
path.join(process.cwd(), ".grunt", "components.js")
);
// Format: `{ components: { "public/lib": "core", ... } }`.
const componentsData = fetchComponentData().components;
// Expected:
// `{ "public/lib": "core", "public/ai": "core_ai", ... }`.
return componentsData;
}
/**
* Compare two TypeScript `paths` maps for exact equality.
*
* @param {Record<string, string[]>} a First paths map.
* @param {Record<string, string[]>} b Second paths map.
* @returns {boolean} True when keys and values match in order.
*/
function pathsEqual(a, b) {
const aKeys = Object.keys(a);
const bKeys = Object.keys(b);
if (aKeys.length !== bKeys.length) {
return false;
}
for (const key of aKeys) {
if (!Object.prototype.hasOwnProperty.call(b, key)) {
return false;
}
const aArr = a[key] ?? [];
const bArr = b[key] ?? [];
if (aArr.length !== bArr.length) {
return false;
}
for (let i = 0; i < aArr.length; i++) {
if (aArr[i] !== bArr[i]) {
return false;
}
}
}
return true;
}
/**
* Parse JSON content and tolerate line comments.
*
* @param {string} content Raw JSON/JSONC file content.
* @returns {unknown}
*/
function parseJsonWithComments(content) {
const stripped = content
.replace(/^\uFEFF/, "")
.replace(/^\s*\/\/.*$/gm, "");
return JSON.parse(stripped);
}
/**
* Convert JSON output so single-value arrays are rendered on one line.
*
* @param {unknown} obj Data to stringify.
* @returns {string} JSON string with flattened single-value arrays.
*/
function stringifyFlatArrays(obj) {
const json = JSON.stringify(obj, null, 2);
return TS_ALIASES_WARNING + json.replace(/\[\s+\"(.*?)\"\s+\]/g, '["$1"]') + "\n";
}
/**
* Generate `tsconfig.aliases.json` from Moodle component metadata.
*
* Includes core aliases, discovers plugin React source aliases, and skips
* rewriting when aliases have not changed.
*
* @returns {void}
*/
export function generateAliases() {
const componentPathMap = loadComponentPathMap();
// Build TS paths for tsconfig.aliases.json
/** @type {Record<string, string[]>} */
const tsPaths = {
// Always include core alias.
"@moodle/lms/core/*": ["./public/lib/js/esm/src/*"],
};
for (const [componentPath, componentName] of Object.entries(componentPathMap)) {
const runtimeAliasKey = `@moodle/lms/${componentName}/*`;
const targetPattern = `./${path
.join(componentPath, "js", "esm", "src", "*")
.replace(/\\/g, "/")}`;
tsPaths[runtimeAliasKey] = [targetPattern];
}
const tsconfig = {
compilerOptions: { paths: tsPaths },
};
// If tsconfig paths didn't change, skip regeneration
let previousPaths = null;
let hasWarningHeader = false;
if (fs.existsSync(tsconfigOut)) {
try {
const previousContent = fs.readFileSync(tsconfigOut, "utf8");
hasWarningHeader = previousContent.startsWith(TS_ALIASES_WARNING);
const previousTsconfig = /** @type {{compilerOptions?: {paths?: Record<string, string[]>}}} */ (
parseJsonWithComments(previousContent)
);
previousPaths = previousTsconfig.compilerOptions?.paths ?? {};
} catch {
// ignore parse errors and treat as "no previous cache"
previousPaths = null;
}
}
if (previousPaths && hasWarningHeader && pathsEqual(previousPaths, tsPaths)) {
console.log("✓ Generating tsconfig.aliases.json was skipped. No alias modifications detected.");
return;
}
// Write tsconfig.aliases.json
fs.writeFileSync(tsconfigOut, stringifyFlatArrays(tsconfig));
console.log("✓ Generating tsconfig.aliases.json");
}
+324
View File
@@ -0,0 +1,324 @@
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Core esbuild library for Moodle ESM components.
*
* This is the single source of all build logic. The Grunt tasks
* (.grunt/tasks/react.js) import from here rather than duplicating
* configuration or build steps.
*
* Source layout convention:
* <component>/js/esm/src/**\/*.{ts,tsx} → <component>/js/esm/build/**\/*.js
*
* Exports:
* createBuildConfig(isDev) esbuild config object; pass isDev=true
* to disable minification / add sourcemaps.
* buildPluginComponents(isDev) Glob for every js/esm/src tree across
* core and plugins, compile all in parallel.
* buildSingleFile(filePath, isDev) Compile one source file; used by the
* Grunt watch task on incremental changes.
* watchComponents(isDev) Start esbuild's native watch mode so the
* compiler rebuilds affected files on save.
* resolveComponentPaths(entry) Map an absolute source path to its
* relative input path and output path.
*
* @copyright 2026 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import esbuild from "esbuild";
import { glob } from "glob";
import chalk from "chalk";
import path from "path";
import fs from "fs";
const projectRoot = process.cwd();
/**
* Resolve a path from the current project root.
*
* @param {...string} segments Path segments to resolve.
* @returns {string} Absolute path from project root.
*/
const fromRoot = (...segments) => path.resolve(projectRoot, ...segments);
/**
* Create an incremental dot progress indicator.
* Prints one dot per completed build and wraps lines for readability.
*
* @param {number} total Total number of items to build.
* @returns {{ start: () => void, tick: () => void, succeed: (msg: string) => void, fail: (msg: string) => void }}
*/
function createDotProgress(total) {
const dotsPerLine = 60;
let printed = 0;
return {
start: () => {
process.stdout.write(`${chalk.cyan("Building")} `);
},
tick: () => {
printed++;
process.stdout.write(chalk.cyan("."));
if (printed % dotsPerLine === 0 && printed < total) {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
}
},
succeed: (msg) => {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
process.stdout.write(`${chalk.green("✓")} ${msg}\n`);
},
fail: (msg) => {
process.stdout.write(` ${chalk.dim(`[${printed}/${total}]`)}\n`);
process.stdout.write(`${chalk.red("✗")} ${msg}\n`);
},
};
}
/**
* Build a single React component entry file.
*
* @param {string} entry Absolute entry file path.
* @param {import('esbuild').BuildOptions} buildConfig Shared esbuild configuration.
* @returns {Promise<{file: string, output?: string, error: Error|null}>}
*/
async function buildComponent(entry, buildConfig) {
const resolved = resolveComponentPaths(entry);
if (!resolved) {
return { file: entry, error: new Error(`Unknown path pattern: ${entry}`) };
}
const { file, output } = resolved;
fs.mkdirSync(path.dirname(output), { recursive: true });
try {
await esbuild.build({
...buildConfig,
entryPoints: [entry],
outfile: output,
});
return { file, output, error: null };
} catch (error) {
return { file, error: error instanceof Error ? error : new Error(String(error)) };
}
}
/**
* Resolve source and output paths for a component entry.
*
* @param {string} entry Absolute component source path.
* @returns {{file: string, output: string} | null} Relative file info and output path, or null for unsupported paths.
*/
export function resolveComponentPaths(entry) {
const rel = path.relative(projectRoot, entry);
if (rel.includes(path.join('esm', 'src'))) {
const [part, rawFile] = rel.split(path.join('esm', 'src'));
const file = rawFile.replace(/^[\/\\]/, '');
return {
file,
output: fromRoot(part, 'esm', 'build', file.replace(/\.(ts|tsx)$/, '.js')),
};
}
return null;
}
/**
* Run all builds in parallel, showing incremental dot progress.
*
* @param {string[]} entryPoints Absolute entry file paths.
* @param {import('esbuild').BuildOptions} buildConfig Shared esbuild configuration.
* @returns {Promise<{errors: {file: string, output?: string, error: Error|null}[]}>}
*/
async function runParallelBuilds(entryPoints, buildConfig) {
const total = entryPoints.length;
/** @type {{file: string, output?: string, error: Error|null}[]} */
const errors = [];
const startTime = Date.now();
const progress = createDotProgress(total);
progress.start();
await Promise.all(entryPoints.map(async (entry) => {
const result = await buildComponent(entry, buildConfig);
if (result.error) {
errors.push(result);
}
progress.tick();
}));
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
const succeeded = total - errors.length;
if (errors.length > 0) {
progress.fail(`${succeeded}/${total} built · ${elapsed}s`);
for (const e of errors) {
console.error(chalk.red(`${e.file}: ${e.error?.message ?? ''}`));
}
} else {
progress.succeed(chalk.bold(`${total} components built`) + chalk.dim(` · ${elapsed}s`));
}
return { errors };
}
/**
* Create the shared esbuild build configuration.
*
* @param {boolean} isDev Whether development mode is enabled.
* @returns {import('esbuild').BuildOptions} esbuild configuration object.
*/
export function createBuildConfig(isDev) {
return {
bundle: true,
format: "esm",
external: ["react", "react/*", "react-dom", "react-dom/*", "@moodlehq/design-system", "@moodlehq/design-system/*", "@moodle/lms", "@moodle/lms/*"],
jsx: "automatic",
minify: !isDev,
sourcemap: isDev ? 'inline' : false,
jsxDev: isDev,
keepNames: isDev,
treeShaking: !isDev,
define: { 'process.env.NODE_ENV': isDev ? '"development"' : '"production"' },
};
}
/**
* Build all plugin and core React components.
*
* @param {boolean} isDev Whether development mode is enabled.
* @returns {Promise<void>}
*/
export async function buildPluginComponents(isDev) {
console.log(chalk.green('> Building components...'));
const entryPoints = glob.sync("**/js/esm/src/**/*.{ts,tsx}", {
cwd: projectRoot,
absolute: true,
ignore: [
`${process.cwd()}/node_modules/**`,
`${process.cwd()}/vendor/**`,
],
});
const buildConfig = createBuildConfig(isDev);
const { errors } = await runParallelBuilds(entryPoints, buildConfig);
if (errors.length > 0) {
throw new Error(`React build failed: ${errors.length} component(s) could not be built`);
}
}
/**
* Start esbuild in native watch mode over all React components.
*
* Creates a single incremental build context for all entry points so that
* esbuild can reuse its internal graph between rebuilds instead of starting
* from scratch on every file change.
*
* @param {boolean} isDev Whether to build in development mode.
* @param {((srcFiles: string[]) => void) | undefined} [onRebuild] Called with the rebuilt entry source
* files (relative to project root) after each non-initial successful rebuild. Use this to run
* follow-up tasks such as linting without coupling them to this module.
* @returns {Promise<import('esbuild').BuildContext|null>} The active context, or null if no source files exist.
*/
export async function watchComponents(isDev, onRebuild) {
const entryPoints = glob.sync("**/js/esm/src/**/*.{ts,tsx}", {
cwd: projectRoot,
absolute: true,
ignore: [
`${process.cwd()}/node_modules/**`,
`${process.cwd()}/vendor/**`,
],
});
if (entryPoints.length === 0) {
return null;
}
const buildConfig = createBuildConfig(isDev);
// Map each source file to an {in, out} pair so esbuild can write each
// component to its custom output directory while sharing a single context.
// The 'out' path is relative to outdir (projectRoot) and has no extension —
// esbuild appends the appropriate extension automatically.
// Build entry pairs and ensure output directories exist in a single pass.
const entryPairs = entryPoints.flatMap(entry => {
const resolved = resolveComponentPaths(entry);
if (!resolved) {
return [];
}
fs.mkdirSync(path.dirname(resolved.output), { recursive: true });
return [{ in: entry, out: path.relative(projectRoot, resolved.output).replace(/\.js$/, '') }];
});
// Report build results to the terminal after every build (initial and on each change).
// metafile: true populates result.metafile.outputs so we know which files were written.
// On a rebuild only the affected outputs appear, so it effectively names the changed file.
/** @type {import('esbuild').Plugin} */
const watchReporter = {
name: 'watch-reporter',
setup(build) {
let isInitial = true;
let startTime = 0;
build.onStart(() => {
startTime = Date.now();
});
build.onEnd(result => {
const now = new Date().toLocaleTimeString();
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
if (result.errors.length > 0) {
console.error(chalk.red(`[${now}] ✗ Build failed (${result.errors.length} error(s))`) + chalk.dim(` · ${elapsed}s`));
return;
}
const outputs = Object.keys(result.metafile?.outputs ?? {});
console.log(chalk.green(`[${now}] ✓ ${outputs.length} component(s) built`) + chalk.dim(` · ${elapsed}s`));
if (isInitial) {
isInitial = false;
} else if (onRebuild) {
// entryPoint is the source file (relative to projectRoot) that triggered
// this rebuild. Pass it to the caller so they can run follow-up tasks
// (e.g. linting) without this module needing to know about them.
const srcFiles = Object.values(result.metafile?.outputs ?? {})
.map(output => output.entryPoint)
.filter(/** @param {string|undefined} f */ f => !!f);
onRebuild(/** @type {string[]} */ (srcFiles));
}
});
},
};
const ctx = await esbuild.context({
...buildConfig,
entryPoints: entryPairs,
outdir: projectRoot,
metafile: true,
plugins: [watchReporter],
});
await ctx.watch();
return ctx;
}
+17
View File
@@ -244,6 +244,23 @@
'sourceType': 'module',
'requireConfigFile': false
}
},
{
files: ["**/*.ts", "**/*.tsx"],
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
ecmaFeatures: {
jsx: true
},
allowSyntheticDefaultImports: true
},
rules: {
// promise/no-native crashes on TypeScript ASTs (same reason it is
// disabled for AMD files above). Native Promises are standard in TS.
'promise/no-native': 'off',
'promise/avoid-new': 'off',
}
}
]
}
+4
View File
@@ -3,3 +3,7 @@
**.js.map -diff
**-min.js -diff
**.min.js -diff
# Remove composer lock file changes from standard diff views.
/composer.lock -diff
/lib/js/bundles/*/*.js -diff
+1 -1
View File
@@ -1,2 +1,2 @@
# Primary donations pages.
custom: ["https://moodle.com/donations/", "https://fund.moodle.org"]
custom: ["https://moodle.com/donations/"]
+118
View File
@@ -0,0 +1,118 @@
name: Run tests in a Composed Moodle Setup
on:
push:
branches-ignore:
- main
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.4
jobs:
PHPUnit:
runs-on: ${{ matrix.os }}
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:16' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-24.04
php: 8.3
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-24.04
php: 8.4
db: pgsql
steps:
- name: Run MySQL Server
if: ${{ matrix.db == 'mysqli' }}
run: |
docker run --rm \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-e MYSQL_ROOT_PASSWORD=test \
-p 3306:3306 \
-d \
--tmpfs /var/lib/mysql:rw,noexec,nosuid,size=1024M \
mysql:8.4 \
--skip-log-bin \
--collation-server=utf8mb4_bin
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v5
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=5000
coverage: none
tools: composer
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v6
with:
path: 'moodle'
- name: 'Preparing the environment'
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
sudo locale-gen en_AU.UTF-8
- name: Create the new Composer Project
run: |
mkdir testsite
cp moodle/.github/workflows/composed/composer.json testsite/composer.json
cp moodle/.github/workflows/composed/config.php testsite/config.php
mkdir -p testsite/data/moodledata
mkdir -p testsite/data/phpunitdata
- name: Install the Moodle test site
working-directory: testsite
run: |
composer install --no-interaction
- name: Setting up PHPUnit
working-directory: testsite
env:
dbtype: ${{ matrix.db }}
run: |
php moodle/public/admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
working-directory: testsite
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: |
vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
+25
View File
@@ -0,0 +1,25 @@
{
"type": "project",
"require": {
"moodle/composer-installer": "^1",
"moodle/moodle-composer-scaffold": "^1",
"moodle/moodle": "@dev",
"moodle/moodle-testing": "^1.0"
},
"repositories": [
{
"name": "moodleundertest",
"type": "path",
"url": "../moodle"
}
],
"config": {
"audit": {
"block-insecure": false
},
"allow-plugins": {
"moodle/composer-installer": true,
"moodle/moodle-composer-scaffold": true
}
}
}
+67
View File
@@ -0,0 +1,67 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Template configuraton file for GitHub Actions CI/CD using Composer.
*
* @package core
* @copyright 2020 onwards Eloy Lafuente (stronk7) {@link https://stronk7.com}
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// This cannot be used out from a GitHub Actions workflow, so just exit.
getenv('GITHUB_WORKFLOW') || die; // phpcs:ignore moodle.Files.MoodleInternal.MoodleInternalGlobalState
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = getenv('dbtype');
$CFG->dblibrary = 'native';
$CFG->dbhost = '127.0.0.1';
$CFG->dbname = 'test';
$CFG->dbuser = 'test';
$CFG->dbpass = 'test';
$CFG->prefix = 'm_';
$CFG->dboptions = ['dbcollation' => 'utf8mb4_bin'];
$host = 'localhost';
$CFG->wwwroot = "http://{$host}";
$CFG->dataroot = __DIR__ . '/data/moodledata';
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
// Debug options - possible to be controlled by flag in future.
$CFG->debug = (E_ALL); // DEBUG_DEVELOPER.
$CFG->debugdisplay = 1;
$CFG->debugstringids = 1; // Add strings=1 to url to get string ids.
$CFG->perfdebug = 15;
$CFG->debugpageinfo = 1;
$CFG->allowthemechangeonurl = 1;
$CFG->passwordpolicy = 0;
$CFG->cronclionly = 0;
$CFG->pathtophp = getenv('pathtophp');
$CFG->phpunit_dataroot = __DIR__ . '/data/phpunitdata';
$CFG->phpunit_prefix = 't_';
$CFG->routerconfigured = true;
define('TEST_EXTERNAL_FILES_HTTP_URL', 'http://localhost:8080');
define('TEST_EXTERNAL_FILES_HTTPS_URL', 'http://localhost:8080');
define('TEST_SESSION_REDIS_HOST', 'localhost');
define('TEST_CACHESTORE_REDIS_TESTSERVERS', 'localhost');
+2
View File
@@ -58,6 +58,8 @@ $CFG->pathtophp = getenv('pathtophp');
$CFG->phpunit_dataroot = realpath(dirname(__DIR__)) . '/phpunitdata';
$CFG->phpunit_prefix = 't_';
$CFG->routerconfigured = true;
define('TEST_EXTERNAL_FILES_HTTP_URL', 'http://localhost:8080');
define('TEST_EXTERNAL_FILES_HTTPS_URL', 'http://localhost:8080');
+2 -2
View File
@@ -51,7 +51,7 @@ jobs:
chunk=$(((($count % $chunks)) + 1))
echo "$testname $testfile" >> ./chunk_$chunk.txt
done < <(grep "function test_" "${testfile}" | sed -r "s/^.*function (test_[a-zA-Z0-9_]+).*/\1/")
done < <(find . -name "*_test.php")
done < <(find . -name "*_test.php" -not -path "*/fixtures/*")
# Generate the matrix to run tests.
echo "matrix=$(ls -1 chunk_*.txt | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
echo "$count individual tests collected in $chunks files"
@@ -85,7 +85,7 @@ jobs:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 14
postgresql version: 16
postgresql db: test
postgresql user: test
postgresql password: test
+22 -21
View File
@@ -56,13 +56,21 @@ jobs:
image: redis
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:16' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-24.04
php: 8.2
php: 8.3
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
@@ -71,27 +79,20 @@ jobs:
db: pgsql
steps:
- name: Setting up DB mysql
- name: Run MySQL Server
if: ${{ matrix.db == 'mysqli' }}
uses: moodlehq/mysql-action@v1
with:
collation server: utf8mb4_bin
mysql version: 8.4
mysql database: test
mysql user: test
mysql password: test
use tmpfs: true
tmpfs size: '1024M'
extra conf: --skip-log-bin
- name: Setting up DB pgsql
if: ${{ matrix.db == 'pgsql' }}
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 15
postgresql db: test
postgresql user: test
postgresql password: test
run: |
docker run --rm \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-e MYSQL_ROOT_PASSWORD=test \
-p 3306:3306 \
-d \
--tmpfs /var/lib/mysql:rw,noexec,nosuid,size=1024M \
mysql:8.4 \
--skip-log-bin \
--collation-server=utf8mb4_bin
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v4
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.2, 8.4]
php: [8.3, 8.4]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
+1 -1
View File
@@ -59,7 +59,7 @@ jobs:
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
- os: windows-latest
php: 8.2
php: 8.3
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
+1
View File
@@ -60,3 +60,4 @@ phpcs.xml
jsconfig.json
UPGRADING-CURRENT.md
.phpunit.cache
tsconfig.aliases.json
+23 -3
View File
@@ -184,11 +184,13 @@ const getThirdPartyLibsList = relativeTo => {
const fs = require('fs');
const path = require('path');
return fetchComponentData().pathList
const pathList = fetchComponentData().pathList
.map(componentPath => path.relative(relativeTo, componentPath) + '/thirdpartylibs.xml')
.map(componentPath => componentPath.replace(/\\/g, '/'))
.filter(path => fs.existsSync(path))
.sort();
.filter(path => fs.existsSync(path));
pathList.push('lib/thirdpartylibs.xml');
return pathList.sort();
};
/**
@@ -385,6 +387,23 @@ const getThirdPartyLibsUpgradable = async() => {
return (await Promise.all(upgradableLibraries)).filter((library) => !!library);
};
/**
* Get the list of paths to build react sources.
*
* @param {string} relativeTo
* @returns {string[]}
*/
const getReactTsSrcGlobList = (relativeTo = '') => {
const globList = [];
fetchComponentData().pathList.forEach(componentPath => {
const relativeComponentPath = componentPath.replace(relativeTo, '');
globList.push(`${relativeComponentPath}/js/esm/src/**/*.ts`);
globList.push(`${relativeComponentPath}/js/esm/src/**/*.tsx`);
});
return globList.map(componentPath => componentPath.replace(/\\/g, '/'));
};
/**
* Get the list of thirdparty libraries.
*
@@ -432,4 +451,5 @@ module.exports = {
getThirdPartyLibsList,
getThirdPartyPaths,
getThirdPartyLibsUpgradable,
getReactTsSrcGlobList,
};
+1 -1
View File
@@ -89,7 +89,7 @@ const templates = {
module.exports = {
opts: {
destination: "./jsdoc/",
destination: "./public/jsdoc/",
template: "node_modules/docdash",
},
plugins,
+2 -2
View File
@@ -18,7 +18,7 @@ import inquirer from 'inquirer';
import chalk from 'chalk';
import { createNote } from './note.mjs';
import { getInitialValues } from './helpers.mjs';
import { getInitialValues, getIssueNumberFromBranchName } from './helpers.mjs';
import * as Prompts from './prompts.mjs';
import logger from './logger.mjs';
@@ -29,7 +29,7 @@ export default async (options) => {
// Fetch information.
const messages = [];
const { issueNumber } = await inquirer.prompt([
Prompts.getIssuePrompt(),
Prompts.getIssuePrompt(getIssueNumberFromBranchName()),
], initialValues);
let selection = {};
+14
View File
@@ -14,6 +14,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
import chalk from 'chalk';
import branchName from 'current-git-branch';
import { isStandardComponent, isCommunityComponent, rewritePlugintypeAsSubsystem } from './components.mjs';
import { isValidNoteName } from './noteTypes.mjs';
import logger from './logger.mjs';
@@ -59,6 +60,19 @@ export const formatIssueNumber = (input) => {
return input;
};
/**
* Get the issue number, based off current git branch name
*
* @returns {string|null}
*/
export const getIssueNumberFromBranchName = () => {
const issueNumber = String(branchName()).match(/^[a-zA-Z]*-\d+/);
if (issueNumber) {
return formatIssueNumber(issueNumber[0]);
}
return null;
};
/**
* Validate a component.
*
+8
View File
@@ -41,6 +41,14 @@ module.exports = grunt => {
// Check YUI module source files.
yui: {src: files ? files : grunt.moodleEnv.yuiSrc},
// Check React source files.
'react': {
options: {
fix: true,
},
src: files ? files : grunt.moodleEnv.reactSrc,
},
},
});
+41 -2
View File
@@ -58,6 +58,31 @@ module.exports = grunt => {
}) + "\n");
};
/**
* Extracts ignore entries from a local ignore file.
*
* @param {string} componentPath the file path to the component, relative to the code base directory
* @param {string} ignoreFilePath the path to the ignore file
* @return {array} array of ignore paths to be included in the global ignore files
*/
const getEntriesFromLocalIgnoreFile = (componentPath, ignoreFilePath) => {
const ignorePaths = [];
if (grunt.file.exists(ignoreFilePath)) {
const ignoreFile = grunt.file.read(ignoreFilePath);
const entries = ignoreFile.split('\n');
entries.forEach(entry => {
entry = entry.trim();
if (entry.length > 0 && !entry.startsWith('#') && !entry.startsWith('!')) {
while (entry.startsWith('/')) {
entry = entry.substring(1);
}
ignorePaths.push(componentPath + '/' + entry);
}
});
}
return ignorePaths;
};
/**
* Generate ignore files (utilising thirdpartylibs.xml data)
*/
@@ -67,6 +92,20 @@ module.exports = grunt => {
// An array of paths to third party directories.
const thirdPartyPaths = ComponentList.getThirdPartyPaths();
const localStylelintIgnorePaths = [];
const localEslintIgnorePaths = [];
ComponentList.getComponentPaths(process.cwd() + '/').forEach(componentPath => {
const localEslintIgnorePath = process.cwd() + '/' + componentPath + '/.eslintignore';
const localEslintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localEslintIgnorePath);
if (localEslintIgnoreEntries.length > 0) {
localEslintIgnorePaths.push(...localEslintIgnoreEntries);
}
const localStylelintIgnorePath = process.cwd() + '/' + componentPath + '/.stylelintignore';
const localStylelintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localStylelintIgnorePath);
if (localStylelintIgnoreEntries.length > 0) {
localStylelintIgnorePaths.push(...localStylelintIgnoreEntries);
}
});
// Generate .eslintignore.
const eslintIgnores = [
@@ -77,7 +116,7 @@ module.exports = grunt => {
// Ignore all yui/src meta directories and build directories.
'*/**/yui/src/*/meta/',
'*/**/build/',
].concat(thirdPartyPaths);
].concat(thirdPartyPaths).concat(localEslintIgnorePaths);
grunt.file.write('.eslintignore', eslintIgnores.join('\n') + '\n');
// Generate .stylelintignore.
@@ -88,7 +127,7 @@ module.exports = grunt => {
'public/theme/classic/style/moodle.css',
'jsdoc/styles/*.css',
'public/admin/tool/componentlibrary/hugo/dist/css/docs.css',
].concat(thirdPartyPaths);
].concat(thirdPartyPaths).concat(localStylelintIgnorePaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n');
phpcsIgnore(thirdPartyPaths);
+4 -1
View File
@@ -37,6 +37,9 @@ const babelRename = function(destPath, srcPath) {
};
module.exports = grunt => {
// Load the React build tasks.
require('./react')(grunt);
// Load the Ignorefiles tasks.
require('./ignorefiles')(grunt);
@@ -57,7 +60,7 @@ module.exports = grunt => {
// Register JS tasks.
grunt.registerTask('yui', ['eslint:yui', 'shifter']);
grunt.registerTask('amd', ['ignorefiles', 'eslint:amd', 'rollup']);
grunt.registerTask('js', ['amd', 'yui']);
grunt.registerTask('js', ['amd', 'yui', 'react']);
// Register NPM tasks.
grunt.loadNpmTasks('grunt-contrib-watch');
+41 -11
View File
@@ -14,6 +14,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* jshint node: true, browser: false */
/* eslint-env node */
// @ts-nocheck
/**
* @copyright 2022 Andrew Lyons <andrew@nicols.co.uk>
@@ -34,20 +35,49 @@ const configuration = {
include: [],
};
/**
* Generate jsconfig.json with AMD module path aliases for all components.
*
* @param {object} grunt The Grunt instance.
*/
const generateJsconfig = (grunt) => {
const jsconfigData = Object.assign({}, configuration);
const path = require('path');
const {fetchComponentData} = require(path.join(process.cwd(), '.grunt', 'components.js'));
const componentData = fetchComponentData().components;
for (const [thisPath, component] of Object.entries(componentData)) {
jsconfigData.compilerOptions.paths[`${component}/*`] = [`${thisPath}/amd/src/*`];
jsconfigData.include.push(`${thisPath}/amd/src/**/*`);
}
grunt.file.write('jsconfig.json', JSON.stringify(jsconfigData, null, " ") + "\n");
grunt.log.write('✓ Generating jsconfig.json\n');
};
/**
* Generate tsconfig.aliases.json with TypeScript path aliases for all ESM components.
*
* @returns {Promise<void>}
*/
const generateTsAliases = async() => {
const {generateAliases} = await import('../../.esbuild/generate-aliases.mjs');
generateAliases();
};
module.exports = (grunt) => {
const handler = () => {
const jsconfigData = Object.assign({}, configuration);
const handler = async function() {
const done = this.async();
const path = require('path');
const {fetchComponentData} = require(path.join(process.cwd(), '.grunt', 'components.js'));
const componentData = fetchComponentData().components;
for (const [thisPath, component] of Object.entries(componentData)) {
jsconfigData.compilerOptions.paths[`${component}/*`] = [`public/${thisPath}/amd/src/*`];
jsconfigData.include.push(`public/${thisPath}/amd/src/**/*`);
try {
generateJsconfig(grunt);
await generateTsAliases();
done();
} catch (err) {
grunt.log.error(err.message);
done(false);
}
grunt.file.write('jsconfig.json', JSON.stringify(jsconfigData, null, " ") + "\n");
};
grunt.registerTask('jsconfig', 'Generate a jsconfig configuration compatible with the LSP', handler);
};
+111
View File
@@ -0,0 +1,111 @@
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* jshint node: true, browser: false */
/* eslint-env node */
// @ts-nocheck
/**
* Grunt tasks for building React components.
*
* @copyright Meirza <meirza.arson@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Register react task — build or watch React components.
*
* Modes:
* grunt react — production build
* grunt react:dev — development build (sourcemaps, no minification)
* grunt react:watch — esbuild native watch (dev mode, incremental context)
*
* Note: react:watch uses esbuild's own context.watch() and is intentionally
* separate from grunt-contrib-watch. This keeps esbuild's incremental build
* graph alive between rebuilds rather than restarting from scratch on each change.
*/
grunt.registerTask('react', 'Build all React components', function(mode) {
const done = this.async();
const isWatch = mode === 'watch';
const isDev = isWatch || mode === 'dev';
if (isWatch) {
const path = require('path');
const {spawn} = require('child_process');
// Run ESLint on the rebuilt source files in check-only mode (no --fix)
// to avoid writing changes that would re-trigger esbuild.
const eslintBin = path.join(grunt.moodleEnv.gruntFilePath, 'node_modules', '.bin', 'eslint');
const onRebuild = (srcFiles) => {
if (srcFiles.length === 0) {
return;
}
const absSrcFiles = srcFiles.map(f => path.join(grunt.moodleEnv.gruntFilePath, f));
spawn(eslintBin, absSrcFiles, {stdio: 'inherit'})
.on('error', err => grunt.log.error(`ESLint: ${err.message}`));
};
(async() => {
try {
const {watchComponents} = await import('../../.esbuild/plugin/plugincomponents.mjs');
const { generateAliases } = await import('../../.esbuild/generate-aliases.mjs');
const { buildPluginComponents } = await import('../../.esbuild/plugin/plugincomponents.mjs');
generateAliases();
await buildPluginComponents(isDev);
const ctx = await watchComponents(true, onRebuild);
if (!ctx) {
grunt.log.warn('No React source files found. Nothing to watch.');
done();
return;
}
grunt.log.ok('esbuild is watching for React changes. Press Ctrl+C to stop.');
// Keep the process alive until the user interrupts. done() is intentionally
// not called here — grunt's async mechanism holds the process open.
process.on('SIGINT', async() => {
await ctx.dispose();
done();
});
} catch (err) {
grunt.log.error(err.message);
done(false);
}
})();
return;
}
grunt.log.writeln(`Building React components in ${isDev ? 'DEVELOPMENT' : 'PRODUCTION'} mode...`);
(async() => {
try {
const {generateAliases} = await import('../../.esbuild/generate-aliases.mjs');
const {buildPluginComponents} = await import('../../.esbuild/plugin/plugincomponents.mjs');
generateAliases();
await buildPluginComponents(isDev);
done();
} catch (err) {
grunt.log.error(err.message);
done(false);
}
})();
});
};
+3
View File
@@ -33,6 +33,9 @@ module.exports = grunt => {
// Are we in an AMD directory?
} else if (grunt.moodleEnv.inAMD) {
grunt.task.run('amd');
// Are we in an ESM source directory?
} else if (grunt.moodleEnv.inEsm) {
grunt.task.run('react');
} else {
// Run all of the requested startup tasks.
grunt.moodleEnv.startupTasks.forEach(taskName => grunt.task.run(taskName));
+5 -1
View File
@@ -49,6 +49,10 @@ module.exports = grunt => {
// Spawn the task in a child process so that it doesn't kill this one
// if it failed.
var args = [task, filesOption];
if (grunt.option('force')) {
args.push('--force');
}
grunt.util.spawn(
{
// Spawn with the grunt bin.
@@ -58,7 +62,7 @@ module.exports = grunt => {
cwd: grunt.moodleEnv.fullRunDir,
stdio: 'inherit'
},
args: [task, filesOption]
args: args
},
function(err, res, code) {
if (code !== 0) {
@@ -0,0 +1,7 @@
issueNumber: MDL-51152
notes:
enrol_manual:
- message: >-
The unused parameter 'roleid' has been removed from the external
function `unenrol_users()`
type: removed
@@ -0,0 +1,22 @@
issueNumber: MDL-71368
notes:
core:
- message: >
The `arg_separator.output` has been changed from a default of `amp;` to
a default of `&` in line with PHP defaults.
If you were previously relying on the legacy default when using
`http_build_query()` then you should _actively_ specify the value as the
third
parameter, for example:
```
http_build_query($formdata, '', '&amp;');
```
type: changed
@@ -0,0 +1,8 @@
issueNumber: MDL-73602
notes:
core:
- message: >-
Removed `qtype_random` from core.
`core\component::is_valid_plugin_name` has an additional check to ensure no-one can create a new plugin called qtype_random,
as this would conflict with the support for restoring old backups.
type: removed
@@ -0,0 +1,8 @@
issueNumber: MDL-75067
notes:
tool_behat:
- message: >-
The `behat_session_trait::ensure_element_[does_not_]exists(...)` methods
now accept optional `$container` parameter to define the parent node to
look within
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-77894
notes:
core:
- message: Appending an exclamation mark to template names ignores theme overrides
type: improved
@@ -0,0 +1,10 @@
issueNumber: MDL-78325
notes:
core_grades:
- message: >-
In Moodle 4.2, the legacy Gradebook base widget from 4.1 has been removed and
replaced with a simpler class-based system due to a breaking change and
excessive complexity in the old pattern. The files `core/grades/basewidget.js` and
templates in `grade/templates/searchwidget/` have been deleted,
with minimal expected third-party impact.
type: removed
@@ -0,0 +1,13 @@
issueNumber: MDL-79182
notes:
core:
- message: >
The following AMD modules have been removed following the final
deprecation process. It is no longer possible or necessary to manually
register modal types. See MDL-78324 for further details.
- `core/modal_registry`
- `core/modal_factory`
type: removed
@@ -0,0 +1,7 @@
issueNumber: MDL-79574
notes:
core:
- message: >-
The `\core\persistent::get_records(...)` class method now returns
instances keyed by record ID
type: changed
@@ -0,0 +1,13 @@
issueNumber: MDL-81514
notes:
core_group:
- message: >
`groups_print_activity_menu()` and `groups_get_activity_group()` now
include an additional `$participationonly` parameter, which is true by
default. This can be set false when we want the user to be able to
select a non-participation group within an activity, for example if a
teacher wants to filter assignment submissions by non-participation
groups. It should never be used when the menu is displayed to students,
as this may allow them to participate using non-participation groups.
Non-participation groups are labeled as such.
type: improved
@@ -0,0 +1,8 @@
issueNumber: MDL-81608
notes:
mod_quiz:
- message: >-
The language strings `addpagebreak` and `removepagebreak` have been
deprecated and should no longer be used. These have been replaced by
the `addpagebreakafter` and `removepagebreakafter` language strings.
type: deprecated
@@ -0,0 +1,12 @@
issueNumber: MDL-81961
notes:
core_question:
- message: |
core_question:
- message: |
Final deprecation of `moodle-question-chooser` YUI module.
type: removed
- message: |
Final deprecation of `core_question/qbank_chooser` template.
type: removed
type: removed
+13
View File
@@ -0,0 +1,13 @@
issueNumber: MDL-81962
notes:
core:
- message: The `moodle-core-notification-confirm` YUI module has been removed after an extensive deprecation period. Please use the AMD `core/modal` module as a replacement.
type: removed
- message: |
The following feaetures of the `moodle-core-notification` YUI module have been removed after an extensive deprecation process.:
- method: `keyDelegation`
- property: `lightbox`
There is no direct replacement for these features, but they were not widely used and their removal should not cause significant issues. If you were using these features, you will need to implement your own solutions for key delegation and lightbox functionality.
type: removed
@@ -0,0 +1,7 @@
issueNumber: MDL-82284
notes:
core:
- message: >-
Legacy constructors have been removed. These relate to PHP 4 and
earlier.
type: removed
@@ -0,0 +1,15 @@
issueNumber: MDL-83902
notes:
core_badges:
- message: >-
The following classes and functions are now also available in the following new
locations. They will continue to work in their old locations:
| Old classname/function | New classname/function |
| --- | --- |
| `\badge_award_selector_base` | `\core_badges\award_selector_base` |
| `\badge_potential_users_selector` | `\core_badges\potential_award_selector` |
| `\badge_existing_users_selector` | `\core_badges\existing_award_selector` |
| `process_manual_award()` | `\core_badges\award_manager::process_manual_award()` |
| `process_manual_revoke()` | `\core_badges\award_manager::process_manual_revoke()` |
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-84082
notes:
core_reportbuilder:
- message: >-
The text filter "Contains" and "Not contains" operators now support `*`
and `?` wildcard characters for better text content filtering
type: improved
@@ -0,0 +1,30 @@
issueNumber: MDL-84960
notes:
core:
- message: >-
Several core web services now include a new initials field in user data
structures. This change is backward-compatible and only adds an optional
field; no existing fields or field semantics have been changed.
Client applications should ensure they can handle the additional initials
field in web service responses, but clients that ignore unknown fields can
continue working without changes. The affected web services are:
- core_enrol_get_enrolled_users
- core_enrol_get_enrolled_users_with_capability
- core_enrol_get_potential_users
- core_enrol_search_users
- core_user_get_users_by_field
- core_user_get_users
- core_user_get_course_user_profiles
- core_grades_get_enrolled_users_for_selector
- core_grades_get_gradable_users
- gradereport_grader_get_users_in_report
- core_message_get_contact_requests
- core_message_get_conversation_members
- core_message_message_search_users
- core_message_get_user_contacts
- core_message_get_member_info
- core_message_get_conversation_messages
- mod_assign_list_participants
- mod_assign_get_participant
- mod_forum_get_forum_discussions
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-85233
notes:
core_filters:
- message: >-
MimeTeX support has been removed from both `filter_tex` and
`filter_algebra`. These filters now depend on LaTeX tools (`latex`,
`dvips`, and `convert`/`dvisvgm`), and as a result, the `pathmimetex`
setting has been removed.
type: removed
@@ -0,0 +1,8 @@
issueNumber: MDL-85322
notes:
block_html:
- message: >-
Treat Dashboard (pagetype 'my-index') as trusted in web services so
get_content_for_external preserves embedded HTML (e.g. iframes) on user
Dashboard.
type: changed
@@ -0,0 +1,8 @@
issueNumber: MDL-85336
notes:
core:
- message: >-
Redis connection timeout settings for cachestores and sessions have been
split into connection timeout and read timeout to allow for finer
control. These settings now also accept floats.
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-85405
notes:
core_course:
- message: >-
The external function `core_course_get_course_contents` now includes the
`candisplay` property for each returned module. If this is false, the
module should not be displayed on the course page (for example, for
question banks).
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-85621
notes:
core_badges:
- message: The create_issued_badge generator now returns the issued badge object.
type: changed
@@ -0,0 +1,11 @@
issueNumber: MDL-85621
notes:
core_badges:
- message: >-
The class core_badges_assertion has been deprecated and replaced by
\core_badges\achievement_credential.
The method badges_get_default_issuer() has also been deprecated because
it is no longer needed.
The file badges/endorsement.php has been removed because it stopped being used
when MDL-84323 was integrated.
type: deprecated
@@ -0,0 +1,17 @@
issueNumber: MDL-85975
notes:
core:
- message: >
`restore_qtype_plugin::unset_excluded_fields` now returns the modified
questiondata structure,
in order to support structures that contain arrays.
If your qtype plugin overrides
`restore_qtype_plugin::remove_excluded_question_data` without
calling the parent method, you may need to modify your overridden method
to use the returned
value.
type: fixed
@@ -0,0 +1,8 @@
issueNumber: MDL-86332
notes:
core_completion:
- message: >-
The `completion_info::clear_criteria` method takes an optional
`$removetypecriteria` to determine whether to remove course type
criteria from other courses that refer to the current course
type: changed
@@ -0,0 +1,26 @@
issueNumber: MDL-86493
notes:
mod_quiz:
- message: >-
The quiz overrides cache implementation has been replaced with a faster alternative with a different API.
This should be a transparent change but any direct references will still need to be updated.
type: deprecated
- message: >
`mod_quiz_cm_info_dynamic()` now uses the new `quiz_overrides` cache via `override_manager`, performing a single cache fetch per quiz/user.
This significantly reduces cache calls on course pages with many quizzes and groups.
The new `mod_quiz:quiz_overrides` cache is keyed by `quizid_userid` using datasource `\mod_quiz\cache\quiz_overrides_cache`.
This cache returns all applicable overrides for a user in a quiz (the user override, if any, plus all group overrides for groups they belong to in the quiz's course).
New class `\mod_quiz\local\quiz_overrides_cache_manager` to interact with the cache:
- `get_overrides(int $quizid, int $userid): array`
- `purge_for_user(int $quizid, int $userid): void`
- `purge_for_users(int $quizid, array $userids): void`
- `purge_for_group(int $quizid, int $groupid): void`
- `purge_for_group_members(int $groupid, array $userids): void`
Hook callbacks in `db/hooks.php` to keep the cache in sync with group
membership changes:
- `\core_group\hook\after_group_membership_added`
- `\core_group\hook\after_group_membership_removed`
type: improved
@@ -0,0 +1,12 @@
issueNumber: MDL-86524
notes:
core_question:
- message: >-
During restore of a question_set_reference, mapping of IDs in the
filtercondition is now delegated to qbank plugins.
If your qbank plugin defines a filter condition that uses database
IDs, add an override of `restore_filtercondition()` to the `condition`
class, which checks the condition's data and replaces the IDs with
mapped values if required. See
`qbank_managecategories\category_condition` for an example.
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-86607
notes:
mod_feedback:
- message: >-
The method `feedback_init_feedback_session()` has been deprecated, along
with all other direct access to `$SESSION` from the module
type: deprecated
@@ -0,0 +1,7 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
The `$cm` attribute in `activityoverviewbase` has been updated to public
visibility, allowing direct access to the course module instance
type: changed
@@ -0,0 +1,8 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
A new `available` attribute has been added to `activityname_exporter`
class. It allows the external API to return the activity's availability
status relative to the current user.
type: changed
@@ -0,0 +1,9 @@
issueNumber: MDL-86660
notes:
core_courseformat:
- message: >-
Two new public static methods have been added to the `overviewtable`
class:
- `is_cm_displayable`: Determines if a course module should be listed in the overview table.
- `is_cm_available`: Checks if a course module is accessible to the user (and should therefore be rendered as a link).
type: changed
@@ -0,0 +1,19 @@
issueNumber: MDL-86678
notes:
core_reportbuilder:
- message: >-
The base entity class now implements a default `initialise` method, that
will automatically call each of the following methods to load entity
report data:
* `get_available_columns()`
* `get_available_filters()`
* `get_available_conditions()`
This change allows for a lot of boilerplate to be removed from report
entity classes
type: improved
@@ -0,0 +1,12 @@
issueNumber: MDL-86699
notes:
core_reportbuilder:
- message: >-
There are two new entities intended for reports specific to course
module data, in order to provide a baseline in terms of module reporting
and API usage:
*
`core_course\reportbuilder\local\entities\{course_module,course_module_base}`
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-86699
notes:
mod_forum:
- message: >-
The forum report entity `->get_context_joins()` method is deprecated,
replaced with `->get_course_modules_joins(...)`
type: deprecated
@@ -0,0 +1,17 @@
issueNumber: MDL-86798
notes:
core_question:
- message: >
In order to prevent re-use of question version numbers after a version
is deleted, the `nextversion` column was added to
`question_bank_entries`. This serves as a counter incremented each time
a version is created.
Do not query this field directly. Instead use
`core_question\versions::get_next_version()` to read the value, which
will initialise it based on the existing versions if it is not set yet.
By default, it will increment the version number automatically, unless
you pass `increment: false`. Because of this, it is advisable to call
it inside a transaction, that is only committed after the version number
is used in a `question_versions` record.
type: fixed
@@ -0,0 +1,7 @@
issueNumber: MDL-86798
notes:
core_question:
- message: >-
`get_next_version()` from questionlib.php is now deprecated. Use
`\core_question\versions::get_next_version()` instead.
type: deprecated
@@ -0,0 +1,5 @@
issueNumber: MDL-86832
notes:
core_block:
- message: Removed block_activity_modules from Moodle 5.2.
type: removed
@@ -0,0 +1,10 @@
issueNumber: MDL-86839
notes:
core:
- message: >
"grunt watch" now accepts a force flag. Run "grunt watch -f" or "grunt
watch --force" to prevent grunt from cancelling builds when errors
occur. This is especially useful during development, because js build
files will be built even if, for example, jslint errors are still
present in the files.
type: improved
@@ -0,0 +1,8 @@
issueNumber: MDL-86846
notes:
core:
- message: >-
The `core/drag_handle` template has been modified to use a native HTML
button for a more accessible experience and a consistent look with other
buttons on the page.
type: changed
@@ -0,0 +1,7 @@
issueNumber: MDL-86854
notes:
core_courseformat:
- message: >-
Add core_courseformat\cmactions::move_before that will allow to move a coursemodule to a position before another coursemodule.
Add core_courseformat\cmactions::move_end_section that will allow to move a coursemodule the end of a section.
type: improved
@@ -0,0 +1,8 @@
issueNumber: MDL-86854
notes:
core_course:
- message: >-
Deprecates moveto_module (core_course) in favor of
cmactions::move_before or cmactions::move_end_section
(core_courseformat\local\cmactions).
type: deprecated
@@ -0,0 +1,11 @@
issueNumber: MDL-86855
notes:
qbank_columnsortorder:
- message: >-
The Behat selector `column move handle` for the `qbank_columnsortorder` plugin has been removed.
When interacting with the column's move handle, please use the move handle's accessible name and type.
For example:
- `And I drag "Move Created by" "button" and I drop it in "Move T" "button"`
type: removed
@@ -0,0 +1,9 @@
issueNumber: MDL-86856
notes:
core_course:
- message: >-
The following methods have been deprecated and should no longer be used:
- `course_delete_module`
- `course_module_flag_for_async_deletion`
Please consider using the equivalent methods, delete and delete_async, in `core_courseformat\local\cmactions` instead.
type: deprecated
@@ -0,0 +1,5 @@
issueNumber: MDL-86856
notes:
core_courseformat:
- message: Add delete method to the core_courseformat\cmactions
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-86857
notes:
core_courseformat:
- message: >-
Add set_groupmode method to the core_courseformat\cmactions (course
format actions)
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-86857
notes:
core_course:
- message: >-
Deprecates set_coursemodule_groupmode in favor of
core_courseformat\cmactions::set_groupmode
type: deprecated
@@ -0,0 +1,7 @@
issueNumber: MDL-86858
notes:
core_courseformat:
- message: >-
Create a new core_courseformat\cmactions::duplicate aiming to replace
the course/lib.php version
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-86858
notes:
core_course:
- message: >-
The duplicate_module has been deprecated in favor of
core_courseformat\cmactions::duplicate
type: deprecated
@@ -0,0 +1,7 @@
issueNumber: MDL-86860
notes:
core_courseformat:
- message: >-
Added `set_marker` and `remove_all_markers` methods to the
`core_courseformat\sectionactions` class.
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-86860
notes:
core_course:
- message: >-
The `course_set_marker` function has been deprecated and should no
longer be used.
Please consider using the equivalent methods, `set_marker` or `remove_all_markers`,
in `core_courseformat\local\sectionactions` instead.
type: deprecated
@@ -0,0 +1,8 @@
issueNumber: MDL-86861
notes:
core_courseformat:
- message: >-
Added the `set_visibility` method to the `core_courseformat\sectionactions` class.
To optimize performance, this method does not return the list of affected resources,
avoiding unnecessary database queries since the return value is unused.
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-86861
notes:
core_courseformat:
- message: >-
The `set_section_visible` function has been deprecated and should no
longer be used.
Please consider using the equivalent method, `set_visibility`, in
`core_courseformat\local\sectionactions` instead.
type: deprecated
@@ -0,0 +1,6 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: >-
Add a new core_courseformat\sectionactions::move_after to replace the current move_section_to logic.
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Deprecates the move_section_to logic
type: deprecated
@@ -0,0 +1,5 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Deprecates and remove all usages of reorder_sections that is used only internally.
type: deprecated
@@ -0,0 +1,5 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Add sectionactions::move_at to move a section at a given position.
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-86862
notes:
core_course:
- message: Add a new invalidation event for course action state so we can purge the courseactionsinstances cache when needed.
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-86916
notes:
mod_quiz:
- message: >-
The WebServices mod_quiz_get_user_best_grade and
mod_quiz_get_user_quiz_attempts have been updated to return overall feedback
even when quiz marks are hidden in the review options. This change
aligns the WebService behaviour with Moodle LMS display logic.
type: changed
@@ -0,0 +1,10 @@
issueNumber: MDL-86932
notes:
mod_choice:
- message: >-
mod_choice_get_choice_results web service: new userresponse structure.
The mod_choice_get_choice_results web service now includes a new
userresponse field that returns the current user selections in a
structured format with optionid and text properties. This enhancement
provides better access to user choice data for API consumers.
type: changed
@@ -0,0 +1,7 @@
issueNumber: MDL-86960
notes:
mod_glossary:
- message: >-
Function mod_glossary_rating_can_see_item_ratings is now implemented for
checking permissions to view ratings.
type: improved
@@ -0,0 +1,10 @@
issueNumber: MDL-86997
notes:
core_reportbuilder:
- message: |
The following `user_filter_manager` methods have been deprecated:
* `reset_all()` - to be replaced by new `reset()` method
* `reset_single()`
* `merge()`
type: deprecated
@@ -0,0 +1,9 @@
issueNumber: MDL-87000
notes:
core_reportbuilder:
- message: |
The following enrolment entity formatter methods have been deprecated:
* `enrolment_status()`
* `enrolment_values()`
type: deprecated
@@ -0,0 +1,7 @@
issueNumber: MDL-87003
notes:
tool_mobile:
- message: >-
The WS tool_mobile_get_public_config now returns whether MFA and
reCAPTCHA are enabled for login/recover password.
type: changed
@@ -0,0 +1,9 @@
issueNumber: MDL-87034
notes:
core_webservice:
- message: >-
The WebService core_webservice_get_site_info now returns three new fields:
"usercanviewconfig" indicating whether the current user can see the
administration tree, "usercanchangeconfig" indicating whether the
current user can change the site configuration, and site secret.
type: changed
@@ -0,0 +1,8 @@
issueNumber: MDL-87046
notes:
core:
- message: >-
The namespace for the `\core_shutdown_manager` has been moved to
`\core\shutdown_manager`. The legacy namespace will continue to work for
the moment.
type: improved
@@ -0,0 +1,8 @@
issueNumber: MDL-87059
notes:
core_customfield:
- message: >-
Added new `\core_customfield\api::is_shortname_unique(...)` method to
determine whether a shortname is available for use inside a given
handler
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-87066
notes:
core:
- message: Added clean_string() that prevents double escaping in Mustache templates
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-87072
notes:
core:
- message: Removed $CFG->wwwrootendsinpublic flag to force users to configure their server accordingly.
type: removed
@@ -0,0 +1,5 @@
issueNumber: MDL-87079
notes:
core:
- message: When responding to pcntl signals, call existing signal handlers.
type: fixed
@@ -0,0 +1,7 @@
issueNumber: MDL-87100
notes:
core:
- message: >-
When creating upgrade notes, the issue number will be inferred from the
current Git branch name by default
type: improved
@@ -0,0 +1,5 @@
issueNumber: MDL-87107
notes:
core:
- message: The Hook Manager now uses localcache instead of caching via MUC.
type: changed
@@ -0,0 +1,16 @@
issueNumber: MDL-87107
notes:
core:
- message: >
The `upgrade_ensure_not_running()` function has been deprecated and
replaced
with:
- `\core\setup::warn_if_upgrade_is_running()`;
- `\core\setup::ensure_upgrade_is_not_running()`; and
- `\core\setup::is_upgrade_running()`.
type: improved
@@ -0,0 +1,8 @@
issueNumber: MDL-87117
notes:
core_course:
- message: >-
Two optional new strings, `modulename_summary` and `modulename_tip`,
have been added to modules and will be displayed in the activity chooser
interface when defined.
type: improved
@@ -0,0 +1,7 @@
issueNumber: MDL-87158
notes:
tool_xmldb:
- message: >-
Generated `rename_field(...)` upgrade step code now checks for field
existence, to ensure it can be executed multiple times
type: changed
@@ -0,0 +1,9 @@
issueNumber: MDL-87173
notes:
core:
- message: >-
The CLI script used to terminate user sessions (kill_all_sessions.php)
has been improved to make it safer and more flexible.
A new '--run' parameter has been introduced. Without '--run', the script performs a dry run making no changes.
The script now supports targeted session termination using '--for-users' parameter.
type: improved
@@ -0,0 +1,9 @@
issueNumber: MDL-87242
notes:
core_enrol:
- message: >-
The external function core_enrol::get_enrolled_users() now behaves
consistently with the web version; returning the basic user information
even if the current user does not have permission to view the full
details.
type: changed

Some files were not shown because too many files have changed in this diff Show More