Compare commits

...

4063 Commits

Author SHA1 Message Date
Huong Nguyen b2c2f2a0c5 Moodle release 4.5.10 2026-02-11 08:44:13 +07:00
Huong Nguyen 7a7f029149 weekly release 4.5.9+ 2026-02-10 08:42:00 +07:00
Shamim Rezaie 6cfefde94b Merge branch 'MDL-87892-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2026-02-09 21:07:28 +11:00
Huong Nguyen be8d3d004f MDL-87892 admin: Fix MoodleNet check 2026-02-09 16:34:16 +07:00
Shamim Rezaie d42c5d9311 Merge branch 'MDL-87892-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2026-02-09 19:36:47 +11:00
Huong Nguyen 1c0e0f55bf 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:49 +07:00
Huong Nguyen 6b4d33a98f Moodle release 4.5.9 2026-02-06 09:16:09 +07:00
Huong Nguyen 506a4a33d4 NOBUG: Add upgrade notes 2026-02-06 09:16:09 +07:00
Mihail Geshoski afe3c2b88f weekly release 4.5.8+ 2026-02-05 20:24:01 +08:00
Mihail Geshoski 1a8415f1f1 NOBUG: Add upgrade notes 2026-02-05 20:24:01 +08:00
Mihail Geshoski caab968624 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2026-02-05 20:23:47 +08:00
Paul Holden f3748c1006 MDL-87870 admin: tighten up validation of colour picker values. 2026-02-05 17:27:27 +07:00
Paul Holden 72f49e4c76 MDL-87870 filter_tex: escape background argument content. 2026-02-05 17:27:27 +07:00
Huong Nguyen 4e8e5ca6ca Merge branch 'MDL-87352-405' of https://github.com/andimendunia/moodle into MOODLE_405_STABLE 2026-02-05 17:27:27 +07:00
yusufwib01 3cf9457a36 MDL-87594 composer: Upgrade symfony/process to v6.4.33 2026-02-05 17:27:27 +07:00
Mihail Geshoski 31d96fb54f Merge branch 'MDL-87258-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2026-02-05 17:27:27 +07:00
Jun Pataleta 43874f1138 Merge branch 'MDL-87757-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2026-02-05 17:27:27 +07:00
Andi Permana e5269918b5 MDL-87352 admin: Add MoodleNet removal warnings 2026-02-04 11:30:54 +07:00
yusufwib01 857c90735e MDL-86785 tiny_equation: Add timeout handling for mimetex execution 2026-02-04 10:22:22 +07:00
Muhammad Arnaldo 1d95966c57 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:12:52 +07:00
Muhammad Arnaldo f9a2bb1125 MDL-87757 block_myoverview: fix the heading-order 2026-02-04 10:11:51 +07:00
Mihail Geshoski cba59e58ec Merge branch 'MDL-86437-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2026-02-04 10:38:41 +08:00
Huong Nguyen 6d92262ecb 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-04 10:33:56 +08:00
Paul Holden f3227bee2e MDL-87612 repository: safer unserializing of file source data. 2026-02-04 09:24:47 +07:00
Mihail Geshoski b1ba8e672e Merge branch 'MDL-87789-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2026-02-04 10:19:17 +08:00
AMOS bot 1ecd11e72e Automatically generated installer lang files 2026-02-04 00:07:34 +00:00
Jake Dallimore 3e2dbf557b Merge branch 'MDL-85535-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2026-02-03 16:59:56 +08:00
Jun Pataleta 50c2251ef2 Merge branch 'MDL-77162-filepicker-a11y-tab-order-repository-keyboard-selection-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE 2026-02-03 16:44:00 +08:00
Jake Dallimore 4dce7cdcd0 Merge branch 'MDL-87638-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2026-02-03 16:18:29 +08:00
Rajneel Totaram 1241a17d4b 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 19:37:09 +12:00
Jun Pataleta d3ec08f146 Merge branch 'MDL-87694-course-participant-profile-missing-heading-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE 2026-02-03 15:18:03 +08:00
Huong Nguyen c2bd37c0ec Merge branch 'MDL-86905-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2026-02-03 10:27:16 +07:00
Huong Nguyen 417c399bf6 Merge branch 'MDL-87675-405' of https://github.com/nvhai248/moodle into MOODLE_405_STABLE 2026-02-03 10:23:52 +07:00
AMOS bot ffb5bfee38 Automatically generated installer lang files 2026-02-03 00:07:48 +00:00
Stefan Topfstedt 6f84540075 MDL-87694 core: prevent empty heading in context header. 2026-02-02 11:34:20 -08:00
Stefan Topfstedt c6d921e53a MDL-87694 profile: set page title to "Login required".
This realigns the page title with user/view.php.
2026-02-02 11:05:28 -08:00
Stefan Topfstedt 890849b3e1 MDL-87694 profile: set top level heading when accessed as guest user. 2026-02-02 10:15:08 -08:00
Jun Pataleta f3b0bb1896 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:24:53 -08:00
Jun Pataleta a528f9ca2e MDL-86905 core: Use proper link markup for email links 2026-02-02 18:06:21 +08:00
AMOS bot 1768ae93e8 Automatically generated installer lang files 2026-01-31 00:07:36 +00:00
Huong Nguyen aa24806a89 weekly release 4.5.8+ 2026-01-30 15:39:52 +07:00
Huong Nguyen 156d7a5845 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2026-01-30 15:39:42 +07:00
fgo 6bf10930c7 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 15:00:09 +08:00
Jake Dallimore adfde92245 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:29:59 +08:00
Huong Nguyen 641639c0a7 Merge branch 'MDL-87521_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2026-01-29 11:03:40 +07:00
Huong Nguyen f4254a24ad Merge branch 'MDL-87087-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2026-01-29 11:01:46 +07:00
Huong Nguyen cbeefb6854 Merge branch 'MDL-86994-405' of https://github.com/mioyu-ubiq/moodle into MOODLE_405_STABLE 2026-01-29 10:58:35 +07:00
Huong Nguyen 5567567e5b Merge branch 'MDL-87018-405' of https://github.com/bhect0/moodle into MOODLE_405_STABLE 2026-01-29 10:55:18 +07:00
Angelia Dela Cruz ec6551ce80 MDL-87087 tool_dataprivacy: Test data request by authorized user 2026-01-29 11:09:48 +08:00
AMOS bot 9118477079 Automatically generated installer lang files 2026-01-29 00:07:37 +00:00
Tim Hunt 53f41838e7 MDL-87521 behat: better error reporting if an adhoc task fails 2026-01-28 14:59:13 +00:00
Jun Pataleta 1b56df014c Merge branch 'MDL-86639-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2026-01-28 16:17:13 +08:00
mioyu-ubiq 2edd3e1155 MDL-86994 mod_assign: Behat to test permitted users can edit submission 2026-01-28 14:23:55 +08:00
Hai Nguyen Van a68bc9319a 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:34:01 +00:00
Huong Nguyen e4c595aac8 weekly release 4.5.8+ 2026-01-26 10:39:32 +07:00
Huong Nguyen d3eaf24089 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2026-01-26 10:39:22 +07:00
Héctor Benedicte 39012d0b09 MDL-87018 qtype_essay: Add unit tests for un_summarise_response(). 2026-01-23 19:20:42 +01:00
AMOS bot 3dcfe6520b Automatically generated installer lang files 2026-01-23 00:07:54 +00:00
Safat d4c569d95e Merge branch 'MDL-86527-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2026-01-22 15:40:16 +11:00
Huong Nguyen 35ad89a715 Merge branch 'MDL-87092-405' of https://github.com/Kredelirious/moodle into MOODLE_405_STABLE 2026-01-22 10:37:12 +07:00
Huong Nguyen f557352f22 Merge branch 'MDL-87090-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2026-01-22 10:33:01 +07:00
Muhammad Arnaldo 894f2f161e 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:19 +07:00
Muhammad Arnaldo f6c8f4a098 MDL-86527 behat: Fix random failures when toggling edit mode 2026-01-21 15:05:19 +07:00
AMOS bot 93045eb621 Automatically generated installer lang files 2026-01-21 00:08:01 +00:00
Yusuf Wibisono 5bff1a62b1 MDL-86639 groups: Wrap group names in grade report group selector 2026-01-21 03:09:49 +07:00
Kim Jared Lucas e195cb3905 MDL-87092 tool_uploaduser: suspend enrolments via CSV upload 2026-01-20 11:21:27 +08:00
AMOS bot 3c3f130d2c Automatically generated installer lang files 2026-01-20 00:08:02 +00:00
Simey Lameze 99809ba681 MDL-87090 behat: improve new test 2026-01-19 14:14:01 +08:00
mioyu-ubiq 9c9b31658d MDL-87090 mod_assign : Teacher can override assignment deadlines 2026-01-19 14:14:01 +08:00
Jake Dallimore 23ad73ee56 weekly release 4.5.8+ 2026-01-16 16:38:38 +08:00
Jake Dallimore 9ce4d3a2de Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2026-01-16 16:38:32 +08:00
Jake Dallimore b17cba4ef7 Merge branch 'MDL-87634-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2026-01-15 09:58:59 +08:00
Paul Holden f0c84172fb 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:36 +00:00
Huong Nguyen c9913935bf Merge branch 'MDL-87443-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2026-01-13 10:15:59 +07:00
AMOS bot 72fb26ef25 Automatically generated installer lang files 2026-01-13 00:07:57 +00:00
Jun Pataleta 8e40b622bd MDL-87638 feedback: Fix usage of sortable list
The sortable list module in 4.5 still depends on jQuery instead of
native events. We need to adjust the usage of sortable list for the
edit questions page of the feedback activity accordingly.
2026-01-12 17:24:44 +08:00
Jun Pataleta f009e8e887 MDL-85535 forum: Render discussion navigation at the bottom only 2026-01-12 15:04:46 +08:00
Jun Pataleta e46b6a53ed MDL-85535 forum: Label discussion navigation 2026-01-12 15:04:46 +08:00
Simey Lameze 1646ab8620 MDL-87088 behat: add missing @javascript tags to required tests 2026-01-12 13:38:03 +07:00
Huong Nguyen 4290c0db02 Merge branch 'MDL-87088-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2026-01-12 09:53:30 +07:00
Stefan Topfstedt 61dc480cfa MDL-77162 filepicker: default to selecting first repository available. 2026-01-09 08:05:18 -08:00
Angelia Dela Cruz c13c75342f MDL-87088 core_grades: Behat to view grades from user menu 2026-01-09 10:52:25 +08:00
Huong Nguyen e394149084 weekly release 4.5.8+ 2026-01-09 08:41:57 +07:00
Paul Holden b275637a13 Merge branch 'MDL-87288-405' of https://github.com/ilyatregubov/moodle into MOODLE_405_STABLE 2026-01-07 08:55:54 +00:00
Ilya Tregubov 771e06bb2f MDL-87288 output: Fix pagination in small containers. 2026-01-07 10:19:14 +02:00
Jun Pataleta e3a4f45aa7 Merge branch 'MDL-86436-navigation-accessibility-page-heading-menu-visible-on-larger-screens-even-if-empty-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE 2026-01-07 11:18:01 +08:00
Jun Pataleta 794b06cf63 Merge branch 'MDL-87416-glossary-entry-page-title-missing-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE 2026-01-07 11:13:48 +08:00
Stefan Topfstedt f833fba135 MDL-87416 glossary: set page title on glossary entry details page. 2026-01-05 11:32:57 -08:00
Huong Nguyen 8fec0dc9e6 Merge branch 'MDL-81882-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-12-29 13:51:56 +07:00
Huong Nguyen df9acfa2ec Merge branch 'MDL-87433-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-12-29 09:54:51 +07:00
yusufwib01 52ef39651d 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:33:29 +07:00
Muhammad Arnaldo c03ad2f40d 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:38:25 +07:00
Huong Nguyen 9e2daa9d6c weekly release 4.5.8+ 2025-12-19 09:05:00 +07:00
Huong Nguyen 6eb5c80e75 Merge branch 'MDL-87340-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-12-18 10:22:56 +07:00
Jun Pataleta d807b51210 Merge branch 'MDL-87428-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-12-18 10:53:50 +08:00
Huong Nguyen 6880fa0c12 Merge branch 'MDL-86420-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-12-18 09:30:09 +07:00
Huong Nguyen 31c83f8aa5 Merge branch 'MDL-87094-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-12-17 14:15:33 +07:00
Mihail Geshoski 1ef32165a0 Merge branch 'MDL-86416-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-17 12:15:40 +08:00
Jun Pataleta ede9478779 Merge branch 'MDL-87341_405' of https://github.com/TomoTsuyuki/moodle into MOODLE_405_STABLE 2025-12-15 18:48:29 +08:00
Angelia Dela Cruz c083984fd0 MDL-87094 core_course: Behat to restrict available activities/resources 2025-12-15 12:07:28 +08:00
Tomo Tsuyuki 7049a8334c MDL-87341 javascript: Fix aria label issue for navigation bar 2025-12-15 10:37:52 +11:00
Stefan Topfstedt 2025178343 MDL-86436 navigation: hide empty page heading menu.
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-12-12 18:04:44 -08:00
Stefan Topfstedt 0620c07639 MDL-87415 profile: set page title when accessed as guest user. 2025-12-12 13:44:02 -08:00
Paul Holden 39096ac3d1 MDL-87443 reportbuilder: use Toast selector in Behat scenarios. 2025-12-12 10:30:18 +00:00
Paul Holden d404adf500 MDL-87443 behat: define new Toast message named selector. 2025-12-12 10:12:57 +00:00
Muhammad Arnaldo dd9b7e8deb MDL-87428 core_course: Fix RTL keyboard navigation
Ensure consistent navigation experience across LTR and
RTL interfaces in activity chooser.
2025-12-12 11:01:54 +07:00
Shamim Rezaie b357491d00 weekly release 4.5.8+ 2025-12-12 14:06:51 +11:00
Shamim Rezaie 6139a04b64 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-12-12 14:06:41 +11:00
Muhammad Arnaldo 9ebe2f8676 MDL-86420 enrol_database: avoid duplicate key violations 2025-12-11 10:25:31 +07:00
Huong Nguyen a2aaba5f5d Merge branch 'MDL-84736-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-12-11 10:19:30 +07:00
AMOS bot 4112aa8957 Automatically generated installer lang files 2025-12-11 00:07:58 +00:00
Simey Lameze 39026940b3 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:58 +08:00
Angelia Dela Cruz 0e0bdbdd76 MDL-84736 gradingform : Behat for editing guide with graded submissions 2025-12-09 17:23:58 +08:00
Jun Pataleta 5a40f5524e Merge branch 'MDL-86807-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-12-09 16:43:04 +08:00
Jun Pataleta 806b3f2d69 Merge branch 'MDL-86805-405' of https://github.com/andimendunia/moodle into MOODLE_405_STABLE 2025-12-09 16:36:07 +08:00
Muhammad Arnaldo 3d812fe6c3 MDL-86807 core_courseformat: RTL chevron in move activity modal 2025-12-09 15:23:21 +07:00
Andi Permana 367a2a7678 MDL-86805 courseindex: Fix RTL keyboard navigation in tree 2025-12-09 15:20:23 +07:00
Stefan Topfstedt 70ba060e57 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:16:37 +08:00
Mihail Geshoski f5fc38f35a Merge branch 'MDL-82281-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-12-09 09:46:35 +08:00
Mihail Geshoski dcd55b53a7 Merge branch 'mdl-87356_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-12-09 09:18:17 +08:00
Simey Lameze a45cfb7c7b 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:19 +08:00
Luca Bösch c300545e9e MDL-82281 quiz: Amend test to circumvent modinfo cache fails. 2025-12-07 19:54:07 +01:00
Huong Nguyen 48c9857449 Moodle release 4.5.8 2025-12-07 08:05:13 +07:00
Huong Nguyen 70c14d4d22 NOBUG: Add upgrade notes 2025-12-07 08:05:13 +07:00
Huong Nguyen 66cf248632 weekly release 4.5.7+ 2025-12-05 08:09:13 +07:00
Huong Nguyen 4cff8eeaa2 NOBUG: Add upgrade notes 2025-12-05 08:09:13 +07:00
Huong Nguyen edfb86e638 MDL-81304 Performance: Add notes for CTE 2025-12-04 21:12:44 +07:00
Huong Nguyen 54d4e61c7f Merge branch 'MDL-87068-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-12-04 21:00:46 +07:00
James C 66a22969e1 MDL-87356 qtype_random: orphaned random questions should be deleted
This patch reinstates the task from MDL-63260 and MDL-66273.
2025-12-04 22:58:52 +13:00
Angelia Dela Cruz 6bc1159c89 MDL-87068 contentbank_h5p: Behat for restoring course contentbank 2025-12-04 10:34:14 +08:00
Huong Nguyen 2268d3d2f7 Merge branch 'MDL-83485-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-04 09:19:13 +07:00
Huong Nguyen 7a4926411e Merge branch 'MDL-82232-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-04 09:13:14 +07:00
Huong Nguyen 187195c9e1 MDL-72744 table: Improve PHPUnit test 2025-12-04 08:57:29 +07:00
David Woloszyn 6dead7e7cb MDL-72744 core_grades: Escape formulas when exporting spreadsheets 2025-12-04 08:57:29 +07:00
David Woloszyn 377a2c30f4 MDL-72744 dataformat: Escape formulas when exporting spreadsheets
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2025-12-04 08:57:29 +07:00
Mihail Geshoski 4fcf6aa947 Merge branch 'MDL-85534-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-04 09:46:47 +08:00
Huong Nguyen 7a8f504640 MDL-86087 core: Use correct required version 2025-12-04 08:37:02 +07:00
Mihail Geshoski 8aececb06e Merge branch 'MDL-87245-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-03 23:50:40 +08:00
Mihail Geshoski 4b36673cd5 Merge branch 'MOODLE_405_STABLE_MDL-81304' of https://github.com/mattporritt/moodle into MOODLE_405_STABLE 2025-12-03 23:39:25 +08:00
Jun Pataleta be8600ab99 MDL-87245 scorm: Indicate when the SCORM package opens in a new window 2025-12-03 23:37:32 +08:00
Mihail Geshoski 5bac9da882 Merge branch 'MDL-85858-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-12-03 23:29:14 +08:00
Jun Pataleta 5f854f895d MDL-85534 forum: Set appropriate heading levels for the discussion page 2025-12-03 17:34:00 +08:00
Huong Nguyen 7e8bef4959 Merge branch 'MDL-87091-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-12-03 16:11:37 +07:00
mioyu-ubiq 02a0f72a8d MDL-87091 behat: Test authloginviaemail setting behavior 2025-12-03 15:56:25 +08:00
Huong Nguyen e7cf3f225a MDL-87353 core: Safer unserializing of file references 2025-12-03 14:17:46 +08:00
Jun Pataleta 8a6832f499 Merge branch 'MDL-86087-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-12-03 14:09:59 +08:00
Stefan Hanauska 0d0d8eed03 MDL-86960 mod_glossary: Check user 2025-12-03 13:43:34 +08:00
Stefan Hanauska 5cc31e17d4 MDL-86960 mod_data: Check user 2025-12-03 13:43:25 +08:00
Stefan Hanauska 7d789a5a4a MDL-86960 mod_forum: Check user 2025-12-03 13:43:18 +08:00
Huong Nguyen 65605f10b0 Merge branch 'MDL-87339-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-12-03 12:15:07 +07:00
Jake Dallimore e5bc55a7e4 MDL-87286 enrol_lti: prevent suspended user account auth in legacy LTI 2025-12-03 15:50:59 +11:00
Jake Dallimore 78a1885ed9 MDL-87286 auth_lti: prevent suspended user account auth in LTI1p3 2025-12-03 15:50:59 +11:00
Matt Porritt 1d51a21af3 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:48:27 +11:00
raortegar 0df615a945 MDL-87267 aiplacement_courseassist: Improve response formatting 2025-12-03 11:17:21 +07:00
Mihail Geshoski f5a401c0a5 MDL-82808 assign: Use blindid during submission removal in blind marking 2025-12-03 09:49:38 +08:00
Rajneel Totaram f5f42602f2 MDL-82808 mod_assign: replace userid with blindid in anonymous marking 2025-12-03 09:49:37 +08:00
Jun Pataleta c80a2a4009 MDL-82232 behat: Fix breadcrumb navigation on Behat 2025-12-02 19:22:20 +08:00
Jun Pataleta cdff966713 MDL-82232 core: Change the breadcrumb lang string to Breadcrumb 2025-12-02 19:22:19 +08:00
David Woloszyn c4fa1575a2 MDL-86544 lib: Adjust checks on local URL params 2025-12-02 03:40:19 +00:00
Eric Merrill 2737ed2183 MDL-80317 auth_oauth2: Restrict login redirect to local url 2025-12-02 03:40:19 +00:00
David Woloszyn 5caa509d87 MDL-85557 atto_equation: Sanitise equation preview input 2025-12-02 03:40:19 +00:00
David Woloszyn a94f9cd373 MDL-85557 tiny_equation: Sanitise equation preview input 2025-12-02 03:40:19 +00:00
Stefan Hanauska e0a5d727dd MDL-86507 badge: Check if role is assigned 2025-12-02 03:40:19 +00:00
yusufwib01 795b2a90c5 MDL-86326 auth: Enhance validation logic in resend_confirmation_email 2025-12-02 03:40:19 +00:00
Huong Nguyen 6aeb97c555 Merge branch 'MDL-84898-prohibitjoin-45' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-12-02 10:38:30 +07:00
Huong Nguyen 22cd43751f Merge branch 'MDL-87332-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-12-02 10:14:55 +07:00
Jun Pataleta c6e762b243 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:29 +08:00
Jun Pataleta a485e9e125 MDL-85858 mod_scorm: Use semantic heading for the Preview mode 2025-11-28 21:01:29 +08:00
Jun Pataleta f237faf8fd MDL-85858 mod_scorm: Set page and iframe titles for the SCORM player 2025-11-28 21:01:28 +08:00
Huong Nguyen 97dea969f5 MDL-86087 core: Define environment requirements for Moodle 5.2 2025-11-28 09:09:53 +07:00
Paul Holden 31bbed6697 MDL-87332 message: make notification preference toggles visible.
They were inadvertently hidden in changes from a6373334 against
the 4.5 branch only (due to Bootstrap differences from 5.0 onwards).
2025-11-27 20:30:49 +00:00
Paul Holden e800f30163 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:07:59 +00:00
Mihail Geshoski f308518c76 weekly release 4.5.7+ 2025-11-27 19:40:46 +08:00
Mihail Geshoski 0ceef6ded6 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-11-27 19:40:32 +08:00
Jun Pataleta b646b9fde2 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:14 +08:00
Jun Pataleta 391b88f628 MDL-83485 core: Add accessibility Behat coverage to the preferences page 2025-11-27 11:37:13 +08:00
Jun Pataleta 7c7d31011e MDL-83485 core: Fix heading level for preferences groups 2025-11-27 11:37:13 +08:00
Jun Pataleta 1e1eb4f592 MDL-83485 core: Render preferences groups as lists 2025-11-27 11:37:13 +08:00
Andrew Nicols df3a81046d Merge branch 'MDL-86255-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-11-27 11:11:41 +08:00
Jake Dallimore ea4c9193df Merge branch 'MDL-86840-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-27 09:45:14 +08:00
Mihail Geshoski 5c8f1e4bf9 Merge branch 'MDL-87149-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-26 17:30:26 +08:00
Paul Holden 22c0f4e15f Merge branch 'MDL-87046-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-11-25 15:25:25 +00:00
Leon Stringer 0f5d368eb2 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:39:53 +00:00
Huong Nguyen c86e79b0b7 Merge branch 'MDL-87017-405-frontpage-block-any-page' of https://github.com/danowar2k/moodle into MOODLE_405_STABLE 2025-11-25 10:42:22 +07:00
Huong Nguyen 209aba758e Merge branch 'MDL-87194-405' of https://github.com/albertgasset/moodle into MOODLE_405_STABLE 2025-11-25 10:40:09 +07:00
Jun Pataleta 1edd0e6a65 Merge branch 'MDL-86547-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-11-25 11:09:41 +08:00
Muhammad Arnaldo f18f512e23 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:34:40 +07:00
Jun Pataleta 1f16a6fa95 Merge branch 'MDL-86547-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-11-24 15:55:14 +08:00
Muhammad Arnaldo a3d38b036a 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:27:08 +07:00
AMOS bot c90320d471 Automatically generated installer lang files 2025-11-23 00:08:19 +00:00
Huong Nguyen 357864383e weekly release 4.5.7+ 2025-11-21 14:33:50 +07:00
Huong Nguyen 233a9bc2ac NOBUG: Add upgrade notes 2025-11-21 14:33:50 +07:00
Huong Nguyen 011fee9440 Merge branch 'MDL-87048-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-11-21 08:13:45 +07:00
Huong Nguyen a7813201d1 Merge branch 'MDL-84735-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-11-21 08:13:45 +07:00
Andrew Nicols ab6a201b2c 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
Jun Pataleta e2f1a37ab5 MDL-87245 lang: Add a bracketed form of the opensinnewwindow lang string 2025-11-20 17:28:37 +08:00
Angelia Dela Cruz 9229bd7fac MDL-87048 tool_lp: Behat for synchronising cohort with learning plan 2025-11-20 10:28:15 +08:00
Angelia Dela Cruz 90a486a697 MDL-84735 gradingform: Behat for modifying marking guide criterion 2025-11-20 07:58:25 +08:00
Huong Nguyen da267624c5 Merge branch 'MDL-82511-cache-cron-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-11-19 11:02:13 +07:00
Julien Boulen dfc522ccbb MDL-86320 core: Fix unit test qrcode_test 2025-11-19 10:05:46 +07:00
Huong Nguyen 0fa4c468c9 Merge branch 'MDL-86907-405' of https://github.com/mioyu-ubiq/moodle into MOODLE_405_STABLE 2025-11-19 10:03:21 +07:00
Huong Nguyen 946340aa07 Merge branch 'MDL-86998-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-19 08:36:34 +07:00
mioyu-ubiq 162c0597d5 MDL-86907 mod_choice: Behat test for adding multiple choice responses 2025-11-18 15:03:40 +08:00
Simey Lameze d900d4f97b MDL-87050 behat: use src for img xpath selector 2025-11-18 10:50:36 +07:00
Huong Nguyen 66c3ff069a Merge branch 'MDL-85235-405' of https://github.com/safatshahin/moodle into MOODLE_405_STABLE 2025-11-17 16:02:06 +07:00
Huong Nguyen e44a13957c Merge branch 'MDL-87050-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-17 15:58:19 +07:00
Huong Nguyen 40b64c14be Merge branch 'MDL-85764-quiz-notification-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-11-17 14:50:53 +07:00
Jun Pataleta 9341e5c73f 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:46:19 +08:00
Jun Pataleta 2ee07eeeb5 MDL-87149 mod_feedback: Generate dependent questions
Allow the generator to create questions that depend on other questions.
2025-11-17 12:46:19 +08:00
Jun Pataleta b71683f20b MDL-87149 theme_boost: Remove the .feedback_is_dependent class
It's no longer being used. So, just remove it.
2025-11-17 10:59:30 +08:00
Jun Pataleta df9eaaff5b MDL-87149 mod_feedback: Do not use .feedback_is_dependent anymore
Making a visual distinction for dependent questions compared to other
questions does not add much value in the perspective of users. We should
just stop adding the `.feedback_is_dependent` class for dependent
questions.
2025-11-17 10:58:15 +08:00
Huong Nguyen c39ab02a05 Merge branch 'MDL-87107-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-11-17 09:09:09 +07:00
Albert Gasset 81b9c1e625 MDL-87194 tool_mobile: Fix subscription requests 2025-11-14 16:17:44 +01:00
Albert Gasset 655ca834be MDL-87194 message_airnotifier: Fix access key requests 2025-11-14 16:17:39 +01:00
Daniel Poggenpohl cd23b1d465 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:40:05 +01:00
Mihail Geshoski 7a075f6f4f weekly release 4.5.7+ 2025-11-13 18:49:22 +08:00
Angelia Dela Cruz c2e068cfc6 MDL-87050 mod_folder: Behat for preventing forced file downloads 2025-11-13 16:29:05 +08:00
Huong Nguyen 8e9c4bfdab Merge branch 'MDL-86895-405' of https://github.com/mioyu-ubiq/moodle into MOODLE_405_STABLE 2025-11-13 10:44:10 +07:00
Huong Nguyen 13222eb585 Merge branch 'MDL-79249-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-13 10:20:42 +07:00
Huong Nguyen 54b3164035 Merge branch 'MDL-87047-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-13 10:16:59 +07:00
Huong Nguyen 1a7975c762 Merge branch 'MDL-78973-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-13 08:53:00 +07:00
Mihail Geshoski 3f33e07952 Merge branch 'MDL-86963-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-12 17:16:13 +08:00
Mihail Geshoski 1999f2020b Merge branch 'MDL-85686-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-11-12 17:00:44 +08:00
Angelia Dela Cruz a838a2a97e MDL-87047 tool_lp: Behat optimisation 2025-11-12 16:38:23 +08:00
Mihail Geshoski 8cd0734f14 Merge branch 'MDL-86886-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-12 16:38:12 +08:00
Angelia Dela Cruz 46fddd22f0 MDL-87047 tool_lp: Behat to complete a learning plan and alter it 2025-11-12 16:34:57 +08:00
Jun Pataleta d28895b921 MDL-86840 forum: Add accessibility Behat coverage
* Add accessibility Behat coverage on the Advanced forum search page.
2025-11-12 11:41:27 +08:00
Jun Pataleta 3248bea893 MDL-86840 forum: Do not use layout table for the search form 2025-11-12 11:41:26 +08:00
Angelia Dela Cruz 688a742017 MDL-86963 tool_lp: Behat to perform CRUD operations on competencies 2025-11-12 10:35:32 +08:00
Safat 5dc927426b MDL-85235 tool_mobile: Implement the augmentation hooks for apps 2025-11-12 10:13:48 +11:00
Safat b56963d92d MDL-85235 tool_mobile: Add extend ios app banner hook 2025-11-12 10:13:02 +11:00
Safat 10cef5e611 MDL-85235 core: Add extend url hook 2025-11-12 10:13:02 +11:00
Safat 86bac36c84 MDL-85235 tool_mobile: Make mobile manifest cookieless and cacheable 2025-11-12 10:13:02 +11:00
Jun Pataleta bc5e19b626 MDL-86840 forum: Fix heading structure of search form 2025-11-11 21:14:33 +08:00
Jun Pataleta bc607ceb0b 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:29:54 +08:00
Jun Pataleta a637333419 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:29:54 +08:00
Angelia Dela Cruz 55417a7ef6 MDL-86886 tool_lp: Behat to move and cross-reference competencies 2025-11-11 15:57:57 +08:00
Simey Lameze 9b3855222d MDL-85686 mod_quiz: unit test coverage for questions shuffle 2025-11-11 14:20:36 +08:00
Angelia Dela Cruz 279c1925e1 MDL-78973 Behat: Behat coverage for invalid file upload in data activity 2025-11-11 13:20:40 +08:00
Huong Nguyen 981b69b0ca Merge branch 'MDL-81604-405' of https://github.com/t-schroeder/moodle into MOODLE_405_STABLE 2025-11-11 09:29:11 +07:00
Mio Yu bcf8806a82 MDL-86895 core_grades: Behat to verify listing and grading submissions 2025-11-11 09:55:58 +08:00
Shamim Rezaie 5e9e3cfd8b Merge branch 'MDL-87026-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-11-10 13:38:57 +11:00
Andrew Nicols 700724363e MDL-87107 core: Stop using MUC for hook manager caching 2025-11-07 17:19:09 +08:00
Huong Nguyen 9fd9388e2a weekly release 4.5.7+ 2025-11-07 14:49:26 +07:00
Huong Nguyen 7562615cd2 NOBUG: Add upgrade notes 2025-11-07 14:49:25 +07:00
Huong Nguyen d42486ced8 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-11-07 14:49:13 +07:00
Huong Nguyen 0113f57641 Merge branch 'MDL-86701-405-fix' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-07 08:46:59 +07:00
Jun Pataleta 826ed6ace0 MDL-86701 behat: Update Behat tests to press edit/delete buttons 2025-11-06 18:40:32 +08:00
Huong Nguyen 8a371c2bc8 MDL-69226 environment: filter extension required for 4.1 2025-11-06 18:22:12 +08:00
Mihail Geshoski 0c9ad85a06 Merge branch 'MDL-87073-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-11-06 17:08:22 +08:00
Huong Nguyen 9b6573ad64 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:18 +07:00
Huong Nguyen e1142f89ea Merge branch 'MDL-86908-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-11-06 15:42:42 +07:00
Huong Nguyen 37e24ebcaf Merge branch 'MDL-87049-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-11-06 15:40:37 +07:00
Huong Nguyen 812a0873b9 Merge branch 'MDL-87079-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-11-06 15:37:32 +07:00
Jake Dallimore 451d088cac Merge branch 'MDL-86379-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-11-06 14:30:26 +08:00
Huong Nguyen b6ef7fdfe0 Merge branch 'MDL-87019-redis-bloat-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-11-06 10:35:16 +07:00
Huong Nguyen 9288446a93 Merge branch 'MDL-86701-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-06 10:27:28 +07:00
Simey Lameze a26a02d746 MDL-87049 behat: read showcampaigncontent setting when running behat 2025-11-06 08:21:37 +08:00
Angelia Dela Cruz 4b739bdcbf MDL-87049 core: Behat to toggle campaign content banner display 2025-11-06 08:21:37 +08:00
AMOS bot b22b1dbd31 Automatically generated installer lang files 2025-11-06 00:07:54 +00:00
Angelia Dela Cruz 72dc3343bb MDL-86908 core_contentbank: Behat to set supported files of contentbank 2025-11-05 18:37:15 +08:00
Simey Lameze ccd7e02f0e MDL-86379 mod_quiz: move create_test_quiz function into generator 2025-11-05 11:52:38 +08:00
Andrew Nicols 1cd558bc1a 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
Jake Dallimore 7653430489 Merge branch 'MDL-86855-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-11-04 14:10:08 +08:00
Angelia Dela Cruz 20acf53b3d MDL-79249 core_filepicker: Cancel file and folder upload using X button 2025-11-03 10:57:28 +08:00
Jun Pataleta fa4f770b87 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 10:43:17 +08:00
Jun Pataleta 95f16b20ec MDL-86701 customfield: Return category name for template reload WS 2025-11-03 10:41:58 +08:00
Jun Pataleta 3015d5b74e MDL-86701 customfield: Improve action buttons accessibility
* Use native HTML buttons for the edit and delete buttons. This provides
default button behaviours which helps keyboard users activate the
buttons using either the Space or Enter key.
* Move the accessible label out of the pix icon and to the action button
itself.
* Style buttons to ensure that they have a minimum clickable size of
24x24 pixels to sufficiently meet WCAG 2.2 SC 2.5.8 - Target Size
(Minimum) (Level AA).
2025-11-03 10:41:54 +08:00
Huong Nguyen 8fc0b91868 Merge branch 'MDL-69226-M405_verify-that-the-filter-php-extension-is-present' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-11-03 09:02:20 +07:00
AMOS bot a313647a92 Automatically generated installer lang files 2025-11-01 00:07:54 +00:00
Benjamin Walker 59433cc60e MDL-87019 redis: Avoid storing userhashkey for non-login users 2025-10-31 16:20:33 +10:00
Mihail Geshoski d2cf28d3c8 weekly release 4.5.7+ 2025-10-30 18:11:35 +08:00
Mihail Geshoski db78394b90 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-10-30 18:11:21 +08:00
Huong Nguyen 198039e1c6 MDL-87026 core_course: optimise subsections loading
Co-authored-by: ferran <ferranrecio@gmail.com>
2025-10-29 09:45:04 +07:00
Mihail Geshoski 1e6639141f Merge branch 'MDL-86894-405' of https://github.com/Kredelirious/moodle into MOODLE_405_STABLE 2025-10-29 10:18:55 +08:00
Daniel Ziegenberg 60e6d71df8 MDL-69226 environment: filter extension required
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-10-28 19:34:28 +01:00
Kim Jared Lucas 3eac771791 MDL-86894 mod_forum: Behat to verify default forum RSS settings 2025-10-28 13:10:00 +08:00
AMOS bot 0530955961 Automatically generated installer lang files 2025-10-28 00:09:44 +00:00
Adrian Greeve d73a6d2c1a Merge branch 'MDL-85774-405-3' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-10-27 09:04:16 +08:00
Jun Pataleta c7ea0da70d MDL-86855 qbank_columnsortorder: Render disabled columns as a list
* Lists must be marked up with the proper semantics.
2025-10-24 12:03:54 +08:00
Jun Pataleta 4a7f3166a4 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:03:54 +08:00
Huong Nguyen 7b6856793f weekly release 4.5.7+ 2025-10-24 11:00:34 +07:00
Huong Nguyen 48913b2b0e NOBUG: Add upgrade notes 2025-10-24 11:00:34 +07:00
Jun Pataleta 53a9a3f108 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:37:41 +08:00
Jun Pataleta 8ed65942cb 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:37:37 +08:00
Huong Nguyen a3c6263c2e Merge branch 'MDL-86986-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-10-23 09:57:34 +07:00
Jun Pataleta a89db0244b MDL-86986 core: Add aria-label to the drag handle button 2025-10-22 20:14:46 +08:00
Amaia Anabitarte 20e1d63562 Merge branch 'MDL-85796-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-10-21 19:56:36 +02:00
Paul Holden dc8d401481 MDL-86255 behat: implement methods to assert date/time field value. 2025-10-21 11:34:52 +01:00
Huong Nguyen df4189d1fd Merge branch 'MDL-85975_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-10-21 09:31:06 +07:00
Mihail Geshoski 52b76e2fcd Merge branch 'MDL-85696-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-10-20 10:29:02 +08:00
Angelia Dela Cruz 2bf213cfb2 MDL-85696 mod_quiz: Behat to attempt password and time restricted quiz 2025-10-17 16:32:47 +08:00
Paul Holden b945d89a41 MDL-86822 mod_h5pactivity: fix block page type list method parameters.
Similar was done before in 7a77493b.
2025-10-17 08:34:54 +08:00
Andrew Nicols 0dd1c8137f weekly release 4.5.7+ 2025-10-17 06:51:11 +08:00
Andrew Nicols cfe63e8642 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-10-17 06:50:52 +08:00
Jun Pataleta f7879992dd 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:49:44 +08:00
Jarad Barker 0b7b9b453e MDL-84483 core_files: Always fire after_file_created hook 2025-10-16 09:04:28 +07:00
Paul Holden 923ce84983 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-10-15 17:13:27 +08:00
Andrew Nicols 3c5c9f37ff Merge branch 'MDL-86186-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-10-15 15:49:27 +08:00
AMOS bot 1ff7230f76 Automatically generated installer lang files 2025-10-15 00:09:30 +00:00
Jun Pataleta 9053f4c192 MDL-85820 lib: Update pear/readme_moodle.txt 2025-10-10 11:05:45 +08:00
Tim Hunt e6ff7d02d8 MDL-85820 formslib: don't add '-' to client-side valiation 2025-10-10 11:04:42 +08:00
Huong Nguyen 1c155f2fa0 weekly release 4.5.7+ 2025-10-09 22:00:32 +07:00
Huong Nguyen d89332888e Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-10-09 21:59:50 +07:00
AMOS bot 5bf35c535e Automatically generated installer lang files 2025-10-09 00:09:09 +00:00
Jun Pataleta 86799dab96 Merge branch 'MDL-86450-forum-accessibility-check-boxes-in-advanced-search-form-not-labeled-corrected-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE 2025-10-07 14:07:34 +08:00
Huong Nguyen d1321ff0d5 Moodle release 4.5.7 2025-10-04 09:03:40 +07:00
Huong Nguyen e25fbec380 NOBUG: Add upgrade notes 2025-10-04 09:03:40 +07:00
AMOS bot 8464ca1b72 Automatically generated installer lang files 2025-10-04 00:07:57 +00:00
Mark Johnson c476ebe695 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:50 +01:00
Shamim Rezaie 03429740d2 weekly release 4.5.6+ 2025-10-03 20:02:28 +10:00
Mihail Geshoski 32897778cd MDL-75087 mod_assign: Fix failing behat tests in classic 2025-10-03 14:22:34 +07:00
Mihail Geshoski 1e2dcb145f MDL-75087 mod_assign: Fix failing unit test 2025-10-02 18:09:35 +07:00
Rajneel Totaram df9109fa9e 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:02:50 +08:00
raortegar ecc53ae6a1 MDL-86253 mod_assign: Respect enrollment status in notifications 2025-10-02 08:15:28 +07:00
raortegar e37eadb84b MDL-86253 mod_quiz: Respect enrollment status in notifications 2025-10-02 08:15:28 +07:00
David Woloszyn d893d639d0 MDL-86494 router: Display error details only when debugging is on 2025-10-01 01:30:20 +00:00
yusufwib01 8d365edffe MDL-86353 mod_assign: Sync exception handling in PdfType and PdfReader 2025-10-01 01:30:20 +00:00
Paul Holden 7a5a3f261e MDL-85421 cohort: limit requests for all cohorts to system context. 2025-10-01 01:30:20 +00:00
David Woloszyn a8ecc443fe MDL-86327 auth_webservice: Stricter check on login 2025-10-01 01:30:20 +00:00
yusufwib01 0b32ae0b46 MDL-86261 calendar: Improve event form to show accessible groups 2025-10-01 01:30:20 +00:00
raortegar 519a09da8b MDL-86334 tool_mfa: Improve multi-factor authentication validation. 2025-10-01 01:30:20 +00:00
Huong Nguyen beb129d286 Merge branch 'MDL-85546-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-10-01 08:21:56 +07:00
Stefan Topfstedt 2a2d293f3f MDL-86450 Forum: adds missing IDs to advanced search form elements. 2025-09-30 11:41:51 -07:00
raortegar 1849cca694 MDL-85546 tool_mfa: Improve handling of require MFA conditions 2025-09-30 11:13:25 +02:00
Huong Nguyen 628bb639ae Merge branch 'MDL-86667-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-09-29 13:36:53 +07:00
Stevani Andolo 8e409341bd MDL-86667 registration: Unset fields after site being unregistered 2025-09-29 10:35:04 +08:00
cescobedo f856c7ba24 weekly release 4.5.6+ 2025-09-26 13:44:24 +02:00
cescobedo 7a281ba10c NOBUG: Add upgrade notes 2025-09-26 13:44:24 +02:00
cescobedo d0a9dba00d Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-09-26 13:44:11 +02:00
Sara Arjona 37d10d8350 MDL-86488 core: Fix to remove whitespaces 2025-09-26 13:20:05 +02:00
Huong Nguyen 9c3ea97d9b Merge branch 'MDL-86511-405' of https://github.com/andimendunia/moodle into MOODLE_405_STABLE 2025-09-26 11:15:54 +07:00
Andi Permana 62ae269490 MDL-86511 tiny_link: TinyMCE fails to insert a link using enter key 2025-09-26 11:13:33 +07:00
Jun Pataleta 9f97900524 Merge branch 'MDL-85684-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-26 11:30:58 +08:00
Huong Nguyen e778f6fbbd Merge branch 'mdl-84491_redis_connection_405' of https://github.com/ngandrass/moodle into MOODLE_405_STABLE 2025-09-26 10:21:01 +07:00
Mihail Geshoski ee439d8fa8 Merge branch 'MDL-85803-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-26 11:10:14 +08:00
Jun Pataleta de0150412b Merge branch 'MDL-86363-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-26 11:07:51 +08:00
Jun Pataleta d1a9ba5386 Merge branch 'MDL-86383-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-09-26 09:48:14 +08:00
Huong Nguyen d1a3d40f65 Merge branch 'MDL-85419-405' of https://github.com/sharpchi/moodle into MOODLE_405_STABLE 2025-09-26 08:47:01 +07:00
Huong Nguyen 7b0eac6677 Merge branch 'MDL-80447-405-4' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-09-26 08:25:06 +07:00
Paul Holden 1044306ce9 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:32 +01:00
Huong Nguyen 8648dc6046 MDL-80447 repository_googledocs: Add missing fields 2025-09-25 15:37:04 +02:00
Huong Nguyen f7f1a4562d MDL-80447 repository_googledocs: Switch to use core/pubsub 2025-09-25 15:37:04 +02:00
Tony Butler 30b02b20ef MDL-58001 mod_assign: Return early if no grade items are available 2025-09-25 12:04:04 +02:00
Amaia Anabitarte 94d260a4f8 MDL-58001 core_grades: New is_gradable() function in gradelib
Backported from main, introduced in MDL-85837.
2025-09-25 12:03:55 +02:00
Mihail Geshoski 63c2d91bc5 Merge branch 'MDL-86432-405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2025-09-25 14:12:08 +08:00
Benjamin Walker 4bbb5edf35 MDL-85764 mod_quiz: Improve performance of quiz notifications task 2025-09-25 14:24:47 +10:00
Benjamin Walker bcf0384d05 MDL-82511 cachestore_redis: Reduce blocking when finding keys 2025-09-25 14:23:57 +10:00
Benjamin Walker e7cf1c6130 MDL-82511 cache: Improve performance of cleanup in cache_cron_task 2025-09-25 14:23:57 +10:00
Jun Pataleta 4fdc0b6768 Merge branch 'MDL-86599_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2025-09-25 12:08:36 +08:00
Mihail Geshoski 9883338e8c Merge branch 'MDL-85675-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-09-25 11:53:45 +08:00
Mihail Geshoski 08ccef4aec Merge branch 'MDL-85166_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-09-25 10:51:42 +08:00
Mihail Geshoski cc69e589a4 Merge branch 'MDL-84085-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-25 09:57:24 +08:00
AMOS bot 29857c9cde Automatically generated installer lang files 2025-09-25 00:07:52 +00:00
Andrew Nicols 2f6ec1d60a MDL-86432 qtype_ordering: Fix broken data provider 2025-09-24 17:53:38 +01:00
Amaia Anabitarte 34ce92a046 Merge branch 'MDL-86738-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-09-24 17:29:17 +02:00
Amaia Anabitarte e96ec9501a Merge branch 'MDL-86488-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-24 17:16:54 +02:00
Sara Arjona 76997fbf33 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:17:51 +02:00
raortegar 8135ded9e3 MDL-80447 repository_googledocs: Update Google Drive OAuth2 scope tests 2025-09-24 11:42:24 +02:00
raortegar c8f0320b24 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:42:23 +02:00
raortegar ab4c436f10 MDL-80447 core_repository: Add upload button to filepicker repository 2025-09-24 11:42:05 +02:00
Mihail Geshoski 9cf08382ae Merge branch 'MDL-83462-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-24 16:16:04 +08:00
Mihail Geshoski 85d0a666a3 Merge branch 'MDL-85682-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-24 10:20:31 +08:00
David Mudrák 0ea18ecce6 MDL-86383 lang: Use the fixed strings in tests, too 2025-09-23 20:47:24 +02:00
Helen Foster 38a820017a MDL-86383 lang: Import fixed English strings (en_fix) 2025-09-23 20:46:43 +02:00
Sara Arjona 4f6526ddb1 weekly release 4.5.6+ 2025-09-23 17:21:13 +02:00
Sara Arjona bf9b563340 NOBUG: Add upgrade notes 2025-09-23 17:21:13 +02:00
Huong Nguyen 02c4d8c217 Merge branch 'MDL-84504-maintenance-log-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-09-23 18:38:17 +08:00
Huong Nguyen 321a86a858 Merge branch 'MDL-86586-405-choice-dropdown' of https://github.com/sharpchi/moodle into MOODLE_405_STABLE 2025-09-23 08:43:34 +07:00
Sara Arjona 2d2fd03b2c Merge branch 'MDL-86596-integration-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-09-22 10:13:02 +02:00
Mihail Geshoski 9ce91a9588 Merge branch 'MDL-86512-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-22 15:07:24 +08:00
Mihail Geshoski b2293b37f3 MDL-86596 tool_profiling: Revert string removal without deprecation 2025-09-22 13:09:56 +08:00
Huong Nguyen afab4c9d25 Merge branch 'MDL-84870-405' of https://github.com/andimendunia/moodle into MOODLE_405_STABLE 2025-09-22 08:28:44 +07:00
Huong Nguyen f1e8b839f8 Merge branch 'MDL-83066-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-22 08:24:26 +07:00
Brendan Heywood b7a3d429e2 MDL-84504 cli: Add config logging for cli maintenance mode 2025-09-22 10:13:52 +10:00
Brendan Heywood 10b28ebb08 MDL-84504 core: Allow setting config and logging with one call 2025-09-22 10:13:52 +10:00
Mihail Geshoski dfaa45838e Merge branch 'MDL-83080-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-21 22:47:29 +08:00
Mihail Geshoski af0713a6b7 Merge branch 'MDL-86596-405' of https://github.com/yerairogo/moodle into MOODLE_405_STABLE 2025-09-21 22:29:30 +08:00
Amaia Anabitarte 5ee8e97b61 Merge branch 'MDL-86174-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-09-19 16:11:27 +02:00
Amaia Anabitarte 91c8edfbef Merge branch 'MDL-84815-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-19 16:08:36 +02:00
Mark Sharp ebdd862f3c MDL-86586 core_form: Fixed dropdown JS error if no element found 2025-09-19 14:46:51 +01:00
Sara Arjona eb664d6d41 MDL-86174 badges: Add Canvas Credentials paid plan alert 2025-09-19 15:38:12 +02:00
Yerai Rodríguez c4f1af803c 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:54:14 +02:00
Huong Nguyen 0418c85bb4 weekly release 4.5.6+ 2025-09-19 15:33:57 +07:00
Huong Nguyen d5bad6b64d MDL-80053 core_grade: Fix illegal whitespaces 2025-09-19 15:15:55 +07:00
Huong Nguyen c922b363c4 Merge branch 'MDL-83991_405' of https://github.com/panchalrohit/moodle into MOODLE_405_STABLE 2025-09-19 08:57:11 +07:00
Mihail Geshoski 38be896581 Merge branch 'mdl-83857_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-09-19 09:52:55 +08:00
James C 6efd33e7b3 MDL-83857 course: Use set_sectionid not num 2025-09-19 11:35:15 +12:00
Paul Holden 0a87d4507b Merge branch 'MDL-85616-405_glossary_undefined_variable' of https://github.com/davidherney/moodle into MOODLE_405_STABLE 2025-09-18 19:23:23 +01:00
Jun Pataleta 907a3442e9 MDL-86488 componentlibrary: Improved documentation for the action menu 2025-09-18 17:25:22 +08:00
Jun Pataleta 5e20e1d8b8 MDL-86488 mod_subsection: Click on the menu button itself, not the icon 2025-09-18 17:25:22 +08:00
Jun Pataleta 7c6d7a9e1f MDL-86488 behat: Click on the menu button itself, not the icon 2025-09-18 17:25:21 +08:00
Jun Pataleta c131932352 MDL-86488 qbank_columnsortorder: Use action menu Behat steps 2025-09-18 17:25:21 +08:00
Jun Pataleta c7d4f457d7 MDL-86488 behat: Update xpath for action menu trigger's label 2025-09-18 17:25:21 +08:00
Jun Pataleta 4e09d70272 MDL-86488 mod_data: Fix Behat tests for checking action menu items 2025-09-18 17:25:21 +08:00
Jun Pataleta 05d0c9b002 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:21 +08:00
Jun Pataleta e309724b41 MDL-86488 course: Set action menu icon for category actions menu 2025-09-18 17:25:20 +08:00
Jun Pataleta de7c1fdbe1 MDL-86488 mod_lti: Move menu trigger label outside the pix icon 2025-09-18 17:25:20 +08:00
Jun Pataleta 8c5c5eaee4 MDL-86512 mod_assign: Make the select column header name more accessible 2025-09-18 13:55:46 +08:00
Mihail Geshoski e19a406db8 Merge branch 'MDL-80053-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-09-17 23:33:09 +08:00
Paul Holden 39d9131ad7 Merge branch 'MDL-86454-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-09-17 16:04:36 +01:00
Paul Holden d9a7733e16 Merge branch 'MDL-86541-405' of https://github.com/dfelipemonroy/moodle into MOODLE_405_STABLE 2025-09-17 11:52:57 +01:00
Amaia Anabitarte a11ccf13b6 Merge branch 'MDL-86490-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-17 11:52:22 +02:00
Jun Pataleta dc3598bcb4 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:27:00 +08:00
Jun Pataleta 095ce67f60 MDL-86490 mod_feedback: a11y improvements for delete template buttons
* Assign a button role to the action_icon.
* Increase target size by adding btn classes.
2025-09-16 22:43:05 +08:00
Jun Pataleta 81a0fbee7f MDL-86490 tool: Click on the action link itself and not on its icon 2025-09-16 22:43:05 +08:00
Jun Pataleta ce4b7b94e0 MDL-86490 output: Mark icon in action_icon as decorative 2025-09-16 22:43:04 +08:00
Jun Pataleta 5d8db4b548 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:38:18 +08:00
Jun Pataleta 4b9ad6b9fd 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:38:18 +08:00
Huong Nguyen b10dacbc75 weekly release 4.5.6+ 2025-09-16 20:58:58 +07:00
Jayce 9d9d52a404 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 13:43:06 +09:30
Jun Pataleta ee4dd60780 Merge branch 'MDL-86495-405-patch' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-09-16 10:16:29 +08:00
Mihail Geshoski a923f3724b Merge branch 'MDL-86558-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-09-16 09:55:16 +08:00
Huong Nguyen 641528e9d3 MDL-86495 core: Improve PHPUnit for IPLookup 2025-09-16 08:48:23 +07:00
Amaia Anabitarte 7d24bb77b3 Merge branch 'MDL-85541-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-15 14:57:06 +02:00
Amaia Anabitarte d5521c1871 Merge branch 'MDL-86157-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-15 14:50:46 +02:00
Paul Holden 6bbceaa405 MDL-86157 mod_glossary: correctly format entry page title. 2025-09-15 12:00:48 +01:00
Paul Holden f6c66d2be9 MDL-83080 message: handle core\url instance data as contexturl. 2025-09-15 10:40:28 +01:00
Andi Permana bb18341e72 MDL-84870 core: Update security.txt expiry 2025-09-15 14:31:04 +07:00
Huong Nguyen c93be20aa5 Merge branch 'MDL-79362-405' of https://github.com/abias/moodle into MOODLE_405_STABLE 2025-09-15 11:41:00 +07:00
Jun Pataleta 0214ea3e19 Merge branch 'MDL-86495-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-09-15 10:25:28 +08:00
Tim Hunt 3b847d4860 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:25 +01:00
Paul Holden 44dbf84bcb MDL-84085 mod_h5pactivity: account for missing ra table join alias. 2025-09-12 11:38:24 +01:00
Shamim Rezaie a3b82724be weekly release 4.5.6+ 2025-09-12 18:35:04 +10:00
Jun Pataleta 4ded9db847 Merge branch 'MDL-86294-M405_document-db-options' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-09-11 17:12:27 +08:00
Paul Holden ebeb8b6af2 Merge branch 'MDL-86330-405' of https://github.com/yerairogo/moodle into MOODLE_405_STABLE 2025-09-10 16:26:45 +01:00
Paul Holden bbda6fabe0 Merge branch 'MDL-86501-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-10 16:10:28 +01:00
Paul Holden 850b45a996 Merge branch 'MDL-86447_MOODLE_405_STABLE' of https://github.com/dcmexy/moodle into MOODLE_405_STABLE 2025-09-10 15:49:58 +01:00
Mihail Geshoski edbd895f60 Merge branch 'MDL-86479-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-10 22:17:22 +08:00
Paul Holden 01834f4bc1 Merge branch 'MDL-86489-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-10 15:04:08 +01:00
Diego Monroy c9ee1c582d MDL-86541 blocks: validate allowing block title to be '0' (zero). 2025-09-10 12:29:41 +02:00
Mihail Geshoski 00970d6e59 Merge branch 'MDL-86498-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-10 17:43:44 +08:00
Jun Pataleta 170a6056de 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:44:20 +08:00
Huong Nguyen ffc6111f4e Merge branch 'MDL-84076-MOODLE_405_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_405_STABLE 2025-09-10 09:10:16 +07:00
Huong Nguyen a8e32ae7f3 Merge branch 'MDL-85270-m45' of https://github.com/micaherne/moodle into MOODLE_405_STABLE 2025-09-10 09:08:26 +07:00
Huong Nguyen ea7b951d3c Merge branch 'MDL-85266-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-10 09:05:49 +07:00
Paul Holden c0cd20aa61 Merge branch 'MDL-86499-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-09 14:15:36 +01:00
Paul Holden a0ffa26132 Merge branch 'MDL-86501-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-09 14:01:03 +01:00
Jun Pataleta f27faa1305 MDL-86498 badges: Empty string for empty links 2025-09-09 18:16:46 +08:00
Jun Pataleta ebc1084cdc MDL-86498 badges: Add label for badge navigation url_select 2025-09-09 18:16:46 +08:00
Jun Pataleta 0357a43862 MDL-86498 badges: Accessibility coverage for badge details and overview 2025-09-09 18:16:45 +08:00
Jake Dallimore 85a77b7a6c weekly release 4.5.6+ 2025-09-09 15:06:28 +08:00
Jake Dallimore e42e6b6408 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-09-09 15:06:22 +08:00
Huong Nguyen 8e52bbe341 Merge branch 'MDL-83003-M405_INFO-command-not-compatible-with-envoy-proxy-redis' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-09-09 09:29:23 +07:00
Huong Nguyen 3204204ad9 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:59 +07:00
Rajneel Totaram cc335884de MDL-86558 mod_quiz: Fix styles for sticky columns 2025-09-09 11:32:17 +12:00
Michael Aherne 30c73fa641 MDL-85270 output: Export url_select for template. 2025-09-08 10:11:44 +01:00
Mark Sharp 44f9fb5150 MDL-85419 core_courseformat: Move event trigger to after cm cache purge 2025-09-08 10:06:23 +01:00
Huong Nguyen b9af7918c8 Merge branch 'MDL-85335-405' of https://github.com/gbarat87/moodle into MOODLE_405_STABLE 2025-09-08 08:30:32 +07:00
Mihail Geshoski b9a6b71e3c Merge branch 'MDL-86374-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-08 09:22:34 +08:00
AMOS bot 9f330b6b40 Automatically generated installer lang files 2025-09-06 00:07:55 +00:00
Huong Nguyen dcc7e81ac2 weekly release 4.5.6+ 2025-09-05 23:54:09 +07:00
Huong Nguyen 54e319351a Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-09-05 23:53:58 +07:00
Philipp Memmel bfeda89d8c MDL-84076 core_templates: Avoid manipulation of template context object 2025-09-05 09:59:10 +02:00
Yerai Rodríguez 84306938ac 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:22:09 +02:00
Huong Nguyen a46f6637cc Merge branch 'MDL-83628-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-09-05 09:22:00 +07:00
Simey Lameze e756ec3228 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:07:37 +08:00
Mihail Geshoski 1c8e7f1c7b Merge branch 'MDL-74046-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-09-04 23:45:02 +08:00
ferran e6c202c420 Merge branch 'MDL-85416_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2025-09-04 16:31:26 +02:00
ferran f666a0d059 Merge branch 'MDL-72956-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-04 16:10:41 +02:00
Huong Nguyen dfa3176e03 Merge branch 'MDL-86230-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-04 15:44:28 +07:00
Huong Nguyen 8d5cec0164 Merge branch 'MDL-72511-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-09-04 15:42:14 +07:00
ferran 7636570179 Merge branch 'MDL-85641-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-09-04 10:11:25 +02:00
Muhammad Arnaldo ae21155775 MDL-74046 tool_lp: new-tab for competency frameworks repo link 2025-09-04 14:41:54 +07:00
Rajneel Totaram b637072b76 MDL-85641 mod_feedback: Use full width for reponses page 2025-09-04 10:05:01 +12:00
Paul Holden f10d3c78e0 Merge branch 'MDL-85619-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-09-03 12:38:32 +02:00
Paul Holden aab8839ab6 Merge branch 'MDL-84982-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-09-03 12:29:55 +02:00
Paul Holden 7b6463fbba Merge branch 'MDL-86187-MOODLE_405_STABLE' of https://github.com/phmemmel/moodle into MOODLE_405_STABLE 2025-09-03 12:16:20 +02:00
Mihail Geshoski 42a7c6df26 Merge branch 'MDL-82244-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-03 12:21:01 +08:00
Mihail Geshoski a3968e0b73 Merge branch 'MDL-73671-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-03 12:15:04 +08:00
Mihail Geshoski aec7468f67 Merge branch 'MDL-83474-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-03 12:07:26 +08:00
AMOS bot ee36d500c9 Automatically generated installer lang files 2025-09-03 00:07:52 +00:00
ferran 6cf9ed0f40 Merge branch 'MDL-71786-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-09-02 17:03:50 +02:00
Tim Hunt d0be2a57ce 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 used on-screen.

This commit makes it consistent.
2025-09-02 15:34:23 +02:00
Michael Hawkins 2653626ca0 weekly release 4.5.6+ 2025-09-02 20:32:36 +08:00
Michael Hawkins ace600fe84 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-09-02 20:32:15 +08:00
Mihail Geshoski 28fe42c4ec Merge branch 'mdl-84975_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-09-02 09:43:59 +08:00
Mihail Geshoski c27fde3701 Merge branch 'MDL-86366-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-09-01 23:18:58 +08:00
Paul Holden a9cf380584 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:05 +02:00
Paul Holden 21cb028390 MDL-73671 mod_forum: shift activity due/cutoff dates during reset. 2025-09-01 16:55:14 +02:00
Mihail Geshoski d8cbfc285a Merge branch 'MDL-85018_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-09-01 22:28:08 +08:00
Mihail Geshoski bc3f269ac8 Merge branch 'MDL-73417-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-09-01 22:17:58 +08:00
Jun Pataleta 7a6e74a9fe 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:54 +08:00
AMOS bot c489b7ac0a Automatically generated installer lang files 2025-09-01 00:07:49 +00:00
Luca Bösch 69c42304f0 MDL-86366 quiz: Description shouldn't show each secure page, but title. 2025-08-31 21:27:04 +02:00
Paul Holden dea5950384 MDL-85266 tool_uploaduser: correctly key bulk users session array. 2025-08-29 15:50:14 +01:00
Paul Holden 6aec3fe946 MDL-84815 user: fix selector element search checkbox alignment.
The removal in d0d62fd0 of the `.form-inline` class caused the
mis-alignment of checkbox inputs in the "Search options" container.

Restore behaviour provided by the aforementioned class in descendent
elements by applying corresponding styles, that were lost with that
change.
2025-08-29 15:48:35 +01:00
Jun Pataleta 72fe24b91a MDL-86479 course: Add accessibility coverage for course index options 2025-08-29 21:05:22 +08:00
cescobedo a7c0d3605a weekly release 4.5.6+ 2025-08-29 15:01:14 +02:00
cescobedo d53466d1c6 NOBUG: Add upgrade notes 2025-08-29 15:01:14 +02:00
Jun Pataleta cc10e8e245 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:10 +08:00
Jun Pataleta 65bddce33c MDL-86499 core: Make table sort icons decorative 2025-08-29 12:23:59 +08:00
Huong Nguyen 4bb0555b62 Merge branch 'MDL-86343-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-29 11:04:02 +07:00
Huong Nguyen 63448b6f98 Merge branch 'MDL-85743-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-29 11:00:49 +07:00
Mihail Geshoski bc472d3ea1 Merge branch 'MDL-83256-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-29 11:31:45 +08:00
Huong Nguyen ed9673fe1f Merge branch 'MDL-86452-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-08-29 08:46:20 +07:00
Huong Nguyen 004cc09738 Merge branch 'MDL-86301-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-08-29 08:41:28 +07:00
Paul Holden a41dc037c9 MDL-82244 course: use site default course visibility in external call. 2025-08-28 17:40:09 +01:00
Amaia Anabitarte 4158ea095b Merge branch 'MDL-86280-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-08-28 11:17:27 +02:00
Jun Pataleta 337346e3d1 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:51:59 +08:00
Jun Pataleta b04e0bd518 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:42:33 +08:00
Andrew Nicols 028728b561 MDL-86452 core: Reset navigation data between tests 2025-08-28 13:13:05 +08:00
Stefan Hanauska b33729ab1d MDL-86454 badges: Hide revoke button if not available 2025-08-27 10:08:21 +02:00
Dean Chimezie f69c22ecda MDL-86447 tool_mfa: Restore setup lang string 2025-08-26 13:40:31 -04:00
cescobedo ca2c397895 weekly release 4.5.6+ 2025-08-26 15:54:09 +02:00
cescobedo 7dfc4481d4 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-08-26 15:53:56 +02:00
Mihail Geshoski dc74787166 Merge branch 'MDL-85677-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-08-26 11:57:04 +08:00
Mihail Geshoski a6146d1c58 Merge branch 'MDL-85229-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-26 11:48:45 +08:00
Huong Nguyen ca050231fb Merge branch 'MDL-86315-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-08-26 09:23:30 +07:00
Simey Lameze e4e7d72571 MDL-85677 behat: test to verify SEB download link visibility 2025-08-26 09:17:47 +08:00
Mihail Geshoski 938dbde96c Merge branch 'MDL-85676-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-08-26 00:43:21 +08:00
Andrew Nicols 15f30a7314 MDL-86301 core: Create autoloadable externallib_testcase 2025-08-25 15:14:03 +08:00
Simey Lameze 3bb18b29e0 MDL-85676 behat: validate SEB attempt message 2025-08-25 14:08:03 +08:00
Luca Bösch c69a91921e MDL-86280 mod: Do not filter help text in activity chooser.
Co-authored-by: Ferran Recio <ferran@moodle.com>
2025-08-24 22:42:25 +02:00
AMOS bot bb56dbdc74 Automatically generated installer lang files 2025-08-24 00:09:58 +00:00
Mihail Geshoski dc3c3ca98a weekly release 4.5.6+ 2025-08-22 20:40:21 +08:00
Mihail Geshoski 15bc48978d NOBUG: Add upgrade notes 2025-08-22 20:40:21 +08:00
Huong Nguyen a93254f43c MDL-73845 enrol_database: Fix MySQL issue 2025-08-22 12:58:48 +08:00
Huong Nguyen 77beaab116 Merge branch 'MDL-86231-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-08-22 08:46:55 +07:00
Jun Pataleta ce3a869c07 MDL-81455 behat: Add accessibility coverage to default start page tests 2025-08-21 17:50:44 +08:00
Jun Pataleta e76ec78b37 Merge branch 'MDL-81455-405' of https://github.com/rajutm25/moodle into MOODLE_405_STABLE 2025-08-21 17:48:08 +08:00
Jun Pataleta fe0f5baa2d Merge branch 'MDL-86202-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-08-21 15:20:51 +08:00
Rajneel Totaram caf61abd94 MDL-86202 mod_lesson: Use correct heading level 2025-08-21 18:39:33 +12:00
Mihail Geshoski 179848ea1f Merge branch 'MDL-84850-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-21 11:44:26 +08:00
Huong Nguyen b4c7d832b7 Merge branch 'MDL-80611-405' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2025-08-21 08:54:57 +07:00
Mihail Geshoski a061fd95bd Merge branch 'MDL-84739-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-20 17:22:51 +08:00
Paul Holden c9661b9a52 MDL-85684 mod_assign: format course/assignment notification content. 2025-08-20 09:14:51 +01:00
Paul Holden af96e46e56 MDL-83474 webservice: fix empty/zero $itemid handling in text format. 2025-08-20 09:08:32 +01:00
Huong Nguyen c1bdb76d18 Merge branch 'MDL-73845-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-08-20 08:41:43 +07:00
Paul Holden a97e536341 MDL-86374 report_outline: use formatted activity name in report. 2025-08-20 00:41:04 +01:00
Paul Holden 0e1de8d591 MDL-85743 user: correct debugging for missing user picture fields. 2025-08-19 17:12:40 +01:00
Paul Holden 51587e9909 MDL-84850 tag: ensure course tags enabled before adding to navigation. 2025-08-19 17:11:00 +01:00
Shamim Rezaie 43767635b7 weekly release 4.5.6+ 2025-08-20 00:45:53 +10:00
Shamim Rezaie 68776525be Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-08-20 00:45:43 +10:00
rajutm25 41728c3d87 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:39 +05:30
Paul Holden fcdcd9d7e6 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:48 +01:00
Mi Jia Looi 7e3e2077f0 MDL-73845 enrol_database: Add lock to prevent race condition 2025-08-19 15:36:19 +07:00
Jun Pataleta 2395392c99 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:26:18 +08:00
Jun Pataleta aef8d9e6f1 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:26:18 +08:00
Huong Nguyen e74c4acec4 Merge branch 'MDL-86109-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-08-19 09:53:44 +07:00
Mihail Geshoski 74c9f95c4c Merge branch 'MDL-83772-405' of https://github.com/srobotta/moodle into MOODLE_405_STABLE 2025-08-19 10:27:09 +08:00
Paul Holden 5ce61f4be4 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:06:35 +01:00
Paul Holden c9a677dc7c MDL-84739 gradingform_rubric: consistently style rubric table icons. 2025-08-18 08:57:58 +01:00
Paul Holden e9b11f36d5 MDL-83256 user: account for course context instances of teacher fields. 2025-08-18 08:57:06 +01:00
Paul Holden e6bae7d01f MDL-85229 mod_url: observe description appearance setting on display.
Correctly determine whether said description is in fact "empty".
2025-08-18 08:55:55 +01:00
Paul Holden 9359d08bd6 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:36 +01:00
Daniel Ziegenberg 7b1af357ff 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:07:52 +02:00
AMOS bot ff4c249e39 Automatically generated installer lang files 2025-08-16 00:07:53 +00:00
Philipp Memmel 106fae466d MDL-86187 core_ddl: Add reserved keywords for MySQL 8.4 2025-08-15 11:17:40 +00:00
Paul Holden 2be96308d3 MDL-85682 mod_assign: account for absence of workflow select filter. 2025-08-15 10:48:22 +01:00
David Woloszyn 2bf704c153 MDL-86315 registration: Unset emails in hub when dependant value not set 2025-08-15 12:33:15 +10:00
Huong Nguyen e07cf88f4d weekly release 4.5.6+ 2025-08-15 09:27:00 +07:00
Stevani Andolo 31ce71608d MDL-86109 tiny_media: Fix selected subtitles and captions language
Ensures the selected subtitle or caption language is correctly retained
and displayed.
2025-08-15 10:13:33 +08:00
Paul Holden 84858b01cf MDL-72956 mod_feedback: remove session access for started activities. 2025-08-14 11:27:39 +01:00
Rajneel Totaram 969b1a7f98 MDL-73417 mod_assign: Remove duplicate array key 2025-08-14 14:34:15 +12:00
AMOS bot 33035402a4 Automatically generated installer lang files 2025-08-14 00:08:00 +00:00
AMOS bot 943801d2d9 Automatically generated installer lang files 2025-08-13 00:08:01 +00:00
guillaumebarat 59aef0a010 MDL-85335 cli: Allow uninstall of sub-plugin when parent missing 2025-08-12 15:07:29 +10:00
James C 20e708cf73 MDL-84975 course: Handle tags in section and activity move dialogues 2025-08-12 13:22:29 +12:00
Mark Johnson 47fb08fc6d MDL-85166 question: Update move_question_set_references
This backports the applicable part of MDL-85210 to 4.5.

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-08-11 10:55:50 +01:00
Mark Johnson a576b9db5d 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:37:05 +01:00
Mark Johnson 9cd0fe59a3 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:37:05 +01:00
Paul Holden 66db7639e9 MDL-85541 gradereport_history: show user country value correctly. 2025-08-11 09:17:23 +01:00
Stephan Robotta 168d27f0b3 MDL-83772 mod_data: Fixed autosave bug in text areas with same name 2025-08-11 08:50:33 +02:00
Andrew Nicols cc7a7d2b2c MDL-86231 behat: Support array callable syntax in execute method 2025-08-08 11:42:30 +08:00
Mihail Geshoski fb02f4fa9f Moodle release 4.5.6 2025-08-08 10:48:30 +08:00
Mihail Geshoski 85a6851a8e NOBUG: Add upgrade notes 2025-08-08 10:48:29 +08:00
Sara Arjona 2db7c80f80 weekly release 4.5.5+ 2025-08-07 16:45:16 +02:00
Sara Arjona ec3ab5528a NOBUG: Add upgrade notes 2025-08-07 16:45:16 +02:00
Sara Arjona 256080fb2c NOBUG: Fixed file access permissions 2025-08-07 16:45:10 +02:00
Sara Arjona 8c2110c80c Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-08-07 16:45:07 +02:00
Huong Nguyen 9a45e5c064 Merge branch 'MDL-86004-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-08-07 14:10:00 +07:00
David Woloszyn db896863cb 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 17:01:14 +10:00
Huong Nguyen 5f0d1b806c Merge branch 'MDL-85718-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-08-07 12:23:54 +07:00
Huong Nguyen 789f112c86 Merge branch 'MDL-86205-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-08-07 12:15:07 +07:00
Huong Nguyen f35a5c1047 Merge branch 'MDL-85794-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-08-07 11:37:33 +07:00
Jun Pataleta 43aa89c255 MDL-86205 message: Close drawer when activating elements outside of it 2025-08-07 12:31:05 +08:00
Huong Nguyen 99dc7feb31 Merge branch 'MDL-85795-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-08-07 11:26:26 +07:00
Huong Nguyen eb0dd85d88 MDL-84217 editor_tiny: Remove incorrect map file 2025-08-07 11:13:28 +07:00
Huong Nguyen 13d7e5dc6b Merge branch 'MDL-84217-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-08-07 10:56:34 +07:00
Ilya Tregubov 1646ce747e MDL-63395 user: Fix profile visibility check.
It needs to be done in user_get_user_details as well.
2025-08-07 10:30:04 +07:00
Jun Pataleta 0082009561 Merge branch 'MDL-85674-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-08-07 10:44:07 +08:00
Jun Pataleta ec3f9ed5e4 Merge branch 'MDL-78233-405' of https://github.com/Tasiobg/moodle into MOODLE_405_STABLE 2025-08-07 10:35:06 +08:00
Jun Pataleta ca7501babb Merge branch 'MDL-85802-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-08-07 10:33:37 +08:00
Mihail Geshoski 6035d07677 Merge branch 'MDL-79540_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-08-07 10:19:19 +08:00
Huong Nguyen f71bd594d1 Merge branch 'MDL-84010-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-08-07 09:17:44 +07:00
AMOS bot 19e31c4169 Automatically generated installer lang files 2025-08-07 00:07:56 +00:00
ferran 17c8757314 Merge branch 'MDL-86176-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-08-06 16:22:00 +02:00
Sara Arjona 0427e1bf7b 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:05:55 +02:00
Jun Pataleta 8c84d14195 MDL-85795 behat: Update button text used in search steps 2025-08-06 19:58:09 +08:00
Simey Lameze e375efca79 MDL-85674 behat: replace multiple steps by a single table step 2025-08-06 18:20:54 +08:00
andelacruz d870292683 MDL-85674 mod_grade: Behat test for multiple questions manual grading 2025-08-06 18:20:54 +08:00
Jun Pataleta 2e9c76095c Merge branch 'MDL-86095-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-08-06 15:41:11 +08:00
yusufwib01 0a3e64de5d MDL-85718 tiny_link: Improve image link behavior in TinyMCE 2025-08-06 14:31:16 +07:00
Rajneel Totaram 5008146b77 MDL-86095 mod_book: Let screenreader know print book opens in new window 2025-08-06 18:33:24 +12:00
Huong Nguyen 03430a4060 Merge branch 'MDL-85132_405_STABLE' of https://github.com/vladaskidanovas/moodle into MOODLE_405_STABLE 2025-08-06 10:54:18 +07:00
Laurent David 7616aa1eef MDL-84464 Report: Hide report for teachers without groups 2025-08-06 10:22:13 +07:00
Laurent David 6978147a03 MDL-84463 mod_feedback: Fix typo in behat test description 2025-08-06 03:05:21 +00:00
Laurent David a0f12b787b 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 03:05:21 +00:00
Laurent David 890d43e1c3 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 03:05:21 +00:00
raortegar 4068e8ee2b MDL-85704 mod_bigbluebuttonbn: Update sesskey handling for compatibility 2025-08-06 03:05:21 +00:00
Huong Nguyen 4d12c8fac3 Merge branch 'MDL-85510-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-08-06 08:30:16 +07:00
Paul Holden 98659fad08 MDL-86230 admin: fix site registration link to Moodle app.
Broken by 5d316201.
2025-08-06 00:36:09 +01:00
Khoa Nguyen Dang f56e272ff7 MDL-85510 Questions: clearfix from MDL-84708 affects spacing
Co-authored-by: Mikel Martín Corrales <mikel@moodle.com>
2025-08-05 15:53:22 +07:00
Stevani Andolo 98f8fdee6a MDL-84217 editor_tiny: Added 'img-fluid' class to dropped image files 2025-08-05 15:00:45 +08:00
sam marshall a08193f094 MDL-84010 core_files: sync_external_file can cause infinite recursion 2025-08-05 07:49:02 +01:00
Mihail Geshoski 1159f0763b Merge branch 'MDL-86001-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-05 11:42:33 +08:00
Mihail Geshoski 33b7ccdd88 Merge branch 'MDL-85565_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-08-05 11:35:54 +08:00
Mihail Geshoski eb97c10d89 Merge branch 'MDL-85492_405' of https://github.com/krisbax/moodle into MOODLE_405_STABLE 2025-08-05 11:20:41 +08:00
Huong Nguyen 49e3a29b00 Merge branch 'MDL-85338-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-08-05 09:11:07 +07:00
Huong Nguyen b784f20565 Merge branch 'MDL-85231-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-08-05 08:50:32 +07:00
Huong Nguyen 375e56bb9b Merge branch 'MDL-86043-405' of https://github.com/tasiobg/moodle into MOODLE_405_STABLE 2025-08-05 08:32:14 +07:00
Jun Pataleta 76f0a88d89 MDL-85795 message: Enclose the search widget in a group 2025-08-04 18:46:50 +08:00
Jun Pataleta c4b864606f MDL-85795 search: Enclose the search widget in a group 2025-08-04 18:46:49 +08:00
Simey Lameze cbd7cd61fa MDL-86186 behat: enlarge window size before asserting 2025-08-04 11:27:31 +08:00
Shamim Rezaie 86d14f5932 Merge branch 'MDL-85787-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-08-04 09:53:52 +10:00
Paul Holden 9f56af660a MDL-83462 mod_page: observe page description display in popup. 2025-08-01 17:04:26 +01:00
Jun Pataleta d1575b2739 MDL-85794 message: Set notification preferences controls within a group 2025-08-01 18:51:22 +08:00
Mihail Geshoski 9a419d4378 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:12 +08:00
Iñigo Zendegi dc869f0c05 MDL-85802 mod_quiz: format course/quiz notification content. 2025-08-01 18:50:12 +08:00
Jun Pataleta 9e7c8cd9c0 MDL-85231 message: Style the notification buttons consistently 2025-08-01 13:09:02 +08:00
Jun Pataleta 43b5b809e6 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:09:02 +08:00
Laurent David b56614fce6 MDL-85231 message_popup: Add focustrap in message popup 2025-08-01 13:09:02 +08:00
David Mudrák 8143ad5cb5 MDL-85945 lang: Use fixed strings in the tests, too 2025-07-31 17:06:06 +02:00
Helen Foster 580a46bf12 MDL-85945 lang: Import fixed English strings (en_fix) 2025-07-31 17:05:30 +02:00
Sara Arjona b479c7a056 weekly release 4.5.5+ 2025-07-31 16:08:40 +02:00
Sara Arjona 353f4ed7cc NOBUG: Add upgrade notes 2025-07-31 16:08:39 +02:00
Sara Arjona 599b74c1a2 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-07-31 16:08:33 +02:00
Michael Hawkins 6498193e6d Merge branch 'MDL-85362-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-07-31 14:37:06 +08:00
Huong Nguyen eea759e64c Merge branch 'MDL-86062-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-07-31 10:21:03 +07:00
Huong Nguyen b9bea60fa8 Merge branch 'MDL-84485-Select-webservice-in-wstoken-behat-breadcrumb-405' of https://github.com/farhan6318/moodle into MOODLE_405_STABLE 2025-07-31 10:17:52 +07:00
Huong Nguyen afd0e41b69 Merge branch 'MDL-85897-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-07-31 08:58:32 +07:00
AMOS bot 5bf57f83c9 Automatically generated installer lang files 2025-07-31 00:08:02 +00:00
Shamim Rezaie b00188cd82 Merge branch 'MDL-85295-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-07-31 02:44:01 +10:00
Shamim Rezaie 5ea0f0f35e Merge branch 'MDL-72133-filter-deleted-logs-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-07-31 02:27:18 +10:00
Mihail Geshoski 3e43057840 Merge branch 'MDL-86113-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2025-07-30 23:29:17 +08:00
Mihail Geshoski 8730b522e6 Merge branch 'MDL-85470-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-07-30 23:10:44 +08:00
Tasio 3bcbaf2ec8 MDL-86043 core: test for the task sending new users an email 2025-07-30 16:23:42 +02:00
Tasio d205f1bcb4 MDL-86043 core: fix sql to work in oracle
I’ve updated the query to use sql_isnotempty, which generates the correct SQL for the selected database.
I have aso added an "order by" because after some testing I noticed that Oracle and MySQL retun the results
in different order which feels inconsistent and makes it more difficult to test.
2025-07-30 16:23:34 +02:00
Paul Holden 116dc12ed1 MDL-85338 message: make messaging drawer responsive to sticky footer.
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
2025-07-30 13:59:01 +01:00
Jun Pataleta de57e4a1cf Merge branch 'MDL-85995-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-07-30 17:10:09 +08:00
Andrew Nicols 86479d5871 MDL-86062 mod_choice: Stop calling get_string from lib.php 2025-07-30 13:58:40 +08:00
Andrew Nicols 63a21837db MDL-85897 core: Move all deprecations to emit_deprecation 2025-07-30 13:53:27 +08:00
Andrew Nicols 2181327bf2 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 f12170bb56 Merge branch 'MDL-85590_fix_modal_backdrop_attachment_point_405' of https://github.com/MariaMozgunova/moodle into MOODLE_405_STABLE 2025-07-30 08:37:46 +07:00
Farhan Karmali 4985662a5b 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 16:00:51 +05:30
Huong Nguyen 763bff0289 Merge branch 'MDL-85855-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-29 16:49:51 +07:00
Jun Pataleta af455ccfe2 MDL-85470 badges: Add a11y Behat test for the manage badges page 2025-07-29 15:17:24 +08:00
Jun Pataleta f83d35c631 MDL-85470 badges: Use badge:namewithimagelink column in badges table 2025-07-29 15:17:24 +08:00
Jun Pataleta bc100f6efa MDL-85470 reportbuilder: New column containing badge image, name, link 2025-07-29 15:17:24 +08:00
Jun Pataleta fde36bb49c 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:02 +08:00
Jayce Birrell 38fe5cc384 MDL-85698 core: combo box informs screen reader users 2025-07-29 10:52:55 +09:30
AMOS bot 67249bea47 Automatically generated installer lang files 2025-07-28 13:16:59 +00:00
Maria Mozgunova 20dfe6475b MDL-85590 core: Fix modal backdrop attachment point for full screen 2025-07-28 10:46:30 +01:00
Benjamin Walker b08eaaa028 MDL-72133 report_log: Add fallback context display 2025-07-28 09:06:40 +10:00
Benjamin Walker b3e2e81b0d MDL-72133 report_loglive: Display logs filtered by deleted course ids 2025-07-28 09:06:40 +10:00
Benjamin Walker eb0634d489 MDL-72133 report_log: Display logs filtered by deleted course ids 2025-07-28 09:06:40 +10:00
Philipp Imhof 59808c6870 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:30 +02:00
Jake Dallimore 4a02a9975d 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:49:07 +08:00
Michael Hawkins 51662cb8ef weekly release 4.5.5+ 2025-07-25 12:14:36 +08:00
Michael Hawkins c3e13a4ca6 Merge branch 'MDL-83111-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-07-24 12:01:17 +08:00
Huong Nguyen 35eec5b9aa Merge branch 'MDL-86049-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-07-24 09:47:51 +07:00
Huong Nguyen 3b68cecb15 Merge branch 'MDL-85504-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-07-24 09:44:11 +07:00
Rajneel Totaram 4c3be75ef2 MDL-85995 mod_book: Make previous/next buttons accessible 2025-07-24 10:08:39 +12:00
Jun Pataleta dc91c2144c 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:52 +08:00
Amaia Anabitarte 319113f872 Merge branch 'MDL-85989-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-07-23 10:14:00 +02:00
Jun Pataleta e894f95f6c 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:10:53 +08:00
Huong Nguyen 977eacdfc0 Merge branch 'MDL-60799_405' of https://github.com/jonof/moodle into MOODLE_405_STABLE 2025-07-23 09:03:42 +07:00
Huong Nguyen d43a89d86f Merge branch 'MDL-83996-readonly-false-positive-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-07-23 09:00:13 +07:00
Huong Nguyen 39c57e2f02 Merge branch 'MDL-84787-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-23 08:51:37 +07:00
Huong Nguyen c68104c12f Merge branch 'MDL-85573-tool-brickfield-uninstall-405' of https://github.com/szymonk1101/moodle into MOODLE_405_STABLE 2025-07-23 08:33:49 +07:00
Rohit Panchal 63cc9efdbc MDL-83991 tag: Optimized tag sql query 2025-07-23 01:00:33 +05:30
Mihail Geshoski b177a0cee6 Merge branch 'MDL-85997-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-22 23:35:25 +08:00
Mihail Geshoski 3d41378956 Merge branch 'MDL-85038-M405_dml_missing_record_exception-when-running-mod_assign-task-send_assignment_due_soon_notification_to_user' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-07-22 23:28:41 +08:00
Mihail Geshoski 09f9052355 Merge branch 'MDL-83558-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-07-22 13:54:02 +08:00
Huong Nguyen 1ef0196b0d MDL-85362 core: Define environment requirements for Moodle 5.1 2025-07-22 10:54:17 +07:00
Rajneel Totaram a5e3d3f018 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:38 +12:00
Andrew Nicols 7c4210b6ea 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 5aec7f1992 MDL-83996 sessions: Fix false positive read only sessions errors 2025-07-21 10:26:27 +10:00
Mihail Geshoski c97987e9ed weekly release 4.5.5+ 2025-07-18 14:52:50 +08:00
Mihail Geshoski 266d5f8857 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-07-18 14:52:37 +08:00
Paul Holden 6a1d35dfa0 MDL-85944 block_myoverview: fix previously badly nested SCSS. 2025-07-17 15:25:05 +07:00
Mihail Geshoski d7d824e872 Merge branch 'MDL-85055-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-07-17 12:14:56 +08:00
Paul Holden 396f77e552 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-17 11:56:55 +08:00
Huong Nguyen a736250f33 Merge branch 'MDL-85050-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-07-17 10:24:34 +07:00
Huong Nguyen b0c912d6f0 Merge branch 'MDL-85944-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-17 08:53:01 +07:00
Huong Nguyen 72640fbc5a Merge branch 'MDL-81384-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-17 08:44:04 +07:00
Shamim Rezaie 29fab26069 Merge branch 'MDL-73003-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-07-17 07:29:47 +10:00
Mihail Geshoski 114917dc65 Merge branch 'MDL-77237-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-07-16 23:53:15 +08:00
Huong Nguyen c9c1d71c32 Merge branch 'MDL-85609-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-16 09:52:48 +07:00
Andrew Gosali a61e0d92ed 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:46:02 +07:00
Daniel Ziegenberg 4e822cccfd 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:35 +02:00
meirzamoodle 07af6ccc73 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:36:26 +07:00
Paul Holden cada977938 MDL-85944 block_myoverview: specific styling for "My courses" page. 2025-07-15 08:02:17 +01:00
Mihail Geshoski cd409009e4 Merge branch 'MDL-85246-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-07-15 11:11:26 +08:00
Huong Nguyen ef0ba8a988 Merge branch 'MDL-72582-MOODLE_405_STABLE' of https://github.com/tsmilan/moodle into MOODLE_405_STABLE 2025-07-15 10:07:55 +07:00
Huong Nguyen 4de8318ca9 Merge branch 'MDL-86016-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-07-15 09:56:41 +07:00
Huong Nguyen 9bd33ef7e6 Merge branch 'MDL-85040-405-new' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-07-15 09:42:29 +07:00
Mihail Geshoski 4baac8c6ce Merge branch 'MDL-84385-requireonce-405' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-07-15 09:41:18 +08:00
Andrew Nicols b4092640b8 MDL-86016 core: Remove xmldb test in favour of unit test 2025-07-15 09:33:05 +08:00
Andrew Nicols 75ac9fc3ae MDL-86016 tests: Make install.xml test less restrictive 2025-07-15 09:33:04 +08:00
Amaia Anabitarte b7d3d4f191 MDL-81384 report_participation: Remove innecessary JS parameters
The parameter are usable in course participants page because user
could add bulk notes linked to users. But that script is not used
in report/participants, so we don't need those arguments on the call.

Backported from MDL-75669.
2025-07-14 21:32:30 +01:00
Paul Holden ccb3a73f98 MDL-81384 theme_boost: centre help icon margin/padding. 2025-07-14 21:32:30 +01:00
meirzamoodle d78eccdb13 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:25:23 +07:00
AMOS bot 12e3626a6d Automatically generated installer lang files 2025-07-12 00:07:54 +00:00
Paul Holden 86fe6f4ae7 MDL-86001 qbank_columnsortorder: populate preview data question text. 2025-07-11 15:23:46 +01:00
Paul Holden 1708db93e6 MDL-85997 output: require CLI library from corresponding renderer. 2025-07-11 11:59:41 +01:00
Mark Johnson 9f953080d1 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:07:49 +01:00
Sara Arjona 0a01a0d119 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:02 +02:00
Michael Hawkins ce34e8ff08 weekly release 4.5.5+ 2025-07-11 12:49:25 +08:00
Leon Stringer 34a0d939dd MDL-84385 mod_assign: Remove unneeded require_once 2025-07-10 09:26:28 +01:00
Huong Nguyen 14d442c52c Merge branch 'MDL-85863-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-07-10 10:46:48 +07:00
Mihail Geshoski c4c11a559f Merge branch 'MDL-85689-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-07-10 11:38:36 +08:00
Mark Johnson 3e8f439d17 MDL-85721 qtype_multianswer: Update find_duplicated_subquestions for Oracle compatibility 2025-07-10 10:29:08 +07:00
Huong Nguyen ab271c4c24 Merge branch 'MDL-85262-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-10 08:33:44 +07:00
Huong Nguyen ed44561319 Merge branch 'MDL-84901-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-10 08:25:44 +07:00
Mihail Geshoski b85edb5f5a Merge branch 'MDL-85939-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-09 23:25:10 +08:00
Mihail Geshoski 0a7c65c43e Merge branch 'MDL-84255-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-07-09 23:17:22 +08:00
Rajneel Totaram ba71a95d34 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:14 +12:00
Jun Pataleta 09bbcdaf32 Merge branch 'MDL-85596-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-09 14:14:48 +08:00
andelacruz 0de18a98cf MDL-85689 mod_quiz: Behat for adding and deleting page from quiz 2025-07-09 13:26:39 +08:00
Mihail Geshoski 0f5f7c8dbe Merge branch 'MDL-85721_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-07-09 10:20:09 +08:00
Huong Nguyen 4c406b2d81 Merge branch 'MDL-85697-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-07-09 09:10:53 +07:00
Paul Holden 19edba7020 MDL-85939 qbank_columnsortorder: improve preview page table alignment. 2025-07-08 17:58:38 +01:00
Kristiina.Bax aee5428591 MDL-85492 report_questioninstances: sort qtypes in alphabetical order 2025-07-08 17:14:15 +01:00
Paul Holden 2d4b15f317 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-07-08 13:49:47 +01:00
Paul Holden 6462abc6df MDL-84901 auth: specific session start error language string. 2025-07-08 12:33:07 +01:00
Huong Nguyen 422a6f94a9 Merge branch 'MDL-84976-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-07-08 18:13:44 +07:00
Huong Nguyen 6f961cacc5 Merge branch 'MDL-85037-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-08 18:09:00 +07:00
Huong Nguyen eed6310a08 Merge branch 'MDL-85947-M405_bump-GHA-ubuntu-24-04' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-07-08 17:35:12 +07:00
andelacruz ddcaa5f8a6 MDL-85697 mod_lesson: Behat for lesson group and user overrides 2025-07-08 17:03:21 +08:00
andelacruz 6b9cbd5a19 MDL-85697 mod_assign: Behat for assignment group and user overrides 2025-07-08 17:02:06 +08:00
andelacruz 0b86e7f574 MDL-85697 mod_quiz: Behat for quiz group and user overrides 2025-07-08 16:59:49 +08:00
Luca Bösch 547cd0de94 MDL-84255 quiz: Show quiz title in heading in accessrule_seb layout. 2025-07-08 07:51:51 +02:00
Daniel Ziegenberg 323d7ba996 MDL-85947 ci: Bump GHA to Ubuntu 24.04
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-07-07 16:12:45 +02:00
yusufwib01 22c2f2455e MDL-85863 user: Defer new-password email until after transaction commit 2025-07-07 21:03:32 +07:00
Trisha Milan 4e9c6b3f37 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:59:25 +10:00
Matt Rice a442938279 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:59:19 +10:00
Laurent David 067138aab4 MDL-81702 core_message: Add focustrap and backdrop
* Add focustrap and backdrop to message drawer.
2025-07-07 07:09:16 +02:00
Laurent David e41473d9ff MDL-81702 theme_boost: Add focus lock to drawers
* Add focus lock to drawers for small screens
2025-07-07 07:09:16 +02:00
Laurent David 97aa3dd1f9 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:16 +02:00
Mihail Geshoski 2fce831627 weekly release 4.5.5+ 2025-07-06 09:26:27 +08:00
Mihail Geshoski 6fe2fb1f0f NOBUG: Add upgrade notes 2025-07-06 09:26:27 +08:00
Mihail Geshoski 396a02396e Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-07-06 09:26:13 +08:00
Mihail Geshoski cb9bebdc8e Merge branch 'MDL-85350_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-07-05 19:57:51 +08:00
Mihail Geshoski 9a28c68655 Merge branch 'MDL-85563-m405' of https://github.com/NeillM/moodle into MOODLE_405_STABLE 2025-07-05 19:57:51 +08:00
Tim Schroeder 17eb0624ab MDL-81604 Files: Fix broken file serving w/ Apache + PHP-FPM + PHP >=8.1 2025-07-04 20:01:52 +02:00
Paul Holden 98329e1d71 MDL-85037 block_html: correct access checks for plugin file serving. 2025-07-04 08:55:58 +08:00
Huong Nguyen 046a9c4905 Merge branch 'MDL-76342-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-07-03 09:07:59 +07:00
Huong Nguyen b37969c4f9 Merge branch 'MDL-85769-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-07-03 09:05:24 +07:00
Mihail Geshoski cc2d6b276d Merge branch 'patch/MDL-85666-405' of https://github.com/skodak/moodle into MOODLE_405_STABLE 2025-07-03 09:54:33 +08:00
Petr Skoda 6a4b730dfd 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:13 +02:00
AMOS bot 9fa2846df4 Automatically generated installer lang files 2025-07-02 00:09:53 +00:00
Mark Johnson e721309453 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:58:59 +01:00
Mark Johnson 3101c07a97 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:58:58 +01:00
Mark Johnson 8c9d16e605 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:58:58 +01:00
Mark Johnson d3d2d67c8e 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:54:50 +01:00
Mark Johnson 7c0600ae16 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:54:49 +01:00
Andrew Nicols b6f3972fad Merge branch 'MOODLE_405_STABLE' of git.in.moodle.com:moodle/integration; branch 'MDL-84531-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-07-01 17:36:47 +08:00
Neill Magill 76275dadf5 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:43:46 +01:00
Daniel Ziegenberg 202fe57da2 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:01 +02:00
Huong Nguyen c36274a15a weekly release 4.5.5+ 2025-06-29 16:18:49 +07:00
meirzamoodle c080b4bf58 MDL-85769 AI: Trap focus within AI drawer on smaller screens
Co-authored-by: Laurent David <laurent.david@moodle.com>
2025-06-28 10:59:41 +07:00
Paul Holden be23488e54 MDL-85855 calendar: format course shortname attribute correctly. 2025-06-26 21:47:12 +08:00
Mihail Geshoski c8116a0dbe Merge branch 'MDL-85665-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-06-26 10:44:07 +08:00
Huong Nguyen 2ed1dd557c Merge branch 'MDL-83752-M405' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-06-26 09:19:43 +07:00
Huong Nguyen fc34abe738 Merge branch 'MDL-76414-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-06-26 08:29:47 +07:00
Huong Nguyen c477dcd640 Merge branch 'MDL-85734-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-06-26 08:25:57 +07:00
Huong Nguyen c4e40860e4 Merge branch 'MDL-85466-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-06-26 08:22:29 +07:00
Huong Nguyen 91530e92ee Merge branch 'MDL-82109-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-26 08:19:58 +07:00
Jonathon Fowler f7b694d15f 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:10 +10:00
Daniel Ziegenberg 471a73e98c 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:17 +02:00
andelacruz 651af33600 MDL-85665 mod_quiz: Behat to build quiz in single activity format course 2025-06-24 17:58:32 +08:00
Huong Nguyen 002398450f Merge branch 'MDL-85683-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-24 09:21:22 +07:00
Huong Nguyen 7f708151eb Merge branch 'MDL-85407-45' of https://github.com/durenadev/moodle into MOODLE_405_STABLE 2025-06-24 09:17:03 +07:00
Paul Holden 1263027e0f MDL-85596 output: update "More" sub-menus ARIA expanded attribute. 2025-06-20 21:10:29 +01:00
Luca Bösch 90ce0974bd MDL-85734 calendar: support multilang group names. 2025-06-20 16:47:45 +02:00
Luca Bösch 23dc4c7ca4 MDL-85466 course: space between number and course icon. 2025-06-20 16:47:16 +02:00
Huong Nguyen 97ed6b7083 weekly release 4.5.5+ 2025-06-20 15:14:38 +07:00
Huong Nguyen 499f6f3688 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-06-20 15:14:26 +07:00
Sara Arjona 5a22bfc175 Merge branch 'MDL-75947-integration-405-fix' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-06-19 17:22:08 +02:00
Mihail Geshoski 66bf9156b3 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:15:36 +08:00
yusufwib01 a14b77ec1c MDL-76414 navigation: Show 'Calendar' link in primary nav to guests 2025-06-19 13:13:58 +07:00
Huong Nguyen 8d6e21135c Merge branch 'MDL-85223-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-19 11:26:20 +07:00
Mihail Geshoski 9d661d516e Merge branch 'MDL-75947-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-06-19 12:18:15 +08:00
Huong Nguyen 8369f19a64 Merge branch 'MDL-85678-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-19 11:07:48 +07:00
Mihail Geshoski 1338ddaa3f Merge branch 'MDL-83487-405' of https://github.com/muhammadarnaldo/moodle into MOODLE_405_STABLE 2025-06-19 11:31:24 +08:00
Huong Nguyen 67827bf0fa Merge branch 'MDL-85159-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-06-19 10:03:51 +07:00
yusufwib01 7479f88d22 MDL-76342 core_output: Wrap buttons below heading on small screens 2025-06-19 10:01:33 +07:00
Mihail Geshoski 0e70433873 Merge branch 'MDL-85514-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2025-06-19 10:58:38 +08:00
Jake Dallimore d54a04197a 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:58:30 +08:00
Mihail Geshoski f6497cbe1f Merge branch 'MDL-42263-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-06-18 16:17:06 +08:00
Jayce Birrell 693d89cbdb 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:20 +09:30
Huong Nguyen ccc6b2ee89 Merge branch 'MDL-84832-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-18 09:50:58 +07:00
Paul Holden 5d7c70c21e Merge branch 'MDL-85773-405' of https://github.com/sebastsg/moodle into MOODLE_405_STABLE 2025-06-17 11:08:46 +01:00
Sebastian Gundersen d2e1d0e76e 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:44:35 +02:00
Tasio fc21f64863 MDL-78233 accesslib: remove unreliable test
Co-authored-by: Marina Glancy <marina.glancy@gmail.com>
2025-06-17 10:37:57 +02:00
Mihail Geshoski b5fd491b73 Merge branch 'MDL-84978-405' of https://github.com/olivabigyo/moodle into MOODLE_405_STABLE 2025-06-17 15:15:30 +08:00
Mihail Geshoski e8ac6e2fec Merge branch 'MDL-82797_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-06-17 14:59:52 +08:00
Marina Glancy e3411249d6 MDL-80611 general: do not translate url in help links 2025-06-16 18:10:24 +01:00
Paul Holden 10aece9d65 MDL-85609 tool_mfa: fix user counting for factors in use table. 2025-06-16 13:03:43 +01:00
Jun Pataleta b419fd08fc MDL-85678 mod_feedback: a11y Behat coverage for Manage templates page 2025-06-16 13:50:25 +08:00
Jun Pataleta 5c3e474160 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:50:25 +08:00
Jake Dallimore 1bf62c2e46 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:46 +09:30
Jake Dallimore 036f61da49 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:46 +09:30
aya-saad1 e6894fcf11 MDL-42263 assign: Force language of email sent to graders
Co-authored-by: Jayce Birrell <jayce.birrell@moodle.com>
2025-06-16 11:01:18 +09:30
AMOS bot 4fceaed909 Automatically generated installer lang files 2025-06-15 00:09:52 +00:00
Mihail Geshoski 95518023c6 weekly release 4.5.5+ 2025-06-13 14:43:42 +08:00
Mihail Geshoski fe0d7c9b0a NOBUG: Add upgrade notes 2025-06-13 14:43:42 +08:00
Paul Holden 56801cdf3b MDL-84531 core: default deprecated attribute $replacement to null. 2025-06-12 14:50:56 +01:00
Huong Nguyen 9691e4d4c6 MDL-85316 dml: Revert DB vendor changes 2025-06-12 17:11:26 +07:00
Jun Pataleta d2711e792f Merge branch 'MDL-84752-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-12 17:15:43 +08:00
Paul Holden 102621f53d 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:48 +01:00
Jun Pataleta 44fc7bd927 Merge branch 'MDL-85700-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2025-06-12 17:06:40 +08:00
Huong Nguyen 18b20273fd MDL-72123 message: Add upgrade note 2025-06-12 17:06:40 +08:00
Huong Nguyen 49729e14a4 Merge branch 'MDL-72123-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-06-12 17:06:39 +08:00
Huong Nguyen 97ccd815f9 Merge branch 'MDL-84611-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-06-12 08:37:34 +07:00
Mikel Martín abdf765a28 MDL-85700 theme_boost: Fix singleselect spacing
- Fix single_select template form layout.
2025-06-11 13:53:03 +02:00
Justin Hunt bd54d58d8a MDL-82797 question engine: gift import fix 2025-06-11 11:58:23 +01:00
Stefan Hanauska 172277eae4 MDL-84611 blocks: Respect instance_allow_multiple() 2025-06-11 11:22:05 +02:00
Stefan Hanauska 110e4f7aed MDL-84611 block_html: Change tests to respect capabilities 2025-06-11 11:22:05 +02:00
Huong Nguyen 8061a3cdc8 Merge branch 'MDL-77964-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-11 14:08:50 +07:00
Huong Nguyen 60c73f7ff7 Merge branch 'MDL-85316-405-mysql-version' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-06-11 13:33:49 +07:00
Huong Nguyen d83b08f92c Merge branch 'MDL-85274-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-06-11 13:30:18 +07:00
David Woloszyn 5dd77e0022 MDL-85274 calendar: Duration limits added to forms 2025-06-11 14:30:11 +10:00
meirzamoodle cc7efbf977 MDL-85316 admin: Add environment check for AWS Aurora database 2025-06-11 10:44:12 +07:00
Philipp Imhof cd11b9533f 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:22:19 +02:00
Mihail Geshoski 812ef23c00 Moodle release 4.5.5 2025-06-06 12:32:23 +08:00
Mihail Geshoski 59d4d28e84 NOBUG: Add upgrade notes 2025-06-06 12:32:23 +08:00
Rajneel Totaram 436c8070e2 MDL-84976 tool_policy: noclean param was not set 2025-06-06 15:14:40 +12:00
Paul Holden 4e1feb2c4e MDL-85683 enrol: use formatted course name for notification context. 2025-06-06 00:22:13 +01:00
yusufwib01 8c96b52f08 MDL-72123 message: Hide add to contacts button if user not allowed 2025-06-06 01:09:29 +07:00
Szymon Karolczuk dd639a9516 MDL-85573 tool_brickfield: fix uninstall code 2025-06-05 19:16:20 +02:00
Sara Arjona 4b87c45497 weekly release 4.5.4+ 2025-06-05 16:43:39 +02:00
Sara Arjona 19baebf67d NOBUG: Add upgrade notes 2025-06-05 16:43:39 +02:00
Niels Gandraß 8cce7a8a82 MDL-84491 core_session: Fix redis connection in CLI / scheduled task 2025-06-05 10:26:55 +02:00
Michael Hawkins 4ecfbc393d MDL-83762 core_files: Bind resolve IPs and ports to cURL calls 2025-06-05 12:09:50 +07:00
Michael Hawkins ac62ce580c Merge branch 'MDL-85571-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-05 12:35:12 +08:00
Vincent Schneider ab5d693113 MDL-84518 course: improved course visibility state handling 2025-06-05 11:22:29 +07:00
Michael Hawkins 74aa57d9cd Merge branch 'MDL-80380-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-05 12:20:23 +08:00
Jun Pataleta a86500fe34 Merge branch 'MDL-85450-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-06-05 12:15:52 +08:00
Huong Nguyen 2225c55acc MDL-80380 core_auth: Add upgrade note 2025-06-05 11:14:52 +07:00
Huong Nguyen 6abea88dac MDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email 2025-06-05 11:14:51 +07:00
Mihail Geshoski 484b07cc5c Merge branch 'MDL-69765-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-06-05 12:11:21 +08:00
Jun Pataleta 0dd92929b4 Merge branch 'MDL-84941-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-05 12:08:44 +08:00
Mihail Geshoski 0319bb49a7 Merge branch 'MDL-85072-405' of https://github.com/olivabigyo/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mihail Geshoski 58b92a238e Merge branch 'MDL-83654-405-5' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mihail Geshoski 84dfd5459e Merge branch 'MDL-85369_405' of https://github.com/agaranin/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mark Johnson 5abbfe4fd7 MDL-85323 core: Don't cache the login page 2025-06-05 11:01:04 +07:00
meirzamoodle 07cd48917c MDL-85375 libraries: Escaping a query parameter on pg_insert_id() 2025-06-05 01:30:20 +00:00
Vincent Schneider 8c5fad91df MDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks 2025-06-05 01:30:20 +00:00
Huong Nguyen c827a17f27 MDL-79993 course: Fix PHPUnit failure 2025-06-05 01:30:20 +00:00
raortegar b4011745cd MDL-79993 course: Improve user access to recent courses service 2025-06-05 01:30:20 +00:00
Vincent Schneider 47ba1b63f7 MDL-84497 badges: fix missing action sesskey checks. 2025-06-05 01:30:20 +00:00
Jun Pataleta 55abeaa7d4 Merge branch 'MDL-85239-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-06-05 09:22:54 +08:00
Jun Pataleta e3271c38b5 Merge branch 'MDL-84804-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-05 08:12:44 +08:00
Sara Arjona a949faf7fc Merge branch 'MDL-82069-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-06-04 15:37:04 +02:00
Paul Holden c14a3786b4 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:09:55 +01:00
Paul Holden 6e0e718a39 MDL-84804 javascript: new module for manipulating the page title. 2025-06-04 14:07:28 +01:00
Jun Pataleta e9613e37e2 Merge branch 'MDL-85041-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-04 17:48:24 +08:00
Mihail Geshoski 4390e42ea2 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:54 +08:00
Jun Pataleta cb990d2c07 MDL-85041 core: Make methods calling announceChanges async as well 2025-06-04 16:22:25 +08:00
Mihail Geshoski 1201e7b61a Merge branch 'MDL-85469-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-04 14:12:52 +08:00
Huong Nguyen 3272b7d6a1 MDL-85571 mod_assign: Improve PHPUnit tests 2025-06-04 12:50:39 +07:00
raortegar 8f8fb98cfd MDL-85571 mod_assign: Add visibility check to due digest notification 2025-06-04 12:50:39 +07:00
Jun Pataleta 3d9610fed5 Merge branch 'MDL-85507-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-06-04 11:58:52 +08:00
Huong Nguyen beb8034e21 Merge branch 'MDL-84732-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-06-04 10:53:52 +07:00
Mihail Geshoski 1e79fe439a Merge branch 'MDL-84432-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-04 10:47:49 +08:00
Huong Nguyen 3c3b1f9aa7 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:41:39 +07:00
Amaia Anabitarte c535d469fb Merge branch 'MDL-85471-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-03 16:19:29 +02:00
cescobedo 8cd1f17819 Merge branch 'MDL-85398-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-03 15:51:59 +02:00
Amaia Anabitarte b38113be6e Merge branch 'MDL-85327-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-03 13:37:53 +02:00
Jun Pataleta bb4cf1e151 Merge branch 'MDL-85467-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-06-03 17:28:39 +08:00
Rajneel Totaram d2646aee84 MDL-85450 block_calendar_upcoming: Fix heading level 2025-06-03 09:40:48 +12:00
Amaia Anabitarte b65fe2d786 Merge branch 'MDL-85412-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-06-02 13:24:42 +02:00
yusufwib01 e2aa6e03c6 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:46:11 +07:00
hieuvu fb036fe8aa MDL-85239 mod_quiz: Add caption for Attempt tables. 2025-06-02 13:38:05 +07:00
meirzamoodle bff7dffe16 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-02 10:38:29 +07:00
Luca Bösch 39e627ecc5 MDL-69765 qtype_essay: Create temporary draft file area only one time. 2025-05-31 12:58:24 +02:00
Jun Pataleta b469c13132 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:24:45 +08:00
Jun Pataleta c8501791c4 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:24:44 +08:00
Jun Pataleta 5d6b8b0080 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:24:44 +08:00
Amaia Anabitarte 98ba1909f2 MDL-85412 course: adding and removing elements feedback message 2025-05-30 16:44:01 +02:00
vlad.kidanov a9b8b52a16 MDL-85132 mod_glossary: Add missing end div for entrybox element. 2025-05-30 10:30:06 +01:00
Jun Pataleta 3f16708b55 MDL-84832 tiny_media: Announce when alt text maxlength is reached
Co-authored-by: Meirza <meirza.arson@moodle.com>
2025-05-30 17:08:18 +08:00
Michael Hawkins 7acd85a1aa weekly release 4.5.4+ 2025-05-30 16:29:22 +08:00
Michael Hawkins e12aa38444 NOBUG: Add upgrade notes 2025-05-30 16:29:21 +08:00
Michael Hawkins 03da88b840 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-30 16:28:54 +08:00
Artem Garanin 1a655e88db 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:13:34 -04:00
Paul Holden 586ead512c MDL-85223 reportbuilder: initialize user entity filters just once. 2025-05-29 15:32:30 +01:00
Paul Holden 1e5ad34897 MDL-77964 availability: avoid JS console errors when closing modal. 2025-05-29 10:15:31 +01:00
David Herney 57e7f3ae94 MDL-85616 mod_glossary: The existence of the variable is controlled 2025-05-29 03:55:14 -05:00
Michael Hawkins dc3c3ad7bb Merge branch 'MDL-84824-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-05-29 12:27:43 +08:00
Michael Hawkins 9c26cc5eaa Merge branch 'MDL-83448-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-05-29 12:18:50 +08:00
Michael Hawkins eb3a479362 Merge branch 'MDL-84996-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-29 12:10:33 +08:00
Michael Hawkins f67dc4491f Merge branch 'MDL-85437-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-29 11:53:10 +08:00
Stevani Andolo 447b50e660 MDL-84824 core_message: Fixed popup accessibility issue 2025-05-29 11:49:25 +08:00
Huong Nguyen fe1125a335 Merge branch 'MDL-83044-405' of https://github.com/catalyst/moodle into MOODLE_405_STABLE 2025-05-29 10:27:27 +07:00
Huong Nguyen c26b7d63b8 Merge branch 'MDL-85525-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-29 09:51:52 +07:00
Huong Nguyen 5e847a50d7 Merge branch 'MDL-85400-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-05-29 08:59:53 +07:00
Huong Nguyen 7a804a5eea Merge branch 'MDL-85389-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-29 08:52:47 +07:00
AMOS bot c17c801ca2 Automatically generated installer lang files 2025-05-29 00:07:56 +00:00
andelacruz 83103830ad MDL-85525 mod_quiz: Behat test for quiz attempt page block display 2025-05-28 16:49:55 +08:00
andelacruz 8e89733cb0 MDL-85389 mod_lesson: Behat for filtering lesson reports/essays by group 2025-05-28 15:19:47 +08:00
sam marshall 4b14b73977 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:59:17 +08:00
meirzamoodle 8e77499d4f MDL-85437 AI: Move focus to the AI drawer 2025-05-28 11:31:30 +07:00
Jun Pataleta ecf7cede8c Merge branch 'MDL-84806-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-27 15:37:12 +08:00
Huong Nguyen c740028db4 Merge branch 'MDL-85169-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-27 09:16:15 +07:00
Alexander Van der Bellen 5fff8ff000 MDL-83044 core_block: Add return value check on form submission 2025-05-26 23:03:47 +08:00
Sara Arjona 636c0905dd Merge branch 'MDL-85034-MOODLE_405_STABLE' of https://github.com/phmemmel/moodle into MOODLE_405_STABLE 2025-05-26 15:26:01 +02:00
ferran 0eb18e5231 Merge branch 'MDL-84304-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-26 13:50:14 +02:00
Helen Foster 06e37a266b MDL-85507 lang: Import fixed English strings (en_fix) 2025-05-25 09:03:07 +02:00
sam marshall e20e01038f MDL-84732 Accessibility: Focus issue after closing nested modal 2025-05-23 15:46:57 +01:00
Mikel Martín 4d08038681 MDL-85469 mod_feedback: Refactor editor drag and drop
- Remove YUI drag and drop.
- Add new 'mod_feedback\external\questions\reorder' web service.
- Use SortableList JS component to refactor drag and drop, using
  the new webservice.
- Update new SCSS styles
- Fix and create Behat scenarios
2025-05-23 16:29:09 +08:00
Mikel Martín 79dec70789 MDL-85469 mod_feedback: Refactor edit amd module 2025-05-23 16:29:09 +08:00
Huong Nguyen 7f5234ab13 weekly release 4.5.4+ 2025-05-23 11:03:56 +07:00
Huong Nguyen 1e03f058ec Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-23 11:03:49 +07:00
David Woloszyn c421dce7bf MDL-84806 tiny_aiplacement: Remove unused div and css 2025-05-23 12:47:55 +10:00
David Woloszyn a55c0e0067 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:47:47 +10:00
Stevani Andolo c5cc10836f MDL-83448 core_hub: Fixed registration check 2025-05-22 13:44:01 +08:00
Huong Nguyen 20c233697f Merge branch 'MDL-84899-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-22 11:01:10 +07:00
Huong Nguyen b358c4ccc9 Merge branch 'MDL-84793-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-05-22 10:48:33 +07:00
Huong Nguyen 1f43870066 Merge branch 'MDL-84918-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-05-22 10:34:40 +07:00
David Woloszyn 3823915d80 MDL-84918 core: Add zend.exception_ignore_args environment check 2025-05-22 10:10:36 +07:00
Huong Nguyen 69809efd38 MDL-84918 core: Add initial environment requirements for Moodle 5.1 2025-05-22 10:10:36 +07:00
Huong Nguyen 2486cd3f48 Merge branch 'MDL-74900-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-05-22 09:37:26 +07:00
Katalin Lukacs Toth 9a23fc37fb 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:04:19 +02:00
Katalin Lukacs Toth 6c3703e7f5 MDL-85072 qtype_ordering: Fix XML export
Option fields should not be left empty.
2025-05-21 10:54:15 +02:00
Huong Nguyen a04e96ae82 Merge branch 'MDL-84274-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-21 13:36:09 +07:00
raortegar 26e5baae62 MDL-74900 core_course: Exception in module deletion if missing instance 2025-05-21 08:27:29 +02:00
Huong Nguyen 01a8018de4 Merge branch 'MDL-84296-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-21 10:00:27 +07:00
Huong Nguyen 2e7075d121 Merge branch 'MDL-85374-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-05-21 09:56:06 +07:00
AMOS bot 13b626da79 Automatically generated installer lang files 2025-05-21 00:07:53 +00:00
Paul Holden bf3c210d82 MDL-82109 notes: include link to add site note if user has capability. 2025-05-20 13:18:37 +01:00
Andrew Nicols 60ff3ef255 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:20 +08:00
Amaia Anabitarte 73969986d9 Merge branch 'MDL-85397-405' of https://github.com/tasiobg/moodle into MOODLE_405_STABLE 2025-05-19 12:43:45 +02:00
Laurent David 5ebb301598 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:46 +02:00
Laurent David c5b189382b 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:46 +02:00
Magnus Samuelsson 84908f78b9 MDL-84304 mod_scorm: Remove the COMPLETION_COMPLETE_FAIL status 2025-05-19 11:56:46 +02:00
Amaia Anabitarte 98513288b7 MDL-82069 core_completion: Improve errors for multiple grading items 2025-05-19 09:33:38 +02:00
Muhammad Arnaldo 14c33bf2a8 MDL-83487 mod_forum: retain upcoming posts in user digests 2025-05-16 15:35:14 +07:00
Jun Pataleta 9c4fb88800 MDL-85471 theme_boost: Dismiss tooltips on escape 2025-05-16 14:21:00 +08:00
Mihail Geshoski 4aefa6b85d weekly release 4.5.4+ 2025-05-16 12:58:58 +08:00
Mihail Geshoski 03a1a221fb Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-16 12:58:35 +08:00
toanlamt cbda104d14 MDL-85050 Javascript: core/dropzone Fix link & box click event conflict 2025-05-15 15:11:54 +07:00
sam marshall 6a56158088 MDL-84793 Behat: Allow CLI scripts to run on Behat instance 2025-05-15 08:50:49 +01:00
Stevani Andolo 46272804bf MDL-84296 core_hub: Added detailed AI usage data to registration page 2025-05-15 16:51:18 +10:00
Huong Nguyen d58f4da539 Merge branch 'MDL-83350-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-15 12:02:37 +07:00
Huong Nguyen 8603d2939d Merge branch 'MDL-84710-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-05-15 11:59:08 +07:00
Huong Nguyen f9ea5d052e Merge branch 'MDL-84073-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-05-15 11:57:33 +07:00
Huong Nguyen 16720f9862 Merge branch 'MDL-83943-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-15 11:45:38 +07:00
Huong Nguyen 59a4f3a8b3 Merge branch 'MDL-85279-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-15 11:42:44 +07:00
Huong Nguyen c7151238c2 Merge branch 'MDL-84009-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-05-14 21:52:05 +07:00
Sara Arjona 2f98ab5f1f Merge branch 'MDL-85449-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona 600a4872fd Merge branch 'MDL-81436-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona 75463bb063 Merge branch 'MDL-81842-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen 08a285be79 Merge branch 'MDL-84128-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen b98919b34e Merge branch 'MDL-85363-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen 408993643f Merge branch 'MDL-84964-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
ferran 7df327305f Merge branch 'mdl-84520_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona cf3c244d49 Merge branch 'MDL-85248-405' of https://github.com/albertgasset/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Tasio 0b5d418a49 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:55:07 +02:00
raortegar 502bcbfb01 MDL-84009 factor_webauthn: Add additional security keys 2025-05-14 11:20:54 +02:00
raortegar ef1b8d05f6 MDL-84009 tool_mfa: Additional factor instances support 2025-05-14 11:20:51 +02:00
Paul Holden ff3a757421 MDL-84996 enrol_manual: ensure externally supplied users are valid. 2025-05-14 09:55:53 +01:00
andelacruz b80477a8c6 MDL-85279 mod_assign: Renamed behat test to a more specific name 2025-05-14 15:13:35 +08:00
andelacruz bb275f31d6 MDL-85279 mod_page: Fix behat to match the expected behaviour 2025-05-14 15:12:49 +08:00
Stevani Andolo 0b719c3951 MDL-85159 editor_tiny: Fix language list and track srclang a11y issue 2025-05-14 09:22:05 +08:00
Rajneel Totaram d0a76a67d7 MDL-81436 theme: Fix scope of showmore button selector
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-05-13 17:39:49 +12:00
meirzamoodle fbca55fa27 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:46 +07:00
Jun Pataleta 8df0f78659 Merge branch 'MDL-84817-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-12 12:44:42 +08:00
Laurent David 8500a67d21 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:55 +02:00
Jayce Birrell d271d670aa MDL-84710 theme_boost: do not apply popper css rules to rtl dropdowns 2025-05-12 11:05:52 +09:30
Paul Holden f0d973cfaa MDL-85449 block_myoverview: preserve documentation language params.
Fixes the link to Moodle docs from zero state.
2025-05-11 19:27:46 +01:00
AMOS bot d82078046a Automatically generated installer lang files 2025-05-10 00:07:55 +00:00
Paul Holden 4f551a8628 MDL-85398 blocks: constrain width of block controls dropdown menu. 2025-05-09 12:52:52 +01:00
Laurent David f5b15b044e 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:54 +02:00
Laurent David 5c2095cb12 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:54 +02:00
meirzamoodle 686011ef42 MDL-83943 core_tag: Fix the broken user tag pagination 2025-05-09 12:49:56 +07:00
Philipp Memmel 27c4ebdace MDL-85034 core_course: Add index to course_sections for mod_subsection
This is a backport of MDL-84844.
2025-05-09 07:25:20 +02:00
meirzamoodle 376d76979d MDL-84128 core: Flip the image according to its orientation in PHP GD 2025-05-09 11:17:36 +07:00
Huong Nguyen 6dd1f61866 weekly release 4.5.4+ 2025-05-09 09:50:26 +07:00
Huong Nguyen 6679d9acb7 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-09 09:50:19 +07:00
Stefan Hanauska cec5aa80d1 MDL-84073 blocks: Load invisible blocks 2025-05-08 14:37:47 +02:00
Daniel Ureña 5d640c4b5c MDL-85407 mod_data: Fix unclosed HTML in list view 2025-05-08 11:15:49 +02:00
Luca Bösch 22779cc577 MDL-85363 quiz: style the question number inplace editable nicely. 2025-05-08 11:08:05 +02:00
David Woloszyn 20fe68e173 MDL-84817 core_message: Fix display issues in drawer at 400% 2025-05-08 17:09:01 +10:00
Huong Nguyen 3ac90327fc Merge branch 'MDL-85341-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2025-05-08 10:52:43 +07:00
Huong Nguyen 5f317f31a0 Merge branch 'MDL-84708-405' of https://github.com/danghieu1407/moodle into MOODLE_405_STABLE 2025-05-08 09:48:19 +07:00
Huong Nguyen c987a7a82e Merge branch 'MDL-84677-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-05-08 09:28:25 +07:00
Huong Nguyen 01b016b2cb Merge branch 'MDL-84597-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-08 09:05:20 +07:00
Huong Nguyen 4c400a892b Merge branch 'MDL-85220-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-05-08 08:59:14 +07:00
Huong Nguyen edb250f91d Merge branch 'MDL-84654-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-08 08:44:25 +07:00
Amaia Anabitarte 7ec2f412d0 Merge branch 'MDL-85361-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-05-07 14:02:17 +02:00
Sara Arjona ac2a24ec08 Merge branch 'MDL-83422-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-07 13:50:22 +02:00
AMOS bot f9936a93b1 Automatically generated installer lang files 2025-05-07 00:07:49 +00:00
Jake Dallimore e2b6ee0e3b MDL-85341 core: remove unnecessary sesskey from module controlmenu items
This impacts the following controls:
- edit (sesskey removed from link)
All other controls should remain unchanged in terms of their use of
sesskey, supporting action handling for non-js course home (see non-js
behat tests move_activities.feature).
2025-05-06 13:54:31 +08:00
Angelia Dela Cruz 99ad02ac3f MDL-84654 mod_assign: Assignment additional files can be hidden 2025-05-06 12:53:48 +08:00
Huong Nguyen cfbb912f11 Merge branch 'MDL-85310-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-06 10:32:13 +07:00
Sara Arjona 6a49c34b5c MDL-85361 block_social_activity: Fix inline editing text field 2025-05-05 08:16:59 +02:00
Paul Holden 71ae1110ff 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:22 +01:00
meirzamoodle 0e9f389e74 MDL-83422 tiny_media: Fix modal footer layout
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-05-02 19:46:41 +07:00
Luca Bösch 75842dcd42 MDL-84677 backup: Filter course shortnames in copy progress viewer. 2025-05-02 08:51:37 +02:00
Huong Nguyen a57387fe2d weekly release 4.5.4+ 2025-05-02 09:16:23 +07:00
Huong Nguyen c22c1099d8 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-02 09:16:16 +07:00
Paul Holden c60d7ed620 MDL-85327 admin: observe show/hide settings on category page.
Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2025-05-01 10:55:30 +01:00
AMOS bot d696c58951 Automatically generated installer lang files 2025-05-01 00:07:56 +00:00
Angelia Dela Cruz c4e085aae9 MDL-85310 qtype: Renamed duplicate scenario names to fix warning 2025-04-30 13:31:21 +08:00
Sara Arjona 3674b609cc Merge branch 'MDL-84805-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-04-29 15:31:56 +02:00
Amaia Anabitarte dc8e94eef8 MDL-84805 badges: Titles must be unique 2025-04-29 11:14:07 +02:00
Rajneel Totaram 4a6e86b652 MDL-85220 block_recentlyaccesseditems: Fix heading level 2025-04-29 10:13:23 +12:00
Sara Arjona 8b4beeb09a Merge branch 'MDL-84192-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-28 11:25:24 +02:00
Alexander Bias ac30d9e451 MDL-79362 auth_ldap: Close transaction when user fails to create 2025-04-28 10:53:34 +02:00
Huong Nguyen 5387945514 Merge branch 'MDL-84983-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-28 10:56:34 +07:00
Huong Nguyen b0d338fd10 Merge branch 'MDL-84539-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-28 08:59:40 +07:00
Huong Nguyen b355ffc504 Merge branch 'MDL-84421-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-25 09:10:23 +07:00
Huong Nguyen b50db3fa11 weekly release 4.5.4+ 2025-04-24 22:06:01 +07:00
Huong Nguyen 290d65e03e NOBUG: Add upgrade notes 2025-04-24 22:06:00 +07:00
Huong Nguyen af4a65c408 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-04-24 22:05:46 +07:00
sam marshall e3ccdbee8a 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:10 +01:00
Paul Holden 8b14e5b9d8 MDL-84192 course: update course information page language string.
The previous version used an incorrectly deprecated summary string.
2025-04-24 11:53:38 +01:00
Huong Nguyen 3facc7677f Merge branch 'MDL-84480-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-24 07:34:46 +02:00
Sara Arjona 3d7dd31dda Merge branch 'MDL-84233_MOODLE_405_STABLE' of https://github.com/catalyst/moodle into MOODLE_405_STABLE 2025-04-24 07:34:46 +02:00
Huong Nguyen 9c4646b41e Merge branch 'MDL-83563_405' of https://github.com/larsbonczek/moodle into MOODLE_405_STABLE 2025-04-24 07:34:44 +02:00
Huong Nguyen e5b973ee85 Merge branch 'MDL-84442-metadata-task-logs-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-04-24 07:32:48 +02:00
David Woloszyn ff28aadff1 MDL-84274 tool_policy: Policy acceptance pages use secure layout 2025-04-24 12:27:23 +10:00
David Woloszyn 9fd50c9771 MDL-84274 tool_mfa: Prevent tool_policy pages from redirecting 2025-04-24 12:27:23 +10:00
Jayce fb236380ee MDL-84964 mod_glossary: min width only apply for large device 2025-04-23 10:01:50 +09:30
AMOS bot ef92f5e441 Automatically generated installer lang files 2025-04-23 00:07:54 +00:00
Albert Gasset 35d0df6f9b MDL-85248 qtype_ddimageortext: Revert MDL-66584
This reverts commit 729e4eb792.
2025-04-22 16:50:58 +02:00
Sara Arjona e48855458e Merge branch 'MDL-82658-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-22 16:46:37 +02:00
Huong Nguyen aaf1c1671a Merge branch 'MDL-84070-user-pref-race-bug-v2-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-04-22 08:39:33 +07:00
Benjamin Walker b037708523 MDL-84442 core_task: Add finalise log param to task failers 2025-04-22 09:29:50 +10:00
Brendan Heywood 90a5527e4c MDL-84070 core: Fix race conditions setting user preferences 2025-04-21 21:41:58 +10:00
Huong Nguyen 9924495afc Merge branch 'mdl-83262_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-04-21 09:12:59 +07:00
AMOS bot a3542e68cf Automatically generated installer lang files 2025-04-20 00:08:16 +00:00
AMOS bot 6c35478d6e Automatically generated installer lang files 2025-04-19 00:07:53 +00:00
Stefan Hanauska b9144ae56a MDL-83111 tool_recyclebin: Avoid null value 2025-04-18 07:15:10 +02:00
AMOS bot 0d0bc14482 Automatically generated installer lang files 2025-04-18 00:07:55 +00:00
Sara Arjona 2ddab5548f weekly release 4.5.4+ 2025-04-17 14:30:05 +02:00
Sara Arjona 8f67081b7b NOBUG: Add upgrade notes 2025-04-17 14:30:05 +02:00
Huong Nguyen 940e7adf84 Merge branch 'MDL-84298-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-17 10:53:34 +07:00
Huong Nguyen 21d77474b1 Merge branch 'MDL-84625-M405_close-recordset-in-core_analytics-model-add_prediction_ids' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-04-17 10:28:01 +07:00
Huong Nguyen 37de4caecd Merge branch '83713-javascript-error-xml-grades-import-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2025-04-17 10:12:17 +07:00
Huong Nguyen d87b86d997 Merge branch 'MDL-84232-405-avoid_recover_quiz_grades' of https://github.com/drobayo/moodle into MOODLE_405_STABLE 2025-04-17 08:39:32 +07:00
James C b0af55a8b8 MDL-83262 course: Refresh all-sections toggler on section delete 2025-04-17 12:46:09 +12:00
Julien Boulen ad40295e90 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
Sara Arjona f36cc666f7 Merge branch 'MDL-84820-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-16 15:24:39 +02:00
Sara Arjona 5c8bb7bf12 Merge branch 'MDL-85170-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-04-16 15:12:20 +02:00
Sara Arjona 83d42d8a92 Merge branch 'MDL-82132-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-16 14:55:10 +02:00
Huong Nguyen eb264c78a4 Merge branch 'MDL-83195-releaseanongradev2-405' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-04-16 09:40:04 +07:00
Paul Holden f09a2fc6ec 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:00:49 +01:00
Paul Holden d6b81786ee MDL-82132 user: re-factor code for generating dummy user fullname. 2025-04-15 16:00:49 +01:00
Sara Arjona e1ef9e9561 Merge branch 'MDL-84149-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:45:04 +02:00
Sara Arjona cb989eebd6 Merge branch 'MDL-84140-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:31:20 +02:00
Sara Arjona 8e97eb9d34 Merge branch 'MDL-83990-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:18:12 +02:00
Sara Arjona a56c8bace8 Merge branch 'MDL-83537-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:09:28 +02:00
Jun Pataleta 10f4326ec6 Merge branch 'MDL-83979-url-always-proxy-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-04-15 20:38:36 +08:00
Sara Arjona 99d87938cd Merge branch 'MDL-55034-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 13:36:53 +02:00
Sara Arjona 10c6c279b2 Merge branch 'MDL-78381-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 11:36:56 +02:00
Sara Arjona dc7e34360d Merge branch 'MDL-80337-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 11:30:36 +02:00
Sara Arjona c9bd62995d Merge branch 'MDL-62230-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-14 18:57:06 +02:00
Sara Arjona b352601cd3 Merge branch 'MDL-81454-405' of https://github.com/daniil-berg/moodle into MOODLE_405_STABLE 2025-04-14 18:46:28 +02:00
Sara Arjona 1f4cd6c253 Merge branch 'MDL-83550-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-14 17:54:26 +02:00
Sara Arjona 94adaf65fd Merge branch 'MDL-78886-405' of https://github.com/mwehr/moodle into MOODLE_405_STABLE 2025-04-14 17:50:21 +02:00
Sara Arjona a0b1820dcd Merge branch 'MDL-66584-405' of https://github.com/danghieu1407/moodle into MOODLE_405_STABLE 2025-04-14 17:47:40 +02:00
Wehr Mario abbf245371 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-14 17:39:36 +02:00
Sara Arjona fd0d72cce6 Merge branch 'MDL-84833-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-04-14 17:11:09 +02:00
Sara Arjona e746c166e2 Merge branch 'MDL-79464-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-04-14 17:08:31 +02:00
Daniel Ziegenberg e7825c649e MDL-84625 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-04-14 10:02:34 +02:00
James C f517047fc1 MDL-84520 course: CM anchor scrolls to specified CM 2025-04-14 12:16:10 +12:00
Jun Pataleta 8f0c7bb53c Moodle release 4.5.4 2025-04-13 09:52:45 +08:00
Jun Pataleta ba03877e5b NOBUG: Add upgrade notes 2025-04-13 09:52:45 +08:00
Amaia Anabitarte c81c68eb0b MDL-85170 mod_choice: Remove the unnecessary ul closing tag 2025-04-11 17:16:22 +02:00
Huong Nguyen ea6b5194d7 weekly release 4.5.3+ 2025-04-11 22:02:16 +07:00
Huong Nguyen 30cc6bc7eb NOBUG: Add upgrade notes 2025-04-11 22:02:16 +07:00
Sara Arjona 29d7066424 MDL-83994 course: Adapt PHPUnit to lower PHP versions 2025-04-11 19:24:35 +08:00
Huong Nguyen 455945a6f5 MDL-72704 message: Fix fetching for user has already contacted 2025-04-11 17:46:20 +08:00
Sara Arjona 8e0d7b04d3 Merge branch 'MDL-85139-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-04-11 07:05:14 +02:00
Paul Holden a50173c979 MDL-84865 cohort: improve system report validation of parameters. 2025-04-11 12:46:37 +08:00
Jun Pataleta 9cd200777e MDL-72704 message: Additional optimisation tweaks
* Return early if the `userids` params is empty or if the filtered
user IDs end up being empty.
2025-04-11 12:18:22 +08:00
Stevani Andolo 7e2931d7d3 MDL-72704 message: Fix fetching of conversation member info 2025-04-11 12:18:22 +08:00
raortegar 6ee6c52955 MDL-85104 lib: Add additional check to local URLs params. 2025-04-11 10:22:01 +07:00
James C 7fcfc7ddf2 MDL-83994 course: Respect course_can_delete_section() in AJAX 2025-04-11 13:04:31 +10:00
Paul Holden e22a3415cf MDL-84473 repository_equella: safer unserializing of file references. 2025-04-11 09:51:39 +07:00
Paul Holden 4d71278c7e MDL-84475 repository_dropbox: safer unserializing of file references. 2025-04-11 09:33:37 +07:00
Jun Pataleta 6c53e9589a MDL-85139 forms: Revert the addition of element IDs in group containers
This reverts the changes to core/element-group by MDL-61823 as it is
causing duplicate ID issues.
2025-04-11 10:11:55 +08:00
Alec Gullon 5ba4291ffd MDL-79464 mod_assign: Limit user navigation if grading fails validation 2025-04-10 16:27:51 +08:00
Andrew Gosali bdcfa3d4ca MDL-84447 mod_assign: show anonymous name when selecting user on blind submissions 2025-04-10 13:33:35 +07:00
Michael Hawkins d115be943e MDL-85152 filter_tex: Update deny list and slash handling 2025-04-10 14:20:44 +08:00
Paul Holden 1555c047b6 MDL-84478 tool_brickfield: verify sesskey prior to course analysis. 2025-04-10 13:06:41 +08:00
Paul Holden 4809272d5f MDL-84499 block_rss_client: user access checks for viewing feed. 2025-04-10 12:32:23 +08:00
Paul Holden e392ed6894 MDL-65356 mod_data: update entry editing/deletion to not leak sesskey. 2025-04-10 10:07:40 +07:00
Paul Holden ac7b6fb0cc MDL-84750 course: require user be able to view course participants. 2025-04-10 09:29:34 +08:00
David Woloszyn be007459d3 MDL-84351 tool_mfa: Fix guidance page file access
File uploaded to the guidance page were not accessible due to
null values being provided to $course and $cm params for the
tool_mfa_pluginfile.
2025-04-09 16:50:17 +07:00
raortegar 4680d53f4a MDL-84351 tool_mfa: Fix access to guide page when MFA login 2025-04-09 16:50:17 +07:00
David Woloszyn b0539cb6a8 MDL-84351 tool_mfa: Check URL against allowed components for redirect 2025-04-09 16:50:17 +07:00
David Woloszyn cf891af9ad MDL-84351 url: Add method for getting slashargument 2025-04-09 16:50:17 +07:00
Daniil Fajnberg b6665be054 MDL-81454 core: Remove incorrect @property-read annotation 2025-04-09 09:01:07 +02:00
Brendan Heywood a627b10f0c MDL-83979 repository_url: Always use the proxy for url downloads 2025-04-09 14:44:54 +10:00
Paul Holden f60d42d040 MDL-84479 tool_usertours: verify sesskey prior to tour duplication. 2025-04-08 15:10:23 +00:00
Michael Hawkins 8c88838e10 MDL-85015 tool_mfa: Include extra param in email factor cancel check 2025-04-08 15:10:23 +00:00
David Woloszyn 13b1d35b9a MDL-84784 tool_mfa: Remove enrol/index.php from no redirect 2025-04-08 15:10:23 +00:00
Sara Arjona 44fabe1c3d weekly release 4.5.3+ 2025-04-08 17:05:45 +02:00
Sara Arjona 7a7194c900 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-04-08 17:05:38 +02:00
Huong Nguyen 003eaca7c0 Merge branch 'MDL-85116-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-04-08 10:26:07 +07:00
Jun Pataleta 887281206f Merge branch 'MDL-84058-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-08 10:07:13 +08:00
AMOS bot eab5ecc1f7 Automatically generated installer lang files 2025-04-08 00:07:50 +00:00
meirzamoodle 3d1aeb5a30 MDL-84058 cli: Add a backup check for course module names
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-04-08 06:30:11 +07:00
Paul Holden ec6067ab03 MDL-82658 mod_forum: calculate maxbytes correctly in reply handler. 2025-04-07 09:38:33 +01:00
Paul Holden 2b60a7fcb9 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-07 09:37:38 +01:00
Jun Pataleta b889c63bed MDL-85116 factor_sms: Set default weight and duration properly 2025-04-07 11:14:06 +08:00
Huong Nguyen 9977cb7f33 Merge branch 'MDL-84970-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-07 10:02:02 +07:00
Jun Pataleta 36201a79cc Merge branch 'MDL-85112-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-05 12:27:25 +08:00
Paul Holden 24dfa3007c MDL-85112 message: correct use of class to hide element content. 2025-04-04 17:07:25 +01:00
Huong Nguyen a83b1500bb weekly release 4.5.3+ 2025-04-04 22:20:11 +07:00
Huong Nguyen 91ae94313f NOBUG: Add upgrade notes 2025-04-04 22:20:10 +07:00
Jun Pataleta 699e67e415 Merge branch 'MDL-84816-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-04 12:37:16 +08:00
meirzamoodle 09260f5c02 MDL-84816 message: Make sure the 'see all' link stays visible 2025-04-04 11:27:26 +07:00
Huong Nguyen b9cb8a3554 Merge branch 'MDL-84997-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-04-04 11:15:06 +07:00
Jun Pataleta ccc4940193 Merge branch 'MDL-84907-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-04-04 11:29:05 +08:00
Jun Pataleta 4951ac8010 Merge branch 'MDL-84914-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-04-04 09:47:20 +08:00
Shamim Rezaie 46dd68171a Merge branch 'MDL-61823-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-04 09:08:11 +11:00
Paul Holden 3a9109ffec MDL-61823 question: exclude file element from grouped elements hack.
This removes the duplicated label, that was being matched by the
previously wide selector to make grouped element labels visible.
2025-04-03 15:36:17 +01:00
Paul Holden 1fca5f9f42 MDL-61823 forms: ensure grouped elements have ID attribute.
This is used by the forms implementation for faux-label elements
so that when they are clicked on, the first input element of the
corresponding group is focused.
2025-04-03 14:52:02 +01:00
Jun Pataleta 299bfb23cb Merge branch 'MDL-75971-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-04-03 14:36:43 +08:00
Simey Lameze e4952de1af MDL-75971 behat: add email handling capabilities to Behat 2025-04-03 13:39:26 +08:00
Jun Pataleta dedff4dca4 Merge branch 'MDL-84823-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-03 12:14:34 +08:00
meirzamoodle ea74f93c0d MDL-84823 message: Fix ARIA attributes in popovers and messaging drawers
> ARIA Expanded
A disclosure is a widget that allows content to be
collapsed (hidden) or expanded (visible). It has two elements:
1. Disclosure button, and
2. Section of content whose visibility is controlled by the button.

ARIA Expanded must be applied to the disclosure button element
or the element with role="button" rather than the content.

> ARIA label
Move the icon title and aria-label as they are not
interactive elements to the toggle element.
The title attribute is helpful for the tooltip,
and the aria-label benefits the screen reader.
2025-04-03 11:09:45 +07:00
Huong Nguyen dffc990f30 Merge branch 'MDL-85023_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-04-03 11:07:47 +07:00
Shamim Rezaie 2814e94b5d Merge branch 'MDL-61730-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-03 06:53:33 +11:00
Shamim Rezaie 03bec5f8f5 Merge branch 'MDL-84549-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-04-03 06:42:18 +11:00
Shamim Rezaie d88721c821 Merge branch 'MDL-85000-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-04-03 06:13:09 +11:00
Jun Pataleta d8190aa5ed Merge branch 'MDL-83692-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-04-02 23:31:46 +08:00
Shamim Rezaie 313e6d060d Merge branch 'MDL-72050-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-04-03 00:38:06 +11:00
Shamim Rezaie 979494555b Merge branch 'MDL-84961-405' of https://github.com/odeialba/moodle into MOODLE_405_STABLE 2025-04-02 20:54:34 +11:00
Shamim Rezaie 5fcd1fef0f Merge branch 'MDL-80629-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-02 20:01:51 +11:00
Andrew Nicols 2f96721020 MDL-84970 editor_tiny: Use the langpack name for Moodle language 2025-04-02 16:05:36 +08:00
Paul Holden 7415adb3d3 MDL-61730 gradeimport_xml: set type on form iprestriction field. 2025-04-02 08:57:16 +01:00
Huong Nguyen c60bcbe9e4 Merge branch 'MDL-84980-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-04-02 14:25:21 +07:00
raortegar 7a2e33f624 MDL-83692 factor_sms: MFA update default values when fields are unset 2025-04-01 21:06:50 +02:00
raortegar 3819bef654 MDL-83692 factor_sms: MFA set default values when gateway list is empty 2025-04-01 21:06:00 +02:00
David Mudrák d1829095d2 MDL-84914 lang: Use fixed strings in tests, too 2025-04-01 21:05:41 +02:00
David Woloszyn d7d6a04388 MDL-83692 factor_sms: add notification for SMS gateway restriction 2025-04-01 21:02:58 +02:00
Helen Foster 472bc8e8d7 MDL-84914 lang: Import fixed English strings (en_fix) 2025-04-01 20:57:23 +02:00
Luca Bösch 5aedb477ef MDL-84549 qbank_managecategories: put "Delete" action last in menu.
This is a backport of MDL-82886.
2025-04-01 17:58:18 +02:00
Sara Arjona 137f093797 weekly release 4.5.3+ 2025-04-01 16:34:24 +02:00
Mihail Geshoski deb4ed1a38 MDL-80091 mod_assign: Fix failing behat test 2025-04-01 11:34:09 +02:00
Huong Nguyen 463fe93c8e Merge branch 'MDL-84419-405' of https://github.com/clransom/moodle into MOODLE_405_STABLE 2025-04-01 11:07:05 +07:00
Huong Nguyen ef03201ae4 Merge branch 'MDL-83856-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-01 10:48:03 +07:00
Huong Nguyen 1efd85dbd6 Merge branch 'MDL-80091-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-01 10:41:10 +07:00
Paul Holden 91c04146cb MDL-55034 blog: update external blog deletion to not leak sesskey. 2025-03-31 14:04:13 +01:00
ferran e82b8ab95e MDL-84833 course: completion feedback messages 2025-03-31 09:39:21 +02:00
Jun Pataleta bcccb84b11 Merge branch 'MDL-84826-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-03-31 14:28:23 +08:00
Andrew Nicols dd72667450 MDL-80629 env: Moodle 4.4.x and 4.5.x do not support PHP 8.4 2025-03-31 11:04:04 +08:00
Andrew Nicols eccfde8616 Merge branch 'MDL-76801-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-31 09:38:24 +08:00
Philipp Imhof 5e97d00101 MDL-85023 quiz: allow WebRTC with SEB on Mac 2025-03-28 17:50:25 +01:00
Sara Arjona a8e0d711e5 weekly release 4.5.3+ 2025-03-28 12:48:20 +01:00
Sara Arjona 00b4dd0e0d Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-28 12:48:12 +01:00
Paul Holden 2b51032624 MDL-85048 core: define mapping for new America/Coyhaique zone.
Follows same process as other timezone additions in d5ec3594.
2025-03-28 08:58:34 +00:00
Huong Nguyen a9d4123f83 Merge branch 'MDL-85048-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-03-28 15:00:37 +07:00
Simey Lameze b8b7318def MDL-85048 phpunit: add america/coyhaique timezone 2025-03-28 15:00:04 +08:00
David Woloszyn 282e257c02 MDL-84997 core_message: Hide message pill when count is zero 2025-03-28 16:48:19 +11:00
Huong Nguyen 4dbbe25ced Merge branch 'MDL-84952-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2025-03-28 08:52:16 +07:00
AMOS bot e92fbcf833 Automatically generated installer lang files 2025-03-28 00:08:44 +00:00
Paul Holden 9f60cb0ae5 MDL-84140 course: more resilient check for activity footer component. 2025-03-27 08:32:57 +00:00
Jun Pataleta 8a8223dd36 Merge branch 'MDL-85028-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-27 12:03:39 +08:00
Andrew Nicols cfcc23c1fc MDL-85028 core: Check correct var name for router config 2025-03-27 11:45:08 +08:00
Mikel Martín 09cc81eee3 MDL-84952 theme_boost: Fix spacing for collapse/expand buttons 2025-03-26 15:41:21 +01:00
toanlamt 14d365dcf0 MDL-84982 tiny_media: Fix excessive data passed to the usedfiles JS file 2025-03-26 13:56:08 +07:00
Huong Nguyen 9556bca646 Merge branch 'MDL-85001-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-26 10:53:45 +07:00
Jake Dallimore 3281052fb4 Merge branch 'MDL-85007-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-26 11:31:46 +08:00
Huong Nguyen 2001a876d7 Merge branch 'MDL-83272_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-03-26 10:27:28 +07:00
Huong Nguyen 6bca945d0e Merge branch 'MDL-84623-M405_close-recordset-in-tool_dataprivacy-expired_contexts_manager-clear_old_records' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-26 10:23:42 +07:00
Huong Nguyen 154dcc3de5 MDL-85000 media_videojs: Enable Ogv.JS Tech for all browsers 2025-03-26 09:33:57 +07:00
Huong Nguyen 8d6206acba weekly release 4.5.3+ 2025-03-26 08:55:59 +07:00
Huong Nguyen 0c436ba190 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-26 08:55:53 +07:00
Paul Holden 9263bbf8de MDL-85007 core: ensure events are dispatched against the same table.
This ensures that we always dispatch the dynamic table updated event
against the same table we just updated. Previously it was possible
for another table to receive the event, where both tables were
effectively the same instance of one another (e.g. custom reports).
2025-03-25 17:02:21 +00:00
meirzamoodle 488b0888a7 MDL-84826 theme_boost: Mantaining hover/focus colour for contrast 2025-03-25 22:54:07 +07:00
Dagoberto Robayo d2acaccee8 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-03-25 09:14:30 -05:00
Paul Holden 821336a9fc MDL-85001 reportbuilder: ensure report uniqueness in filters loader.
Where the same report exists multiple times on the page, ensure we
are still able to uniquely identify each via ID. Update the filters
module to ensure the filters form for each report is initialised.
2025-03-25 11:43:40 +00:00
danghieu1407 729e4eb792 MDL-66584 qtype_ddimageortext: Move JSON data to data-attribute 2025-03-25 16:44:50 +07:00
Andrew Nicols c99cd95fb3 Merge branch 'MDL-84893-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-03-25 11:06:43 +08:00
Andrew Nicols 77597208b4 Merge branch 'MDL-84112-MOODLE_405_STABLE-fix_bigbluebutton_defaultcompletion_performance' of https://github.com/praxisdigital/moodle into MOODLE_405_STABLE 2025-03-25 10:55:10 +08:00
Andrew Nicols 1ccbfbf5db Merge branch 'MDL-84335_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-03-25 10:50:12 +08:00
Andrew Nicols 09c0b90348 Merge branch 'MDL-83469-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-03-25 10:47:07 +08:00
Andrew Nicols 3f68ca07a2 Merge branch 'MDL-76668-405' of https://github.com/cameron1729/moodle into MOODLE_405_STABLE 2025-03-25 10:37:55 +08:00
Philipp Imhof 1498877814 MDL-84335 question: check for null before accessing property
in function check_hint_file_access
2025-03-24 17:44:10 +01:00
Sara Arjona b42be8e410 Merge branch 'MDL-84940-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-03-24 17:26:35 +01:00
Odei Alba 3fc1fd23f0 MDL-84961 core: Avoid loading the hidden table under the chart
Remove the table from under the chart when it is disabled, instead of just hiding it.
2025-03-24 17:26:18 +01:00
Paul Holden ecf19e63a0 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-03-24 15:29:48 +00:00
Sara Arjona 24dddd0a4a MDL-84980 pix: Replace insert_page_break icon
To provide a visually clearer and more user-friendly quiz experience,
the 'add new page' icon has been standardized to 'fa-plus'.
2025-03-24 12:55:41 +01:00
Huong Nguyen 86db1e05f9 Merge branch 'MDL-83160-405' of https://github.com/mickhawkins/moodle into MOODLE_405_STABLE 2025-03-24 14:54:26 +07:00
AMOS bot 21f4f61ac7 Automatically generated installer lang files 2025-03-22 00:07:54 +00:00
Huong Nguyen f501225d0f weekly release 4.5.3+ 2025-03-21 22:02:41 +07:00
Huong Nguyen 090ab30bde Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-21 22:02:36 +07:00
Mark Johnson df0f4456bf MDL-83272 qbank_managecategories: Fix exclusion of current category
The "currentcat" parameter contains the categoryid, but is being
compared to a string like "contextid,categoryid" so was not being
matched correctly to exclude the current category from the list of
options.
2025-03-21 10:46:02 +00:00
Glenn Poder 91e18d9ea2 MDL-76668 navigation: Fix navigation for results in single activity 2025-03-21 13:51:38 +08:00
Huong Nguyen 508a4afaa7 Merge branch 'MDL-84446-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-21 11:17:52 +07:00
Huong Nguyen 381c4876f0 Merge branch 'MDL-84867-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2025-03-21 09:05:48 +07:00
AMOS bot 2968116c9f Automatically generated installer lang files 2025-03-21 00:07:53 +00:00
Andrew Nicols 6e7c716eb3 Merge branch 'MDL-84803-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-03-21 07:56:07 +08:00
Paul Holden 8dc4480c50 Merge branch 'MDL-81655_405' of https://github.com/larsbonczek/moodle into MOODLE_405_STABLE 2025-03-20 15:14:24 +00:00
Amaia Anabitarte e0ed78c080 MDL-84803 mod_feedback: Make titles unique 2025-03-20 16:08:36 +01:00
Paul Holden 97bf649bc4 MDL-84538 lang: remove duplicated badge language string. 2025-03-20 15:04:29 +00:00
Paul Holden 649a58cf99 Merge branch 'MDL-84538-M405_fix-duplicated-language-strings' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-20 14:45:03 +00:00
Daniel Ziegenberg a44e02e755 MDL-84538 language: Remove duplicated lang string entries
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-20 13:57:40 +01:00
ferran 65f0345ec7 MDL-84940 block_section_links: omit subsections 2025-03-20 13:04:44 +01:00
Mikel Martín 7b759337f1 MDL-84867 tool_behat: Improve SCSS deprecation failure information
- Improve SCSS deprecated-styles @mixin to receive a paramenter of the
  deprecated selector.
- Update all the current deprecated styles that are using deprecated-styles @mixin
  to include the deprecated selector as parameter.
- Improve the 'look_for_deprecated_styles' behat function.
2025-03-20 10:40:57 +01:00
Huong Nguyen 6375c36911 Merge branch 'MDL-83535-MOODLE_405_STABLE' of https://github.com/TobiGa/moodle into MOODLE_405_STABLE 2025-03-20 15:43:29 +07:00
Paul Holden e4c81e3f5f 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-03-19 19:41:51 +00:00
Sara Arjona df05a99128 Merge branch 'MDL-84683-MOODLE_405_STABLE' of https://github.com/jfederico/moodle into MOODLE_405_STABLE 2025-03-19 16:19:31 +01:00
Paul Holden a955ef2bca MDL-84820 moodlenet: correct activity modal icon size/alignment. 2025-03-19 10:25:55 +00:00
Tobias Garske 788dbe1cd1 MDL-83535 theme_boost: Prevent sticky-footer from linewrapping 2025-03-19 10:05:10 +00:00
ferran 38f8e58402 MDL-83469 core_courseformat: alternative new_module actions
The previous create_module actions uses section number instead of
section id. This produces several bugs when sections are moved around
the course in edit mode. This issue implements a new_module action with
all related mutations and webservices. The new one uses section id
instead of section number.
2025-03-19 10:06:34 +01:00
Jun Pataleta ef3f1c4625 Merge branch 'MDL-84905-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-19 13:18:11 +08:00
David Woloszyn 98ac01fd8c MDL-84893 core_message: Fix message drawer overlap and truncation 2025-03-19 13:58:04 +11:00
Huong Nguyen d79da7066e Merge branch 'MDL-84431-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-19 09:55:19 +07:00
Huong Nguyen 03e37cf42c Merge branch 'MDL-83499-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-19 09:46:16 +07:00
Huong Nguyen 770ff6e482 MDL-84907 backup: Fix invalid CTRL characters regex 2025-03-19 09:22:47 +07:00
Huong Nguyen 5dfdf96b5d MDL-84905 Behat: Fix I set the following administration settings failure 2025-03-19 09:17:19 +07:00
Sara Arjona d15172627c weekly release 4.5.3+ 2025-03-18 14:17:39 +01:00
Anders Rasmussen ec1e8dfb18 MDL-84112 bigbluebuttonbn: Added user output only if bbactivity is set 2025-03-18 11:30:07 +01:00
Andrew Gosali d0f7b7f504 MDL-83856 gradingform_guide: fix remark format to always be FORMAT_HTML 2025-03-18 16:30:59 +07:00
Andrew Gosali 8029fb707a MDL-80091 assign grade: select the first user when changing filter
(if the previously selected user is no longer in the filtered list)
2025-03-18 15:19:56 +07:00
Andrew Gosali 4fe75e75cb MDL-84539 report_participation: use capability viewanonymousevents 2025-03-18 11:32:12 +07:00
Andrew Nicols ec65d872e3 Merge branch 'MDL-84222-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-18 08:03:52 +08:00
Andrew Nicols d8bbf50962 Merge branch 'MDL-84541-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-18 07:18:12 +08:00
Laurent David 2da0c5dae6 MDL-84541 core_course: Do not check change when pressing reset
* When the course reset form is submitted, we acknowledge that form
has been changed so we don't need to watch it anymore
2025-03-17 15:30:36 +01:00
Huong Nguyen bf05268f96 Merge branch 'MDL-83591-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-17 16:00:34 +07:00
Andrew Gosali 3d7656d713 MDL-83550 gradingform_rubric: fix submit no grade when remark disabled 2025-03-17 14:50:27 +07:00
Andrew Gosali 61b05eeb97 MDL-83591 grade: fix issue when item is already deleted
The deleted grade is causing the error while using its id that was previously saved in the session variable
2025-03-17 10:47:32 +07:00
Paul Holden a82df2e07a MDL-80337 availability: more robust checking for plugin class presence.
Co-authored-by: Dustin Brisebois <dustin.brisebois@lambdasolutions.net>
2025-03-16 19:27:29 +00:00
Daniel Ziegenberg 73cad3a670 MDL-84623 privacy: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:53:55 +01:00
Jun Pataleta b3931cdb95 Moodle release 4.5.3 2025-03-15 20:19:40 +08:00
Jun Pataleta fd5c871a97 NOBUG: Add upgrade notes 2025-03-15 20:19:40 +08:00
Andrew Nicols a09fd050ec MDL-84879 core: Remove stacktrace args from exceptions 2025-03-15 14:35:10 +08:00
Ilya Tregubov b3dedc5af3 MDL-81945 gradereport_singleview: Fix hidden grade handling.
Seems to become broken after IR refactoring.
2025-03-14 15:20:24 +00:00
Ilya Tregubov a61646a0d1 MDL-81945 gradereport_user: Don't reveal visibility by color.
Seems like dimmed_text class was added without proper check so
user can guess if item is hidden.
2025-03-14 15:20:24 +00:00
Ilya Tregubov e2fa2076e4 MDL-81945 gradereport_user: Behat tests for user report. 2025-03-14 15:20:24 +00:00
Ilya Tregubov ed4b5ee771 MDL-81945 gradereport_singleview: Behat tests for singleview report. 2025-03-14 15:20:24 +00:00
Ilya Tregubov f01cda2aeb MDL-81945 gradereport_grader: Behat tests for grader report 2025-03-14 15:20:24 +00:00
Ilya Tregubov db02eee7d5 MDL-81945 core_grades: create Behat step for grades action menu. 2025-03-14 15:20:24 +00:00
Ilya Tregubov 00e68b4589 MDL-81945 gradereport_singleview: Fix hidden grades handling.
If a user is lacking moodle/grade:viewhidden he should not be able
to view or modify grades.
2025-03-14 15:20:24 +00:00
Sara Arjona f6bb25b56f weekly release 4.5.2+ 2025-03-14 16:14:01 +01:00
Sara Arjona c01c06499b NOBUG: Add upgrade notes 2025-03-14 16:14:01 +01:00
Sara Arjona 3078c375c1 Merge branch 'MDL-83541-405-behat' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-14 11:14:33 +01:00
Huong Nguyen d7d509f436 MDL-83541 qtype_ddimageortext: Fix Behat failure 2025-03-14 16:55:29 +07:00
Huong Nguyen d058754256 MDL-83541 qtype_numerical: Fix incorrect test hints 2025-03-14 09:21:13 +01:00
Huong Nguyen 77d88f337a Merge branch 'MDL-83541-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-14 11:59:31 +07:00
Huong Nguyen 197fbf5537 MDL-83541 mod_quiz: Fix PHPUnit failure 2025-03-14 10:23:04 +07:00
Mark Johnson cfb7322101 MDL-83541 qtypes: Define excluded hash fields and test hints 2025-03-14 10:21:21 +07:00
Mark Johnson b7e44a928e MDL-83541 question/quiz: restoring questions with identical stamps
Historically it was possible, through a series of question restores,
moves and edits, to end up with multiple questions in the same
category with the same stamp, but differences in other question
or answer fields. This, combined with changes in versions, led
to errors when restoring or duplicating quizzes using these questions.

While recent changes have made it impossible to create this situation
in current Moodle versions, as any edits will create a new question
version with a new stamp, this situation may exist on long-standing
Moodle sites which have been upgraded since pre-4.0.

This change performs a much wider-ranging comparison of restored
existing questions, generating a hash of all the data for a question in
a backup file, and a corresponding hash for each question in the target
category, to decide if a restored question matches a question already in
the database.
2025-03-14 10:21:17 +07:00
Mark Johnson 589d4edc00 MDL-83541 qtype_calculated: Add missing field to backups 2025-03-14 10:21:12 +07:00
Mark Johnson 905f25d484 MDL-83541 qtype_ddimageortext: Fix test hint text
Ensure that hint text is unique to workaround MDL-84261 for
backup/restore testing.
2025-03-14 10:21:08 +07:00
Paul Holden d767936052 MDL-83990 course: ensure course start/end dates set in external call. 2025-03-13 17:53:46 +00:00
Paul Holden c4fc0978b1 MDL-83537 check: confirm presence of instance action link. 2025-03-13 17:52:42 +00:00
Sara Arjona 927d5013f0 Merge branch 'MDL-83634-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-03-13 16:28:16 +01:00
Michael Hawkins 536aeb7fac MDL-83160 core: Update security.txt expiry 2025-03-13 20:35:48 +08:00
Sara Arjona 578e89a8f8 Merge branch 'MDL-84624-M405_close-recordset-in-core-task-h5p_clean_orphaned_records_task-execute' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-13 13:20:28 +01:00
Sara Arjona 67bc64b4e7 Merge branch '83136-fix-unknowncategory-message-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2025-03-13 12:38:46 +01:00
Sara Arjona e4d623aed4 Merge branch 'MDL-77646-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-03-13 12:33:46 +01:00
Jun Pataleta 0c2f6aea38 Merge branch 'MDL-84543-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-13 17:01:43 +08:00
Stefan Hanauska 2b1f1b05f0 MDL-72050 question: Delete import draftfiles immediately 2025-03-13 08:17:34 +01:00
Stefan Hanauska 09d3d56db5 MDL-72050 filelib: Add function for deleting draftarea 2025-03-13 08:17:34 +01:00
Jun Pataleta 38a927a8e3 Merge branch 'MDL-80386_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2025-03-13 12:35:44 +08:00
Jun Pataleta 38fdb6f843 Merge branch 'MDL-65233-405-no-midnight' of https://github.com/sim642/moodle into MOODLE_405_STABLE 2025-03-13 12:21:34 +08:00
danghieu1407 66ebd7a55a MDL-84708 question: Fixing layout answer box issue causing images 2025-03-13 10:28:55 +07:00
Huong Nguyen 472f2af220 Merge branch 'MDL-84640-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-03-12 16:32:15 +07:00
Angelia Dela Cruz 42fbf15e51 MDL-84640 analytics: Behat for obtaining prediction models insights 2025-03-12 16:40:40 +08:00
Jun Pataleta dd696fc542 MDL-83634 tool_brickfield: Test the image alt text check's severity 2025-03-12 13:22:22 +08:00
Jun Pataleta 9ac7aa2b16 MDL-83634 tool_brickfield: Increase the alt text limit to 750 characters
This is consistent with the alt-text length limit of 750 characters in
Moodle's editor.
2025-03-12 13:22:22 +08:00
Jun Pataleta 2d1fdbfdf1 MDL-83634 tool_brickfield: Downgrade image alt text check's severity
Given that
* There is no formally defined limit for alt text length,
* Current versions of screen readers can read alt texts longer than
125 characters,
* Accessibility checkers like axe DevTools, WAVE, etc., do not raise
errors or warnings about long image alt texts.

This patch:
- Downgrades the default severity for the `img_alt_is_too_long`
check from `BA_TEST_SEVERE` to `BA_TEST_SUGGESTION`.
- Updates the `checkdesc:imgaltistoolong` lang string to be more of a
reminder/suggestion rather than an error.
2025-03-12 13:22:22 +08:00
Huong Nguyen dfdef6559c Merge branch 'MDL-84578_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-03-12 10:39:35 +07:00
Huong Nguyen e3acb02b21 Merge branch 'MOODLE_405_STABLE_MDL-84651' of https://github.com/mattporritt/moodle into MOODLE_405_STABLE 2025-03-12 08:42:44 +07:00
Conn Warwicker a79d05937d MDL-80386 core_question: Add "show all" button to filters.
This adds the "Show All" button to the question bank filters
to allow users to select all questions easily.

It also adds new behat tests to test the functionality.
2025-03-11 18:12:39 +00:00
Paul Holden 8c178a1acb MDL-78381 course: observe default "showactivitydates" in external call. 2025-03-11 17:33:26 +00:00
Sara Arjona 327677fa6e Merge branch 'MDL-84801-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-11 17:26:20 +01:00
Paul Holden 1c4b98c2d2 MDL-84787 calendar: restore course-specific management page parameter. 2025-03-11 13:32:52 +00:00
Derek Henderson 392f443e5c MDL-77646 lib: Use iframe instead of object to display pdf. 2025-03-11 13:52:48 +01:00
Sara Arjona 1e51bc0b9c weekly release 4.5.2+ 2025-03-11 13:02:26 +01:00
Sara Arjona 4c2a750ea2 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-11 13:02:19 +01:00
Lars Bonczek dd633f1691 MDL-83563 form: Fix hideIf and disabledIf dependent on multiselects 2025-03-11 12:14:11 +01:00
Paul Holden b64ef9cb84 MDL-84480 files: correct text formatting params when filtering files. 2025-03-11 10:30:05 +00:00
Jun Pataleta c005142d52 Merge branch 'MDL-84416-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-03-11 11:06:32 +08:00
Huong Nguyen 535d23ae32 MDL-84801 Behat: Fix Expand all fieldsets and advanced elements failure 2025-03-11 09:20:26 +07:00
AMOS bot 50c7ababe2 Automatically generated installer lang files 2025-03-11 00:07:56 +00:00
Conn Warwicker dd8b44fdb6 MDL-84578 qbank_managecategories: Add category validation.
- This adds simple logic check to filter.js to stop user
submitting an invalid category.
- This adds new behat steps to check this validation.
- This adds a new behat test to test this in managecategories.
2025-03-10 14:06:47 +00:00
Sara Arjona 3e34ad3372 Merge branch 'MDL-84313-405' of https://github.com/dpalou/moodle into MOODLE_405_STABLE 2025-03-10 11:35:46 +01:00
Paul Holden 7abcb5d0f8 Merge branch 'MDL-84620-M405_close-recordset-in-tool_brickfield-manager-check_scheduled_areas' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-10 10:29:38 +00:00
Daniel Ziegenberg 740a2e1e63 MDL-84620 accessibility: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:41:14 +02:00
Sara Arjona 5b796d20f4 Merge branch 'MDL-84256-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-10 11:16:42 +01:00
Sara Arjona c290790e4d Merge branch 'MDL-84398-405' of https://github.com/pedrojordao/moodle into MOODLE_405_STABLE 2025-03-10 11:12:11 +01:00
Sara Arjona 96423fc89b MDL-84416 backup: Add backup_import_badges setting
While MDL-43938 introduced badge importing, two tasks were left incomplete.

1) Creating the backup_import_badges setting for default import behaviour.
2) Preventing the inclusion of badges during activity duplication.

This commit implements them.
2025-03-10 08:17:05 +01:00
AMOS bot cae04d6818 Automatically generated installer lang files 2025-03-10 00:07:44 +00:00
Andrew Nicols d68cf00b25 MDL-84543 core: Basepath guess should work on root domains 2025-03-08 21:42:16 +08:00
Jun Pataleta ae31be1e34 weekly release 4.5.2+ 2025-03-08 11:44:23 +08:00
Laurent David 8d2a6b9032 MDL-84256 core_course: Fix course icon in course index page
* In RTL language the icon should follow the course name intead
of being upfront
2025-03-07 11:18:01 +01:00
Andrew Gosali a13a005337 MDL-76801 mod_assign: grader ux fixes on "requires grading"
- refresh list when the user is graded hence no longer in the list
- hide the CTA buttons when no user is selected
2025-03-07 15:56:24 +08:00
Matt Porritt 3425ea6720 MDL-84651 AI: Extend AI model support in placement webservice
Support finish reasons from AI services that are PARAM_ALPHAEXT.
This allows supporting of more models.
2025-03-07 16:56:57 +11:00
Nathan Nguyen d1bb4b21e7 MDL-84233 core_user: fix unit test 2025-03-07 16:49:00 +11:00
Jun Pataleta 73c7844ae1 Merge branch 'MDL-84551_405' of https://github.com/jonof/moodle into MOODLE_405_STABLE 2025-03-07 10:04:55 +08:00
Huong Nguyen d3d1b71bda Merge branch 'MDL-84737-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-03-07 08:33:22 +07:00
Andrew Nicols 1a8c5dff7f Merge branch 'MDL-81623-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-07 09:25:21 +08:00
Andrew Nicols 8035c1f36e Merge branch 'MDL-84729-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-07 09:10:12 +08:00
Andrew Nicols 5f77e55e70 Merge branch 'MDL-84532-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-03-07 09:08:15 +08:00
Sara Arjona daf68856ad Merge branch 'MDL-83720-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-06 14:55:56 +01:00
Andrew Nicols fa874a091b Merge branch 'MDL-84723-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-03-06 11:50:38 +08:00
Simey Lameze 35c88aac05 MDL-84723 behat: final improvements and fixes to the test
This commit does few things:
- Remove unnecessary grade field to assign generator.
- Remove unnecessary comment lines.
- Update the warning message assertion to use the no-break space unicode character.
2025-03-06 11:23:57 +08:00
Angelia Dela Cruz 45ba902f43 MDL-84723 gradingform: Behat for maximum grade mismatch in marking guide 2025-03-06 11:23:57 +08:00
Andrew Nicols 88e8071992 Merge branch 'MDL-84295-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-06 09:19:53 +08:00
Andrew Nicols e8a972b31e Merge branch 'MDL-75442-405' of https://github.com/StudiUM/moodle into MOODLE_405_STABLE 2025-03-06 09:11:26 +08:00
Laurent David 03adf4a38d MDL-84295 core_theme: Fix margin for activity description list
* Make sure lists in activity descriptions are displayed
identically on course page and activity pages
2025-03-05 10:13:27 +01:00
Sara Arjona 987acd27c8 Merge branch 'MDL-84002-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-05 08:58:20 +01:00
Andrew Nicols 37f2eb5e6c Merge branch 'MDL-82170-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-05 14:40:16 +08:00
Huong Nguyen 579b13974a Merge branch 'MDL-84425-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-03-05 10:51:10 +07:00
Jun Pataleta df9697c06a MDL-84737 qbank_managecategories: Disable max-line-length style rule 2025-03-05 11:29:33 +08:00
Angelia Dela Cruz 7ee7345443 MDL-84425 theme_boost: Behat for course section selector unavailable 2025-03-05 11:17:35 +08:00
Daniel Ziegenberg 1e12c4c9f2 MDL-84624 h5p: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:35:36 +01:00
Sara Arjona 76b8b81458 weekly release 4.5.2+ 2025-03-04 16:13:43 +01:00
Sara Arjona d56feffe7d Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-04 16:13:36 +01:00
Paul Holden f417f99261 MDL-62230 mod_feedback: define exporter format for name/presentation. 2025-03-04 14:13:02 +00:00
Huong Nguyen 05240f478a MDL-84729 core: Use core\clock for Tasks
This will help to solve the random failure on "test_adhoc_task_get_first_starting_time"
2025-03-04 16:35:09 +07:00
Laurent David 4cd5028c1a MDL-83499 core_courseformat: Fix section duplication
* When we duplicate a section with multiple subsections it
should increment the sectionum accordingly.
2025-03-04 09:07:35 +01:00
Huong Nguyen 7ffc30f15c Merge branch 'MDL-84595-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-04 10:40:09 +07:00
Huong Nguyen ea6b15e87a MDL-84222 lib: PHPMailer - Renew the expired token
This patch includes:
 - Get a new token if it is not available.
 - Renew the token if it is expired using the refresh token.
2025-03-03 14:30:34 +07:00
AMOS bot e7cd712f00 Automatically generated installer lang files 2025-03-02 00:08:16 +00:00
jfederico 588f7b6c0c MDL-84683 mdl_bigbluebuttonbn: Hide Settings for RecordingsOnly 2025-02-28 15:03:07 +00:00
Pedro Jordao 81df76169b MDL-84398 libraries: Configure locale property for ChartJs
ChartJs has a property called locale that makes possible to format scale
numbers according to a language. This way we ensure that decimal places
will be displayed correctly in the chart labels and tooltips.
2025-02-27 21:37:36 -03:00
Paul Holden 63ff5f9e56 MDL-81623 admin: sensitive toggle when prompting for upgrade key. 2025-02-27 21:14:02 +00:00
Sara Arjona 269d534310 weekly release 4.5.2+ 2025-02-27 16:54:49 +01:00
Huong Nguyen 2a18bc5a99 Merge branch 'MDL-84327-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-02-27 11:10:21 +07:00
Huong Nguyen 612e1a1717 Merge branch 'MDL-80351-405' of https://github.com/pedrojordao/moodle into MOODLE_405_STABLE 2025-02-27 10:13:26 +07:00
Huong Nguyen d9c6b13d3d Merge branch 'MDL-84639-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-27 09:25:10 +07:00
Simey Lameze 1d7a3099c6 MDL-84424 behat: add template_competencies generator and improve test 2025-02-27 07:42:57 +08:00
Angelia Dela Cruz 6b08395f13 MDL-84424 tool_lp: admin can create learning plans from template 2025-02-27 07:42:16 +08:00
Sara Arjona de537c2809 Merge branch 'MDL-84609-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-02-26 16:19:47 +01:00
Sara Arjona 40d6c3b81d Merge branch 'MDL-84584-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-02-26 08:04:09 +01:00
Jun Pataleta 0b2667b633 Merge branch 'MDL-83970-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-02-26 14:36:00 +08:00
Andrew Gosali a42e9c1392 MDL-84431 mod_forum: fix visual issue on forum reply button :focus 2025-02-26 10:13:11 +07:00
Jun Pataleta 5d68066d44 Merge branch 'MDL-83674-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-02-26 07:19:38 +08:00
Paul Holden bc1cfb05eb MDL-84639 reportbuilder: replace deprecated trait test mocking.
"getObjectForTrait() is deprecated and will be removed in PHPUnit 12
without replacement."

See: https://github.com/sebastianbergmann/phpunit/issues/5244
2025-02-25 08:51:32 +00:00
meirzamoodle 872dbc575b MDL-83970 core_ai: Updated get_name() to return the provider's name
The changes also affect the AI usage report. The provider column will show
the provider plugin name instead of the plugin class in the database.

Co-authored-by: Stevani Andolo <stevani.andolo@moodle.com>
2025-02-25 14:12:09 +07:00
Huong Nguyen cc9bccc4e3 Merge branch 'MDL-84051-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-02-25 11:00:51 +07:00
Simey Lameze ab2eca0301 MDL-84609 behat: add required entities and fix failures
This commit also fix some typos and misaligned pipes around the
changed steps.

Signed-off-by: Simey Lameze <simey@moodle.com>
2025-02-25 11:48:03 +08:00
Angelia Dela Cruz e75580602b MDL-84609 tool: Replaced tool_lp generators with standard generators 2025-02-25 11:48:03 +08:00
meirzamoodle 853071ad9b MDL-84051 core: Call parent function to clear session data in the table 2025-02-25 08:55:52 +07:00
Paul Holden 254e94d4d3 MDL-84298 mod_assign: target only first label for grade popout button. 2025-02-24 22:22:09 +00:00
Van Binh Dang 08551968b0 MDL-75442 quiz: Highlight error message when manually grading 2025-02-24 14:31:36 -05:00
Paul Holden 8c35c29b06 MDL-84597 blog: confirm blogs enabled prior to settings nav access. 2025-02-24 12:53:33 +00:00
Mihail Geshoski d617d8be89 MDL-84532 qtype_ordering: Fix failing query in mssql on upgrade
The SELECT statement can only include columns that are part of the
GROUP BY clause. To resolve this issue, instead of including all columns
('*'), only the 'id' column is now included in the SELECT statement,
while still preserving the existing GROUP BY statement. This column is
the only one needed to identify the relevant qtype_ordering_options
record that requires updating in the next step.
2025-02-24 18:01:53 +08:00
sam marshall 9a968aa29e MDL-83674 Files: pluginfile.php debugging if user not allowed course 2025-02-21 14:12:02 +00:00
Julien Boulen 55d4ab8915 MDL-83136 course: Add missing value on unknowncategory exception message 2025-02-21 09:25:18 +01:00
Huong Nguyen 5a8b259752 weekly release 4.5.2+ 2025-02-21 10:15:08 +07:00
Huong Nguyen b31b1a02f3 NOBUG: Add upgrade notes 2025-02-21 10:15:08 +07:00
raortegar ab85ec15c7 MDL-84327 mod_quiz: Quiz notification excludes suspended users.
Only active users will receive "quiz opens soon" notifications.

Co-authored-by: Leon Stringer <leonstr@users.noreply.github.com>
2025-02-20 16:33:05 +01:00
raortegar 84b9f41015 MDL-84327 mod_assign: Suspended account error
Change list_participants() to exclude both suspended users and users
with auth='nologin' when show_only_active_users() is true.  This
prevents the failure of notification tasks when such users are enrolled
in the course.

Co-authored-by: Leon Stringer <leonstr@users.noreply.github.com>
2025-02-20 16:33:05 +01:00
raortegar 1eb612c42b MDL-84327 mod_assign: Add availability conditions in assign notification
Only users meeting availability conditions (time, group, etc.) in an assignment,
will receive the messages for Assignments notifications
2025-02-20 16:33:05 +01:00
raortegar ceeaa53d84 MDL-84327 mod_quiz: Add availability conditions in quiz notification
Only users meeting availability conditions (time, group, etc.) in a quiz,
will receive the message for quiz opens soon notifications
2025-02-20 16:33:05 +01:00
Andrew Nicols 638e129d3d MDL-84595 tool_behat: Allow accessibility tests to run for a single Node 2025-02-20 22:27:25 +08:00
Jun Pataleta 5d9eca1a47 Merge branch 'MDL-84448-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-02-20 12:10:01 +08:00
Simey Lameze 4b2e6a1536 MDL-84448 behat: return null if theme has no config 2025-02-20 12:00:33 +08:00
Amanda Doughty e5c6443bd8 MDL-84448 lib: Fixed behat context check for grandchild themes 2025-02-20 12:00:33 +08:00
Jun Pataleta f1fa047cc4 Merge branch 'MDL-84592-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-20 11:45:36 +08:00
Huong Nguyen a39ae19602 Merge branch 'MDL-84528-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-20 10:16:44 +07:00
Jun Pataleta 70166de9a0 Merge branch 'MDL-84590-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-20 10:49:55 +08:00
Andrew Nicols 3913fd8b62 MDL-84592 tool_behat: Improve accessibility failure information 2025-02-20 10:26:20 +08:00
Andrew Nicols 4e7d6aaafc MDL-84590 tool_behat: Axe tests must use all wcag rules
Rules are not additive. That is to say that the wcag22a tag does not
include wcag21a or wcag2a. They all need to be specified.
2025-02-20 09:59:38 +08:00
Stefan Hanauska e8f7dbd6ea MDL-84584 badges: Don't delete all draft files 2025-02-19 12:16:45 +01:00
Sara Arjona 12d9e0fa1e Merge branch 'MDL-83784_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-02-19 11:58:29 +01:00
Conn Warwicker 3731263712 MDL-83784 mod_quiz: Fix quiz unusable if question category missing.
Random questions set to question categories which no longer exist
was throwing an error making it impossible to use or edit the quiz
to fix it. This will now allow the user to view the questions and
edit the quiz in order to fix the problem of the missing category.
2025-02-19 09:22:05 +00:00
Sara Arjona 61c1ce2b67 Merge branch 'MDL-84300-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-19 07:12:33 +01:00
Huong Nguyen aeb8c8eab1 MDL-84341 qbank_history: Behat cleanup 2025-02-18 20:40:21 +07:00
Huong Nguyen 6e4d4e8f92 Merge branch 'MDL-84341_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-02-18 20:40:09 +07:00
Sara Arjona c55f5b5add Merge branch '84348-hide-h5p-preview-message-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2025-02-18 13:12:14 +01:00
Andrew Nicols c89067d1b8 MDL-84446 core: Check existence of pcntl_signal 2025-02-18 06:20:41 +08:00
Conn Warwicker 0d6c468ea5 MDL-84341 qbank_history: Fix version ordering
Previously the version ordering was done on timecreated which
wasn't always correct. This now uses the version number instead.

Also set the default sorting on the history page to be version.

Also backports a change to the behat question generator to let
us set the value of fields on updated questions in the step.
2025-02-17 11:47:09 +00:00
Jonathon Fowler 1f4889e687 MDL-84551 tiny_aiplacement: fix generateimage quality selection 2025-02-17 11:29:46 +10:00
Leon Stringer 9d45e32f78 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-02-14 12:15:52 +00:00
Jun Pataleta 3c848c4dce weekly release 4.5.2+ 2025-02-14 09:53:42 +08:00
Jun Pataleta 654da32364 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-02-14 09:53:30 +08:00
Paul Holden 75b281479a MDL-84528 tag: define missing language string for related tags area. 2025-02-13 15:03:55 +00:00
Pedro Jordao 5264faaa19 MDL-80351 libraries: ChartJS axis options being ignored
When chartJs was updated to version 3.8.0, chart axis were now accessed
as a object property instead of an array element. This solution aims to
update the way we set the axis properties, aiming to display the labels
and other properties.
2025-02-13 02:25:20 -03:00
Huong Nguyen df3e417cfc Merge branch 'MDL-83579-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-13 11:11:34 +07:00
Jun Pataleta d0d3baa8e2 Merge branch 'mdl-83306_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-02-13 11:54:55 +08:00
Huong Nguyen 1c1d7d6c17 Merge branch 'MDL-84147-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-13 10:53:26 +07:00
Jun Pataleta db9de727fe Merge branch 'MDL-84102-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-02-13 11:48:54 +08:00
Huong Nguyen e3b68ffc48 Merge branch 'MDL-83645-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-13 10:42:55 +07:00
Huong Nguyen 5132b81172 Merge branch 'MDL-69142-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-13 10:33:33 +07:00
Huong Nguyen 83011d028b Merge branch 'MDL-79265-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-02-13 09:15:40 +07:00
Simmo Saan 4f69959085 MDL-65233 course: remove usergetmidnight from reset time shift 2025-02-12 21:57:09 +02:00
Simmo Saan f607194edf MDL-65233 course: add reset time shift test with non-midnight hour 2025-02-12 21:57:09 +02:00
Angelia Dela Cruz c1c60e69dc MDL-84102 message: Behat for setting default notification preferences 2025-02-12 15:24:36 +08:00
Huong Nguyen 82823372b9 Merge branch 'MDL-83452-addbodyclass-405' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-02-12 11:30:28 +07:00
Huong Nguyen 175799de40 Merge branch 'MOODLE_405_MDL-82601' of https://github.com/danielneis/moodle into MOODLE_405_STABLE 2025-02-11 11:46:31 +07:00
Huong Nguyen 1c9006cc0b Merge branch 'MDL-82440-MOODLE_405_STABLE' of https://github.com/praxisdigital/moodle into MOODLE_405_STABLE 2025-02-11 11:39:21 +07:00
Huong Nguyen b3a3a6a407 Merge branch 'MDL-84414-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-02-11 11:17:29 +07:00
Angelia Dela Cruz f26819a752 MDL-84414 gradingform_guide: Behat test to set marking guide as ready 2025-02-11 10:47:04 +08:00
Andrew Nicols 49b0ef223f MDL-84300 core: Support nested templates in routed API 2025-02-11 09:32:50 +08:00
Andrew Nicols 44e4aedc03 MDL-84300 router: Path params should be aware of unlimited captures
Where a path contains an unlimited parameter, designated by `{name:.*}`
or `{name:.*?}` it may be empty and therefore cannot be required.
2025-02-11 09:32:45 +08:00
AMOS bot 7d7fee6b44 Automatically generated installer lang files 2025-02-11 00:09:24 +00:00
Paul Holden b4791b688d MDL-69142 tool_cohortroles: fix table ordering by role name. 2025-02-10 12:34:04 +00:00
Sara Arjona a0f4cf9ff4 Merge branch 'MDL-67462-405' of https://github.com/albertgasset/moodle into MOODLE_405_STABLE 2025-02-10 09:38:42 +01:00
Paul Holden e6f30c5384 MDL-84002 mod_assign: consistently style attempt expand/collapse icon. 2025-02-09 20:40:05 +00:00
Sara Arjona cd6600da14 Moodle release 4.5.2 2025-02-07 12:18:23 +01:00
Sara Arjona 7984e7c547 NOBUG: Add upgrade notes 2025-02-07 12:18:22 +01:00
Katie Ransom f9a2a3332d MDL-84419 core_task: Scheduled task timing is wrong when DST begins
This was only an issue for tasks set to run in the hour when the clocks
change for daylight saving time. E.g. if a task is set to run at 1am
every day in the Europe/London timezone, then the day the clocks go
forward gets skipped because 1am doesn't exist on that day.
2025-02-07 09:26:35 +00:00
Albert Gasset f327dadf52 MDL-67462 badges: Improve tests of external functions
Now units tests covering external functions `core_badges_get_badge`,
`core_badges_get_user_badges` and `core_badges_get_user_badge_by_hash`
check all badge fields,  including cases where the user has no
permission to view all details.
2025-02-07 09:09:00 +01:00
Albert Gasset 352beaae35 MDL-67462 badges: Fix badge alignments returned in external functions 2025-02-07 09:09:00 +01:00
Sara Arjona 904dae88b9 weekly release 4.5.1+ 2025-02-06 16:21:45 +01:00
Sara Arjona f9137c531c NOBUG: Add upgrade notes 2025-02-06 16:21:45 +01:00
Hieu Nguyen Dang 47ce8f57b7 MDL-79265 question bank: fix which questions are listed with hidden
This fixes the bug where if the latest version of the question is hidden,
the question disappears, even if older versions exist that are still visible.
2025-02-06 17:23:17 +07:00
Jun Pataleta a1b6122ee6 Merge branch 'MDL-83794-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-06 17:09:52 +08:00
Andrew Nicols 451e14cace MDL-83794 editor_tiny: Fix typo in style name 2025-02-06 15:54:19 +08:00
Jun Pataleta a7f62cc60b Merge branch 'MDL-81829-fix-pretty-whoops-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-02-06 12:20:12 +08:00
Huong Nguyen 8d88b980fd Merge branch 'MDL-83757-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-06 10:52:21 +07:00
Jun Pataleta 67d78f23e6 Merge branch 'MDL-72080-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-02-06 11:36:48 +08:00
Laurent David d002c6f4f9 MDL-84271 core_course: Validate module list in search
* We need to validate the list of modules in the course search

Co-authored-by: Lars Bonczek <bonczek@math.tu-berlin.de>
2025-02-06 11:20:28 +08:00
Paul Holden 54b998482b MDL-84003 mod_glossary: capability check restoring trusted entry text. 2025-02-06 10:51:35 +08:00
Paul Holden 348f9afab6 MDL-84145 report_loglive: format event description as plain text. 2025-02-06 09:44:14 +07:00
Huong Nguyen 37b0d9fc20 Merge branch 'MDL-83635-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-02-06 08:45:46 +07:00
Brendan Heywood 3ddf1716ee MDL-81829 core: Fix early bootstrap bug with whoops 2025-02-06 09:32:42 +11:00
Paul Holden 693231b048 MDL-82170 user: replace increment operator on string type variable. 2025-02-05 20:10:25 +00:00
Leon Stringer 1a2ca2e5ba MDL-79976 mod_feedback: Check group for response
Check the teacher's group membership if group mode is SEPARATEGROUPS
prior to showing or deleting responses.
2025-02-05 18:09:45 +01:00
Sara Arjona 6b4e0696ec Merge branch 'MDL-80848-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Jun Pataleta 88b1458eb7 Merge branch 'MDL-83753_405_STABLE' of https://github.com/djarran/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Jun Pataleta de3c6685ac Merge branch 'mdl-83695_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Sara Arjona 8a89e36712 Merge branch 'MDL-67683-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Huong Nguyen 1d8be79382 Merge branch 'mdl-83690_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Huong Nguyen c00d63893c Merge branch 'MDL-83650-405_fix_ods_cell' of https://github.com/Cl3mensM/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Jun Pataleta 807edce748 Merge branch 'MDL-83809-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-02-05 18:09:45 +01:00
Andrew Nicols b85a3ce296 MDL-83757 core: Force DI to use global DB instead of scoped 2025-02-05 20:35:41 +08:00
Andrew Nicols 8b3d6c3259 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-02-04 22:14:09 +08:00
sam marshall 60c003bf36 MDL-83809 Accessibility: Focus issues in modals
This change fixes 2 issues:

1 The focus lock for modals (e.g. within Tiny editor) did not
  correctly loop round from the end of the modal to the start.

2 After clicking 'Browse repositories' button in a Tiny editor
  modal, and closing the file picker, focus did not return to
  the button as expected.
2025-02-04 12:55:26 +00:00
james-cnz c6329d1a63 MDL-83695 backup: Add space before course Restores in progress heading 2025-02-05 00:14:42 +13:00
Paul Holden b905030978 MDL-84239 badges: correct context check when disabling badge. 2025-02-04 15:19:22 +08:00
David Woloszyn a40e5bad8f MDL-84136 filter_tex: Improve sanitization of forbidden items 2025-02-04 11:35:29 +07:00
Mark Johnson 6e13b652cc MDL-84146 question: Improve handling of JS parameters 2025-02-04 02:40:20 +00:00
meirzamoodle a78447a111 MDL-84023 lib: Update requirejs to 2.3.7 2025-02-04 02:40:20 +00:00
Marina Glancy 142012d312 MDL-83941 tags: prevent users from browsing unsearchable collections 2025-02-04 02:40:20 +00:00
Mihail Geshoski fac52f6f86 MDL-82896 qtype_ddimageortext: Clean drop zone label text
It is unnecessary to allow HTML to be added to the drop zone label text,
as this content is hidden and only accessible to screen readers.
Additionally, the content is currently not properly formatted, which
introduces a risk for potential XSS exploits. This change ensures that
only plain text (PARAM_TEXT) is allowed when adding content and that the
content is properly formatted before being output.
2025-02-04 02:40:20 +00:00
Huong Nguyen 8f316b9b7e Merge branch 'MDL-83822-MOODLE_405_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_405_STABLE 2025-02-04 09:30:40 +07:00
Jun Pataleta 26d7e53400 MDL-67683 theme_boost: Update selector for calendar block styles
With the change from `aside` to `section` for blocks within the main
content region, the selector for instances of the calendar block not in
the main content region also needs to be updated to use a more generic
selector that can cover when either the blocks container containing the
calendar block is an `aside` or a `section`.

The `data-blockregion` attribute is a good selector for this purpose.
2025-02-03 15:55:23 +08:00
Jun Pataleta 20aee393ce MDL-67683 behat: Add accessibility test for the maintenance mode layout 2025-02-03 15:55:23 +08:00
Jun Pataleta 1187083f7c MDL-67683 behat: Add accessibility test for the secure layout
Also, add page title and heading to the secure test page to make
it accessible.
2025-02-03 15:55:23 +08:00
Jun Pataleta a1a39340d4 MDL-67683 output: Make block regions unique
Unique labels for the block regions:
* `side-pre` blocks - "Blocks"
* `side-post` blocks - "Supplementary blocks"
* `content` blocks - "Main content blocks"

Blocks in the main content region (div role="main") should not also be
in an <aside> as it is a top-level landmark.
2025-02-03 15:55:23 +08:00
Jun Pataleta 5d142821a3 MDL-67683 theme: Set page heading in a header landmark for secure layout 2025-02-03 15:55:22 +08:00
Jun Pataleta 829af84071 MDL-67683 auth: Test login page accessibility with axe best-practice tag 2025-02-03 15:55:22 +08:00
Jun Pataleta 96fae5a652 MDL-67683 behat: Update xpath selector for #region-main 2025-02-03 15:55:22 +08:00
Jun Pataleta 4262d0c1ec MDL-67683 blocks: Do not assign a complementary role for blocks
Blocks are contained in an <aside> which has a default ARIA role of
"complementary", a top-level landmark. So assigning a "complementary"
role for block instances is not needed. As blocks are already in a
<section> tag which has a default role of "region", there's no need
to override the ARIA role, unless specified by the block plugin.

Read more at:
https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/
2025-02-03 15:55:22 +08:00
Jun Pataleta 03adce20fc MDL-67683 theme: Do not use section for block containers
The containers for the blocks in layout templates should not be using a
<section> tag (which has a default landmark role of "region") as the
blocks are already contained in an <aside> tag that has the default
"complementary" role which should be a top-level landmark.

Read more at:
https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/
2025-02-03 15:55:22 +08:00
Jun Pataleta b44acfecd2 MDL-67683 theme: Do not use section for #region-main
The #region-main container should not be a <section> tag (which has a
default landmark role of "region") as it contains the container with
the "main" role which should be a top-level landmark.

Read more at:
https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/
2025-02-03 15:55:21 +08:00
Jun Pataleta 5217658e55 MDL-83635 tool_brickfield: Use core_text:strlen() for img alt check
Multibyte alt texts will cause this check to fail easily. We need to be
using `core_text::strlen()` when checking the image alt text's length.
2025-02-03 15:52:10 +08:00
Huong Nguyen 96adf12aa8 Merge branch 'MDL-81478-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-02-03 09:32:16 +07:00
Huong Nguyen b723767972 Merge branch 'MDL-83794-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-02-03 09:20:33 +07:00
Sara Arjona 77ca508326 Merge branch 'mdl-82679_405_wip' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-01-31 16:01:34 +01:00
Sara Arjona 0d6f6a9088 Merge branch 'MDL-84321-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-01-31 15:42:44 +01:00
Jun Pataleta 9a3e960c18 Merge branch 'MDL-82542-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-01-31 12:43:32 +08:00
Huong Nguyen 89e6f737cc weekly release 4.5.1+ 2025-01-31 09:20:24 +07:00
Huong Nguyen 325858c5ca NOBUG: Add upgrade notes 2025-01-31 09:20:24 +07:00
Huong Nguyen bcbde331d7 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-01-31 09:20:10 +07:00
James C bf2577afca MDL-82679 course: Prevent collapsable sections conflicting 2025-01-30 22:33:30 +13:00
Huong Nguyen eb5d247514 Merge branch 'MDL-79281_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-01-30 11:13:26 +07:00
Huong Nguyen 9578db9fe6 Merge branch 'MDL-84103-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-01-30 11:09:57 +07:00
Huong Nguyen e4967d5d18 Merge branch 'MDL-84095-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-01-30 10:51:01 +07:00
Huong Nguyen c26afd96fb Merge branch 'MDL-84275-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-30 10:27:40 +07:00
Huong Nguyen 5afdc793f5 Merge branch 'MDL-83297-maxgradesperpage-405' of https://github.com/dragos5436/moodle into MOODLE_405_STABLE 2025-01-30 09:28:53 +07:00
Huong Nguyen aec6155835 Merge branch 'MDL-84323-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-01-30 09:20:21 +07:00
Angelia Dela Cruz c9626cabcb MDL-84103 imscc: Behat test for import IMS Cartridge to course 2025-01-30 10:14:31 +08:00
Clemens 0e3b5377e6 MDL-83650 odslib: Add variable to class MoodleODSCell 2025-01-30 00:44:45 +01:00
james-cnz ab4ee8f328 MDL-83690 course: Fix course index label links 2025-01-30 10:46:06 +13:00
Sara Arjona 238266ff98 Merge branch 'MDL-84264-405' of https://github.com/pmaneggia/moodle into MOODLE_405_STABLE 2025-01-29 16:52:59 +01:00
Sara Arjona 7548a8be9f Merge branch 'MDL-84243-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-01-29 16:47:40 +01:00
Sara Arjona c1700053ec Merge branch 'MDL-84242-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 15:52:09 +01:00
Sara Arjona 7c1e31a75b Merge branch 'MDL-84205-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 11:16:45 +01:00
Sara Arjona 5d3865580c Merge branch 'MDL-84320-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-01-29 08:57:24 +01:00
Sara Arjona 6d4d675f44 Merge branch 'MDL-84129-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 08:50:04 +01:00
Sara Arjona 229c6c6c07 Merge branch 'MDL-84214-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 08:39:27 +01:00
Sara Arjona eb9f01469c Merge branch 'MDL-84148-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 08:30:16 +01:00
Sara Arjona bafc8047b4 Merge branch 'MDL-79819_405' of https://github.com/jonof/moodle into MOODLE_405_STABLE 2025-01-29 08:18:35 +01:00
Sara Arjona 76f31349ac Merge branch 'MDL-84355-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-01-29 08:09:53 +01:00
Sara Arjona aa296d4b31 Merge branch '83617-fix-grader-report-url-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2025-01-29 08:00:47 +01:00
Sara Arjona ed301a7653 Merge branch 'MDL-83152-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-29 07:49:27 +01:00
Andrew Nicols eb2100be30 MDL-84355 phpunit: Exclude fixtures from testsuite search 2025-01-29 11:46:22 +08:00
Andrew Nicols 7b4a6d9000 MDL-84355 phpunit: Correct test path for component configs 2025-01-29 11:29:35 +08:00
David Mudrák 82cee60e32 MDL-84321 lang: Use the fixed strings in tests, too 2025-01-28 20:45:40 +01:00
Helen Foster 2568276f44 MDL-84321 lang: Import fixed English strings (en_fix) 2025-01-28 20:45:28 +01:00
Paul Holden 830a52400b MDL-72080 javascript: explicit Content-Type in service responses.
This fixes various external methods that initialize page output
manually, e.g. `core_get_fragment`, which can mess with third party
proxies that modify data in transit because of the current default
response type header (text/html).

Co-authored-by: Mario Torres
2025-01-28 12:48:31 +00:00
Julien Boulen 8d90017ef7 MDL-84348 h5pactivity: Hide preview mode warning for guest users 2025-01-28 12:00:05 +01:00
Huong Nguyen b43a9d9833 Merge branch 'MDL-83079-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-01-28 17:04:32 +07:00
Frederik Milling Pytlick 1dc5c3f1d4 MDL-83079 core: Make signal handlers run during non CLI scripts 2025-01-28 16:50:46 +07:00
Jun Pataleta b279bf6a8e Merge branch 'MDL-81195-405' of https://github.com/martygilbert/moodle into MOODLE_405_STABLE 2025-01-28 10:53:14 +08:00
AMOS bot a80f8498fd Automatically generated installer lang files 2025-01-28 00:07:49 +00:00
ferran 90a2a8f3b4 MDL-84243 core_courseformat: fix course index completion icon 2025-01-27 17:25:26 +01:00
Sara Arjona 6b673ff711 MDL-84323 core_badges: Remove endorsement from JSON
The endorsement has been removed from the JSON because, according to
the OBv2.0specification, it must not be included in either the badge
or the assertion.
Including it results in a format error, rendering the badge invalid.
2025-01-27 10:34:52 +01:00
Paul Holden 63624458a5 MDL-83720 tag: correct description formatting component/filearea. 2025-01-24 12:52:16 +00:00
raortegar 7707d087fe MDL-84320 editor_tiny: Update tiny version in thirdpartylbs.xml 2025-01-24 11:43:51 +01:00
Jun Pataleta 543c247ae5 Merge branch 'MDL-83989-405' of https://github.com/clransom/moodle into MOODLE_405_STABLE 2025-01-24 15:52:29 +08:00
Marty b2eff97b64 MDL-81195 core_course: allow for daylight savings
In timezones where daylight savings time is used, courses that start
on a Monday at 00:00 would display the week headings incorrectly
during the change forward.

When the time changes backwards, courses that have a start time of
Sunday at 23:00 also have a mislabeled week.

This attempts to use the DateTime() library, along with the user's
local timezone setting to display the correct day, rather than just
subtracting 86400.
2025-01-23 14:39:42 -05:00
Sara Arjona 77692ee5ea weekly release 4.5.1+ 2025-01-23 17:34:58 +01:00
Sara Arjona 652f6caf19 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-01-23 17:34:51 +01:00
Katie Ransom 0a6cb5f2fa MDL-83989 file upload: Filemanager breaks if you drop file outside of it 2025-01-23 16:30:05 +00:00
Dani Palou 53e2e59432 MDL-84313 pluginfile: Allow fetching by chunks in cross-site requests
Without these headers, the range headers are blocked so only the first chunk of the file can be retrieved.
2025-01-23 15:54:13 +01:00
Huong Nguyen 0d2d28c16c Merge branch 'MDL-83751-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-23 10:48:30 +07:00
Huong Nguyen a964ca4470 Merge branch 'MDL-81685_matrix_homeserver_name_405' of https://github.com/mark-webster-catalyst/moodle into MOODLE_405_STABLE 2025-01-23 09:17:08 +07:00
Huong Nguyen 43c0d9b0b8 Merge branch 'MDL-84101-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-01-23 09:09:15 +07:00
Huong Nguyen 1c0573332c Merge branch 'MDL-84249-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-01-23 09:02:30 +07:00
Simey Lameze dde4a44ccf MDL-84101 behat: add step to save changes
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-01-23 07:28:19 +08:00
Angelia Dela Cruz 5ac3f7495d MDL-84101 message: Behat test for managing notification options 2025-01-23 07:28:19 +08:00
Huong Nguyen 189e0ac8cd Merge branch 'MDL-78365-405' of https://github.com/pedrojordao/moodle into MOODLE_405_STABLE 2025-01-22 15:11:10 +07:00
Andrew Gosali c43616b1e4 MDL-80848 mod_forum: to have id as the backup sorting condition
When the first sorting condition fails (falls on the same value), it should have another sorting as a backup.
2025-01-22 13:39:18 +07:00
Andrew Nicols 89888c790b MDL-83794 editor_tiny: Add SVG support 2025-01-22 11:40:45 +08:00
Andrew Nicols 5963dda401 MDL-83794 editor_tiny: Add support for MathML 2025-01-22 11:40:44 +08:00
Paul Holden 64d6d74942 MDL-84275 factor_totp: format site fullname for authenticator setup. 2025-01-21 21:33:54 +00:00
Mark Webster 369daf04e4 MDL-81685 communication_matrix: Adds Matrix homeserver name setting
Allows setting a homeserver name for instances where
usernames do not follow the pattern @user:homeserverurl
2025-01-21 12:38:59 +00:00
dragos5436 bfcdb5100f MDL-83297 gradereport_grader: Make maxgradesperpage configurable
After deploying to our production environment, we noticed that for large gradebooks, having a max of 200,000 grades per
page was still too high and resulted in the gradebook page crashing or failing to load entirely. This commit will make
this value configurable (e.g. ->maxgradesperpage = 70000) rather than a constant so that other institutions can tune it.

Co-authored-by: Leon Stringer <leon.stringer@ucl.ac.uk>
2025-01-21 12:32:33 +00:00
Huong Nguyen 1a9cebf136 Merge branch 'MDL-84111-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-01-21 09:32:33 +07:00
Huong Nguyen 587f006439 Merge branch 'MDL-82722_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-01-21 09:05:28 +07:00
Huong Nguyen 293d075b40 Merge branch 'MDL-82237_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-01-21 08:58:00 +07:00
Paola Maneggia ecdf8eea49 MDL-84264 backup: encode and decode urls for the new course section page 2025-01-20 19:02:57 +01:00
Sara Arjona 928d7f6ea1 Merge branch 'MDL-81043-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-01-20 16:03:28 +01:00
Conn Warwicker a313b9d862 MDL-79281 core_question: Remove 'deleteall' param from edit page.
This removes the setting of the 'deleteall' param to every link
on the question edit page and inserts it into the url based
on if we actually want to delete all versions or not.
2025-01-20 14:21:02 +00:00
Mark Johnson 7c085e8389 MDL-82237 mod_quiz: Include all filters in "See questions" link
The "See questions" link for random questions was still using the old
format the filter conditions, so was only applying the category filter
on the list of questions displayed. This means that if a tag filter (or
any other filter) was set on the random question set, it was not applied
when viewing the list of questions.

This change takes all the filter conditions applied in random question's
slot and passes them to the question bank in the "See questions" link.
2025-01-20 12:47:40 +00:00
Julien Boulen 12090ec2e0 MDL-83617 gradereport_grader: Fix URL encoding
When changing the number of grades per page, the redirect url was encoded twice.
2025-01-20 10:45:32 +01:00
Simey Lameze fc836a4dfd MDL-84249 behat: remove unnecessary javascript tag
This commit also make the repeated scenario names unique.
2025-01-20 13:59:55 +08:00
Jun Pataleta ae29a9a148 Merge branch 'MDL-83750-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-01-20 10:24:13 +08:00
Jun Pataleta 8d0a1ccd81 Merge branch 'MDL-84202-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-20 10:02:09 +08:00
Jun Pataleta 4930c4c7e1 Merge branch 'MDL-83814-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-01-20 09:58:07 +08:00
Jonathon Fowler 1e9626a730 MDL-79819 assignfeedback_editpdf: safely handle bad jpg->pdf conversion 2025-01-20 08:43:03 +10:00
Paul Holden e0722bdc08 MDL-84242 badges: consistent report capability checks to enable badge.
These now match the corresponding external service methods which are
subsequently called via AJAX (814753e5).
2025-01-17 15:10:00 +00:00
Paul Holden 9619f59803 MDL-84214 mod_bigbluebuttonbn: fix default presentation file serving. 2025-01-17 12:28:58 +00:00
Paul Holden 07845198da MDL-83152 mod_glossary: fix chronological sorting of pending entries. 2025-01-17 10:26:05 +00:00
Jun Pataleta eb81c2890d Merge branch 'MDL-83341-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-01-17 17:01:06 +08:00
Huong Nguyen 83d9bb6ffb MDL-81043 gradereport_grader: Improve gradereport_grader/collapse
- This will helps `nodesUpdate` handle asynchronous updates better
 - This also helps to fix Random Behat failure
2025-01-17 15:13:48 +07:00
Luca Bösch 7a57da7970 MDL-84111 qtype_ddimageortext: keep item type, file and text together. 2025-01-17 08:53:40 +01:00
AMOS bot b967ee6ec4 Automatically generated installer lang files 2025-01-17 00:07:56 +00:00
Paul Holden 3054fcdf10 MDL-83751 check: remove non-functional result class method. 2025-01-16 17:40:06 +00:00
Paul Holden cc712e151f MDL-83579 tiny_media: pass filepicker accepted types to dropzone. 2025-01-16 17:37:54 +00:00
Huong Nguyen e6c92dc291 weekly release 4.5.1+ 2025-01-16 23:46:34 +07:00
Huong Nguyen dc17e7802f NOBUG: Add upgrade notes 2025-01-16 23:46:34 +07:00
Huong Nguyen 830942431b Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-01-16 23:46:21 +07:00
Jun Pataleta 47b0005d74 Merge branch 'MDL-80468-factorpage-45' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-01-16 12:25:48 +08:00
Jun Pataleta 4c0b46de32 Merge branch 'MDL-83826-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-01-16 10:22:02 +08:00
Conn Warwicker c5aac1bb0a MDL-82772 mod_quiz: Update context when random question is updated. 2025-01-15 13:16:20 +00:00
Jun Pataleta 6c934c5a80 Merge branch 'MDL-83172-405-test' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-01-15 17:02:15 +08:00
Sara Arjona c65250bbf2 Merge branch 'MDL-83995-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-15 08:29:05 +01:00
Angelia Dela Cruz 0ee76b5e61 MDL-83826 core_admin: Behat coverage for plugins overview for admins 2025-01-15 14:02:33 +08:00
Paul Holden 3e229be7ea MDL-84205 mod_assign: allow automatic reopen method to admin defaults.
This option was added in b7e6a176 to the module form, but without the
ability for the admin to set as the default value.
2025-01-14 14:04:07 +00:00
Sara Arjona 9850eeb84a Merge branch 'MDL-84072-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-14 14:44:20 +01:00
Sara Arjona d80f7924d7 Merge branch 'MDL-83630-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-14 11:53:33 +01:00
Paul Holden 9d8cc0da84 MDL-84202 customfield_number: add number instance to report testing. 2025-01-14 10:20:18 +00:00
Sara Arjona 697c49f289 Merge branch 'MDL-83183-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-14 10:59:16 +01:00
meirzamoodle ee886074f3 MDL-83172 environment: Fix undefined array key error 2025-01-14 16:11:31 +07:00
meirzamoodle b763993d9e MDL-83172 environment: Remove Oracle from LMS 2025-01-14 16:09:14 +07:00
Jun Pataleta 9ed5fcd1f8 Merge branch 'MDL-84124-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-01-14 11:12:24 +08:00
Huong Nguyen 948aeee28c Merge branch 'MDL-83831-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-01-14 09:01:09 +07:00
AMOS bot 5585fc8bfe Automatically generated installer lang files 2025-01-14 00:07:42 +00:00
Paul Holden d9ea363e48 MDL-84129 reportbuilder: improve handling of alternate name fields.
It's possible the first returned field contains a null value, while
subsequent fields may be non-null - in this case we should still
populate the fullname in column callback.
2025-01-13 16:04:53 +00:00
Pedro Jordao df61405d05 MDL-78365 libraries: Truncate ChartJs labels to avoid display issues
If the chart label is too large, it is breaking the display, so we will
add ellipsis to the label and display the full text in the tooltip.
2025-01-13 11:36:34 -03:00
raortegar 9535c1d318 MDL-83750 core_form: Fix deprecated preg_replace in form 2025-01-13 15:05:17 +01:00
Daniel Neis Araujo e0ad6dc24f MDL-82601 scorm: score not being stored when force complete is used 2025-01-13 09:56:40 -03:00
Jun Pataleta 61cc6ebce7 Merge branch 'MDL-83832-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-01-13 15:50:42 +08:00
Jun Pataleta ea56ece9e4 Merge branch 'MDL-83968-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-01-13 15:29:34 +08:00
Andrew Nicols d400c265a9 MDL-83814 core: Bump Node to latest LTS 2025-01-13 09:07:06 +08:00
AMOS bot 142b278272 Automatically generated installer lang files 2025-01-13 00:07:49 +00:00
Benjamin Walker ab12805184 MDL-80468 tool_mfa: Allow loading factor defined externalpages correctly 2025-01-10 21:14:52 +10:00
Andrew Nicols b9791b7617 MDL-83968 core: Update uses of router test classes 2025-01-10 15:56:57 +08:00
Andrew Nicols 5bd4fb8e3a MDL-83968 core: Move router test classes to correct locations 2025-01-10 15:56:57 +08:00
Andrew Nicols fc8a385290 MDL-84152 tests: Remove extraneous / in external file URL generation 2025-01-10 14:48:10 +08:00
Paul Holden 6ef8966625 MDL-84148 tool_lp: clarify the primary save action of scales dialogue. 2025-01-09 18:28:11 +00:00
Paul Holden fdbcec4879 MDL-84147 tool_lp: fix disturbingly large icon relocating competency. 2025-01-09 17:59:13 +00:00
Paul Holden 29cc42a867 MDL-83645 grade: fix text formatting in external grading form method. 2025-01-09 14:52:02 +00:00
Sara Arjona 71f5b521e9 weekly release 4.5.1+ 2025-01-09 15:21:49 +01:00
Sara Arjona f85fa813e1 NOBUG: Add upgrade notes 2025-01-09 15:21:49 +01:00
Sara Arjona 55840b3b63 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-01-09 15:21:37 +01:00
meirzamoodle 011ccd1636 MDL-84095 tiny_recordrtc: Shows error toast for failures 2025-01-09 15:14:48 +07:00
Huong Nguyen 4433432675 Merge branch 'MDL-77185-diskfreespace-405' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-01-09 10:13:09 +07:00
hieuvu ce7ca4817b MDL-82542 qbank_managecategories: Add new user preferences
Keep the checkbox to show questions from subcategories as a user preference.
2025-01-09 09:42:03 +07:00
Jun Pataleta f664fd9b6e Merge branch 'MDL-82769_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-01-09 10:16:26 +08:00
AMOS bot d3f009362d Automatically generated installer lang files 2025-01-09 00:10:03 +00:00
Andrew Nicols 00f0ec3ccf MDL-84124 cache: Purge Redis cache between tests 2025-01-09 08:00:31 +08:00
Paul Holden 60f37890fb MDL-83995 mod_glossary: support export/import of entry trusted text. 2025-01-08 13:44:19 +00:00
Huong Nguyen df13123c81 Merge branch 'MDL-83506-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-01-08 15:42:13 +07:00
Jun Pataleta 7ec4cb0f6d Merge branch 'MDL-84079-kill-all-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-01-08 14:36:42 +08:00
Khoa Nguyen d7b0927a83 MDL-83831 core_question: Reset columns on history page causes confusion 2025-01-08 13:34:39 +07:00
sarjona b2a29a4402 Merge branch 'MDL-83917-405' of https://github.com/pedrojordao/moodle into MOODLE_405_STABLE 2025-01-08 07:16:29 +01:00
meirzamoodle b2403bad15 MDL-81478 atto_recordrtc: Add webm audio support as a fallback
Co-authored-by: Djarran Cotleanu <djarrancotleanu@catalyst-au.net>
2025-01-08 12:54:39 +07:00
meirzamoodle a79727f18e MDL-81478 tiny_recordrtc: Add webm audio support as a fallback
Co-authored-by: Djarran Cotleanu <djarrancotleanu@catalyst-au.net>
2025-01-08 11:41:12 +07:00
Huong Nguyen dc7c6d1535 Merge branch 'MDL-84042-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-01-08 09:45:07 +07:00
Huong Nguyen 10ce5fef12 Merge branch 'MDL-84008-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-01-08 09:41:12 +07:00
Huong Nguyen 8ab6ae5a8a Merge branch 'MDL-79122_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2025-01-08 09:26:24 +07:00
Huong Nguyen 59679f6daf MDL-84042 mod_assign: Notification helper tests cleanup 2025-01-08 09:20:06 +07:00
David Woloszyn fcab82c2dd MDL-84042 mod_assign: Fixed notification helper submission check
mod_assign_generator now accepts a status when creating a submission.
2025-01-08 09:20:06 +07:00
Pedro Jordao 31a28b72bb MDL-83917 core_completion: Create function count_modules_completed
The function returns the number of modules completed by a user and
executes a COUNT aggregate function to avoid running many queries
to obtain this information, aiming to optimize performance.

Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2025-01-07 22:20:35 -03:00
AMOS bot 1df7118320 Automatically generated installer lang files 2025-01-08 00:07:46 +00:00
sarjona e0d33cdf64 Merge branch 'MDL-83746-405' of https://github.com/srobotta/moodle into MOODLE_405_STABLE 2025-01-07 14:50:06 +01:00
Paul Holden 7a42c2e37a MDL-84072 output: correct progress bar component percentage parameter.
Avoid mixing float/string types, where the decimal separator could
vary according to current locale (as per previous fix 5a1aef5a, which
was subsequently re-broken by b92886ad).
2025-01-07 13:17:52 +00:00
sarjona 269d66470f Merge branch 'MDL-82788-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-01-07 14:14:56 +01:00
Conn Warwicker 47a2a2dc53 MDL-79122 question: Correct capability check for question comments link.
This makes the rendering of the question comments count additionally
check the core moodle/comment:post capability, since this capability
is required to make comments. Previously, this was not being checked
so users could open the modal to make a comment, which was causing
a javascript error due to expected elements being missing.
2025-01-07 12:23:21 +00:00
Jun Pataleta 212dbbade5 Merge branch 'MDL-83668-405' of https://github.com/srobotta/moodle into MOODLE_405_STABLE 2025-01-07 13:56:42 +08:00
Huong Nguyen 8a0b122c5f Merge branch 'MDL-82895-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-01-07 09:19:53 +07:00
Conn Warwicker a5785e2cc1 MDL-82769 question: Update legacy filters on random questions.
- Adds the "cat" field to the converted legacy filter, which was
  missing.
- Does the conversion on the editrandom.php page as this was
  throwing a warning.
2025-01-06 14:15:24 +00:00
meirzamoodle fc34c352d7 MDL-82788 theme_boost: Obtain the correct Tiny and Atto editor elements 2025-01-06 20:27:12 +07:00
Luca Bösch 2e6502f5bc MDL-84008 qtype_match: keep question and answer together. 2025-01-06 13:37:13 +01:00
Luca Bösch 55db72df9f MDL-84008 qtype_calculated: glue formula, tolerance, display, feedback. 2025-01-06 13:37:13 +01:00
Luca Bösch 35fa93da9f MDL-84008 qtype_multichoice: keep choice, grade and feedback together. 2025-01-06 13:37:13 +01:00
Stephan Robotta c93964407e MDL-83746 navigation: check host and path for active flag in custom menu 2025-01-06 08:32:09 +01:00
Stephan Robotta 60fb52e209 MDL-83668 tiny: customize allowed HTML tags and attributes 2025-01-06 08:32:00 +01:00
Jun Pataleta 61f9725107 Merge branch 'MDL-83835-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-01-06 13:14:52 +08:00
Luca Bösch bcf2d4d224 MDL-82895 qbank_managecategories: Correct dnd hover text encoding 2025-01-03 08:50:08 +01:00
Huong Nguyen c58bc49a07 weekly release 4.5.1+ 2025-01-03 13:54:01 +07:00
Huong Nguyen fd5d2048f1 NOBUG: Add upgrade notes 2025-01-03 13:54:01 +07:00
Huong Nguyen 33758429af Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-01-03 13:53:48 +07:00
Khoa Nguyen f10a1dba9f MDL-83832 core_question: Links to question history may show blank page 2025-01-03 13:47:33 +07:00
Huong Nguyen 432db3fc41 Merge branch 'MDL-83959-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-01-03 00:00:56 +07:00
Brendan Heywood c5858e948e MDL-84079 cli: Fix deprecation warning 2025-01-02 15:07:32 +11:00
AMOS bot a22374386d Automatically generated installer lang files 2025-01-01 00:07:57 +00:00
Leon Stringer c2c8375863 MDL-77185 session: Fix undefined disk_free_space
Fix PHP fatal error "Call to undefined function
core\session\disk_free_space()" when disable_functions=disk_free_space.
Prior to PHP 8.0 this error was suppressed by '@'.

Co-authored-by: Federico Alvarez <32086536+fedealvz@users.noreply.github.com>
2024-12-31 15:34:10 +00:00
Huong Nguyen e64b77077a Merge branch 'MDL-66129-405' of https://github.com/rhell4/moodle into MOODLE_405_STABLE 2024-12-30 09:40:56 +07:00
AMOS bot 289bdbaae1 Automatically generated installer lang files 2024-12-25 00:27:29 +00:00
Huong Nguyen fcd60bd8ef Merge branch 'MDL-83159-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2024-12-24 09:42:23 +07:00
Huong Nguyen 8652ec36e5 Merge branch 'MDL-83988-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-12-24 09:29:36 +07:00
Shamim Rezaie e1e874e622 Merge branch 'MDL-83005-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2024-12-23 06:02:44 +11:00
AMOS bot 1c1f85fde4 Automatically generated installer lang files 2024-12-22 00:08:09 +00:00
AMOS bot 0e85adb8d6 Automatically generated installer lang files 2024-12-21 00:07:40 +00:00
Luca Bösch 78517d9570 MDL-83159 mod_quiz: Use format_string for course and quiz name. 2024-12-20 10:23:49 +01:00
AMOS bot 1d79aa088d Automatically generated installer lang files 2024-12-20 00:07:47 +00:00
Jun Pataleta 04cb4312bc weekly release 4.5.1+ 2024-12-19 20:08:09 +08:00
Jun Pataleta 9d2bb14dd3 NOBUG: Add upgrade notes 2024-12-19 20:08:09 +08:00
Jun Pataleta b2ae39d595 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-12-19 20:07:54 +08:00
djarrancotleanu f8b903596a MDL-83753 cachestore_redis: Allow for configurable connection timeout 2024-12-19 14:21:59 +10:00
djarrancotleanu 2a28dbdf78 MDL-83753 redis: Allow for configurable max retries setting 2024-12-19 14:21:53 +10:00
Huong Nguyen 0e85649699 Merge branch 'MDL-83940-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-19 10:40:30 +07:00
Huong Nguyen e9cece4b1c Merge branch 'MDL-82697-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-19 10:21:21 +07:00
Huong Nguyen 351a65a924 Merge branch 'MDL-83956-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-19 10:07:52 +07:00
Andrew Nicols 0c589780bb Merge branch 'MDL-63802-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2024-12-19 09:19:49 +08:00
djarrancotleanu 90fcb571e5 MDL-83753 redis: Set connection and read timeouts to configurable value 2024-12-19 11:07:15 +10:00
Jun Pataleta a71c98f540 MDL-83691 core: Version and upgrade fixes
* Version bump should be incremented from the latest weekly release.
* Upgrade step should be after the 4.5.0 release line comment.
2024-12-18 13:50:59 +08:00
Jun Pataleta 81eb2ce13b Merge branch 'MDL-83691-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-12-18 13:46:56 +08:00
Jun Pataleta b7640d3047 Merge branch 'MDL-84026-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-12-18 13:24:22 +08:00
Jun Pataleta b2046b8b67 Merge branch '79121-normalize-proxy-bypass-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2024-12-18 10:56:04 +08:00
Andrew Nicols 28e9774815 MDL-84026 core: Update GitHub Funding to point to fund.moodle.org 2024-12-18 10:45:48 +08:00
Huong Nguyen 0a3c54bff4 Merge branch 'MDL-84000-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-18 09:04:48 +07:00
Sara Arjona 077363e342 Merge branch 'MDL-83807-405' of https://github.com/clransom/moodle into MOODLE_405_STABLE 2024-12-17 17:06:27 +01:00
Lars Bonczek 12f326a61e MDL-81655 theme: Fix maintenance warning positioning 2024-12-17 13:13:13 +01:00
Sara Arjona 1f435633bd Merge branch 'MDL-81952-405' of https://github.com/srobotta/moodle into MOODLE_405_STABLE 2024-12-17 13:01:24 +01:00
Jun Pataleta 1384b051c9 Merge branch 'MDL-83377-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2024-12-17 19:54:06 +08:00
Jun Pataleta 840bbadf64 Merge branch 'MDL-83593_405' of https://github.com/lostrogit/moodle into MOODLE_405_STABLE 2024-12-17 19:32:54 +08:00
Carlos Castillo 5b3776ceb4 MDL-83593 theme_boost: Fix navbar site logo link 2024-12-17 11:20:49 +01:00
Sara Arjona 583f508538 Merge branch 'MDL-83696-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2024-12-17 07:41:51 +01:00
Angelia Dela Cruz 2e49bf766a MDL-83696 core_tag: Added behat for book chapter and glossary entry tags 2024-12-17 10:07:48 +08:00
Paul Holden 98c2b5ee67 MDL-83183 mod_bigbluebuttonbn: consistent order in activity index. 2024-12-16 21:02:24 +00:00
hieuvu 984867f4a8 MDL-82273 core_question: Fix behat failed 2024-12-16 18:50:30 +01:00
Julien Boulen d11f65c29b MDL-79121 lib: Improve the dataset for is_proxybypass_provider() 2024-12-16 15:55:58 +01:00
Julien Boulen b390286ed9 MDL-79121 lib: Normalize proxybypass value
This changes prevent the admin to define an incorrect proxybypass value.

Dropped out formats in MDL-74289 are now fixed automatically.
e.g.: "192.168." becomes "192.168.0.0/16" and ".domain.tld" becomes "*.domain.tld".
2024-12-16 15:54:52 +01:00
Huong Nguyen f9fedf6cac Merge branch 'MDL-79268-405' of https://github.com/danghieu1407/moodle into MOODLE_405_STABLE 2024-12-16 10:55:50 +07:00
Huong Nguyen 4776a21a45 Merge branch 'MDL-82273-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2024-12-16 10:02:03 +07:00
Huong Nguyen 7947b4dded Merge branch 'MDL-75075-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2024-12-16 09:51:17 +07:00
Huong Nguyen 03d184d1d3 Merge branch 'MDL-83493-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-12-16 09:00:00 +07:00
AMOS bot 85350a2959 Automatically generated installer lang files 2024-12-15 00:08:25 +00:00
Stephan Robotta ba1165af63 MDL-81952 questions: Fix warning in export of multitype 2024-12-14 13:19:57 +01:00
Paul Holden fab65d14c9 MDL-84000 reportbuilder: move testcase helper to autoloaded namespace.
Clean up some class imports while we're at it.
2024-12-13 09:25:27 +00:00
Stefan Hanauska 34ee47e8a9 MDL-83377 repository_local: Missing options for searching 2024-12-13 07:46:52 +01:00
danghieu1407 2b916ec563 MDL-79268 questions: Show version numbers in delete confirmation 2024-12-13 13:34:38 +07:00
meirzamoodle cc77d48e7c MDL-83691 core_sms: Avoid saving unnecessary data in the database 2024-12-13 10:16:33 +07:00
Huong Nguyen aa55f38820 weekly release 4.5.1+ 2024-12-13 08:58:16 +07:00
Huong Nguyen 09bb7c6e60 NOBUG: Add upgrade notes 2024-12-13 08:58:16 +07:00
Huong Nguyen 1c88fb8e69 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-12-13 08:58:01 +07:00
hieuvu 90882b0ae5 MDL-82273 core_question: get correct category for question bank view 2024-12-12 13:23:33 +07:00
Paul Holden 86d52532ff MDL-82697 courseformat: fix exception arguments for section limit.
Co-authored-by: James C <5689414+james-cnz@users.noreply.github.com>
2024-12-11 17:46:56 +00:00
Andrew Nicols c0c89726ff MDL-83988 core: Hide common machine-read files 2024-12-11 23:35:35 +08:00
Katie Ransom 95d655295f MDL-83807 files: Make file_get_all_files_in_draftarea return zip files 2024-12-11 14:17:21 +00:00
Amaia Anabitarte 77efe4c929 MDL-83807 h5p: Return a default valid H5P 2024-12-11 14:17:21 +00:00
Jun Pataleta a01724d0ab Merge branch 'MDL-81520-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-12-11 13:41:20 +08:00
Andrew Nicols 3555770591 MDL-81520 mod_assign: Update tests to not extend assign_provider test 2024-12-11 12:30:21 +08:00
Andrew Nicols 7bb9f136d2 MDL-81520 core: Fix test finality 2024-12-11 12:30:21 +08:00
AMOS bot 5525bddcc0 Automatically generated installer lang files 2024-12-11 00:07:48 +00:00
Khoa Nguyen 104e8851c5 MDL-75075 quiz: Show question tags as non-links to avoid errors 2024-12-10 13:46:44 +07:00
Khoa Nguyen 33d29d0d61 MDL-75075 core_tag: Add an option to render tag lists without links 2024-12-10 13:46:21 +07:00
Huong Nguyen 3cc69df4fb Merge branch 'MDL-81115_405' of https://github.com/cwarwicker/moodle into MOODLE_405_STABLE 2024-12-10 09:18:14 +07:00
AMOS bot 8dd52ab507 Automatically generated installer lang files 2024-12-10 00:07:50 +00:00
Paul Holden d0cd29b798 MDL-83959 webservice: relax retrieval of token external service info.
The report performs a `LEFT JOIN` on the external service table/entity
so we need to account for that in column callbacks and actions.

Also the shortname field is nullable, so account for that too.
2024-12-09 16:51:46 +00:00
Sara Arjona 6e650af798 Merge branch 'MDL-83783-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2024-12-09 16:20:37 +01:00
Sara Arjona c556b31910 Merge branch 'MDL-75750-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2024-12-09 16:18:46 +01:00
Sara Arjona c171c880c0 Merge branch 'MDL-81841-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2024-12-09 16:16:30 +01:00
Sara Arjona 60df835524 Merge branch 'MDL-83456-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-12-09 16:10:19 +01:00
Frederik Milling Pytlick b6d441149a MDL-82440 assignfeedback_editpdf: Force ghostscript pdf's to pdf v1.4 2024-12-09 15:49:00 +01:00
Paul Holden 0b82fba271 MDL-83956 course: update spacer icon for category management tree.
Prior to fd676913 the manage course categories tree element used
the 'i/empty' icon as a fixed width spacer (fa-fw). However this
icon is now shown as a square, which looks out of place here.

Change to a different icon that maps to the same fixed width spacer
in order to restore the previous behaviour.
2024-12-09 08:56:11 +00:00
Laurent David 4d0a2b47fe MDL-81841 mod_data: Add spacing bottom of preset page
* The action menu is going under the sticky footer on
the preset page. Adding more space helps to display the
entire menu instead of cutting it off.
2024-12-09 08:14:15 +01:00
Huong Nguyen 03ed804abe MDL-83341 repository_onedrive: Fix download and create controlled link
Onedrive direct download URL does not accept authorization headers,
it will just return the `unauthenticated` content with 401 HTTP Code

We switched to a safer way. We fetch the item information and use
a new curl instance (without authorization headers)
to fetch the content via direct download URL
2024-12-09 09:30:07 +07:00
James C 8b1f225034 MDL-83306 book: Book section return fix 2024-12-09 10:18:45 +13:00
AMOS bot 3c70be709b Automatically generated installer lang files 2024-12-08 00:08:06 +00:00
Conn Warwicker c686fee654 MDL-81115 question: Question bank tag filter to use all available tags.
This makes the tags which are available to the user on the question
bank tag filter, use tags from all available contexts, not just
that course. This means they can filter by tags assigned to system
questions as well, for example.
2024-12-06 14:16:26 +00:00
Paul Holden e302f2dec8 MDL-83940 comment: fix collapse/loading icons in comment container. 2024-12-06 10:53:33 +00:00
Huong Nguyen 4bd3217ce8 Moodle release 4.5.1 2024-12-06 13:13:03 +07:00
Huong Nguyen 3a71764572 NOBUG: Add upgrade notes 2024-12-06 13:13:03 +07:00
Luca Bösch ec6e2c892b MDL-63802 theme_classic: ARIA label in nav for secure layout 2024-12-05 18:21:17 +01:00
Huong Nguyen 15d05e6d76 weekly release 4.5+ 2024-12-05 22:32:49 +07:00
Huong Nguyen 96579b1904 NOBUG: Add upgrade notes 2024-12-05 22:32:48 +07:00
Mikel Martín cea21c1db0 MDL-83456 mod_scorm: Revert FA6 updated status icons 2024-12-05 14:40:04 +01:00
Huong Nguyen b5600c2b56 MDL-83921 competency: Update unit tests with latest changes 2024-12-05 18:36:58 +08:00
Huong Nguyen 5b374f607a MDL-82379 core_user: Move email change token to user private access key 2024-12-05 13:38:11 +08:00
Huong Nguyen f0f81cbddf Merge branch 'MDL-83606-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2024-12-05 12:09:52 +07:00
Huong Nguyen 9141121f01 Merge branch 'MDL-83836-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2024-12-05 11:44:12 +07:00
Jun Pataleta 588f9efe8c Merge branch 'MDL-83727-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2024-12-05 12:35:56 +08:00
Huong Nguyen 6e9de0d56b Merge branch 'MDL-83641-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-05 11:29:17 +07:00
Huong Nguyen 5f96398a90 MDL-83921 competency: Bump version 2024-12-05 11:20:51 +07:00
Michael Hawkins ea3bba0ac8 MDL-83921 competency: Match web service capability check with page check 2024-12-05 11:20:29 +07:00
Jun Pataleta fd1b952e3e Merge branch 'MDL-83823-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2024-12-05 11:48:36 +08:00
Huong Nguyen 00253d140c Merge branch 'MDL-83584-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2024-12-05 10:12:46 +07:00
Huong Nguyen ade9ea1b64 Merge branch 'MDL-83223-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-12-05 10:08:45 +07:00
Huong Nguyen 175e553143 MDL-82963 Tag: Improve validation for users tagged with sepecified tag 2024-12-05 11:03:03 +08:00
Jun Pataleta ccaa6daf95 Merge branch 'MDL-83844-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-05 10:35:31 +08:00
Jun Pataleta f3a96eb019 Merge branch 'MDL-83710-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-05 09:55:07 +08:00
David Woloszyn 2ef48e488b MDL-83005 tool_usertours: Fixed animating scroll on Boost tours 2024-12-04 16:14:05 +11:00
David Woloszyn 7809800e0c MDL-83005 tool_usertours: Correct user tour highlighting bugs
This way of highlighting user tour content removes the need to
juggle z-index. It also resolves the problem of cloning the target
element into a separate container and breaking styling.
2024-12-04 16:14:05 +11:00
meirzamoodle f68fc730f4 MDL-83223 core: Use capture with addEventListener to intercept events
The issue is that Bootstrap’s dropdown component likely stops
event propagation after the first click to manage its own
dropdown behavior. This prevents your click event handler from
running on subsequent clicks.

To fix this, we can handle the event before Bootstrap’s code stops
the propagation by using capture option with addEventListener.
2024-12-04 10:36:54 +07:00
Laurent David c44cd5ce91 MDL-82757 mod_data: Improve group access handling
* Improved handling of group access to ensure correct visibility of records.
2024-12-04 02:50:20 +00:00
Jun Pataleta 65acecced1 MDL-61316 core: Fix session gc unit tests 2024-12-04 02:50:19 +00:00
meirzamoodle 3f8502225e MDL-61316 core: Removed 5x multiplier from guest session expiration 2024-12-04 02:50:19 +00:00
Mark Johnson a7f0516ae9 MDL-83357 question: Fix filter cleaning in page links 2024-12-04 02:50:19 +00:00
Mark Johnson 10fef0df99 MDL-83357 question: Additional cleaning of filter params 2024-12-04 02:50:19 +00:00
Huong Nguyen f6f8ec2291 Merge branch 'MDL-82946-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-12-04 09:39:30 +07:00
David Mudrák 065fdf4b2d MDL-83823 lang: Use the fixed strings in tests, too. 2024-12-03 20:14:25 +01:00
Helen Foster 1ab447455b MDL-83823 lang: Import fixed English strings (en_fix) 2024-12-03 20:13:50 +01:00
Angelia Dela Cruz bf301a5e81 MDL-82946 qbank: Behat coverage for questions bulk actions 2024-12-03 10:32:24 +08:00
Huong Nguyen bbd8a07f68 Merge branch 'MDL-83128-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-03 09:32:13 +07:00
Sara Arjona 8b2638fd56 Merge branch 'MDL-83686-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-12-02 13:52:27 +01:00
raortegar cd7fb950de MDL-83835 lib: PEAR - passing null to str functions is deprecated 2024-12-02 13:13:07 +01:00
Sara Arjona 97414ca1cb Merge branch 'MDL-82949-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2024-12-02 12:01:27 +01:00
Paul Holden a11e396945 MDL-83641 cohort: allow 'includes' option be specified in form element. 2024-12-02 10:58:47 +00:00
Paul Holden c13aac05cc MDL-83844 mod_scorm: avoid SQL reserved words retrieving SCO timing. 2024-12-02 10:47:39 +00:00
Jun Pataleta a4e26132e0 Merge branch 'MDL-83648_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-12-02 17:24:28 +08:00
Huong Nguyen 1b6873b44a Merge branch 'MDL-82947-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2024-12-02 14:32:17 +07:00
Huong Nguyen 9b0645fc15 Merge branch 'MDL-83711-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2024-12-02 14:19:33 +07:00
Shamim Rezaie 2db344ac25 Merge branch 'MDL-75610_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2024-12-02 15:24:18 +11:00
Huong Nguyen 3be068cc72 Merge branch 'MDL-83778-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2024-12-02 10:44:22 +07:00
Huong Nguyen e33213647c Merge branch 'MDL-83670-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2024-12-02 10:30:51 +07:00
Huong Nguyen 289056c576 Merge branch 'MDL-82657_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2024-12-02 10:17:36 +07:00
Tim Hunt 1e6e11d8d3 MDL-83648 javascript dialogues: fix responsive behaviour
visibilityChanged in the dialogue base class does important things.
Therefore if ajaxException and exception also want to do something
else in response to the visibleChange event, it should use a
different method name, rather than a name that collides with the
base class method.
2024-11-29 17:05:29 +00:00
Luca Bösch 94a7dbf7f4 MDL-82949 qbank_managecategories: better vertical distinction of title. 2024-11-29 15:53:05 +01:00
Luca Bösch 70d07c5947 MDL-82947 qbank_managecategories: Hover color for category management. 2024-11-29 15:51:08 +01:00
Luca Bösch 8a31a02cce MDL-83711 quiz: Quiz navigation profile pic not linking in secure mode 2024-11-29 14:25:46 +01:00
Sara Arjona a8b2acd35c weekly release 4.5+ 2024-11-29 12:36:57 +01:00
Khoa Nguyen cd2a074cc2 MDL-83727 question: Core question privacy provider misuses lazy-loading 2024-11-29 10:54:51 +07:00
Khoa Nguyen 660d38be15 MDL-83778 quiz: prevent page caching for quiz view page 2024-11-28 16:41:29 +07:00
Jun Pataleta a87bb9848f MDL-83470 environment: Put back Oracle support for now
Even though Oracle support is planned to be dropped for 5.0, the
actual issue that drops it (MDL-83172) has not yet landed. So, it's
better to keep this in environment.xml for now and defer its removal
from environment.xml in MDL-83172.
2024-11-28 16:05:19 +07:00
Jun Pataleta 376411566a Merge branch 'MDL-82475-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-28 13:19:02 +08:00
David Woloszyn 85f4603014 MDL-83836 aiplacement_courseassist: Fixed JS selectors 2024-11-28 16:03:02 +11:00
Huong Nguyen 1ae32381c5 Merge branch 'MDL-83776-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-28 12:00:17 +07:00
Jun Pataleta 966ac4af8f Merge branch 'MDL-83614-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-28 12:55:30 +08:00
Jun Pataleta 9a20fcd261 Merge branch 'MDL-83759-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-11-28 12:28:49 +08:00
Huong Nguyen d0931fd7d4 Merge branch 'MDL-83811-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-11-28 11:15:22 +07:00
Jun Pataleta d3f2f141a5 Merge branch 'MDL-83412-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-11-28 12:12:02 +08:00
Huong Nguyen 6f59fe694b Merge branch 'MDL-83470-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-11-28 11:03:42 +07:00
Jun Pataleta 2cc40431cb MDL-83412 core: Coding style fixes 2024-11-28 11:55:15 +08:00
Andrew Nicols cdbc789fd8 MDL-83412 calendartype_gregorian: Use core_date
Update timestamp_to_date_string to use core_date.
2024-11-28 11:55:15 +08:00
Andrew Nicols 3e45d0801e MDL-83412 core: Use LLL/LLLL for standalone Month names
We currently use MMM and MMMM which mean 'month in year', however in
some locales this is context-specific and should only be used in
conjunction with a day, for example "10 October 2024".

LLL and LLLL are for "stand-alone on the in year" and should be used
when a month is used without a day.
2024-11-28 11:55:15 +08:00
Huong Nguyen 348c37c98d Merge branch 'MDL-63264-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-28 10:46:17 +07:00
Huong Nguyen 57b5c36320 Merge branch 'MDL-83653_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-11-28 10:21:20 +07:00
Huong Nguyen cd0b2c6624 Merge branch 'MDL-82931-MOODLE_405_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_405_STABLE 2024-11-28 09:44:11 +07:00
Huong Nguyen 2ba08bbda2 Merge branch 'MDL-83661-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2024-11-28 09:39:02 +07:00
Huong Nguyen e7e806e5f9 Merge branch 'MDL-82932-MOODLE_405_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_405_STABLE 2024-11-28 09:28:14 +07:00
Huong Nguyen 9aa4e03b03 Merge branch 'MDL-83643-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-28 09:20:39 +07:00
Jun Pataleta e8e20f996d Merge branch 'MDL-83211-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2024-11-27 23:28:41 +08:00
Jun Pataleta 46861f51b7 Merge branch 'MDL-83788-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-11-27 16:19:25 +08:00
Huong Nguyen 6e98de58b4 Merge branch 'MDL-83658-MOODLE_405_STABLE' of https://github.com/praxisdigital/moodle into MOODLE_405_STABLE 2024-11-27 09:51:09 +07:00
Andrew Nicols 445f79f464 MDL-83788 mod_glossary: Correct assertions for assertArrayHasKey 2024-11-27 13:26:01 +11:00
Philipp Memmel 359b36db98 MDL-83822 core_session: Init redis connection in get_session_by_sid 2024-11-26 17:25:15 +01:00
Mark Johnson 491356530e MDL-82657 qbank_managecategories: Check "includesubcategories" on reload
The "includesubcategories" parameter is passed in the URL as lowercase,
but the Javascript was looking for "includeSubcategories" in camel case.
This meant it was always being set as false (unchecked) even when the
URL said it was true.

This fixes the casing in the Javascript, and adds a behat test to
confirm the fix.
2024-11-26 13:27:12 +00:00
Shamim Rezaie 943ad5a1fc Merge branch 'MDL-77957-405-test2' of https://github.com/rezaies/moodle into MOODLE_405_STABLE 2024-11-26 20:59:15 +11:00
Bastian Schmidt-Kuhl 88763543f8 MDL-77957 theme_boost: Fix drawer not closing on mobile if it has focus 2024-11-26 20:52:06 +11:00
Huong Nguyen 47e3c9ad06 Merge branch 'mdl-82762_405_wip' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2024-11-26 12:10:36 +07:00
Khoa Nguyen 5ac62e7763 MDL-83606 Question bank: Delete questions to fit one page causes errors. 2024-11-26 11:16:50 +07:00
Jun Pataleta 7eba1d5996 MDL-83811 gha: Replace redis-64 with redis 5.0 2024-11-26 10:24:30 +08:00
Amaia Anabitarte 7541e7282a MDL-83783 core_course: Make activity chooser button ids unique 2024-11-25 14:39:06 +01:00
Mikel Martín 5c1dd89dd3 MDL-83759 theme_boost: Fix user navigation items height 2024-11-25 12:07:39 +01:00
Paul Holden 518a161c66 MDL-83630 theme_boost: vertically align submenu navigation icon. 2024-11-25 09:49:32 +00:00
Huong Nguyen fa5a4b9612 Merge branch 'MDL-83704-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-11-25 10:15:37 +07:00
Paul Holden 2da1a26439 MDL-83128 blocks: consistently style/align block list icons. 2024-11-22 16:20:20 +00:00
Paul Holden 88ef13a747 MDL-63264 enrol: retrieve additional welcome message contact data.
The `maildisplay` field is required to determine from whom to send
the welcome message.

Co-authored-by: Zak Risha <zjrisha@gmail.com>
2024-11-22 16:17:44 +00:00
Paul Holden ab60333d45 MDL-83614 javascript: apply icon class to legacy lightbox spinner. 2024-11-22 16:13:29 +00:00
Jun Pataleta 485130d7c5 weekly release 4.5+ 2024-11-22 22:26:45 +08:00
Jun Pataleta f83ab42515 NOBUG: Add upgrade notes 2024-11-22 22:26:45 +08:00
Paul Holden eb19752b9a MDL-83776 customfield_text: correct link field URL encoding. 2024-11-21 09:53:41 +00:00
Jun Pataleta 3bb4b79a15 MDL-83470 core: Define environment requirements for Moodle 5.0 2024-11-21 17:35:11 +08:00
Andrew Nicols 671514c6c2 Merge branch 'MDL-83551-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-21 12:25:52 +08:00
Huong Nguyen 1113c4c5b1 Merge branch 'MDL-83529-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2024-11-21 11:21:45 +07:00
Huong Nguyen 2b50abb97b Merge branch 'MDL-83747-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-11-21 11:08:40 +07:00
Huong Nguyen 4a844708e6 Merge branch 'MDL-83048_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-11-21 11:01:32 +07:00
Andrew Nicols 36f946b5db Merge branch 'MDL-83501-url-encode-nginx-paths-MOODLE_405_STABLE' of https://github.com/rajandangi/moodle into MOODLE_405_STABLE 2024-11-21 11:48:15 +08:00
Jun Pataleta 39def1c571 Merge branch 'MDL-83290-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-11-21 11:46:10 +08:00
Andrew Nicols df4c1d94f0 Merge branch 'MDL-83226-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-21 11:44:49 +08:00
Philipp Memmel 1f60d5198d MDL-82931 mod_data: Harden parsing of content format 2024-11-20 21:23:02 +01:00
Amaia Anabitarte c85daf2e2f MDL-75750 theme: Round login frame in small viewport 2024-11-20 16:25:44 +01:00
Paul Holden a93ceeef99 Merge branch 'MDL-83570-405-fix' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-11-20 12:25:05 +00:00
Jun Pataleta 1be54667d6 MDL-83570 tiny_recordrtc: Use the correct upgrade_plugin_savepoint()
And move the release upgrade line comment before the upgrade step.
2024-11-20 18:12:18 +08:00
Huong Nguyen 5ae0bf0a12 Merge branch 'MDL-83570-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-11-20 16:11:22 +07:00
Frederik Milling Pytlick 8dd0ea96e5 MDL-83658 core: Fix reactive debug tool logging
Fixed issue where the reactive debug panel does not log a transaction,
if the events fired are exactly the same as the previous ones.
2024-11-20 08:15:18 +01:00
meirzamoodle 42b0a371bf MDL-83570 tiny_recordrtc: Turn the audio bitrate input to Select field
The current code may have a bug. If users set the audio bit rate to
a non-supported value, such as 1000,
Firefox will display an error in the console,
while Chrome will create the recorded audio file successfully,
but it will have no sound. I tested this on Ubuntu 24.04.

The minimum bit rate threshold varies depending on the audio format.
During my tests with Firefox version 131.0.3, which uses
the audio/Ogg format, I found that the minimum supported value
is 24000. In Chrome 129.0.6668.70, which uses the audio/MP4 format,
the minimum supported value is 2400.

Due to these differences, I decided to change the input from
a text field to a select field, offering options that support both
Ogg and MP4 audio formats.

The database conversion for the old value has been provided in
the lib/db/upgrade.php. The script will find the closest match to
the current data and update it accordingly.
2024-11-20 10:02:53 +07:00
Mikel Martín c63f883dbf MDL-83493 theme_boost: Fix popover triggering
Popovers were not being closed when clicking elsewhere resulting in
multiple popovers open at the same time that cannot be closed. That
was happening because the trigger for popovers was set to "focus" and
"click" at the same time. This patch removes the "click" as trigger.
Also, adds the click event listener to show the popover and avoid the
problem described in MDL-82570, that caused this regression.
2024-11-19 15:25:23 +01:00
Jun Pataleta 796dd551f7 Merge branch 'MDL-81521-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-11-19 15:15:20 +08:00
Huong Nguyen 8d8b9b7268 Merge branch 'MDL-83610-405' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2024-11-19 09:28:22 +07:00
Jun Pataleta cb041849a3 MDL-83747 mod_data: Add accessible name for delcheck checkboxes 2024-11-18 19:39:04 +08:00
Marina Glancy e764df0dbb MDL-83610 behat: allow to set date fields in groups 2024-11-18 10:37:03 +00:00
meirzamoodle a817a54e90 MDL-83290 dml: Remove "ORDER BY" from the $sort 2024-11-18 16:08:26 +07:00
Jun Pataleta 176558d2ce Merge branch 'MDL-83502-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2024-11-18 14:37:01 +08:00
sam marshall f7931a5580 MDL-83529 Analytics: Upgrade can break if core module is deleted 2024-11-15 09:34:05 +00:00
sam marshall d12989b797 MDL-83211 core_search: Indexing can miss items due to race condition
Changes search indexing so that (except for test scripts) each indexing
run indexes only items up to 5 seconds ago, and the following indexing
will start from the same point. This ensures all items are indexed,
even if an item is written to the database one or two seconds after its
timecreated value.
2024-11-15 09:33:43 +00:00
Mark Johnson 1262e4539e MDL-75610 theme: Allow the activity title in Boost theme's secure layout 2024-11-15 08:32:28 +00:00
Mark Johnson eb7e4a9b65 MDL-75610 output: Fix title display logic in activity header
The display logic for including the title in the activity header was
such that the title would only display if both the theme default and the
layout option for 'notitle' were undefined or false. It was not possible
to a theme to have 'notitle' default to true, but have a layout override
that as false to display the title.

This change re-writes the is_title_allowed method to encapsulte the new
logic, first checking if the current layout has the option set and using
that, and if not falling back to the theme default if that is set. If
neither is set, the title is displayed.

This also tweaks moodle_page::magic_get_layout_options to ensure the
theme is initialised before trying to return the layout options.
2024-11-15 08:32:27 +00:00
Jun Pataleta 26e68178a8 Merge branch 'MDL-82877-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-11-15 13:31:26 +08:00
Andrew Nicols b1d7ea12cd MDL-81521 mod_quiz: Fix attempt walkthrough tests 2024-11-15 12:50:44 +08:00
Andrew Nicols c370c0cc5e MDL-81521 core: Update all possibly data providers to be static
Note: Some data providers could not be automatically be converted to
being static. These will be handled in a separate issue.
2024-11-15 12:50:44 +08:00
Huong Nguyen e1d05182a6 weekly release 4.5+ 2024-11-15 09:21:27 +07:00
Huong Nguyen 2b6424c59d NOBUG: Add upgrade notes 2024-11-15 09:21:27 +07:00
Jun Pataleta 8270af1bf0 Merge branch 'MDL-80926-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-14 12:05:12 +08:00
Jun Pataleta 88e82bb634 Merge branch 'MDL-74836_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2024-11-14 10:46:03 +08:00
Paul Holden 5a189106ad MDL-83710 report_questioninstances: fix missing type query params. 2024-11-13 21:16:00 +00:00
James C 6a107256e3 MDL-82762 course: Prevent "undefined" being added to course index 2024-11-14 10:14:43 +13:00
Wiktor Wandachowicz 521a83352d MDL-83048 mod_quiz: Fixed use of grade_out_of and plugin renderer 2024-11-13 17:12:52 +00:00
Huong Nguyen 66183e5320 Merge branch 'MDL-83185-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2024-11-13 14:26:02 +07:00
Huong Nguyen 5ebabad505 Merge branch 'MDL-80689_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-11-13 14:00:47 +07:00
Andrew Nicols 9fe9652c16 MDL-83704 core: Stop loading subplugins files to uninstall
The list of subplugin types was loaded from the json/php subplugins
file, but then the actual list of subplugins was loaded from the cache
in the component, rendering any benefit of using the source json/php as
pointless.
2024-11-13 10:25:06 +08:00
Andrew Nicols e5b715291d MDL-83704 core: Stop loading subplugins files to fetch caps
This information is heavily cached in the component class. This should
be used wherever possible rather than checking on disk.
2024-11-13 10:25:06 +08:00
Simey Lameze 50a7bad23e MDL-83643 behat: make manual completion scenario names unique 2024-11-13 07:17:51 +08:00
Simey Lameze cfcfa4b1cd MDL-83551 behat: make duplicated scenario names unique 2024-11-13 06:50:47 +08:00
Paul Holden 5ec8651d54 MDL-83686 task: restore behaviour for custom report task name column.
The linked task name column was only required for the system report
and broke aggregation/grouping when used within a custom report, so
fix that.
2024-11-11 16:10:06 +00:00
Nexterday ff08b12ce1 MDL-74836 theme: Display activity header on secure layouts 2024-11-11 15:17:28 +00:00
Philipp Memmel 762681f5c4 MDL-82932 mod_data: Fix export with userdata of deleted users 2024-11-11 13:00:14 +01:00
Tim Hunt 4d40958181 MDL-83653 file manager: report ajax errors
This is for things like when you click on a file, and then click on
the delete button, and an error happens then. Previously that was
ignored.
2024-11-08 17:13:55 +00:00
Andrew Nicols c5846d06df MDL-83506 editor_tiny: Disable default iframe sandboxing 2024-11-08 22:37:05 +08:00
sam marshall 7f3f962c3f MDL-83670 availability_group: With hidden groups, can throw warning 2024-11-08 11:57:48 +00:00
ferran aab9e18b6d MDL-83661 core_courseformat: fix drop file modal
When the user drags and drops a file into a course section that can
create more than one type of activity (for example a zip file) the modal
had repeated form elements ids. Now every radio option has its own id.
2024-11-08 11:46:05 +01:00
Rossco Hellmans a3e629c7e8 MDL-66129 course_module: include lib.php before calling _refresh_events
Before checking for and calling the module _refresh_events function in
course_module_calendar_event_update_process, the module lib.php file
needs to be included if it has not been already.
2024-11-08 18:47:33 +10:00
Huong Nguyen cd5c991ede weekly release 4.5+ 2024-11-08 13:56:33 +07:00
Huong Nguyen 1c70185782 MDL-82335 qbank_columnsortorder: Fix upgrade code coding style 2024-11-08 09:03:21 +07:00
sam marshall cf431667e9 MDL-83584 report_log: Group filter can get list of all users in system 2024-11-07 09:39:15 +00:00
Huong Nguyen 598b4743cc MDL-82335 qbank_columnsortorder: Cleanup upgrade code 2024-11-07 13:37:37 +07:00
Huong Nguyen a35b341ce7 Merge branch 'MDL-83619-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-07 11:05:27 +07:00
Huong Nguyen 66f4852bff Merge branch 'MDL-83611-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-07 11:02:21 +07:00
Huong Nguyen aeace8ee75 Merge branch 'MDL-82335_405' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_405_STABLE 2024-11-07 09:31:45 +07:00
Huong Nguyen 38f99a1e60 Merge branch 'MDL-83316-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-11-07 09:26:50 +07:00
Simey Lameze 7547dec095 MDL-83316 behat: remove duplicated Then from new test 2024-11-07 07:46:02 +08:00
sam marshall d4564b876e MDL-83316 Behat: New step allows system clock change 2024-11-07 07:46:02 +08:00
Jun Pataleta 0f5cb9dbd5 Merge branch 'mdl-83497_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2024-11-06 22:38:40 +08:00
Anupama Sarjoshi 1ecc215b3a MDL-82335 qbank_columnsortorder: Fix upgrading issue
When upgraded to Moodle 4.4 or higher, for qbank_columnsortorder
the colsize values in the config_plugins were getting incorrectly set,
resulting in errors accessing the question bank. Changes done to fix
this code and to remove the corrupted colsize value from
config_plugins table.
2024-11-06 13:17:58 +00:00
Jun Pataleta ecc8edd917 Merge branch 'MDL-76563-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-11-06 17:29:29 +08:00
Simey Lameze 8bcec8ba5f MDL-80926 behat: fix random and improve h5p completion test 2024-11-06 13:36:58 +08:00
Jun Pataleta b26192f62f Merge branch 'MDL-83602-405' of https://github.com/ilyatregubov/moodle into MOODLE_405_STABLE 2024-11-06 13:30:44 +08:00
Simey Lameze 82c915dbc3 MDL-83611 behat: increase window size to avoid randoms 2024-11-05 13:21:23 +08:00
Simey Lameze 50ab3f94d5 MDL-83619 behat: enable bbb module early in the test 2024-11-05 10:23:24 +08:00
Paul Holden 5b282947d7 MDL-82877 customfield: pass correct instanceid for restore structure. 2024-11-04 15:32:09 +00:00
Paul Holden 24dc478086 MDL-83226 customfield: set backup/restore configuration defaults. 2024-11-04 15:29:11 +00:00
Laurent David 2562bbfd1b MDL-83185 core_courseformat: Refresh cache on group change
* When we add users to a group (or remove them), we should refresh
the course index cache so it stays in sync with what the user
can actually see.
2024-11-04 06:14:06 +01:00
ferran 1716e2f2cd MDL-83185 core_courseformat: Allow global state cache invalidation 2024-11-04 06:14:06 +01:00
Huong Nguyen acff633e39 weekly release 4.5+ 2024-11-01 14:29:15 +07:00
Huong Nguyen 65ceca6092 NOBUG: Add upgrade notes 2024-11-01 14:29:15 +07:00
Huong Nguyen c21b1143a4 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-11-01 14:29:01 +07:00
Tim Hunt 0cd7aaebcd MDL-80689 filepicker: better reporting of incorrect file type
Before this change, file type errors were reported like system errors. Now,
they are reported in a plain dialoue, which is more like how it works for
drag-drop upload.

Also, before this, after an upload errors, you were left with a blank
filepicker dialogue. Now, the upload form is redisplayed.
2024-10-31 11:38:28 +00:00
Tim Hunt 2e8b980985 MDL-80689 behat: add a transformation to get dirroot 2024-10-31 11:38:27 +00:00
Tim Hunt 01aa6fa7d2 MDL-80689 form behat: move fixture file to the expected place 2024-10-31 11:38:27 +00:00
Ilya Tregubov 6290196cde MDL-83602 customfield_number: Add help text for fieldtype. 2024-10-31 16:17:49 +08:00
Huong Nguyen ffa8c930f0 Merge branch 'MDL-82911-405-fix' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-10-31 14:14:28 +07:00
Simey Lameze 8679f4afdf MDL-82911 behat: change future times example to minutes 2024-10-31 14:15:41 +08:00
Huong Nguyen 1afeadb4f4 Merge branch 'MDL-82911-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2024-10-31 11:22:27 +07:00
Huong Nguyen 3fc2111a4b Merge branch 'MDL-83414-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2024-10-31 11:22:27 +07:00
Huong Nguyen d731f7e01e Merge branch 'MDL-83514-405' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2024-10-31 11:22:27 +07:00
Huong Nguyen 49fbe6d614 Merge branch 'MDL-82989-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-10-31 11:22:26 +07:00
Jun Pataleta 9ece615f6c Merge branch 'MDL-82809-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-31 11:22:26 +07:00
Huong Nguyen 42052386d1 Merge branch 'MDL-82988-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-10-31 11:22:26 +07:00
Angelia Dela Cruz 0d02ded10f MDL-83414 core_grades: Behat to test custom scale display 2024-10-31 09:46:29 +08:00
Marina Glancy aaf5c3f8b7 MDL-83514 customfield_number: add missing event observers 2024-10-29 19:44:12 +00:00
Angelia Dela Cruz 11c941f404 MDL-82911 mod_bigbluebuttonbn: Behat for BBB open and close date time 2024-10-29 11:45:51 +08:00
AMOS bot 87d0aae1fb Automatically generated installer lang files 2024-10-29 00:07:54 +00:00
meirzamoodle 3e0c2a45fb MDL-82989 communication_matrix: Apply helper to mock http_client 2024-10-27 15:56:39 +07:00
meirzamoodle a3b84f77c7 MDL-82988 general: Apply helper to get path to fixture 2024-10-27 15:38:50 +07:00
Huong Nguyen 149a477903 weekly release 4.5+ 2024-10-25 08:35:54 +07:00
Huong Nguyen 47cd445f67 NOBUG: Add upgrade notes 2024-10-25 08:35:53 +07:00
Huong Nguyen 5524686f71 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-10-25 08:35:39 +07:00
Mikel Martín 20d4962c33 MDL-76563 theme: Change SCSS variable value
Change the value of the $pink SCSS colour variable so it is
colour contrast accessible on white backgrounds.
2024-10-24 13:27:49 +02:00
Jun Pataleta 1b93c2781e Merge branch 'MDL-82548-main' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-10-24 12:18:34 +08:00
Jun Pataleta 39658c5b3a Merge branch 'MDL-83423-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2024-10-24 12:13:23 +08:00
Huong Nguyen e271f67942 Merge branch 'MDL-83432-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-24 10:13:12 +07:00
Huong Nguyen 1aef5337bd Merge branch 'MDL-83504-405' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2024-10-24 09:44:51 +07:00
AMOS bot 3ef3a9b1bc Automatically generated installer lang files 2024-10-24 00:08:18 +00:00
Jun Pataleta 80c7a3a847 Merge branch 'MDL-81308-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2024-10-23 18:15:24 +08:00
Jun Pataleta c5b16d9afb Merge branch 'MDL-83430-405' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2024-10-23 16:09:37 +08:00
Jun Pataleta 4fb2a4dd60 Merge branch 'MDL-83463-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-23 14:35:35 +08:00
Andrew Nicols 5ab2997d89 MDL-81308 core: Use a helper for consecutive invocation counts 2024-10-23 14:19:26 +08:00
Andrew Nicols 16efbcaa01 MDL-81308 core: Update tests to not use withConsecutive 2024-10-23 14:19:25 +08:00
Jun Pataleta 3f020e662d Merge branch 'MDL-83376-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2024-10-22 17:18:31 +08:00
Jun Pataleta ef01def984 Merge branch 'MDL-83472-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-22 15:55:54 +08:00
Marina Glancy ce1ef8bda0 MDL-83504 user: reset preference cache in unittests 2024-10-21 17:59:08 +01:00
ferran 8adf0918ce MDL-83502 course: fix chrome file dropping in course page 2024-10-21 11:48:36 +02:00
rajandangi 86e830eac4 MDL-83501 core: URL encode paths for Nginx X-Accel-Redirect 2024-10-21 19:37:45 +10:30
meirzamoodle 60fb2c1232 MDL-83376 AI: Add is_request_allowed() to the base provider 2024-10-21 13:32:12 +07:00
James C 605a610702 MDL-83497 course: Preserve move section dialogue info HTML 2024-10-19 16:21:46 +13:00
Paul Holden 55e6c1b588 MDL-83432 enrol: fix arguments to enrolment test generator. 2024-10-18 15:12:44 +01:00
Paul Holden e792dbbe0b MDL-83432 enrol_manual: reference correct role in welcome message. 2024-10-18 15:12:44 +01:00
Shamim Rezaie 09880d7d78 weekly release 4.5+ 2024-10-18 23:28:49 +11:00
Shamim Rezaie 426e34af13 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-10-18 23:28:37 +11:00
Jun Pataleta 161d14cd92 Merge branch 'MDL-83457-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-10-17 12:23:19 +08:00
Jun Pataleta 204da574bd Merge branch 'MDL-83443-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-17 12:17:33 +08:00
Jun Pataleta a7f0f4af47 Merge branch 'MDL-83442-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2024-10-17 12:13:29 +08:00
Jun Pataleta cec04e64a1 Merge branch 'MDL-83367-405' of https://github.com/dravek/moodle into MOODLE_405_STABLE 2024-10-17 12:08:48 +08:00
Jun Pataleta 371c836be1 Merge branch 'MDL-81450-MOODLE_405_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_405_STABLE 2024-10-17 12:05:06 +08:00
Huong Nguyen 97f35300f7 Merge branch 'MDL-82580-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-17 10:49:15 +07:00
Jun Pataleta 2870ea8556 Merge branch 'MDL-83143-405' of https://github.com/safatshahin/moodle into MOODLE_405_STABLE 2024-10-17 11:47:11 +08:00
Jun Pataleta 1c2e8c3abb Merge branch 'MDL-82838-main' of https://github.com/justusdieckmann/moodle into MOODLE_405_STABLE 2024-10-17 10:55:17 +08:00
Huong Nguyen 125ff0d462 Merge branch 'MDL-75724-405_toolbrickfield_tableheadercheck' of https://github.com/brickfield/moodle into MOODLE_405_STABLE 2024-10-17 09:44:24 +07:00
Jun Pataleta 23bde28300 Merge branch 'MDL-83002' of https://github.com/marinaglancy/moodle into MOODLE_405_STABLE 2024-10-16 20:33:38 +08:00
Paul Holden f5aa88ec02 MDL-83472 phpunit: add void return type to test methods.
See also 01148a0816 from MDL-81522.
2024-10-16 13:03:50 +01:00
Paul Holden 9f9fa01a91 MDL-83472 phpunit: call parent setUp unit test method.
See also 674497a12c from MDL-81523.
2024-10-16 13:03:21 +01:00
Paul Holden 5bf6da6331 MDL-82809 reportbuilder: always apply conditions to custom report.
Including those that are otherwise unavailable to the current user,
ensuring that they are always applied when viewing report output.
2024-10-16 10:51:42 +01:00
Philipp Memmel 69751fcd69 MDL-81450 mod_forum: Reduce size of file icon in HTML mails
@Co-authored-by: Mateusz Walczak
2024-10-16 11:32:45 +02:00
Paul Holden 5c969d2370 MDL-82475 reportbuilder: account for duplicate profile field names.
Long-term, it would be better to not allow this scenario to happen
at all but until then we'll have to work around it (see MDL-73461).
2024-10-16 09:33:16 +01:00
Paul Holden 7c959f479b MDL-82809 reportbuilder: load custom/profile fields consistently.
Ensure that provided columns and filters for each use appropriate
checks to determine their availability (based on user permissions,
etc), rather than conditionally adding them to the entity.
2024-10-16 08:51:00 +01:00
David Woloszyn d43cec5bb3 MDL-83442 aiprovider_azureai: Correct help string URL 2024-10-16 17:55:09 +11:00
Huong Nguyen a47729dc17 Merge branch 'MDL-83390-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2024-10-16 11:09:57 +07:00
Huong Nguyen 8ffd4c4bb1 Merge branch 'MDL-82793-MOODLE_405_STABLE' of https://github.com/phmemmel/moodle into MOODLE_405_STABLE 2024-10-16 09:26:36 +07:00
Philipp Memmel a3ab626df1 MDL-82793 core: Make modal execute JS from template
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-10-15 20:52:23 +02:00
Paul Holden fd103caa83 MDL-83463 backup: ensure defaults for course file inclusion are read. 2024-10-15 12:27:07 +01:00
Jun Pataleta 12d87a9b65 Merge branch 'MDL-83070_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-10-15 19:09:10 +08:00
david adamson cd54f46df1 MDL-82429 tool_brickfield: Process calculated fontsizes 2024-10-15 16:25:54 +07:00
Mikel Martín 49e66dfc5d MDL-83457 mod_feedback: Fix get_incomplete_users early return type
Fix 'feedback_get_incomplete_users' early return when there are no users with
the 'mod/feedback:complete' capability from 'false' to an empty array. That
will follow the function signature.
2024-10-15 09:51:23 +02:00
Mikel Martín c36c98448d MDL-83390 message: Fix category collapse icon
- Replace incorrect 't/collapsedcaret' with 't/collapsed' icon
- Add RTL icon for accessibility
2024-10-15 09:24:11 +02:00
Jun Pataleta 5e7d431426 Merge branch 'MDL-83253-main' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2024-10-15 11:45:43 +08:00
Andrew Nicols 3b4b95d431 MDL-83257 editor_tiny: Disable Alt+F12 keyboard shortcut
This was introduced in Tiny 7.1 to focus notifications, but it conflicts
with the German keyboard layout which uses Alt+F12 to access the open
curly brace.

This is an upstream problem with TinyMCE and should be fixed in a future
release.

The recommended workaround is to disable the shortcut.
2024-10-15 10:33:23 +08:00
Jake Dallimore 42079bb48d MDL-83423 mod_lti: fix JWK decoding when multiple keys missing alg
Related to MDL-77077, but was a case missed there. Now, any unusable
keys (i.e. can't be used during the JWT decode), are dropped from the
keyset if they don't have the 'alg' prop, preventing a 'missing alg'
exception during keyset parsing. Since these cannot be used during
decode, these aren't needed anyway.
2024-10-15 09:11:21 +08:00
AMOS bot c294a22dae Automatically generated installer lang files 2024-10-15 00:09:36 +00:00
Michael Pound bde5487a56 MDL-75724 tool_brickfield: Ensuring correct table headers pass checks. 2024-10-14 16:55:07 +00:00
Marina Glancy c0b2343245 MDL-83430 customfield_number: call display method from provider earlier 2024-10-14 11:39:56 +01:00
Marina Glancy ae500b5728 MDL-83430 customfield_number: fix storing activities number when 0 2024-10-14 11:39:51 +01:00
Leon Stringer 7597343964 MDL-83452 mod_assign: Remove add_body_class
Remove extraneous $PAGE->add_body_class('limitedwidth'), unneeded since
MDL-74031 added a call to this.
2024-10-14 08:43:48 +01:00
Huong Nguyen b311baf0bd Merge branch 'MDL-83381-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2024-10-14 11:08:59 +07:00
AMOS bot d1c223071a Automatically generated installer lang files 2024-10-13 00:07:55 +00:00
Paul Holden 14f9c08355 MDL-83443 enrol: use defined role name in welcome message. 2024-10-11 14:35:22 +01:00
Jake Dallimore 9ec7e01527 weekly release 4.5+ 2024-10-11 10:55:02 +08:00
Jake Dallimore ce20b2f255 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-10-11 10:54:54 +08:00
Safat 85bd222b2f MDL-83143 core_communication: Behat coverage for default to course name 2024-10-11 11:02:19 +11:00
Safat cf3d932d74 MDL-83143 core_course: Add course name as default for empty room name 2024-10-11 11:02:19 +11:00
Safat 0b47dfec7c MDL-83143: core_communication: Fix variable name typos 2024-10-11 11:02:19 +11:00
Jun Pataleta 8036733091 Merge branch 'MDL-82813-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-10 12:04:10 +08:00
vietlx426 a74e15c66b MDL-82570 themes: Help boxes not accessible if selected consecutively 2024-10-10 10:52:33 +07:00
Tobias Garske b7e1d77184 MDL-83255 core_course: Fix activitychooser recommended tab navigation 2024-10-10 10:12:28 +07:00
Jun Pataleta 5379d34827 Merge branch 'MDL-82912-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2024-10-10 10:35:02 +08:00
Jun Pataleta 50e813478a Merge branch 'MDL-82812_405_toolbrickfieldfaicons' of https://github.com/brickfield/moodle into MOODLE_405_STABLE 2024-10-10 10:13:40 +08:00
Mikel Martín 4f699801b9 MDL-83283 mod_subsection: Fix subsection completion button margin 2024-10-10 09:08:16 +07:00
David Woloszyn 7beb6d7e82 MDL-83381 AI: Fix OpenAI provider config 2024-10-10 11:53:55 +11:00
Angelia Dela Cruz 1f1406d68c MDL-82912 mod_workshop: Behat to view assessment after workshop close 2024-10-09 16:26:56 +08:00
Huong Nguyen 17924add45 Merge branch 'MDL-83331_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-10-09 14:47:00 +07:00
AMOS bot 56293e0de4 Automatically generated installer lang files 2024-10-09 00:09:26 +00:00
Max Larkin 653c0937c6 MDL-82812 tool_brickfield: Ignore fa icons 2024-10-08 13:04:26 +01:00
Bas Brands 9fcb0eca01 MDL-70180 theme_boost: Allow form autoselect modal overflow
Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-10-08 09:36:11 +07:00
AMOS bot ff87bb5101 Automatically generated installer lang files 2024-10-08 00:07:49 +00:00
Paul Holden a271d9efc9 MDL-82580 report_log: preserve filter by individual user. 2024-10-07 20:15:35 +01:00
Paul Holden 3e18e85dce MDL-82813 group: correctly format group description property. 2024-10-07 17:58:34 +01:00
Tim Hunt 92fdfe834f MDL-83331 behat: enable navigation direct to mod/.../index.php 2024-10-07 12:05:09 +01:00
Tim Hunt f7c18e4e4b MDL-83070 question restore: recode links in hints 2024-10-07 11:54:20 +01:00
David Carrillo 2698647bcd MDL-83367 tasks: Apply trim() to pathtophp setting
- It fixes the problem that when "pathtophp" setting is stored with
whitespaces, the "Run now" button will still show up in the tasks list,
but the task will never run
2024-10-07 08:18:13 +02:00
Jun Pataleta 803c3d8977 MDL-83374 upgrade: add the 4.5.0 separation line to all upgrade scripts 2024-10-07 09:34:51 +07:00
Jun Pataleta 52c0da7c64 Moodle release 4.5 2024-10-05 15:10:56 +08:00
Jun Pataleta 5b421c6db6 NOBUG: Add upgrade notes 2024-10-05 15:08:28 +08:00
AMOS bot 572b972869 Automatically generated installer lang files 2024-10-05 00:07:53 +00:00
Huong Nguyen 5fdbd507a4 Moodle release 4.5rc2 2024-10-04 21:07:32 +07:00
Huong Nguyen 3a6640c461 NOBUG: Add upgrade notes 2024-10-04 21:06:11 +07:00
Huong Nguyen 166408a13a NOBUG: Fixed SVG browser compatibility 2024-10-04 21:02:58 +07:00
Huong Nguyen 00af6298b1 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-10-04 21:02:58 +07:00
Andrew Nicols e8c5c84403 MDL-83351 upgradenotes: Correct invalid components 2024-10-04 16:07:10 +07:00
Jun Pataleta 3d60012841 MDL-83309 aiplacement_courseassist: Bump plugin maturity to stable 2024-10-04 11:54:58 +07:00
AMOS bot 813cad3b24 Automatically generated installer lang files 2024-10-04 00:07:49 +00:00
Sara Arjona 315416e197 Merge branch 'MDL-83351-main' of https://github.com/andrewnicols/moodle 2024-10-03 17:20:54 +02:00
Andrew Nicols 807731743d MDL-83351 navigation: Convert final deprecation to non-final 2024-10-03 23:01:32 +08:00
Andrew Nicols a865529d7a MDL-83351 upgradenote: Remove unnecessary notes 2024-10-03 23:01:31 +08:00
Andrew Nicols 1d88b57bba MDL-83351 upgradenotes: Clarify upgrade notes 2024-10-03 23:01:31 +08:00
Marina Glancy 62e776673a MDL-83002 theme_boost: tell behat to wait when initialising drawers 2024-10-03 15:50:28 +01:00
Jun Pataleta b576bb4a0e Merge branch 'MDL-83353' of https://github.com/paulholden/moodle 2024-10-03 20:28:07 +08:00
Michael Hawkins f3189c1e1a MDL-83352 message: Update usercantbemessaged string 2024-10-03 17:46:03 +07:00
Paul Holden 8d318b1b05 MDL-83353 output: fix icon output in classic activity navigation.
Prevent `$PAGE` debugging when loading navigation branches.
2024-10-03 10:14:48 +01:00
Sara Arjona f4202b26cd Merge branch 'MDL-83312-main' of https://github.com/davewoloszyn/moodle 2024-10-03 10:24:58 +02:00
Jun Pataleta 62b8b3709d Merge branch 'MDL-83238-main-enfix' of https://github.com/mudrd8mz/moodle 2024-10-03 16:01:53 +08:00
Sara Arjona d7f28e0c93 Merge branch 'MDL-83309-main' of https://github.com/junpataleta/moodle 2024-10-03 08:22:26 +02:00
Sara Arjona 3f9087a161 Merge branch 'MDL-83318-main' of https://github.com/aanabit/moodle 2024-10-03 08:11:10 +02:00
Huong Nguyen d1cced3864 Merge branch 'MDL-83296' of https://github.com/marinaglancy/moodle 2024-10-03 08:44:21 +07:00
Andrew Nicols 0d19dd6491 Merge branch 'MDL-83293-main' of https://github.com/junpataleta/moodle 2024-10-03 08:46:16 +08:00
David Woloszyn 3b23f4db26 MDL-83312 AI: Check provider has minimal config 2024-10-03 10:25:23 +10:00
David Carrillo 07ad4b8ebc MDL-83179 badges: Get type and courseid from context instead of params 2024-10-03 08:11:51 +08:00
Jun Pataleta f173a7026a MDL-83293 core: Fix path separator when guessing the base path
Ensure that path separator for the script when guessing the base path
uses forward slash instead of the OS' directory separator.
(e.g. "\" in Windows)
2024-10-03 08:01:30 +08:00
Shamim Rezaie 6399179739 MDL-83332 core: Remove slasharguments config modification lines
MDL-62640 removed the 'slasharguments' config, and 3229dda3 attempted to
restore it by setting it to 1. This could unintentionally reset the
'slasharguments' config for all sites upgrading to 4.5.
2024-10-03 02:16:32 +10:00
Shamim Rezaie 83526c7a2d Merge branch 'MDL-83332-main-new' of https://github.com/meirzamoodle/moodle 2024-10-03 02:15:03 +10:00
Amaia Anabitarte 76f84a929d MDL-83318 pix: Recover previous and next icons 2024-10-02 15:14:36 +02:00
meirzamoodle 3229dda3d6 MDL-83332 core: Revert the slashargument removal on MDL-62640
Removing the option causes issues on MacOS.
2024-10-02 18:36:14 +07:00
Jun Pataleta 7f0b254022 MDL-83309 mod_subsection: Remove $plugin->release
* Release names ($plugin->release) are only for non-core plugins
2024-10-02 17:18:28 +08:00
Jun Pataleta 5c09d2c905 MDL-83309 versions: Main version bump 2024-10-02 17:05:39 +08:00
Jun Pataleta f24e0ecf53 MDL-83309 versions: Bump all versions and requires near release 2024-10-02 17:04:53 +08:00
Paul Holden 1a040098e3 MDL-83180 reportbuilder: correct access check for viewing schedules. 2024-10-02 16:49:09 +08:00
Huong Nguyen 13fdeab15e Merge branch 'MDL-83327_main' of https://github.com/marxjohnson/moodle 2024-10-02 14:28:08 +07:00
Huong Nguyen 4a53eda14e Merge branch 'MDL-83328_main' of https://github.com/marxjohnson/moodle 2024-10-02 13:48:41 +07:00
David Carrillo a25ee4ebb9 MDL-83178 reportbuilder: correct access check to view badge recipients 2024-10-02 13:57:53 +08:00
Jun Pataleta f332842df1 Merge branch 'mdl83310' of https://github.com/danmarsden/moodle 2024-10-02 12:31:17 +08:00
Paul Holden e724d59d35 MDL-83181 reportbuilder: ensure audience correctness before delete. 2024-10-02 03:04:18 +00:00
Paul Holden c8bf6bc4a8 MDL-82386 block_rss_client: user access checks for feed edit/delete. 2024-10-02 03:04:18 +00:00
Huong Nguyen d421ca9ccd Merge branch 'mdl83176' of https://github.com/danmarsden/moodle 2024-10-02 10:00:18 +07:00
Mark Johnson 89a87b7d4e MDL-83328 qbank_managecategories: Fix move dialogue for single child 2024-10-01 14:45:33 +01:00
Mark Johnson 8c1c013f78 MDL-83327 qbank_managecategories: Fix invalid parameter when moving
Clicking on the "Move" label of the move button resulted in an
incorrectly titled dialog and an "invalid parameter" error.
2024-10-01 14:35:05 +01:00
Huong Nguyen 0eacab846e Moodle release 4.5rc1 2024-10-01 19:37:23 +07:00
Huong Nguyen 4d1c0cb04b NOBUG: Add upgrade notes 2024-10-01 19:37:15 +07:00
Mikel Martín 89c30cecd8 MDL-82548 courseformat: Fix courseindex cm anchors
In the course index the course modules links had incorrenct "href" (only the anchor) when
being displayed in a page different than course page. This patch regenerates the href for
cms in the course index when needed.
2024-10-01 11:53:52 +02:00
Dan Marsden 14254008fd MDL-83310 course: remove hard-coded list of course formats from test. 2024-10-01 19:57:46 +13:00
Huong Nguyen 6332ffc0dd Merge branch 'MDL-83298-main' of https://github.com/andrewnicols/moodle 2024-10-01 13:05:15 +07:00
Jun Pataleta faa06503b1 Merge branch 'MDL-83264-main-1' of https://github.com/mihailges/moodle 2024-10-01 12:47:09 +08:00
Huong Nguyen 838a9abb73 Merge branch 'MDL-82900-main' of https://github.com/mickhawkins/moodle 2024-10-01 11:40:37 +07:00
Michael Hawkins e50249fbea MDL-82900 AI: Update language strings 2024-10-01 12:33:38 +08:00
Mihail Geshoski d0056ae0b0 MDL-83264 mod_quiz: Return the correct name for top categories 2024-10-01 09:40:47 +08:00
David Mudrák cdd3b4648f MDL-83238 lang: Fix the changed strings in the tests, too 2024-09-30 20:04:54 +02:00
Helen Foster 8e8267144d MDL-83238 lang: Import fixed English strings (en_fix) 2024-09-30 19:42:49 +02:00
Shamim Rezaie 5dbe3fa789 Merge branch 'MDL-82693' of https://github.com/paulholden/moodle 2024-09-30 23:41:31 +10:00
Shamim Rezaie c24a0554d2 Merge branch 'MDL-83295-main' of https://github.com/junpataleta/moodle 2024-09-30 23:08:17 +10:00
Shamim Rezaie f7db1fabbb Merge branch 'MDL-81590-main' of https://github.com/junpataleta/moodle 2024-09-30 23:01:06 +10:00
Sara Arjona 0cde4a8842 Merge branch 'MDL-83276-main' of https://github.com/HuongNV13/moodle 2024-09-30 11:20:30 +02:00
Dan Marsden 1ba9fb88d9 MDL-83176 cache: Include formslib as it doesn't autoload 2024-09-30 20:39:48 +13:00
Sara Arjona f608faef01 Merge branch 'MDL-82939-main' of https://github.com/mickhawkins/moodle 2024-09-30 07:41:37 +02:00
Huong Nguyen ce2c4775f8 Merge branch 'MDL-83277-main' of https://github.com/raortegar/moodle 2024-09-30 11:29:02 +07:00
Marina Glancy 7015c67d7c MDL-83296 user: store defaulthomepage as a relative url 2024-09-27 14:31:26 +01:00
Huong Nguyen 30692df849 Moodle release 4.5beta 2024-09-27 19:16:56 +07:00
Huong Nguyen 282421ce6c NOBUG: Change upgrade notes version 2024-09-27 19:16:56 +07:00
Andrew Nicols 116b0975c7 MDL-83298 core: Trim trailing whitespace on upgrade notes 2024-09-27 20:05:58 +08:00
Huong Nguyen 7b4ed9096f NOBUG: Add upgrade notes 2024-09-27 18:45:07 +07:00
Huong Nguyen d4822bf0fb Moodle release 4.5beta 2024-09-27 18:45:07 +07:00
Huong Nguyen c72e5f2ae7 NOBUG: Fixed SVG browser compatibility 2024-09-27 18:44:53 +07:00
Huong Nguyen 2c2b04fea1 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-09-27 18:44:53 +07:00
Jun Pataleta a2dd139baf MDL-83295 core: Use pattern matching for expected task output 2024-09-27 17:28:26 +08:00
Huong Nguyen c2dafca314 MDL-83276 AI: Extra checks for provider and placement actions 2024-09-27 15:48:42 +07:00
raortegar 9825a4129a MDL-83277 AI: Placement Text Editor - Remove browser console log 2024-09-27 09:55:11 +02:00
raortegar e9c2e52c9d MDL-83277 AI: Course Assistance - Remove browser console log 2024-09-27 09:55:11 +02:00
Jun Pataleta a6975e6dc4 MDL-81590 core: Build the context path without using DIRECTORY_SEPARATOR 2024-09-27 15:39:38 +08:00
Michael Hawkins c7810fd7ce MDL-82939 core_sms: Update lang strings
Also fixed a bug where the gateways page didnt render the correct title.
2024-09-27 13:38:55 +08:00
Jun Pataleta ddfd7353bc Merge branch 'MDL-80929' of https://github.com/paulholden/moodle 2024-09-27 12:40:12 +08:00
Huong Nguyen 955f04af77 Merge branch 'MDL-83205-main' of https://github.com/andrewnicols/moodle 2024-09-27 11:26:42 +07:00
Huong Nguyen cf4fe9d924 Merge branch 'MDL-82483' of https://github.com/paulholden/moodle 2024-09-27 11:15:40 +07:00
Jun Pataleta b3943152f6 Merge branch 'MDL-82602' of https://github.com/paulholden/moodle 2024-09-27 12:10:41 +08:00
Huong Nguyen 762aa5ada8 Merge branch 'MDL-80974-main' of https://github.com/sh-csg/moodle 2024-09-27 11:08:36 +07:00
Jun Pataleta 4fd625c4fd Merge branch 'MDL-82973' of https://github.com/paulholden/moodle 2024-09-27 12:05:56 +08:00
Jun Pataleta 75888b351f Merge branch 'MDL-83163-main' of https://github.com/sammarshallou/moodle 2024-09-27 11:59:22 +08:00
Andrew Nicols bc44c50481 Merge branch 'MDL-83094' of https://github.com/paulholden/moodle 2024-09-27 11:05:34 +08:00
Huong Nguyen ea4336279b Merge branch 'MDL-82231' of https://github.com/paulholden/moodle 2024-09-27 09:51:14 +07:00
Jun Pataleta 1e93072906 Merge branch 'MDL-81157' of https://github.com/paulholden/moodle 2024-09-27 10:28:20 +08:00
Jun Pataleta 25c8f5b429 Merge branch 'MDL-82581' of https://github.com/paulholden/moodle 2024-09-27 10:10:39 +08:00
AMOS bot 034ed3e0ed Automatically generated installer lang files 2024-09-27 00:07:49 +00:00
Sara Arjona 9a83df73a5 Merge branch 'MDL-82872' of https://github.com/jfederico/moodle 2024-09-26 17:59:54 +02:00
jfedericobn 43542cbcb4 MDL-82872 mod_bigbluebuttonbn: Extend meeting_events with subplugins 2024-09-26 15:33:10 +00:00
Jun Pataleta 4152849273 Merge branch 'MDL-79288-main_blockaccessreview_colourcontrastcheck' of https://github.com/brickfield/moodle 2024-09-26 19:44:58 +08:00
Jun Pataleta 18095f2478 Merge branch 'MDL-83263-main' of https://github.com/mihailges/moodle 2024-09-26 16:28:42 +08:00
Michael Pound f96c9b68a1 MDL-79288 block_accessreview: Improve heatmap colour contrast. 2024-09-26 04:08:02 -04:00
Andrew Nicols 25398dc129 Merge branch 'MDL-83268-main' of https://github.com/sarjona/moodle 2024-09-26 15:58:38 +08:00
Andrew Nicols 52e64f0890 Merge branch 'MDL-83245-main-fix' of https://github.com/HuongNV13/moodle 2024-09-26 15:57:50 +08:00
Huong Nguyen a7e4cec6b7 MDL-83245 core_files: Fix incorrect setting name 2024-09-26 14:49:51 +07:00
Sara Arjona eec4c5948c MDL-83268 core_h5p: Remove unused font files
In https://h5ptechnology.atlassian.net/browse/HFP-4105, the
fonts/h5p-core-29.svg was merged with some conflicts.
Looking at the patch there, it seems all the h5p-core-29* fonts
can be removed because the ones used by the library are the
h5p-core-30-*.

I haven't added a note in the upgrade because it seems an error
on their release process (so I don't think it's worth adding
a note because it should be fixed in future releases).
2024-09-26 09:42:47 +02:00
Paul Holden 8e77b9bf7c MDL-82231 check: include upgrading.md files in public path checks. 2024-09-26 08:30:33 +01:00
Andrew Nicols ebdac763ed Merge branch 'MDL-83268-main' of https://github.com/sarjona/moodle 2024-09-26 14:39:13 +08:00
Michael Hawkins 1f66c92a1a MDL-82939 core_sms: Add class to the SMS table
This makes it possible to reference in behat table steps.
2024-09-26 14:28:47 +08:00
Andrew Nicols a5ac414521 MDL-83253 core: Ignore invalid components for deprecated cap info
When checking for deprecated capabilty info, if a component is invalid,
skip loading of that component.
2024-09-26 12:34:45 +08:00
Huong Nguyen 7c3c18c4e8 Merge branch 'MDL-62640-main' of https://github.com/meirzamoodle/moodle 2024-09-26 11:06:55 +07:00
Huong Nguyen 0ea96dbf29 Merge branch 'MDL-83064-main' of https://github.com/laurentdavid/moodle 2024-09-26 10:47:43 +07:00
Huong Nguyen e148d291e8 Merge branch 'MDL-83245-main' of https://github.com/andrewnicols/moodle 2024-09-26 10:27:53 +07:00
Andrew Nicols b9a5ed7737 MDL-83245 core_files: Update file redaction API
This change:
- Moves the API to use the `before_file_created` hook
- Remove the newly created `$notify` param for `after_file_created` hook
- Stop persisting redactable content
- Update manager to not deal with `stored_file` instances
- Correct namespace from `\core\filereact` to `\core_files\redactor`
- Add `redactor` as a valid L2 namespace within the `core_files` API
- Correct config setting names
- Adds missing unit tests
- Disables the service for PHPUnit tests

AMOS BEGIN
  MOV [fileredact,core_files],[redactor,core_files]
  MOV [fileredact,core_files],[redactor:exifremover,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:emptyremovetags,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:enabled,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:enabled_desc,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:failedprocessexiftool,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:failedprocessgd,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:heading,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:mimetype,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:mimetype_desc,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:removetags,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:removetags_desc,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:tag:all,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:tag:gps,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:tooldoesnotexist,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:toolpath,core_files]
  MOV [fileredact,core_files],[redactor:exifremover:toolpath_desc,core_files]
AMOS END
2024-09-26 11:24:17 +08:00
Jun Pataleta f2e601c39f Merge branch 'MDL-83148' of https://github.com/paulholden/moodle 2024-09-26 11:16:25 +08:00
Andrew Nicols 102366f8aa Merge branch 'MDL-82298-main-behat-fixes' of https://github.com/cameron1729/moodle 2024-09-26 11:13:53 +08:00
Jun Pataleta 1b648f0c14 Merge branch 'MDL-83246-main' of https://github.com/andrewnicols/moodle 2024-09-26 10:59:06 +08:00
Cameron Ball 7bccc2978a MDL-82298 navigation: Update behat tests for theme_classic 2024-09-26 10:08:36 +08:00
Jun Pataleta a397b070df Merge branch 'MDL-83235' of https://github.com/paulholden/moodle 2024-09-26 09:25:35 +08:00
Sara Arjona e0c8730147 Merge branch 'MDL-83173-main' of https://github.com/stevandoMoodle/moodle 2024-09-25 17:11:32 +02:00
Andrew Nicols aa543e8c39 MDL-83246 core: Move profiler after autoloader registration 2024-09-25 23:11:23 +08:00
Sara Arjona 14e2bb4c87 MDL-83268 core_h5p: Remove the h5plib_v126 plugin
The h5plib_v126 plugin can be removed because it has been replaced
with h5plib_v127, which is using the latest versions of the
libraries.
2024-09-25 17:06:35 +02:00
Sara Arjona 958b4fc723 MDL-83268 core_h5p: Add editor lib changes after upgrading it 2024-09-25 17:06:35 +02:00
Sara Arjona d4458c308d MDL-83268 core_h5p: Upgrade editor lib to 1.27
This commit is upgrading the joubel/editor library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
2024-09-25 17:06:35 +02:00
Sara Arjona 5a0d7adef3 MDL-83268 core_h5p: Add core lib changes after upgrading it 2024-09-25 17:06:34 +02:00
Sara Arjona 750b716a59 MDL-83268 core_h5p: Upgrade core lib to 1.27
This commit is upgrading the joubel/core library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
That's why the previous commit was duplicating the existing
h5plib_v126.
2024-09-25 17:06:34 +02:00
Sara Arjona 2d930e6e6b MDL-83268 h5plib: Create first version of h5plib_v127
AMOS BEGIN
  CPY [editor:a11ytitleshowlabel,h5plib_v126],[editor:a11ytitleshowlabel,h5plib_v127]
  CPY [editor:a11ytitlehidelabel,h5plib_v126],[editor:a11ytitlehidelabel,h5plib_v127]
  CPY [editor:atoz,h5plib_v126],[editor:atoz,h5plib_v127]
  CPY [editor:add,h5plib_v126],[editor:add,h5plib_v127]
  CPY [editor:addauthor,h5plib_v126],[editor:addauthor,h5plib_v127]
  CPY [editor:addentity,h5plib_v126],[editor:addentity,h5plib_v127]
  CPY [editor:addfile,h5plib_v126],[editor:addfile,h5plib_v127]
  CPY [editor:addnewchange,h5plib_v126],[editor:addnewchange,h5plib_v127]
  CPY [editor:addtitle,h5plib_v126],[editor:addtitle,h5plib_v127]
  CPY [editor:addvideodescription,h5plib_v126],[editor:addvideodescription,h5plib_v127]
  CPY [editor:avtablistlabel,h5plib_v126],[editor:avtablistlabel,h5plib_v127]
  CPY [editor:belowmin,h5plib_v126],[editor:belowmin,h5plib_v127]
  CPY [editor:cancel,h5plib_v126],[editor:cancel,h5plib_v127]
  CPY [editor:cancellabel,h5plib_v126],[editor:cancellabel,h5plib_v127]
  CPY [editor:changefile,h5plib_v126],[editor:changefile,h5plib_v127]
  CPY [editor:changelanguage,h5plib_v126],[editor:changelanguage,h5plib_v127]
  CPY [editor:changelibrary,h5plib_v126],[editor:changelibrary,h5plib_v127]
  CPY [editor:changelogdescription,h5plib_v126],[editor:changelogdescription,h5plib_v127]
  CPY [editor:close,h5plib_v126],[editor:close,h5plib_v127]
  CPY [editor:commonfields,h5plib_v126],[editor:commonfields,h5plib_v127]
  CPY [editor:commonfieldsdescription,h5plib_v126],[editor:commonfieldsdescription,h5plib_v127]
  CPY [editor:confirmchangelibrary,h5plib_v126],[editor:confirmchangelibrary,h5plib_v127]
  CPY [editor:confirmdeletechangelog,h5plib_v126],[editor:confirmdeletechangelog,h5plib_v127]
  CPY [editor:confirmimageremoval,h5plib_v126],[editor:confirmimageremoval,h5plib_v127]
  CPY [editor:confirmpastebuttontext,h5plib_v126],[editor:confirmpastebuttontext,h5plib_v127]
  CPY [editor:confirmpastecontent,h5plib_v126],[editor:confirmpastecontent,h5plib_v127]
  CPY [editor:confirmremoval,h5plib_v126],[editor:confirmremoval,h5plib_v127]
  CPY [editor:confirmremoveauthor,h5plib_v126],[editor:confirmremoveauthor,h5plib_v127]
  CPY [editor:contenttypebackbuttonlabel,h5plib_v126],[editor:contenttypebackbuttonlabel,h5plib_v127]
  CPY [editor:contenttypecacheoutdated,h5plib_v126],[editor:contenttypecacheoutdated,h5plib_v127]
  CPY [editor:contenttypecacheoutdateddesc,h5plib_v126],[editor:contenttypecacheoutdateddesc,h5plib_v127]
  CPY [editor:contenttypedemobuttonlabel,h5plib_v126],[editor:contenttypedemobuttonlabel,h5plib_v127]
  CPY [editor:contenttypedetailbuttonlabel,h5plib_v126],[editor:contenttypedetailbuttonlabel,h5plib_v127]
  CPY [editor:contenttypegetbuttonlabel,h5plib_v126],[editor:contenttypegetbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeiconalttext,h5plib_v126],[editor:contenttypeiconalttext,h5plib_v127]
  CPY [editor:contenttypeinstallbuttonlabel,h5plib_v126],[editor:contenttypeinstallbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeinstallerror,h5plib_v126],[editor:contenttypeinstallerror,h5plib_v127]
  CPY [editor:contenttypeinstallsuccess,h5plib_v126],[editor:contenttypeinstallsuccess,h5plib_v127]
  CPY [editor:contenttypeinstallingbuttonlabel,h5plib_v126],[editor:contenttypeinstallingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypelicensepaneltitle,h5plib_v126],[editor:contenttypelicensepaneltitle,h5plib_v127]
  CPY [editor:contenttypenotinstalled,h5plib_v126],[editor:contenttypenotinstalled,h5plib_v127]
  CPY [editor:contenttypenotinstalleddesc,h5plib_v126],[editor:contenttypenotinstalleddesc,h5plib_v127]
  CPY [editor:contenttypeowner,h5plib_v126],[editor:contenttypeowner,h5plib_v127]
  CPY [editor:contenttyperestricted,h5plib_v126],[editor:contenttyperestricted,h5plib_v127]
  CPY [editor:contenttyperestricteddesc,h5plib_v126],[editor:contenttyperestricteddesc,h5plib_v127]
  CPY [editor:contenttypesearchfieldplaceholder,h5plib_v126],[editor:contenttypesearchfieldplaceholder,h5plib_v127]
  CPY [editor:contenttypesectionall,h5plib_v126],[editor:contenttypesectionall,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversioncontent,h5plib_v126],[editor:contenttypeunsupportedapiversioncontent,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversiontitle,h5plib_v126],[editor:contenttypeunsupportedapiversiontitle,h5plib_v127]
  CPY [editor:contenttypeupdateavailable,h5plib_v126],[editor:contenttypeupdateavailable,h5plib_v127]
  CPY [editor:contenttypeupdatebuttonlabel,h5plib_v126],[editor:contenttypeupdatebuttonlabel,h5plib_v127]
  CPY [editor:contenttypeupdatesuccess,h5plib_v126],[editor:contenttypeupdatesuccess,h5plib_v127]
  CPY [editor:contenttypeupdatingbuttonlabel,h5plib_v126],[editor:contenttypeupdatingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeusebuttonlabel,h5plib_v126],[editor:contenttypeusebuttonlabel,h5plib_v127]
  CPY [editor:contributetranslations,h5plib_v126],[editor:contributetranslations,h5plib_v127]
  CPY [editor:copiedbutton,h5plib_v126],[editor:copiedbutton,h5plib_v127]
  CPY [editor:copiedtoclipboard,h5plib_v126],[editor:copiedtoclipboard,h5plib_v127]
  CPY [editor:copybutton,h5plib_v126],[editor:copybutton,h5plib_v127]
  CPY [editor:copytoclipboard,h5plib_v126],[editor:copytoclipboard,h5plib_v127]
  CPY [editor:createcontenttablabel,h5plib_v126],[editor:createcontenttablabel,h5plib_v127]
  CPY [editor:currentmenuselected,h5plib_v126],[editor:currentmenuselected,h5plib_v127]
  CPY [editor:editcopyright,h5plib_v126],[editor:editcopyright,h5plib_v127]
  CPY [editor:editimage,h5plib_v126],[editor:editimage,h5plib_v127]
  CPY [editor:editmode,h5plib_v126],[editor:editmode,h5plib_v127]
  CPY [editor:enteraudiotitle,h5plib_v126],[editor:enteraudiotitle,h5plib_v127]
  CPY [editor:enteraudiourl,h5plib_v126],[editor:enteraudiourl,h5plib_v127]
  CPY [editor:enterfullscreenbuttonlabel,h5plib_v126],[editor:enterfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:entervideotitle,h5plib_v126],[editor:entervideotitle,h5plib_v127]
  CPY [editor:entervideourl,h5plib_v126],[editor:entervideourl,h5plib_v127]
  CPY [editor:errorcalculatingmaxscore,h5plib_v126],[editor:errorcalculatingmaxscore,h5plib_v127]
  CPY [editor:errorcommunicatinghubcontent,h5plib_v126],[editor:errorcommunicatinghubcontent,h5plib_v127]
  CPY [editor:errorcommunicatinghubtitle,h5plib_v126],[editor:errorcommunicatinghubtitle,h5plib_v127]
  CPY [editor:errorheader,h5plib_v126],[editor:errorheader,h5plib_v127]
  CPY [editor:errornotsupported,h5plib_v126],[editor:errornotsupported,h5plib_v127]
  CPY [editor:errorparamsbroken,h5plib_v126],[editor:errorparamsbroken,h5plib_v127]
  CPY [editor:errortoohighversion,h5plib_v126],[editor:errortoohighversion,h5plib_v127]
  CPY [editor:example,h5plib_v126],[editor:example,h5plib_v127]
  CPY [editor:exceedsmax,h5plib_v126],[editor:exceedsmax,h5plib_v127]
  CPY [editor:exitfullscreenbuttonlabel,h5plib_v126],[editor:exitfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:expandcollapse,h5plib_v126],[editor:expandcollapse,h5plib_v127]
  CPY [editor:filetolarge,h5plib_v126],[editor:filetolarge,h5plib_v127]
  CPY [editor:fillinthefieldsbelow,h5plib_v126],[editor:fillinthefieldsbelow,h5plib_v127]
  CPY [editor:gethelp,h5plib_v126],[editor:gethelp,h5plib_v127]
  CPY [editor:h5pfileuploadservererrorcontent,h5plib_v126],[editor:h5pfileuploadservererrorcontent,h5plib_v127]
  CPY [editor:h5pfileuploadservererrortitle,h5plib_v126],[editor:h5pfileuploadservererrortitle,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedcontent,h5plib_v126],[editor:h5pfilevalidationfailedcontent,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedtitle,h5plib_v126],[editor:h5pfilevalidationfailedtitle,h5plib_v127]
  CPY [editor:h5pfilewrongextensioncontent,h5plib_v126],[editor:h5pfilewrongextensioncontent,h5plib_v127]
  CPY [editor:h5pfilewrongextensiontitle,h5plib_v126],[editor:h5pfilewrongextensiontitle,h5plib_v127]
  CPY [editor:height,h5plib_v126],[editor:height,h5plib_v127]
  CPY [editor:hide,h5plib_v126],[editor:hide,h5plib_v127]
  CPY [editor:hideimportantinstructions,h5plib_v126],[editor:hideimportantinstructions,h5plib_v127]
  CPY [editor:hubpanellabel,h5plib_v126],[editor:hubpanellabel,h5plib_v127]
  CPY [editor:illegaldecimalnumber,h5plib_v126],[editor:illegaldecimalnumber,h5plib_v127]
  CPY [editor:imagelightboxprogress,h5plib_v126],[editor:imagelightboxprogress,h5plib_v127]
  CPY [editor:imagelightboxtitle,h5plib_v126],[editor:imagelightboxtitle,h5plib_v127]
  CPY [editor:importantinstructions,h5plib_v126],[editor:importantinstructions,h5plib_v127]
  CPY [editor:insert,h5plib_v126],[editor:insert,h5plib_v127]
  CPY [editor:invalidformat,h5plib_v126],[editor:invalidformat,h5plib_v127]
  CPY [editor:language,h5plib_v126],[editor:language,h5plib_v127]
  CPY [editor:librarymissing,h5plib_v126],[editor:librarymissing,h5plib_v127]
  CPY [editor:licensecandistribute,h5plib_v126],[editor:licensecandistribute,h5plib_v127]
  CPY [editor:licensecanholdliable,h5plib_v126],[editor:licensecanholdliable,h5plib_v127]
  CPY [editor:licensecanmodify,h5plib_v126],[editor:licensecanmodify,h5plib_v127]
  CPY [editor:licensecansublicense,h5plib_v126],[editor:licensecansublicense,h5plib_v127]
  CPY [editor:licensecanusecommercially,h5plib_v126],[editor:licensecanusecommercially,h5plib_v127]
  CPY [editor:licensecannotholdliable,h5plib_v126],[editor:licensecannotholdliable,h5plib_v127]
  CPY [editor:licensedescription,h5plib_v126],[editor:licensedescription,h5plib_v127]
  CPY [editor:licensefetchdetailsfailed,h5plib_v126],[editor:licensefetchdetailsfailed,h5plib_v127]
  CPY [editor:licensemodalsubtitle,h5plib_v126],[editor:licensemodalsubtitle,h5plib_v127]
  CPY [editor:licensemodaltitle,h5plib_v126],[editor:licensemodaltitle,h5plib_v127]
  CPY [editor:licensemustincludecopyright,h5plib_v126],[editor:licensemustincludecopyright,h5plib_v127]
  CPY [editor:licensemustincludelicense,h5plib_v126],[editor:licensemustincludelicense,h5plib_v127]
  CPY [editor:licenseunspecified,h5plib_v126],[editor:licenseunspecified,h5plib_v127]
  CPY [editor:listbelowmin,h5plib_v126],[editor:listbelowmin,h5plib_v127]
  CPY [editor:listexceedsmax,h5plib_v126],[editor:listexceedsmax,h5plib_v127]
  CPY [editor:listlabel,h5plib_v126],[editor:listlabel,h5plib_v127]
  CPY [editor:loading,h5plib_v126],[editor:loading,h5plib_v127]
  CPY [editor:loadingimageeditor,h5plib_v126],[editor:loadingimageeditor,h5plib_v127]
  CPY [editor:logthischange,h5plib_v126],[editor:logthischange,h5plib_v127]
  CPY [editor:loggedchanges,h5plib_v126],[editor:loggedchanges,h5plib_v127]
  CPY [editor:maxscoresemanticsmissing,h5plib_v126],[editor:maxscoresemanticsmissing,h5plib_v127]
  CPY [editor:metadata,h5plib_v126],[editor:metadata,h5plib_v127]
  CPY [editor:metadatasharingandlicensinginfo,h5plib_v126],[editor:metadatasharingandlicensinginfo,h5plib_v127]
  CPY [editor:missingproperty,h5plib_v126],[editor:missingproperty,h5plib_v127]
  CPY [editor:missingtranslation,h5plib_v126],[editor:missingtranslation,h5plib_v127]
  CPY [editor:newchangehasbeenlogged,h5plib_v126],[editor:newchangehasbeenlogged,h5plib_v127]
  CPY [editor:newestfirst,h5plib_v126],[editor:newestfirst,h5plib_v127]
  CPY [editor:nextimage,h5plib_v126],[editor:nextimage,h5plib_v127]
  CPY [editor:nochangeshavebeenlogged,h5plib_v126],[editor:nochangeshavebeenlogged,h5plib_v127]
  CPY [editor:nocontenttypesavailable,h5plib_v126],[editor:nocontenttypesavailable,h5plib_v127]
  CPY [editor:nocontenttypesavailabledesc,h5plib_v126],[editor:nocontenttypesavailabledesc,h5plib_v127]
  CPY [editor:nofollow,h5plib_v126],[editor:nofollow,h5plib_v127]
  CPY [editor:notimageordimensionsfield,h5plib_v126],[editor:notimageordimensionsfield,h5plib_v127]
  CPY [editor:numresults,h5plib_v126],[editor:numresults,h5plib_v127]
  CPY [editor:numberfield,h5plib_v126],[editor:numberfield,h5plib_v127]
  CPY [editor:ok,h5plib_v126],[editor:ok,h5plib_v127]
  CPY [editor:onlynumbers,h5plib_v126],[editor:onlynumbers,h5plib_v127]
  CPY [editor:or,h5plib_v126],[editor:or,h5plib_v127]
  CPY [editor:orderitemdown,h5plib_v126],[editor:orderitemdown,h5plib_v127]
  CPY [editor:orderitemup,h5plib_v126],[editor:orderitemup,h5plib_v127]
  CPY [editor:outofstep,h5plib_v126],[editor:outofstep,h5plib_v127]
  CPY [editor:pasteandreplacebutton,h5plib_v126],[editor:pasteandreplacebutton,h5plib_v127]
  CPY [editor:pasteandreplacefromclipboard,h5plib_v126],[editor:pasteandreplacefromclipboard,h5plib_v127]
  CPY [editor:pastebutton,h5plib_v126],[editor:pastebutton,h5plib_v127]
  CPY [editor:pastecontent,h5plib_v126],[editor:pastecontent,h5plib_v127]
  CPY [editor:pastecontentnotsupported,h5plib_v126],[editor:pastecontentnotsupported,h5plib_v127]
  CPY [editor:pastecontentrestricted,h5plib_v126],[editor:pastecontentrestricted,h5plib_v127]
  CPY [editor:pasteerror,h5plib_v126],[editor:pasteerror,h5plib_v127]
  CPY [editor:pastefromclipboard,h5plib_v126],[editor:pastefromclipboard,h5plib_v127]
  CPY [editor:pastenocontent,h5plib_v126],[editor:pastenocontent,h5plib_v127]
  CPY [editor:pastetoonew,h5plib_v126],[editor:pastetoonew,h5plib_v127]
  CPY [editor:pastetooold,h5plib_v126],[editor:pastetooold,h5plib_v127]
  CPY [editor:popularfirst,h5plib_v126],[editor:popularfirst,h5plib_v127]
  CPY [editor:previousimage,h5plib_v126],[editor:previousimage,h5plib_v127]
  CPY [editor:proceedbuttonlabel,h5plib_v126],[editor:proceedbuttonlabel,h5plib_v127]
  CPY [editor:readless,h5plib_v126],[editor:readless,h5plib_v127]
  CPY [editor:readmore,h5plib_v126],[editor:readmore,h5plib_v127]
  CPY [editor:recentlyusedfirst,h5plib_v126],[editor:recentlyusedfirst,h5plib_v127]
  CPY [editor:reloadbuttonlabel,h5plib_v126],[editor:reloadbuttonlabel,h5plib_v127]
  CPY [editor:removefile,h5plib_v126],[editor:removefile,h5plib_v127]
  CPY [editor:removeimage,h5plib_v126],[editor:removeimage,h5plib_v127]
  CPY [editor:removeitem,h5plib_v126],[editor:removeitem,h5plib_v127]
  CPY [editor:requiredproperty,h5plib_v126],[editor:requiredproperty,h5plib_v127]
  CPY [editor:resettooriginallabel,h5plib_v126],[editor:resettooriginallabel,h5plib_v127]
  CPY [editor:savelabel,h5plib_v126],[editor:savelabel,h5plib_v127]
  CPY [editor:savemetadata,h5plib_v126],[editor:savemetadata,h5plib_v127]
  CPY [editor:screenshots,h5plib_v126],[editor:screenshots,h5plib_v127]
  CPY [editor:scriptmissing,h5plib_v126],[editor:scriptmissing,h5plib_v127]
  CPY [editor:searchresults,h5plib_v126],[editor:searchresults,h5plib_v127]
  CPY [editor:selectfiletoupload,h5plib_v126],[editor:selectfiletoupload,h5plib_v127]
  CPY [editor:selectlibrary,h5plib_v126],[editor:selectlibrary,h5plib_v127]
  CPY [editor:semanticserror,h5plib_v126],[editor:semanticserror,h5plib_v127]
  CPY [editor:show,h5plib_v126],[editor:show,h5plib_v127]
  CPY [editor:showimportantinstructions,h5plib_v126],[editor:showimportantinstructions,h5plib_v127]
  CPY [editor:tabtitlebasicfileupload,h5plib_v126],[editor:tabtitlebasicfileupload,h5plib_v127]
  CPY [editor:tabtitleinputlinkurl,h5plib_v126],[editor:tabtitleinputlinkurl,h5plib_v127]
  CPY [editor:textfield,h5plib_v126],[editor:textfield,h5plib_v127]
  CPY [editor:thecontenttype,h5plib_v126],[editor:thecontenttype,h5plib_v127]
  CPY [editor:thiswillpotentially,h5plib_v126],[editor:thiswillpotentially,h5plib_v127]
  CPY [editor:title,h5plib_v126],[editAMOS END
  or:title,h5plib_v127]
  CPY [editor:toolong,h5plib_v126],[editor:toolong,h5plib_v127]
  CPY [editor:tryagain,h5plib_v126],[editor:tryagain,h5plib_v127]
  CPY [editor:tutorial,h5plib_v126],[editor:tutorial,h5plib_v127]
  CPY [editor:unabletointerpreterror,h5plib_v126],[editor:unabletointerpreterror,h5plib_v127]
  CPY [editor:unabletointerpretsolution,h5plib_v126],[editor:unabletointerpretsolution,h5plib_v127]
  CPY [editor:unknownfieldpath,h5plib_v126],[editor:unknownfieldpath,h5plib_v127]
  CPY [editor:uploadinstructionstitle,h5plib_v126],[editor:uploadinstructionstitle,h5plib_v127]
  CPY [editor:uploadplaceholder,h5plib_v126],[editor:uploadplaceholder,h5plib_v127]
  CPY [editor:uploadsuccess,h5plib_v126],[editor:uploadsuccess,h5plib_v127]
  CPY [editor:uploadtablabel,h5plib_v126],[editor:uploadtablabel,h5plib_v127]
  CPY [editor:uploadvideotitle,h5plib_v126],[editor:uploadvideotitle,h5plib_v127]
  CPY [editor:uploading,h5plib_v126],[editor:uploading,h5plib_v127]
  CPY [editor:uploadingthrobber,h5plib_v126],[editor:uploadingthrobber,h5plib_v127]
  CPY [editor:usedforsearchingreportsandcopyrightinformation,h5plib_v126],[editor:usedforsearchingreportsandcopyrightinformation,h5plib_v127]
  CPY [editor:videoquality,h5plib_v126],[editor:videoquality,h5plib_v127]
  CPY [editor:videoqualitydefaultlabel,h5plib_v126],[editor:videoqualitydefaultlabel,h5plib_v127]
  CPY [editor:videoqualitydescription,h5plib_v126],[editor:videoqualitydescription,h5plib_v127]
  CPY [editor:warningchangebrowsingtoseeresults,h5plib_v126],[editor:warningchangebrowsingtoseeresults,h5plib_v127]
  CPY [editor:warningnocontenttypesinstalled,h5plib_v126],[editor:warningnocontenttypesinstalled,h5plib_v127]
  CPY [editor:warningupdateavailablebody,h5plib_v126],[editor:warningupdateavailablebody,h5plib_v127]
  CPY [editor:warningupdateavailabletitle,h5plib_v126],[editor:warningupdateavailabletitle,h5plib_v127]
  CPY [editor:width,h5plib_v126],[editor:width,h5plib_v127]
AMOS END
2024-09-25 17:06:20 +02:00
Andrew Nicols ce119a4344 Merge branch 'MDL-82298-main' of https://github.com/andrewnicols/moodle 2024-09-25 22:44:50 +08:00
Andrew Nicols d2f71d6b02 MDL-82298 navigation: Update behat tests 2024-09-25 22:37:56 +08:00
Karjun Loong b3152b7311 MDL-82298 navigation: Add behat tests for secondary menu navigation 2024-09-25 22:29:39 +08:00
Jose 3d1102607c MDL-82298 navigation: Add setting data-disableactive on moremenu items
This setting will avoid conflicts between checkmark and
bfcache. The removed function added as part of the MDL-77732
is no longer required as the behaviour on the menu items (including the
secondary navigation) is not altered anymore by the menuItemHelper function
(menu_navigation file).
2024-09-25 22:29:35 +08:00
Jun Pataleta d56ce93a8d Merge branch 'MDL-83236-main-fix' of https://github.com/HuongNV13/moodle 2024-09-25 22:03:27 +08:00
Huong Nguyen b5aeff34d9 MDL-83236 install: update the list of stale files for 4.5
Remove `tool_innodb` out of the example files
2024-09-25 19:24:49 +07:00
Jun Pataleta df07d2ca35 Merge branch 'MDL-83236-main' of https://github.com/HuongNV13/moodle 2024-09-25 18:53:20 +08:00
Mihail Geshoski 8ea2f036c1 MDL-83263 grade: Handle undefined array key on grade override revert 2024-09-25 17:03:28 +08:00
Jake Dallimore 9a293aae34 Merge branch 'MDL-80746-main-update-rebased' of https://github.com/mihailges/moodle 2024-09-25 14:45:26 +08:00
Andrew Nicols 0bb97d657b Merge branch 'MDL-83259' of https://github.com/paulholden/moodle 2024-09-25 13:18:37 +08:00
Jake Dallimore 0504fd353b MDL-80746 core: make comboboxsearch a named_templatable
This class was rolling its own version of get_template_name, which
meant that calling code needed to first call get_template and was forced
to use render_from_template(). This fixes that by implementing the
named_templatable interface and the get_template_name method. Now,
renderables that extend comboboxsearch can just be passed to render()
for rendering.
2024-09-25 12:47:07 +08:00
Jake Dallimore f80045bb10 MDL-80746 gradereport_user: fix action bar rendering
This code was unnecessarily pre-rendering some context properties used
by the action_menu, which also meant the mustache template expected HTML
in the context, which should be avoided. Instead of pre-rendering, just
export_for_template() and adjust the mustache template to render the sub
template for the respective templatables. Doing this also reveals two
unecessary renderer methods which have now been deprecated.
2024-09-25 12:47:07 +08:00
Jake Dallimore cf524d0172 MDL-80746 gradereport_grader: fix action bar rendering
This code was unnecessarily pre-rendering some context properties used
by the action_menu, which also meant the mustache template expected HTML
in the context, which should be avoided. Instead of pre-rendering, just
export_for_template() and adjust the mustache template to render the sub
template for the respective templatables.
2024-09-25 12:47:07 +08:00
Jake Dallimore b62aff2c3a MDL-80746 mod_assign: fix action bar rendering
As per prior commit, this fixes the export_for_template() method as
well as the template itself, ensuring no rendering is done in the
renderable, and ensuring the template defers to the comboboxsearch
or dialog partials with the data-only (no html) contexts.
2024-09-25 12:47:07 +08:00
Jake Dallimore 8982cc61b3 MDL-80746 core_course: fix user_selector rendering
This change:
- Moved the user selector button content out into its own
named_templatable renderable + updates calling code
2024-09-25 12:47:07 +08:00
Jake Dallimore c648839070 MDL-80746 core_course: fix group_selector rendering
This change:
- Fixes the group_selector constructor, removing the unnecessarily
deprecated param (this code is main-only, so no need to deprecate) and
fixes all calling code.
- moves the button and content into separate named_templatable
renderables, cleaning up the group_selector code so that it only needs
to make a single call to render and doesn't concern itself with contexts
of other renderables.
2024-09-25 12:47:07 +08:00
Jake Dallimore 8d1cdf6f8e MDL-80746 core_course: fix initial_selector rendering
This change:
- Fixes naming of initials_selector class (making plural to match its
predecessor), and addresses relevant calling code.
- Adds an initials_dropdown_form renderable, templatable
- Removes superfluous course/classes/output/actionbar renderer
- Replaces the rendering logic inside initial_selector with calls to
render the new renderable
- Simplifies the initials_selector class, using instance vars instead of
passing args to helpers, removing unnecessary vars, etc.
2024-09-25 12:47:07 +08:00
Kevin Percy 67379e7607 MDL-80746 behat: Update initials bar behat selector to core_course 2024-09-25 12:47:07 +08:00
Kevin Percy 303b226f6b MDL-80746 mod_assign: Move grading page initials selector to action bar 2024-09-25 12:47:07 +08:00
Huong Nguyen 939ca435bc MDL-82151 core: Fix upgrade note illegal whitespace 2024-09-25 11:45:49 +07:00
Huong Nguyen b1f982dffb MDL-82151 core: Fix upgrade note typo 2024-09-25 11:26:30 +07:00
Huong Nguyen 93c8843dc0 Merge branch 'MDL-82151-main' of https://github.com/andrewnicols/moodle 2024-09-25 11:25:12 +07:00
Kevin Percy 939e6b546a MDL-80746 core_course: Move initials selector from core_grades 2024-09-25 11:03:55 +08:00
Huong Nguyen ab9ed3336c MDL-74050 mod_assign: Upgrade notes 2024-09-25 09:08:32 +07:00
Huong Nguyen 9de70c3b5b Merge branch 'MDL-74050-main' of https://github.com/durenadev/moodle 2024-09-25 09:03:09 +07:00
Huong Nguyen 5f2d20ef64 Merge branch 'MDL-72856-main' of https://github.com/michael-milette/moodle 2024-09-25 08:58:04 +07:00
Safat ad5c3fd551 MDL-62640 filter_algebra: Fix coding style in algebradebug 2024-09-25 08:41:32 +07:00
meirzamoodle 04246c8aec MDL-62640 environment: Remove the deprecated slash argument check 2024-09-25 08:30:18 +07:00
meirzamoodle 979db77a63 MDL-62640 enrol_lti: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 4d2ad0bff7 MDL-62640 core: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 8b86d02d3d MDL-62640 filter_tex: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 5da47d5ddf MDL-62640 filter_algebra: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 83f6d355f7 MDL-62640 mod_wiki: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 652f6b9994 MDL-62640 mod_scorm: Adjust code for slashargument removal 2024-09-25 08:30:18 +07:00
meirzamoodle 3b9fa14c78 MDL-62640 admin: Remove the slasharguments admin setting 2024-09-25 08:30:17 +07:00
Paul Holden 4d1dcc60d7 MDL-83259 smsgateway_aws: add to standard plugins list. 2024-09-24 17:05:07 +01:00
Paul Holden 246429e89a MDL-83259 sms: define plugin type strings and fix management URL. 2024-09-24 17:03:57 +01:00
Sara Arjona 97c2beae70 on-demand release 4.5dev+ 2024-09-24 16:54:09 +02:00
Sara Arjona 3140928651 NOBUG: Add upgrade notes 2024-09-24 16:54:09 +02:00
Daniel Ureña b4770461f7 MDL-74050 mod_assign: New WS remove_submission 2024-09-24 16:47:55 +02:00
Huong Nguyen df1e264d29 Merge branch 'MDL-83085-main' of https://github.com/meirzamoodle/moodle 2024-09-24 10:35:18 +07:00
Andrew Nicols 6a517f26a6 MDL-82151 core: Tidy up all upgrade notes 2024-09-24 10:40:34 +08:00
Stevani Andolo 23ca271d65 MDL-83173 course: Fixed overlaps courses cards three dots 2024-09-24 09:50:52 +08:00
Andrew Nicols 12d789ae47 MDL-82151 core: Improve empty line removal for upgrade notes 2024-09-24 09:48:01 +08:00
Andrew Nicols 3ace1920f1 MDL-82151 core: Ensure that upgrade notes are sorted
Prior to this change the order of upgrade notes changed depending on
what was encountered first when looping through the list of upgrade
notes.

This change ensures that the core component is always first, followed by
core subsystems sorted lexically, and finally a lexical sorting of
everything else.

The note types are also sorted in the order suggested at keep a
changelog, that is:
- Added
- Changed
- Deprecated
- Removed
- Fixed
2024-09-24 09:16:00 +08:00
Shamim Rezaie e5290c42ab Merge branch 'MDL-77625' of https://github.com/timhunt/moodle 2024-09-24 02:52:46 +10:00
Shamim Rezaie e9f789f6b0 Merge branch 'MDL-83162-main' of https://github.com/sarjona/moodle 2024-09-24 00:33:48 +10:00
Shamim Rezaie d9ecf425f2 Merge branch 'MDL-83164-main' of https://github.com/andrewnicols/moodle 2024-09-24 00:28:06 +10:00
Andrew Nicols 11216cc711 MDL-83164 core: Add support for namespaced renderer methods 2024-09-23 21:35:13 +08:00
Huong Nguyen f9d8e8b428 MDL-83236 install: Update the list of stale files for 4.5 2024-09-23 16:30:00 +07:00
Huong Nguyen aec2ea99c2 MDL-83123 AI: Switch to use Message Drawer Helper and PubSub 2024-09-23 15:51:33 +07:00
Huong Nguyen d59fc721ac Merge branch 'MDL-83123-main2' of https://github.com/raortegar/moodle 2024-09-23 15:50:46 +07:00
Paul Holden 8e46e810ff MDL-83235 qbank_columnsortorder: correct config retrieval ordering.
There is a unique index on plugin/name, so having a trailing order
clause on value would produce no effect. We also cannot order by
CLOB fields on Oracle, lest it complain loudly.
2024-09-23 08:51:05 +01:00
Huong Nguyen 803467e888 Merge branch 'MDL-83190-main' of https://github.com/mickhawkins/moodle 2024-09-23 14:32:17 +07:00
Sara Arjona 65fc64aa19 Merge branch 'MDL-81612' of https://github.com/timhunt/moodle 2024-09-23 07:36:07 +02:00
Sara Arjona 303d17ba9b Merge branch 'MDL-82681-main-3' of https://github.com/mihailges/moodle 2024-09-23 07:17:03 +02:00
Sara Arjona 39fbaf37a5 MDL-83162 theme: Review graded icons colors to improve accessiblity 2024-09-23 07:02:16 +02:00
Huong Nguyen 5ff9474322 Merge branch 'MDL-81924-main' of https://github.com/HuongNV13/moodle 2024-09-23 11:33:14 +07:00
Huong Nguyen 36de9d1c88 Merge branch 'MDL-83204-main' of https://github.com/roland04/moodle 2024-09-23 11:12:30 +07:00
Michael Hawkins c098b72faa MDL-81924 factor_sms: Improve MFA plugin table settings accessibility 2024-09-23 10:53:31 +07:00
Safat d5bdb07c28 MDL-81924 core: Remove unused AWS classes and tests
Originally implemented as MDL-80962.
2024-09-23 10:53:30 +07:00
Safat 310f5f50ee MDL-81924 smsgateway_aws: Move SMS related methods to AWS plugin
Originally implemented as MDL-80962.
2024-09-23 10:53:30 +07:00
Safat cceed874fd MDL-81924 factor_sms: Remove leftover AWS implementation
Originally implemented as MDL-80962.
2024-09-23 10:53:30 +07:00
Safat b5ac3257b5 MDL-81924 core_sms: Add SMS gateway management UI
Originally implemented as MDL-81732.

Co-authored by: Michael Hawkins <michaelh@moodle.com>
2024-09-23 10:53:30 +07:00
Safat 3348832b78 MDL-81924 smsgateway_aws: Add hooks for SMS gateway management
Originally implemented as MDL-81732.

Co-authored by: Michael Hawkins <michaelh@moodle.com>
2024-09-23 10:44:27 +07:00
Safat a1209ab882 MDL-81924 factor_sms: Add support for SMS gateway selection
Includes migrating AWS settings from the SMS MFA factor to a new gateway
in the SMS subsystem and notifying admins of the update.

Originally implemented as MDL-81732 and MDL-82660.

Co-authored by: Michael Hawkins <michaelh@moodle.com>
2024-09-23 10:44:26 +07:00
Safat cf75a3aad1 MDL-81924 factor_sms: Implement sms subsystem
Originally implemented as MDL-80961.
2024-09-23 10:43:39 +07:00
Safat a5f100e6dd MDL-81924 smsgateway_aws: Add AWS sms gateway plugin
Originally implemented as MDL-80961.
2024-09-23 10:43:39 +07:00
Andrew Nicols 10c3e4b770 MDL-81924 core_sms: Add new subsystem and plugintype
Originally implemented as MDL-80960.
2024-09-23 10:43:39 +07:00
Andrew Nicols 11ab65db5e MDL-81924 core: Include libphonenumber lite
Originally implemented as MDL-80960.
2024-09-23 09:45:41 +07:00
Andrew Nicols 58acf94c96 MDL-81924 core: Include Spatie\Cloneable
Originally implemented as MDL-80960.
2024-09-23 09:45:26 +07:00
Paul Holden 72c6b9d436 MDL-82581 mod_label: avoid overflowing length of label name. 2024-09-20 19:28:47 +01:00
Sara Arjona 525fc81cf6 on-demand release 4.5dev+ 2024-09-20 17:12:54 +02:00
Sara Arjona 15f4091392 NOBUG: Add upgrade notes 2024-09-20 17:12:53 +02:00
Sara Arjona ebaed307fc NOBUG: Fixed SVG browser compatibility 2024-09-20 17:12:35 +02:00
Sara Arjona b6bf649701 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-09-20 17:12:35 +02:00
Mihail Geshoski 2c2e9982d6 MDL-82681 mod_assign: Deprecate process_save_grading_options() 2024-09-20 22:54:02 +08:00
Mihail Geshoski 8f3ca13260 MDL-82681 mod_assign: Modify mod_assign_grading_options_form deprecation
This form class has been deprecated in MDL-82857, following the standard
class deprecation policy. It is highly unlikely that any external code
is using it; therefore, the form class has been removed, while the file
remains to prevent fatal errors from attempts to require or include it.
This approachy aligns with recent form deprecations in the quiz module.
Additionally, any code using this form and its supporting functions,
such as M.mod_assign.init_grading_options, has been removed.
2024-09-20 22:54:02 +08:00
Tim Hunt d5fe176df1 MDL-81612 assign: show current value when editing a student's extension
Also, if there is not currently an extension set, the set extension form
will default to whatever is the latest out of the due date, the cut-off date
and midnight tonight (in the server time-zone).
2024-09-20 12:19:57 +01:00
Tim Hunt 076be52682 MDL-81612 assign: test generation of extensions
Also, some other improvements.

* In Behat you can now use either idnumber of name to identify an
  assignment you are generating things for.
* create_submission generator methods now wants the cmid in $data['cmid']
  not the confusingly named 'assignid'. The old name is accepted, but
  generates a debugging warning. (That will fail the test, but in a way
  that explains how to fix it.)
2024-09-20 12:19:57 +01:00
Michael Hawkins 2cccb1d80d MDL-83190 AI: Update user policy to copy approved by legal 2024-09-20 18:30:33 +08:00
Huong Nguyen f456c54bdf MDL-83092 AI: Fix Behat failure for Course Assistance 2024-09-20 15:50:29 +07:00
raortegar fa931c6885 MDL-83123 AI: Course Assistance Placement Drawer compatibility. 2024-09-20 09:26:03 +02:00
Huong Nguyen 1cabd82999 Merge branch 'MDL-83055' of https://github.com/paulholden/moodle 2024-09-20 11:03:32 +07:00
Ilya Tregubov 7c75929ffa Merge branch 'MDL-82814-main' of https://github.com/andrewnicols/moodle 2024-09-20 10:37:05 +08:00
Jun Pataleta fa31b3f3cb Merge branch 'MDL-83092-main' of https://github.com/junpataleta/moodle 2024-09-20 10:30:33 +08:00
Matt Porritt cfe65f1772 MDL-83092 AI: Placement action needs to check status of provider action
When all providers for a certain action are disabled, or if providers
are enabled but all individual actions of a type are disabled, then
a warning is shown on the placement admin settings page for actions
that have no providers available.

Also the text editor placement will not show the option to generate
images or text if there are no actions available.
2024-09-20 10:26:49 +08:00
Ilya Tregubov 1d48c46edb Merge branch 'MDL-82663' of https://github.com/paulholden/moodle 2024-09-20 10:17:02 +08:00
Huong Nguyen 7c7e35b02d Merge branch 'MDL-83182-main' of https://github.com/meirzamoodle/moodle 2024-09-20 09:06:05 +07:00
Andrew Nicols b1b4dc4cc9 MDL-83209 cache: Correct class import 2024-09-20 09:47:59 +08:00
Andrew Nicols e9165e309b Merge branch 'MDL-83209-main' of https://github.com/PhMemmel/moodle 2024-09-20 09:47:10 +08:00
Huong Nguyen 2812dbff69 Merge branch 'MDL-82740-main' of https://github.com/junpataleta/moodle 2024-09-20 08:44:03 +07:00
Ilya Tregubov 85011b102e Merge branch 'MDL-74188' of https://github.com/paulholden/moodle 2024-09-20 09:39:20 +08:00
Ilya Tregubov 847fa95212 Merge branch 'MDL-82488' of https://github.com/paulholden/moodle 2024-09-20 09:24:51 +08:00
Paul Holden 4fc4fb27ea MDL-82715 customfield_number: coding style cleanup/clarification. 2024-09-19 18:36:36 +01:00
Paul Holden c9a01b4354 Merge branch 'MDL-82715-main-rebased' of https://github.com/ilyatregubov/moodle into main 2024-09-19 17:42:12 +01:00
Sara Arjona e4e8bc8bbb Merge branch 'MDL-82845-main' of https://github.com/ferranrecio/moodle 2024-09-19 18:29:37 +02:00
Laurent David 2aa7790804 MDL-83050 core_courseformat: Fix index highlight for collapsed section
* Collapsed sections on course index is not highlighting the correct
element when scrolling over subelements.
2024-09-19 17:48:39 +02:00
Mihail Geshoski f86a9fd520 MDL-82681 mod_assign: Remove temporary class grading_options_temp_form
The grading_options_temp_form class and
process_save_grading_options_temp() method were temporarily introduced
to migrate form elements across the submission page while preserving
the original class and method, as they are part of the public API and
may be used by external code. Now that the migration is complete, both
the temporary class and method can be removed.
2024-09-19 23:17:54 +08:00
Mihail Geshoski 15fc229e77 MDL-82681 mod_assign: Revert improper code removal
The grading_options_form class was deprecated in 4.5, and a temporary
copy of this class was introduced to facilitate the migration of its
elements across different areas of the submission page, ensuring no
breakages if any external code is using this form (MDL-82857).
However, the process_save_grading_options() method, which processes
data from this form, was modified and this should not have occurred.
To maintain proper backward compatibility, a similar approach should
be taken by introducing a temporary copy of the method. Both the
temporary method and temporary form class should be removed once the
migration of elements is complete.
2024-09-19 23:17:43 +08:00
Mihail Geshoski ca293159e7 MDL-82681 mod_assign: Clean up old filters
Removes the old Marker and Suspended participants filters from the
assignment submissions page, along with all associated logic.
Also, cleans up residual code from the old marking workflow filter
that was not properly removed in MDL-82508.
2024-09-19 23:17:28 +08:00
Mihail Geshoski a97231fc06 MDL-82681 mod_assign: Reset Marker and Suspended participants filters
Extends the functionality of the 'Clear all' filters option to reset
the new 'Marker' and 'Suspended participants' filters on the
assignment submissions page.
2024-09-19 23:17:01 +08:00
Mihail Geshoski 9265ab5ca8 MDL-82681 mod_assign: Add Suspended participants to Advanced filters
Adds 'Suspended participants' filter to the 'Advanced' filters
component on the assignment submissions page.
2024-09-19 23:16:49 +08:00
Mihail Geshoski ac1d386443 MDL-82681 mod_assign: Add Marker to Advanced submission filters
Adds 'Marker' filter to the 'Advanced' filters component on the
assignment submissions page.
2024-09-19 23:16:35 +08:00
Sara Arjona c35427249b Merge branch 'MDL-80890-main-fix' of https://github.com/junpataleta/moodle 2024-09-19 16:34:52 +02:00
Jun Pataleta 3fc594f72b MDL-80890 tiny_aiplacement: Prefetch the correct lang string 2024-09-19 22:14:47 +08:00
Sara Arjona 2236a2f449 Merge branch 'mdl-82784_main_wip' of https://github.com/james-cnz/moodle 2024-09-19 16:07:38 +02:00
Jun Pataleta 23a7976a4b MDL-82740 core: Consider theme when checking for monologo icons 2024-09-19 20:47:18 +08:00
Mikel Martín 27144e5474 MDL-83204 tool_policy: Fix footer link spacing 2024-09-19 11:27:32 +02:00
ferranrecio 37ce4e8ece MDL-82845 course: fix subsection navigation nodes 2024-09-19 11:26:28 +02:00
Mikel Martín bacb1ba961 MDL-83204 tool_mobile: Fix footer link spacing 2024-09-19 11:18:09 +02:00
Philipp Memmel 47ba728eae MDL-83209 core_cache: Fix regressions by enforcing codestyle 2024-09-19 10:42:52 +02:00
Huong Nguyen d29f4cd06c Merge branch 'MDL-83199-main' of https://github.com/mihailges/moodle 2024-09-19 15:40:15 +07:00
ferranrecio bfe9e6328a MDL-82845 mod_subsection: change maturity to beta 2024-09-19 10:30:57 +02:00
ferranrecio 4d3d5b3687 MDL-82845 core_course: method to get all cm_info from a section_info 2024-09-19 10:30:57 +02:00
Ilya Tregubov 8b5b91475e MDL-82715 customfield_number: Add automatically populated providers.
Added number of activity provider and also hooks for plugins.
2024-09-19 16:21:50 +08:00
Sara Arjona 3e65c22adb Merge branch 'MDL-83188' of https://github.com/paulholden/moodle 2024-09-19 10:20:14 +02:00
Ilya Tregubov eecc29a6bf Merge branch 'MDL-82909' of https://github.com/paulholden/moodle 2024-09-19 15:08:12 +08:00
Ilya Tregubov adaa1944af Merge branch 'MDL-82494' of https://github.com/paulholden/moodle 2024-09-19 14:04:48 +08:00
Andrew Nicols 7f8bc2008d MDL-83205 core: Ensure that redis lock expiry is valid
PHP allows the specification of invalid values for `max_execution_time`,
including negative values. These should be normalised the same way that
an empty (unlimited) value is.
2024-09-19 13:36:11 +08:00
Ilya Tregubov 6f9f396ec6 Merge branch 'MDL-81987_main' of https://github.com/marxjohnson/moodle 2024-09-19 12:42:50 +08:00
Huong Nguyen 0b09bace52 Merge branch 'MDL-83122-main' of https://github.com/safatshahin/moodle 2024-09-19 10:39:19 +07:00
Andrew Nicols ea11d4674c MDL-82814 router: Handle ssl and reverse proxies in router
When a terminating SSL proxy is in use, the scheme and port received by
the web server may be different to the wwwroot.

When a reverse proxy is in use, the scheme, port, and host name received
by the web server may be different to the wwwroot.

In both of these cases the incoming request URI must be updated to use
the correct host scheme, and port. In the case of the reverse proxy,
the host name must also be updated.

In both cases the actual path is expected to be correct, and neither the
path nor query parameters should be modified.
2024-09-19 11:22:47 +08:00
Jun Pataleta c7cf081097 MDL-79628 core: Add missing deprecation note
* Add the missing deprecation note for the timeout parameter in
the PHPDoc block of the navigation_cache's constructor.
2024-09-19 11:17:05 +08:00
Jun Pataleta 254f752b76 Merge branch 'MDL-79628-move-navcache-to-muc-feature' of https://github.com/rajandangi/moodle 2024-09-19 11:14:11 +08:00
Huong Nguyen 8921272b51 Merge branch 'MDL-83082-main' of https://github.com/junpataleta/moodle 2024-09-19 09:43:32 +07:00
Jun Pataleta 92e842dceb Merge branch 'MDL-80890-main' of https://github.com/HuongNV13/moodle 2024-09-19 10:33:13 +08:00
Huong Nguyen cb4e621ce9 MDL-80890 AI: Course Assistance Placement
Co-authored-by: Matt Porritt <pozze30@gmail.com>
2024-09-19 09:30:10 +07:00
Ilya Tregubov b022a2794d Merge branch 'MDL-80750-main' of https://github.com/mihailges/moodle 2024-09-19 09:51:33 +08:00
Jun Pataleta 337346fefe Merge branch 'MDL-80965-main-behat-fix' of https://github.com/lameze/moodle 2024-09-19 08:39:45 +08:00
AMOS bot da57b89c06 Automatically generated installer lang files 2024-09-19 00:09:37 +00:00
Simey Lameze 3d64e48f62 MDL-80965 behat: remove wrong tag from step 2024-09-19 07:42:22 +08:00
Sara Arjona 9a0dcfd9e0 Merge branch 'MDL-74917-main-wrong-post-actions-list-in-statslib' of https://github.com/melanietreitinger/moodle 2024-09-18 17:19:09 +02:00
Sara Arjona 20d4b14ee0 Merge branch 'MDL-82971_upgrade-log' of https://github.com/ziegenberg/moodle 2024-09-18 17:10:12 +02:00
Sara Arjona 3c712cbea3 Merge branch 'MDL-83153-main-option1-2' of https://github.com/junpataleta/moodle 2024-09-18 16:40:00 +02:00
Jun Pataleta a3b837e135 MDL-83153 core: Upgrade step for instances that need conversion
Add an upgrade step to convert `ai_action_register.success` columns
with binary type to an integer type with length 1.
2024-09-18 21:06:48 +08:00
Shamim Rezaie 674b05d4cf Merge branch 'main_MDL-83073' of https://github.com/mattporritt/moodle 2024-09-18 20:45:10 +10:00
meirzamoodle 2f1e4e4f29 MDL-83182 core_files: Add a reference to the create_file_from_string() 2024-09-18 17:39:14 +07:00
Mihail Geshoski 899f0c92f3 MDL-83199 core: Adjust the padding for the bulk actions content area 2024-09-18 17:29:47 +08:00
Huong Nguyen 471cd47754 Merge branch 'main_MDL-82411' of https://github.com/mattporritt/moodle 2024-09-18 16:21:50 +07:00
Huong Nguyen 1d7efd8b12 Merge branch 'MDL-81278-main' of https://github.com/mickhawkins/moodle 2024-09-18 16:08:23 +07:00
Mihail Geshoski a8d3d64ae2 MDL-80750 core: Define deselect action in bulk actions subclasses
The base bulk actions class supports deselecting all selected items but
lacks knowledge of the element types. To enhance flexibility and
maintain the class's generic nature, this change introduces a mechanism
that allows each subclass to explicitly define how to reset the
attributes indicating a selected state.
2024-09-18 15:48:10 +08:00
Mihail Geshoski 431e7961a8 MDL-80750 mod_assign: Move 'notify students' option into sticky footer 2024-09-18 15:48:09 +08:00
Mihail Geshoski d62f653e47 MDL-80750 mod_assign: Generic bulk action form template 2024-09-18 15:48:09 +08:00
Shamim Rezaie 35cabfcc7e MDL-80750 core: Use roving tabindex to manage focus for bulk actions
Implement roving focus for toolbars.
See https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/
2024-09-18 15:48:09 +08:00
Shamim Rezaie 1e09fddd01 MDL-80750 theme_boost: Fix assumption about presence of .dropdown
Updated ARIA handling code to not assume the presence of a .dropdown
element.
- Modified keypress event listener to match
  `[role="menu"] [role="menuitem"]` directly.
- Changed keyboard navigation handling to avoid assuming `.dropdown`.
- Updated focus trapping to use `.dropdown-menu[role="dialog"]` selector
  ensuring compatibility with `.dropup` and other variations.
- Ensured focus untrapping logic uses the same improved selector.
2024-09-18 15:48:09 +08:00
Shamim Rezaie 6bc8bf6360 MDL-80750 core: Limit bulk action buttons in sticky footer to 5 2024-09-18 15:48:09 +08:00
Shamim Rezaie 512f163309 MDL-80750 mod_assign: Move quick grading submit button to sticky footer 2024-09-18 15:48:09 +08:00
Shamim Rezaie b491cc3a49 MDL-80750 core: Maintain order of actions in renderBulkActions
The order of bulk actions was not preserved when rendering the bulk
actions content due to asynchronous operations. This fix ensures that
the actions are added to the `data.actions` array in the correct order
by using a temporary array to store the promises and then processing
them sequentially.

Also improved the JSDoc for better clarity on what the function returns
and what it resolves to.
2024-09-18 15:48:09 +08:00
Shamim Rezaie fc5b396a69 MDL-80750 mod_assign: Show bulk action controls on the sticky footer 2024-09-18 15:48:09 +08:00
Shamim Rezaie 5f6fe3e02f MDL-80750 mod_assign: gradingtable should not print paging bar 2024-09-18 15:48:09 +08:00
Shamim Rezaie 5a5b16d207 MDL-80750 mod_assign: Show sticky footer with pagination on grading page 2024-09-18 15:48:09 +08:00
Ilya Tregubov fb54a5a3f5 Merge branch 'MDL-80965-main' of https://github.com/ilyatregubov/moodle 2024-09-18 15:30:40 +08:00
Ilya Tregubov 9c0e3c85eb MDL-80965 mod_quiz: Code style fixes. 2024-09-18 15:29:25 +08:00
Luca Bösch 97e90f2210 MDL-80965 mod_quiz: Put back random q category on the question page. 2024-09-18 15:25:09 +08:00
Matt Porritt 75382a1e92 MDL-82411 AI: Provider Plugin - Azure AI
Add an AI provider plugin for Microsoft Azure AI.
The Azure AI provider supports generating images,
as well as generating and summarising text.
2024-09-18 17:09:59 +10:00
Sara Arjona 2d0df1da23 Merge branch 'MDL-71823-add-user-menu-hook' of https://github.com/gbarat87/moodle 2024-09-18 07:19:53 +02:00
Matt Porritt 030f5ffce7 MDL-83073 AI: Image generation - Small screen display issue
Improve the image generation model and medium and small
screen resolutions. Fixes an issue where elements overlap
and lower screen resolutions.
2024-09-18 13:14:31 +10:00
Ilya Tregubov a921078df6 Merge branch 'main_MDL-83158' of https://github.com/mattporritt/moodle 2024-09-18 08:57:05 +08:00
AMOS bot fa898b1010 Automatically generated installer lang files 2024-09-18 00:07:48 +00:00
Guillaume Barat eadf38cf45 MDL-71823 user: Add hook for extending user menu 2024-09-18 08:17:40 +10:00
Paul Holden 2181edd1a7 MDL-83188 block_private_files: style expand/collapse icons correctly. 2024-09-17 17:15:11 +01:00
Paul Holden 4ee58af853 MDL-82973 tool_usertours: add missing filelib library require. 2024-09-17 16:49:08 +01:00
Sara Arjona 2892a03387 Merge branch 'MDL-82389-master' of https://github.com/ssj365/moodle 2024-09-17 17:31:41 +02:00
Sara Arjona 031edf2ab3 Merge branch 'MDL-81663-main' of https://github.com/safatshahin/moodle 2024-09-17 17:28:52 +02:00
Julien 5ec6096eea MDL-77625 question restore: test restoring a quiz into a course twice
The verifies that the previous two commits are doing the right thing.
2024-09-17 16:16:26 +01:00
Tim Hunt c248dee33c MDL-77625 question restore: fix restore of existing questions
Continuing from the last commit, the code to restore question
bank entries, versions and questions, was not taking note of
whether the first stage had indentified questions that did not
need to be restored. This is tricky, but the mapping can only be
worked out for questions, but in the backup file, the questions are
inside the question_bank_entries, and versions, so we encounter
those first.

Now, the code just saves the QBE and QV when it encounters them,
and then does all the processing when it gets to the question,
correctly taking note of whether each question should be restored or not.
In cases where a particular question does not need to be restored,
we still set up the corresponding mappings.
2024-09-17 16:16:26 +01:00
Tim Hunt bab665dd40 MDL-77625 question restore: fix pre-parsing of questions
Restore of categories and questions happens in several phases.
First, the file is scanned for which questions and categories
it contains, to work out if these are new questions which need
to be restored, or if they already exist in the database in a
place that can be used.

That code had not been updated to cope with the Moodle 4.0
versioning changes, so it is updated here (while still keeping
the code to cope with the old backup format.)
2024-09-17 16:14:21 +01:00
Jun Pataleta 0d10fda3fb MDL-83153 core: Set ai_action_register.success as INT(1) 2024-09-17 23:10:09 +08:00
Sara Arjona f6141a67d8 on-demand release 4.5dev+ 2024-09-17 15:10:00 +02:00
Sara Arjona 504eb68404 NOBUG: Add upgrade notes 2024-09-17 15:10:00 +02:00
Sara Arjona 0a92bbc07f NOBUG: Fixed SVG browser compatibility 2024-09-17 15:09:46 +02:00
Safat d60985257e MDL-83122 core_communication: Fix exception for delete user hook 2024-09-17 15:31:16 +10:00
Huong Nguyen aec7313e12 Merge branch 'main_MDL-82945' of https://github.com/mattporritt/moodle 2024-09-17 08:49:30 +07:00
Huong Nguyen 9f2e45a719 MDL-83124 theme: Regenerate fontawesomeicons.json 2024-09-17 08:46:15 +07:00
Huong Nguyen 15cc34791c Merge branch 'MDL-83124-main' of https://github.com/sarjona/moodle 2024-09-17 08:45:59 +07:00
Matt Porritt 68ba22d80f MDL-83158 Unit tests: Exception when starting database session
Fixes an error where when reading a session the conditional
test never fails even when a session record doesn't
exist in the database.
2024-09-17 08:32:50 +10:00
Sara Arjona d0f79969d1 Merge branch 'MDL-82407-main' of https://github.com/laurentdavid/moodle 2024-09-16 12:53:46 +02:00
sam marshall 7544d26dc1 MDL-83163 core_course: Fresh install fails if dependency on format
If any plugin had dependency on a course format, Moodle fresh install
showed dependency errors (even though course format exists).
2024-09-16 11:46:39 +01:00
Jun Pataleta 5f5a3f5a7b Merge branch 'MDL-83144' of https://github.com/paulholden/moodle 2024-09-16 16:36:36 +08:00
Huong Nguyen c7c2eddfb7 Merge branch 'main_MDL-82609' of https://github.com/mattporritt/moodle 2024-09-16 15:31:35 +07:00
Matt Porritt 2ae9b25ad4 MDL-82609 AI: Provider - Action settings
Allow each each Provider plugin to be able
to specify settings for the actions that they
support. Adds admin setting support for these
settings.
2024-09-16 18:19:22 +10:00
Paul Holden 99be8d5676 MDL-83134 ai: context/capability checks for setting provider state. 2024-09-16 16:08:27 +08:00
Jun Pataleta 2ea8adc589 Merge branch 'MDL-83127-main' of https://github.com/lucaboesch/moodle 2024-09-16 15:58:57 +08:00
Jun Pataleta 17cb8ba522 MDL-83109 tool_componentlibrary: Regenerate fontawesomeicons.json 2024-09-16 15:55:39 +08:00
Jun Pataleta ce2fde56c6 Merge branch 'MDL-83109-main' of https://github.com/sarjona/moodle 2024-09-16 15:55:21 +08:00
Sara Arjona df45f44e63 Merge branch 'MDL-82875' of https://github.com/timhunt/moodle 2024-09-16 09:44:02 +02:00
Sara Arjona b163e9c2d0 Merge branch 'MDL-82541-main' of https://github.com/ferranrecio/moodle 2024-09-16 09:38:35 +02:00
Michael Hawkins d96db9cb11 MDL-81278 core: Update security.txt expiry 2024-09-16 14:48:50 +08:00
Laurent David abb0b013a5 MDL-83064 core_theme: Fix Max Section message accessibility
* Fix constrast ratio of Max section message
2024-09-16 05:22:56 +02:00
Jun Pataleta dd96cf9e19 Merge branch 'MDL-83053-main' of https://github.com/aanabit/moodle 2024-09-16 11:20:54 +08:00
Safat 71291e342d MDL-81663 editor_tiny: Updates to core for tiny upgrade 2024-09-16 11:49:33 +10:00
Safat d55d720a86 MDL-81663 editor_tiny: Add new translated strings 2024-09-16 11:30:16 +10:00
Safat 77a2d3d4d1 MDL-81663 editor_tiny: Upgrade tiny to 7.3.0 2024-09-16 11:14:30 +10:00
Paul Holden 9aed047b5d MDL-83144 mod_quiz: style attempt summary flagged icon appropriately. 2024-09-15 12:28:01 +01:00
Paul Holden 9495c2d7a7 MDL-81157 files: consistent repository button styling on small screen. 2024-09-15 11:12:56 +01:00
Paul Holden 2ec0d407f2 MDL-82909 theme_boost: ensure we target immediate loading icon only.
Ignoring those used within inplace editable components in the table.
2024-09-15 11:11:37 +01:00
Paul Holden b181f297ce MDL-82909 javascript: replace custom loading icon with existing module. 2024-09-15 11:11:37 +01:00
Paul Holden 71a55aa368 MDL-83148 assignfeedback_editpdf: style icons in comment editing menu. 2024-09-15 11:05:04 +01:00
Matt Porritt 598c84cec9 MDL-82945 AI: Image watermark rendering
When an image is generated using AI a watermark is added.
This patch examines the area of the image where the water
mark is to be added and changes the font color of the mark
to either black or white, so it can be read against the
background color.
2024-09-14 07:53:47 +10:00
Jun Pataleta e065dea97b MDL-83082 gradereport_history: Add icon CSS class to loading icon 2024-09-14 00:34:27 +08:00
Jun Pataleta 2c9a6c8535 MDL-83082 core_user: Set a size for the loading icon background image 2024-09-14 00:34:26 +08:00
Tim Hunt 60a1a65eea MDL-82875 question export: test for not exporting hidden questions 2024-09-13 16:03:40 +01:00
Sara Arjona 086757bd8c MDL-83109 theme: Update core:t/completion_fail icon and resize it
This commit:
- Updates core:t/completion_fail from fa-times to fa-xmark
- Reduces the font size of course index completion icons from 12px to 10px.
2024-09-13 16:14:55 +02:00
Sara Arjona da28389a59 MDL-83124 theme: Revert t/move icon to arrows-up-down
Change the core:t/move icon from four-directional arrows (up-down-left-right)
to two-directional arrows (up-down) to reduce confusion, as it is used in areas
where drag-and-drop functionality is not supported
2024-09-13 16:10:08 +02:00
Daniel Ziegenberg ea478e864e MDL-82971 libraries: Upgrade psr/log to 3.0.2
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-09-13 15:08:42 +02:00
Vithusha Kethiri 352ca59dc6 MDL-82875 qbank_export: Fix removing hidden questions from the export 2024-09-13 13:08:28 +01:00
Sara Arjona 09e56f2d1a on-demand release 4.5dev+ 2024-09-13 13:22:02 +02:00
Sara Arjona 3cc3569974 NOBUG: Add upgrade notes 2024-09-13 13:22:02 +02:00
Sara Arjona 9ba7917c89 NOBUG: Fixed SVG browser compatibility 2024-09-13 13:21:49 +02:00
Sara Arjona e56bfff22e Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-09-13 13:21:49 +02:00
Luca Bösch bdd8770347 MDL-83127 qtype_ordering: handle NULL in question_hints table entries. 2024-09-13 12:06:58 +02:00
Laurent David f7b3f6930f MDL-82407 core_courseformat: Fix positionning for course index
* ScrollSpy relies on offset to determine the current element in
in the course index. We need to make sure that those elements are
not positionned so the offset is calculated from the top of the page.
2024-09-13 10:50:15 +02:00
Laurent David 43d1898085 MDL-82407 core_courseformat: Fix course index for subsections
* Subsection should be exported in the course index in
the right order with all submodules.
2024-09-13 10:50:15 +02:00
Amaia Anabitarte f75d148127 MDL-83053 format_singleactivity: Remove subsection from activities list 2024-09-13 09:13:50 +02:00
Jun Pataleta 140ef843a7 Merge branch 'MDL-82626-main' of https://github.com/davewoloszyn/moodle 2024-09-13 11:54:45 +08:00
David Woloszyn 2b1d330783 MDL-82626 hub: Registration collects AI usage data 2024-09-13 13:07:23 +10:00
Huong Nguyen ace5d7d56b MDL-83084 theme: Regenerate fontawesomeicons.json 2024-09-13 09:59:27 +07:00
Huong Nguyen ff39465628 Merge branch 'MDL-83084-main' of https://github.com/sarjona/moodle 2024-09-13 09:57:13 +07:00
Jun Pataleta a5b433d0f4 MDL-67541 core_grades: Remove trailing space in max attribute value 2024-09-13 10:40:10 +08:00
Jun Pataleta fefd5fa37c Merge branch 'MDL-67541-main' of https://github.com/ilyatregubov/moodle 2024-09-13 10:37:51 +08:00
Jun Pataleta 971bfc80ac Merge branch 'MDL-82935-main' of https://github.com/sarjona/moodle 2024-09-13 10:33:59 +08:00
Jun Pataleta c2e3c57d17 Merge branch 'MDL-82844-main' of https://github.com/dpalou/moodle 2024-09-13 10:32:02 +08:00
Sara Arjona cb1d76b2f8 Merge branch 'MDL-83116' of https://github.com/paulholden/moodle 2024-09-12 18:15:13 +02:00
Paul Holden 41fe473882 MDL-83094 customfield: align persistent definitions with DB schema.
Where the field/category tables allow nulls, the definition within
each corresponding persistent should match.
2024-09-12 16:29:25 +01:00
ferranrecio 9795add527 MDL-82541 core_courseformat: improve orphan section visualitzation 2024-09-12 16:52:14 +02:00
ferranrecio 393d4f6043 MDL-82541 core_courseformat: fix orphan sections sorting 2024-09-12 16:30:12 +02:00
ferranrecio 9f9f5f6821 MDL-82541 core_courseformat: fix orphaned sections display 2024-09-12 16:12:13 +02:00
ferranrecio 9c55a02fb1 MDL-82541 core_course: fix orphaned sections logic 2024-09-12 16:07:42 +02:00
ferranrecio ebaf06848c MDL-82541 core_courseformat: delegated sections in disabled plugins 2024-09-12 16:07:42 +02:00
Paul Holden 960e37ccd6 MDL-83055 qbank_managecategories: rollback transaction on exception. 2024-09-12 14:59:19 +01:00
Paul Holden cd2c86b301 MDL-83116 output: apply appropriate icon class to collapsible region. 2024-09-12 14:48:51 +01:00
Dani Palou 59ebca88bb MDL-82844 ws: Return home page url in get_site_info WebService 2024-09-12 15:03:25 +02:00
Ilya Tregubov 912da0c86e MDL-67541 core_grades: Add max and min grade to mustache. 2024-09-12 16:24:21 +08:00
Jun Pataleta f416dc4c6a Merge branch 'MDL-83068-main' of https://github.com/sarjona/moodle 2024-09-12 16:22:04 +08:00
Melanie Treitinger 89d07dba51 MDL-74917 core: fix typo in function stats_get_post_actions
Fix phpunit test and apply coding guidelines.
2024-09-12 10:15:57 +02:00
Jun Pataleta a5ee12473b Merge branch 'MDL-83074-main-2' of https://github.com/raortegar/moodle 2024-09-12 16:06:07 +08:00
Paul Holden 2c3c0804de MDL-82602 webservice: correct config link to enable for mobile. 2024-09-12 08:04:59 +01:00
Jun Pataleta 37d13cb706 Merge branch 'MDL-82627-main-phpunit' of https://github.com/HuongNV13/moodle 2024-09-12 14:10:52 +08:00
Huong Nguyen eae6d64624 MDL-82627 AI: Database modification
Allow nullable value for `prompt` and `sourceurl` columns
2024-09-12 13:03:53 +07:00
Jun Pataleta 7bebfbd8b9 Merge branch 'mdl-83046_main' of https://github.com/james-cnz/moodle 2024-09-12 13:40:29 +08:00
Huong Nguyen 78df6e927b Merge branch 'MDL-83043-main' of https://github.com/meirzamoodle/moodle 2024-09-12 10:51:05 +07:00
Huong Nguyen 48f6e57073 Merge branch 'MDL-82545_main' of https://github.com/marxjohnson/moodle 2024-09-12 10:46:36 +07:00
Huong Nguyen cdc136e136 Merge branch 'MDL-81816-main' of https://github.com/laurentdavid/moodle 2024-09-12 10:39:14 +07:00
Huong Nguyen 969b3385ac Merge branch 'MDL-82959-main' of https://github.com/sh-csg/moodle 2024-09-12 10:34:23 +07:00
AMOS bot f86bc3641e Automatically generated installer lang files 2024-09-12 00:07:46 +00:00
Shamiso.Jaravaza 925ba5a221 MDL-82389 mod_bigbluebuttonbn: Fix disablenotes 2024-09-11 09:30:22 -06:00
Jun Pataleta a442f8dd13 Merge branch 'MDL-82847-main' of https://github.com/aanabit/moodle 2024-09-11 17:26:03 +08:00
Huong Nguyen 45b42a325c Merge branch 'MDL-68676-main' of https://github.com/rhell4/moodle 2024-09-11 15:49:52 +07:00
Jun Pataleta 9485e6918b Merge branch 'MDL-83083-main' of https://github.com/sarjona/moodle 2024-09-11 16:48:48 +08:00
Huong Nguyen 840504bd6d Merge branch 'MDL-75692-main' of https://github.com/laurentdavid/moodle 2024-09-11 15:45:00 +07:00
Jun Pataleta c750565f8a Merge branch 'MDL-82283' of https://github.com/marinaglancy/moodle 2024-09-11 16:34:19 +08:00
raortegar 94a373f79b MDL-83074 AI: Placement Text Editor - White icon on button 2024-09-11 10:33:12 +02:00
Jun Pataleta f2fbdafff2 Merge branch 'MDL-83052' of https://github.com/marinaglancy/moodle 2024-09-11 16:28:25 +08:00
Jun Pataleta d078e0f5f0 Merge branch 'MDL-82270-extra_backslash' of https://github.com/mathbruyen/moodle 2024-09-11 15:53:41 +08:00
Jun Pataleta 9162b47424 Merge branch 'MDL-82492-405' of https://github.com/vladaskidanovas/moodle 2024-09-11 15:36:40 +08:00
Jun Pataleta f8309b846d Merge branch 'MDL-82627-main-fix' of https://github.com/HuongNV13/moodle 2024-09-11 15:32:23 +08:00
Huong Nguyen feaa2939c6 MDL-82627 AI: Fix install.xml and upgrade.php mismatch 2024-09-11 14:07:30 +07:00
meirzamoodle a933455be2 MDL-83085 redis: Use named parameters if supported 2024-09-11 12:15:14 +07:00
Jun Pataleta f631b4fdcc Merge branch 'MDL-82627-main-4' of https://github.com/HuongNV13/moodle 2024-09-11 12:50:48 +08:00
Huong Nguyen ceb30b01b2 MDL-82627 AI: Upgrade notes 2024-09-11 11:25:17 +07:00
Huong Nguyen f4860573fa MDL-82627 AI: Placement Text Editor - Improvement
- Quiz is setting the text editor id in this format: `#q2:1_answer`.
   This will break the querySelector(). We need to update the code to
   escape those colons.
 - Generate AI image requires users to have the capability to upload files.
   A new extra condition is added to verify this one.
2024-09-11 11:25:17 +07:00
Huong Nguyen 7809ad9d96 MDL-82627 AI: Rename TinyMCE placement to a more generic name
To make the plugin name a bit more generic, we renamed as below
 - Shortname: `aiplacement_tinymce` -> `aiplacement_editor`
 - Fullname: `TinyMCE Editor Placement` -> HTML Text Editor Placement
2024-09-11 11:25:17 +07:00
Huong Nguyen 9746d9d5a1 MDL-82627 AI: Make some methods abstract 2024-09-11 11:25:17 +07:00
Huong Nguyen 3300712cda MDL-82627 AI: Extra PHPUnit tests for OpenAI provider 2024-09-11 11:25:17 +07:00
Andrew Nicols 4adc7257e9 MDL-82627 AI: Improve and restructure 2024-09-11 11:25:16 +07:00
Andrew Nicols 3e2d581628 MDL-82627 PHPUnit: Add helper to mock http_client 2024-09-11 11:25:16 +07:00
Andrew Nicols 74d1f5f9ce MDL-82627 PHPUnit: Add helper to get path to fixture 2024-09-11 11:25:16 +07:00
Andrew Nicols 52855d0bb0 MDL-82627 AI: AI Image code cleanup 2024-09-11 11:25:16 +07:00
Andrew Nicols acc1f4136b MDL-82627 AI: Placement Text Editor - Code cleanup
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-09-11 11:25:16 +07:00
Huong Nguyen 253253eede MDL-82627 AI: Code cleanup
Co-authored-by: Meirza <meirza.arson@moodle.com>
2024-09-11 11:25:16 +07:00
Matt Porritt 7c622cde3f MDL-82627 AI: Placement Text Editor - Image & Text
Initial AI placement plugin for the TinyMCE editor.
It includes a TinyMCE plugin and the AI placement plugin.
It supports both text and image generation.

Originally implemented in MDL-80891

Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-09-11 11:25:14 +07:00
Matt Porritt ece707e40e MDL-82627 AI: Provider Plugin - Open AI
Initial Open AI API Provider plugin.
Originally implemented in MDL-80894

Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-09-11 11:02:53 +07:00
Huong Nguyen 8186e6ce25 MDL-82627 core: Add testsuite for AI
Originally implemented in MDL-80889
2024-09-11 11:02:53 +07:00
Huong Nguyen 67e6898853 MDL-82627 AI: Privacy provider
Originally implemented in MDL-82781
2024-09-11 11:02:53 +07:00
Matt Porritt 086ac975f0 MDL-82627 AI: LMS Subsystem
Initial implementation of the LMS AI subsystem.
Originally implemented in MDL-80889

Co-authored-by: Meirza <meirza.arson@moodle.com>
2024-09-11 11:02:51 +07:00
ferranrecio c643b6e887 MDL-83008 course: make subection completion not editable 2024-09-11 09:44:21 +07:00
Huong Nguyen 74b0fc8034 Merge branch 'MDL-79020-main' of https://github.com/ferranrecio/moodle 2024-09-11 09:19:04 +07:00
AMOS bot 84ab898de4 Automatically generated installer lang files 2024-09-11 00:07:53 +00:00
james-cnz aae0265178 MDL-83046 course: Add non-delegated sections before delegated ones 2024-09-11 10:21:04 +12:00
Sara Arjona b07246f022 MDL-83084 theme: Remove the caret icon near the actions menu
Remove the caret icon near the actions menu in the Manage courses and
categories page.
2024-09-10 16:49:15 +02:00
Sara Arjona b82d814ef2 MDL-83084 theme: Update the view category icon 2024-09-10 16:48:42 +02:00
Sara Arjona a9cdd7384f MDL-83083 theme: Revert preview icon
In MDL-82211, the preview icon was updated to use the "fa-regular fa-eye" icon.
However, this icon is also used elsewhere to represent hide/show functionality,
leading to potential confusion.
To address this, the UX team has requested that the change be reverted, and the
preview icon should now be replaced with "fa-magnifying-glass-plus".
2024-09-10 15:55:41 +02:00
Sara Arjona 64b0c39c88 MDL-83068 theme: Update grade icons
The fa-check-double icon for correct/incorrect/partial grades were updated
in MDL-82497. However, the UX team has decided to replace these icons with
the following:

 - core:i/grade_correct : fa-check-double --> fa-regular fa-circle-check
 - core:i/grade_incorrect : fa-xmark --> fa-regular fa-circle-xmark
 - core:i/grade_partiallycorrect : fa-check --> fa-circle-half-stroke

These changes should be consistent with the Navigation quiz block too.
2024-09-10 15:18:46 +02:00
Huong Nguyen 3477082aa9 weekly release 4.5dev+ 2024-09-10 20:02:54 +07:00
Huong Nguyen 5f9c42c1e0 NOBUG: Add upgrade notes 2024-09-10 20:02:53 +07:00
Laurent David bbe2f4d4b2 MDL-81816 core_theme: Fix drag and drop box layout
* The new Boostrap color constrast made apparent an visual issue
appearing when we use drag and drop as the outline of the activity
is cut out of the drag/drop image.
2024-09-10 10:44:02 +02:00
Laurent David 507493f57c MDL-75692 core_h5p: Debounce resize events
* Make sure that we don't call the resize event too often to
avoid infinite loop when content is auto resizing (fonts for example)
2024-09-10 08:46:40 +02:00
Laurent David d265064d53 MDL-81816 core_theme: Refactor theme-color-level for BS5 2024-09-10 07:34:59 +02:00
Huong Nguyen e70d6fd690 Merge branch 'MDL-83047-main' of https://github.com/junpataleta/moodle 2024-09-10 10:46:40 +07:00
meirzamoodle 64032e1390 MDL-83043 filter_algebra: Fix undefined function filter_algebra_image() 2024-09-10 10:05:32 +07:00
Huong Nguyen 57ab215ac1 Merge branch 'MDL-83038' of https://github.com/paulholden/moodle 2024-09-10 09:34:07 +07:00
Jun Pataleta 40282c85ac MDL-83047 theme_boost: Add upgrade note for theme plugins 2024-09-10 10:30:46 +08:00
Huong Nguyen ac98e2410e Merge branch 'MDL-83004-main' of https://github.com/davewoloszyn/moodle 2024-09-10 08:50:09 +07:00
David Woloszyn f3adeafaf4 MDL-83004 tool_moodlenet: Fix sectionnum param 2024-09-10 10:58:56 +10:00
Sara Arjona 323141ef33 Merge branch 'MDL-82574-main' of https://github.com/laurentdavid/moodle 2024-09-09 17:44:18 +02:00
Sara Arjona cd093bdb96 Merge branch 'MDL-83037' of https://github.com/paulholden/moodle 2024-09-09 17:21:54 +02:00
Sara Arjona ce5cda1c07 Merge branch 'MDL-83020' of https://github.com/paulholden/moodle 2024-09-09 17:03:02 +02:00
Marina Glancy c1300fe8bc MDL-83052 customfield_number: do not display 0 when not set 2024-09-09 11:14:47 +01:00
Sara Arjona b2b3bbffd3 Merge branch 'MDL-82983-main' of https://github.com/ferranrecio/moodle 2024-09-09 12:06:28 +02:00
Amaia Anabitarte e9c0789e69 MDL-82847 report_log: Add subsections to activities log 2024-09-09 12:06:02 +02:00
Marina Glancy f8e7bbe776 MDL-82283 admin: js filtering of the plugins on plugins overview page 2024-09-09 10:37:52 +01:00
Jun Pataleta c5d022aed6 MDL-83047 theme_boost: Apply background colour only on select layouts
* Apply the styling of `background-color` for `.page-header-headings`
only in the maintenance and secure layouts.
2024-09-09 17:00:29 +08:00
Huong Nguyen 2b64ce97ab Merge branch 'MDL-82860-main' of https://github.com/meirzamoodle/moodle 2024-09-09 14:31:57 +07:00
Sara Arjona 5ff41b1961 Merge branch 'MDL-83016' of https://github.com/paulholden/moodle 2024-09-09 09:29:53 +02:00
Huong Nguyen 667c0f6866 Merge branch 'MDL-82938' of https://github.com/paulholden/moodle 2024-09-09 11:17:23 +07:00
Huong Nguyen 6654b37ea1 Merge branch 'MDL-80562' of https://github.com/paulholden/moodle 2024-09-09 11:15:10 +07:00
meirzamoodle 6816a5a770 MDL-82860 atto_link: Set value as default to avoid unexpected behaviour 2024-09-09 08:10:55 +07:00
Jun Pataleta 1938c438ea on-demand release 4.5dev+ 2024-09-07 06:48:52 +08:00
Jun Pataleta aeb079fde0 NOBUG: Add upgrade notes 2024-09-07 06:48:52 +08:00
Jun Pataleta a2b444cd62 NOBUG: Fixed SVG browser compatibility 2024-09-07 06:48:32 +08:00
Stefan Hanauska 91ce0739c2 MDL-82959 tool_recyclebin: Avoid null value for forcedsettings 2024-09-06 19:46:38 +02:00
Paul Holden 0c3c325ca0 MDL-83038 mod_quiz: use dummy URL in quiz grading page external call. 2024-09-06 12:24:29 +01:00
Paul Holden a66aea7965 MDL-83037 badges: ensure image is specified in Behat test generator. 2024-09-06 11:43:21 +01:00
ferranrecio 5ca36a02b7 MDL-79020 core_courseformat: hide completion edit link in bulk edit 2024-09-06 10:59:36 +02:00
Jun Pataleta eb840870a6 Merge branch 'MDL-63399-main' of https://github.com/lameze/moodle 2024-09-06 12:29:15 +08:00
Huong Nguyen 5fa52f8b5d Merge branch 'MDL-82861' of https://github.com/paulholden/moodle 2024-09-06 11:19:34 +07:00
Simey Lameze 3ac7a2f6c5 MDL-63399 behat: update existing tests to use the better download steps
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:14:07 +08:00
Huong Nguyen 17ab580658 Merge branch 'MDL-82999' of https://github.com/paulholden/moodle 2024-09-06 11:12:58 +07:00
Huong Nguyen b71bbd35aa Merge branch 'MDL-82223' of https://github.com/paulholden/moodle 2024-09-06 11:10:13 +07:00
Simey Lameze 5e4fd26115 MDL-63399 behat: new steps to verify downloads
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:03:29 +08:00
Huong Nguyen 0e98d4507a Merge branch 'MDL-82948-main' of https://github.com/junpataleta/moodle 2024-09-06 11:00:58 +07:00
Huong Nguyen ac41453912 Merge branch 'MDL-82677-main' of https://github.com/junpataleta/moodle 2024-09-06 10:50:35 +07:00
Jun Pataleta 03fbf4e8d1 Merge branch 'MDL-83010_exception-when-exporting-SCORM-reports-to-Excel-format' of https://github.com/ziegenberg/moodle 2024-09-06 10:51:34 +08:00
Jun Pataleta 4de11d350f Merge branch 'MDL-82659' of https://github.com/michaelkotlyar/moodle 2024-09-06 09:30:53 +08:00
Jun Pataleta 16ced30444 Merge branch 'MDL-83012' of https://github.com/paulholden/moodle 2024-09-06 09:27:44 +08:00
Jun Pataleta 9222d7e1b2 Merge branch 'MDL-76665-main-behat-fix' of https://github.com/lameze/moodle 2024-09-06 09:11:32 +08:00
rajandangi 9209a85bdb MDL-79628 navigation: Deprecate timeout and cleanup properties 2024-09-06 09:39:17 +09:30
rajandangi 3615f732ad MDL-79628 navigation: Refactor navigation_cache to use MUC 2024-09-06 09:39:17 +09:30
Simey Lameze 94be4c6699 MDL-76665 behat: fix step to go to safe exam templates 2024-09-06 08:08:48 +08:00
Paul Holden 703b57db48 MDL-83012 badges: avoid random timing failures in external test.
This restores the original random failure fix from 9a5eb76a56, and
adds assertions appropriate to d9ea6bc804 without re-introducing the
same random test failures.

Also improve non-sensical conditional assertions.
2024-09-05 16:50:31 +01:00
Paul Holden 938251eb89 MDL-83020 badges: validate correct context when retrieving badge.
Remove capablity check, as this is intended to be public info.
2024-09-05 16:03:32 +01:00
ferranrecio c261fca22a MDL-82983 course: prevent subsection default completion 2024-09-05 12:58:19 +02:00
Huong Nguyen 0b75fe1fb6 Merge branch 'MDL-80946' of https://github.com/michaelkotlyar/moodle 2024-09-05 15:53:38 +07:00
Laurent David ca55b62b43 MDL-82574 mod_subsection: Remove module from activity chooser
* Fix behat tests to take into consideration the new add subsection
workflow
* modulename_help is only used in the activity chooser so has been
removed
2024-09-05 10:45:03 +02:00
Michael Kotlyar 640baa3c15 MDL-82659 quizaccess_seb: Add capabilities to control require options.
Adding capabilities 'quizaccess/seb:manage_seb_configuremanually' and
'quizaccess/seb:manage_seb_usesebclientconfig' to control SEB
requirement options 'Yes – configure manually' and
'Yes – Use SEB client config' respectively.

Other changes include code indentation corrections within quizacess_seb.
2024-09-05 09:35:29 +01:00
Huong Nguyen f76ef40495 Merge branch 'MDL-76665' of https://github.com/michaelkotlyar/moodle 2024-09-05 15:10:53 +07:00
Huong Nguyen d13985c2b8 Merge branch 'MDL-82520' of https://github.com/ssj365/moodle 2024-09-05 14:56:22 +07:00
Huong Nguyen c9a4cfcda3 Merge branch 'MDL-81909-main' of https://github.com/rezaies/moodle 2024-09-05 14:49:32 +07:00
Jun Pataleta c18bb26122 Merge branch 'MDL-82854' of https://github.com/jfederico/moodle 2024-09-05 09:53:27 +08:00
Shamim Rezaie 7662c15e56 MDL-81909 mod_assign: Additional doc and styling fixes 2024-09-05 03:25:12 +10:00
Shamim Rezaie 46cbbe1d6a MDL-81909 mod_assign: Automatic phpcbf styling with moodle-extra ruleset 2024-09-05 03:19:41 +10:00
Shamim Rezaie cc5f6f222d MDL-81909 mod_assign: fix test_attempt_reopen_method_untilpass 2024-09-05 03:15:31 +10:00
jfedericobn 144af269d4 MDL-82854 mod_bigbluebuttonbn: Analytics callback log stores raw data 2024-09-04 16:48:55 +00:00
Michael Milette dff8969548 MDL-72856 lib: Only inject one robots/noindex in head of Additional HTML 2024-09-04 12:29:51 -04:00
Daniel Ziegenberg 803d91968b MDL-83010 lib: fix PhpSpreadsheet
Implementing MDL-81031 caused a regression because
lib/phpspreadsheet/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/*
was inadvertently deleted. Re-adding those files now.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-09-04 16:08:08 +02:00
Paul Holden b24887b168 MDL-83016 course: set icon size when used as background in tree. 2024-09-04 12:42:45 +01:00
Paul Holden 526e04f540 MDL-83016 javascript: apply appropriate icon class to legacy spinner. 2024-09-04 12:16:32 +01:00
Sara Arjona 279c31ffcc Merge branch 'MDL-82995-main-feedback_broken_audio_video' of https://github.com/schutzl/moodle 2024-09-04 12:58:59 +02:00
Paul Holden 0dda0c91e1 Merge branch 'MDL-82974-main' of https://github.com/ilyatregubov/moodle into main 2024-09-04 10:32:06 +01:00
Michael Kotlyar 14228164bc MDL-76665 quizaccess_seb: Allow disable of SEB templates when in use. 2024-09-04 10:23:53 +01:00
Paul Holden 865e8f3e90 MDL-82571 customfield_number: small coding style cleanup. 2024-09-04 10:14:25 +01:00
Paul Holden cbcb9d071f Merge branch 'MDL-82571_V2' of https://github.com/lostrogit/moodle into main 2024-09-04 10:04:02 +01:00
Paul Holden 445fe37166 Merge branch 'MDL-82987-main' of https://github.com/mihailges/moodle into main 2024-09-04 09:58:19 +01:00
Paul Holden ed0a4587dd Merge branch 'MDL-82503-main-behat' of https://github.com/HuongNV13/moodle into main 2024-09-04 09:48:00 +01:00
Huong Nguyen cbf64b53fe MDL-82503 badges: Fix Behat failure 2024-09-04 15:23:23 +07:00
Lucian Schultz 7a3d809866 MDL-82995 feedback: fixed audio and video bug 2024-09-04 07:21:01 +00:00
Paul Holden e8f5f7d23d MDL-80562 reportbuilder: switch to menu/ellipsis icon for actions. 2024-09-04 07:48:50 +01:00
Paul Holden 0ba1e78bcf MDL-82938 reportbuilder: update column editor sorting icons.
Clarify language strings for the same; remove some duplication from
accompanying tests.
2024-09-04 07:48:29 +01:00
Huong Nguyen 06879072a9 Merge branch 'MDL-80225-master' of https://github.com/ssj365/moodle 2024-09-04 09:29:41 +07:00
Huong Nguyen 11671775a8 Merge branch 'MDL-82503-main' of https://github.com/sarjona/moodle 2024-09-04 09:19:28 +07:00
Sara Arjona 2f4efdb879 MDL-82503 badges: Fix behat and PHPUnit tests 2024-09-03 20:27:51 +02:00
Sara Arjona 9b58ab3e87 MDL-82503 badges: Deprecate badges/view.php 2024-09-03 20:00:18 +02:00
Sara Arjona c6d7cf85f6 MDL-82503 badges: Deprecate showmanage button from action_bar 2024-09-03 19:59:29 +02:00
Sara Arjona 6adbe05d9f MDL-82503 badges: Deprecate course_badges report 2024-09-03 19:59:28 +02:00
Sara Arjona 4cdeb79566 MDL-82503 badges: Prepare and make index.php default page
The badges/index.php and badges/view.php pages are quite similar and
have been merged into index.php.
This commit updates index.php to incorporate the missing information
previously found in view.php.
2024-09-03 19:55:49 +02:00
Sara Arjona 5d5938a7ed Merge branch 'MDL-82490-main' of https://github.com/laurentdavid/moodle 2024-09-03 19:40:38 +02:00
Sara Arjona e812811b11 Merge branch 'MDL-81767-main' of https://github.com/roland04/moodle 2024-09-03 19:35:20 +02:00
Michael Kotlyar ee0defaec3 MDL-80946 quizaccess_seb: Remove invalidkeys text if not using SEB. 2024-09-03 16:43:51 +01:00
Carlos Castillo 241fa420d8 MDL-82571 customfield_number: Display format to number custom field
Add extra settings to the new number custom field in order to allow it
format the exported data using placeholders plus supporting multi language.
2024-09-03 15:24:01 +02:00
Paul Holden c066f320f0 MDL-82999 theme_boost: target only admin notification links to style. 2024-09-03 14:17:20 +01:00
Paul Holden 215e93046a MDL-80929 customfield: observe backup/restore settings to include. 2024-09-03 13:53:04 +01:00
Paul Holden b4a902fac3 MDL-80929 restore: consistent settings definition for custom fields. 2024-09-03 13:49:50 +01:00
Jun Pataleta 13c12756b4 on-demand release 4.5dev+ 2024-09-03 20:05:50 +08:00
Jun Pataleta ea2d3558d9 NOBUG: Add upgrade notes 2024-09-03 20:05:49 +08:00
Mikel Martín 74cfbbacc6 MDL-81767 courseformat: Add tests for module quick creation
- Added unit tests for 'core_courseformat\external\create_module' web service.
- Added unit tests for 'create_module' state action.

Both tests need at least a module with 'FEATURE_QUICKCREATE', so mod_subsection
was used.
2024-09-03 13:35:04 +02:00
Mikel Martín c4470cc7f9 MDL-81767 mod_subsection: Add hook for activitychooserbutton
- Add the new 'FEATURE_QUICKCREATE' to mod_subsection.
- Implement the 'before_activitychooserbutton_exported' hook callback that adds
  an extra action_link to add subsections in a course section.
- Add a new permission class.
2024-09-03 13:35:04 +02:00
Mikel Martín a0fa76c86b MDL-81767 courseformat: Add module quickcreation feature
- Add new 'FEATURE_QUICKCREATE' plugin feature that indicates the module can
  be created with a single click. It will use its own 'quickcreatename' defined
  string as the initial default name.
- Add new 'core_courseformat\external\create_module' web service to create new
  modules with the quickcreate featuer in the course page.
- Add a new 'create_module' state action.
2024-09-03 13:35:04 +02:00
Mathieu Bruyen 598eb3260b MDL-82270 tool_policy: fix guest policy template markup.
Remove extra backslash producing invalid markup in consent banner.
2024-09-03 09:00:09 +02:00
Ilya Tregubov 70ab6b9a28 MDL-66151 core: fix destroy method. 2024-09-03 11:56:46 +08:00
Jun Pataleta e1e15eb4a7 Merge branch 'MDL-82957-main' of https://github.com/roland04/moodle 2024-09-03 11:42:18 +08:00
Ilya Tregubov f3a7b673c1 Merge branch 'main_MDL-66151' of https://github.com/mattporritt/moodle 2024-09-03 11:07:47 +08:00
Trisha Milan e52fbd2f84 MDL-66151 Performance: Session Manager modularisation
Storage of session metadata has moved into the session handler class.
This allows for other classes to fully control session handling and
removes the dependancy on the core sessions database table.

Previously, the standard method of interaction with the
session metadata was direct DB calls; this may break other plugins as there
are now proper APIs available through the session manager.

Co-authored-by: Darren Cocco <moodle@darren.cocco.id.au>
Co-authored-by: Trisha Milan <trishamilan@catalyst-au.net>
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2024-09-03 13:04:04 +10:00
Jun Pataleta 2f6e81090f Merge branch 'MDL-82984-main' of https://github.com/sarjona/moodle 2024-09-03 10:45:15 +08:00
Mihail Geshoski 2ff6e9a2ae MDL-82987 mod_assign: Restore magnifying glass icon in preview link
The icon used in the full preview link for submissions and feedback was
inadequately replaced with an eye icon, which is typically associated
with visibility toggling or state indication. The previous magnifying
glass icon was more appropriate for this purpose, so this issue restores
it.
2024-09-03 10:43:11 +08:00
Jun Pataleta abc6e9d11e Merge branch 'MDL-82953-main' of https://github.com/sarjona/moodle 2024-09-03 10:37:05 +08:00
Huong Nguyen 18058972f0 Merge branch 'MDL-82684-main' of https://github.com/rezaies/moodle 2024-09-03 09:36:02 +07:00
Jun Pataleta 2319636ebd Merge branch 'MDL-82804' of https://github.com/paulholden/moodle 2024-09-03 10:32:14 +08:00
Huong Nguyen 42c1828295 Merge branch 'MDL-82500-main' of https://github.com/sarjona/moodle 2024-09-03 09:31:21 +07:00
Jun Pataleta 2de9d83d7d Merge branch 'MDL-82717' of https://github.com/liamgm/moodle 2024-09-03 10:29:20 +08:00
Ilya Tregubov 71ede9e192 Merge branch 'MDL-75850-main-fix' of https://github.com/meirzamoodle/moodle 2024-09-03 10:17:17 +08:00
Ilya Tregubov d38fa6e579 Merge branch 'MDL-80751-main-2' of https://github.com/mihailges/moodle 2024-09-03 09:18:00 +08:00
Sara Arjona 875fa9c2ec MDL-82984 core: Missing step to uninstall filter_tidy 2024-09-02 18:36:03 +02:00
Mikel Martín 84d9e83588 MDL-81767 course: Refactor activity chooser button output
- Add new 'activitychooserbutton' output class that allows adding extra action_links through hooks.
- Add new 'before_activitychooserbutton_exported' hook so plugins could add extra action links
  to the activity chooser button.
- Unify activitychooserbutton and activitychooserbuttonactivity into a single template.
2024-09-02 18:16:18 +02:00
Sara Arjona 93aa8af266 Merge branch 'MDL-82617-main' of https://github.com/roland04/moodle 2024-09-02 18:15:57 +02:00
Laurent David e47bad8801 MDL-82490 course_format: Add subsection in section selector
* Add subsection in topic format section selector in the right order.
2024-09-02 17:43:33 +02:00
Laurent David 7384a8bbad MDL-82490 core_output: Add disabled option for url_select
* Add a way to disable (and enable later) option in the url select
selector.
2024-09-02 17:43:33 +02:00
Jun Pataleta 4fcff065bb Merge branch 'MDL-82828-main' of https://github.com/andrewnicols/moodle 2024-09-02 17:52:12 +08:00
Kevin Percy 990d54fc98 MDL-80751 behat: Combined Grade action into one step 2024-09-02 17:46:20 +08:00
Kevin Percy a18376806d MDL-80751 behat: Removed Grade button from assignment submissions table 2024-09-02 17:03:58 +08:00
Jun Pataleta b876e8501e MDL-82255 editor_tiny: No need for extra styles for RTL 2024-09-02 16:53:48 +08:00
Kevin Percy 93490ddf30 MDL-80751 mod_assign: Removed Grade button from submissions table 2024-09-02 16:32:52 +08:00
Mikel Martín 2738e58304 MDL-82617 mod_subsection: Redirect from modedit to sectionedit page
When accessing mod_subsection edit form, redirect to section edit page of the
delegated section.
2024-09-02 10:15:52 +02:00
Jun Pataleta 1c790ec9fc Merge branch 'MDL-82255-main' of https://github.com/raortegar/moodle 2024-09-02 16:01:45 +08:00
Sara Arjona 4cf292caaf Merge branch 'MDL-78250_upgrade-cas' of https://github.com/ziegenberg/moodle 2024-09-02 09:44:24 +02:00
Ilya Tregubov c1bd7d8d2e Merge branch 'MDL-82816-main' of https://github.com/mihailges/moodle 2024-09-02 15:32:14 +08:00
Ilya Tregubov f23472345c MDL-82974 core_cache: Fix typo. 2024-09-02 12:57:13 +08:00
Ilya Tregubov 784b7962be Merge branch 'MDL-82220' of https://github.com/paulholden/moodle 2024-09-02 10:09:40 +08:00
Daniel Ziegenberg 3d482c9d96 MDL-78250 auth_cas: Bump thirdpartylibs version to 1.6.1
With MDL-81031 psr/log was added to moodle core, so amending the instructions
in readme_moodle.txt accordingly.

Notable upstream changes:

 - With the upstream PR #422 the file `source/CAS.php` is now also
   autoloaded.
 - With the upstream PR #428 the list of composer ignored files got
   updated. So we can now remove some of the upgrade steps in the
   readme_moodle.txt

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-31 17:43:57 +02:00
Daniel Ziegenberg 7572a302e8 MDL-78250 auth_cas: Update phpCAS to v1.6.1
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-31 17:43:53 +02:00
Shamiso.Jaravaza 87dee7620e MDL-82520 mod_bigbluebuttonbn: Show presentation
* Added setting to show/hide presentation file on activity page
* Created capability to check if user should always see presentation
2024-08-30 20:27:20 -06:00
Sara Arjona 3c47fbe3b6 MDL-82953 badges: Fix redirect when form is cancelled
From the new badge page, when the form is cancelled, a redirect should
be done to the badges/index.php.
This is a regression introduced when newbadge.php and edit.php pages
were merged.
2024-08-30 11:37:02 +02:00
Paul Holden 1965c0caf0 MDL-82494 user: correct profile field name formatting method.
Add optional `$escape` parameter to allow for unescaped return.
2024-08-30 09:47:13 +01:00
Paul Holden 8c5d9819dc MDL-82488 customfield: allow for unescaped field formatted names.
Resolves double encoding of the same in Report builder editor.
2024-08-30 09:43:04 +01:00
Mikel Martín 448b87bbfe MDL-82957 course: Fix section bulk actions alignment 2024-08-30 09:13:04 +02:00
Paul Holden 5d0e981eed MDL-82804 badges: define no results notice inside report instances.
When doing so from calling code, the property is not persisted when
filtering/paging (or any AJAX interaction); instead, it should be
set from within the report instance itself.
2024-08-29 16:10:30 +01:00
Sara Arjona 1fbba6b3c3 MDL-82500 my: Move CTA from the menu to buttons
The icons have been updated to make them more consistent abroad Moodle and
take advantage of the benefits of FontAwesome 6.

This commit removes the actions from the first actions menu and moves them to
buttons as suggested by the UX team. Based on recent UX decisions, the following
changes have been implemented:

- The "View Quickstart Guide" is no longer displayed as a button. Instead, this
link will now appear within the text preceding the buttons (when available).
- When no courses are available on the site, the "Manage courses" button has been
replaced by "Manage course categories".
- A "Manage courses/Manage course categories" button has been added to the zero-state
view, ensuring consistency whether courses are present on the site or not.
2024-08-29 16:14:41 +02:00
Huong Nguyen 072fb90384 weekly release 4.5dev+ 2024-08-29 18:09:50 +07:00
Huong Nguyen 7aef6e21cb NOBUG: Add upgrade notes 2024-08-29 18:09:49 +07:00
Huong Nguyen 234a065909 NOBUG: Fixed SVG browser compatibility 2024-08-29 18:09:37 +07:00
Paul Holden 5d45fa48a9 MDL-82483 tag: update the max length constant to match schema. 2024-08-29 10:37:55 +01:00
Liam Moran d013299da0 MDL-82717 enrol_lti: Make contextmembershipsurl property immutable
The contextmembershipsurl property on the nrsp_info object is itself
an object of type moodle_url so its getter should return a copy
of the moodle_url object instead of a reference to the class-internal
object. This commit adds a test for get_context_memberships_url and
updates the getter so the property is immutable.
2024-08-29 03:40:47 -05:00
Jun Pataleta 5f1084bcba MDL-82948 theme_boost: Make <blockquote>'s border a bit darker 2024-08-29 15:59:40 +08:00
raortegar 51d0a1869c MDL-82255 editor_tiny: Add blockquote in toolbar menu and styled 2024-08-29 09:17:46 +02:00
Shamim Rezaie 5fe8064557 MDL-82684 mod_assign: Move the downloadasfolders checkbox to action bar 2024-08-29 14:32:38 +10:00
Huong Nguyen 47e77f895c Merge branch 'MDL-82683-main' of https://github.com/rezaies/moodle 2024-08-29 11:22:16 +07:00
Shamim Rezaie 2e35d1bd30 MDL-82683 mod_assign: Remove session checking from the status filter 2024-08-29 14:19:39 +10:00
Shamim Rezaie 8b1d81c990 MDL-82683 mod_assign: Move the quick grading checkbox to the action bar 2024-08-29 14:19:33 +10:00
Paul Holden 3fc1073d30 MDL-82365 mod_lesson: stricter equality checks of activity password. 2024-08-29 12:12:58 +08:00
Huong Nguyen 8ec84f43cb Merge branch 'MDL-82718' of https://github.com/paulholden/moodle 2024-08-29 11:08:31 +07:00
Huong Nguyen c4be12a673 Merge branch 'MDL-82446' of https://github.com/paulholden/moodle 2024-08-29 11:04:56 +07:00
Jun Pataleta a84fb7c075 Merge branch 'MDL-82651-main' of https://github.com/lameze/moodle 2024-08-29 11:59:31 +08:00
Jun Pataleta 3a45faf1b6 Merge branch 'MDL-82802' of https://github.com/paulholden/moodle 2024-08-29 11:39:57 +08:00
Huong Nguyen 1af718f3ee Merge branch 'MDL-82613-main-v02' of https://github.com/ferranrecio/moodle 2024-08-29 10:38:39 +07:00
Huong Nguyen 2b0b6e2177 Merge branch 'MDL-82862-main' of https://github.com/sarjona/moodle 2024-08-29 10:29:49 +07:00
Ilya Tregubov e1c84c99bf MDL-82882 quiz: Code style fixes. 2024-08-29 11:24:09 +08:00
Ilya Tregubov 2a95e09262 Merge branch 'MDL-82882' of https://github.com/timhunt/moodle 2024-08-29 11:19:44 +08:00
Huong Nguyen 490556705c Merge branch 'MDL-71326-final-deprecation-of-plagiarism-functions-4-4' of https://github.com/ziegenberg/moodle 2024-08-29 10:13:56 +07:00
Huong Nguyen 1d5a323677 Merge branch 'MDL-82790-main' of https://github.com/andrewnicols/moodle 2024-08-29 10:07:09 +07:00
Ilya Tregubov 5c50a77859 Merge branch 'MDL-82810' of https://github.com/timhunt/moodle 2024-08-29 10:56:48 +08:00
Huong Nguyen b6d8640e26 Merge branch 'MDL-82898-main' of https://github.com/andelacruz/moodle 2024-08-29 09:49:55 +07:00
Paul Holden 809629e5af MDL-76962 auth_oauth2: users can only delete their own linked logins. 2024-08-29 10:31:55 +08:00
Ilya Tregubov 99dd18c4c3 Merge branch 'MDL-82837-main' of https://github.com/HuongNV13/moodle 2024-08-29 10:00:05 +08:00
Ilya Tregubov 83f04f5066 Merge branch 'MDL-82105-main' of https://github.com/durenadev/moodle 2024-08-29 09:44:27 +08:00
Sara Arjona f08b407648 Merge branch 'MDL-80641_upgrade-jmespath' of https://github.com/ziegenberg/moodle 2024-08-28 16:55:15 +02:00
Andrew Nicols e6146bca1b Merge branch 'MDL-82359-main' of https://github.com/sammarshallou/moodle 2024-08-28 22:46:56 +08:00
Sara Arjona 9fe440b3cb Merge branch 'MDL-82301' of https://github.com/paulholden/moodle 2024-08-28 16:45:40 +02:00
Sara Arjona a5b8e1479e MDL-82935 filter: Remove unused var in manage.php 2024-08-28 16:34:10 +02:00
Sara Arjona 327f06053b MDL-82935 filter: Fix coding style in manage.php 2024-08-28 16:33:35 +02:00
Sara Arjona 0e4d6567a0 Merge branch 'MDL-73976' of https://github.com/paulholden/moodle 2024-08-28 14:08:58 +02:00
Stefan Hanauska da1e3a5f4a MDL-80974 enrol: Set category context for enrol form 2024-08-28 12:31:40 +02:00
meirzamoodle 0c54003d2c MDL-75850 core: bump version 2024-08-28 17:17:08 +07:00
meirzamoodle 72b43c3541 MDL-75850 core: file redact
File redact is a core plugin to remove or obsure from a file (image, doc) prior to publication/release.
Currently, it has an EXIF remover service using exiftool command, but it is also possible to
add other services related to file redacting.

The plugin admin settings is under Server as it's parent.

Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-08-28 17:17:08 +07:00
Daniel Ureña 33717237aa MDL-82105 Badges: Get badge by badge id. 2024-08-28 10:14:15 +02:00
Jun Pataleta bef9054099 Merge branch 'MDL-79734-main' of https://github.com/stevandoMoodle/moodle 2024-08-28 15:34:10 +08:00
Stevani Andolo 46901a07b0 MDL-79734 mod_assign: Fixed send notifications for due in 7 days 2024-08-28 14:40:58 +08:00
Simey Lameze 3b2be7f382 MDL-82651 behat: remove unnecessary steps 2024-08-28 13:54:09 +08:00
Simey Lameze b66d4e12bf MDL-82651 behat: wait for button to exist before clicking 2024-08-28 13:54:09 +08:00
Marina Glancy bb466df202 MDL-82567 core: Add has_capability method
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
Co-authored-by: Jun Pataleta <jun@moodle.com>
2024-08-28 03:34:17 +00:00
David Woloszyn eb278990d0 MDL-79734 mod_assign: Send notifications for due in 7 days 2024-08-28 11:29:52 +08:00
Ilya Tregubov 8a80fca393 Merge branch 'MDL-82547' of https://github.com/paulholden/moodle 2024-08-28 11:20:02 +08:00
Huong Nguyen 7bfa32276a MDL-82837 output: Use the correct icons for block drawer 2024-08-28 09:36:19 +07:00
Angelia Dela Cruz c0e5deb660 MDL-82898 enrol_self: Behat to test student enrolment using key 2024-08-28 08:45:09 +08:00
Paul Holden 50c64005e8 MDL-82663 user: fix check for current user removing own enrolment.
We only need to remove the current user from selection if they were
ever part of the selection originally.
2024-08-27 16:55:13 +01:00
ferranrecio 245f826b43 MDL-82613 core_courseformat: fix section visibility badge 2024-08-27 16:11:32 +02:00
Paul Holden 5bc9c341c2 MDL-82861 editor_atto: apply appropriate icon class in message text. 2024-08-27 10:40:31 +01:00
Paul Holden ef1ebea848 MDL-82693 contentbank: improve display unlisted module, add tests. 2024-08-27 09:38:40 +01:00
Paul Holden f803f62853 MDL-82718 tiny_media: fix error string loading for invalid image. 2024-08-27 09:21:32 +01:00
Sara Arjona 07db2a85b8 Merge branch 'MDL-74583' of https://github.com/paulholden/moodle 2024-08-27 09:22:59 +02:00
Huong Nguyen 5053f2b81d Merge branch 'MDL-82535' of https://github.com/paulholden/moodle 2024-08-27 10:04:55 +07:00
Huong Nguyen 4f25ac1044 Merge branch 'MDL-82158-main' of https://github.com/andrewnicols/moodle 2024-08-27 10:01:38 +07:00
Jun Pataleta 76cacbd856 Merge branch 'MDL-82297-main' of https://github.com/laurentdavid/moodle 2024-08-27 10:00:31 +08:00
Paul Holden d1397b4552 MDL-82223 availability: final removal of deprecated renderer method. 2024-08-26 20:50:41 +01:00
Paul Holden 670b4af61c MDL-74583 reportbuilder: final removal of legacy namespaced classes. 2024-08-26 20:44:41 +01:00
Laurent David fbbf8715ef MDL-82297 core: Add notification to warn admins
* In Moodle 5.0 we will remove Chat and Survey module
and we will need to announce it beforehand
2024-08-26 14:49:02 +02:00
Laurent David 29b2bfe51f MDL-82297 core: Improve core notification message
* Improve the notification message so it can have a
title and titleicon.
2024-08-26 14:49:02 +02:00
Huong Nguyen 3fb925e581 MDL-69684 session_redis: Improve upgrade note 2024-08-26 10:53:48 +07:00
Huong Nguyen d585ad91b6 MDL-69684 session_redis: Improve PHPUnit test 2024-08-26 10:52:26 +07:00
Huong Nguyen 1d501e682e Merge branch 'MDL-69684_its-possible-to-hold-a-redis-session-lock-forever' of https://github.com/ziegenberg/moodle 2024-08-26 10:47:07 +07:00
Huong Nguyen bb8037c457 Merge branch 'MDL-80747-main' of https://github.com/rezaies/moodle 2024-08-26 10:05:06 +07:00
Huong Nguyen 4f9ab7d3ff Merge branch 'MDL-82195-main' of https://github.com/mihailges/moodle 2024-08-26 09:19:46 +07:00
Shamim Rezaie a19f9cbfe2 Merge branch 'MDL-82006' of https://github.com/paulholden/moodle 2024-08-24 16:21:20 +10:00
Sara Arjona 056f473a6e on-demand release 4.5dev+ 2024-08-23 16:04:48 +02:00
Sara Arjona 7ce18d2edb NOBUG: Add upgrade notes 2024-08-23 16:04:48 +02:00
Sara Arjona c992c7582c NOBUG: Fixed SVG browser compatibility 2024-08-23 16:04:31 +02:00
Tim Hunt e47a4cb35f MDL-82882 quiz: add before/after for attempt_summary_information 2024-08-23 12:53:12 +01:00
Sara Arjona 0929fd4dc4 Merge branch 'MDL-79678-main-fix' of https://github.com/junpataleta/moodle 2024-08-23 08:18:35 +02:00
Jun Pataleta 6b282fd7a3 MDL-79678 factor_totp: Use correct plugin name in upgrade savepoint 2024-08-23 14:15:04 +08:00
Sara Arjona 6fd7539189 Merge branch 'MDL-81662-fix' of https://github.com/sarjona/moodle 2024-08-23 07:56:10 +02:00
Sara Arjona d1179cefa5 MDL-81662 media: Bump ogv.js version in thirdpartylibs 2024-08-23 07:55:12 +02:00
Jake Dallimore e67475802b Merge branch 'MDL-82787-main' of https://github.com/andrewnicols/moodle 2024-08-23 11:51:09 +08:00
Shamim Rezaie 6495bebac2 MDL-72397 qbank_managecategories: Fix whitespace 2024-08-23 13:45:17 +10:00
Shamim Rezaie 3a50726b29 Merge branch 'MDL-72397_main-reactive' of https://github.com/marxjohnson/moodle 2024-08-23 12:53:21 +10:00
Jake Dallimore d18c23bea8 Merge branch 'MDL-82863-main' of https://github.com/sarjona/moodle 2024-08-23 10:43:21 +08:00
Huong Nguyen a31ffef402 Merge branch 'MDL-82347-main' of https://github.com/davewoloszyn/moodle 2024-08-23 08:52:10 +07:00
Daniel Ziegenberg 492bca0a67 MDL-69684 session: Redis session locks set with expiry atomically
Co-Authored-By: Jamie Chapman-Brown <jamie.chapman-brown@agilicus.com>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-22 18:22:50 +02:00
Jun Pataleta 2810c13ec9 Merge branch 'MDL-79215-main' of https://github.com/MichaelReyesCatcan/moodle 2024-08-22 23:57:26 +08:00
Shamim Rezaie 1664c86511 MDL-80747 mod_assign: Move the status filter into the action bar 2024-08-23 01:36:17 +10:00
Shamim Rezaie 61758ac21c MDL-80747 behat: Implement matches() for behat_form_select_menu
So that we can have steps like:
  And the field "Status" matches value "Not submitted"
2024-08-23 01:29:49 +10:00
Shamim Rezaie 0d23024ad0 MDL-80747 output: Inline labels in the single-select combobox widget 2024-08-23 01:29:49 +10:00
Shamim Rezaie c171c6ef6b MDL-80747 output: Support dividers in the single-select combobox widget 2024-08-23 01:29:49 +10:00
Jun Pataleta f831904480 Merge branch 'MDL-82843-main' of https://github.com/juliavs85/moodle 2024-08-22 23:05:40 +08:00
KarlReyesCatalyst 07b2224e9a MDL-79215 lib/graphlib: Fix unrelated coding style in graphlib_test.php 2024-08-22 10:30:18 -04:00
Sara Arjona 0ee8bb05bc Merge branch 'MDL-81662-main' of https://github.com/kevpercy/moodle 2024-08-22 16:27:43 +02:00
Sara Arjona ded557c62b Merge branch 'MDL-76889' of https://github.com/paulholden/moodle 2024-08-22 16:16:15 +02:00
KarlReyesCatalyst 10705ab716 MDL-79215 lib/graphlib: Typecasting round() function to INT. 2024-08-22 10:00:01 -04:00
Sara Arjona 62c2c6f385 MDL-82862 tool_lp: Update edit icon for learning plans
The edit icon in the learning plans page has been replaced from pen
to cog, for consistency with changes done in MDL-82211.
This patch also reduces the size for this icon.
2024-08-22 13:55:06 +02:00
Sara Arjona 2142377dda MDL-82863 tool_generator: Add missing BEHAT_TEST constant
The tool_generator now defines the BEHAT_TEST constant to ensure
that Behat generators are consistently utilized.
2024-08-22 13:23:07 +02:00
juliavs85 e01bf4142d MDL-82843 contentbank: Remove unused string 2024-08-22 10:28:17 +00:00
Mark Johnson bdae5f59c3 MDL-82545 gradereport_grader: Deprecate MAX_STUDENTS_PER_PAGE 2024-08-22 11:03:43 +01:00
Mark Johnson 075c08fc57 MDL-82545 gradereport_grader: Limit grades per page
This replaces the limit on the number of students per page with a number
of grades per page, to take into account the number of grade items on a
course.
2024-08-22 11:03:43 +01:00
Mark Johnson cc17317b62 MDL-72397 qbank_managecategories: Deprecate question_category_object
This also deprecates moodle_list and list_item, which were only being
used by qbank_managecategories, and the QUESTION_PAGE_LENGTH constant
which was defined in question_category_object.php but only used by
moodle_list.
2024-08-22 10:59:25 +01:00
Mark Johnson 2dad710f12 MDL-72397 qbank_managecategories: UI enhancement
This implementation will introduce a new user interface for
"qbank_managecategories" plugin which will allow user to drag and drop.
Having this plugin will give users the flexibility of reordering, adding
or editing
categories from the qbank_managecategories view.

Co-authored-by: Marc-Alexandre Ghaly <marc-alexandreghaly@catalyst-ca.net>
Co-authored-by: Luca Bösch <luca.boesch@bfh.ch>
2024-08-22 10:59:24 +01:00
Jun Pataleta c3d10c447b Merge branch 'MDL-82357-main' of https://github.com/laurentdavid/moodle 2024-08-22 17:47:37 +08:00
Mark Johnson 2419bd64de MDL-72397 mod_quiz: Replace call to qbank plugin
When qbank plugins were first introduced, the method to add a question
category was put inside qbank_managecategories. This created an invalid
call between the mod_quiz and qbank_managecategories plugins.

Now that this method has been moved to the core_question namespace, we
can update mod_quiz to call the method there instead.
2024-08-22 10:27:16 +01:00
Mark Johnson e3513f84a2 MDL-72397 qbank_managecategories: API reorganisation
This splits the API functions required for the reorganised category UI,
to properly separate the qbank_managecategories and core_question APIs.

This methods that were part of question_category_object that should live
in the core_question namespace (generate CRUD operations related to
categories) are moved to the new \core_question\category_manager class.
The parts that belong in the qbank_managecategories plugin as they are
used to display the editing UI are moved to the
\qbank_managecategories\question_categories class.

Static methods that were defined in \qbank_managecategories\helper and
were only used within methods that have been moved to one of the new
classes have been deprecated and moved to those new classes as well.

This will allow the entire
\qbank_managecategories\question_category_object class to be deprecated
in the following commit.
2024-08-22 10:27:16 +01:00
Jun Pataleta 3d8b7fb363 Merge branch 'MDL-81658_upgrade-tcpdf' of https://github.com/ziegenberg/moodle 2024-08-22 14:45:32 +08:00
Kevin Percy d91c0000ee MDL-81662 media_videojs: Upgrade ogv.js to 1.9.0 2024-08-22 14:40:39 +08:00
Kevin Percy 4f2b039ce1 MDL-81662 media_videojs: Upgrade VideoJS to 8.17.3 2024-08-22 14:40:39 +08:00
hieuvu 56f329366d MDL-82832 ddimageortext: center the dd item using js. 2024-08-22 12:23:10 +07:00
Shamim Rezaie 96410abbf9 Merge branch 'MDL-82857-main' of https://github.com/mihailges/moodle 2024-08-22 13:38:30 +10:00
Huong Nguyen 29bbead33a Merge branch 'MDL-79011-main' of https://github.com/andrewnicols/moodle 2024-08-22 10:30:12 +07:00
Shamiso.Jaravaza e80fe0c3a4 MDL-80225 mod_bigbluebuttonbn: Fix missing recordings 2024-08-21 21:04:49 -06:00
Andrew Nicols fc7945cbc3 MDL-79011 core: Convert after_config callback to hook 2024-08-22 10:52:25 +08:00
Huong Nguyen 032ce5bb45 Merge branch 'MDL-82498-main' of https://github.com/sarjona/moodle 2024-08-22 09:01:58 +07:00
Huong Nguyen 9978cbaabb Merge branch 'MDL-82495-main-cl' of https://github.com/ferranrecio/moodle 2024-08-22 08:47:09 +07:00
Huong Nguyen 20f0247098 Merge branch 'MDL-82841-main' of https://github.com/andelacruz/moodle 2024-08-22 08:43:14 +07:00
Mihail Geshoski eb228521dc MDL-82857 mod_assign: Deprecate mod_assign_grading_options_form class 2024-08-22 09:34:51 +08:00
Mihail Geshoski cab7c403fe MDL-82857 mod_assign: Revert removal of markerfilter form element
The markerfilter form element was removed too aggressively from the
mod_assign_grading_options_form class. To avoid potentially introducing
unwanted behavior-especially if any external code relies on this
form-the original structure should be preserved.
2024-08-22 09:34:51 +08:00
Mihail Geshoski 975712437f MDL-82857 mod_assign: Temporary assignment grading options form
Creates a temporary assignment grading options form class as a
replacement for mod_assign_grading_options_form, which will be
deprecated but must remain unchanged to avoid introducing any
unwanted behaviour in case an external code is currently using it.
This temporary form is intended for exclusive use on the assignment
submissions page during the gradual migration of form elements. It
will be removed from the core once the migration process is complete.
2024-08-22 09:34:51 +08:00
Daniel Ziegenberg 7c5199bdc9 MDL-71326 plagiarism: Final deprecation of plagiarism functions
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-21 23:25:25 +02:00
Sara Arjona b628db7abe Merge branch 'MDL-82742-main' of https://github.com/albertgasset/moodle 2024-08-21 16:43:44 +02:00
Sara Arjona 7b6d283a64 Merge branch 'MDL-82832-master' of https://github.com/NashTechOpenUniversity/moodle 2024-08-21 16:12:44 +02:00
Sara Arjona c1f92c7170 Merge branch 'MDL-82695' of https://github.com/andrewhancox/moodle 2024-08-21 16:07:41 +02:00
Sara Arjona 3f966333bd Merge branch 'MDL-82655-main' of https://github.com/andelacruz/moodle 2024-08-21 15:53:43 +02:00
Andrew Nicols 553480e044 MDL-82359 mod_forum: Move user posts links logic into module
The logic about adding links to view user posts in the forum module
was previously in core code, but there is an existing callback that
means this can be implemented entirely within the forum module.

Co-authored-by: sam marshall <s.marshall@open.ac.uk>
2024-08-21 13:47:20 +01:00
sam marshall cdd8cbb3b9 MDL-82359 Install: Allow install to succeed with missing default blocks 2024-08-21 13:47:20 +01:00
Andrew Hancox e96eb08214 MDL-82695 qtype_multianswer: Fix div by zero in compute_final_grade 2024-08-21 13:46:46 +01:00
Angelia Dela Cruz 27cbc47fbd MDL-82841 mod_workshop: Behat for submissions with set # of attachments 2024-08-21 18:56:09 +08:00
Huong Nguyen 508dd8c77e Merge branch 'MDL-82110-main' of https://github.com/andrewnicols/moodle 2024-08-21 17:43:11 +07:00
Huong Nguyen c6bdae8f76 Merge branch 'MDL-82212-main' of https://github.com/sarjona/moodle 2024-08-21 17:35:59 +07:00
Angelia Dela Cruz 4fbb20466c MDL-82655 mod_workshop: Behat test for manual and random allocation 2024-08-21 17:08:25 +08:00
Jun Pataleta 33d6ae05c5 Merge branch 'MDL-79680_upgrade-prismjs' of https://github.com/ziegenberg/moodle 2024-08-21 17:00:49 +08:00
Jun Pataleta 0909b814aa Merge branch 'MDL-79678_upgrade-otphp' of https://github.com/ziegenberg/moodle 2024-08-21 16:52:33 +08:00
Sara Arjona dbd0b66ade Merge branch 'MDL-72620' of https://github.com/paulholden/moodle 2024-08-21 10:44:22 +02:00
Sara Arjona 253383fc23 Merge branch 'MDL-82377-main' of https://github.com/ferranrecio/moodle 2024-08-21 10:17:08 +02:00
Laurent David aa18e063d7 MDL-82357 core_courseformat: A subsection cannot move onto itself
* Subsections are considered as section and need to be prevented to
be moved into itself so to avoid infinite recursive structures.
This prevent this from happenning at a lower level (state)
2024-08-21 09:46:52 +02:00
Sara Arjona c77a0dad13 MDL-82212 behat: Display error when deprecated icons are found
A check for deprecated icons has been integrated into Behat tests.
This check can be disabled by adding the --no-icon-deprecations flag
to the Behat initialization command.
2024-08-21 07:05:14 +02:00
Sara Arjona 9f63a03d93 MDL-82212 core: Add a mechanism to deprecate icons
A new method, get_deprecated_icons(), has been added to the icon_system class.
All deprecated icons should be registered through this method.
When $CFG->debugpageinfo is enabled, a console message will display a list of
the deprecated icons.
2024-08-21 07:05:13 +02:00
Sara Arjona 7a0db549b8 MDL-82498 pix: Update smiley icons
The emoticons have been updated to match those found in the emoji-data
third-party library.
2024-08-21 07:02:14 +02:00
Huong Nguyen 2e8c1d1bb3 Merge branch 'MDL-82175-cron-logs' of https://github.com/brendanheywood/moodle 2024-08-21 11:51:18 +07:00
hieuvu c25554b93c MDL-82832 ddimageortext: center the dd item using js. 2024-08-21 10:58:11 +07:00
Jun Pataleta 8e20564a18 Merge branch 'MDL-78785_main_toolbrickfield_rgbcolorcontrasts' of https://github.com/brickfield/moodle 2024-08-21 11:49:30 +08:00
James C 91c8d671ca MDL-82784 course: Don't try to change a non-existant add section button 2024-08-21 14:59:24 +12:00
Jake Dallimore 788c311681 Merge branch 'MDL-80639_upgrade-aws-sdk' of https://github.com/ziegenberg/moodle 2024-08-21 08:43:53 +08:00
Andrew Nicols 0ec18c2381 MDL-82787 behat: Correct stop of webdriver on failure 2024-08-21 08:43:04 +08:00
Sara Arjona e0a9cf2288 on-demand release 4.5dev+ 2024-08-20 20:16:21 +02:00
Sara Arjona 882c2532c1 NOBUG: Add upgrade notes 2024-08-20 20:16:21 +02:00
Sara Arjona 838dbd5736 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-08-20 20:16:08 +02:00
Justus Dieckmann 1d848a78cf MDL-82838 tool_mfa: Prevent accidental resubmission of token 2024-08-20 16:46:01 +02:00
Andrew Nicols aa298d575f MDL-82158 core_cache: Note API changes 2024-08-20 20:44:29 +08:00
Andrew Nicols c21aeeb380 MDL-82158 core: Update most uses of cache_ classes 2024-08-20 20:44:28 +08:00
Andrew Nicols b92008c92c MDL-82158 core_cache: Coding style fixes 2024-08-20 20:44:28 +08:00
Andrew Nicols 4e4a6c6580 MDL-82110 core: Remove debugging for unmigrated hooks in unit tests 2024-08-20 20:28:50 +08:00
Andrew Nicols 9fe7dedb9f MDL-82790 core: Remove filter_tidy 2024-08-20 20:22:55 +08:00
Jun Pataleta e82edab56a Merge branch 'MDL-77544-main-phpunit' of https://github.com/HuongNV13/moodle 2024-08-20 20:17:04 +08:00
Huong Nguyen 90613aae97 MDL-77544 enrol_database: Make sure the records are unique 2024-08-20 19:05:31 +07:00
Jun Pataleta e19837463b MDL-77544 enrol_database: Make sure column mapping config match case
Some databases may have case-sensitive collation that will cause the
generated SQL query in `\enrol_database_plugin::sync_courses()` to fail
when using values for the plugin settings `newcoursestartdate` and
`newcourseenddate` with a different case compared to the columns
in the actual external database table.

For the sake of testing sync with start and end dates, let's make sure
that the config values match the case of the enrol test table's columns
for the start and end dates.
2024-08-20 19:03:27 +07:00
vlad.kidanov c7b53a03e1 MDL-82492 gradereport_grader: Grader report HTML output optimization 2024-08-20 10:31:26 +01:00
Andrew Nicols bac9672b7f MDL-82158 core: Ensure that the class map contains cache classes 2024-08-20 15:49:10 +08:00
Andrew Nicols f31d9ebc8c MDL-82158 core: Remove uses of cache/lib.php 2024-08-20 15:47:14 +08:00
Andrew Nicols 24a9c64cb3 MDL-82158 core_cache: Move cache forms 2024-08-20 15:27:06 +08:00
Andrew Nicols cd6501c017 MDL-82158 core_cache: Moved disabled cache infrastructure 2024-08-20 15:27:06 +08:00
Andrew Nicols 7a9f55694f MDL-82158 core_cache: Move cache_config_writer 2024-08-20 15:27:05 +08:00
Andrew Nicols a63e81bfa5 MDL-82158 core_cache: Move cache definition 2024-08-20 15:27:05 +08:00
Andrew Nicols c5ff1b053f MDL-82158 core_cache: Move cache stores 2024-08-20 15:27:05 +08:00
Andrew Nicols 4038c52928 MDL-82158 core_cache: Move interfaces 2024-08-20 15:27:04 +08:00
Andrew Nicols 3d5bca08bf MDL-82828 core: Add test for html2text trailing space between tags 2024-08-20 15:04:02 +08:00
Andrew Nicols 32fce988e9 MDL-82828 core: Rewrite html2text tests 2024-08-20 14:54:39 +08:00
Jun Pataleta 6e3bb56ef6 Merge branch 'MDL-77544-main' of https://github.com/dmitriim/moodle 2024-08-20 12:04:23 +08:00
Andrew Nicols 082ed827b5 MDL-82828 core: Remove html2text overrides for missing mbstring 2024-08-20 11:14:29 +08:00
Andrew Nicols 4ef233d993 MDL-82828 core: Update Html2Text to version 4.3.2 2024-08-20 11:14:29 +08:00
Jake Dallimore 45faf93d87 Merge branch 'MDL-82778-main' of https://github.com/andrewnicols/moodle 2024-08-20 11:07:13 +08:00
Jun Pataleta 99f7cb0a8a Merge branch 'MDL-82532-main' of https://github.com/sammarshallou/moodle 2024-08-20 11:04:11 +08:00
Huong Nguyen c986f00ed8 Merge branch 'MDL-74939' of https://github.com/paulholden/moodle 2024-08-20 09:43:06 +07:00
Huong Nguyen dca18ebca3 Merge branch 'MDL-81634-main' of https://github.com/andrewnicols/moodle 2024-08-20 09:30:44 +07:00
Jake Dallimore 2bfd4c2950 Merge branch 'MDL-81130-main' of https://github.com/raortegar/moodle 2024-08-20 08:51:05 +08:00
sam marshall 9e9d3b5b81 MDL-82359 Install: Allow removal of modules from core analytics models 2024-08-19 16:00:13 +01:00
sam marshall 7aa0ccf4f3 MDL-82359 Install: Move lang strings for separate and connected
AMOS BEGIN
 MOV [postrating1,mod_forum],[separateandconnected1,core]
 MOV [postrating2,mod_forum],[separateandconnected2,core]
 MOV [postrating3,mod_forum],[separateandconnected3,core]
AMOS END
2024-08-19 16:00:13 +01:00
ferranrecio 010f411030 MDL-82377 core_course: delegated section user visible 2024-08-19 17:00:11 +02:00
Sara Arjona a0924f0e80 Merge branch 'MDL-82376-main' of https://github.com/laurentdavid/moodle 2024-08-19 16:52:07 +02:00
Sara Arjona 78530eca1c Merge branch 'MDL-82455' of https://github.com/paulholden/moodle 2024-08-19 16:45:51 +02:00
Amaia Anabitarte 2c59e87409 MDL-82495 report_outline: Add subsections to user reports 2024-08-19 16:42:28 +02:00
sam marshall 525b635cfc MDL-82532 Profile: Capability to allow/prevent view of profile images
Introduces a new capability moodle/user:viewprofilepics, granted by
default to 'user' and 'guest'. If the 'forcelogin' option or
'forceloginforprofileimage' option is enabled, then users must have
this capability in order to see profile pictures (except their own).
2024-08-19 15:42:16 +01:00
Brendan Heywood 340e8b120a MDL-82175 cron: Improved task view logs page 2024-08-19 23:30:25 +10:00
Sara Arjona 3629a87511 Merge branch 'MDL-82811' of https://github.com/paulholden/moodle 2024-08-19 12:15:59 +02:00
Sara Arjona 7e0bd1b12b Merge branch 'MDL-82619-main-cr' of https://github.com/ferranrecio/moodle 2024-08-19 12:08:19 +02:00
raortegar 56a1945b87 MDL-81130 core_admin: Update copy of alert to register site 2024-08-19 08:32:08 +02:00
Sara Arjona fbdc1ea1ad Merge branch 'MDL-81667' of https://github.com/paulholden/moodle 2024-08-19 07:50:02 +02:00
Jun Pataleta 83a031e39f Merge branch 'MDL-82478-main' of https://github.com/aanabit/moodle 2024-08-19 11:42:35 +08:00
Jun Pataleta b9fa17d0b5 Merge branch 'MDL-82295-main-test' of https://github.com/mihailges/moodle 2024-08-19 11:35:00 +08:00
Mihail Geshoski 897ec3b603 MDL-82816 mod_assign: Rename 'View Grader' action button to 'Grade'
Renames the 'View Grader' action button to 'Grade' and deprecates
the 'viewgrader' string which is no longer used.
2024-08-19 10:20:19 +08:00
Dmitrii Metelkin f6d2ff9cf5 MDL-77544 enrol_database: include start and end dates 2024-08-19 10:57:54 +10:00
AMOS bot a3b3e6c386 Automatically generated installer lang files 2024-08-19 00:07:49 +00:00
Karen Holland 7ca362c8dc MDL-78785 tool_brickfield: Processing rgb & rgba color contrasts
Including rgb(), rgba() processing for colour contrast checking.
  Including review requests :void and @covers for phpunit testing.
2024-08-16 17:34:44 +00:00
Daniel Ziegenberg 229b0dc6bf MDL-79678 tool_mfa: use DI and PSR-20: clock
As the OTPHP library now utilizes a PSR-20: clock we can make use of it.
Also the the parameter '' will become mandatory in 12.0.0. So we are
asked to set a valid PSR Clock implementation instead of 'null'.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-16 19:27:41 +02:00
Daniel Ziegenberg dc25c83a52 MDL-79678 tool_mfa: Adapt to OTPHP changes in v11
With the OTPHP upgrade from v10.x to v11.x, the behaviour of the window
feature changed substantially. With version 10, the window of timestamps
goes from `timestamp - window * period` to `timestamp + window *
period`. For example, if the window is 5, the period 30 and the
timestamp 1476822000, the OTP tested are within 1476821850 (`1476822000
- 5 * 30`) and 1476822150 (`1476822000 + 5 * 30`). In other words, this
validated the 5 OTP before and after the current timestamp. With version
11, the TOTP window acts as a time drift. If the window is 15, the
period 30, and the current timestamp is 147682209, the OTP tested are
within 147682194 (`147682209 - 15`), 147682209 and 147682224 (`147682209
+ 15`). The window shall be lower than the period. Therefore, this test
includes the previous OTP but not the next one.

This change required an adaption to align our implementation with OTPHP.
The window of valid TOTP tokens is now much narrower. This change in
functionality is a security improvement, but it also means that the time
on the device generating the TOTP token must be more accurate.  As OTPHP
restricts the window to be strictly lower than the period, our admin
setting now has a maximum allowed value of 29. To ensure we only have
valid window values, we need to update the admin setting to a value
lower than 30; therefore, we include an upgrade step.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-16 19:27:39 +02:00
Paul Holden 4f32fbffa2 MDL-82811 output: apply appropriate icon class in inplace editable. 2024-08-16 14:26:52 +01:00
Tim Hunt 8a662a008e MDL-82810 question bank: stop action menu from getting truncated 2024-08-16 13:34:06 +01:00
Amaia Anabitarte ca3c2c46e8 MDL-82619 core_course: Subsections in hidden sections should be hidden 2024-08-16 14:33:43 +02:00
Paul Holden 6c8631bb53 MDL-74188 notes: consistent formatting of text content.
Each method of adding notes, either via UI or external service (via
course participant actions), defined the format of the content
different from one another. Neither of those formats were correct.
2024-08-16 10:19:54 +01:00
Paul Holden 18be12c59d MDL-82547 javascript: remove legacy jQuery inplace editable events. 2024-08-16 10:15:22 +01:00
Paul Holden 3a4c0f32b2 MDL-82547 javascript: convert to native inplace editable events. 2024-08-16 10:15:22 +01:00
Paul Holden 968ae422c0 MDL-82220 group: check valid mapping when restoring custom fields. 2024-08-16 10:08:57 +01:00
Paul Holden 27b384e0fa MDL-82220 backup: ensure correct group/ing custom fields are included.
We should include only the custom field values that belong to those
groups and/or groupings that are being backed up.
2024-08-16 10:08:57 +01:00
Laurent David f3803d66b4 MDL-82376 course_format: Remove the move icon in course index
* Remove the move icon in the course index
* Make sure the mouse pointer change when able to drag and
drop an item
2024-08-16 10:20:58 +02:00
Laurent David d75652fd16 MDL-82376 course: Delegated sections items course index full width
* Delegated sections in the course index should take the full width to be
aligned with other sections
2024-08-16 09:39:42 +02:00
Ilya Tregubov 82694f5fee MDL-82295 mod_assign: Action menus for grade and status columns.
Edit column is removed from view all submissions page. Its merged
into grade and status columns.

Co-authored-by: Mihail Geshoski <mihail@moodle.com>
2024-08-16 11:57:17 +08:00
Mihail Geshoski afb51a72b2 MDL-82195 assign: Include submissions page link in secondary navigation
Integrates a submissions page link into the assignment's secondary
navigation, eliminates the redundant 'View all submissions' button
from the assignment's homepage and updates the existing behat tests.
2024-08-16 11:26:13 +08:00
Huong Nguyen 6cd55074c7 weekly release 4.5dev+ 2024-08-16 08:37:51 +07:00
Huong Nguyen e2708aeacf NOBUG: Add upgrade notes 2024-08-16 08:37:50 +07:00
Huong Nguyen e6ea778c03 NOBUG: Fixed SVG browser compatibility 2024-08-16 08:37:01 +07:00
Paul Holden de4e2a545a MDL-82455 badges: link report recipients count to appropriate page. 2024-08-15 21:40:33 +01:00
Daniel Ziegenberg 793385b256 MDL-79680 libraries: Upgrade PrismJS to 1.29.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-15 18:07:37 +02:00
Andrew Nicols d85201adcb MDL-82778 core: Update core/fetch module to use Class 2024-08-15 22:45:47 +08:00
Paul Holden d4a7aa1395 MDL-82006 reportbuilder: move filter Behat scenarios inside component. 2024-08-15 13:09:54 +01:00
Paul Holden 6ae3e8e2e5 MDL-82802 tool_xmldb: allow numeric characters in table names. 2024-08-15 11:51:31 +01:00
Paul Holden 5b4e858e80 MDL-74939 output: final removal of deprecated navigation namespace. 2024-08-15 11:14:18 +01:00
Paul Holden 8298abfbb1 MDL-76889 competency: add cohort data to competencies report source. 2024-08-15 11:11:40 +01:00
Paul Holden fd18c5014e MDL-76889 competency: implement datasource for custom reporting.
Create entity definitions for competencies, frameworks and users
for new report source to provide data for report editor.

AMOS BEGIN
 CPY [competencyframework,tool_lp],[competencyframework,core_competency]
 CPY [proficient,tool_lp],[proficient,core_competency]
 CPY [rating,tool_lp],[rating,core_competency]
 CPY [taxonomy_competency,core_competency],[competency,core_competency]
AMOS END
2024-08-15 11:11:39 +01:00
Paul Holden 6580ab2c1c MDL-82535 roles: implement archetype custom report/entity data.
Modernise entity imports and implementation.
2024-08-15 11:11:04 +01:00
Paul Holden 19f519f155 MDL-81667 libraries: upgrade to version 4.10.0 of axe-core. 2024-08-15 10:23:22 +01:00
Paul Holden 0de8a4c250 MDL-82301 mod_feedback: remove long ago abandoned tabs element usage.
Haven't been used since 773051b98f.
2024-08-15 09:51:15 +01:00
Huong Nguyen 28ac2ad785 Merge branch 'MDL-82724-main' of https://github.com/phmemmel/moodle 2024-08-15 10:59:19 +07:00
Jun Pataleta 2c191e8072 Merge branch 'MDL-82782-main' of https://github.com/andrewnicols/moodle 2024-08-15 11:52:02 +08:00
Huong Nguyen 8df76884f9 Merge branch 'MDL-82706-main-2' of https://github.com/junpataleta/moodle 2024-08-15 10:31:57 +07:00
Jun Pataleta 06d273672d Merge branch 'MDL-82798-main' of https://github.com/HuongNV13/moodle 2024-08-15 11:14:04 +08:00
Huong Nguyen 482ef20399 Merge branch 'MDL-81629-main' of https://github.com/NJahreis/moodle 2024-08-15 10:06:29 +07:00
Huong Nguyen 75505e33b7 Merge branch 'MDL-82758-main' of https://github.com/junpataleta/moodle 2024-08-15 09:37:33 +07:00
Huong Nguyen aeac21463a Merge branch 'MDL-82607' of https://github.com/timhunt/moodle 2024-08-15 09:32:08 +07:00
Huong Nguyen 847b2d6da1 MDL-82798 qtype_ddmarker: Fix Behat failure 2024-08-15 09:15:06 +07:00
Jun Pataleta 2c5f32d814 Merge branch 'MDL-82792-main' of https://github.com/sarjona/moodle 2024-08-15 10:14:57 +08:00
Daniel Ziegenberg 0de93b2b27 MDL-80641 libaries: Upgrade JMESPath to 2.7.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 22:03:22 +02:00
Jun Pataleta 5574092b2f Merge branch 'MDL-82668-main' of https://github.com/andrewnicols/moodle 2024-08-14 23:26:56 +08:00
Jun Pataleta 81060486ce Merge branch 'MDL-82686-main' of https://github.com/sarjona/moodle 2024-08-14 23:12:35 +08:00
Jun Pataleta 20dcede4b5 Merge branch 'MDL-82747-main' of https://github.com/andrewnicols/moodle 2024-08-14 23:05:06 +08:00
Andrew Nicols a2c3df2cb2 MDL-82480 core_course: Coding style fix 2024-08-14 22:39:50 +08:00
Andrew Nicols df01e2edc6 Merge branch 'MDL-82480-main' of https://github.com/ferranrecio/moodle 2024-08-14 22:31:16 +08:00
Andrew Nicols 08f8b58945 MDL-82747 core: Register composer autoload files
Unfortunately PHP does not provide any means to autoload the files that
a functions is located in, even if they are in an namespace.

To work around this, Composer makes use of an `autoload.files` section
in the `composer.json` file. Shortly after the Composer autoloader is
registered with the `spl_autoload_register` call it also includes any
files listed in this section.

Moodle does not do this and really we should be doing so.

This change adds a section to the autoloader registration method which
loads all of the files defined in any third-party library included in
our `lib` directory which contains any `composer.json` file with such a
stanza.
2024-08-14 21:57:20 +08:00
Daniel Ziegenberg 1a25317f42 MDL-79678 libraries: Remove unused dependency Assert
This commit removes the dependency Assert that once was required by
OTPHP, but is no longer needed as of version 11.2.0.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 15:53:44 +02:00
Daniel Ziegenberg 9762901cba MDL-79678 libraries: Update OTPHP to 11.3.0
Notable changes:
- The OTPHP library requires now at least PHP 8.1.
- The OTPHP library now relies on the MBString extension. This extension
  is now a required dependency.
- The OTPHP library now utilizes a PSR-20: clock.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 15:53:42 +02:00
Daniel Ziegenberg 6284ec8aac MDL-81658 libraries: upgrade to version 6.7.5 of TCPDF
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 15:51:10 +02:00
Andrew Nicols 149b548c91 MDL-82782 behat: Support runtime scaling of Behat windows 2024-08-14 21:48:15 +08:00
Amaia Anabitarte 6b34d4fd94 MDL-82480 core_course: Add Move option to subsections 2024-08-14 14:31:24 +02:00
Jun Pataleta 5b15521c90 Merge branch 'MDL-82385-main' of https://github.com/dpalou/moodle 2024-08-14 19:02:57 +08:00
Sara Arjona bd447a102d MDL-82792 h5p: Fix random behat failures
We've started seeing various failures in Firefox and Classic.
Increasing the default window size fixes them.
2024-08-14 12:09:10 +02:00
Dani Palou 4f2f985902 MDL-82385 subsection: Support subsection in app 4.4 and older 2024-08-14 11:42:01 +02:00
Dani Palou 2b2dcab6a5 MDL-82385 course: Wrap section name in span in core_course_get_contents 2024-08-14 11:42:01 +02:00
Dani Palou e12954e55c MDL-82385 subsection: Return delegated section ID in customdata 2024-08-14 11:29:24 +02:00
Dani Palou 883448dae4 MDL-82385 course: Return new section fields in core_course_get_contents 2024-08-14 11:29:24 +02:00
Andrew Nicols c0bb4e4957 MDL-82668 core: Move phpstorm meta to di.php 2024-08-14 16:32:23 +08:00
Sara Arjona a4a71a49ad MDL-82211 workshop: Fix icons size 2024-08-14 13:36:59 +07:00
Sara Arjona 5bba3fb57c MDL-82686 myoverview: Hide course overview block menu
On the My Courses page, the actions in the Course Overview block menu
can be ignored by users who have access to them, so the UX team
suggested hiding these actions
2024-08-13 16:14:51 +02:00
Sara Arjona 5182744131 Merge branch 'mdl-82214' of https://github.com/NeillM/moodle 2024-08-13 16:08:08 +02:00
Sara Arjona 4806f00921 Merge branch 'MOODLE_main_MDL-74590' of https://github.com/danielneis/moodle 2024-08-13 15:41:30 +02:00
Daniel Neis Araujo d42e31899c MDL-74590 contentbank: add custom fields to content bank 2024-08-13 08:55:44 -03:00
Sara Arjona 4eda519bcb Merge branch 'MDL-82502' of https://github.com/paulholden/moodle 2024-08-13 13:14:53 +02:00
Sara Arjona 8f2a665e26 Merge branch 'MDL-82687' of https://github.com/timhunt/moodle 2024-08-13 12:40:44 +02:00
Sara Arjona 3370f7e107 Merge branch 'MDL-82339' of https://github.com/KrisBax/moodle 2024-08-13 11:44:47 +02:00
Huong Nguyen 31e1fa1f1b Merge branch 'MDL-82211-main' of https://github.com/sarjona/moodle 2024-08-13 15:37:02 +07:00
Sara Arjona bddbd218e9 Merge branch 'MDL-81889-main' of https://github.com/ferranrecio/moodle 2024-08-13 09:49:37 +02:00
Sara Arjona ab0d18eb00 Merge branch 'MDL-75671-main' of https://github.com/roland04/moodle 2024-08-13 09:20:47 +02:00
Sara Arjona ee16e0a4a5 Merge branch 'MDL-81129-main' of https://github.com/meirzamoodle/moodle 2024-08-13 09:06:09 +02:00
Sara Arjona f485e3fd8d MDL-82211 componentlibrary: Update fontawesomeicons.json 2024-08-13 07:23:39 +02:00
Sara Arjona 08929e7a48 MDL-82211 qtype_ddmarker: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona 2382ea5c31 MDL-82211 mod_workshop: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona bac2860459 MDL-82211 mod_wiki: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona 1f721163f6 MDL-82211 mod_scorm: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona 35f70cb2fe MDL-82211 mod_quiz: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona 3ebfbd2f63 MDL-82211 mod_lesson: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona a7198ce440 MDL-82211 mod_glossary: Update SVG icons and remove unused ones 2024-08-13 07:22:43 +02:00
Sara Arjona 7a4d40ceca MDL-82211 mod_forum: Update SVG icons 2024-08-13 07:22:43 +02:00
Sara Arjona d413053822 MDL-82211 mod_feedback: Update SVG icons and remove unused ones 2024-08-13 07:22:42 +02:00
Sara Arjona ef570f064d MDL-82211 mod_data: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona 18894e55af MDL-82211 mod_choice: Update SVG icons and remove unused ones 2024-08-13 07:22:42 +02:00
Sara Arjona 90a27545d2 MDL-82211 mod_book: Update SVG icons and remove deprecated ones 2024-08-13 07:22:42 +02:00
Sara Arjona fcfdda602d MDL-82211 tool_recycle: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona d597e00506 MDL-82211 atto: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona 619e9704e0 MDL-82211 grading_guide: Update SVG icons
Apart from updating the SVG icons, the styles for some of the icons,
like the add criterion, have been also fixed.
2024-08-13 07:22:42 +02:00
Sara Arjona 7ede849137 MDL-82211 enrol_self: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona 626c3ef5ed MDL-82211 lti: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona d97ce0d08a MDL-82211 enrol_guest: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona 26605a6f53 MDL-82211 customfield: Update SVG icons 2024-08-13 07:22:42 +02:00
Sara Arjona 82d5187db6 MDL-82211 usertours: Update SVG icons
Apart from updating the SVG icons, the big icons have been added to
take advantage of the FA icons (and remove the old ones).
The icons.scss has been updated too, to display properly the big
icons.
2024-08-13 07:22:41 +02:00
Sara Arjona bf040d0cdf MDL-82211 brickfield: Update SVG icons 2024-08-13 07:22:41 +02:00
Sara Arjona 4d86717530 MDL-82211 tool_policy: Update SVG icons 2024-08-13 07:22:41 +02:00
Sara Arjona 1040efea57 MDL-82211 tool_lp: Update SVG icons 2024-08-13 07:22:41 +02:00
Ilya Tregubov add178887b Merge branch 'MDL-82346-main' of https://github.com/davewoloszyn/moodle 2024-08-13 11:55:14 +08:00
Ilya Tregubov fbbd99c21e Merge branch 'MDL-82497-main' of https://github.com/sarjona/moodle 2024-08-13 10:53:46 +08:00
Ilya Tregubov efaade00b5 Merge branch 'MDL-64675' of https://github.com/paulholden/moodle 2024-08-13 10:43:55 +08:00
ferranrecio a2ed8a036d MDL-81889 tool_generator: add examples to behat steps
The tool_generator creates a testing scenario that can execute
all steps from behat_data_generators (with some limitations),
change admin settings and delete courses and users to cleanup
the created entities. However, this list of valid steps will
change over time and it will be great if all available steps
are listed with examples.
2024-08-12 12:25:46 +02:00
Andrew Nicols be3482f339 MDL-82747 core: Provide a standard way to register the Autoloader 2024-08-12 13:49:37 +08:00
Daniil Fajnberg bb58a69e66 MDL-82668 core: Use a .phpstorm.meta.php directory instead of a file
Allow developers to add their own metadata overrides
2024-08-12 13:26:35 +08:00
Ilya Tregubov a75365f2e4 on-demand release 4.5dev+ 2024-08-10 14:56:17 +08:00
Ilya Tregubov 80e6149ed4 NOBUG: Add upgrade notes 2024-08-10 14:56:17 +08:00
Albert Gasset d9ea6bc804 MDL-82742 badges: Include recipient in web services that return badges 2024-08-09 15:24:56 +02:00
Jun Pataleta 9382e4963f MDL-82758 gha: Remove reference to the master branch 2024-08-09 16:12:58 +08:00
Mikel Martín 6a5cb2e2a2 MDL-75671 theme_boost: Refactor border direction classes for BS5
- Add SCSS code for border direction utility classes to the Boostrap 5 bridge SCSS file
- Replace all occurrences in the codebase (border-left > border-start, border-right-0 > border-end-0, ...)
2024-08-09 07:40:18 +02:00
Mikel Martín f179890ad5 MDL-75671 theme_boost: Refactor text direction classes for BS5
- Add SCSS code for text direction utility classes to the Boostrap 5 bridge SCSS file
- Replace all occurrences in the codebase (text-left > text-start, text-sm-right > text-sm-end, ...)
2024-08-09 07:40:17 +02:00
Mikel Martín 6baf2046d5 MDL-75671 theme_boost: Refactor float classes for BS5
- Add SCSS code for float  utility classes to the Boostrap 5 bridge SCSS file
- Replace all occurrences in the codebase (float-left > float-start, float-sm-right > float-sm-end, ...)
2024-08-09 07:40:17 +02:00
Mikel Martín 0a03018116 MDL-75671 theme_boost: Refactor spacing classes for BS5
- Add SCSS code for spacing utility classes to the Boostrap 5 bridge SCSS file
- Replace all occurrences in the codebase (pr-1 > pe-1, ml-auto > ms-auto, ml-sm-3 > ms-sm-3, ...)
2024-08-09 07:40:17 +02:00
Jun Pataleta 6d1816797c Merge branch 'MDL-82599-main-enfix' of https://github.com/mudrd8mz/moodle 2024-08-09 11:20:14 +08:00
Ilya Tregubov 0363e2ce4d weekly release 4.5dev 2024-08-09 09:34:13 +08:00
Ilya Tregubov c0acbd4284 NOBUG: Add upgrade notes 2024-08-09 09:34:13 +08:00
Sara Arjona 669d327354 Merge branch 'MDL-82393-behat' of https://github.com/HuongNV13/moodle 2024-08-08 21:01:47 +08:00
Huong Nguyen 13c309c7af Merge branch 'MDL-82393-integration-main' of https://github.com/mihailges/moodle 2024-08-08 21:01:46 +08:00
Huong Nguyen 75abd069c3 MDL-82393 mod_assign: Fix Behat failures 2024-08-08 21:01:46 +08:00
Huong Nguyen bef7f7e2f4 MDL-82745 filter_tex: Improve PHPUnit test 2024-08-08 21:01:46 +08:00
Mihail Geshoski 594750e157 MDL-82393 mod_assign: Remove the null default value from $course
Removes the default null value from the deprecated parameter $course,
which was introduced as part of its deprecation. Since PHP 8.0, it
is deprecated to declare functions where an optional parameter is
followed by a required parameter, as is the case here. Therefore,
the default value needs to be removed.
2024-08-08 21:01:45 +08:00
Mark Johnson ff31b37c78 MDL-81987 redis: Set connection and read timeouts to 10 seconds
This allows the site to continue operating in case of degraded
performance, rather than throwing exceptions.
2024-08-08 13:45:48 +01:00
Huong Nguyen 587f65f34f Merge branch 'MDL-82393-main-1' of https://github.com/mihailges/moodle 2024-08-08 12:04:38 +07:00
Huong Nguyen a3df578e08 Merge branch 'MDL-82508-main-1' of https://github.com/mihailges/moodle 2024-08-08 11:46:35 +07:00
Huong Nguyen 9b1d50a039 Merge branch 'MDL-63015' of https://github.com/paulholden/moodle 2024-08-08 11:43:51 +07:00
Michael Hawkins a74008207a MDL-82745 filter_tex: Improve filter deny list 2024-08-08 11:39:48 +07:00
Michael Hawkins 622ee09209 MDL-82576 qtype_calculated: Improve formula regexes 2024-08-08 11:11:02 +07:00
Ilya Tregubov c00e44c248 Merge branch 'MDL-82608' of https://github.com/paulholden/moodle 2024-08-08 11:09:06 +08:00
Ilya Tregubov fe2bfd6bbd Merge branch 'MDL-82605' of https://github.com/paulholden/moodle 2024-08-08 11:03:18 +08:00
Safat 73b20fec1c MDL-82395 tool_xmldb: Table layout update 2024-08-08 10:00:10 +07:00
Jun Pataleta ad4a45b219 Merge branch 'MDL-82560-main' of https://github.com/lameze/moodle 2024-08-08 10:45:23 +08:00
Jun Pataleta 8f3338195d Merge branch 'MDL-82585' of https://github.com/paulholden/moodle 2024-08-08 10:42:11 +08:00
Paul Holden f4d0fd92e8 MDL-79373 admin: ensure all current password configs are defined.
Ensure the admin preset export tool has an accurate record of each,
to be observed as sensitive settings when creating an export.
2024-08-08 09:21:50 +07:00
Angelia Dela Cruz 43356d891f MDL-82560 mod_forum: Test that students can only start one discussion 2024-08-08 10:20:56 +08:00
Andrew Nicols 68dacb79dc Merge branch 'MDL-80593-main-alt' of https://github.com/HuongNV13/moodle 2024-08-08 10:19:14 +08:00
Huong Nguyen a707c4f965 Merge branch 'MDL-82177' of https://github.com/timhunt/moodle 2024-08-08 09:10:42 +07:00
Huong Nguyen ad40c27bd9 Merge branch 'MDL-82592' of https://github.com/timhunt/moodle 2024-08-08 09:01:53 +07:00
Huong Nguyen 2102a9dd89 Merge branch 'MDL-82669' of https://github.com/paulholden/moodle 2024-08-08 08:58:17 +07:00
Jun Pataleta f41300bce0 Merge branch 'MDL-77784' of https://github.com/paulholden/moodle 2024-08-08 09:56:21 +08:00
Huong Nguyen 3119497793 Merge branch 'mdl-826620-main' of https://github.com/matthewhilton/moodle 2024-08-08 08:41:03 +07:00
Ilya Tregubov 47b707f631 Merge branch 'MDL-82209' of https://github.com/paulholden/moodle 2024-08-08 09:21:51 +08:00
Ilya Tregubov b6a0a658b5 Merge branch 'MDL-82525' of https://github.com/paulholden/moodle 2024-08-08 08:25:31 +08:00
Ilya Tregubov 86372ac828 Merge branch 'MDL-82208' of https://github.com/paulholden/moodle 2024-08-08 08:15:34 +08:00
Daniel Ziegenberg be2c9f57dd MDL-80639 libs: upgrade AWS SDK for PHP to 3.318.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-07 20:03:38 +02:00
Paul Holden fc4c0dba23 MDL-64675 mod_feedback: better detection of last page break element.
Inform user when a page break item cannot be added.
2024-08-07 16:57:28 +01:00
Kristiina.Bax 5404d89819 MDL-82339 admin: adjusted usertours form text boxes width 2024-08-07 10:51:47 +01:00
Mihail Geshoski b7481cf4aa MDL-82393 course: Deprecate the $course argument in group_selector
Deprecates the $course parameter in the constructor of the
core_course\output\actionbar\group_selector class. This parameter is no
longer used, as the $course object can now be obtained through the
$context class property. Additionaly, the $course class property has
been removed in accordance with this change.
2024-08-07 17:27:41 +08:00
Mihail Geshoski 02755c4f95 MDL-82393 course: Refactor the renderable class for the group selector
The group selector renderable class should extend the comboboxsearch
renderable class to eliminate the need for initializing the
comboboxsearch object within the export_for_template() method and to
prevent duplicating the get_template() method.
2024-08-07 17:27:41 +08:00
Mihail Geshoski 19786070c7 MDL-82393 mod_assign: The group selector follows the correct group mode
This change ensures that the group selector correctly appears on the
submission page, adhering to the assignment's group mode settings or
the enforced group mode set by the course.
2024-08-07 17:27:41 +08:00
Mihail Geshoski 4da5dbcb52 MDL-82393 course: The group selector component should be context-aware
The group selector component should be sensitive to the current context
to ensure accurate validation and retrieval of group settings
(e.g. group mode).
2024-08-07 17:27:41 +08:00
Jun Pataleta d55cbfca08 Merge branch 'MOODLE_main_MDL-82518' of https://github.com/danielneis/moodle 2024-08-07 17:12:14 +08:00
Jun Pataleta 91ba1edb99 Merge branch 'MDL-82425-master' of https://github.com/NguyenTuanAnh3/moodle 2024-08-07 16:22:26 +08:00
Paul Holden e618178326 MDL-82633 mod_quiz: filter user visible overrides in external methods. 2024-08-07 16:08:00 +08:00
Paul Holden b44452b0ac MDL-82633 mod_quiz: re-factor visibility check for overrides. 2024-08-07 16:07:59 +08:00
Ilya Tregubov d139880d12 Merge branch 'MDL-81830' of https://github.com/paulholden/moodle 2024-08-07 15:24:52 +08:00
Philipp Memmel 9eabb86233 MDL-82724 editor_tiny: Harden check for quicktoolbar and contextmenu 2024-08-07 09:15:33 +02:00
Paul Holden 0f334dd5f3 MDL-81394 restore: format backup file metadata details safely. 2024-08-07 14:04:01 +08:00
Ilya Tregubov 647b15d5ac MDL-79541 gradereport_user: Fix indentation in Behat. 2024-08-07 04:12:45 +00:00
Huong Nguyen 3c86ca2865 MDL-81718 core_grades: Fix Behat failures 2024-08-07 04:12:45 +00:00
raortegar 01fde971ad MDL-81718 core: Improve localstorage validation 2024-08-07 04:12:45 +00:00
Paul Holden c7d9026715 MDL-82558 h5p: escape template error/exception content. 2024-08-07 04:12:45 +00:00
Paul Holden 687f735387 MDL-82392 blocks: consistent cleaning of block instance names. 2024-08-07 04:12:45 +00:00
Paul Holden e1aa194b3d MDL-82261 mod_feedback: ensure only non-respondents can be messaged. 2024-08-07 04:12:45 +00:00
Paul Holden 19d2552caa MDL-82390 badges: correct context check when deleting badges. 2024-08-07 04:12:45 +00:00
lameze b24e08c18d MDL-79541 behat: use the right steps to assert user search content 2024-08-07 04:12:45 +00:00
meirzamoodle 7a6e504b02 MDL-82136 curl: Send credentials to redirect URL if allowed
Curl has the option CURLOPT_UNRESTRICTED_AUTH. If true, curl will send
the credentials to a different host. If false, they will not be sent.

CURLOPT_UNRESTRICTED_AUTH can only work if the CURLOPT_FOLLOWLOCATION
option is true. The filelib forces the CURLOPT_FOLLOWLOCATION option
to be false, because all redirects are emulated at the PHP level. So,
in this case, the CURLOPT_UNRESTRICTED_AUTH option is only being used
in our logic and will not work as you might expect it to.

This patch works almost the same as CURLOPT_UNRESTRICTED_AUTH in ideal
conditions. It will check whether the host is different. If so, the
system will check what value CURLOPT_UNRESTRICTED_AUTH has. If it is
not specified, then by default, it will be false. If false, then
credentials will not be sent.
2024-08-07 04:12:45 +00:00
Paul Holden a8157c10aa MDL-82262 mod_feedback: fix broken bulk message sesskey checks. 2024-08-07 04:12:45 +00:00
Paul Holden 7f4d8b04eb MDL-64984 mod_glossary: capability check when restoring global type. 2024-08-07 04:12:45 +00:00
David Woloszyn 9658ba6710 MDL-81951 communication_matrix: Fix suspended users ignored bug 2024-08-07 04:12:45 +00:00
David Woloszyn 90c1a7613c MDL-81951 communication_matrix: New trait for power levels
A more reliable way of obtaining room power levels is now used in the
new trait get_room_power_levels_v3. This makes
get_room_powerlevels_from_sync_v3 less needed, but not necessarily
redundant. The names of the containing methods have been adjusted to
make better sense of which trait they belong to.
2024-08-07 04:12:45 +00:00
Ilya Tregubov 77996428b5 MDL-79541 core_grades: Add missing user info to search services.
Seems just fullname is not enough. So added all name fields.
2024-08-07 04:12:45 +00:00
Ilya Tregubov f41f222dcd MDL-79541 core_grades: Hidden user fields check for search.
If some user profile fields are hidden on some grade reports
users without permission were able to see those.
2024-08-07 04:12:45 +00:00
Huong Nguyen 7cdec21075 Merge branch 'MDL-82643' of https://github.com/paulholden/moodle 2024-08-07 10:44:45 +07:00
Huong Nguyen 0e9b8c6c26 Merge branch 'MDL-82611' of https://github.com/paulholden/moodle 2024-08-07 10:24:48 +07:00
Huong Nguyen 4fc57b90c0 Merge branch 'MDL-82620-main' of https://github.com/ericmerrill/moodle 2024-08-07 10:20:18 +07:00
Huong Nguyen 16985f844e Merge branch 'MDL-79733-main' of https://github.com/davewoloszyn/moodle 2024-08-07 10:17:17 +07:00
Jun Pataleta 605b8959f0 Merge branch 'MDL-82606' of https://github.com/timhunt/moodle 2024-08-07 11:11:34 +08:00
Tim Hunt fc19af4ce5 MDL-82687 formslib: only allow positive durations by default 2024-08-06 13:53:56 +01:00
Tim Hunt db963dffe6 MDL-82606 filterlib: pass a row limit to recordset for performance
On Postgres, at least, get_recordset_sql performs signficantly worse
if you don't pass a limit. So, we add a limit to the query, but one
that in enormously too large, so it should never have an effect.
(And, there is code to check we never hit the limit, to avoid subtle bugs.)
2024-08-06 10:43:57 +01:00
Jun Pataleta 2b09ffb466 Merge branch 'MDL-82344-main' of https://github.com/snake/moodle 2024-08-06 17:26:36 +08:00
Jun Pataleta 318e82d7cb Merge branch 'MDL-79568' of https://github.com/paulholden/moodle 2024-08-06 17:20:35 +08:00
Amaia Anabitarte 4fac40c02f MDL-82478 core_coures: Add Delete option for subsection page 2024-08-06 10:55:48 +02:00
Neill Magill c224a6c65d MDL-82214 admin: Settings should not change when in read only mode
Before this change if some settings were:

* read only
* visible on a settings page
* are set or have values selected

when the settings page was saved the setting would be set tobe empty,
because the hidden input remained on the page, while the other inputs
where not posted to Moodle.
2024-08-06 09:52:53 +01:00
Jun Pataleta 6a8799937b NOBUG: Fix leftover trailing whitespace 2024-08-06 16:51:43 +08:00
Jun Pataleta dc223e7f16 MDL-81031 core: Fix whitespace errors raised by CI 2024-08-06 16:43:25 +08:00
Mihail Geshoski 73e40b23ed MDL-82508 mod_assign: Revamp the marking workflow filter
Revamps and relocates the existing marking workflow filter on the
assignment submissions page into a new 'extra filters' dropdown
component within the tertiary navigation area.
2024-08-06 16:03:22 +08:00
Jun Pataleta daed5e02a1 Merge branch 'MDL-82702-main' of https://github.com/andrewnicols/moodle 2024-08-06 16:01:09 +08:00
Shamim Rezaie 1504850f9f Merge branch 'MDL-81031-main' of https://github.com/andrewnicols/moodle 2024-08-06 16:01:09 +08:00
Andrew Nicols 2b9af8ca38 MDL-81031 mod_assign: Fix incorrect use of setUserPreference 2024-08-06 16:01:08 +08:00
Andrew Nicols 90b2057620 MDL-81031 core: Correct hinting for default exception handler 2024-08-06 16:01:08 +08:00
Andrew Nicols b3988ffa18 MDL-81031 core: Load standard libraries in router init 2024-08-06 16:01:08 +08:00
Andrew Nicols f64ce7b46e MDL-81031 core: Add JS client-side validation 2024-08-06 16:01:08 +08:00
Andrew Nicols 091ae55c20 MDL-81031 admin: Add swagger UI 2024-08-06 16:01:07 +08:00
Andrew Nicols fbca10b8f3 MDL-81031 core: Add core/fetch to query new WS layer 2024-08-06 16:01:07 +08:00
Andrew Nicols 614b3bf9b3 MDL-81031 core: Add some new WS 2024-08-06 16:01:07 +08:00
Andrew Nicols 1b7d08465c MDL-81031 core: Add routing 2024-08-06 16:01:07 +08:00
Andrew Nicols d3d5d8bc73 MDL-81031 core: Coding style fixes for \core\user 2024-08-06 16:01:07 +08:00
Andrew Nicols f943311753 MDL-81031 core: Rename \core_user to \core\user 2024-08-06 16:01:06 +08:00
Andrew Nicols 0c143ff7ce MDL-81031 core: Add Slim Framework 2024-08-06 16:01:06 +08:00
Andrew Nicols 712dc98c7e MDL-81031 core: Move phpspreadsheet to autoload properly 2024-08-06 16:01:06 +08:00
Andrew Nicols 3782af5a13 MDL-81031 core: Move psr\simple-cache 2024-08-06 16:01:06 +08:00
Andrew Nicols cb75bffafa MDL-81031 core: De-duplicate HTTP-* PSRs
PHPSpreadsheet was incorrectly importing these.
2024-08-06 16:01:06 +08:00
Andrew Nicols 9ca271e42d MDL-81031 core: Add PSR interfaces for PSRs 3, 7, 11, and 15 2024-08-06 16:01:05 +08:00
Andrew Nicols 2c6910cb77 MDL-81031 core: Use ::class for PSR namespacing 2024-08-06 16:00:43 +08:00
Jun Pataleta c188ebbf35 MDL-82706 filter: Declare renamed filter classes 2024-08-06 09:54:26 +08:00
Jun Pataleta aa969acaec MDL-82706 filter: Bring back filter.php in the filter plugins 2024-08-05 20:15:12 +08:00
Paul Holden d23ff93402 MDL-82446 files: pleasantly style the filepicker modal containers. 2024-08-05 08:40:29 +01:00
Paul Holden 9e2fdb7255 MDL-79568 javascript: remove lang parameter from legacy string calls. 2024-08-05 08:33:13 +01:00
Jun Pataleta fde872dd2e Merge branch 'MDL-82587-main' of https://github.com/cameron1729/moodle 2024-08-05 15:17:41 +08:00
Ilya Tregubov 555d183cbe Merge branch 'MDL-82171-muc-sited' of https://github.com/brendanheywood/moodle 2024-08-05 11:18:26 +08:00
Andrew Nicols 7e50e55a46 MDL-82702 filter_emailprotect: Fix broken unit test 2024-08-05 09:31:31 +08:00
Dan Marsden ceca66c6e9 MDL-82702 filter_empailprotect: remove calls to old functions. 2024-08-05 10:47:46 +12:00
Andrew Nicols e05ae09017 MDL-81634 core: Fix implicitly defined nullables in lib/google
The version of this library we use is well and truly deprecated. These
will not be fixed upstream so we must do so.
2024-08-04 23:20:19 +08:00
Shamim Rezaie 221d30fe56 Merge branch 'MDL-82384-main' of https://github.com/jwcatau/moodle 2024-08-03 23:55:44 +10:00
Daniel Neis Araujo 4b7f1cd22e MDL-82518 core_user: Fix regression introduced by MDL-80271 2024-08-02 14:46:22 -03:00
Paul Holden 492c6fbdbe Merge branch 'MDL-82688-main' of https://github.com/andrewnicols/moodle into main 2024-08-02 14:01:44 +01:00
David Mudrák 7af4e8816f MDL-82599 lang: Use the fixed strings in tests, too 2024-08-02 14:57:43 +02:00
Helen Foster c5b3abf9f5 MDL-82599 lang: Import fixed English strings (en_fix) 2024-08-02 14:57:43 +02:00
Andrew Nicols cecd4ecbf4 MDL-82688 filter_data: Handle courseid when no category
This is a regression from a refactor made as a part of 82427.
2024-08-02 20:39:36 +08:00
Paul Holden f470907821 MDL-82669 mod_assign: remove Atto reliance workaround for Behat.
See 8fe80e743c for context, and 802ff3e2e3 for additonal comments.
2024-08-02 10:33:25 +01:00
Paul Holden bad720a112 MDL-82669 editor: remove reliance on Atto editor in Behat scenarios. 2024-08-02 10:33:25 +01:00
Jun Pataleta 0586f1c204 MDL-82677 theme: Set a background colour for page heading
* Set a background colour for the .page-header-headings class.
* Assign the .page-header-headings class to the maintenance mode
template's page header div.
2024-08-02 17:24:03 +08:00
Paul Holden bf8f0c19a2 MDL-82502 courseformat: align module action capability checks.
The "Hide/Show/Duplicate" actions should be considered self-contained,
and not also require "manageactivities" capability (per existing docs)
in addition to the specific capability that controls the action itself.

Also ensure the "Duplicate" capability checks are in the course context.
2024-08-02 10:01:11 +01:00
Paul Holden 624029e1ea MDL-82608 mod_data: null content checks when editing fields. 2024-08-02 09:57:32 +01:00
Paul Holden 7814d3f935 MDL-82605 contentbank: pre-load contexts for options list.
Prevents additional DB reads per category/course, which can be
potentially expensive on large sites.
2024-08-02 09:49:29 +01:00
meirzamoodle 5d316201b4 MDL-81129 hub: Update the intro paragraph on the site registration page
I added a new javascript in admin to trigger a collapse element to be
expanded using the URL hash.
2024-08-02 14:10:51 +07:00
Andrew Nicols 024e36be17 MDL-81634 core: Fix all implicitly defined nullables
Note: This does not impact third-party libraries.
2024-08-02 14:11:12 +08:00
David Woloszyn f70500b4af MDL-79733 mod_assign: Fix test method names for clarity
With more methods being added to the notification_helper, some
adjustments to the existing notification_helper_test method names
were needed to differentiate them.
2024-08-02 16:09:19 +10:00
David Woloszyn 0c0ed63350 MDL-79733 mod_assign: Send overdue notifications 2024-08-02 16:09:19 +10:00
Ilya Tregubov 8a6e8563fd weekly release 4.5dev 2024-08-02 09:30:38 +08:00
Ilya Tregubov 1e1af341c0 NOBUG: Add upgrade notes 2024-08-02 09:30:38 +08:00
Ilya Tregubov 2fc7c79407 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-08-02 09:30:16 +08:00
Matthew Hilton c1463895d9 MDL-82662 login: load library with require_once 2024-08-02 10:53:18 +10:00
Cameron Ball 34785bcec8 MDL-82587 mod_quiz: Add slot version updated event 2024-08-01 23:25:45 +08:00
Paul Holden 8c76fceddc MDL-77784 quiz_grading: editor agnostic Behat scenario steps. 2024-08-01 14:17:07 +01:00
James Williams 1889d7c494 MDL-82384 core: Alter logic to only purge muc OR course caches. 2024-08-01 18:56:18 +10:00
Andrew Nicols 69e24ce9cf Merge branch 'MDL-82424-main' of https://github.com/sarjona/moodle 2024-08-01 12:02:11 +08:00
Jun Pataleta ecbdd8d268 Merge branch 'MDL-82427-main' of https://github.com/andrewnicols/moodle 2024-08-01 11:57:32 +08:00
Huong Nguyen 3ad448aec7 Merge branch 'MDL-82629' of https://github.com/paulholden/moodle 2024-08-01 10:56:46 +07:00
Huong Nguyen 610450c944 Merge branch 'MDL-80064-main' of https://github.com/meirzamoodle/moodle 2024-08-01 10:41:23 +07:00
Huong Nguyen 784fb45459 Merge branch 'MDL-82465-master' of https://github.com/danghieu1407/moodle 2024-08-01 10:35:17 +07:00
Huong Nguyen 02701bdfab Merge branch 'MDL-82598-main' of https://github.com/lameze/moodle 2024-08-01 10:26:38 +07:00
Huong Nguyen 2464802b55 MDL-80593 core: Make Modal to work with Debug Template Info mode 2024-08-01 10:17:36 +07:00
Huong Nguyen c81be53a7b Merge branch 'MDL-80017-master' of https://github.com/jleyva/moodle 2024-08-01 09:11:37 +07:00
Jun Pataleta 60c19ee53f Merge branch 'MDL-82447-master' of https://github.com/jleyva/moodle 2024-08-01 10:09:14 +08:00
Ilya Tregubov fdc0e6156a Merge branch 'MDL-81689' of https://github.com/rzhtwberlin/moodle 2024-08-01 09:59:52 +08:00
Jun Pataleta 70abac7f27 Merge branch 'MDL-82286-main' of https://github.com/daledavies/moodle 2024-08-01 09:47:27 +08:00
Jake Dallimore 24f59be234 MDL-82344 mod_lti: deprecated unused content select validation string 2024-08-01 08:54:13 +08:00
AMOS bot 7bdf678453 Automatically generated installer lang files 2024-08-01 00:07:37 +00:00
Sara Arjona 8bce79a585 Merge branch 'MDL-72876-main' of https://github.com/junpataleta/moodle 2024-07-31 17:15:11 +02:00
Sara Arjona 7cab6a5717 Merge branch 'MDL-82397-main' of https://github.com/lucaboesch/moodle 2024-07-31 16:59:20 +02:00
Sara Arjona db70ef1d1b Merge branch 'MDL-82596' of https://github.com/paulholden/moodle 2024-07-31 16:45:59 +02:00
Jun Pataleta 14c70d80ff Merge branch 'MDL-80858' of https://github.com/paulholden/moodle 2024-07-31 18:21:26 +08:00
Paul Holden 89dbe63dcf MDL-80858 customfield_number: new field type for numeric data.
Provide field type to allow for number type data to be stored and
presented within those components that already support custom fields.

This is especially useful for reporting purposes.
2024-07-31 11:19:32 +01:00
Dale Davies 70b84a0db1 MDL-82286 quiz_accessrule: Add SEB config test for floating point number
This tests several variations of SEB config files, to ensure Moodle
is able to parse them and generate a config key hash that matches
what SEB expects.

Additional values have been added to the unencrypted_win_233.seb
config file to cover the existence of floating point values,
ensuring they are serialized correctly. The config hash value
has been updated in real_ck_hash_provider to reflect the change.

Also added coverage information to the test case class docblock.
2024-07-31 11:12:09 +01:00
Jun Pataleta 63193afa83 Merge branch 'MDL-82187-single-button' of https://github.com/djarran/moodle 2024-07-31 17:21:49 +08:00
Paul Holden 07ce1ccc18 MDL-82208 block_starredcourses: avoid double encoding course name. 2024-07-31 08:47:17 +01:00
Shamim Rezaie 5aee595206 Merge branch 'MDL-78030-main-improvement' of https://github.com/meirzamoodle/moodle 2024-07-31 17:38:29 +10:00
Shamim Rezaie f108d1ee2b MDL-81859 mod_assign: Add a link to grader on the submissions page 2024-07-31 08:00:15 +02:00
Ilya Tregubov 965a892052 Merge branch 'MOODLE_main_MDL-76242' of https://github.com/danielneis/moodle 2024-07-31 12:58:22 +08:00
Ilya Tregubov ab4f1d1578 Merge branch 'MDL-80752-main' of https://github.com/rezaies/moodle 2024-07-31 10:59:42 +08:00
Huong Nguyen 7b4f8e4021 Merge branch 'MDL-82260-main' of https://github.com/ferranrecio/moodle 2024-07-31 09:37:01 +07:00
Huong Nguyen d11eaeefb9 Merge branch 'MDL-82259-main' of https://github.com/aanabit/moodle 2024-07-31 09:17:38 +07:00
Huong Nguyen 0c2d74b1af Merge branch 'MDL-64148-main' of https://github.com/meirzamoodle/moodle 2024-07-31 09:15:03 +07:00
Ilya Tregubov f14746511b Merge branch 'MDL-78776-expunge_myisam' of https://github.com/leonstr/moodle 2024-07-31 09:38:25 +08:00
AMOS bot 022367417e Automatically generated installer lang files 2024-07-31 00:07:35 +00:00
ferranrecio 5cd11ee33a MDL-82424 tool_generator: plugin handling on test scenarios 2024-07-30 18:12:37 +02:00
ferranrecio a3e810bf7e MDL-82424 behat: steps to handle plugins
This commit adds one new step to disable plugins, and also replaces the
regexp from the enable plugins method to make ti compatible with the
tool_generator create testing scenario.
2024-07-30 18:12:37 +02:00
meirzamoodle 699daafc64 MDL-64148 core: Make email greetings consistent
Some email body strings use first names as greetings,
some use full names, and some do not.

Using the first name for greeting makes it consistent and
a bit more "personal".
2024-07-30 22:40:47 +07:00
meirzamoodle b4f1704321 MDL-64148 oauth2: Make email greetings consistent
Some email body strings use first names as greetings,
some use full names, and some do not.

Using the first name for greeting makes it consistent and
a bit more "personal".
2024-07-30 22:40:47 +07:00
meirzamoodle 020259dbad MDL-64148 core: Deprecate reset_password_and_mail 2024-07-30 22:40:47 +07:00
Paul Holden 3cf196df6f MDL-82643 enrol_self: clarify validation of notification threshold. 2024-07-30 15:46:44 +01:00
Nikolai Jahreis 2cd381b27b MDL-81629 user: Set replyto and replytoname variables in contactform 2024-07-30 13:09:21 +00:00
Jun Pataleta 63bb543fd7 MDL-72876 theme_classic: Enclose welcome message in Bootstrap card 2024-07-30 19:37:47 +08:00
Sara Arjona 793fe8ac40 MDL-82497 theme: Update icons for consistency
Some places where using the wrong icon and now that they have changed,
they need to be updated. For instance:
- i/settings (cog) should be used for settings or configure.
- t/edit (pen) should be used for editing
2024-07-30 12:55:09 +02:00
Sara Arjona fd67691345 MDL-82497 output: Update icon map to take advantage of FA6 2024-07-30 12:37:32 +02:00
Sara Arjona adb65915da MDL-82497 pix: Update SVG icons to align them with FA6 2024-07-30 12:32:56 +02:00
Tim Hunt 3e88ef17bf MDL-82177 file upload: default to path '/'when things go wrong
This 'fix' is basically a work-around, but one that is already used in
some places. Now it is used in all similar places.

Exactly what causes the current file path in a file manager to become
unset is still unclear to me, but it seems to be an obscure race
condition that is very hard to reproduce.

However, when it happens, currently we are effectively defaulting to
path '/undefined/'. Using '/' is never worse, and is infinitely better
in the case where the filepicker does not allow folders to be used
(which includes important cases like essay questions in a quiz, which
some people use for exams!). In that case, falling back to non-top-level
path leads to dataloss.

Also, this is all historic JavaScript which will get replaced in the
grand de-YUI-fication, so I think a pragmatic fix is justified here.
2024-07-30 09:22:05 +01:00
David Woloszyn 7501a54372 MDL-82346 hub: Add organisation type to registration form 2024-07-30 11:06:46 +10:00
Paul Holden 088cb7ad8f MDL-63015 mod_feedback: preview feedback questions in read-only. 2024-07-29 17:35:39 +01:00
Tim Hunt 69e1c3ca7a MDL-82607 filters: configfilternavigationwithsystemcontext on by default 2024-07-29 11:12:13 +01:00
meirzamoodle 2bd774d432 MDL-80064 authentication: password can be null
The Open ID Connect plugin uses null for the password,
which makes the internal password update fail to proceed.
Allowing null resolved the problem.

As a note, there is a potential issue if the authentication method has
a false return for the prevent_local_password because it will trigger
the hash_internal_user_password() where  the $password can not be null.
Since this only addresses the oauth2 issue, we should ignore it.
2024-07-29 15:49:47 +07:00
Paul Holden 0834280726 MDL-82525 user: correct course parameter for course profile page. 2024-07-29 09:21:57 +01:00
Paul Holden ff9ba32030 MDL-81830 calendar: handle clearing of group type course element. 2024-07-29 09:20:44 +01:00
Paul Holden dcf73527cb MDL-82209 calendar: consistent event action icon hovering.
* Apply hover on the icons, rather than the outer container;
* Make hover colour and text decoration appropriate for the icon
2024-07-29 09:19:03 +01:00
Paul Holden 31163d5e02 MDL-82629 output: switch to named message/contact mapped icons. 2024-07-29 09:05:28 +01:00
meirzamoodle 63d5d45ac7 MDL-78030 tool_customlang: Implementing the count window function 2024-07-29 13:58:38 +07:00
meirzamoodle 9354b80a52 MDL-78030 user: Implementing the count window function 2024-07-29 13:58:38 +07:00
meirzamoodle 42664ee49a MDL-78030 dml: get total count records using the window function
The COUNT window function can be helpful to fasten the complex query,
but it's not recommended to be used for a single table query.

The patch is specifically for PostgreSQL, MariaDB and Oracle databases as they have better performance
compared to MySQL and MSSQL. Although these databases support the COUNT window functions,
the results indicate that the query runs slower when using them.
2024-07-29 13:53:46 +07:00
Ilya Tregubov aa4790b119 Merge branch 'MDL-60957-main' of https://github.com/djarran/moodle 2024-07-29 13:41:30 +08:00
djarrancotleanu f6fb07be52 MDL-60957 mod_assign: Add calendar event for extension due dates 2024-07-29 15:32:52 +10:00
Jake Dallimore 777d00ef37 MDL-82344 mod_lti: relax content selection validation in instance form
This was added in MDL-78916 in 4.3 but makes configuring a generic
launch to the default tool URL impossible, since a content item must be
selected. This fix:
- Makes this element optional again, which allows teachers to choose
whether a given instance launches into selected content, or launches
the default tool URL.
- Changes the style to btn-secondary, given it's now optional again
2024-07-29 13:04:50 +08:00
Andrew Nicols 8168d192bd Merge branch 'MDL-82250-main' of https://github.com/lameze/moodle 2024-07-29 11:47:42 +08:00
Ilya Tregubov 602400bd18 Merge branch 'MDL-80345-main' of https://github.com/MartinGauk/moodle 2024-07-29 11:32:57 +08:00
Paul Holden 554ca6cc50 MDL-82596 behat: switch manual private files upload to generator. 2024-07-28 19:06:13 +01:00
Paul Holden dc03f9d4c9 MDL-82611 mod_assign: capability check before exporting grade link. 2024-07-26 21:19:55 +01:00
Eric Merrill 57393beec9 MDL-82620 completion: Make enrol duration comp happen at the right time 2024-07-26 14:11:21 -04:00
Paul Holden 794115abdf MDL-82596 behat: tidy up existing usage of private files generator.
Filename is no longer required (since 83db25c330), given it never
did anything so can be removed. Requiring the "Private files" block
also isn't necessary since original switch to generator methods.
2024-07-26 18:32:27 +01:00
Luca Bösch eca8a9fe59 MDL-82397 block_recentlyaccesseditems: Assure space between items. 2024-07-26 18:23:51 +02:00
ferranrecio 9065e509da MDL-82260 core_courseformat: sync subsections access restrictions 2024-07-26 16:56:58 +02:00
Amaia Anabitarte 19ab9cc6ec MDL-82259 course: Propagate visibility from and to delegated section 2024-07-26 14:45:55 +02:00
Tim Hunt 49e09cdbfe MDL-82592 quiz grades: 'setup for sections' handling of descriptions 2024-07-26 11:44:10 +01:00
ferranrecio 72b154e33f MDL-82260 course: add hidden course field to edit section form
A course id hidden field is needed to edit availability conditions
directly from behat. This fields is not relevant to normal execution but
it is not harmfull as section update will ignore it.
2024-07-26 11:16:38 +02:00
ferranrecio c87e52f577 MDL-82260 course: add behat section settings page url 2024-07-26 11:16:38 +02:00
Johannes Burk 3ba36a9082 MDL-81689 tests: Check task DB record for nextruntime 2024-07-26 10:30:40 +02:00
Johannes Burk ae65a413a0 MDL-81689 tasks: add unit test to check for the bug 2024-07-26 10:30:40 +02:00
Amaia Anabitarte d4a887987a MDL-82259 behat: Improve section behat steps to allow section name 2024-07-26 10:02:47 +02:00
Jun Pataleta 1a33da6637 weekly release 4.5dev 2024-07-26 13:35:25 +08:00
Jun Pataleta 902f9535b6 NOBUG: Add upgrade notes 2024-07-26 13:35:25 +08:00
Jun Pataleta 12269ab968 NOBUG: Fixed SVG browser compatibility 2024-07-26 13:35:06 +08:00
Jun Pataleta bab445cc13 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-07-26 13:35:04 +08:00
Jun Pataleta 9a4fc8e15e Merge branch 'MDL-82373-main' of https://github.com/andrewnicols/moodle 2024-07-26 13:20:53 +08:00
Andrew Nicols 19ef6afe3e MDL-82373 core_message: Make message drawer router behat-aware
The drawer router was modifying the DOM in a variety of ways and hiding
content, without any pendingJS checks. As a result, there were cases
where a part of the UI was not visible, but had been rendered and was in
the DOM.

This change wraps the router Go method in a pendingJS call that only
resolves when the router transition completes.

Additionally the lazy load manager had a similar issue.
2024-07-26 12:43:46 +08:00
Hieu Nguyen Dang 876082b34c MDL-82465 qtype_ddmarker: Mathjax support highlight dropzone 2024-07-26 09:54:30 +07:00
Simey Lameze fe50534740 MDL-82598 behat: improve example submission test 2024-07-25 19:31:38 +08:00
Juan Leyva c9c8e2870c MDL-82447 mod_bigbluebuttonbn: Remove mobile support via plugin 2024-07-25 12:22:13 +02:00
Huong Nguyen 3d30c4abd6 Merge branch 'MDL-81766-main-clr02' of https://github.com/ferranrecio/moodle 2024-07-25 11:08:54 +07:00
Huong Nguyen 2b724556ee Merge branch 'MDL-80669' of https://github.com/paulholden/moodle 2024-07-25 11:01:56 +07:00
Huong Nguyen 8af49acc2d Merge branch 'MDL-82527' of https://github.com/paulholden/moodle 2024-07-25 10:48:24 +07:00
Huong Nguyen 4b57396c7b Merge branch 'MDL-82530-spelling' of https://github.com/leonstr/moodle 2024-07-25 10:41:22 +07:00
Huong Nguyen ef4d83bebb Merge branch 'MDL-82328' of https://github.com/paulholden/moodle 2024-07-25 10:35:45 +07:00
Jun Pataleta cd7f94612c Merge branch 'MDL-82373-main' of https://github.com/andrewnicols/moodle 2024-07-25 11:31:53 +08:00
Huong Nguyen c8d1f90c0e Merge branch 'MDL-58287' of https://github.com/paulholden/moodle 2024-07-25 10:29:23 +07:00
Jun Pataleta a6499ea6cd Merge branch 'MDL-77706-main' of https://github.com/andrewnicols/moodle 2024-07-25 11:02:52 +08:00
Huong Nguyen 0079197827 Merge branch 'MDL-73232-main' of https://github.com/laurentdavid/moodle 2024-07-25 09:20:14 +07:00
Huong Nguyen 9111372fb7 Merge branch 'MDL-82553-main' of https://github.com/junpataleta/moodle 2024-07-25 09:17:07 +07:00
Huong Nguyen 5a581f1304 Merge branch 'MDL-82225' of https://github.com/paulholden/moodle 2024-07-25 09:10:45 +07:00
Shamim Rezaie 0cda31bdd4 Merge branch 'MDL-82540-main' of https://github.com/junpataleta/moodle 2024-07-25 12:07:02 +10:00
Huong Nguyen 854296c210 Merge branch 'MDL-81888-main-v02' of https://github.com/ferranrecio/moodle 2024-07-25 08:58:19 +07:00
Shamim Rezaie 60634d1aae Merge branch 'MDL-82551-main' of https://github.com/junpataleta/moodle 2024-07-25 11:52:30 +10:00
Huong Nguyen 3edbf5627c Merge branch 'MDL-82554-main' of https://github.com/micaherne/moodle 2024-07-25 08:49:45 +07:00
Huong Nguyen 099c2f9ef3 Merge branch 'MDL-82451-main' of https://github.com/aanabit/moodle 2024-07-25 08:43:36 +07:00
Huong Nguyen e756da0774 Merge branch 'MDL-82422-main' of https://github.com/andelacruz/moodle 2024-07-25 08:36:27 +07:00
David Woloszyn 12b43ec6c4 MDL-82347 hub: Registration collects plugin usage data 2024-07-25 11:32:25 +10:00
AMOS bot 4e2a85414b Automatically generated installer lang files 2024-07-25 00:08:11 +00:00
Paul Holden 22c8d85752 MDL-82585 mod_feedback: remove long since unused redirection scripts. 2024-07-24 16:11:27 +01:00
Juan Leyva 57650852e5 MDL-80017 core_grades: Fix return type for itemname 2024-07-24 16:15:57 +02:00
Paul Holden 9ff0b21e38 MDL-73976 course: final removal of deprecated request button method. 2024-07-24 11:41:18 +01:00
Amaia Anabitarte ccd90b2d7c MDL-82451 course: Switch hide/show icons for section action menu 2024-07-24 12:07:59 +02:00
Jun Pataleta e0240b1d6b Merge branch 'MDL-81803' of https://github.com/paulholden/moodle 2024-07-24 16:57:56 +08:00
Jun Pataleta 6d80637532 Merge branch 'MDL-82289' of https://github.com/paulholden/moodle 2024-07-24 15:05:43 +08:00
Angelia Dela Cruz 3a41d1a588 MDL-82422 mod_workshop: Behat for how strict assessment comparison is 2024-07-24 13:19:08 +08:00
Huong Nguyen 83a18b6f58 Merge branch 'MDL-82466' of https://github.com/paulholden/moodle 2024-07-24 12:10:28 +07:00
Huong Nguyen 86968a64a5 Merge branch 'MDL-72424' of https://github.com/paulholden/moodle 2024-07-24 12:06:54 +07:00
Huong Nguyen eb14ffa0b6 Merge branch 'MDL-82146-main' of https://github.com/aanabit/moodle 2024-07-24 12:04:23 +07:00
Huong Nguyen f8654b55c6 Merge branch 'MDL-82528' of https://github.com/paulholden/moodle 2024-07-24 11:59:48 +07:00
Huong Nguyen ef80d0d099 Merge branch 'MDL-70854-main' of https://github.com/junpataleta/moodle 2024-07-24 10:49:56 +07:00
Jun Pataleta 6c82a2e9d2 MDL-70854 core: Rewrite logic for determining whether to update progress
Rewriting, especially to prevent empty if-blocks.
2024-07-24 10:48:00 +08:00
Jun Pataleta 467fa44233 MDL-70854 core: Revert removal of conditions to update progress
The conditions for updating the progress in the progress bar were
mistakenly removed. We need to revert these to ensure proper operation
of the progress bar.
2024-07-24 10:48:00 +08:00
Mikel Martín 63b46b415f MDL-81766 mod_subsection: Update behat tests
Update the existing behat tests and add new ones with the new
modification that renders the subsection in the course page.
2024-07-23 16:33:00 +02:00
Mikel Martín 1b8ec78421 MDL-81766 mod_subsection: Display subsection content in activity card
- Replace the standard activity card display with the delegated section
  rendering.
- Add and fix related SCSS styles.
2024-07-23 16:33:00 +02:00
Mikel Martín cc84ae5809 MDL-81766 mod_subsection: Add 'get_delegated_section_info' to manager
Add a new 'get_delegated_section_info' to the manager class so it can be reused.
2024-07-23 16:33:00 +02:00
Mikel Martín 195812b34b MDL-81766 courseformat: Add delegatedsection renderable
Create a new 'delegatedsection' renderable extending the 'section' one
with its own template.
2024-07-23 16:32:59 +02:00
ferranrecio a908c0f8af MDL-81766 core_course: fix modchooser section number 2024-07-23 16:32:59 +02:00
Mikel Martín eb4c43b387 MDL-81766 courseformat: Fix section page actionmmenu update 2024-07-23 16:32:59 +02:00
Jun Pataleta bc5a65e444 Merge branch 'MDL-70854-main' of https://github.com/junpataleta/moodle 2024-07-23 17:59:30 +08:00
Jun Pataleta 42aca7aaf7 MDL-70854 core: Simplify querying of unconfirmed users
- Use $DB->count_records_select() and $DB->get_recordset_select()
instead of using full SQL queries.
- Other fixes:
  - Remove unused variable in progress_bar::update_raw()
  - poll_stored_progress tidy-ups:
    - Use validated parameter.
    - Add return types for the external methods.
2024-07-23 17:58:53 +08:00
Conn Warwicker b92886ad59 MDL-70854 core: Add stored progress bars.
- Alters existing progress_bar class to support extension
    - Adds stored_progress_bar class as child of progress_bar
    - Adds webservice to poll stored progress
    - Updates database tables
    - Bumps version
    - Adds unit/behat tests
2024-07-23 17:58:53 +08:00
Michael Aherne 35cfdf4927 MDL-82554 question: Allow null createdby in question_has_capability_on. 2024-07-23 10:24:35 +01:00
Simey Lameze 753c247bad MDL-82250 core: add web installer test workflow 2024-07-23 13:32:13 +08:00
Andrew Nicols f5f883ef04 MDL-82427 core_filters: Deprecate filter.php 2024-07-23 11:33:46 +08:00
Andrew Nicols 8d284e3ce0 MDL-82427 core_filters: Coding style tidyup 2024-07-23 11:33:45 +08:00
Andrew Nicols 01f7456a96 MDL-82427 core_filters: Final deprecation of text_filtering_hash 2024-07-23 11:33:45 +08:00
Andrew Nicols 29e7140e30 MDL-82427 filter_*: Move text filters to autoloaded location
Note: No backwards-compatability layer is included for manual inclusion
of filter.php as this is not a public API.  Inclusion should have always
been through the filter manager, and the filter's own unit tests.
2024-07-23 11:33:42 +08:00
Andrew Nicols 534c3e1821 MDL-82427 core_filters: Support autoloading of filters 2024-07-23 11:33:03 +08:00
Andrew Nicols fe3b13d51a MDL-82427 core_filters: Update name of external service class 2024-07-23 11:33:03 +08:00
Andrew Nicols 16456220cd MDL-82427 core: Update namespace of core_filters classes 2024-07-23 11:33:03 +08:00
Andrew Nicols ae2f69a898 MDL-82427 core_filters: Move filter classes to autoloading 2024-07-23 11:32:09 +08:00
Jun Pataleta 4cdd0459b4 Merge branch 'MDL-77167_remove-deprecation-layer-for-mdl-70990-yui-events' of https://github.com/ziegenberg/moodle 2024-07-23 10:36:57 +08:00
Shamim Rezaie eb2b5875ef MDL-80752 mod_assign: Move action menu to the action bar on grading page
Also, move the "Download all submissions" button into the action menu.
2024-07-23 00:12:45 +10:00
Paul Holden aca7b96e9e Merge branch 'MDL-82529' of https://github.com/dravek/moodle into main 2024-07-22 12:36:40 +01:00
Mikel Martín 2a01a188a1 MDL-81766 courseformat: Fix hide addsection in delegated sections
Delegated sections should not render the add new section button at
the bottom of them.
2024-07-22 13:34:45 +02:00
Mikel Martín c51989d649 MDL-81766 courseformat: Fix bulk actions for delegated sections
Disable bulk editing for delegated sections and fix some styles related to it.
2024-07-22 13:34:45 +02:00
Mikel Martín b18db24552 MDL-81766 courseformat: Fix delegated section headers display
Section specific page was not prepared to display another sections in
it. Fixed some of its logic to handle other section's headers inside.
2024-07-22 13:34:45 +02:00
Mikel Martín d77b20b65f MDL-81766 courseformat: Fix last activity dropzone
When using drag and drop with activities and subsection combination, the dropzone
of the last element was incorrectly calculated. Fixed the 'getLastCm()' function.
2024-07-22 13:34:45 +02:00
Mikel Martín 572d45c885 MDL-81766 course: Fix activity name inplace editor selector
Fix name inplace editor for course modules by updating the selector
to a more specific one.
2024-07-22 13:34:45 +02:00
Paul Holden 08f6023657 Merge branch 'MDL-82512' of https://github.com/dravek/moodle into main 2024-07-22 12:31:21 +01:00
Jun Pataleta 0b9660a43f MDL-82553 behat: Run accessibility tests using WCAG 2.2 success criteria 2024-07-22 14:36:10 +08:00
Jun Pataleta dc12e44bd4 MDL-82551 core: Set welcome message heading to level 1 2024-07-22 14:20:37 +08:00
Laurent David 4fe100f161 MDL-73232 core_courseformat: Inform user when reaching section max
* Disable the Add new Section button when max has been reached
* It also grays out the (+) button between sections and display a tooltip
* When adding a new section via the (+) button between section
should add a section with the (+) (add) button disabled.
2024-07-22 07:58:54 +02:00
Huong Nguyen 7222619857 Merge branch 'MDL-82476-main' of https://github.com/sarjona/moodle 2024-07-22 10:43:54 +07:00
Huong Nguyen 6559850be1 Merge branch 'MDL-82481' of https://github.com/paulholden/moodle 2024-07-22 10:40:18 +07:00
Huong Nguyen b8831f566b Merge branch 'MDL-82193-main' of https://github.com/ericmerrill/moodle 2024-07-22 09:39:15 +07:00
Ilya Tregubov be60012bf9 Merge branch 'MDL-82499-main' of https://github.com/micaherne/moodle 2024-07-22 09:42:20 +08:00
Ilya Tregubov 41e56064e8 Merge branch 'MDL-70983-main' of https://github.com/sarjona/moodle 2024-07-22 09:36:24 +08:00
Ilya Tregubov 9d6c63136e Merge branch 'MDL-72354-main' of https://github.com/sarjona/moodle 2024-07-22 09:34:28 +08:00
djarrancotleanu 183af158b7 MDL-82187 core: Add default type for single button in template 2024-07-22 07:04:09 +10:00
AMOS bot 828e9bd87e Automatically generated installer lang files 2024-07-21 00:07:45 +00:00
Daniel Ziegenberg c3df4078e8 MDL-77167 javascript: Remove deprecation layer for YUI Events
The deprecation layer was introduced with MDL-70990.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-07-19 17:51:45 +02:00
Daniel Neis Araujo 92e10322d4 MDL-76242 core_contentbank: Hide/show unlisted content 2024-07-19 12:29:45 -03:00
David Carrillo 730c5413ce MDL-82512 files: Add Author filter to files Report Builder entity 2024-07-19 17:09:58 +02:00
Paul Holden 26c42bf02d MDL-58287 courseformat: ensure all format plugins are returned. 2024-07-19 15:21:19 +01:00
David Carrillo 78153dd73a MDL-82529 cohort: Add custom field filters to Cohorts system report 2024-07-19 15:22:31 +02:00
David Carrillo 5c135b614d MDL-82529 reportbuilder: Move functions from datasource to base class
- Methods add_columns_from_entity(), add_filters_from_entity() and
report_element_search() have been moved from
\core_reportbuilder\datasource class to \core_reportbuilder\base class
in order to be available also for system reports
2024-07-19 15:22:31 +02:00
Paul Holden c99c9c1b5a MDL-82528 courseformat: switch to existing group action icon.
Use a version that already exists in our fontawesome mapping so it
can be consistently styled/overridden.
2024-07-19 12:54:13 +01:00
Sara Arjona 807563a893 Merge branch 'MDL-82510-main' of https://github.com/aanabit/moodle 2024-07-19 13:04:02 +02:00
Sara Arjona fc59fe647b Merge branch 'MDL-81119-forced-config' of https://github.com/bwalkerl/moodle 2024-07-19 12:37:07 +02:00
Paul Holden 1796c95b55 MDL-72424 mod_feedback: deprecate old role switching check method.
It doesn't appear to have ever worked. Any conditional code based
on the result of calling this method has also been removed.
2024-07-19 11:18:35 +01:00
Paul Holden 892b68d58c MDL-80669 reportbuilder: improved reporting of custom/profile fields.
Make the display of both custom and user profile fields consistent in
column callbacks. The defaults for each should be considered when both
rendering the column data and also when aggregating them (specifically
for numeric columns to ensure calculations are accurate).

When such fields are filtered, and they have user defined default
values then we should also take that into account to ensure that the
same values rendered in columns can always be filtered for.

During this change, I've updated some of the variables to improve
readability and future maintainability of these classes. Annoyingly
there are a non-zero number of changes just for Oracle support.
2024-07-19 10:48:12 +01:00
Paul Holden c10610d035 MDL-82466 completion: format time duration in report entity columns.
Where the previous output was simple count of days, switch to using
the new format helper to return a time duration.

AMOS BEGIN
 CPY [daystakingcourse,core_course],[daystakingcourse,core_completion]
AMOS END
2024-07-19 10:34:00 +01:00
Paul Holden 8426610258 MDL-82466 reportbuilder: new format helper for formatting time. 2024-07-19 10:33:57 +01:00
Sara Arjona b2f66d477b MDL-70983 badges: Remove OBv1.0 support
The only backpack implementing OBv1.0 was Mozilla Backpack. It closed
in 2019 and their badges were moved to https://backpack.openbadges.org/
by Badgr.
However, as Badgr is supporting OBv2.0 too, it makes no sense keep OBv1.0
implementation in Moodle: it has caused some issues and over-complicates
current code.
2024-07-19 10:39:38 +02:00
Jun Pataleta 9a8cc133d5 MDL-82540 core: Use an empty check for $CFG->debugdisplay 2024-07-19 16:24:49 +08:00
Sara Arjona 1a74342bf4 MDL-72354 badges: Fix behat tests 2024-07-19 09:41:38 +02:00
Huynh 879901ef24 MDL-72354 badges: Show always issuer details when creating badges
Co-author: Huynh Nguyen
2024-07-19 09:41:38 +02:00
Sara Arjona 088cba3844 MDL-82476 theme: Remove non-SVG icons
Most of the PNG/JPG/GIF icons in the pix folder are redundant if an SVG
file is available, so they have been removed to simplify maintenance.

This commit removes all redundant icons from the pix/ folder. Additional
redundant icons in the icons/ folder will be addressed separately while
reviewing the FontAwesome icons and their SVG versions.
2024-07-19 09:39:38 +02:00
Nguyen Tuan Anh 60367220fa MDL-82425 Admin: Remove tooltips when click toggle 2024-07-19 13:43:05 +07:00
Amaia Anabitarte 8596d3cd7c MDL-82146 report_log: Add subsections to activity filter 2024-07-19 08:38:12 +02:00
Amaia Anabitarte ec050bbee7 MDL-82146 core_output: Add disabled parameter to select element 2024-07-19 08:38:12 +02:00
Amaia Anabitarte ff6edc2e9f MDL-82510 course: Add new delegated action menu 2024-07-19 08:27:10 +02:00
Benjamin Walker 476cf5a282 MDL-81119 tool_recyclebin: Stop overriding unrelated forced config 2024-07-19 14:37:19 +10:00
Ilya Tregubov 554a790bf0 weekly release 4.5dev 2024-07-19 09:30:19 +08:00
Ilya Tregubov fdfdd02639 NOBUG: Add upgrade notes 2024-07-19 09:30:19 +08:00
Leon Stringer 617013e13c MDL-82530 core: Fix spelling 2024-07-18 14:49:48 +01:00
Paul Holden e8410c844e MDL-82481 customfield_select: return field options pre-formatted. 2024-07-18 14:03:16 +01:00
Paul Holden c2d73d6e53 MDL-82481 reportbuilder: re-use existing method for field options. 2024-07-18 14:03:16 +01:00
Paul Holden 83db25c330 MDL-82527 h5p: improve editor Behat scenarios for embedding content.
* Move the shared drag fixture out of the Atto plugin;
* Switch to using faster generators for populating private files;
* Clarify required fields for private files generator
2024-07-18 09:15:51 +01:00
Huong Nguyen 7d5a31992a Merge branch 'MDL-82287-main-fix' of https://github.com/lameze/moodle 2024-07-18 13:04:27 +07:00
lameze d04a05b98f MDL-82287 phpunit: use the correct component 2024-07-18 13:53:17 +08:00
Jun Pataleta cb8208ca77 Merge branch 'MDL-82505-main' of https://github.com/HuongNV13/moodle 2024-07-18 12:51:06 +08:00
Jun Pataleta 5b68ba9eee Merge branch 'MDL-75864-main' of https://github.com/meirzamoodle/moodle 2024-07-18 12:48:03 +08:00
Huong Nguyen c124b23784 MDL-82505 calendar: more precise matching of calendar day partial
The partial name selector points to the parent element,
but the Javascript code monitors the child element.
We need to make it consistent
2024-07-18 11:38:13 +07:00
Andrew Nicols 13bf6748f7 Merge branch 'MDL-82309' of https://github.com/paulholden/moodle 2024-07-18 11:58:06 +08:00
Andrew Nicols ac308a0cdf Merge branch 'MDL-26675-main' of https://github.com/meirzamoodle/moodle 2024-07-18 11:44:42 +08:00
Ilya Tregubov acbcb83a7c Merge branch 'MDL-82445-main' of https://github.com/andrewnicols/moodle 2024-07-18 11:37:15 +08:00
Andrew Nicols d96e7816d1 Merge branch 'MDL-81932-main' of https://github.com/safatshahin/moodle 2024-07-18 11:29:33 +08:00
Huong Nguyen 920dbc2242 Merge branch 'MDL-82192-main' of https://github.com/ericmerrill/moodle 2024-07-18 10:27:02 +07:00
Andrew Nicols 306394772f Merge branch 'MDL-81272-main' of https://github.com/HuongNV13/moodle 2024-07-18 11:06:57 +08:00
Huong Nguyen e7d1febac6 MDL-81699 Course: Add upgrade note 2024-07-18 10:03:28 +07:00
Andrew Nicols 6570855cf6 MDL-82445 filter_tidy: Coding style fixes 2024-07-18 11:00:42 +08:00
Andrew Nicols 7bb9d60dee MDL-82445 filter_tidy: Ensure locale does not change when using Tidy 2024-07-18 11:00:42 +08:00
Andrew Nicols 89c5e94fee MDL-82445 core: Create locale helper utility 2024-07-18 11:00:42 +08:00
Huong Nguyen 388fb71f51 Merge branch 'MDL-81699-main' of https://github.com/durenadev/moodle 2024-07-18 09:57:18 +07:00
Huong Nguyen db5b60424b Merge branch 'MDL-82287-main' of https://github.com/andrewnicols/moodle 2024-07-18 09:47:01 +07:00
Ilya Tregubov aa594cce71 Merge branch 'MDL-82090' of https://github.com/paulholden/moodle 2024-07-18 10:39:32 +08:00
Ilya Tregubov 00376925b2 Merge branch 'MDL-82444' of https://github.com/paulholden/moodle 2024-07-18 10:29:08 +08:00
Huong Nguyen f4b332a67e Merge branch 'MDL-82467' of https://github.com/paulholden/moodle 2024-07-18 09:19:33 +07:00
Paul Holden 76f67eb269 MDL-72620 repository_onedrive: final removal of skydrive importing. 2024-07-17 17:52:12 +01:00
Jun Pataleta cf2073134a Merge branch 'MDL-82066' of https://github.com/paulholden/moodle 2024-07-18 00:03:02 +08:00
Sara Arjona fef180bc98 Merge branch 'MDL-82463' of https://github.com/paulholden/moodle 2024-07-17 17:11:19 +02:00
Sara Arjona 40518e1539 Merge branch 'MDL-82353-main' of https://github.com/andelacruz/moodle 2024-07-17 17:07:47 +02:00
Sara Arjona a7383405a8 Merge branch 'MDL-81683-main' of https://github.com/laurentdavid/moodle 2024-07-17 17:03:17 +02:00
Paul Holden 0cf6f3a620 MDL-82499 question: test for invalid question in capability check. 2024-07-17 09:58:35 +01:00
Laurent David 45c157d0f9 MDL-81683 core_courseformat: Adjust Move Activity Modal style
* Use the same style as the course index for the tree/list items
* Fix indentation
2024-07-17 09:32:05 +02:00
Laurent David 7f7d4a97d8 MDL-81683 core_courseformat: Add subsection to the move activity modal
* Add subsection in the tree hierarchy
* Split the mustache templates to avoid repetitive code
2024-07-17 09:32:05 +02:00
Huong Nguyen b964baf06e Merge branch 'MDL-75025_final-deprecation-of-base_controller-set_copy' of https://github.com/ziegenberg/moodle 2024-07-17 14:20:50 +07:00
Ilya Tregubov 4ac3f6f8c7 MDL-80744 mod_assign: Fix Behat tests. 2024-07-17 12:16:29 +07:00
Jun Pataleta f96778f74d Merge branch 'MDL-81075-main' of https://github.com/cameron1729/moodle 2024-07-17 12:44:29 +08:00
Meirza b3e8993353 MDL-26675 block_rss_client: Add a new feed in the RSS block form
The patch added a couple of things:
- Add a new feed in the RSS block form
- Make the image responsive to the parent container
- Each feed now includes a channel link
2024-07-17 11:24:28 +07:00
Ilya Tregubov 079f6b00ec Merge branch 'MDL-82002-main' of https://github.com/durenadev/moodle 2024-07-17 11:04:32 +08:00
Andrew Nicols 0b364eda7b MDL-82373 contentbank: Pause in Behat before interacting with h5p
It seems that the loading of the h5p content upsets other interactions
with the page in Firefox as it loads. Unfortunately I haven't found a
reliable way to handle this with pendingJS yet.

This is the poor man's fix and we should find a better solution.
2024-07-17 09:28:35 +08:00
Andrew Nicols 9251a72e53 MDL-82373 question: Make window larger in behat tests
I would suggest that this is a stop gap to solve some failing tests. We
really need to look at whether we can improve the usability of this
interface on smaller displays as a longer-term fix.
2024-07-17 09:28:35 +08:00
Andrew Nicols 1f0d1e60a0 MDL-82373 core_grades: Address random failures when editing gradebook 2024-07-17 09:28:35 +08:00
Andrew Nicols 78ccdc9939 MDL-82373 behat: Wait for alerts before accepting/dismissing them 2024-07-17 09:28:35 +08:00
Andrew Nicols 8bba968f7b MDL-82373 core: Make CollapsibleRegion more tolerant to behat 2024-07-17 09:28:34 +08:00
Andrew Nicols c3cd90750b MDL-82373 tool_usertours: Ensure that behat waits for tours to show/hide 2024-07-17 09:28:34 +08:00
Andrew Nicols 4033f08fa9 MDL-82373 behat: Stop killing the entire Behat run on driver error
If there's a driver error, for example from a step taking too long, then
this kills the entire Behat run and we have to start from scratch.

This change instead throws away the original connection and starts a new
one to try and continue the test.
2024-07-17 09:28:34 +08:00
Andrew Nicols 57cabed4bb MDL-82373 behat: Stop calling ensure_node_is_visible before click
W3C WebDriver Element::Click, Element::Clear, and Element::SendKeys all
state that the WebDriver implementation (chromedriver, geckodriver,
edgedriver) should scroll the element into view if it is not already
visible.

It is wrong for us to check if the element is visible or not before
calling these as it may not be but will during the click/clear/type
event.
2024-07-17 09:28:34 +08:00
Andrew Nicols 5fb6e4cba1 MDL-82373 mod_lesson: Fix failing behat tests for Selenium 4
Recent versions of Chrome do not re-render the page but return previous
page state from cache. The page state had the Submit button disabled
before navigating away.

Refreshing the page addresses this.
2024-07-17 09:28:33 +08:00
Andrew Nicols 38a1bc022c MDL-77706 atto_link: Work around Mozilla bug 1906559
This upstream bug prevents creation of an anchor with a hyperlink where
the content has a block-like display.

The workaround is to wrap the content in a span, set the display to
inline, call the `createLink` command on the span, move the content out
of the span, and then remove it.

This is only done for Firefox-based browsers.
2024-07-17 09:28:33 +08:00
Glenn Poder 2afdd8d220 MDL-81075 quiz: config option for defaults when creating questions 2024-07-16 23:26:51 +08:00
Michael Aherne 5605d64389 MDL-82499 question: Fail if questionid does not exist. 2024-07-16 14:39:02 +01:00
Dale Davies 6fb557f1be MDL-82286 core: Set serialize_precision to current PHP default 2024-07-16 10:02:18 +01:00
Angelia Dela Cruz 9525db3f7d MDL-82353 gradingform: Behat to verify marking guide can be set to draft 2024-07-16 16:29:28 +08:00
Andrew Nicols e16ff43cfd MDL-77706 atto_link: Work around Mozilla bug 1906559
This upstream bug prevents creation of an anchor with a hyperlink where
the content has a block-like display.

The workaround is to wrap the content in a span, set the display to
inline, call the `createLink` command on the span, move the content out
of the span, and then remove it.

This is only done for Firefox-based browsers.
2024-07-16 15:37:24 +08:00
Sara Arjona 404ddae657 Merge branch 'MDL-81533-master' of https://github.com/danghieu1407/moodle 2024-07-16 09:23:08 +02:00
Sara Arjona 14f46e2f41 Merge branch 'MDL-81819-main' of https://github.com/roland04/moodle 2024-07-16 07:45:22 +02:00
Ilya Tregubov 7f63a6af7a Merge branch 'MDL-78293-master' of https://github.com/jleyva/moodle 2024-07-16 11:47:22 +08:00
Huong Nguyen ffefd6130f MDL-67554 tool_oauth2: Added upgrade note 2024-07-16 09:40:41 +07:00
Huong Nguyen dd882716e4 Merge branch 'MDL-67554-master' of https://github.com/michael-milette/moodle 2024-07-16 09:36:27 +07:00
Huong Nguyen 7c6fcaaff5 Merge branch 'MDL-80744-main-1' of https://github.com/ilyatregubov/moodle 2024-07-16 09:15:57 +07:00
Ilya Tregubov caa72b3595 Merge branch 'MDL-82282' of https://github.com/paulholden/moodle 2024-07-16 09:26:01 +08:00
Ilya Tregubov 7b5d49bf45 Merge branch 'MDL-82319-main' of https://github.com/laurentdavid/moodle 2024-07-16 09:21:28 +08:00
Ilya Tregubov 52abd112a9 Merge branch 'MDL-73662' of https://github.com/paulholden/moodle 2024-07-16 09:15:21 +08:00
Paul Holden e60876ecef MDL-82467 completion: simplify field SQL for completion columns.
For columns whose values can be represented purely in SQL, we don't
need to/shouldn't select extra data because it confuses the column
output during aggregation for numeric/boolean columns.
2024-07-15 13:19:25 +01:00
Paul Holden a3c386af93 MDL-82463 reportbuilder: change non-numeric entity column types.
Where columns were previously of type `TYPE_INTEGER` or `TYPE_FLOAT`
but did not provide numeric data on output, we should change their
type to `TYPE_TEXT` (i.e. the default) to ensure that future work on
numeric aggregation doesn't affect them.
2024-07-15 10:42:01 +01:00
Huong Nguyen 6c5d01b512 Merge branch 'MDL-82210-main' of https://github.com/sarjona/moodle 2024-07-15 15:54:35 +07:00
Mihail Geshoski 48866d4746 MDL-80744 core_grades: Deprecate comboboxsearch behat step definitions
The comboboxsearch component now has uses beyond the grade subcomponent
and includes alternative step definitions in behat_general.php. This
change deprecates the redundant behat step definitions related to this
component in behat_grade.php and replaces current usages with the
alternative definitions.
2024-07-15 16:36:48 +08:00
Ilya Tregubov de54a993d3 MDL-80744 mod_assign: Add user search. 2024-07-15 16:36:47 +08:00
Ilya Tregubov 8087893fcb MDL-80744 core_grades: Fix grade reports. 2024-07-15 16:36:45 +08:00
Mihail Geshoski 63e341d4d5 MDL-80744 behat: Create steps for the search combo box component 2024-07-15 16:36:45 +08:00
Ilya Tregubov 0e8c086653 MDL-80744 core_course: user selector renderer for actionbar in course 2024-07-15 16:36:43 +08:00
Hieu Nguyen Dang adea726a9d MDL-81533 Admin: Availability restriction info default change 2024-07-15 14:09:15 +07:00
Andrew Nicols 9b95650f18 MDL-66903 core: Check PHPUNIT_TEST defined before using 2024-07-15 13:46:09 +07:00
Huong Nguyen fb22b112c4 Merge branch 'MDL-66903-main' of https://github.com/andrewnicols/moodle 2024-07-15 13:21:46 +07:00
Andrew Nicols 0270c90dc0 MDL-66903 core: Introduce \core\component::resetto replace hacks
Traditionally we have done this using reflection and it would be better
to do this in a 'proper' fashion in case we ever need to change how it
works.
2024-07-15 13:07:42 +08:00
Andrew Nicols aa55779ba0 MDL-66903 testing: Helper to load fixture files 2024-07-15 13:07:42 +08:00
Andrew Nicols 25df1ed645 MDL-66903 core: Move core_component to \core\component 2024-07-15 13:07:42 +08:00
Andrew Nicols 406dcd2566 MDL-66903 testing: Add support for a \tests\ namespace during tests
This commit:
- introduces a \tests\ sub-namespace for use in unit tests only
- the path to this the tests/classes directory of the owning parent
- files here are excluded from unit test runs

This is agreed per policy in MDL-80855.
2024-07-15 13:07:36 +08:00
Laurent David c115b6d699 MDL-82319 core_courseformat: Remove redundant lock icon in section 2024-07-15 06:32:44 +02:00
Andrew Nicols 3c03e9448c MDL-66903 testing: Fix whitespace 2024-07-15 12:23:05 +08:00
Huong Nguyen 04f8f11d35 MDL-81272 calendar: Improve permission check for separate group mode 2024-07-15 09:29:08 +07:00
Andrew Nicols 2c8acd3462 MDL-66903 testing: Reset CFG and component after test
This change moves the reset of global test state to the finally section
rather than doing it only if the test passes.

Previously if a test which modifies the `core_component` internals
failed, it would not reset the internal state and impact subsequent
tests.
2024-07-15 10:14:49 +08:00
Eric Merrill c72de81827 MDL-82193 scorm: Don't store header with multiline AICC content 2024-07-12 15:32:48 -04:00
Paul Holden 9b624edba9 MDL-82444 core: skip environment test on optional plugin extensions. 2024-07-12 13:49:10 +01:00
Paul Holden 0844f9c88a MDL-82444 filter_tidy: advertise required PHP extension. 2024-07-12 13:34:00 +01:00
Paul Holden 7d030bba77 MDL-73662 mod_quiz: fix initialization arguments to close button.
Co-authored-by: Sergio Rabellino <rabellino@di.unito.it>
2024-07-12 13:18:07 +01:00
Mikel Martín 8d54a86bdb MDL-81819 theme_boost: Refactor .close usages for BS5
- Add .btn-close to the Boostratp 5 bridge SCSS file
- Replace .close occurrences with .btn-close
- Fix styles using .close
2024-07-12 14:17:10 +02:00
Paul Holden 4a58219cd0 MDL-81803 tool_dataprivacy: observe disabled expiration time.
A non-positive integer value should indicate "No time limit".
2024-07-12 11:04:53 +01:00
Paul Holden 07f30058b9 MDL-82225 enrol_cohort: Behat scenario updates for cohort deletion. 2024-07-12 10:58:00 +01:00
Paul Holden 28ffd21d44 MDL-82225 cohort: convert single cohort deletion to JS & AJAX. 2024-07-12 10:58:00 +01:00
Daniel Ureña 5089744789 MDL-81699 Course: core_course_get_courses_by_field add param sectionid 2024-07-12 11:29:26 +02:00
Daniel Ureña 6534248184 MDL-82002 Media: Video embedding from the app is styled properly. 2024-07-12 11:10:42 +02:00
Sara Arjona 774ea7ca29 MDL-82210 output: Add support to FontAwesome families
The solid family was chosen by default when Font Awesome was upgraded
from 4 to 6, but FA6 has more families, like regular or brands.
This commit adds only the fa class to the icon when no other family
class is used.
2024-07-12 10:59:00 +02:00
ferranrecio 5617445d42 MDL-81888 tool_generator: add cleanup scenario tag
The tool_generator creates a testing scenario that can
execute all steps from behat_data_generators (with some
limitations) and admin settings. With the patch the scenario file can
incorporate a cleanup steps to be executed when the manual test is done.
2024-07-12 10:32:54 +02:00
Huong Nguyen fd487cd3f2 weekly release 4.5dev 2024-07-12 08:41:58 +07:00
Huong Nguyen abcac5bc8f NOBUG: Add upgrade notes 2024-07-12 08:41:57 +07:00
Huong Nguyen eaca2203a0 NOBUG: Fixed SVG browser compatibility 2024-07-12 08:41:05 +07:00
Juan Leyva 2a2130e9d7 MDL-78293 core_user: New Web Services to manage private files 2024-07-11 11:54:35 +02:00
Sara Arjona e3431a56ac Merge branch 'MDL-80489-main-patch' of https://github.com/HuongNV13/moodle 2024-07-11 10:22:25 +02:00
Huong Nguyen a0394ce78f MDL-80489 qtype_ddtos: Update Behat to match language string 2024-07-11 15:15:34 +07:00
Huong Nguyen e28937ccbc MDL-80489 qtype_ddtos: Update language string 2024-07-11 11:16:44 +07:00
Huong Nguyen 28f62b717a Merge branch 'MDL-82245' of https://github.com/paulholden/moodle 2024-07-11 11:13:50 +07:00
Jun Pataleta a91fc78a90 Merge branch 'MDL-81265-main' of https://github.com/junpataleta/moodle 2024-07-11 12:08:58 +08:00
Andrew Nicols 7d693d70c9 Merge branch 'MDL-78936-main' of https://github.com/HuongNV13/moodle 2024-07-11 11:52:52 +08:00
Jun Pataleta edafd17fc4 MDL-81265 mod_workshop: Verify "Setup phase" heading with "should exist" 2024-07-11 11:49:20 +08:00
Andrew Nicols 5efe90187d Merge branch 'MDL-82431' of https://github.com/paulholden/moodle 2024-07-11 11:46:04 +08:00
Jun Pataleta 5597a4eb33 Merge branch 'MDL-82168-main' of https://github.com/junpataleta/moodle 2024-07-11 11:21:21 +08:00
Sara Arjona e559a3c325 MDL-82168 badges: Fix and improve behat tests 2024-07-11 11:19:34 +08:00
Sara Arjona 8c006300e5 MDL-82168 badges: Move enable/disable badges to modal
Co-authored-by: Ferran Recio <ferran@moodle.com>
2024-07-11 11:19:34 +08:00
Sara Arjona 814753e558 MDL-82168 badges: Add WS to enable/disable badges 2024-07-11 11:19:34 +08:00
Huong Nguyen 2845d8cbde Merge branch 'MDL-79717' of https://github.com/paulholden/moodle 2024-07-11 09:34:52 +07:00
Huong Nguyen 0ef2fa73ae Merge branch 'MDL-80489-master' of https://github.com/danghieu1407/moodle 2024-07-11 09:28:56 +07:00
Huong Nguyen f8f5d77c3f Merge branch 'MDL-76654-main' of https://github.com/lameze/moodle 2024-07-11 09:19:26 +07:00
Ilya Tregubov 1432af6a2e Merge branch 'MDL-81661-main' of https://github.com/sarjona/moodle 2024-07-11 09:54:05 +08:00
Jun Pataleta 4da240f2a2 MDL-66994 upgrade: Move upgrade step after 4.4.0 release upgrade line 2024-07-11 09:22:12 +08:00
Paul Holden 8413f61260 MDL-82431 phpunit: correct unit test filename and classname.
Standardise the same test cases, e.g. make final, covers notation,
static data providers, namespaces, etc.

Once the tests run, a couple of them failed. They required changes
to assertions to make them pass.
2024-07-10 19:06:14 +01:00
Paul Holden 9d621f5da1 MDL-82066 user: define methods for handling default homepage URLs.
Per the previous commit, default homepage configuration (set either
for the site or as a user preference) can now be extended by third
party hook callbacks, in which case a URL is stored.
2024-07-10 17:12:31 +01:00
Sara Arjona c7a07f2bab Merge branch 'MDL-82391' of https://github.com/paulholden/moodle 2024-07-10 18:05:46 +02:00
Sara Arjona 82f5cc6829 Merge branch 'MDL-81886-main' of https://github.com/ferranrecio/moodle 2024-07-10 15:20:59 +02:00
Paul Holden bd0f8a058f MDL-79717 phpunit: ensure unique data provider keys in tests.
Duplicate data provider keys were overwriting and/or duplicating
one another, leading to some cases being skipped.

Other "duplicate array key" errors were picked up by `phpcs` in
this dragnet across all tests, which have also been fixed.
2024-07-10 14:08:49 +01:00
ferranrecio 32e090561b MDL-81886 tool_generator: allow scenario outlines in testing features
The tool_generator creates a testing scenario that can execute
all steps from behat_data_generators (with some limitations).
However, it cannot set any admin settings, which limits the
tool's ability to generate many real test scenarios.
2024-07-10 12:27:08 +02:00
Ilya Tregubov fece8de140 Merge branch 'MDL-82323-striptags_error' of https://github.com/leonstr/moodle 2024-07-10 12:18:10 +08:00
Huong Nguyen 81b2398cad Merge branch 'MDL-82057-main' of https://github.com/sarjona/moodle 2024-07-10 10:15:04 +07:00
Huong Nguyen 5f37f860e2 Merge branch 'MDL-81798-main' of https://github.com/ferranrecio/moodle 2024-07-10 09:56:48 +07:00
Huong Nguyen 6d3ee65ce2 Merge branch 'MDL-82324-main' of https://github.com/ferranrecio/moodle 2024-07-10 09:47:28 +07:00
Huong Nguyen 0644eeb752 Merge branch 'MDL-43938-main' of https://github.com/sarjona/moodle 2024-07-10 09:20:44 +07:00
Huong Nguyen 6c6b17187b Merge branch 'MDL-68211-main' of https://github.com/sarjona/moodle 2024-07-10 09:07:33 +07:00
Huong Nguyen 761df2bebc Merge branch 'MDL-82236-main' of https://github.com/andelacruz/moodle 2024-07-10 09:04:00 +07:00
Huong Nguyen cc2bb2bcc5 Merge branch 'MDL-82401' of https://github.com/timhunt/moodle 2024-07-10 08:57:17 +07:00
Sara Arjona b7685b0e99 Merge branch 'MDL-81349' of https://github.com/paulholden/moodle 2024-07-10 09:17:59 +08:00
Sara Arjona 2b3ff1633f Merge branch 'MDL-82360' of https://github.com/paulholden/moodle 2024-07-10 09:17:59 +08:00
Sara Arjona 5b064f958d Merge branch 'MDL-77834' of https://github.com/paulholden/moodle 2024-07-10 09:17:59 +08:00
Sara Arjona c743676c27 Merge branch 'MDL-82326' of https://github.com/paulholden/moodle 2024-07-10 09:17:59 +08:00
Sara Arjona 4fa7cba998 Merge branch 'MDL-66994-main' of https://github.com/meirzamoodle/moodle 2024-07-10 09:17:57 +08:00
Sara Arjona 6bb0f33be9 Merge branch 'MDL-81991-main-alt' of https://github.com/HuongNV13/moodle 2024-07-10 09:16:57 +08:00
Sara Arjona 41b8cd3f73 Merge branch 'MDL-78388' of https://github.com/djarran/moodle 2024-07-10 09:16:57 +08:00
Sara Arjona c84050bd0c Merge branch 'MDL-81765-patch' of https://github.com/ilyatregubov/moodle 2024-07-10 09:16:57 +08:00
Sara Arjona 7f6906de02 Merge branch 'MDL-73284_final-deprecation-message_default_loggedoff-message_default_loggedin' of https://github.com/ziegenberg/moodle 2024-07-10 09:16:57 +08:00
Ilya Tregubov 8b92e969ae MDL-81765 mod_subsection: Remove undesired index. 2024-07-10 09:16:56 +08:00
Sara Arjona 9d6cd34f8a Merge branch 'MDL-66251-main' of https://github.com/meirzamoodle/moodle 2024-07-10 09:16:56 +08:00
Sara Arjona 402a0b9877 Merge branch 'MDL-82292-main' of https://github.com/ilyatregubov/moodle 2024-07-10 09:16:56 +08:00
Sara Arjona 48658eb73b Merge branch 'MDL-82234-main' of https://github.com/durenadev/moodle 2024-07-10 09:16:56 +08:00
Sara Arjona e589df898c Merge branch 'MDL-80947-main' of https://github.com/stevandoMoodle/moodle 2024-07-10 09:16:56 +08:00
Sara Arjona 6578458548 Merge branch 'MDL-81296-main' of https://github.com/andelacruz/moodle 2024-07-10 09:16:56 +08:00
Ilya Tregubov 096897d623 Merge branch 'MDL-81765-main-v02' of https://github.com/ferranrecio/moodle 2024-07-10 09:16:56 +08:00
Jun Pataleta 2f94a4f4d7 Merge branch 'MDL-58353-main' of https://github.com/davewoloszyn/moodle 2024-07-10 09:16:56 +08:00
Jun Pataleta 80e0b142d7 Merge branch 'MDL-82404-main' of https://github.com/HuongNV13/moodle 2024-07-10 09:16:56 +08:00
Laurent David 37b6eea44f MDL-81265 mod_workshop: Fix accessibility issues
* Page title should be h2
* Contrasts in the table headers (for submission, assessment and grading)
should be 4:1 at least
2024-07-09 21:28:33 +02:00
Paul Holden 1554c68933 MDL-82391 courseformat: correct selector element section URLs.
It's required by themes that don't use the course index component,
e.g. Classic theme.
2024-07-09 14:45:16 +01:00
Paul Holden a22ccfc7d0 MDL-82066 hook: new hook to extend options for default site homepage. 2024-07-09 13:09:09 +01:00
ferranrecio 5ca968fea4 MDL-82324 course: fix empty section dropzone 2024-07-09 11:23:46 +02:00
ferranrecio 0766976b61 MDL-81798 course: limit number of subsections 2024-07-09 10:49:42 +02:00
Paul Holden c8d32c279d MDL-82309 comment: preserve link text property during AJAX requests.
We really only need to update the count value that follows the link
text content, so do that rather than overwriting the entire thing.
2024-07-09 09:17:10 +01:00
Angelia Dela Cruz 5a93545c52 MDL-82236 mod_data: Behat to display DB activity entry rating 2024-07-09 14:39:23 +08:00
Sara Arjona 092e2d1ec7 MDL-82057 backup: Badges independent of user data and activities
The dependency of badges on user data and activities has been
removed when copying, importing, or creating backups in courses.
Now, badges can be imported or copied even if user data and activities
are not selected:

- If user data is not selected (during backup or course copying), the badge
information (name, description, image, etc.) and criteria will be included,
but the users who have been awarded the badge will be excluded.

- If activities are not selected (during backup), the badge information
(name, description, image, etc.) will be copied, but the criteria and users
who have been awarded the badge will be excluded.
2024-07-09 07:49:57 +02:00
David Woloszyn 2e0579ce3a MDL-58353 report_usersessions: Ability to logout all other sessions 2024-07-09 13:39:27 +10:00
Angelia Dela Cruz 03f4c84684 MDL-81296 mod_data: Behat test for data activity readonly availability 2024-07-09 10:52:45 +08:00
Brendan Heywood 7327fdd40e MDL-82171 core: Rewarm bootstrap.php after a cache purge 2024-07-09 10:46:37 +10:00
David Woloszyn b1df497321 MDL-58353 admin: Logout on password change default to yes 2024-07-09 09:01:19 +10:00
Daniel Ziegenberg cbac1d5e32 MDL-73284 messages: Final deprecation MESSAGE_DEFAULT_LOGGED(OFF|IN)
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-07-08 21:28:28 +02:00
Sara Arjona 11b276fc1b MDL-43938 badges: Bagde names are not unique anymore
The restriction for the badge name to be unique has been removed so,
from now on, the badge names can be duplicated, even inside a course.
2024-07-08 15:53:27 +02:00
ferranrecio 0ccafe76f6 MDL-81765 mod_subsection: disable mod subsection by default 2024-07-08 13:34:28 +02:00
Paul Holden 3d3a90761b MDL-82328 auth_oauth2: don't load custom profile field data too early.
By prematurely loading custom profile data in the constructor, under
specific circumstances it would happen before the page was fully
initialised which meant that any attempt at applying filters when
formatting profile field data would result in thrown exception.
2024-07-08 08:55:49 +01:00
Huong Nguyen dabf88a99a MDL-82404 core_cohort: Fix random Behat failure
- Switched to use Table row verification instead of
text assertion for better result
 - Used the correct selector for checkboxes
2024-07-08 13:51:45 +07:00
Ilya Tregubov 8ae03ee493 MDL-82292 mod_assign: Merge picture and name columns 2024-07-08 12:00:03 +08:00
Simey Lameze 8988e4228a MDL-76654 behat: fixes and improvements to self assessment test 2024-07-08 11:17:27 +08:00
Angelia Dela Cruz a3e8495ac5 MDL-76654 behat: Coverage for workshop self-assessment 2024-07-08 11:17:27 +08:00
meirzamoodle d98867dd8b MDL-66251 form: Hiding and disabling static elements.
Added functionality to locate static text elements within the form,
improving the ability to target and manipulate the static elements for
hiding and disabling purposes.
2024-07-08 09:17:09 +07:00
Stevani Andolo db0d4ab677 MDL-80947 communication_customlink: Check before customlink update 2024-07-08 07:19:30 +08:00
Tim Hunt 48eec50590 MDL-82401 quiz: editing modals must be removed on close 2024-07-05 16:59:55 +01:00
ferranrecio c7742b7a23 MDL-81765 course: fix double highlighted in subsections 2024-07-05 13:04:49 +02:00
ferranrecio a76ec9fdcb MDL-81765 mod_subsection: add plugin to core 2024-07-05 13:04:49 +02:00
Daniel Ureña 0f21f6e374 MDL-82234 tool_mobile: Return display default login form 2024-07-05 12:43:17 +02:00
Sara Arjona 445de6070f MDL-81661 theme: Set Moodle files after Font Awesome upgrade 2024-07-05 10:23:55 +02:00
Sara Arjona 86b2a799e1 MDL-81661 theme: Update FontAwesome to 6.5.2 2024-07-05 10:23:14 +02:00
Sara Arjona 8c0afe86ae MDL-68211 feedback: Export percentage format
The feedback was exporting the percentage in the Analysis file using
a wrong value for the format, so instead of having only 2 decimals,
the number was not formatted.
2024-07-05 10:12:26 +02:00
Sara Arjona 71aca6e27e MDL-43938 badges: Fix coding style 2024-07-05 10:11:39 +02:00
Sara Arjona ae5fc380b5 MDL-43938 badges: Merge newbadge.php and edit.php
The newbadge.php and edit.php pages have been merged in edit.php
to make them easier to maintain because they were quite similar
(newbadge.php was only used for creating badges and edit.php for
editing badge details and messages).
2024-07-05 10:11:39 +02:00
ferranrecio 72efec7fb6 MDL-81765 report_outline: add subsection tests 2024-07-05 08:29:21 +02:00
ferranrecio c13d579b5e MDL-81765 course: module delegated section logic
Having mod_subsection into core was a pre-requisite to incorporate some
phpunit and behat tests that are pending from previous issues. Also,
some new sectiondelegatemodule methods are added tu support the new
plugin.
2024-07-05 08:29:21 +02:00
Ilya Tregubov 7d7a871edd weekly release 4.5dev 2024-07-05 09:01:53 +08:00
Ilya Tregubov c7af8d8afa NOBUG: Add upgrade notes 2024-07-05 09:01:53 +08:00
Huong Nguyen 16843d173d Merge branch 'MDL-80907-take-2' of https://github.com/HuongNV13/moodle 2024-07-04 21:42:59 +07:00
Huong Nguyen 1110e51e58 MDL-80907 qtype_ordering: Fix incorrect Behat column selectors 2024-07-04 21:21:01 +07:00
Paul Holden d4ebc6644e MDL-82289 mod_feedback: correct comparison of current $course. 2024-07-04 10:28:43 +01:00
Sara Arjona 0def685187 Merge branch 'MDL-80907-main' of https://github.com/HuongNV13/moodle 2024-07-04 11:20:06 +02:00
Paul Holden 23eee37e81 MDL-82282 question: consider only editable flags in JS module. 2024-07-04 10:19:22 +01:00
Paul Holden ec57300048 MDL-82090 completion: account for alternate gradepass form fields.
Some modules (e.g. Workshop) have "*gradepass" fields for each grade
item, which should be accounted for when trying to freeze them.
2024-07-04 10:00:32 +01:00
Huong Nguyen 9cd0229914 MDL-80907 behat: Fix incorrect column selectors 2024-07-04 15:14:54 +07:00
Huong Nguyen f76d19fbf7 Merge branch 'MDL-79716-oracle' of https://github.com/HuongNV13/moodle 2024-07-04 15:01:47 +07:00
Huong Nguyen d89d9ee420 MDL-79716 mod_assign: Fix random failures PHPUnit test
- Fix Clock API is not used correctly. We need to make sure
 not to reset the DI system halfway through a test.
 - Switched to use Message sink to speed up the test, no need
 to query the DB to verify the result anymore.
 - Used Data generator to create a submission
2024-07-04 14:34:21 +07:00
Safat efc7c6d872 MDL-81932 communication_customlink: Fix behat tests 2024-07-04 17:09:38 +10:00
Safat c9887d8e59 MDL-81932 communication_matrix: Fix behat tests 2024-07-04 17:09:38 +10:00
Safat 0beb2ec33a MDL-81932 core_communication: Fix communication provider change issue 2024-07-04 17:09:38 +10:00
Andrew Nicols 9ad6cae1e2 MDL-78662 question: Correct upgrade notes 2024-07-04 12:17:50 +08:00
Andrew Nicols 10d1a28dda Merge branch 'MDL-78662-master' of https://github.com/NashTechOpenUniversity/moodle 2024-07-04 12:17:36 +08:00
Huong Nguyen ccd8089de9 Merge branch 'MDL-80907' of https://github.com/marinaglancy/moodle 2024-07-04 11:12:50 +07:00
Jun Pataleta b916a3b055 Merge branch 'MDL-82364-main' of https://github.com/HuongNV13/moodle 2024-07-04 11:40:30 +08:00
Huong Nguyen 4abc679c8b MDL-82364 mod_quiz: Fix random failures PHPUnit test
- Fix Clock API is not used correctly. We need to make sure
 not to reset the DI system halfway through a test.
 - Switched to use Message sink to speed up the test, no need
 to query the DB to verify the result anymore.
2024-07-04 10:25:29 +07:00
Ilya Tregubov 5fcc61f672 Merge branch 'MDL-63670-main' of https://github.com/andrewnicols/moodle 2024-07-04 10:57:15 +08:00
Ilya Tregubov 02ce2360c2 Merge branch 'MDL-82315' of https://github.com/paulholden/moodle 2024-07-04 10:37:29 +08:00
Ilya Tregubov d6d6f8466c Merge branch 'MDL-82024' of https://github.com/paulholden/moodle 2024-07-04 09:50:22 +08:00
Sara Arjona c9fa646328 Merge branch 'MDL-82100-master' of https://github.com/danghieu1407/moodle 2024-07-03 17:14:09 +02:00
Sara Arjona 2bf55f231b Merge branch 'MDL-81771-main' of https://github.com/aanabit/moodle 2024-07-03 15:52:24 +02:00
Amaia Anabitarte 6912ddb3c6 MDL-81771 report_outline: Add subsections to course Activity report 2024-07-03 15:47:48 +02:00
Amaia Anabitarte f9497ceade MDL-81771 core_report: Add Report as subsystem 2024-07-03 15:47:46 +02:00
Sara Arjona 6034a5804b Merge branch 'MDL-82264-main' of https://github.com/junpataleta/moodle 2024-07-03 13:16:57 +02:00
Jun Pataleta 130fff8fce Merge branch 'MDL-52046-main' of https://github.com/davewoloszyn/moodle 2024-07-03 18:48:25 +08:00
Jun Pataleta c3f4f60a5f Merge branch 'MDL-80748-main' of https://github.com/rezaies/moodle 2024-07-03 17:13:21 +08:00
Jun Pataleta 3d514a5b98 Merge branch 'MDL-81671' of https://github.com/paulholden/moodle 2024-07-03 16:11:12 +08:00
Sara Arjona 89dcf5066b Merge branch 'MDL-74251-main' of https://github.com/lucaboesch/moodle 2024-07-03 09:35:56 +02:00
Jun Pataleta fbdc42ec25 Merge branch 'MDL-31192_colored-box-with-pre-tag-function-generates-a-warning' of https://github.com/ziegenberg/moodle 2024-07-03 15:12:56 +08:00
Hieu Nguyen Dang f06a670a64 MDL-82100 Quiz\report: Show customised question numbers 2024-07-03 13:47:27 +07:00
Sara Arjona 54c578fa86 Merge branch 'MDL-82363-main' of https://github.com/HuongNV13/moodle 2024-07-03 08:23:36 +02:00
Jun Pataleta 23cafba5e6 MDL-79716 mod_assign: Use $DB->record_exists_select() 2024-07-03 13:46:40 +08:00
Jun Pataleta 83184bce49 Merge branch 'MDL-79716-main' of https://github.com/davewoloszyn/moodle 2024-07-03 13:44:07 +08:00
David Woloszyn b92e45cf84 MDL-79716 mod_assign: Send notifications for approaching due dates 2024-07-03 15:36:50 +10:00
Jun Pataleta abaa3f4e34 Merge branch 'NOBUG-increase-expected-filesize' of https://github.com/lameze/moodle 2024-07-03 13:32:28 +08:00
Huong Nguyen b8450de7c5 MDL-82363 Calendar: Responsiveness improvement for calendar block
Hide the month name if the screen is too small
2024-07-03 11:01:54 +07:00
Shamim Rezaie 1511c71a18 Merge branch 'MDL-81725-main' of https://github.com/laurentdavid/moodle 2024-07-03 13:45:45 +10:00
djarrancotleanu 38a6f3fcaf MDL-78388 course: Copy permissions when duplicating module 2024-07-03 13:39:00 +10:00
lameze cfa85f5e14 NOBUG: Increase file size to avoid random failures 2024-07-03 11:36:42 +08:00
Shamim Rezaie b174c16d4d Merge branch 'MDL-82329' of https://github.com/paulholden/moodle 2024-07-03 04:06:19 +10:00
Paul Holden 314fcb3cf8 MDL-82360 courseformat: remove console upload error string debugging. 2024-07-02 15:53:19 +01:00
Laurent David 39ccad14d1 MDL-81725 core_courseformat: Fix refreshCompletion on subsections
* If completion information on subsection is not present the
refreshCompletion action is raising an exception
2024-07-02 16:17:19 +02:00
Laurent David e8c66a9815 MDL-81725 core_courseformat: Prevent drag and drop handling subsections
* Subsection are "modules" and should not be handled as "sections" in the
drag and drop process. Preventing delegated section from being dragged in
the dndsectionitems module fixes the drag and drop issues with subsections
in course index.
2024-07-02 16:17:19 +02:00
Sara Arjona c26763b0d5 Merge branch 'MDL-82345-main' of https://github.com/lameze/moodle 2024-07-02 12:08:30 +02:00
Laurent David cdc3ec5a54 MDL-81725 core_courseformat: Display subsections in the course index
* Add subsection into section entry in course index
* Adjust padding
2024-07-02 11:58:45 +02:00
ferranrecio d95b7a3883 MDL-81725 course: Get delegated section from cm_info 2024-07-02 11:58:18 +02:00
lameze 1191e5f003 MDL-82345 behat: change window size to large to avoid failures 2024-07-02 17:03:12 +08:00
Huong Nguyen fc5738b728 MDL-80797 core: Use stoppable_trait 2024-07-02 15:10:34 +07:00
Huong Nguyen 315b2bdd11 Merge branch 'MDL-80797' of https://github.com/sumaiyamannan/moodle 2024-07-02 15:08:42 +07:00
Ilya Tregubov 8dc76d79e5 Merge branch 'main_MDL-82141' of https://github.com/mattporritt/moodle 2024-07-02 13:19:55 +08:00
Ilya Tregubov a1a02b7146 Merge branch 'MDL-80123' of https://github.com/dravek/moodle 2024-07-02 10:20:01 +08:00
Ilya Tregubov 0a7fddefd3 MDL-81647 core: Code style fix. 2024-07-02 10:15:18 +08:00
Ilya Tregubov f0d194089f Merge branch 'MDL-81647-main' of https://github.com/andrewnicols/moodle 2024-07-02 09:26:13 +08:00
Paul Holden 0dbfd10c0c MDL-77834 mod_feedback: consistent HTML decoding of answer data.
Restores functionality from 72629ee8c0 that went missing along the way.
2024-07-01 16:21:58 +01:00
Sara Arjona f385fe16da Merge branch 'MDL-75022_final-deprecation-of-core_backup-copy' of https://github.com/ziegenberg/moodle 2024-07-01 16:47:20 +02:00
Sara Arjona 79e73e1b05 Merge branch 'MDL-74843_final-deprecation-of-core_task_manager-ensure_adhoc_task_qos' of https://github.com/ziegenberg/moodle 2024-07-01 16:29:09 +02:00
Sara Arjona 03e9639edf Merge branch 'MDL-81959-main' of https://github.com/lucaboesch/moodle 2024-07-01 16:15:38 +02:00
meirzamoodle 1f1d1a3920 MDL-66994 core: Remove display contact form setting in site registration
Removing the display of the contact form causes deprecation of some
language strings and unsets the site_contactable during the upgrade.
2024-07-01 21:07:30 +07:00
Sara Arjona e01a61a7b8 Merge branch 'MDL-80643_upgrade-http-client' of https://github.com/ziegenberg/moodle 2024-07-01 13:36:28 +02:00
Sara Arjona 07e21c944e Merge branch 'MDL-80642_upgrade-http-message' of https://github.com/ziegenberg/moodle 2024-07-01 13:23:04 +02:00
Sara Arjona 7d3f56d315 Merge branch 'MDL-80645_upgrade-symfony-deprecation-contracts' of https://github.com/ziegenberg/moodle 2024-07-01 12:55:31 +02:00
Sara Arjona 4fcea1f716 Merge branch 'MDL-80191-main-v06' of https://github.com/ferranrecio/moodle 2024-07-01 12:26:46 +02:00
Sara Arjona 576e63cb0f Merge branch 'MDL-63753' of https://github.com/larsbonczek/moodle 2024-07-01 12:18:50 +02:00
Jun Pataleta bfd07deb22 MDL-82264 admin: Move $CFG->allcountrycodes outside "IP address lookup" 2024-07-01 16:49:33 +08:00
ferranrecio b5f14e895a MDL-80191 backup: add subsections to restore form
This commit adds two new levels to the restore course structure form:
subsection (a delegated section that belongs to a course module) and
subactivity (a course module in a subsection).

Restore form can only use information from the backup file. To allow
activities to know if they are inside a subsection, the backup now
incorporates an "insubsection" attribute. This attribute is used only
for the form display but not for the restore logic.
2024-07-01 10:48:32 +02:00
ferranrecio c997f91db6 MDL-80191 backup: add subsections to backup form
The patch adds two new levels to the backup form structure: subsection
(a delegated section which parent is a course module) and subactivity
(an activity inside a subsection). Those new elements are displayed as a
inner section below the parent activitiy.

For now the UI is the same as a regular section but future issues will
define how the UX should be. The new two levels have their own classes
to represents settings and have extra dependencies.
2024-07-01 10:48:32 +02:00
Sara Arjona 606a82b95f Merge branch 'MDL-81885-main' of https://github.com/ferranrecio/moodle 2024-07-01 10:42:32 +02:00
Paul Holden 4fa3b63d19 MDL-81349 group: case-sensitive name validation when editing. 2024-07-01 09:41:37 +01:00
Huong Nguyen cdfeae28e7 Merge branch 'MDL-82331' of https://github.com/paulholden/moodle 2024-07-01 14:46:06 +07:00
Huong Nguyen 7fe2699829 Merge branch 'MDL-82114' of https://github.com/paulholden/moodle 2024-07-01 14:42:38 +07:00
Huong Nguyen 807f75b065 Merge branch 'MDL-79758' of https://github.com/timhunt/moodle 2024-07-01 14:24:56 +07:00
Huong Nguyen 38dc44976a Merge branch 'MDL-79971-main' of https://github.com/aanabit/moodle 2024-07-01 14:16:26 +07:00
Huong Nguyen 1fcdc69b09 Merge branch 'MDL-79796' of https://github.com/AnupamaSarjoshi/moodle 2024-07-01 14:09:09 +07:00
Huong Nguyen 7e30a3d524 Merge branch 'MDL-73091-main' of https://github.com/laurentdavid/moodle 2024-07-01 14:05:02 +07:00
Shamim Rezaie d5a8752914 MDL-80748 behat: Workaround for elements covered by the sticky header 2024-07-01 15:58:20 +10:00
Shamim Rezaie f5f8fb5ff6 MDL-80748 mod_assign: grading table now has a sticky header
`position: sticky` doesn't work in responsive tables because responsive
tables have scrollbars, making them the nearest ancestor with a
scrolling mechanism for the sticky header. As a result, the table can no
longer be responsive. This change is actually desired and was intended
for MDL-81860. Since we implemented it here, we can close the other
issue.
2024-07-01 15:58:20 +10:00
Shamim Rezaie e44d630be2 MDL-80748 core: flexible_table can be optionally responsive 2024-07-01 15:58:20 +10:00
Shamim Rezaie 3452278283 MDL-80748 core: organizes the properties of the flexible_table class
Public properties are now defined first, followed by protected
properties and finally private properties. Previously, they were
scattered.
2024-07-01 15:58:16 +10:00
Leon Stringer 7c70eb8e89 MDL-78776 database: Remove MyISAM migration
Remove functionality to migrate from MyISAM, and remove tests of whether
the existing database is using this.

Support for MyISAM was dropped in Moodle 2.9 (MDL-46064) so it should
not be possible for any subsequent Moodle version to be using this.

The only remaining MyISAM-aware code is the environment check via
check_database_storage_engine() to prevent installation/upgrade if the
database is set to use this.
2024-06-28 16:00:06 +01:00
Paul Holden 2d25cf1401 MDL-82331 reportbuilder: date filtering down to the nearest minute. 2024-06-28 10:36:48 +01:00
Leon Stringer f5ead497c6 MDL-82323 core: Fix get_striptags must be bool
If an exception occurs during install $CFG->formatstringstriptags may
not be populated, if so fall back to a default value.
2024-06-28 10:22:54 +01:00
Paul Holden 012b65fd78 MDL-82245 restore: use translated lang string in page heading. 2024-06-28 10:03:03 +01:00
Amaia Anabitarte de2adae485 MDL-79971 completion: Don't assume a completed activity is viewed 2024-06-28 10:14:46 +02:00
Paul Holden c03234b5a6 MDL-82329 course: consistent section permalink on view/section pages. 2024-06-28 08:59:51 +01:00
Paul Holden 956c64f0b4 MDL-82114 files: report entity filters for file component/area. 2024-06-28 07:54:25 +01:00
David Carrillo 8223c1cea2 MDL-80123 admin: Convert admin preset report to Report Builder
- Admin presets list has been converted to use Report builder
- Added ability to filter by name in the report
- Added confirmation modal when deleting presets
- Added inplace editable to rename custom presets
2024-06-28 08:39:25 +02:00
Paul Holden 77584dee5c MDL-82315 backup: account for null course section sequence value. 2024-06-27 23:33:05 +01:00
Paul Holden 8a0d02d373 MDL-82326 calendar: correct course name formatting and shortening. 2024-06-27 17:41:28 +01:00
Adrian Perez e1353c7649 MDL-74251 core: Remove old icon helper classes 2024-06-27 18:28:05 +02:00
Sara Arjona 5aef789ac6 weekly release 4.5dev 2024-06-27 16:36:42 +02:00
Sara Arjona 24c4541d47 NOBUG: Add upgrade notes 2024-06-27 16:36:42 +02:00
Sara Arjona c5698a9958 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2024-06-27 16:34:52 +02:00
Stephan Robotta f736db9777 MDL-79758 qbank: add filter in pagination links
Contains some minor tweaks by Tim Hunt <T.J.Hunt@open.ac.uk>.
2024-06-27 09:21:23 +01:00
ferranrecio b4f0332388 MDL-80191 backup: delegate section backup and restore
This commit adds all the logic to allow delegate sections backup and
restore. The backup and restore process is quite complex and it is not
designed to have task hierarchy. To solve the subsection problem, the
backup/restore planners do not include delegated sections at a course
level, but they are included when the activity with delegated section is
processed.

To allow restoing, the activity is responsible to store the
component/itemid mapping in the backup_structure_dbops. This way, when
the delegated section is restored (delegated sections are always
processed right after the parent activity) it can use the itemid
mapping.
2024-06-27 10:21:07 +02:00
ferranrecio 7482013cd2 MDL-80191 backup: prepare UI for subsections
Backup and restore settings needs to be refactored before introducing
subsections. With the current code adding two new hierachy levels
(subsections and activities in subsections) will require many
unnecessary lines of code because most of the structure is hard-coded.

With this patch when backup/restore present the course structure uses a
stack to control how mani divs are opened, instead of relying on adhoc
class attributes per each div.

About the tasks for sections and activities, the class has been
refactored. This way when subsections are introduced it will require
less lines of code and the final patch will be more comprehensible.
2024-06-27 10:16:03 +02:00
Huong Nguyen 053e0e8a87 Merge branch 'MDL-82068' of https://github.com/paulholden/moodle 2024-06-27 11:19:38 +07:00
Jun Pataleta 1306c52855 Merge branch 'MDL-81960-main' of https://github.com/andrewnicols/moodle 2024-06-27 12:16:18 +08:00
Huong Nguyen 15d5cefba8 Merge branch 'MDL-62958' of https://github.com/paulholden/moodle 2024-06-27 11:04:39 +07:00
Huong Nguyen 57fbce061b Merge branch 'MDL-82251' of https://github.com/paulholden/moodle 2024-06-27 10:55:53 +07:00
Andrew Nicols e3f795fc72 MDL-81960 core: Move progress_trace tests out of weblib 2024-06-27 11:35:37 +08:00
Andrew Nicols b6d08ad1d7 MDL-81960 core: Update namespace of progress_trace classes 2024-06-27 11:35:37 +08:00
Andrew Nicols a9869ff0a7 MDL-81960 core: Coding style update for progress_trace 2024-06-27 11:35:36 +08:00
Andrew Nicols c8a538de29 MDL-81960 core: Move progress_trace classes to legacy autoloader 2024-06-27 11:35:36 +08:00
Andrew Nicols 097b3fbee3 MDL-81960 core: Move moodle_url tests to correct location 2024-06-27 11:35:31 +08:00
Andrew Nicols b637f8cc4e MDL-81960 core: Coding style fixes 2024-06-27 11:34:30 +08:00
Huong Nguyen 2471ff69be Merge branch 'MDL-82008-main' of https://github.com/lucaboesch/moodle 2024-06-27 10:26:00 +07:00
Andrew Nicols 31461eff5b MDL-63670 core_message: Coding style updates for unit tests 2024-06-27 11:21:14 +08:00
Jun Pataleta 03fbc9fc01 Merge branch 'MDL-79809-main' of https://github.com/HuongNV13/moodle 2024-06-27 11:01:44 +08:00
Huong Nguyen 1ad47bdef0 Merge branch 'MDL-81111-master' of https://github.com/tailetan/moodle 2024-06-27 09:52:09 +07:00
Jun Pataleta 0c64966ea4 MDL-82183 output: Additional fixes
* Use the namespaced classes in imports instead of their aliases
* Add missing imports
* Add moved `\core\output\local\action_menu\subpanel` in the upgrade
  notes
2024-06-27 09:21:04 +08:00
Jun Pataleta 85a83eb365 MDL-82183 output: Move render_context_header()
* With \core_renderer in lib/outputrenderers.php moved to its
standalone class in \core\output, the method ::render_context_header()
introduced in MDL-82160 also needs to be moved to the new class.
2024-06-27 09:02:11 +08:00
Jun Pataleta e84daab7dd Merge branch 'MDL-82183-main-squashed' of https://github.com/andrewnicols/moodle 2024-06-27 08:49:13 +08:00
Luca Bösch 529be7c9fe MDL-81959 qtype_multianswer: Margin between checkboxes and text 2024-06-27 00:24:36 +02:00
Andrew Nicols 433df29b81 MDL-63670 core_message: Tests should not use another testcase as base 2024-06-27 00:00:55 +08:00
Jun Pataleta 75f2afc3dc Merge branch 'MDL-81920' of https://github.com/paulholden/moodle 2024-06-26 23:23:01 +08:00
Sara Arjona 745cff2597 Merge branch 'MDL-81657' of https://github.com/paulholden/moodle 2024-06-26 17:06:56 +02:00
Andrew Nicols 882150bd02 MDL-82183 core: Move subpanel out of local folder 2024-06-26 23:00:34 +08:00
Andrew Nicols 70ab95f27f MDL-82183 core: Document new class locations for output API 2024-06-26 23:00:34 +08:00
Andrew Nicols 9043dc75bf MDL-82183 core: Coding style fixes for core\output 2024-06-26 23:00:33 +08:00
Andrew Nicols ff0fd2764a MDL-82183 core: Update namespace of moved output classes 2024-06-26 23:00:33 +08:00
Andrew Nicols 6c61700d0e MDL-82183 core_table: Move tablelib classes to core_table 2024-06-26 23:00:32 +08:00
Andrew Nicols 2fff48b07c MDL-82183 core: Migrate all output classes to autoloaded 2024-06-26 23:00:31 +08:00
Andrew Nicols 77f9238cf4 MDL-82287 core: Deprecate long-deprecated functions
These were originally believed to be so widely used that we could never
migrate away from them but it seems we have!
2024-06-26 22:19:07 +08:00
Paul Holden 751aa2efc3 MDL-81920 core: move emoticon manager class into autoload namespace. 2024-06-26 14:23:30 +01:00
Paul Holden cc30087d84 MDL-81920 lang: move language string class into autoload namespace. 2024-06-26 14:23:11 +01:00
Daniel Ziegenberg 8723c4099b MDL-75025 backup: Final deprecation of base_controller::get/set_copy
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-26 13:52:46 +02:00
Lars Bonczek a48d11dd7d MDL-63753 course: Show stealth activity links to non-editing teachers 2024-06-26 12:57:36 +02:00
Sara Arjona 9e1eec783c Merge branch 'MDL-82207' of https://github.com/stronk7/moodle 2024-06-26 12:27:19 +02:00
Sara Arjona 4a9b4c9b7b Merge branch 'MDL-80625-master' of https://github.com/ssj365/moodle 2024-06-26 12:14:49 +02:00
Sara Arjona 0bccb0b1e4 Merge branch 'MDL-80344' of https://github.com/paulholden/moodle 2024-06-26 12:11:11 +02:00
Huong Nguyen ca7286c14c MDL-81991 core: Reload accessdata for dirty users in CLI mode 2024-06-26 16:27:11 +07:00
Huong Nguyen 67f348a340 MDL-78936 editor_tiny: Disable quickbars for small target
The quickbars selection toolbar is not displayed correctly
if the target element is too small. We will wait for it
to be fixed in the future before we re-enable it in Moodle
2024-06-26 10:13:28 +07:00
Ilya Tregubov 5c415229eb Merge branch 'MDL-82233-main' of https://github.com/sarjona/moodle 2024-06-26 10:23:44 +08:00
Huong Nguyen debeb77681 Merge branch 'MDL-81250-main' of https://github.com/meirzamoodle/moodle 2024-06-26 09:20:56 +07:00
Ilya Tregubov 201140e7dd Merge branch 'MDL-82167-main' of https://github.com/ferranrecio/moodle 2024-06-26 10:19:34 +08:00
Ilya Tregubov 435619ac90 Merge branch 'MDL-81866-main' of https://github.com/sarjona/moodle 2024-06-26 10:16:36 +08:00
Ilya Tregubov c60f4eaa62 Merge branch 'MDL-81769-main' of https://github.com/ferranrecio/moodle 2024-06-26 10:13:19 +08:00
Ilya Tregubov 6eac3256f8 Merge branch 'MDL-81743-main' of https://github.com/roland04/moodle 2024-06-26 10:10:51 +08:00
Sara Arjona 56cdb1a3d3 Merge branch 'MDL-79231-main' of https://github.com/davewoloszyn/moodle 2024-06-25 16:12:55 +02:00
Sara Arjona 8b15366f28 Merge branch 'MDL-82160-main' of https://github.com/roland04/moodle 2024-06-25 15:59:57 +02:00
Andrew Nicols 4101dc6dab MDL-82287 core: Remove long-deprecated methods 2024-06-25 21:30:30 +08:00
Mikel Martín 7b0e95aec0 MDL-81743 mod_feedback: Add manage questions behat feature 2024-06-25 15:02:24 +02:00
Mikel Martín fdb7f280c4 MDL-81743 mod_feedback: Fix multichoice items separation 2024-06-25 15:02:24 +02:00
Mikel Martín ae01fe1ba4 MDL-81743 mod_feedback: Improve 'Edit' page UI
- Move styles in css to modules.scss
- Add new styles for questions
- Change Delete action to red colour
- Add "Page break" text to pagebreak elements in edit page
2024-06-25 15:02:20 +02:00
Jun Pataleta 19d16b9249 Merge branch 'MDL-81807-main' of https://github.com/tsmilan/moodle 2024-06-25 19:53:43 +08:00
Sara Arjona cf7cc40f4b MDL-81866 course: Fix behat errors after improving reset 2024-06-25 12:59:26 +02:00
Sara Arjona 7402706c59 MDL-81866 course: Improve workflow for reset course
The following changes have been done to improve the reset course:
- Reset course button moved to sticky footer. Select default and
deselect all buttons set as secondary and left at the end of the form
- Adjusted page layout to a standardized format, centering the form for
improving presentation and recolocating the Reset course button away
from the bottom-right corner
- Changed page layout to standard, to display the form centered and
avoid having the Reset course button in the right bottom corner
- Modal added before resetting a course, asking user for confirmation
- Reset course buttons displayed with danger styling, because they
remove information
- All sections are expanded by default
- Default options are selected by default
2024-06-25 12:59:25 +02:00
Meirza d63aff3f51 MDL-81250 calendar: Use full course name as the course filter
Co-authored-by: Eduardo Domínguez <eduardo.dominguez@uib.es>
2024-06-25 16:35:38 +07:00
Huong Nguyen c45487051f Merge branch 'MDL-82277' of https://github.com/paulholden/moodle 2024-06-25 13:53:29 +07:00
Trisha Milan d0e82b746e MDL-81807 core: Add scheduled task for updating the GeoIP database
This commit includes the following changes:

- Implemented a scheduled task to automate the download and update of the GeoIP database.
- Integrated checksum verification for the downloaded database file.
- Added new configuration settings to enable administrators to enter MaxMind account credentials,
  allowing authenticated access to both free and paid GeoIP database versions from Maxmind.
2024-06-25 15:17:30 +10:00
Huong Nguyen 3b9cc05800 Merge branch 'MDL-81506-main' of https://github.com/davewoloszyn/moodle 2024-06-25 09:50:53 +07:00
Huong Nguyen 0d14b122eb Merge branch 'MDL-81818-main' of https://github.com/roland04/moodle 2024-06-25 09:26:29 +07:00
Huong Nguyen 5c03f39940 Merge branch 'MDL-82200' of https://github.com/timhunt/moodle 2024-06-25 09:13:25 +07:00
Huong Nguyen 0e87e8cfc9 Merge branch 'MDL-80061-master' of https://github.com/ssj365/moodle 2024-06-25 09:07:05 +07:00
Paul Holden e8ae5222d6 MDL-82024 format_topics: toggle un/highlight section icon correctly. 2024-06-24 19:40:22 +01:00
Paul Holden b8fa79c5a7 MDL-82277 mod_h5pactivity: less fragile error Behat step assertion.
Avoids frequent failures related to iframe resizing/timing.
2024-06-24 15:25:54 +01:00
Paul Holden 0105cf126e MDL-62958 admin: ensure uploaded plugin directory structure present.
Including any empty directories, which would cause validation to
subsequently fail when they were skipped.

Co-authored-by: Leon Stringer <leon.stringer@ntlworld.com>
2024-06-24 12:47:36 +01:00
Eloy Lafuente (stronk7) ad5fe71868 MDL-82207 phpunit: fix various @covers annotations (take#1)
This fixes various (not all) wrong @covers annotations that
are reported as warnings by PHPUnit when it's run with
code-coverage enabled.

When possible, the preferred solution is to change to
@covers at class level, that is the recommended way.

If multiple classes are involved, then a mix of @coversDefaultClass
and @covers at method level are used (always trying to use the
minimum needed patch).

This is the first of a series of issues created as sub-tasks
of MDL-82142.
2024-06-24 12:07:39 +02:00
Huong Nguyen d67e9c86a0 Merge branch 'MDL-79718-main-fix' of https://github.com/junpataleta/moodle 2024-06-24 16:28:31 +07:00
Jun Pataleta 5e976886c7 MDL-79718 mod_quiz: Remove unnecessary semicolon in SQL statement 2024-06-24 17:12:47 +08:00
Andrew Nicols 585b060462 MDL-82183 core: Do not load subsystem db/legacyclasses.php
Subsystems do not support the notion of a `db` folder. Instead we must
conflate the lib/db/legacyclasses.php syntax to allow it to support
paths as either a string, or an array with [subsystem, path].
2024-06-24 14:43:47 +08:00
Jun Pataleta cfb2cce128 Merge branch 'MDL-79718-main' of https://github.com/davewoloszyn/moodle 2024-06-24 11:03:10 +08:00
Huong Nguyen 7abffe7935 MDL-79809 environment: Moodle 4.5 requirements 2024-06-24 09:37:08 +07:00
David Woloszyn ee8a16eccf MDL-79718 mod_quiz: Send notifications for approaching open dates 2024-06-24 10:53:48 +10:00
Michael Milette 27a6dbeeb6 MDL-67554 oauth2: New filtered language tags for additional parameters.
This adds support for new language tags in OAuth2's
"Additional Parameters Included in a Login Request"
field. Available tags include:

Tags            Example value
-----------------------------
{lang}          fr
{LANG}          FR
{language}      fr_ca
{LANGUAGE}      FR_CA
{lan-guage}     fr-ca
{LAN-GUAGE}     FR-CA
2024-06-23 16:30:07 -04:00
Rossco Hellmans 1b5cc6bee4 MDL-68676 mod_assign: check accessallgroups in can_edit_submission()
In can_edit_submission() when the assign group mode is SEPARATEGROUPS
check if the user has the moodle/site:accessallgroups capability before
checking if they are a shared groupmember. Due to the teamsubmission
setting students might not be in a group but can still submit, which
means they are not returned in get_shared_group_members().
2024-06-22 13:44:59 +10:00
AMOS bot a370ce73ae Automatically generated installer lang files 2024-06-22 00:14:12 +00:00
Daniel Ziegenberg 047bd74c8b MDL-74843 tasks: Deprecation \core\task\manager::ensure_adhoc_task_qos
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-21 16:41:21 +02:00
Martin Gauk fe9616edcd MDL-80345 core_lock: deal with hash collisions in postgres_lock_factory 2024-06-21 13:44:33 +02:00
Daniel Ziegenberg f69b0e189c MDL-31192 core_webservice: do not render div inside span
`<span>` tags only permit "phrasing content" but `<div>` (and also the
`<ins>` tag) are flow content. So, switching to div all along.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-21 13:09:28 +02:00
Daniel Ziegenberg 8a4e52765a MDL-75022 backup: Final deprecation of core_backup\copy
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-21 13:08:14 +02:00
ferranrecio f166b15b28 MDL-81769 core_courseformat: prevent delegated section modules actions 2024-06-21 12:41:09 +02:00
Mikel Martín 3b419c4540 MDL-82160 renderer: Add render_context_header method to core_renderer
In MDL-81597 the original render_context_header method was removed and converted to a template.
That caused a regression, so this patch adds the method again but using the new template.
2024-06-21 11:54:52 +02:00
Luca Bösch b01fea1afa MDL-82008 backup: Format 'Continue' and 'Cancel' button to have a margin 2024-06-21 09:37:01 +02:00
Sara Arjona 062acb0529 MDL-82233 badges: Display awarded users only when it applies
The message with the number of uses who have awarded a badge
were displayed always (even when the badge was disabled).
2024-06-21 06:56:03 +02:00
tai.letan 0208b9cae2 MDL-81111 tiny_recordrtc: add 'Pause' button for recording A/V 2024-06-21 09:22:17 +07:00
Matt Porritt c6e0b0f346 MDL-82141 Administration: Use toggle for Plugin Management Table
Replace the "eye" icon for enabling and disabling plugins in tables
that use the Plugin Management Table (plugin_management_table) class
with the Font Awesome "toggle" icon.
2024-06-21 12:18:55 +10:00
Andrew Nicols e138e03b2f MDL-81960 core: Move moodle_url to \core\url 2024-06-20 23:21:56 +08:00
Andrew Nicols f0cd6f14af MDL-81960 core: Migrate \moodle_url to autoloaded file 2024-06-20 23:21:56 +08:00
Sara Arjona ad7fc69c25 weekly release 4.5dev 2024-06-20 16:30:46 +02:00
Sara Arjona 510e8db405 NOBUG: Add upgrade notes 2024-06-20 16:30:46 +02:00
Sara Arjona d41187eafd Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2024-06-20 16:30:21 +02:00
Paul Holden 9eab858ea3 MDL-82251 customfield: correct field management icon sizes. 2024-06-20 08:26:49 +01:00
David Woloszyn 9db8d9148c MDL-81506 core: Version bump 2024-06-20 16:41:24 +10:00
David Woloszyn 7b14538f21 MDL-81506 enrol_self: Edit welcome message capability applied 2024-06-20 16:41:24 +10:00
David Woloszyn 49fa7785dd MDL-81506 enrol_manual: Edit welcome message capability applied 2024-06-20 16:41:24 +10:00
David Woloszyn d43da95ed6 MDL-81506 core_enrol: New capability to edit the welcome message 2024-06-20 15:23:04 +10:00
David Woloszyn f90116e1c7 MDL-79231 core_theme: Fix Tiny menu in fullscreen mode modals 2024-06-20 14:31:03 +10:00
Huong Nguyen 966d5308a5 Merge branch 'MDL-78773' of https://github.com/paulholden/moodle 2024-06-20 11:06:01 +07:00
Huong Nguyen ac3ae1b678 Merge branch 'MDL-82224-main' of https://github.com/andrewnicols/moodle 2024-06-20 10:59:56 +07:00
Jun Pataleta e5be35a15b Merge branch 'MDL-82246-main' of https://github.com/andrewnicols/moodle 2024-06-20 11:41:54 +08:00
Huong Nguyen c53b23e47e Merge branch 'MDL-82202' of https://github.com/paulholden/moodle 2024-06-20 10:20:48 +07:00
David Woloszyn 8b71894d62 MDL-79231 mod_assign: Fix Tiny menu in fullscreen mode 2024-06-20 13:05:18 +10:00
Andrew Nicols 5f512be7b9 MDL-82246 tiny_recordrtc: Correct string name for insecure alert title 2024-06-20 10:57:31 +08:00
Huong Nguyen 56b58d6434 Merge branch 'MDL-81761' of https://github.com/paulholden/moodle 2024-06-20 09:54:21 +07:00
Huong Nguyen cafc34d8b4 Merge branch 'MDL-82169' of https://github.com/paulholden/moodle 2024-06-20 09:18:38 +07:00
David Woloszyn b174d05b54 MDL-52046 cohorts: Add ability to bulk delete cohorts 2024-06-20 11:39:03 +10:00
AMOS bot b8b1637eaf Automatically generated installer lang files 2024-06-20 00:16:27 +00:00
Sara Arjona 8c3ef8d4cc Merge branch 'MDL-81665' of https://github.com/paulholden/moodle 2024-06-19 17:08:43 +02:00
Sara Arjona f230cbb253 Merge branch 'MDL-81534' of https://github.com/paulholden/moodle 2024-06-19 16:49:49 +02:00
Sara Arjona 414c640655 Merge branch 'MDL-81659' of https://github.com/paulholden/moodle 2024-06-19 16:00:48 +02:00
Sara Arjona 36f5b40830 Merge branch 'MDL-81857' of https://github.com/paulholden/moodle 2024-06-19 15:52:57 +02:00
Sara Arjona 438ecde725 Merge branch 'MDL-82181' of https://github.com/paulholden/moodle 2024-06-19 15:42:22 +02:00
Sara Arjona c28933ef10 Merge branch 'MDL-81730' of https://github.com/paulholden/moodle 2024-06-19 13:31:33 +02:00
Sara Arjona 72f0d10e11 Merge branch 'MDL-80745-main' of https://github.com/rezaies/moodle 2024-06-19 08:48:40 +02:00
Meirza 4fbf34b73d MDL-75864 cache: Change key prefix in cache_cron_task
Currently, the cache_cron_task is set to look for 'sess_' as a key prefix,
which is not used in any code. As a result, sessions that have exceeded the timeout are never deleted.

The proposed patch involves changing the prefix to the LASTACCESS key prefix and
fixing the return value of get_many in the Redis cache so that it can return the required keys.

Co-authored-by: Renaud Lemaire <rlemaire@cblue.be>
2024-06-19 13:41:37 +07:00
Sara Arjona a210aea91c Merge branch 'MDL-77665-main' of https://github.com/laurentdavid/moodle 2024-06-19 07:35:17 +02:00
Huong Nguyen ebae7fbae4 Merge branch 'MDL-81523' of https://github.com/stronk7/moodle 2024-06-19 09:52:10 +07:00
Huong Nguyen 51e7fe3b75 Merge branch 'MDL-81249-main' of https://github.com/andelacruz/moodle 2024-06-19 09:18:14 +07:00
Andrew Nicols 36772d4c8e Merge branch 'MDL-81644-main-new' of https://github.com/meirzamoodle/moodle 2024-06-18 23:13:55 +08:00
Andrew Nicols 14d9e59492 Merge branch 'MDL-81431-main' of https://github.com/lameze/moodle 2024-06-18 22:47:27 +08:00
Shamim Rezaie 859a54b1c0 MDL-80745 mod_assign: Move group selector on grading page to action bar
AMOS BEGIN
 MOV [clearall,gradereport_grader],[clearall,core]
AMOS END
2024-06-19 00:41:05 +10:00
Shamim Rezaie c1a2436cb5 MDL-80745 core_grades: deprecate core_grades_renderer::group_selector 2024-06-19 00:41:05 +10:00
Shamim Rezaie 37eae68cdb MDL-80745 core_course: group selector renderer for actionbar in course 2024-06-19 00:41:05 +10:00
Andrew Nicols 40938bd83b Merge branch 'MDL-81739-main' of https://github.com/davewoloszyn/moodle 2024-06-18 22:33:14 +08:00
Paul Holden e47957af26 MDL-82191 core: add closing backtick to upgrade note, correct todo. 2024-06-18 12:16:33 +01:00
Paul Holden 3724f682b3 Merge branch 'MDL-82191-main' of https://github.com/andrewnicols/moodle into main 2024-06-18 12:11:23 +01:00
Paul Holden 74d85b0a90 Merge branch 'MDL-82156-main' of https://github.com/andrewnicols/moodle into main 2024-06-18 12:00:03 +01:00
Angelia Dela Cruz 0cc5f72f82 MDL-81249 gradingform: Behat test that grades are retained 2024-06-18 17:44:59 +08:00
Huong Nguyen 58dbb96ce5 Merge branch 'MDL-82148' of https://github.com/stronk7/moodle 2024-06-18 16:27:22 +07:00
Angelia Dela Cruz f86157f901 MDL-81249 gradingform: Enhance Behat test for deleting marking guide 2024-06-18 16:45:59 +08:00
Huong Nguyen 87ec51598d Merge branch 'MDL-79546' of https://github.com/timhunt/moodle 2024-06-18 15:29:29 +07:00
Andrew Nicols bbdf580177 MDL-82224 core_admin: Remove manual check for json
JSON can no longer be disabled.
2024-06-18 15:55:03 +08:00
Shamim Rezaie fe7738b7da Merge branch 'mdl-78080-main-split' of https://github.com/james-cnz/moodle 2024-06-18 16:05:48 +10:00
lameze f7d942e94a MDL-81431 behat: set grade item checkboxes one at the time 2024-06-18 13:57:03 +08:00
David Woloszyn 1b1128d646 MDL-52046 reportbuilder: Support null return from checkbox callback 2024-06-18 15:17:26 +10:00
Jun Pataleta ab72eef3de MDL-80951 backup: Add description for formselectall template 2024-06-18 11:51:11 +08:00
Jun Pataleta a08233635d Merge branch 'MDL-80951-main-v02' of https://github.com/ferranrecio/moodle 2024-06-18 11:40:08 +08:00
Paul Holden 53b69add3a MDL-81671 libraries: upgrade to version 1.3.3 of Serializable Closure. 2024-06-17 15:03:16 +01:00
Paul Holden 7ab967202c MDL-82202 course: correct last access report entity column callback.
Ensure it works when being aggregated.
2024-06-17 14:27:01 +01:00
Huong Nguyen 87f926d692 MDL-82133 reportbuilder: Fix illegal whitespace 2024-06-17 16:01:38 +07:00
Huong Nguyen e7a432c01d Merge branch 'MDL-82133' of https://github.com/lostrogit/moodle 2024-06-17 15:53:00 +07:00
Wolfgang Reichert 1264e3e0f0 MDL-73091 core_badges: Avoid undefined variable notice in review
* Fix review method for award_criteria_courseset when courseset is empty
* Add unit tests for coverage of the award_criteria_courseset class

@co-authored jz-reichert@web.de
2024-06-17 09:59:38 +02:00
Laurent David 26b747bf1f MDL-77665 mod_h5pactivity: Improve generator package upload
* Allow the specification of the username in order to set the owner
of the H5P file package when creating a new H5P instance.
2024-06-17 06:31:18 +02:00
Laurent David 7bf85150b9 MDL-77665 core_h5p: Allow deployment if user has been deleted
* If user has been deleted we consider that the content can be deployed
by a user who can deploy other packages
* Add behat test to cover for this use case
* Fix the content bank generator as it was failing to upload the content
as the given user
2024-06-17 06:31:18 +02:00
James C 7dca6d0e3b MDL-78080 course: Duplicate section: Duplicate by section id, not num 2024-06-17 12:51:33 +12:00
James C 7cde0e9984 MDL-78080 course: Duplicate section: No duplicate option for section 0 2024-06-17 12:51:33 +12:00
James C f00a6caaaf MDL-78080 course: Duplicate section: Don't copy deleted activities 2024-06-17 12:51:33 +12:00
James C ef02908013 MDL-78080 course: Duplicate section: Copy section summary files 2024-06-17 12:51:13 +12:00
James C 23567ce725 MDL-78080 course: Duplicate section: Copy custom section options 2024-06-17 12:48:22 +12:00
James C acf5e44fde MDL-78080 course: Duplicate section: Fix course_update_section params 2024-06-17 12:47:16 +12:00
Eloy Lafuente (stronk7) adb4a5aade MDL-82148 phpunit: Remove all cases of multiple @coversDefaultClass
Only one by class is allowed (to be used as shortcut exclusively)
2024-06-15 21:43:31 +02:00
Daniel Ziegenberg 52a5f2aa4e MDL-80645 libaries: Update symfony/deprecation-contracts to 3.5.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-14 23:18:53 +02:00
Daniel Ziegenberg 6222b1307e MDL-80643 libraries: Update http-client to 1.0.3
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-14 23:17:03 +02:00
Daniel Ziegenberg 2c4fb82def MDL-80642 libaries: Update http-message to 2.0.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-14 23:16:23 +02:00
DangHieu1407 02cd2808c8 MDL-79546 Quiz: Allow regrade of selected question
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-06-14 20:29:23 +01:00
Eloy Lafuente (stronk7) 08e8b21b1f MDL-81523 upgrade: Add a upgrade note sharing about the change/fix 2024-06-14 16:04:57 +02:00
Eloy Lafuente (stronk7) 674497a12c MDL-81523 phpunit: Add all missing setUp/tearDown parent calls
All setUp(), tearDown(), setUpBeforeClass() and tearDownAfterClass()
must, always, call to parent, to ensure that everything is properly
set and cleaned.

While in a lot of situations this is not needed (parents may not
have anything to run), with PHPUnit >= 10 this can become more
important because we are going to move the reset code from current
placement @ runBare() to setUp()/tearDown().

Note that all the changes performed in this commit have been detected
and fixed by moodle-cs (ParentSetUpTearDownSniffTest).
2024-06-14 16:04:57 +02:00
Mikel Martín 06b779d31d MDL-81818 theme_boost: Refactor ".no-gutters" usages for BS5
- Add .g-0 to the Boostratp 5 bridge SCSS file
- Replace .no-gutters occurrences with .g-0
2024-06-14 15:09:43 +02:00
Tim Hunt 6105d96744 MDL-82200 inplace editable: fix background of the help text 2024-06-14 12:37:52 +01:00
Anupama Sarjoshi 1945ad1d36 MDL-79796 quiz: Preview icon should be visible in question bank pop-up 2024-06-14 11:19:19 +01:00
Andrew Nicols 574ea2a02d MDL-82156 core: Remove manually loaded classes
These classes were all introduced in Moodle 4.4.

Originally they were scheduled for removal in MDL-81134, but now that we
have MDL-82156 we can remove them immediately as the autoloader now
checks for the presence of a newer class and resets if that class is not
present in the autoloader cache.
2024-06-14 12:28:56 +08:00
Andrew Nicols 434c191ff3 MDL-82156 core: Check that key classes are present for classloader 2024-06-14 12:28:55 +08:00
Andrew Nicols ca985c79c6 MDL-82156 core: Move core_component cache validity check to own method 2024-06-14 12:28:55 +08:00
Andrew Nicols 8c1ab804b3 MDL-82191 core: Deprecated unused stale libraries 2024-06-14 09:27:42 +08:00
Ilya Tregubov 2bf886f9dd weekly release 4.5dev 2024-06-14 08:56:53 +08:00
Ilya Tregubov 788f0e6f0a NOBUG: Add upgrade notes 2024-06-14 08:56:53 +08:00
Ilya Tregubov 385ed8c83f NOBUG: Fixed SVG browser compatibility 2024-06-14 08:56:32 +08:00
Eric Merrill 55571fb06c MDL-82192 scorm: Correct field names for AICC ExitAu 2024-06-13 18:35:07 -04:00
Jun Pataleta 409a36265e Merge branch 'MDL-81287' of https://github.com/paulholden/moodle 2024-06-13 12:03:27 +08:00
Jun Pataleta f29d66d3db Merge branch 'MDL-82178' of https://github.com/timhunt/moodle 2024-06-13 12:00:28 +08:00
Huong Nguyen 803e94cf8a Merge branch 'MDL-81577' of https://github.com/paulholden/moodle 2024-06-13 10:55:34 +07:00
Huong Nguyen 0202fbb634 Merge branch 'MDL-82184-dbcollation-comment' of https://github.com/leonstr/moodle 2024-06-13 10:19:07 +07:00
Huong Nguyen 6b0c51a2ca Merge branch 'MDL-81781' of https://github.com/paulholden/moodle 2024-06-13 10:12:37 +07:00
Huong Nguyen 50b0cd3cbd Merge branch 'MDL-69514' of https://github.com/pedrojordao/moodle 2024-06-13 09:53:53 +07:00
Jun Pataleta e7e09fdf46 Merge branch 'MDL-79885-main' of https://github.com/Chocolate-lightning/moodle 2024-06-13 10:37:50 +08:00
Huong Nguyen 8de80c1b59 Merge branch 'MDL-82162-main' of https://github.com/sarjona/moodle 2024-06-13 09:13:48 +07:00
Huong Nguyen a7b3e9030d Merge branch 'MDL-82155' of https://github.com/paulholden/moodle 2024-06-13 09:02:43 +07:00
Shamiso.Jaravaza 802876e9a8 MDL-80061 mod_bigbluebuttonbn: Change filter field
* Change dismissed recording time filter from timecreated to timemodified
2024-06-12 13:53:15 -06:00
Shamiso.Jaravaza 904cf075e7 MDL-80625 mod_bigbluebuttonbn: Fix param name 2024-06-12 11:45:28 -06:00
Leon Stringer 1caecdc450 MDL-82184 database: Revise dbcollation comment 2024-06-12 18:14:20 +01:00
Sara Arjona b1b3f409fc Merge branch 'MDL-81942' of https://github.com/paulholden/moodle 2024-06-12 15:47:54 +02:00
Paul Holden ed25832cc7 MDL-82181 tiny_media: correctly determine whether to show dropzone. 2024-06-12 14:16:00 +01:00
Tim Hunt 92aa1579f9 MDL-82178 quiz graded notification: fix capability check
Also improve the scheduled task logging
2024-06-12 12:34:24 +01:00
Sara Arjona 4e881c2595 Merge branch 'MDL-79496-main' of https://github.com/roland04/moodle 2024-06-12 13:12:53 +02:00
Paul Holden f4d4f1ca6a MDL-81942 user: guests should respect default site homepage setting. 2024-06-12 11:34:59 +01:00
Jun Pataleta 1db19bc5bf Merge branch 'MDL-64325-main' of https://github.com/kevpercy/moodle 2024-06-12 16:36:30 +08:00
Mikel Martín 2d37fadca4 MDL-79496 webservice: Fix webservice behat tests
- Move all webservice related behat tests to the correct namespace.
- Add missing @core_webservice tags
- Fix behat scenarios after systemreport conversion.
2024-06-12 10:01:53 +02:00
Mikel Martín 2c830cb233 MDL-79496 webservice: Convert manage tokens to a system report
- Add new token entity
- Add new service entity
- Replace tokens table with a system report
2024-06-12 10:01:47 +02:00
Huong Nguyen 7d95aa4b9c MDL-80967 authentication: Fix language string and version pump 2024-06-12 14:49:01 +07:00
Huong Nguyen bb267a11ad Merge branch 'MDL-80967-main' of https://github.com/StudiUM/moodle 2024-06-12 14:45:40 +07:00
Huong Nguyen 110f5b5132 Merge branch 'MDL-81515' of https://github.com/timhunt/moodle 2024-06-12 14:08:14 +07:00
Carlos Castillo 5f93155c8c MDL-82133 reportbuilder: Move out RB exceptions to the L2 namespace 2024-06-12 09:02:29 +02:00
Huong Nguyen 5970d38755 Merge branch 'MDL-81332-main' of https://github.com/andelacruz/moodle 2024-06-12 13:15:05 +07:00
Sara Arjona 79de3b6ec4 Merge branch 'MDL-82157-main' of https://github.com/andrewnicols/moodle 2024-06-12 07:09:24 +02:00
Jun Pataleta 48561939a3 MDL-81742 mod_feedback: Remove unnecessary whitespace 2024-06-12 11:39:06 +08:00
Andrew Nicols 980a84958d MDL-82157 core: Deprecate print_grade_menu 2024-06-12 11:30:54 +08:00
Jun Pataleta 03ca4e0bf8 Merge branch 'MDL-81742-main' of https://github.com/roland04/moodle 2024-06-12 11:13:51 +08:00
Jun Pataleta bb1cddb140 Merge branch 'MDL-81681-main' of https://github.com/sarjona/moodle 2024-06-12 10:57:20 +08:00
Huong Nguyen 1f099bfa12 Merge branch 'MDL-80743-main' of https://github.com/rezaies/moodle 2024-06-12 09:41:22 +07:00
Jun Pataleta f6370e5604 Merge branch 'MDL-81355-main' of https://github.com/lameze/moodle 2024-06-12 10:38:17 +08:00
Michael Aherne c0bbb5f715 MDL-81355 phpdoc: Fix incorrect phpdocs on block_base. 2024-06-12 10:20:58 +08:00
Huong Nguyen ad58d2e306 Merge branch 'MDL-82001' of https://github.com/paulholden/moodle 2024-06-12 09:01:18 +07:00
Huong Nguyen 96d29ef71b Merge branch 'MDL-81522' of https://github.com/stronk7/moodle 2024-06-12 08:46:31 +07:00
Paul Holden c63e3c5756 MDL-82169 user: remove access to non-existent $options array. 2024-06-11 21:24:27 +01:00
ferranrecio fc8dfda112 MDL-82167 core: fix reactive debug panel 2024-06-11 16:15:02 +02:00
Mikel Martín f61201c947 MDL-81742 mod_feedback: Improve 'Edit' page navigation
- Remove 'Use template' from edit page tertiary navigation
- Create a new 'Actions' menu in the tertiary naviagation
- Move 'Import' tertiary navigation to the actions menu
- Move 'Export' button to the actions menu
- Move 'Save as new template' to the actions menu
- Convert add question select into an action menu
- Fix related behat scenarios
2024-06-11 15:30:33 +02:00
Sara Arjona 215a887629 MDL-82162 tool: Switch to admin when executing runtestscenario by CLI
When the runtestscenario is executed via CLI, generators requiring a valid
$USER will fail.
This patch switches to the admin user, consistent with the approach used
in other simlar CLI scripts.
2024-06-11 13:25:44 +02:00
Ilya Tregubov 506070f0a7 Merge branch 'MDL-81510-main' of https://github.com/laurentdavid/moodle 2024-06-11 18:58:56 +08:00
Laurent David 9381343c78 MDL-81510 core_courseformat: Fix activity highlight in index
* When directly accessing the module with the #module-xxx anchor
we should highlight the module as the current page item.
2024-06-11 12:34:20 +02:00
Eloy Lafuente (stronk7) 6c35a65e1a MDL-81522 phpunit: Add a few non-void return types to tests
This is the final (3rd) commit, where we are adding missing
return types to a few tests (using @depends) which return
types are non-void, but something really returned (for consume
by the dependent test).
2024-06-11 11:55:08 +02:00
Eloy Lafuente (stronk7) 4f7631113c MDL-81522 phpunit: Add missing void return type to all tests #2
This commit includes more changes, all them also adding the :void
return type to unit tests missing them.

The difference is that all these changes, while also detected
perfectly by the moodle.PHPUnit.TestReturnType sniff, were not
auto-fixed (like the previous commit ones), because all them
do include some "return" statement and, for safety, we don't
fix them.

All the cases have been visually inspected and confirmed that
the existing "return" statements always belong to anon
functions within the test body and not the test own return statement.
2024-06-11 11:55:08 +02:00
Eloy Lafuente (stronk7) 01148a0816 MDL-81522 phpunit: Add missing void return type to all tests
While this change is not 100% required now, it's good habit
and we are checking for it since Moodle 4.4.

All the changes in this commit have been applied automatically
using the moodle.PHPUnit.TestReturnType sniff and are, exclusively
adding the ": void" return types when missing.
2024-06-11 11:55:07 +02:00
Jun Pataleta 7751f509ef Merge branch 'MDL-76392' of https://github.com/paulholden/moodle 2024-06-11 17:23:55 +08:00
Huong Nguyen a8468e727d MDL-68540 tool_usertours: Remove hideif workaround
We don't need to use the group element to use hideif
for text editor element anymore
2024-06-11 15:31:32 +07:00
Huong Nguyen d8d395cb19 Merge branch 'MDL-68540-main' of https://github.com/davewoloszyn/moodle 2024-06-11 15:28:59 +07:00
Angelia Dela Cruz ff8d888c49 MDL-81332 core_course: Behat test for grade and activity reports display 2024-06-11 15:25:21 +08:00
Jun Pataleta 2c1af4fd9e Merge branch 'MDL-81428-main' of https://github.com/HuongNV13/moodle 2024-06-11 13:41:58 +08:00
Andrew Nicols 12a5c8d366 MDL-81919 core: Correct mapped class location 2024-06-11 10:50:13 +07:00
David Woloszyn 954617d3e3 MDL-68540 form: Correctly target editors in node tree
This fix solves the hideIf and disabledIf form conditions that were not
correctly targetting the editor due to a name attribute mismatch.
2024-06-11 13:05:38 +10:00
Paul Holden b0eae5fa03 MDL-82155 core: define/correct third party library names. 2024-06-10 19:50:52 +01:00
Sara Arjona e336e0660d Merge branch 'MDL-80644_upgrade-http-factory' of https://github.com/ziegenberg/moodle 2024-06-10 16:55:01 +02:00
Sara Arjona 95dfd66a8d Merge branch 'MDL-81949' of https://github.com/paulholden/moodle 2024-06-10 16:46:32 +02:00
Sara Arjona 7a0686acb9 Merge branch 'MDL-81678' of https://github.com/paulholden/moodle 2024-06-10 16:39:10 +02:00
Sara Arjona a83d82b125 Merge branch 'MDL-80635_upgrade-geoip2-php-api-maxmind-db-reader-api' of https://github.com/ziegenberg/moodle 2024-06-10 16:23:26 +02:00
Sara Arjona e18aefa69e Merge branch 'MDL-81676-main' of https://github.com/aanabit/moodle 2024-06-10 16:07:28 +02:00
Sara Arjona 6764cc71ac Merge branch 'MDL-81648-main' of https://github.com/roland04/moodle 2024-06-10 15:49:46 +02:00
Pedro Jordao 0fc14f9177 MDL-69514 Core: Close popover when modal is closed
Currently in Firefox, if we opened a popover that was inside a modal
and closed the modal by pressing the ESC key, the popover remained on
the screen. With this change, we will ensure that popovers are closed
when the modal is closed.
2024-06-10 10:48:08 -03:00
Amaia Anabitarte 267a474154 MDL-81676 core_course: Rename data-sectionid to data-sectionnum
Activity chooser is saving section number in a data attribute called
data-sectionid. We should use data-sectionnum instead to make it easier
to understand.
2024-06-10 15:42:09 +02:00
Sara Arjona cbee116728 Merge branch 'MDL-82041' of https://github.com/paulholden/moodle 2024-06-10 15:17:11 +02:00
Sara Arjona 8382970cd0 Merge branch 'MDL-81741-main' of https://github.com/roland04/moodle 2024-06-10 13:05:59 +02:00
Sara Arjona 4f3712505d Merge branch 'MDL-81675-main' of https://github.com/aanabit/moodle 2024-06-10 12:38:46 +02:00
Sara Arjona 94adf2ae31 Merge branch 'MDL-70972-main' of https://github.com/PhMemmel/moodle 2024-06-10 12:33:18 +02:00
Huong Nguyen 080e89916a MDL-81428 theme_boost: Match .disabled opacity with .text-muted 2024-06-10 17:00:47 +07:00
Huong Nguyen a07054af30 MDL-81428 core: Display the correct status for the contact request 2024-06-10 17:00:46 +07:00
Jun Pataleta 3452601bf3 Merge branch 'MDL-81919-main-squashed' of https://github.com/andrewnicols/moodle 2024-06-10 14:41:03 +08:00
Andrew Nicols 60d8671224 MDL-81919 core: Prioritise autoloader in install 2024-06-10 14:20:26 +08:00
Ilya Tregubov 027407e9c9 Merge branch 'MDL-81510-main' of https://github.com/laurentdavid/moodle 2024-06-10 13:31:25 +08:00
Jun Pataleta 9c706bb48b MDL-81919 core: Minor fixes
* Typo in Jerome Mouneyrac's name.
* Remove other trailing commas in inline arrays.
2024-06-10 13:17:11 +08:00
Jun Pataleta c40f85eb6e Merge branch 'MDL-81919-main-squashed' of https://github.com/andrewnicols/moodle 2024-06-10 12:56:36 +08:00
Andrew Nicols a128312ccb MDL-81919 customfield: Rewrite poor test assertion 2024-06-10 12:13:00 +08:00
Andrew Nicols 0abb2e6b9a MDL-81919 core: Update moved file namespaces 2024-06-10 12:13:00 +08:00
Andrew Nicols 75e8dbb3c5 MDL-81919 core: Fix coding style issues for recently moved code 2024-06-10 12:12:59 +08:00
Andrew Nicols 8c3f18a4eb MDL-81919 core: Move classes out of lib/setuplib.php 2024-06-10 10:04:08 +08:00
Andrew Nicols 302b94c2b7 MDL-81919 core: Add support for autoloading legacy classes 2024-06-10 10:04:08 +08:00
Paul Holden 78f56cffde MDL-76392 reportbuilder: migrate manual to native report aggregation.
Now that system reports support aggregation natively, we can replace
a whole bunch of similar code containing hand-rolled versions with much
simpler/consistent use of API.
2024-06-07 16:08:22 +01:00
Paul Holden da04fc522a MDL-81949 tool_replace: prompt user for unrecognised CLI parameters. 2024-06-07 11:40:57 +01:00
Paul Holden 1acdc7fe82 MDL-81678 enrol: don't escape course name in welcome message. 2024-06-07 11:39:38 +01:00
Paul Holden 41660e88c0 MDL-78773 report_stats: improve display of mode selection element.
Make use of existing theme selectors for navigation elements to style.
2024-06-07 11:33:37 +01:00
Paul Holden 2eb7db3a05 MDL-81781 report_log: escape description selectively on display/export.
Per cd85e090f3 all content was escaped, however we should only do that
when displaying the value in browser or exporting to file format which
supports HTML.
2024-06-07 11:29:10 +01:00
Paul Holden a0d5133f10 MDL-81781 dataformat: public helper method to get writer instance. 2024-06-07 11:29:10 +01:00
Meirza b19b9cb8bf MDL-81644 calendar: The behaviour of event dates in the block calendar
There is a difference in the behaviour of the calendar block when it is on the calendar page and when it is not.
On the calendar page, when the user clicks on the date or link next/previous month or day name in the calendar block,
it will have the effect of changing the URL, which should not happen.

The patch also includes hiding popover after the user clicks the day number. When the user clicks on the date or
is focused on the date and then presses enter on the keyboard, the popover does not automatically close.
To fix this, I added an event type, "click", to be attached to the hidePopover function and added conditioning to
the target element when there was a "click" event.

An additional step was added to the Behat calendar for the click event to ease the testing process.

For the popover, I set the "animation" to false to avoid the random Behat failure caused by the slow animation.
2024-06-07 14:46:44 +07:00
Laurent David ed029faf06 MDL-81510 core_courseformat: Do not reset the scroll position
* Revert the change made in MDL-75762 which would wait and change
  course index selection depending on the actual scroll position
2024-06-07 09:38:54 +02:00
Laurent David 91d89170f7 MDL-81510 core_courseformat: Expand course section to show activity
* When a course activity is specified via an anchor in the URL we
should expand the course content containing the activity
* When we point to a specific activity via an anchor in the URL we should
expand the course index (section) surrounding the actitity.
2024-06-07 09:38:54 +02:00
Sara Arjona 79c85ab22d MDL-81681 course: Make reactive the section page 2024-06-07 09:35:05 +02:00
Sara Arjona 8aef5e6574 MDL-81681 course: Revert changes done in MDL-81575
Now that the section page is reactive, these changes are not
required anymore.
2024-06-07 09:34:11 +02:00
Dan Marsden 963afc4516 MDL-76392 reportbuilder: allow aggregation in system reports.
Co-authored-by: Paul Holden <paulh@moodle.com>
2024-06-07 01:05:35 +01:00
Ferran Recio 7aefcdf9fb MDL-80951 backup: migrate YUI to AMD 2024-06-06 18:07:25 +02:00
Jun Pataleta d3ae1391ab weekly release 4.5dev 2024-06-06 22:30:25 +08:00
Jun Pataleta c42c94279a NOBUG: Add upgrade notes 2024-06-06 22:30:24 +08:00
Jun Pataleta 8ae4cf9fe1 NOBUG: Fixed file access permissions 2024-06-06 22:30:03 +08:00
Jun Pataleta 9b5142ed3f Merge branch 'MDL-81750-main' of https://github.com/davewoloszyn/moodle 2024-06-06 22:02:37 +08:00
Huong Nguyen 353d53b97d Merge branch 'MDL-81813' of https://github.com/christianabila/moodle 2024-06-06 22:02:37 +08:00
Jun Pataleta 6439a4d2b8 Merge branch 'MDL-82045-main' of https://github.com/andrewnicols/moodle 2024-06-06 22:02:37 +08:00
Huong Nguyen 1b4cd89f11 Merge branch 'MDL-81146_disable_buttons' of https://github.com/leonstr/moodle 2024-06-06 22:02:37 +08:00
Andrew Nicols 8a92cb82a6 Merge branch 'MDL-81794-main' of https://github.com/meirzamoodle/moodle 2024-06-06 22:02:36 +08:00
Huong Nguyen 49bef6561b Merge branch 'MDL-81875-main' of https://github.com/laurentdavid/moodle 2024-06-06 22:02:36 +08:00
Huong Nguyen 7934aa46ce Merge branch 'MDL-81749-main' of https://github.com/aanabit/moodle 2024-06-06 22:02:36 +08:00
Huong Nguyen f4c77509f3 Merge branch 'MDL-81989-main' of https://github.com/lameze/moodle 2024-06-06 22:02:36 +08:00
meirzamoodle 6322f15f93 MDL-81890 assign: confirm_sesskey fixed in view_fix_rescaled_null_grades 2024-06-06 22:02:35 +08:00
meirzamoodle 3721672e26 MDL-81890 enrol_lti: Fix sesskey checks 2024-06-06 22:02:35 +08:00
meirzamoodle 40b2fb9a31 MDL-81890 course: Fix sesskey checks 2024-06-06 22:02:35 +08:00
meirzamoodle db2f97a6f4 MDL-81890 tool_moodlenet: Fix sesskey checks 2024-06-06 22:02:35 +08:00
Jun Pataleta 671218e0b9 MDL-81631 backup: Simplify logic using null coalescing operator 2024-06-06 22:02:35 +08:00
Jun Pataleta e0ec62cfe5 Merge branch 'MDL-81631_master' of https://github.com/santoshndev/moodle 2024-06-06 22:02:34 +08:00
Jun Pataleta 6efc4177c5 Merge branch 'MDL-81894-main' of https://github.com/andrewnicols/moodle 2024-06-06 22:02:34 +08:00
Jun Pataleta 814df623b5 Merge branch 'MDL-78198-main' of https://github.com/andrewnicols/moodle 2024-06-06 22:02:34 +08:00
Jun Pataleta 2a216f639f Merge branch 'MDL-82086' of https://github.com/paulholden/moodle 2024-06-06 22:02:34 +08:00
Huong Nguyen 3086b220be Merge branch 'MDL-81397' of https://github.com/paulholden/moodle 2024-06-06 22:02:33 +08:00
Paul Holden 815b884b6c MDL-81778 mod_bigbluebuttonbn: access checks when getting meeting URL. 2024-06-06 22:02:33 +08:00
Stevani Andolo cd2d23d356 MDL-81412 calendar: Sanitise calendar event names 2024-06-06 21:54:46 +08:00
Paul Holden 89376f78af MDL-81857 user: don't check whether address is an identity field.
It can never be selected as one, so the previous comparison could
never pass.
2024-06-06 08:58:36 +01:00
David Woloszyn bf02176281 MDL-81739 tiny_noautolink: Remove URL checking when preventing auto-link 2024-06-06 15:07:06 +10:00
Andrew Nicols 847e1098da MDL-82045 course: Destroy copy course modal instead of hiding it 2024-06-06 10:03:44 +08:00
Andrew Nicols 2e05b9111b MDL-81894 core: system_clock should use the server timezone 2024-06-06 00:17:10 +08:00
Paul Holden d5316aeac6 MDL-80344 calendar: correct no subscriptions language string use.
Ensure expected parameters are present; avoid string concatenation.
2024-06-05 15:53:28 +01:00
Amaia Anabitarte be267a625d MDL-81675 course: Prevent creating subsections into subsections 2024-06-05 16:29:16 +02:00
Amaia Anabitarte f185fdca52 MDL-81749 core_completion: Let custom rules to return failed state 2024-06-05 15:55:04 +02:00
Paul Holden 7c3b8c0a40 MDL-82068 reportbuilder: re-factor SQL JOIN collection to trait.
Replace identical implementation of the same in various classes with
usage of the new trait. Implement constructor property promotion in
modified classes at the same time, to help clean up/clarify class
properties.
2024-06-05 13:36:22 +01:00
lameze bed551eab2 MDL-81989 install: remove unnecessary closing div tags 2024-06-05 13:56:33 +08:00
Cameron Ball 03cb18d6ff MDL-81774 curl: Strip auth headers when redirecting to different host 2024-06-05 02:34:19 +00:00
Jun Pataleta e5d52aa315 Merge branch 'MDL-81982-main' of https://github.com/junpataleta/moodle 2024-06-05 10:30:44 +08:00
David Mudrák a8cdd0d7a4 MDL-81982 lang: Fix strings order
Fixes the strings order in files where CI has detected the wrong order
of modified strings.
2024-06-05 10:25:29 +08:00
David Mudrák 6a95cab8a3 MDL-81982 lang: Use fixed strings in tests, too 2024-06-05 10:25:29 +08:00
Helen Foster 7b8da78e01 MDL-81982 lang: Import fixed English strings (en_fix) 2024-06-05 10:25:28 +08:00
Huong Nguyen 520a84f471 Merge branch 'MDL-81970-plagiarism_upgrade_txt' of https://github.com/leonstr/moodle 2024-06-05 09:13:29 +07:00
Huong Nguyen c3a0cc0358 Merge branch 'MDL-81751-main' of https://github.com/durzo/moodle 2024-06-05 08:55:39 +07:00
David Woloszyn 92fc45fb97 MDL-81750 form: Add selector to match filemanager in group 2024-06-05 09:34:21 +10:00
Andrew Nicols d2909a5e3d Merge branch 'MDL-81940' of https://github.com/paulholden/moodle 2024-06-04 22:28:50 +08:00
Laurent David 6a2c1823ff MDL-81875 mod_data: Revert database autolink removal
Autolinks are used in the database for text fields via
the auto-linking filter.
The revert is partial here because of changes made
in MDL-70384 to all field forms/templates

This reverts commit 42edaba5 from MDL-80949
2024-06-04 16:08:16 +02:00
Paul Holden 1ab6151151 MDL-82086 theme_boost: consistent selector for textarea form controls.
In a similar vein to 31f6039635, we shouldn't assume form controls are
always descendents of `.mform` (e.g. the messaging drawer input).
2024-06-04 14:34:48 +01:00
Paul Holden 306d733f5f MDL-81657 libraries: upgrade to version 1.3.73 of Minify. 2024-06-04 11:18:27 +01:00
Paul Holden d457009418 MDL-81659 libraries: upgrade to version 1.9.1 of loglevel. 2024-06-04 11:17:36 +01:00
Paul Holden e08afd3cc6 MDL-81665 libraries: upgrade to version 15.1.2 of emoji-data. 2024-06-04 10:52:12 +01:00
Paul Holden 90a4216446 MDL-81397 courseformat: define section editing capabilities.
This ensures consistency for current page instance, when rendering
content in response to fragment AJAX requests.
2024-06-04 09:00:11 +01:00
Philipp Memmel 9ca4975d0d MDL-70972 format_singleactivity: Apply new behavior to behat test 2024-06-04 06:29:05 +00:00
Huong Nguyen 808a8679bf Merge branch 'MDL-81936' of https://github.com/paulholden/moodle 2024-06-04 13:14:58 +07:00
Kevin Percy 3ae407f466 MDL-64325 grade: Optimise grade calculation queries
Co-authored-by: Guy Thomas <brudinie@gmail.com>
2024-06-04 12:48:32 +08:00
Philipp Memmel 63c0495c86 MDL-70972 format_singleactivity: Show activities when creating course
Co-authored-by: Laurent David <lmedavid@gmail.com>
2024-06-04 04:29:06 +00:00
Huong Nguyen 1d680644c2 Merge branch 'MDL-81955' of https://github.com/paulholden/moodle 2024-06-04 10:33:21 +07:00
Andrew Nicols 1790452026 Merge branch 'MDL-80208' of https://github.com/paulholden/moodle 2024-06-04 11:06:34 +08:00
Juan Leyva 36e0395bb9 MDL-80959 tool_mobile: Use different user keys for QR and auto login 2024-06-04 10:32:48 +08:00
Andrew Nicols 0800617868 Merge branch 'MDL-82047' of https://github.com/paulholden/moodle 2024-06-04 10:29:00 +08:00
Andrew Nicols c5820bbc6e Merge branch 'MDL-81321' of https://github.com/paulholden/moodle 2024-06-04 09:55:35 +08:00
Andrew Nicols e96ac335e1 Merge branch 'MDL-81572' of https://github.com/paulholden/moodle 2024-06-04 09:54:12 +08:00
Andrew Nicols aa43ded0c7 Merge branch 'MDL-82055' of https://github.com/paulholden/moodle 2024-06-04 09:50:13 +08:00
Mikel Martín 95f4f55648 MDL-81741 mod_feedback: Create a new 'Questions' secondary menu item 2024-06-03 16:35:45 +02:00
Paul Holden 74384ce875 MDL-81940 core: deprecate RC4 encryption library methods.
Switch current usage to secure `\core\encryption` alternative.
2024-06-03 13:43:41 +01:00
ferranrecio 4e9a8c6cd7 MDL-81885 tool_generator: add admin settings generator
The tool_generator creates a testing scenario that can
execute all steps from behat_data_generators (with some
limitations). However, it cannot set any admin settings,
which limits the tool's ability to generate many
real test scenarios.
2024-06-03 11:53:54 +02:00
Paul Holden dd55e32618 MDL-81534 tool_generator: standardize user creation language string. 2024-06-03 09:43:09 +01:00
Paul Holden 6cb06dc43a MDL-81572 editor_tiny: use standard plugin name in editor help dialog. 2024-06-03 09:40:08 +01:00
Huong Nguyen 6d715e19f3 Merge branch 'MDL-81544-main' of https://github.com/rezaies/moodle 2024-06-03 12:04:58 +07:00
Huong Nguyen 6e1197d0bf Merge branch 'MDL-73735_duplicate-line-course-rest-php' of https://github.com/ziegenberg/moodle 2024-06-03 11:52:23 +07:00
Huong Nguyen 2407913de4 Merge branch 'MDL-82009-main' of https://github.com/sarjona/moodle 2024-06-03 11:36:17 +07:00
Paul Holden a33e54c08f MDL-82041 reportbuilder: switch time-sensitive code to new Clock API.
Where current implementation, and more specifically tests, rely on the
current time then replace that with the PSR-20 Clock from 298c13ac3b.

Applicable updates to the date filter and report scheduling calculation.
2024-05-31 15:37:42 +01:00
Paul Holden 22327a1489 MDL-82055 output: replace usage of named templatable interface.
It's not available during, and breaks, site installation. The output
class doesn't necessarily need it in 78db6bbce8, so switch to simple
templatable interface instead.
2024-05-31 13:04:20 +01:00
Mikel Martín e3c36e48cc MDL-81648 navigation: Add delegated section logic to section nodes 2024-05-31 10:50:20 +02:00
Mikel Martín 932b094134 MDL-81648 course: Add new sectiondelegatemodule class
- Created sectiondelegatemodule abstract class for those delegated sections
managed by a module
- This class will override get_parent_section from the base class, retrieving
the parent section from the module
2024-05-31 10:50:20 +02:00
Mikel Martín b4ecd9d805 MDL-81648 course: Add a method to retrieve delegate section parent
- New 'get_parent_section()' function added to sectiondelegate abstract class
2024-05-31 10:50:20 +02:00
Sara Arjona 3938b26a08 Merge branch 'MDL-81850' of https://github.com/paulholden/moodle 2024-05-31 10:44:33 +02:00
Shamim Rezaie b7e6a176e6 MDL-80743 mod_assign: Add automatic attempt reopening option 2024-05-31 17:40:23 +10:00
Paul Holden 113b64c2de MDL-82047 dml: correct constant name in large integer test docblock. 2024-05-31 07:19:23 +01:00
Sara Arjona 0240478571 MDL-82009 course: Course blocks should be displayed in section page too 2024-05-31 08:16:49 +02:00
Ilya Tregubov 6e89016c30 Merge branch 'MDL-77685' of https://github.com/paulholden/moodle 2024-05-31 09:04:17 +08:00
Paul Holden 0d23988cfc MDL-81577 mod: correct arguments when formatting text for RSS. 2024-05-30 19:17:22 +01:00
Paul Holden faee1cd58e MDL-82047 analytics: remove 32-bit integer checks for maximum time. 2024-05-30 18:17:44 +01:00
Paul Holden 7e206c92cf MDL-82001 mod_quiz: respect user language in draft save message text. 2024-05-30 16:04:26 +01:00
Sara Arjona bcd8e0d6ed weekly release 4.5dev 2024-05-30 17:00:19 +02:00
Sara Arjona 5d6c6bf81c NOBUG: Add upgrade notes 2024-05-30 17:00:19 +02:00
Sara Arjona 4c9e2e4d0d NOBUG: Fixed SVG browser compatibility 2024-05-30 17:00:00 +02:00
Jun Pataleta 05983317a5 Merge branch 'MDL-80831-main' of https://github.com/HuongNV13/moodle 2024-05-30 18:25:36 +08:00
Huong Nguyen a74583cbf0 MDL-80831 core: Add missing classname for privacy url 2024-05-30 17:13:59 +07:00
Paul Holden 6a8f6dd925 MDL-81850 availability_group: correctly retrieve groups for given user. 2024-05-30 10:13:31 +01:00
Jun Pataleta 14eac824ed Merge branch 'MDL-80640_upgrade-guzzlehttp' of https://github.com/ziegenberg/moodle 2024-05-30 12:00:28 +08:00
Huong Nguyen 47216b5db5 Merge branch 'MDL-80973-master' of https://github.com/jleyva/moodle 2024-05-30 10:37:42 +07:00
Andrew Nicols b17b4ad4a3 MDL-68262 assignfeedback_editpdf: Correct args to make_request_directory 2024-05-30 09:53:19 +07:00
Huong Nguyen 5e7e6ad9b7 Merge branch 'MDL-77195' of https://github.com/paulholden/moodle 2024-05-30 09:30:03 +07:00
Huong Nguyen fc72b6a987 Merge branch 'MDL-54105-integration_master' of https://github.com/praxisdigital/moodle 2024-05-30 09:01:39 +07:00
Andrew Nicols 93abcb87b8 Merge branch 'MDL-81490-main' of https://github.com/laurentdavid/moodle 2024-05-29 21:11:59 +08:00
Huong Nguyen aa09138d75 MDL-81212 tiny_recordrtc: Screen-recorder improvements and cleanups 2024-05-29 19:54:51 +07:00
Huong Nguyen 89e78f75b3 Merge branch 'MDL-81212-master' of https://github.com/NashTechOpenUniversity/moodle 2024-05-29 19:50:47 +07:00
Frederik Milling Pytlick 3590629dca MDL-54105 mod_assign: Refactored the way that the default is set
Improved the way the default is set, now requiring less code and being more readable
2024-05-29 14:44:47 +02:00
Sara Arjona 9a72323f63 Merge branch 'MDL-81983' of https://github.com/lostrogit/moodle 2024-05-29 14:07:25 +02:00
Sara Arjona e93351e488 Merge branch 'MDL-81901-progress-cli' of https://github.com/brendanheywood/moodle 2024-05-29 13:32:26 +02:00
Sara Arjona e575b6ae7c Merge branch 'MDL-80911-main' of https://github.com/HuongNV13/moodle 2024-05-29 13:19:16 +02:00
Jun Pataleta 4036b4a800 Merge branch 'MDL-81779' of https://github.com/paulholden/moodle 2024-05-29 17:02:13 +08:00
Jun Pataleta 65053f6584 Merge branch 'MDL-68262-main' of https://github.com/andrewnicols/moodle 2024-05-29 16:19:04 +08:00
Jun Pataleta 70c29d8d68 Merge branch 'MDL-80275-main' of https://github.com/andrewnicols/moodle 2024-05-29 15:30:46 +08:00
Andrew Nicols c14253b2eb Merge branch 'MDL-80831-main' of https://github.com/junpataleta/moodle 2024-05-29 14:26:53 +08:00
Andrew Nicols f445245b9e Merge branch 'MDL-81609_main' of https://github.com/marxjohnson/moodle 2024-05-29 10:50:42 +08:00
Jun Pataleta 6bd5ef1dce MDL-80831 theme: Set a vertical padding for footer links
This is to increase the target size of links within the footer and
meet WCAG 2.2 Level AA Success Criterion 2.5.8
2024-05-29 10:39:18 +08:00
Jun Pataleta 1085bf7897 MDL-80831 gradereport_grader: Remove unnecessary setting of aria-hidden
- If an element is being hidden visually with `display: none;` (e.g. by
using the class `.d-none`), there's no need to set `aria-hidden` because
it is already hidden from the accessibility tree.
- Setting `aria-hidden=false` is also not recommended and it's better to
remove the `aria-hidden` attribute instead of setting it to false.
2024-05-29 10:39:17 +08:00
Jun Pataleta 89c6376fcc MDL-80831 behat: Re-enable target-size rule for accessibility tests 2024-05-29 10:39:17 +08:00
meirzamoodle ba8cb7874f MDL-81794 core: Fix the TLS issue on the Redis
The fix covers two places:
- The Redis session.
- The Redis cache store.

The PHP Redis has the option to establish the connection using TLS/SSL instead of using the "tls://" prefix.
This is done to ensure consistency with the Redis cluster connection,
as the code for both single and cluster connections is located in one place.
2024-05-29 09:14:27 +07:00
Andrew Nicols 9745580bf4 Merge branch 'MDL-81282' of https://github.com/paulholden/moodle 2024-05-29 09:45:00 +08:00
Andrew Nicols 960f27eb5c Merge branch 'MDL-82015' of https://github.com/ak4t0sh/moodle 2024-05-29 09:08:16 +08:00
Andrew Nicols 426960249f Merge branch 'MDL-81597-main' of https://github.com/roland04/moodle 2024-05-28 23:48:50 +08:00
Andrew Nicols 06e43df2fc MDL-81733 mod_lesson: Coding style fixes 2024-05-28 23:45:13 +08:00
Andrew Nicols 06196de3ec Merge branch 'MDL-81733-main' of https://github.com/izendegi/moodle 2024-05-28 22:51:01 +08:00
Andrew Nicols 398e690d0e Merge branch 'MDL-81589-main' of https://github.com/sarjona/moodle 2024-05-28 22:43:04 +08:00
Mikel Martín 78db6bbce8 MDL-81597 theme_boost: Fix header bar alignment
- Refactot context_header class to implement named templatable so
render_context_header in core and theme_boost can be removed
- Refactor context_header to use templates
- Fix context header layout and styles
2024-05-28 16:37:57 +02:00
Arnaud Trouvé cb0db47609 MDL-82015 mod_bigbluebuttonbn: Fix date formatting during import 2024-05-28 15:23:41 +02:00
Huong Nguyen 84a2fdc2c7 MDL-54105 mod_assign: Move upgrade notes 2024-05-28 15:27:21 +07:00
Huong Nguyen 175e48bc08 Merge branch 'MDL-54105-master-default_grade_on_mod_assign' of https://github.com/praxisdigital/moodle 2024-05-28 15:21:39 +07:00
Frederik Milling Pytlick cf7e43666b MDL-54105 mod_assign: Added default gradetype and gradescale
Added 2 new settings to mod_assign and made moodle core look for them to set the default grade values.
2024-05-28 09:10:20 +02:00
Andrew Nicols f144ede33c Merge branch 'MDL-82004' of https://github.com/paulholden/moodle 2024-05-28 14:30:30 +08:00
Andrew Nicols 94d5733a2d Merge branch 'MDL-81411-main' of https://github.com/ilyatregubov/moodle 2024-05-28 14:14:17 +08:00
Andrew Nicols 8639237c62 Merge branch 'MDL-81822' of https://github.com/paulholden/moodle 2024-05-28 14:05:01 +08:00
Andrew Nicols 3a60821242 Merge branch 'MDL-81870' of https://github.com/paulholden/moodle 2024-05-28 13:57:13 +08:00
Huong Nguyen 77bb82fb87 Merge branch 'MDL-78768_import-multiple-new-grade-items' of https://github.com/ziegenberg/moodle 2024-05-28 12:32:02 +07:00
Huong Nguyen b32fcf0a0a Merge branch 'MDL-81903-main' of https://github.com/andrewnicols/moodle 2024-05-28 12:07:49 +07:00
Andrew Nicols d74740e3a1 MDL-81897 tool_mobile: Coding style fix 2024-05-28 11:40:46 +08:00
toanlam b91b442a80 MDL-81212 tiny_recordrtc: Add Screen-recorder button 2024-05-28 10:30:14 +07:00
Andrew Nicols 6aa05bb847 Merge branch 'MDL-81897-master' of https://github.com/jleyva/moodle 2024-05-28 11:27:35 +08:00
Andrew Nicols 9f471d77b8 Merge branch 'MDL-81757' of https://github.com/paulholden/moodle 2024-05-28 10:24:38 +08:00
Andrew Nicols 7fc931cdd8 Merge branch 'MDL-81698' of https://github.com/stronk7/moodle 2024-05-28 10:10:39 +08:00
Huong Nguyen f1528765a5 Merge branch 'MDL-81915' of https://github.com/AnupamaSarjoshi/moodle 2024-05-28 08:57:26 +07:00
Andrew Nicols e8f8a4c494 Merge branch 'MDL-74582' of https://github.com/paulholden/moodle 2024-05-28 09:52:14 +08:00
Andrew Nicols d69333acc3 MDL-72786 core: Style fix on upgrade notes 2024-05-28 09:49:50 +08:00
Andrew Nicols f8ba03ce1a Merge branch 'MDL-72786' of https://github.com/paulholden/moodle 2024-05-28 09:43:32 +08:00
Andrew Nicols d6d795cd0f MDL-81872 course: Coding style improvements 2024-05-28 09:25:39 +08:00
Andrew Nicols 455cdd8c5b Merge branch 'MDL-81872-main' of https://github.com/sarjona/moodle 2024-05-28 09:20:14 +08:00
Andrew Nicols fe3f6350d9 Merge branch 'MDL-78942' of https://github.com/paulholden/moodle 2024-05-28 09:00:35 +08:00
Juan Leyva 0e966da5e6 MDL-80973 tool_policy: Fix edge case 2024-05-27 17:19:53 +02:00
Sara Arjona 47cd442dc9 MDL-81872 course: Fix behat errors after improving reset 2024-05-27 16:18:54 +02:00
Sara Arjona cb72a08193 MDL-81872 course: Improve the summary page for reset 2024-05-27 16:18:54 +02:00
Sara Arjona 22cc975705 MDL-81872 course: Improve wording and workflow for reset 2024-05-27 16:18:54 +02:00
Sara Arjona b2e325836b MDL-81872 workshop: Fix coding style 2024-05-27 16:18:54 +02:00
Mikel Martín e1d2a046d3 MDL-81597 renderer: Add page getter method to renderer_base 2024-05-27 11:38:39 +02:00
Sara Arjona b25d60526e MDL-81872 wiki: Fix coding style 2024-05-27 09:23:25 +02:00
Sara Arjona dd5a82ede7 MDL-81872 book: Fix coding style 2024-05-27 09:23:25 +02:00
Sara Arjona 727e167946 MDL-81872 lesson: Fix coding style 2024-05-27 09:23:25 +02:00
Sara Arjona 4a02c6de5d MDL-81872 glossary: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona 2d595135b6 MDL-81872 forum: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona 8866f34208 MDL-81872 data: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona 278fab6a50 MDL-81872 choice: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona 9bfc49c5bc MDL-81872 chat: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona b77c6c5c21 MDL-81872 feedback: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona 6c78f19365 MDL-81872 assign: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona c088bec544 MDL-81872 course: Fix coding style 2024-05-27 09:23:24 +02:00
Sara Arjona f11f702f9d MDL-81589 search: Use pix method to display global search icons
Rather than exclusively relying on the image icon in the global search
documents, the 'pix' method is used now, which allows to incorporate
FontAwesome icons whenever they're available.
2024-05-27 09:19:17 +02:00
Laurent David eff27135a6 MDL-81490 lib: Identify all codemirror libraries
* Build script will list all dependencies and versions
* Thirdpartylibs.xml will list all dependencies
2024-05-27 07:37:20 +02:00
Brendan Heywood 495cbdfbec MDL-81901 core: Fix progress bar bug in cli in non tty mode 2024-05-26 22:41:19 +10:00
Eloy Lafuente (stronk7) 76e41b936d MDL-81698 phpunit: Convert some skipped tests into useful ones
After some tests, it seems that we can safely cover
phpunit_util::reset_all_data() executing it within
own basic_test self tests.

That way we can confirm that the reset code is doing its job
and detecting unexpected changes at various levels (database,
globals, ...).

Note that, in order to catch the E_USER_WARNINGS, for PHPUnit 9.6
and up, we have to convert them to exceptions, because the notice/
warning/error expectations have been deprecated and will be removed
in PHPUnit 10. So we are using a trick, already used also by
advanced_test. And, no matter that we are repeating the trick
a few times, that's ok in order to have all its uses controlled.
2024-05-25 17:19:44 +02:00
Eloy Lafuente (stronk7) 018e6e1fc8 MDL-81698 phpunit: Apply various fixes towards 1by1 execution
The changes here are heterogeneous:
- Include stuff that is not available (other test has included it).
  Sometimes local to a unit test, others in setupBeforeClass() or
  globally, ... depends on every case.
- Rename some tests (namespaces, test name, ...) towards getting it
  running.
- Amend small bits here and there.

Important note: I've left any "cosmetic" warning out from the
changes, only a few errors (like long array syntax) have been fixed.
2024-05-25 17:19:44 +02:00
Eloy Lafuente (stronk7) 6fe0e66d06 MDL-81698 phpunit: Uncomment some tests and make them skipped
There are a few tests in core that are commented since the
beginning. That's not useful at all, so with this commit we
are un-commenting them instead.

Note that this is an initial step to have them back with skipped
outcome. Later in this issue we'll decide about to keep them or
completely remove them (each test can have a different outcome).
2024-05-25 17:19:43 +02:00
Eloy Lafuente (stronk7) 3e486ad9ca MDL-81698 phpunit: New workflow to run tests 1by1 @ GitHub
This workflow just finds all the individual
tests available in core (all the test_ methods
in _test.php file) and runs them one by one,
with a total isolation, because each one is
executed by a different PHPUnit invocation..

Any test ending with error, will be reported
as part of the output.

Note that we are not using PHPUnit's own
isolation here, just running them one by one.
2024-05-25 17:19:43 +02:00
Paul Holden c4b06e48a6 MDL-72786 report_eventlist: final removal of deprecated event methods. 2024-05-24 22:27:03 +01:00
Paul Holden b5e6b1d3a7 MDL-81321 mod_data: deprecate fields page "View template" footer. 2024-05-24 22:22:38 +01:00
Paul Holden c9d2e72943 MDL-81282 dml: replace occurrences of large integers with new constant.
Where calling code was previously using either the 32-bit limit, or a
value equal to SQL_INT_MAX inside a database read/write, instead use
our new constant.
2024-05-24 22:19:54 +01:00
Paul Holden 96ded90e68 MDL-81282 dml: define SQL_INT_MAX, to determine large supported ints.
The constant can be used by calling code in place of various adhoc
versions of the same, when they require a large value with known cross
platform support.
2024-05-24 22:19:54 +01:00
Ilya Tregubov 45227cb644 MDL-81411 mod_assign: Use choicelist for Additional attempts. 2024-05-24 19:38:49 +08:00
Anupama Sarjoshi f0168354b6 MDL-81915 admin: Fix test_admin_output_new_settings_by_page unit test 2024-05-24 11:15:38 +01:00
Iñigo Zendegi c3386a497c MDL-81733 lesson: Support filters on lesson activity link 2024-05-24 09:42:07 +02:00
Ilya Tregubov d32844ce29 weekly release 4.5dev 2024-05-24 10:51:52 +08:00
Ilya Tregubov 8f9e93f5a3 NOBUG: Add upgrade notes 2024-05-24 10:51:52 +08:00
Ilya Tregubov 9d38dcbca4 NOBUG: Fixed file access permissions 2024-05-24 10:51:30 +08:00
Andrew Nicols a4484911bf MDL-80741 mod_assign: Move upgrade notes 2024-05-24 09:25:29 +07:00
Andrew Nicols f5c2bb717e MDL-78198 file: Stop sending the Accept-Charset header in curl
See notes on:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Charset

Warning: Do not use this header. Browsers omit this header and servers
should ignore it.

The Accept-Charset request HTTP header was a header that advertised a
client's supported character encodings. It is no longer widely used.

UTF-8 is well-supported and the overwhelmingly preferred choice for
character encoding. To guarantee better privacy through less
configuration-based entropy, all browsers omit the Accept-Charset
header.
2024-05-23 22:16:46 +08:00
Paul Holden 9fec520814 MDL-82004 assignsubmission_onlinetext: no concatenation in lang strings. 2024-05-23 13:06:25 +01:00
Huong Nguyen 48bc966a59 Merge branch 'MDL-81914-main' of https://github.com/andrewnicols/moodle 2024-05-23 11:01:38 +07:00
Mathew May 66f8feef7d MDL-79885 qtype_ordering: Add learner behat testing 2024-05-23 11:40:18 +08:00
Huong Nguyen 1776003d39 MDL-81407 core_question: Update upgrade.txt file to document new upgrade note 2024-05-23 10:37:46 +07:00
Huong Nguyen f2af8e005f Merge branch 'MDL-81407' of https://github.com/AnupamaSarjoshi/moodle 2024-05-23 10:33:36 +07:00
Huong Nguyen 22859fa326 Merge branch 'MDL-81992' of https://github.com/timhunt/moodle 2024-05-23 09:44:55 +07:00
Huong Nguyen 571d3d8821 Merge branch 'MDL-81862' of https://github.com/paulholden/moodle 2024-05-23 08:47:27 +07:00
Paul Holden 2ccdcca928 MDL-81870 core: re-factor duplicate plugin savepoint implementations. 2024-05-22 20:59:43 +01:00
Paul Holden 5f8aaf220f MDL-81870 core: validate component during upgrade task savepoint. 2024-05-22 20:59:42 +01:00
Tim Hunt 38227bbcc2 MDL-81992 question bank: disable create question button until ready
Previously, you could click the button before it was ready, and that
just led to an error, which was very silly usability.
2024-05-22 16:11:08 +01:00
Daniel Ziegenberg 6cdbcda8fd MDL-78768 grade: fix import multiple new grade items
Prior to this change, when importing grades from .csv (or another
method) and you choose to map the grades to a 'New grade item', you get
the following error message:
```
"Mapping collision detected - two fields maps to the same grade item
new."
```
A workaround existed that required users to import one column at a time,
which was cumbersome.

This change fixes importing multiple new grade items and adds a behat
test.

Co-authored-by: hehe009 <max_kan@hotmail.com>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-22 12:21:22 +02:00
Paul Holden 493be63757 MDL-80208 cachestore_redis: ensure empty set many with TTL don't throw. 2024-05-21 22:33:07 +01:00
Shamim Rezaie 633fde271f Merge branch 'MDL-80741-main' of https://github.com/mihailges/moodle 2024-05-22 01:28:46 +10:00
Mihail Geshoski d5e7960139 MDL-80741 mod_assign: Remove 'none' from 'attemptreopenmethod' setting
The default option "ASSIGN_ATTEMPT_REOPEN_METHOD_NONE" for the
"attemptreopenmethod" setting, which disallows multiple attempts at the
assignment, has been removed. This option was unnecessary because
limiting attempts to 1 through the "maxattempts" setting achieves the
same behavior.
Apart from removing this setting option (including removal of usage in
code and updating existing data in the DB), these changes include:
- Introducing a more effective progressive disclosure by allowing the
  "maxattempts" setting to control the visibility of the
  "attemptreopenmethod" setting in the form.
- String improvements to the labels and help text for the "maxattempts"
  and "attemptreopenmethod" settings
- Changing the default value of the "maxattempts" setting from
  "unlimited" to "1"
2024-05-21 23:05:18 +08:00
Santosh Nagargoje ba9f418632 MDL-81631 backup: Added null parameter fix 2024-05-21 17:10:32 +05:30
Daniel Ziegenberg e55496ae2a MDL-73735 course: remove duplicate line of code
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
Co-authored-by: Davo Smith <davo.smith@synergy-learning.com>
2024-05-21 13:11:20 +02:00
Huong Nguyen 5d5726d86d Merge branch 'MDL-81652-main' of https://github.com/lucaboesch/moodle 2024-05-21 17:33:30 +07:00
Huong Nguyen b4783d39dd Merge branch 'MDL-76765-main' of https://github.com/lucaboesch/moodle 2024-05-21 17:28:23 +07:00
Carlos Castillo 8c4c52bc31 MDL-81983 admin: Remove double capability check 2024-05-21 12:16:37 +02:00
Huong Nguyen 37c79e282d MDL-74581 grade: Update upgrade.txt file to document new upgrade note 2024-05-21 16:51:30 +07:00
Huong Nguyen 5fb2dd40fa Merge branch 'MDL-74581' of https://github.com/paulholden/moodle 2024-05-21 16:45:35 +07:00
Huong Nguyen eaf2fe4f8a Merge branch 'MDL-81538-main' of https://github.com/rezaies/moodle 2024-05-21 16:31:35 +07:00
Huong Nguyen 1de7c31ddd MDL-81125 core: Fix illegal whitespace 2024-05-21 15:42:48 +07:00
Huong Nguyen 1b02c68e72 MDL-81125 core: Fix minor typos 2024-05-21 15:35:15 +07:00
Huong Nguyen bd9631bda5 Merge branch 'MDL-81125-main-alt' of https://github.com/andrewnicols/moodle 2024-05-21 15:33:09 +07:00
Paul Holden 62783eeef2 MDL-81862 mod_assign: add activity field files for backup/restore. 2024-05-21 09:05:58 +01:00
Ilya Tregubov c3453a270c Merge branch 'MDL-81318' of https://github.com/paulholden/moodle 2024-05-21 12:48:51 +08:00
Shamim Rezaie bf85928261 Merge branch 'MDL-80599-main-2' of https://github.com/ilyatregubov/moodle 2024-05-21 14:22:45 +10:00
Huong Nguyen 1102b53db8 Merge branch 'MDL-81948-main' of https://github.com/ferranrecio/moodle 2024-05-21 10:02:57 +07:00
Huong Nguyen ca329dbe22 Merge branch 'MDL-81904' of https://github.com/paulholden/moodle 2024-05-21 09:43:31 +07:00
Huong Nguyen fc42f2f131 Merge branch 'MDL-80583-main' of https://github.com/stevandoMoodle/moodle 2024-05-21 09:24:16 +07:00
Luca Bösch afbe926cb5 MDL-76765 qtype_ddmarker: Show multiple tries options correctly. 2024-05-20 22:07:05 +02:00
Luca Bösch f080e65500 MDL-76765 question: Show multiple tries options correctly. 2024-05-20 22:07:05 +02:00
Luca Bösch f0b8121993 MDL-81652 qtype_multianswer: Tackle Bootstrap 5 compatibility. 2024-05-20 21:29:39 +02:00
Paul Holden 736e398ea9 MDL-81730 assignsubmission_file: deterministic submission file order. 2024-05-20 20:14:07 +01:00
Paul Holden f1bc57e220 MDL-81822 tool_licensemanager: slightly relax license shortname type.
The "*-4.0" license versions could not be managed currently.
2024-05-20 17:44:42 +01:00
Paul Holden e69e9adf9f MDL-81761 gradingform_guide: remove duplicate click of frequent comment. 2024-05-20 17:39:06 +01:00
Andrew Nicols 0964cd5b69 MDL-81125 core: Update upgrade.txt files to document new upgrade notes 2024-05-20 22:26:45 +08:00
Andrew Nicols b7d029ab69 MDL-81125 core: Add tooling to generate developer upgrade notes
Usage:

    node .grunt/upgradenotes.mjs

      OR

    npm run upgradenote

Arguments can be provided to specify the issue number, component,
message, and type of change.

    node .grunt/upgradenotes.mjs -- \
        -c [component] \
        -i [issue number] \
        -t [type] \
        -m [message]

        OR

    npm run upgradenote -- \
        -c [component] \
        -i [issue number] \
        -t [type] \
        -m [message]

Summary Markdown files can be created using:

    node .grunt/upgradenotes.mjs summary

Weekly release files can be created using:

    node .grunt/upgradenotes.mjs release

Final release files can be created using:
using:
    node .grunt/upgradenotes.mjs release [version]

Generally speaking the integration team will be responsible for updating
the UPGRADING.md notes as part of the weekly integration processes.
2024-05-20 22:26:44 +08:00
Leon Stringer b87fbc83f6 MDL-81970 plagiarism: Callbacks wrong way round 2024-05-20 10:58:29 +01:00
Paul Holden ca42ec08a7 MDL-81904 mod_feedback: show export questions only if any present. 2024-05-20 09:27:41 +01:00
Stevani Andolo e5c3199dff MDL-80583 communication_matrix: Ignore unreachable matrix server 2024-05-20 15:09:54 +08:00
Huong Nguyen 9048345750 MDL-80911 Course: Fix missing required files 2024-05-20 10:05:41 +07:00
Huong Nguyen adde5efaf5 Merge branch 'MDL-81929' of https://github.com/paulholden/moodle 2024-05-20 09:19:55 +07:00
Anupama Sarjoshi 691b87e077 MDL-81407 qbank_columnsortorder: Fix error displaying hiddencols
When the question custom fields were deleted, if there were any
hidden columns in qbank Column sort order referring those fields they
were throwing 'Custom field does not exist' exception. Changes done to
ignore such fields and display valid hiddencols, as these references
were breaking the qbank Column sort order and Question bank pages.
2024-05-19 08:51:50 +01:00
Andrew Nicols 4cbc81c7ea MDL-80275 core: Move disable_output_buffering to setup.php
This method is the only reason stopping lib/setuplib.php from being
included after the autoloader and it is single-purposed.
2024-05-18 21:03:54 +08:00
Daniel Ziegenberg 53efc4c73c MDL-80644 libraries: Update http-factory to 1.1.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-17 16:08:10 +02:00
Daniel Ziegenberg ab7a137afa MDL-80635 libraries: Upgrade GeoIP2 and Maxmind DB Reader
- GeoIP2 PHP API 3.0.0
- MaxMind DB Reader API 1.11.1

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-17 15:56:36 +02:00
Paul Holden 87d61cf845 MDL-77195 auth_shibboleth: format plugin login name configuration. 2024-05-17 13:47:21 +01:00
Daniel Ziegenberg 4098184c77 MDL-80640 lib: Update Guzzle library
- GuzzleHttp/Guzzle 7.8.1
- GuzzleHttp/Promises 2.0.2
- GuzzleHttp/PSR7 2.6.2
- Guzzle cache middleware 5.1.0

This brings PHP 8.3 support for Guzzle.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-17 14:26:37 +02:00
Paul Holden 2046151a9f MDL-81955 assignfeedback_editpdf: ensure ghostscript present in tests. 2024-05-17 10:21:36 +01:00
ferranrecio 1df56368ac MDL-81948 theme: fix fallback layout logic
Finding the page layout fallback was trying to get a default layout from
the ancient theme called "base". This default theme do not exists
anymore and defining a wrong layout in a theme is a code mistake that
should not be bypassed.
2024-05-17 10:38:22 +02:00
Andrew Nicols a15301b69b MDL-80275 core: Include autoloader if ABORT_AFTER_CONFIG
This change moves the inclusion of the Moodle class autoloader to above
the ABORT_AFTER_CONFIG handler.
2024-05-17 12:45:44 +08:00
Ilya Tregubov 6be4f78b92 MDL-80599 enrol_guest: Support password update in csv course upload 2024-05-17 11:00:56 +08:00
Ilya Tregubov a45b5583a5 MDL-80599 enrol_self: Support password update in csv course upload 2024-05-17 11:00:55 +08:00
Paul Holden 39b2f4a6fc MDL-81936 editor_tiny: handle default filepicker/draftitem config.
If they aren't passed in editor options config, ensure they still
observe the registered option processor (type) for each.
2024-05-16 18:46:43 +01:00
Andrew Nicols 2b64f03e59 MDL-81903 core: Add exception as L2 API 2024-05-16 23:03:36 +08:00
ferranrecio 5b7fc89152 MDL-80951 backup: add accessibility labels to schema fields 2024-05-16 16:57:56 +02:00
ferranrecio 29128ee200 MDL-80951 backup: fix coding style 2024-05-16 16:30:39 +02:00
Andrew Nicols 486bc4bf7e MDL-81125 core: Provide a list of standard components 2024-05-16 22:13:12 +08:00
Jordan Tomkinson 7e31b629e8 MDL-81751 ddl: new reserved keywords in Aurora MySQL database engine 2024-05-16 13:39:24 +01:00
Paul Holden 72beaf65d8 MDL-81929 user: reset the selected bulk action when nothing selected.
In the case of bulk user actions that are implemented via Javascript,
we should ensure that once they are complete the selected action is
reset to its default state of "Choose..." so that it can be selected
again.
2024-05-16 12:57:07 +01:00
Huong Nguyen f49d120761 weekly release 4.5dev 2024-05-16 18:25:11 +07:00
Huong Nguyen d4cf838198 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2024-05-16 18:25:08 +07:00
Huong Nguyen a7f6329e2e Merge branch 'MDL-81503-main' of https://github.com/aanabit/moodle 2024-05-16 09:59:45 +07:00
Huong Nguyen 994266340d Merge branch 'MDL-81598-main' of https://github.com/laurentdavid/moodle 2024-05-16 09:50:48 +07:00
Huong Nguyen d503a09fff Merge branch 'MDL-81543' of https://github.com/paulholden/moodle 2024-05-16 09:38:31 +07:00
Huong Nguyen bca4a42222 Merge branch 'MDL-79838-master' of https://github.com/andelacruz/moodle 2024-05-16 09:21:38 +07:00
Andrew Nicols b40fad605b MDL-81914 core_competency: Stop using a deprecated class 2024-05-15 23:50:16 +08:00
Andrew Nicols e0b54b9cf2 MDL-81914 core_competency: Remove deprecated invalid_persistent_exception 2024-05-15 23:34:03 +08:00
Paul Holden d4e54a9887 MDL-81287 mod_forum: observe default discussion paging value. 2024-05-15 13:23:10 +01:00
Paul Holden 06723c458d MDL-81318 assignsubmission_onlinetext: ignore blank content download. 2024-05-15 09:33:15 +01:00
Amaia Anabitarte 0f73bb6cef MDL-81503 core_course: Improve section not found error 2024-05-15 09:31:39 +02:00
Angelia Dela Cruz 69d1808ca3 MDL-79838 mod_h5pactivity: Behat for H5P activity grade settings control 2024-05-15 14:23:27 +08:00
Shamim Rezaie ee33a59a2a Merge branch 'MDL-81530-main' of https://github.com/HuongNV13/moodle 2024-05-15 15:12:25 +10:00
Huong Nguyen 5011731db0 Merge branch 'MDL-51360-main-2' of https://github.com/ilyatregubov/moodle 2024-05-15 10:43:46 +07:00
Ilya Tregubov 1623093b3b Merge branch 'MDL-70441-main-fix' of https://github.com/lameze/moodle 2024-05-15 09:30:15 +08:00
Simey Lameze 26f408ecc2 MDL-70441 mod_assign: change condition to check if variable is not empty 2024-05-15 07:06:47 +08:00
Shamim Rezaie f7e78d9ed5 MDL-81544 theme_boost: Don't change the display of .visibleifjs elements 2024-05-15 04:12:17 +10:00
Sara Arjona a7097cd8d4 Merge branch 'MDL-81168' of https://github.com/paulholden/moodle 2024-05-14 17:36:52 +02:00
Sara Arjona f9e0134901 Merge branch 'MDL-73956_final-deprecation-of-function-forum_update_subscriptions_button' of https://github.com/ziegenberg/moodle 2024-05-14 17:32:47 +02:00
Sara Arjona 1f08a61374 Merge branch 'MDL-80683-main' of https://github.com/sebastsg/moodle 2024-05-14 17:26:44 +02:00
Sara Arjona b1b764e2a9 Merge branch 'MDL-77661-main' of https://github.com/aanabit/moodle 2024-05-14 17:13:44 +02:00
Sara Arjona a865e34983 Merge branch 'MDL-81236-main' of https://github.com/tsmilan/moodle 2024-05-14 17:11:06 +02:00
Sara Arjona 687381ee04 Merge branch 'MDL-81805-main' of https://github.com/lameze/moodle 2024-05-14 17:05:30 +02:00
Juan Leyva d963e2ed0e MDL-81897 tool_mobile: Force partitioned cookies on inapp browser 2024-05-14 13:43:29 +02:00
Ilya Tregubov 8223afd93e Merge branch 'MDL-70441-main' of https://github.com/kevpercy/moodle 2024-05-14 14:09:38 +08:00
David Balch 726de6ab68 MDL-70441 assign: Freeze workflow states not available to user.
Prior to this, a custom grader role that has mod/assign:grade but not
mod/assign:releasegrades or mod/assign:managegrades would see a select
with only the states available to them - not the current state, and
could reset a grade from released to Not marked/In marking/Marking
completed.
2024-05-14 12:53:27 +08:00
Ilya Tregubov 4b16c37b96 MDL-80599 core: Refactor enrol methods
Move update instance logic to its own method and cover with tests.
Also update enrol plugins to work woth new methods.
2024-05-14 12:08:46 +08:00
Huong Nguyen 8f5a023dab Merge branch 'MDL-81434' of https://github.com/paulholden/moodle 2024-05-14 08:51:45 +07:00
Sara Arjona 0e766c9d27 Merge branch 'MDL-70494-main' of https://github.com/ilyatregubov/moodle 2024-05-13 15:40:28 +02:00
Paul Holden d792e8c450 MDL-81543 qtype_calculated: correct component of language string. 2024-05-13 10:43:38 +01:00
Laurent David a6ae705fcb MDL-81598 theme_boost: Fix quiz review options tooltips 2024-05-13 08:25:53 +02:00
Ilya Tregubov d6f7ee5638 Merge branch 'MDL-81867' of https://github.com/paulholden/moodle 2024-05-13 09:28:45 +08:00
Ilya Tregubov e340fb7144 Merge branch 'MDL-81203' of https://github.com/stronk7/moodle 2024-05-13 09:24:30 +08:00
Ilya Tregubov 5717e7ecd3 Merge branch 'MDL-74484_final-deprecation-of-print_error' of https://github.com/ziegenberg/moodle 2024-05-13 09:16:40 +08:00
AMOS bot fd14c3f910 Automatically generated installer lang files 2024-05-12 00:14:35 +00:00
Eloy Lafuente (stronk7) 752d07415c MDL-81203 tool_customlang: Bump ROUGH_NUMBER_OF_STRINGS from 32K to 33K
Periodical check, we have passed the 32K, time to bump to next
thousand, 33K. Not much else to say.
2024-05-10 15:39:47 +02:00
Paul Holden 9b827c09ce MDL-81434 reportbuilder: ensure filter/condition parameter uniqueness.
This change fixes an edge case that could be triggered by creating a
custom report that contained a filter instance that was active as both
a filter and condition, where the filter instance provides parameters
to it's SQL fragment.

There is only one such filter present currently with which we can test
this, see 2f9001cbe9.
2024-05-10 09:48:52 +01:00
Paul Holden d9f05b81d0 MDL-81168 reportbuilder: better float input support in filters.
Support localised float values in filter forms, so that locales that
use different decimal separators work as expected.

Note lack of current support in the date filter.
2024-05-10 09:47:21 +01:00
Paul Holden 59aceef4b5 MDL-81867 qbank_columnsortorder: correct/cleanup previous upgrade step. 2024-05-10 09:08:41 +01:00
Trisha Milan ebd3371c3f MDL-81236 javascript: Remove MathJax workaround from MDL-60458
The original workaround was put in place to address the mathjax.sre.js bug that was causing JS errors
as explained in https://github.com/mathjax/MathJax/issues/1854). However, since MathJax 2.7.3,
the underlying problem has been fixed, making the workaround unnecessary.

Additionally, the workaround was causing conflicts with some jQuery plugins.
Removing the workaround has resolved the problem of jQuery plugins failing to load properly.
2024-05-10 16:11:19 +10:00
Hieu Nguyen Dang a15c17cc0e MDL-80489 qtype_ddtos: Help Text for Choices section 2024-05-10 12:27:27 +07:00
Ilya Tregubov d59fa12147 MDL-51360 core_grades: Improve documentation of grade_get_grades(). 2024-05-10 09:16:36 +08:00
Ilya Tregubov 462d5f04a8 weekly release 4.5dev 2024-05-10 09:09:28 +08:00
Sumaiya Javed 913c573a79 MDL-80797 core: Hooks to add or reorder items in secondary navigation.
Add the ability for a third party plugin to add or reorder nodes in the course navigation menu.
This will allow secondary navigation to be overridden by using Hooks API.

new file:   lib/classes/hook/navigation/secondary_extend.php
modified:   lib/classes/navigation/views/secondary.php
2024-05-10 12:43:49 +12:00
Paul Holden 9874b742fd MDL-81757 editor_tiny: preserve unicode character escape in errors.
Removing backslashes from the XHR response led to errors including
unicode escape codes being broken.
2024-05-09 20:13:09 +01:00
Amaia Anabitarte 6bc8b45c85 MDL-81601 core_course: Add course index completion status behats 2024-05-09 19:38:45 +08:00
Ilya Tregubov f572bcae24 MDL-51360 mod_quiz: Don't do full course recalculation.
It seems it was never needed. We only need to know if just one
grade is overridden and its value.
2024-05-09 15:01:23 +08:00
Jun Pataleta 146821a4c4 Merge branch 'MDL-81713-main' of https://github.com/junpataleta/moodle 2024-05-09 12:02:25 +08:00
Jun Pataleta 53a059fb9b Merge branch 'MDL-81330' of https://github.com/paulholden/moodle 2024-05-09 11:49:18 +08:00
Jun Pataleta 823c7d752e Merge branch 'MDL-81399' of https://github.com/paulholden/moodle 2024-05-09 11:45:45 +08:00
Jun Pataleta a6cb89a49e Merge branch 'MDL-80972-main' of https://github.com/lameze/moodle 2024-05-09 11:43:33 +08:00
Jun Pataleta 44db44564e Merge branch 'MDL-76690' of https://github.com/paulholden/moodle 2024-05-09 11:35:52 +08:00
Jun Pataleta f14c2d35b6 MDL-81713 mod_quiz: Use accessible fieldset name for Behat test 2024-05-09 11:32:54 +08:00
Huong Nguyen c2bb7c5ec3 Merge branch 'MDL-81423' of https://github.com/timhunt/moodle 2024-05-09 09:54:48 +07:00
Ilya Tregubov 7c535198ea Merge branch 'MDL-81433' of https://github.com/paulholden/moodle 2024-05-09 10:54:40 +08:00
Ilya Tregubov 52f49f3d7e Merge branch 'MDL-81754' of https://github.com/paulholden/moodle 2024-05-09 10:51:27 +08:00
Huong Nguyen 6dfd658d8c Merge branch 'MDL-80453-main' of https://github.com/andelacruz/moodle 2024-05-09 09:47:40 +07:00
Ilya Tregubov 817ad8d0e7 Merge branch 'MDL-81601-main' of https://github.com/aanabit/moodle 2024-05-09 10:45:55 +08:00
Ilya Tregubov 89f3ecf3d3 MDL-80599 enrol_self: Check group key regardless of policy used
Password policy is not connected to using of group key enrolment
2024-05-09 10:37:41 +08:00
Andrew Nicols 98ee60401c MDL-68262 assignfeedback_editpdf: Update unit test for latest coding style 2024-05-09 10:36:43 +08:00
Huong Nguyen 2fa5d074e0 Merge branch 'MDL-79702-main' of https://github.com/lameze/moodle 2024-05-09 09:33:23 +07:00
Andrew Nicols 5d539f423b MDL-68262 assignfeedback_editpdf: Switch to request dirs 2024-05-09 10:14:25 +08:00
Luca Bösch f01625abdc MDL-81713 mod_quiz: Display modal for 'Add random question' as mform. 2024-05-09 09:48:20 +08:00
Luca Bösch 697815159f MDL-81713 mod_quiz: Add random question 'Parent category' help icon. 2024-05-09 09:48:02 +08:00
info@eWallah.net ab37e1e397 MDL-80972 behat: Behat check_server_status can provide better info. 2024-05-08 21:48:40 +02:00
Mark Johnson 78cf032d7c MDL-81609 enrol: Set readonlysession for core_enrol_get_potential_users 2024-05-08 14:44:25 +01:00
Paul Holden 5f701e1055 MDL-77685 grade: remove Behat specific report rendering hacks.
These changes follow the same approach as that taken elsewhere in
the Gradebook in 3643f48e0f.
2024-05-08 12:29:38 +01:00
Paul Holden 0fd8376451 MDL-76690 reportbuilder: final removal of deprecated helper methods. 2024-05-08 11:28:13 +01:00
Angelia Dela Cruz b859ff4337 MDL-80453 mod_glossary: Behat for different glossary format display 2024-05-08 17:20:47 +08:00
Christian Abila bf3915f63c MDL-81813 config-dist.php: correct path
admin/cli/plugin_uninstall.php does not exist. The correct path is admin/cli/uninstall_plugins.php.
2024-05-08 09:47:25 +02:00
Amaia Anabitarte bb93bcdb2d MDL-81601 core_course: Fix course index completion status 2024-05-08 08:16:11 +02:00
Steve Massicotte fd4ebbf932 MDL-80967 Authentication: Login page - Hide the login form 2024-05-07 16:03:28 -04:00
Marina Glancy 49ab83c1a4 MDL-80907 various: fixes to incorrect column selectors in behat 2024-05-07 19:27:14 +01:00
Marina Glancy 8f2d505e38 MDL-80907 behat: be more precise in selecting table rows 2024-05-07 19:27:07 +01:00
Paul Holden abd04cab82 Merge branch 'MDL-81764' of https://github.com/lostrogit/moodle into main 2024-05-07 14:43:01 +01:00
Paul Holden 773220ab06 Merge branch 'MDL-81776' of https://github.com/dravek/moodle into main 2024-05-07 14:33:08 +01:00
Sebastian 47daf29b69 MDL-80683 course: Move misplaced opening div tag
The section header from the section template has been moved to the content template
so we don't close it from within the content template.

Nothing seems to use the content template, so there should not be any
differences in HTML output anywhere.
2024-05-07 11:15:36 +02:00
Huong Nguyen 6bfdae885d MDL-81530 editor_tiny: Better browsers compatibility
The TinyMCE.remove() function is killing other events on Firefox
We need to modify the setupForElementId() to make TinyMCE to
remove itself outside of the event loop
2024-05-07 14:23:03 +07:00
hieuvu b4a9ce93a6 MDL-78662 ddwtos: Allow answer to support filter dynamic content. 2024-05-07 08:57:26 +07:00
hieuvu 85c7492db2 MDL-78662 ddmarker: Allow answer to support filter dynamic content. 2024-05-07 08:57:26 +07:00
hieuvu f1044b45bd MDL-78662 ddimageortext: Allow answer to support filter dynamic content. 2024-05-07 08:57:26 +07:00
hieuvu 6d34386ca9 MDL-78662 core_question: Create utility function to format question. 2024-05-07 08:57:25 +07:00
Ilya Tregubov dcc78ccbbb Merge branch 'MDL-73165' of https://github.com/paulholden/moodle 2024-05-07 09:11:15 +08:00
Ilya Tregubov 2b951ed07a Merge branch 'MDL-72353' of https://github.com/paulholden/moodle 2024-05-07 09:06:55 +08:00
Simey Lameze 6f4efa45bd MDL-81805 behat: remove unnecessary @javascript from tests 2024-05-07 09:05:10 +08:00
Paul Holden 31f6039635 MDL-81779 theme_boost: more liberal selector for form-control elements.
There are various pages (e.g. many related to permissions), where the
form element is not a descendent of `.mform` - so the previous selector
never matched them and led to unstyled inputs.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-05-06 20:34:39 +01:00
Paul Holden 81d2800a55 MDL-73165 output: final removal of deprecated display logo method. 2024-05-06 20:27:29 +01:00
Paul Holden be7802fa88 MDL-72353 report: final removal of deprecated report selection method. 2024-05-06 20:22:08 +01:00
Simey Lameze 7b713435b0 MDL-79702 behat: improvements and fixes to new tests
This commit adds the handling of tags as string separated by comma
to forum and glossary modules.
2024-05-06 19:58:38 +08:00
Angelia Dela Cruz 9ab79e2822 MDL-79702 core_tag: Behat for activity tags deletion during course reset 2024-05-06 16:42:18 +08:00
Ilya Tregubov 4aa2f21c20 Merge branch 'MDL-48940-main' of https://github.com/mihailges/moodle 2024-05-06 14:19:56 +08:00
Huong Nguyen 6fe0ff1e45 Merge branch 'MDL-81345-main' of https://github.com/andrewnicols/moodle 2024-05-06 09:47:33 +07:00
Huong Nguyen c292fcafdd Merge branch 'MDL-80589-main' of https://github.com/lameze/moodle 2024-05-06 09:36:55 +07:00
Ilya Tregubov 8e862be8e2 Merge branch 'MDL-71748_final-deprecation-reset_caches' of https://github.com/ziegenberg/moodle 2024-05-06 10:10:56 +08:00
Ilya Tregubov dc2f500573 Merge branch 'MDL-81656' of https://github.com/paulholden/moodle 2024-05-06 09:55:08 +08:00
Daniel Ziegenberg 781694d2f8 MDL-71748 core: final removal of core_text::reset_caches()
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-03 15:13:32 +02:00
David Carrillo 45b43d137f MDL-81776 reportbuilder: Check tagarea enabled when check availability
- When checking availability for a column/filter we need to assert
tagarea is enabled because it can return also null value.
2024-05-03 11:40:35 +02:00
Tim Hunt a64c23c045 MDL-81423 assign: improve valdation message for submissionstatement 2024-05-03 10:32:50 +01:00
Shamim Rezaie 8159b2419a MDL-81538 theme_boost: Fix popover arrow direction in RTL 2024-05-03 13:02:34 +10:00
Ilya Tregubov 67b2c43225 weekly release 4.5dev 2024-05-03 08:22:25 +08:00
Ilya Tregubov 10c4e67d21 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2024-05-03 08:22:22 +08:00
AMOS bot b4eab69830 Automatically generated installer lang files 2024-05-03 00:10:51 +00:00
Carlos Castillo b7030c76c6 MDL-81764 reportbuilder: Include full name filter to Users system report 2024-05-02 15:23:20 +02:00
Simey Lameze 49212ac96c MDL-80589 behat: fixes and improvements to new tests 2024-05-02 13:32:33 +08:00
Angelia Dela Cruz 49b4f795ec MDL-80589 qtype_numerical: Behat to add, edit, preview numeric question 2024-05-02 12:30:34 +08:00
Huong Nguyen 409c66838e Merge branch 'MDL-81587' of https://github.com/timhunt/moodle 2024-05-02 09:37:24 +07:00
Huong Nguyen 559721db57 Merge branch 'MDL-81611_main' of https://github.com/marxjohnson/moodle 2024-05-02 09:01:47 +07:00
Paul Holden 260b786d53 MDL-81754 reportbuilder: consistent filter field comparison labels. 2024-05-01 11:19:16 +01:00
Huong Nguyen eb32a057b9 Merge branch 'MDL-79851-main' of https://github.com/lameze/moodle 2024-05-01 16:10:09 +07:00
Angelia Dela Cruz 6b893421da MDL-79851 mod_h5pactivity: Behat for h5p activity access control 2024-05-01 14:22:28 +08:00
Huong Nguyen e768a13b07 Merge branch 'MDL-81621' of https://github.com/paulholden/moodle 2024-05-01 10:56:08 +07:00
Sara Arjona e8b63bc3a4 MDL-80571 tiny_premium: Fix version 2024-04-30 17:10:40 +02:00
Sara Arjona b7a0d83f18 Merge branch 'MDL-81724' of https://github.com/paulholden/moodle 2024-04-30 17:09:45 +02:00
Sara Arjona a787203295 Merge branch 'MDL-78889-main' of https://github.com/ilyatregubov/moodle 2024-04-30 17:09:45 +02:00
Sara Arjona eae0a26521 Merge branch 'MDL-81632' of https://github.com/paulholden/moodle 2024-04-30 15:09:28 +02:00
Sara Arjona ba1bda63ee Merge branch 'MDL-80571-main' of https://github.com/davewoloszyn/moodle 2024-04-30 15:05:50 +02:00
Tim Hunt 78eeb7ea57 MDL-81587 quiz: fix layout of the add/edit random UI
Some of the removed CSS seems no longer relevant now that we have
customisation options for the layout of the question bank.
2024-04-30 10:43:34 +01:00
Tim Hunt fb0706a4ed MDL-81515 forms: set a nice default size for multi-selects 2024-04-30 10:35:59 +01:00
Paul Holden f11c6393de MDL-81724 editor_tiny: remove whitespace from block formats syntax.
Ensures that the values are subsequently translated correctly. Workaround
for upstream bug: https://github.com/tinymce/tinymce/pull/9599

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2024-04-30 09:25:14 +01:00
Huong Nguyen 6b0f557404 Merge branch 'MDL-79149' of https://github.com/paulholden/moodle 2024-04-30 11:48:00 +07:00
Huong Nguyen 8ae7792dc8 Merge branch 'MDL-81717-main' of https://github.com/sarjona/moodle 2024-04-30 11:37:29 +07:00
Huong Nguyen 730944fd02 Merge branch 'MDL-81707' of https://github.com/paulholden/moodle 2024-04-30 10:13:53 +07:00
Ilya Tregubov a89de93a6a Merge branch 'MDL-77272-main' of https://github.com/SergioComeron/moodle 2024-04-30 10:18:04 +08:00
Huong Nguyen 810cdb12cb MDL-81610 course: Update upgrade.txt 2024-04-30 09:10:14 +07:00
Huong Nguyen 0767670829 Merge branch 'MDL-81610_main' of https://github.com/marxjohnson/moodle 2024-04-30 09:00:58 +07:00
David Woloszyn ed42b2e92b MDL-80571 tiny_premium: Premium plugins can be individually enabled 2024-04-30 09:40:15 +10:00
Paul Holden bfde1fe687 MDL-81433 reportbuilder: return custom report tag data in WS calls. 2024-04-29 11:17:29 +01:00
Paul Holden 0a9715a88a MDL-81330 reportbuilder: add cohort data to participants report source.
This is consistent with data added to similar sources that include user
attainment data, in this case users' course completion.
2024-04-29 11:14:16 +01:00
Sara Arjona c60d03a7b6 MDL-81717 h5p: Improve robustness content type fetching
Strengthen code to ensure retrieval of all content types, despite
failures.
2024-04-29 12:12:08 +02:00
Paul Holden e95cf00523 MDL-81399 reportbuilder: add language/timezone reporting for users. 2024-04-29 11:12:01 +01:00
Paul Holden e05879814f MDL-81707 availability_grade: fix alignment of condition checkboxes. 2024-04-29 10:38:44 +01:00
Paul Holden 1435a5fab6 MDL-81656 h5p: correct content editing URL parameter handling. 2024-04-29 09:22:15 +01:00
Paul Holden 9c601e5f0b MDL-81621 mod_bigbluebuttonbn: remove reflection setAccessible call.
See 361dfe8145 for context.
2024-04-29 09:21:13 +01:00
Ilya Tregubov 7721ddb679 MDL-78889 gradereport_user: Fix pass/fail icon for totals
When the category has a 'grade to pass' set, the pass/fail icon
was displayed even when the category total grade values was hidden.
2024-04-29 14:42:00 +08:00
Mihail Geshoski 6ca8fde7f5 MDL-48940 core: Final deprecation of search_generate_text_SQL() 2024-04-29 11:41:22 +08:00
Ilya Tregubov 641937a47e MDL-81380 qbank_columnsortorder: Add type and return value hint 2024-04-29 10:46:14 +08:00
Ilya Tregubov 137692bd4e Merge branch 'MDL-81380' of https://github.com/AnupamaSarjoshi/moodle 2024-04-29 10:39:59 +08:00
Huong Nguyen f686d2a6c7 Merge branch 'MDL-80849-main' of https://github.com/davewoloszyn/moodle 2024-04-29 08:55:02 +07:00
Andrew Nicols cde433c26a MDL-81647 core: Replace partial with a more lightweight version 2024-04-29 09:54:21 +08:00
Ilya Tregubov 58606791af Merge branch 'MDL-80597' of https://github.com/paulholden/moodle 2024-04-29 09:45:58 +08:00
Ilya Tregubov 461fdcc5e5 Merge branch 'MDL-81697' of https://github.com/paulholden/moodle 2024-04-29 09:21:55 +08:00
David Woloszyn 74a6ed82b3 MDL-80849 communication_matrix: Prevent numeric usernames 2024-04-29 10:30:29 +10:00
Anupama Sarjoshi 5ced156252 MDL-81380 qbank_columnsortorder: Add upgrade.php
Before Moodle 4.3, config_plugins settings for qbank_columnsortorder
(disabledcol, enabledcol) had a value like
qbank_statistics\columns\facility_index,
qbank_statistics\columns\discriminative_efficiency, ...
In Moodle 4.3, the values are stored as
qbank_statistics\columns\facility_index-facility_index.
So updating the old values to match the new format.
2024-04-26 17:06:45 +01:00
Paul Holden 5f8b568cbc MDL-79149 report_participation: more resilient activity access test.
Use the "Forum" module rather than the "Book" module, because the latter
emits two events when a student views it - if these two events happened
either side of a single second, then the report  would count two distinct
views (when it was trying to assert only one).
2024-04-26 16:08:02 +01:00
Huong Nguyen f7d369f4e2 Merge branch 'MDL-78433-main' of https://github.com/aanabit/moodle 2024-04-26 16:19:05 +07:00
Huong Nguyen dfc2d98704 Merge branch 'MDL-81641' of https://github.com/timhunt/moodle 2024-04-26 16:03:14 +07:00
Sara Arjona 59844c271e Merge branch 'MDL-81581' of https://github.com/stronk7/moodle 2024-04-26 10:48:24 +02:00
Paul Holden f91dd598ef MDL-80597 mod_quiz: simplify filtering by tags Behat assertions.
The initial filtering for category was redundant, as it's applied
by default. While present it also caused reproducible failures on
CI due to timing issues when trying to apply multiple filters.
2024-04-26 09:40:51 +01:00
Sara Arjona 4a3d58126a Merge branch 'MDL-77445-master' of https://github.com/andelacruz/moodle 2024-04-26 10:40:23 +02:00
Ilya Tregubov 802ca2072e MDL-70494 mod_forum: Deprecate privacy strings.
Doesn't seem they were ever used.
2024-04-26 12:01:30 +08:00
Paul Holden 88b4bc2beb MDL-81697 qtype_ordering: correctly reference feedback file areas. 2024-04-25 21:37:30 +01:00
Paul Holden 2f0141ff57 MDL-74581 grade: final removal of deprecated Behat step helpers. 2024-04-25 19:32:56 +01:00
Eloy Lafuente (stronk7) dadfb6e90c MDL-81581 phpunit: Apply the new method to all remaining cases
After discussing it in the issue, we have agreed to apply
the new phpunit_util::normalise_line_endings() method to
all the remaining cases (within tests!) where the manual
replacement was being done. This commits achieves that.

Note that I've looked for both str_replace() and preg_replace()
cases, but only the former had cases worth converting. All the
later ones are different and cannot be replaced by the new
utility method.
2024-04-25 18:52:16 +02:00
Eloy Lafuente (stronk7) 71bd82ad68 MDL-81581 phpunit: Create the normalise_line_endings() method
And apply it to all the obvious places related with the issue.

Note that surely there are way more in code base, but it's
out of scope for this issue.
2024-04-25 18:52:16 +02:00
Eloy Lafuente (stronk7) 17237b824d MDL-81581 phpunit: Move multiple assert_same_xml() to common one 2024-04-25 18:52:16 +02:00
Mark Johnson 82a4c991ef MDL-81610 course: Optimise core_courseformat\external\get_state
core_courseformat\external\get_state calls export_for_tempalte for each
course module, which in turn calls completion_info::is_tracked_user()
for the current user on the current course. The result of this call will
be the same for every course module, so does not need to be called what
may be several hundred times.

This change allows the result of is_tracked_user to be passed to the cm
state object, then calls it once and passes it to each cm's object. If
it is not passed in, it will be computed on demand as before.
2024-04-25 16:15:03 +01:00
SergioComeron c4f840d404 MDL-77272 report: Enable module level report options 2024-04-25 17:14:47 +02:00
Mark Johnson 7cc089a457 MDL-81611 assign: Close session early in gradingpanel fragment 2024-04-25 16:14:43 +01:00
Sara Arjona 792698af00 weekly on-sync release 4.5dev 2024-04-25 15:43:57 +02:00
Sara Arjona f6ef944d64 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2024-04-25 15:43:53 +02:00
Huong Nguyen 228c18b723 Merge branch 'MDL-80087_main' of https://github.com/PhilippImhof/moodle 2024-04-25 09:34:22 +07:00
AMOS bot 61b40e2eaa Automatically generated installer lang files 2024-04-25 00:12:21 +00:00
Paul Holden 0bd601d6ba MDL-81632 block_recentlyaccesseditems: deterministic item ordering.
Behat tests of this functionality could trigger the unlikely (in real
world usage) scenario where a user has an identical "timeaccess" value
for multiple course activities.

This led to random failures in said tests when the DB ordered items in
apparently random order, where the "timeaccess" value was equal.
2024-04-24 20:57:06 +01:00
Sara Arjona ec7aa34e20 Merge branch 'MDL-77998-master' of https://github.com/andelacruz/moodle 2024-04-24 14:47:54 +02:00
Angelia Dela Cruz 7c5cc9f140 MDL-77998 Behat: Add behat coverage for preferences navigation 2024-04-24 19:15:51 +08:00
Huong Nguyen 43ba641af7 Merge branch 'MDL-81627' of https://github.com/timhunt/moodle 2024-04-24 15:25:33 +07:00
Huong Nguyen c77acbe423 Merge branch 'MDL-81301' of https://github.com/timhunt/moodle 2024-04-24 15:17:54 +07:00
Angelia Dela Cruz eb36f078d8 MDL-77445 Behat: Coverage for activity chooser navigation 2024-04-24 14:42:37 +08:00
Jun Pataleta f17f1333f1 Merge branch 'MDL-81570-main' of https://github.com/sarjona/moodle 2024-04-24 14:40:43 +08:00
Jun Pataleta 72e283b5e8 Merge branch 'MDL-81575-main' of https://github.com/ferranrecio/moodle 2024-04-24 12:36:52 +08:00
Jun Pataleta ccd3651fee Merge branch 'MDL-81567-main' of https://github.com/lucaboesch/moodle 2024-04-24 12:22:09 +08:00
Jun Pataleta f0b4b6c186 Merge branch 'MDL-81460-main' of https://github.com/roland04/moodle 2024-04-24 12:10:24 +08:00
Huong Nguyen cfd0d4b130 Merge branch 'MOODLE_main_MDL-81613' of https://github.com/danielneis/moodle 2024-04-24 09:59:36 +07:00
Andrew Nicols b99760a3fb MDL-81345 core: Remove unused library 2024-04-24 10:31:21 +08:00
Huong Nguyen aa29e5655d Merge branch 'MDL-81564-main' of https://github.com/HuongNV13/moodle 2024-04-24 08:57:47 +07:00
Laurent David 029db9dd4c MDL-81564 mod_data: Remove duplicate error messages
* When a field is missing the error is duplicated for all field
subsequently added to the database
2024-04-24 08:51:36 +07:00
Ilya Tregubov bdeb9b8191 Merge branch 'MDL-81274' of https://github.com/paulholden/moodle 2024-04-24 09:41:42 +08:00
Huong Nguyen 862b41d833 Merge branch 'MDL-80107-master' of https://github.com/andelacruz/moodle 2024-04-24 08:35:19 +07:00
Tim Hunt 676d764452 MDL-81641 question: fix random question loader draft state tests 2024-04-23 18:25:04 +01:00
Amaia Anabitarte 93bf8539ca MDL-78433 course: Remove duplicated course search form 2024-04-23 16:08:03 +02:00
Sara Arjona 5e8f48a53f Merge branch 'MDL-81209-main' of https://github.com/andrewnicols/moodle 2024-04-23 15:35:12 +02:00
Sara Arjona 1e7fdcccdf Merge branch 'MDL-81578' of https://github.com/paulholden/moodle 2024-04-23 15:13:41 +02:00
Sara Arjona 4dbeaddc5f Merge branch 'MDL-81457-main' of https://github.com/andrewnicols/moodle 2024-04-23 14:56:31 +02:00
Amaia Anabitarte 6a190959d4 MDL-77661 mod_data: Use danger button for reset templates modals 2024-04-23 13:17:52 +02:00
Sara Arjona 8cdf4dec79 Merge branch 'MDL-81603' of https://github.com/paulholden/moodle 2024-04-23 12:38:36 +02:00
Tim Hunt 8e7bd88ce3 MDL-81627 quiz restore: fix restore of grade item for each slot 2024-04-23 11:33:44 +01:00
ferranrecio 735bef87d2 MDL-81575 core_courseformat: fix interactive section visibility badge 2024-04-23 11:15:19 +02:00
Shamim Rezaie 08a8c29ca7 Merge branch 'MDL-81616-main' of https://github.com/junpataleta/moodle 2024-04-23 15:23:09 +10:00
Angelia Dela Cruz da5de9e91e MDL-80107 gradingform: Behat test for defining marking guide 2024-04-23 11:41:03 +08:00
Paul Holden 08575fdc56 MDL-74582 lang: final removal of deprecated 401 strings. 2024-04-22 19:06:18 +01:00
Daniel Neis Araujo bbc91d4788 MDL-81613 report_log: fix user fullname export for log report 2024-04-22 14:34:32 -03:00
Paul Holden 7594612fab MDL-81274 mod_data: observe current approved value on record import. 2024-04-22 12:48:51 +01:00
Paul Holden 23552e4c84 MDL-78942 tool_mfa: replace deprecated coding standards annotation.
Replace with equivalent `phpcs` annotation as appropriate, same as
done previously in a5c91474ee (see that commit for further context).
2024-04-22 12:28:37 +01:00
Huong Nguyen e3b52a6ec6 Merge branch 'MDL-81615-main' of https://github.com/junpataleta/moodle 2024-04-22 16:30:03 +07:00
Paul Holden 25780157bf MDL-81603 reportbuilder: don't rely on real entity in datasource test. 2024-04-22 09:52:20 +01:00
Sara Arjona f0e6e5addb MDL-81570 tiny_premium: Add missing lang string 2024-04-22 09:40:21 +02:00
Mikel Martín 6de045dea0 MDL-81460 theme_boost: Fix loading spinner wobbles 2024-04-22 07:45:32 +02:00
Luca Bösch d7df038465 MDL-81567 mod_quiz: Adopt edit section title pencil icons size. 2024-04-20 18:03:15 +02:00
Jun Pataleta 78e5814a0f MDL-81616 upgrade: add the 4.4.0 separation line to all upgrade scripts 2024-04-20 21:01:04 +08:00
Jun Pataleta 3c1b63c7d8 MDL-81615 backup: Bump release to 4.5 2024-04-20 20:56:34 +08:00
Jun Pataleta 7b9a4eeca5 weekly back-to-dev release 4.5dev 2024-04-20 16:11:57 +08:00
Paul Holden c550ef8dcb MDL-81578 user: disable form change checker for bulk user actions.
When bulk user actions are used from the "Browse users" report.
2024-04-17 12:22:43 +01:00
Tim Hunt 22e4cc9204 MDL-81301 quiz: improve performance of deleting a quiz 2024-04-12 10:44:28 +01:00
Andrew Nicols dc0cf1f273 MDL-81209 core: Unit test should not care about plugin details 2024-04-08 20:54:48 +08:00
Andrew Nicols 5b9fdc0e9a MDL-81457 core: Do not mark tests as Incomplete when they are wrong
This check was marking a test as Incomplete if there was a bug in any
part of the test, rather than failing the test in such a way that the
test bug may be found.

https://docs.phpunit.de/en/9.6/incomplete-and-skipped-tests.html
2024-04-08 08:45:27 +08:00
Andrew Nicols d9a8eb2bdb MDL-81457 core: Mark SSL test as skipped, not incomplete
The incomplete test is intended for tests which are written but whose
code does not yet exist.

https://docs.phpunit.de/en/9.6/incomplete-and-skipped-tests.html
2024-04-08 08:45:16 +08:00
Daniel Ziegenberg 0cca112259 MDL-74484 lib: Final deprecation of print_error
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-03-28 13:49:57 +01:00
Daniel Ziegenberg 20c32542a7 MDL-73956 forum: Final deprecation of forum_update_subscriptions_button
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-03-25 20:56:40 +01:00
Philipp Imhof 7419d5d319 MDL-80087 Questions: warn if preload_all_step_users was not called
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-03-15 19:40:15 +01:00
Leon Stringer 5cfe2adce8 MDL-81146 forms: Disable submit buttons in Chrome 2024-03-15 08:29:14 +00:00
12000 changed files with 381673 additions and 198705 deletions
+3
View File
@@ -1,3 +1,6 @@
**/yui/build/** -diff
**/amd/build/** -diff
lib/dml/oci_native_moodle_package.sql text eol=lf
**.js.map -diff
**-min.js -diff
**.min.js -diff
+1 -1
View File
@@ -1,2 +1,2 @@
# Primary donations pages.
custom: ["https://moodle.com/donations/", moodle.org]
custom: ["https://moodle.com/donations/", "https://fund.moodle.org"]
+143
View File
@@ -0,0 +1,143 @@
name: One by One Testing
# Run all the individual unit tests one by one, with
# fully independent PHPUnit executions. Useful to
# detect issues with some tests that are using stuff
# that has been made available by others, but is not
# available when running individually.
#
# Note that we aren't using PHPUnit's own isolation
# here but completely separated runs, one for each
# test.
#
# The workflow will fail reporting all the tests
# that have failed (and will pass if no failure is
# detected, of course).
#
# It's only executed via workflow dispatch (automated
# or manual), not by push/tag. And acceptd configuration
# of phpunit, specially useful to run it with PHPUnit's
# own isolation or any other option.
on:
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
chunks: 7
jobs:
collect:
name: Collect individual unit tests
runs-on: ubuntu-latest
outputs:
matrix: ${{steps.individual-tests.outputs.matrix }}
steps:
- name: Checking out code
uses: actions/checkout@v4
- name: Looking for all individual tests
id: individual-tests
run: |
count=0 # Number of individual tests found.
while read -r testfile; do # For each test file.
while read -r testname; do # For each unit test in a file.
count=$((count + 1))
# Sent it to the correct chunk file.
chunk=$(((($count % $chunks)) + 1))
echo "$testname $testfile" >> ./chunk_$chunk.txt
done < <(grep "function test_" "${testfile}" | sed -r "s/^.*function (test_[a-zA-Z0-9_]+).*/\1/")
done < <(find . -name "*_test.php" -not -path "*/fixtures/*")
# Generate the matrix to run tests.
echo "matrix=$(ls -1 chunk_*.txt | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
echo "$count individual tests collected in $chunks files"
- name: Upload individual tests files
uses: actions/upload-artifact@v4
with:
name: individual_tests
path: chunk_*.txt
retention-days: 1
test:
name: Run tests
needs: collect
runs-on: ubuntu-latest
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
strategy:
fail-fast: false
matrix:
file: ${{ fromJson(needs.collect.outputs.matrix) }}
steps:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 13
postgresql db: test
postgresql user: test
postgresql password: test
- name: Setting up PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
ini-values: max_input_vars=5000
coverage: none
- name: Checking out code
uses: actions/checkout@v4
- name: Download individual test files
uses: actions/download-artifact@v4
with:
name: individual_tests # Make all the chunk files available for the next steps.
- name: Setting up PHPUnit
env:
dbtype: pgsql
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Run PHPUnit test (one by one)
env:
dbtype: pgsql
run: |
status=0
count=0
while read -r line; do # For each line in the chunk file
count=$((count + 1))
filter="${line% *}"
file="${line#* }"
# Run the individual unit test and report problems if needed to.
if ! php vendor/bin/phpunit \
--fail-on-empty-test-suite \
--fail-on-warning \
--fail-on-risky \
--filter "$filter" ${{ inputs.phpunit_extra_options }} \
"$file" >/dev/null 2>&1; then
if [ $status -eq 0 ]; then
echo "Problems found, list of PHPUnit commands failing:"
fi
echo "vendor/bin/phpunit --filter '${filter}' ${{ inputs.phpunit_extra_options }} $file"
status=$((status + 1))
fi
done < ${{ matrix.file }}
echo "Finished: $count individual tests executed, $status tests failed"
exit $status
+6 -4
View File
@@ -4,7 +4,6 @@ on:
push:
branches-ignore:
- main
- master
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
@@ -20,7 +19,7 @@ env:
jobs:
Grunt:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checking out code
@@ -62,12 +61,12 @@ jobs:
matrix:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-22.04
- os: ubuntu-24.04
php: 8.1
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-22.04
- os: ubuntu-24.04
php: 8.3
db: pgsql
@@ -123,3 +122,6 @@ jobs:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
- name: Git status
run: git status
+23
View File
@@ -0,0 +1,23 @@
name: Web Installer Testing
on:
workflow_dispatch:
jobs:
InstallationTest:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.1, 8.3]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
shell: bash
- uses: moodlehq/moodle-webinstaller-test@main
with:
repository: ${{ env.REPOSITORY_URL }}
branch: ${{ github.ref_name }}
php: ${{ matrix.php }}
+1 -1
View File
@@ -128,7 +128,7 @@ jobs:
- name: Setting up redis service
run: |
choco install redis-64 --version 3.0.503 --no-progress
choco install redis --version 5.0.7 --no-progress
nssm install redis redis-server
nssm start redis
+4 -1
View File
@@ -26,7 +26,9 @@
/.patches/
/.idea/
.phpstorm.*
!.phpstorm.meta.php
!/.phpstorm.meta.php/
/.phpstorm.meta.php/*
!/.phpstorm.meta.php/di.php
/nbproject/
CVS
.DS_Store
@@ -56,3 +58,4 @@ moodle-plugin-ci.phar
.hugo_build.lock
phpcs.xml
jsconfig.json
UPGRADING-CURRENT.md
+27 -2
View File
@@ -40,9 +40,20 @@ const fetchComponentData = () => {
if (!Object.entries(componentData).length) {
componentData.subsystems = {};
componentData.pathList = [];
componentData.components = {};
componentData.standardComponents = {};
// Fetch the component definiitions from the distributed JSON file.
const components = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/components.json`));
const pluginData = JSON.parse(fs.readFileSync(`${gruntFilePath}/lib/plugins.json`));
componentData.pluginTypes = components.plugintypes;
const standardPlugins = Object.entries(pluginData.standard).map(
([pluginType, pluginNames]) => {
return pluginNames.map(pluginName => `${pluginType}_${pluginName}`);
}
).reduce((acc, val) => acc.concat(val), []);
// Build the list of moodle subsystems.
componentData.subsystems.lib = 'core';
@@ -55,8 +66,8 @@ const fetchComponentData = () => {
}
}
// The list of components incldues the list of subsystems.
componentData.components = componentData.subsystems;
// The list of components includes the list of subsystems.
componentData.components = {...componentData.subsystems};
// Go through each of the plugintypes.
Object.entries(components.plugintypes).forEach(([pluginType, pluginTypePath]) => {
@@ -87,6 +98,20 @@ const fetchComponentData = () => {
});
});
// Create a list of the standard subsystem and plugins.
componentData.standardComponents = Object.fromEntries(
Object.entries(componentData.components).filter(([, name]) => {
if (name === 'core' || name.startsWith('core_')) {
return true;
}
return standardPlugins.indexOf(name) !== -1;
})
);
componentData.componentMapping = Object.fromEntries(
Object.entries(componentData.components).map(([path, name]) => [name, path])
);
}
return componentData;
+138
View File
@@ -0,0 +1,138 @@
// 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 * as Components from '../../components.js';
const componentData = Components.fetchComponentData();
/**
* The standard components shipped with core Moodle.
*
* @type {Object}
*/
export const standardComponents = componentData.standardComponents;
/**
* All components of the current Moodle instance.
*
* @type {Object}
*/
export const allComponents = componentData.components;
/**
* Get all components of the current Moodle instance.
*
* @returns {Array}
*/
export const getAllComponents = () => {
let components = new Map(Object.entries(componentData.pluginTypes).map(([value, path]) => ([path,{
path,
value,
name: `${value} (plugin type)`,
}])));
Object
.entries(componentData.components)
.filter(([path, value]) => Object.values(componentData.standardComponents).includes(value))
.forEach(([path, value]) => {
const entry = {
path,
value,
name: value,
};
if (Object.values(componentData.subsystems).includes(value)) {
if (components.has(path)) {
entry.name = `${value} (subsystem / plugintype)`;
} else {
entry.name = `${value} (subsystem)`;
}
}
components.set(path, entry);
});
return Array.from(components.values());
};
/**
* Whether the specified component is a standard component shipped with core Moodle.
*
* @param {string} componentName
* @returns {boolean}
*/
export const isStandardComponent = (componentName) => {
if (Object.values(componentData.standardComponents).includes(componentName)) {
return true;
}
if (Object.keys(componentData.pluginTypes).includes(componentName)) {
return true;
}
return false;
};
export const rewritePlugintypeAsSubsystem = (componentName) => {
if (Object.keys(componentData.pluginTypes).includes(componentName)) {
const pluginTypePath = componentData.pluginTypes[componentName];
if (Object.keys(componentData.subsystems).includes(pluginTypePath)) {
return true;
}
}
return false;
};
/**
* Whether the specified component is a community component.
*
* @param {string} componentName
* @returns {boolean}
*/
export const isCommunityComponent = (componentName) => {
if (isStandardComponent(componentName)) {
return false;
}
return Object.values(componentData.components).indexOf(componentName) !== -1;
};
/**
* Sort method for components.
*
* This method sorts components putting `core` first, followed by core subsystems, then everything else.
*
* @param {String} a
* @param {String} b
* @returns {Number}
*/
export const sortComponents = (a, b) => {
// Always put 'core' first.
if (a === 'core') {
return -1;
} else if (b === 'core') {
return 1;
}
// Put core subsystems next.
if (a.startsWith('core_') && !b.startsWith('core_')) {
return -1;
} else if (b.startsWith('core_') && !a.startsWith('core_')) {
return 1;
}
// Sort alphabetically for everything else.
return a.localeCompare(b);
};
+85
View File
@@ -0,0 +1,85 @@
#!/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 inquirer from 'inquirer';
import chalk from 'chalk';
import { createNote } from './note.mjs';
import { getInitialValues } from './helpers.mjs';
import * as Prompts from './prompts.mjs';
import logger from './logger.mjs';
export default async (options) => {
// Processs the initial values.
const initialValues = getInitialValues(options);
// Fetch information.
const messages = [];
const { issueNumber } = await inquirer.prompt([
Prompts.getIssuePrompt(),
], initialValues);
let selection = {};
let notePath;
do {
selection = {};
selection = await inquirer.prompt([
Prompts.getComponentsPrompt(),
Prompts.getTypePrompt(),
Prompts.getMessagePromptInput(),
], initialValues);
if (selection.message === '') {
selection = Object.assign(
selection,
await inquirer.prompt([
Prompts.getMessagePromptEditor(),
]),
);
}
logger.info(`
Creating upgrade note with the following options:
- Issue: ${chalk.bold(issueNumber)}
- Component: ${chalk.bold(selection.components)}
- Type: ${chalk.bold(selection.type)}
- Message:
${chalk.bold(selection.message)}
`);
messages.push({
components: [selection.components],
type: selection.type,
message: selection.message,
});
// Save the note so far.
if (notePath) {
await createNote(issueNumber, messages, notePath);
logger.info(`Updated note at: ${chalk.underline(chalk.bold(notePath))}`);
} else {
notePath = await createNote(issueNumber, messages);
logger.info(`Note created at: ${chalk.underline(chalk.bold(notePath))}`);
}
selection = Object.assign(
selection,
await inquirer.prompt([
Prompts.getAddAnotherPrompt(),
], initialValues),
);
} while (selection.addAnother);
};
+357
View File
@@ -0,0 +1,357 @@
#!/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 chalk from 'chalk';
import { getAllComponents } from './components.mjs';
import { getCombinedNotesByComponent, deleteAllNotes } from './note.mjs';
import { getNoteName } from './noteTypes.mjs';
import { writeFile, readFile, unlink } from 'fs/promises';
import { join as joinPath } from 'path';
import logger from './logger.mjs';
import { getCurrentVersion } from './helpers.mjs';
/**
* Helper to fetch the current notes from a file.
*
* @param {string} file
* @returns {Promise<string>}
*/
const getCurrentNotes = async (file) => {
try {
return await readFile(file, 'utf8');
} catch (error) {
return null;
}
}
/**
* Update the UPGRADING.md file.
*
* @param {string} upgradeNotes
* @param {Object} options
* @param {boolean} options.deleteNotes
* @returns {Promise<void>}
*/
const updateUpgradeNotes = async (upgradeNotes, options) => {
const fileName = 'UPGRADING.md';
// Write the notes to a file.
logger.info(`Writing notes to ${chalk.underline(chalk.bold(fileName))}`);
// Prepend to the existing file.
const existingContent = await getCurrentNotes(fileName);
if (existingContent) {
await writeFile(fileName, getUpdatedNotes(existingContent, upgradeNotes));
} else {
// This should not normally happen.
await writeFile(fileName, upgradeNotes);
}
if (options.deleteNotes) {
logger.warn(`>>> Deleting all notes <<<`)
// Delete the notes.
deleteAllNotes();
}
};
/**
* Create the current summary notes.
*
* @param {string} upgradeNotes
* @returns {Promise<void>}
*/
const createCurrentSummary = async (upgradeNotes) => {
const fileName = 'UPGRADING-CURRENT.md';
const notes = `# Moodle upgrade notes\n\n${upgradeNotes}`;
await writeFile(fileName, notes);
logger.info(`Running upgrade notes written to ${chalk.underline(chalk.bold(fileName))}`);
};
/**
* Get the indexes of the lines that contain the version headings.
*
* @param {array<string>} lines
* @returns {array<object>}
*/
const getVersionLineIndexes = (lines) => {
const h2Indexes = [];
lines.forEach((line, index) => {
const matches = line.match(/^##\s(?<version>.*)$/);
if (matches) {
h2Indexes.push({
index,
line,
version: matches.groups.version,
});
}
});
return h2Indexes;
};
/**
* Find the index of the Unreleased heading.
*
* @param {array<object>} versionHeadings
* @returns {number}
*/
const findUnreleasedHeadingIndex = (versionHeadings) => versionHeadings.findIndex((heading) => {
if (heading.version === 'Unreleased') {
// Used if version cannot be guessed.
return true;
}
if (heading.version.endsWith('+')) {
// Weekly release for a stable branch.
return true;
}
if (heading.version.match(/beta|rc\d/)) {
// Beta and RC rolls are treated as weeklies.
return true;
}
if (heading.version.endsWith('dev')) {
// Development version.
return true;
}
return false;
});
/**
* Get the before and after content, to facilitate replacing any existing Unreleased notes.
*
* @param {array<string>} lines
* @returns {Object} {beforeContent: string, afterContent: string}
*/
const getBeforeAndAfterContent = (lines) => {
const existingLines = lines.split('\n');
const versionHeadings = getVersionLineIndexes(existingLines);
if (versionHeadings.length > 0) {
const unreleasedHeadingIndex = findUnreleasedHeadingIndex(versionHeadings);
if (unreleasedHeadingIndex !== -1) {
const beforeContent = existingLines.slice(0, versionHeadings[unreleasedHeadingIndex].index).join('\n');
if (versionHeadings.length > unreleasedHeadingIndex + 1) {
const afterContent = existingLines.slice(versionHeadings[unreleasedHeadingIndex + 1].index).join('\n');
return {
beforeContent,
afterContent,
};
}
return {
beforeContent,
afterContent: '',
};
}
return {
beforeContent: existingLines.slice(0, versionHeadings[0].index).join('\n'),
afterContent: existingLines.slice(versionHeadings[0].index).join('\n'),
};
}
return {
beforeContent: existingLines.join('\n'),
afterContent: '',
}
};
/**
* Get the notes for the component.
*
* @param {string} types
* @param {Number} headingLevel
* @returns {string}
*/
const getNotesForComponent = (types, headingLevel) => {
let upgradeNotes = '';
Object.entries(types).forEach(([type, notes]) => {
upgradeNotes += '#'.repeat(headingLevel);
upgradeNotes += ` ${getNoteName(type)}\n\n`;
notes.forEach(({ message, issueNumber }) => {
// Split the message into lines, removing empty lines.
const messageLines = message
.split('\n')
// Remove empty lines between tables, and list entries, but not after lists.
.filter((line, index, lines) => {
if (line.trim().length === 0) {
// This line is empty.
// If it's the first line in the file, remove it.
if (index === 0) {
return false;
}
// This is the last line in the file, remove it.
if (index === lines.length - 1) {
return false;
}
// If the previous line relates to a table, remove this line.
if (lines[index - 1].match(/^\s*\|/)) {
return false;
}
// If the next line is also empty, do not remove this line.
if (lines[index + 1].trim().length === 0) {
return true;
}
// Do not remove the line if the previous line was a list item.
if (lines[index - 1].match(/^\s*[-*]\s/)) {
return true;
}
if (lines[index - 1].match(/^\s*\d+\.\s/)) {
return true;
}
// Preserve all other empty lines by default.
return true;
}
// Keep any line which has content.
return true;
});
const firstLine = messageLines.shift().trim();
upgradeNotes += `- ${firstLine}\n`;
messageLines
.forEach((line) => {
upgradeNotes += ` ${line}`.trimEnd() + `\n`;
});
upgradeNotes += `\n For more information see [${issueNumber}](https://tracker.moodle.org/browse/${issueNumber})\n`;
});
upgradeNotes += '\n';
});
return upgradeNotes;
};
/**
* Get the updated notes mixed with existing content.
*
* @param {string} existingContent
* @param {string} upgradeNotes
*/
const getUpdatedNotes = (existingContent, upgradeNotes) => {
const { beforeContent, afterContent } = getBeforeAndAfterContent(existingContent);
const newContent = `${beforeContent}\n${upgradeNotes}\n${afterContent}`
.split('\n')
.filter((line, index, lines) => {
if (line === '' && lines[index - 1] === '') {
// Remove multiple consecutive empty lines.
return false;
}
return true;
})
.join('\n');
return newContent;
};
/**
* Update the notes for each component.
*/
const updateComponentNotes = (
notes,
version,
notesFileName = 'UPGRADING.md',
removeEmpty = false,
) => {
return getAllComponents().map(async (component) => {
logger.verbose(`Updating notes for ${component.name} into ${component.path}`);
const fileName = joinPath(component.path, notesFileName);
const existingContent = await getCurrentNotes(fileName);
if (!existingContent) {
if (!notes[component.value]) {
// No existing notes, and no new notes to add.
return;
}
} else {
if (!notes[component.value]) {
// There is existing content, but nothing to add.
if (removeEmpty) {
logger.verbose(`Removing empty notes file ${fileName}`);
await unlink(fileName);
}
return;
}
}
const componentNotes = notes[component.value];
let upgradeNotes = `## ${version}\n\n`;
upgradeNotes += getNotesForComponent(componentNotes, 3);
if (existingContent) {
await writeFile(fileName, getUpdatedNotes(existingContent, upgradeNotes));
} else {
await writeFile(
fileName,
`# ${component.name} Upgrade notes\n\n${upgradeNotes}`,
);
}
});
}
/**
* Generate the upgrade notes for a new release.
*
* @param {string|undefined} version
* @param {Object} options
* @param {boolean} options.generateUpgradeNotes
* @param {boolean} options.deleteNotes
* @returns {Promise<void>}
*/
export default async (version, options = {}) => {
const notes = await getCombinedNotesByComponent();
if (Object.keys(notes).length === 0) {
logger.warn('No notes to generate');
return;
}
if (!version) {
version = await getCurrentVersion();
}
// Generate the upgrade notes for this release.
// We have
// - a title with the release name
// - the change types
// - which contain the components
// - which document each change
let upgradeNotes = `## ${version}\n\n`;
Object.entries(notes).forEach(([component, types]) => {
upgradeNotes += `### ${component}\n\n`;
upgradeNotes += getNotesForComponent(types, 4);
});
await Promise.all([
createCurrentSummary(upgradeNotes),
...updateComponentNotes(notes, version, 'UPGRADING-CURRENT.md', true),
]);
if (options.generateUpgradeNotes) {
await Promise.all(updateComponentNotes(notes, version));
await updateUpgradeNotes(upgradeNotes, options);
}
};
+230
View File
@@ -0,0 +1,230 @@
// 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 chalk from 'chalk';
import { isStandardComponent, isCommunityComponent, rewritePlugintypeAsSubsystem } from './components.mjs';
import { isValidNoteName } from './noteTypes.mjs';
import logger from './logger.mjs';
import { readFile } from 'fs/promises';
/**
* Validate an issue number input
*
* @param {string} input
* @returns {string|boolean}
*/
export const validateIssueNumber = (input) => {
if (!input) {
return 'You must provide a tracker issue number';
}
if (input.match(/^[a-zA-Z]*-\d+$/)) {
return true;
}
if (input.match(/^\d+$/)) {
return true;
}
return 'The issue number was not recognised as a valid issue number';
};
/**
* Format an issue number input.
*
* @param {string} input
* @returns {string}
*/
export const formatIssueNumber = (input) => {
if (input.match(/^[a-zA-Z]*-\d+$/)) {
return input;
}
if (input.match(/^\d+$/)) {
return `MDL-${input}`;
}
return input;
};
/**
* Validate a component.
*
* @param {string} input
* @returns {string|boolean}
*/
export const validateComponent = (input) => {
if (isStandardComponent(input)) {
return true;
}
if (isCommunityComponent(input)) {
return 'Currently only core plugins are supported.';
}
return 'The component was not recognised as a standard component';
};
export const formatComponent = (input) => {
if (rewritePlugintypeAsSubsystem(input)) {
return `core_${input}`;
}
return input;
}
/**
* Get the initial values from the options.
*
* @param {object} options
* @returns {object}
*/
export const getInitialValues = (options) => {
const initialValues = {};
const type = getInitialTypeValue(options);
if (type) {
initialValues.type = type;
}
const issueNumber = getInitialIssueValue(options);
if (issueNumber) {
initialValues.issueNumber = issueNumber;
}
const component = getInitialComponentValue(options);
if (component) {
initialValues.components = component;
}
const message = getInitialMessageValue(options);
if (message) {
initialValues.message = message
initialValues.addAnother = false;
}
return initialValues;
};
/**
* Get the initial type value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialTypeValue = (options) => {
if (!options.type) {
return;
}
options.type = options.type.trim().toLowerCase();
if (isValidNoteName(options.type)) {
return options.type;
}
logger.warn(`Note type "${chalk.underline(chalk.red(options.type))}" is not valid.`);
};
/**
* Get the initial issue number value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialIssueValue = (options) => {
if (!options.issue) {
return;
}
options.issue = options.issue.trim().toUpperCase();
const issueNumberValidated = validateIssueNumber(options.issue);
if (issueNumberValidated === true) {
const issueNumber = formatIssueNumber(options.issue);
if (issueNumber !== options.issue) {
logger.warn(
`Issue number "${chalk.underline(chalk.red(options.issue))}" was updated to ` +
`"${chalk.underline(chalk.green(issueNumber))}"`
);
}
return issueNumber;
} else {
logger.warn(`Issue number "${chalk.underline(chalk.red(options.issue))}" is not valid: ${issueNumberValidated}`);
}
};
/**
* Get the initial component value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialComponentValue = (options) => {
if (!options.component) {
return;
}
options.component = options.component.trim().toLowerCase();
const componentValidated = validateComponent(options.component);
if (componentValidated === true) {
const component = formatComponent(options.component);
if (component !== options.component) {
logger.warn(
`Component "${chalk.underline(chalk.red(options.component))}" was updated to ` +
`"${chalk.underline(chalk.green(component))}"`
);
}
return component;
} else {
logger.warn(`Component "${chalk.underline(chalk.red(options.component))}" is not valid: ${componentValidated}`);
}
};
/**
* Get the initial message value.
*
* @param {Object} options
* @returns {string|undefined}
*/
const getInitialMessageValue = (options) => {
if (!options.message) {
return;
}
return options.message.trim();
};
/**
* Get the current version from the project /version.php file.
*
* @returns {Promise<string>}
*/
export const getCurrentVersion = async () => {
const versionRegex = new RegExp(/^ *\$release *= *['\"](?<release>[^ \+]+\+?) *\(Build:.*/m);
try {
const versionFile = await readFile('version.php', 'utf8');
const match = versionFile.match(versionRegex);
if (match) {
return match.groups.release;
}
} catch(error) {
logger.error('Unable to read the version file');
}
return "Unreleased";
}
+30
View File
@@ -0,0 +1,30 @@
#!/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 winston from 'winston';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.colorize(),
winston.format.simple()
),
transports: [
new winston.transports.Console(),
],
});
export default logger;
+194
View File
@@ -0,0 +1,194 @@
// 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 yaml from 'js-yaml';
import path from 'path';
import { writeFile, mkdir, readdir, readFile, unlink } from 'fs/promises';
import { isValidNoteName, sortNoteTypes } from './noteTypes.mjs';
import { sortComponents } from './components.mjs';
const unreleasedPath = path.resolve('.upgradenotes');
/**
* Get the filename for the note.
*
* @param {string} issueNumnber The issue number
* @returns {string}
*/
const getFilename = (issueNumber) => {
const dateTimeFormat = new Intl.DateTimeFormat(undefined, {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 2,
timeZone: 'UTC',
});
const date = Object.fromEntries(
dateTimeFormat.formatToParts(new Date())
.filter((p) => p.type !== 'literal')
.map((p) => ([p.type, p.value]))
);
const dateString = [
date.year,
date.month,
date.day,
date.hour,
date.minute,
date.second,
date.fractionalSecond,
].join('');
return `${issueNumber}-${dateString}.yml`;
};
/**
* Create a new note.
*
* @param {string} issueNumber
* @param {[type: string]: {message: string}} messages
* @returns {string} The path to the note on disk
*/
export const createNote = async (
issueNumber,
messages,
notePath,
) => {
const note = {
issueNumber,
notes: {},
};
messages.forEach(({components, type, message}) => {
note.notes[components] = note.notes[components] || [];
note.notes[components].push({message, type});
});
if (!notePath) {
notePath = path.resolve(unreleasedPath, getFilename(issueNumber));
}
const noteContent = yaml.dump(note);
await mkdir(unreleasedPath, {recursive: true});
await writeFile(notePath, noteContent);
return notePath;
};
/**
* Get all unreleased notes.
*
* @returns {Promise<{issueNumber: string, components: string[], types: {[type: string]: {message: string}[]}}[]>
*/
export const getAllNotes = async () => {
const files = await readdir(unreleasedPath);
const notes = files
.filter((file) => file.endsWith('.yml'))
.map(async (file) => {
const filePath = path.resolve(unreleasedPath, file);
const fileContent = await readFile(filePath, 'utf8');
return {
...yaml.load(fileContent),
filePath,
};
});
return Promise.all(notes);
};
/**
* Get the list of notes, grouped by note type, then component.
*
* @returns {Promise<{[type: string]: {[components: string]: {message: string, issueNumber: string}[]}}>}
*/
export const getCombinedNotes = async () => {
const notes = await getAllNotes();
const combinedNotes = {};
notes.forEach((note) => {
Object.entries(note.notes).forEach(([components, data]) => {
data.forEach((entry) => {
if (!isValidNoteName(entry.type)) {
throw new Error(`Invalid note type: "${entry.type}" in file ${note.filePath}`);
}
combinedNotes[entry.type] = combinedNotes[entry.type] || {};
combinedNotes[entry.type][components] = combinedNotes[entry.type][components] || [];
combinedNotes[entry.type][components].push({message: entry.message, issueNumber: note.issueNumber});
});
});
});
return combinedNotes;
};
/**
* Get the list of notes, grouped by component, then by note type.
*
* @returns {Promise<{[component: string]: {[type: string]: {message: string, issueNumber: string}[]}}>}
*/
export const getCombinedNotesByComponent = async () => {
const notes = await getAllNotes();
const combinedNotes = {};
notes.forEach((note) => {
Object.entries(note.notes).forEach(([component, data]) => {
combinedNotes[component] = combinedNotes[component] || {};
data.forEach((entry) => {
if (!isValidNoteName(entry.type)) {
throw new Error(`Invalid note type: "${entry.type}" in file ${note.filePath}`);
}
combinedNotes[component][entry.type] = combinedNotes[component][entry.type] || [];
combinedNotes[component][entry.type].push({
component,
message: entry.message,
issueNumber: note.issueNumber,
type: entry.type,
});
});
});
});
// Sort notes by note type.
Object.entries(combinedNotes).forEach(([component, types]) => {
combinedNotes[component] = Object.fromEntries(
Object.entries(types).sort(([a], [b]) => sortNoteTypes(a, b))
);
});
// Sort components.
return Object.fromEntries(
Object.entries(combinedNotes).sort(([a], [b]) => sortComponents(a, b))
);
};
/**
* Delete all unreleased notes.
*
* @returns {Promise<void>}
*/
export const deleteAllNotes = async () => {
const files = await readdir(unreleasedPath);
return Promise.all(
files
.filter((item, index) => files.indexOf(item) === index)
.filter((file) => file.endsWith('.yml'))
.map((file) => unlink(`${unreleasedPath}/${file}`))
);
};
+80
View File
@@ -0,0 +1,80 @@
// 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/>.
/**
* The note types.
*
* Matches the suggested order in https://keepachangelog.com/en/1.1.0/.
* @type {Object<string, string>}
*/
const noteTypes = {
'improved': 'Added',
'changed': 'Changed',
'deprecated': 'Deprecated',
'removed': 'Removed',
'fixed': 'Fixed',
};
/**
* The preferred order of note types.
*
* @type {string[]}
*/
const preferredOrder = Object.keys(noteTypes);
/**
* Comparison method to sort note types.
*
* @param {String} a
* @param {String} b
* @returns {Number}
*/
export const sortNoteTypes = (a, b) => {
const aIndex = preferredOrder.indexOf(a);
const bIndex = preferredOrder.indexOf(b);
if (aIndex === -1) {
return 1;
}
if (bIndex === -1) {
return -1;
}
return aIndex - bIndex;
};
/**
* Get the note names.
*
* @returns {string[]}
*/
export const getNoteNames = () => Object.keys(noteTypes);
/**
* Get the human-readable note name.
*
* @param {string} type
* @returns {string}
*/
export const getNoteName = (type) => noteTypes[type];
/**
* Whether the note name is valid.
*
* @param {string} type
* @returns {boolean}
*/
export const isValidNoteName = (type) => noteTypes[type] !== undefined;
+153
View File
@@ -0,0 +1,153 @@
// 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 inquirer from 'inquirer';
import SearchList from 'inquirer-search-list';
import { getNoteNames } from './noteTypes.mjs';
import { getAllComponents } from './components.mjs';
import {
formatComponent,
formatIssueNumber,
validateComponent,
validateIssueNumber,
} from './helpers.mjs';
/**
* A Search List which accepts an initial value.
*/
class SearchListWithInitialValue extends SearchList {
constructor(options, ...args) {
super(options, ...args);
if (options.default) {
const pointer = this.filterList.findIndex((item) => {
return item.value === options.default;
});
if (pointer > -1) {
this.pointer = pointer;
}
}
}
}
inquirer.registerPrompt('search-list', SearchListWithInitialValue);
/**
* Get the issue type prompt.
*
* @param {string} defaultData The initially selected value
* @returns {Object}
*/
export const getTypePrompt = (defaultData) => ({
default: defaultData,
type: 'search-list',
message: 'Type of change',
name: 'type',
choices: getNoteNames(),
validate: (selection) => {
if (selection.length < 1) {
return 'You must select at least one type of change';
}
return true;
},
});
/**
* Get the component prompt.
*
* @param {string} [defaultValue='core'] The initally selected value.
* @returns
*/
export const getComponentsPrompt = (defaultValue) => {
if (!defaultValue ) {
defaultValue = 'core';
}
return {
choices: getAllComponents(),
default: defaultValue,
type: 'search-list',
message: 'Component',
name: 'components',
validate: validateComponent,
filter: formatComponent,
};
};
/**
* Get the issue number prompt as an inline input.
*
* @param {string} defaultData
* @returns {object}
*/
export const getIssuePrompt = (defaultData) => ({
default: defaultData,
type: 'input',
message: 'Tracker issue number',
name: 'issueNumber',
validate: validateIssueNumber,
filter: formatIssueNumber,
});
/**
* Get a message prompt.
*
* @param {string} defaultData
* @returns
*/
export const getMessagePromptEditor = (defaultData) => ({
default: defaultData,
type: process.stdin.isTTY ? 'editor' : 'input',
postfix: '.md',
message: 'Message',
name: 'message',
waitUserInput: false,
validate: (input) => {
if (!input) {
return 'You must provide a message';
}
return true;
},
// Remove any trailing whitespace.
filter: (input) => input.split('\n').map((line) => line.trimEnd()).join('\n'),
});
/**
* Get a message prompt.
*
* @param {string} defaultData
* @returns
*/
export const getMessagePromptInput = (defaultData) => ({
default: defaultData,
type: 'input',
message: 'Message (leave empty to use editor)',
name: 'message',
filter: (input) => input.trim(),
});
/**
* Get a prompt to ask the user if they wish to add another entry.
*
* @returns {Object}
*/
export const getAddAnotherPrompt = () => ({
type: 'confirm',
message: 'Do you want to add another note?',
default: false,
name: 'addAnother',
});
+103
View File
@@ -0,0 +1,103 @@
#!/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 { Argument, Option, program } from 'commander';
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 logger from './notes/src/logger.mjs';
console.log(`
${chalk.bold(chalk.underline(chalk.green('Moodle Upgrade Notes Generator')))}
This tool is used to generate the upgrade notes for changes you make in Moodle.
Please remember that the intended audience of these changes is
${chalk.italic('plugin developers')} who need to know how to update their plugins
for a new Moodle version.
Upgrade notes should not be used to document changes for site administrators, or
for internal API changes which are not expected to be used outside of the
relevant component.
`)
program.configureHelp({
helpWidth: 100,
});
program.on('option:verbose', () => {
logger.level = 'verbose';
});
program.addOption(
new Option(
'-v, --verbose',
'Output more information during the generation process',
)
.default(false)
);
// Define the command line options.
program
.command('create')
.summary('Generate a new upgrade note')
.addOption(
new Option('-t, --type <type>', `The type of change to document. Valid types are: ${getNoteNames().join(', ')}`)
)
.addOption(new Option('-i, --issue <issue>', 'The tracker issue number'))
.addOption(new Option('-c, --component <component>', 'The component to write a note for'))
.addOption(new Option(
'-m, --message <message>',
'The message to use for the upgrade note',
))
.action((options) => createAction(options));
program
.command('summary')
.summary('Generate a local copy of the upgrade notes summary')
.addArgument(
new Argument('[version]', 'The Moodle version to create the summary notes for')
)
.action((version) => generateAction(version));
program
.command('release')
.summary('Generate the markdown copies of the upgrade notes for a Moodle release')
.addArgument(
new Argument('[version]', 'The Moodle version to create the release notes for')
)
.addOption(
new Option(
'--generate-upgrade-notes',
'Generate the UPGRADING.md notes for the release. ' +
'Note: This option is intended for use by the release manager when generating the upgrade notes.',
)
.default(true)
)
.addOption(
new Option(
'-d, --delete-notes',
'Delete the notes after generating the UPGRADING.md notes for the release. ' +
'Note: This option is intended for use by the release manager when generating the upgrade notes.' +
'This option has no effect unless --generate-upgrade-notes is also set.'
)
.default(false)
)
.action((version, options) => generateAction(version, options));
program.parse();
+1 -1
View File
@@ -1 +1 @@
lts/iron
lts/jod
View File
+7
View File
@@ -0,0 +1,7 @@
issueNumber: MDL-87443
notes:
core:
- message: >-
There is a new Behat `toast_message` named selector to more easily
assert the presence of Toast messages on the page
type: improved
+1601
View File
File diff suppressed because it is too large Load Diff
+9
View File
@@ -0,0 +1,9 @@
# core_admin (subsystem) Upgrade notes
## 4.5rc1
### Removed
- The HTTP Server setting "Use slash arguments" (slasharguments) configuration setting and related to it has been removed. Calling the option with $CFG->slasharguments or get_config('slasharguments') is no longer available.
For more information see [MDL-62640](https://tracker.moodle.org/browse/MDL-62640)
+65
View File
@@ -0,0 +1,65 @@
<?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/>.
/**
* Manage AI subsystem plugins settings.
*
* @package core_admin
* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('../config.php');
require_once($CFG->libdir . '/adminlib.php');
$action = required_param('action', PARAM_ALPHANUMEXT);
$type = required_param('type', PARAM_PLUGIN); // Must be provider or placement.
$name = required_param('name', PARAM_PLUGIN); // Plugin name, e.g openai.
$syscontext = context_system::instance();
$PAGE->set_url('/admin/ai.php');
$PAGE->set_context($syscontext);
require_admin();
require_sesskey();
$return = new moodle_url('/admin/settings.php', ['section' => "aisettings$type"]);
$plugins = core_plugin_manager::instance()->get_plugins_of_type("ai$type");
$sortorder = array_flip(array_keys($plugins));
if (!isset($plugins[$name])) {
throw new moodle_exception('aipluginnotfound', 'core_ai', $return, $name);
}
$plugintypename = $plugins[$name]->type . '_' . $plugins[$name]->name;
switch ($action) {
case 'disable':
if ($plugins[$name]->is_enabled()) {
$class = core_plugin_manager::resolve_plugininfo_class("aisettings$type");
$class::enable_plugin($name, false);
}
break;
case 'enable':
if (!$plugins[$name]->is_enabled()) {
$class = core_plugin_manager::resolve_plugininfo_class("aisettings$type");
$class::enable_plugin($name, true);
}
break;
}
redirect($return);
+1 -1
View File
@@ -5,6 +5,6 @@ define("core_admin/bulk_user_actions",["exports","core_reportbuilder/local/selec
* @module core_admin/bulk_user_actions
* @copyright 2024 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,reportSelectors=_interopRequireWildcard(reportSelectors),tableEvents=_interopRequireWildcard(tableEvents),FormChangeChecker=_interopRequireWildcard(FormChangeChecker),CustomEvents=_interopRequireWildcard(CustomEvents),_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const Selectors_bulkActionsForm="form#user-bulk-action-form",Selectors_userReportWrapper='[data-region="report-user-list-wrapper"]',Selectors_checkbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="slave"]',Selectors_masterCheckbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="master"]',Selectors_checkedRows='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked';_exports.init=()=>{var _userBulkForm$closest;const userBulkForm=document.querySelector(Selectors_bulkActionsForm),userReport=null==userBulkForm||null===(_userBulkForm$closest=userBulkForm.closest(Selectors_userReportWrapper))||void 0===_userBulkForm$closest?void 0:_userBulkForm$closest.querySelector(reportSelectors.regions.report);if(!userBulkForm||!userReport)return;const actionSelect=userBulkForm.querySelector("select");CustomEvents.define(actionSelect,[CustomEvents.events.accessibleChange]),(0,_jquery.default)(actionSelect).on(CustomEvents.events.accessibleChange,(event=>{if(event.target.value&&"0"!=="".concat(event.target.value)){const e=new Event("submit",{cancelable:!0});userBulkForm.dispatchEvent(e),e.defaultPrevented||(FormChangeChecker.markFormSubmitted(userBulkForm),userBulkForm.submit())}}));const updateUserIds=()=>{const selectedUsers=[...userReport.querySelectorAll(Selectors_checkedRows)],selectedUserIds=selectedUsers.map((check=>parseInt(check.value)));userBulkForm.querySelector('[name="userids"]').value=selectedUserIds.join(","),actionSelect.disabled=0===selectedUsers.length;const selectedUsersNames=selectedUsers.map((check=>document.querySelector('label[for="'.concat(check.id,'"]')).textContent));userBulkForm.data={userids:selectedUserIds,usernames:selectedUsersNames}};updateUserIds(),document.addEventListener("change",(event=>{(event.target.matches(Selectors_checkbox)||event.target.matches(Selectors_masterCheckbox))&&userReport.contains(event.target)&&updateUserIds()})),document.addEventListener(tableEvents.tableContentRefreshed,(event=>{userReport.contains(event.target)&&updateUserIds()}))}}));
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,reportSelectors=_interopRequireWildcard(reportSelectors),tableEvents=_interopRequireWildcard(tableEvents),FormChangeChecker=_interopRequireWildcard(FormChangeChecker),CustomEvents=_interopRequireWildcard(CustomEvents),_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const Selectors_bulkActionsForm="form#user-bulk-action-form",Selectors_userReportWrapper='[data-region="report-user-list-wrapper"]',Selectors_checkbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="slave"]',Selectors_masterCheckbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="master"]',Selectors_checkedRows='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked';_exports.init=()=>{var _userBulkForm$closest;const userBulkForm=document.querySelector(Selectors_bulkActionsForm),userReport=null==userBulkForm||null===(_userBulkForm$closest=userBulkForm.closest(Selectors_userReportWrapper))||void 0===_userBulkForm$closest?void 0:_userBulkForm$closest.querySelector(reportSelectors.regions.report);if(!userBulkForm||!userReport)return;const actionSelect=userBulkForm.querySelector("select");CustomEvents.define(actionSelect,[CustomEvents.events.accessibleChange]),(0,_jquery.default)(actionSelect).on(CustomEvents.events.accessibleChange,(event=>{if(event.target.value&&"0"!=="".concat(event.target.value)){const e=new Event("submit",{cancelable:!0});userBulkForm.dispatchEvent(e),e.defaultPrevented||(FormChangeChecker.markFormSubmitted(userBulkForm),userBulkForm.submit())}}));const updateUserIds=()=>{const selectedUsers=[...userReport.querySelectorAll(Selectors_checkedRows)],selectedUserIds=selectedUsers.map((check=>parseInt(check.value)));userBulkForm.querySelector('[name="userids"]').value=selectedUserIds.join(","),actionSelect.disabled=0===selectedUsers.length,actionSelect.disabled&&(actionSelect.value="0");const selectedUsersNames=selectedUsers.map((check=>document.querySelector('label[for="'.concat(check.id,'"]')).textContent));userBulkForm.data={userids:selectedUserIds,usernames:selectedUsersNames}};updateUserIds(),document.addEventListener("change",(event=>{(event.target.matches(Selectors_checkbox)||event.target.matches(Selectors_masterCheckbox))&&userReport.contains(event.target)&&updateUserIds()})),document.addEventListener(tableEvents.tableContentRefreshed,(event=>{userReport.contains(event.target)&&updateUserIds()}))}}));
//# sourceMappingURL=bulk_user_actions.min.js.map
File diff suppressed because one or more lines are too long
+12
View File
@@ -0,0 +1,12 @@
define("core_admin/expand_hash",["exports"],(function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=_exports.expandSection=void 0;
/**
* Expand the collapse section element.
*
* @module core_admin/expand_hash
* @copyright Meirza <meirza.arson@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.5
*/
const SELECTORS_COLLAPSE_ELEMENTS='[data-toggle="collapse"]',SELECTORS_FOCUSTHENEXPAND_ELEMENTS=".focus-expand";_exports.init=()=>{const focusexpand=document.querySelector(SELECTORS_FOCUSTHENEXPAND_ELEMENTS);null==focusexpand||focusexpand.addEventListener("click",(()=>{expandSection("".concat(focusexpand.getAttribute("href")))}))};const expandSection=hash=>{const container=document.querySelector(hash),targetContainer=null==container?void 0:container.querySelector(SELECTORS_COLLAPSE_ELEMENTS);if("false"===(null==targetContainer?void 0:targetContainer.getAttribute("aria-expanded"))){const collapseId=targetContainer.getAttribute("aria-controls"),collapseContainer=document.getElementById(collapseId);collapseContainer.classList.remove("collapse"),collapseContainer.classList.add("show"),targetContainer.setAttribute("aria-expanded","true"),targetContainer.classList.remove("collapsed");const collapseElement=document.querySelector(".collapseexpand.collapsemenu");collapseElement.setAttribute("aria-expanded","true"),collapseElement.classList.remove("collapsed")}};_exports.expandSection=expandSection}));
//# sourceMappingURL=expand_hash.min.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"expand_hash.min.js","sources":["../src/expand_hash.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Expand the collapse section element.\n *\n * @module core_admin/expand_hash\n * @copyright Meirza <meirza.arson@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 4.5\n */\n\nconst SELECTORS = {\n COLLAPSE_ELEMENTS: '[data-toggle=\"collapse\"]',\n FOCUSTHENEXPAND_ELEMENTS: '.focus-expand',\n};\n\n/**\n * Initializes the focus and expand functionality.\n */\nexport const init = () => {\n // Select all collapsible elements only.\n const focusexpand = document.querySelector(SELECTORS.FOCUSTHENEXPAND_ELEMENTS);\n\n // Add click event listener to the anchor element\n focusexpand?.addEventListener('click', () => {\n expandSection(`${focusexpand.getAttribute('href')}`);\n });\n};\n\n/**\n * Expands a section based on the provided URL hash.\n *\n * This function takes a hash string, finds the corresponding element in the DOM,\n * and expands it if it is currently collapsed. It updates the necessary ARIA\n * attributes and classes to reflect the expanded state.\n *\n * @param {string} hash - The hash (e.g., '#elementId') of the element to expand.\n */\nexport const expandSection = (hash) => {\n const container = document.querySelector(hash);\n const targetContainer = container?.querySelector(SELECTORS.COLLAPSE_ELEMENTS);\n\n if (targetContainer?.getAttribute('aria-expanded') === 'false') {\n const collapseId = targetContainer.getAttribute('aria-controls');\n const collapseContainer = document.getElementById(collapseId);\n\n // Show the content.\n collapseContainer.classList.remove('collapse');\n collapseContainer.classList.add('show');\n\n // Update aria-expanded attribute to reflect the new state.\n targetContainer.setAttribute('aria-expanded', 'true');\n targetContainer.classList.remove('collapsed');\n\n // Get collapse expand menu element.\n const collapseElement = document.querySelector('.collapseexpand.collapsemenu');\n // Ensure it gets noticed to make it work.\n collapseElement.setAttribute('aria-expanded', 'true');\n collapseElement.classList.remove('collapsed');\n }\n};\n"],"names":["SELECTORS","focusexpand","document","querySelector","addEventListener","expandSection","getAttribute","hash","container","targetContainer","collapseId","collapseContainer","getElementById","classList","remove","add","setAttribute","collapseElement"],"mappings":";;;;;;;;;MAwBMA,4BACiB,2BADjBA,mCAEwB,8BAMV,WAEVC,YAAcC,SAASC,cAAcH,oCAG3CC,MAAAA,aAAAA,YAAaG,iBAAiB,SAAS,KACnCC,wBAAiBJ,YAAYK,aAAa,oBAarCD,cAAiBE,aACpBC,UAAYN,SAASC,cAAcI,MACnCE,gBAAkBD,MAAAA,iBAAAA,UAAWL,cAAcH,gCAEM,WAAnDS,MAAAA,uBAAAA,gBAAiBH,aAAa,kBAA8B,OACtDI,WAAaD,gBAAgBH,aAAa,iBAC1CK,kBAAoBT,SAASU,eAAeF,YAGlDC,kBAAkBE,UAAUC,OAAO,YACnCH,kBAAkBE,UAAUE,IAAI,QAGhCN,gBAAgBO,aAAa,gBAAiB,QAC9CP,gBAAgBI,UAAUC,OAAO,mBAG3BG,gBAAkBf,SAASC,cAAc,gCAE/Cc,gBAAgBD,aAAa,gBAAiB,QAC9CC,gBAAgBJ,UAAUC,OAAO"}
+1 -1
View File
@@ -1,3 +1,3 @@
define("core_admin/plugin_management_table",["exports","core_table/dynamic","core_table/local/dynamic/selectors","core/ajax","core/pending","core/notification"],(function(_exports,_dynamic,Selectors,_ajax,_pending,_notification){var obj;function _getRequireWildcardCache(nodeInterop){if("function"!=typeof WeakMap)return null;var cacheBabelInterop=new WeakMap,cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Selectors=function(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(null===obj||"object"!=typeof obj&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if("default"!==key&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}(Selectors),_pending=(obj=_pending)&&obj.__esModule?obj:{default:obj};let watching=!1;return _exports.default=class{constructor(){!function(obj,key,value){key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value}(this,"clickHandlers",[]),this.addClickHandler(this.handleStateToggle),this.addClickHandler(this.handleMoveUpDown),this.registerEventListeners()}static init(){watching||(watching=!0,new this)}addClickHandler(handler){this.clickHandlers.push(handler.bind(this))}registerEventListeners(){document.addEventListener("click",function(e){const tableRoot=this.getTableRoot(e);tableRoot&&this.clickHandlers.forEach((handler=>handler(tableRoot,e)))}.bind(this))}getTableRoot(e){const tableRoot=e.target.closest(Selectors.main.region);return tableRoot||!1}setPluginState(methodname,plugin,state){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,state:state}}])[0]}setPluginOrder(methodname,plugin,direction){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,direction:direction}}])[0]}async handleStateToggle(tableRoot,e){const stateToggle=e.target.closest('[data-action="togglestate"][data-toggle-method]');if(stateToggle){e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:togglestate");await this.setPluginState(stateToggle.dataset.toggleMethod,stateToggle.dataset.plugin,"1"===stateToggle.dataset.state?0:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]);updatedRoot.querySelector('[data-action="togglestate"][data-plugin="'.concat(stateToggle.dataset.plugin,'"]')).focus(),pendingPromise.resolve()}}async handleMoveUpDown(tableRoot,e){const actionLink=e.target.closest('[data-action="move"][data-method][data-direction]');if(!actionLink)return;e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:processAction");await this.setPluginOrder(actionLink.dataset.method,actionLink.dataset.plugin,"up"===actionLink.dataset.direction?-1:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]),exactMatch=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"][data-direction="').concat(actionLink.dataset.direction,'"]'));var _updatedRoot$querySel;exactMatch?exactMatch.focus():null===(_updatedRoot$querySel=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"]')))||void 0===_updatedRoot$querySel||_updatedRoot$querySel.focus();pendingPromise.resolve()}},_exports.default}));
define("core_admin/plugin_management_table",["exports","core_table/dynamic","core_table/local/dynamic/selectors","core/ajax","core/pending","core/notification"],(function(_exports,_dynamic,Selectors,_ajax,_pending,_notification){var obj;function _getRequireWildcardCache(nodeInterop){if("function"!=typeof WeakMap)return null;var cacheBabelInterop=new WeakMap,cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Selectors=function(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(null===obj||"object"!=typeof obj&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if("default"!==key&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}(Selectors),_pending=(obj=_pending)&&obj.__esModule?obj:{default:obj};let watching=!1;return _exports.default=class{constructor(){!function(obj,key,value){key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value}(this,"clickHandlers",[]),this.addClickHandler(this.handleStateToggle),this.addClickHandler(this.handleMoveUpDown),this.registerEventListeners()}static init(){watching||(watching=!0,new this)}addClickHandler(handler){this.clickHandlers.push(handler.bind(this))}registerEventListeners(){document.addEventListener("click",function(e){const tableRoot=this.getTableRoot(e);tableRoot&&this.clickHandlers.forEach((handler=>handler(tableRoot,e)))}.bind(this))}getTableRoot(e){const tableRoot=e.target.closest(Selectors.main.region);return tableRoot||!1}setPluginState(methodname,plugin,state){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,state:state}}])[0]}setPluginOrder(methodname,plugin,direction){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,direction:direction}}])[0]}async handleStateToggle(tableRoot,e){const stateToggle=e.target.closest('[data-action="togglestate"][data-toggle-method]');if(stateToggle){e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:togglestate");await this.setPluginState(stateToggle.dataset.toggleMethod,stateToggle.dataset.plugin,"1"===stateToggle.dataset.state?0:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]);updatedRoot.querySelector('[data-action="togglestate"][data-plugin="'.concat(stateToggle.dataset.plugin,'"]')).focus(),this.removeTooltips(),pendingPromise.resolve()}}async handleMoveUpDown(tableRoot,e){const actionLink=e.target.closest('[data-action="move"][data-method][data-direction]');if(!actionLink)return;e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:processAction");await this.setPluginOrder(actionLink.dataset.method,actionLink.dataset.plugin,"up"===actionLink.dataset.direction?-1:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]),exactMatch=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"][data-direction="').concat(actionLink.dataset.direction,'"]'));var _updatedRoot$querySel;exactMatch?exactMatch.focus():null===(_updatedRoot$querySel=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"]')))||void 0===_updatedRoot$querySel||_updatedRoot$querySel.focus();pendingPromise.resolve()}removeTooltips(){const tooltips=document.querySelectorAll('[id*="tooltip"]');tooltips.length>0&&tooltips.forEach((tooltip=>{tooltip.remove()}))}},_exports.default}));
//# sourceMappingURL=plugin_management_table.min.js.map
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
define("core_admin/plugins_overview",["exports"],(function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=function(){const filters=document.querySelectorAll(SELECTORS_PLUGIN_FILTERS),pluginRows=document.querySelectorAll(SELECTORS_PLUGIN_ROWS),pluginTypeRows=document.querySelectorAll(SELECTORS_PLUGIN_TYPE_ROWS),filterPlugins=target=>{const filterBy=target.getAttribute("data-filterby"),headerVisibility={};for(const row of pluginRows){const type=[...row.classList].find((s=>s.startsWith("type-"))),visible="all"===filterBy||row.classList.contains(filterBy);row.style.display=visible?null:"none",visible&&type&&(headerVisibility[type]=!0)}for(const row of pluginTypeRows){const type=[...row.classList].find((s=>s.startsWith("type-")));if(type){const visible="all"===filterBy||headerVisibility[type];row.style.display=visible?null:"none"}}filters.forEach((el=>el.classList.remove("active"))),target.classList.add("active")};if(filters.forEach((target=>target.addEventListener("click",(e=>{e.preventDefault(),window.history.replaceState({},null,e.target.href),filterPlugins(target)})))),window.location.hash.length>1){const anchor=window.location.hash.substring(1),target=[...filters].find((t=>t.getAttribute("data-filterby")===anchor));target&&filterPlugins(target)}};
/**
* Allows to filter the plugin list on plugins overview page
*
* @module core_admin/plugins_overview
* @copyright 2024 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
const SELECTORS_PLUGIN_FILTERS="#plugins-overview-panel [data-filterby]",SELECTORS_PLUGIN_ROWS="table#plugins-control-panel tbody tr:not(.plugintypeheader)",SELECTORS_PLUGIN_TYPE_ROWS="table#plugins-control-panel tbody tr.plugintypeheader"}));
//# sourceMappingURL=plugins_overview.min.js.map
@@ -0,0 +1 @@
{"version":3,"file":"plugins_overview.min.js","sources":["../src/plugins_overview.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Allows to filter the plugin list on plugins overview page\n *\n * @module core_admin/plugins_overview\n * @copyright 2024 Marina Glancy\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nconst SELECTORS = {\n PLUGIN_FILTERS: '#plugins-overview-panel [data-filterby]',\n PLUGIN_ROWS: 'table#plugins-control-panel tbody tr:not(.plugintypeheader)',\n PLUGIN_TYPE_ROWS: 'table#plugins-control-panel tbody tr.plugintypeheader',\n};\n\n/**\n * Initialise filters for the \"Plugins overview\" page\n */\nexport function init() {\n const filters = document.querySelectorAll(SELECTORS.PLUGIN_FILTERS);\n const pluginRows = document.querySelectorAll(SELECTORS.PLUGIN_ROWS);\n const pluginTypeRows = document.querySelectorAll(SELECTORS.PLUGIN_TYPE_ROWS);\n\n const filterPlugins = (target) => {\n const filterBy = target.getAttribute('data-filterby');\n const headerVisibility = {};\n\n // Hide all plugin rows in the plugin table that do not match the filter and show all others.\n for (const row of pluginRows) {\n const type = [...row.classList].find(s => s.startsWith('type-'));\n const visible = filterBy === 'all' ? true : row.classList.contains(filterBy);\n row.style.display = visible ? null : 'none';\n if (visible && type) {\n headerVisibility[type] = true;\n }\n }\n\n // Hide all the plugin type headers that do not have any visible plugins and show all others.\n for (const row of pluginTypeRows) {\n const type = [...row.classList].find(s => s.startsWith('type-'));\n if (type) {\n const visible = filterBy === 'all' || headerVisibility[type];\n row.style.display = visible ? null : 'none';\n }\n }\n\n // Toggle 'active' class for the selected filter.\n filters.forEach(el => el.classList.remove('active'));\n target.classList.add('active');\n };\n\n // Add event listeners for the links changing plugins filters.\n filters\n .forEach(target => target.addEventListener('click', (e) => {\n e.preventDefault();\n window.history.replaceState({}, null, e.target.href);\n filterPlugins(target);\n }));\n\n // Pre-filter plugins based on the current url anchor.\n if (window.location.hash.length > 1) {\n const anchor = window.location.hash.substring(1);\n const target = [...filters].find(t => t.getAttribute('data-filterby') === anchor);\n if (target) {\n filterPlugins(target);\n }\n }\n}\n"],"names":["filters","document","querySelectorAll","SELECTORS","pluginRows","pluginTypeRows","filterPlugins","target","filterBy","getAttribute","headerVisibility","row","type","classList","find","s","startsWith","visible","contains","style","display","forEach","el","remove","add","addEventListener","e","preventDefault","window","history","replaceState","href","location","hash","length","anchor","substring","t"],"mappings":"4JAiCUA,QAAUC,SAASC,iBAAiBC,0BACpCC,WAAaH,SAASC,iBAAiBC,uBACvCE,eAAiBJ,SAASC,iBAAiBC,4BAE3CG,cAAiBC,eACbC,SAAWD,OAAOE,aAAa,iBAC/BC,iBAAmB,OAGpB,MAAMC,OAAOP,WAAY,OACpBQ,KAAO,IAAID,IAAIE,WAAWC,MAAKC,GAAKA,EAAEC,WAAW,WACjDC,QAAuB,QAAbT,UAA4BG,IAAIE,UAAUK,SAASV,UACnEG,IAAIQ,MAAMC,QAAUH,QAAU,KAAO,OACjCA,SAAWL,OACXF,iBAAiBE,OAAQ,OAK5B,MAAMD,OAAON,eAAgB,OACxBO,KAAO,IAAID,IAAIE,WAAWC,MAAKC,GAAKA,EAAEC,WAAW,cACnDJ,KAAM,OACAK,QAAuB,QAAbT,UAAsBE,iBAAiBE,MACvDD,IAAIQ,MAAMC,QAAUH,QAAU,KAAO,QAK7CjB,QAAQqB,SAAQC,IAAMA,GAAGT,UAAUU,OAAO,YAC1ChB,OAAOM,UAAUW,IAAI,cAIzBxB,QACCqB,SAAQd,QAAUA,OAAOkB,iBAAiB,SAAUC,IACjDA,EAAEC,iBACFC,OAAOC,QAAQC,aAAa,GAAI,KAAMJ,EAAEnB,OAAOwB,MAC/CzB,cAAcC,aAIdqB,OAAOI,SAASC,KAAKC,OAAS,EAAG,OAC3BC,OAASP,OAAOI,SAASC,KAAKG,UAAU,GACxC7B,OAAS,IAAIP,SAASc,MAAKuB,GAAKA,EAAE5B,aAAa,mBAAqB0B,SACtE5B,QACAD,cAAcC;;;;;;;;MAvDpBJ,yBACc,0CADdA,sBAEW,8DAFXA,2BAGgB"}
+6
View File
@@ -65,7 +65,13 @@ export const init = () => {
const selectedUsers = [...userReport.querySelectorAll(Selectors.checkedRows)];
const selectedUserIds = selectedUsers.map(check => parseInt(check.value));
userBulkForm.querySelector('[name="userids"]').value = selectedUserIds.join(',');
// Disable the action selector if nothing selected, and reset the current selection.
actionSelect.disabled = selectedUsers.length === 0;
if (actionSelect.disabled) {
actionSelect.value = "0";
}
const selectedUsersNames = selectedUsers.map(check => document.querySelector(`label[for="${check.id}"]`).textContent);
// Add the user ids and names to the form data attributes so they can be available from the
// other JS modules that listen to the form submit event.
+74
View File
@@ -0,0 +1,74 @@
// 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/>.
/**
* Expand the collapse section element.
*
* @module core_admin/expand_hash
* @copyright Meirza <meirza.arson@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.5
*/
const SELECTORS = {
COLLAPSE_ELEMENTS: '[data-toggle="collapse"]',
FOCUSTHENEXPAND_ELEMENTS: '.focus-expand',
};
/**
* Initializes the focus and expand functionality.
*/
export const init = () => {
// Select all collapsible elements only.
const focusexpand = document.querySelector(SELECTORS.FOCUSTHENEXPAND_ELEMENTS);
// Add click event listener to the anchor element
focusexpand?.addEventListener('click', () => {
expandSection(`${focusexpand.getAttribute('href')}`);
});
};
/**
* Expands a section based on the provided URL hash.
*
* This function takes a hash string, finds the corresponding element in the DOM,
* and expands it if it is currently collapsed. It updates the necessary ARIA
* attributes and classes to reflect the expanded state.
*
* @param {string} hash - The hash (e.g., '#elementId') of the element to expand.
*/
export const expandSection = (hash) => {
const container = document.querySelector(hash);
const targetContainer = container?.querySelector(SELECTORS.COLLAPSE_ELEMENTS);
if (targetContainer?.getAttribute('aria-expanded') === 'false') {
const collapseId = targetContainer.getAttribute('aria-controls');
const collapseContainer = document.getElementById(collapseId);
// Show the content.
collapseContainer.classList.remove('collapse');
collapseContainer.classList.add('show');
// Update aria-expanded attribute to reflect the new state.
targetContainer.setAttribute('aria-expanded', 'true');
targetContainer.classList.remove('collapsed');
// Get collapse expand menu element.
const collapseElement = document.querySelector('.collapseexpand.collapsemenu');
// Ensure it gets noticed to make it work.
collapseElement.setAttribute('aria-expanded', 'true');
collapseElement.classList.remove('collapsed');
}
};
+16
View File
@@ -138,6 +138,10 @@ export default class {
// Refocus on the link that as pressed in the first place.
updatedRoot.querySelector(`[data-action="togglestate"][data-plugin="${stateToggle.dataset.plugin}"]`).focus();
// When clicking the toggle and it remains focused, a new tooltip will be generated.
// Therefore, the old tooltip should be removed.
this.removeTooltips();
pendingPromise.resolve();
}
}
@@ -176,4 +180,16 @@ export default class {
pendingPromise.resolve();
}
/**
* Remove tooltips.
*/
removeTooltips() {
const tooltips = document.querySelectorAll('[id*="tooltip"]');
if (tooltips.length > 0) {
tooltips.forEach(tooltip => {
tooltip.remove();
});
}
}
}
+82
View File
@@ -0,0 +1,82 @@
// 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/>.
/**
* Allows to filter the plugin list on plugins overview page
*
* @module core_admin/plugins_overview
* @copyright 2024 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
const SELECTORS = {
PLUGIN_FILTERS: '#plugins-overview-panel [data-filterby]',
PLUGIN_ROWS: 'table#plugins-control-panel tbody tr:not(.plugintypeheader)',
PLUGIN_TYPE_ROWS: 'table#plugins-control-panel tbody tr.plugintypeheader',
};
/**
* Initialise filters for the "Plugins overview" page
*/
export function init() {
const filters = document.querySelectorAll(SELECTORS.PLUGIN_FILTERS);
const pluginRows = document.querySelectorAll(SELECTORS.PLUGIN_ROWS);
const pluginTypeRows = document.querySelectorAll(SELECTORS.PLUGIN_TYPE_ROWS);
const filterPlugins = (target) => {
const filterBy = target.getAttribute('data-filterby');
const headerVisibility = {};
// Hide all plugin rows in the plugin table that do not match the filter and show all others.
for (const row of pluginRows) {
const type = [...row.classList].find(s => s.startsWith('type-'));
const visible = filterBy === 'all' ? true : row.classList.contains(filterBy);
row.style.display = visible ? null : 'none';
if (visible && type) {
headerVisibility[type] = true;
}
}
// Hide all the plugin type headers that do not have any visible plugins and show all others.
for (const row of pluginTypeRows) {
const type = [...row.classList].find(s => s.startsWith('type-'));
if (type) {
const visible = filterBy === 'all' || headerVisibility[type];
row.style.display = visible ? null : 'none';
}
}
// Toggle 'active' class for the selected filter.
filters.forEach(el => el.classList.remove('active'));
target.classList.add('active');
};
// Add event listeners for the links changing plugins filters.
filters
.forEach(target => target.addEventListener('click', (e) => {
e.preventDefault();
window.history.replaceState({}, null, e.target.href);
filterPlugins(target);
}));
// Pre-filter plugins based on the current url anchor.
if (window.location.hash.length > 1) {
const anchor = window.location.hash.substring(1);
const target = [...filters].find(t => t.getAttribute('data-filterby') === anchor);
if (target) {
filterPlugins(target);
}
}
}
+4
View File
@@ -118,6 +118,10 @@ foreach ($settingspage->children as $childpage) {
}
$outputhtml .= html_writer::tag('div', '<!-- -->', array('class' => 'clearer'));
$outputhtml .= $setting->output_html($data);
if ($childpage->has_dependencies()) {
$opts = ['dependencies' => $childpage->get_dependencies_for_javascript()];
$PAGE->requires->js_call_amd('core/showhidesettings', 'init', [$opts]);
}
}
$outputhtml .= html_writer::end_tag('fieldset');
}
+1 -1
View File
@@ -62,7 +62,7 @@ class filesize extends \admin_setting {
* @param int|null $defaultunit GB, MB, etc. (in bytes)
*/
public function __construct(string $name, string $visiblename, string $description,
int $defaultvalue = null, int $defaultunit = null) {
?int $defaultvalue = null, ?int $defaultunit = null) {
$defaultsetting = self::parse_bytes($defaultvalue);
@@ -105,7 +105,7 @@ class task_log extends base {
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("$tablealias.classname")
->add_field("{$tablealias}.classname")
->set_is_sortable(true)
->add_callback(static function(string $classname): string {
$output = '';
@@ -183,15 +183,7 @@ class task_log extends base {
->set_type(column::TYPE_FLOAT)
->add_field("{$tablealias}.timeend - {$tablealias}.timestart", 'duration')
->set_is_sortable(true)
->add_callback(static function(float $value): string {
$duration = round($value, 2);
if (empty($duration)) {
// The format_time function returns 'now' when the difference is exactly 0.
// Note: format_time performs concatenation in exactly this fashion so we should do this for consistency.
return '0 ' . get_string('secs', 'moodle');
}
return format_time($duration);
});
->add_callback([format::class, 'format_time'], 2);
// Hostname column.
$columns[] = (new column(
@@ -211,11 +203,8 @@ class task_log extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("{$tablealias}.pid")
->set_is_sortable(true)
// Although this is an integer column, it doesn't make sense to perform numeric aggregation on it.
->set_disabled_aggregation(['avg', 'count', 'countdistinct', 'max', 'min', 'sum']);
->set_is_sortable(true);
// Database column.
$columns[] = (new column(
@@ -224,17 +213,14 @@ class task_log extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_fields("{$tablealias}.dbreads, {$tablealias}.dbwrites")
->set_is_sortable(true, ["{$tablealias}.dbreads", "{$tablealias}.dbwrites"])
->add_callback(static function(int $value, stdClass $row): string {
->add_callback(static function($value, stdClass $row): string {
$output = '';
$output .= \html_writer::div(get_string('task_stats:dbreads', 'admin', $row->dbreads));
$output .= \html_writer::div(get_string('task_stats:dbwrites', 'admin', $row->dbwrites));
return $output;
})
// Although this is an integer column, it doesn't make sense to perform numeric aggregation on it.
->set_disabled_aggregation(['avg', 'count', 'countdistinct', 'max', 'min', 'sum']);
});
// Database reads column.
$columns[] = (new column(
@@ -20,10 +20,12 @@ use context_system;
use core_admin\reportbuilder\local\entities\task_log;
use core_reportbuilder\local\entities\user;
use core_reportbuilder\local\report\action;
use core_reportbuilder\system_report;
use html_writer;
use lang_string;
use moodle_url;
use pix_icon;
use core_reportbuilder\system_report;
use stdClass;
/**
* Task logs system report class implementation
@@ -89,7 +91,9 @@ class task_logs extends system_report {
* unique identifier
*/
public function add_columns(): void {
$columns = [
$entitymainalias = $this->get_entity('task_log')->get_table_alias('task_log');
$this->add_columns_from_entities([
'task_log:name',
'task_log:type',
'user:fullname',
@@ -99,14 +103,18 @@ class task_logs extends system_report {
'task_log:pid',
'task_log:database',
'task_log:result',
];
]);
$this->add_columns_from_entities($columns);
// Wrap the task name in a link.
$this->get_column('task_log:name')
->add_field("{$entitymainalias}.id")
->add_callback(static function(string $output, stdClass $row): string {
return html_writer::link(new moodle_url('/admin/tasklogs.php', ['logid' => $row->id]), $output);
});
// It's possible to override the display name of a column, if you don't want to use the value provided by the entity.
if ($column = $this->get_column('user:fullname')) {
$column->set_title(new lang_string('user', 'admin'));
}
// Rename the user fullname column.
$this->get_column('user:fullname')
->set_title(new lang_string('user', 'admin'));
// It's possible to set a default initial sort direction for one column.
$this->set_initial_sort_column('task_log:starttime', SORT_DESC);
@@ -119,16 +127,14 @@ class task_logs extends system_report {
* unique identifier
*/
protected function add_filters(): void {
$filters = [
$this->add_filters_from_entities([
'task_log:name',
'task_log:type',
'task_log:output',
'task_log:result',
'task_log:timestart',
'task_log:duration',
];
$this->add_filters_from_entities($filters);
]);
}
/**
@@ -143,7 +149,7 @@ class task_logs extends system_report {
new moodle_url('/admin/tasklogs.php', ['logid' => ':id']),
new pix_icon('e/search', ''),
[],
true,
false,
new lang_string('view'),
)));
@@ -159,11 +159,11 @@ class users extends system_report {
->add_callback(static function(string $fullname, \stdClass $row): string {
if ($row->suspended) {
$fullname .= ' ' . \html_writer::tag('span', get_string('suspended', 'moodle'),
['class' => 'badge badge-secondary ml-1']);
['class' => 'badge badge-secondary ms-1']);
}
if (!$row->confirmed) {
$fullname .= ' ' . \html_writer::tag('span', get_string('confirmationpending', 'admin'),
['class' => 'badge badge-danger ml-1']);
['class' => 'badge badge-danger ms-1']);
}
return $fullname;
});
@@ -184,6 +184,7 @@ class users extends system_report {
$entityuseralias = $entityuser->get_table_alias('user');
$filters = [
'user:fullname',
'user:firstname',
'user:lastname',
'user:username',
@@ -0,0 +1,85 @@
<?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/>.
namespace core_admin\table;
use moodle_url;
use stdClass;
use html_writer;
use get_string_manager;
/**
* Availability admin settings.
*
* @package core_admin
* @copyright 2024 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class availability_management_table extends plugin_management_table {
protected function get_table_id(): string {
return 'availabilityconditions_administration_table';
}
protected function get_plugintype(): string {
return 'availability';
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/tool/availabilityconditions/', $params);
}
public function guess_base_url(): void {
$this->define_baseurl(
new moodle_url('/admin/tool/availabilityconditions/')
);
}
protected function get_column_list(): array {
return [
'name' => get_string('plugin'),
'version' => get_string('version'),
'enabled' => get_string('enabled', 'admin'),
'defaultdisplaymode' => get_string('defaultdisplaymode', 'tool_availabilityconditions'),
];
}
public function setup(): void {
$this->set_attribute('id', 'availabilityconditions_administration_table');
$this->set_attribute('class', 'admintable generaltable');
parent::setup();
}
protected function col_name(stdClass $row): string {
return html_writer::span(
get_string('pluginname', 'availability_' . $row->plugininfo->name)
);
}
protected function col_defaultdisplaymode(stdClass $row): string {
global $OUTPUT, $CFG;
$displaymode = get_config('availability_' . $row->plugininfo->name, 'defaultdisplaymode') ? 'show' : 'hide';
$paramsdisplaymode = [
'sesskey' => sesskey(),
'plugin' => $row->plugininfo->name,
'displaymode' => $displaymode,
];
$urldisplaymode = new moodle_url('/' . $CFG->admin . '/tool/availabilityconditions/', $paramsdisplaymode);
return html_writer::link($urldisplaymode, $OUTPUT->pix_icon('t/' . $displaymode,
get_string($displaymode)), ['class' => 'display-mode-' . $row->plugininfo->name]);
}
}
+29 -17
View File
@@ -303,28 +303,29 @@ abstract class plugin_management_table extends flexible_table implements dynamic
global $OUTPUT;
$enabled = $row->plugininfo->is_enabled();
$params = [
'sesskey' => sesskey(),
'plugin' => $row->plugininfo->name,
'action' => $enabled ? 'disable' : 'enable',
];
if ($enabled) {
$icon = $OUTPUT->pix_icon('t/hide', get_string('disableplugin', 'core_admin', $row->plugininfo->displayname));
$labelstr = get_string('disableplugin', 'core_admin', $row->plugininfo->displayname);
} else {
$icon = $OUTPUT->pix_icon('t/show', get_string('enableplugin', 'core_admin', $row->plugininfo->displayname));
$labelstr = get_string('enableplugin', 'core_admin', $row->plugininfo->displayname);
}
return html_writer::link(
$this->get_action_url($params),
$icon,
[
'data-toggle-method' => $this->get_toggle_service(),
'data-action' => 'togglestate',
'data-plugin' => $row->plugin,
'data-state' => $enabled ? 1 : 0,
$params = [
'id' => 'admin-toggle-' . $row->plugininfo->name,
'checked' => $enabled,
'dataattributes' => [
'name' => 'id',
'value' => $row->plugininfo->name,
'toggle-method' => $this->get_toggle_service(),
'action' => 'togglestate',
'plugin' => $row->plugin,
'state' => $enabled ? 1 : 0,
],
);
'title' => $labelstr,
'label' => $labelstr,
'labelclasses' => 'sr-only',
];
return $OUTPUT->render_from_template('core_admin/setting_configtoggle', $params);
}
protected function col_order(stdClass $row): string {
@@ -500,4 +501,15 @@ abstract class plugin_management_table extends flexible_table implements dynamic
protected function supports_ordering(): bool {
return $this->plugininfoclass::plugintype_supports_ordering();
}
/**
* Check if the user has the capability to access this table.
*
* Default implementation for plugin management tables is to require 'moodle/site:config' capability
*
* @return bool Return true if capability check passed.
*/
public function has_capability(): bool {
return has_capability('moodle/site:config', $this->get_context());
}
}
+7 -11
View File
@@ -172,11 +172,16 @@ $CFG->debugdeveloper = true;
$parts = explode('/', str_replace('\\', '/', dirname(__DIR__)));
$CFG->admin = array_pop($parts);
//point pear include path to moodles lib/pear so that includes and requires will search there for files before anywhere else
//the problem is that we need specific version of quickforms and hacked excel files :-(
// Point pear include path to moodles lib/pear so that includes and requires will search there for files before anywhere else
// the problem is that we need specific version of quickforms and hacked excel files :-(.
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
// The core_component class can be used in any scripts, it does not need anything else.
require_once($CFG->libdir.'/classes/component.php');
// Register our classloader.
\core\component::register_autoloader();
require_once($CFG->libdir.'/classes/text.php');
require_once($CFG->libdir.'/classes/string_manager.php');
require_once($CFG->libdir.'/classes/string_manager_install.php');
@@ -190,15 +195,6 @@ require_once($CFG->libdir.'/moodlelib.php');
require_once($CFG->libdir.'/deprecatedlib.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/componentlib.class.php');
require_once($CFG->dirroot.'/cache/lib.php');
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
// Required because the database checks below lead to session interaction which is going to lead us to requiring autoloaded classes.
if (defined('COMPONENT_CLASSLOADER')) {
spl_autoload_register(COMPONENT_CLASSLOADER);
} else {
spl_autoload_register('core_component::classloader');
}
require($CFG->dirroot.'/version.php');
$CFG->target_release = $release;
+1 -1
View File
@@ -50,6 +50,6 @@ Example:
exit(0);
}
\core\session\manager::kill_all_sessions();
\core\session\manager::destroy_all();
exit(0);
+18 -9
View File
@@ -69,7 +69,7 @@ if ($options['enablelater']) {
}
$time = time() + ($options['enablelater']*60);
set_config('maintenance_later', $time);
set_config('maintenance_later', $time, null, true);
echo get_string('clistatusenabledlater', 'admin', userdate($time))."\n";
return 0;
@@ -77,23 +77,32 @@ if ($options['enablelater']) {
} else if ($options['enable']) {
if (file_exists("$CFG->dataroot/climaintenance.html")) {
// The maintenance is already enabled, nothing to do.
} else {
enable_cli_maintenance_mode();
exit(0);
}
enable_cli_maintenance_mode();
set_config('maintenance_enabled', 'cli mode', null, true);
if (isset($CFG->maintenance_later)) {
unset_config('maintenance_later', null, true);
}
set_config('maintenance_enabled', 0);
unset_config('maintenance_later');
echo get_string('sitemaintenanceoncli', 'admin')."\n";
exit(0);
} else if ($options['enableold']) {
set_config('maintenance_enabled', 1);
unset_config('maintenance_later');
set_config('maintenance_enabled', 1, null, true);
if (isset($CFG->maintenance_later)) {
unset_config('maintenance_later', null, true);
}
echo get_string('sitemaintenanceon', 'admin')."\n";
exit(0);
} else if ($options['disable']) {
set_config('maintenance_enabled', 0);
unset_config('maintenance_later');
if ($CFG->maintenance_enabled !== '0') {
set_config('maintenance_enabled', 0, null, true);
}
if (isset($CFG->maintenance_later)) {
unset_config('maintenance_later', null, true);
}
if (file_exists("$CFG->dataroot/climaintenance.html")) {
unlink("$CFG->dataroot/climaintenance.html");
}
+1
View File
@@ -24,6 +24,7 @@
*/
define('CLI_SCRIPT', true);
define('IGNORE_COMPONENT_CACHE', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php');
+40 -17
View File
@@ -55,13 +55,14 @@ If courseid is set, course module/s will be added into the course.
Options:
-f, --file=STRING Path to the backup file.
-c, --categoryid=INT ID of the course category to restore to.
-C, --courseid=INT ID of the course to restore to. This option is ignored if categoryid is set.
-c, --categoryid=INT ID of the course category to restore to. This option is ignored when restoring an activity and courseid is set.
-C, --courseid=INT ID of the course to restore to. This option is ignored when restoring a course and the categoryid is set.
-s, --showdebugging Show developer level debugging information
-h, --help Print out this help.
Example:
\$sudo -u www-data /usr/bin/php admin/cli/restore_backup.php --file=/path/to/backup/file.mbz --categoryid=1\n
\$sudo -u www-data /usr/bin/php admin/cli/restore_backup.php --file=/path/to/backup/coursebackup.mbz --categoryid=1\n
\$sudo -u www-data /usr/bin/php admin/cli/restore_backup.php --file=/path/to/backup/activitybackup.mbz --courseid=1\n
EOL;
echo $help;
@@ -84,11 +85,15 @@ if ($options['categoryid']) {
if (!$category = $DB->get_record('course_categories', ['id' => $options['categoryid']], 'id')) {
throw new \moodle_exception('invalidcategoryid');
}
} else if ($options['courseid']) {
}
if ($options['courseid']) {
if (!$course = $DB->get_record('course', ['id' => $options['courseid']], 'id')) {
throw new \moodle_exception('invalidcourseid');
}
} else {
}
if (empty($category) && empty($course)) {
throw new \moodle_exception('invalidoption');
}
@@ -100,28 +105,46 @@ $fp = get_file_packer('application/vnd.moodle.backup');
$fp->extract_to_pathname($options['file'], $path);
cli_heading(get_string('preprocessingbackupfile'));
try {
list($fullname, $shortname) = restore_dbops::calculate_course_names(0, get_string('restoringcourse', 'backup'),
get_string('restoringcourseshortname', 'backup'));
if (!empty($course)) {
$courseid = $course->id;
$rc = new restore_controller($backupdir, $courseid, backup::INTERACTIVE_NO,
backup::MODE_GENERAL, $admin->id, backup::TARGET_EXISTING_ADDING);
} else {
try {
// Create a temporary restore controller to determine the restore type.
$tmprc = new restore_controller($backupdir, SITEID, backup::INTERACTIVE_NO,
backup::MODE_GENERAL, $admin->id, backup::TARGET_EXISTING_ADDING);
// Restore the backup into a new course if:
// - It is a course backup and the category is set.
// - It is an activity backup and the course is not set.
$restoreasnewcourse = ($tmprc->get_type() === backup::TYPE_1COURSE && !empty($category)) ||
($tmprc->get_type() !== backup::TYPE_1COURSE && empty($course));
// Make sure to clean up the temporary restore controller.
$tmprc->destroy();
if ($restoreasnewcourse) {
list($fullname, $shortname) = restore_dbops::calculate_course_names(0, get_string('restoringcourse', 'backup'),
get_string('restoringcourseshortname', 'backup'));
$courseid = restore_dbops::create_new_course($fullname, $shortname, $category->id);
$rc = new restore_controller($backupdir, $courseid, backup::INTERACTIVE_NO,
backup::MODE_GENERAL, $admin->id, backup::TARGET_NEW_COURSE);
} else {
$courseid = $course->id;
$rc = new restore_controller($backupdir, $courseid, backup::INTERACTIVE_NO,
backup::MODE_GENERAL, $admin->id, backup::TARGET_EXISTING_ADDING);
}
$rc->execute_precheck();
$rc->execute_plan();
$rc->destroy();
// Rename course name if the backup is from course module and restore to category.
if (empty($course)) {
// Rename the course's full and short names with the backup file's original names if the backup file is an activity backup
// that is restored to a new course.
if ($restoreasnewcourse && $rc->get_type() !== backup::TYPE_1COURSE) {
$course = get_course($courseid);
list($fullname, $shortname) = restore_dbops::calculate_course_names(0, get_string('restoretonewcourse', 'backup'),
get_string('newcourse'));
$backupinfo = $rc->get_info();
$tmpfullname = $backupinfo->original_course_fullname ?? get_string('restoretonewcourse', 'backup');
$tmpshortname = $backupinfo->original_course_shortname ?? get_string('newcourse');
list($fullname, $shortname) = restore_dbops::calculate_course_names(
courseid: 0,
fullname: $tmpfullname,
shortname: $tmpshortname,
);
$course->fullname = $fullname;
$course->shortname = $shortname;
$course->visible = 1;
+3 -3
View File
@@ -158,13 +158,13 @@ if ($options['plugins']) {
if (is_null($plugin)) {
cli_writeln('Unknown plugin: ' . $component);
} else {
$pluginstring = $plugin->component . "\t" . $plugin->displayname;
$pluginstring = $component . "\t" . $plugin->displayname;
if ($pluginman->can_uninstall_plugin($plugin->component)) {
if ($pluginman->can_uninstall_plugin($component)) {
if ($options['run']) {
cli_writeln('Uninstalling: ' . $pluginstring);
$progress = new progress_trace_buffer(new text_progress_trace(), true);
$pluginman->uninstall_plugin($plugin->component, $progress);
$pluginman->uninstall_plugin($component, $progress);
$progress->finished();
cli_write($progress->get_buffer());
} else {
+801
View File
@@ -3835,6 +3835,7 @@
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="optional"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
@@ -4327,6 +4328,7 @@
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.1.0" level="required">
<RESTRICT function="restrict_php_version_84" message="unsupportedphpversion84" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -4410,6 +4412,7 @@
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
@@ -4508,4 +4511,802 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.5" requires="4.1.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.6.7" />
<VENDOR name="mysql" version="8.0" />
<VENDOR name="postgres" version="13" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.1.0" level="required">
<RESTRICT function="restrict_php_version_84" message="unsupportedphpversion84" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.0" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="auroramysql" version="8.0" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_aurora_version" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.1" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="15" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="auroramysql" version="8.0" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="zend.exception_ignore_args" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingzendexceptionignoreargs" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_aurora_version" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.2" requires="4.4">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="16" />
<VENDOR name="mssql" version="15.0" />
<VENDOR name="auroramysql" version="8.0" />
</DATABASE>
<PHP version="8.3.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
<PHP_EXTENSION name="filter" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="zend.exception_ignore_args" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingzendexceptionignoreargs" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK function="\core\environment::check_composer_dependencies_installed" level="optional" />
<CUSTOM_CHECK function="\core\environment::check_composer_developer_dependencies_not_installed" level="optional" />
<CUSTOM_CHECK function="\core\environment::check_composer_dependencies_optimised" level="optional" />
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_aurora_version" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+32 -15
View File
@@ -40,13 +40,6 @@ if (!function_exists('iconv')) {
die();
}
// Make sure php5-json is available.
if (!function_exists('json_encode') || !function_exists('json_decode')) {
// This also shouldn't happen.
echo 'Moodle requires the json PHP extension. Please install or enable the json extension.';
die();
}
// Make sure xml extension is available.
if (!extension_loaded('xml')) {
echo 'Moodle requires the xml PHP extension. Please install or enable the xml extension.';
@@ -923,8 +916,14 @@ if (empty($CFG->disabledevlibdirscheck) && (is_dir($CFG->dirroot.'/vendor') || i
// Check if the site is being foced onto ssl.
$overridetossl = !empty($CFG->overridetossl);
// Check if moodle campaign content setting is enabled or not.
$showcampaigncontent = !isset($CFG->showcampaigncontent) || $CFG->showcampaigncontent;
if (defined('BEHAT_SITE_RUNNING') && BEHAT_SITE_RUNNING) {
// We need to add this in order to be able to verify the showcampaigncontent setting behaviour during behat tests.
$showcampaigncontent = get_config('core', 'showcampaigncontent');
$showcampaigncontent = $showcampaigncontent === 'true';
} else {
// Check if moodle campaign content setting is enabled or not.
$showcampaigncontent = !isset($CFG->showcampaigncontent) || $CFG->showcampaigncontent;
}
// Encourage admins to enable the user feedback feature if it is not enabled already.
$showfeedbackencouragement = empty($CFG->enableuserfeedback);
@@ -942,9 +941,27 @@ admin_externalpage_setup('adminnotifications');
$output = $PAGE->get_renderer('core', 'admin');
echo $output->admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed, $cronoverdue, $dbproblems,
$maintenancemode, $availableupdates, $availableupdatesfetch, $buggyiconvnomb,
$registered, $cachewarnings, $eventshandlers, $themedesignermode, $devlibdir,
$mobileconfigured, $overridetossl, $invalidforgottenpasswordurl, $croninfrequent,
$showcampaigncontent, $showfeedbackencouragement, $servicesandsupportcontent,
$xmlrpcwarning);
echo $output->admin_notifications_page(
$maturity,
$insecuredataroot,
$errorsdisplayed,
$cronoverdue,
$dbproblems,
$maintenancemode,
$availableupdates,
$availableupdatesfetch,
$buggyiconvnomb,
$registered,
$cachewarnings,
$eventshandlers,
$themedesignermode,
$devlibdir,
$mobileconfigured,
$overridetossl,
$invalidforgottenpasswordurl,
$croninfrequent,
$showcampaigncontent,
$showfeedbackencouragement,
$servicesandsupportcontent,
$xmlrpcwarning
);
+4 -7
View File
@@ -29,8 +29,6 @@ require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/filelib.php');
$fetchupdates = optional_param('fetchupdates', false, PARAM_BOOL); // Check for available plugins updates.
$updatesonly = optional_param('updatesonly', false, PARAM_BOOL); // Show updateable plugins only.
$contribonly = optional_param('contribonly', false, PARAM_BOOL); // Show additional plugins only.
$uninstall = optional_param('uninstall', '', PARAM_COMPONENT); // Uninstall the plugin.
$delete = optional_param('delete', '', PARAM_COMPONENT); // Delete the plugin folder after it is uninstalled.
$confirmed = optional_param('confirm', false, PARAM_BOOL); // Confirm the uninstall/delete action.
@@ -47,8 +45,7 @@ require_admin();
$syscontext = context_system::instance();
// URL params we want to maintain on redirects.
$pageparams = array('updatesonly' => $updatesonly, 'contribonly' => $contribonly);
$pageurl = new moodle_url('/admin/plugins.php', $pageparams);
$pageurl = new moodle_url('/admin/plugins.php');
$pluginman = core_plugin_manager::instance();
@@ -57,7 +54,7 @@ $PAGE->set_primary_active_tab('siteadminnode');
if ($uninstall) {
if (!$confirmed) {
admin_externalpage_setup('pluginsoverview', '', $pageparams);
admin_externalpage_setup('pluginsoverview');
} else {
$PAGE->set_url($pageurl);
$PAGE->set_context($syscontext);
@@ -201,7 +198,7 @@ if ($installupdate and $installupdateversion) {
}
}
admin_externalpage_setup('pluginsoverview', '', $pageparams);
admin_externalpage_setup('pluginsoverview');
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
@@ -214,4 +211,4 @@ if ($fetchupdates) {
redirect($PAGE->url);
}
echo $output->plugin_management_page($pluginman, $checker, $pageparams);
echo $output->plugin_management_page($pluginman, $checker);
+2 -2
View File
@@ -25,7 +25,7 @@ namespace core_adminpresets;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass core_adminpresets_generator
*/
class generator_test extends \advanced_testcase {
final class generator_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -180,7 +180,7 @@ class generator_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
+8 -8
View File
@@ -23,9 +23,9 @@ namespace core_adminpresets;
* @category test
* @copyright 2021 Sara Arjona (sara@moodle.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass helper
* @coversDefaultClass \core_adminpresets\helper
*/
class helper_test extends \advanced_testcase {
final class helper_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -84,7 +84,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
@@ -177,7 +177,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_item_provider(): array {
public static function add_item_provider(): array {
return [
'Setting without plugin' => [
'name' => 'settingname',
@@ -239,7 +239,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_plugin_provider(): array {
public static function add_plugin_provider(): array {
return [
'Plugin: enabled (using int)' => [
'type' => 'plugintype',
@@ -321,7 +321,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function change_default_preset_provider(): array {
public static function change_default_preset_provider(): array {
return [
'Starter preset' => [
'preset' => 'starter',
@@ -364,7 +364,7 @@ class helper_test extends \advanced_testcase {
'preset' => 'unexisting',
],
'Valid XML file' => [
'preset' => __DIR__ . '/fixtures/import_settings_plugins.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml'),
'settings' => [
'allowemojipicker' => 1,
'enableportfolios' => 1,
@@ -377,7 +377,7 @@ class helper_test extends \advanced_testcase {
],
],
'Invalid XML file' => [
'preset' => __DIR__ . '/fixtures/invalid_xml_file.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml'),
],
'Unexisting XML file' => [
'preset' => __DIR__ . '/fixtures/unexisting.xml',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_bloglevel
*/
class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
final class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -72,7 +72,7 @@ class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Save the bloglevel and set blog_menu block visibility to true' => [
'setttingvalue' => BLOG_USER_LEVEL,
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_sitesettext
*/
class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
final class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -66,7 +66,7 @@ class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Fullname: different value' => [
'settingname' => 'fullname',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_setting
*/
class adminpresets_setting_test extends \advanced_testcase {
final class adminpresets_setting_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -77,7 +77,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Core setting with the same value is not saved' => [
'category' => 'optionalsubsystems',
@@ -167,7 +167,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_attributes_values_provider(): array {
public static function save_attributes_values_provider(): array {
return [
'Plugin setting with the same value is not saved' => [
'category' => 'modsettinglesson',
+34 -12
View File
@@ -28,7 +28,16 @@ use stdClass;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\manager
*/
class manager_test extends \advanced_testcase {
final class manager_test extends \advanced_testcase {
/**
* Include required libraries.
*/
public static function setUpBeforeClass(): void {
global $CFG;
require_once($CFG->libdir.'/adminlib.php');
parent::setUpBeforeClass();
}
/**
* Test the behaviour of protected get_site_settings method.
*
@@ -359,7 +368,7 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function export_preset_provider(): array {
public static function export_preset_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -415,7 +424,7 @@ class manager_test extends \advanced_testcase {
* @param string|null $expectedpresetname Expected preset name.
*/
public function test_import_preset(string $filecontents, bool $expectedpreset, bool $expectedsettings = false,
bool $expectedplugins = false, bool $expecteddebugging = false, string $expectedexception = null,
bool $expectedplugins = false, bool $expecteddebugging = false, ?string $expectedexception = null,
string $expectedpresetname = 'Imported preset'): void {
global $DB;
@@ -522,26 +531,32 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function import_preset_provider(): array {
public static function import_preset_provider(): array {
return [
'Import settings from an empty file' => [
'filecontents' => '',
'expectedpreset' => false,
],
'Import settings and plugins from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings_plugins.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
],
'Import only settings from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => false,
],
'Import settings and plugins from a valid XML file with Starter name, which will be marked as non-core' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_starter_name.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_starter_name.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
@@ -550,7 +565,9 @@ class manager_test extends \advanced_testcase {
'expectedpresetname' => 'Starter',
],
'Import settings from an invalid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/invalid_xml_file.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
@@ -558,20 +575,26 @@ class manager_test extends \advanced_testcase {
'expectedexception' => \Exception::class,
],
'Import unexisting settings category' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/unexisting_category.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'unexisting_category.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
],
'Import unexisting setting' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/unexisting_setting.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'unexisting_setting.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
'expecteddebugging' => true,
],
'Import valid settings with one unexisting setting too' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings_with_unexisting_setting.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings_with_unexisting_setting.xml'),
),
'expectedpreset' => true,
'expectedsettings' => false,
'expectedplugins' => false,
@@ -580,7 +603,6 @@ class manager_test extends \advanced_testcase {
];
}
/**
* Test the behaviour of delete_preset() method when the preset id doesn't exist.
*
@@ -30,13 +30,13 @@ use core_privacy\tests\provider_testcase;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\privacy\provider
*/
class privacy_provider_test extends provider_testcase {
final class privacy_provider_test extends provider_testcase {
/**
* Test for provider::get_metadata().
* @covers ::get_metadata
*/
public function test_get_metadata() {
public function test_get_metadata(): void {
$collection = new collection('core_adminpresets');
$newcollection = provider::get_metadata($collection);
$itemcollection = $newcollection->get_collection();
@@ -49,7 +49,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::get_contexts_for_userid() doesn't return any context.
* @covers ::get_contexts_for_userid
*/
public function test_get_contexts_for_userid() {
public function test_get_contexts_for_userid(): void {
global $USER;
$this->resetAfterTest();
@@ -67,7 +67,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::get_users_in_context() doesn't return any user.
* @covers ::get_users_in_context
*/
public function test_get_users_in_context() {
public function test_get_users_in_context(): void {
global $USER;
$this->resetAfterTest();
@@ -88,7 +88,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::export_user_data().
* @covers ::export_user_data
*/
public function test_export_user_data() {
public function test_export_user_data(): void {
global $USER;
$this->resetAfterTest();
@@ -121,7 +121,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::delete_data_for_all_users_in_context().
* @covers ::delete_data_for_all_users_in_context
*/
public function test_delete_data_for_all_users_in_context() {
public function test_delete_data_for_all_users_in_context(): void {
global $DB, $USER;
$this->resetAfterTest();
@@ -146,7 +146,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::delete_data_for_user().
* @covers ::delete_data_for_user
*/
public function test_delete_data_for_user() {
public function test_delete_data_for_user(): void {
global $DB, $USER;
$this->resetAfterTest();
+2
View File
@@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('IGNORE_COMPONENT_CACHE', true);
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
+10 -5
View File
@@ -34,8 +34,10 @@ admin_externalpage_setup('registrationmoodleorg');
$unregistration = optional_param('unregistration', false, PARAM_BOOL);
$confirm = optional_param('confirm', false, PARAM_BOOL);
// Consider the site 'registered' if records exist locally and at the hub.
$siteisregistered = \core\hub\registration::is_registered() && core\hub\api::is_site_registered_in_hub();
if ($unregistration && \core\hub\registration::is_registered()) {
if ($unregistration && $siteisregistered) {
if ($confirm) {
require_sesskey();
\core\hub\registration::unregister(false, false);
@@ -60,7 +62,7 @@ if (!$returnurl = optional_param('returnurl', null, PARAM_LOCALURL)) {
$returnurl = $isinitialregistration ? '/admin/index.php' : '/admin/registration/index.php';
}
$siteregistrationform = new \core\hub\site_registration_form();
$siteregistrationform = new \core\hub\site_registration_form(null, ['registered' => $siteisregistered]);
$siteregistrationform->set_data(['returnurl' => $returnurl]);
if ($fromform = $siteregistrationform->get_data()) {
@@ -86,7 +88,7 @@ echo $OUTPUT->header();
// Current status of registration.
$notificationtype = \core\output\notification::NOTIFY_ERROR;
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
$lastupdated = \core\hub\registration::get_last_updated();
if ($lastupdated == 0) {
$registrationmessage = get_string('pleaserefreshregistrationunknown', 'admin');
@@ -104,7 +106,7 @@ if (\core\hub\registration::is_registered()) {
}
// Heading.
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
echo $OUTPUT->heading(get_string('registerwithmoodleorgupdate', 'core_hub'));
} else if ($isinitialregistration) {
echo $OUTPUT->heading(get_string('registerwithmoodleorgcomplete', 'core_hub'));
@@ -117,7 +119,7 @@ echo $renderer->moodleorg_registration_message();
$siteregistrationform->display();
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
// Unregister link.
$unregisterhuburl = new moodle_url("/admin/registration/index.php", ['unregistration' => 1]);
echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister mt-2');
@@ -125,4 +127,7 @@ if (\core\hub\registration::is_registered()) {
echo html_writer::div(html_writer::link(new moodle_url($returnurl), get_string('skipregistration', 'hub')),
'skipregistration mt-2');
}
$PAGE->requires->js_call_amd('core_admin/expand_hash', 'init');
echo $OUTPUT->footer();
+123 -84
View File
@@ -282,19 +282,37 @@ class core_admin_renderer extends plugin_renderer_base {
*
* @return string HTML to output.
*/
public function admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed,
$cronoverdue, $dbproblems, $maintenancemode, $availableupdates, $availableupdatesfetch,
$buggyiconvnomb, $registered, array $cachewarnings = array(), $eventshandlers = 0,
$themedesignermode = false, $devlibdir = false, $mobileconfigured = false,
$overridetossl = false, $invalidforgottenpasswordurl = false, $croninfrequent = false,
$showcampaigncontent = false, bool $showfeedbackencouragement = false, bool $showservicesandsupport = false,
$xmlrpcwarning = '') {
public function admin_notifications_page(
$maturity,
$insecuredataroot,
$errorsdisplayed,
$cronoverdue,
$dbproblems,
$maintenancemode,
$availableupdates,
$availableupdatesfetch,
$buggyiconvnomb,
$registered,
array $cachewarnings = [],
$eventshandlers = 0,
$themedesignermode = false,
$devlibdir = false,
$mobileconfigured = false,
$overridetossl = false,
$invalidforgottenpasswordurl = false,
$croninfrequent = false,
$showcampaigncontent = false,
bool $showfeedbackencouragement = false,
bool $showservicesandsupport = false,
$xmlrpcwarning = ''
) {
global $CFG;
$output = '';
$output .= $this->header();
$output .= $this->output->heading(get_string('notifications', 'admin'));
$output .= $this->upgrade_news_message();
$output .= $this->maturity_info($maturity);
$output .= empty($CFG->disableupdatenotifications) ? $this->available_updates($availableupdates, $availableupdatesfetch) : '';
$output .= $this->insecure_dataroot_warning($insecuredataroot);
@@ -313,6 +331,7 @@ class core_admin_renderer extends plugin_renderer_base {
$output .= $this->mobile_configuration_warning($mobileconfigured);
$output .= $this->forgotten_password_url_warning($invalidforgottenpasswordurl);
$output .= $this->mnet_deprecation_warning($xmlrpcwarning);
$output .= $this->moodlenet_removal_warning();
$output .= $this->userfeedback_encouragement($showfeedbackencouragement);
$output .= $this->services_and_support_content($showservicesandsupport);
$output .= $this->campaign_content($showcampaigncontent);
@@ -754,6 +773,22 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->box($copyrighttext, 'copyright');
}
/**
* Display a transient notification for important upgrades messages for
* specific releases.
*
* @return string HTML to output.
*/
protected function upgrade_news_message() {
return $this->notification(
get_string('importantupdates_content', 'admin'),
'info',
false,
get_string('importantupdates_title', 'admin'),
'i/circleinfo, core'
);
}
/**
* Display a warning about installing development code if necesary.
* @param int $maturity
@@ -843,14 +878,14 @@ class core_admin_renderer extends plugin_renderer_base {
$registerbutton = $this->single_button(new moodle_url('/admin/registration/index.php'),
get_string('register', 'admin'));
$str = 'registrationwarning';
$type = 'error alert alert-danger';
} else {
$registerbutton = '';
$str = 'registrationwarningcontactadmin';
$type = 'info';
}
return $this->warning( get_string($str, 'admin')
. '&nbsp;' . $this->help_icon('registration', 'admin') . $registerbutton ,
'error alert alert-danger');
return $this->warning( get_string($str, 'admin') . '&nbsp;' . $registerbutton , $type);
}
return '';
@@ -874,8 +909,8 @@ class core_admin_renderer extends plugin_renderer_base {
protected function mobile_configuration_warning($mobileconfigured) {
$output = '';
if (!$mobileconfigured) {
$settingslink = new moodle_url('/admin/settings.php', ['section' => 'mobilesettings']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'));
$settingslink = new moodle_url('/admin/search.php', ['query' => 'enablemobilewebservice']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'), 'get');
$output .= $this->warning(get_string('mobilenotconfiguredwarning', 'admin') . '&nbsp;' . $configurebutton);
}
@@ -1004,7 +1039,7 @@ class core_admin_renderer extends plugin_renderer_base {
function upgrade_reload($url) {
return html_writer::empty_tag('br') .
html_writer::tag('div',
html_writer::link($url, $this->pix_icon('i/reload', '', '', array('class' => 'icon icon-pre')) .
html_writer::link($url, $this->pix_icon('i/reload', '', '', ['class' => 'icon']) .
get_string('reload'), array('title' => get_string('reload'))),
array('class' => 'continuebutton')) . html_writer::empty_tag('br');
}
@@ -1241,7 +1276,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installupdatex' => 1)),
get_string('updateavailableinstallall', 'core_admin', count($installableupdates)),
'post',
array('class' => 'singlebutton updateavailableinstallall mr-1')
array('class' => 'singlebutton updateavailableinstallall me-1')
);
}
@@ -1250,7 +1285,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortinstallx' => 1, 'confirmplugincheck' => 0)),
get_string('cancelinstallall', 'core_plugin', count($installabortable)),
'post',
array('class' => 'singlebutton cancelinstallall mr-1')
array('class' => 'singlebutton cancelinstallall me-1')
);
}
@@ -1259,17 +1294,17 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortupgradex' => 1)),
get_string('cancelupgradeall', 'core_plugin', count($upgradeabortable)),
'post',
array('class' => 'singlebutton cancelupgradeall mr-1')
array('class' => 'singlebutton cancelupgradeall me-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 0)),
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge bg-light text-dark'),
'btn btn-link mr-1');
'btn btn-link me-1');
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 1)),
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge bg-light text-dark'),
'btn btn-link mr-1');
'btn btn-link me-1');
$out .= $this->output->container_end(); // End of .actions container.
$out .= $this->output->container_end(); // End of #plugins-check-info container.
@@ -1288,7 +1323,7 @@ class core_admin_renderer extends plugin_renderer_base {
* @param null|moodle_url $cancel URL for the cancel link, defaults to the current page
* @return string HTML
*/
public function plugins_management_confirm_buttons(moodle_url $continue=null, moodle_url $cancel=null) {
public function plugins_management_confirm_buttons(?moodle_url $continue=null, ?moodle_url $cancel=null) {
$out = html_writer::start_div('plugins-management-confirm-buttons');
@@ -1376,13 +1411,13 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installdepx' => 1)),
get_string('dependencyinstallmissing', 'core_plugin', count($installable)),
'post',
array('class' => 'singlebutton dependencyinstallmissing d-inline-block mr-1')
array('class' => 'singlebutton dependencyinstallmissing d-inline-block me-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-link')),
'dependencyuploadmissing d-inline-block mr-1');
'dependencyuploadmissing d-inline-block me-1');
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
@@ -1448,29 +1483,29 @@ class core_admin_renderer extends plugin_renderer_base {
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/view.php?plugin='.$plugin->component,
get_string('misdepinfoplugin', 'core_plugin')),
'misdepinfoplugin d-inline-block mr-3 mb-1'
'misdepinfoplugin d-inline-block me-3 mb-1'
);
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/pluginversion.php?id='.$plugin->version->id,
get_string('misdepinfoversion', 'core_plugin')),
'misdepinfoversion d-inline-block mr-3 mb-1'
'misdepinfoversion d-inline-block me-3 mb-1'
);
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')),
'misdepdownload d-inline-block mr-3 mb-1');
'misdepdownload d-inline-block me-3 mb-1');
if ($pluginman->is_remote_plugin_installable($plugin->component, $plugin->version->version, $reason)) {
$info .= $this->output->single_button(
new moodle_url($this->page->url, array('installdep' => $plugin->component)),
get_string('dependencyinstall', 'core_plugin'),
'post',
array('class' => 'singlebutton dependencyinstall mr-3 mb-1')
array('class' => 'singlebutton dependencyinstall me-3 mb-1')
);
} else {
$reasonhelp = $this->info_remote_plugin_not_installable($reason);
if ($reasonhelp) {
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall d-inline-block mr-3 mb-1');
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall d-inline-block me-3 mb-1');
}
}
@@ -1656,8 +1691,9 @@ class core_admin_renderer extends plugin_renderer_base {
public function plugins_overview_panel(core_plugin_manager $pluginman, array $options = array()) {
$plugininfo = $pluginman->get_plugins();
$this->page->requires->js_call_amd('core_admin/plugins_overview', 'init');
$numtotal = $numextension = $numupdatable = $numinstallable = 0;
$numtotal = $numextension = $numupdatable = $numinstallable = $nummissing = $numnew = 0;
foreach ($plugininfo as $type => $plugins) {
foreach ($plugins as $name => $plugin) {
@@ -1671,8 +1707,12 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
if ($plugin->get_status() === core_plugin_manager::PLUGIN_STATUS_MISSING) {
$nummissing++;
continue;
}
if ($plugin->get_status() === core_plugin_manager::PLUGIN_STATUS_NEW) {
$numnew++;
}
$numtotal++;
if (!$plugin->is_standard()) {
$numextension++;
@@ -1681,36 +1721,50 @@ class core_admin_renderer extends plugin_renderer_base {
}
$infoall = html_writer::link(
new moodle_url($this->page->url, array('contribonly' => 0, 'updatesonly' => 0)),
$this->page->url,
get_string('overviewall', 'core_plugin'),
array('title' => get_string('filterall', 'core_plugin'))
['title' => get_string('filterall', 'core_plugin'), 'data-filterby' => 'all', 'class' => 'active']
).' '.html_writer::span($numtotal, 'badge number number-all');
$infoext = html_writer::link(
new moodle_url($this->page->url, array('contribonly' => 1, 'updatesonly' => 0)),
new moodle_url($this->page->url, [], 'additional'),
get_string('overviewext', 'core_plugin'),
array('title' => get_string('filtercontribonly', 'core_plugin'))
['title' => get_string('filtercontribonly', 'core_plugin'), 'data-filterby' => 'additional']
).' '.html_writer::span($numextension, 'badge number number-additional');
if ($numupdatable) {
$infoupdatable = html_writer::link(
new moodle_url($this->page->url, array('contribonly' => 0, 'updatesonly' => 1)),
new moodle_url($this->page->url, [], 'updatable'),
get_string('overviewupdatable', 'core_plugin'),
array('title' => get_string('filterupdatesonly', 'core_plugin'))
['title' => get_string('filterupdatesonly', 'core_plugin'), 'data-filterby' => 'updatable']
).' '.html_writer::span($numupdatable, 'badge bg-info text-white number number-updatable');
} else {
// No updates, or the notifications disabled.
$infoupdatable = '';
}
$out = html_writer::start_div('', array('id' => 'plugins-overview-panel'));
if (!empty($options['updatesonly'])) {
$out .= $this->output->heading(get_string('overviewupdatable', 'core_plugin'), 3);
} else if (!empty($options['contribonly'])) {
$out .= $this->output->heading(get_string('overviewext', 'core_plugin'), 3);
if ($numnew) {
$infonew = html_writer::link(
new moodle_url($this->page->url, [], 'newplugin'),
get_string('status_new', 'plugin'),
['title' => get_string('filternewpluginsonly', 'core_plugin'), 'data-filterby' => 'newplugin']
).' '.html_writer::span($numnew, 'badge bg-success text-white number number-newplugin');
} else {
$infonew = '';
}
if ($nummissing) {
$infomissing = html_writer::link(
new moodle_url($this->page->url, [], 'missing'),
get_string('status_missing', 'plugin'),
['title' => get_string('filtermissingonly', 'core_plugin'), 'data-filterby' => 'missing']
).' '.html_writer::span($nummissing, 'badge bg-danger text-white number number-missing');
} else {
$infomissing = '';
}
$out = html_writer::start_div('', ['id' => 'plugins-overview-panel']);
if ($numinstallable) {
$out .= $this->output->single_button(
new moodle_url($this->page->url, array('installupdatex' => 1)),
@@ -1721,8 +1775,10 @@ class core_admin_renderer extends plugin_renderer_base {
}
$out .= html_writer::div($infoall, 'info info-all').
html_writer::div($infoext, 'info info-ext').
html_writer::div($infoupdatable, 'info info-updatable');
html_writer::div($infoext, 'info info-additional').
html_writer::div($infoupdatable, 'info info-updatable').
html_writer::div($infonew, 'info info-newplugin').
html_writer::div($infomissing, 'info info-missing');
$out .= html_writer::end_div(); // End of #plugins-overview-panel block.
@@ -1742,38 +1798,6 @@ class core_admin_renderer extends plugin_renderer_base {
$plugininfo = $pluginman->get_plugins();
// Filter the list of plugins according the options.
if (!empty($options['updatesonly'])) {
$updateable = array();
foreach ($plugininfo as $plugintype => $pluginnames) {
foreach ($pluginnames as $pluginname => $pluginfo) {
$pluginavailableupdates = $pluginfo->available_updates();
if (!empty($pluginavailableupdates)) {
foreach ($pluginavailableupdates as $pluginavailableupdate) {
$updateable[$plugintype][$pluginname] = $pluginfo;
}
}
}
}
$plugininfo = $updateable;
}
if (!empty($options['contribonly'])) {
$contribs = array();
foreach ($plugininfo as $plugintype => $pluginnames) {
foreach ($pluginnames as $pluginname => $pluginfo) {
if (!$pluginfo->is_standard()) {
$contribs[$plugintype][$pluginname] = $pluginfo;
}
}
}
$plugininfo = $contribs;
}
if (empty($plugininfo)) {
return '';
}
$table = new html_table();
$table->id = 'plugins-control-panel';
$table->head = array(
@@ -1871,13 +1895,15 @@ class core_admin_renderer extends plugin_renderer_base {
$row->attributes['class'] .= ' standard';
$source = '';
} else {
$row->attributes['class'] .= ' extension';
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge bg-info text-white');
$row->attributes['class'] .= ' additional';
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge mr-1 bg-info text-white');
}
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
$row->attributes['class'] .= ' missing';
$msg = html_writer::div(get_string('status_missing', 'core_plugin'), 'statusmsg badge bg-danger text-white');
} else if ($status === core_plugin_manager::PLUGIN_STATUS_NEW) {
$row->attributes['class'] .= ' newplugin';
$msg = html_writer::div(get_string('status_new', 'core_plugin'), 'statusmsg badge bg-success text-white');
} else {
$msg = '';
@@ -1893,6 +1919,7 @@ class core_admin_renderer extends plugin_renderer_base {
$updateinfo = '';
if (is_array($plugin->available_updates())) {
$row->attributes['class'] .= ' updatable';
foreach ($plugin->available_updates() as $availableupdate) {
$updateinfo .= $this->plugin_available_update_info($pluginman, $availableupdate);
}
@@ -2180,10 +2207,11 @@ class core_admin_renderer extends plugin_renderer_base {
$output = '';
$output .= $this->header();
$output .= $this->container_start('upgradekeyreq');
$output .= $this->heading(get_string('upgradekeyreq', 'core_admin'));
$output .= $this->container_start('upgradekeyreq w-25');
$output .= html_writer::start_tag('form', array('method' => 'POST', 'action' => $url));
$output .= html_writer::empty_tag('input', [
'id' => 'upgradekey',
'name' => 'upgradekey',
'type' => 'password',
'class' => 'form-control w-auto',
@@ -2206,14 +2234,10 @@ class core_admin_renderer extends plugin_renderer_base {
* @return string
*/
public function moodleorg_registration_message() {
$out = format_text(get_string('registerwithmoodleorginfo', 'core_hub'), FORMAT_MARKDOWN);
$out .= html_writer::link(
MOODLE_PRODUCTURL.'/solutions/moodle-app/',
$this->output->pix_icon('i/info', '').' '.get_string('registerwithmoodleorginfoapp', 'core_hub'),
['class' => 'btn btn-link', 'role' => 'opener', 'target' => '_href']
);
$a = new stdClass();
$a->moreinformation = '#id_sitestats'; // More information anchor.
$a->moodleapp = MOODLE_PRODUCTURL . '/solutions/moodle-app/';
$out = format_text(get_string('registerwithmoodleorginfo', 'core_hub', $a), FORMAT_MARKDOWN);
$out .= html_writer::link(
HUB_MOODLEORGHUBURL,
@@ -2261,6 +2285,21 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->warning($xmlrpcwarning);
}
/**
* Display a warning about the removal of MoodleNet integration.
*
* @return string HTML to output.
*/
protected function moodlenet_removal_warning(): string {
$moodlenetenabled = get_config('tool_moodlenet', 'enablemoodlenet');
if (!empty($moodlenetenabled)) {
$moodlenetwarning = get_string('moodlenetremovalwarning', 'admin');
return $this->warning($moodlenetwarning);
}
return '';
}
/**
* Renders the theme selector list.
*
+22
View File
@@ -0,0 +1,22 @@
# core_role (subsystem) Upgrade notes
## 4.5
### Added
- All session management has been moved to the `\core\session\manager` class.
This removes the dependancy to use the `sessions` table.
Session management plugins (like Redis) should now inherit
the base `\core\session\handler` class, which implements
`SessionHandlerInterface`, and override methods as required.
The following methods in `\core\session\manager` have been deprecated:
| Old method name | New method name |
| --- | --- |
| `kill_all_sessions` | `destroy_all` |
| `kill_session` | `destroy` |
| `kill_sessions_for_auth_plugin` | `destroy_by_auth_plugin` |
| `kill_user_sessions` | `destroy_user_sessions` |
For more information see [MDL-66151](https://tracker.moodle.org/browse/MDL-66151)
@@ -655,7 +655,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
echo "</label>\n";
}
if ($helpicon) {
echo '<span class="float-sm-right text-nowrap">'.$helpicon.'</span>';
echo '<span class="float-sm-end text-nowrap">'.$helpicon.'</span>';
}
echo '</div>';
if (isset($this->errors[$name])) {
@@ -18,13 +18,12 @@ declare(strict_types=1);
namespace core_role\reportbuilder\local\entities;
use context;
use context_helper;
use lang_string;
use stdClass;
use core\{context, context_helper};
use core\lang_string;
use core_reportbuilder\local\entities\base;
use core_reportbuilder\local\filters\select;
use core_reportbuilder\local\report\{column, filter};
use stdClass;
/**
* Role entity
@@ -96,7 +95,6 @@ class role extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_fields("{$rolealias}.name, {$rolealias}.shortname, {$rolealias}.id, {$contextalias}.id AS contextid")
->add_fields(context_helper::get_preload_record_columns_sql($contextalias))
// The sorting is on name, unless empty (determined by single space - thanks Oracle) then we use shortname.
@@ -106,7 +104,7 @@ class role extends base {
ELSE {$rolealias}.name
END",
])
->set_callback(static function($name, stdClass $role): string {
->add_callback(static function(?string $name, stdClass $role): string {
if ($name === null) {
return '';
}
@@ -124,7 +122,6 @@ class role extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_fields("{$rolealias}.name, {$rolealias}.shortname")
// The sorting is on name, unless empty (determined by single space - thanks Oracle) then we use shortname.
->set_is_sortable(true, [
@@ -133,12 +130,9 @@ class role extends base {
ELSE {$rolealias}.name
END",
])
->set_callback(static function($name, stdClass $role): string {
if ($name === null) {
return '';
}
return role_get_name($role, null, ROLENAME_ORIGINAL);
->add_callback(fn(?string $name, stdClass $role) => match ($name) {
null => '',
default => role_get_name($role, null, ROLENAME_ORIGINAL),
});
// Short name column.
@@ -148,8 +142,22 @@ class role extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_fields("{$rolealias}.shortname")
->add_field("{$rolealias}.shortname")
->set_is_sortable(true);
// Archetype column.
$columns[] = (new column(
'archetype',
new lang_string('archetype', 'core_role'),
$this->get_entity_name(),
))
->add_joins($this->get_joins())
->add_field("{$rolealias}.archetype")
->add_callback(fn(?string $archetype) => match ($archetype) {
null => '',
'' => get_string('none'),
default => get_string("archetype{$archetype}", 'core_role'),
})
->set_is_sortable(true);
// Description column.
@@ -166,12 +174,9 @@ class role extends base {
->set_type(column::TYPE_LONGTEXT)
->add_field($descriptionfieldsql, 'description')
->add_field("{$rolealias}.shortname")
->set_callback(static function($description, stdClass $role): string {
if ($description === null) {
return '';
}
return role_get_description($role);
->add_callback(fn(?string $description, stdClass $role) => match ($description) {
null => '',
default => role_get_description($role),
});
return $columns;
@@ -198,6 +203,22 @@ class role extends base {
return role_get_names(null, ROLENAME_ORIGINAL, true);
});
// Archetype filter.
$filters[] = (new filter(
select::class,
'archetype',
new lang_string('archetype', 'core_role'),
$this->get_entity_name(),
"{$rolealias}.archetype",
))
->add_joins($this->get_joins())
->set_options_callback(static function(): array {
return array_map(
fn(string $archetype) => get_string("archetype{$archetype}", 'core_role'),
get_role_archetypes(),
);
});
return $filters;
}
}
@@ -102,7 +102,6 @@ class role_assignment extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("{$raalias}.component")
->set_is_sortable(true);
@@ -113,7 +112,6 @@ class role_assignment extends base {
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("{$raalias}.itemid")
->set_is_sortable(true);
+1 -1
View File
@@ -165,7 +165,7 @@ if (!empty($capabilities)) {
$attrs = array('type'=>'submit', 'name'=>'savechanges', 'value'=>get_string('savechanges'), 'class'=>'btn btn-primary');
echo html_writer::empty_tag('input', $attrs);
$attrs = array('type' => 'submit', 'name' => 'cancel', 'value' => get_string('cancel'),
'class' => 'btn btn-secondary ml-1');
'class' => 'btn btn-secondary ms-1');
echo html_writer::empty_tag('input', $attrs);
echo html_writer::end_tag('div');
echo html_writer::end_tag('div');
+4 -4
View File
@@ -26,8 +26,8 @@ use core_role_preset;
* @copyright 2013 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class preset_test extends \advanced_testcase {
public function test_xml() {
final class preset_test extends \advanced_testcase {
public function test_xml(): void {
global $DB;
$roles = $DB->get_records('role');
@@ -81,10 +81,10 @@ class preset_test extends \advanced_testcase {
* Tests covered method.
* @covers \core_role_preset::parse_preset
*/
public function test_mixed_levels() {
public function test_mixed_levels(): void {
// The problem here is that we cannot guarantee plugin contexts
// have unique short names, so we have to also support level numbers.
$xml = file_get_contents(__DIR__ . '/fixtures/mixed_levels.xml');
$xml = file_get_contents(self::get_fixture_path(__NAMESPACE__, 'mixed_levels.xml'));
$this->assertTrue(\core_role_preset::is_valid_preset($xml));
$preset = \core_role_preset::parse_preset($xml);
+10 -10
View File
@@ -40,12 +40,12 @@ use core_privacy\local\request\approved_userlist;
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider_test extends provider_testcase {
final class provider_test extends provider_testcase {
/**
* Test to check export_user_preferences.
* returns user preferences data.
*/
public function test_export_user_preferences() {
public function test_export_user_preferences(): void {
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
@@ -64,7 +64,7 @@ class provider_test extends provider_testcase {
/**
* Check all contexts are returned if there is any user data for this user.
*/
public function test_get_contexts_for_userid() {
public function test_get_contexts_for_userid(): void {
global $DB;
$this->resetAfterTest();
@@ -114,7 +114,7 @@ class provider_test extends provider_testcase {
/**
* Test that user data is exported correctly.
*/
public function test_export_user_data() {
public function test_export_user_data(): void {
global $DB;
$this->resetAfterTest();
@@ -243,7 +243,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_data_for_all_users_in_context().
*/
public function test_delete_data_for_all_users_in_context() {
public function test_delete_data_for_all_users_in_context(): void {
global $DB;
$this->resetAfterTest();
@@ -329,7 +329,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_data_for_user().
*/
public function test_delete_data_for_user() {
public function test_delete_data_for_user(): void {
global $DB;
$this->resetAfterTest();
@@ -387,7 +387,7 @@ class provider_test extends provider_testcase {
/**
* Export for a user with a key against a script where no instance is specified.
*/
public function test_export_user_role_to_cohort() {
public function test_export_user_role_to_cohort(): void {
global $DB;
$this->resetAfterTest();
@@ -443,7 +443,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_user_role_to_cohort().
*/
public function test_delete_user_role_to_cohort() {
public function test_delete_user_role_to_cohort(): void {
global $DB;
$this->resetAfterTest();
@@ -478,7 +478,7 @@ class provider_test extends provider_testcase {
/**
* Test that only users within a course context are fetched.
*/
public function test_get_users_in_context() {
public function test_get_users_in_context(): void {
global $DB;
$this->resetAfterTest();
@@ -599,7 +599,7 @@ class provider_test extends provider_testcase {
/**
* Test that data for users in approved userlist is deleted.
*/
public function test_delete_data_for_users() {
public function test_delete_data_for_users(): void {
global $DB;
$this->resetAfterTest();
@@ -20,19 +20,14 @@ namespace core_role\reportbuilder\datasource;
use core\context\course;
use core_reportbuilder_generator;
use core_reportbuilder_testcase;
use core_reportbuilder\local\filters\{date, select, text};
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
use core_reportbuilder\tests\core_reportbuilder_testcase;
/**
* Unit tests for roles datasource
*
* @package core_role
* @covers \core_role\reportbuilder\datasource\roles;
* @covers \core_role\reportbuilder\datasource\roles
* @copyright 2024 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
@@ -104,6 +99,7 @@ final class roles_test extends core_reportbuilder_testcase {
// Role.
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'role:name']);
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'role:shortname']);
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'role:archetype']);
$generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'role:description']);
// Role assignment.
@@ -114,11 +110,20 @@ final class roles_test extends core_reportbuilder_testcase {
$content = $this->get_custom_report_content($report->get('id'));
$this->assertCount(1, $content);
[$rolename, $roleshortname, $roledescription, $timemodified, $component, $itemid] = array_values($content[0]);
[
$rolename,
$roleshortname,
$rolearchetype,
$roledescription,
$timemodified,
$component,
$itemid,
] = array_values($content[0]);
// Role.
$this->assertEquals('Moocher (Manager)', $rolename);
$this->assertEquals('manager', $roleshortname);
$this->assertEquals('ARCHETYPE: Manager', $rolearchetype);
$this->assertEquals('Managers can access courses and modify them, but usually do not participate in them.',
$roledescription);
@@ -146,6 +151,14 @@ final class roles_test extends core_reportbuilder_testcase {
'role:name_operator' => select::EQUAL_TO,
'role:name_value' => -1,
], false],
'Filter role archetype' => ['role:archetype', [
'role:archetype_operator' => select::EQUAL_TO,
'role:archetype_value' => 'student',
], true],
'Filter role archetype (no match)' => ['role:archetype', [
'role:archetype_operator' => select::EQUAL_TO,
'role:archetype_value' => 'teacher',
], false],
// Role assignment.
'Filter role assignment time modified' => ['role_assignment:timemodified', [
+69
View File
@@ -0,0 +1,69 @@
<?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/>.
/**
* Adds settings links to admin tree.
*
* AI gets top billing in general because it's the future.
*
* @package core_admin
* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig) {
// Add settings page for AI provider settings.
$providers = new admin_settingpage('aiprovider', new lang_string('aiproviders', 'ai'));
$providers->add(new admin_setting_heading('availableproviders',
get_string('availableproviders', 'core_ai'),
get_string('availableproviders_desc', 'core_ai')));
$providers->add(new \core_admin\admin\admin_setting_plugin_manager(
'aiprovider',
\core_ai\table\aiprovider_management_table::class,
'manageaiproviders',
new lang_string('manageaiproviders', 'core_ai'),
));
$ADMIN->add('ai', $providers);
// Load settings for all AI providers.
$plugins = core_plugin_manager::instance()->get_plugins_of_type('aiprovider');
foreach ($plugins as $plugin) {
/** @var \core\plugininfo\aiprovider $plugin */
$plugin->load_settings($ADMIN, 'ai', $hassiteconfig);
}
// Add settings page for AI placement settings.
$placements = new admin_settingpage('aiplacement', new lang_string('aiplacements', 'ai'));
$placements->add(new admin_setting_heading('availableplacements',
get_string('availableplacements', 'core_ai'),
get_string('availableplacements_desc', 'core_ai')));
$placements->add(new \core_admin\admin\admin_setting_plugin_manager(
'aiplacement',
\core_ai\table\aiplacement_management_table::class,
'manageaiplacements',
new lang_string('manageaiplacements', 'core_ai'),
));
$ADMIN->add('ai', $placements);
// Load settings for all placements.
$plugins = core_plugin_manager::instance()->get_plugins_of_type('aiplacement');
foreach ($plugins as $plugin) {
/** @var \core\plugininfo\aiprovider $plugin */
$plugin->load_settings($ADMIN, 'ai', $hassiteconfig);
}
}
+6
View File
@@ -152,6 +152,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
}
$choices[HOMEPAGE_MYCOURSES] = new lang_string('mycourses', 'admin');
$choices[HOMEPAGE_USER] = new lang_string('userpreference', 'admin');
// Allow hook callbacks to extend options.
$hook = new \core_user\hook\extend_default_homepage();
\core\di::get(\core\hook\manager::class)->dispatch($hook);
$choices += $hook->get_options();
$temp->add(new admin_setting_configselect('defaulthomepage', new lang_string('defaulthomepage', 'admin'),
new lang_string('configdefaulthomepage', 'admin'), get_default_home_page(), $choices));
if (!isset($CFG->enabledashboard) || $CFG->enabledashboard) {
+16 -1
View File
@@ -65,6 +65,21 @@ if (($hassiteconfig || has_any_capability(array(
new lang_string('allowexternalbackpack', 'badges'),
new lang_string('allowexternalbackpack_desc', 'badges'), 1));
$defaultcanvasregions = [
'Australia|https://au.badgr.io|https://api.au.badgr.io/v2',
'Canada|https://ca.badgr.io|https://api.ca.badgr.io/v2',
'Europe|https://eu.badgr.io|https://api.eu.badgr.io/v2',
'Singapore|https://sg.badgr.io|https://api.sg.badgr.io/v2',
'United States|https://badgr.io|https://api.badgr.io/v2',
];
$globalsettings->add(new admin_setting_configtextarea(
'badges_canvasregions',
new lang_string('canvasregions', 'badges'),
new lang_string('canvasregions_desc', 'badges'),
implode("\n", $defaultcanvasregions),
PARAM_RAW,
));
$ADMIN->add('badges', $globalsettings);
$ADMIN->add('badges',
@@ -87,7 +102,7 @@ if (($hassiteconfig || has_any_capability(array(
$ADMIN->add('badges',
new admin_externalpage('newbadge',
new lang_string('newbadge', 'badges'),
new moodle_url('/badges/newbadge.php', array('type' => BADGE_TYPE_SITE)),
new moodle_url('/badges/edit.php', ['action' => 'new']),
array('moodle/badges:createbadge'), empty($CFG->enablebadges)
)
);
+30 -1
View File
@@ -420,6 +420,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_general_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
new lang_string('configgeneralcontentbankcontent', 'backup'),
@@ -431,7 +437,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
['value' => 1, 'locked' => 0])
);
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_legacyfiles',
new lang_string('generallegacyfiles', 'backup'),
new lang_string('configlegacyfiles', 'backup'), array('value' => 1, 'locked' => 0)));
@@ -454,12 +459,24 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_badges',
new lang_string('generalbadges', 'backup'),
new lang_string('configgeneralbadges', 'backup'),
['value' => 0, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_calendarevents', new lang_string('generalcalendarevents','backup'), new lang_string('configgeneralcalendarevents','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_questionbank', new lang_string('generalquestionbank','backup'), new lang_string('configgeneralquestionbank','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_groups',
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -589,6 +606,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_groups', new lang_string('generalgroups', 'backup'),
new lang_string('configgeneralgroups', 'backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), 1));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
1,
));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -668,6 +691,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('restore/restore_general_competencies',
new lang_string('generalcompetencies', 'backup'),
new lang_string('configrestorecompetencies', 'backup'), array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'restore/restore_general_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configrestorecustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('restore/restore_general_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
new lang_string('configrestorecontentbankcontent', 'backup'), array('value' => 1, 'locked' => 0)));
+10 -1
View File
@@ -109,7 +109,16 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
// Add the 'profiling' page to admin block.
$ADMIN->add('development', $temp);
// Web service test clients DO NOT COMMIT : THE EXTERNAL WEB PAGE IS NOT AN ADMIN PAGE !!!!!
$ADMIN->add(
parentname: 'development',
something: new admin_externalpage(
name: 'swaggerui',
visiblename: new lang_string('swaggerui', 'admin'),
url: "$CFG->wwwroot/admin/swaggerui.php",
),
);
// Web service test clients DO NOT COMMIT : THE EXTERNAL WEB PAGE IS NOT AN ADMIN PAGE !!!!!
$ADMIN->add('development', new admin_externalpage('testclient', new lang_string('testclient', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/testclient.php"));
+44
View File
@@ -0,0 +1,44 @@
<?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/>.
/**
* Configure the settings for file redaction service.
*
* @package core_admin
* @copyright Meirza <meirza.arson@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig) {
if (!$ADMIN->locate('file_redactor')) {
$ADMIN->add('server', new admin_category('file_redactor', get_string('redactor', 'core_files')));
}
$manager = \core\di::get(\core_files\redactor\manager::class);
// Get settings from each service.
foreach ($manager->get_service_classnames() as $servicename => $service) {
$servicesettings = new admin_settingpage(
$servicename,
new lang_string("redactor:{$servicename}", 'core_files'),
);
$service::add_settings($servicesettings);
$ADMIN->add('file_redactor', $servicesettings);
}
}
+30 -3
View File
@@ -39,18 +39,45 @@ if ($hassiteconfig) {
$temp->add(new admin_setting_configtext('defaultcity', new lang_string('defaultcity', 'core_admin'),
new lang_string('defaultcity_help', 'core_admin'), ''));
$temp->add(new admin_setting_countrycodes('allcountrycodes', new lang_string('allcountrycodes', 'core_admin'),
new lang_string('configallcountrycodes', 'core_admin')));
$temp->add(new admin_setting_heading('iplookup', new lang_string('iplookup', 'core_admin'),
new lang_string('iplookupinfo', 'core_admin')));
$temp->add(new admin_setting_configfile('geoip2file', new lang_string('geoipfile', 'core_admin'),
new lang_string('configgeoipfile', 'core_admin', $CFG->dataroot . '/geoip/'),
$CFG->dataroot . '/geoip/GeoLite2-City.mmdb'));
$CFG->dataroot . '/geoip/GeoIP-City.mmdb'));
$temp->add(new admin_setting_configselect('geoipdbedition',
new lang_string('geoipdbedition', 'core_admin'),
new lang_string('geoipdbedition_desc', 'core_admin'), 'GeoLite2-City',
['GeoLite2-City' => 'GeoLite2-City', 'GeoIP2-City' => 'GeoIP2-City']));
$temp->add(new admin_setting_configtext('geoipmaxmindaccid',
new lang_string('geoipmaxmindaccid', 'core_admin'),
new lang_string('geoipmaxmindaccid_desc', 'core_admin'),
'',
PARAM_TEXT,
));
$temp->add(new admin_setting_configtext('geoipmaxmindlicensekey',
new lang_string('geoipmaxmindlicensekey', 'core_admin'),
new lang_string('geoipmaxmindlicensekey_desc', 'core_admin'),
'',
PARAM_TEXT,
));
$temp->add(new admin_setting_configtext('googlemapkey3', new lang_string('googlemapkey3', 'core_admin'),
new lang_string('googlemapkey3_help', 'core_admin'), '', PARAM_RAW, 60));
$temp->add(new admin_setting_countrycodes('allcountrycodes', new lang_string('allcountrycodes', 'core_admin'),
new lang_string('configallcountrycodes', 'core_admin')));
$temp->add(new admin_setting_configtext(
'geopluginapikey',
new lang_string('geopluginapikey', 'core_admin'),
new lang_string('geopluginapikey_desc', 'core_admin'),
'',
PARAM_TEXT,
));
}
$ADMIN->add('location', $temp);
+52 -1
View File
@@ -102,6 +102,8 @@ if ($hassiteconfig) {
new lang_string('limitconcurrentlogins_desc', 'core_auth'), 0, $options));
$temp->add(new admin_setting_configtext('alternateloginurl', new lang_string('alternateloginurl', 'auth'),
new lang_string('alternatelogin', 'auth', htmlspecialchars(get_login_url(), ENT_COMPAT)), ''));
$temp->add(new admin_setting_configcheckbox('showloginform', new lang_string('showloginform', 'core_auth'),
new lang_string('showloginform_desc', 'core_auth'), 1));
$temp->add(new admin_setting_configtext('forgottenpasswordurl', new lang_string('forgottenpasswordurl', 'auth'),
new lang_string('forgottenpassword', 'auth'), '', PARAM_URL));
$temp->add(new admin_setting_confightmleditor('auth_instructions', new lang_string('instructions', 'auth'),
@@ -285,7 +287,7 @@ if ($hassiteconfig) {
$items[] = new admin_setting_configcheckbox('filtermatchonepertext', new lang_string('filtermatchonepertext', 'admin'), new lang_string('configfiltermatchonepertext', 'admin'), 0);
$items[] = new admin_setting_configcheckbox('filternavigationwithsystemcontext',
new lang_string('filternavigationwithsystemcontext', 'admin'),
new lang_string('configfilternavigationwithsystemcontext', 'admin'), 0);
new lang_string('configfilternavigationwithsystemcontext', 'admin'), 1);
foreach ($items as $item) {
$item->set_updatedcallback('reset_text_filters_cache');
$temp->add($item);
@@ -542,6 +544,18 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
$settings->add(new admin_setting_configselect('question_preview/history',
get_string('responsehistory', 'question'), '', 0, $hiddenofvisible));
// Question editing settings.
$settings = new admin_settingpage('qediting',
get_string('questionediting', 'question'),
'moodle/question:config');
$ADMIN->add('qtypesettings', $settings);
$settings->add(new admin_setting_heading('qediting_options',
'', get_string('questionediting_desc', 'question')));
$settings->add(new admin_setting_configcheckbox('questiondefaultssave',
get_string('questiondefaultssave', 'question'), get_string('questiondefaultssave_desc', 'question'), 1));
// Settings for particular question types.
$plugins = core_plugin_manager::instance()->get_plugins_of_type('qtype');
core_collator::asort_objects_by_property($plugins, 'displayname');
@@ -822,12 +836,49 @@ if ($hassiteconfig && core_communication\api::is_available()) {
}
}
// SMS plugins.
if ($hassiteconfig) {
$ADMIN->add(
'modules',
new admin_category(
'sms',
new lang_string('sms', 'core_sms'),
),
);
$ADMIN->add(
'sms',
new admin_externalpage(
'smsgateway',
new lang_string('manage_sms_gateways', 'core_sms'),
$CFG->wwwroot . '/sms/sms_gateways.php',
),
);
foreach (core_component::get_plugin_list('smsgateway') as $plugin => $path) {
$settingspath = $path . '/settings.php';
if (file_exists($settingspath)) {
$settings = new admin_settingpage(
'smsgateway_' . $plugin . '_settings',
new lang_string('pluginname', 'smsgateway_' . $plugin),
'moodle/site:config',
);
include($settingspath);
$ADMIN->add('smsgateway', $settings);
}
}
}
// Content bank content types.
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('contentbanksettings', new lang_string('contentbank')));
$temp = new admin_settingpage('managecontentbanktypes', new lang_string('managecontentbanktypes'));
$temp->add(new admin_setting_managecontentbankcontenttypes());
$ADMIN->add('contentbanksettings', $temp);
$ADMIN->add('contentbanksettings',
new admin_externalpage('contentbank', new lang_string('contentbankcustomfields', 'contentbank'),
$CFG->wwwroot . '/contentbank/customfield.php',
'moodle/contentbank:configurecustomfields'
)
);
$plugins = core_plugin_manager::instance()->get_plugins_of_type('contenttype');
foreach ($plugins as $plugin) {
/** @var \core\plugininfo\contentbank $plugin */
+4 -2
View File
@@ -126,7 +126,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add($adminsetting);
$temp->add(new admin_setting_configcheckbox('passwordchangelogout',
new lang_string('passwordchangelogout', 'admin'),
new lang_string('passwordchangelogout_desc', 'admin'), 0));
new lang_string('passwordchangelogout_desc', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('passwordchangetokendeletion',
new lang_string('passwordchangetokendeletion', 'admin'),
@@ -152,7 +152,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$sensiblesettingsdefault .= 'server_password@@search_solr, ssl_keypassword@@search_solr, ';
$sensiblesettingsdefault .= 'alternateserver_password@@search_solr, alternatessl_keypassword@@search_solr, ';
$sensiblesettingsdefault .= 'test_password@@cachestore_redis, password@@mlbackend_python, ';
$sensiblesettingsdefault .= 'badges_badgesalt@@none, calendar_exportsalt@@none';
$sensiblesettingsdefault .= 'badges_badgesalt@@none, calendar_exportsalt@@none, ';
$sensiblesettingsdefault .= 'bigbluebuttonbn_shared_secret@@none, apikey@@tiny_premium, ';
$sensiblesettingsdefault .= 'matrixaccesstoken@@communication_matrix, api_secret@@factor_sms';
$temp->add(new admin_setting_configtextarea('adminpresets/sensiblesettings',
get_string('sensiblesettings', 'core_adminpresets'),
get_string('sensiblesettingstext', 'core_adminpresets'),
+10 -2
View File
@@ -181,8 +181,16 @@ if ($hassiteconfig) {
new lang_string('configproxyuser', 'admin'), ''));
$temp->add(new admin_setting_configpasswordunmask('proxypassword', new lang_string('proxypassword', 'admin'),
new lang_string('configproxypassword', 'admin'), ''));
$temp->add(new admin_setting_configtext('proxybypass', new lang_string('proxybypass', 'admin'),
new lang_string('configproxybypass', 'admin'), 'localhost, 127.0.0.1'));
$setting = new admin_setting_configtext('proxybypass', new lang_string('proxybypass', 'admin'),
new lang_string('configproxybypass', 'admin'), 'localhost,127.0.0.1');
$setting->set_updatedcallback(function() {
// Normalize $CFG->proxybypass value.
$normalizedvalue = \core\ip_utils::normalize_internet_address_list(get_config('core', 'proxybypass'));
set_config('proxybypass', $normalizedvalue);
});
$temp->add($setting);
$temp->add(new admin_setting_configcheckbox('proxylogunsafe', new lang_string('proxylogunsafe', 'admin'),
new lang_string('configproxylogunsafe_help', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('proxyfixunsafe', new lang_string('proxyfixunsafe', 'admin'),
+1
View File
@@ -25,6 +25,7 @@ if ($hassiteconfig) {
$ADMIN->add('root', new admin_category('users', new lang_string('users','admin')));
$ADMIN->add('root', new admin_category('courses', new lang_string('courses','admin')));
$ADMIN->add('root', new admin_category('grades', new lang_string('grades')));
$ADMIN->add('root', new admin_category('ai', new lang_string('ai', 'ai')));
$ADMIN->add('root', new admin_category('analytics', new lang_string('analytics', 'analytics')));
$ADMIN->add('root', new admin_category('competencies', new lang_string('competencies', 'core_competency')));
$ADMIN->add('root', new admin_category('badges', new lang_string('badges'), empty($CFG->enablebadges)));
+87
View File
@@ -0,0 +1,87 @@
<?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/>.
/**
* Swagger UI for Moodle
*
* @package core_admin
* @copyright Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require('../config.php');
require_once($CFG->libdir . '/adminlib.php');
$swaggerversion = '5.17.14';
$PAGE->set_url('/admin/swaggerui.php');
admin_externalpage_setup('swaggerui');
$PAGE->requires->css(new moodle_url("https://unpkg.com/swagger-ui-dist@{$swaggerversion}/swagger-ui.css"));
echo $OUTPUT->header();
// These have to be manually added for now because they must be made cross-origin. The `js` method does not yet support this.
echo html_writer::tag(
tagname: 'script',
contents: '',
attributes: [
'src' => new moodle_url("https://unpkg.com/swagger-ui-dist@{$swaggerversion}/swagger-ui-bundle.js"),
'crossorigin' => 'crossorigin',
],
);
echo html_writer::tag(
tagname: 'script',
contents: '',
attributes: [
'src' => new moodle_url("https://unpkg.com/swagger-ui-plugin-hierarchical-tags"),
'crossorigin' => 'crossorigin',
],
);
$openapipath = moodle_url::routed_path('/api/rest/v2/openapi.json')->out();
$swaggerinit = <<<JS
window.ui = SwaggerUIBundle({
url: "{$openapipath}",
dom_id: '#swagger-ui',
// Enable the "Try it out" button by default.
tryItOutEnabled: true,
// Show snippets different OS options.
requestSnippetsEnabled: true,
deepLinking: true,
plugins: [
HierarchicalTagsPlugin,
],
hierarchicalTagSeparator: /[_]/
});
JS;
$PAGE->requires->js_init_code(
jscode: $swaggerinit,
ondomready: true,
);
echo html_writer::div('', '', [
'id' => 'swagger-ui',
]);
echo $OUTPUT->footer();
+34 -1
View File
@@ -24,6 +24,7 @@
require_once(__DIR__ . '/../config.php');
require_once("{$CFG->libdir}/adminlib.php");
require_once("tool/task/lib.php");
use core_admin\reportbuilder\local\systemreports\task_logs;
use core_reportbuilder\system_report_factory;
@@ -49,9 +50,41 @@ if (null !== $logid) {
if ($download) {
$filename = str_replace('\\', '_', $log->classname) . "-{$log->id}.log";
header("Content-Disposition: attachment; filename=\"{$filename}\"");
readstring_accel($log->output, 'text/plain');
exit;
}
readstring_accel($log->output, 'text/plain');
try {
$class = new $log->classname;
$title = $class->get_name();
} catch (Exception $e) {
$title = $log->classname;
}
$title .= " ($log->id)";
$PAGE->navbar->add($title, '');
echo $OUTPUT->header();
echo html_writer::start_tag('pre', ['class' => 'task-output', 'style' => 'min-height: 24lh']);
echo tool_task_mtrace_wrapper($log->output);
echo html_writer::end_tag('pre');
echo $OUTPUT->action_link(
new moodle_url('/admin/tasklogs.php'),
$strheading,
null,
null,
new pix_icon('i/log', ''),
);
echo ' ';
echo $OUTPUT->action_link(
new moodle_url('/admin/tasklogs.php', ['logid' => $log->id, 'download' => true]),
new lang_string('download'),
null,
null,
new pix_icon('t/download', ''),
);
echo $OUTPUT->footer();
exit;
}
+1 -1
View File
@@ -48,7 +48,7 @@
Setting.
}}
<div class="form-item row" id="{{id}}">
<div class="form-label col-sm-3 text-sm-right">
<div class="form-label col-sm-3 text-sm-end">
{{#customcontrol}}
<p {{#labelfor}}id="{{labelfor}}_label"{{/labelfor}}>
{{{title}}}
@@ -38,6 +38,6 @@
}
}}
<div class="form-checkbox defaultsnext">
<input type="hidden" name="{{name}}" value="{{no}}">
{{^readonly}}<input type="hidden" name="{{name}}" value="{{no}}">{{/readonly}}
<input {{#readonly}}disabled{{/readonly}} type="checkbox" name="{{name}}" value="{{value}}" id="{{id}}" {{#checked}}checked{{/checked}}>
</div>
@@ -35,7 +35,7 @@
}
}}
<div class="form-multicheckbox">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
{{#hasoptions}}
<ul>
{{#options}}
@@ -40,7 +40,7 @@
Setting configmultiselect.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
@@ -59,7 +59,7 @@
Setting configmultiselect with optgroup support.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
@@ -0,0 +1,59 @@
{{!
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 core_admin/setting_configtoggle
Template for toggle element in admin settings.
Context variables required for this template:
* id - element id
* checked - bool, true if the toggle is enabled
* name - form element name
* value - form for name field
* action - action to be performed when the toggle is clicked
* plugin - plugin name
* state - state of the toggle
* title - title of the toggle tooltip
* label - label of the toggle
* labelclasses - classes for the label (sr-only for screen readers)
Example context (json):
{
"id": "reality-toggle-3",
"checked": true,
"dataattributes": [{
"name": "id",
"value": "toggle-reality",
"action": "togglestate",
"plugin": "tool_reality",
"state": 1
}],
"title": "Title example",
"label": "Enable/disable reality",
"labelclasses": "sr-only"
}
}}
<div id="container-{{id}}"
data-toggle-method="{{dataattributes.toggle-method}}"
data-action="{{dataattributes.action}}"
data-plugin="{{dataattributes.plugin}}"
data-state="{{dataattributes.state}}"
data-value="{{dataattributes.value}}"
>
{{> core/toggle }}
</div>
+1 -1
View File
@@ -35,7 +35,7 @@
Setting description.
}}
<div class="form-item row">
<div class="form-label col-sm-3 text-sm-right">
<div class="form-label col-sm-3 text-sm-end">
<label>
{{{title}}}
</label>
@@ -0,0 +1,33 @@
{{!
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 core_admin/setting_savebutton
Admin save button settings template.
Example context (json):
{
}
}}
{{!
Settings.
}}
<div class="row">
<div class="offset-sm-3 col-sm-3">
<button type="submit" class="btn btn-primary">{{#str}}savechanges, admin{{/str}}</button>
</div>
</div>
+39
View File
@@ -0,0 +1,39 @@
{{!
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 core_admin/table/namedesc
Admin setting template to display an name and description
in a single table cell.
Context variables required for this template:
* name - Name of the table setting
* description - Description of the setting
Example context (json):
{
"name": "Fancy Setting",
"description": "Text that describes this setting well"
}
}}
{{!
Name and description.
}}
<div>
<div><strong>{{name}}</strong></div>
<div>{{description}}</div>
</div>
@@ -58,7 +58,7 @@
<a
href="{{reporturl}}"
id="theme-usage-report-{{choose}}"
class="btn btn-link p-0 ml-2"
class="btn btn-link p-0 ms-2"
title="{{#str}}themeusagereportname, admin, {{name}}{{/str}}">
<i class="icon fa fa-area-chart m-0" aria-hidden="true"></i>
<span class="sr-only">{{#str}}themeusagereportname, admin, {{name}}{{/str}}</span>
@@ -68,7 +68,7 @@
<a
href="{{settingsurl}}"
id="theme-settings-{{choose}}"
class="btn btn-link p-0 ml-2"
class="btn btn-link p-0 ms-2"
title="{{#str}}themeeditsettingsname, admin, {{name}}{{/str}}">
<i class="icon fa fa-cog m-0" aria-hidden="true"></i>
<span class="sr-only">{{#str}}themeeditsettingsname, admin, {{name}}{{/str}}</span>
@@ -36,7 +36,7 @@
<div class="lead">{{tokenname}}</div>
<div class="d-flex justify-content-start align-middle">
<div class="lead text-break pt-1" id="copytoclipboardtoken">{{token}}</div>
<button class="btn btn-primary ml-2" data-action="copytoclipboard" data-clipboard-target="#copytoclipboardtoken" data-clipboard-success-message="{{#str}}tokencopied, webservice{{/str}}">
<button class="btn btn-primary ms-2" data-action="copytoclipboard" data-clipboard-target="#copytoclipboardtoken" data-clipboard-success-message="{{#str}}tokencopied, webservice{{/str}}">
{{#pix}}t/copy, core {{/pix}}{{#str}}copytoclipboard{{/str}}</button>
</div>
</div>
+4
View File
@@ -81,6 +81,8 @@ class behat_admin extends behat_base {
$this->execute('behat_forms::i_set_the_field_with_xpath_to', [$fieldxpath, $value]);
$this->execute("behat_general::i_click_on", [get_string('savechanges'), 'button']);
// Wait for the page to be redirected.
$this->execute("behat_general::i_wait_to_be_redirected");
}
}
@@ -90,6 +92,8 @@ class behat_admin extends behat_base {
* @Given /^the following config values are set as admin:$/
* @param TableNode $table
*/
#[\core\attribute\example('And the following config values are set as admin:
| sendcoursewelcomemessage | 0 | enrol_manual |')]
public function the_following_config_values_are_set_as_admin(TableNode $table) {
if (!$data = $table->getRowsHash()) {
+8 -7
View File
@@ -18,7 +18,7 @@ Feature: An administrator can browse user accounts
When I navigate to "Users > Accounts > Browse list of users" in site administration
# Name field always present, email field is default for showidentity.
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
# Should not see other identity fields or non-default name fields.
@@ -34,7 +34,7 @@ Feature: An administrator can browse user accounts
| alternativefullnameformat | firstnamephonetic lastname |
When I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name - phonetic / Last name | Email address |
| First name - phonetic | Email address |
| Yewzer One | one@example.com |
| Yoozare Two | two@example.com |
@@ -43,7 +43,7 @@ Feature: An administrator can browse user accounts
| showuseridentity | department,profile_field_frog |
When I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Favourite frog | Department |
| First name | Favourite frog | Department |
| User One | Kermit | Attack |
| User Two | Tree | Defence |
And I should not see "Email address" in the "table" "css_element"
@@ -79,7 +79,7 @@ Feature: An administrator can browse user accounts
Scenario: Delete a user account
Given I navigate to "Users > Accounts > Browse list of users" in site administration
And I press "Delete" action in the "User One" report row
And I should see "Are you absolutely sure you want to completely delete the user User One" in the "Delete user" "dialogue"
And I should see "Are you sure you want to delete user User One" in the "Delete user" "dialogue"
And I click on "Delete" "button" in the "Delete user" "dialogue"
Then I should see "Deleted user User One"
And I should not see "User One" in the "reportbuilder-table" "table"
@@ -90,6 +90,7 @@ Feature: An administrator can browse user accounts
| username | firstname | lastname | email | confirmed |
| user3 | User | Three | three@example.com | 0 |
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I change window size to "large"
Then I should see "Confirmation pending" in the "User Three" "table_row"
And I press "Resend confirmation email" action in the "User Three" report row
And I should see "Confirmation email sent successfully"
@@ -103,7 +104,7 @@ Feature: An administrator can browse user accounts
| user3 | User | Three | three@example.com | Glass |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
| User Three | three@example.com |
@@ -137,7 +138,7 @@ Feature: An administrator can browse user accounts
| user2 | C1 | student |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
And I click on "Filters" "button"
@@ -166,7 +167,7 @@ Feature: An administrator can browse user accounts
| user1 | coursecreator | system | |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
| User Three | three@example.com |
+21
View File
@@ -159,3 +159,24 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
And I should not see "User One" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
@javascript
Scenario: Filter users by full name
When I click on "Filters" "button"
And I set the following fields in the "Full name" "core_reportbuilder > Filter" to these values:
| Full name operator | Is equal to |
| Full name value | User One |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
Then I should see "User One" in the "reportbuilder-table" "table"
And I should not see "User Two" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
And I click on "Reset all" "button" in the "[data-region='report-filters']" "css_element"
And I set the following fields in the "Full name" "core_reportbuilder > Filter" to these values:
| Full name operator | Is equal to |
| Full name value | User Two |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
And I should see "User Two" in the "reportbuilder-table" "table"
And I should not see "User One" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
+8 -20
View File
@@ -8,26 +8,14 @@ Feature: An administrator can manage Block plugins
Scenario: An administrator can control the enabled state of block plugins using JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Disable Latest badges" "link"
Then I should see "Latest badges disabled."
And "Disable Latest badges" "link" should not exist
But "Enable Latest badges" "link" should exist
When I click on "Enable Latest badges" "link"
Then I should see "Latest badges enabled."
And "Enable Latest badges" "link" should not exist
But "Disable Latest badges" "link" should exist
Scenario: An administrator can control the enabled state of block plugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Disable Latest badges" "link"
Then I should see "Latest badges disabled."
And "Disable Latest badges" "link" should not exist
But "Enable Latest badges" "link" should exist
When I click on "Enable Latest badges" "link"
Then I should see "Latest badges enabled."
And "Enable Latest badges" "link" should not exist
But "Disable Latest badges" "link" should exist
When I toggle the "Disable Latest badges" admin switch "off"
And I should see "Latest badges disabled."
And I reload the page
Then I should see "Enable Latest badges"
And I toggle the "Enable Latest badges" admin switch "on"
And I should see "Latest badges enabled."
And I reload the page
Then I should see "Disable Latest badges"
@javascript
Scenario: An administrator can control the protected state of block plugins using JavaScript
+9 -20
View File
@@ -6,25 +6,14 @@ Feature: An administrator can manage Media plugins
@javascript
Scenario: An administrator can control the enabled state of media plugins using JavaScript
The state change should be reflected in the UI and persist across page reloads
Given I am logged in as "admin"
And I navigate to "Plugins > Media players > Manage media players" in site administration
When I click on "Disable YouTube" "link"
Then I should see "YouTube disabled."
And "Disable YouTube" "link" should not exist
But "Enable YouTube" "link" should exist
When I click on "Enable YouTube" "link"
Then I should see "YouTube enabled."
And "Enable YouTube" "link" should not exist
But "Disable YouTube" "link" should exist
Scenario: An administrator can control the enabled state of media plugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Media players > Manage media players" in site administration
When I click on "Disable YouTube" "link"
Then I should see "YouTube disabled."
And "Disable YouTube" "link" should not exist
But "Enable YouTube" "link" should exist
When I click on "Enable YouTube" "link"
Then I should see "YouTube enabled."
And "Enable YouTube" "link" should not exist
But "Disable YouTube" "link" should exist
When I toggle the "Disable YouTube" admin switch "off"
And I should see "YouTube disabled."
And I reload the page
Then I should see "Enable YouTube"
And I toggle the "Enable YouTube" admin switch "on"
And I should see "YouTube enabled."
And I reload the page
Then I should see "Disable YouTube"
-103
View File
@@ -1,103 +0,0 @@
@core @core_admin
Feature: Manage external services tokens
In order to manage external service usage
As an admin
I need to be able to create, filter and delete tokens
Background:
Given the following "users" exist:
| username | password | firstname | lastname |
| user1 | user1 | Firstname1 | Lastname1 |
| user2 | user2 | Firstname2 | Lastname2 |
| user3 | user3 | Firstname3 | Lastname3 |
| user4 | user4 | Firstname4 | Lastname4 |
And I change window size to "small"
@javascript
Scenario: Add a token to user identified by name and then delete that token
Given I log in as "admin"
And I am on site homepage
And I navigate to "Server > Web services > Manage tokens" in site administration
And I press "Create token"
And I set the field "Name" to "Webservice1"
And I set the field "User" to "Firstname1 Lastname1"
And I set the field "Service" to "Moodle mobile web service"
And I set the field "IP restriction" to "127.0.0.1"
When I press "Save changes"
Then the following should exist in the "generaltable" table:
| Name | First name | Service | IP restriction | Last access |
| Webservice1 | Firstname1 Lastname1 | Moodle mobile web service | 127.0.0.1 | Never |
# Verify the message and the "Copy to clipboard" button.
And I should see "Copy the token now. It won't be shown again once you leave this page."
And "Copy to clipboard" "button" should exist
# New token can only read once.
And I reload the page
And I should not see "Copy the token now. It won't be shown again once you leave this page."
And "Copy to clipboard" "button" should not exist
# Delete token.
And I click on "Delete" "link" in the "Webservice1" "table_row"
And I should see "Do you really want to delete this web service token for Firstname1 Lastname1 on the service Moodle mobile web service?"
And I press "Delete"
And "Webservice1" "table_row" should not exist
@javascript @skip_chrome_zerosize
Scenario: Tokens can be filtered by name (case-insensitive), by user and by service
Given the following "core_webservice > Service" exists:
| name | Site information |
| shortname | siteinfo |
| enabled | 1 |
And the following "core_webservice > Service function" exists:
| service | siteinfo |
| functions | core_webservice_get_site_info |
And the following "core_webservice > Tokens" exist:
| user | service | name |
| user2 | siteinfo | WEBservice1 |
| user3 | moodle_mobile_app | webservicE3 |
| user4 | siteinfo | New service2 |
When I log in as "admin"
And I navigate to "Server > Web services > Manage tokens" in site administration
# All created tokens are shown by default.
And "Firstname1 Lastname1" "table_row" should not exist
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
And I should see "Moodle mobile web service" in the "Firstname3 Lastname3" "table_row"
And I should see "Site information" in the "Firstname4 Lastname4" "table_row"
# Filter tokens by by name (case-insensitive).
And I click on "Tokens filter" "link"
And I set the field "Name" to "webservice"
And I press "Show only matching tokens"
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
And I should see "Moodle mobile web service" in the "Firstname3 Lastname3" "table_row"
And "Firstname4 Lastname4" "table_row" should not exist
# Reset the filter.
And I press "Show all tokens"
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
And I should see "Moodle mobile web service" in the "Firstname3 Lastname3" "table_row"
And I should see "Site information" in the "Firstname4 Lastname4" "table_row"
# Filter tokens by user (note we can select the user by the identity field here).
When I click on "Tokens filter" "link"
And I set the field "User" to "user2@example.com"
And I press "Show only matching tokens"
Then "Firstname3 Lastname3" "table_row" should not exist
And "Firstname4 Lastname4" "table_row" should not exist
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
# Reset the filter.
And I press "Show all tokens"
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
And I should see "Moodle mobile web service" in the "Firstname3 Lastname3" "table_row"
And I should see "Site information" in the "Firstname4 Lastname4" "table_row"
# Filter tokens by service.
And I click on "Tokens filter" "link"
And I set the field "Service" to "Site information"
And I press "Show only matching tokens"
And I should see "Site information" in the "Firstname2 Lastname2" "table_row"
And I should see "Site information" in the "Firstname4 Lastname4" "table_row"
And "Firstname3 Lastname3" "table_row" should not exist

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