Compare commits

..

1968 Commits

Author SHA1 Message Date
Huong Nguyen 71f4153316 weekly release 5.0.6+ 2026-03-27 15:40:52 +07:00
Huong Nguyen e0b5cab5f0 NOBUG: Add upgrade notes 2026-03-27 15:40:51 +07:00
Huong Nguyen a110695eaa Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-03-27 15:40:38 +07:00
Huong Nguyen 5db546886a Merge branch 'MDL-81241-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-26 10:51:22 +07:00
Huong Nguyen 1ce9d9fc64 Merge branch 'MDL-88279-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2026-03-26 07:49:36 +07:00
AMOS bot 7a07b77216 Automatically generated installer lang files 2026-03-26 00:07:45 +00:00
Huong Nguyen 978614b029 Merge branch 'MDL-77558-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-03-25 14:38:06 +07:00
Huong Nguyen ad191cfbb8 Merge branch 'MDL-85451-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-25 14:30:07 +07:00
Huong Nguyen 72d5be5541 Merge branch 'MDL-87560-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-25 14:27:36 +07:00
David Woloszyn 04aef8439d MDL-77558 mod_forum: Mark posts as read in forum grader 2026-03-25 17:38:48 +11:00
Huong Nguyen e41ba343d3 Merge branch 'MDL-87548-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2026-03-25 10:50:31 +07:00
Huong Nguyen ca82ae7821 Merge branch 'MDL-88197-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-25 09:22:57 +07:00
Huong Nguyen a333518751 Merge branch 'MDL-88076-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-25 09:15:53 +07:00
Huong Nguyen c5c3a666aa Merge branch 'MDL-87626-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-03-25 09:04:34 +07:00
Huong Nguyen 4f1c7bd20f Merge branch 'MDL-87803-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-25 08:59:33 +07:00
Huong Nguyen de6aebd83b Merge branch 'MDL-87580-task-autolinking-MOODLE_500_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_500_STABLE 2026-03-25 08:48:37 +07:00
Paul Holden c378ea7409 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:08 +00:00
meirzamoodle 61be76a0cb 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 14:39:44 +07:00
Huong Nguyen 636b899df7 Merge branch 'MDL-88070-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2026-03-24 08:40:31 +07:00
Huong Nguyen c6c0fab232 Merge branch 'MDL-87748-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-03-24 08:37:53 +07:00
Huong Nguyen 1838b227de Merge branch 'MDL-51152-500' of https://github.com/christianabila/moodle into MOODLE_500_STABLE 2026-03-24 08:32:37 +07:00
Huong Nguyen bc3c9538a9 Merge branch 'MDL-66415-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2026-03-23 13:46:20 +07:00
Huong Nguyen 44e38356b1 Merge branch 'MDL-87941-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-23 13:41:49 +07:00
Huong Nguyen f90654eef6 Merge branch 'MDL-87438-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2026-03-23 13:37:13 +07:00
David Woloszyn acad3aa672 MDL-87626 core_search: Fix typo in input value check
Co-authored-by: Uli Wessmann
2026-03-23 13:42:38 +11:00
AMOS bot cb1a01e6ff Automatically generated installer lang files 2026-03-21 00:07:49 +00:00
Luca Bösch 2d21be7a4f MDL-87748 assign: format checkbox with Bootstrap classes. 2026-03-20 08:56:02 +01:00
Mihail Geshoski 4f5d0ad9b0 Merge branch 'MDL-88122-navbar_empty-breadcrumb-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2026-03-20 15:35:34 +08:00
Mihail Geshoski c7ef374f46 Merge branch 'MDL-87320-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-03-20 15:25:48 +08:00
Mihail Geshoski f6ef9913d8 Merge branch 'MDL-84780-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2026-03-20 15:21:16 +08:00
Mihail Geshoski 7d23b29321 Merge branch 'MDL-83459_500_create_submission_switchids_cmid' of https://github.com/sharpchi/moodle into MOODLE_500_STABLE 2026-03-20 15:16:15 +08:00
Shamim Rezaie 961d7cea4f weekly release 5.0.6+ 2026-03-20 15:11:21 +11:00
Shamim Rezaie 941a996dfe NOBUG: Add upgrade notes 2026-03-20 15:11:20 +11:00
Shamim Rezaie 733db470a2 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-03-20 15:11:04 +11:00
Stefan Hanauska 876a6ed947 MDL-84780 course: Disabled modules are not allowed 2026-03-19 20:47:24 +01:00
Luca Bösch de5ea7e700 MDL-87320 forum: Correctly escape group names. 2026-03-19 17:44:02 +01:00
Brendan Heywood a7ad739746 MDL-87580 task: Fix task output autolinking 2026-03-20 01:42:31 +11:00
Jun Pataleta f5f18cec27 MDL-81241 theme_boost: Accessibility test for the footer region links 2026-03-19 20:31:02 +08:00
Jun Pataleta bd236e173b MDL-81241 theme_boost: Ensure footer links have sufficient spacing 2026-03-19 20:31:01 +08:00
Safat 890b4aae57 MDL-87959 tool_installaddon: Fix behats for activity chooser footer 2026-03-19 12:14:54 +07:00
Mihail Geshoski 41c7b8d641 Merge branch 'MDL-87321-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-19 10:49:40 +08:00
Huong Nguyen 569efeb343 Merge branch 'MDL-88080-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-19 09:11:31 +07:00
Huong Nguyen d78ddaebc5 Merge branch 'MDL-88054-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-19 08:58:13 +07:00
Mihail Geshoski a234c3bea9 Merge branch 'MDL-87810-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-19 09:50:13 +08:00
Huong Nguyen 2613dc5b8e Merge branch 'MDL-87935-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2026-03-19 08:23:43 +07:00
Huong Nguyen 5e4c29a948 Merge branch 'MDL-87592-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2026-03-19 08:19:07 +07:00
Mark Sharp e5ef8781a9 MDL-83459 mod_assign: change switchids to use cmid 2026-03-18 15:45:07 +00:00
Ilya Tregubov 8dbd5bde8f Merge branch 'MDL-75067-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-18 14:02:12 +01:00
Mihail Geshoski 6dcd98ae8d Merge branch 'MDL-87096-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-18 17:36:49 +08:00
Andi Permana cd9aa203b3 MDL-87592 auth_email: preserve wantsurl through MFA email confirmation 2026-03-18 16:06:09 +07:00
Raquel Ortega 41cf49bee1 MDL-66415 core_message: Improve bulk messaging result handling 2026-03-18 09:35:49 +01:00
Jun Pataleta fb5e982a90 MDL-85451 block_timeline: Add accessibility Behat test coverage 2026-03-18 13:24:39 +08:00
Jun Pataleta adb609a38d 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:38 +08:00
Jun Pataleta 8189c4b741 MDL-85451 block_timeline: Fix heading levels 2026-03-18 13:24:38 +08:00
Paul Holden 6d519e67ba Merge branch 'MDL-88226-500' of https://github.com/dravek/moodle into MOODLE_500_STABLE 2026-03-17 10:29:46 +00:00
David Carrillo 5b1955c073 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 16:38:59 +01:00
Paul Holden 179a1604d9 MDL-88076 tool_mfa: improved parsing of redirect exclusions config.
Ensure all permutations of EOL markers are covered/trimmed.
2026-03-16 11:36:42 +00:00
Huong Nguyen eda03a322b Merge branch 'MDL-86839-MOODLE_500_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_500_STABLE 2026-03-16 16:33:32 +07:00
Shamim Rezaie 4d0e4b7875 Merge branch 'MDL-82625-500' of https://github.com/cameron1729/moodle into MOODLE_500_STABLE 2026-03-16 18:28:19 +11:00
Huong Nguyen ac1d781d5e Merge branch 'MDL-87795-500' of https://github.com/albertgasset/moodle into MOODLE_500_STABLE 2026-03-16 09:46:06 +07:00
Huong Nguyen dff82484c8 Merge branch 'MDL-82439_500' of https://github.com/jonof/moodle into MOODLE_500_STABLE 2026-03-16 08:49:04 +07:00
Jake Dallimore bceaf184ba Merge branch 'MDL-83096-500' of https://github.com/jason-platts/moodle into MOODLE_500_STABLE 2026-03-16 09:43:13 +08:00
yusufwib01 7e9f571573 MDL-87935 aiprovider_ollama: fix incorrect error response handling 2026-03-14 02:48:18 +07:00
Sara Arjona 1768c5e66c Merge branch 'MDL-88211-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-13 15:25:02 +01:00
Paul Holden 4605729d45 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:40:16 +00:00
Daniel Poggenpohl d446b2b831 MDL-83096 mod_lti: Register view completion when launching in new window 2026-03-13 09:02:54 +00:00
Mihail Geshoski 8ac692cab7 Merge branch 'MDL-87516-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2026-03-13 15:36:10 +08:00
Huong Nguyen 520a9a99a9 Merge branch 'MDL-87959-500' of https://github.com/safatshahin/moodle into MOODLE_500_STABLE 2026-03-13 14:05:56 +07:00
Philipp Memmel 2bd5cb2531 MDL-86839 grunt: Make grunt watch respect --force option 2026-03-13 07:34:08 +01:00
Sara Arjona 27e17c32a6 Merge branch 'MDL-88109-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2026-03-13 06:45:34 +01:00
Safat 927bae14c6 MDL-87959 admin: Add marketplace availability in notifications 2026-03-13 15:55:44 +11:00
Safat 3d37413b84 MDL-87959 tool_installaddon: Add support for marketplace 2026-03-13 15:55:44 +11:00
Mihail Geshoski 8405e26f4e Merge branch 'MDL-81608-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-13 09:54:19 +08:00
Huong Nguyen 59443e629b Merge branch 'MDL-87100-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-13 08:39:16 +07:00
Huong Nguyen d1aeafe3ba Merge branch 'MDL-86843-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-03-13 08:29:12 +07:00
Jonathon Fowler e247226574 MDL-82439 iplookup: catch and handle GeoIp2 exceptions 2026-03-13 07:42:19 +10:00
Albert Gasset 3486d93e2d MDL-87795 message_airnotifier: Handle 404 (unregistered token) responses 2026-03-12 11:51:54 +01:00
Paul Holden 195eb54c1d MDL-88197 customfield_number: observe required field configuration. 2026-03-12 09:19:38 +00:00
Huong Nguyen 449286a45a MDL-86843 tool_task: style tables correctly. 2026-03-12 09:51:35 +01:00
Andi Permana 5c1d657758 MDL-87548 repository_wikimedia: Handle HTTP 429 rate limiting 2026-03-12 15:29:37 +07:00
Huong Nguyen f04e80afcb Merge branch 'MDL-86616_500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2026-03-12 14:43:53 +07:00
Mihail Geshoski 37aacf4078 Merge branch 'MDL-74519-500' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_500_STABLE 2026-03-12 14:08:57 +08:00
Mihail Geshoski b569462cd3 Merge branch 'MDL-85637-500' of https://github.com/izendegi/moodle into MOODLE_500_STABLE 2026-03-12 14:03:56 +08:00
Safat 416cda978f Merge branch 'MDL-87708-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-03-12 15:14:46 +11:00
Huong Nguyen 208f519e18 MDL-87708 tool_moodlenet: Remove post install task 2026-03-12 10:47:50 +07:00
Huong Nguyen cb00b13745 MDL-87708 admin: Improve MoodleNet removal warnings message 2026-03-12 10:15:44 +07:00
Andi Permana 7afd9fa73a MDL-87708 tool_moodlenet: Clean up moodle.net configs in stable
Part of MDL-87351

- Discourage tool_moodlenet unless pointing to custom installation
- Clear activity chooser footer if set to MoodleNet
- Cleanup happens for: moodle.net URL, www.moodle.net, or empty config
- Preserves custom/local MoodleNet installations
2026-03-12 10:15:44 +07:00
hieuvu 59cdf4341d MDL-87516 core_question: update behaviour when update question attempt. 2026-03-12 09:17:41 +07:00
Stefan Topfstedt 0a9a626b65 MDL-88122 navigation: omit empty breadcrumb container in output. 2026-03-11 17:45:36 -07:00
Sara Arjona c08ab3ca54 MDL-88109 router: Use unencoded URL for location redirect 2026-03-11 16:46:22 +01:00
Hai Nguyen Van 2f1da3e9e8 MDL-86616 filepicker: link restrictions to input via aria-describedby 2026-03-11 11:03:08 +00:00
Iñigo Zendegi 8a27867a0d MDL-85637 question: Optimize max question version SQL query 2026-03-11 11:46:47 +01:00
Anupama Sarjoshi f89c4550fe 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 10:02:54 +05:30
Mihail Geshoski 1fedd03d02 Merge branch 'MDL-87955-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-11 11:55:41 +08:00
AMOS bot da1991815a Automatically generated installer lang files 2026-03-11 00:09:28 +00:00
Jun Pataleta 974afeccd5 MDL-81608 quiz: Add Add menu spacing to prevent overlap 2026-03-10 17:58:58 +08:00
Jun Pataleta 8209259991 MDL-81608 quiz: Set more meaningful button labels
* Add/remove page break buttons
* Move question buttons
2026-03-10 17:58:57 +08:00
Jun Pataleta 9596fe1a83 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:58:57 +08:00
Jun Pataleta f2f26105d5 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:58:57 +08:00
Jun Pataleta d062f46eea 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:58:56 +08:00
Huong Nguyen f71a7c928f Merge branch 'MDL-86698-500' of https://github.com/mickhawkins/moodle into MOODLE_500_STABLE 2026-03-10 08:26:26 +07:00
Paul Holden 84c053eca8 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:58:05 +00:00
Huong Nguyen 854558c727 Merge branch 'MDL-88093-failed-task-lang-MOODLE_500_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_500_STABLE 2026-03-09 09:11:09 +07:00
Huong Nguyen 681bc5f284 Merge branch 'MDL-87883-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-09 09:06:27 +07:00
Huong Nguyen 2802c659fe Merge branch 'MDL-79324-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-03-09 09:03:28 +07:00
Paul Holden 6c453d0f15 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:13 +00:00
Michael Hawkins 2dbbfd945f MDL-86698 core: Update security.txt expiry 2026-03-06 19:09:54 +08:00
Luca Bösch 557c0f54c4 MDL-79324 quiz: Don't show "Back" button in secure layout. 2026-03-06 11:07:09 +01:00
Jake Dallimore 2baad2002f weekly release 5.0.6+ 2026-03-06 12:10:19 +08:00
Jake Dallimore c9195c5ef7 NOBUG: Add upgrade notes 2026-03-06 12:10:19 +08:00
Jake Dallimore 20b33578e3 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-03-06 12:10:14 +08:00
Brendan Heywood 63e1d9c227 MDL-88093 task: Send task failure messages in correct language 2026-03-05 22:04:52 +11:00
Muhammad Arnaldo 7299e4dcb6 MDL-87438 core: Fix multiselect saving with empty choices 2026-03-05 14:23:19 +07:00
Jake Dallimore af9d221360 Merge branch 'MDL-86154_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-03-05 11:56:09 +08:00
Adrian Greeve 6b3619dab9 Merge branch 'MDL-88009-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-03-05 10:55:49 +08:00
Huong Nguyen 4ec4d94d95 Merge branch 'MDL-87657-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-05 09:22:54 +07:00
Mihail Geshoski 872f2c1f01 Merge branch 'MDL-86691_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-03-05 09:44:32 +08:00
Jun Pataleta bfe8192363 MDL-87810 quiz: Accessibility Behat coverage for quiz attempt 2026-03-05 08:47:40 +08:00
Jun Pataleta 57fdeaedd7 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-05 08:47:39 +08:00
Jun Pataleta 475777e2dd Merge branch 'MDL-87949-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-04 21:26:09 +08:00
Jun Pataleta 7ddc61c4a3 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:58:11 +08:00
Huong Nguyen 3b446e0dcc Merge branch 'MDL-85322-500' of https://github.com/durenadev/moodle into MOODLE_500_STABLE 2026-03-04 09:20:15 +07:00
Huong Nguyen 1c3d548e5c Merge branch 'MDL-86112_500' of https://github.com/jonof/moodle into MOODLE_500_STABLE 2026-03-04 08:55:16 +07:00
Huong Nguyen 0109cbd42d Merge branch 'MDL-87905-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2026-03-04 08:50:09 +07:00
AMOS bot eda93c16c8 Automatically generated installer lang files 2026-03-04 00:07:47 +00:00
Daniel Ureña 0e397a294c MDL-85322 block_html: trust dashboard content in WS context 2026-03-03 11:52:39 +01:00
Sara Arjona d729e47c38 Merge branch 'MDL-87980-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2026-03-03 10:30:02 +01:00
Mihail Geshoski 3fe4bb91ac Merge branch 'MDL-87315_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-03-03 16:37:37 +08:00
Safat 9bb22640b4 Merge branch 'MDL-88030-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-03-03 14:49:44 +11:00
Jonathon Fowler 0ceeee464b 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:40:45 +10:00
Huong Nguyen 0b99cbdf78 Merge branch 'MDL-87993-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-03-03 08:36:22 +07:00
Huong Nguyen 1490960fd4 Merge branch 'MDL-87945-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-03 08:33:35 +07:00
Huong Nguyen 0d59764b12 Merge branch 'MDL-60912-500' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_500_STABLE 2026-03-03 08:30:59 +07:00
Huong Nguyen 28e1177c9d Merge branch 'MDL-87710-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-03-03 08:28:33 +07:00
Paul Holden 824b1ed336 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 11:04:15 +00:00
Mark Johnson 541790a5d2 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:36:19 +00:00
Mark Johnson 1890a0b94d 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:44:30 +00:00
Laurent David 0eb03badc3 MDL-87980 mod_assign: Fix empty description display 2026-02-27 11:46:18 +01:00
Paul Holden 4ca9b8a9d5 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-02-27 09:57:39 +00:00
Ilya Tregubov d3d1fc39bf Merge branch 'MDL-87967-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-27 09:05:19 +01:00
Ilya Tregubov 60df7d8c30 Merge branch 'MDL-29421-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-27 08:52:53 +01:00
Huong Nguyen abfa0b8d72 weekly release 5.0.6+ 2026-02-27 09:39:01 +07:00
Huong Nguyen 0412afcc77 NOBUG: Add upgrade notes 2026-02-27 09:39:00 +07:00
Huong Nguyen da90a405af Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-02-27 09:38:48 +07:00
AMOS bot 9d0f61412e Automatically generated installer lang files 2026-02-27 00:07:39 +00:00
Mark Johnson b5fd7946f0 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-02-26 15:50:02 +00:00
sam marshall 643b66ede7 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:36:51 +00:00
Anupama Sarjoshi 48520cfc6a 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:38:51 +05:30
Huong Nguyen 70aeabb6d6 Merge branch 'MDL-86866-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-02-26 09:16:34 +07:00
Huong Nguyen f3428e3933 Merge branch 'MDL-87588-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2026-02-26 09:10:03 +07:00
Huong Nguyen 37ae90cf99 Merge branch 'MDL-88020-500' of https://github.com/rxdelacruz/moodle into MOODLE_500_STABLE 2026-02-26 09:03:25 +07:00
Huong Nguyen 61cfded4ec Merge branch 'MDL-88036-500' of https://github.com/mioyu-ubiq/moodle into MOODLE_500_STABLE 2026-02-26 09:01:40 +07:00
Mihail Geshoski 8ec5407f42 Merge branch 'MDL-85902-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-26 09:57:37 +08:00
Mihail Geshoski bc793b7735 Merge branch 'MDL-86524_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-02-26 09:44:41 +08:00
AMOS bot 81eb6b9787 Automatically generated installer lang files 2026-02-26 00:07:38 +00:00
Paul Holden 6cbc2c3437 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:51 +00:00
Paul Holden f53b072070 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:47 +00:00
Ilya Tregubov f4115d8e93 Merge branch 'MDL-78112-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-25 12:07:34 +01:00
Stefan Hanauska df7d605f21 MDL-88070 javascript: Respect removeOnClose 2026-02-25 12:06:27 +01:00
Mark Johnson 3421b5b90d 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:00:40 +00:00
Mark Johnson fe6c60dc3c 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:00:40 +00:00
Mark Johnson be0160ae03 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:00:38 +00:00
rxdelacruz 0c88053c19 MDL-88020 enrol_self: Add Behat test for cohort restriction 2026-02-25 14:55:50 +08:00
mioyu-ubiq 97db9427a4 MDL-88036 mod_scorm: Fix duplicate scenario name 2026-02-25 14:34:59 +08:00
Huong Nguyen 230309cc82 Merge branch 'MDL-87190-500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2026-02-25 10:58:13 +07:00
Mihail Geshoski 6063d99a54 Merge branch 'mdl-84045_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2026-02-25 10:50:51 +08:00
Mihail Geshoski 783f804fb2 MDL-87492 mod_quiz: Fix improper version bump 2026-02-25 09:45:11 +08:00
Hai Nguyen Van 657ab15897 MDL-87190 filepicker: clarify error when dragging a folder into picker 2026-02-24 20:44:21 +00:00
Andrew Nicols 57ba40811f 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-24 22:14:20 +08:00
Andrew Nicols 9ae6a4d75e MDL-86866 router: Use response_aware handler for status code 2026-02-24 22:14:19 +08:00
Jun Pataleta e8389198e8 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 22:04:18 +08:00
Jun Pataleta f0f0d51c66 MDL-85902 course: Convert activity navigation to a navigation landmark 2026-02-24 20:59:58 +08:00
Mihail Geshoski 0fc56b0ceb Merge branch 'MDL-87492_MOODLE_500_STABLE' of https://github.com/cwarwicker/moodle into MOODLE_500_STABLE 2026-02-24 14:33:58 +08:00
Mihail Geshoski dbc8211c14 Merge branch 'MDL-87452-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-24 14:17:37 +08:00
Huong Nguyen 9e54fcaabf Merge branch 'MDL-86809-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-02-24 11:04:28 +07:00
Huong Nguyen 1e3ebca248 Merge branch 'MDL-87442-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2026-02-24 10:44:55 +07:00
Huong Nguyen af0256f3d4 Merge branch 'MDL-87456-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-24 09:50:13 +07:00
AMOS bot a531684b78 Automatically generated installer lang files 2026-02-24 00:07:40 +00:00
Mark Johnson 310083d206 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:38:42 +00:00
Mark Johnson b82be2ab8c 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 11:38:42 +00:00
Huong Nguyen 4d4066a3c4 MDL-88030 library: Bump Behat and PHPUnit
- Bump Behat to 3.29.0
 - Bump PHPUnit to 11.5.55

Generated with PHP 8.2, following the instructions at:
https://moodledev.io/general/development/tools/composer
2026-02-23 16:22:04 +07:00
Luca Bösch 6359406461 MDL-87456 workshop: Amend action links to switch phase. 2026-02-20 20:47:40 +01:00
Luca Bösch fbad1615c8 MDL-87452 lesson: Align the checkboxes and labels with BS5. 2026-02-20 19:51:53 +01:00
Andi Permana f5a2c05b85 MDL-87442 theme_boost: Fix "With selected" select in mod_choice 2026-02-20 16:32:48 +07:00
Jun Pataleta 8feb15fa41 MDL-87993 core: Use visually hidden core/toast for the srlogger 2026-02-20 16:13:10 +08:00
Jun Pataleta a7e9ac30a9 MDL-87993 core: Allow toasts to be visually hidden 2026-02-20 16:13:10 +08:00
Juan Segarra Montesinos d0b6e9bdc1 MDL-86809 completion: Disable receiveagradegroup when marked as done
Co-authored-by: Yusuf Wibisono <yusuf.wibisono@moodle.com>
2026-02-20 15:12:58 +11:00
Mihail Geshoski 15557a5fc2 weekly release 5.0.6+ 2026-02-20 09:17:34 +08:00
Mihail Geshoski 10e7d8d63d Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-02-20 09:17:22 +08:00
james-cnz f2ab1fd1d0 MDL-84045 core_courseformat: Restore section return functionality 2026-02-19 22:35:28 +13:00
Andrew Nicols 10654bff5b 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-02-19 15:37:30 +08:00
Andrew Nicols 843611eb27 MDL-86866 core: Web 404 responses should generate HTML not JSON 2026-02-19 12:17:22 +08:00
Huong Nguyen 85a3f34d07 Merge branch 'MDL-87441-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-19 08:54:38 +07:00
Huong Nguyen 94b89f4503 Merge branch 'mdl-87187-50' of https://github.com/matthewhilton/moodle into MOODLE_500_STABLE 2026-02-19 08:50:57 +07:00
Huong Nguyen ae59573047 Merge branch 'MDL-85301-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-02-19 08:47:43 +07:00
AMOS bot 0b6ee85461 Automatically generated installer lang files 2026-02-19 00:07:39 +00:00
Huong Nguyen 9995c0edff Merge branch 'MDL-87482-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-02-18 15:40:14 +07:00
Mihail Geshoski 8ff8053bac Merge branch 'MDL-85111-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2026-02-18 10:08:07 +08:00
AMOS bot d9c347382a Automatically generated installer lang files 2026-02-18 00:07:42 +00:00
Sara Arjona fa790afa94 Merge branch 'MDL-87919-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2026-02-17 16:54:59 +01:00
Amaia Anabitarte cdee3646dd MDL-87919 theme: Fix restricted selected subsections in course index 2026-02-17 15:27:41 +01:00
Luca Bösch e24d3713e1 MDL-87441 user: Align the "With selected users..." label with BS5. 2026-02-17 08:21:50 +01:00
Shamim Rezaie 2f9c784b34 weekly release 5.0.6+ 2026-02-17 12:56:01 +11:00
Shamim Rezaie 10fdde228d Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-02-17 12:55:49 +11:00
Matthew Hilton 946739dd23 MDL-87187 bigbluebuttonbn: Fix record time during backup/restore 2026-02-17 09:10:14 +10:00
Paul Holden 29afbfbbba MDL-87967 output: ensure disabled toggle elements show tooltip. 2026-02-16 14:37:15 +00:00
Muhammad Arnaldo 814b0640b4 MDL-87588 mod_bigbluebuttonbn: Fix missing recordings_deleted column 2026-02-16 17:47:53 +07:00
Paul Holden fc5e318864 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:21:00 +00:00
Trisha Milan 4ac81d6a66 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 16:51:38 +08:00
Mihail Geshoski 8166f959e5 Merge branch 'MDL-85658-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-02-16 13:47:27 +08:00
Mihail Geshoski 9633fcbf4b Merge branch 'MDL-87338-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-16 13:38:48 +08:00
Mihail Geshoski 5e8b19eee7 Merge branch 'MDL-87552-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-16 13:29:49 +08:00
Andre Krueger 07c33cd2c3 MDL-85301 aiprovider_ollama: Fix basic authentication 2026-02-16 08:07:19 +11:00
Jun Pataleta c7978215ec Merge branch 'MDL-87450-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-13 20:34:43 +08:00
Huong Nguyen a7d7f41bff Merge branch 'MDL-87597-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2026-02-13 15:08:55 +07:00
Mihail Geshoski b88c7a1dbb Merge branch 'MDL-87600-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-13 14:18:02 +08:00
Jun Pataleta f49005139a Merge branch 'MDL-76437-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-13 13:49:31 +08:00
Huong Nguyen 25ee88a4b7 Merge branch 'MDL-86985-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-02-13 11:10:38 +07:00
Jun Pataleta 7ac8908b0c Merge branch 'MDL-87946-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-02-13 11:59:39 +08:00
Luca Bösch 2d517fbc74 MDL-86985 mod_data: Stripe and hover effect restored to presets table 2026-02-13 14:56:11 +11:00
Luca Bösch 72e41fa58a MDL-87450 forum: Remove Bootstrap 5 table borders. 2026-02-13 11:05:09 +08:00
Huong Nguyen 14c226b4a5 Merge branch 'MDL-87458-500' of https://github.com/jfederico/moodle into MOODLE_500_STABLE 2026-02-13 09:53:25 +07:00
Huong Nguyen 3e8ba76fc1 Merge branch 'MDL-87075-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2026-02-13 09:50:20 +07:00
Huong Nguyen c705fef94a Merge branch 'MDL-81441-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-13 09:46:02 +07:00
Huong Nguyen 8504e1facb Merge branch 'MDL-77209-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-13 09:42:31 +07:00
Andrew Nicols 29f2b34e00 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:33:31 +08:00
Huong Nguyen 5f83a0a0ab MDL-87482 core: Better text comparison 2026-02-13 09:32:06 +07:00
Andi Permana 435ce7fbe1 MDL-87482 core_message: Fix compatibility with libxml2 >= 2.14.0 2026-02-13 09:32:06 +07:00
Muhammad Arnaldo 980a99c6d5 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 09:14:40 +07:00
Huong Nguyen e4afd807a7 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:54:56 +07:00
Huong Nguyen 76934ad945 MDL-85658 behat: Wait until the iframe is completely loaded 2026-02-13 08:54:56 +07:00
Paul Holden a4e790fbaa MDL-87941 core: handle param validation of boolean type false. 2026-02-12 17:34:29 +00:00
Paul Holden bb0390c606 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:27 +00:00
Paul Holden fa189b24da MDL-87945 webservice: handle invalid functions when adding to service.
Same thing as we did for API docs in 6e9e73aba0.
2026-02-12 16:05:25 +00:00
Christian Abila e8c7d8cd41 MDL-87075 core: Filter roles to include visibility permissions 2026-02-12 14:52:05 +01:00
Huong Nguyen 926a474613 Merge branch 'MDL-87095-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2026-02-12 10:24:37 +07:00
Huong Nguyen da8b875b14 Merge branch 'MDL-83325_500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2026-02-12 10:21:06 +07:00
Huong Nguyen f0069655b7 Merge branch 'MDL-87113-500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2026-02-12 08:59:55 +07:00
Huong Nguyen d29c43c555 Merge branch 'MDL-87358-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-12 08:57:00 +07:00
Simey Lameze 4b6ffc5064 MDL-87095 behat: reorganize lesson question importing tests 2026-02-12 09:51:00 +08:00
Kim Jared Lucas ef2dde6f11 MDL-87095 mod_lesson: add behat test for importing questions into lesson 2026-02-12 09:49:35 +08:00
Huong Nguyen 77c1bd1458 Merge branch 'MDL-78343-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-02-12 08:46:48 +07:00
AMOS bot 7eaa5573c4 Automatically generated installer lang files 2026-02-12 00:09:35 +00:00
jfedericobn 83ae101436 MDL-87458 bigbluebuttonbn: reset removes local recording references only 2026-02-11 16:40:41 +00:00
yusufwib01 757f0d1a44 MDL-87597 core_message: Fix double-click to reopen message drawer 2026-02-11 23:28:59 +07:00
Michael Kotlyar a8e1540a82 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 10:02:30 +00:00
Huong Nguyen 1b56e5c622 Merge branch 'MDL-86659-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-11 17:01:49 +07:00
Hai Nguyen Van c5b011bb9c MDL-87113 filepicker: fix progress stuck after invalid upload 2026-02-11 09:58:05 +00:00
Sara Arjona 07dd973f44 Merge branch 'MDL-87874-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-11 07:08:05 +01:00
Huong Nguyen 77753e861b Merge branch 'MDL-87448-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-11 12:54:12 +07:00
Huong Nguyen d91aed29c2 Merge branch 'MDL-87535-500_take2' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-02-11 11:48:04 +07:00
Huong Nguyen abdfe22bd0 Merge branch 'MDL-86714-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-11 11:45:53 +07:00
Huong Nguyen 1679f8b767 Merge branch 'MDL-68062-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2026-02-11 11:24:50 +07:00
Huong Nguyen e6505da61a Moodle release 5.0.6 2026-02-11 08:44:56 +07:00
Huong Nguyen 55d43fe137 weekly release 5.0.5+ 2026-02-10 08:41:45 +07:00
Shamim Rezaie 8f07ef57be Merge branch 'MDL-87892-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-02-09 21:07:33 +11:00
Huong Nguyen 8fe771bb9f MDL-87892 admin: Fix MoodleNet check 2026-02-09 16:33:27 +07:00
Shamim Rezaie caaa3a4824 Merge branch 'MDL-87892-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-02-09 19:36:52 +11:00
Huong Nguyen fb3565e79b 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-09 09:05:03 +07:00
Paul Holden 862bf7b443 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 15:57:31 +00:00
Paul Holden fe2572647f MDL-87874 customfield_number: validation for maximum size constraints. 2026-02-06 15:53:20 +00:00
Michael Kotlyar 1509236178 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:14:16 +00:00
Paul Holden cb590fdedc MDL-87883 core: correct license page link in project readme. 2026-02-06 09:09:10 +00:00
Jun Pataleta 55bf752d79 MDL-77209 core: Make More help links open on a new tab 2026-02-06 10:56:28 +08:00
David Woloszyn 306b3b897b MDL-78343 core_table: Improved HTML tag detection in format_text 2026-02-06 13:38:00 +11:00
Huong Nguyen e1c3872f65 Moodle release 5.0.5 2026-02-06 09:16:50 +07:00
Huong Nguyen cbd5285963 NOBUG: Add upgrade notes 2026-02-06 09:16:50 +07:00
Luca Bösch 69817cc74e MDL-87448 qbank: put margins to the end of the buttons to align better. 2026-02-05 17:41:16 +01:00
Luca Bösch 2dd0f54dbf MDL-87552 groupings: Striped hovering lines table with BS 5. 2026-02-05 17:25:22 +01:00
Luca Bösch 348498c0b7 MDL-87338 core_table: avoid string concatenation. 2026-02-05 17:21:21 +01:00
Mihail Geshoski 6dd7b7e490 weekly release 5.0.4+ 2026-02-05 20:23:41 +08:00
Mihail Geshoski 16b222ce6e NOBUG: Add upgrade notes 2026-02-05 20:23:41 +08:00
Mihail Geshoski 244efc0522 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-02-05 20:23:25 +08:00
Paul Holden 503411d6b6 MDL-87870 admin: tighten up validation of colour picker values. 2026-02-05 17:26:33 +07:00
Paul Holden 82f8c9f6c6 MDL-87870 filter_tex: escape background argument content. 2026-02-05 17:26:32 +07:00
Huong Nguyen dc74dfcac4 Merge branch 'MDL-87352-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2026-02-05 17:26:32 +07:00
Mihail Geshoski f9f0033ce4 Merge branch 'MDL-87258-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2026-02-05 17:26:32 +07:00
Jun Pataleta de33246b7b Merge branch 'MDL-87757-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2026-02-05 17:26:32 +07:00
Luca Bösch ba5ab0ff06 MDL-87535 quiz: Quiz dates shouldn't show on secure page. 2026-02-05 07:52:21 +01:00
yusufwib01 5d0eab1555 MDL-86785 tiny_equation: Add timeout handling for mimetex execution 2026-02-05 12:03:16 +08:00
Mihail Geshoski 05b4ca7dac Merge branch 'MDL-86437-500' of https://github.com/snake/moodle into MOODLE_500_STABLE 2026-02-05 12:03:16 +08:00
Huong Nguyen 40af5cd52d 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 12:03:16 +08:00
Paul Holden ea1b0eb4e1 MDL-87612 repository: safer unserializing of file source data. 2026-02-05 12:03:16 +08:00
Mihail Geshoski 071504114a Merge branch 'MDL-87789-500' of https://github.com/snake/moodle into MOODLE_500_STABLE 2026-02-05 12:03:16 +08:00
Shamim Rezaie 77637bfb26 Merge branch 'MDL-86444_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-02-05 12:03:15 +08:00
Jun Pataleta 68ab52d55d MDL-87600 gradereport_overview: Fix heading levels on the index page 2026-02-04 18:49:45 +08:00
Muhammad Arnaldo ed57a7c2c7 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:11:46 +07:00
Muhammad Arnaldo 1c17ab4277 MDL-87757 block_myoverview: fix the heading-order 2026-02-04 10:11:46 +07:00
Andi Permana 119cb76523 MDL-87352 admin: Add MoodleNet removal warnings 2026-02-04 10:06:33 +07:00
AMOS bot 2ae0229827 Automatically generated installer lang files 2026-02-04 00:07:38 +00:00
Jun Pataleta 5f7e9e3c6b Merge branch 'MDL-83984_500' of https://github.com/santoshndev/moodle into MOODLE_500_STABLE 2026-02-03 17:06:37 +08:00
Jake Dallimore 77ce015cc4 Merge branch 'MDL-85535-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-03 16:59:33 +08:00
Jun Pataleta de163f6f42 Merge branch 'MDL-87185-500' of https://github.com/durenadev/moodle into MOODLE_500_STABLE 2026-02-03 16:50:03 +08:00
Jun Pataleta f98ff41818 Merge branch 'MDL-87593-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2026-02-03 16:47:36 +08:00
Jun Pataleta e03bd88e9a Merge branch 'MDL-77162-filepicker-a11y-tab-order-repository-keyboard-selection-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2026-02-03 16:44:05 +08:00
Jun Pataleta bd3bae8b9c Merge branch 'MDL-87694-course-participant-profile-missing-heading-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2026-02-03 15:18:08 +08:00
Rajneel Totaram 47a7db0a69 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:49:01 +12:00
Mihail Geshoski cd55b35362 Merge branch 'MDL-87606_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-02-03 14:22:36 +08:00
Mihail Geshoski 049c2636c0 Merge branch 'MDL-86609_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-02-03 14:10:55 +08:00
Mihail Geshoski 3e2824d0df Merge branch 'MOODLE_500_STABLE_MDL-84966' of https://github.com/niko-hoogeveen/moodle into MOODLE_500_STABLE 2026-02-03 13:44:57 +08:00
Mihail Geshoski 07109510c7 Merge branch 'MDL-85653_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-02-03 13:36:38 +08:00
Mihail Geshoski d8372d7ecd Merge branch 'MDL-87029-500' of https://github.com/cameron1729/moodle into MOODLE_500_STABLE 2026-02-03 13:26:55 +08:00
Huong Nguyen 91f05629cd Merge branch 'MDL-87334-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-02-03 11:07:50 +07:00
Huong Nguyen 431138556e Merge branch 'MDL-87289-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2026-02-03 10:43:59 +07:00
Huong Nguyen a7c18aaee7 Merge branch 'MDL-87396-500' of https://github.com/izendegi/moodle into MOODLE_500_STABLE 2026-02-03 10:37:16 +07:00
Huong Nguyen 94bc33b976 Merge branch 'MDL-87520-500-branch-number' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2026-02-03 10:32:43 +07:00
Huong Nguyen c872aad808 Merge branch 'MDL-86905-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2026-02-03 10:27:12 +07:00
Huong Nguyen 00143faad5 Merge branch 'MDL-87675-500' of https://github.com/nvhai248/moodle into MOODLE_500_STABLE 2026-02-03 10:23:43 +07:00
AMOS bot d268a60e1e Automatically generated installer lang files 2026-02-03 00:07:52 +00:00
Stefan Topfstedt a23bd2ad53 MDL-87694 core: prevent empty heading in context header. 2026-02-02 10:38:14 -08:00
Stefan Topfstedt 4f2deeadf0 MDL-87694 profile: change page title to "Login required".
This realigns the page title with user/view.php.
2026-02-02 10:23:24 -08:00
Stefan Topfstedt 76cb6c49b0 MDL-87694 profile: set top level heading when accessed as guest user. 2026-02-02 10:13:40 -08:00
Jun Pataleta 35b132b2c2 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:19:34 -08:00
Paul Holden 4bbd54b415 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:29:01 +00:00
Paul Holden b0f3314cb1 MDL-76437 gradingform_rubric: consistent styles for add buttons.
Remove duplication/redundancy for same elements from the theme.
2026-02-02 10:28:09 +00:00
Paul Holden 630b762a0e MDL-87096 enrol_database: observe activity dates display in courses.
Co-authored-by: Owen Herbert <owenherbert@catalyst-au.net>
2026-02-02 10:27:16 +00:00
cescobedo d70634a418 Merge branch 'MDL-87761-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2026-02-02 11:15:41 +01:00
Jun Pataleta 389c5e2eb5 MDL-86905 core: Use proper link markup for email links 2026-02-02 18:05:03 +08:00
Huong Nguyen d677363483 Merge branch 'MDL-78342-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2026-02-02 08:50:04 +07:00
Safat 0a1b2845a5 Merge branch 'MDL-86601-adhoc-index-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2026-02-02 12:13:00 +11:00
Cameron Ball 003fea1634 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:38:43 +08:00
AMOS bot 24b230e284 Automatically generated installer lang files 2026-01-31 00:07:43 +00:00
David Mudrák 0f61bd060e 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:20:21 +01:00
Benjamin Walker 226aee577d MDL-86601 core_task: Add index for scheduled task lastruntime 2026-01-30 22:52:20 +10:00
Benjamin Walker 4a2cf5131b MDL-86601 core_task: Add index for large adhoc task queues 2026-01-30 22:52:19 +10:00
Sara Arjona 4f3ecdf095 MDL-87761 course: Add warning for phasing out subsection descriptions
The Description field within the Subsection edit form has been deprecated since Moodle 5.2 onwards (see MDL-87279).
To ensure a smooth transition and avoid data loss for our users, the XD team have prepared a solution to notify them
of this upcoming change in stable versions.
2026-01-30 12:25:55 +01:00
Iñigo Zendegi 12bcb9a569 MDL-87396 mod_assign: Add availability check to notifications 2026-01-30 12:02:12 +01:00
Paul Holden fb3e6c2e8c 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:55 +00:00
Paul Holden 708160cb4a MDL-87321 courseformat: explicit empty string check renaming module. 2026-01-30 10:36:50 +00:00
Huong Nguyen 59fd844136 weekly release 5.0.4+ 2026-01-30 15:39:35 +07:00
Huong Nguyen f0d72a138f Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-01-30 15:39:24 +07:00
Andrew Nicols 8c50614860 NOBUG: Bump composer.lock 2026-01-30 13:07:12 +08:00
Daniel Ureña 18192b6ea0 MDL-87185 block_site_main_menu: Add required library 2026-01-29 13:12:52 +01:00
fgo c624f40635 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:59:14 +08:00
Jake Dallimore ec28b3530a 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 13:26:32 +08:00
Huong Nguyen bb4d7e6ee4 Merge branch 'MDL-87521_500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2026-01-29 11:03:47 +07:00
Huong Nguyen 68398f16c7 Merge branch 'MDL-87087-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2026-01-29 11:01:41 +07:00
Huong Nguyen 68b06af0f8 Merge branch 'MDL-86994-500' of https://github.com/mioyu-ubiq/moodle into MOODLE_500_STABLE 2026-01-29 10:58:30 +07:00
Huong Nguyen 3481a9d19e Merge branch 'MDL-87018-500' of https://github.com/bhect0/moodle into MOODLE_500_STABLE 2026-01-29 10:55:12 +07:00
Huong Nguyen 9db5a7f3fe Merge branch 'MDL-87104-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-29 10:46:38 +07:00
Huong Nguyen 9f5fedee5f Merge branch 'MDL-87323-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-29 10:41:40 +07:00
Huong Nguyen 2d8d1e8dcf Merge branch 'MDL-86988-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-29 10:39:20 +07:00
Angelia Dela Cruz bd27e15147 MDL-87087 tool_dataprivacy: Test data request by authorized user 2026-01-29 11:09:13 +08:00
AMOS bot bcd7b651b8 Automatically generated installer lang files 2026-01-29 00:07:41 +00:00
David Mudrák 85c1213a5e MDL-87593 lang: Fix strings order 2026-01-28 21:45:08 +01:00
Tim Hunt 800a766aee MDL-83325 filepicker: tidy up display of restrictions 2026-01-28 20:13:44 +00:00
Tim Hunt 7ede51f863 MDL-87521 behat: better error reporting if an adhoc task fails 2026-01-28 14:58:49 +00:00
Paul Holden 2cc0ff9b26 Merge branch 'MDL-87437-500' of https://github.com/tasiobg/moodle into MOODLE_500_STABLE 2026-01-28 14:16:28 +00:00
Jun Pataleta 63cb8772ae Merge branch 'MDL-86639-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2026-01-28 16:17:18 +08:00
mioyu-ubiq 56ab46e236 MDL-86994 mod_assign: Behat to test permitted users can edit submission 2026-01-28 13:55:21 +08:00
Hai Nguyen Van 2b73a96232 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:18:14 +00:00
David Mudrák 9b3f75c5c7 MDL-87593 lang: Use the fixed strings in tests 2026-01-27 21:44:46 +01:00
Helen Foster 408a058083 MDL-87593 lang: Import fixed English strings (en_fix) 2026-01-27 21:42:43 +01:00
Mark Johnson 4d89422fc8 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:53:37 +00:00
Paul Holden 09d17c943b MDL-87100 core: infer upgrade note issue number from current branch. 2026-01-27 10:55:05 +00:00
Paul Holden aab0e6cc57 MDL-87710 behat: move upgrade notes into the correct location.
They were put in the wrong location by MDL-87443 (my bad).
2026-01-27 10:45:56 +00:00
Paul Holden 64ef2fe631 MDL-86659 enrol_flatfile: remove spurious get_config parameters. 2026-01-27 10:40:26 +00:00
Paul Holden 215d9d623c MDL-87104 message: remove border from contact request sent profile info. 2026-01-27 10:26:07 +00:00
Raquel Ortega 986a201e6c MDL-87289 mod_forum: Disable mediaplugin filter in emails 2026-01-26 21:33:30 +01:00
Niko Hoogeveen 74c67b4f30 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:21:28 -05:00
Paul Holden a2f8649326 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:53:07 +00:00
Huong Nguyen efb090fa3f Merge branch 'MDL-84862-500-test' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2026-01-26 15:32:39 +07:00
Huong Nguyen 94db3eae21 weekly release 5.0.4+ 2026-01-26 10:39:17 +07:00
Huong Nguyen c7511914d4 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-01-26 10:39:05 +07:00
Héctor Benedicte 641bb41063 MDL-87018 qtype_essay: Add unit tests for un_summarise_response(). 2026-01-23 19:25:23 +01:00
AMOS bot 8c0d5df95b Automatically generated installer lang files 2026-01-23 00:07:58 +00:00
Safat 862d57ca12 Merge branch 'MDL-86527-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2026-01-22 15:40:02 +11:00
Huong Nguyen ac4a2a427f Merge branch 'MDL-87188-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-22 11:02:53 +07:00
Huong Nguyen f7892080c5 Merge branch 'MDL-87317-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-01-22 10:53:05 +07:00
Huong Nguyen 29cc6da010 Merge branch 'MDL-87318-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-01-22 10:46:28 +07:00
Huong Nguyen 8de8070c46 Merge branch 'MDL-86797-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-22 10:44:30 +07:00
Huong Nguyen b04d0c86f1 Merge branch 'MDL-87092-500' of https://github.com/Kredelirious/moodle into MOODLE_500_STABLE 2026-01-22 10:37:05 +07:00
Huong Nguyen 9fd37ca5c6 Merge branch 'MDL-87090-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2026-01-22 10:32:56 +07:00
Jun Pataleta 80ced0eddc Merge branch 'MDL-86136_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-01-22 08:32:34 +08:00
Jun Pataleta 238eb6b945 Merge branch 'MDL-87478_500' of https://github.com/mohdtahseen1/moodle into MOODLE_500_STABLE 2026-01-22 08:22:33 +08:00
Mark Johnson ca0efffb05 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:30:07 +00:00
Mark Johnson 2785d6f2bd 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:30:06 +00:00
Muhammad Arnaldo 1bf68468ef 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:05:12 +07:00
Muhammad Arnaldo 38375adf4d MDL-86527 behat: Fix random failures when toggling edit mode 2026-01-21 15:05:12 +07:00
Adrian Greeve 4e1053e6ce Merge branch 'MDL-87625-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-01-21 14:20:35 +08:00
Adrian Greeve 24c97bd603 Merge branch 'MDL-87659-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-01-21 13:15:07 +08:00
Andrew Nicols 8be48fd41e MDL-87659 core: Hide "Details" section of checks Table when there are none 2026-01-21 13:01:41 +08:00
Huong Nguyen 64f95b61c1 Merge branch 'MDL-79221-MOODLE_500_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_500_STABLE 2026-01-21 10:14:21 +07:00
Huong Nguyen 014580bbdd Merge branch 'MDL-51447-500' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_500_STABLE 2026-01-21 10:10:50 +07:00
AMOS bot 1bb491d769 Automatically generated installer lang files 2026-01-21 00:08:05 +00:00
Yusuf Wibisono fbc30b007b MDL-86639 groups: Wrap group names in grade report group selector 2026-01-21 03:34:57 +07:00
Ilya Tregubov f245bdaf24 Merge branch 'MDL-76975-500' of https://github.com/yerairogo/moodle into MOODLE_500_STABLE 2026-01-20 19:46:11 +02:00
Paul Holden 2b4d264cb1 MDL-86797 courseformat: account for hidden delegated section info. 2026-01-20 09:56:45 +00:00
Kim Jared Lucas 2a6955e490 MDL-87092 tool_uploaduser: suspend enrolments via CSV upload 2026-01-20 11:20:03 +08:00
Mihail Geshoski 0a30b72921 Merge branch 'MDL-87287_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-01-20 10:37:20 +08:00
AMOS bot 173f24702f Automatically generated installer lang files 2026-01-20 00:08:06 +00:00
Anupama Sarjoshi 1944075f31 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:57:01 +05:30
Anupama Sarjoshi c4f303b42a MDL-51447 core_completion: Get visible activities with completion on 2026-01-19 17:57:01 +05:30
Simey Lameze b898bff306 MDL-87090 behat: improve new test 2026-01-19 14:13:16 +08:00
mioyu-ubiq 6b08248cfa MDL-87090 mod_assign : Teacher can override assignment deadlines 2026-01-19 14:13:14 +08:00
David Woloszyn fedc27f80e MDL-78342 core_table: Remove line break conversion in format_text 2026-01-19 13:07:56 +11:00
Mark Johnson 194caa005d MDL-86609 qbank_bulkmove: Select the current category by default 2026-01-16 14:36:20 +00:00
Nicolas Dunand bf73761ff8 MDL-86609 qbank_bulkmove: Target qbank categoryid fix. 2026-01-16 14:35:56 +00:00
Luca Bösch 781cdd65f4 MDL-87318 gradereport_grader: No over-thick table borders with BS 5. 2026-01-16 11:01:31 +01:00
Luca Bösch 0deaaf6e18 MDL-87317 report_progress: Striped hovering table rows with BS 5. 2026-01-16 11:00:37 +01:00
Jake Dallimore 3d8e9b8444 weekly release 5.0.4+ 2026-01-16 16:38:28 +08:00
Jake Dallimore 07c19b9ce7 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2026-01-16 16:38:22 +08:00
Paul Holden d33164d9c4 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:26:53 +08:00
Jake Dallimore 0f56b6d72b Merge branch 'MDL-87634-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen b27b9b4031 Merge branch 'MDL-86802-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Jake Dallimore 8d12694488 Merge branch 'MDL-86423-500' of https://github.com/martygilbert/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Jake Dallimore fb293a5750 Merge branch 'MDL-87635-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Jake Dallimore 301e373ffa Merge branch 'MDL-86869_500-single-view-overload' of https://github.com/alexkeel/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Paul Holden b8bd4e8604 MDL-50364 forms: consistent access to language strings from JS. 2026-01-16 15:26:53 +08:00
Paul Holden 54b42e04af Merge branch 'MDL-50364-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Ilya Tregubov 80709ededb Merge branch 'MDL-85300-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen 8af6c40ab0 Merge branch 'MDL-86017-500' of https://github.com/mijiaa/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen 2bd3f9f058 Merge branch 'MDL-87070-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen e9fbd3db48 Merge branch 'MDL-85431_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen 7ccd3a62d9 Merge branch 'MDL-87443-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:53 +08:00
Huong Nguyen be210d1ed2 Merge branch 'MDL-87229-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2026-01-16 15:26:52 +08:00
Huong Nguyen b9d71a4a47 Merge branch 'MDL-87056-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:52 +08:00
Huong Nguyen 31fd12db29 Merge branch 'MDL-86565-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:52 +08:00
Huong Nguyen cf22cbe371 Merge branch 'MDL-87120-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2026-01-16 15:26:51 +08:00
Paul Holden 73c0ee2162 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:05:04 +00:00
Mark Johnson 855d0901ea MDL-85653 qbank_editquestion: Display static status when not editable 2026-01-14 15:42:40 +00:00
Mark Johnson 7bd7ca8d83 MDL-86444 questions: Fix question categories with incorrect top parents 2026-01-14 10:11:40 +00:00
Paul Holden ed571424f9 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:34 +00:00
Yerai Rodríguez 5f075b79be 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-14 08:34:06 +01:00
Guest 5093d3bfe7 MDL-87478 mod_quiz: Make pre-create attempts work with previews 2026-01-13 15:10:45 +05:30
AMOS bot 22e13a4463 Automatically generated installer lang files 2026-01-13 00:08:00 +00:00
Andrew Nicols 072658a276 MDL-87625 core: Use the /r.php basepath to guess routes 2026-01-13 08:06:38 +08:00
Paul Holden d873307bf8 MDL-87635 backup: ensure required test libraries are loaded. 2026-01-12 17:22:26 +00:00
Simey Lameze 602e40f054 MDL-87088 behat: add missing @javascript tags to required tests 2026-01-12 13:37:59 +07:00
Angelia Dela Cruz 8507bc2716 MDL-87070 mod_glossary: Behat to confirm glossary autolinking works 2026-01-12 11:59:14 +08:00
Huong Nguyen 3e398810f2 Merge branch 'MDL-87088-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2026-01-12 09:53:25 +07:00
Huong Nguyen 1352482b39 Merge branch 'MDL-86058-allow-enable-disable-tasks-backport-MOODLE-500-STABLE' of https://github.com/duyhuynhdev/moodle into MOODLE_500_STABLE 2026-01-12 09:44:32 +07:00
Stefan Topfstedt 27a36e6fae MDL-77162 filepicker: default to selecting first repository available. 2026-01-09 08:14:14 -08:00
Paul Holden 4c4e77ba26 MDL-87443 reportbuilder: use Toast selector in Behat scenarios. 2026-01-09 12:08:19 +00:00
Paul Holden fdd9f2e022 MDL-87443 behat: define new Toast message named selector. 2026-01-09 12:08:19 +00:00
Mark Johnson cffa9a1008 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:42:39 +00:00
Mark Johnson 0ff87413b5 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:42:07 +00:00
Mark Johnson 8bd6c40a0c 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:42:07 +00:00
Tasio e95a118087 MDL-87437 course: Make course cached image entries domain-agnostic 2026-01-09 10:10:23 +01:00
Luca Bösch 80e0d1818a MDL-87229 course: Show nice "Other users" table in courses. 2026-01-09 07:12:42 +01:00
Jayce Birrell a38ed9f2a3 MDL-50364 forms: calendar header renderer uses translated months 2026-01-09 13:52:59 +10:30
Angelia Dela Cruz 3ff7a1a4b7 MDL-87088 core_grades: Behat to view grades from user menu 2026-01-09 10:40:30 +08:00
Huong Nguyen 9699514341 weekly release 5.0.4+ 2026-01-09 08:41:40 +07:00
Huong Nguyen c04d745016 NOBUG: Add upgrade notes 2026-01-09 08:41:40 +07:00
Christian Abila 426b0a0138 MDL-51152 Enrolments: clarify web service 2026-01-08 09:30:16 +01:00
Christian Abila 7e29055181 MDL-51152 Enrolments: remove unused parameter roleid 2026-01-08 09:30:16 +01:00
Jun Pataleta 4c2ac777f1 MDL-85535 forum: Render discussion navigation at the bottom only 2026-01-08 11:35:00 +08:00
Jun Pataleta b6f5584c4d MDL-85535 forum: Label discussion navigation 2026-01-08 11:35:00 +08:00
Marty cd80e0ae07 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:20:51 -05:00
Paul Holden 7a2a319bbd 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:26 +00:00
Jun Pataleta f1784eba65 Merge branch 'MDL-86436-navigation-accessibility-page-heading-menu-visible-on-larger-screens-even-if-empty-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2026-01-07 11:18:05 +08:00
Jun Pataleta c3114ff21a Merge branch 'MDL-87416-glossary-entry-page-title-missing-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2026-01-07 11:13:54 +08:00
Santosh Nagargoje 4c53960c75 MDL-83984 core: Fixed subpanel show/hide issue 2026-01-06 16:19:21 +05:30
Adrian Greeve 9841148790 Merge branch 'MDL-87526-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2026-01-06 09:10:36 +08:00
Stefan Topfstedt fe15e9f6c3 MDL-87416 glossary: set page title on glossary entry details page. 2026-01-05 11:31:48 -08:00
Mark Johnson fbf2963387 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:20:51 +00:00
Paul Holden fa94598fe0 Merge branch 'MDL-87288-500' of https://github.com/ilyatregubov/moodle into MOODLE_500_STABLE 2026-01-05 09:46:54 +00:00
Huong Nguyen 39ca46780a Merge branch 'MDL-81882-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-12-29 13:51:48 +07:00
Matt Porritt 926ac9ed31 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 12:03:43 +07:00
Huong Nguyen 426ffb42da Merge branch 'MDL-87433-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-12-29 09:54:47 +07:00
yusufwib01 49dcdcadba 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-12-29 09:30:48 +07:00
Muhammad Arnaldo 2482ea9af6 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 16:14:26 +07:00
Alex Keel 09a7591042 MDL-86869 gradereport_singleview: Raises memory limit 2025-12-23 12:20:20 +00:00
Mihail Geshoski b81abb8578 Merge branch 'MDL-86798_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-12-23 16:11:38 +08:00
Andrew Nicols c9529535bb MDL-87526 core: Specify composer project type 2025-12-23 11:50:05 +08:00
Andrew Nicols 164376014e MDL-87526 core: Moodle provides moodle/lms 2025-12-23 11:50:05 +08:00
Mark Johnson 976456a6f1 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:28:23 +00:00
Mark Johnson a364395d8e 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:28:23 +00:00
Mark Johnson fb9f3ee58c 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:26:15 +00:00
Huong Nguyen 6e82b46a48 weekly release 5.0.4+ 2025-12-19 09:04:41 +07:00
Ilya Tregubov 29e9471a66 MDL-87288 output: Fix pagination in small containers. 2025-12-18 09:37:49 +01:00
Huong Nguyen 6e1e877bb6 Merge branch 'MDL-87340-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-12-18 11:45:27 +08:00
Huong Nguyen b5d6d847cf Merge branch 'MDL-86420-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-12-18 11:45:27 +08:00
Huong Nguyen 02a6973793 Merge branch 'MDL-86086-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-12-18 11:45:27 +08:00
Huong Nguyen 2ceffeba8a Merge branch 'MDL-87094-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-12-18 11:45:27 +08:00
Mihail Geshoski f77a71f18f Merge branch 'MDL-72833_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-12-18 11:45:27 +08:00
Andi Permana 3df3f8c96c MDL-86086 theme_boost: Add visual distinction for readonly form inputs 2025-12-17 19:07:52 +07:00
Mihail Geshoski 627fdd0bfd Merge branch 'MDL-86416-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-17 12:15:05 +08:00
Paul Holden 5355c46c43 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:30:20 +00:00
Alex Keel 48020125d1 MDL-86869 gradereport_singleview: Lower the max per page limit
Review actions
2025-12-15 14:48:36 +00:00
Amaia Anabitarte 8a9707b653 Merge branch 'MDL-87436-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2025-12-15 13:42:36 +01:00
Mark Johnson 9ad6d20b70 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:46:52 +00:00
Jun Pataleta 3c56b3b7c0 Merge branch 'MDL-87341_500' of https://github.com/TomoTsuyuki/moodle into MOODLE_500_STABLE 2025-12-15 18:48:35 +08:00
Angelia Dela Cruz d6f5a3fa89 MDL-87094 core_course: Behat to restrict available activities/resources 2025-12-15 12:06:06 +08:00
Huong Nguyen e7f3feac7e Merge branch 'MOODLE_500_STABLE_MDL-73396' of https://github.com/niko-hoogeveen/moodle into MOODLE_500_STABLE 2025-12-15 08:55:46 +07:00
Huong Nguyen 08b7aafce2 Merge branch 'MDL-86679-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-12-15 08:47:53 +07:00
Tomo Tsuyuki 89b2aac22c MDL-87341 javascript: Fix aria label issue for navigation bar 2025-12-15 10:27:41 +11:00
Stefan Topfstedt d3500faa9b MDL-86436 navigation: hide empty page heading menu.
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-12-12 18:05:36 -08:00
Stefan Topfstedt 61b4aaf199 MDL-87415 profile: set page title when accessed as guest user. 2025-12-12 13:43:38 -08:00
Philipp Memmel 36caae7105 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:43:00 +01:00
Philipp Memmel 9af25198fd MDL-79221 core_completion: Do not update state for disabled plugins 2025-12-12 06:43:00 +01:00
Shamim Rezaie f878d036dd weekly release 5.0.4+ 2025-12-12 14:06:34 +11:00
Shamim Rezaie 9ccb749a18 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-12-12 14:06:24 +11:00
Mihail Geshoski a6d0cb3cc1 MDL-87412 qbank_managecategories: Use single quotes in scenario name 2025-12-12 09:46:25 +07:00
Huong Nguyen 40d438dac1 Merge branch 'MDL-84736-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-12-12 09:46:25 +07:00
Huong Nguyen 94b842021c Merge branch 'MDL-86830-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-12-12 09:46:25 +07:00
Huong Nguyen 7a567ed194 Merge branch 'MDL-86808-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-12-12 09:46:25 +07:00
Luca Bösch 5e6e675fb9 MDL-86677 mod_quiz: Make the attempt summary table striped 2025-12-12 09:46:24 +07:00
Mihail Geshoski 9054263ecd Merge branch 'MDL-87182-500' of https://github.com/srobotta/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Mihail Geshoski 0dbb57ece9 Merge branch 'MDL-87121_500' of https://github.com/santoshndev/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Mihail Geshoski b9be456bc6 Merge branch 'MDL-87412_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Mihail Geshoski 2c6fd6d4ac Merge branch 'MDL-87142-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Jun Pataleta 84c34ff230 Merge branch 'MDL-86807-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Jun Pataleta 06a0eb182b Merge branch 'MDL-86805-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Huong Nguyen c0fefda2fc Merge branch 'MDL-86593-500' of https://github.com/christianabila/moodle into MOODLE_500_STABLE 2025-12-12 09:46:24 +07:00
Muhammad Arnaldo be74828054 MDL-86420 enrol_database: avoid duplicate key violations 2025-12-11 10:25:24 +07:00
AMOS bot 984a280583 Automatically generated installer lang files 2025-12-11 00:08:02 +00:00
Niko Hoogeveen fb6a0f6444 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:21:51 -05:00
Niko Hoogeveen 307ed32403 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:21:51 -05:00
Laurent David e30b97f3b8 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-10 12:10:12 +01:00
Simey Lameze 187cc673c9 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:23:21 +08:00
Angelia Dela Cruz 59bd9c5da6 MDL-84736 gradingform : Behat for editing guide with graded submissions 2025-12-09 17:23:20 +08:00
Stefan Topfstedt fa50aa22b9 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:15:29 +08:00
Huong Nguyen 917b9a0e32 Merge branch 'MDL-87379_500' of https://github.com/santoshndev/moodle into MOODLE_500_STABLE 2025-12-09 09:28:29 +07:00
Mihail Geshoski 4388a17c2b Merge branch 'MDL-82281-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-12-09 09:45:59 +08:00
Mihail Geshoski 95bce73f7c Merge branch 'MDL-86677-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-12-09 09:29:03 +08:00
Mihail Geshoski a1390072c3 Merge branch 'mdl-87356_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-12-09 09:17:50 +08:00
Simey Lameze 8a3093377a 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:34:12 +08:00
Stephan Robotta 8137ccc608 MDL-87182 quiz: no CBM metric when no data available 2025-12-08 08:46:02 +01:00
Muhammad Arnaldo becef1c899 MDL-86807 core_courseformat: RTL chevron in move activity modal 2025-12-08 11:50:37 +07:00
Andi Permana e9688d295f MDL-86830 calendar: Fix double encoding in event title attributes 2025-12-08 10:44:07 +07:00
Luca Bösch c3be940177 MDL-87142 question: dropdown-toggle class for question format select 2025-12-07 20:12:44 +01:00
Luca Bösch 9ae5248089 MDL-86677 mod_quiz: let the summary of attempt table be striped 2025-12-07 20:11:49 +01:00
Luca Bösch 580ab8704e MDL-82281 quiz: Amend test to circumvent modinfo cache fails. 2025-12-07 20:10:59 +01:00
Huong Nguyen a5b3ac7e43 Moodle release 5.0.4 2025-12-07 08:06:17 +07:00
Huong Nguyen a7bbd44304 NOBUG: Add upgrade notes 2025-12-07 08:06:16 +07:00
Andi Permana c15d798502 MDL-86805 courseindex: Fix RTL keyboard navigation in tree 2025-12-06 01:09:24 +07:00
Mark Johnson a4d8076384 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:18:20 +00:00
Santosh Nagargoje 8a23b61990 MDL-87379 theme_classic: Fixed mobile responsiveness issue 2025-12-05 15:25:33 +05:30
Muhammad Arnaldo e27fe53bc3 MDL-86808 theme_boost: misaligned footer popover in RTL
Limit the fallback placement vertically.
2025-12-05 16:28:00 +07:00
Andi Permana 65008c9e74 MDL-86679 core: Fix MS field mappings in upgrade script 2025-12-05 15:48:31 +07:00
Andi Permana 87eef1669d MDL-86679 oauth2: Support MS personal and work account names 2025-12-05 15:44:23 +07:00
Huong Nguyen 5a34bf72d6 weekly release 5.0.3+ 2025-12-05 08:08:56 +07:00
Huong Nguyen 3cf30be0f1 NOBUG: Add upgrade notes 2025-12-05 08:08:56 +07:00
Huong Nguyen 0c04f1921f MDL-81304 Performance: Add notes for CTE 2025-12-04 21:12:23 +07:00
Huong Nguyen b61eb194ef Merge branch 'MDL-87068-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-12-04 20:59:59 +07:00
Santosh Nagargoje 7cee7c5692 MDL-87121 quiz: Fixed random question performance issue 2025-12-04 17:27:37 +05:30
James C d36616757c MDL-87356 qtype_random: orphaned random questions should be deleted
This patch reinstates the task from MDL-63260 and MDL-66273.
2025-12-04 23:00:49 +13:00
Christian Abila 4d8bcbece8 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:07:18 +01:00
Angelia Dela Cruz 1c9c017fa5 MDL-87068 contentbank_h5p: Behat for restoring course contentbank 2025-12-04 10:33:49 +08:00
Huong Nguyen ae27d04332 Merge branch 'MDL-83485-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-04 09:19:07 +07:00
Huong Nguyen 460089df2f Merge branch 'MDL-82232-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-04 09:13:09 +07:00
Huong Nguyen b33724c13e MDL-72744 table: Improve PHPUnit test 2025-12-04 08:57:58 +07:00
David Woloszyn 50b527ad2d MDL-72744 core_grades: Escape formulas when exporting spreadsheets 2025-12-04 08:57:58 +07:00
David Woloszyn bcf67dd1cb MDL-72744 dataformat: Escape formulas when exporting spreadsheets
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2025-12-04 08:57:58 +07:00
Mihail Geshoski 09a76fcb45 Merge branch 'MDL-85534-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-04 09:45:20 +08:00
Huong Nguyen 05b0e7c0eb MDL-86087 core: Use correct required version 2025-12-04 08:36:40 +07:00
Mihail Geshoski 148a0c6459 Merge branch 'MDL-87299-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-12-04 09:22:12 +08:00
Mihail Geshoski 7e131d5b33 Merge branch 'MDL-87245-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-03 23:50:18 +08:00
Mihail Geshoski 9afb3db588 Merge branch 'MOODLE_500_STABLE_MDL-81304' of https://github.com/mattporritt/moodle into MOODLE_500_STABLE 2025-12-03 23:38:48 +08:00
Jun Pataleta b63c72dccd MDL-87245 scorm: Indicate when the SCORM package opens in a new window 2025-12-03 23:36:26 +08:00
Jun Pataleta 877e43b6ee MDL-87245 lang: Add a bracketed form of the opensinnewwindow lang string 2025-12-03 23:36:25 +08:00
Mihail Geshoski 18e8714eb4 Merge branch 'MDL-85858-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-12-03 23:28:37 +08:00
Jun Pataleta 1c9f9eed15 MDL-85534 forum: Set appropriate heading levels for the discussion page 2025-12-03 17:33:51 +08:00
Huong Nguyen a2d7d9bd05 Merge branch 'MDL-87091-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-12-03 16:11:33 +07:00
mioyu-ubiq 01ed555cad MDL-87091 behat: Test authloginviaemail setting behavior 2025-12-03 15:55:56 +08:00
Huong Nguyen e27c62ed44 MDL-87353 core: Safer unserializing of file references 2025-12-03 14:17:23 +08:00
Jun Pataleta b9465bbd1d Merge branch 'MDL-86087-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-12-03 14:10:04 +08:00
Stefan Hanauska 0722f5dc62 MDL-86960 mod_glossary: Check user 2025-12-03 13:42:17 +08:00
Stefan Hanauska 8f7d361597 MDL-86960 mod_data: Check user 2025-12-03 13:42:10 +08:00
Stefan Hanauska c05961c8da MDL-86960 mod_forum: Check user 2025-12-03 13:42:03 +08:00
Huong Nguyen 822dd5aeb7 Merge branch 'MDL-87339-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-12-03 12:15:02 +07:00
Jake Dallimore 60e6410c73 MDL-87286 enrol_lti: prevent suspended user account auth in legacy LTI 2025-12-03 15:50:09 +11:00
Jake Dallimore 6cf403f23e MDL-87286 auth_lti: prevent suspended user account auth in LTI1p3 2025-12-03 15:50:09 +11:00
Matt Porritt fbf71949dc 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:49:41 +11:00
raortegar 83ee815775 MDL-87267 aiplacement_courseassist: Improve response formatting 2025-12-03 11:16:44 +07:00
Mihail Geshoski 672b2a9074 MDL-82808 assign: Use blindid during submission removal in blind marking 2025-12-03 03:14:20 +00:00
Rajneel Totaram bf6fb596dc MDL-82808 mod_assign: replace userid with blindid in anonymous marking 2025-12-03 03:14:20 +00:00
David Woloszyn 8565f480a3 MDL-86544 lib: Adjust checks on local URL params 2025-12-03 03:14:20 +00:00
Eric Merrill 8c9068eb5d MDL-80317 auth_oauth2: Restrict login redirect to local url 2025-12-03 03:14:20 +00:00
Stefan Hanauska 664191aa93 MDL-86507 badge: Check if role is assigned 2025-12-03 03:14:20 +00:00
David Woloszyn 9438f2af46 MDL-85557 tiny_equation: Sanitise equation preview input 2025-12-03 03:14:20 +00:00
yusufwib01 6d2eefe372 MDL-86326 auth: Enhance validation logic in resend_confirmation_email 2025-12-03 03:14:20 +00:00
Mihail Geshoski 545f94bbbc Merge branch 'MDL-86749_500' of https://github.com/santoshndev/moodle into MOODLE_500_STABLE 2025-12-03 11:06:23 +08:00
Huong Nguyen a0e4237954 Merge branch 'MDL-78442-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-12-03 09:55:53 +07:00
Mihail Geshoski a92402e067 Merge branch 'MDL-87066_cleanstring_500' of https://github.com/skodak/moodle into MOODLE_500_STABLE 2025-12-03 09:47:36 +08:00
Jun Pataleta b4a12fcc30 MDL-82232 behat: Fix breadcrumb navigation on Behat 2025-12-02 19:22:10 +08:00
Jun Pataleta 3140d11871 MDL-82232 core: Change the breadcrumb lang string to Breadcrumb 2025-12-02 19:22:10 +08:00
Andi Permana fe98642103 MDL-78442 antivirus_clamav: Try SCAN first, then INSTREAM as fallback 2025-12-02 15:46:43 +07:00
Andi Permana da7ce0c6e2 MDL-78442 tool_moodlenet: Fix directory path passed to antivirus scanner 2025-12-02 15:46:43 +07:00
Mihail Geshoski 9ff7da25f1 Merge branch 'MDL-86806-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-12-02 15:11:03 +08:00
Mihail Geshoski adbdfc59ca Merge branch 'MDL-86523-MOODLE_500_STABLE_invalidcategoryid' of https://github.com/loewis/moodle into MOODLE_500_STABLE 2025-12-02 15:03:57 +08:00
Mihail Geshoski 4425af045f Merge branch 'MDL-86844-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-12-02 14:50:31 +08:00
Mihail Geshoski 11d65e4c0b MDL-85405 core: Bump version to update cache 2025-12-02 14:27:50 +08:00
Mihail Geshoski 7fd581312c Merge branch 'MDL-85405_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-12-02 14:20:09 +08:00
Huong Nguyen f9ec46708e Merge branch 'MDL-84898-prohibitjoin-50' of https://github.com/leonstr/moodle into MOODLE_500_STABLE 2025-12-02 10:38:24 +07:00
Huong Nguyen bd4730f673 Merge branch 'MDL-86425-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-12-02 10:32:39 +07:00
Huong Nguyen 47f6947f32 Merge branch 'MDL-87218-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2025-12-02 10:30:59 +07:00
Muhammad Arnaldo 1f68dba5c2 MDL-86806 core_courseformat: Fix RTL keyboard navigation
Ensure consistent navigation experience across LTR and
RTL interfaces in activity chooser.
2025-12-02 10:20:50 +07:00
David Mudrák 64e7610026 MDL-87218 lang: Use the fixed strings in tests, too 2025-12-01 19:46:29 +01:00
Helen Foster 44549616db MDL-87218 lang: Import fixed English strings (en_fix) 2025-12-01 19:46:29 +01:00
Jun Pataleta e3cc7953eb 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:01:20 +08:00
Jun Pataleta 3902dd9df6 MDL-85858 mod_scorm: Use semantic heading for the Preview mode 2025-11-28 21:01:19 +08:00
Jun Pataleta 8b9a7fdb15 MDL-85858 mod_scorm: Set page and iframe titles for the SCORM player 2025-11-28 21:01:19 +08:00
Luca Bösch fbc330cf89 MDL-86844 qbank: style question bank table as in Moodle 4.5. 2025-11-28 10:40:16 +01:00
Huong Nguyen c4d054cfbf 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:10:34 +07:00
Huong Nguyen d25846cb41 MDL-86087 core: Define environment requirements for Moodle 5.2 2025-11-28 09:10:34 +07:00
Paul Holden f2ca4d59b2 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:06:14 +00:00
Paul Holden 08d0f1021a MDL-87323 report_outline: fix report viewed event URL. 2025-11-27 17:28:56 +00:00
Mark Johnson 4317b656ae MDL-85405 course: Fix indentation and line wrapping 2025-11-27 15:13:46 +00:00
Luca Bösch d0c0e5a635 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:13:45 +00:00
Petr Skoda a16fc54eb3 MDL-87066 core: add upgrade note for clean_string() 2025-11-27 14:59:00 +01:00
Petr Skoda f00eecb062 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:59:00 +01:00
Luca Bösch a36c4548be MDL-87299 qtype_match: Remove Bootstrap 5 table borders. 2025-11-27 13:59:07 +01:00
Mihail Geshoski 299b171191 weekly release 5.0.3+ 2025-11-27 19:40:25 +08:00
Mihail Geshoski 446d364a02 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-11-27 19:40:11 +08:00
Stefan Hanauska 7bce94b05f MDL-86425 backup: Reset nullcontent flag in xml_writer 2025-11-27 06:11:56 +01:00
Jun Pataleta bcba5e2b27 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:37:04 +08:00
Jun Pataleta 08564c803b MDL-83485 core: Add accessibility Behat coverage to the preferences page 2025-11-27 11:37:03 +08:00
Jun Pataleta 2fac37a527 MDL-83485 core: Fix heading level for preferences groups 2025-11-27 11:37:03 +08:00
Jun Pataleta 0d53dbc128 MDL-83485 core: Render preferences groups as lists 2025-11-27 11:37:03 +08:00
Andrew Nicols 3f64d0da2f Merge branch 'MDL-86255-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-27 11:11:06 +08:00
Andrew Nicols dcec803f0a Merge branch 'MDL-86955-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-27 11:08:30 +08:00
Jake Dallimore 707eef0930 Merge branch 'MDL-86840-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-27 09:43:58 +08:00
Paul Holden ae44f84ffa 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:11:12 +00:00
Paul Holden 773823a082 MDL-87188 gradereport_grader: prevent overlapping collapsed columns. 2025-11-26 11:40:35 +00:00
Mihail Geshoski 50cfa1884c Merge branch 'MDL-87259-500' of https://github.com/x-iy/moodle into MOODLE_500_STABLE 2025-11-26 18:02:27 +08:00
Mihail Geshoski 19c613902d Merge branch 'MDL-86668-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-26 17:51:36 +08:00
Mihail Geshoski 4893a3ca55 Merge branch 'MDL-86975-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-26 17:43:50 +08:00
Mihail Geshoski 09b4598628 Merge branch 'MDL-87149-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-26 17:30:00 +08:00
david adamson a9ab17b82e MDL-87259 course: Correct content item user cache key 2025-11-26 14:36:19 +11:00
Paul Holden b01cffa8c7 Merge branch 'MDL-87046-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-11-25 15:25:23 +00:00
Andrew Nicols 045967e885 MDL-86018 tool_xmldb: Check XML content in reconciler 2025-11-25 15:02:18 +00:00
Paul Holden a158a2043a Merge branch 'MDL-85306-500' of https://github.com/vinod404/moodle into MOODLE_500_STABLE 2025-11-25 14:38:05 +00:00
Andrew Nicols 880f41ef50 Merge branch 'MDL-86656-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-25 21:14:08 +08:00
Andrew Nicols a20783157a Merge branch 'MDL-86419-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-25 21:08:21 +08:00
Andrew Nicols 0edf1c226c Merge branch 'MDL-86279-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-25 21:04:36 +08:00
Andrew Nicols a8c5fd81c9 Merge branch 'MDL-87166-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-25 20:58:19 +08:00
Andrew Nicols e6f215292e Merge branch 'MDL-86765-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-25 20:52:26 +08:00
Leon Stringer d371441c62 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:34:46 +00:00
Huong Nguyen 40544a33b5 Merge branch 'MDL-87017-500-frontpage-block-any-page' of https://github.com/danowar2k/moodle into MOODLE_500_STABLE 2025-11-25 10:42:18 +07:00
Huong Nguyen 88e4536aff Merge branch 'MDL-87194-500' of https://github.com/albertgasset/moodle into MOODLE_500_STABLE 2025-11-25 10:40:04 +07:00
Huong Nguyen db8823ef36 Merge branch 'MDL-86161-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-25 10:38:13 +07:00
Huong Nguyen 8318a966f5 Merge branch 'MDL-87031_500' of https://github.com/santoshndev/moodle into MOODLE_500_STABLE 2025-11-25 10:35:28 +07:00
Jun Pataleta ea032c7045 Merge branch 'MDL-86547-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-11-25 11:09:46 +08:00
Huong Nguyen d19fcae54b Merge branch 'MDL-85930-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-11-25 08:51:57 +07:00
Muhammad Arnaldo 53d459e674 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:27:36 +07:00
Jun Pataleta 91fbd8048b Merge branch 'MDL-86547-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-11-24 15:55:19 +08:00
Muhammad Arnaldo 55c2214ee3 MDL-86547 theme_boost: Improve inline code contrast in editor
Changed the background color of highlighted inline code for better accessibility.
2025-11-24 14:26:15 +07:00
AMOS bot 25d176c1bb Automatically generated installer lang files 2025-11-23 00:08:22 +00:00
Santosh Nagargoje 83356beefa MDL-87031 gradereport: Fixed clear button issue 2025-11-21 23:37:09 +05:30
Martin v. Löwis aee6e963f2 MDL-86523 backup: update context only if also updating category. 2025-11-21 15:47:08 +01:00
Luca Bösch bb1926ee95 MDL-86668 course: Support filter in scale names. 2025-11-21 10:46:27 +01:00
Luca Bösch 78629fc48a MDL-86161 groups: Correct picture title and alt text. 2025-11-21 10:46:11 +01:00
Huong Nguyen 91febb5f8e weekly release 5.0.3+ 2025-11-21 14:33:34 +07:00
Huong Nguyen cafdda4428 NOBUG: Add upgrade notes 2025-11-21 14:33:34 +07:00
Mihail Geshoski 3503f27db7 Merge branch 'MDL-86984-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-21 08:11:18 +07:00
Mihail Geshoski ed5aa97fc9 Merge branch 'MDL-86069-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-21 08:11:18 +07:00
Mihail Geshoski ec879bb46b Merge branch 'MDL-87011-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-11-21 08:11:17 +07:00
Huong Nguyen 7336d00a9d Merge branch 'MDL-86323_500' of https://github.com/PhilippImhof/moodle into MOODLE_500_STABLE 2025-11-21 08:11:17 +07:00
Huong Nguyen f95ba7e3aa Merge branch 'MDL-87048-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-11-21 08:11:17 +07:00
Huong Nguyen 33216607a5 Merge branch 'MDL-84735-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-11-21 08:11:17 +07:00
Andrew Nicols a5a6c1f554 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:53:03 +08:00
Huong Nguyen d75c674d3a Merge branch 'MDL-85373-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Mihail Geshoski 21778ac0c0 Merge branch 'MDL-86967_500' of https://github.com/Chocolate-lightning/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Huong Nguyen c8cfd00a3f Merge branch 'MDL-86272-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Amaia Anabitarte 95a394d41b Merge branch 'MDL-87198-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Huong Nguyen 3fd6c503ce Merge branch 'MDL-82511-cache-cron-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Huong Nguyen aff6b93390 Merge branch '86320-fix-qr-code-unit-test-500' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Huong Nguyen 54683a0468 Merge branch 'MDL-86907-500' of https://github.com/mioyu-ubiq/moodle into MOODLE_500_STABLE 2025-11-20 13:30:41 +07:00
Huong Nguyen cbe8aca481 Merge branch 'MDL-72608-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-20 13:30:40 +07:00
Huong Nguyen f6f24f266d Merge branch 'MDL-85835-500' of https://github.com/plasger-uni-siegen/moodle into MOODLE_500_STABLE 2025-11-20 13:30:40 +07:00
Huong Nguyen fbcefd88b2 Merge branch 'MDL-86998-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-20 13:30:40 +07:00
Simey Lameze 0594d87148 MDL-87050 behat: use src for img xpath selector 2025-11-20 13:30:40 +07:00
Mihail Geshoski 00205a5453 Merge branch 'MDL-85049-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-20 13:30:40 +07:00
Mihail Geshoski 56d34f5a47 Merge branch 'MDL-86817_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-11-20 13:30:40 +07:00
Angelia Dela Cruz 323458a3a8 MDL-87048 tool_lp: Behat for synchronising cohort with learning plan 2025-11-20 10:10:31 +08:00
Angelia Dela Cruz 071658ba28 MDL-84735 gradingform: Behat for modifying marking guide criterion 2025-11-20 07:50:09 +08:00
Paul Holden c1860dad87 MDL-86272 tool_policy: verify current user before store policy agreed. 2025-11-18 11:47:59 +00:00
Santosh Nagargoje 6f62b7eaa5 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 16:56:47 +05:30
Paul Holden 4e85aecde8 MDL-86565 courseformat: don't link to sections user cannot see. 2025-11-18 10:32:01 +00:00
Mathew May 0b6ac8dc94 MDL-86967 theme_classic: Correct orange & yellow vars + warning 2025-11-18 15:06:50 +08:00
Mathew May 40f7285bbb MDL-86967 theme_boost: Correct orange & yellow vars + warning 2025-11-18 15:06:45 +08:00
mioyu-ubiq fba03e9ee5 MDL-86907 mod_choice: Behat test for adding multiple choice responses 2025-11-18 15:01:54 +08:00
Mihail Geshoski 9e26d529c4 Merge branch 'MDL-86099_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-11-17 22:28:35 +08:00
Andi Permana b21e7b56a6 MDL-85930 tiny_media: Fix adding video from Youtube repo 2025-11-17 19:10:13 +07:00
Paul Holden f1d0e24258 MDL-86279 core: fix deprecation emitting/annotation in AWS helpers. 2025-11-17 11:01:03 +00:00
Paul Holden 6213577e08 MDL-86955 tool_task: ensure tasks are runnable in adhoc table output. 2025-11-17 10:56:49 +00:00
Huong Nguyen 06a1c95afa Merge branch 'MDL-85235-500' of https://github.com/safatshahin/moodle into MOODLE_500_STABLE 2025-11-17 16:02:01 +07:00
Huong Nguyen d3096b658b Merge branch 'MDL-87050-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-17 15:58:14 +07:00
Huong Nguyen eb07f79220 Merge branch 'MDL-87111-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-17 15:31:42 +07:00
Huong Nguyen 146c3da68f Merge branch 'MDL-86810-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-17 15:27:42 +07:00
Huong Nguyen c47d471e3b Merge branch 'MDL-86159-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-17 14:56:03 +07:00
Huong Nguyen df3ef9a8e7 Merge branch 'MDL-85764-quiz-notification-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-11-17 14:50:48 +07:00
vinod404 b362a6d1ed 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 12:14:16 +05:30
Jun Pataleta 83d2dc180f 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:45:01 +08:00
Jun Pataleta a14c44374a MDL-87149 mod_feedback: Generate dependent questions
Allow the generator to create questions that depend on other questions.
2025-11-17 12:45:01 +08:00
Jun Pataleta e6d4f54e23 MDL-87149 theme_boost: Remove the .feedback_is_dependent class
It's no longer being used. So, just remove it.
2025-11-17 12:45:00 +08:00
Jun Pataleta ad733468ef 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 12:45:00 +08:00
Huong Nguyen 3a7525ed2f Merge branch 'MDL-87107-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-11-17 09:09:02 +07:00
Mark Johnson 377bce2895 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:51:21 +00:00
Albert Gasset d0fdcd6528 MDL-87194 tool_mobile: Fix subscription requests 2025-11-14 16:17:03 +01:00
Albert Gasset 6e173777e9 MDL-87194 message_airnotifier: Fix access key requests 2025-11-14 16:16:54 +01:00
Sara Arjona 17d26daac7 MDL-87198 course_format: Consider section name visibility in Overview 2025-11-14 15:56:49 +01:00
Daniel Poggenpohl 3dfe385f07 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:37:58 +01:00
Paul Holden bada9f3efa MDL-72608 output: define default popover region template lang string. 2025-11-14 13:04:50 +00:00
Paul Holden c0d57476a5 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:56 +00:00
Benjamin Walker 5afac60e42 MDL-85764 mod_quiz: Improve performance of quiz notifications task 2025-11-14 20:04:14 +10:00
Benjamin Walker 724e5b45e3 MDL-82511 cachestore_redis: Reduce blocking when finding keys 2025-11-14 20:03:43 +10:00
Benjamin Walker fd6b14286a MDL-82511 cache: Improve performance of cleanup in cache_cron_task 2025-11-14 20:03:43 +10:00
Paul Holden 2fada9ae2d MDL-86159 mod_bigbluebuttonbn: consistent/correct course name format. 2025-11-14 07:57:59 +00:00
Philipp Imhof edc2f17f54 MDL-86323 editor_tiny: allow svg attributes
Co-authored-by: Petr Skoda <commits@skodak.org>
2025-11-14 08:50:29 +01:00
Luca Bösch 0349b88a58 MDL-86984 book: remove borders in print page top table. 2025-11-13 17:06:59 +01:00
Luca Bösch 19df1c7ea2 MDL-85049 question: complete border around table row for newest question 2025-11-13 17:02:25 +01:00
Mihail Geshoski e6593a6e73 weekly release 5.0.3+ 2025-11-13 18:49:03 +08:00
Mark Johnson 458be6f714 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:35:16 +00:00
Angelia Dela Cruz 1d8531f7d5 MDL-87050 mod_folder: Behat for preventing forced file downloads 2025-11-13 15:53:07 +08:00
Mihail Geshoski 1e2310781e Merge branch 'MDL-86397_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-11-13 12:16:20 +08:00
Huong Nguyen 8715e6ddab Merge branch 'MDL-86845-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-13 11:12:12 +07:00
Huong Nguyen 86574edf57 Merge branch 'MDL-86895-500' of https://github.com/mioyu-ubiq/moodle into MOODLE_500_STABLE 2025-11-13 10:44:05 +07:00
Huong Nguyen 739d59d8d3 Merge branch 'MDL-79249-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-13 10:20:36 +07:00
Huong Nguyen d51f19869f Merge branch 'MDL-87047-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-13 10:16:53 +07:00
Huong Nguyen 1cfae4692b Merge branch 'MDL-78973-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-13 08:52:54 +07:00
Huong Nguyen 904d4637ef Merge branch 'MDL-84967-M500_recordset-not-closed-in-core_analytics_local_analyser_by_course_get_analysables_iterator' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-11-13 08:47:36 +07:00
Huong Nguyen e72988cdf3 Merge branch 'MDL-82867-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-13 08:44:42 +07:00
Mark Johnson 8c35bcb50e 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:25:40 +00:00
Mihail Geshoski b00abeda20 Merge branch 'MDL-87130-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-12 17:26:23 +08:00
Mihail Geshoski c8b6f031cd Merge branch 'MDL-86963-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-12 17:15:00 +08:00
Mihail Geshoski 31b09beaa8 Merge branch 'MDL-85686-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-11-12 16:59:57 +08:00
Angelia Dela Cruz dca942ad3e MDL-87047 tool_lp: Behat optimisation 2025-11-12 16:37:50 +08:00
Mihail Geshoski eafa526b2b Merge branch 'MDL-86886-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-12 16:37:26 +08:00
Angelia Dela Cruz eb9e540a7f MDL-87047 tool_lp: Behat to complete a learning plan and alter it 2025-11-12 16:34:53 +08:00
Angelia Dela Cruz be198feadf MDL-86963 tool_lp: Behat to perform CRUD operations on competencies 2025-11-12 10:33:24 +08:00
Luca Bösch 80d90fd53d MDL-86845 admin: Striped hovering plugins + course format table w/ BS 5. 2025-11-12 00:22:01 +01:00
Safat e29cfb15d2 MDL-85235 tool_mobile: Implement the augmentation hooks for apps 2025-11-12 10:11:16 +11:00
Safat 79950edcd1 MDL-85235 tool_mobile: Add extend ios app banner hook 2025-11-12 10:11:03 +11:00
Paul Holden a32e1d6000 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 15:50:41 +00:00
Jun Pataleta 8d4bef06c3 MDL-86840 forum: Add accessibility Behat coverage
* Add accessibility Behat coverage on the Advanced forum search page.
2025-11-11 21:14:11 +08:00
Jun Pataleta ccff76264a MDL-86840 forum: Do not use layout table for the search form 2025-11-11 21:14:10 +08:00
Jun Pataleta 73d4148143 MDL-86840 forum: Fix heading structure of search form 2025-11-11 21:14:10 +08:00
Paul Holden 84caa44014 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:46 +00:00
Paul Holden 365649a8b7 MDL-86656 task: remove spurious mtrace parameters in calling code.
Co-authored-by: Jason Lees <jlees@arden.ac.uk>
2025-11-11 12:48:16 +00:00
Paul Holden b6f7d9b192 MDL-87056 enrol: update instance modified date when toggling status. 2025-11-11 12:36:26 +00:00
Paul Holden 24523358c0 MDL-87111 filter_tex: remove border-radius of rendered expression. 2025-11-11 12:18:23 +00:00
Paul Holden 0352940fbf MDL-87166 communication: verify user feature support on user deletion. 2025-11-11 11:45:40 +00:00
Jun Pataleta 89951b89c5 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:28:49 +08:00
Jun Pataleta 57c4780ead 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:28:49 +08:00
Angelia Dela Cruz 234fd43581 MDL-86886 tool_lp: Behat to move and cross-reference competencies 2025-11-11 15:54:46 +08:00
Simon Plasger ba629c5b41 MDL-85835 TinyMCE: Fix not working tabs on TinyMCE in quiz mode 2025-11-11 07:32:13 +01:00
Angelia Dela Cruz 479738e0ff MDL-78973 Behat: Behat coverage for invalid file upload in data activity 2025-11-11 13:16:49 +08:00
Simey Lameze cd4c824f6e MDL-85686 mod_quiz: unit test coverage for questions shuffle 2025-11-11 11:18:04 +08:00
Mio Yu ccb3653e7e MDL-86895 core_grades: Behat to verify listing and grading submissions 2025-11-11 09:51:55 +08:00
Safat 5637b4f6ed MDL-85235 core: Add extend url hook 2025-11-10 22:07:39 +11:00
Safat 1eb3e7781d MDL-85235 tool_mobile: Make mobile manifest cookieless and cacheable 2025-11-10 22:07:39 +11:00
Huong Nguyen b6a4b81ae8 Merge branch 'MDL-85627-500' of https://github.com/jleyva/moodle into MOODLE_500_STABLE 2025-11-10 10:17:19 +07:00
Huong Nguyen c615ae3949 Merge branch 'MDL-86999-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-11-10 10:13:11 +07:00
Huong Nguyen bf52e60dce Merge branch 'MDL-81604-500' of https://github.com/t-schroeder/moodle into MOODLE_500_STABLE 2025-11-10 10:08:14 +07:00
Shamim Rezaie 04b7ec3506 Merge branch 'MDL-86965-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-11-10 13:44:24 +11:00
Luca Bösch b038b9ad2d MDL-86999 customfield: Striped hovering fields table with BS 5. 2025-11-07 13:11:19 +01:00
Andrew Nicols f3702d06e0 MDL-87107 core: Stop using MUC for hook manager caching 2025-11-07 17:19:09 +08:00
Huong Nguyen 7838e3f247 weekly release 5.0.3+ 2025-11-07 14:49:05 +07:00
Huong Nguyen 6f5c9fdcee NOBUG: Add upgrade notes 2025-11-07 14:49:05 +07:00
Huong Nguyen 758b273d33 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-11-07 14:48:54 +07:00
Huong Nguyen 32824dd691 Merge branch 'MDL-86701-500-fix' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-07 08:46:41 +07:00
Juan Leyva 5b1c5c47e5 MDL-85627 mod_bigbluebuttonbn: Remove unused class 2025-11-06 13:14:32 +01:00
Jun Pataleta d603e78896 MDL-86701 behat: Update Behat tests to press edit/delete buttons 2025-11-06 18:40:22 +08:00
Huong Nguyen 8c399ba7f9 MDL-69226 environment: filter extension required for 4.1 2025-11-06 18:21:33 +08:00
hieuvu adf6199966 MDL-86965 core_question: Fix get_bank_instances query. 2025-11-06 16:52:09 +07:00
Mihail Geshoski 2699e5f3c2 Merge branch 'MDL-87073-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-11-06 17:07:52 +08:00
Huong Nguyen cbe0abe1be 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:47:13 +07:00
Huong Nguyen 54272a7269 Merge branch 'MDL-86908-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-11-06 15:42:27 +07:00
Huong Nguyen 525c6541bc Merge branch 'MDL-87049-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-11-06 15:40:31 +07:00
Huong Nguyen b80d614961 Merge branch 'MDL-87079-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-11-06 15:37:29 +07:00
Jake Dallimore a8ad58cc07 Merge branch 'MDL-86379-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-11-06 14:30:05 +08:00
Mihail Geshoski 37c7760c98 Merge branch 'MDL-86010_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-11-06 11:53:07 +08:00
Huong Nguyen 2ab3f1088f Merge branch 'MDL-87019-redis-bloat-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-11-06 10:35:11 +07:00
Jake Dallimore cfa5f8a60d Merge branch 'MDL-86534-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-11-06 11:33:50 +08:00
Huong Nguyen 41ad1a67f9 Merge branch 'MDL-86701-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-06 10:27:21 +07:00
Huong Nguyen 2d17eeb6c8 Merge branch 'MDL-86332-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-06 10:20:33 +07:00
Huong Nguyen 6ab0bdd7f7 Merge branch 'mdl-85036_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-11-06 10:53:56 +08:00
Jake Dallimore f4f445d54a Merge branch 'MDL-87004_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-11-06 10:53:56 +08:00
Simey Lameze 280a604e4d MDL-87049 behat: read showcampaigncontent setting when running behat 2025-11-06 08:20:52 +08:00
Angelia Dela Cruz 95304962da MDL-87049 core: Behat to toggle campaign content banner display 2025-11-06 08:20:51 +08:00
AMOS bot 323ee9aa02 Automatically generated installer lang files 2025-11-06 00:07:58 +00:00
Angelia Dela Cruz 7ca19e9c32 MDL-86908 core_contentbank: Behat to set supported files of contentbank 2025-11-05 18:00:23 +08:00
Simey Lameze 8de0e64544 MDL-86379 mod_quiz: move create_test_quiz function into generator 2025-11-05 11:50:11 +08:00
Andrew Nicols 7e9255978b 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:52:34 +08:00
Ilya Tregubov 33483246d1 Merge branch 'MDL-86953-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-04 16:46:33 +01:00
Stefan Hanauska b458318d13 MDL-68062 badges: Allow revoke by every user with the correct role
Co-authored-by: Rajneel Totaram <rjnlfj@yahoo.com>
2025-11-04 14:12:42 +01:00
James C 69957f8a3b MDL-85036 completion: Properly initialize cm_info for user completion 2025-11-04 20:53:29 +13:00
Jake Dallimore 5b848f2964 Merge branch 'MDL-85391-m500' of https://github.com/NeillM/moodle into MOODLE_500_STABLE 2025-11-04 14:14:48 +08:00
Jake Dallimore ac3f6fc4d3 Merge branch 'MDL-86855-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-11-04 14:09:54 +08:00
Ilya Tregubov bd132c995d Merge branch 'MDL-86952-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-11-03 12:14:42 +01:00
Jun Pataleta c24afe888c 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 12:12:32 +08:00
Jun Pataleta c11f67bdb4 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 11:59:40 +08:00
Angelia Dela Cruz 2ca2aeaf03 MDL-79249 core_filepicker: Cancel file and folder upload using X button 2025-11-03 10:44:38 +08:00
Huong Nguyen 9a7a484e69 Merge branch 'MDL-69226-M500_verify-that-the-filter-php-extension-is-present' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-11-03 09:02:15 +07:00
AMOS bot fdc195ce67 Automatically generated installer lang files 2025-11-01 00:07:57 +00:00
Benjamin Walker 2530e564b1 MDL-87019 redis: Avoid storing userhashkey for non-login users 2025-10-31 16:20:34 +10:00
Huong Nguyen 8449b9ac6f Merge branch 'MDL-86235-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-10-31 09:34:55 +07:00
Mihail Geshoski 8316503864 weekly release 5.0.3+ 2025-10-30 18:11:16 +08:00
Mihail Geshoski 158fa68cdf Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-10-30 18:11:00 +08:00
Neill Magill ee5126a88e 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:16:34 +00:00
Huong Nguyen 88b6baa6af Merge branch 'mdl85075-50' of https://github.com/matthewhilton/moodle into MOODLE_500_STABLE 2025-10-29 09:31:20 +07:00
Mihail Geshoski 06463ce66a Merge branch 'MDL-86894-500' of https://github.com/Kredelirious/moodle into MOODLE_500_STABLE 2025-10-29 10:18:31 +08:00
Mihail Geshoski d3d2107e2c Merge branch 'MDL-82190-500' of https://github.com/danghieu1407/moodle into MOODLE_500_STABLE 2025-10-29 10:11:34 +08:00
Daniel Ziegenberg 4eded4dca4 MDL-69226 environment: filter extension required
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-10-28 19:31:14 +01:00
Kim Jared Lucas f9a738f3cf MDL-86894 mod_forum: Behat to verify default forum RSS settings 2025-10-28 13:02:58 +08:00
AMOS bot aacdf287f5 Automatically generated installer lang files 2025-10-28 00:09:47 +00:00
Rajneel Totaram eb3731e9b2 MDL-87011 mod_assign: Replace deprecated CSS style 2025-10-27 22:25:50 +12:00
Adrian Greeve 5190731af4 Merge branch 'MDL-85774-500-3' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-10-27 09:03:21 +08:00
Daniel Ziegenberg ab33219f38 MDL-84967 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-10-24 21:02:59 +02:00
ferran 5b5ef5c66f Merge branch 'MDL-86430-Bad-Display-Of-Scale-Grading-500' of https://github.com/birdy1976/moodle into MOODLE_500_STABLE 2025-10-24 12:15:36 +02:00
Andi Permana 2a4b767402 MDL-86235 core: Add table-hover class to admintable and generaltable 2025-10-24 15:50:06 +07:00
Mark Johnson da518313d6 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:45:31 +01:00
Jun Pataleta d158fc8819 MDL-86855 qbank_columnsortorder: Render disabled columns as a list
* Lists must be marked up with the proper semantics.
2025-10-24 12:02:54 +08:00
Jun Pataleta 83ffdd7a71 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:02:54 +08:00
Huong Nguyen 1beae326aa weekly release 5.0.3+ 2025-10-24 11:00:15 +07:00
Huong Nguyen 89cd360c83 NOBUG: Add upgrade notes 2025-10-24 11:00:15 +07:00
Martin Vögeli 719921b93a MDL-86430 theme_boost: Fix display of scale grading when title too long 2025-10-23 17:14:51 +02:00
danghieu1407 9765721e10 MDL-82190 Quiz: Fix quiz preview crash on question version removal 2025-10-23 13:32:47 +07:00
Jun Pataleta 52ec42bb01 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:28:48 +08:00
Jun Pataleta 4c66cdde04 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:28:48 +08:00
Huong Nguyen 5be6382221 Merge branch 'MDL-86986-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-10-23 09:57:31 +07:00
Huong Nguyen f50b0661ef Merge branch 'MDL-80524-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-23 09:29:27 +07:00
Mihail Geshoski 7b443d6bf0 Merge branch 'MOODLE_500_STABLE' of https://github.com/aneno-m-e/moodle into MOODLE_500_STABLE 2025-10-23 10:23:12 +08:00
Matthew Hilton bd500af20e MDL-85075 files: Use core security helper first 2025-10-23 12:21:17 +10:00
Andrew Nicols a429bfbdac Merge branch 'MDL-81804-500-first' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-10-23 09:12:45 +08:00
Amaia Anabitarte f8cc4eeea9 Merge branch 'MDL-86434-invalidusertitle-500' of https://github.com/leonstr/moodle into MOODLE_500_STABLE 2025-10-22 23:12:54 +02:00
Luca Bösch 635b7f6bdf 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:20:25 +02:00
Jun Pataleta ded6e7e9b2 MDL-86986 core: Add aria-label to the drag handle button 2025-10-22 20:14:38 +08:00
ferran 66a094dc77 Merge branch 'wip_MDL-86435_m50' of https://github.com/gjb2048/moodle into MOODLE_500_STABLE 2025-10-22 12:55:56 +02:00
Mihail Geshoski e9ad1731cb Merge branch 'MDL-85474_500' of https://github.com/jonof/moodle into MOODLE_500_STABLE 2025-10-22 16:46:56 +08:00
Paul Holden a3c171eeb8 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:39 +01:00
Mihail Geshoski 79cf123335 Merge branch 'MDL-86282-500' of https://github.com/srobotta/moodle into MOODLE_500_STABLE 2025-10-22 16:31:09 +08:00
Noemie Ariste 0fb17449f6 MDL-75764 mod_assign: remove capability check for bulk downloads 2025-10-22 16:50:14 +13:00
Mihail Geshoski 1e44685774 Merge branch 'MDL-86217-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-22 11:41:19 +08:00
Mihail Geshoski 8c2b54410e Merge branch 'MDL-86225-500' of https://github.com/josepico01/moodle into MOODLE_500_STABLE 2025-10-22 11:03:21 +08:00
Mihail Geshoski ba4ffb5881 Merge branch 'MDL-86063-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-22 10:21:45 +08:00
Huong Nguyen 2f4f624b19 Merge branch '83543-xls-form-500' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_500_STABLE 2025-10-22 09:12:55 +07:00
Huong Nguyen c8d7e0cf64 Merge branch '77137-proxybypass-on-multiple-curl-queries-500' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_500_STABLE 2025-10-22 09:07:17 +07:00
Paul Holden 84e9482367 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:26:42 +01:00
Amaia Anabitarte 60950923a6 Merge branch 'MDL-85796-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-10-21 19:56:09 +02:00
Paul Holden fd5aa44763 MDL-86255 behat: implement methods to assert date/time field value. 2025-10-21 11:34:43 +01:00
Shamim Rezaie e36f16ec13 Merge branch 'MDL-85592-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-21 17:10:33 +11:00
Huong Nguyen 1125b4ada6 Merge branch 'MDL-85168-MOODLE_500_STABLE' of https://github.com/phmemmel/moodle into MOODLE_500_STABLE 2025-10-21 10:36:34 +07:00
Huong Nguyen 974b18b09e Merge branch 'MDL-85633-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-10-21 09:47:25 +07:00
Huong Nguyen e465d5432f Merge branch 'MDL-85511-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-10-21 09:44:49 +07:00
Huong Nguyen 5194cad1b5 Merge branch 'MDL-85287-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-10-21 09:42:07 +07:00
Huong Nguyen 2849cf39dc Merge branch 'MDL-86559-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-10-21 09:39:32 +07:00
Jonathon Fowler 06417ba66a 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:30:42 +10:00
Paul Holden cf8d527e11 Merge branch 'MDL-86455-500' of https://github.com/yerairogo/moodle into MOODLE_500_STABLE 2025-10-20 16:51:06 +01:00
Sara Arjona 4be1d94f50 Merge branch 'MDL-86598-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-10-20 16:59:08 +02:00
Amaia Anabitarte 50ee96071a MDL-86598 course: Render HTML in activity overview section name mustache 2025-10-20 16:16:52 +02:00
Amaia Anabitarte 7c767af54b Merge branch 'MDL-86011-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-10-20 16:01:45 +02:00
Amaia Anabitarte e5f5854999 Merge branch 'MDL-86912-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-10-20 13:33:44 +02:00
Luca Bösch 8c7fd86a7d MDL-85633 course: Move away from YUI navigation.
Co-authored-by: Mikel Martín Corrales <mikel@moodle.com>
2025-10-20 11:25:14 +02:00
sam marshall 227e4a4e28 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:58:30 +01:00
Sara Arjona df800f94e2 MDL-86912 assign: Prevent admin submitting unless enrolled as student 2025-10-20 09:47:27 +02:00
Sara Arjona ef2bce431e MDL-86912 assign: Adjust display of Status column in Overview 2025-10-20 09:47:27 +02:00
Luca Bösch 1003a27252 MDL-85511 course: back button for course management course search. 2025-10-20 08:03:57 +02:00
Mihail Geshoski 66ff71cbe8 Merge branch 'MDL-85696-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-10-20 10:28:03 +08:00
Huong Nguyen 96906b853e Merge branch 'mdl-85917_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-10-20 08:48:46 +07:00
Huong Nguyen 514417a376 Merge branch 'MDL-85975_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-10-20 08:45:59 +07:00
Paul Holden f9f4c49fd2 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:17 +01:00
Paul Holden 01a3c146c3 MDL-86217 badges: gracefully handle missing recipient data. 2025-10-19 16:50:16 +01:00
Gareth Barnard cf1e0e962f MDL-86435 course: i/groupn.svg is not the same size as other icons. 2025-10-17 16:49:24 +01:00
Paul Holden 5a3bcf7b82 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:49:48 +01:00
Ilya Tregubov 520ae9c00d Merge branch 'MDL-80422-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 15:37:33 +02:00
Paul Holden 70f1993958 MDL-86952 output: truncate long text in drag/drop dialog options. 2025-10-17 14:12:31 +01:00
Paul Holden cdc9d7e3ff MDL-86952 output: truncate long text in modal/dialog title element. 2025-10-17 14:12:10 +01:00
Amaia Anabitarte 0306be834e Merge branch 'MDL-85887-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 13:47:48 +02:00
Paul Holden 95c789fc1d MDL-86810 completion: update module completion data correctly.
Ensure we check the correct field to determine form value.
2025-10-17 12:13:01 +01:00
Paul Holden f8f309800c MDL-85373 admin: update site installation page referenced favicon. 2025-10-17 12:06:27 +01:00
Angelia Dela Cruz 123b1a1193 MDL-85696 mod_quiz: Behat to attempt password and time restricted quiz 2025-10-17 16:19:36 +08:00
Huong Nguyen 7518095d59 Merge branch 'MDL-85418-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 10:28:04 +07:00
Huong Nguyen dd2de75ad4 Merge branch 'MDL-85312-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 10:19:09 +07:00
Andrew Nicols b286e6c65a Merge branch 'm500-86376' of https://github.com/danmarsden/moodle into MOODLE_500_STABLE 2025-10-17 11:04:40 +08:00
Andrew Nicols 611008d6eb Merge branch 'MDL-85366-500' of https://github.com/djarran/moodle into MOODLE_500_STABLE 2025-10-17 08:47:05 +08:00
Andrew Nicols 30a482b220 Merge branch 'MDL-86822-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 08:34:39 +08:00
Andrew Nicols 240ea09d61 Merge branch 'MDL-85554-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-17 08:27:42 +08:00
Andrew Nicols 7927f8d058 weekly release 5.0.3+ 2025-10-17 06:50:42 +08:00
Andrew Nicols 2e78b280b8 NOBUG: Add upgrade notes 2025-10-17 06:50:42 +08:00
Andrew Nicols fbfba415e6 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-10-17 06:50:21 +08:00
Paul Holden 39bfcbbc9a MDL-85554 user: fix class attribute spacing for profile categories.
Update to use non-aliased html_writer class.
2025-10-16 22:29:19 +01:00
Yerai Rodríguez 7dfbf9582f 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:59:36 +02:00
Mihail Geshoski d8577022cd Merge branch 'MDL-85874_500' of https://github.com/cwarwicker/moodle into MOODLE_500_STABLE 2025-10-16 16:53:43 +08:00
Mihail Geshoski 29a1ccdcd0 Merge branch 'MDL-85729-group-images-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-10-16 16:14:09 +08:00
Jun Pataleta 7db7c26280 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:51:01 +08:00
Dan Marsden fb9d6e718d MDL-86376 core: Make public static functions more resilient
a
2025-10-16 20:45:50 +13:00
Andrew Nicols 3b0a9293b3 Merge branch 'MDL-85348-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:48:50 +08:00
Andrew Nicols 209ea54fca Merge branch 'MDL-84745-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:44:36 +08:00
Andrew Nicols 360cb2d370 Merge branch 'MDL-85736-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:39:55 +08:00
Andrew Nicols 3b91765090 Merge branch 'MDL-86053-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:33:22 +08:00
Andrew Nicols 04b2b22112 Merge branch 'MDL-86293-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:25:01 +08:00
Andrew Nicols 4d135c1c53 Merge branch 'MDL-86648-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-16 13:15:20 +08:00
Mihail Geshoski cd8fbc5af0 Merge branch 'MDL-85988-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-10-16 10:38:12 +08:00
Jarad Barker da9daf4437 MDL-84483 core_files: Always fire after_file_created hook 2025-10-16 09:04:09 +07:00
Mihail Geshoski 7956cebf42 Merge branch 'MDL-85618-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 23:39:22 +08:00
hieuvu ef3cc1d8b9 MDL-86621 core_question: Add capability checking for question bank node 2025-10-15 23:18:58 +08:00
ferran b6a1859fea Merge branch 'MDL-86003-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 15:40:14 +02:00
ferran b820cade16 Merge branch 'MDL-85486-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-10-15 15:15:21 +02:00
ferran 8dd5b60a81 Merge branch 'MDL-66579-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-10-15 15:07:18 +02:00
Andrew Nicols 06c110488b Merge branch 'MDL-86369-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 17:12:58 +08:00
Andrew Nicols 2538b7df54 Merge branch 'MDL-86627-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 17:03:38 +08:00
Andrew Nicols f92d05c33e Merge branch 'MDL-86645-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 17:01:48 +08:00
Sara Arjona de47113316 Merge branch 'MDL-86879-500' of https://github.com/ferranrecio/moodle into MOODLE_500_STABLE 2025-10-15 11:00:04 +02:00
Andrew Nicols e3e6b67b07 Merge branch 'MDL-86646-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 16:57:31 +08:00
Andrew Nicols 1d7dc95e25 Merge branch 'MDL-86147-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-15 15:53:18 +08:00
Andrew Nicols 545e742dbf Merge branch 'MDL-86186-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-10-15 15:49:42 +08:00
Philipp Memmel d80cf37b0e MDL-81263 grunt: Respect local .eslintignore and .stylelintignore 2025-10-15 15:19:48 +08:00
Andrew Nicols 329ed8a83f Merge branch 'MDL-86767-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-10-15 15:13:29 +08:00
Andrew Nicols 93a62aae94 Merge branch '86322-fix-example-phpdoc-500' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_500_STABLE 2025-10-15 15:10:55 +08:00
Andrew Nicols 7e22374591 Merge branch 'MDL-85495-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-10-15 15:05:44 +08:00
Andrew Nicols f09e9afaad Merge branch 'MDL-86762-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-10-15 14:59:11 +08:00
Mihail Geshoski a0622c21ee Merge branch 'MDL-81514_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-10-15 11:05:39 +08:00
Mihail Geshoski b6c07ab1ed Merge branch 'MDL-86621-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-10-15 09:49:09 +08:00
AMOS bot ae942c292a Automatically generated installer lang files 2025-10-15 00:09:33 +00:00
Paul Holden 2a40043b1c MDL-86627 cohort: format name correctly in report entity column. 2025-10-14 15:04:58 +01:00
Mikel Martín 944d37ead3 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:40:32 +02:00
Stephan Robotta a6d59403ec MDL-86282 navigation: Main navigation corrected for XMLDB tool 2025-10-14 10:50:14 +02:00
Sara Arjona aefaca7bd7 MDL-86011 feedback: Prevent admin answering unless enrolled as student 2025-10-14 07:09:58 +02:00
Sara Arjona 26eb19151e MDL-86011 feedback: Adjust display of Responded column in Overview 2025-10-13 17:08:11 +02:00
hieuvu d785312c06 MDL-86621 core_question: remove incorrect navigation nodes. 2025-10-13 15:05:26 +07:00
Andi Permana 4ea394146d MDL-86559 filter_activitynames: Fix auto links with double spaces 2025-10-13 11:48:28 +07:00
Julien Boulen 95d763d24f MDL-77137 filelib: Honour proxybypass option for multiple Curl queries 2025-10-12 22:16:58 +02:00
Julien Boulen 157e5af983 MDL-86320 core: Fix unit test qrcode_test 2025-10-12 21:55:21 +02:00
Julien Boulen aeb3794af4 MDL-86322 phpdoc: Fix the given example in the phpdoc 2025-10-12 21:49:15 +02:00
Julien Boulen 50d583d951 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 06fef3b872 MDL-86879 core_course: optimise subsections loading 2025-10-10 14:08:25 +02:00
Jun Pataleta e040a192c0 MDL-85820 lib: Update pear/readme_moodle.txt 2025-10-10 11:01:51 +08:00
Tim Hunt af619f925b MDL-85820 formslib: don't add '-' to client-side valiation 2025-10-10 11:01:51 +08:00
Luca Bösch 8d7e88efff MDL-86767 forum: let forum use standard buttons. 2025-10-09 21:05:32 +02:00
Huong Nguyen 7abebfa820 weekly release 5.0.3+ 2025-10-09 21:59:44 +07:00
Huong Nguyen 9c9a144a7a Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-10-09 21:59:03 +07:00
Huong Nguyen 8bf9b64078 Merge branch 'MDL-86777-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-09 08:47:49 +07:00
Huong Nguyen 02b3d90ab1 Merge branch 'MDL-86736-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-09 08:43:52 +07:00
Huong Nguyen 7cdeda9093 Merge branch 'MDL-86654-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-10-09 08:41:33 +07:00
Huong Nguyen 6318c0bf80 Merge branch 'MDL-86575-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-09 08:20:33 +07:00
Huong Nguyen 962cabf1b2 Merge branch 'MDL-86574-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-09 08:15:21 +07:00
AMOS bot 3972f16c85 Automatically generated installer lang files 2025-10-09 00:09:12 +00:00
Rajneel Totaram 97284b10c7 MDL-85988 mod_book: Fix chapter content overlaps navigation buttons 2025-10-09 11:05:10 +12:00
Rajneel Totaram 86f293fb27 MDL-66579 mod_book: Make chapter numbering consistent 2025-10-09 10:18:59 +12:00
Mihail Geshoski 8e0c904526 Merge branch 'MDL-78495-500_exclude_badges_from_recyclebin' of https://github.com/sharpchi/moodle into MOODLE_500_STABLE 2025-10-08 23:39:26 +08:00
Paul Holden ebc79d11de MDL-82867 output: consistently space external link pixicon. 2025-10-08 16:17:56 +01:00
Mark Sharp 8533b0a132 MDL-78495 Badges: Exclude badges from recycle bin
- co-authored by: Sara Arjona

Add badges to recycle bin test
2025-10-08 11:04:48 +01:00
Mihail Geshoski e558a6bfaf Merge branch 'MDL-86382-MOODLE_500_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_500_STABLE 2025-10-08 13:35:51 +08:00
Mihail Geshoski 0f2443cddb Merge branch 'MDL-86300-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-10-08 13:27:22 +08:00
Mihail Geshoski d2269b1a8b Merge branch 'mdl-83511_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-10-08 13:13:36 +08:00
Paul Holden 37be3e8bdd MDL-86332 completion: remove criteria only from current course on save. 2025-10-07 12:23:42 +01:00
Paul Holden 846b814f94 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:27 +01:00
Jun Pataleta 000468f2d7 Merge branch 'MDL-86450-forum-accessibility-check-boxes-in-advanced-search-form-not-labeled-corrected-M5.0' of https://github.com/stopfstedt/moodle into MOODLE_500_STABLE 2025-10-07 14:07:39 +08:00
james-cnz e2a4283c3e MDL-85917 course: Relocate section title update code 2025-10-07 12:56:20 +13:00
Jun Pataleta ddeec0c02b 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 16:01:46 +08:00
Paul Holden d1394d878b MDL-86777 customfield: show formatted category name in move dialog. 2025-10-06 08:11:12 +01:00
Muhammad Arnaldo 0e7b17b7bf MDL-85495 core_course/activitychooser: consistent starred state 2025-10-06 11:30:25 +07:00
James C 82643aadf9 MDL-83511 course: Add activities by section ID 2025-10-06 12:57:21 +13:00
Huong Nguyen 1b2d270397 Moodle release 5.0.3 2025-10-04 09:03:15 +07:00
Huong Nguyen dc1a579507 NOBUG: Add upgrade notes 2025-10-04 09:03:14 +07:00
AMOS bot ca3e9a2bbd Automatically generated installer lang files 2025-10-04 00:08:01 +00:00
Mark Johnson b6bb37d133 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:48:13 +01:00
Paul Holden 63798cf9f3 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:19:22 +01:00
Shamim Rezaie 2800280c8f weekly release 5.0.2+ 2025-10-03 20:02:12 +10:00
Mihail Geshoski 19116f09d1 MDL-75087 mod_assign: Fix failing behat tests in classic 2025-10-03 14:22:12 +07:00
Paul Holden 31fb5cd4f5 MDL-86822 mod_h5pactivity: fix block page type list method parameters.
Similar was done before in 7a77493b.
2025-10-02 12:13:13 +01:00
Mihail Geshoski 9e8766590f MDL-75087 mod_assign: Fix failing unit test 2025-10-02 18:09:13 +07:00
Huong Nguyen f9b66b57df MDL-86762 repository_flickr: Fix Flickr fetching and downloading 2025-10-02 17:46:39 +07:00
Jayce Birrell 161837e393 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:55 +09:30
Rajneel Totaram 36b84257fd MDL-75087 mod_assign: Respect assignment timer
This patch has better handling of timed assignments.
Users cannot directly access the submission page without
confirming to begin a timed assignment.
2025-10-02 11:04:08 +08:00
raortegar 26235b018f MDL-86253 mod_assign: Respect enrollment status in notifications 2025-10-02 08:15:12 +07:00
raortegar 022bfbfb56 MDL-86253 mod_quiz: Respect enrollment status in notifications 2025-10-02 08:15:12 +07:00
Mihail Geshoski 7c1276b014 Merge branch 'MDL-86791-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-10-02 00:24:25 +08:00
Jake Dallimore 5551ae8e6c Merge branch 'MDL-86413-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-10-01 19:54:26 +08:00
Jake Dallimore 90f29377d6 Merge branch 'MDL-86364-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-10-01 15:51:45 +08:00
Mihail Geshoski dd6c1b84fb MDL-86364 calendar: Fix calendar table styles 2025-10-01 14:39:03 +08:00
David Woloszyn 0aaacc446a MDL-86494 router: Display error details only when debugging is on 2025-10-01 06:24:16 +00:00
David Woloszyn a2c9b6cef7 MDL-86335 router: Hide detailed payload data for non-admins 2025-10-01 06:24:16 +00:00
yusufwib01 1390d0544a MDL-86353 mod_assign: Sync exception handling in PdfType and PdfReader 2025-10-01 06:24:16 +00:00
Paul Holden 8d1e4e53d3 MDL-85421 cohort: limit requests for all cohorts to system context. 2025-10-01 06:24:16 +00:00
Paul Holden a3f3636a04 MDL-86426 course: access checks in course overview fragment callback. 2025-10-01 06:24:16 +00:00
David Woloszyn f05afac26a MDL-86327 auth_webservice: Stricter check on login 2025-10-01 06:24:16 +00:00
yusufwib01 2cff8bf6a1 MDL-86261 calendar: Improve event form to show accessible groups 2025-10-01 06:24:16 +00:00
raortegar cc020510fe MDL-86334 tool_mfa: Improve multi-factor authentication validation. 2025-10-01 06:24:16 +00:00
Jake Dallimore 784b4793f0 Merge branch 'MDL-86800-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-10-01 14:21:34 +08:00
Mihail Geshoski bf51eae60e MDL-86392 theme_boost: Prevent bootstrap style reset on YUI DataTable 2025-10-01 13:57:41 +08:00
Mihail Geshoski 690d7483f5 Merge branch 'MDL-86162-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-10-01 13:42:53 +08:00
Mihail Geshoski bdfd09fd16 MDL-86800 report_outline: Fix incorrect table borders 2025-10-01 11:26:45 +08:00
Mihail Geshoski 7fab2bf446 MDL-86800 rating: Fix incorrect table borders 2025-10-01 11:26:45 +08:00
Mihail Geshoski 7ef1e09a87 MDL-86800 mod_workshop: Fix incorrect table borders 2025-10-01 11:26:45 +08:00
Mihail Geshoski 3eeb180502 MDL-86800 mod_scorm: Fix incorrect table borders 2025-10-01 11:26:45 +08:00
Mihail Geshoski 608042ed10 MDL-86800 mod_forum: Fix incorrect table borders 2025-10-01 11:26:44 +08:00
Mihail Geshoski ca572033a7 MDL-86800 mod_folder: Fix incorrect table borders 2025-10-01 11:26:44 +08:00
Mihail Geshoski f8c628459e MDL-86800 mod_data: Fix incorrect table borders 2025-10-01 11:26:44 +08:00
Mihail Geshoski 5391ca467a MDL-86800 profiling: Fix incorrect table borders 2025-10-01 11:26:44 +08:00
Mihail Geshoski 1c4a9a1944 MDL-86800 grade: Fix incorrect table borders 2025-10-01 11:26:43 +08:00
Mihail Geshoski a5159fea31 MDL-86800 block_rss_client: Fix incorrect table borders 2025-10-01 11:26:43 +08:00
Mihail Geshoski d152c7bed0 MDL-86800 block_completionstatus: Fix incorrect table borders 2025-10-01 11:26:43 +08:00
Mihail Geshoski 2aebabf132 MDL-86800 block_activity_results: Fix incorrect table borders 2025-10-01 11:26:43 +08:00
Mihail Geshoski 92670010cb MDL-86800 badges: Fix incorrect table borders 2025-10-01 11:26:43 +08:00
Mihail Geshoski e4b2899604 MDL-86800 tool_xmldb: Fix incorrect table borders 2025-10-01 11:26:42 +08:00
Mihail Geshoski 2006e87ae3 MDL-86800 tool_capability: Fix incorrect table borders 2025-10-01 11:26:42 +08:00
Mihail Geshoski 131586afe2 MDL-86800 mnet: Fix incorrect table borders 2025-10-01 11:26:42 +08:00
Jayce Birrell 7935afc657 MDL-86791 core_analytics: include filelib in processor 2025-10-01 11:40:36 +09:30
Huong Nguyen 0bcb02697a Merge branch 'MDL-85546-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2025-10-01 08:21:52 +07:00
Huong Nguyen c3bdb06c9e Merge branch 'MDL-86725-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-10-01 08:14:30 +07:00
Stefan Topfstedt 828708e376 MDL-86450 Forum: adds missing IDs to advanced search form elements. 2025-09-30 11:44:06 -07:00
Mihail Geshoski 48fec6e420 Merge branch 'MDL-86417_50' of https://github.com/andrewhancox/moodle into MOODLE_500_STABLE 2025-10-01 01:26:51 +08:00
raortegar b23112b7c4 MDL-85546 tool_mfa: Improve handling of require MFA conditions 2025-09-30 11:13:15 +02:00
Mihail Geshoski c421b3d856 Merge branch 'MDL-86688-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-09-30 11:19:26 +08:00
Stefan Hanauska 91e676ebde MDL-86300 backup: Save old id of top category
Co-authored-by: Paola Maneggia <paola.maneggia@isb.bayern.de>
2025-09-29 19:22:01 +02:00
Huong Nguyen e652e5b0aa Merge branch 'MDL-86667-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-09-29 13:36:46 +07:00
Stevani Andolo 75ddc0ea33 MDL-86725 grade_report: Fixed invisible search box on mobile view 2025-09-29 10:33:16 +08:00
Stevani Andolo 052d50f8a4 MDL-86667 registration: Unset fields after site being unregistered 2025-09-29 10:32:34 +08:00
Philipp Memmel cd54407e40 MDL-86382 qbank_bulkmove: Fix selecting placeholder in qbank selector
@Co-authored-by: Luca Bösch <luca.boesch@bfh.ch>
2025-09-26 13:54:57 +00:00
Luca Bösch 1894130564 MDL-86413 backup: Fix backup tables styles 2025-09-26 14:25:09 +02:00
cescobedo 237dfaa868 weekly release 5.0.2+ 2025-09-26 13:44:07 +02:00
cescobedo 2173e6d77f NOBUG: Add upgrade notes 2025-09-26 13:44:07 +02:00
cescobedo 7ae3e23570 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-09-26 13:43:53 +02:00
Sara Arjona 022e9bb53c MDL-86488 core: Fix to remove whitespaces 2025-09-26 13:19:36 +02:00
Paul Holden 19a794db63 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:41:49 +01:00
Jayce Birrell 6ed9af04eb MDL-86688 tool_brickfield: Include cmid in url to edit qbank 2025-09-26 17:48:42 +09:30
Huong Nguyen 605c6ac271 Merge branch 'MDL-86511-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-09-26 11:15:46 +07:00
Andi Permana 423f7fec62 MDL-86511 tiny_link: TinyMCE fails to insert a link using enter key 2025-09-26 11:13:27 +07:00
Mihail Geshoski a5132bc695 Merge branch 'MDL-86177-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-26 12:02:57 +08:00
Jun Pataleta f6c443393a Merge branch 'MDL-85684-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-26 11:31:03 +08:00
Huong Nguyen 0d39faed51 Merge branch 'mdl-84491_redis_connection_500' of https://github.com/ngandrass/moodle into MOODLE_500_STABLE 2025-09-26 10:20:51 +07:00
Mihail Geshoski e76b0ccb69 Merge branch 'MDL-85803-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-26 11:18:13 +08:00
Jun Pataleta 092250723d Merge branch 'MDL-86363-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-26 11:07:55 +08:00
Mihail Geshoski 97832a039c Merge branch 'MDL-86259-M500_transfer_question_categories-task-resilience' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-09-26 10:34:21 +08:00
Jun Pataleta 8354c16995 Merge branch 'MDL-86383-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2025-09-26 09:48:19 +08:00
Huong Nguyen 616341f6b3 Merge branch 'MDL-85419-500' of https://github.com/sharpchi/moodle into MOODLE_500_STABLE 2025-09-26 08:46:54 +07:00
Huong Nguyen 41db1fd9ae Merge branch 'MDL-80447-500-4' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2025-09-26 08:25:01 +07:00
Mark Johnson 8e004afafb 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:40:20 +01:00
Mark Johnson 7e0d7bf9b5 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:40:20 +01:00
Mark Johnson 66328d8428 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:40:20 +01:00
Paul Holden 195e0ac4c4 MDL-85803 mod_scorm: re-define language string for deleting attempts.
The previous version was re-purposed in 22cc9757 so lost meaning and
context elsewhere. Define new string for course reset elements.
2025-09-25 16:03:27 +01:00
Andrew Hancox 599c11c1b7 MDL-86417 quiz: Fix for legacy question_set_references on backup 2025-09-25 15:59:02 +01:00
Huong Nguyen a1d7a7e03b MDL-80447 repository_googledocs: Add missing fields 2025-09-25 15:34:56 +02:00
Huong Nguyen 9b0f8e110a MDL-80447 repository_googledocs: Switch to use core/pubsub 2025-09-25 15:34:56 +02:00
Tony Butler 86e8aaa9f6 MDL-58001 mod_assign: Return early if no grade items are available 2025-09-25 12:03:27 +02:00
Amaia Anabitarte 91d31e815a MDL-58001 core_grades: New is_gradable() function in gradelib
Backported from main, introduced in MDL-85837.
2025-09-25 12:03:21 +02:00
Mihail Geshoski 5ce8b33ea8 Merge branch 'MDL-86432-500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2025-09-25 14:12:59 +08:00
Mihail Geshoski 2ced55d848 Merge branch 'MDL-86424-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-09-25 13:10:04 +08:00
Benjamin Walker 049b172e00 MDL-85729 group: Lazy load group image urls in search box 2025-09-25 14:25:10 +10:00
Jun Pataleta 13fffeebdb Merge branch 'MDL-86599_500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2025-09-25 12:08:43 +08:00
Mihail Geshoski dceb85db15 Merge branch 'MDL-85675-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-09-25 11:54:22 +08:00
Mihail Geshoski 647980d1f9 Merge branch 'MDL-84085-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-25 09:58:22 +08:00
AMOS bot 2545cc4db6 Automatically generated installer lang files 2025-09-25 00:07:56 +00:00
Andrew Nicols c146d00c9f MDL-86432 qtype_ordering: Fix broken data provider 2025-09-24 17:52:06 +01:00
Andrew Nicols db8a5b2f7a MDL-86432 phpunit: Ensure that data providers do not modify state 2025-09-24 16:53:30 +01:00
Amaia Anabitarte f1cd14825e Merge branch 'MDL-86738-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-09-24 17:28:45 +02:00
Amaia Anabitarte 00cb0cdff3 Merge branch 'MDL-86488-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-24 17:17:55 +02:00
Sara Arjona cb44b19c2d MDL-86738 badges: Relocate upgrade notes from MDL-86174
The upgrade notes were incorrectly placed outside the .upgradenotes/ directory
in MDL-86174. This commit moves them to the correct location.
2025-09-24 13:11:10 +02:00
raortegar 18bea2a880 MDL-80447 repository_googledocs: Update Google Drive OAuth2 scope tests 2025-09-24 11:23:01 +02:00
raortegar 0ab1cc4f48 MDL-80447 repository_googledocs: Update Google Drive OAuth2 scope
Updated the Google Drive integration to use the drive.file scope instead
of the broader drive scope. This change removes support for shared drives,
which rely on full access. As a result, unit tests were updated to reflect
this behavior by bypassing shared drive checks and expectations.
2025-09-24 11:23:00 +02:00
raortegar be840bc26f MDL-80447 core_repository: Add upload button to filepicker repository 2025-09-24 11:22:09 +02:00
Mihail Geshoski 52899bd164 Merge branch 'MDL-83462-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-24 16:16:30 +08:00
Mihail Geshoski e807bf8d35 Merge branch 'MDL-86297-MOODLE_500_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_500_STABLE 2025-09-24 11:49:39 +08:00
Mihail Geshoski 9d4b2a8dd7 Merge branch 'MDL-85682-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-24 10:20:59 +08:00
David Mudrák 889c86ee3f MDL-86383 lang: Use the fixed strings in tests, too 2025-09-23 20:43:32 +02:00
Helen Foster 0cbb52b295 MDL-86383 lang: Import fixed English strings (en_fix) 2025-09-23 20:41:54 +02:00
Sara Arjona 089f43cfd8 weekly release 5.0.2+ 2025-09-23 17:21:03 +02:00
Sara Arjona c9af8f6768 NOBUG: Add upgrade notes 2025-09-23 17:21:03 +02:00
Huong Nguyen b2bf044363 Merge branch 'MDL-84504-maintenance-log-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-09-23 18:37:10 +08:00
Huong Nguyen ecb89f1e41 Merge branch 'MDL-86586-500-choice-dropdown' of https://github.com/sharpchi/moodle into MOODLE_500_STABLE 2025-09-23 08:43:27 +07:00
Sara Arjona 1c8c1d2b28 Merge branch 'MDL-86596-integration-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-09-22 10:12:47 +02:00
Paul Holden 3e5d11a046 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:17 +01:00
Paul Holden d737b9ad07 MDL-86574 tool_cohortroles: format cohort data during privacy export. 2025-09-22 09:00:34 +01:00
Mihail Geshoski 53d06b4504 Merge branch 'MDL-86512-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-22 15:08:08 +08:00
Mihail Geshoski a245413353 MDL-86596 tool_profiling: Revert string removal without deprecation 2025-09-22 13:09:39 +08:00
Mihail Geshoski 506e9e10d0 Merge branch 'MDL-85766-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-22 10:56:54 +08:00
Huong Nguyen 949f9570a0 Merge branch 'MDL-84870-500' of https://github.com/andimendunia/moodle into MOODLE_500_STABLE 2025-09-22 08:28:36 +07:00
Huong Nguyen c856b78f05 Merge branch 'MDL-83066-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-22 08:24:18 +07:00
Brendan Heywood 86456b6f38 MDL-84504 cli: Add config logging for cli maintenance mode 2025-09-22 10:15:30 +10:00
Brendan Heywood a3209bb547 MDL-84504 core: Allow setting config and logging with one call 2025-09-22 10:15:17 +10:00
Mihail Geshoski 83ec402da6 Merge branch 'MDL-83080-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-21 22:48:10 +08:00
Mihail Geshoski 348c0c1899 Merge branch 'MDL-86596-500' of https://github.com/yerairogo/moodle into MOODLE_500_STABLE 2025-09-21 22:29:59 +08:00
Amaia Anabitarte 0eee5e17ff Merge branch 'MDL-86174-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-09-19 16:12:54 +02:00
Mark Sharp 72a2bc2962 MDL-86586 core_form: Fixed dropdown JS error if no element found 2025-09-19 14:41:15 +01:00
Sara Arjona 410e16bb89 MDL-86174 badges: Add Canvas Credentials paid plan alert 2025-09-19 15:34:30 +02:00
Luca Bösch d8b71caf11 MDL-86424 quiz: Question type icon square within add question in quiz. 2025-09-19 10:28:13 +01:00
Yerai Rodríguez d6714f3367 MDL-86596 Profiling: add breadcrumb node to profiling detail page
Boost theme removes the last item action.
This adds an extra node so the profile run details page breadcrumb is clickable in both Classic and Boost themes.
2025-09-19 10:53:26 +02:00
Huong Nguyen 11db03e2ae weekly release 5.0.2+ 2025-09-19 15:33:36 +07:00
Huong Nguyen 48b1491c02 NOBUG: Add upgrade notes 2025-09-19 15:33:36 +07:00
Huong Nguyen 67a2930cd8 MDL-80053 core_grade: Fix illegal whitespaces 2025-09-19 15:14:55 +07:00
Huong Nguyen 6ad7562f51 Merge branch 'MDL-83991_500' of https://github.com/panchalrohit/moodle into MOODLE_500_STABLE 2025-09-19 08:57:06 +07:00
Mihail Geshoski 7ab3565b4c Merge branch 'mdl-83857_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-09-19 09:54:02 +08:00
Huong Nguyen bf69f70d29 Merge branch 'MDL-86592-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-09-19 08:21:56 +07:00
Shamim Rezaie fbd05827c9 Merge branch 'MDL-86021-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2025-09-19 10:49:34 +10:00
James C f3b9b01401 MDL-83857 course: Use set_sectionid not num 2025-09-19 11:39:35 +12:00
Paul Holden e3a4f4faf2 Merge branch 'MDL-85616-500_glossary_undefined_variable' of https://github.com/davidherney/moodle into MOODLE_500_STABLE 2025-09-18 19:23:22 +01:00
Sara Arjona 3e72f5aad1 Merge branch 'MDL-86173-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-09-18 17:55:58 +02:00
Jun Pataleta 55968b2e35 MDL-86488 componentlibrary: Improved documentation for the action menu 2025-09-18 19:27:37 +08:00
Jun Pataleta 937115ff3a MDL-86488 mod_subsection: Click on the menu button itself, not the icon 2025-09-18 19:27:36 +08:00
Jun Pataleta ee2783a4c6 MDL-86488 behat: Click on the menu button itself, not the icon 2025-09-18 19:27:36 +08:00
Jun Pataleta e419d66acf MDL-86488 qbank_columnsortorder: Use action menu Behat steps 2025-09-18 19:27:36 +08:00
Jun Pataleta 11607a0a57 MDL-86488 behat: Update xpath for action menu trigger's label 2025-09-18 19:27:36 +08:00
Jun Pataleta 47493f3bba MDL-86488 mod_data: Fix Behat tests for checking action menu items 2025-09-18 19:27:36 +08:00
Jun Pataleta fd11665611 MDL-86488 mod_feedback: Move menu trigger label outside the pix icon
* The pix icons must be decorative, and the label be put within
the menu trigger itself as a visually hidden text.
* Also make the pix icons beside the action menu items as decorative.
2025-09-18 19:27:35 +08:00
ferran c568d9db64 MDL-86021 core_course: Sort modules in the course listing order
When sections contains submodules, the list of course modules should appear
in the right order (the order displayed in the course page)
2025-09-18 12:24:14 +02:00
Jun Pataleta e6c113e4a0 MDL-86488 grade: Move menu trigger label outside the pix icon
* The pix icons must be decorative, and the label be put within
the menu trigger itself as a visually hidden text.
2025-09-18 17:25:37 +08:00
Jun Pataleta 8674dac8da MDL-86488 course: Set action menu icon for category actions menu 2025-09-18 17:25:37 +08:00
Jun Pataleta cf41ddbfad MDL-86488 mod_lti: Move menu trigger label outside the pix icon 2025-09-18 17:25:36 +08:00
Jun Pataleta f1b25ca028 MDL-86512 mod_assign: Make the select column header name more accessible 2025-09-18 13:56:22 +08:00
David Herney 92f455dc9e MDL-85616 mod_glossary: The existence of the variable is controlled 2025-09-17 13:08:48 -05:00
Mihail Geshoski 2e468618c4 Merge branch 'MDL-80053-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-09-17 23:33:43 +08:00
Paul Holden d20833ddc0 Merge branch 'MDL-86454-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-09-17 16:04:34 +01:00
Paul Holden 371b19bc2b 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:43 +01:00
Amaia Anabitarte fc84a849d5 MDL-86173 grade: Checking the grade item is gradable 2025-09-17 16:16:56 +02:00
Paul Holden ca93788b50 Merge branch 'MDL-86431-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-09-17 12:39:06 +01:00
Paul Holden 39f1775180 Merge branch 'MDL-86541-500' of https://github.com/dfelipemonroy/moodle into MOODLE_500_STABLE 2025-09-17 11:52:55 +01:00
Amaia Anabitarte 9bfaabbe7b Merge branch 'MDL-86490-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-17 11:52:57 +02:00
Jun Pataleta e8dd16f7fd MDL-86488 output: Make the icon in action menu triggers decorative
* Set the action label properly.
* Set the kebab icon as a decorative icon.
* Move the title attribute to the menu button itself instead of the
kebab icon.
2025-09-17 15:16:34 +08:00
Andrew Nicols b2c991e3c9 MDL-86431 phpunit: Rename test teardown method 2025-09-17 13:58:16 +08:00
Conn Warwicker 39137cf98f MDL-85874 core_grade: Fix grade category toggle JS error. 2025-09-16 15:43:50 +01:00
Jun Pataleta 280d9de9c3 MDL-86512 core: Ensure bulk action selection count announcement
When the bulk actions are first rendered, the item count in the
aria-live region will not be announced by screen readers as aria-live
regions need to be present in the DOM and changed before screen readers
can announce their content.

This commit ensures that the item selection count will be announced
when the bulk actions get added to the DOM by calling
`updateBulkItemSelection()` after rendering the bulk actions HTML. This
removes the non-breaking space in the template, effectively causing a
change in DOM without affecting the visuals, and allowing screen readers
to announce the contents of the item count.
2025-09-16 22:39:00 +08:00
Jun Pataleta 09999184d4 MDL-86512 core: Assign status role for the number of selected items
Add a status role for the container containing the number of selected
items for bulk actions so that screen readers will announce this
number when an item gets selected for bulk action.
2025-09-16 22:39:00 +08:00
Jun Pataleta 678b4aa851 MDL-86490 tool: Click on the action link itself and not on its icon 2025-09-16 22:35:49 +08:00
Jun Pataleta 5bc4eb67b3 MDL-86490 output: Mark icon in action_icon as decorative 2025-09-16 22:35:49 +08:00
Huong Nguyen 93aa033801 weekly release 5.0.2+ 2025-09-16 20:58:40 +07:00
Paul Holden d9e0ff18c6 MDL-86646 gradereport_user: ensure table rowspan always populated. 2025-09-16 13:21:38 +01:00
Paul Holden 001d0f72a7 MDL-86645 grade: account for text grade types determining element icon. 2025-09-16 10:07:33 +01:00
David Woloszyn 8b1826591a MDL-86592 analytics: Modify processor checking in admin setting
Remove processor checks when calling write_setting. This prevents
configuration errors displaying when processors are not yet configured
when admin defaults are applied.
2025-09-16 15:02:42 +10:00
Jun Pataleta cdbe0ac5b2 Merge branch 'MDL-86495-500-patch' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-09-16 10:15:47 +08:00
Jayce 711c780fe4 MDL-80053 core_grade: fixed exception message appearing
- Fixing the exceptions shows an incorrectly formatted table
- The filler cell is only used to take space on the left rows but when the right rows are empty, it is not needed.
2025-09-16 11:29:24 +09:30
Mihail Geshoski 303eaaab75 Merge branch 'MDL-86558-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-09-16 09:55:46 +08:00
Huong Nguyen 93f7bc45bf MDL-86495 core: Improve PHPUnit for IPLookup 2025-09-16 08:47:28 +07:00
Amaia Anabitarte a9beb7258e Merge branch 'MDL-85541-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-15 14:56:56 +02:00
Amaia Anabitarte 1c29339b5c Merge branch 'MDL-86157-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-15 14:50:30 +02:00
Paul Holden 7804f01ad1 MDL-86157 mod_glossary: correctly format entry page title. 2025-09-15 12:00:40 +01:00
Paul Holden 1cdfee56d9 MDL-85418 user: prevent default click event/scroll in user sub-menus. 2025-09-15 10:41:23 +01:00
Paul Holden 3995498467 MDL-83080 message: handle core\url instance data as contexturl. 2025-09-15 10:40:23 +01:00
Paul Holden 1041103f2d 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:36 +01:00
Shamim Rezaie c75a926f68 Merge branch 'MDL-86604-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-09-15 18:24:26 +10:00
Andi Permana e5b53cfe81 MDL-84870 core: Update security.txt expiry 2025-09-15 14:30:49 +07:00
Huong Nguyen 1adbdfced4 Merge branch 'MDL-79362-500' of https://github.com/abias/moodle into MOODLE_500_STABLE 2025-09-15 11:40:54 +07:00
Jun Pataleta af7ff3cacc Merge branch 'MDL-86495-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-09-15 10:25:34 +08:00
Tim Hunt 29d621c8fb MDL-86599 assignment: add hidden captions to the table in the assign UI
This helps screen-reader users trying to navigate quickly to the right table.
2025-09-12 15:31:03 +01:00
Paul Holden 0a92183a94 MDL-85887 tag: style search form using common Bootstrap controls. 2025-09-12 11:38:49 +01:00
Paul Holden 509c029923 MDL-84085 mod_h5pactivity: account for missing ra table join alias. 2025-09-12 11:38:18 +01:00
Shamim Rezaie 6bc92d4ba4 weekly release 5.0.2+ 2025-09-12 18:34:48 +10:00
Shamim Rezaie 4deced0a3e NOBUG: Add upgrade notes 2025-09-12 18:34:48 +10:00
Mihail Geshoski cd8b087792 MDL-86604 mod_feedback: Remove unwanted table borders 2025-09-11 23:43:25 +08:00
Mihail Geshoski f7bda3c089 MDL-86548 mod_glossary: Remove unwanted table borders 2025-09-11 23:43:24 +08:00
Mihail Geshoski e19d167738 MDL-86548 theme_boost: Option to avoid the _reboot.scss reset for tables
MDL-85659 introduced a reset of the Bootstrap _reboot.scss table styles.
This reset is applied to most tables (except those using the .table
class) and in some cases resulted in regressions such as unwanted
borders.
To address this, the .table-reboot class has been introduced as an
option to bypass the reset applied by MDL-85659 in undo.scss. Tables
affected by this regression can include this class, which is
intentionally styleless and preserves the original _reboot.scss styles
while preventing the addition of unwanted styling (borders).
2025-09-11 23:43:24 +08:00
Jun Pataleta 2c6ac63b02 Merge branch 'MDL-86294-M500_document-db-options' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-09-11 17:12:32 +08:00
Jake Dallimore 308cc2bd51 Merge branch 'MDL-86548-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-09-11 16:30:29 +08:00
Mihail Geshoski 3063e942f0 MDL-86548 mod_glossary: Remove unwanted table borders 2025-09-11 13:51:50 +08:00
Mihail Geshoski 095c638ca6 MDL-86548 theme_boost: Option to avoid the _reboot.scss reset for tables
MDL-85659 introduced a reset of the Bootstrap _reboot.scss table styles.
This reset is applied to most tables (except those using the .table
class) and in some cases resulted in regressions such as unwanted
borders.
To address this, the .table-reboot class has been introduced as an
option to bypass the reset applied by MDL-85659 in undo.scss. Tables
affected by this regression can include this class, which is
intentionally styleless and preserves the original _reboot.scss styles
while preventing the addition of unwanted styling (borders).
2025-09-11 13:51:49 +08:00
Paul Holden 5982990339 Merge branch 'MDL-86330-500' of https://github.com/yerairogo/moodle into MOODLE_500_STABLE 2025-09-10 16:26:44 +01:00
Paul Holden dd1d29ddae Merge branch 'MDL-86501-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-10 16:10:26 +01:00
Paul Holden ac818d5a8c Merge branch 'MDL-86447_MOODLE_500_STABLE' of https://github.com/dcmexy/moodle into MOODLE_500_STABLE 2025-09-10 15:49:56 +01:00
Mihail Geshoski e47a6356ad Merge branch 'MDL-86479-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-10 22:18:06 +08:00
Paul Holden aea9a49b28 Merge branch 'MDL-86489-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-10 15:04:06 +01:00
Diego Monroy 72940def9d MDL-86541 blocks: validate allowing block title to be '0' (zero). 2025-09-10 12:32:21 +02:00
Mihail Geshoski b3bedd324b Merge branch 'MDL-86498-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-10 17:44:24 +08:00
Amaia Anabitarte 9d078cd0bd Merge branch 'MDL-86531-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-09-10 10:37:53 +02:00
Jun Pataleta 3ec9e79d42 MDL-86501 form: Fix unit tests
The change in the calendar button from an `<a>` tag to a native
`<button>` tag means the `\HTML_QuickForm_group::getValue()` will have
a different result and the `test_onquickformevent()` tests must be
adjusted accordingly.
2025-09-10 11:28:06 +08:00
Huong Nguyen 0d3ecd8267 Merge branch 'MDL-84076-MOODLE_500_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_500_STABLE 2025-09-10 09:10:10 +07:00
Huong Nguyen c18ab7c188 Merge branch 'MDL-85270-m50' of https://github.com/micaherne/moodle into MOODLE_500_STABLE 2025-09-10 09:08:21 +07:00
Huong Nguyen 80ded1a69e Merge branch 'MDL-85266-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-10 09:05:43 +07:00
Paul Holden 31a633534c Merge branch 'MDL-86521-500' of https://github.com/abias/moodle into MOODLE_500_STABLE 2025-09-09 14:25:01 +01:00
Paul Holden 0df18c7432 Merge branch 'MDL-86499-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-09 14:15:33 +01:00
Paul Holden db2a0ea4aa Merge branch 'MDL-86501-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-09 14:01:01 +01:00
Jun Pataleta c8ac5fd27d MDL-86498 badges: Empty string for empty links 2025-09-09 18:18:29 +08:00
Jun Pataleta 6c06b5f1ef MDL-86498 badges: Add label for badge navigation url_select 2025-09-09 18:18:29 +08:00
Jun Pataleta f380f3f560 MDL-86498 badges: Accessibility coverage for badge details and overview 2025-09-09 18:18:29 +08:00
Jake Dallimore 5b1731077e weekly release 5.0.2+ 2025-09-09 15:06:18 +08:00
Jake Dallimore 77e643b914 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-09-09 15:06:12 +08:00
Huong Nguyen b71a12b73e Merge branch 'MDL-83003-M500_INFO-command-not-compatible-with-envoy-proxy-redis' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-09-09 09:28:51 +07:00
Huong Nguyen 3b4b80ba1e MDL-86495 core: Better errors handling for IP Lookup
- Since `Geoplugin` is not free anymore, a new admin setting called `GeoPlugin API key` has been added for user to input
  their API key if they still want to use `Geoplugin` service.
- The `iplookup_find_location()` method has been improved to handle error responses more effectively.
2025-09-09 08:44:53 +07:00
Rajneel Totaram 416992c5b2 MDL-86558 mod_quiz: Fix styles for sticky columns 2025-09-09 10:07:56 +12:00
Michael Aherne bfcc1cf4ec MDL-85270 output: Export url_select for template. 2025-09-08 10:24:13 +01:00
Mark Sharp e0f02aab9e MDL-85419 core_courseformat: Move event trigger to after cm cache purge 2025-09-08 10:01:03 +01:00
Huong Nguyen 3d67d7b889 Merge branch 'MDL-85335-500' of https://github.com/gbarat87/moodle into MOODLE_500_STABLE 2025-09-08 08:30:22 +07:00
Mihail Geshoski bcd723868f Merge branch 'MDL-86374-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-08 09:23:21 +08:00
Mihail Geshoski 128bcf4b9e Merge branch 'MDL-86317-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-09-08 09:17:12 +08:00
Paul Holden 028ed9c60e MDL-86575 cohort: format cohort names in external service return data. 2025-09-07 19:31:31 +02:00
Paul Holden bd0a861e5d 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:53:03 +02:00
AMOS bot e18a4d5d6f Automatically generated installer lang files 2025-09-06 00:08:01 +00:00
Huong Nguyen a2f7f13d7c weekly release 5.0.2+ 2025-09-05 23:53:53 +07:00
Huong Nguyen af08c2b925 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-09-05 23:53:42 +07:00
Philipp Memmel cbb7382c86 MDL-84076 core_templates: Avoid manipulation of template context object 2025-09-05 09:59:06 +02:00
Yerai Rodríguez f15afac206 MDL-86330 enrol: remove time rounding to avoid missing active enrolments
Rounding time could lead to newest enrolments being excluded, resulting in
these courses not appearing under the "My courses" tab in the Dashboard until the rounded time aligned with the actual time.

enrol_get_all_users_courses() now uses the PSR-20 clock to provide stable
and testable time values.
2025-09-05 08:21:32 +02:00
Huong Nguyen 3b8769886e Merge branch 'MDL-83628-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-09-05 09:21:55 +07:00
Simey Lameze 03df64668d MDL-85675 behat: add timefinish to quiz attempt generator
Adds support for the timefinish attribute to the quiz attempt
generator allowing Behat scenarios to specify the exact completion
time of an attempt.

This is necessary to simulate a scenario where the student finished
the attempt few minutes ago for example.

This commit also adds two scenarios that automates MDLQA-307.
2025-09-05 10:09:28 +08:00
Mihail Geshoski 92d88969a0 Merge branch 'MDL-85869-M500' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-09-04 23:55:07 +08:00
Mihail Geshoski ed40f8f422 Merge branch 'MDL-74046-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-09-04 23:47:03 +08:00
ferran e50d272c5f Merge branch 'MDL-85416_500' of https://github.com/timhunt/moodle into MOODLE_500_STABLE 2025-09-04 16:31:25 +02:00
ferran 868659f644 Merge branch 'MDL-72956-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-04 16:10:19 +02:00
Huong Nguyen 101136c8b4 Merge branch 'MDL-86230-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-04 15:44:21 +07:00
Huong Nguyen e9ffc9458e Merge branch 'MDL-72511-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-09-04 15:42:09 +07:00
ferran ccb0099b13 Merge branch 'MDL-85641-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-09-04 10:11:15 +02:00
ferran 33a0aa6625 Merge branch 'MDL-86248-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-04 10:03:55 +02:00
Muhammad Arnaldo 77c9a9d83d MDL-74046 tool_lp: new-tab for competency frameworks repo link 2025-09-04 14:28:15 +07:00
Rajneel Totaram cfffecddb5 MDL-86317 core: Replace deprecated bootstrap class 2025-09-04 10:19:55 +12:00
Rajneel Totaram a0562f11d8 MDL-85641 mod_feedback: Use full width for reponses page 2025-09-04 09:58:31 +12:00
Leon Stringer 59bbfa4cc0 MDL-86434 core: Page title for invalid user ID 2025-09-03 16:14:01 +02:00
Alexander Bias 5d60bb2c4b MDL-86521 block_myoverview: Fix overflow of filter bar 2025-09-03 15:03:40 +02:00
Daniel Ziegenberg 0d89eada8b MDL-85869 qbank: Fix duplicate category stamps and idnumbers
Migrating from Moodle 4.5 to Moodle 5.0 the adhoc task
\mod_qbank\task\transfer_question_categories should transfer question
categories into new question bank instances.

The code for rescuing 'lost' categories where the linked contextid
no longer exists was failing. It moved all these categories to the
system context, which could lead to unique key violations.

To fix this, we check for duplicates, and if neccessary change the
stamp, or remove the idnumber. Since these questions were formerly
'lost', this is OK.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2025-09-03 13:26:59 +02:00
Mikel Martín 52629d951c MDL-86531 course: Fix overview table overflow 2025-09-03 13:14:36 +02:00
Andrew Nicols f3c89b4ab3 MDL-86534 mod_forum: Only run bulk action JS if they are enabled 2025-09-03 12:46:08 +02:00
Paul Holden b8f7791612 Merge branch 'MDL-85619-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-09-03 12:38:31 +02:00
toanlamt e9e5c098e3 MDL-84982 tiny_media: Fix excessive data passed to the usedfiles JS file 2025-09-03 12:30:37 +02:00
Paul Holden df4f173fd9 Merge branch 'MDL-86187-MOODLE_500_STABLE' of https://github.com/phmemmel/moodle into MOODLE_500_STABLE 2025-09-03 12:16:17 +02:00
Daniel Ziegenberg 42f1ac842e MDL-86259 qbank: Make transfer_question_categories more resilient
Migrating from Moodle 4.5 to Moodle 5.0 queues an adhoc task
`\mod_qbank\task\transfer_question_categories` which is supposed to
spawn a lot of adhoc tasks `\mod_qbank\task\transfer_questions`.

However, the task `\mod_qbank\task\transfer_question_categories` is
built in a way that the adhoc tasks to spawn are stored in memory in an
array. So if the task at some point crashes which is not as unlikely as
one would think (temporary database connection loss, leftover rubbish in
question table, all kinds of possible errors, see MDL-86226 or
MDL-85869) all these `\mod_qbank\task\transfer_questions` tasks WILL NOT
BE SPAWNED ANYMORE leaving the whole platform in a mess from which you
will not be able to recover from: Question categories have been migrated
to new contexts, but the questions have not, because the adhoc tasks
never have been created.

We fix this by moving the creation of the adhoc tasks
`\mod_qbank\task\transfer_questions` inside the delegated database
transaction where the question categories are being moved. So after a
category is moved but before it get's deleted, we create the
corresponding `\mod_qbank\task\transfer_questions` task and queue it for
execution.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-09-03 10:02:42 +02:00
Mihail Geshoski 9fb8d2664c Merge branch 'MDL-82244-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-03 12:21:41 +08:00
Mihail Geshoski 854e8c7841 Merge branch 'MDL-73671-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-03 12:15:47 +08:00
Mihail Geshoski 351df6c160 Merge branch 'MDL-83474-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-03 12:08:07 +08:00
AMOS bot 478aae8790 Automatically generated installer lang files 2025-09-03 00:07:56 +00:00
ferran c89543f2cb Merge branch 'MDL-71786-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-09-02 17:03:42 +02:00
Tim Hunt f6c4de3c4c MDL-85416 assignment: fix date format in messages
For no very obvious reason, the date in the 'You have just
submitted your assignemnt' message was formatted differently
from the default display used on-screen.

This commit makes it consistent.
2025-09-02 15:33:43 +02:00
Michael Hawkins 4e5151db5f weekly release 5.0.2+ 2025-09-02 20:32:05 +08:00
Michael Hawkins 985563f5d8 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-09-02 20:31:38 +08:00
Mihail Geshoski 9c18bba7f5 Merge branch 'mdl-84975_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-09-02 09:44:26 +08:00
Mihail Geshoski e74db295a9 Merge branch 'MDL-85551_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-09-02 09:23:05 +08:00
Mihail Geshoski cd1ae95751 Merge branch 'MDL-86339-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-09-02 09:16:36 +08:00
Mihail Geshoski e3743c2b68 Merge branch 'MDL-86366-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-09-01 23:21:14 +08:00
Mihail Geshoski 8f07f08c91 Merge branch 'MDL-86362-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-09-01 23:11:22 +08:00
Paul Holden 3e56c24239 MDL-71786 mod_assign: shift activity grade reminder dates during reset.
Co-authored-by: aneno-m-e <43393997+aneno-m-e@users.noreply.github.com>
2025-09-01 17:07:03 +02:00
Paul Holden 80dd589366 MDL-73671 mod_forum: shift activity due/cutoff dates during reset. 2025-09-01 16:55:09 +02:00
Mihail Geshoski b25b9a5505 Merge branch 'MDL-85018_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-09-01 22:29:02 +08:00
Mihail Geshoski d83b4469f7 Merge branch 'MDL-73417-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-09-01 22:18:50 +08:00
Jun Pataleta b17e1036ff MDL-86501 form: Fix date selector calendar button mark up
* Make the calendar icon decorative.
* Mark up the calendar button accordingly:
  - Render it as a `<button type="button">`
  - Add label using `aria-label`.
  - Use a more suitable label of "Date picker" rather than "Calendar"
  - Add a `title` attribute to show a tooltip for sighted users.
  - Disable/enable it accordingly by setting/removing the `disabled`
    attribute.
2025-09-01 16:08:13 +08:00
Philipp Memmel 6b9b6ea399 MDL-86297 core_question: Fix limit when retrieving qbank instances 2025-09-01 08:43:46 +02:00
AMOS bot c5652816a2 Automatically generated installer lang files 2025-09-01 00:07:52 +00:00
Luca Bösch 57f15efcdb MDL-86366 quiz: Description shouldn't show each secure page, but title. 2025-08-31 17:29:42 +02:00
Luca Bösch 140ec8196d MDL-86362 questions: Fix question bank table styles 2025-08-30 14:59:58 +02:00
Paul Holden 3597ec7916 MDL-86177 task: ensure tasks are runnable in indicator output.
Also fix case where task indicator progress data no longer exists,
which lead to exceptions when encountered, breaking the gradebook.
2025-08-29 15:51:25 +01:00
Paul Holden 31518baf30 MDL-85266 tool_uploaduser: correctly key bulk users session array. 2025-08-29 15:50:08 +01:00
Jun Pataleta 208e2b68fa MDL-86479 course: Add accessibility coverage for course index options 2025-08-29 21:10:49 +08:00
cescobedo 3ca7c6bf32 weekly release 5.0.2+ 2025-08-29 15:00:54 +02:00
cescobedo a23ae5fd00 NOBUG: Add upgrade notes 2025-08-29 15:00:54 +02:00
Jun Pataleta fc7f5e6155 MDL-86489 mod_feedback: Add accessibility coverage for Questions tab
* Also fix the heading level issue found by the test.
2025-08-29 20:49:53 +08:00
Jun Pataleta 6529caf402 MDL-86499 core: Make table sort icons decorative 2025-08-29 12:24:36 +08:00
Huong Nguyen ba7aef3b44 Merge branch 'MDL-86343-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-29 11:03:57 +07:00
Huong Nguyen 453da3a159 Merge branch 'MDL-85743-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-29 11:00:43 +07:00
Mihail Geshoski 1cd2424b6d Merge branch 'MDL-83256-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-29 11:32:45 +08:00
Huong Nguyen 6754b63a6d Merge branch 'MDL-86452-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-08-29 08:46:14 +07:00
Huong Nguyen 314b56d36b Merge branch 'MDL-86301-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-08-29 08:41:22 +07:00
Paul Holden 03e50cb759 MDL-82244 course: use site default course visibility in external call. 2025-08-28 17:40:03 +01:00
Paul Holden 558fccee57 MDL-86248 theme_boost: consistently apply dropdown item spacing.
Replace previous ad-hoc fixes for active item spacing in dropdown
menu items.

Changes to Javascript are due to the following bug in our SCSS
compiler, preventing a simpler `&:has([...])` selector:

https://github.com/scssphp/scssphp/issues/606

Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-08-28 16:56:44 +01:00
Amaia Anabitarte 63d5ead68c Merge branch 'MDL-86280-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-08-28 11:16:46 +02:00
Jun Pataleta 9af958b434 MDL-86489 mod_feedback: Mark required icon as decorative
* Set `alt` param as empty, but add `title` attribute for the sake of
sighted users.
* Add a visually hidden string that indicates the element is required.
2025-08-28 16:53:10 +08:00
Jun Pataleta 20148b07a5 MDL-86479 theme_boost: Fix a11y issues on the course index options
* Add aria-label for the options menu button.
* Add proper menu and menuitem roles for the options menu.
2025-08-28 13:44:36 +08:00
Andrew Nicols 303b8a4bc1 MDL-86452 core: Reset navigation data between tests 2025-08-28 13:13:05 +08:00
Stefan Hanauska 2c021bd81e MDL-86454 badges: Hide revoke button if not available 2025-08-27 10:09:13 +02:00
Rajneel Totaram 46892613b0 MDL-86339 qtype_numeric: Coding style improvements 2025-08-27 16:24:39 +12:00
Rajneel Totaram facdd9c203 MDL-86339 qtype_numeric: Display units dropdown on the same line 2025-08-27 16:24:39 +12:00
Dean Chimezie 81d2d088ef MDL-86447 tool_mfa: Restore setup lang string 2025-08-26 13:38:25 -04:00
Luca Bösch 14bf865905 MDL-86280 mod: Do not filter help text in activity chooser.
Co-authored-by: Ferran Recio <ferran@moodle.com>
2025-08-26 18:19:36 +02:00
cescobedo 5764f8ee38 weekly release 5.0.2+ 2025-08-26 15:53:51 +02:00
cescobedo c93b644c94 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-08-26 15:53:39 +02:00
Mihail Geshoski 576d0230a0 Merge branch 'MDL-85677-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-08-26 11:57:27 +08:00
Mihail Geshoski c8fd816a90 Merge branch 'MDL-85229-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-26 11:49:20 +08:00
Huong Nguyen 223b4065d5 Merge branch 'MDL-86315-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-08-26 09:23:25 +07:00
Simey Lameze d9bd1a8c0a MDL-85677 behat: test to verify SEB download link visibility 2025-08-26 09:13:27 +08:00
Mihail Geshoski 6b775cf705 Merge branch 'MDL-85676-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-08-26 00:43:58 +08:00
Andrew Nicols 55d7b7b935 MDL-86301 core: Create autoloadable externallib_testcase 2025-08-25 15:14:03 +08:00
Simey Lameze 71d66a1c5f MDL-85676 behat: validate SEB attempt message 2025-08-25 14:03:45 +08:00
AMOS bot 3f9923d756 Automatically generated installer lang files 2025-08-24 00:10:01 +00:00
Mihail Geshoski 3674a5854a weekly release 5.0.2+ 2025-08-22 20:40:04 +08:00
Mihail Geshoski 812e4d86c5 NOBUG: Add upgrade notes 2025-08-22 20:40:04 +08:00
Huong Nguyen 7b2049a602 MDL-73845 enrol_database: Fix MySQL issue 2025-08-22 13:00:30 +08:00
Huong Nguyen ecaf13fd45 Merge branch 'MDL-86231-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-08-22 08:46:49 +07:00
Paul Holden 36e4118e2d MDL-85592 output: export missing node sort attribute for template. 2025-08-21 13:06:24 +01:00
Paul Holden 1c4e61ec4a 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:49 +01:00
Jun Pataleta c16b55dce9 MDL-81455 behat: Add accessibility coverage to default start page tests 2025-08-21 17:51:03 +08:00
Jun Pataleta 2d2fa81a6c Merge branch 'MDL-81455-500' of https://github.com/rajutm25/moodle into MOODLE_500_STABLE 2025-08-21 17:48:12 +08:00
Jun Pataleta aa7cc0f7a2 Merge branch 'MDL-86202-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-08-21 15:20:54 +08:00
Rajneel Totaram 0fb340f187 MDL-86202 mod_lesson: Use correct heading level 2025-08-21 18:39:19 +12:00
Mihail Geshoski a9c6cab95e Merge branch 'MDL-84850-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-21 11:46:20 +08:00
Huong Nguyen c77e19c8ac Merge branch 'MDL-86311-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-21 09:30:10 +07:00
Huong Nguyen b231e98b91 Merge branch 'MDL-80611-500' of https://github.com/marinaglancy/moodle into MOODLE_500_STABLE 2025-08-21 08:54:51 +07:00
Mihail Geshoski f905120964 Merge branch 'MDL-84739-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-20 17:23:51 +08:00
Paul Holden 7f18673266 MDL-85684 mod_assign: format course/assignment notification content. 2025-08-20 09:14:49 +01:00
Paul Holden 95a76b29a8 MDL-85348 cohort: disable report bulk deletion for managed cohorts. 2025-08-20 09:09:27 +01:00
Paul Holden 55b8c665e9 MDL-83474 webservice: fix empty/zero $itemid handling in text format. 2025-08-20 09:08:25 +01:00
Mihail Geshoski ad15f0f2b8 Merge branch 'MDL-86015-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-20 09:54:36 +08:00
Huong Nguyen a93baa4d34 Merge branch 'MDL-73845-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-08-20 08:41:36 +07:00
Paul Holden 85a64a433b MDL-86374 report_outline: use formatted activity name in report. 2025-08-20 00:37:00 +01:00
Paul Holden 984e1b8954 MDL-85743 user: correct debugging for missing user picture fields. 2025-08-19 17:12:33 +01:00
Paul Holden 8cd752c0df 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:52 +01:00
Paul Holden 8284ea1914 MDL-84850 tag: ensure course tags enabled before adding to navigation. 2025-08-19 17:10:54 +01:00
Shamim Rezaie bb70c36bee weekly release 5.0.2+ 2025-08-20 00:45:36 +10:00
Shamim Rezaie b25db071d8 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-08-20 00:45:25 +10:00
rajutm25 60c5f790ed MDL-81455 core: Fix welcome message heading in dashboard
The welcome message on login was incorrectly replacing the dashboard
page header.The change ensures the welcome message appears as a
paragraph while maintaining the dashboard page heading.
2025-08-19 19:47:25 +05:30
Paul Holden 02f8a46063 MDL-86363 completion: ensure module viewed completion data is cleaned.
The privacy provider should ensure it removes said data consistently.
2025-08-19 11:17:28 +01:00
Mi Jia Looi 05bfc0432d MDL-73845 enrol_database: Add lock to prevent race condition 2025-08-19 15:33:03 +07:00
Paul Holden e908a04251 MDL-86311 core: ensure component is normalised prior to comparison. 2025-08-19 09:17:07 +01:00
Paul Holden 0182b73e82 MDL-86311 question: fixes for PHPUnit related warnings/notices.
* Correct component generator name;
* Add missing required object properties;
* Assert expected debugging messages
2025-08-19 09:16:53 +01:00
Paul Holden 531eb2f489 MDL-86311 phpunit: update default configuration to fail on warnings.
This restores pre-PHPUnit 10 behaviour, and ensures that warnings
emitted by PHP during test execution will cause the test to fail.
2025-08-19 09:16:36 +01:00
Jun Pataleta 9d6eb92b0a MDL-72511 calendar: Better calendar navigation labelling
* Make the accessible labels of the previous and next month links more
informative by indicating the name of the previous/next months.
* Make titles on the previous and next month links reflect the actual
month and show titles only when the calendar is rendered within a block.
This is because the title attribute is only used for the sake for
sighted users who may need to know the meaning of the previous/next
month links, especially when the calendar is displayed in compact form
where the previous/next month name is not shown.
2025-08-19 11:25:55 +08:00
Jun Pataleta ba51ff55bb MDL-72511 calendar: Fix month_mini navigation
* Hide arrow icons from assistive technologies.
* Add a more sensible aria-label for the previous/next
month links.
2025-08-19 11:25:55 +08:00
Huong Nguyen 729ddade19 Merge branch 'MDL-86109-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-08-19 09:53:38 +07:00
Mihail Geshoski f369e3ca75 Merge branch 'MDL-83772-500' of https://github.com/srobotta/moodle into MOODLE_500_STABLE 2025-08-19 10:27:49 +08:00
Paul Holden 7d11f4350d MDL-86343 reportbuilder: fix course groupmode column type value.
Per a3c386af, this column does not produce numeric output. Also cleanup
redundancy in the default branch of corresponding switch statement.
2025-08-18 17:05:34 +01:00
Paul Holden ad8919f266 MDL-84739 gradingform_rubric: consistently style rubric table icons. 2025-08-18 08:57:54 +01:00
Paul Holden 04e12674fa MDL-83256 user: account for course context instances of teacher fields. 2025-08-18 08:57:01 +01:00
Paul Holden 1921c75407 MDL-85229 mod_url: observe description appearance setting on display.
Correctly determine whether said description is in fact "empty".
2025-08-18 08:55:45 +01:00
Paul Holden 7a3eb1805b MDL-84745 cohort: capability check prior to bulk deletion button. 2025-08-18 08:51:05 +01:00
Paul Holden 30060fec33 MDL-83066 blocks: restore deletion warning for "sticky" blocks.
It was lost when switching to modal delete configuration in 529c5c2e.
2025-08-18 08:49:30 +01:00
Daniel Ziegenberg 3319f52182 MDL-86294 core: Document missing dboptions in config-dist.php
For the full list of database config settings, the config-dist.php file
referred to https://docs.moodle.org/en/Database_settings, which in turn
pointed back to
https://github.com/moodle/moodle/blob/master/config-dist.php. We should
not play hide and seek with our configuration options, so let's document
them.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-08-17 17:05:35 +02:00
AMOS bot 9b1aacec11 Automatically generated installer lang files 2025-08-16 00:07:57 +00:00
Paul Holden 2ec1d258ce 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:04:49 +01:00
Philipp Memmel 8960fc331f MDL-86187 core_ddl: Add reserved keywords for MySQL 8.4 2025-08-15 11:17:43 +00:00
Paul Holden 368af2780a MDL-86015 mod_assign: preserve advanced grading modal dropdown state.
Don't autoclose it when clicking inside the dropdown element. Fixes
change of behaviour during the Bootstrap 5 upgrade.
2025-08-15 11:07:39 +01:00
Paul Holden 3ad4e6bb69 MDL-86015 output: support autoclose behaviour in dropdown dialog. 2025-08-15 11:07:39 +01:00
Paul Holden ad9bb66f9e MDL-85682 mod_assign: account for absence of workflow select filter. 2025-08-15 10:48:15 +01:00
David Woloszyn 7f38d50aee MDL-86315 registration: Unset emails in hub when dependant value not set 2025-08-15 12:29:26 +10:00
Huong Nguyen 60e348ff05 weekly release 5.0.2+ 2025-08-15 09:26:41 +07:00
Huong Nguyen 66d863f09a Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-08-15 09:26:28 +07:00
Stevani Andolo 7431612b20 MDL-86109 tiny_media: Fix selected subtitles and captions language
Ensures the selected subtitle or caption language is correctly retained
and dispalyed.
2025-08-15 09:49:52 +08:00
Paul Holden 406bc9a9dd MDL-72956 mod_feedback: remove session access for started activities. 2025-08-14 11:27:35 +01:00
Rajneel Totaram 46565b8a67 MDL-73417 mod_assign: Remove duplicate array key 2025-08-14 14:34:33 +12:00
AMOS bot bbbc68d16b Automatically generated installer lang files 2025-08-14 00:08:04 +00:00
Paul Holden e65ccd7ea3 MDL-86053 mod_assign: account for lack of global scales in settings. 2025-08-13 10:15:08 +01:00
AMOS bot 9b5b77cf2d Automatically generated installer lang files 2025-08-13 00:08:05 +00:00
Mark Johnson ed6e1c2db9 MDL-85551 questions: Creating a default category with a questions mod
When a new module that publishes questions is created, it does not have
a default question category created until it is viewed. This means that
other parts of the system that want to use the bank while its empty
(such as bulk moving questions) cannot see it.

This adds a step to the common edit_module_post_actions() function so
that any module supporting the FEATURE_PUBLISHES_QUESTIONS feature will
have its default category created with the module instance.

This can be overridden by setting skipdefaultcategory to true
in the $moduleinfo argument to edit_post_module_actions().
2025-08-12 14:04:04 +01:00
Paul Holden c93da59bb5 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:33 +01:00
Mihail Geshoski aa6358a8f6 Merge branch 'MDL-85652-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-12 13:55:21 +08:00
guillaumebarat baac1c57b9 MDL-85335 cli: Allow uninstall of sub-plugin when parent missing 2025-08-12 15:04:32 +10:00
James C ed3000a3dc MDL-84975 course: Handle tags in section and activity move dialogues 2025-08-12 13:23:29 +12:00
Mark Johnson 5c3eb2c535 MDL-85018 questionlib: Update broken question test
A multianswer question with a missing database record no longer throws
an exception, so doesn't work for the "broken question" test, so switch
to ddwtos.
2025-08-11 10:09:11 +01:00
Mark Johnson f94db1c8e8 MDL-85018 qtype_multianswer: Prevent errors on backup/restore
If a multianswer question has its question_multianswer record missing
for some reason, attempting to backup and restore a bank containing the
question will result a dml_missing_record exception.

The qtype_multianswer::get_question_options() method already copes with
the sequence from this record being empty, so we can just remove the
MUST_EXIST check and let it fall back to that.
2025-08-11 10:09:11 +01:00
Paul Holden 0c8a596ba3 MDL-85541 gradereport_history: show user country value correctly. 2025-08-11 09:17:38 +01:00
Stephan Robotta 063beea7d2 MDL-83772 mod_data: Fixed autosave bug in text areas with same name 2025-08-11 08:52:11 +02:00
Jose Pico e419f36236 MDL-86225 plagiarism: Update data type from object to array 2025-08-11 16:06:26 +10:00
Mark Johnson 223da4833a MDL-86010 tool_lp: Test fetching evidence works after cm deletion 2025-08-08 16:03:11 +01:00
Michael Kotlyar 57b29b7a55 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 16:03:11 +01:00
Andrew Nicols 134156a18a MDL-86231 behat: Support array callable syntax in execute method 2025-08-08 11:42:30 +08:00
Mihail Geshoski e27e1ed7bc Moodle release 5.0.2 2025-08-08 10:48:06 +08:00
Mihail Geshoski 7f9b287f42 NOBUG: Add upgrade notes 2025-08-08 10:48:06 +08:00
Sara Arjona 1295393145 weekly release 5.0.1+ 2025-08-07 16:45:05 +02:00
Sara Arjona 5bdb6936c8 NOBUG: Add upgrade notes 2025-08-07 16:45:04 +02:00
Sara Arjona 2b97cc0de3 NOBUG: Fixed file access permissions 2025-08-07 16:44:58 +02:00
Sara Arjona 9b5963b683 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-08-07 16:44:54 +02:00
Huong Nguyen 203f6bb20f Merge branch 'MDL-86004-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-08-07 14:09:21 +07:00
David Woloszyn aed28401be MDL-86004 core: Modify upgrade step for Microsoft endpoints
The upgrade step for Microsoft OAuth2 issuers has been modified
to address an oversight in MDL-84432. The upgrade now only updates
service base urls for multi-tenant issuers.

Co-authored-by: Raju Tummoji <raju.tummoji@moodle.com>
2025-08-07 16:54:50 +10:00
Ilya Tregubov 8ba7c1f0f3 Merge branch 'MDL-85260-500' of https://github.com/tasiobg/moodle into MOODLE_500_STABLE 2025-08-07 09:11:27 +03:00
Huong Nguyen dae9a97e9a Merge branch 'MDL-85718-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-08-07 12:21:39 +07:00
Huong Nguyen 40a5b8c018 Merge branch 'MDL-86205-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-08-07 12:14:57 +07:00
Huong Nguyen 5127c9c87c Merge branch 'MDL-85794-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-08-07 11:37:25 +07:00
Huong Nguyen 8597284d8a Merge branch 'MDL-85795-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-08-07 11:26:17 +07:00
Huong Nguyen efab967320 Merge branch 'MDL-84217-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-08-07 10:56:28 +07:00
Ilya Tregubov 14fa538ea3 MDL-63395 user: Fix profile visibility check.
It needs to be done in user_get_user_details as well.
2025-08-07 10:29:14 +07:00
Jun Pataleta a8c8fc5b31 MDL-86205 message: Close drawer when activating elements outside of it 2025-08-07 11:23:19 +08:00
Jun Pataleta 4d39f092f7 Merge branch 'MDL-85674-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-08-07 10:44:11 +08:00
Jun Pataleta b8cd47df05 Merge branch 'MDL-85701-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-08-07 10:39:01 +08:00
Jun Pataleta caf2a6f129 Merge branch 'MDL-78233-500' of https://github.com/Tasiobg/moodle into MOODLE_500_STABLE 2025-08-07 10:35:11 +08:00
Jun Pataleta 401720a4fb Merge branch 'MDL-85802-500' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-08-07 10:33:41 +08:00
Mihail Geshoski 3f7b1ab5b5 Merge branch 'MDL-79540_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-08-07 10:19:42 +08:00
Huong Nguyen 7884309434 Merge branch 'MDL-84010-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-08-07 09:17:40 +07:00
AMOS bot 36557f6243 Automatically generated installer lang files 2025-08-07 00:07:59 +00:00
ferran 8ac53d5231 Merge branch 'MDL-86176-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-08-06 16:21:58 +02:00
Sara Arjona 7ca14924c4 MDL-86176 badges: Adjust badges due to Canvas Credentials changes
This change addresses necessary adjustments to how OBV2.0 badges are
sent to backpacks, specifically to ensure compatibility and correct
functionality following recent updates to Canvas Credentials' conditions.

It ensures our badge integration continues to operate smoothly despite
these external changes.
2025-08-06 15:04:51 +02:00
Jun Pataleta 7f4770736b MDL-85795 behat: Update button text used in search steps 2025-08-06 19:56:31 +08:00
Simey Lameze 6f2f617a17 MDL-85674 behat: replace multiple steps by a single table step 2025-08-06 18:20:19 +08:00
andelacruz 879fbe0083 MDL-85674 mod_grade: Behat test for multiple questions manual grading 2025-08-06 17:39:06 +08:00
Jun Pataleta 3629975896 Merge branch 'MDL-86095-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-08-06 15:41:15 +08:00
yusufwib01 6ea99ba11e MDL-85718 tiny_link: Improve image link behavior in TinyMCE 2025-08-06 14:31:09 +07:00
Rajneel Totaram 9d2d5ea984 MDL-86095 mod_book: Let screenreader know print book opens in new window 2025-08-06 18:16:00 +12:00
dustinhuynh 29d322526f MDL-86058 core_task: enable disable tasks with a pending upgrade 2025-08-06 15:47:41 +10:00
Sara Arjona d49a5649e2 Merge branch 'MDL-86098-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-08-06 06:53:49 +02:00
Huong Nguyen cbdeddcccf Merge branch 'MDL-85132_500_STABLE' of https://github.com/vladaskidanovas/moodle into MOODLE_500_STABLE 2025-08-06 10:54:12 +07:00
Huong Nguyen 575c22badb MDL-84464 report_log: Fix EOF 2025-08-06 10:38:04 +07:00
hieuvu f13043c44b MDL-85701 mod_quiz: Move delete activities before questions.
Make sure the question is not used when activities has been deleted.
2025-08-06 10:25:17 +07:00
Laurent David 84f558d47f MDL-84464 report_loglive: Hide report for teacher without groups 2025-08-06 10:15:25 +07:00
Laurent David 14c293058c MDL-84464 report_log: Hide report for teachers without groups
* Teachers without groups in SEPARATEGROUP mode should not see the report log page nor access it
2025-08-06 10:15:25 +07:00
Laurent David 47323247a4 MDL-84463 mod_feedback: Fix typo in behat test description 2025-08-06 01:34:17 +00:00
Laurent David 893e1c1005 MDL-84463 mod_feedback: Fix users in no group and email
* Non editing teachers in no group should not receive feedback emails
from students in no group
2025-08-06 01:34:17 +00:00
Laurent David 390333268c MDL-84463 mod_feedback: Fix show entries and nonrespondents
* Non editing teachers not in a groups should not see entries
from other users
2025-08-06 01:34:17 +00:00
raortegar 8fb680a4a8 MDL-85704 mod_bigbluebuttonbn: Update sesskey handling for compatibility 2025-08-06 01:34:17 +00:00
Huong Nguyen c7399d8aaf Merge branch 'MDL-85510-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-08-06 08:30:11 +07:00
Paul Holden 4c68ce0888 MDL-86230 admin: fix site registration link to Moodle app.
Broken by 5d316201.
2025-08-06 00:35:53 +01:00
Khoa Nguyen Dang e417341fe1 MDL-85510 Questions: clearfix from MDL-84708 affects spacing
Co-authored-by: Mikel Martín Corrales <mikel@moodle.com>
2025-08-05 15:54:20 +07:00
Stevani Andolo 87d95b7a12 MDL-84217 editor_tiny: Added 'img-fluid' class to dropped image files 2025-08-05 15:07:21 +08:00
sam marshall c7760d4ae5 MDL-84010 core_files: sync_external_file can cause infinite recursion 2025-08-05 07:48:36 +01:00
Mihail Geshoski 1f497d91ac Merge branch 'MDL-86001-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-05 11:43:18 +08:00
Mihail Geshoski 42a3afdd97 Merge branch 'MDL-85565_500' of https://github.com/PhilippImhof/moodle into MOODLE_500_STABLE 2025-08-05 11:36:18 +08:00
Mihail Geshoski 93d8ca693d Merge branch 'MDL-85492_500' of https://github.com/krisbax/moodle into MOODLE_500_STABLE 2025-08-05 11:21:19 +08:00
Huong Nguyen f8925dccfd Merge branch 'MDL-85338-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-08-05 09:10:58 +07:00
Huong Nguyen 380f5a89fc Merge branch 'MDL-85231-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-08-05 08:50:26 +07:00
Huong Nguyen 066c42f396 Merge branch 'MDL-86080-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-08-05 08:40:23 +07:00
Huong Nguyen d5e8fa372b Merge branch 'MDL-86043-500' of https://github.com/tasiobg/moodle into MOODLE_500_STABLE 2025-08-05 08:32:06 +07:00
Jun Pataleta 81af2286bf MDL-85795 message: Enclose the search widget in a group 2025-08-04 19:15:01 +08:00
Jun Pataleta 77065687fa MDL-85795 search: Enclose the search widget in a group 2025-08-04 19:15:00 +08:00
Simey Lameze cd2c6b7def MDL-86186 behat: enlarge window size before asserting 2025-08-04 11:27:21 +08:00
Shamim Rezaie f212c7f477 Merge branch 'MDL-85787-500-2' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-08-04 09:53:26 +10:00
Paul Holden 61cd9a2449 MDL-83462 mod_page: observe page description display in popup. 2025-08-01 17:04:17 +01:00
Jun Pataleta 565fe4bc07 MDL-85794 message: Set notification preferences controls within a group 2025-08-01 18:50:22 +08:00
Mihail Geshoski de28b775ad MDL-85802 mod_quiz: Fix double-escaping in notification content
Avoids double-escaping when filtering notification content. Adds
a unit test to validate the content filtering logic.
2025-08-01 18:50:06 +08:00
Iñigo Zendegi 0c7746bdea MDL-85802 mod_quiz: format course/quiz notification content. 2025-08-01 18:50:05 +08:00
Mikel Martín 5be547bd21 MDL-86080 theme_boost: Fix YUI tables styles
MDL-85659 generated a regression on YUI tables that are displayed
without borders. This patch improves the fix including YUI tables
as an exception too.
2025-08-01 08:49:47 +02:00
Jun Pataleta ad93f921e5 Merge branch 'MDL-85945-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2025-08-01 14:34:46 +08:00
Jun Pataleta 4998facd49 MDL-85231 message: Style the notification buttons consistently 2025-08-01 13:08:34 +08:00
Jun Pataleta 57e18d38d5 MDL-85231 message_popup: Add a close button on the notification popover
This follows the recommendation on the ARIA Authoring Practices Guide
(APG) for modal dialogues:
> It is strongly recommended that the tab sequence of all dialogs
> include a visible element with role button that closes the dialog,
such as a close icon or cancel button.

https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
2025-08-01 13:08:34 +08:00
Laurent David 6470c5444d MDL-85231 message_popup: Add focustrap in message popup 2025-08-01 13:08:34 +08:00
Huong Nguyen 2b8ce68fd3 Merge branch 'MDL-86137-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-08-01 09:15:06 +07:00
David Mudrák adf34486b2 MDL-85945 lang: Use fixed strings in the tests, too 2025-07-31 17:00:29 +02:00
Helen Foster 0327b79d68 MDL-85945 lang: Import fixed English strings (en_fix) 2025-07-31 17:00:29 +02:00
Sara Arjona 34968cacf5 weekly release 5.0.1+ 2025-07-31 16:08:31 +02:00
Sara Arjona e17ca51752 NOBUG: Add upgrade notes 2025-07-31 16:08:30 +02:00
Sara Arjona 4885e99858 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-07-31 16:07:21 +02:00
Michael Hawkins 02353916b0 Merge branch 'MDL-85362-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-07-31 14:35:52 +08:00
Huong Nguyen 33fb09b447 Merge branch 'MDL-85967-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-07-31 10:51:38 +07:00
Huong Nguyen bf0f98505b Merge branch 'MDL-86062-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-07-31 10:20:57 +07:00
Huong Nguyen 130d1ff7b4 Merge branch 'MDL-84485-Select-webservice-in-wstoken-behat-breadcrumb-500' of https://github.com/farhan6318/moodle into MOODLE_500_STABLE 2025-07-31 10:17:47 +07:00
David Woloszyn ef99ad55eb MDL-85967 aiprovider_openai: Modify action config on upgrade 2025-07-31 13:12:53 +10:00
David Woloszyn 1cc02578c2 MDL-85967 aiprovider_openai: O1 model settings updated 2025-07-31 13:12:53 +10:00
David Woloszyn 9928d23bc0 MDL-85967 aiprovider_openai: Cast types to stored model settings 2025-07-31 13:12:53 +10:00
David Woloszyn 830c66e7ad MDL-85967 aiprovider_openai: Update param max_completion_tokens
AMOS BEGIN
  MOV [settings_max_tokens_help,aiprovider_openai],[settings_max_completion_tokens_help,aiprovider_openai]
AMOS END
2025-07-31 13:12:31 +10:00
Huong Nguyen 3b786b87c3 Merge branch 'MDL-85897-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-07-31 08:58:27 +07:00
AMOS bot c57f19419f Automatically generated installer lang files 2025-07-31 00:08:06 +00:00
Shamim Rezaie 92adb9005c Merge branch 'MDL-85295-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-07-31 02:43:33 +10:00
Shamim Rezaie c539d4bfb8 Merge branch 'MDL-72133-filter-deleted-logs-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-07-31 02:26:53 +10:00
Mihail Geshoski 72fea763a5 Merge branch 'MDL-86113-500' of https://github.com/snake/moodle into MOODLE_500_STABLE 2025-07-30 23:29:44 +08:00
Mihail Geshoski c50df31426 Merge branch 'MDL-85470-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-07-30 23:11:28 +08:00
Paul Holden 981870f7b1 MDL-86162 h5p: fix content type/library page table layout. 2025-07-30 15:40:43 +01:00
Tasio 1a6d4949cf MDL-86043 core: keep SQL consistent with other Moodle versions.
This change resolves issues with Oracle in Moodle 4.5. It has been ported to newer Moodle versions as it improves
the existing SQL and helps maintain consistency across different Moodle versions.
2025-07-30 16:18:41 +02:00
Paul Holden 85fe9d9239 MDL-85338 message: make messaging drawer responsive to sticky footer.
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
2025-07-30 13:58:45 +01:00
Tasio b9ba50fbb6 MDL-86043 core: test for the task sending new users an email 2025-07-30 14:32:57 +02:00
Paul Holden 59e21e6b3d MDL-85766 block_glossary_random: reset keys of retrieved entries. 2025-07-30 13:05:04 +01:00
Jun Pataleta 62b1b3af74 Merge branch 'MDL-85995-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-07-30 17:10:14 +08:00
Mikel Martín 4c2dc280ef MDL-86137 core_role: Fix role tables styles 2025-07-30 10:42:37 +02:00
Mikel Martín 76251e49f4 MDL-86098 badges: Fix manage backpacks table styles 2025-07-30 09:20:29 +02:00
Andrew Nicols 7e7023923c MDL-86062 mod_choice: Stop calling get_string from lib.php 2025-07-30 13:58:40 +08:00
Andrew Nicols bf18273a08 MDL-85897 core: Move all deprecations to emit_deprecation 2025-07-30 13:53:27 +08:00
Andrew Nicols 18586a863d MDL-85897 core: Add emit_deprecation() method
This changeset adds a new `\core\deprecation::emit_deprecation` method
with the same signature as the `emit_deprecation_if_found()` method.

It is intended to be used in places where something is guaranteed to
have been deprecated, and will throw appropriate debugging if the
deprecated attribute is not found.

The `emit_deprecation_if_found()` method should still be used where the
item being checked is not known to be deprecated or not, for example in
calling code.
2025-07-30 13:53:21 +08:00
Huong Nguyen adb245071a Merge branch 'MDL-85590_fix_modal_backdrop_attachment_point_500' of https://github.com/MariaMozgunova/moodle into MOODLE_500_STABLE 2025-07-30 08:37:41 +07:00
Farhan Karmali d2fcaa515b MDL-84485 webservice: Add Behat step for mobile web service selection
This commit introduces a mandatory service selection step in our Behat tests
to ensure consistent behavior in environments with multiple third-party services.
2025-07-29 15:58:50 +05:30
Huong Nguyen 5a2127519d Merge branch 'MDL-85855-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-29 16:49:46 +07:00
Jun Pataleta c11f3c4f07 MDL-85470 badges: Add a11y Behat test for the manage badges page 2025-07-29 15:15:18 +08:00
Jun Pataleta 7ab43c028c MDL-85470 badges: Use badge:namewithimagelink column in badges table 2025-07-29 15:15:17 +08:00
Jun Pataleta 13c95e480e MDL-85470 reportbuilder: New column containing badge image, name, link 2025-07-29 15:15:17 +08:00
Jun Pataleta 6d6b7dc8b2 MDL-85787 course: Limit course index drag and drop to certain pages only
Only allow the drag and drop functionality in the course index on pages
that provide alternatives to move course items such as the course
homepage and the course section view pages.

This is to meet the WCAG 2.2 Level AA Success Criterion 2.5.7 for
dragging movements.
See: https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements
2025-07-29 11:46:14 +08:00
Jayce Birrell 096be6d576 MDL-85698 core: combo box informs screen reader users 2025-07-29 10:50:16 +09:30
AMOS bot 4445d5f475 Automatically generated installer lang files 2025-07-28 13:17:04 +00:00
Maria Mozgunova e8f71adf00 MDL-85590 core: Fix modal backdrop attachment point for full screen 2025-07-28 10:46:58 +01:00
Benjamin Walker c9fe936e29 MDL-72133 report_log: Add fallback context display 2025-07-28 09:06:42 +10:00
Benjamin Walker ff8f5d06a5 MDL-72133 report_loglive: Display logs filtered by deleted course ids 2025-07-28 09:06:42 +10:00
Benjamin Walker 283f0855c0 MDL-72133 report_log: Display logs filtered by deleted course ids 2025-07-28 09:06:42 +10:00
Philipp Imhof 8c22b5537a MDL-85565 phpunit: check for <select> before <option>
Make sure that assert_select_options() will fail when the output does
not contain a <select> and therefore does not have the given options.
2025-07-25 13:13:09 +02:00
Jake Dallimore 3a7bdef5b6 MDL-86113 mod_lti: skip slow network calls during tests
This check exists to determine whether a given tool URL is a cartridge,
specifically when the URL does not end in .xml. It hits the URL to
determine this. In tests, we have many mock tool URLs, which won't
resolve, and running this code causes large hangs and random failures.
Any tests covering cartridge support still work fine, provided they
continue to use URLs ending in .xml; this change only skips the check
during tests for other non-xml URLs.
2025-07-25 16:39:26 +08:00
Michael Hawkins 5780da5481 weekly release 5.0.1+ 2025-07-25 12:14:11 +08:00
Michael Hawkins 3bcb3343da Merge branch 'MDL-83111-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-07-24 12:01:01 +08:00
Huong Nguyen 2ccf85b0eb Merge branch 'MDL-86049-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-07-24 09:47:47 +07:00
Huong Nguyen 498c972374 Merge branch 'MDL-85504-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-07-24 09:43:59 +07:00
Huong Nguyen 8fecec1471 Merge branch 'MDL-85759-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-24 09:30:36 +07:00
Rajneel Totaram 2d93e34ef1 MDL-85995 mod_book: Make previous/next buttons accessible 2025-07-24 10:08:18 +12:00
Jun Pataleta e85f5beef6 MDL-85504 mod_feedback: Enhance the question edit form via JS
The drag handle and actions menu should not be within the accessible
labels of the question items. In order to enhance the question edit
form with these, they need to be rendered via JS outside of container
of the questions' accessible name.
2025-07-23 16:15:36 +08:00
Amaia Anabitarte c82ba0b35e Merge branch 'MDL-85989-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-07-23 10:13:33 +02:00
Jun Pataleta 2d0b20c180 MDL-85504 form: Legend's label template data should not be escaped
The label context data in the fieldset's legend tag should not be
escaped and allow raw HTML given that legend tags can contain
phrasing content and headings.

See developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/legend.
2025-07-23 16:09:20 +08:00
Huong Nguyen ced7437759 Merge branch 'MDL-60799_500' of https://github.com/jonof/moodle into MOODLE_500_STABLE 2025-07-23 09:03:36 +07:00
Huong Nguyen aa70d4652e Merge branch 'MDL-83996-readonly-false-positive-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-07-23 09:00:07 +07:00
Huong Nguyen cbe6e407ab Merge branch 'MDL-84787-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-23 08:51:31 +07:00
Huong Nguyen 8f1b1275f2 Merge branch 'MDL-85573-tool-brickfield-uninstall-500' of https://github.com/szymonk1101/moodle into MOODLE_500_STABLE 2025-07-23 08:33:44 +07:00
Shamim Rezaie bccd5d8a0b Merge branch 'MDL-85307-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-07-23 09:22:14 +10:00
Rohit Panchal c823bcc990 MDL-83991 tag: Optimized tag sql query 2025-07-23 01:04:42 +05:30
Mihail Geshoski 7066bc6e9a Merge branch 'MDL-86073-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-22 23:53:43 +08:00
Mihail Geshoski 9f9ac79d0a Merge branch 'MDL-85997-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-22 23:36:57 +08:00
Mihail Geshoski 1b4d6d8f26 Merge branch 'MDL-85038-M500_dml_missing_record_exception-when-running-mod_assign-task-send_assignment_due_soon_notification_to_user' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-07-22 23:29:17 +08:00
Mihail Geshoski 3394936d37 Merge branch 'MDL-83558-500' of https://github.com/andrewgos/moodle into MOODLE_500_STABLE 2025-07-22 13:54:24 +08:00
Huong Nguyen e8add02056 MDL-85362 core: Define environment requirements for Moodle 5.1 2025-07-22 10:53:25 +07:00
Mi Jia Looi f3fd9b1836 MDL-86017 mod_folder: Cast customdata to object in folder_cm_info_view() 2025-07-22 13:42:45 +10:00
Rajneel Totaram 8c0157a7e0 MDL-85295 qtype_ordering: render feedback properly
'answertext' is already passed through format_text(), so no need to escape it in the template.
2025-07-22 11:40:26 +12:00
Andrew Nicols e642fad70f MDL-86049 core: Do not use the component cache before purge
When trying to resolve a corrupt cache where it is not possible to
complete the Moodle setup/bootstrap, it is necessary to ignore the
current cache to load the cache purging infrastructure.
2025-07-21 12:25:26 +08:00
Benjamin Walker 859fb5a319 MDL-83996 sessions: Fix false positive read only sessions errors 2025-07-21 10:26:29 +10:00
Paul Holden 5062363f32 MDL-86073 reportbuilder: fix external assertions of button property.
The tests from c439e2d3 tried to assert they were empty, when in fact
they didn't exist at all. Caused PHPUnit warnings.
2025-07-18 18:54:40 +01:00
Mihail Geshoski d52b2568b0 weekly release 5.0.1+ 2025-07-18 14:52:33 +08:00
Mihail Geshoski 9a9adc8069 NOBUG: Add upgrade notes 2025-07-18 14:52:33 +08:00
Mihail Geshoski 7d66c0c37b Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-07-18 14:52:19 +08:00
Paul Holden 3d24c81e18 MDL-85944 block_myoverview: fix previously badly nested SCSS. 2025-07-17 15:24:45 +07:00
Mihail Geshoski b1f771062a Merge branch 'MDL-85055-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-07-17 12:15:30 +08:00
Huong Nguyen 0668e2186a Merge branch 'MDL-85050-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-07-17 10:24:29 +07:00
Huong Nguyen a2495a7e7d Merge branch 'MDL-85944-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-17 08:52:55 +07:00
Huong Nguyen 06c44dc7d2 Merge branch 'MDL-81384-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-17 08:43:58 +07:00
Shamim Rezaie ae14c21753 Merge branch 'MDL-73003-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-07-17 07:29:59 +10:00
Paul Holden 1ceae923f3 MDL-85055 task: correct use of DI provided frozen Clock API.
Fixes some of the usage introduced in tests as part of a35335a9.
2025-07-16 19:49:14 +01:00
Mihail Geshoski 241094d371 Merge branch 'MDL-77237-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-07-16 23:53:57 +08:00
Mihail Geshoski eac831f04f Merge branch 'MDL-84466_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-16 13:16:21 +08:00
Huong Nguyen f280d19a55 Merge branch 'MDL-85609-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-16 09:52:43 +07:00
Andrew Gosali 729b1753b5 MDL-83558 mod_forum: fix incorrect message on edge case scenario
(when student tries to see all participants on a forum with visible groups mode)
2025-07-15 22:45:55 +07:00
Mark Johnson 7b45a898b0 MDL-84466 question/qbank: Update pending transfer notification
This updates the logic and text of the notification that is shown while
the question transfer task is still pending, to include instances of the
new transfer_questions task. It also ensures the notification is shown
if a user tries to access the question editing screen from outside the
question bank.
2025-07-15 12:03:25 +01:00
Mark Johnson 60f58afc5f MDL-84466 qbank: Transfer question files and tags in separate tasks
On a large site, the task to transfer question categories to the new
mod_qbanks contexts could take a very long time, as of any transferred
categories contain questions using files, each file has to be updated
individually.

This change splits up the transfer into 2 stages. The first stage
(transfer_question_categories) updates the context IDs on each question
category and moves them to their new top category, then spawns an
instance of transfer_questions for each category that was moved.
transfer_questions then handles moving the files and tags for questions
in a single category at a time. This allows the transfer process to be
parallelised by using multi cron or ad-hoc task runners, so should speed
things up on larger sites.
2025-07-15 12:03:25 +01:00
Daniel Ziegenberg d0c9e9c208 MDL-85038 assignment: fix exception on sending assignment notification
When the assignment gets deleted between the creation of the ad-hoc task
mod_assign\task\send_assignment_due_soon_notification_to_user or
mod_assign\task\send_assignment_overdue_notification_to_user and its
execution, the ad-hoc task fails with a dml_missing_record_exception and
the task gets stuck.

In this case we do not want the task to fail and just return with an
appropriate mtrace.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-07-15 10:46:14 +02:00
meirzamoodle 86021f2698 MDL-77237 core: Suppress debugging during capabilities cleanup
To prevent the debugging messages from appearing during the upgrade,
I set a flag to hide them.

For the test file, I adjusted the parameters in
the unassign_capability() function, which seemed to be using
the parameter intended for assign_capability().
2025-07-15 14:33:26 +07:00
Paul Holden 18eb86b680 MDL-85944 block_myoverview: specific styling for "My courses" page. 2025-07-15 08:02:14 +01:00
Mihail Geshoski ceb7919450 Merge branch 'MDL-85257_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-15 11:22:36 +08:00
Mihail Geshoski b584feb11f Merge branch 'MDL-85246-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-07-15 11:11:54 +08:00
Huong Nguyen 59bfbfac49 Merge branch 'MDL-72582-MOODLE_500_STABLE' of https://github.com/tsmilan/moodle into MOODLE_500_STABLE 2025-07-15 10:07:50 +07:00
Huong Nguyen 1189b22417 Merge branch 'MDL-86016-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-07-15 09:56:33 +07:00
Huong Nguyen 90cfc6aaee Merge branch 'MDL-85040-500-new' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-07-15 09:42:22 +07:00
Mihail Geshoski ca2bbff2b3 Merge branch 'MDL-85754_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-15 10:31:41 +08:00
Mihail Geshoski 18a208be56 Merge branch 'MDL-84385-requireonce-500' of https://github.com/leonstr/moodle into MOODLE_500_STABLE 2025-07-15 09:41:45 +08:00
Andrew Nicols 946e3934a3 MDL-86016 core: Remove xmldb test in favour of unit test 2025-07-15 09:32:55 +08:00
Andrew Nicols 35e27f754e MDL-86016 tests: Make install.xml test less restrictive 2025-07-15 09:32:55 +08:00
Paul Holden ac432b5c14 MDL-81384 theme_boost: centre help icon margin/padding. 2025-07-14 21:32:26 +01:00
meirzamoodle 2a107a1306 MDL-85040 forms: Make required form icons decorative
The required icon in mforms is not necessary. The div containing it
already has a title attribute that enables mouse users to hover on the
icon and see its meaning.

Screen reader users will know whether a field is required or not via
the `aria-required` attribute.

Labelling the required icon via `aria-label` does not pass the
a11y audit.

Given these, it only makes sense to make the required icon decorative
for mforms.

Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-07-14 14:23:45 +07:00
Huong Nguyen 3a116dddfa Merge branch 'MDL-85817-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-07-14 13:52:30 +07:00
AMOS bot 5582d18482 Automatically generated installer lang files 2025-07-12 00:07:58 +00:00
Paul Holden b64e870f28 MDL-86001 qbank_columnsortorder: populate preview data question text. 2025-07-11 15:23:41 +01:00
Paul Holden 1829c5e8b2 MDL-85997 output: require CLI library from corresponding renderer. 2025-07-11 11:59:33 +01:00
Mark Johnson 57553a1b19 MDL-79540 qbank_managecategories: Don't allow own child as parent
When we build the options for a question category selector, the
"nochildrenof" option isn't correctly compared to the category ID. This
means we can select a category's own children as its new parent.
2025-07-11 10:08:33 +01:00
Sara Arjona 16303a2dd2 MDL-85989 output: Fix choicelist when selected 0 is not first
Previously, when the selected value in a choicelist was 0 but not in
the first position, the behavior was incorrect.
This commit fixes that issue, ensuring the choicelist behaves as expected
regardless of the position of the 0 value.
2025-07-11 09:15:06 +02:00
Michael Hawkins 61af040cd5 weekly release 5.0.1+ 2025-07-11 12:48:56 +08:00
Michael Hawkins 96b1cd1700 NOBUG: Add upgrade notes 2025-07-11 12:48:56 +08:00
Leon Stringer 9ff8b12333 MDL-84385 mod_assign: Remove unneeded require_once 2025-07-10 09:27:48 +01:00
Mark Johnson 4eace2bee8 MDL-85257 mod_quiz: Dont show edit links when you dont have permission
The quiz editing page includes an edit link for each question, and a
badge for questions in a shared bank that links to that bank.

It is possible that the user viewing the quiz does not have access to
edit the question or view the question bank, which means these links are
broken.

This change only adds the links if the user has permission for the pages
they link to.
2025-07-10 09:16:44 +01:00
Huong Nguyen f7155bf7e9 Merge branch 'MDL-85863-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-07-10 10:46:39 +07:00
Mihail Geshoski 607a2f9c78 Merge branch 'MDL-85689-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-07-10 11:38:57 +08:00
Mark Johnson 3bc23527e7 MDL-85721 qtype_multianswer: Update find_duplicated_subquestions for Oracle compatibility 2025-07-10 10:28:48 +07:00
Mihail Geshoski c71ca318f5 MDL-84695 mod_qbank: Fix illegal whitespace 2025-07-10 11:08:27 +08:00
Mark Johnson dd87321d18 MDL-84695 mod_qbank: fix unit test for MS SQL server 2025-07-10 10:29:25 +08:00
Huong Nguyen e02277fa76 Merge branch 'MDL-85262-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-10 08:33:29 +07:00
Huong Nguyen 3a96c45fff Merge branch 'MDL-84901-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-10 08:25:38 +07:00
Mihail Geshoski e27a882ce7 Merge branch 'MDL-85939-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-09 23:25:46 +08:00
Mihail Geshoski 4d549717e0 Merge branch 'MDL-84255-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-07-09 23:18:21 +08:00
Rajneel Totaram b76b1a074a MDL-85246 mod_quiz: Fix quiz grade feedback
Using $CFG->recovergradesdefault and/or $gradeitem->refresh_grades()
are problematic when viewing a quiz. When reenrolling a user with
previous attempts, a teacher can choose not to recover the user's grades,
even when recovergradesdefault=true. This must be respected when
the user views the quiz. For site with recovergradesdefault=false,
the users always see a grade of 0, which is wrong.

This change shows the correct grade score and feedback to users and
avoids unintentionally recovering the grades.
2025-07-09 20:33:00 +12:00
Mihail Geshoski 577411727e MDL-85721 qtype_multianswer: Fix version bump 2025-07-09 11:38:03 +08:00
andelacruz 0b66b8db21 MDL-85689 mod_quiz: Behat for adding and deleting page from quiz 2025-07-09 10:20:45 +08:00
Mihail Geshoski 0d1f74f1e3 Merge branch 'MDL-85721_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-09 10:20:35 +08:00
Huong Nguyen 9f45c875e6 Merge branch 'MDL-85697-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-07-09 09:10:46 +07:00
Huong Nguyen b6d55490c3 Merge branch 'MDL-85779-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-09 09:06:10 +07:00
Paul Holden bf2f2174e4 MDL-85759 qbank_history: define core t/log fontawesome icon mapping.
Its lack of existence caused question action menu misalignment.
2025-07-08 18:05:48 +01:00
Paul Holden 265f24bd4f MDL-85939 qbank_columnsortorder: improve preview page table alignment. 2025-07-08 17:58:34 +01:00
Kristiina.Bax 9340119538 MDL-85492 report_questioninstances: sort qtypes in alphabetical order 2025-07-08 17:18:20 +01:00
Amaia Anabitarte 71cd06c57c Merge branch 'MDL-85659-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-07-08 17:36:20 +02:00
Mihail Geshoski 6e4e00b0fe Merge branch 'MDL-85069_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-08 22:28:36 +08:00
Mihail Geshoski 9416ffd303 Merge branch 'MDL-84695-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-07-08 22:21:25 +08:00
Mihail Geshoski c3c2b58a7f Merge branch 'MDL-85881_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-08 22:14:31 +08:00
Paul Holden f096b8a658 MDL-84901 auth: specific session start error language string. 2025-07-08 12:33:05 +01:00
Huong Nguyen becb2dfd80 Merge branch 'MDL-84976-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-07-08 18:13:38 +07:00
Huong Nguyen f3d15ba5fd Merge branch 'MDL-85037-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-08 18:08:52 +07:00
Mark Johnson d0a3348bf0 MDL-85754 quiz: Test for permission checks in "Add from question bank" 2025-07-08 12:01:44 +01:00
Mark Johnson 563280c99a MDL-85754 question: Don't show banks where user has no permission
The Switch Banks UI was listing all question banks on the course where
the use had the managecategory permission, plus the other banks they had
used recently.

This conflicted with the check when it tried to load a selected bank,
which checked the useall/usemine permissions. This could lead to errors
if this permission had been removed.

This applies consistent checks to both lists with the useall/usermine
permissions instead.
2025-07-08 12:01:43 +01:00
Mark Johnson 84d7c6ce6d MDL-85754 question: Only use current context in question_edit_contexts
Due to the changes in question sharing, it no longer makes sense to look
at parent contexts when establishing permissions in the question bank.

Questions now belong to a single activity module, and we should be able
to inherit and override permisions at that level like we do with any
other.

In the longer term, we probably want to replace question_edit_contexts
with something simpler, but for the time being this should apply the
correct permission checks where it's used without requiring a big
refactor of existing code.
2025-07-08 12:01:42 +01:00
Huong Nguyen a875d60beb Merge branch 'MDL-85947-M500_bump-GHA-ubuntu-24-04' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-07-08 17:35:07 +07:00
Mihail Geshoski 78cb9483b6 Merge branch 'MDL-41924_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-08 17:06:32 +08:00
andelacruz 4e09d3dd33 MDL-85697 mod_lesson: Behat for lesson group and user overrides 2025-07-08 16:41:01 +08:00
andelacruz 69ba3e7149 MDL-85697 mod_assign: Behat for assignment group and user overrides 2025-07-08 16:17:46 +08:00
andelacruz 09873ae9ce MDL-85697 mod_quiz: Behat for quiz group and user overrides 2025-07-08 16:17:46 +08:00
djarrancotleanu e00381381a MDL-85366 core: Add proper PHPMailer handling of .ics files 2025-07-08 17:07:07 +10:00
Luca Bösch ca806aaeaf MDL-84255 quiz: Show quiz title in heading in accessrule_seb layout. 2025-07-08 07:52:21 +02:00
Paul Holden 7074b2d85f MDL-85652 block_site_main_menu: correct page course comparison.
We can only use the "Add activity" control when on site page.
2025-07-07 17:04:21 +01:00
Daniel Ziegenberg 4be548dafc MDL-85947 ci: Bump GHA to Ubuntu 24.04
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-07-07 16:13:49 +02:00
yusufwib01 7ad990513b MDL-85863 user: Defer new-password email until after transaction commit 2025-07-07 21:03:26 +07:00
Trisha Milan 6c8921f730 MDL-72582 core_files: Add unit test for readfile_accel debugging output
Adds a unit test for the debugging message triggered when readfile_accel() detects
a non-empty output buffer. The readfile_accel() function directly manipulates the
output buffers, so calling it from within PHPUnit triggers an error like "Test code
or tested code closed output buffers other than its own".

As a workaround, the test runs a CLI script in a separate process, allowing buffer
behaviour to be isolated and debugging output to be captured for assertions.
2025-07-07 18:56:48 +10:00
Matt Rice 5b5b3367bb MDL-72582 core_files: Update readfile_accel error handling
Correct the error handling in readfile_accel to properly log errors when
working on a stored_file, rather than hiding the true error behind the
incorrect "Object of class stored_file could not be converted to
string."

Co-authored-by: Simey Lameze <simey@moodle.com>
Co-authored-by: Trisha Milan <trishamilan@catalyst-au.net>
2025-07-07 18:56:39 +10:00
Mikel Martín 5615a83e58 MDL-85659 theme_boost: Fix editor generated tables styles 2025-07-07 10:52:17 +02:00
Laurent David 742b352229 MDL-81702 core_message: Add focustrap and backdrop
* Add focustrap and backdrop to message drawer.
2025-07-07 07:09:02 +02:00
Laurent David 2d1268a5dd MDL-81702 theme_boost: Add focus lock to drawers
* Add focus lock to drawers for small screens
2025-07-07 07:09:01 +02:00
Laurent David 7212d35a88 MDL-81702 theme_boost: Remove site home link from drawers
* The site-home-link was added to all menu drawers and should
only be added to the main menu drawer (mobile version)
2025-07-07 07:09:01 +02:00
David Woloszyn 043caa723a MDL-85817 mod_assign: Update assignment SMS strings 2025-07-07 11:30:48 +10:00
Luca Bösch e2e5de61da MDL-84695 mod_qbank: More precise get_qbank_ids_of_type_in_course query. 2025-07-06 12:14:37 +02:00
Mihail Geshoski 0365910448 weekly release 5.0.1+ 2025-07-06 09:25:48 +08:00
Mihail Geshoski c31fd05b33 NOBUG: Add upgrade notes 2025-07-06 09:25:48 +08:00
Mihail Geshoski 22456ecb9b Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-07-06 09:25:34 +08:00
Mihail Geshoski 0739459df4 Merge branch 'MDL-85350_500' of https://github.com/PhilippImhof/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Mihail Geshoski a5d1f7638b Merge branch 'MDL-84487_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Mihail Geshoski c6e6c86753 Merge branch 'MDL-85200_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Mihail Geshoski a11ed5ab3c Merge branch 'MDL-85563-m500' of https://github.com/NeillM/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Mihail Geshoski 8fecd39ac1 Merge branch 'MDL-85210_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Mihail Geshoski dc15dee3ae Merge branch 'MDL-85432-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-07-05 20:13:13 +08:00
Tim Schroeder f95266a84c MDL-81604 Files: Fix broken file serving w/ Apache + PHP-FPM + PHP >=8.1 2025-07-04 20:03:26 +02:00
Paul Holden 24419c84c6 MDL-85037 block_html: correct access checks for plugin file serving. 2025-07-04 08:55:52 +08:00
Mark Johnson 3094adbb91 MDL-41924 quiz: Annotate questions for backups
Find question bank entries for all questions referenced by a question
slot, and for all questions matching a question bank referenced used for
a random question, and record their IDs so they can be included in
backups.
2025-07-03 14:50:53 +01:00
Mark Johnson 006568435d MDL-41924 backup: Reduce questions included in backups
Historically, backups of an activity using questions would include all
questions for the entire context, where any question had been used. This
could lead to very large backup files, and exacerbated problems with
question duplication.

This changes the process for annotating categories to include in the
backup to find specific categories, rather than whole contexts. It
includes 3 groups of categories:
1. Those that belong to the backed up activity's context.
2. Those that contain a question used directly in a question_reference
belonging to the activity.
3. Those that contain a question used via a question_set_reference
belonging to the activity.
It also adds in any parent categories that are not included by the
above, so we have a complete hierarchy.

For group 1, the backup will include all questions belonging to these
categories, as before. For groups 2 and 3, it will only include
questions for question bank entries that have been annotated by the
activity.
2025-07-03 14:50:52 +01:00
Huong Nguyen ff520ebf34 Merge branch 'MDL-76342-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-07-03 09:07:36 +07:00
Huong Nguyen 9d14a3a81d Merge branch 'MDL-85769-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-07-03 09:05:13 +07:00
Mihail Geshoski d2a192eddb Merge branch 'patch/MDL-85666-500' of https://github.com/skodak/moodle into MOODLE_500_STABLE 2025-07-03 09:55:22 +08:00
Mark Johnson e4a39caeaa MDL-85069 qbank_bulkmove: Load banks and categories dynamically
The bulk move question dialogue presents 2 autocomplete fields for
selection of the target bank and category to move questions to. This was
loading all banks and categories the user could access, and filtering
categories based on the selected bank.

On large sites, this was not usable as there were too many banks and
categories to load leading to timeouts.

This refactors the dialogue to load just the current bank and cagtegory
initially, then load other options on demand via AJAX.
2025-07-02 10:59:05 +01:00
Mark Johnson b9b69a5e3e MDL-85069 question: Services for question bank and category search
This updates the core_question_search_shared_banks external function
with additional parameters to make it applicable outside of the "Switch
bank" dialogue in the quiz, with the corresponding changes to the
question_banks_datasource Javascript module, and unit test coverage.

It also adds a new \core_question\output\question_category_selector
class for rendering a select list of question categories, migrating
the logic used in qbank_managecategories to a core namespace. There
is a fragment callback for rendering this via AJAX.
2025-07-02 10:59:04 +01:00
Petr Skoda c652c8e4d3 MDL-85666 phpunit: add general plugin tests
This defines new group which can be used
to limit execution of these tests to one plugin only.

For example to execute all tests for Label module use:

phpunit --testsuite=mod_label_testsuite
phpunit --group=plugin_checks --filter=mod_label

or

phpunit --filter=mod_label
2025-07-02 07:12:33 +02:00
AMOS bot dd3379abf9 Automatically generated installer lang files 2025-07-02 00:09:57 +00:00
Mark Johnson 448223d32c MDL-85721 qtype_numerical: Prevent duplication on restore
If question_numerical record for a question has been deleted, when its
options are loaded its answers will not have a tolerance property. This
can lead to duplication.

Also, older questions may not have a question_numerical_options record.

To avoid this, we use 0 as a default tolerance for all answers if there
is no matching record, and do the same when reading the question
structure from backups. We also generate default values for the rest of
the options.
2025-07-01 11:52:48 +01:00
Mark Johnson 0105cdb0de MDL-85721 qtype: Cope with missing options records
If we restore a question (or any other) which has had its
qtype_xxx_options record deleted, we get a notification output when we
try to build the options.

This may be called from an AJAX request (such as when we duplicate a
quiz), and outputting the notification breaks the AJAX response.
Returning false also means we don't get the answers attached to the
questiondata options, so the structure doesn't match the restored data,
and we get duplication.

This emits the errors via debugging instead, which allows it to be
supressed or logged, and allows get_question_options() to continue
running.
2025-07-01 11:52:48 +01:00
Mark Johnson 4f196b4671 MDL-85721 qtype_multianswer: Clean up duplicate subquestions
This adds an ad-hoc task to clean up duplicate subquestions created by
the bug.

When the upgrade is run, it will run a query to check if any
subquestions have been duplicated (if there are multiple questions with
the same parent, text and stamp), and queue the cleanup task if there
are.

For each stamp identified, the task will find instances of the question
that are not referred to in their parent's sequence field, confirm that
they have 0 usages, and delete them.
2025-07-01 11:52:48 +01:00
Mark Johnson 64d721484a MDL-85721 qtype_multichoice: Generate default options on restore
qtype_multichoice::get_question_options() will create a default options
object if no qtype_multichoice_options record exists. This means if we
restore a backup containing a multichoice question without any options
(see previous commit), it will always create a duplicate.

This change generates a default set of options for the backupdata if
none exists, so the identity hash will match if the same question exists
in the database without options, and we dont get duplicates.
2025-07-01 11:46:27 +01:00
Mark Johnson 1f245b21c9 MDL-85721 qtype_multianswer: Don't delete qtype data for subquestions
Historically, multianswer would re-use question IDs from subquestions,
so it was necessary to delete qtype-specific data if the qtype changed.
Since versioning was introduced, editing creates new versions of the
qtype and subquestions. Deleting the data means the original versions of
the subquestions cannot function correctly, so we shouldn't do that
anymore.
2025-07-01 11:46:27 +01:00
Andrew Nicols 13ce5af041 Merge branch 'MDL-84531-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-07-01 17:36:07 +08:00
Mark Johnson 3f4478a7b7 MDL-85069 question: Fix return URL parameters after moving questions
When calling the core_question_move_questions external function, the
returned $returnurl paramater kept the original `cat`, `category` and
`lastchanged` parameters.

If the question was moved to another question bank, this meant the user
would be redirected to that bank, but the URL would still refer to the
category in the original bank. Opening the bulk move dialogue again
would then show the original bank and category selected by default, not
the current one.

This change ensures the cat parameter is updated to match the new
category, unsets the `category` parameter as it is redundant. If a single
question is moved, "lastchanged" is updated to that question, otherwise
it is unset.
2025-06-30 15:27:36 +01:00
Mark Johnson 043980d193 MDL-85069 qbank: Add tool_generator callback
This adds a callback for tool_generator and the required lang strings to
allow qbanks to be generated as part of test courses, by passing the
--additionalmodules=qbank argument to maketestcourse.php.
2025-06-30 15:27:35 +01:00
Neill Magill e7a72b4354 MDL-85563 phpunit: Clock API should always use Moodle system time
When using `clock::now()` the frozen cloxk and incrementing clock will now
always return a `DateTimeImmutable` that uses the configured Moodle system
time. In unit tests this will be Australia/Perth.

Before this change, it would sometimes be UCT.
2025-06-30 11:42:23 +01:00
Mark Johnson 22bfb8f591 MDL-85881 questions: Handle multi-byte names during migration
We were using strlen() instead of core_text::strlen() when checking the
length of a question bank name created during the migration. This meant
that multibyte strings were counted as being too long, even though they
were within the character limit.
2025-06-30 11:09:47 +01:00
Daniel Ziegenberg c4ee9493d8 MDL-83003 core: Add error check for envoy proxy
Checking the redis server version is also simplified; once ought to be
enough :)

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-06-30 09:32:21 +02:00
Paul Holden d2751479fc MDL-85779 block_timeline: fix/restore sort toggle dropdown behaviour.
Changes during Bootstrap upgrade, in conjunction with both 8a8c8ab2 and
0c586b41, caused the layout to deviate from that expected elsewhere for
managing of Bootstrap dropdown elements. Thus the dynamically chosen
item was no longer being shown as selected. Fix that here.
2025-06-29 23:17:17 +08:00
Huong Nguyen 3e6d669b34 weekly release 5.0.1+ 2025-06-29 16:18:33 +07:00
meirzamoodle 2be5e0551f MDL-85769 AI: Trap focus within AI drawer on smaller screens
Co-authored-by: Laurent David <laurent.david@moodle.com>
2025-06-28 10:55:18 +07:00
Paul Holden fac98622d3 MDL-85855 calendar: format course shortname attribute correctly. 2025-06-26 21:47:01 +08:00
Mark Johnson 734097729d MDL-84487 mod_quiz: Use modal form for editing random questions
Creating and editing random questions were using 2 different forms - one
dynamic form in a modal, and the other a regular form on a standalone
page. The "Switch bank" UI only works in a modal, so while it was
displayed on the edit page, it didn't function.

This combines the editing functionality with the existing modal form, so
the same UI can be used for both operations, and the "Switch bank"
functionality works.
2025-06-26 14:26:50 +01:00
Mihail Geshoski 0c8ff67983 Merge branch 'MDL-85665-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-06-26 10:45:10 +08:00
Huong Nguyen 938b63bc02 Merge branch 'MDL-83752-M500' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-06-26 09:19:34 +07:00
Huong Nguyen f1389b7961 Merge branch 'MDL-76414-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-06-26 08:29:39 +07:00
Huong Nguyen 89d4e6425f Merge branch 'MDL-85734-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-06-26 08:25:49 +07:00
Huong Nguyen 33a256386d Merge branch 'MDL-85466-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-06-26 08:22:20 +07:00
Huong Nguyen c0818ffcf4 Merge branch 'MDL-82109-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-26 08:19:47 +07:00
Jonathon Fowler 1a3a89b90f MDL-60799 enrol: update_instance() needs separate objects passed
Passing the same object means enrol_cohort does not recognise a change
in role when an edit or batch course upload operation is done.

 * enrol/editinstance.php was modifying $instance before passing it to
   enrol_plugin::update_instance() so the latter never sees a difference
   versus $data. This is redundant since update_instance() is doing the
   same thing a second time.
 * admin/tool/uploadcourse/classes/course.php is passing the same object
   as both arguments to enrol_plugin::update_instance().

There is an expectation that update_enrol_plugin_data() is to mutate its
$instance argument and then return it based on how derived classes in
enrol_guest and enrol_self behave, so cloning $instance within
update_enrol_plugin_data() before mutating it isn't an option.
2025-06-25 09:43:06 +10:00
andelacruz 9ddc63eb82 MDL-85665 mod_quiz: Behat to build quiz in single activity format course 2025-06-24 18:57:53 +08:00
Daniel Ziegenberg bb7eec3886 MDL-83752 workshop: Handle empty feedbackreviewer
Causes PHP warnings when null on PHP 8.1.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-06-24 12:41:39 +02:00
Huong Nguyen 9c5567cba2 Merge branch 'MDL-85683-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-24 09:21:13 +07:00
Huong Nguyen b76ea1942b Merge branch 'MDL-85644-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-24 09:20:00 +07:00
Huong Nguyen a74b536a12 Merge branch 'MDL-85407-50' of https://github.com/durenadev/moodle into MOODLE_500_STABLE 2025-06-24 09:16:53 +07:00
Luca Bösch ae930707d7 MDL-85734 calendar: support multilang group names. 2025-06-20 16:47:40 +02:00
Luca Bösch 746dcabe44 MDL-85466 course: space between number and course icon. 2025-06-20 16:47:13 +02:00
Huong Nguyen 46884140c3 weekly release 5.0.1+ 2025-06-20 15:14:19 +07:00
Huong Nguyen 677d0b3866 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-06-20 15:14:08 +07:00
Sara Arjona e1ab4f3ee9 Merge branch 'MDL-75947-integration-500-fix' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-06-19 17:22:03 +02:00
Mark Johnson 89a613460a MDL-85210 mod_qbank: Update question set references during upgrade
When moving question categories during the migration to mod_qbank, set
references using questions in those categories were not updated with the
new context.

Furthermore, since top categories from system, category and course
contexts are deleted and not moved, and set references that filtered
based on a top category were left pointing to a non-existant category.

This change updates set references using the top category to point to
the new top category where its subcategories are moved, and updates set
references for all subcategories to set the new context.
2025-06-19 12:43:38 +01:00
Mark Johnson a0dab33a23 MDL-85210 question: Update move_question_set_references
move_question_set_references expected the set reference to use the old
filter format.

This change converts the filter to the new format if required, before
updating the category and context ids.
2025-06-19 12:43:37 +01:00
Mihail Geshoski d5a747c507 MDL-75947 ltiservice_gradebookservices: Fix unit test
Fixes the test_sequential_score_posts() unit test in lineitem_test
by removing dynamic class property assignments, which were triggering
deprecation notices.
2025-06-19 16:24:41 +08:00
yusufwib01 5b2ec9c015 MDL-76414 navigation: Show 'Calendar' link in primary nav to guests 2025-06-19 13:13:49 +07:00
Jayce Birrell cb526af973 MDL-85307 filter_glossary: Do not filter concept
Filtering the concept here causes a recursive loop, disabling it here will prevent this.
2025-06-19 14:09:47 +09:30
Huong Nguyen a80fb1bbbb Merge branch 'MDL-85223-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-19 11:26:09 +07:00
Mihail Geshoski eefb11f3a9 Merge branch 'MDL-75947-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-06-19 12:19:18 +08:00
Huong Nguyen 644e986301 Merge branch 'MDL-85678-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-19 11:07:40 +07:00
Mihail Geshoski c1ee2623b7 Merge branch 'MDL-83487-500' of https://github.com/muhammadarnaldo/moodle into MOODLE_500_STABLE 2025-06-19 11:32:06 +08:00
Huong Nguyen ccaf7293a6 Merge branch 'MDL-85159-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-06-19 10:03:39 +07:00
yusufwib01 258ba46df7 MDL-76342 core_output: Wrap buttons below heading on small screens 2025-06-19 10:01:26 +07:00
Mihail Geshoski 2eb4929a34 Merge branch 'MDL-85514-500' of https://github.com/snake/moodle into MOODLE_500_STABLE 2025-06-19 10:59:53 +08:00
Jake Dallimore d18f7da487 MDL-85514 core_form: support 'in' rule for multiselects via subset of
The 'in' rule currently behaves the same way that 'eq' does when used
with multi-selects, which is not correct. It should be modelled by
checking whether the selected values are a subset of the rule values
(i.e. selected values are 'in' the rule values). This patch implements
that for core form rules as well as for the admin settings show/hide.
Several behat features are updated as well, because these were verifying
the incorrect behaviour for multi-select in rules.
2025-06-19 09:54:45 +08:00
Mihail Geshoski 5c1f21c234 Merge branch 'MDL-42263-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-06-18 16:18:24 +08:00
Jayce Birrell f7f35e15e6 MDL-73003 core_grades: Don't use 'scale' to determine grading method.
When a forum activity used a rubrics with a scale for grading, it was not treated as an advanced grading method, causing
the code to mishandle the grading object and not return any grades.
2025-06-18 16:51:25 +09:30
Huong Nguyen 88b1f459a7 Merge branch 'MDL-85742-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-06-18 10:11:06 +07:00
Huong Nguyen 5a1af882ab Merge branch 'MDL-84832-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-18 09:50:44 +07:00
Paul Holden b2d268a757 Merge branch 'MDL-85773-500' of https://github.com/sebastsg/moodle into MOODLE_500_STABLE 2025-06-17 11:08:45 +01:00
Sebastian Gundersen 31c51c1d0d MDL-85773 forms: Read-only selects must have static labels
This is to prevent labels with an invalid for attribute, referencing non-existing elements.
2025-06-17 11:43:46 +02:00
Tasio 007449c03f MDL-78233 accesslib: remove unreliable test
Co-authored-by: Marina Glancy <marina.glancy@gmail.com>
2025-06-17 10:32:14 +02:00
Mihail Geshoski ddcedb9982 Merge branch 'MDL-84978-500' of https://github.com/olivabigyo/moodle into MOODLE_500_STABLE 2025-06-17 15:16:24 +08:00
Mihail Geshoski a97e6ab834 Merge branch 'MDL-82797_500' of https://github.com/cwarwicker/moodle into MOODLE_500_STABLE 2025-06-17 15:00:50 +08:00
Luca Bösch 6da87980db MDL-85742 block_timeline: Fix active item indicator spacing 2025-06-17 07:02:53 +02:00
Marina Glancy 1ca95eeeb3 MDL-80611 general: do not translate url in help links 2025-06-16 18:09:16 +01:00
Paul Holden 6fa39fbfc6 MDL-85609 tool_mfa: fix user counting for factors in use table. 2025-06-16 13:03:36 +01:00
Jun Pataleta 4ecac80c91 MDL-85678 mod_feedback: a11y Behat coverage for Manage templates page 2025-06-16 13:51:11 +08:00
Jun Pataleta 60cc8cfd76 MDL-85678 mod_feedback: Fix a11y issues in the Manage templates page
- Fix the heading hierarchy.
- Add a visually-hidden column header for the actions column.
2025-06-16 13:51:11 +08:00
Jake Dallimore ba27489569 MDL-75947 ltiservice_gradebookservices: score->timestamp as dategraded
If this is not passed in to grade_update(), then it's not passed on to
update_raw_grade(), resulting in time() being used instead, which isn't
correct. The grade timemodified value should be set to the timestamp
provided by the tool in the score post JSON, not the time of the score
post itself.

Co-authored-by: Jayce Birrell <jayce.birrell@moodle.com>
2025-06-16 14:43:51 +09:30
Jake Dallimore 3dba1502c1 MDL-75947 ltiservice_gradebookservices: test sequential score posting
This tests highlights a problem with the score handling logic and
will currently fail. On score post, the current time is used for
grade->timemodified instead of the score->timestamp provided by the
tool in the POST JSON.
2025-06-16 14:43:51 +09:30
AMOS bot 1925c307b4 Automatically generated installer lang files 2025-06-15 00:09:55 +00:00
Mihail Geshoski a46fde054a weekly release 5.0.1+ 2025-06-13 14:43:27 +08:00
Mihail Geshoski 0c50167c4b NOBUG: Add upgrade notes 2025-06-13 14:43:27 +08:00
Paul Holden 6e5b925517 MDL-84531 core: default deprecated attribute $replacement to null. 2025-06-12 14:50:50 +01:00
Jun Pataleta 37b41eab86 Merge branch 'MDL-84752-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-12 17:15:39 +08:00
Paul Holden 9b7b841b75 MDL-84752 qtype_essay: create accessible min/max words form elements.
Because of historical requirements involving fieldsets in question
type forms (see 958e7671), we should use ARIA label attribute on
grouped elements rather than normal labels in order to make them
accessible.

Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-06-12 10:11:41 +01:00
Jun Pataleta c0ae0c50fd Merge branch 'MDL-85700-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-06-12 17:05:59 +08:00
Huong Nguyen d6af4f24f5 MDL-72123 message: Add upgrade note 2025-06-12 17:05:59 +08:00
Huong Nguyen 55a481f052 Merge branch 'MDL-72123-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-06-12 17:05:58 +08:00
Huong Nguyen 5594d5e860 Merge branch 'MDL-84611-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-06-12 08:37:22 +07:00
Mikel Martín 79f2234bdc MDL-85700 theme_boost: Fix singleselect spacing
- Fix single_select template adding gap between elements.
2025-06-11 13:52:09 +02:00
Justin Hunt 70778c49f5 MDL-82797 question engine: gift import fix 2025-06-11 12:03:44 +01:00
Stefan Hanauska 4568f58385 MDL-84611 blocks: Respect instance_allow_multiple() 2025-06-11 11:21:39 +02:00
Stefan Hanauska b5d4d5ed5c MDL-84611 block_html: Change tests to respect capabilities 2025-06-11 11:21:39 +02:00
Huong Nguyen 61be0ff0f9 Merge branch 'MDL-77964-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-11 14:08:40 +07:00
Huong Nguyen 88b45b4acc Merge branch 'MDL-85316-500-mysql-version' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-06-11 13:33:39 +07:00
Huong Nguyen 65b0d6356d Merge branch 'MDL-85274-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-06-11 13:30:08 +07:00
David Woloszyn e564114c63 MDL-85274 calendar: Duration limits added to forms 2025-06-11 14:30:00 +10:00
meirzamoodle 8bb9fe14ca MDL-85316 admin: Add environment check for AWS Aurora database 2025-06-11 10:16:21 +07:00
Philipp Imhof 9dde1fe9fe MDL-85350 questions: skip restore test for certain 3rd party plugins
The test_restore_course_with_same_stamp_questions() test assumes
that all question types using answers will also use the table
"question_answers" to store said answers. However, some 3rd party
qtypes might use custom tables and for those, the test would fail.
2025-06-06 15:56:08 +02:00
Mihail Geshoski ffb6475f6a Moodle release 5.0.1 2025-06-06 12:32:05 +08:00
Mihail Geshoski a237da2cd7 NOBUG: Add upgrade notes 2025-06-06 12:32:05 +08:00
Rajneel Totaram 33e190452b MDL-84976 tool_policy: noclean param was not set 2025-06-06 15:15:41 +12:00
yusufwib01 5517b264f3 MDL-72123 message: Hide add to contacts button if user not allowed 2025-06-06 08:28:56 +07:00
Paul Holden 71879d5688 MDL-85683 enrol: use formatted course name for notification context. 2025-06-06 00:22:07 +01:00
Szymon Karolczuk 84c4ca67f8 MDL-85573 tool_brickfield: fix uninstall code 2025-06-05 19:19:47 +02:00
Sara Arjona 5f0de664bd weekly release 5.0+ 2025-06-05 16:43:29 +02:00
Sara Arjona c32e894dc2 NOBUG: Add upgrade notes 2025-06-05 16:43:28 +02:00
Niels Gandraß 5fbde2c00c MDL-84491 core_session: Fix redis connection in CLI / scheduled task 2025-06-05 10:26:36 +02:00
Michael Hawkins a98bb76076 MDL-83762 core_files: Bind resolve IPs and ports to cURL calls 2025-06-05 12:09:36 +07:00
Michael Hawkins 6d240f17ae Merge branch 'MDL-85571-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-05 12:34:37 +08:00
Mihail Geshoski 5f265a8be5 Merge branch 'MDL-85645-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-06-05 12:31:56 +08:00
Mihail Geshoski 39fb6431d0 Merge branch 'MDL-85556_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-06-05 12:25:44 +08:00
Vincent Schneider 94d5d89e4b MDL-84518 course: improved course visibility state handling 2025-06-05 11:22:11 +07:00
Michael Hawkins 7db7444d53 Merge branch 'MDL-80380-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-05 12:19:35 +08:00
Jun Pataleta 9d8cf5fb22 Merge branch 'MDL-85450-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-06-05 12:15:48 +08:00
Huong Nguyen d0a00b74d8 MDL-80380 core_auth: Add upgrade note 2025-06-05 11:12:27 +07:00
Huong Nguyen 1db743ea9a MDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email 2025-06-05 11:12:22 +07:00
Mihail Geshoski 971f1fc25f Merge branch 'MDL-69765-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-06-05 12:10:56 +08:00
Jun Pataleta 571990b7de Merge branch 'MDL-84941-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-05 12:08:39 +08:00
Mihail Geshoski 45ed9e9127 Merge branch 'MDL-85072-500' of https://github.com/olivabigyo/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Mihail Geshoski 1fbd0fd3ee Merge branch 'MDL-83654-500-5' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Mihail Geshoski 22f52b9b4a Merge branch 'MDL-85369_500' of https://github.com/agaranin/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Martin Gauk db8f7fc95a MDL-85488 mathjax: refactor loader to enhance configuration and loading 2025-06-05 11:00:24 +07:00
Mark Johnson 7ac6e421ab MDL-85323 core: Don't cache the login page 2025-06-05 11:00:12 +07:00
meirzamoodle 07a58bdb33 MDL-85375 libraries: Escaping a query parameter on pg_insert_id() 2025-06-05 01:34:18 +00:00
Vincent Schneider dfec066e2e MDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks 2025-06-05 01:34:18 +00:00
Huong Nguyen 847a39b6d5 MDL-79993 course: Fix PHPUnit failure 2025-06-05 01:34:18 +00:00
raortegar 4a2d2b54b2 MDL-79993 course: Improve user access to recent courses service 2025-06-05 01:34:18 +00:00
Vincent Schneider 7979e44436 MDL-84497 badges: fix missing action sesskey checks. 2025-06-05 01:34:18 +00:00
andelacruz e0e626f684 MDL-85645 mod_quiz: Behat to display questionbank name of quiz question. 2025-06-05 09:28:58 +08:00
Jun Pataleta 98a80ac3ca MDL-85239 mod_quiz: Use visually-hidden instead of deprecated sr-only 2025-06-05 09:26:07 +08:00
Jun Pataleta 0f8951ce28 Merge branch 'MDL-85239-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-06-05 09:22:50 +08:00
Jun Pataleta f26f018876 Merge branch 'MDL-84804-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-05 08:12:39 +08:00
Sara Arjona 637f6dc508 Merge branch 'MDL-82069-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-06-04 15:37:00 +02:00
Paul Holden 9bed548080 MDL-84804 output: amend page title when navigating dynamic tabs.
Prepend the current tab name to the page title, to ensure we can
easily identify the current page/tab and that it is both unique
and accessible.
2025-06-04 14:07:38 +01:00
Paul Holden 410747af21 MDL-84804 javascript: new module for manipulating the page title. 2025-06-04 14:07:21 +01:00
cescobedo e20e2c044b Merge branch 'MDL-85273-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-04 12:59:13 +02:00
Jun Pataleta 03b1a727b6 Merge branch 'MDL-85041-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-04 17:48:18 +08:00
Mihail Geshoski 8f8671022b MDL-85619 mod_assign: Preserve default modal behaviour on save
Removes the preventDefault() call that previously prevented the
save/cancel modal from automatically closing when the 'Save' action
is applied for a specific bulk action on the assignment submissions
page.
2025-06-04 17:34:47 +08:00
Jun Pataleta a92df9e0ee MDL-85041 core: Make methods calling announceChanges async as well 2025-06-04 17:33:18 +08:00
meirzamoodle 25f8dd9d63 MDL-85041 core: Improve autocomplete/tag a11y for assistive tech
- Updated autocomplete behavior to announce dynamic changes
via ARIA live regions
- Fixed focus management for keyboard and screen reader navigation
- Added proper role/aria tags for interactive tag components
2025-06-04 17:33:17 +08:00
Mark Johnson 898f4bd286 MDL-85200 mod_quiz: Improve efficience of populate_question_sources
This uses the contexts from the categories of questions in the quiz to
narrow down the list of course modules we are querying to just those we
will need.
2025-06-04 08:42:01 +01:00
Mark Johnson ce08706925 MDL-85200 mod_quiz: Expand behat test to cover shared bank display
This extends the existing behat test for adding a question from a shared
bank to confirm that the source bank is displayed with the question on
the Questions page.

The bank name is already passed through format_string() before being
passed to the template, so additional encoding by the template is not
necessary, hence the template has been changed to use triple braces.
2025-06-04 08:42:00 +01:00
Huong Nguyen 72c71a1f89 MDL-85571 mod_assign: Improve PHPUnit tests 2025-06-04 12:50:33 +07:00
raortegar a52d4ed032 MDL-85571 mod_assign: Add visibility check to due digest notification 2025-06-04 12:50:33 +07:00
Jun Pataleta c947a7c303 Merge branch 'MDL-85507-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2025-06-04 11:58:12 +08:00
Huong Nguyen 41c19a5e02 Merge branch 'MDL-84732-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-06-04 10:53:19 +07:00
Mihail Geshoski 301ae93c4a Merge branch 'MDL-84432-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-04 10:47:05 +08:00
Huong Nguyen d207b50abf MDL-84432 core: Use discovery endpoint for Microsoft OAuth2 service
- Instead of creating the endpoints manually, use the OpenId
configuration endpoint to auto-configure endpoints
- Updates user field mappings so they map the new OpenId userinfo fields
2025-06-04 08:36:50 +07:00
Amaia Anabitarte c1552bc519 Merge branch 'MDL-85471-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-03 16:18:59 +02:00
cescobedo b2f4f7ab62 Merge branch 'MDL-85398-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 15:51:32 +02:00
Amaia Anabitarte 50d9f8f70e Merge branch 'MDL-85327-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 13:37:38 +02:00
cescobedo 9bc8fe3bc1 Merge branch 'MDL-85326-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 13:10:46 +02:00
Jun Pataleta a716da64af Merge branch 'MDL-85467-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-06-03 17:28:35 +08:00
Paul Holden 290104c964 MDL-85326 theme_boost: hide footer popover icon on small screens.
Fixes regression from add6f71d which forced `.btn-icon` display.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-06-03 09:18:06 +01:00
Paul Holden 5487d418b6 MDL-85644 course: bottom margin for course category listing actions. 2025-06-02 23:03:00 +01:00
Rajneel Totaram a0c88aec39 MDL-85450 block_calendar_upcoming: Fix heading level 2025-06-03 09:39:18 +12:00
Mark Johnson dfd0dc28e8 MDL-85556 backup: Only update question refs in restored course
The previous query updated all question references matching the original
question bank entry, regardless of whether they were part of the restore
or not. When we are dealing with duplicated questions, this means we
could accidentally change question references in the backed-up course as
well as the restored one.

This change filters the references to ensure they exist in a context
within the restored course, before updating them.
2025-06-02 15:53:37 +01:00
Amaia Anabitarte 30b08ee83a Merge branch 'MDL-85412-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-06-02 13:24:17 +02:00
yusufwib01 e5da273f9a MDL-85467 core: Replace orphaned label with span for accessibility
This commit replaces orphaned labels with spans for improved
accessibility. It also updates the XPATH partial named selector
for select_menu fields to target span elements.
2025-06-02 13:45:03 +07:00
hieuvu c248e82b52 MDL-85239 mod_quiz: Add caption for Attempt tables. 2025-06-02 13:38:24 +07:00
Luca Bösch 6d2b25f10f MDL-69765 qtype_essay: Create temporary draft file area only one time. 2025-05-31 12:58:52 +02:00
Jun Pataleta 8d57b56b5a MDL-83654 qtype_match: Only add the question text to the first field
In order to avoid repetition of the question text as the user navigates
to each answer field in a matching question (e.g. by tabbing).
2025-05-31 09:25:22 +08:00
Jun Pataleta edcff12191 MDL-83654 qtype_match: Add presentation role to table-related elements
The question and answer are displayed on a layout table and
does not really help with accessibility. We need to set a
presentation role for the table-related elements.
2025-05-31 09:25:22 +08:00
Jun Pataleta 1229c2b1ef MDL-83654 qtype_match: Provide better information to answer fields
* In order to provide better context for screen reader users about the
answer fields in matching questions, the question text and the
corresponding item to be matched are included to the answer fields via
the aria-describedby attribute.
2025-05-31 09:25:22 +08:00
Amaia Anabitarte 7edec4866f MDL-85412 course: adding and removing elements feedback message 2025-05-30 16:42:43 +02:00
Sara Arjona 5c22b04af4 Merge branch 'MDL-85315-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-30 12:33:05 +02:00
Luca Bösch 01866455af MDL-85315 themes: align modal closing button. 2025-05-30 11:32:01 +02:00
vlad.kidanov 15e0fa6ecb MDL-85132 mod_glossary: Add missing end div for entrybox element. 2025-05-30 10:30:33 +01:00
Jun Pataleta b3619e08e4 MDL-84832 tiny_media: Announce when alt text maxlength is reached
Co-authored-by: Meirza <meirza.arson@moodle.com>
2025-05-30 17:09:26 +08:00
Michael Hawkins 1260cb24b8 weekly release 5.0+ 2025-05-30 16:28:46 +08:00
Michael Hawkins 77e0f0a889 NOBUG: Add upgrade notes 2025-05-30 16:28:46 +08:00
Michael Hawkins 9330731d93 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-05-30 16:28:24 +08:00
Artem Garanin 8fa9939614 MDL-85369 question: fix tag collection ID in legacy‑filter upgrade.
Use the actual tag collection for the 'question' tag area instead of
the default collection.
2025-05-29 14:08:42 -04:00
Paul Holden 373bc98921 MDL-85223 reportbuilder: initialize user entity filters just once. 2025-05-29 15:32:09 +01:00
Paul Holden b27318d022 MDL-77964 availability: avoid JS console errors when closing modal. 2025-05-29 10:15:25 +01:00
Michael Hawkins 89d34beece Merge branch 'MDL-84824-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-05-29 12:27:08 +08:00
Michael Hawkins 325f273ca9 Merge branch 'MDL-83448-500' of https://github.com/stevandoMoodle/moodle into MOODLE_500_STABLE 2025-05-29 12:18:32 +08:00
Michael Hawkins c471fa4986 Merge branch 'MDL-84996-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-29 12:09:55 +08:00
Michael Hawkins b4e3dca13f Merge branch 'MDL-85513-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-29 12:04:15 +08:00
Michael Hawkins 7310e7d908 Merge branch 'MDL-85552-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-05-29 11:59:47 +08:00
Michael Hawkins e14e0428db Merge branch 'MDL-85437-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-05-29 11:52:29 +08:00
Stevani Andolo 7f756ae983 MDL-84824 core_message: Fixed popup accessibility issue 2025-05-29 11:51:25 +08:00
Huong Nguyen 0e24a0400d Merge branch 'MDL-83044-500' of https://github.com/catalyst/moodle into MOODLE_500_STABLE 2025-05-29 10:27:10 +07:00
Huong Nguyen 1ad351d4a2 Merge branch 'MDL-85177-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-29 09:53:47 +07:00
Huong Nguyen 6c045bfefc Merge branch 'MDL-85525-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-05-29 09:51:44 +07:00
Huong Nguyen 47c8a3ad7e Merge branch 'MDL-85400-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-05-29 08:59:42 +07:00
Huong Nguyen aae09ebb6b Merge branch 'MDL-85389-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-05-29 08:52:32 +07:00
AMOS bot 5feec7a0b0 Automatically generated installer lang files 2025-05-29 00:08:00 +00:00
andelacruz 28cf9407dd MDL-85525 mod_quiz: Behat test for quiz attempt page block display 2025-05-28 16:51:27 +08:00
andelacruz 06fd97cae1 MDL-85389 mod_lesson: Behat for filtering lesson reports/essays by group 2025-05-28 15:17:41 +08:00
sam marshall 82eecc9475 MDL-85400 PHPunit: Hard to test code that uses encryption
This change stops the encryption code setting created key files to
read-only during PHPunit runs, which means they will be safely
deleted when the system resets after a test.
2025-05-28 12:55:46 +08:00
meirzamoodle 499715e17e MDL-85437 AI: Move focus to the AI drawer 2025-05-28 11:31:06 +07:00
Mark Johnson 643eaa3418 MDL-85556 questions: Fix repeated_restore unit test
This unit test is meant to test restoring duplicated questions that
exist in a shared question bank. However, due to improvements in the
restore process from the introduction of mod_qbank, having the questions
in a bank that is not in the restored course means the questions don't
get restored at all, and we can't test that the process is working.

This changes the test to use a bank in the target course instead.
2025-05-27 10:46:44 +01:00
Jun Pataleta 181c55ad1c Merge branch 'MDL-84806-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-05-27 15:37:08 +08:00
Huong Nguyen cb7d72d31d Merge branch 'MDL-85169-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-27 09:16:03 +07:00
aya-saad1 a3d6763e71 MDL-42263 assign: Force language of email sent to graders
Co-authored-by: Jayce Birrell <jayce.birrell@moodle.com>
2025-05-27 10:14:38 +09:30
Alexander Van der Bellen 114ff5fa92 MDL-83044 core_block: Add return value check on form submission 2025-05-26 23:03:27 +08:00
ferran dda97bdbfc Merge branch 'MDL-84304-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2025-05-26 13:50:05 +02:00
Sara Arjona e5d7e554ab Merge branch 'MDL-85404-500' of https://github.com/ferranrecio/moodle into MOODLE_500_STABLE 2025-05-26 11:27:45 +02:00
cescobedo 35588bca41 Merge branch 'MDL-85435-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-05-26 10:01:08 +02:00
David Mudrák e4247c79a6 MDL-85507 lang: Use fixed strings in tests, too 2025-05-25 08:54:02 +02:00
Helen Foster 00b809dbc5 MDL-85507 lang: Import fixed English strings (en_fix) 2025-05-25 08:53:09 +02:00
sam marshall d21fcdee19 MDL-84732 Accessibility: Focus issue after closing nested modal 2025-05-23 15:47:12 +01:00
Luca Bösch a8b08ea6fc MDL-85177 quiz: style the question version pulldown nicely. 2025-05-23 06:43:18 +02:00
Huong Nguyen a52fbcced6 weekly release 5.0+ 2025-05-23 11:03:46 +07:00
Huong Nguyen c957b909aa Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-05-23 11:03:39 +07:00
David Woloszyn 86990aaab5 MDL-84806 tiny_aiplacement: Remove unused div and css 2025-05-23 12:36:46 +10:00
David Woloszyn 3cebd0e59a MDL-84806 tiny_aiplacement: Announce action results for accessibility
The generatetext.js and associated templates have been adjusted to
match more closely with the generate image files. The generate image
way of displaying content was better suited to aria.
2025-05-23 12:36:46 +10:00
yusufwib01 077fbd22cf MDL-85552 core: Make group selector label use normal font weight 2025-05-22 16:28:56 +07:00
Stevani Andolo 56a250792c MDL-83448 core_hub: Fixed registration check 2025-05-22 13:44:57 +08:00
Huong Nguyen ace36dc3df Merge branch 'MDL-84899-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2025-05-22 11:00:21 +07:00
Huong Nguyen e8b3c7174a Merge branch 'MDL-84793-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-05-22 10:48:19 +07:00
Huong Nguyen 1edb106e9b Merge branch 'MDL-84918-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-05-22 10:34:23 +07:00
David Woloszyn abae164f41 MDL-84918 core: Add zend.exception_ignore_args environment check 2025-05-22 10:09:44 +07:00
Huong Nguyen c7912e21ba MDL-84918 core: Add initial environment requirements for Moodle 5.1 2025-05-22 10:08:46 +07:00
Huong Nguyen 7df8f6e430 Merge branch 'MDL-74900-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2025-05-22 09:37:14 +07:00
Huong Nguyen 475ef128ae Merge branch 'MDL-85193-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-05-22 09:23:14 +07:00
Amaia Anabitarte 586ae425e6 MDL-85435 course: Render HTML in activity overview name mustache 2025-05-21 17:37:11 +02:00
Katalin Lukacs Toth b5a7a463c0 MDL-84978 mod_forum: Fix latest/earliest post id lookup in a discussion
This properly fixes the problems that commit 0f5a96f in MDL-80848 tried
to address.
2025-05-21 11:03:24 +02:00
Katalin Lukacs Toth 8f6e56173e MDL-85072 qtype_ordering: Fix XML export
Option fields should not be left empty.
2025-05-21 10:52:45 +02:00
Huong Nguyen a23635adc0 Merge branch 'MDL-84274-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-05-21 13:35:45 +07:00
raortegar bfdcf4b490 MDL-74900 core_course: Exception in module deletion if missing instance 2025-05-21 08:27:23 +02:00
Huong Nguyen 2e7c195aee Merge branch 'MDL-85311-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-05-21 10:23:04 +07:00
Huong Nguyen d7f7653a8e Merge branch 'MDL-84296-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-05-21 10:00:08 +07:00
Huong Nguyen 00652388c5 Merge branch 'MDL-85374-500' of https://github.com/andrewnicols/moodle into MOODLE_500_STABLE 2025-05-21 09:55:54 +07:00
AMOS bot 3c83131e34 Automatically generated installer lang files 2025-05-21 00:07:57 +00:00
Paul Holden ae1a251b3f MDL-82109 notes: include link to add site note if user has capability. 2025-05-20 13:18:30 +01:00
Andrew Nicols dff4bc87f5 MDL-85374 report_competency: Create custom step for setting autocomplete
The autocompletes used in the competency report have been bastardised to
redirect on selection. Unfortunately this also applies when when making
null-op changes like deleting the initial "Please select a value"
option.

The autocomplete code removes all current options before creating an
option, and because of this redirect the browser is redirecting before
the new value can be entered, but we retain a reference to the field as
`$this->field`, which is now stale.
2025-05-20 12:42:11 +08:00
Amaia Anabitarte 4a1395205f Merge branch 'MDL-85397-500' of https://github.com/tasiobg/moodle into MOODLE_500_STABLE 2025-05-19 12:43:35 +02:00
Amaia Anabitarte e534517f7f Merge branch 'MDL-85264-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-19 12:38:25 +02:00
Laurent David f17a871f1d MDL-84304 core_courseformat: Remove COMPLETION_COMPLETE_FAIL test
* Because we removed this status in mod_scorm, we cannot test it
anymore against any module as no module has custom_rules that leads
to COMPLETION_COMPLETE_FAIL
2025-05-19 11:56:40 +02:00
Laurent David ef5c806a70 MDL-84304 mod_scorm: Remove completion failed from behat test
* Now that we removed the COMPLETION_COMPLETE_FAIL status for scorm
behat tests needs to be updated
2025-05-19 11:56:40 +02:00
Magnus Samuelsson 4de4029044 MDL-84304 mod_scorm: Remove the COMPLETION_COMPLETE_FAIL status 2025-05-19 11:56:40 +02:00
Stevani Andolo db1932d9d7 MDL-85159 editory_tiny: Fix language list and track srclang a11y issue 2025-05-19 16:51:40 +08:00
Amaia Anabitarte 2a2e18461f MDL-82069 core_completion: Improve errors for multiple grading items 2025-05-19 09:32:59 +02:00
Jun Pataleta 44d1a98e70 MDL-85471 theme_boost: Dismiss tooltips on escape 2025-05-16 14:23:37 +08:00
Mihail Geshoski 328810e933 weekly release 5.0+ 2025-05-16 12:58:25 +08:00
Mihail Geshoski b6b043b147 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-05-16 12:57:31 +08:00
Muhammad Arnaldo 70f0b13a28 MDL-83487 mod_forum: retain upcoming posts in user digests 2025-05-16 11:54:17 +07:00
Paul Holden 1babb4f4c2 MDL-85513 output: centre chevron icons within collapsible section. 2025-05-15 23:20:09 +01:00
toanlamt 002d1171bd MDL-85050 Javascript: core/dropzone Fix link & box click event conflict 2025-05-15 15:04:54 +07:00
sam marshall b5bb67d1f1 MDL-84793 Behat: Allow CLI scripts to run on Behat instance 2025-05-15 08:50:30 +01:00
Stevani Andolo 89358f92fb MDL-84296 core_hub: Added detailed AI usage data to registration page 2025-05-15 16:52:26 +10:00
Huong Nguyen 17f6225bc4 Merge branch 'MDL-83350-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-05-15 12:02:14 +07:00
Huong Nguyen 77d63230a1 Merge branch 'MDL-84073-500' of https://github.com/sh-csg/moodle into MOODLE_500_STABLE 2025-05-15 11:57:21 +07:00
Huong Nguyen 43b4e56f8b Merge branch 'MDL-83943-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-05-15 11:45:27 +07:00
Huong Nguyen 40add60152 Merge branch 'MDL-85279-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-05-15 11:42:23 +07:00
Huong Nguyen 64e07e7afb Merge branch 'MDL-84009-500' of https://github.com/raortegar/moodle into MOODLE_500_STABLE 2025-05-14 21:51:53 +07:00
Huong Nguyen 1c67b54aa2 Merge branch 'MDL-84751-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-05-14 21:41:44 +07:00
Amaia Anabitarte 2099b2cafb Merge branch 'MDL-85167-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-05-14 21:41:44 +07:00
Amaia Anabitarte ef4af9dd82 Merge branch 'MDL-85205-500' of https://github.com/roland04/moodle into MOODLE_500_STABLE 2025-05-14 21:41:44 +07:00
Amaia Anabitarte 1c8d59349e Merge branch 'MDL-85360-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Sara Arjona ed999bea4b Merge branch 'MDL-85449-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Sara Arjona 1066601f0b Merge branch 'MDL-81436-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Sara Arjona b721f37d91 Merge branch 'MDL-81842-500' of https://github.com/laurentdavid/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Huong Nguyen b06bcdc209 Merge branch 'MDL-84128-500' of https://github.com/meirzamoodle/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Huong Nguyen 8e1c86a9a3 Merge branch 'MDL-85294-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Huong Nguyen b479e86c08 Merge branch 'MDL-85224_500' of https://github.com/PhilippImhof/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Huong Nguyen e927264c5a Merge branch 'MDL-85363-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Huong Nguyen 6effd2064a Merge branch 'MDL-84964-500' of https://github.com/Jayce0808/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
ferran b969f89b01 Merge branch 'MDL-85364-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
ferran 674a4c2a5f Merge branch 'mdl-84520_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Sara Arjona 549e311fee Merge branch 'MDL-85248-500' of https://github.com/albertgasset/moodle into MOODLE_500_STABLE 2025-05-14 21:41:43 +07:00
Tasio c312a9871c MDL-85397 theme: update reports to use container queries
With container queries, responsive design is no longer limited to the full browser width. For example, we can now display
the report in a compact side panel, and it will automatically adapt its styling to suit smaller spaces.
2025-05-14 15:50:03 +02:00
Tasio 9847d4484b MDL-85260 core: prevent background scrolling
After upgrading to Bootstrap 5 (Moodle v5), opening a modal no longer prevents the background content from scrolling.
This fix restores the intended behavior by mimicking Bootstrap 5's JavaScript logic that disables background scrolling
when a modal is open.
2025-05-14 15:36:00 +02:00
raortegar 0f244e11a0 MDL-84009 factor_webauthn: Add additional security keys 2025-05-14 11:18:07 +02:00
raortegar 7d794f8a3e MDL-84009 tool_mfa: Additional factor instances support 2025-05-14 11:18:07 +02:00
Paul Holden f8db554520 MDL-84996 enrol_manual: ensure externally supplied users are valid. 2025-05-14 09:55:48 +01:00
ferran 38b9eb2653 MDL-85404 format_social: allow subsections in social activities 2025-05-14 09:58:59 +02:00
andelacruz 94233d6242 MDL-85279 mod_assign: Renamed behat test to a more specific name 2025-05-14 15:11:42 +08:00
andelacruz e8580cf851 MDL-85279 mod_page: Fix behat to match the expected behaviour 2025-05-14 15:07:14 +08:00
Paul Holden bc1a8d0c5a MDL-85262 tool_task: switch next run time comparison in renderer.
If a task is "due", then next run time should be considered "ASAP".
2025-05-13 22:13:15 +01:00
Stefan Hanauska a246580a27 MDL-85432 mod_qbank: Don't support completion 2025-05-13 10:31:24 +02:00
Rajneel Totaram b407011b18 MDL-81436 theme: Fix scope of showmore button selector
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-05-13 17:33:18 +12:00
David Woloszyn 67d2b86614 MDL-84751 aiprovider_ollama: Fix settings help spacing 2025-05-13 13:52:50 +10:00
David Woloszyn 52e9b4cdbe MDL-84751 aiprovider_openai: Fix settings help spacing 2025-05-13 13:52:50 +10:00
meirzamoodle 7725baa9db MDL-83350 files: Avoid cacheing user and file repo files
Set the lifetime to zero for files referenced in
the local/internal repository (private files and file system),
because they should not be cached.

Add `no-store` to the cache-control to ensure resources are
never cached, always fetching the latest version.
2025-05-13 09:37:40 +07:00
Jun Pataleta 3f534cad09 Merge branch 'MDL-84817-500' of https://github.com/davewoloszyn/moodle into MOODLE_500_STABLE 2025-05-12 12:44:37 +08:00
Laurent David be1e8f8887 MDL-81842 formlibs: Change display in sticky footer
* Make sure that form elements that are inserted in the
sticky footer are not wrapped
2025-05-12 06:23:50 +02:00
Paul Holden edd0e76bd1 MDL-85449 block_myoverview: preserve documentation language params.
Fixes the link to Moodle docs from zero state.
2025-05-11 19:27:36 +01:00
AMOS bot f84f671994 Automatically generated installer lang files 2025-05-10 00:08:00 +00:00
Philipp Imhof 237f9bd7c0 MDL-85224 quiz: consider submitted state when filtering
In function quiz_report_grade_method_sql(), also consider the new state 'submitted' when filtering for FIRSTATTEMPT or LASTATTEMPT.
2025-05-09 17:59:33 +02:00
Mikel Martín 3f832fda4d MDL-85205 theme_boost: Fix incorrect uses of 'btn-link' class
Because btn-link relies on $link-hover-decoration variable, some incorrect
btn-link usages need to be fixed.
2025-05-09 13:57:53 +02:00
Mikel Martín fad9778f8b MDL-85205 theme_boost: Add link hover underline 2025-05-09 13:57:53 +02:00
Paul Holden 406980d1b1 MDL-85398 blocks: constrain width of block controls dropdown menu. 2025-05-09 12:52:45 +01:00
Mikel Martín 7b472fae76 MDL-85167 theme_boost: Fix tertiary navigation key listeners 2025-05-09 13:47:41 +02:00
Laurent David c6253c34bb MDL-84899 mod_forum: Fix summary report form change checker
* The forum summary report was not removing the right form
from the list of forms to check for changes.
2025-05-09 08:43:43 +02:00
Laurent David ee9cc3b397 MDL-84899 core_form: Fix unWatchForm in FormChangeChecker
* The unWatchForm as it stood was not removing the form from the list.
2025-05-09 08:43:43 +02:00
Luca Bösch bbcc5462af MDL-85363 quiz: style the question number inplace editable nicely. 2025-05-09 08:13:07 +02:00
Luca Bösch 5ab4641119 MDL-85294 qbank: Align header, buttons and switch in "Edit categories". 2025-05-09 08:13:01 +02:00
meirzamoodle efacf36423 MDL-83943 core_tag: Fix the broken user tag pagination 2025-05-09 12:49:48 +07:00
Philipp Memmel 2304462b47 MDL-85168 lib: Move courseid filter to participants_filter.js 2025-05-09 07:21:02 +02:00
meirzamoodle ffa4c0ea3f MDL-84128 core: Flip the image according to its orientation in PHP GD 2025-05-09 11:17:28 +07:00
Huong Nguyen 6999197243 weekly release 5.0+ 2025-05-09 09:50:13 +07:00
Huong Nguyen 4345819a25 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-05-09 09:50:05 +07:00
Stefan Hanauska 1540e90991 MDL-84073 blocks: Load invisible blocks 2025-05-08 14:36:54 +02:00
Daniel Ureña a1d74cde4b MDL-85407 mod_data: Fix unclosed HTML in list view 2025-05-08 11:06:22 +02:00
David Woloszyn 758a35058f MDL-84817 core_message: Fix display issues in drawer at 400% 2025-05-08 17:07:28 +10:00
Huong Nguyen 2654ce0457 Merge branch 'MDL-85341-500' of https://github.com/snake/moodle into MOODLE_500_STABLE 2025-05-08 10:52:31 +07:00
Huong Nguyen 4220abfd22 Merge branch 'MDL-85280-500' of https://github.com/abias/moodle into MOODLE_500_STABLE 2025-05-08 10:38:27 +07:00
danghieu1407 62c3325c06 MDL-84708 question: Fixing layout answer box issue causing images 2025-05-08 09:48:04 +07:00
Huong Nguyen cc63c27931 Merge branch 'MDL-84677-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-08 09:28:13 +07:00
Huong Nguyen b47fc4a266 Merge branch 'MDL-84597-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-05-08 09:05:05 +07:00
Huong Nguyen dad46b2976 Merge branch 'MDL-85220-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-05-08 08:59:02 +07:00
Huong Nguyen e14280bf94 Merge branch 'MDL-84654-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-05-08 08:44:13 +07:00
Amaia Anabitarte 685da75cd9 Merge branch 'MDL-85361-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-05-07 14:01:51 +02:00
Mikel Martín a6ce0dc708 MDL-83422 tiny_media: Fix modal footer layout 2025-05-07 13:51:26 +02:00
Jun Pataleta 0c8e1b6256 MDL-85193 course: Fix restore of backups with missing activity plugins
Show debugging instead of throwing an error when fetching an activity
icon from a missing activity plugin.
2025-05-07 18:10:25 +08:00
AMOS bot 5c89e91dad Automatically generated installer lang files 2025-05-07 00:07:53 +00:00
Angelia Dela Cruz 5b1761963c MDL-84654 mod_assign: Assignment additional files can be hidden 2025-05-06 12:41:47 +08:00
Huong Nguyen ebc9254a33 Merge branch 'MDL-85310-500' of https://github.com/andelacruz/moodle into MOODLE_500_STABLE 2025-05-06 10:31:59 +07:00
Sara Arjona f9dc580bb9 MDL-85364 block_social_activities: Move activities in mod pages too 2025-05-05 09:16:35 +02:00
Sara Arjona e1b0d8b770 MDL-85360 theme_boost: Fix active item indicator spacing
The fix in MDL-85017 covered the More menu; however, the secondary
navigation within the Single activity course format was not updated.
2025-05-05 08:38:02 +02:00
Sara Arjona 687857ea58 MDL-85361 block_social_activity: Fix inline editing text field 2025-05-04 19:37:40 +02:00
Paul Holden c3056486bf MDL-85264 javascript: reject promise when hiding saveCancel modal. 2025-05-02 17:30:09 +01:00
Paul Holden 5ee54fe953 MDL-85169 forms: focus grouped fields element based on parent data.
This fixes the previous attempt at focusing the first field within
grouped elements (aec60788) which inadvertently introduced duplicate
IDs.
2025-05-02 13:47:14 +01:00
Luca Bösch 1c0a30495c MDL-84677 backup: Filter course shortnames in copy progress viewer. 2025-05-02 08:51:34 +02:00
Huong Nguyen 69b36a36b4 weekly release 5.0+ 2025-05-02 09:16:13 +07:00
Huong Nguyen 4fb1ca66b4 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-05-02 09:16:07 +07:00
Jake Dallimore 9c31818311 MDL-85341 core: remove unnecessary sesskey from module controlmenu items
This impacts those items using basemodurl:
- edit item
- move item
neither of which need sesskey at this stage as changes aren't being made
yet.
2025-05-02 09:55:37 +08:00
Paul Holden 286e5f0a7d MDL-85273 output: fix custom menu dropdowns within "More" sub-menu.
Since move to BS5 data-* attributes in 0c586b41 trying to open custom
menu dropdowns that had been moved to the "More" sub-menu was broken.

It appears that Bootstrap now handles open/close for us automatically
(so we were effectively closing the menu immediately after Bootstrap
opened it).
2025-05-01 22:04:11 +01:00
Paul Holden aab3c0722f MDL-85327 admin: observe show/hide settings on category page.
Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2025-05-01 10:55:22 +01:00
Huong Nguyen 536391d442 Merge branch 'MDL-85178-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-05-01 11:02:47 +07:00
Huong Nguyen a6a6e54862 Merge branch 'MDL-85107-500' of https://github.com/ferranrecio/moodle into MOODLE_500_STABLE 2025-05-01 09:50:51 +07:00
Rajneel Totaram 9026613016 MDL-85311 mod_forum: Fix broken unread posts styles 2025-05-01 13:05:04 +12:00
AMOS bot 60fd449bc6 Automatically generated installer lang files 2025-05-01 00:07:59 +00:00
Angelia Dela Cruz 8982f5ee9e MDL-85310 qtype: Renamed duplicate scenario names to fix warning 2025-04-30 13:32:43 +08:00
Huong Nguyen 1b9dfd94c1 Merge branch 'MDL-85222-500' of https://github.com/tasiobg/moodle into MOODLE_500_STABLE 2025-04-30 10:05:39 +07:00
Huong Nguyen 684a9fc34b Merge branch 'MDL-85208-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-30 10:03:48 +07:00
Sara Arjona d26bcd0069 Merge branch 'MDL-84805-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-04-29 15:31:51 +02:00
Amaia Anabitarte f083271328 MDL-84805 badges: Titles must be unique 2025-04-29 11:14:31 +02:00
Rajneel Totaram e64903b7b2 MDL-85220 block_recentlyaccesseditems: Fix heading level 2025-04-29 10:11:23 +12:00
Paul Holden 6f14d54be9 MDL-84941 course: fix activity button label on end of section.
Where the button is rendered after all section content, we should
fix the ARIA label attribute to refer to the current section rather
than non-existing subsequent activity.
2025-04-28 11:22:56 +01:00
Sara Arjona 2a131a18c3 Merge branch 'MDL-84192-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-28 11:25:05 +02:00
Alexander Bias 896cff35f8 MDL-79362 auth_ldap: Close transaction when user fails to create 2025-04-28 10:55:39 +02:00
Paul Holden 2e90ab1ee8 MDL-84983 core: account for invalid locales in intl extension.
Recent PHP versions are now stricter on the `$locale` value passed
to `IntlDateFormatter` class and will throw exceptions for invalid
values (some of which may be present in our language packs).

See: https://github.com/php/php-src/issues/12912
2025-04-28 10:56:21 +07:00
Huong Nguyen 89285b7efc Merge branch 'MDL-84539-500' of https://github.com/andrewgos/moodle into MOODLE_500_STABLE 2025-04-28 08:59:27 +07:00
Paul Holden e8a93d6c63 MDL-84787 calendar: restore course-specific management page parameter. 2025-04-25 12:27:47 +01:00
Paul Holden daa6fe8af1 MDL-84597 blog: confirm blogs enabled prior to settings nav access. 2025-04-25 12:22:08 +01:00
Luca Bösch 6ad24df3d0 MDL-85178 quiz: style the question number inplace editable nicely. 2025-04-25 08:39:11 +02:00
Alexander Bias 9b7ac2d4d1 MDL-85280 communication: Adapt communication button style 2025-04-25 08:15:41 +02:00
Andrew Nicols 15ab527174 MDL-84421 tool_uploadcourse: Stop MUC caching enrol instances
We should not normally cache instances of a class. This can lead to poor
design to work around the limitations of PHP Serialization, and could
theoretically cause issues with PHP versions changing within a Moodle
version.
2025-04-25 09:10:09 +07:00
Huong Nguyen 5511a18ae5 weekly release 5.0+ 2025-04-24 22:05:39 +07:00
Huong Nguyen 9bd83512e6 NOBUG: Add upgrade notes 2025-04-24 22:05:38 +07:00
Huong Nguyen 32fa48c8c9 Merge branch 'install_500_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_500_STABLE 2025-04-24 22:05:23 +07:00
sam marshall ed19a42ddc MDL-83628 message: message_provider_uninstall slow
This function was slow because using case-insensitive LIKE on the large
user_preferences table means that Postgres does not use its index and
has to sequential-scan the table.
2025-04-24 13:05:40 +01:00
Paul Holden 34bdcdaa00 MDL-84192 course: update course information page language string.
The previous version used an incorrectly deprecated summary string.
2025-04-24 11:53:36 +01:00
Paul Holden 20fb7a4f1a MDL-84480 files: correct text formatting params when filtering files. 2025-04-24 07:31:17 +02:00
Nathan Nguyen ec4bfaf137 MDL-84233 core_user: fix unit test 2025-04-24 07:31:17 +02:00
Lars Bonczek 742b58fb04 MDL-83563 form: Fix hideIf and disabledIf dependent on multiselects 2025-04-24 07:31:17 +02:00
Huong Nguyen a440099d46 Merge branch 'MDL-84442-metadata-task-logs-MOODLE_500_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_500_STABLE 2025-04-24 07:31:17 +02:00
Huong Nguyen 13f476b154 Merge branch 'MDL-85202-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-24 07:31:16 +02:00
David Woloszyn 09b72f375e MDL-84274 tool_policy: Policy acceptance pages use secure layout 2025-04-24 12:00:03 +10:00
David Woloszyn 65a3bf07c4 MDL-84274 tool_mfa: Prevent tool_policy pages from redirecting 2025-04-24 12:00:03 +10:00
Paul Holden 03ee9f3c1d MDL-85264 output: fix form change checker when switching tabs.
During the Bootstrap 5.0 upgrade the event handling within dynamic
tabs appears to have changed such that the "click" event happens
too late for the form change checker module to determine whether
there were any "dirty" forms on the tab being switched from.

This is related to, although not specifically caused by, changes
made in 0c586b41.
2025-04-23 18:03:32 +01:00
Jayce a4f96dce4d MDL-84964 mod_glossary: min width only apply for large device 2025-04-23 10:01:53 +09:30
AMOS bot 62def094c8 Automatically generated installer lang files 2025-04-23 00:07:57 +00:00
Sara Arjona 01ae63ca47 Merge branch 'MDL-82658-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-22 16:46:29 +02:00
David Woloszyn 05f009fc14 MDL-84807 AI: Remove records on provider uninstall 2025-04-22 16:43:59 +02:00
Albert Gasset 997122cde0 MDL-85248 qtype_ddimageortext: Revert MDL-66584
This reverts commit d792c4916a.
2025-04-22 16:41:22 +02:00
Paul Holden 92a20551cf MDL-82658 mod_forum: calculate maxbytes correctly in reply handler. 2025-04-22 08:43:06 +01:00
Huong Nguyen 7582e6a677 Merge branch 'MDL-85182-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-04-22 10:09:07 +07:00
Brendan Heywood f3ab1afd05 MDL-84070 core: Fix race conditions setting user preferences 2025-04-22 08:39:17 +07:00
Benjamin Walker 9e34a5f4c0 MDL-84442 core_task: Add finalise log param to task failers 2025-04-22 09:26:56 +10:00
Andrew Gosali d4e9ca5712 MDL-84539 report_participation: use capability viewanonymousevents 2025-04-21 09:56:43 +07:00
Huong Nguyen c5d88c2426 Merge branch 'mdl-83262_500' of https://github.com/james-cnz/moodle into MOODLE_500_STABLE 2025-04-21 09:12:36 +07:00
AMOS bot 1eab163f65 Automatically generated installer lang files 2025-04-20 00:08:19 +00:00
AMOS bot edc2b3d49c Automatically generated installer lang files 2025-04-19 00:07:57 +00:00
Stefan Hanauska 3d6a0f5b73 MDL-83111 tool_recyclebin: Avoid null value 2025-04-18 07:15:56 +02:00
AMOS bot 408adbe49a Automatically generated installer lang files 2025-04-18 00:08:00 +00:00
Luca Bösch 97752da2a8 MDL-85182 block_myoverview: Fix choice active item indicator spacing 2025-04-17 17:09:09 +02:00
Sara Arjona ba42149eb1 weekly release 5.0+ 2025-04-17 14:29:57 +02:00
Sara Arjona ac88fe5b13 NOBUG: Add upgrade notes 2025-04-17 14:29:57 +02:00
Tasio 6d522be2cf MDL-85222 themes: Remove grey zebra-striping background on reports
Only removing the grey background in small sceens when
the table is displayed as an accordion

Co-authored-by: Mikel Martín Corrales <mikel@moodle.com>
2025-04-17 14:16:16 +02:00
Paul Holden 6f28ea370d MDL-84298 mod_assign: target only first label for grade popout button. 2025-04-17 10:52:39 +07:00
Huong Nguyen 4a37e4438a Merge branch 'MDL-84625-M500_close-recordset-in-core_analytics-model-add_prediction_ids' of https://github.com/ziegenberg/moodle into MOODLE_500_STABLE 2025-04-17 10:27:50 +07:00
Huong Nguyen 40b6c3233c Merge branch '83713-javascript-error-xml-grades-import-500' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_500_STABLE 2025-04-17 10:11:57 +07:00
Dagoberto Robayo 2a48472266 MDL-84232 mod_quiz: Avoid recover grades in quiz view page
- If Recover grades default is not enabled, quiz grades should not be recover.
2025-04-17 08:39:15 +07:00
James C 49eccd6af2 MDL-83262 course: Refresh all-sections toggler on section delete 2025-04-17 12:49:52 +12:00
Paul Holden 8968b682be MDL-85208 core: switch to ARIA attribute to label table headings.
Since ad14d58d visually hidden text within tables was displayed as
block elements, which introduced artificial line breaks in headings
for column names and sorting icons.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-04-16 21:25:05 +01:00
Julien Boulen 388d53c3fe MDL-83713 form: Fix javascript selector on file picker
Co-authored-by: Meirza <meirza.arson@moodle.com>
2025-04-16 16:46:38 +02:00
Paul Holden a5588f890e MDL-84820 moodlenet: correct activity modal icon size/alignment. 2025-04-16 15:24:59 +02:00
Amaia Anabitarte c06bf3b038 MDL-85170 mod_choice: Remove the unnecessary ul closing tag 2025-04-16 15:12:14 +02:00
Sara Arjona 5a3e26b0f2 Merge branch 'MDL-82132-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-16 14:55:05 +02:00
Leon Stringer 2b05496629 MDL-83195 mod_assign: Individual grade release
Fix pushing individual grades into the gradebook (as opposed to the
batch release of grades) when "Allow partial release of grades while
marking anonymously" is enabled.

This change reworks MDL-73626's fix for the same issue for releasing
multiple grades in a batch operation.
2025-04-16 09:39:37 +07:00
Paul Holden e2f4f23f34 MDL-82132 user: less restrictive returning first/lastname details.
The `viewfullnames` capability check was overeager in restricting
the inclusion of user first and lastname properties in the returned
structure. Especially given that the same data was almost always
present in the fullname property of the same structure.
2025-04-15 16:05:39 +01:00
Paul Holden 5a28a54627 MDL-82132 user: re-factor code for generating dummy user fullname. 2025-04-15 16:05:28 +01:00
Sara Arjona 1e3f359acf Merge branch 'MDL-84149-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 16:44:58 +02:00
Paul Holden 14bf5bd303 MDL-84140 course: more resilient check for activity footer component. 2025-04-15 16:31:14 +02:00
Paul Holden 803b561f80 MDL-83990 course: ensure course start/end dates set in external call. 2025-04-15 16:18:40 +02:00
Paul Holden 2bafdb41ab MDL-83537 check: confirm presence of instance action link. 2025-04-15 16:09:22 +02:00
Jun Pataleta 18a588063e Merge branch 'MDL-83979-url-always-proxy' of https://github.com/brendanheywood/moodle into MOODLE_500_STABLE 2025-04-15 20:38:56 +08:00
Sara Arjona d5c3f2325d Merge branch 'MDL-55034-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 13:36:44 +02:00
Huong Nguyen afc530a43f Merge branch 'MDL-85207-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-04-15 18:30:34 +07:00
Paul Holden 1ba74349e7 MDL-78381 course: observe default "showactivitydates" in external call. 2025-04-15 11:36:49 +02:00
Paul Holden 0d9d1ff504 MDL-80337 availability: more robust checking for plugin class presence.
Co-authored-by: Dustin Brisebois <dustin.brisebois@lambdasolutions.net>
2025-04-15 11:30:30 +02:00
Sara Arjona fae86af494 MDL-85207 glossary: Add missing step for autolink behat test 2025-04-15 10:34:37 +02:00
Paul Holden e1c750b49d MDL-84149 gradereport_grader: better support for collapse preferences.
The privacy provider is now resilient against missing courses, and also
supports retrieving preferences from multiple courses for the user.
2025-04-15 07:32:15 +01:00
Huong Nguyen 11a31a6b2c Merge branch 'MDL-85179-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Huong Nguyen 68cdd9d50c Merge branch 'MDL-85195-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona e5b9a12966 Merge branch 'MDL-62230' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 033447ee87 Merge branch 'MDL-81454-main' of https://github.com/daniil-berg/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 7195df2ca1 Merge branch 'MDL-83550-main' of https://github.com/andrewgos/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 17f0b61b1d Merge branch 'MDL-78886-main' of https://github.com/mwehr/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona bf943db69e Merge branch 'MDL-66584-master' of https://github.com/danghieu1407/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 3b62816190 Merge branch 'MDL-84833-main' of https://github.com/ferranrecio/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona c9defe656a Merge branch 'MDL-79464-main' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona cc73f24d4f Merge branch 'MDL-84937' of https://github.com/jfederico/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Wehr Mario f098bcde4f MDL-78886 assignfeedback_editpdf: Fix broken next page button in PDFView
Credits go to Cédric Gerbault cdgerbault@gmail.com for providing the fix.
2025-04-15 08:31:53 +02:00
ferran 80af23cdd3 MDL-84833 course: completion feedback messages 2025-04-15 08:31:53 +02:00
jfederico 26f7f7ef21 MDL-84937 mdl_bigbluebuttonbn: Hide Settings for RecordingsOnly 2025-04-15 08:31:52 +02:00
Paul Holden 6a462b63f1 MDL-55034 blog: update external blog deletion to not leak sesskey. 2025-04-14 17:32:29 +01:00
Paul Holden ad48d8ee81 MDL-85202 core: update list of stale files for 5.0 release. 2025-04-14 17:07:59 +01:00
ferran 377e0b4e46 MDL-85107 calendar: fix humandate year display 2025-04-14 12:46:01 +02:00
Luca Bösch 561842d7fe MDL-85195 block_myoverview: colour the button as in Bootstrap 4. 2025-04-14 11:54:00 +02:00
Luca Bösch f02a3572e2 MDL-85179 mod_data: colour the buttons upon creation as in Bootstrap 4. 2025-04-14 11:36:09 +02:00
Daniel Ziegenberg f721c97a19 MDL-84625 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-04-14 10:05:36 +02:00
Jun Pataleta 6f6b960cf8 MDL-85187 upgrade: Add the 5.0.0 separation line to all upgrade scripts 2025-04-14 09:32:14 +07:00
James C 4e6310fbe8 MDL-84520 course: CM anchor scrolls to specified CM 2025-04-14 12:19:07 +12:00
65510 changed files with 964651 additions and 4948450 deletions
-185
View File
@@ -1,185 +0,0 @@
// 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
@@ -1,324 +0,0 @@
// 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,23 +244,6 @@
'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,7 +3,3 @@
**.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/"]
custom: ["https://moodle.com/donations/", "https://fund.moodle.org"]
-118
View File
@@ -1,118 +0,0 @@
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
@@ -1,25 +0,0 @@
{
"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
@@ -1,67 +0,0 @@
<?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,8 +58,6 @@ $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
@@ -85,7 +85,7 @@ jobs:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 16
postgresql version: 14
postgresql db: test
postgresql user: test
postgresql password: test
@@ -113,7 +113,7 @@ jobs:
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Run PHPUnit test (one by one)
env:
+3 -3
View File
@@ -57,7 +57,7 @@ jobs:
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:16' || '' }}
image: ${{ matrix.db == 'pgsql' && 'postgres:14' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
@@ -70,7 +70,7 @@ jobs:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-24.04
php: 8.3
php: 8.2
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
@@ -116,7 +116,7 @@ jobs:
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
env:
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.3, 8.4]
php: [8.2, 8.4]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
+2 -2
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.3
php: 8.2
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
@@ -140,7 +140,7 @@ jobs:
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
php public/admin/tool/phpunit/cli/init.php --no-composer-self-update
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
env:
+4 -5
View File
@@ -43,9 +43,9 @@ composer.phar
/vendor/
/behat.yml
*/yui/build/*/*-coverage.js
/public/lib/yuilib/*/build/*/*-coverage.js
/lib/yuilib/*/build/*/*-coverage.js
# lib/yuilib/version/module/module-coverage.js
/public/lib/yuilib/*/*/*-coverage.js
/lib/yuilib/*/*/*-coverage.js
atlassian-ide-plugin.xml
/node_modules/
/.vscode/
@@ -53,11 +53,10 @@ moodle-plugin-ci.phar
.eslintignore
.stylelintignore
/jsdoc
/public/admin/tool/componentlibrary/docs
/public/admin/tool/componentlibrary/hugo/site/data/my-index.json
/admin/tool/componentlibrary/docs
/admin/tool/componentlibrary/hugo/site/data/my-index.json
.hugo_build.lock
phpcs.xml
jsconfig.json
UPGRADING-CURRENT.md
.phpunit.cache
tsconfig.aliases.json
+9 -32
View File
@@ -47,7 +47,7 @@ const fetchComponentData = () => {
const components = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/components.json`));
const pluginData = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/plugins.json`));
componentData.pluginTypes = components.plugintypes
componentData.pluginTypes = components.plugintypes;
const standardPlugins = Object.entries(pluginData.standard).map(
([pluginType, pluginNames]) => {
@@ -56,21 +56,18 @@ const fetchComponentData = () => {
).reduce((acc, val) => acc.concat(val), []);
// Build the list of moodle subsystems.
componentData.subsystems['public/lib'] = 'core';
componentData.pathList.push(`${process.cwd()}/public/lib`);
componentData.subsystems.lib = 'core';
componentData.pathList.push(process.cwd() + path.sep + 'lib');
for (const [component, thisPath] of Object.entries(components.subsystems)) {
if (thisPath) {
// Prefix "core_" to the front of the subsystems.
componentData.subsystems[thisPath] = `core_${component}`;
componentData.pathList.push(`${process.cwd()}/${thisPath}`);
componentData.pathList.push(process.cwd() + path.sep + thisPath);
}
}
// The list of components includes the list of subsystems.
componentData.components = Object.fromEntries(
Object.entries(componentData.subsystems)
.map(([path, name]) => ([path, name]))
);
componentData.components = {...componentData.subsystems};
const subpluginAdder = (subpluginType, subpluginTypePath) => {
glob.sync(`${subpluginTypePath}/*/version.php`).forEach(versionPath => {
@@ -107,7 +104,7 @@ const fetchComponentData = () => {
});
} else if (subpluginList.plugintypes) {
Object.entries(subpluginList.plugintypes).forEach(([subpluginType, subpluginTypePath]) => {
subpluginAdder(subpluginType, `public/${subpluginTypePath}`);
subpluginAdder(subpluginType, subpluginTypePath);
});
}
}
@@ -184,13 +181,11 @@ const getThirdPartyLibsList = relativeTo => {
const fs = require('fs');
const path = require('path');
const pathList = fetchComponentData().pathList
return fetchComponentData().pathList
.map(componentPath => path.relative(relativeTo, componentPath) + '/thirdpartylibs.xml')
.map(componentPath => componentPath.replace(/\\/g, '/'))
.filter(path => fs.existsSync(path));
pathList.push('lib/thirdpartylibs.xml');
return pathList.sort();
.filter(path => fs.existsSync(path))
.sort();
};
/**
@@ -387,23 +382,6 @@ 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.
*
@@ -451,5 +429,4 @@ module.exports = {
getThirdPartyLibsList,
getThirdPartyPaths,
getThirdPartyLibsUpgradable,
getReactTsSrcGlobList,
};
+1 -1
View File
@@ -89,7 +89,7 @@ const templates = {
module.exports = {
opts: {
destination: "./public/jsdoc/",
destination: "./jsdoc/",
template: "node_modules/docdash",
},
plugins,
+1 -1
View File
@@ -231,7 +231,7 @@ const getInitialMessageValue = (options) => {
export const getCurrentVersion = async () => {
const versionRegex = new RegExp(/^ *\$release *= *['\"](?<release>[^ \+]+\+?) *\(Build:.*/m);
try {
const versionFile = await readFile('public/version.php', 'utf8');
const versionFile = await readFile('version.php', 'utf8');
const match = versionFile.match(versionRegex);
if (match) {
return match.groups.release;
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env node
// 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/>.
import { getAllComponents } from './components.mjs';
import { getCombinedNotesByComponent } from './note.mjs';
import logger from './logger.mjs';
import { existsSync } from 'fs';
/**
* Generate links to component-specific upgrade notes for each component.
*
* @param {string|undefined} tag The git tag to link to
* @returns {Promise<void>}
*/
export default async (tag) => {
const notes = await getCombinedNotesByComponent();
if (Object.keys(notes).length === 0) {
logger.warn('No notes to generate');
return;
}
if (!tag) {
logger.error('No tag provided');
return;
}
// Generate the links for the components which have upgrade notes in this release.
let upgradeNotes = `### Component API updates\n<!--cspell: disable -->\n\n`;
const componentList = Object.fromEntries(
Object.values(getAllComponents()).map(({path, value}) => [value, path]),
);
Object.entries(notes)
.map(([component]) => ({
component,
componentPath: componentList[component],
}))
.filter(({ componentPath }) => existsSync(`./${componentPath}/UPGRADING.md`))
.forEach(({component, componentPath}) => {
upgradeNotes += `- [${component}](https://github.com/moodle/moodle/blob/${tag}/${componentPath}/UPGRADING.md)\n`;
});
console.log(upgradeNotes);
};
+2 -2
View File
@@ -30,7 +30,7 @@ module.exports = grunt => {
* @param {string} path
* @returns {string}
*/
const getCLPath = path => `public/admin/tool/componentlibrary/${path}`;
const getCLPath = path => `admin/tool/componentlibrary/${path}`;
/**
* Get a spawn handler.
@@ -97,7 +97,7 @@ module.exports = grunt => {
'--source-map',
'--embed-sources',
'--precision', 6,
'--load-path', `${process.cwd()}/public`,
'--load-path', process.cwd(),
getCLPath('hugo/scss/docs.scss'),
getCLPath('hugo/dist/css/docs.css'),
]);
-8
View File
@@ -41,14 +41,6 @@ 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,
},
},
});
+3 -3
View File
@@ -123,10 +123,10 @@ module.exports = grunt => {
const stylelintIgnores = [
'# Generated by "grunt ignorefiles"',
'**/yui/build/*',
'public/theme/boost/style/moodle.css',
'public/theme/classic/style/moodle.css',
'theme/boost/style/moodle.css',
'theme/classic/style/moodle.css',
'jsdoc/styles/*.css',
'public/admin/tool/componentlibrary/hugo/dist/css/docs.css',
'admin/tool/componentlibrary/hugo/dist/css/docs.css',
].concat(thirdPartyPaths).concat(localStylelintIgnorePaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n');
+1 -4
View File
@@ -37,9 +37,6 @@ const babelRename = function(destPath, srcPath) {
};
module.exports = grunt => {
// Load the React build tasks.
require('./react')(grunt);
// Load the Ignorefiles tasks.
require('./ignorefiles')(grunt);
@@ -60,7 +57,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', 'react']);
grunt.registerTask('js', ['amd', 'yui']);
// Register NPM tasks.
grunt.loadNpmTasks('grunt-contrib-watch');
+11 -41
View File
@@ -14,7 +14,6 @@
// 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>
@@ -35,49 +34,20 @@ 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 = async function() {
const done = this.async();
const handler = () => {
const jsconfigData = Object.assign({}, configuration);
try {
generateJsconfig(grunt);
await generateTsAliases();
done();
} catch (err) {
grunt.log.error(err.message);
done(false);
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.registerTask('jsconfig', 'Generate a jsconfig configuration compatible with the LSP', handler);
};
-111
View File
@@ -1,111 +0,0 @@
// 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 -6
View File
@@ -27,16 +27,13 @@ module.exports = grunt => {
sass: {
dist: {
files: {
"public/theme/boost/style/moodle.css": "public/theme/boost/scss/preset/default.scss",
"public/theme/classic/style/moodle.css": "public/theme/classic/scss/classicgrunt.scss"
"theme/boost/style/moodle.css": "theme/boost/scss/preset/default.scss",
"theme/classic/style/moodle.css": "theme/classic/scss/classicgrunt.scss"
}
},
options: {
implementation: require('sass'),
includePaths: [
"public/theme/boost/scss/",
"public/theme/classic/scss/",
]
includePaths: ["theme/boost/scss/", "theme/classic/scss/"]
}
},
});
-3
View File
@@ -33,9 +33,6 @@ 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));
-8
View File
@@ -20,7 +20,6 @@ import chalk from 'chalk';
import { getNoteNames } from './notes/src/noteTypes.mjs';
import createAction from './notes/src/create.mjs';
import generateAction from './notes/src/generate.mjs';
import generateReleaseNotesLinks from './notes/src/releasenotes.mjs';
import logger from './notes/src/logger.mjs';
console.log(`
@@ -75,13 +74,6 @@ program
new Argument('[version]', 'The Moodle version to create the summary notes for')
)
.action((version) => generateAction(version));
program
.command('releasenotes')
.summary('Generate a list of upgrade notes for individual components in markdown format for the release notes')
.addArgument(
new Argument('[tag]', 'The Moodle tag')
)
.action((tag) => generateReleaseNotesLinks(tag));
program
.command('release')
@@ -1,22 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-77894
notes:
core:
- message: Appending an exclamation mark to template names ignores theme overrides
type: improved
@@ -1,10 +0,0 @@
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
@@ -1,13 +0,0 @@
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
@@ -1,7 +0,0 @@
issueNumber: MDL-79574
notes:
core:
- message: >-
The `\core\persistent::get_records(...)` class method now returns
instances keyed by record ID
type: changed
@@ -1,13 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,12 +0,0 @@
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
@@ -1,13 +0,0 @@
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
@@ -1,7 +0,0 @@
issueNumber: MDL-82284
notes:
core:
- message: >-
Legacy constructors have been removed. These relate to PHP 4 and
earlier.
type: removed
@@ -1,15 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,30 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-85621
notes:
core_badges:
- message: The create_issued_badge generator now returns the issued badge object.
type: changed
@@ -1,11 +0,0 @@
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
@@ -1,17 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,26 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,19 +0,0 @@
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
@@ -1,12 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,17 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-86832
notes:
core_block:
- message: Removed block_activity_modules from Moodle 5.2.
type: removed
@@ -1,8 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,11 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-86856
notes:
core_courseformat:
- message: Add delete method to the core_courseformat\cmactions
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86857
notes:
core_courseformat:
- message: >-
Add set_groupmode method to the core_courseformat\cmactions (course
format actions)
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86857
notes:
core_course:
- message: >-
Deprecates set_coursemodule_groupmode in favor of
core_courseformat\cmactions::set_groupmode
type: deprecated
@@ -1,7 +0,0 @@
issueNumber: MDL-86858
notes:
core_courseformat:
- message: >-
Create a new core_courseformat\cmactions::duplicate aiming to replace
the course/lib.php version
type: improved
@@ -1,7 +0,0 @@
issueNumber: MDL-86858
notes:
core_course:
- message: >-
The duplicate_module has been deprecated in favor of
core_courseformat\cmactions::duplicate
type: deprecated
@@ -1,7 +0,0 @@
issueNumber: MDL-86860
notes:
core_courseformat:
- message: >-
Added `set_marker` and `remove_all_markers` methods to the
`core_courseformat\sectionactions` class.
type: improved
@@ -1,9 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,6 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Deprecates the move_section_to logic
type: deprecated
@@ -1,5 +0,0 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Deprecates and remove all usages of reorder_sections that is used only internally.
type: deprecated
@@ -1,5 +0,0 @@
issueNumber: MDL-86862
notes:
core_courseformat:
- message: Add sectionactions::move_at to move a section at a given position.
type: improved
@@ -1,5 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,10 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,10 +0,0 @@
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
@@ -1,9 +0,0 @@
issueNumber: MDL-87000
notes:
core_reportbuilder:
- message: |
The following enrolment entity formatter methods have been deprecated:
* `enrolment_status()`
* `enrolment_values()`
type: deprecated
@@ -1,7 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,5 +0,0 @@
issueNumber: MDL-87066
notes:
core:
- message: Added clean_string() that prevents double escaping in Mustache templates
type: improved
@@ -1,5 +0,0 @@
issueNumber: MDL-87072
notes:
core:
- message: Removed $CFG->wwwrootendsinpublic flag to force users to configure their server accordingly.
type: removed
@@ -1,5 +0,0 @@
issueNumber: MDL-87079
notes:
core:
- message: When responding to pcntl signals, call existing signal handlers.
type: fixed
@@ -1,5 +0,0 @@
issueNumber: MDL-87107
notes:
core:
- message: The Hook Manager now uses localcache instead of caching via MUC.
type: changed
@@ -1,16 +0,0 @@
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
@@ -1,8 +0,0 @@
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
@@ -1,7 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,9 +0,0 @@
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
@@ -1,8 +0,0 @@
issueNumber: MDL-87263
notes:
core_reportbuilder:
- message: >-
The order in which `$entitynames` are passed to the datasource
`add_all_from_entities()` method is now observed, taking precedence over
the order in which they were already added to the report
type: changed
@@ -1,27 +0,0 @@
issueNumber: MDL-87264
notes:
mod_quiz:
- message: >
The `mod_quiz_output_fragment_switch_question_bank()` Fragment API
callback is deprecated in favour of
`core_question\route\api\bank::banks()`, available via the route
`/api/rest/v2/core/question/banks?courseid=X`.
type: deprecated
- message: >
The "gobacktoquiz" and "selectquestionbank" lang strings have been deprecated.
These are only used by the question bank switching UI, so have been replaced
with the "switchergoback" and "switcherselectbank" strings in the core_question
component.
type: deprecated
core_question:
- message: >
The `\core_question\output\switch_question_bank` renderable is now deprecated,
as rendering of the switch_question_bank template is now all handled client-side
by the `core_question/bank_switcher` Javascript module.
type: deprecated
- message: >
The UI for switching question banks is now encapsulated in the
`core_question/bank_switcher` Javascript module. This takes an existing modal
and replaces the content with the switcher. It will then emit a custom
`bankSwitched` event on the modal's DOM element when a new bank is selected.
type: changed
@@ -1,11 +0,0 @@
issueNumber: MDL-87264
notes:
qbank_managecategories:
- message: >-
Support for displaying multiple contexts has been removed from the
question category management UI. As such, the `editlists` property,
`contexts`, `courseid` and `thiscontext` constructor parameters in
`qbank_managecategories\question_categories` are deprecated. The
constructor now just uses `cmid` to determine the current context
parent course.
type: deprecated

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