Compare commits

...

1117 Commits

Author SHA1 Message Date
Mihail Geshoski 812ef23c00 Moodle release 4.5.5 2025-06-06 12:32:23 +08:00
Mihail Geshoski 59d4d28e84 NOBUG: Add upgrade notes 2025-06-06 12:32:23 +08:00
Sara Arjona 4b87c45497 weekly release 4.5.4+ 2025-06-05 16:43:39 +02:00
Sara Arjona 19baebf67d NOBUG: Add upgrade notes 2025-06-05 16:43:39 +02:00
Michael Hawkins 4ecfbc393d MDL-83762 core_files: Bind resolve IPs and ports to cURL calls 2025-06-05 12:09:50 +07:00
Michael Hawkins ac62ce580c Merge branch 'MDL-85571-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-05 12:35:12 +08:00
Vincent Schneider ab5d693113 MDL-84518 course: improved course visibility state handling 2025-06-05 11:22:29 +07:00
Michael Hawkins 74aa57d9cd Merge branch 'MDL-80380-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-05 12:20:23 +08:00
Jun Pataleta a86500fe34 Merge branch 'MDL-85450-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-06-05 12:15:52 +08:00
Huong Nguyen 2225c55acc MDL-80380 core_auth: Add upgrade note 2025-06-05 11:14:52 +07:00
Huong Nguyen 6abea88dac MDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email 2025-06-05 11:14:51 +07:00
Mihail Geshoski 484b07cc5c Merge branch 'MDL-69765-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-06-05 12:11:21 +08:00
Jun Pataleta 0dd92929b4 Merge branch 'MDL-84941-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-05 12:08:44 +08:00
Mihail Geshoski 0319bb49a7 Merge branch 'MDL-85072-405' of https://github.com/olivabigyo/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mihail Geshoski 58b92a238e Merge branch 'MDL-83654-405-5' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mihail Geshoski 84dfd5459e Merge branch 'MDL-85369_405' of https://github.com/agaranin/moodle into MOODLE_405_STABLE 2025-06-05 11:01:17 +07:00
Mark Johnson 5abbfe4fd7 MDL-85323 core: Don't cache the login page 2025-06-05 11:01:04 +07:00
meirzamoodle 07cd48917c MDL-85375 libraries: Escaping a query parameter on pg_insert_id() 2025-06-05 01:30:20 +00:00
Vincent Schneider 8c5fad91df MDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks 2025-06-05 01:30:20 +00:00
Huong Nguyen c827a17f27 MDL-79993 course: Fix PHPUnit failure 2025-06-05 01:30:20 +00:00
raortegar b4011745cd MDL-79993 course: Improve user access to recent courses service 2025-06-05 01:30:20 +00:00
Vincent Schneider 47ba1b63f7 MDL-84497 badges: fix missing action sesskey checks. 2025-06-05 01:30:20 +00:00
Jun Pataleta 55abeaa7d4 Merge branch 'MDL-85239-405' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_405_STABLE 2025-06-05 09:22:54 +08:00
Jun Pataleta e3271c38b5 Merge branch 'MDL-84804-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-05 08:12:44 +08:00
Sara Arjona a949faf7fc Merge branch 'MDL-82069-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-06-04 15:37:04 +02:00
Paul Holden c14a3786b4 MDL-84804 output: amend page title when navigating dynamic tabs.
Prepend the current tab name to the page title, to ensure we can
easily identify the current page/tab and that it is both unique
and accessible.
2025-06-04 14:09:55 +01:00
Paul Holden 6e0e718a39 MDL-84804 javascript: new module for manipulating the page title. 2025-06-04 14:07:28 +01:00
Jun Pataleta e9613e37e2 Merge branch 'MDL-85041-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-04 17:48:24 +08:00
Jun Pataleta cb990d2c07 MDL-85041 core: Make methods calling announceChanges async as well 2025-06-04 16:22:25 +08:00
Mihail Geshoski 1201e7b61a Merge branch 'MDL-85469-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-04 14:12:52 +08:00
Huong Nguyen 3272b7d6a1 MDL-85571 mod_assign: Improve PHPUnit tests 2025-06-04 12:50:39 +07:00
raortegar 8f8fb98cfd MDL-85571 mod_assign: Add visibility check to due digest notification 2025-06-04 12:50:39 +07:00
Jun Pataleta 3d9610fed5 Merge branch 'MDL-85507-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-06-04 11:58:52 +08:00
Huong Nguyen beb8034e21 Merge branch 'MDL-84732-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-06-04 10:53:52 +07:00
Mihail Geshoski 1e79fe439a Merge branch 'MDL-84432-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-06-04 10:47:49 +08:00
Huong Nguyen 3c3b1f9aa7 MDL-84432 core: Use discovery endpoint for Microsoft OAuth2 service
- Instead of creating the endpoints manually, use the OpenId
configuration endpoint to auto-configure endpoints
- Updates user field mappings so they map the new OpenId userinfo fields
2025-06-04 08:41:39 +07:00
Amaia Anabitarte c535d469fb Merge branch 'MDL-85471-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-06-03 16:19:29 +02:00
cescobedo 8cd1f17819 Merge branch 'MDL-85398-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-03 15:51:59 +02:00
Amaia Anabitarte b38113be6e Merge branch 'MDL-85327-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-06-03 13:37:53 +02:00
Jun Pataleta bb4cf1e151 Merge branch 'MDL-85467-405' of https://github.com/yusufwib01/moodle into MOODLE_405_STABLE 2025-06-03 17:28:39 +08:00
Rajneel Totaram d2646aee84 MDL-85450 block_calendar_upcoming: Fix heading level 2025-06-03 09:40:48 +12:00
Amaia Anabitarte b65fe2d786 Merge branch 'MDL-85412-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-06-02 13:24:42 +02:00
yusufwib01 e2aa6e03c6 MDL-85467 core: Replace orphaned label with span for accessibility
This commit replaces orphaned labels with spans for improved
accessibility. It also updates the XPATH partial named selector
for select_menu fields to target span elements.
2025-06-02 13:46:11 +07:00
hieuvu fb036fe8aa MDL-85239 mod_quiz: Add caption for Attempt tables. 2025-06-02 13:38:05 +07:00
meirzamoodle bff7dffe16 MDL-85041 core: Improve autocomplete/tag a11y for assistive tech
- Updated autocomplete behavior to announce dynamic changes
via ARIA live regions
- Fixed focus management for keyboard and screen reader navigation
- Added proper role/aria tags for interactive tag components
2025-06-02 10:38:29 +07:00
Luca Bösch 39e627ecc5 MDL-69765 qtype_essay: Create temporary draft file area only one time. 2025-05-31 12:58:24 +02:00
Jun Pataleta b469c13132 MDL-83654 qtype_match: Only add the question text to the first field
In order to avoid repetition of the question text as the user navigates
to each answer field in a matching question (e.g. by tabbing).
2025-05-31 09:24:45 +08:00
Jun Pataleta c8501791c4 MDL-83654 qtype_match: Add presentation role to table-related elements
The question and answer are displayed on a layout table and
does not really help with accessibility. We need to set a
presentation role for the table-related elements.
2025-05-31 09:24:44 +08:00
Jun Pataleta 5d6b8b0080 MDL-83654 qtype_match: Provide better information to answer fields
* In order to provide better context for screen reader users about the
answer fields in matching questions, the question text and the
corresponding item to be matched are included to the answer fields via
the aria-describedby attribute.
2025-05-31 09:24:44 +08:00
Amaia Anabitarte 98ba1909f2 MDL-85412 course: adding and removing elements feedback message 2025-05-30 16:44:01 +02:00
Michael Hawkins 7acd85a1aa weekly release 4.5.4+ 2025-05-30 16:29:22 +08:00
Michael Hawkins e12aa38444 NOBUG: Add upgrade notes 2025-05-30 16:29:21 +08:00
Michael Hawkins 03da88b840 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-30 16:28:54 +08:00
Artem Garanin 1a655e88db MDL-85369 question: fix tag collection ID in legacy‑filter upgrade.
Use the actual tag collection for the 'question' tag area instead of
the default collection.
2025-05-29 14:13:34 -04:00
Michael Hawkins dc3c3ad7bb Merge branch 'MDL-84824-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-05-29 12:27:43 +08:00
Michael Hawkins 9c26cc5eaa Merge branch 'MDL-83448-405' of https://github.com/stevandoMoodle/moodle into MOODLE_405_STABLE 2025-05-29 12:18:50 +08:00
Michael Hawkins eb3a479362 Merge branch 'MDL-84996-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-29 12:10:33 +08:00
Michael Hawkins f67dc4491f Merge branch 'MDL-85437-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-29 11:53:10 +08:00
Stevani Andolo 447b50e660 MDL-84824 core_message: Fixed popup accessibility issue 2025-05-29 11:49:25 +08:00
Huong Nguyen fe1125a335 Merge branch 'MDL-83044-405' of https://github.com/catalyst/moodle into MOODLE_405_STABLE 2025-05-29 10:27:27 +07:00
Huong Nguyen c26b7d63b8 Merge branch 'MDL-85525-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-29 09:51:52 +07:00
Huong Nguyen 5e847a50d7 Merge branch 'MDL-85400-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-05-29 08:59:53 +07:00
Huong Nguyen 7a804a5eea Merge branch 'MDL-85389-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-29 08:52:47 +07:00
AMOS bot c17c801ca2 Automatically generated installer lang files 2025-05-29 00:07:56 +00:00
andelacruz 83103830ad MDL-85525 mod_quiz: Behat test for quiz attempt page block display 2025-05-28 16:49:55 +08:00
andelacruz 8e89733cb0 MDL-85389 mod_lesson: Behat for filtering lesson reports/essays by group 2025-05-28 15:19:47 +08:00
sam marshall 4b14b73977 MDL-85400 PHPunit: Hard to test code that uses encryption
This change stops the encryption code setting created key files to
read-only during PHPunit runs, which means they will be safely
deleted when the system resets after a test.
2025-05-28 12:59:17 +08:00
meirzamoodle 8e77499d4f MDL-85437 AI: Move focus to the AI drawer 2025-05-28 11:31:30 +07:00
Jun Pataleta ecf7cede8c Merge branch 'MDL-84806-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-27 15:37:12 +08:00
Huong Nguyen c740028db4 Merge branch 'MDL-85169-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-27 09:16:15 +07:00
Alexander Van der Bellen 5fff8ff000 MDL-83044 core_block: Add return value check on form submission 2025-05-26 23:03:47 +08:00
Sara Arjona 636c0905dd Merge branch 'MDL-85034-MOODLE_405_STABLE' of https://github.com/phmemmel/moodle into MOODLE_405_STABLE 2025-05-26 15:26:01 +02:00
ferran 0eb18e5231 Merge branch 'MDL-84304-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-26 13:50:14 +02:00
Helen Foster 06e37a266b MDL-85507 lang: Import fixed English strings (en_fix) 2025-05-25 09:03:07 +02:00
sam marshall e20e01038f MDL-84732 Accessibility: Focus issue after closing nested modal 2025-05-23 15:46:57 +01:00
Mikel Martín 4d08038681 MDL-85469 mod_feedback: Refactor editor drag and drop
- Remove YUI drag and drop.
- Add new 'mod_feedback\external\questions\reorder' web service.
- Use SortableList JS component to refactor drag and drop, using
  the new webservice.
- Update new SCSS styles
- Fix and create Behat scenarios
2025-05-23 16:29:09 +08:00
Mikel Martín 79dec70789 MDL-85469 mod_feedback: Refactor edit amd module 2025-05-23 16:29:09 +08:00
Huong Nguyen 7f5234ab13 weekly release 4.5.4+ 2025-05-23 11:03:56 +07:00
Huong Nguyen 1e03f058ec Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-23 11:03:49 +07:00
David Woloszyn c421dce7bf MDL-84806 tiny_aiplacement: Remove unused div and css 2025-05-23 12:47:55 +10:00
David Woloszyn a55c0e0067 MDL-84806 tiny_aiplacement: Announce action results for accessibility
The generatetext.js and associated templates have been adjusted to
match more closely with the generate image files. The generate image
way of displaying content was better suited to aria.
2025-05-23 12:47:47 +10:00
Stevani Andolo c5cc10836f MDL-83448 core_hub: Fixed registration check 2025-05-22 13:44:01 +08:00
Huong Nguyen 20c233697f Merge branch 'MDL-84899-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-22 11:01:10 +07:00
Huong Nguyen b358c4ccc9 Merge branch 'MDL-84793-m405' of https://github.com/sammarshallou/moodle into MOODLE_405_STABLE 2025-05-22 10:48:33 +07:00
Huong Nguyen 1f43870066 Merge branch 'MDL-84918-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-05-22 10:34:40 +07:00
David Woloszyn 3823915d80 MDL-84918 core: Add zend.exception_ignore_args environment check 2025-05-22 10:10:36 +07:00
Huong Nguyen 69809efd38 MDL-84918 core: Add initial environment requirements for Moodle 5.1 2025-05-22 10:10:36 +07:00
Huong Nguyen 2486cd3f48 Merge branch 'MDL-74900-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-05-22 09:37:26 +07:00
Katalin Lukacs Toth 6c3703e7f5 MDL-85072 qtype_ordering: Fix XML export
Option fields should not be left empty.
2025-05-21 10:54:15 +02:00
Huong Nguyen a04e96ae82 Merge branch 'MDL-84274-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-21 13:36:09 +07:00
raortegar 26e5baae62 MDL-74900 core_course: Exception in module deletion if missing instance 2025-05-21 08:27:29 +02:00
Huong Nguyen 01a8018de4 Merge branch 'MDL-84296-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-21 10:00:27 +07:00
Huong Nguyen 2e7075d121 Merge branch 'MDL-85374-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-05-21 09:56:06 +07:00
AMOS bot 13b626da79 Automatically generated installer lang files 2025-05-21 00:07:53 +00:00
Andrew Nicols 60ff3ef255 MDL-85374 report_competency: Create custom step for setting autocomplete
The autocompletes used in the competency report have been bastardised to
redirect on selection. Unfortunately this also applies when when making
null-op changes like deleting the initial "Please select a value"
option.

The autocomplete code removes all current options before creating an
option, and because of this redirect the browser is redirecting before
the new value can be entered, but we retain a reference to the field as
`$this->field`, which is now stale.
2025-05-20 12:42:20 +08:00
Amaia Anabitarte 73969986d9 Merge branch 'MDL-85397-405' of https://github.com/tasiobg/moodle into MOODLE_405_STABLE 2025-05-19 12:43:45 +02:00
Laurent David 5ebb301598 MDL-84304 core_courseformat: Remove COMPLETION_COMPLETE_FAIL test
* Because we removed this status in mod_scorm, we cannot test it
anymore against any module as no module has custom_rules that leads
to COMPLETION_COMPLETE_FAIL
2025-05-19 11:56:46 +02:00
Laurent David c5b189382b MDL-84304 mod_scorm: Remove completion failed from behat test
* Now that we removed the COMPLETION_COMPLETE_FAIL status for scorm
behat tests needs to be updated
2025-05-19 11:56:46 +02:00
Magnus Samuelsson 84908f78b9 MDL-84304 mod_scorm: Remove the COMPLETION_COMPLETE_FAIL status 2025-05-19 11:56:46 +02:00
Amaia Anabitarte 98513288b7 MDL-82069 core_completion: Improve errors for multiple grading items 2025-05-19 09:33:38 +02:00
Jun Pataleta 9c4fb88800 MDL-85471 theme_boost: Dismiss tooltips on escape 2025-05-16 14:21:00 +08:00
Mihail Geshoski 4aefa6b85d weekly release 4.5.4+ 2025-05-16 12:58:58 +08:00
Mihail Geshoski 03a1a221fb Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-16 12:58:35 +08:00
sam marshall 6a56158088 MDL-84793 Behat: Allow CLI scripts to run on Behat instance 2025-05-15 08:50:49 +01:00
Stevani Andolo 46272804bf MDL-84296 core_hub: Added detailed AI usage data to registration page 2025-05-15 16:51:18 +10:00
Huong Nguyen d58f4da539 Merge branch 'MDL-83350-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-15 12:02:37 +07:00
Huong Nguyen 8603d2939d Merge branch 'MDL-84710-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-05-15 11:59:08 +07:00
Huong Nguyen f9ea5d052e Merge branch 'MDL-84073-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-05-15 11:57:33 +07:00
Huong Nguyen 16720f9862 Merge branch 'MDL-83943-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-15 11:45:38 +07:00
Huong Nguyen 59a4f3a8b3 Merge branch 'MDL-85279-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-15 11:42:44 +07:00
Huong Nguyen c7151238c2 Merge branch 'MDL-84009-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-05-14 21:52:05 +07:00
Sara Arjona 2f98ab5f1f Merge branch 'MDL-85449-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona 600a4872fd Merge branch 'MDL-81436-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona 75463bb063 Merge branch 'MDL-81842-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen 08a285be79 Merge branch 'MDL-84128-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen b98919b34e Merge branch 'MDL-85363-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Huong Nguyen 408993643f Merge branch 'MDL-84964-405' of https://github.com/Jayce0808/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
ferran 7df327305f Merge branch 'mdl-84520_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Sara Arjona cf3c244d49 Merge branch 'MDL-85248-405' of https://github.com/albertgasset/moodle into MOODLE_405_STABLE 2025-05-14 21:42:47 +07:00
Tasio 0b5d418a49 MDL-85397 theme: update reports to use container queries
With container queries, responsive design is no longer limited to the full browser width. For example, we can now display
the report in a compact side panel, and it will automatically adapt its styling to suit smaller spaces.
2025-05-14 15:55:07 +02:00
raortegar 502bcbfb01 MDL-84009 factor_webauthn: Add additional security keys 2025-05-14 11:20:54 +02:00
raortegar ef1b8d05f6 MDL-84009 tool_mfa: Additional factor instances support 2025-05-14 11:20:51 +02:00
Paul Holden ff3a757421 MDL-84996 enrol_manual: ensure externally supplied users are valid. 2025-05-14 09:55:53 +01:00
andelacruz b80477a8c6 MDL-85279 mod_assign: Renamed behat test to a more specific name 2025-05-14 15:13:35 +08:00
andelacruz bb275f31d6 MDL-85279 mod_page: Fix behat to match the expected behaviour 2025-05-14 15:12:49 +08:00
Rajneel Totaram d0a76a67d7 MDL-81436 theme: Fix scope of showmore button selector
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-05-13 17:39:49 +12:00
meirzamoodle fbca55fa27 MDL-83350 files: Avoid cacheing user and file repo files
Set the lifetime to zero for files referenced in
the local/internal repository (private files and file system),
because they should not be cached.

Add `no-store` to the cache-control to ensure resources are
never cached, always fetching the latest version.
2025-05-13 09:37:46 +07:00
Jun Pataleta 8df0f78659 Merge branch 'MDL-84817-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-05-12 12:44:42 +08:00
Laurent David 8500a67d21 MDL-81842 formlibs: Change display in sticky footer
* Make sure that form elements that are inserted in the
sticky footer are not wrapped
2025-05-12 06:23:55 +02:00
Jayce Birrell d271d670aa MDL-84710 theme_boost: do not apply popper css rules to rtl dropdowns 2025-05-12 11:05:52 +09:30
Paul Holden f0d973cfaa MDL-85449 block_myoverview: preserve documentation language params.
Fixes the link to Moodle docs from zero state.
2025-05-11 19:27:46 +01:00
AMOS bot d82078046a Automatically generated installer lang files 2025-05-10 00:07:55 +00:00
Paul Holden 4f551a8628 MDL-85398 blocks: constrain width of block controls dropdown menu. 2025-05-09 12:52:52 +01:00
Laurent David f5b15b044e MDL-84899 mod_forum: Fix summary report form change checker
* The forum summary report was not removing the right form
from the list of forms to check for changes.
2025-05-09 08:43:54 +02:00
Laurent David 5c2095cb12 MDL-84899 core_form: Fix unWatchForm in FormChangeChecker
* The unWatchForm as it stood was not removing the form from the list.
2025-05-09 08:43:54 +02:00
meirzamoodle 686011ef42 MDL-83943 core_tag: Fix the broken user tag pagination 2025-05-09 12:49:56 +07:00
Philipp Memmel 27c4ebdace MDL-85034 core_course: Add index to course_sections for mod_subsection
This is a backport of MDL-84844.
2025-05-09 07:25:20 +02:00
meirzamoodle 376d76979d MDL-84128 core: Flip the image according to its orientation in PHP GD 2025-05-09 11:17:36 +07:00
Huong Nguyen 6dd1f61866 weekly release 4.5.4+ 2025-05-09 09:50:26 +07:00
Huong Nguyen 6679d9acb7 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-09 09:50:19 +07:00
Stefan Hanauska cec5aa80d1 MDL-84073 blocks: Load invisible blocks 2025-05-08 14:37:47 +02:00
Luca Bösch 22779cc577 MDL-85363 quiz: style the question number inplace editable nicely. 2025-05-08 11:08:05 +02:00
David Woloszyn 20fe68e173 MDL-84817 core_message: Fix display issues in drawer at 400% 2025-05-08 17:09:01 +10:00
Huong Nguyen 3ac90327fc Merge branch 'MDL-85341-405' of https://github.com/snake/moodle into MOODLE_405_STABLE 2025-05-08 10:52:43 +07:00
Huong Nguyen 5f317f31a0 Merge branch 'MDL-84708-405' of https://github.com/danghieu1407/moodle into MOODLE_405_STABLE 2025-05-08 09:48:19 +07:00
Huong Nguyen c987a7a82e Merge branch 'MDL-84677-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-05-08 09:28:25 +07:00
Huong Nguyen 01b016b2cb Merge branch 'MDL-84597-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-05-08 09:05:20 +07:00
Huong Nguyen 4c400a892b Merge branch 'MDL-85220-405' of https://github.com/rjnl/moodle into MOODLE_405_STABLE 2025-05-08 08:59:14 +07:00
Huong Nguyen edb250f91d Merge branch 'MDL-84654-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-08 08:44:25 +07:00
Amaia Anabitarte 7ec2f412d0 Merge branch 'MDL-85361-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-05-07 14:02:17 +02:00
Sara Arjona ac2a24ec08 Merge branch 'MDL-83422-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-05-07 13:50:22 +02:00
AMOS bot f9936a93b1 Automatically generated installer lang files 2025-05-07 00:07:49 +00:00
Jake Dallimore e2b6ee0e3b MDL-85341 core: remove unnecessary sesskey from module controlmenu items
This impacts the following controls:
- edit (sesskey removed from link)
All other controls should remain unchanged in terms of their use of
sesskey, supporting action handling for non-js course home (see non-js
behat tests move_activities.feature).
2025-05-06 13:54:31 +08:00
Angelia Dela Cruz 99ad02ac3f MDL-84654 mod_assign: Assignment additional files can be hidden 2025-05-06 12:53:48 +08:00
Huong Nguyen cfbb912f11 Merge branch 'MDL-85310-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2025-05-06 10:32:13 +07:00
Sara Arjona 6a49c34b5c MDL-85361 block_social_activity: Fix inline editing text field 2025-05-05 08:16:59 +02:00
Paul Holden 71ae1110ff MDL-85169 forms: focus grouped fields element based on parent data.
This fixes the previous attempt at focusing the first field within
grouped elements (aec60788) which inadvertently introduced duplicate
IDs.
2025-05-02 13:47:22 +01:00
meirzamoodle 0e9f389e74 MDL-83422 tiny_media: Fix modal footer layout
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-05-02 19:46:41 +07:00
Luca Bösch 75842dcd42 MDL-84677 backup: Filter course shortnames in copy progress viewer. 2025-05-02 08:51:37 +02:00
Huong Nguyen a57387fe2d weekly release 4.5.4+ 2025-05-02 09:16:23 +07:00
Huong Nguyen c22c1099d8 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-05-02 09:16:16 +07:00
Paul Holden c60d7ed620 MDL-85327 admin: observe show/hide settings on category page.
Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2025-05-01 10:55:30 +01:00
AMOS bot d696c58951 Automatically generated installer lang files 2025-05-01 00:07:56 +00:00
Angelia Dela Cruz c4e085aae9 MDL-85310 qtype: Renamed duplicate scenario names to fix warning 2025-04-30 13:31:21 +08:00
Sara Arjona 3674b609cc Merge branch 'MDL-84805-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-04-29 15:31:56 +02:00
Amaia Anabitarte dc8e94eef8 MDL-84805 badges: Titles must be unique 2025-04-29 11:14:07 +02:00
Rajneel Totaram 4a6e86b652 MDL-85220 block_recentlyaccesseditems: Fix heading level 2025-04-29 10:13:23 +12:00
Sara Arjona 8b4beeb09a Merge branch 'MDL-84192-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-28 11:25:24 +02:00
Huong Nguyen 5387945514 Merge branch 'MDL-84983-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-28 10:56:34 +07:00
Huong Nguyen b0d338fd10 Merge branch 'MDL-84539-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-28 08:59:40 +07:00
Huong Nguyen b355ffc504 Merge branch 'MDL-84421-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-25 09:10:23 +07:00
Huong Nguyen b50db3fa11 weekly release 4.5.4+ 2025-04-24 22:06:01 +07:00
Huong Nguyen 290d65e03e NOBUG: Add upgrade notes 2025-04-24 22:06:00 +07:00
Huong Nguyen af4a65c408 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-04-24 22:05:46 +07:00
Paul Holden 8b14e5b9d8 MDL-84192 course: update course information page language string.
The previous version used an incorrectly deprecated summary string.
2025-04-24 11:53:38 +01:00
Huong Nguyen 3facc7677f Merge branch 'MDL-84480-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-24 07:34:46 +02:00
Sara Arjona 3d7dd31dda Merge branch 'MDL-84233_MOODLE_405_STABLE' of https://github.com/catalyst/moodle into MOODLE_405_STABLE 2025-04-24 07:34:46 +02:00
Huong Nguyen 9c4646b41e Merge branch 'MDL-83563_405' of https://github.com/larsbonczek/moodle into MOODLE_405_STABLE 2025-04-24 07:34:44 +02:00
Huong Nguyen e5b973ee85 Merge branch 'MDL-84442-metadata-task-logs-MOODLE_405_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_405_STABLE 2025-04-24 07:32:48 +02:00
David Woloszyn ff28aadff1 MDL-84274 tool_policy: Policy acceptance pages use secure layout 2025-04-24 12:27:23 +10:00
David Woloszyn 9fd50c9771 MDL-84274 tool_mfa: Prevent tool_policy pages from redirecting 2025-04-24 12:27:23 +10:00
Jayce fb236380ee MDL-84964 mod_glossary: min width only apply for large device 2025-04-23 10:01:50 +09:30
AMOS bot ef92f5e441 Automatically generated installer lang files 2025-04-23 00:07:54 +00:00
Albert Gasset 35d0df6f9b MDL-85248 qtype_ddimageortext: Revert MDL-66584
This reverts commit 729e4eb792.
2025-04-22 16:50:58 +02:00
Sara Arjona e48855458e Merge branch 'MDL-82658-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-22 16:46:37 +02:00
Huong Nguyen aaf1c1671a Merge branch 'MDL-84070-user-pref-race-bug-v2-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-04-22 08:39:33 +07:00
Benjamin Walker b037708523 MDL-84442 core_task: Add finalise log param to task failers 2025-04-22 09:29:50 +10:00
Brendan Heywood 90a5527e4c MDL-84070 core: Fix race conditions setting user preferences 2025-04-21 21:41:58 +10:00
Huong Nguyen 9924495afc Merge branch 'mdl-83262_405' of https://github.com/james-cnz/moodle into MOODLE_405_STABLE 2025-04-21 09:12:59 +07:00
AMOS bot a3542e68cf Automatically generated installer lang files 2025-04-20 00:08:16 +00:00
AMOS bot 6c35478d6e Automatically generated installer lang files 2025-04-19 00:07:53 +00:00
AMOS bot 0d0bc14482 Automatically generated installer lang files 2025-04-18 00:07:55 +00:00
Sara Arjona 2ddab5548f weekly release 4.5.4+ 2025-04-17 14:30:05 +02:00
Sara Arjona 8f67081b7b NOBUG: Add upgrade notes 2025-04-17 14:30:05 +02:00
Huong Nguyen 940e7adf84 Merge branch 'MDL-84298-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-17 10:53:34 +07:00
Huong Nguyen 21d77474b1 Merge branch 'MDL-84625-M405_close-recordset-in-core_analytics-model-add_prediction_ids' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-04-17 10:28:01 +07:00
Huong Nguyen 37de4caecd Merge branch '83713-javascript-error-xml-grades-import-405' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_405_STABLE 2025-04-17 10:12:17 +07:00
Huong Nguyen d87b86d997 Merge branch 'MDL-84232-405-avoid_recover_quiz_grades' of https://github.com/drobayo/moodle into MOODLE_405_STABLE 2025-04-17 08:39:32 +07:00
James C b0af55a8b8 MDL-83262 course: Refresh all-sections toggler on section delete 2025-04-17 12:46:09 +12:00
Julien Boulen ad40295e90 MDL-83713 form: Fix javascript selector on file picker
Co-authored-by: Meirza <meirza.arson@moodle.com>
2025-04-16 16:46:38 +02:00
Sara Arjona f36cc666f7 Merge branch 'MDL-84820-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-16 15:24:39 +02:00
Sara Arjona 5c8bb7bf12 Merge branch 'MDL-85170-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-04-16 15:12:20 +02:00
Sara Arjona 83d42d8a92 Merge branch 'MDL-82132-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-16 14:55:10 +02:00
Huong Nguyen eb264c78a4 Merge branch 'MDL-83195-releaseanongradev2-405' of https://github.com/leonstr/moodle into MOODLE_405_STABLE 2025-04-16 09:40:04 +07:00
Paul Holden f09a2fc6ec MDL-82132 user: less restrictive returning first/lastname details.
The `viewfullnames` capability check was overeager in restricting
the inclusion of user first and lastname properties in the returned
structure. Especially given that the same data was almost always
present in the fullname property of the same structure.
2025-04-15 16:00:49 +01:00
Paul Holden d6b81786ee MDL-82132 user: re-factor code for generating dummy user fullname. 2025-04-15 16:00:49 +01:00
Sara Arjona e1ef9e9561 Merge branch 'MDL-84149-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:45:04 +02:00
Sara Arjona cb989eebd6 Merge branch 'MDL-84140-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:31:20 +02:00
Sara Arjona 8e97eb9d34 Merge branch 'MDL-83990-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:18:12 +02:00
Sara Arjona a56c8bace8 Merge branch 'MDL-83537-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 16:09:28 +02:00
Jun Pataleta 10f4326ec6 Merge branch 'MDL-83979-url-always-proxy-MOODLE_405_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_405_STABLE 2025-04-15 20:38:36 +08:00
Sara Arjona 99d87938cd Merge branch 'MDL-55034-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 13:36:53 +02:00
Sara Arjona 10c6c279b2 Merge branch 'MDL-78381-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 11:36:56 +02:00
Sara Arjona dc7e34360d Merge branch 'MDL-80337-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-15 11:30:36 +02:00
Sara Arjona c9bd62995d Merge branch 'MDL-62230-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-14 18:57:06 +02:00
Sara Arjona b352601cd3 Merge branch 'MDL-81454-405' of https://github.com/daniil-berg/moodle into MOODLE_405_STABLE 2025-04-14 18:46:28 +02:00
Sara Arjona 1f4cd6c253 Merge branch 'MDL-83550-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-14 17:54:26 +02:00
Sara Arjona 94adaf65fd Merge branch 'MDL-78886-405' of https://github.com/mwehr/moodle into MOODLE_405_STABLE 2025-04-14 17:50:21 +02:00
Sara Arjona a0b1820dcd Merge branch 'MDL-66584-405' of https://github.com/danghieu1407/moodle into MOODLE_405_STABLE 2025-04-14 17:47:40 +02:00
Wehr Mario abbf245371 MDL-78886 assignfeedback_editpdf: Fix broken next page button in PDFView
Credits go to Cédric Gerbault cdgerbault@gmail.com for providing the fix.
2025-04-14 17:39:36 +02:00
Sara Arjona fd0d72cce6 Merge branch 'MDL-84833-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-04-14 17:11:09 +02:00
Sara Arjona e746c166e2 Merge branch 'MDL-79464-405' of https://github.com/mihailges/moodle into MOODLE_405_STABLE 2025-04-14 17:08:31 +02:00
Daniel Ziegenberg e7825c649e MDL-84625 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-04-14 10:02:34 +02:00
James C f517047fc1 MDL-84520 course: CM anchor scrolls to specified CM 2025-04-14 12:16:10 +12:00
Jun Pataleta 8f0c7bb53c Moodle release 4.5.4 2025-04-13 09:52:45 +08:00
Jun Pataleta ba03877e5b NOBUG: Add upgrade notes 2025-04-13 09:52:45 +08:00
Amaia Anabitarte c81c68eb0b MDL-85170 mod_choice: Remove the unnecessary ul closing tag 2025-04-11 17:16:22 +02:00
Huong Nguyen ea6b5194d7 weekly release 4.5.3+ 2025-04-11 22:02:16 +07:00
Huong Nguyen 30cc6bc7eb NOBUG: Add upgrade notes 2025-04-11 22:02:16 +07:00
Sara Arjona 29d7066424 MDL-83994 course: Adapt PHPUnit to lower PHP versions 2025-04-11 19:24:35 +08:00
Huong Nguyen 455945a6f5 MDL-72704 message: Fix fetching for user has already contacted 2025-04-11 17:46:20 +08:00
Sara Arjona 8e0d7b04d3 Merge branch 'MDL-85139-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-04-11 07:05:14 +02:00
Paul Holden a50173c979 MDL-84865 cohort: improve system report validation of parameters. 2025-04-11 12:46:37 +08:00
Jun Pataleta 9cd200777e MDL-72704 message: Additional optimisation tweaks
* Return early if the `userids` params is empty or if the filtered
user IDs end up being empty.
2025-04-11 12:18:22 +08:00
Stevani Andolo 7e2931d7d3 MDL-72704 message: Fix fetching of conversation member info 2025-04-11 12:18:22 +08:00
raortegar 6ee6c52955 MDL-85104 lib: Add additional check to local URLs params. 2025-04-11 10:22:01 +07:00
James C 7fcfc7ddf2 MDL-83994 course: Respect course_can_delete_section() in AJAX 2025-04-11 13:04:31 +10:00
Paul Holden e22a3415cf MDL-84473 repository_equella: safer unserializing of file references. 2025-04-11 09:51:39 +07:00
Paul Holden 4d71278c7e MDL-84475 repository_dropbox: safer unserializing of file references. 2025-04-11 09:33:37 +07:00
Jun Pataleta 6c53e9589a MDL-85139 forms: Revert the addition of element IDs in group containers
This reverts the changes to core/element-group by MDL-61823 as it is
causing duplicate ID issues.
2025-04-11 10:11:55 +08:00
Alec Gullon 5ba4291ffd MDL-79464 mod_assign: Limit user navigation if grading fails validation 2025-04-10 16:27:51 +08:00
Andrew Gosali bdcfa3d4ca MDL-84447 mod_assign: show anonymous name when selecting user on blind submissions 2025-04-10 13:33:35 +07:00
Michael Hawkins d115be943e MDL-85152 filter_tex: Update deny list and slash handling 2025-04-10 14:20:44 +08:00
Paul Holden 1555c047b6 MDL-84478 tool_brickfield: verify sesskey prior to course analysis. 2025-04-10 13:06:41 +08:00
Paul Holden 4809272d5f MDL-84499 block_rss_client: user access checks for viewing feed. 2025-04-10 12:32:23 +08:00
Paul Holden e392ed6894 MDL-65356 mod_data: update entry editing/deletion to not leak sesskey. 2025-04-10 10:07:40 +07:00
Paul Holden ac7b6fb0cc MDL-84750 course: require user be able to view course participants. 2025-04-10 09:29:34 +08:00
David Woloszyn be007459d3 MDL-84351 tool_mfa: Fix guidance page file access
File uploaded to the guidance page were not accessible due to
null values being provided to $course and $cm params for the
tool_mfa_pluginfile.
2025-04-09 16:50:17 +07:00
raortegar 4680d53f4a MDL-84351 tool_mfa: Fix access to guide page when MFA login 2025-04-09 16:50:17 +07:00
David Woloszyn b0539cb6a8 MDL-84351 tool_mfa: Check URL against allowed components for redirect 2025-04-09 16:50:17 +07:00
David Woloszyn cf891af9ad MDL-84351 url: Add method for getting slashargument 2025-04-09 16:50:17 +07:00
Daniil Fajnberg b6665be054 MDL-81454 core: Remove incorrect @property-read annotation 2025-04-09 09:01:07 +02:00
Brendan Heywood a627b10f0c MDL-83979 repository_url: Always use the proxy for url downloads 2025-04-09 14:44:54 +10:00
Paul Holden f60d42d040 MDL-84479 tool_usertours: verify sesskey prior to tour duplication. 2025-04-08 15:10:23 +00:00
Michael Hawkins 8c88838e10 MDL-85015 tool_mfa: Include extra param in email factor cancel check 2025-04-08 15:10:23 +00:00
David Woloszyn 13b1d35b9a MDL-84784 tool_mfa: Remove enrol/index.php from no redirect 2025-04-08 15:10:23 +00:00
Sara Arjona 44fabe1c3d weekly release 4.5.3+ 2025-04-08 17:05:45 +02:00
Sara Arjona 7a7194c900 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-04-08 17:05:38 +02:00
Huong Nguyen 003eaca7c0 Merge branch 'MDL-85116-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE 2025-04-08 10:26:07 +07:00
Jun Pataleta 887281206f Merge branch 'MDL-84058-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-08 10:07:13 +08:00
AMOS bot eab5ecc1f7 Automatically generated installer lang files 2025-04-08 00:07:50 +00:00
meirzamoodle 3d1aeb5a30 MDL-84058 cli: Add a backup check for course module names
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-04-08 06:30:11 +07:00
Paul Holden ec6067ab03 MDL-82658 mod_forum: calculate maxbytes correctly in reply handler. 2025-04-07 09:38:33 +01:00
Paul Holden 2b60a7fcb9 MDL-84149 gradereport_grader: better support for collapse preferences.
The privacy provider is now resilient against missing courses, and also
supports retrieving preferences from multiple courses for the user.
2025-04-07 09:37:38 +01:00
Jun Pataleta b889c63bed MDL-85116 factor_sms: Set default weight and duration properly 2025-04-07 11:14:06 +08:00
Huong Nguyen 9977cb7f33 Merge branch 'MDL-84970-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-07 10:02:02 +07:00
Jun Pataleta 36201a79cc Merge branch 'MDL-85112-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-05 12:27:25 +08:00
Paul Holden 24dfa3007c MDL-85112 message: correct use of class to hide element content. 2025-04-04 17:07:25 +01:00
Huong Nguyen a83b1500bb weekly release 4.5.3+ 2025-04-04 22:20:11 +07:00
Huong Nguyen 91ae94313f NOBUG: Add upgrade notes 2025-04-04 22:20:10 +07:00
Jun Pataleta 699e67e415 Merge branch 'MDL-84816-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-04 12:37:16 +08:00
meirzamoodle 09260f5c02 MDL-84816 message: Make sure the 'see all' link stays visible 2025-04-04 11:27:26 +07:00
Huong Nguyen b9cb8a3554 Merge branch 'MDL-84997-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-04-04 11:15:06 +07:00
Jun Pataleta ccc4940193 Merge branch 'MDL-84907-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-04-04 11:29:05 +08:00
Jun Pataleta 4951ac8010 Merge branch 'MDL-84914-405-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_405_STABLE 2025-04-04 09:47:20 +08:00
Shamim Rezaie 46dd68171a Merge branch 'MDL-61823-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-04 09:08:11 +11:00
Paul Holden 3a9109ffec MDL-61823 question: exclude file element from grouped elements hack.
This removes the duplicated label, that was being matched by the
previously wide selector to make grouped element labels visible.
2025-04-03 15:36:17 +01:00
Paul Holden 1fca5f9f42 MDL-61823 forms: ensure grouped elements have ID attribute.
This is used by the forms implementation for faux-label elements
so that when they are clicked on, the first input element of the
corresponding group is focused.
2025-04-03 14:52:02 +01:00
Jun Pataleta 299bfb23cb Merge branch 'MDL-75971-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-04-03 14:36:43 +08:00
Simey Lameze e4952de1af MDL-75971 behat: add email handling capabilities to Behat 2025-04-03 13:39:26 +08:00
Jun Pataleta dedff4dca4 Merge branch 'MDL-84823-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-04-03 12:14:34 +08:00
meirzamoodle ea74f93c0d MDL-84823 message: Fix ARIA attributes in popovers and messaging drawers
> ARIA Expanded
A disclosure is a widget that allows content to be
collapsed (hidden) or expanded (visible). It has two elements:
1. Disclosure button, and
2. Section of content whose visibility is controlled by the button.

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

> ARIA label
Move the icon title and aria-label as they are not
interactive elements to the toggle element.
The title attribute is helpful for the tooltip,
and the aria-label benefits the screen reader.
2025-04-03 11:09:45 +07:00
Huong Nguyen dffc990f30 Merge branch 'MDL-85023_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-04-03 11:07:47 +07:00
Shamim Rezaie 2814e94b5d Merge branch 'MDL-61730-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-04-03 06:53:33 +11:00
Shamim Rezaie 03bec5f8f5 Merge branch 'MDL-84549-405' of https://github.com/lucaboesch/moodle into MOODLE_405_STABLE 2025-04-03 06:42:18 +11:00
Shamim Rezaie d88721c821 Merge branch 'MDL-85000-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-04-03 06:13:09 +11:00
Jun Pataleta d8190aa5ed Merge branch 'MDL-83692-405' of https://github.com/raortegar/moodle into MOODLE_405_STABLE 2025-04-02 23:31:46 +08:00
Shamim Rezaie 313e6d060d Merge branch 'MDL-72050-405' of https://github.com/sh-csg/moodle into MOODLE_405_STABLE 2025-04-03 00:38:06 +11:00
Shamim Rezaie 979494555b Merge branch 'MDL-84961-405' of https://github.com/odeialba/moodle into MOODLE_405_STABLE 2025-04-02 20:54:34 +11:00
Shamim Rezaie 5fcd1fef0f Merge branch 'MDL-80629-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-04-02 20:01:51 +11:00
Andrew Nicols 2f96721020 MDL-84970 editor_tiny: Use the langpack name for Moodle language 2025-04-02 16:05:36 +08:00
Paul Holden 7415adb3d3 MDL-61730 gradeimport_xml: set type on form iprestriction field. 2025-04-02 08:57:16 +01:00
Huong Nguyen c60bcbe9e4 Merge branch 'MDL-84980-405' of https://github.com/sarjona/moodle into MOODLE_405_STABLE 2025-04-02 14:25:21 +07:00
raortegar 7a2e33f624 MDL-83692 factor_sms: MFA update default values when fields are unset 2025-04-01 21:06:50 +02:00
raortegar 3819bef654 MDL-83692 factor_sms: MFA set default values when gateway list is empty 2025-04-01 21:06:00 +02:00
David Mudrák d1829095d2 MDL-84914 lang: Use fixed strings in tests, too 2025-04-01 21:05:41 +02:00
David Woloszyn d7d6a04388 MDL-83692 factor_sms: add notification for SMS gateway restriction 2025-04-01 21:02:58 +02:00
Helen Foster 472bc8e8d7 MDL-84914 lang: Import fixed English strings (en_fix) 2025-04-01 20:57:23 +02:00
Luca Bösch 5aedb477ef MDL-84549 qbank_managecategories: put "Delete" action last in menu.
This is a backport of MDL-82886.
2025-04-01 17:58:18 +02:00
Sara Arjona 137f093797 weekly release 4.5.3+ 2025-04-01 16:34:24 +02:00
Mihail Geshoski deb4ed1a38 MDL-80091 mod_assign: Fix failing behat test 2025-04-01 11:34:09 +02:00
Huong Nguyen 463fe93c8e Merge branch 'MDL-84419-405' of https://github.com/clransom/moodle into MOODLE_405_STABLE 2025-04-01 11:07:05 +07:00
Huong Nguyen ef03201ae4 Merge branch 'MDL-83856-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-01 10:48:03 +07:00
Huong Nguyen 1efd85dbd6 Merge branch 'MDL-80091-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-04-01 10:41:10 +07:00
Paul Holden 91c04146cb MDL-55034 blog: update external blog deletion to not leak sesskey. 2025-03-31 14:04:13 +01:00
ferran e82b8ab95e MDL-84833 course: completion feedback messages 2025-03-31 09:39:21 +02:00
Jun Pataleta bcccb84b11 Merge branch 'MDL-84826-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE 2025-03-31 14:28:23 +08:00
Andrew Nicols dd72667450 MDL-80629 env: Moodle 4.4.x and 4.5.x do not support PHP 8.4 2025-03-31 11:04:04 +08:00
Andrew Nicols eccfde8616 Merge branch 'MDL-76801-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-31 09:38:24 +08:00
Philipp Imhof 5e97d00101 MDL-85023 quiz: allow WebRTC with SEB on Mac 2025-03-28 17:50:25 +01:00
Sara Arjona a8e0d711e5 weekly release 4.5.3+ 2025-03-28 12:48:20 +01:00
Sara Arjona 00b4dd0e0d Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-28 12:48:12 +01:00
Paul Holden 2b51032624 MDL-85048 core: define mapping for new America/Coyhaique zone.
Follows same process as other timezone additions in d5ec3594.
2025-03-28 08:58:34 +00:00
Huong Nguyen a9d4123f83 Merge branch 'MDL-85048-405' of https://github.com/lameze/moodle into MOODLE_405_STABLE 2025-03-28 15:00:37 +07:00
Simey Lameze b8b7318def MDL-85048 phpunit: add america/coyhaique timezone 2025-03-28 15:00:04 +08:00
David Woloszyn 282e257c02 MDL-84997 core_message: Hide message pill when count is zero 2025-03-28 16:48:19 +11:00
Huong Nguyen 4dbbe25ced Merge branch 'MDL-84952-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2025-03-28 08:52:16 +07:00
AMOS bot e92fbcf833 Automatically generated installer lang files 2025-03-28 00:08:44 +00:00
Paul Holden 9f60cb0ae5 MDL-84140 course: more resilient check for activity footer component. 2025-03-27 08:32:57 +00:00
Jun Pataleta 8a8223dd36 Merge branch 'MDL-85028-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-27 12:03:39 +08:00
Andrew Nicols cfcc23c1fc MDL-85028 core: Check correct var name for router config 2025-03-27 11:45:08 +08:00
Mikel Martín 09cc81eee3 MDL-84952 theme_boost: Fix spacing for collapse/expand buttons 2025-03-26 15:41:21 +01:00
Huong Nguyen 9556bca646 Merge branch 'MDL-85001-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-26 10:53:45 +07:00
Jake Dallimore 3281052fb4 Merge branch 'MDL-85007-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2025-03-26 11:31:46 +08:00
Huong Nguyen 2001a876d7 Merge branch 'MDL-83272_405_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_405_STABLE 2025-03-26 10:27:28 +07:00
Huong Nguyen 6bca945d0e Merge branch 'MDL-84623-M405_close-recordset-in-tool_dataprivacy-expired_contexts_manager-clear_old_records' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-26 10:23:42 +07:00
Huong Nguyen 154dcc3de5 MDL-85000 media_videojs: Enable Ogv.JS Tech for all browsers 2025-03-26 09:33:57 +07:00
Huong Nguyen 8d6206acba weekly release 4.5.3+ 2025-03-26 08:55:59 +07:00
Huong Nguyen 0c436ba190 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-26 08:55:53 +07:00
Paul Holden 9263bbf8de MDL-85007 core: ensure events are dispatched against the same table.
This ensures that we always dispatch the dynamic table updated event
against the same table we just updated. Previously it was possible
for another table to receive the event, where both tables were
effectively the same instance of one another (e.g. custom reports).
2025-03-25 17:02:21 +00:00
meirzamoodle 488b0888a7 MDL-84826 theme_boost: Mantaining hover/focus colour for contrast 2025-03-25 22:54:07 +07:00
Dagoberto Robayo d2acaccee8 MDL-84232 mod_quiz: Avoid recover grades in quiz view page
- If Recover grades default is not enabled, quiz grades should not be recover.
2025-03-25 09:14:30 -05:00
Paul Holden 821336a9fc MDL-85001 reportbuilder: ensure report uniqueness in filters loader.
Where the same report exists multiple times on the page, ensure we
are still able to uniquely identify each via ID. Update the filters
module to ensure the filters form for each report is initialised.
2025-03-25 11:43:40 +00:00
danghieu1407 729e4eb792 MDL-66584 qtype_ddimageortext: Move JSON data to data-attribute 2025-03-25 16:44:50 +07:00
Andrew Nicols c99cd95fb3 Merge branch 'MDL-84893-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2025-03-25 11:06:43 +08:00
Andrew Nicols 77597208b4 Merge branch 'MDL-84112-MOODLE_405_STABLE-fix_bigbluebutton_defaultcompletion_performance' of https://github.com/praxisdigital/moodle into MOODLE_405_STABLE 2025-03-25 10:55:10 +08:00
Andrew Nicols 1ccbfbf5db Merge branch 'MDL-84335_405' of https://github.com/PhilippImhof/moodle into MOODLE_405_STABLE 2025-03-25 10:50:12 +08:00
Andrew Nicols 09c0b90348 Merge branch 'MDL-83469-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-03-25 10:47:07 +08:00
Andrew Nicols 3f68ca07a2 Merge branch 'MDL-76668-405' of https://github.com/cameron1729/moodle into MOODLE_405_STABLE 2025-03-25 10:37:55 +08:00
Philipp Imhof 1498877814 MDL-84335 question: check for null before accessing property
in function check_hint_file_access
2025-03-24 17:44:10 +01:00
Sara Arjona b42be8e410 Merge branch 'MDL-84940-405' of https://github.com/ferranrecio/moodle into MOODLE_405_STABLE 2025-03-24 17:26:35 +01:00
Odei Alba 3fc1fd23f0 MDL-84961 core: Avoid loading the hidden table under the chart
Remove the table from under the chart when it is disabled, instead of just hiding it.
2025-03-24 17:26:18 +01:00
Paul Holden ecf19e63a0 MDL-84983 core: account for invalid locales in intl extension.
Recent PHP versions are now stricter on the `$locale` value passed
to `IntlDateFormatter` class and will throw exceptions for invalid
values (some of which may be present in our language packs).

See: https://github.com/php/php-src/issues/12912
2025-03-24 15:29:48 +00:00
Sara Arjona 24dddd0a4a MDL-84980 pix: Replace insert_page_break icon
To provide a visually clearer and more user-friendly quiz experience,
the 'add new page' icon has been standardized to 'fa-plus'.
2025-03-24 12:55:41 +01:00
Huong Nguyen 86db1e05f9 Merge branch 'MDL-83160-405' of https://github.com/mickhawkins/moodle into MOODLE_405_STABLE 2025-03-24 14:54:26 +07:00
AMOS bot 21f4f61ac7 Automatically generated installer lang files 2025-03-22 00:07:54 +00:00
Huong Nguyen f501225d0f weekly release 4.5.3+ 2025-03-21 22:02:41 +07:00
Huong Nguyen 090ab30bde Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2025-03-21 22:02:36 +07:00
Mark Johnson df0f4456bf MDL-83272 qbank_managecategories: Fix exclusion of current category
The "currentcat" parameter contains the categoryid, but is being
compared to a string like "contextid,categoryid" so was not being
matched correctly to exclude the current category from the list of
options.
2025-03-21 10:46:02 +00:00
Glenn Poder 91e18d9ea2 MDL-76668 navigation: Fix navigation for results in single activity 2025-03-21 13:51:38 +08:00
Huong Nguyen 508a4afaa7 Merge branch 'MDL-84446-405' of https://github.com/andrewnicols/moodle into MOODLE_405_STABLE 2025-03-21 11:17:52 +07:00
Huong Nguyen 381c4876f0 Merge branch 'MDL-84867-405' of https://github.com/roland04/moodle into MOODLE_405_STABLE 2025-03-21 09:05:48 +07:00
AMOS bot 2968116c9f Automatically generated installer lang files 2025-03-21 00:07:53 +00:00
Andrew Nicols 6e7c716eb3 Merge branch 'MDL-84803-405' of https://github.com/aanabit/moodle into MOODLE_405_STABLE 2025-03-21 07:56:07 +08:00
Paul Holden 8dc4480c50 Merge branch 'MDL-81655_405' of https://github.com/larsbonczek/moodle into MOODLE_405_STABLE 2025-03-20 15:14:24 +00:00
Amaia Anabitarte e0ed78c080 MDL-84803 mod_feedback: Make titles unique 2025-03-20 16:08:36 +01:00
Paul Holden 97bf649bc4 MDL-84538 lang: remove duplicated badge language string. 2025-03-20 15:04:29 +00:00
Paul Holden 649a58cf99 Merge branch 'MDL-84538-M405_fix-duplicated-language-strings' of https://github.com/ziegenberg/moodle into MOODLE_405_STABLE 2025-03-20 14:45:03 +00:00
Daniel Ziegenberg a44e02e755 MDL-84538 language: Remove duplicated lang string entries
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-20 13:57:40 +01:00
ferran 65f0345ec7 MDL-84940 block_section_links: omit subsections 2025-03-20 13:04:44 +01:00
Mikel Martín 7b759337f1 MDL-84867 tool_behat: Improve SCSS deprecation failure information
- Improve SCSS deprecated-styles @mixin to receive a paramenter of the
  deprecated selector.
- Update all the current deprecated styles that are using deprecated-styles @mixin
  to include the deprecated selector as parameter.
- Improve the 'look_for_deprecated_styles' behat function.
2025-03-20 10:40:57 +01:00
Huong Nguyen 6375c36911 Merge branch 'MDL-83535-MOODLE_405_STABLE' of https://github.com/TobiGa/moodle into MOODLE_405_STABLE 2025-03-20 15:43:29 +07:00
Paul Holden e4c81e3f5f MDL-84941 course: fix activity button label on end of section.
Where the button is rendered after all section content, we should
fix the ARIA label attribute to refer to the current section rather
than non-existing subsequent activity.
2025-03-19 19:41:51 +00:00
Sara Arjona df05a99128 Merge branch 'MDL-84683-MOODLE_405_STABLE' of https://github.com/jfederico/moodle into MOODLE_405_STABLE 2025-03-19 16:19:31 +01:00
Paul Holden a955ef2bca MDL-84820 moodlenet: correct activity modal icon size/alignment. 2025-03-19 10:25:55 +00:00
Tobias Garske 788dbe1cd1 MDL-83535 theme_boost: Prevent sticky-footer from linewrapping 2025-03-19 10:05:10 +00:00
ferran 38f8e58402 MDL-83469 core_courseformat: alternative new_module actions
The previous create_module actions uses section number instead of
section id. This produces several bugs when sections are moved around
the course in edit mode. This issue implements a new_module action with
all related mutations and webservices. The new one uses section id
instead of section number.
2025-03-19 10:06:34 +01:00
Jun Pataleta ef3f1c4625 Merge branch 'MDL-84905-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-19 13:18:11 +08:00
David Woloszyn 98ac01fd8c MDL-84893 core_message: Fix message drawer overlap and truncation 2025-03-19 13:58:04 +11:00
Huong Nguyen d79da7066e Merge branch 'MDL-84431-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-19 09:55:19 +07:00
Huong Nguyen 03e37cf42c Merge branch 'MDL-83499-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-19 09:46:16 +07:00
Huong Nguyen 770ff6e482 MDL-84907 backup: Fix invalid CTRL characters regex 2025-03-19 09:22:47 +07:00
Huong Nguyen 5dfdf96b5d MDL-84905 Behat: Fix I set the following administration settings failure 2025-03-19 09:17:19 +07:00
Sara Arjona d15172627c weekly release 4.5.3+ 2025-03-18 14:17:39 +01:00
Anders Rasmussen ec1e8dfb18 MDL-84112 bigbluebuttonbn: Added user output only if bbactivity is set 2025-03-18 11:30:07 +01:00
Andrew Gosali d0f7b7f504 MDL-83856 gradingform_guide: fix remark format to always be FORMAT_HTML 2025-03-18 16:30:59 +07:00
Andrew Gosali 8029fb707a MDL-80091 assign grade: select the first user when changing filter
(if the previously selected user is no longer in the filtered list)
2025-03-18 15:19:56 +07:00
Andrew Gosali 4fe75e75cb MDL-84539 report_participation: use capability viewanonymousevents 2025-03-18 11:32:12 +07:00
Andrew Nicols ec65d872e3 Merge branch 'MDL-84222-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-18 08:03:52 +08:00
Andrew Nicols d8bbf50962 Merge branch 'MDL-84541-405' of https://github.com/laurentdavid/moodle into MOODLE_405_STABLE 2025-03-18 07:18:12 +08:00
Laurent David 2da0c5dae6 MDL-84541 core_course: Do not check change when pressing reset
* When the course reset form is submitted, we acknowledge that form
has been changed so we don't need to watch it anymore
2025-03-17 15:30:36 +01:00
Huong Nguyen bf05268f96 Merge branch 'MDL-83591-405' of https://github.com/andrewgos/moodle into MOODLE_405_STABLE 2025-03-17 16:00:34 +07:00
Andrew Gosali 3d7656d713 MDL-83550 gradingform_rubric: fix submit no grade when remark disabled 2025-03-17 14:50:27 +07:00
Andrew Gosali 61b05eeb97 MDL-83591 grade: fix issue when item is already deleted
The deleted grade is causing the error while using its id that was previously saved in the session variable
2025-03-17 10:47:32 +07:00
Paul Holden a82df2e07a MDL-80337 availability: more robust checking for plugin class presence.
Co-authored-by: Dustin Brisebois <dustin.brisebois@lambdasolutions.net>
2025-03-16 19:27:29 +00:00
Daniel Ziegenberg 73cad3a670 MDL-84623 privacy: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:53:55 +01:00
Jun Pataleta b3931cdb95 Moodle release 4.5.3 2025-03-15 20:19:40 +08:00
Jun Pataleta fd5c871a97 NOBUG: Add upgrade notes 2025-03-15 20:19:40 +08:00
Andrew Nicols a09fd050ec MDL-84879 core: Remove stacktrace args from exceptions 2025-03-15 14:35:10 +08:00
Ilya Tregubov b3dedc5af3 MDL-81945 gradereport_singleview: Fix hidden grade handling.
Seems to become broken after IR refactoring.
2025-03-14 15:20:24 +00:00
Ilya Tregubov a61646a0d1 MDL-81945 gradereport_user: Don't reveal visibility by color.
Seems like dimmed_text class was added without proper check so
user can guess if item is hidden.
2025-03-14 15:20:24 +00:00
Ilya Tregubov e2fa2076e4 MDL-81945 gradereport_user: Behat tests for user report. 2025-03-14 15:20:24 +00:00
Ilya Tregubov ed4b5ee771 MDL-81945 gradereport_singleview: Behat tests for singleview report. 2025-03-14 15:20:24 +00:00
Ilya Tregubov f01cda2aeb MDL-81945 gradereport_grader: Behat tests for grader report 2025-03-14 15:20:24 +00:00
Ilya Tregubov db02eee7d5 MDL-81945 core_grades: create Behat step for grades action menu. 2025-03-14 15:20:24 +00:00
Ilya Tregubov 00e68b4589 MDL-81945 gradereport_singleview: Fix hidden grades handling.
If a user is lacking moodle/grade:viewhidden he should not be able
to view or modify grades.
2025-03-14 15:20:24 +00:00
Sara Arjona f6bb25b56f weekly release 4.5.2+ 2025-03-14 16:14:01 +01:00
Sara Arjona c01c06499b NOBUG: Add upgrade notes 2025-03-14 16:14:01 +01:00
Sara Arjona 3078c375c1 Merge branch 'MDL-83541-405-behat' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-14 11:14:33 +01:00
Huong Nguyen d7d509f436 MDL-83541 qtype_ddimageortext: Fix Behat failure 2025-03-14 16:55:29 +07:00
Huong Nguyen d058754256 MDL-83541 qtype_numerical: Fix incorrect test hints 2025-03-14 09:21:13 +01:00
Huong Nguyen 77d88f337a Merge branch 'MDL-83541-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE 2025-03-14 11:59:31 +07:00
Huong Nguyen 197fbf5537 MDL-83541 mod_quiz: Fix PHPUnit failure 2025-03-14 10:23:04 +07:00
Mark Johnson cfb7322101 MDL-83541 qtypes: Define excluded hash fields and test hints 2025-03-14 10:21:21 +07:00
Mark Johnson b7e44a928e MDL-83541 question/quiz: restoring questions with identical stamps
Historically it was possible, through a series of question restores,
moves and edits, to end up with multiple questions in the same
category with the same stamp, but differences in other question
or answer fields. This, combined with changes in versions, led
to errors when restoring or duplicating quizzes using these questions.

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

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

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

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

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

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

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

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

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

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

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

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

Also backports a change to the behat question generator to let
us set the value of fields on updated questions in the step.
2025-02-17 11:47:09 +00:00
Jonathon Fowler 1f4889e687 MDL-84551 tiny_aiplacement: fix generateimage quality selection 2025-02-17 11:29:46 +10:00
Leon Stringer 9d45e32f78 MDL-83195 mod_assign: Individual grade release
Fix pushing individual grades into the gradebook (as opposed to the
batch release of grades) when "Allow partial release of grades while
marking anonymously" is enabled.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The recommended workaround is to disable the shortcut.
2024-10-15 10:33:23 +08:00
Jake Dallimore 42079bb48d MDL-83423 mod_lti: fix JWK decoding when multiple keys missing alg
Related to MDL-77077, but was a case missed there. Now, any unusable
keys (i.e. can't be used during the JWT decode), are dropped from the
keyset if they don't have the 'alg' prop, preventing a 'missing alg'
exception during keyset parsing. Since these cannot be used during
decode, these aren't needed anyway.
2024-10-15 09:11:21 +08:00
AMOS bot c294a22dae Automatically generated installer lang files 2024-10-15 00:09:36 +00:00
Michael Pound bde5487a56 MDL-75724 tool_brickfield: Ensuring correct table headers pass checks. 2024-10-14 16:55:07 +00:00
Marina Glancy c0b2343245 MDL-83430 customfield_number: call display method from provider earlier 2024-10-14 11:39:56 +01:00
Marina Glancy ae500b5728 MDL-83430 customfield_number: fix storing activities number when 0 2024-10-14 11:39:51 +01:00
Leon Stringer 7597343964 MDL-83452 mod_assign: Remove add_body_class
Remove extraneous $PAGE->add_body_class('limitedwidth'), unneeded since
MDL-74031 added a call to this.
2024-10-14 08:43:48 +01:00
Huong Nguyen b311baf0bd Merge branch 'MDL-83381-405' of https://github.com/davewoloszyn/moodle into MOODLE_405_STABLE 2024-10-14 11:08:59 +07:00
AMOS bot d1c223071a Automatically generated installer lang files 2024-10-13 00:07:55 +00:00
Paul Holden 14f9c08355 MDL-83443 enrol: use defined role name in welcome message. 2024-10-11 14:35:22 +01:00
Jake Dallimore 9ec7e01527 weekly release 4.5+ 2024-10-11 10:55:02 +08:00
Jake Dallimore ce20b2f255 Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE 2024-10-11 10:54:54 +08:00
Safat 85bd222b2f MDL-83143 core_communication: Behat coverage for default to course name 2024-10-11 11:02:19 +11:00
Safat cf3d932d74 MDL-83143 core_course: Add course name as default for empty room name 2024-10-11 11:02:19 +11:00
Safat 0b47dfec7c MDL-83143: core_communication: Fix variable name typos 2024-10-11 11:02:19 +11:00
Jun Pataleta 8036733091 Merge branch 'MDL-82813-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE 2024-10-10 12:04:10 +08:00
vietlx426 a74e15c66b MDL-82570 themes: Help boxes not accessible if selected consecutively 2024-10-10 10:52:33 +07:00
Tobias Garske b7e1d77184 MDL-83255 core_course: Fix activitychooser recommended tab navigation 2024-10-10 10:12:28 +07:00
Jun Pataleta 5379d34827 Merge branch 'MDL-82912-405' of https://github.com/andelacruz/moodle into MOODLE_405_STABLE 2024-10-10 10:35:02 +08:00
Jun Pataleta 50e813478a Merge branch 'MDL-82812_405_toolbrickfieldfaicons' of https://github.com/brickfield/moodle into MOODLE_405_STABLE 2024-10-10 10:13:40 +08:00
Mikel Martín 4f699801b9 MDL-83283 mod_subsection: Fix subsection completion button margin 2024-10-10 09:08:16 +07:00
David Woloszyn 7beb6d7e82 MDL-83381 AI: Fix OpenAI provider config 2024-10-10 11:53:55 +11:00
Angelia Dela Cruz 1f1406d68c MDL-82912 mod_workshop: Behat to view assessment after workshop close 2024-10-09 16:26:56 +08:00
Huong Nguyen 17924add45 Merge branch 'MDL-83331_405' of https://github.com/timhunt/moodle into MOODLE_405_STABLE 2024-10-09 14:47:00 +07:00
AMOS bot 56293e0de4 Automatically generated installer lang files 2024-10-09 00:09:26 +00:00
Max Larkin 653c0937c6 MDL-82812 tool_brickfield: Ignore fa icons 2024-10-08 13:04:26 +01:00
Bas Brands 9fcb0eca01 MDL-70180 theme_boost: Allow form autoselect modal overflow
Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-10-08 09:36:11 +07:00
AMOS bot ff87bb5101 Automatically generated installer lang files 2024-10-08 00:07:49 +00:00
Paul Holden a271d9efc9 MDL-82580 report_log: preserve filter by individual user. 2024-10-07 20:15:35 +01:00
Paul Holden 3e18e85dce MDL-82813 group: correctly format group description property. 2024-10-07 17:58:34 +01:00
Tim Hunt 92fdfe834f MDL-83331 behat: enable navigation direct to mod/.../index.php 2024-10-07 12:05:09 +01:00
Tim Hunt f7c18e4e4b MDL-83070 question restore: recode links in hints 2024-10-07 11:54:20 +01:00
David Carrillo 2698647bcd MDL-83367 tasks: Apply trim() to pathtophp setting
- It fixes the problem that when "pathtophp" setting is stored with
whitespaces, the "Run now" button will still show up in the tasks list,
but the task will never run
2024-10-07 08:18:13 +02:00
Jun Pataleta 803c3d8977 MDL-83374 upgrade: add the 4.5.0 separation line to all upgrade scripts 2024-10-07 09:34:51 +07:00
Marina Glancy 62e776673a MDL-83002 theme_boost: tell behat to wait when initialising drawers 2024-10-03 15:50:28 +01:00
Mikel Martín 89c30cecd8 MDL-82548 courseformat: Fix courseindex cm anchors
In the course index the course modules links had incorrenct "href" (only the anchor) when
being displayed in a page different than course page. This patch regenerates the href for
cms in the course index when needed.
2024-10-01 11:53:52 +02:00
Andrew Nicols a5ac414521 MDL-83253 core: Ignore invalid components for deprecated cap info
When checking for deprecated capabilty info, if a component is invalid,
skip loading of that component.
2024-09-26 12:34:45 +08:00
Justus Dieckmann 1d848a78cf MDL-82838 tool_mfa: Prevent accidental resubmission of token 2024-08-20 16:46:01 +02:00
2919 changed files with 27883 additions and 10628 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
@@ -128,7 +128,7 @@ jobs:
- name: Setting up redis service
run: |
choco install redis-64 --version 3.0.503 --no-progress
choco install redis --version 5.0.7 --no-progress
nssm install redis redis-server
nssm start redis
+1 -1
View File
@@ -1 +1 @@
lts/iron
lts/jod
+265
View File
@@ -6,6 +6,271 @@ More detailed information on key changes can be found in the [Developer update n
The format of this change log follows the advice given at [Keep a CHANGELOG](https://keepachangelog.com).
## 4.5.5
### core
#### Added
- - Added is_site_registered_in_hub method in lib/classes/hub/api.php to
check if the site is registered or not.
- Added get_secret method in lib/classes/hub/registration.php to get site's secret.
For more information see [MDL-83448](https://tracker.moodle.org/browse/MDL-83448)
- Added a new optional param to adhoc_task_failed and scheduled_task_failed to allow skipping log finalisation when called from a separate task.
For more information see [MDL-84442](https://tracker.moodle.org/browse/MDL-84442)
- There is a new `core/page_title` Javascript module for manipulating the current page title
For more information see [MDL-84804](https://tracker.moodle.org/browse/MDL-84804)
### core_auth
#### Added
- A new method called `get_additional_upgrade_token_parameters` has been added to `oauth2_client` class. This will allow custom clients to override this one and add their extra parameters for upgrade token request.
For more information see [MDL-80380](https://tracker.moodle.org/browse/MDL-80380)
### core_user
#### Added
- New method `\core_user::get_dummy_fullname(...)` for returning dummy user fullname comprised of configured name fields only
For more information see [MDL-82132](https://tracker.moodle.org/browse/MDL-82132)
## 4.5.4
### core
#### Added
- Behat now supports email content verification using Mailpit.
You can check the contents of an email using the step `Then the email to "user@example.com" with subject containing "subject" should contain "content".`
To use this feature:
1. Ensure that Mailpit is running
2. Define the following constants in your `config.php`:
- `TEST_EMAILCATCHER_MAIL_SERVER` - The Mailpit server address (e.g. `0.0.0.0:1025`)
- `TEST_EMAILCATCHER_API_SERVER` - The Mailpit API server (qe.g. `http://localhost:8025`)
3. Ensure that the email catcher is set up using the step `Given an email catcher server is configured`.
For more information see [MDL-75971](https://tracker.moodle.org/browse/MDL-75971)
- The public method `get_slashargument` has been added to the `url` class.
For more information see [MDL-84351](https://tracker.moodle.org/browse/MDL-84351)
- A new method, `core_text::trim_ctrl_chars()`, has been introduced to clean control characters from text. This ensures cleaner input handling and prevents issues caused by invisible or non-printable characters
For more information see [MDL-84907](https://tracker.moodle.org/browse/MDL-84907)
### core_files
#### Added
- A new function `file_clear_draft_area()` has been added to delete the files in a draft area.
For more information see [MDL-72050](https://tracker.moodle.org/browse/MDL-72050)
## 4.5.3
### core_question
#### Added
- Question bank Condition classes can now implement a function called "filter_invalid_values($filterconditions)" to remove anything from the filterconditions array which is invalid or should not be there.
For more information see [MDL-83784](https://tracker.moodle.org/browse/MDL-83784)
#### Fixed
- Duplication or multiple restores of questions has been modified to avoid errors where a question with the same stamp already exists in the target category.
To achieve this all data for the question is hashed, excluding any ID fields.
The question data from the backup is first reformatted to match the questiondata structure returned by calling `get_question_options()` (see https://docs.moodle.org/dev/Question_data_structures#Representation_1:_%24questiondata). Common question elements will be handled automatically, but any elements that the qtype adds to the backup will need to be handled by overriding `restore_qtype_plugin::convert_backup_to_questiondata`. See `restore_qtype_match_plugin` as an example.
If a qtype plugin calls any `$this->add_question_*()` methods in its `restore_qtype_*_plugin::define_question_plugin_structure()` method, the ID fields used in these records will be excluded automatically.
If a qtype plugin defines its own tables with ID fields, it must define `restore_qtype_*_plugin::define_excluded_identity_hash_fields()` to return an array of paths to these fields within the question data. This should be all that is required for the majority of plugins. See the PHPDoc of `restore_qtype_plugin::define_excluded_identity_hash_fields()` for a full explanation of how these paths should be defined, and `restore_qtype_truefalse_plugin` for an example.
If the data structure for a qtype returned by calling `get_question_options()` contains data other than ID fields that are not contained in the backup structure or vice-versa, it will need to override `restore_qtype_*_plugin::remove_excluded_question_data()` to remove the inconsistent data. See `restore_qtype_multianswer_plugin` as an example.
For more information see [MDL-83541](https://tracker.moodle.org/browse/MDL-83541)
## 4.5.2
### core
#### Added
- A new core\ip_utils::normalize_internet_address() method is created to sanitize an IP address, a range of IP addresses, a domain name or a wildcard domain matching pattern.
Moodle previously allowed entries such as 192.168. or .moodle.org for certain variables (eg: $CFG->proxybypass). Since MDL-74289, these formats are no longer allowed. This method converts this informations into an authorized format. For example, 192.168. becomes 192.168.0.0/16 and .moodle.org becomes *.moodle.org.
Also a new core\ip_utils::normalize_internet_address_list() method is created. Based on core\ip_utils::normalize_internet_address(), this method normalizes a string containing a series of Internet addresses.
For more information see [MDL-79121](https://tracker.moodle.org/browse/MDL-79121)
#### Changed
- The `core_renderer::tag_list` function now has a new parameter named `displaylink`. When `displaylink` is set to `true`, the tag name will be displayed as a clickable hyperlink. Otherwise, it will be rendered as plain text.
For more information see [MDL-75075](https://tracker.moodle.org/browse/MDL-75075)
- The following test classes have been moved into autoloadable locations:
| Old location | New classname |
| --- | --- |
| `\core\tests\route_testcase` | `\core\tests\router\route_testcase` |
| `\core\router\mocking_route_loader` | `\core\tests\router\mocking_route_loader` |
For more information see [MDL-83968](https://tracker.moodle.org/browse/MDL-83968)
### core_completion
#### Added
- The method `count_modules_completed` now delegate the logic to count the completed modules to the DBMS improving the performance of the method.
For more information see [MDL-83917](https://tracker.moodle.org/browse/MDL-83917)
### core_courseformat
#### Fixed
- HTML IDs relating to section collapse/expand have been changed in the course format templates.
- core_courseformat/local/content/section/header #collapssesection{{num}} has been changed to #collapsesectionid{{id}}
- core_courseformat/local/content/section/content #coursecontentcollapse{{num}} had been changed to #coursecontentcollapseid{{id}}
For more information see [MDL-82679](https://tracker.moodle.org/browse/MDL-82679)
### core_question
#### Added
- The `get_bulk_actions()` method on the base `plugin_features_base` class has been changed to allow a qbank view object to be passed through. This is nullable and therefore optional for qbank plugins which don't need to do so.
For more information see [MDL-79281](https://tracker.moodle.org/browse/MDL-79281)
### core_reportbuilder
#### Added
- The `core_reportbuilder_testcase` class has been moved to new autoloaded `core_reportbuilder\tests\core_reportbuilder_testcase` location, affected tests no longer have to manually require `/reportbuilder/tests/helpers.php`
For more information see [MDL-84000](https://tracker.moodle.org/browse/MDL-84000)
### core_tag
#### Changed
- The `core_tag\taglist` class now includes a new property called `displaylink`, which has a default value of `true`. When `displaylink` is set to `true`, the tag name will be displayed as a clickable hyperlink. If `displaylink` is set to `false`, the tag name will be rendered as plain text instead.
For more information see [MDL-75075](https://tracker.moodle.org/browse/MDL-75075)
### mod_assign
#### Fixed
- The unit test for the privacy provider has been marked as final.
A number of core tests had been incorrectly configured to extend this test
but should instead be extending `\mod_assign\tests\provider_testcase`.
Any community plugins extending the `\mod_assign\privacy\provider_test` test
class should be updated to extend `\mod_assign\tests\provider_testcase` instead.
For more information see [MDL-81520](https://tracker.moodle.org/browse/MDL-81520)
### mod_quiz
#### Changed
- The `quiz_question_tostring` method now includes a new boolean parameter, `displaytaglink`. This parameter specifies whether the tag name in the question bank should be displayed as a clickable hyperlink (`true`) or as plain text (`false`).
For more information see [MDL-75075](https://tracker.moodle.org/browse/MDL-75075)
### tool_behat
#### Added
- New Behat step `\behat_general::the_url_should_match()` has been added to allow checking the current URL. You can use it to check whether a user has been redirected to the expected location.
e.g. `And the url should match "/mod/forum/view\.php\?id=[0-9]+"`
For more information see [MDL-83617](https://tracker.moodle.org/browse/MDL-83617)
## 4.5.1
### core
#### Added
- `\core\output\activity_header` now uses the `is_title_allowed()` method when setting the title in the constructor.
This method has been improved to give priority to the 'notitle' option in the theme config for the current page layout, over the top-level option in the theme.
For example, the Boost theme sets `$THEME->activityheaderconfig['notitle'] = true;` by default, but in its `secure` pagelayout, it has `'notitle' = false`.
This prevents display of the title in all layouts except `secure`.
For more information see [MDL-75610](https://tracker.moodle.org/browse/MDL-75610)
#### Changed
- All uses of the following PHPUnit methods have been removed as these methods are
deprecated upstream without direct replacement:
- `withConsecutive`
- `willReturnConsecutive`
- `onConsecutive`
Any plugin using these methods must update their uses.
For more information see [MDL-81308](https://tracker.moodle.org/browse/MDL-81308)
### core_courseformat
#### Added
- Add core_courseformat\base::invalidate_all_session_caches to reset course editor cache for all users when course is changed. This method can be used as an alternative to core_courseformat\base::session_cache_reset for resetting the cache for the current user in case the change in the course should be reflected for all users.
For more information see [MDL-83185](https://tracker.moodle.org/browse/MDL-83185)
### core_enrol
#### Changed
- The `after_user_enrolled` hook now contains a `roleid` property to allow for listeners to determine which role was assigned during user enrolment (if any)
The base enrolment `enrol_plugin::send_course_welcome_message_to_user` method also now accepts a `$roleid` parameter in order to correctly populate the `courserole` placeholder
For more information see [MDL-83432](https://tracker.moodle.org/browse/MDL-83432)
### core_form
#### Changed
- The `cohort` form element now accepts new `includes` option, which is passed to the corresponding external service to determine which cohorts to return (self, parents, all)
For more information see [MDL-83641](https://tracker.moodle.org/browse/MDL-83641)
### core_reportbuilder
#### Changed
- The `get_active_conditions` method of the base report class has a new `$checkavailable` parameter to determine whether to check the returned conditions availability
For more information see [MDL-82809](https://tracker.moodle.org/browse/MDL-82809)
### mod_quiz
#### Changed
- The `\mod_quiz\attempt_walkthrough_from_csv_test` unit test has been marked as final and should not be extended by other tests.
All shared functionality has been moved to a new autoloadable test-case:
`\mod_quiz\tests\attempt_walkthrough_testcase`.
To support this testcase the existing `$files` instance property should be replaced with a new static method, `::get_test_files`.
Both the existing instance property and the new static method can co-exist.
For more information see [MDL-81521](https://tracker.moodle.org/browse/MDL-81521)
## 4.5
### core
+4
View File
@@ -118,6 +118,10 @@ foreach ($settingspage->children as $childpage) {
}
$outputhtml .= html_writer::tag('div', '<!-- -->', array('class' => 'clearer'));
$outputhtml .= $setting->output_html($data);
if ($childpage->has_dependencies()) {
$opts = ['dependencies' => $childpage->get_dependencies_for_javascript()];
$PAGE->requires->js_call_amd('core/showhidesettings', 'init', [$opts]);
}
}
$outputhtml .= html_writer::end_tag('fieldset');
}
@@ -105,10 +105,9 @@ class task_log extends base {
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_fields("{$tablealias}.classname, {$tablealias}.id")
->add_field("{$tablealias}.classname")
->set_is_sortable(true)
->add_callback(static function($value, stdClass $row): string {
$classname = $row->classname;
->add_callback(static function(string $classname): string {
$output = '';
if (class_exists($classname)) {
$task = new $classname;
@@ -119,7 +118,6 @@ class task_log extends base {
$output .= \html_writer::tag('div', "\\{$classname}", [
'class' => 'small text-muted',
]);
$output = \html_writer::link(new \moodle_url('/admin/tasklogs.php', ['logid' => $row->id]), $output);
return $output;
});
@@ -20,10 +20,12 @@ use context_system;
use core_admin\reportbuilder\local\entities\task_log;
use core_reportbuilder\local\entities\user;
use core_reportbuilder\local\report\action;
use core_reportbuilder\system_report;
use html_writer;
use lang_string;
use moodle_url;
use pix_icon;
use core_reportbuilder\system_report;
use stdClass;
/**
* Task logs system report class implementation
@@ -89,7 +91,9 @@ class task_logs extends system_report {
* unique identifier
*/
public function add_columns(): void {
$columns = [
$entitymainalias = $this->get_entity('task_log')->get_table_alias('task_log');
$this->add_columns_from_entities([
'task_log:name',
'task_log:type',
'user:fullname',
@@ -99,14 +103,18 @@ class task_logs extends system_report {
'task_log:pid',
'task_log:database',
'task_log:result',
];
]);
$this->add_columns_from_entities($columns);
// Wrap the task name in a link.
$this->get_column('task_log:name')
->add_field("{$entitymainalias}.id")
->add_callback(static function(string $output, stdClass $row): string {
return html_writer::link(new moodle_url('/admin/tasklogs.php', ['logid' => $row->id]), $output);
});
// It's possible to override the display name of a column, if you don't want to use the value provided by the entity.
if ($column = $this->get_column('user:fullname')) {
$column->set_title(new lang_string('user', 'admin'));
}
// Rename the user fullname column.
$this->get_column('user:fullname')
->set_title(new lang_string('user', 'admin'));
// It's possible to set a default initial sort direction for one column.
$this->set_initial_sort_column('task_log:starttime', SORT_DESC);
@@ -119,16 +127,14 @@ class task_logs extends system_report {
* unique identifier
*/
protected function add_filters(): void {
$filters = [
$this->add_filters_from_entities([
'task_log:name',
'task_log:type',
'task_log:output',
'task_log:result',
'task_log:timestart',
'task_log:duration',
];
$this->add_filters_from_entities($filters);
]);
}
/**
+1 -1
View File
@@ -50,6 +50,6 @@ Example:
exit(0);
}
\core\session\manager::kill_all_sessions();
\core\session\manager::destroy_all();
exit(0);
+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;
+391
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>
@@ -4703,4 +4705,393 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.0" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.1" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="zend.exception_ignore_args" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingzendexceptionignoreargs" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+2 -2
View File
@@ -25,7 +25,7 @@ namespace core_adminpresets;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass core_adminpresets_generator
*/
class generator_test extends \advanced_testcase {
final class generator_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -180,7 +180,7 @@ class generator_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
+7 -7
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\helper
*/
class helper_test extends \advanced_testcase {
final class helper_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -84,7 +84,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
@@ -177,7 +177,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_item_provider(): array {
public static function add_item_provider(): array {
return [
'Setting without plugin' => [
'name' => 'settingname',
@@ -239,7 +239,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_plugin_provider(): array {
public static function add_plugin_provider(): array {
return [
'Plugin: enabled (using int)' => [
'type' => 'plugintype',
@@ -321,7 +321,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function change_default_preset_provider(): array {
public static function change_default_preset_provider(): array {
return [
'Starter preset' => [
'preset' => 'starter',
@@ -364,7 +364,7 @@ class helper_test extends \advanced_testcase {
'preset' => 'unexisting',
],
'Valid XML file' => [
'preset' => __DIR__ . '/fixtures/import_settings_plugins.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml'),
'settings' => [
'allowemojipicker' => 1,
'enableportfolios' => 1,
@@ -377,7 +377,7 @@ class helper_test extends \advanced_testcase {
],
],
'Invalid XML file' => [
'preset' => __DIR__ . '/fixtures/invalid_xml_file.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml'),
],
'Unexisting XML file' => [
'preset' => __DIR__ . '/fixtures/unexisting.xml',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_bloglevel
*/
class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
final class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -72,7 +72,7 @@ class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Save the bloglevel and set blog_menu block visibility to true' => [
'setttingvalue' => BLOG_USER_LEVEL,
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_sitesettext
*/
class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
final class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -66,7 +66,7 @@ class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Fullname: different value' => [
'settingname' => 'fullname',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_setting
*/
class adminpresets_setting_test extends \advanced_testcase {
final class adminpresets_setting_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -77,7 +77,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Core setting with the same value is not saved' => [
'category' => 'optionalsubsystems',
@@ -167,7 +167,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_attributes_values_provider(): array {
public static function save_attributes_values_provider(): array {
return [
'Plugin setting with the same value is not saved' => [
'category' => 'modsettinglesson',
+24 -11
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.
*/
@@ -368,7 +368,7 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function export_preset_provider(): array {
public static function export_preset_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -531,26 +531,32 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function import_preset_provider(): array {
public static function import_preset_provider(): array {
return [
'Import settings from an empty file' => [
'filecontents' => '',
'expectedpreset' => false,
],
'Import settings and plugins from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings_plugins.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
],
'Import only settings from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => false,
],
'Import settings and plugins from a valid XML file with Starter name, which will be marked as non-core' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_starter_name.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_starter_name.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
@@ -559,7 +565,9 @@ class manager_test extends \advanced_testcase {
'expectedpresetname' => 'Starter',
],
'Import settings from an invalid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/invalid_xml_file.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
@@ -567,20 +575,26 @@ class manager_test extends \advanced_testcase {
'expectedexception' => \Exception::class,
],
'Import unexisting settings category' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/unexisting_category.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'unexisting_category.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
],
'Import unexisting setting' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/unexisting_setting.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'unexisting_setting.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
'expecteddebugging' => true,
],
'Import valid settings with one unexisting setting too' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings_with_unexisting_setting.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings_with_unexisting_setting.xml'),
),
'expectedpreset' => true,
'expectedsettings' => false,
'expectedplugins' => false,
@@ -589,7 +603,6 @@ class manager_test extends \advanced_testcase {
];
}
/**
* Test the behaviour of delete_preset() method when the preset id doesn't exist.
*
@@ -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().
+7 -5
View File
@@ -34,8 +34,10 @@ admin_externalpage_setup('registrationmoodleorg');
$unregistration = optional_param('unregistration', false, PARAM_BOOL);
$confirm = optional_param('confirm', false, PARAM_BOOL);
// Consider the site 'registered' if records exist locally and at the hub.
$siteisregistered = \core\hub\registration::is_registered() && core\hub\api::is_site_registered_in_hub();
if ($unregistration && \core\hub\registration::is_registered()) {
if ($unregistration && $siteisregistered) {
if ($confirm) {
require_sesskey();
\core\hub\registration::unregister(false, false);
@@ -60,7 +62,7 @@ if (!$returnurl = optional_param('returnurl', null, PARAM_LOCALURL)) {
$returnurl = $isinitialregistration ? '/admin/index.php' : '/admin/registration/index.php';
}
$siteregistrationform = new \core\hub\site_registration_form();
$siteregistrationform = new \core\hub\site_registration_form(null, ['registered' => $siteisregistered]);
$siteregistrationform->set_data(['returnurl' => $returnurl]);
if ($fromform = $siteregistrationform->get_data()) {
@@ -86,7 +88,7 @@ echo $OUTPUT->header();
// Current status of registration.
$notificationtype = \core\output\notification::NOTIFY_ERROR;
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
$lastupdated = \core\hub\registration::get_last_updated();
if ($lastupdated == 0) {
$registrationmessage = get_string('pleaserefreshregistrationunknown', 'admin');
@@ -104,7 +106,7 @@ if (\core\hub\registration::is_registered()) {
}
// Heading.
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
echo $OUTPUT->heading(get_string('registerwithmoodleorgupdate', 'core_hub'));
} else if ($isinitialregistration) {
echo $OUTPUT->heading(get_string('registerwithmoodleorgcomplete', 'core_hub'));
@@ -117,7 +119,7 @@ echo $renderer->moodleorg_registration_message();
$siteregistrationform->display();
if (\core\hub\registration::is_registered()) {
if ($siteisregistered) {
// Unregister link.
$unregisterhuburl = new moodle_url("/admin/registration/index.php", ['unregistration' => 1]);
echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister mt-2');
+2 -1
View File
@@ -2189,10 +2189,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',
+2 -2
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;
@@ -84,7 +84,7 @@ class preset_test extends \advanced_testcase {
public function test_mixed_levels(): void {
// The problem here is that we cannot guarantee plugin contexts
// have unique short names, so we have to also support level numbers.
$xml = file_get_contents(__DIR__ . '/fixtures/mixed_levels.xml');
$xml = file_get_contents(self::get_fixture_path(__NAMESPACE__, 'mixed_levels.xml'));
$this->assertTrue(\core_role_preset::is_valid_preset($xml));
$preset = \core_role_preset::parse_preset($xml);
+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
+30 -1
View File
@@ -420,6 +420,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_general_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
new lang_string('configgeneralcontentbankcontent', 'backup'),
@@ -431,7 +437,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
['value' => 1, 'locked' => 0])
);
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_legacyfiles',
new lang_string('generallegacyfiles', 'backup'),
new lang_string('configlegacyfiles', 'backup'), array('value' => 1, 'locked' => 0)));
@@ -454,12 +459,24 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_badges',
new lang_string('generalbadges', 'backup'),
new lang_string('configgeneralbadges', 'backup'),
['value' => 0, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_calendarevents', new lang_string('generalcalendarevents','backup'), new lang_string('configgeneralcalendarevents','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_questionbank', new lang_string('generalquestionbank','backup'), new lang_string('configgeneralquestionbank','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_groups',
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -589,6 +606,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_groups', new lang_string('generalgroups', 'backup'),
new lang_string('configgeneralgroups', 'backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), 1));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
1,
));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -668,6 +691,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('restore/restore_general_competencies',
new lang_string('generalcompetencies', 'backup'),
new lang_string('configrestorecompetencies', 'backup'), array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'restore/restore_general_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configrestorecustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('restore/restore_general_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
new lang_string('configrestorecontentbankcontent', 'backup'), array('value' => 1, 'locked' => 0)));
+10 -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"
+2 -2
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.
*/
@@ -85,7 +85,7 @@ class set_block_protection_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_provider(): array {
public static function execute_provider(): array {
return [
[
'block_login',
+3 -3
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.
*
@@ -72,7 +72,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_editor_provider(): array {
public static function execute_editor_provider(): array {
$pluginmanager = \core_plugin_manager::instance();
$allplugins = array_keys($pluginmanager->get_plugins_of_type('editor'));
@@ -142,7 +142,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
$this->assertIsArray(set_plugin_order::execute($plugin, 1));
}
public function execute_non_orderable_provider(): array {
public static function execute_non_orderable_provider(): array {
return [
// Activities do not support ordering.
['mod_assign'],
+2 -2
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.
*
@@ -66,7 +66,7 @@ class set_plugin_state_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_standard_provider(): array {
public static function execute_standard_provider(): array {
$generatetestsfor = function (string $plugin): array {
return [
[
@@ -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
@@ -110,7 +105,7 @@ class task_logs_test extends core_reportbuilder_testcase {
*
* @return array[]
*/
public function datasource_filters_provider(): array {
public static function datasource_filters_provider(): array {
return [
'Filter name' => ['task_log:name', [
'task_log:name_values' => [send_schedules::class],
@@ -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.
@@ -70,7 +70,7 @@ class base_test extends \advanced_testcase {
*
* @return array
*/
public function log_provider(): array {
public static function log_provider(): array {
return [
// Action = base.
'action=base and mode = show' => [
@@ -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.
@@ -156,7 +156,7 @@ class export_test extends \advanced_testcase {
*
* @return array
*/
public function export_execute_provider(): array {
public static function export_execute_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -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.
@@ -190,7 +190,7 @@ class import_test extends \advanced_testcase {
*
* @return array
*/
public function import_execute_provider(): array {
public static function import_execute_provider(): array {
$fixturesfolder = __DIR__ . '/../../../../../presets/tests/fixtures/';
return [
@@ -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
+9
View File
@@ -1,5 +1,14 @@
# tool_behat Upgrade notes
## 4.5.2
### Added
- New Behat step `\behat_general::the_url_should_match()` has been added to allow checking the current URL. You can use it to check whether a user has been redirected to the expected location.
e.g. `And the url should match "/mod/forum/view\.php\?id=[0-9]+"`
For more information see [MDL-83617](https://tracker.moodle.org/browse/MDL-83617)
## 4.5
### Added
+4
View File
@@ -36,6 +36,10 @@ if (function_exists('opcache_reset')) {
define('CLI_SCRIPT', true);
define('CACHE_DISABLE_ALL', true);
// It makes no sense to use BEHAT_CLI for this script (the Behat launch scripts expect to start
// from the normal environment), so in case user has set tne environment variable, disable it.
putenv('BEHAT_CLI=0');
// Basic functions.
require_once(__DIR__ . '/../../../../lib/clilib.php');
require_once(__DIR__ . '/../../../../lib/behat/lib.php');
+4
View File
@@ -31,6 +31,10 @@ define('ABORT_AFTER_CONFIG', true);
define('CACHE_DISABLE_ALL', true);
define('NO_OUTPUT_BUFFERING', true);
// It makes no sense to use BEHAT_CLI for this script (the Behat launch scripts expect to start
// from the normal environment), so in case user has set tne environment variable, disable it.
putenv('BEHAT_CLI=0');
require_once(__DIR__ .'/../../../../config.php');
require_once(__DIR__.'/../../../../lib/clilib.php');
require_once(__DIR__.'/../../../../lib/behat/lib.php');
+4
View File
@@ -39,6 +39,10 @@ define('NO_OUTPUT_BUFFERING', true);
define('IGNORE_COMPONENT_CACHE', true);
define('ABORT_AFTER_CONFIG', true);
// It makes no sense to use BEHAT_CLI for this script (the Behat launch scripts expect to start
// from the normal environment), so in case user has set tne environment variable, disable it.
putenv('BEHAT_CLI=0');
require_once(__DIR__ . '/../../../../lib/clilib.php');
// CLI options.
+4
View File
@@ -33,6 +33,10 @@ if (isset($_SERVER['REMOTE_ADDR'])) {
die(); // No access from web!.
}
// It makes no sense to use BEHAT_CLI for this script (the Behat launch scripts expect to start
// from the normal environment), so in case user has set tne environment variable, disable it.
putenv('BEHAT_CLI=0');
// Basic functions.
require_once(__DIR__ . '/../../../../lib/clilib.php');
require_once(__DIR__ . '/../../../../lib/behat/lib.php');
@@ -0,0 +1,61 @@
@tool @tool_behat
Feature: Frozen clock in Behat
In order to write tests that depend on the current system time
As a test writer
I need to set the time using a Behat step
Background:
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "activities" exist:
| activity | course | name | idnumber | externalurl |
| url | C1 | Fixture | url1 | #wwwroot#/admin/tool/behat/tests/fixtures/core/showtime.php |
| forum | C1 | TestForum | forum1 | |
Scenario: Time has been frozen
# Set up 2 forum discussions at different times. This tests the clock in the Behat CLI process.
Given the time is frozen at "2024-03-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
And the time is frozen at "2024-08-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject2 | Message2 |
When I am on the "TestForum" "forum activity" page logged in as admin
Then I should see "1 Mar 2024" in the "Subject1" "table_row"
And I should see "1 Aug 2024" in the "Subject2" "table_row"
# Also view time on the fixture page. This tests the clock for Behat web server requests.
And I am on the "Fixture" "url activity" page
And I should see "Behat time is not the same as real time"
# This Unix time corresponds to 12:34:56 in Perth time zone.
And I should see "Unix time 1722486896"
And I should see "Date-time 2024-08-01 12:34:56"
# This scenario is second, to verify that the clock automatically goes back to normal after test.
Scenario: Time is normal
Given the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
When I am on the "TestForum" "forum activity" page logged in as admin
# The time should be the real current time, not the frozen time.
Then I should see "## today ##%d %b %Y##" in the "Subject1" "table_row"
And I am on the "Fixture" "url activity" page
And I should see "Behat time is the same as real time"
Scenario: Time is frozen and then unfrozen
Given the time is frozen at "2024-03-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
And the time is no longer frozen
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject2 | Message2 |
When I am on the "TestForum" "forum activity" page logged in as admin
Then I should see "1 Mar 2024" in the "Subject1" "table_row"
# The time should be the real current time, not the frozen time for this entry.
And I should see "## today ##%d %b %Y##" in the "Subject2" "table_row"
And I am on the "Fixture" "url activity" page
And I should see "Behat time is the same as real time"
@@ -46,14 +46,14 @@ 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.
*
* @return array of value and expectation pairs to be tested.
*/
public function provider_test_set_get_value() {
public static function provider_test_set_get_value(): array {
return [
'null' => [null, null],
'int' => [3, 3],
@@ -68,7 +68,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @param mixed $value value to be set.
* @param mixed $expectation value to be checked.
* @dataProvider provider_test_set_get_value()
* @dataProvider provider_test_set_get_value
*/
public function test_set_get_value($value, $expectation): void {
$session = $this->createMock(Session::class);
@@ -85,7 +85,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @return array of decsep, value, match and result pairs to be tested.
*/
public function provider_test_matches() {
public static function provider_test_matches(): array {
return [
'lazy true' => ['.', 'hello', 'hello', true],
'lazy false' => ['.', 'hello', 'bye', false],
@@ -113,7 +113,7 @@ class behat_form_text_test extends \basic_testcase {
* @param mixed $value value to be set.
* @param mixed $match value to be matched.
* @param bool $result expected return status of the function.
* @dataProvider provider_test_matches()
* @dataProvider provider_test_matches
*/
public function test_matches($decsep, $value, $match, $result): void {
global $CFG;
@@ -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
+52
View File
@@ -0,0 +1,52 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Fixture to show the current server time using \core\clock.
*
* @package tool_behat
* @copyright 2024 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// phpcs:disable moodle.Files.RequireLogin.Missing
require(__DIR__ . '/../../../../../../config.php');
defined('BEHAT_SITE_RUNNING') || die('Behat fixture');
$PAGE->set_context(\context_system::instance());
$PAGE->set_url(new \moodle_url('/admin/tool/behat/tests/fixtures/core/showtime.php'));
echo $OUTPUT->header();
$clock = \core\di::get(\core\clock::class);
$dt = $clock->now();
$realbefore = time();
$time = $clock->time();
$realafter = time();
echo html_writer::div('Unix time ' . $time);
echo html_writer::div('Date-time ' . $dt->format('Y-m-d H:i:s'));
echo html_writer::div('TZ ' . $dt->getTimezone()->getName());
if ($time >= $realbefore && $time <= $realafter) {
echo html_writer::div('Behat time is the same as real time');
} else {
echo html_writer::div('Behat time is not the same as real time');
}
echo $OUTPUT->footer();
+6 -10
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(
@@ -107,11 +103,11 @@ class manager_util_test extends \advanced_testcase {
*/
private function get_behat_config_util($behatconfigutil, $notheme = false) {
// Create a map of arguments to return values.
$map = array(
array('withfeatures', __DIR__.'/fixtures/theme/withfeatures'),
array('nofeatures', __DIR__.'/fixtures/theme/nofeatures'),
array('defaulttheme', __DIR__.'/fixtures/theme/defaulttheme'),
);
$map = [
['withfeatures', self::get_fixture_path(__NAMESPACE__, 'theme/withfeatures')],
['nofeatures', self::get_fixture_path(__NAMESPACE__, 'theme/nofeatures')],
['defaulttheme', self::get_fixture_path(__NAMESPACE__, 'theme/defaulttheme')],
];
// List of themes is const for test.
if ($notheme) {
$themelist = array('defaulttheme');
@@ -410,13 +410,13 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
$pos3 = stripos($fontsize, 'px');
if ($pos1 !== false) {
$rem = substr($fontsize, 0, -3);
$newfontsize = $newfontsize * $rem;
$newfontsize = is_numeric($rem) ? $newfontsize * $rem : $newfontsize;
} else if ($pos2 !== false) {
$em = substr($fontsize, 0, -2);
$newfontsize = $newfontsize * $em;
$newfontsize = is_numeric($em) ? $newfontsize * $em : $newfontsize;
} else if ($pos3 !== false) {
$px = substr($fontsize, 0, -2);
$newfontsize = 0.75 * $px;
$newfontsize = is_numeric($px) ? 0.75 * $px : $newfontsize;
} else if (in_array($fontsize, array_keys($this->fontsizenames))) {
$newfontsize = $this->fontsizenames[$fontsize];
} else {
@@ -16,7 +16,7 @@
namespace tool_brickfield\local\htmlchecker\common\checks;
use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_tag_test;
use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_test;
/**
* Brickfield accessibility HTML checker library.
@@ -28,11 +28,25 @@ use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_tag_test;
* @copyright 2020 onward: Brickfield Education Labs, www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class i_is_not_used extends brickfield_accessibility_tag_test {
class i_is_not_used extends brickfield_accessibility_test {
/** @var int The default severity code for this test. */
public $defaultseverity = \tool_brickfield\local\htmlchecker\brickfield_accessibility::BA_TEST_SEVERE;
/** @var string The tag this test will fire on. */
public $tag = 'i';
/**
* Check for any i elements and flag them as errors
* while allowing font awesome icons to be used.
*/
public function check(): void {
foreach ($this->get_all_elements('i') as $element) {
// Ensure this is not a font awesome icon with aria-hidden.
if (str_contains($element->getAttribute('class'), 'fa-') && $element->getAttribute('aria-hidden') === 'true') {
continue;
}
$this->add_report($element);
}
}
}
@@ -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);
}
}
@@ -46,7 +46,7 @@ class table_data_should_have_th extends brickfield_accessibility_table_test {
foreach ($tr->childNodes as $th) {
if ($this->property_is_equal($th, 'tagName', 'th')) {
break 3;
} else {
} else if ($th->nodeName !== '#text') {
$this->add_report($table);
break 3;
}
@@ -57,7 +57,7 @@ class table_data_should_have_th extends brickfield_accessibility_table_test {
foreach ($child->childNodes as $th) {
if ($this->property_is_equal($th, 'tagName', 'th')) {
break 2;
} else {
} else if ($th->nodeName !== '#text') {
$this->add_report($table);
break 2;
}
@@ -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';
@@ -32,7 +32,7 @@ require_once('all_checks.php');
* Class test_css_text_has_contrast_test
* @covers \tool_brickfield\local\htmlchecker\brickfield_accessibility
*/
class css_text_has_contrast_test extends all_checks {
final class css_text_has_contrast_test extends all_checks {
/** @var string The check type. */
protected $checktype = 'css_text_has_contrast';
@@ -227,6 +227,18 @@ EOD;
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with calculated size colour values. */
private $calculatedfail = <<<EOD
<body><p style="color:#EF0000; background-color:white; font-size: calc(0.90375rem + 0.045vw)">
This is not contrasty enough.</p></body>
EOD;
/** @var string HTML with calculated size colour values. */
private $calculatedpass = <<<EOD
<body><p style="color:#E60000; background-color:white; font-size: calc(0.90375rem + 0.045vw);">
This is contrasty enough.</p></body>
EOD;
/**
* Test for the area assign intro
*/
@@ -458,4 +470,20 @@ EOD;
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for calculated (12pt) text with insufficient contrast of 4.49.
*/
public function test_check_for_calculated_fail(): void {
$results = $this->get_checker_results($this->calculatedfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for calculated (12pt) text with sufficient contrast of 4.81.
*/
public function test_check_for_calculated_pass(): void {
$results = $this->get_checker_results($this->calculatedpass);
$this->assertEmpty($results);
}
}
@@ -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';
@@ -30,8 +30,10 @@ require_once('all_checks.php');
/**
* Class i_is_not_used_testcase
*
* @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';
@@ -71,4 +73,13 @@ EOD;
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
/**
* Test for font awesome icon.
*/
public function test_fa_icon(): void {
$html = '<div><i class="fa fa-user"></i><i>Hello there</i><i class="fa fa-address-book" aria-hidden="true"></i></div>';
$results = $this->get_checker_results($html);
$this->assertCount(2, $results);
}
}
@@ -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';
@@ -30,8 +30,10 @@ require_once('all_checks.php');
/**
* Class table_data_should_have_th_test
*
* @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';
@@ -113,6 +115,117 @@ EOD;
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass3 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<thead>
<tr>
<th>
This is table heading
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass4 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<tr>
<th>
This is table heading
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass5 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<thead>
<tr>
<th>
This is table heading
</th>
</tr>
</thead>
<tbody>
<tr>
<th>
This is a table heading in table data
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass6 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<tbody>
<tr>
<th>
This is a table heading in table data
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/**
* Test that th does not exist
@@ -134,5 +247,17 @@ EOD;
$results = $this->get_checker_results($this->htmlpass2);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass3);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass4);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass5);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass6);
$this->assertEmpty($results);
}
}
@@ -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';

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