Compare commits

..

506 Commits

Author SHA1 Message Date
Jun Pataleta f22eed6b67 Moodle release 4.4.8 2025-04-13 09:52:59 +08:00
Huong Nguyen a969e35ef5 weekly release 4.4.7+ 2025-04-11 22:02:21 +07:00
Sara Arjona 43a0e4d96d MDL-83994 course: Adapt PHPUnit to lower PHP versions 2025-04-11 19:25:19 +08:00
Huong Nguyen b6cf3a1851 MDL-72704 message: Fix fetching for user has already contacted 2025-04-11 17:46:36 +08:00
Sara Arjona dd0b40c2ae Merge branch 'MDL-85139-404-2' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2025-04-11 07:05:19 +02:00
Paul Holden c9c6dbebd6 MDL-84865 cohort: improve system report validation of parameters. 2025-04-11 12:46:48 +08:00
Jun Pataleta 13440d2edd 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:58 +08:00
Stevani Andolo 866d5c02f3 MDL-72704 message: Fix fetching of conversation member info 2025-04-11 12:18:58 +08:00
raortegar d834f8698f MDL-85104 lib: Add additional check to local URLs params. 2025-04-11 10:22:17 +07:00
James C 72d54c6b1e MDL-83994 course: Respect course_can_delete_section() in AJAX 2025-04-11 13:05:56 +10:00
Paul Holden f113ecfba7 MDL-84473 repository_equella: safer unserializing of file references. 2025-04-11 09:52:05 +07:00
Paul Holden dffd193de5 MDL-84475 repository_dropbox: safer unserializing of file references. 2025-04-11 09:33:58 +07:00
Jun Pataleta a2be2e3067 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:12:25 +08:00
Michael Hawkins cb2690ca4e MDL-85152 filter_tex: Update deny list and slash handling 2025-04-10 14:21:00 +08:00
Paul Holden af704fe2b3 MDL-84478 tool_brickfield: verify sesskey prior to course analysis. 2025-04-10 13:06:58 +08:00
Paul Holden 4332522a7d MDL-84499 block_rss_client: user access checks for viewing feed. 2025-04-10 12:32:37 +08:00
Paul Holden cae8d49d99 MDL-65356 mod_data: update entry editing/deletion to not leak sesskey. 2025-04-10 10:07:53 +07:00
Paul Holden 320700db21 MDL-84750 course: require user be able to view course participants. 2025-04-10 09:29:58 +08:00
David Woloszyn d48c418aa0 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:47 +07:00
raortegar efd335ca90 MDL-84351 tool_mfa: Fix access to guide page when MFA login 2025-04-09 16:50:47 +07:00
David Woloszyn 588be50d53 MDL-84351 tool_mfa: Check URL against allowed components for redirect 2025-04-09 16:50:47 +07:00
David Woloszyn 52731101f6 MDL-84351 url: Add method for getting slashargument 2025-04-09 16:50:47 +07:00
Paul Holden ad5b72e696 MDL-84479 tool_usertours: verify sesskey prior to tour duplication. 2025-04-08 15:11:20 +00:00
Michael Hawkins a0ff17c66d MDL-85015 tool_mfa: Include extra param in email factor cancel check 2025-04-08 15:11:20 +00:00
David Woloszyn cf7fe7a547 MDL-84784 tool_mfa: Remove enrol/index.php from no redirect 2025-04-08 15:11:20 +00:00
Sara Arjona 3101137de3 weekly release 4.4.7+ 2025-04-08 17:05:49 +02:00
Sara Arjona 1c95a3a4da Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-04-08 17:05:48 +02:00
Jun Pataleta 39ce93c3b6 Merge branch 'MDL-84058-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-04-08 10:07:16 +08:00
AMOS bot e8ae5de91b Automatically generated installer lang files 2025-04-08 00:07:46 +00:00
meirzamoodle 401a716147 MDL-84058 cli: Add a backup check for course module names
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-04-08 06:30:17 +07:00
Huong Nguyen d92296b89e Merge branch 'MDL-84970-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-04-07 10:02:14 +07:00
Jun Pataleta ede19c68df Merge branch 'MDL-85112-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-04-05 12:27:30 +08:00
Paul Holden a53ce235a8 MDL-85112 message: correct use of class to hide element content. 2025-04-04 17:08:18 +01:00
Huong Nguyen 30fed30e65 weekly release 4.4.7+ 2025-04-04 22:20:15 +07:00
Jun Pataleta 3cc3825f63 Merge branch 'MDL-84816-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-04-04 12:37:20 +08:00
meirzamoodle e8eb81f399 MDL-84816 message: Make sure the 'see all' link stays visible 2025-04-04 11:27:35 +07:00
Huong Nguyen 1d21f959b4 Merge branch 'MDL-84997-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2025-04-04 11:15:19 +07:00
Jun Pataleta 67107816a0 Merge branch 'MDL-84907-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-04-04 11:30:27 +08:00
Jun Pataleta 8f974b5e0e Merge branch 'MDL-84914-404-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_404_STABLE 2025-04-04 09:47:24 +08:00
Shamim Rezaie 7cd120d902 Merge branch 'MDL-61823-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-04-04 09:08:43 +11:00
Paul Holden 2a0c01bb1a 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:32 +01:00
Paul Holden aaf84bc0cf 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:11 +01:00
Jun Pataleta 09daa6585f MDL-75971 core: Remove unnecessary whitespace 2025-04-03 14:53:15 +08:00
Jun Pataleta 67dbbc95bd Merge branch 'MDL-75971-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-04-03 14:36:47 +08:00
Simey Lameze f3eedaaf2a MDL-75971 behat: add email handling capabilities to Behat 2025-04-03 14:00:25 +08:00
Jun Pataleta 5d3fac792c Merge branch 'MDL-84823-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-04-03 12:14:39 +08:00
meirzamoodle 516fed31e5 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:58 +07:00
Huong Nguyen 46cb497bae Merge branch 'MDL-85023_404' of https://github.com/PhilippImhof/moodle into MOODLE_404_STABLE 2025-04-03 11:08:04 +07:00
Shamim Rezaie 66c560de3d Merge branch 'MDL-61730-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-04-03 06:54:02 +11:00
Shamim Rezaie faea71c0aa Merge branch 'MDL-85000-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-04-03 06:13:45 +11:00
Shamim Rezaie 2e48537ee5 Merge branch 'MDL-72050-404' of https://github.com/sh-csg/moodle into MOODLE_404_STABLE 2025-04-03 00:38:35 +11:00
Shamim Rezaie d273c20427 Merge branch 'MDL-84961-404' of https://github.com/odeialba/moodle into MOODLE_404_STABLE 2025-04-02 20:55:01 +11:00
Shamim Rezaie 376c41e841 Merge branch 'MDL-80629-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-04-02 20:02:15 +11:00
Andrew Nicols 59f556e731 MDL-84970 editor_tiny: Use the langpack name for Moodle language 2025-04-02 16:06:22 +08:00
Paul Holden ccd7a6b9a6 MDL-61730 gradeimport_xml: set type on form iprestriction field. 2025-04-02 08:57:21 +01:00
David Mudrák 143fbe18f7 MDL-84914 lang: Use fixed strings in tests, too 2025-04-01 22:20:40 +02:00
Helen Foster a444834a5b MDL-84914 lang: Import fixed English strings (en_fix) 2025-04-01 22:20:09 +02:00
Sara Arjona 1b5e5e3c65 weekly release 4.4.7+ 2025-04-01 16:34:27 +02:00
Mihail Geshoski 1c8cc2b543 MDL-80091 mod_assign: Fix failing behat test 2025-04-01 11:34:16 +02:00
Philipp Imhof 659b50f380 MDL-85023 quiz: allow WebRTC with SEB on Mac 2025-04-01 06:52:57 +02:00
Huong Nguyen 77b6cf7568 Merge branch 'MDL-84419-404' of https://github.com/clransom/moodle into MOODLE_404_STABLE 2025-04-01 11:07:17 +07:00
Huong Nguyen 0b4c755b34 Merge branch 'MDL-83856-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-04-01 10:48:16 +07:00
Huong Nguyen 04eb9c0b61 Merge branch 'MDL-80091-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-04-01 10:41:51 +07:00
Jun Pataleta 6685d750e7 Merge branch 'MDL-84826-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-03-31 14:28:27 +08:00
Andrew Nicols 830fca4a77 Merge branch 'MDL-76801-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-03-31 09:39:29 +08:00
Sara Arjona cdf702bea3 weekly release 4.4.7+ 2025-03-28 12:48:25 +01:00
Sara Arjona 6fb8b72782 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-03-28 12:48:23 +01:00
Paul Holden 2e571156f9 MDL-85048 core: define mapping for new America/Coyhaique zone.
Follows same process as other timezone additions in d5ec3594.
2025-03-28 08:58:43 +00:00
Huong Nguyen 59547c9e26 Merge branch 'MDL-85048-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-03-28 15:01:11 +07:00
Simey Lameze dba907c5a1 MDL-85048 phpunit: add america/coyhaique timezone 2025-03-28 15:00:16 +08:00
David Woloszyn b09ace0546 MDL-84997 core_message: Hide message pill when count is zero 2025-03-28 16:49:23 +11:00
Huong Nguyen 360812e77b Merge branch 'MDL-84952-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2025-03-28 08:52:28 +07:00
AMOS bot 3f0fa1eb14 Automatically generated installer lang files 2025-03-28 00:08:40 +00:00
Mikel Martín a575fe46db MDL-84952 theme_boost: Fix spacing for collapse/expand buttons 2025-03-26 15:41:57 +01:00
Huong Nguyen f0d535b65c Merge branch 'MDL-85001-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-03-26 10:54:01 +07:00
Jake Dallimore 0dee8a90e3 Merge branch 'MDL-85007-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-03-26 11:32:26 +08:00
Huong Nguyen 0733ed3db1 Merge branch 'MDL-83272_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2025-03-26 10:27:40 +07:00
Huong Nguyen 32547c0496 Merge branch 'MDL-84623-M404_close-recordset-in-tool_dataprivacy-expired_contexts_manager-clear_old_records' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2025-03-26 10:23:54 +07:00
Huong Nguyen 39111a7bc7 MDL-85000 media_videojs: Enable Ogv.JS Tech for all browsers 2025-03-26 09:34:03 +07:00
Huong Nguyen a05d3938f8 weekly release 4.4.7+ 2025-03-26 08:56:04 +07:00
Huong Nguyen a7f6daff5b Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-03-26 08:56:03 +07:00
Paul Holden 90b4e8b85c 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:31 +00:00
meirzamoodle 8c6b8ed7ea MDL-84826 theme_boost: Mantaining hover/focus colour for contrast 2025-03-25 22:55:32 +07:00
Paul Holden 43a62d768c 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:48 +00:00
Andrew Nicols 0b88080611 Merge branch 'MDL-84893-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2025-03-25 11:07:04 +08:00
Andrew Nicols a8f6fad781 Merge branch 'MDL-84112-MOODLE_404_STABLE-fix_bigbluebutton_defaultcompletion_performance' of https://github.com/praxisdigital/moodle into MOODLE_404_STABLE 2025-03-25 10:55:57 +08:00
Andrew Nicols 6bef9d816c Merge branch 'MDL-84335_404' of https://github.com/PhilippImhof/moodle into MOODLE_404_STABLE 2025-03-25 10:52:58 +08:00
Andrew Nicols c328216c75 Merge branch 'MDL-76668-404' of https://github.com/cameron1729/moodle into MOODLE_404_STABLE 2025-03-25 10:38:55 +08:00
Philipp Imhof 566dc85f06 MDL-84335 question: check for null before accessing property
in function check_hint_file_access
2025-03-24 17:44:39 +01:00
Odei Alba a7c7fda91a 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:14:50 +01:00
Huong Nguyen 16b78d03a7 Merge branch 'MDL-83160-404' of https://github.com/mickhawkins/moodle into MOODLE_404_STABLE 2025-03-24 14:54:40 +07:00
AMOS bot 3eb7553ab5 Automatically generated installer lang files 2025-03-22 00:07:49 +00:00
Huong Nguyen 5ef6bc0d7a weekly release 4.4.7+ 2025-03-21 22:02:47 +07:00
Huong Nguyen 08abd7ea3b Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-03-21 22:02:46 +07:00
Mark Johnson 7742681329 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 11:40:31 +00:00
Glenn Poder 3f8d704ee4 MDL-76668 navigation: Fix navigation for results in single activity 2025-03-21 13:51:45 +08:00
Andrew Nicols f53120985a MDL-80629 env: Moodle 4.4.x and 4.5.x do not support PHP 8.4 2025-03-21 13:18:56 +08:00
Huong Nguyen ae03be74b6 Merge branch 'MDL-84446-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-03-21 11:18:08 +07:00
Huong Nguyen 431605b0ba Merge branch 'MDL-84867-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2025-03-21 09:06:09 +07:00
AMOS bot 63e52a69c2 Automatically generated installer lang files 2025-03-21 00:07:49 +00:00
Andrew Nicols 473018cb53 Merge branch 'MDL-84803-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2025-03-21 07:57:43 +08:00
Paul Holden f47253d387 Merge branch 'MDL-81655_404' of https://github.com/larsbonczek/moodle into MOODLE_404_STABLE 2025-03-20 15:14:26 +00:00
Amaia Anabitarte ba1f355fd5 MDL-84803 mod_feedback: Make titles unique 2025-03-20 16:09:27 +01:00
Paul Holden 3a44e5126f MDL-84538 lang: remove duplicated badge language string. 2025-03-20 15:05:26 +00:00
Paul Holden 1b11ed787b Merge branch 'MDL-84538-M404_fix-duplicated-language-strings' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2025-03-20 14:45:02 +00:00
Daniel Ziegenberg 2fda6af72f MDL-84538 language: Remove duplicated lang string entries
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-20 14:01:44 +01:00
Mikel Martín 239b833d99 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 11:04:03 +01:00
Sara Arjona 15f176eb3d Merge branch 'MDL-84683-MOODLE_404_STABLE' of https://github.com/jfederico/moodle into MOODLE_404_STABLE 2025-03-19 16:19:36 +01:00
Jun Pataleta 9f7839ba0b Merge branch 'MDL-84905-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-19 13:18:16 +08:00
David Woloszyn 710db6f11a MDL-84893 core_message: Fix message drawer overlap and truncation 2025-03-19 13:58:15 +11:00
Huong Nguyen ea1350cbe0 Merge branch 'MDL-84431-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-03-19 09:55:30 +07:00
Huong Nguyen 1a9a5d1cbe MDL-84907 backup: Fix invalid CTRL characters regex 2025-03-19 09:22:54 +07:00
Huong Nguyen 8553c27e57 MDL-84905 Behat: Fix I set the following administration settings failure 2025-03-19 09:17:26 +07:00
Sara Arjona a18c3ad13a weekly release 4.4.7+ 2025-03-18 14:17:44 +01:00
Andrew Gosali 6cc2d8e5db MDL-83856 gradingform_guide: fix remark format to always be FORMAT_HTML 2025-03-18 16:31:04 +07:00
Anders Rasmussen 7b17ee7fb9 MDL-84112 bigbluebuttonbn: Added user output only if bbactivity is set 2025-03-18 10:15:44 +01:00
Andrew Gosali 3feecc5bb8 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:23:15 +07:00
Andrew Nicols 64dbf8d6c8 Merge branch 'MDL-84222-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-18 08:04:52 +08:00
Huong Nguyen 7c9fc3fb34 Merge branch 'MDL-83591-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-03-17 16:00:46 +07:00
Andrew Gosali e8054b547a 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:39 +07:00
Daniel Ziegenberg ce2a687c2b MDL-84623 privacy: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:54:14 +01:00
Jun Pataleta cbd60e5a9b Moodle release 4.4.7 2025-03-15 20:19:52 +08:00
Ilya Tregubov 6f24f29cde MDL-81945 gradereport_singleview: Fix hidden grade handling.
Seems to become broken after IR refactoring.
2025-03-14 15:21:15 +00:00
Ilya Tregubov 3ba2ebb887 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:21:15 +00:00
Ilya Tregubov 501fc68186 MDL-81945 gradereport_user: Behat tests for user report. 2025-03-14 15:21:15 +00:00
Ilya Tregubov 42eab03367 MDL-81945 gradereport_singleview: Behat tests for singleview report. 2025-03-14 15:21:15 +00:00
Ilya Tregubov 9bbcab02b8 MDL-81945 gradereport_grader: Behat tests for grader report 2025-03-14 15:21:15 +00:00
Ilya Tregubov 0dad8a8369 MDL-81945 core_grades: create Behat step for grades action menu. 2025-03-14 15:21:15 +00:00
Ilya Tregubov 1387393a3b 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:21:15 +00:00
Sara Arjona 5919d99222 weekly release 4.4.6+ 2025-03-14 16:14:06 +01:00
Sara Arjona a86c05ee7c Merge branch 'MDL-83541-404-behat' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-14 11:14:44 +01:00
Huong Nguyen d58329f1e1 MDL-83541 qtype_ddimageortext: Fix Behat failure 2025-03-14 16:59:04 +07:00
Huong Nguyen 1fcd367669 MDL-83541 qtype_numerical: Fix incorrect test hints 2025-03-14 09:21:33 +01:00
Huong Nguyen d4f1cb1078 Merge branch 'MDL-83541-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-14 11:59:45 +07:00
Huong Nguyen ba75747f2e MDL-83541 mod_quiz: Fix PHPUnit failure 2025-03-14 10:31:33 +07:00
Mark Johnson 2de34d5c0e MDL-83541 qtypes: Define excluded hash fields and test hints 2025-03-14 10:31:26 +07:00
Mark Johnson 85d85a6a25 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:31:22 +07:00
Mark Johnson eda944f427 MDL-83541 qtype_calculated: Add missing field to backups 2025-03-14 10:31:17 +07:00
Mark Johnson 5df88228a5 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:31:10 +07:00
Sara Arjona f35f246d19 Merge branch 'MDL-83634-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2025-03-13 16:28:23 +01:00
Michael Hawkins 9186e7e0ec MDL-83160 core: Update security.txt expiry 2025-03-13 20:35:55 +08:00
Sara Arjona d00f94ff44 Merge branch 'MDL-84624-M404_close-recordset-in-core-task-h5p_clean_orphaned_records_task-execute' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2025-03-13 13:20:35 +01:00
Sara Arjona 25a13c0394 Merge branch '83136-fix-unknowncategory-message-404' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_404_STABLE 2025-03-13 12:38:52 +01:00
Sara Arjona 159976d1ef Merge branch 'MDL-77646-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2025-03-13 12:33:52 +01:00
Stefan Hanauska a4c7cb3241 MDL-72050 question: Delete import draftfiles immediately 2025-03-13 08:17:43 +01:00
Stefan Hanauska 7d00d01b66 MDL-72050 filelib: Add function for deleting draftarea 2025-03-13 08:17:43 +01:00
Jun Pataleta fa36c75597 Merge branch 'MDL-80386_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2025-03-13 12:32:38 +08:00
Jun Pataleta cf1e71be2b Merge branch 'MDL-65233-404-no-midnight' of https://github.com/sim642/moodle into MOODLE_404_STABLE 2025-03-13 12:21:39 +08:00
Huong Nguyen 0a50f4c904 Merge branch 'MDL-84640-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2025-03-12 16:32:28 +07:00
Angelia Dela Cruz 683c62f3c6 MDL-84640 analytics: Behat for obtaining prediction models insights 2025-03-12 16:48:48 +08:00
Jun Pataleta 633ddeb157 MDL-83634 tool_brickfield: Test the image alt text check's severity 2025-03-12 13:22:12 +08:00
Jun Pataleta 3c5accff73 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:12 +08:00
Jun Pataleta d0afa76de6 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:11 +08:00
Huong Nguyen bc2f8102ce Merge branch 'MDL-84578_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-03-12 10:39:47 +07:00
Conn Warwicker 532ef50ed6 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:13:23 +00:00
Sara Arjona 8f4cb8c4d5 Merge branch 'MDL-84801-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-11 17:26:29 +01:00
Derek Henderson 1fc38904e1 MDL-77646 lib: Use iframe instead of object to display pdf. 2025-03-11 13:52:51 +01:00
Sara Arjona 4df87b3130 weekly release 4.4.6+ 2025-03-11 13:02:30 +01:00
Sara Arjona 551568aca2 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-03-11 13:02:29 +01:00
Huong Nguyen 3576ec553c MDL-84801 Behat: Fix Expand all fieldsets and advanced elements failure 2025-03-11 09:22:00 +07:00
AMOS bot 7b8510441f Automatically generated installer lang files 2025-03-11 00:07:52 +00:00
Conn Warwicker e7d7d84aa3 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:05:38 +00:00
Sara Arjona ec9b50b135 Merge branch 'MDL-84313-404' of https://github.com/dpalou/moodle into MOODLE_404_STABLE 2025-03-10 11:35:53 +01:00
Paul Holden aa4fce5f6a Merge branch 'MDL-84620-M404_close-recordset-in-tool_brickfield-manager-check_scheduled_areas' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2025-03-10 10:29:40 +00:00
Daniel Ziegenberg 6bf326fb9f MDL-84620 accessibility: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:41:35 +02:00
Sara Arjona 482834493e Merge branch 'MDL-84256-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2025-03-10 11:16:50 +01:00
Sara Arjona a4bd8cec97 Merge branch 'MDL-84398-404' of https://github.com/pedrojordao/moodle into MOODLE_404_STABLE 2025-03-10 11:12:16 +01:00
AMOS bot fa63ee1a8a Automatically generated installer lang files 2025-03-10 00:07:40 +00:00
Jun Pataleta f252b16672 weekly release 4.4.6+ 2025-03-08 11:44:32 +08:00
Laurent David 405a99a70b 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:16:43 +01:00
Andrew Gosali 2b5ba79954 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:59:22 +08:00
Andrew Nicols 1b50220d96 Merge branch 'MDL-81623-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-03-07 09:25:43 +08:00
Andrew Nicols ce9d97bd40 Merge branch 'MDL-84729-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-03-07 09:09:33 +08:00
Andrew Nicols 2c2aa043c9 Merge branch 'MDL-84532-404' of https://github.com/mihailges/moodle into MOODLE_404_STABLE 2025-03-07 09:08:32 +08:00
Sara Arjona 5556f401e0 Merge branch 'MDL-83720-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-03-06 14:56:02 +01:00
Andrew Nicols 5e2a70cb74 Merge branch 'MDL-84723-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-03-06 11:50:55 +08:00
Simey Lameze 6a2092db12 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:24:05 +08:00
Angelia Dela Cruz 31f09682df MDL-84723 gradingform: Behat for maximum grade mismatch in marking guide 2025-03-06 11:24:05 +08:00
Andrew Nicols 02e0fdb3fe Merge branch 'MDL-84295-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2025-03-06 09:20:09 +08:00
Andrew Nicols 244166e01d Merge branch 'MDL-75442-404' of https://github.com/StudiUM/moodle into MOODLE_404_STABLE 2025-03-06 09:12:08 +08:00
Laurent David 5ad933815c 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:10 +01:00
Andrew Nicols c111e4fe87 Merge branch 'MDL-82170-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-03-05 14:40:33 +08:00
Huong Nguyen 847068d11d Merge branch 'MDL-84425-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2025-03-05 10:51:26 +07:00
Angelia Dela Cruz b577e8d621 MDL-84425 theme_boost: Behat for course section selector unavailable 2025-03-05 11:18:09 +08:00
Daniel Ziegenberg 98ad4352a9 MDL-84624 h5p: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:35:48 +01:00
Sara Arjona df2723c6a8 weekly release 4.4.6+ 2025-03-04 16:13:47 +01:00
Sara Arjona 201f222789 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-03-04 16:13:45 +01:00
Huong Nguyen 6c4bf9098e 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:37:23 +07:00
Huong Nguyen 05682343be Merge branch 'MDL-84595-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-03-04 10:40:24 +07:00
Huong Nguyen 3d314d6d4b 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:41 +07:00
AMOS bot afdc24fc07 Automatically generated installer lang files 2025-03-02 00:08:12 +00:00
jfederico bb3e575079 MDL-84683 mdl_bigbluebuttonbn: Hide Settings for RecordingsOnly 2025-02-28 15:02:42 +00:00
Pedro Jordao 4f1662e90a 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:43:31 -03:00
Paul Holden 9e41cd6609 MDL-81623 admin: sensitive toggle when prompting for upgrade key. 2025-02-27 21:14:07 +00:00
Sara Arjona b132ff1ed8 weekly release 4.4.6+ 2025-02-27 16:54:53 +01:00
Huong Nguyen 377d56c835 Merge branch 'MDL-80351-404' of https://github.com/pedrojordao/moodle into MOODLE_404_STABLE 2025-02-27 10:13:37 +07:00
Simey Lameze 12bf1da9e5 MDL-84424 behat: add template_competencies generator and improve test 2025-02-27 07:50:03 +08:00
Angelia Dela Cruz 52fbae2907 MDL-84424 tool_lp: admin can create learning plans from template 2025-02-27 07:48:19 +08:00
Sara Arjona 5eaaf5e016 Merge branch 'MDL-84609-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-02-26 16:19:53 +01:00
Sara Arjona 045db899be Merge branch 'MDL-84584-404' of https://github.com/sh-csg/moodle into MOODLE_404_STABLE 2025-02-26 08:04:15 +01:00
Andrew Gosali d42c502516 MDL-84431 mod_forum: fix visual issue on forum reply button :focus 2025-02-26 10:14:18 +07:00
Simey Lameze 16c9172c63 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:51:14 +08:00
Angelia Dela Cruz 6b12fa32e1 MDL-84609 tool: Replaced tool_lp generators with standard generators 2025-02-25 11:51:14 +08:00
Van Binh Dang b9ce55d66d MDL-75442 quiz: Highlight error message when manually grading 2025-02-24 14:29:44 -05:00
Mihail Geshoski cdce19d0d0 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:02:06 +08:00
sam marshall 168ca6fdef MDL-83674 Files: pluginfile.php debugging if user not allowed course 2025-02-21 14:12:29 +00:00
Julien Boulen f063ef682f MDL-83136 course: Add missing value on unknowncategory exception message 2025-02-21 09:25:18 +01:00
Huong Nguyen e06475d8ae weekly release 4.4.6+ 2025-02-21 10:15:12 +07:00
Andrew Nicols f0199e8038 MDL-84595 tool_behat: Allow accessibility tests to run for a single Node 2025-02-20 22:28:03 +08:00
Jun Pataleta cca044ce15 Merge branch 'MDL-84448-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-02-20 12:10:04 +08:00
Simey Lameze a780d14710 MDL-84448 behat: return null if theme has no config 2025-02-20 12:00:42 +08:00
Amanda Doughty 3af76654fd MDL-84448 lib: Fixed behat context check for grandchild themes 2025-02-20 12:00:42 +08:00
Jun Pataleta de8176c553 Merge branch 'MDL-84592-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-02-20 11:45:39 +08:00
Huong Nguyen c6e0071808 Merge branch 'MDL-84528-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-02-20 10:16:54 +07:00
Jun Pataleta 04b0132b3a Merge branch 'MDL-84590-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-02-20 10:49:58 +08:00
Andrew Nicols 6e3cb19969 MDL-84592 tool_behat: Improve accessibility failure information 2025-02-20 10:26:30 +08:00
Andrew Nicols 8ca7f282bc 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:48 +08:00
Stefan Hanauska 33e58ab61a MDL-84584 badges: Don't delete all draft files 2025-02-19 12:16:26 +01:00
Sara Arjona 1d40ca9de8 Merge branch 'MDL-83784_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-02-19 12:00:29 +01:00
Huong Nguyen c0f24543fc MDL-84341 qbank_history: Behat cleanup 2025-02-18 20:41:00 +07:00
Huong Nguyen fe0c832dcd Merge branch 'MDL-84341_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-02-18 20:40:42 +07:00
Sara Arjona b19296b629 Merge branch '84348-hide-h5p-preview-message-404' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_404_STABLE 2025-02-18 13:12:19 +01:00
Andrew Nicols c98be745f5 MDL-84446 core: Check existence of pcntl_signal 2025-02-18 06:20:51 +08:00
Conn Warwicker 6a34598550 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:46:48 +00:00
Jun Pataleta 9508120293 weekly release 4.4.6+ 2025-02-14 09:53:52 +08:00
Jun Pataleta 0891666ec7 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-02-14 09:53:49 +08:00
Conn Warwicker 17c3e8ecc8 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-13 15:48:22 +00:00
Paul Holden c6a31786f7 MDL-84528 tag: define missing language string for related tags area. 2025-02-13 15:04:01 +00:00
Pedro Jordao eb0342fa4f 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:49 -03:00
Huong Nguyen da47f4dafb Merge branch 'MDL-83579-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-02-13 11:11:47 +07:00
Jun Pataleta 8cc95faa8a Merge branch 'mdl-83306_404' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2025-02-13 11:54:59 +08:00
Jun Pataleta d5ba48ab32 Merge branch 'MDL-84102-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2025-02-13 11:48:59 +08:00
Huong Nguyen d7c719f597 Merge branch 'MDL-83645-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-02-13 10:43:09 +07:00
Huong Nguyen 1145b31059 Merge branch 'MDL-69142-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-02-13 10:33:46 +07:00
Huong Nguyen 90ebc61746 Merge branch 'MDL-79265-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2025-02-13 09:15:54 +07:00
Simmo Saan 650efc4ff7 MDL-65233 course: remove usergetmidnight from reset time shift 2025-02-12 21:56:35 +02:00
Simmo Saan 51f425ec29 MDL-65233 course: add reset time shift test with non-midnight hour 2025-02-12 21:56:35 +02:00
Angelia Dela Cruz bec6456309 MDL-84102 message: Behat for setting default notification preferences 2025-02-12 15:35:21 +08:00
Huong Nguyen 3a9fd31020 Merge branch 'MDL-83452-addbodyclass-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2025-02-12 11:31:13 +07:00
Huong Nguyen f7f8b14c3e Merge branch 'MOODLE_404_MDL-82601' of https://github.com/danielneis/moodle into MOODLE_404_STABLE 2025-02-11 11:46:45 +07:00
Huong Nguyen 298a3f5107 Merge branch 'MDL-82440-MOODLE_404_STABLE' of https://github.com/praxisdigital/moodle into MOODLE_404_STABLE 2025-02-11 11:39:36 +07:00
Huong Nguyen 70efbd07af Merge branch 'MDL-84414-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2025-02-11 11:17:44 +07:00
Angelia Dela Cruz 5b90cc9653 MDL-84414 gradingform_guide: Behat test to set marking guide as ready 2025-02-11 11:02:45 +08:00
AMOS bot b0423acc58 Automatically generated installer lang files 2025-02-11 00:09:19 +00:00
Paul Holden c275ca43c9 MDL-69142 tool_cohortroles: fix table ordering by role name. 2025-02-10 12:34:09 +00:00
Sara Arjona 746a17f9b0 Merge branch 'MDL-67462-404' of https://github.com/albertgasset/moodle into MOODLE_404_STABLE 2025-02-10 09:38:49 +01:00
Sara Arjona 56a037e766 Moodle release 4.4.6 2025-02-07 12:18:26 +01:00
Katie Ransom d4f2a8b417 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:32:58 +00:00
Albert Gasset eb18a07be2 MDL-67462 badges: Improve tests of external functions 2025-02-07 09:13:05 +01:00
Albert Gasset e0930fce1e MDL-67462 badges: Fix badge alignments returned in external functions 2025-02-07 09:13:05 +01:00
Sara Arjona f0dd12e3b1 weekly release 4.4.5+ 2025-02-06 16:21:48 +01:00
Hieu Nguyen Dang 488a48e5f1 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:21:15 +07:00
Jun Pataleta b98cd94144 Merge branch 'MDL-83794-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-02-06 17:09:56 +08:00
Andrew Nicols fbb5b80781 MDL-83794 editor_tiny: Explicitly list MathML content 2025-02-06 13:50:54 +08:00
Andrew Nicols 6adb349e04 MDL-83794 editor_tiny: Fix typo in style name 2025-02-06 13:50:43 +08:00
Jun Pataleta e689669087 Merge branch 'MDL-81829-fix-pretty-whoops-MOODLE_404_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_404_STABLE 2025-02-06 12:20:17 +08:00
Jun Pataleta d6ada8d0db Merge branch 'MDL-72080-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-02-06 11:36:52 +08:00
Laurent David 5c05b1104e 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:01 +08:00
Paul Holden 81d8bf30ec MDL-84003 mod_glossary: capability check restoring trusted entry text. 2025-02-06 10:51:42 +08:00
Paul Holden d3cdeeff2b MDL-84145 report_loglive: format event description as plain text. 2025-02-06 09:44:27 +07:00
Huong Nguyen 86d6a59dc1 Merge branch 'MDL-83635-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2025-02-06 08:46:00 +07:00
Brendan Heywood de65f0f62b MDL-81829 core: Fix early bootstrap bug with whoops 2025-02-06 09:36:03 +11:00
Paul Holden ddf3665d9c MDL-82170 user: replace increment operator on string type variable. 2025-02-05 20:10:33 +00:00
Leon Stringer 045669a9bf 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:13:02 +01:00
Sara Arjona 0f5a96ff3e Merge branch 'MDL-80848-404' of https://github.com/andrewgos/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Jun Pataleta 7ce74ac844 Merge branch 'MDL-83753_404_STABLE' of https://github.com/djarran/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Jun Pataleta 400adb0717 Merge branch 'mdl-83695_404' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Sara Arjona 080f51b546 Merge branch 'MDL-67683-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Huong Nguyen 03bf0094d6 Merge branch 'mdl-83690_404' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Huong Nguyen b659d83c7e Merge branch 'MDL-83650-404_fix_ods_cell' of https://github.com/Cl3mensM/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
Jun Pataleta c5b12b8434 Merge branch 'MDL-83809-m404' of https://github.com/sammarshallou/moodle into MOODLE_404_STABLE 2025-02-05 18:13:02 +01:00
sam marshall 25641fd188 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:59:06 +00:00
james-cnz cbe7511ab9 MDL-83695 backup: Add space before course Restores in progress heading 2025-02-05 00:15:30 +13:00
Paul Holden 21b1e38161 MDL-84239 badges: correct context check when disabling badge. 2025-02-04 15:19:58 +08:00
David Woloszyn 8b936d2c59 MDL-84136 filter_tex: Improve sanitization of forbidden items 2025-02-04 11:35:46 +07:00
Mark Johnson e2544e97bf MDL-84146 question: Improve handling of JS parameters 2025-02-03 12:11:18 +00:00
meirzamoodle b702448816 MDL-84023 lib: Update requirejs to 2.3.7 2025-02-03 12:11:18 +00:00
Marina Glancy e4a814847d MDL-83941 tags: prevent users from browsing unsearchable collections 2025-02-03 12:11:18 +00:00
Mihail Geshoski 4eea25dc73 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-03 12:11:18 +00:00
Sara Arjona 79e95b9c98 Merge branch 'MDL-82679-404-fix' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2025-02-03 13:08:09 +01:00
ferran 5ad11fffa8 MDL-82679 course: fixing sections collapse steps 2025-02-03 11:49:18 +01:00
Jun Pataleta 0088376633 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:56 +08:00
Jun Pataleta e14f48ea61 MDL-67683 behat: Add accessibility test for the maintenance mode layout 2025-02-03 15:55:56 +08:00
Jun Pataleta b227c46f5f 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:56 +08:00
Jun Pataleta bcbc1e4ccc 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:55 +08:00
Jun Pataleta e757bec9f8 MDL-67683 theme: Set page heading in a header landmark for secure layout 2025-02-03 15:55:55 +08:00
Jun Pataleta 3f8defcc19 MDL-67683 auth: Test login page accessibility with axe best-practice tag 2025-02-03 15:55:55 +08:00
Jun Pataleta d9ad34cb1d MDL-67683 behat: Update xpath selector for #region-main 2025-02-03 15:55:55 +08:00
Jun Pataleta 070a61b84a 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:55 +08:00
Jun Pataleta 4f6733acfc 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:54 +08:00
Jun Pataleta 000e5b2381 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:54 +08:00
Jun Pataleta 80963c3d4f 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:19 +08:00
Huong Nguyen e2259ad35f Merge branch 'MDL-81478-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-02-03 09:32:34 +07:00
Huong Nguyen 07496fe189 Merge branch 'MDL-83794-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-02-03 09:20:49 +07:00
Sara Arjona 60c4a31809 Merge branch 'mdl-82679_404_wip' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2025-01-31 16:01:39 +01:00
Sara Arjona 854d8c248e Merge branch 'MDL-84321-404-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_404_STABLE 2025-01-31 15:42:50 +01:00
Jun Pataleta af4b548211 Merge branch 'MDL-82542-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2025-01-31 12:43:36 +08:00
Huong Nguyen 1c7ac7057b weekly release 4.4.5+ 2025-01-31 09:20:35 +07:00
Huong Nguyen a55ef4111e Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-01-31 09:20:32 +07:00
James C afa14a570a MDL-82679 course: Prevent collapsable sections conflicting 2025-01-30 22:30:00 +13:00
Huong Nguyen 6b1f83664e Merge branch 'MDL-79281_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-01-30 11:13:41 +07:00
Huong Nguyen 609c94d3d9 Merge branch 'MDL-84103-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2025-01-30 11:10:13 +07:00
Huong Nguyen 803cba0ab5 Merge branch 'MDL-84095-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-01-30 10:51:20 +07:00
Huong Nguyen db44196363 Merge branch 'MDL-84275-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-30 10:27:55 +07:00
Angelia Dela Cruz 7105bd2b60 MDL-84103 imscc: Behat test for import IMS Cartridge to course 2025-01-30 10:37:54 +08:00
Huong Nguyen 4ce8e8361d Merge branch 'MDL-83297-maxgradesperpage-404' of https://github.com/dragos5436/moodle into MOODLE_404_STABLE 2025-01-30 09:29:09 +07:00
Huong Nguyen 29c6c98cee Merge branch 'MDL-84323-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2025-01-30 09:20:35 +07:00
Clemens 4af5a3334f MDL-83650 odslib: Add variable to class MoodleODSCell 2025-01-30 00:36:18 +01:00
james-cnz 5863d457ae MDL-83690 course: Fix course index label links 2025-01-30 10:37:13 +13:00
Sara Arjona faf6c8bf88 Merge branch 'MDL-84264-404' of https://github.com/pmaneggia/moodle into MOODLE_404_STABLE 2025-01-29 16:53:04 +01:00
Sara Arjona c1e8f835d7 Merge branch 'MDL-84243-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2025-01-29 16:47:45 +01:00
Sara Arjona 5dc97f0d3b Merge branch 'MDL-84129-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-29 08:50:14 +01:00
Sara Arjona ef550e346a Merge branch 'MDL-84214-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-29 08:39:32 +01:00
Sara Arjona dcc038b0ec Merge branch 'MDL-84148-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-29 08:30:22 +01:00
Sara Arjona babc113f5a Merge branch 'MDL-79819_404' of https://github.com/jonof/moodle into MOODLE_404_STABLE 2025-01-29 08:18:42 +01:00
Sara Arjona 70a4c4a855 Merge branch 'MDL-84355-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-01-29 08:09:58 +01:00
Sara Arjona f8295a0a91 Merge branch '83617-fix-grader-report-url-404' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_404_STABLE 2025-01-29 08:00:56 +01:00
Sara Arjona 94671a1ad3 Merge branch 'MDL-83152-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-29 07:49:34 +01:00
Andrew Nicols 61c159565d MDL-84355 phpunit: Exclude fixtures from testsuite search 2025-01-29 11:46:02 +08:00
Andrew Nicols 756b823873 MDL-84355 phpunit: Correct test path for component configs 2025-01-29 11:46:01 +08:00
David Mudrák aa036f8f2d MDL-84321 lang: Use the fixed strings in tests, too 2025-01-28 20:58:49 +01:00
Helen Foster 51af4b62e6 MDL-84321 lang: Import fixed English strings (en_fix) 2025-01-28 20:55:25 +01:00
Paul Holden ca0c71ed9a 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:38 +00:00
Julien Boulen 0f75ce3ebf MDL-84348 h5pactivity: Hide preview mode warning for guest users 2025-01-28 12:00:05 +01:00
Huong Nguyen 01f65cb442 Merge branch 'MDL-83079-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-01-28 17:04:47 +07:00
Frederik Milling Pytlick bc75c60a0d MDL-83079 core: Make signal handlers run during non CLI scripts 2025-01-28 16:50:55 +07:00
Jun Pataleta 0428108f77 Merge branch 'MDL-81195-404' of https://github.com/martygilbert/moodle into MOODLE_404_STABLE 2025-01-28 10:53:18 +08:00
AMOS bot e3c9b1782b Automatically generated installer lang files 2025-01-28 00:07:46 +00:00
ferran 329eeab4a8 MDL-84243 core_courseformat: fix course index completion icon 2025-01-27 17:24:34 +01:00
Sara Arjona 8eefbaeb1a 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:49 +01:00
Paul Holden 0df63ca7da MDL-83720 tag: correct description formatting component/filearea. 2025-01-24 12:52:22 +00:00
Jun Pataleta b2e8267f28 Merge branch 'MDL-83989-404' of https://github.com/clransom/moodle into MOODLE_404_STABLE 2025-01-24 15:52:34 +08:00
Marty 898f075788 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:48:22 -05:00
Sara Arjona c5d94d21f2 weekly release 4.4.5+ 2025-01-23 17:35:02 +01:00
Sara Arjona 83ef24ea9d Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-01-23 17:35:00 +01:00
Katie Ransom b79da43ed9 MDL-83989 file upload: Filemanager breaks if you drop file outside of it 2025-01-23 16:27:34 +00:00
Dani Palou 1a3e762198 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:18 +01:00
Huong Nguyen efbbed5c91 Merge branch 'MDL-83751-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-23 10:48:47 +07:00
Huong Nguyen 589d84fb63 Merge branch 'MDL-81685_matrix_homeserver_name_404' of https://github.com/mark-webster-catalyst/moodle into MOODLE_404_STABLE 2025-01-23 09:17:23 +07:00
Huong Nguyen e9efe724c5 Merge branch 'MDL-84101-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-01-23 09:09:30 +07:00
Huong Nguyen c3b83ea5ef Merge branch 'MDL-84249-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-01-23 09:02:46 +07:00
Simey Lameze 3e72128eda MDL-84101 behat: add step to save changes
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-01-23 07:26:16 +08:00
Huong Nguyen 6a0030b42d Merge branch 'MDL-78365-404' of https://github.com/pedrojordao/moodle into MOODLE_404_STABLE 2025-01-22 15:11:32 +07:00
Angelia Dela Cruz c1b740031d MDL-84101 message: Behat test for managing notification options 2025-01-22 15:50:26 +08:00
Andrew Gosali 00f653d756 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:08 +07:00
Andrew Nicols a3cac367ce MDL-83794 editor_tiny: Add SVG support 2025-01-22 11:41:53 +08:00
Andrew Nicols 416317aa71 MDL-83794 editor_tiny: Add support for MathML 2025-01-22 11:41:45 +08:00
Paul Holden 974fc76672 MDL-84275 factor_totp: format site fullname for authenticator setup. 2025-01-21 21:36:23 +00:00
dragos5436 19f8007d0e 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:46:40 +00:00
Mark Webster fd6d8a582e 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:38 +00:00
Huong Nguyen d8c0d9d91d Merge branch 'MDL-84111-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2025-01-21 09:32:47 +07:00
Huong Nguyen 8eecfce1f9 Merge branch 'MDL-82722_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-01-21 09:06:46 +07:00
Huong Nguyen a16e81a3fe Merge branch 'MDL-82237_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2025-01-21 08:58:15 +07:00
Paola Maneggia 0081e95baf MDL-84264 backup: encode and decode urls for the new course section page 2025-01-20 19:05:29 +01:00
Sara Arjona 64f2292294 Merge branch 'MDL-81043-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-01-20 16:03:35 +01:00
Conn Warwicker 03af18d503 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:16:28 +00:00
Mark Johnson dcc42cf288 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:48:02 +00:00
Julien Boulen bb669f4504 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 3dbec6c9f8 MDL-84249 behat: remove unnecessary javascript tag
This commit also make the repeated scenario names unique.
2025-01-20 14:00:05 +08:00
Jun Pataleta c314471845 Merge branch 'MDL-83750-404' of https://github.com/raortegar/moodle into MOODLE_404_STABLE 2025-01-20 10:24:18 +08:00
Jun Pataleta 29e22d2b11 Merge branch 'MDL-83814-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-01-20 09:58:11 +08:00
Jonathon Fowler 0a8243000f MDL-79819 assignfeedback_editpdf: safely handle bad jpg->pdf conversion 2025-01-20 08:42:24 +10:00
Paul Holden 75d85f4ef4 MDL-84214 mod_bigbluebuttonbn: fix default presentation file serving. 2025-01-17 12:29:07 +00:00
Paul Holden fec551a29b MDL-83152 mod_glossary: fix chronological sorting of pending entries. 2025-01-17 10:26:11 +00:00
Jun Pataleta c53ea9148f Merge branch 'MDL-83341-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2025-01-17 17:01:10 +08:00
Huong Nguyen 3ea5feff62 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:59 +07:00
Luca Bösch 002eb8eb36 MDL-84111 qtype_ddimageortext: keep item type, file and text together. 2025-01-17 08:53:43 +01:00
AMOS bot c2ee302fb0 Automatically generated installer lang files 2025-01-17 00:07:51 +00:00
Paul Holden 9a8e896f66 MDL-83751 check: remove non-functional result class method. 2025-01-16 17:40:13 +00:00
Paul Holden 5b8a7b7d73 MDL-83579 tiny_media: pass filepicker accepted types to dropzone. 2025-01-16 17:37:59 +00:00
Huong Nguyen ddc7c93a3c weekly release 4.4.5+ 2025-01-16 23:46:45 +07:00
Huong Nguyen 1485574d2e Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-01-16 23:46:42 +07:00
Jun Pataleta 666ae9685c Merge branch 'MDL-80468-factorpage-44' of https://github.com/bwalkerl/moodle into MOODLE_404_STABLE 2025-01-16 12:25:52 +08:00
Jun Pataleta 4e4a767b2f Merge branch 'MDL-83826-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2025-01-16 10:22:06 +08:00
Conn Warwicker 9a4b282cac MDL-82772 mod_quiz: Update context when random question is updated. 2025-01-15 13:16:46 +00:00
Jun Pataleta e55d6ba449 Merge branch 'MDL-83172-404-test' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-01-15 17:02:20 +08:00
Sara Arjona fe4f0952d8 Merge branch 'MDL-83995-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-15 08:29:11 +01:00
Angelia Dela Cruz 147f276a1d MDL-83826 core_admin: Behat coverage for plugins overview for admins 2025-01-15 14:02:39 +08:00
Sara Arjona d1917aa733 Merge branch 'MDL-83630-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-14 11:53:40 +01:00
Sara Arjona e98adf16ef Merge branch 'MDL-83183-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2025-01-14 10:59:23 +01:00
meirzamoodle 2c61186716 MDL-83172 environment: Fix undefined array key error 2025-01-14 16:34:32 +07:00
meirzamoodle b244f300f5 MDL-83172 environment: Remove Oracle from LMS 2025-01-14 16:34:32 +07:00
Jun Pataleta 0763a2818a Merge branch 'MDL-84124-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2025-01-14 11:12:29 +08:00
Huong Nguyen 7b4b1bc8c4 Merge branch 'MDL-83831-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2025-01-14 09:01:24 +07:00
AMOS bot f59e9e5075 Automatically generated installer lang files 2025-01-14 00:07:39 +00:00
Paul Holden 3b5b747bf0 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:05:01 +00:00
Pedro Jordao 52337aa5a5 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:38 -03:00
raortegar ea50d0b151 MDL-83750 core_form: Fix deprecated preg_replace in form 2025-01-13 15:05:08 +01:00
Daniel Neis Araujo 402ea0f8d2 MDL-82601 scorm: score not being stored when force complete is used 2025-01-13 09:56:54 -03:00
Jun Pataleta 9f3fee7b4f Merge branch 'MDL-83832-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2025-01-13 15:50:47 +08:00
Andrew Nicols 1a627c76ae MDL-83814 core: Bump Node to latest LTS 2025-01-13 09:07:08 +08:00
AMOS bot a854dfc52f Automatically generated installer lang files 2025-01-13 00:07:46 +00:00
Benjamin Walker 59591eb4b0 MDL-80468 tool_mfa: Allow loading factor defined externalpages correctly 2025-01-10 21:14:50 +10:00
Andrew Nicols 99aac9532a MDL-84152 tests: Remove extraneous / in external file URL generation 2025-01-10 14:48:18 +08:00
Paul Holden b8120879e1 MDL-84148 tool_lp: clarify the primary save action of scales dialogue. 2025-01-09 18:29:14 +00:00
Paul Holden 56a109d2c3 MDL-83645 grade: fix text formatting in external grading form method. 2025-01-09 14:52:08 +00:00
Sara Arjona a843eab495 weekly release 4.4.5+ 2025-01-09 15:21:55 +01:00
Sara Arjona cd4526e074 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-01-09 15:21:52 +01:00
meirzamoodle 5e4ee44064 MDL-84095 tiny_recordrtc: Shows error toast for failures 2025-01-09 15:57:00 +07:00
Huong Nguyen cca3aa9d64 Merge branch 'MDL-77185-diskfreespace-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2025-01-09 10:13:27 +07:00
hieuvu 5728b158e6 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:28 +07:00
Jun Pataleta b74a075f06 Merge branch 'MDL-82769_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-01-09 10:16:31 +08:00
AMOS bot 61075feacd Automatically generated installer lang files 2025-01-09 00:09:58 +00:00
Andrew Nicols 0a609e28f8 MDL-84124 cache: Purge Redis cache between tests 2025-01-09 08:00:43 +08:00
Paul Holden 47d187ddf6 MDL-83995 mod_glossary: support export/import of entry trusted text. 2025-01-08 13:44:27 +00:00
Khoa Nguyen c737a3824e MDL-83831 core_question: Reset columns on history page causes confusion 2025-01-08 13:36:23 +07:00
sarjona 518897961a MDL-83917 core: Move upgradenotes to upgrade.txt 2025-01-08 07:25:20 +01:00
sarjona 4392036ba0 Merge branch 'MDL-83917-404' of https://github.com/pedrojordao/moodle into MOODLE_404_STABLE 2025-01-08 07:16:36 +01:00
meirzamoodle dfef6244e9 MDL-81478 atto_recordrtc: Add webm audio support as a fallback
Co-authored-by: Djarran Cotleanu <djarrancotleanu@catalyst-au.net>
2025-01-08 12:53:34 +07:00
meirzamoodle a1437fd754 MDL-81478 tiny_recordrtc: Add webm audio support as a fallback
Co-authored-by: Djarran Cotleanu <djarrancotleanu@catalyst-au.net>
2025-01-08 12:53:34 +07:00
Huong Nguyen 88f5d8ee4d Merge branch 'MDL-84008-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2025-01-08 09:41:27 +07:00
Huong Nguyen c33711e7d3 Merge branch 'MDL-79122_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2025-01-08 09:26:44 +07:00
Pedro Jordao ea6d8984ba 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:22:34 -03:00
AMOS bot f24ef9c6fd Automatically generated installer lang files 2025-01-08 00:07:43 +00:00
sarjona 7dd7955bad Merge branch 'MDL-83746-404' of https://github.com/srobotta/moodle into MOODLE_404_STABLE 2025-01-07 14:50:11 +01:00
sarjona 266b18f42f Merge branch 'MDL-82788-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2025-01-07 14:15:02 +01:00
Conn Warwicker 6b7e0041ee 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:21:57 +00:00
Jun Pataleta d313e901f4 Merge branch 'MDL-83668-404' of https://github.com/srobotta/moodle into MOODLE_404_STABLE 2025-01-07 13:56:46 +08:00
Conn Warwicker fb9e208703 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:03 +00:00
meirzamoodle b1732ce439 MDL-82788 theme_boost: Obtain the correct Tiny and Atto editor elements 2025-01-06 20:27:27 +07:00
Luca Bösch d5e003d8bc MDL-84008 qtype_match: keep question and answer together. 2025-01-06 13:37:16 +01:00
Luca Bösch 6b11c30774 MDL-84008 qtype_calculated: glue formula, tolerance, display, feedback. 2025-01-06 13:37:16 +01:00
Luca Bösch edd55a9171 MDL-84008 qtype_multichoice: keep choice, grade and feedback together. 2025-01-06 13:37:16 +01:00
Stephan Robotta e25296bd61 MDL-83746 navigation: check host and path for active flag in custom menu 2025-01-06 08:32:06 +01:00
Stephan Robotta 9f467c9a00 MDL-83668 tiny: customize allowed HTML tags and attributes 2025-01-06 08:31:56 +01:00
Jun Pataleta 32667ab162 Merge branch 'MDL-83835-404' of https://github.com/raortegar/moodle into MOODLE_404_STABLE 2025-01-06 13:14:56 +08:00
Huong Nguyen 7bf1f87415 weekly release 4.4.5+ 2025-01-03 13:54:12 +07:00
Huong Nguyen 10a6d148fd Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2025-01-03 13:54:09 +07:00
Khoa Nguyen 246d1fcd32 MDL-83832 core_question: Links to question history may show blank page 2025-01-03 13:50:05 +07:00
AMOS bot d688c34fba Automatically generated installer lang files 2025-01-01 00:07:52 +00:00
Leon Stringer 3b6e1ac581 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:32:47 +00:00
Huong Nguyen ffe2149889 Merge branch 'MDL-66129-404' of https://github.com/rhell4/moodle into MOODLE_404_STABLE 2024-12-30 09:41:11 +07:00
AMOS bot 417d9cd5f5 Automatically generated installer lang files 2024-12-25 00:23:03 +00:00
Huong Nguyen 8ba245a89d Merge branch 'MDL-83159-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-12-24 09:42:38 +07:00
Huong Nguyen 9da4a23e14 Merge branch 'MDL-83988-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-12-24 09:29:52 +07:00
Shamim Rezaie 1fe2dcfbc5 Merge branch 'MDL-83005-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-12-23 06:03:11 +11:00
AMOS bot 41e480dd05 Automatically generated installer lang files 2024-12-22 00:08:05 +00:00
AMOS bot a73e9f5af7 Automatically generated installer lang files 2024-12-21 00:07:37 +00:00
Luca Bösch 84cf584796 MDL-83159 mod_quiz: Use format_string for course and quiz name. 2024-12-20 13:41:19 +01:00
AMOS bot 232ae785db Automatically generated installer lang files 2024-12-20 00:07:42 +00:00
Jun Pataleta a9f2dd8d4a weekly release 4.4.5+ 2024-12-19 20:08:18 +08:00
Jun Pataleta 29e6c7b58a Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-12-19 20:08:16 +08:00
djarrancotleanu 15e14140ef MDL-83753 cachestore_redis: Allow for configurable connection timeout 2024-12-19 14:23:59 +10:00
djarrancotleanu 5add10950f MDL-83753 redis: Allow for configurable max retries setting 2024-12-19 14:23:54 +10:00
Huong Nguyen 10f47d3811 Merge branch 'MDL-83940-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-19 10:40:47 +07:00
Huong Nguyen dbf7ee97d0 Merge branch 'MDL-82697-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-19 10:21:36 +07:00
Andrew Nicols c61f7e4459 Merge branch 'MDL-63802-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-12-19 09:20:06 +08:00
djarrancotleanu 48aca139b3 MDL-83753 redis: Set connection and read timeouts to configurable value 2024-12-19 10:33:26 +10:00
Jun Pataleta f30e39a586 Merge branch 'MDL-84026-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-12-18 13:24:26 +08:00
Jun Pataleta 00adbc39f1 Merge branch '79121-normalize-proxy-bypass-404' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_404_STABLE 2024-12-18 10:56:08 +08:00
Andrew Nicols cb755080ef MDL-84026 core: Update GitHub Funding to point to fund.moodle.org 2024-12-18 10:45:57 +08:00
Huong Nguyen 29076b3859 Merge branch 'MDL-84000-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-18 09:05:02 +07:00
Sara Arjona 276c7160a4 Merge branch 'MDL-83807-404' of https://github.com/clransom/moodle into MOODLE_404_STABLE 2024-12-17 17:06:33 +01:00
Lars Bonczek 0e9b826517 MDL-81655 theme: Fix maintenance warning positioning 2024-12-17 13:07:13 +01:00
Sara Arjona d490c2b988 Merge branch 'MDL-81952-404' of https://github.com/srobotta/moodle into MOODLE_404_STABLE 2024-12-17 13:01:32 +01:00
Jun Pataleta 2e98e0f101 Merge branch 'MDL-83377-404' of https://github.com/sh-csg/moodle into MOODLE_404_STABLE 2024-12-17 19:54:09 +08:00
Jun Pataleta 1334a9ef95 Merge branch 'MDL-83593_404' of https://github.com/lostrogit/moodle into MOODLE_404_STABLE 2024-12-17 19:32:59 +08:00
Carlos Castillo 9bfe24cc87 MDL-83593 theme_boost: Fix navbar site logo link 2024-12-17 11:21:43 +01:00
Sara Arjona 18fcb17067 Merge branch 'MDL-83696-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-12-17 07:41:57 +01:00
Angelia Dela Cruz b55d4c68d7 MDL-83696 core_tag: Added behat for book chapter and glossary entry tags 2024-12-17 10:08:48 +08:00
Paul Holden e93e62f241 MDL-83183 mod_bigbluebuttonbn: consistent order in activity index. 2024-12-16 21:02:31 +00:00
hieuvu a86b1088b3 MDL-82273 core_question: Fix behat failed 2024-12-16 18:50:45 +01:00
Julien Boulen fde3b64046 MDL-79121 lib: Improve the dataset for is_proxybypass_provider() 2024-12-16 15:55:58 +01:00
Julien Boulen 945a1404b0 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
Stefan Hanauska 6586175de0 MDL-83377 repository_local: Missing options for searching 2024-12-16 06:26:54 +01:00
Huong Nguyen aa14fb7444 Merge branch 'MDL-79268-404' of https://github.com/danghieu1407/moodle into MOODLE_404_STABLE 2024-12-16 10:56:06 +07:00
Huong Nguyen 088fa6b3ef Merge branch 'MDL-82273-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2024-12-16 10:02:17 +07:00
Huong Nguyen e30c70a93d Merge branch 'MDL-75075-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2024-12-16 09:52:08 +07:00
Huong Nguyen 252eceba0b Merge branch 'MDL-83493-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-12-16 09:00:22 +07:00
AMOS bot 3e666415b7 Automatically generated installer lang files 2024-12-15 00:08:21 +00:00
Stephan Robotta daffe8b826 MDL-81952 questions: Fix warning in export of multitype 2024-12-14 13:06:37 +01:00
Paul Holden a0f26a114f MDL-84000 reportbuilder: move testcase helper to autoloaded namespace.
Clean up some class imports while we're at it.
2024-12-13 10:16:29 +00:00
Luca Bösch 0ed18ff37c MDL-63802 theme_classic: ARIA label in nav for secure layout 2024-12-13 08:21:15 +01:00
danghieu1407 de73df3764 MDL-79268 questions: Show version numbers in delete confirmation 2024-12-13 13:32:20 +07:00
Huong Nguyen ce0193fcde weekly release 4.4.5+ 2024-12-13 08:58:27 +07:00
Huong Nguyen 03d10e4c8f Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-12-13 08:58:24 +07:00
hieuvu b3586c31bd MDL-82273 core_question: get correct category for question bank view 2024-12-12 13:22:45 +07:00
Paul Holden 7cdb3538eb 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:47:02 +00:00
Andrew Nicols b9fe6d942f MDL-83988 core: Hide common machine-read files 2024-12-11 23:35:45 +08:00
Katie Ransom 408383f20d MDL-83807 files: Make file_get_all_files_in_draftarea return zip files 2024-12-11 14:11:57 +00:00
Amaia Anabitarte e10420df88 MDL-83807 h5p: Return a default valid H5P 2024-12-11 14:11:57 +00:00
Jun Pataleta cb472bf77c Merge branch 'MDL-81520-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-12-11 13:41:28 +08:00
Andrew Nicols 5b03e6e38c MDL-81520 mod_assign: Update tests to not extend assign_provider test 2024-12-11 12:30:22 +08:00
Andrew Nicols 55126be4ad MDL-81520 core: Fix test finality 2024-12-11 12:30:21 +08:00
AMOS bot 8f563111dd Automatically generated installer lang files 2024-12-11 00:07:45 +00:00
Khoa Nguyen f21b4d5b25 MDL-75075 quiz: Show question tags as non-links to avoid errors 2024-12-10 13:52:35 +07:00
Khoa Nguyen 0516293b0c MDL-75075 core_tag: Add an option to render tag lists without links 2024-12-10 13:52:02 +07:00
Huong Nguyen f50e51b625 Merge branch 'MDL-81115_404' of https://github.com/cwarwicker/moodle into MOODLE_404_STABLE 2024-12-10 09:18:30 +07:00
AMOS bot e6dff5b8b7 Automatically generated installer lang files 2024-12-10 00:07:46 +00:00
Sara Arjona befe9e31fb Merge branch 'MDL-75750-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-12-09 16:18:51 +01:00
Sara Arjona 43c9b69f16 Merge branch 'MDL-81841-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-12-09 16:16:36 +01:00
Frederik Milling Pytlick 0d8b41f727 MDL-82440 assignfeedback_editpdf: Force ghostscript pdf's to pdf v1.4 2024-12-09 15:46:28 +01:00
Laurent David a9ba677492 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:22 +01:00
Huong Nguyen 520707ef71 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:18 +07:00
James C ee87a1bcac MDL-83306 book: Book section return fix 2024-12-09 10:18:08 +13:00
AMOS bot de7c6f24d6 Automatically generated installer lang files 2024-12-08 00:08:02 +00:00
Conn Warwicker 1404ae7ed4 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:40 +00:00
Paul Holden d1834b1fdf MDL-83940 comment: fix collapse/loading icons in comment container. 2024-12-06 10:53:38 +00:00
David Woloszyn 43410fa170 MDL-83005 tool_usertours: Fixed animating scroll on Boost tours 2024-12-04 16:14:19 +11:00
David Woloszyn 9f3398261c 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:19 +11:00
raortegar 77f7082c03 MDL-83835 lib: PEAR - passing null to str functions is deprecated 2024-12-02 13:13:01 +01:00
Paul Holden 493e23ae12 MDL-83630 theme_boost: vertically align submenu navigation icon. 2024-11-25 09:49:38 +00:00
Amaia Anabitarte acfa4c5a07 MDL-75750 theme: Round login frame in small viewport 2024-11-20 16:16:57 +01:00
Mikel Martín de05373739 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:28 +01:00
Rossco Hellmans 78be42a88e 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:41:32 +10:00
Leon Stringer 9567305f70 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:44:14 +01:00
2230 changed files with 13353 additions and 5270 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"]
+1 -1
View File
@@ -1 +1 @@
lts/iron
lts/jod
+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;
+2 -3
View File
@@ -4327,6 +4327,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>
@@ -4522,6 +4523,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>
@@ -4714,7 +4716,6 @@
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
@@ -4892,8 +4893,6 @@
</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>
+1 -1
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.
+1 -1
View File
@@ -25,7 +25,7 @@ namespace core_adminpresets;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass helper
*/
class helper_test extends \advanced_testcase {
final class helper_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -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.
@@ -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.
@@ -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.
+1 -1
View File
@@ -28,7 +28,7 @@ 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.
*/
@@ -30,7 +30,7 @@ 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().
+2 -1
View File
@@ -2180,10 +2180,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',
+1 -1
View File
@@ -26,7 +26,7 @@ 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 {
final class preset_test extends \advanced_testcase {
public function test_xml(): void {
global $DB;
+1 -1
View File
@@ -40,7 +40,7 @@ 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.
@@ -20,13 +20,8 @@ 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
+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'),
+2
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");
}
}
@@ -0,0 +1,40 @@
@core @core_admin
Feature: Plugins overview page
In order to manage plugin and settings
As an admin
I can access the plugins overview page
Background:
Given I am logged in as "admin"
And I navigate to "Plugins > Plugins overview" in site administration
Scenario: An administrator can view plugins overview page
Then "Plugins overview" "text" should exist
And "Check for available updates" "button" should exist
And "All plugins" "link" should exist
And "Additional plugins" "link" should exist
Scenario: An administrator can access list of activities when activity modules cog icon is pressed
When I click on "Settings" "link" in the "Activity modules" "table_row"
Then "Activities" "text" should exist
And "Manage activities" "text" should exist in the ".breadcrumb" "css_element"
And "Activity modules" "link" should exist in the ".breadcrumb" "css_element"
Scenario: An administrator can access plugin settings
When I click on "Settings" "link" in the "Assignment" "table_row"
Then "Assignment settings" "text" should exist
And "Assignment settings" "text" should exist in the ".breadcrumb" "css_element"
And "Assignment" "link" should exist in the ".breadcrumb" "css_element"
And "Activity modules" "link" should exist in the ".breadcrumb" "css_element"
Scenario: Plugins with dependencies cannot be uninstalled
When I navigate to "Plugins > Plugins overview" in site administration
Then "Uninstall" "link" should not exist in the "Database" "table_row"
And "Required by: filter_data" "text" should exist in the "Database" "table_row"
Scenario: Cancelling plugin uninstall does not uninstall the selected plugin
When I click on "Uninstall" "link" in the "Assignment" "table_row"
Then "Uninstalling Assignment" "text" should exist
And "You are about to uninstall the plugin Assignment. This will completely delete everything in the database associated with this plugin, including its configuration, log records, user files managed by the plugin etc. There is no way back and Moodle itself does not create any recovery backup. Are you SURE you want to continue?" "text" should exist
And I click on "Cancel" "button"
And "Uninstall" "link" should exist in the "Assignment" "table_row"
+1 -1
View File
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_block_protection_test extends \externallib_advanced_testcase {
final class set_block_protection_test extends \externallib_advanced_testcase {
/**
* Test execute method with no login.
*/
+1 -1
View File
@@ -33,7 +33,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_order_test extends \externallib_advanced_testcase {
final class set_plugin_order_test extends \externallib_advanced_testcase {
/**
* Text execute method for editor plugins, which support ordering.
*
+1 -1
View File
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_state_test extends \externallib_advanced_testcase {
final class set_plugin_state_test extends \externallib_advanced_testcase {
/**
* Text execute method.
*
@@ -20,14 +20,9 @@ namespace core_admin\reportbuilder\datasource;
use core\task\database_logger;
use core_reportbuilder_generator;
use core_reportbuilder_testcase;
use core_reportbuilder\local\filters\{boolean_select, date, duration, number, select, text};
use core_reportbuilder\task\send_schedules;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
use core_reportbuilder\tests\core_reportbuilder_testcase;
/**
* Unit tests for task logs datasource
@@ -37,7 +32,7 @@ require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
* @copyright 2022 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_logs_test extends core_reportbuilder_testcase {
final class task_logs_test extends core_reportbuilder_testcase {
/**
* Test default datasource
@@ -30,7 +30,7 @@ use core_reportbuilder\local\report\filter;
* @copyright 2023 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class courserole_test extends advanced_testcase {
final class courserole_test extends advanced_testcase {
/**
* Data provider for {@see test_get_sql_filter}
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_deleted
*/
class preset_deleted_test extends \advanced_testcase {
final class preset_deleted_test extends \advanced_testcase {
/**
* Test preset_deleted event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_downloaded
*/
class preset_downloaded_test extends \advanced_testcase {
final class preset_downloaded_test extends \advanced_testcase {
/**
* Test preset_downloaded event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_exported
*/
class preset_exported_test extends \advanced_testcase {
final class preset_exported_test extends \advanced_testcase {
/**
* Test preset_exported event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_imported
*/
class preset_imported_test extends \advanced_testcase {
final class preset_imported_test extends \advanced_testcase {
/**
* Test preset_imported event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_loaded
*/
class preset_loaded_test extends \advanced_testcase {
final class preset_loaded_test extends \advanced_testcase {
/**
* Test preset_loaded event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_previewed
*/
class preset_previewed_test extends \advanced_testcase {
final class preset_previewed_test extends \advanced_testcase {
/**
* Test preset_previewed event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_reverted
*/
class preset_reverted_test extends \advanced_testcase {
final class preset_reverted_test extends \advanced_testcase {
/**
* Test preset_reverted event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\presets_listed
*/
class presets_listed_test extends \advanced_testcase {
final class presets_listed_test extends \advanced_testcase {
/**
* Test presets_listed event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\base
*/
class base_test extends \advanced_testcase {
final class base_test extends \advanced_testcase {
/**
* Test the behaviour of log() method.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\delete
*/
class delete_test extends \advanced_testcase {
final class delete_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -27,7 +27,7 @@ use core_adminpresets\manager;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\export
*/
class export_test extends \advanced_testcase {
final class export_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -27,7 +27,7 @@ use core_adminpresets\manager;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\import
*/
class import_test extends \advanced_testcase {
final class import_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\load
*/
class load_test extends \advanced_testcase {
final class load_test extends \advanced_testcase {
/**
* Test the behaviour of show() method when the preset id doesn't exist.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\rollback
*/
class rollback_test extends \advanced_testcase {
final class rollback_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -0,0 +1,79 @@
@tool @tool_analytics
Feature: Manager can obtain prediction models insights
In order to view prediction models insights
As a manager
I should be able to obtain the prediction models insights
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| s1 | Student | One | s1@example.com |
| m1 | Manager | One | m1@example.com |
| m2 | Manager | Two | m2@example.com |
| t1 | Teacher | One | t1@example.com |
And the following "role assigns" exist:
| user | role | contextlevel | reference |
| m1 | manager | System | |
| m2 | manager | System | |
# To ensure that course start date is in the future, set course start date to "tomorrow".
And the following "courses" exist:
| fullname | shortname | startdate |
| Course 1 | C1 | ##tomorrow## |
| Course 2 | C2 | ##tomorrow## |
| Course 3 | C3 | ##tomorrow## |
And the following "course enrolments" exist:
| user | course | role |
| s1 | C1 | student |
| s1 | C2 | student |
| s1 | C3 | student |
| t1 | C3 | editingteacher |
# Disable "Analytics processes execution via command line only".
And the following config values are set as admin:
| onlycli | 0 | analytics |
@javascript
Scenario: Manager can obtain prediction models insights
Given I log in as "m1"
And I navigate to "Analytics > Analytics models" in site administration
And I click on "Actions" "link" in the "Courses at risk of not starting" "table_row"
And I click on "Execute scheduled analysis" "link" in the "Courses at risk of not starting" "table_row"
And I press "Continue"
When I select "All predictions" from the "contextid" singleselect
# Confirm that only courses without teachers, Course 1 and Course 2, are listed.
Then "Course 1" "text" should exist
And "Course 2" "text" should exist
And "Course 3" "text" should not exist
And I click on "Select Course 1 for bulk action" "checkbox"
And I press "Not applicable"
And I press "Confirm"
# After m1 marks Course 1 as Not applicable, only Course 2 should be listed in the predictions for manager 1.
And "Course 1" "text" should not exist
And "Course 2" "text" should exist
And I log in as "m2"
And I click on ".popover-region-notifications" "css_element"
# Notification of new insight exists.
And "Upcoming courses have no teachers or students" "text" should exist
And I click on "View full notification" "link" in the ".popover-region-notifications" "css_element"
And I click on "View insight" "link"
# Course 1, previously marked as Not applicable by manager 1, is still listed for manager 2.
And "Course 1" "text" should exist
And I click on "View details" "link" in the "Course 1" "table_row"
# Prediction details and indicators are displayed for the selected course.
And the following should exist in the "insights-list" table:
| Description |
| Course 1 |
And the following should exist in the "prediction-calculations" table:
| -1- | -2- |
| Teacher availability | No |
| Student enrolments | Yes |
# Date of prediction analysis execution.
And "##today##%A, %d %B %Y##" "text" should exist in the "Time predicted" "table_row"
And I click on "Select Course 1 for bulk action" "checkbox"
And I press "Accept"
And I press "Confirm"
# Verify that you end up on the page listing predictions for 'No teaching'.
And "Courses at risk of not starting" "text" should exist
And "The following courses due to start in the upcoming days are at risk of not starting because they don't have teachers or students enrolled." "text" should exist
And the following should not exist in the "insights-list" table:
| Description |
| Course 1 |
+1 -1
View File
@@ -45,7 +45,7 @@ require_once($CFG->dirroot . '/analytics/tests/fixtures/test_target_course_level
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.8
*/
class external_test extends externallib_advanced_testcase {
final class external_test extends externallib_advanced_testcase {
/**
* test_potential_contexts description
@@ -46,7 +46,7 @@ require_once($CFG->libdir . '/behat/form_field/behat_form_text.php');
* @covers \behat_form_text
* @covers \behat_form_field
*/
class behat_form_text_test extends \basic_testcase {
final class behat_form_text_test extends \basic_testcase {
/**
* Data provider for the test_set_get_value() method.
@@ -30,7 +30,7 @@ namespace tool_behat\external;
*
* @covers \tool_behat\external\get_entity_generator
*/
class get_entity_generator_test extends \advanced_testcase {
final class get_entity_generator_test extends \advanced_testcase {
/**
* Log in as admin
+1 -5
View File
@@ -1,7 +1,4 @@
<?php
// phpcs:ignoreFile
// @codeCoverageIgnoreStart
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -43,8 +40,7 @@ require_once($CFG->libdir . '/behat/classes/behat_config_manager.php');
* @copyright 2016 Rajesh Taneja
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class manager_util_test extends \advanced_testcase {
final class manager_util_test extends \advanced_testcase {
/** @var array Fixtures features which are available. */
private $featurepaths = array(
'default' => array(
@@ -16,6 +16,7 @@
namespace tool_brickfield\local\htmlchecker\common\checks;
use core_text;
use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_test;
/**
@@ -29,10 +30,6 @@ use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_test;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class img_alt_is_too_long extends brickfield_accessibility_test {
/** @var int The default severity code for this test. */
public $defaultseverity = \tool_brickfield\local\htmlchecker\brickfield_accessibility::BA_TEST_SEVERE;
/**
* The main check function. This is called by the parent class to actually check content.
*/
@@ -40,8 +37,8 @@ class img_alt_is_too_long extends brickfield_accessibility_test {
global $alttextlengthlimit;
foreach ($this->get_all_elements('img') as $img) {
$alttextlengthlimit = 125;
if ($img->hasAttribute('alt') && strlen($img->getAttribute('alt')) > $alttextlengthlimit) {
$alttextlengthlimit = 750;
if ($img->hasAttribute('alt') && core_text::strlen($img->getAttribute('alt')) > $alttextlengthlimit) {
$this->add_report($img);
}
}
@@ -402,6 +402,8 @@ class manager {
}
}
$rs->close();
if (count($batchinserts) > 0) {
$DB->insert_records(self::DB_PROCESS, $batchinserts);
}
+1
View File
@@ -87,6 +87,7 @@ $action = optional_param('action', '', PARAM_ALPHA);
// Handle any single operation actions.
if ($action == 'requestanalysis') {
if ($courseid != 0) {
require_sesskey();
scheduler::request_course_analysis($courseid);
if ($courseid == SITEID) {
redirect(accessibility::get_plugin_url());
@@ -179,7 +179,7 @@ $string['checkdesc:headerh3'] = 'Headers following after H3 headers (the editor
$string['checkdesc:headershavetext'] = 'A header needs to contain text to be perceivable.';
$string['checkdesc:iisnotused'] = 'Italic (i) elements should not be used; "em" should be used instead.';
$string['checkdesc:imgaltisdifferent'] = 'Image alt (alternative) text should not be the image filename.';
$string['checkdesc:imgaltistoolong'] = 'Image alt (alternative) text should not be more than the maximum allowed (125) characters.';
$string['checkdesc:imgaltistoolong'] = 'Ensure that the image alt (alternative) text is concise enough to describe the image.';
$string['checkdesc:imgaltnotemptyinanchor'] = 'Image alt (alternative) text should not be empty, especially when the image has a link going elsewhere.';
$string['checkdesc:imgaltnotplaceholder'] = 'Image alt (alternative) text should not be a simple placeholder text, such as "image".';
$string['checkdesc:imghasalt'] = 'Image alt (alternative) text should not be missing for image elements, unless purely decorative with no meaning.';
@@ -26,7 +26,7 @@ use tool_brickfield\local\tool\filter;
* @author Jay Churchward (jay@brickfieldlabs.ie)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class accessibility_test extends \advanced_testcase {
final class accessibility_test extends \advanced_testcase {
/**
* Test get_title().
+1 -1
View File
@@ -28,7 +28,7 @@ require_once($CFG->dirroot . '/admin/tool/brickfield/tests/area_test_base.php');
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class area_test extends area_test_base {
final class area_test extends area_test_base {
/**
* Test for the area assign intro
*/
+1 -1
View File
@@ -26,7 +26,7 @@ use tool_brickfield\local\tool\filter;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filters_test extends \advanced_testcase {
final class filters_test extends \advanced_testcase {
public function test_constructor(): void {
$this->resetAfterTest();
@@ -23,7 +23,7 @@ namespace tool_brickfield\local\areas\core_question;
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class questionanswers_test extends \advanced_testcase {
final class questionanswers_test extends \advanced_testcase {
/**
* Set up before class.
@@ -30,7 +30,7 @@ use tool_brickfield\area_test_base;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_brickfield\local\areas\core_question\base
*/
class questiontext_test extends area_test_base {
final class questiontext_test extends area_test_base {
/**
* Set up before class.
*/
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_links_dont_open_new_window_testcase
*/
class a_links_dont_open_new_window_test extends all_checks {
final class a_links_dont_open_new_window_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_links_dont_open_new_window';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_must_contain_text_testcase
*/
class a_must_contain_text_test extends all_checks {
final class a_must_contain_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_must_contain_text';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_suspicious_link_text
*/
class a_suspicious_link_text_test extends all_checks {
final class a_suspicious_link_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_suspicious_link_text';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class area_dont_open_new_window_testcase
*/
class area_dont_open_new_window_test extends all_checks {
final class area_dont_open_new_window_test extends all_checks {
/** @var string Check type */
protected $checktype = 'area_dont_open_new_window';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class area_has_alt_value_testcase
*/
class area_has_alt_value_test extends all_checks {
final class area_has_alt_value_test extends all_checks {
/** @var string Check type */
protected $checktype = 'area_has_alt_value';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class basefont_is_not_used_testcase
*/
class basefont_is_not_used_test extends all_checks {
final class basefont_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'basefont_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class blink_is_not_used_testcase
*/
class blink_is_not_used_test extends all_checks {
final class blink_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'blink_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class bold_is_not_used_testcase
*/
class bold_is_not_used_test extends all_checks {
final class bold_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'bold_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class content_too_long_testcase
*/
class content_too_long_test extends all_checks {
final class content_too_long_test extends all_checks {
/** @var string Check type */
protected $checktype = 'content_too_long';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class embed_has_associated_no_embed_testcase
*/
class embed_has_associated_no_embed_test extends all_checks {
final class embed_has_associated_no_embed_test extends all_checks {
/** @var string Check type */
protected $checktype = 'embed_has_associated_no_embed';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class header_h3_testcase
*/
class header_h3_test extends all_checks {
final class header_h3_test extends all_checks {
/** @var string Check type */
protected $checktype = 'header_h3';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class headers_have_text_testcase
*/
class headers_have_text_test extends all_checks {
final class headers_have_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'headers_have_text';
@@ -33,7 +33,7 @@ require_once('all_checks.php');
*
* @covers \tool_brickfield\local\htmlchecker\common\checks\i_is_not_used
*/
class i_is_not_used_test extends all_checks {
final class i_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'i_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_is_different_testcase
*/
class img_alt_is_different_test extends all_checks {
final class img_alt_is_different_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_is_different';
@@ -24,55 +24,92 @@
namespace tool_brickfield\local\htmlchecker\common\checks;
use tool_brickfield\local\htmlchecker\brickfield_accessibility;
defined('MOODLE_INTERNAL') || die();
require_once('all_checks.php');
/**
* Class img_alt_is_too_long_testcase
*
* @covers \tool_brickfield\local\htmlchecker\common\checks\img_alt_is_too_long
*/
class img_alt_is_too_long_test extends all_checks {
final class img_alt_is_too_long_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_is_too_long';
/** @var string Html fail */
private $htmlfail = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
/**
* Get test HTML with an image tag.
*
* @param string $alttext
* @return string
*/
protected function get_test_html(string $alttext): string {
return <<<EOD
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Image alt attributes must not be too long</title>
</head>
<body>
<img src="rex.jpg" alt="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan, ante varius viverra aliquam,
dolor risus scelerisque massa, ut lacinia ipsum felis id est. Nullam convallis odio ante, in commodo elit fermentum sed.
Vivamus ullamcorper tincidunt sagittis. Sed et semper sapien. Quisque malesuada lacus nec libero cursus, aliquam malesuada
neque ultricies. Cras sit amet enim vel orci tristique porttitor a vitae urna. Suspendisse mi leo, hendrerit et eleifend a,
mollis at ex. Maecenas eget magna nec sem dignissim pharetra vel nec ex. Donec in porta lectus. Aenean porttitor euismod
lectus, sodales eleifend ex egestas in. Donec sed metus sodales, lobortis velit quis, dictum arcu.">
<img src="rex.jpg" alt="$alttext">
</body>
</html>
EOD;
}
/**
* Image alt text data provider.
*
* @return array
*/
public static function img_alt_text_provider(): array {
return [
'Alt text <= 750 characters' => [
true,
str_repeat("Hello world!", 60),
],
'Alt text > 750 characters' => [
false,
str_repeat("Hello world!", 65),
],
'Multi-byte alt text <= 750 characters' => [
true,
str_repeat('こんにちは、世界!', 83),
],
'Multi-byte alt text > 750 characters' => [
false,
str_repeat('こんにちは、世界!', 90),
],
];
}
/** @var string Html pass */
private $htmlpass = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Image alt attributes must not be too long</title>
</head>
<body>
<img src="rex.jpg" alt="this is an image of rex">
</body>
</html>
EOD;
/**
* Test for image alt attributes being too long
*
* @dataProvider img_alt_text_provider
* @param bool $expectedpass Whether the test is expected to pass or fail.
* @param string $alttext The alt text to test.
*/
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'img');
public function test_check(bool $expectedpass, string $alttext): void {
$html = $this->get_test_html($alttext);
$results = $this->get_checker_results($html);
if ($expectedpass) {
$this->assertEmpty($results);
} else {
$this->assertEquals('img', $results[0]->element->tagName);
}
}
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
/**
* Test the severity of the {@see img_alt_is_too_long} check.
*
* @return void
*/
public function test_severity(): void {
$html = $this->get_test_html('Some alt text');
$checker = new brickfield_accessibility($html, 'brickfield', 'string');
$this->assertEquals(brickfield_accessibility::BA_TEST_SUGGESTION, $checker->get_test_severity(img_alt_is_too_long::class));
}
}
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_not_empty_in_anchor_testcase
*/
class img_alt_not_empty_in_anchor_test extends all_checks {
final class img_alt_not_empty_in_anchor_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_not_empty_in_anchor';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_not_placeholder_testcase
*/
class img_alt_not_place_holder_test extends all_checks {
final class img_alt_not_place_holder_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_not_place_holder';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class test_css_text_has_contrast_testcase
*/
class img_has_alt_test extends all_checks {
final class img_has_alt_test extends all_checks {
/** @var string Check type */
public $checktype = 'img_has_alt';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_with_map_has_use_map_test
*/
class img_with_map_has_use_map_test extends all_checks {
final class img_with_map_has_use_map_test extends all_checks {
/** @var string Check type */
public $checktype = 'img_with_map_has_use_map';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class legend_text_not_empty_test
*/
class legend_text_not_empty_test extends all_checks {
final class legend_text_not_empty_test extends all_checks {
/** @var string Check type */
public $checktype = 'legend_text_not_empty';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class no_headings_test
*/
class no_headings_test extends all_checks {
final class no_headings_test extends all_checks {
/** @var string Check type */
public $checktype = 'no_headings';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_embeded_test
*/
class object_must_have_embed_test extends all_checks {
final class object_must_have_embed_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_embed';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_title_test
*/
class object_must_have_title_test extends all_checks {
final class object_must_have_title_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_title';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_valid_title_test
*/
class object_must_have_valid_title_test extends all_checks {
final class object_must_have_valid_title_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_valid_title';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class strike_is_not_used_testcase
*/
class strike_is_not_used_test extends all_checks {
final class strike_is_not_used_test extends all_checks {
/** @var string Check type */
public $checktype = 'strike_is_not_used';
@@ -33,7 +33,7 @@ require_once('all_checks.php');
*
* @covers \tool_brickfield\local\htmlchecker\common\checks\table_data_should_have_th
*/
class table_data_should_have_th_test extends all_checks {
final class table_data_should_have_th_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_data_should_have_th';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_summary_does_not_duplicate_caption_test
*/
class table_summary_does_not_duplicate_caption_test extends all_checks {
final class table_summary_does_not_duplicate_caption_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_summary_does_not_duplicate_caption';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_td_should_not_merge_test
*/
class table_td_should_not_merge_test extends all_checks {
final class table_td_should_not_merge_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_td_should_not_merge';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_th_should_have_scope_test
*/
class table_th_should_have_scope_test extends all_checks {
final class table_th_should_have_scope_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_th_should_have_scope';
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class activityresults_test extends \advanced_testcase {
final class activityresults_test extends \advanced_testcase {
public function test_toolname(): void {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class checktyperesults_test extends \advanced_testcase {
final class checktyperesults_test extends \advanced_testcase {
public function test_toolname(): void {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class errors_test extends \advanced_testcase {
final class errors_test extends \advanced_testcase {
public function test_toolname(): void {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class printable_test extends \advanced_testcase {
final class printable_test extends \advanced_testcase {
/**
* Test tool name.
+1 -1
View File
@@ -23,7 +23,7 @@ namespace tool_brickfield;
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class manager_test extends \advanced_testcase {
final class manager_test extends \advanced_testcase {
/**
* Tests for the function manager::get_all_areas()
@@ -28,7 +28,7 @@ namespace tool_brickfield;
* Unit tests for {@registration tool_brickfield\registration.php}.
* @group tool_brickfield
*/
class registration_test extends \advanced_testcase {
final class registration_test extends \advanced_testcase {
public static function setUpBeforeClass(): void {
global $CFG;
@@ -24,7 +24,7 @@ namespace tool_brickfield;
* @author Jay Churchward (jay@brickfieldlabs.ie)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class scheduler_test extends \advanced_testcase {
final class scheduler_test extends \advanced_testcase {
public function test_request_analysis(): void {
$this->resetAfterTest();
+1 -1
View File
@@ -27,7 +27,7 @@ use tool_brickfield\local\tool\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_test extends \advanced_testcase {
final class tool_test extends \advanced_testcase {
/** @var string base 64 image */
protected static string $base64img = <<<EOF
@@ -31,7 +31,7 @@ namespace tool_capability\event;
* @copyright 2014 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/
class events_test extends \advanced_testcase {
final class events_test extends \advanced_testcase {
/**
* Setup testcase.
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/' . $CFG->admin . '/tool/capability/locallib.php'
/**
* Tests for the capability overview helper functions.
*/
class locallib_test extends \advanced_testcase {
final class locallib_test extends \advanced_testcase {
/**
* Test the function that gets the data - simple case.
@@ -175,7 +175,7 @@ class cohort_role_assignments_table extends table_sql {
* @return array containing sql to use and an array of params.
*/
protected function get_sql_and_params($count = false) {
$fields = 'uca.id, uca.cohortid, uca.userid, uca.roleid, ';
$fields = 'uca.id, uca.cohortid, uca.userid, uca.roleid, r.shortname AS rolename, ';
$fields .= 'c.name as cohortname, c.idnumber as cohortidnumber, c.contextid as cohortcontextid, ';
$fields .= 'c.visible as cohortvisible, c.description as cohortdescription, c.theme as cohorttheme';
@@ -193,6 +193,7 @@ class cohort_role_assignments_table extends table_sql {
$sql = "SELECT $select
FROM {tool_cohortroles} uca
JOIN {user} u ON u.id = uca.userid
JOIN {role} r ON r.id = uca.roleid
JOIN {cohort} c ON c.id = uca.cohortid";
// Check if any additional filtering is required.
+1 -1
View File
@@ -23,7 +23,7 @@ namespace tool_cohortroles;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class api_test extends \advanced_testcase {
final class api_test extends \advanced_testcase {
/** @var \stdClass $cohort */
protected $cohort = null;
@@ -39,7 +39,7 @@ use core_privacy\local\request\approved_userlist;
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider_test extends \core_privacy\tests\provider_testcase {
final class provider_test extends \core_privacy\tests\provider_testcase {
/**
* Overriding setUp() function to always reset after tests.
@@ -36,7 +36,7 @@ use moodle_exception;
* @copyright 2020 Ferran Recio <ferran@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class langstring_test extends advanced_testcase {
final class langstring_test extends advanced_testcase {
/**
* Sanity 1.x string
@@ -34,7 +34,7 @@ use moodle_exception;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class phpparser_test extends advanced_testcase {
final class phpparser_test extends advanced_testcase {
/**
@@ -123,6 +123,7 @@ class expired_contexts_manager {
$expiredcontext = new expired_context(0, $orphan);
$expiredcontext->delete();
}
$orphaned->close();
// Delete any child of a user context.
$parentpath = $DB->sql_concat('ctxuser.path', "'/%'");
@@ -143,6 +144,7 @@ class expired_contexts_manager {
$expiredcontext = new expired_context(0, $child);
$expiredcontext->delete();
}
$userchildren->close();
}
/**
@@ -127,7 +127,6 @@ $string['dporolemapping'] = 'Privacy officer role mapping';
$string['dporolemapping_desc'] = 'The privacy officer can manage data requests. The capability tool/dataprivacy:managedatarequests must be allowed for a role to be listed as a privacy officer role mapping option.';
$string['editcategories'] = 'Edit categories';
$string['editcategory'] = 'Edit category';
$string['editcategories'] = 'Edit categories';
$string['editdefaults'] = 'Edit defaults: {$a}';
$string['editmoduledefaults'] = 'Edit module defaults';
$string['editpurpose'] = 'Edit purpose';
+1 -1
View File
@@ -31,7 +31,7 @@ use tool_dataprivacy\task\initiate_data_request_task;
* @copyright 2018 Jun Pataleta
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class api_test extends \advanced_testcase {
final class api_test extends \advanced_testcase {
/**
* Ensure that the check_can_manage_data_registry function fails cap testing when a user without capabilities is
@@ -23,7 +23,7 @@ namespace tool_dataprivacy;
* @copyright 2018 Andrew Nicols <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class data_registry_test extends \advanced_testcase {
final class data_registry_test extends \advanced_testcase {
/**
* Ensure that the get_effective_context_value only errors if provided an inappropriate element.

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