Compare commits

...

2405 Commits

Author SHA1 Message Date
Mihail Geshoski ffb6475f6a Moodle release 5.0.1 2025-06-06 12:32:05 +08:00
Mihail Geshoski a237da2cd7 NOBUG: Add upgrade notes 2025-06-06 12:32:05 +08:00
Sara Arjona 5f0de664bd weekly release 5.0+ 2025-06-05 16:43:29 +02:00
Sara Arjona c32e894dc2 NOBUG: Add upgrade notes 2025-06-05 16:43:28 +02:00
Michael Hawkins a98bb76076 MDL-83762 core_files: Bind resolve IPs and ports to cURL calls 2025-06-05 12:09:36 +07:00
Michael Hawkins 6d240f17ae Merge branch 'MDL-85571-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-05 12:34:37 +08:00
Mihail Geshoski 5f265a8be5 Merge branch 'MDL-85645-500' of https://github.com/lameze/moodle into MOODLE_500_STABLE 2025-06-05 12:31:56 +08:00
Mihail Geshoski 39fb6431d0 Merge branch 'MDL-85556_500_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_500_STABLE 2025-06-05 12:25:44 +08:00
Vincent Schneider 94d5d89e4b MDL-84518 course: improved course visibility state handling 2025-06-05 11:22:11 +07:00
Michael Hawkins 7db7444d53 Merge branch 'MDL-80380-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-05 12:19:35 +08:00
Jun Pataleta 9d8cf5fb22 Merge branch 'MDL-85450-500' of https://github.com/rjnl/moodle into MOODLE_500_STABLE 2025-06-05 12:15:48 +08:00
Huong Nguyen d0a00b74d8 MDL-80380 core_auth: Add upgrade note 2025-06-05 11:12:27 +07:00
Huong Nguyen 1db743ea9a MDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email 2025-06-05 11:12:22 +07:00
Mihail Geshoski 971f1fc25f Merge branch 'MDL-69765-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-06-05 12:10:56 +08:00
Jun Pataleta 571990b7de Merge branch 'MDL-84941-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-05 12:08:39 +08:00
Mihail Geshoski 45ed9e9127 Merge branch 'MDL-85072-500' of https://github.com/olivabigyo/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Mihail Geshoski 1fbd0fd3ee Merge branch 'MDL-83654-500-5' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Mihail Geshoski 22f52b9b4a Merge branch 'MDL-85369_500' of https://github.com/agaranin/moodle into MOODLE_500_STABLE 2025-06-05 11:00:24 +07:00
Martin Gauk db8f7fc95a MDL-85488 mathjax: refactor loader to enhance configuration and loading 2025-06-05 11:00:24 +07:00
Mark Johnson 7ac6e421ab MDL-85323 core: Don't cache the login page 2025-06-05 11:00:12 +07:00
meirzamoodle 07a58bdb33 MDL-85375 libraries: Escaping a query parameter on pg_insert_id() 2025-06-05 01:34:18 +00:00
Vincent Schneider dfec066e2e MDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks 2025-06-05 01:34:18 +00:00
Huong Nguyen 847a39b6d5 MDL-79993 course: Fix PHPUnit failure 2025-06-05 01:34:18 +00:00
raortegar 4a2d2b54b2 MDL-79993 course: Improve user access to recent courses service 2025-06-05 01:34:18 +00:00
Vincent Schneider 7979e44436 MDL-84497 badges: fix missing action sesskey checks. 2025-06-05 01:34:18 +00:00
andelacruz e0e626f684 MDL-85645 mod_quiz: Behat to display questionbank name of quiz question. 2025-06-05 09:28:58 +08:00
Jun Pataleta 98a80ac3ca MDL-85239 mod_quiz: Use visually-hidden instead of deprecated sr-only 2025-06-05 09:26:07 +08:00
Jun Pataleta 0f8951ce28 Merge branch 'MDL-85239-500' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_500_STABLE 2025-06-05 09:22:50 +08:00
Jun Pataleta f26f018876 Merge branch 'MDL-84804-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-05 08:12:39 +08:00
Sara Arjona 637f6dc508 Merge branch 'MDL-82069-500' of https://github.com/aanabit/moodle into MOODLE_500_STABLE 2025-06-04 15:37:00 +02:00
Paul Holden 9bed548080 MDL-84804 output: amend page title when navigating dynamic tabs.
Prepend the current tab name to the page title, to ensure we can
easily identify the current page/tab and that it is both unique
and accessible.
2025-06-04 14:07:38 +01:00
Paul Holden 410747af21 MDL-84804 javascript: new module for manipulating the page title. 2025-06-04 14:07:21 +01:00
cescobedo e20e2c044b Merge branch 'MDL-85273-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-04 12:59:13 +02:00
Jun Pataleta 03b1a727b6 Merge branch 'MDL-85041-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-04 17:48:18 +08:00
Jun Pataleta a92df9e0ee MDL-85041 core: Make methods calling announceChanges async as well 2025-06-04 17:33:18 +08:00
meirzamoodle 25f8dd9d63 MDL-85041 core: Improve autocomplete/tag a11y for assistive tech
- Updated autocomplete behavior to announce dynamic changes
via ARIA live regions
- Fixed focus management for keyboard and screen reader navigation
- Added proper role/aria tags for interactive tag components
2025-06-04 17:33:17 +08:00
Huong Nguyen 72c71a1f89 MDL-85571 mod_assign: Improve PHPUnit tests 2025-06-04 12:50:33 +07:00
raortegar a52d4ed032 MDL-85571 mod_assign: Add visibility check to due digest notification 2025-06-04 12:50:33 +07:00
Jun Pataleta c947a7c303 Merge branch 'MDL-85507-500-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE 2025-06-04 11:58:12 +08:00
Huong Nguyen 41c19a5e02 Merge branch 'MDL-84732-m500' of https://github.com/sammarshallou/moodle into MOODLE_500_STABLE 2025-06-04 10:53:19 +07:00
Mihail Geshoski 301ae93c4a Merge branch 'MDL-84432-500' of https://github.com/HuongNV13/moodle into MOODLE_500_STABLE 2025-06-04 10:47:05 +08:00
Huong Nguyen d207b50abf MDL-84432 core: Use discovery endpoint for Microsoft OAuth2 service
- Instead of creating the endpoints manually, use the OpenId
configuration endpoint to auto-configure endpoints
- Updates user field mappings so they map the new OpenId userinfo fields
2025-06-04 08:36:50 +07:00
Amaia Anabitarte c1552bc519 Merge branch 'MDL-85471-500' of https://github.com/junpataleta/moodle into MOODLE_500_STABLE 2025-06-03 16:18:59 +02:00
cescobedo b2f4f7ab62 Merge branch 'MDL-85398-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 15:51:32 +02:00
Amaia Anabitarte 50d9f8f70e Merge branch 'MDL-85327-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 13:37:38 +02:00
cescobedo 9bc8fe3bc1 Merge branch 'MDL-85326-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-06-03 13:10:46 +02:00
Jun Pataleta a716da64af Merge branch 'MDL-85467-500' of https://github.com/yusufwib01/moodle into MOODLE_500_STABLE 2025-06-03 17:28:35 +08:00
Paul Holden 290104c964 MDL-85326 theme_boost: hide footer popover icon on small screens.
Fixes regression from add6f71d which forced `.btn-icon` display.

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

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

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

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

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

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

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

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

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

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

This change reworks MDL-73626's fix for the same issue for releasing
multiple grades in a batch operation.
2025-04-16 09:39:37 +07:00
Paul Holden e2f4f23f34 MDL-82132 user: less restrictive returning first/lastname details.
The `viewfullnames` capability check was overeager in restricting
the inclusion of user first and lastname properties in the returned
structure. Especially given that the same data was almost always
present in the fullname property of the same structure.
2025-04-15 16:05:39 +01:00
Paul Holden 5a28a54627 MDL-82132 user: re-factor code for generating dummy user fullname. 2025-04-15 16:05:28 +01:00
Sara Arjona 1e3f359acf Merge branch 'MDL-84149-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 16:44:58 +02:00
Paul Holden 14bf5bd303 MDL-84140 course: more resilient check for activity footer component. 2025-04-15 16:31:14 +02:00
Paul Holden 803b561f80 MDL-83990 course: ensure course start/end dates set in external call. 2025-04-15 16:18:40 +02:00
Paul Holden 2bafdb41ab MDL-83537 check: confirm presence of instance action link. 2025-04-15 16:09:22 +02:00
Jun Pataleta 18a588063e Merge branch 'MDL-83979-url-always-proxy' of https://github.com/brendanheywood/moodle into MOODLE_500_STABLE 2025-04-15 20:38:56 +08:00
Sara Arjona d5c3f2325d Merge branch 'MDL-55034-500' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 13:36:44 +02:00
Huong Nguyen afc530a43f Merge branch 'MDL-85207-500' of https://github.com/sarjona/moodle into MOODLE_500_STABLE 2025-04-15 18:30:34 +07:00
Paul Holden 1ba74349e7 MDL-78381 course: observe default "showactivitydates" in external call. 2025-04-15 11:36:49 +02:00
Paul Holden 0d9d1ff504 MDL-80337 availability: more robust checking for plugin class presence.
Co-authored-by: Dustin Brisebois <dustin.brisebois@lambdasolutions.net>
2025-04-15 11:30:30 +02:00
Sara Arjona fae86af494 MDL-85207 glossary: Add missing step for autolink behat test 2025-04-15 10:34:37 +02:00
Paul Holden e1c750b49d MDL-84149 gradereport_grader: better support for collapse preferences.
The privacy provider is now resilient against missing courses, and also
supports retrieving preferences from multiple courses for the user.
2025-04-15 07:32:15 +01:00
Huong Nguyen 11a31a6b2c Merge branch 'MDL-85179-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Huong Nguyen 68cdd9d50c Merge branch 'MDL-85195-500' of https://github.com/lucaboesch/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona e5b9a12966 Merge branch 'MDL-62230' of https://github.com/paulholden/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 033447ee87 Merge branch 'MDL-81454-main' of https://github.com/daniil-berg/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 7195df2ca1 Merge branch 'MDL-83550-main' of https://github.com/andrewgos/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 17f0b61b1d Merge branch 'MDL-78886-main' of https://github.com/mwehr/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona bf943db69e Merge branch 'MDL-66584-master' of https://github.com/danghieu1407/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona 3b62816190 Merge branch 'MDL-84833-main' of https://github.com/ferranrecio/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona c9defe656a Merge branch 'MDL-79464-main' of https://github.com/mihailges/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Sara Arjona cc73f24d4f Merge branch 'MDL-84937' of https://github.com/jfederico/moodle into MOODLE_500_STABLE 2025-04-15 08:31:55 +02:00
Wehr Mario f098bcde4f MDL-78886 assignfeedback_editpdf: Fix broken next page button in PDFView
Credits go to Cédric Gerbault cdgerbault@gmail.com for providing the fix.
2025-04-15 08:31:53 +02:00
ferran 80af23cdd3 MDL-84833 course: completion feedback messages 2025-04-15 08:31:53 +02:00
jfederico 26f7f7ef21 MDL-84937 mdl_bigbluebuttonbn: Hide Settings for RecordingsOnly 2025-04-15 08:31:52 +02:00
Paul Holden 6a462b63f1 MDL-55034 blog: update external blog deletion to not leak sesskey. 2025-04-14 17:32:29 +01:00
Paul Holden ad48d8ee81 MDL-85202 core: update list of stale files for 5.0 release. 2025-04-14 17:07:59 +01:00
ferran 377e0b4e46 MDL-85107 calendar: fix humandate year display 2025-04-14 12:46:01 +02:00
Luca Bösch 561842d7fe MDL-85195 block_myoverview: colour the button as in Bootstrap 4. 2025-04-14 11:54:00 +02:00
Luca Bösch f02a3572e2 MDL-85179 mod_data: colour the buttons upon creation as in Bootstrap 4. 2025-04-14 11:36:09 +02:00
Daniel Ziegenberg f721c97a19 MDL-84625 analytics: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-04-14 10:05:36 +02:00
Jun Pataleta 6f6b960cf8 MDL-85187 upgrade: Add the 5.0.0 separation line to all upgrade scripts 2025-04-14 09:32:14 +07:00
James C 4e6310fbe8 MDL-84520 course: CM anchor scrolls to specified CM 2025-04-14 12:19:07 +12:00
Jun Pataleta 78e8601783 Moodle release 5.0 2025-04-13 09:54:15 +08:00
Jun Pataleta f933606dec NOBUG: Add upgrade notes 2025-04-13 09:54:13 +08:00
Huong Nguyen 095a863674 Moodle release 5.0rc3 2025-04-11 22:03:06 +07:00
Huong Nguyen 7ac32003f7 NOBUG: Add upgrade notes 2025-04-11 22:03:06 +07:00
Jun Pataleta ccecfaa89f Merge branch 'MDL-83994-fix' of https://github.com/sarjona/moodle 2025-04-11 19:23:18 +08:00
Huong Nguyen 2fd810c898 MDL-72704 message: Fix fetching for user has already contacted 2025-04-11 17:45:43 +08:00
Sara Arjona 1f4313b4a9 MDL-83994 course: Improve PHPUnit tests for delete_section 2025-04-11 11:33:45 +02:00
Jun Pataleta 0a25c4cb8f Merge branch 'MDL-85155-main' of https://github.com/HuongNV13/moodle 2025-04-11 13:59:00 +08:00
Huong Nguyen 38b22124bf MDL-85155 filter_mathmaxloader: Fix local hosted instance loading 2025-04-11 12:06:08 +07:00
Sara Arjona 06b9666ed7 Merge branch 'MDL-85139-main-2' of https://github.com/junpataleta/moodle 2025-04-11 07:05:08 +02:00
Paul Holden bd6ec0ac84 MDL-84865 cohort: improve system report validation of parameters. 2025-04-11 12:46:16 +08:00
Jun Pataleta bb65effe41 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:17:52 +08:00
Stevani Andolo a8179842b4 MDL-72704 message: Fix fetching of conversation member info 2025-04-11 12:17:52 +08:00
raortegar ff9bbd6d9e MDL-85104 lib: Add additional check to local URLs params. 2025-04-11 10:21:40 +07:00
Jun Pataleta 5e3047aa40 Merge branch 'MDL-85115-main' of https://github.com/HuongNV13/moodle 2025-04-11 11:12:05 +08:00
James C 765f2ded25 MDL-83994 course: Respect course_can_delete_section() in AJAX 2025-04-11 12:54:47 +10:00
Paul Holden 630fbf6230 MDL-84473 repository_equella: safer unserializing of file references. 2025-04-11 09:51:08 +07:00
Jun Pataleta f31a3f2529 Merge branch 'MDL-85087-main' of https://github.com/andrewgos/moodle 2025-04-11 10:42:32 +08:00
Jun Pataleta 9a93a6162c Merge branch 'MDL-85062-main-1' of https://github.com/mihailges/moodle 2025-04-11 10:38:25 +08:00
Paul Holden 27b839b5c6 MDL-84475 repository_dropbox: safer unserializing of file references. 2025-04-11 09:33:03 +07:00
Jun Pataleta da7e110b77 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:09:49 +08:00
Huong Nguyen e741e0ba9c Merge branch 'MDL-85147-main' of https://github.com/junpataleta/moodle 2025-04-11 08:34:54 +07:00
Huong Nguyen 50c2179f08 MDL-85115 core_grades: Sort the grade instances 2025-04-11 08:30:47 +07:00
Sara Arjona 8d87ac12fa Merge branch 'MDL-85077-main' of https://github.com/roland04/moodle 2025-04-10 16:12:44 +02:00
Jun Pataleta cc9e257e7a Merge branch 'MDL-85100' of https://github.com/paulholden/moodle 2025-04-10 21:17:03 +08:00
Jun Pataleta a51fd61a8d Merge branch 'MDL-85135-main' of https://github.com/mihailges/moodle 2025-04-10 17:54:48 +08:00
Sara Arjona 5538eab025 Merge branch 'MDL-84782-main' of https://github.com/lucaboesch/moodle 2025-04-10 11:27:43 +02:00
Andrew Gosali ad13d6e9a4 MDL-85087 core_grades: make the grade penalty icon to be a tooltip 2025-04-10 16:03:53 +07:00
Mikel Martín ad14d58dc5 MDL-85077 theme_boost: Fix responsive tables after BS5 upgrade
- Replace class 'no-overflow' with 'table-responsive' for responsive tables.
- Fix dropdown positioning inside responsive tables.
- Fix visually-hidden elements inside tables generating incorrect page scrolling.
2025-04-10 10:28:23 +02:00
Alec Gullon 7f708eaff9 MDL-79464 mod_assign: Limit user navigation if grading fails validation 2025-04-10 16:27:24 +08:00
Andrew Gosali 5c703f7b49 MDL-84447 mod_assign: show anonymous name when selecting user on blind submissions 2025-04-10 13:33:11 +07:00
Michael Hawkins 8692935efa MDL-85152 filter_tex: Update deny list and slash handling 2025-04-10 14:20:27 +08:00
Paul Holden 91e6ad43ed MDL-84478 tool_brickfield: verify sesskey prior to course analysis. 2025-04-10 13:06:12 +08:00
Paul Holden 0bd97209ac MDL-84499 block_rss_client: user access checks for viewing feed. 2025-04-10 12:31:55 +08:00
Paul Holden 052007b732 MDL-65356 mod_data: update entry editing/deletion to not leak sesskey. 2025-04-10 10:07:11 +07:00
Paul Holden 64a4311266 MDL-84750 course: require user be able to view course participants. 2025-04-10 09:25:30 +08:00
Mihail Geshoski 03f2e24060 MDL-85135 mod_assign: Improve behat tests 2025-04-10 09:18:27 +08:00
Sara Arjona c91faff141 Merge branch 'MDL-85144' of https://github.com/ssj365/moodle 2025-04-09 16:50:54 +02:00
Sara Arjona 232e0ccbb4 Merge branch 'MDL-85143' of https://github.com/paulholden/moodle 2025-04-09 13:04:37 +02:00
David Woloszyn bad803358c 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:49:41 +07:00
raortegar b52ff75980 MDL-84351 tool_mfa: Fix access to guide page when MFA login 2025-04-09 16:49:41 +07:00
David Woloszyn a13d8e4ff1 MDL-84351 tool_mfa: Check URL against allowed components for redirect 2025-04-09 16:49:41 +07:00
David Woloszyn 57d26f552e MDL-84351 url: Add method for getting slashargument 2025-04-09 16:49:40 +07:00
Jun Pataleta a8c9e1c280 MDL-85147 versions: Main version bump 2025-04-09 17:47:38 +08:00
Jun Pataleta 91d2fa1ecb MDL-85147 versions: Bump all versions and requires near release 2025-04-09 17:46:57 +08:00
Paul Holden dbd723f81c MDL-84479 tool_usertours: verify sesskey prior to tour duplication. 2025-04-09 09:14:17 +00:00
Michael Hawkins efb5563419 MDL-85015 tool_mfa: Include extra param in email factor cancel check 2025-04-09 09:14:17 +00:00
David Woloszyn b096513901 MDL-84784 tool_mfa: Remove enrol/index.php from no redirect 2025-04-09 09:14:17 +00:00
Jun Pataleta 1d48b63dcd Merge branch 'MDL-84576' of https://github.com/timhunt/moodle 2025-04-09 17:09:06 +08:00
Huong Nguyen 200d8db9fa Merge branch 'MDL-84303' of https://github.com/timhunt/moodle 2025-04-09 15:35:11 +07:00
Huong Nguyen fb6589b00c Merge branch 'MDL-85092-main' of https://github.com/snake/moodle 2025-04-09 15:03:00 +07:00
Nathan Nguyen bdffbe47e1 MDL-85135 mod_assign: recalculate grade after an override is deleted 2025-04-09 15:27:14 +08:00
Daniil Fajnberg b41bf2f579 MDL-81454 core: Remove incorrect @property-read annotation 2025-04-09 08:59:59 +02:00
Jun Pataleta d37b41ddd6 Merge branch 'MDL-85127-main' of https://github.com/roland04/moodle 2025-04-09 11:09:43 +08:00
Shamiso.Jaravaza 133a6b2b82 MDL-85144 mod_bigbluebuttonbn: Fix rule sort order 2025-04-08 19:05:04 -06:00
Jake Dallimore d30ffdbb5a MDL-85092 themes: exclude navbar when printing pages
Bootstrap 5 removed _print.scss which included print-specific styles,
including one for hiding the nav. This just re-introduces a single
style override for the navbar. Any other print-specific styles removed
in BS5 are left as removed.
2025-04-09 09:00:30 +08:00
Paul Holden 0ff8f7b2e0 MDL-85143 output: correct size/proportions of emoticon images.
They were stretched horizontally since 28846e71, correct that here.
2025-04-08 18:06:27 +01:00
Sara Arjona e3b05240c1 Moodle release 5.0rc2 2025-04-08 17:06:38 +02:00
Sara Arjona 6c326dd2de NOBUG: Add upgrade notes 2025-04-08 17:06:38 +02:00
Sara Arjona f48f4f970f Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-04-08 17:06:31 +02:00
Mihail Geshoski dc82696abf MDL-85062 mod_assign: Format penalized grades in attempts history
Formats the output of the penalised grades shown in the
'Previous attempts' for advanced grading methods for consistency
with other sections/areas where this information is displayed.
2025-04-08 17:43:33 +08:00
Mihail Geshoski 14bbc68d59 MDL-85062 mod_assign: Show penalty indicator with advanced grading
Ensures the penalty indicator is displayed in the 'Feedback' and
'Previous Attempts' sections for penalized grades when using advanced
grading methods.
2025-04-08 17:43:33 +08:00
Tim Hunt a9cd7d36b1 MDL-84576 questions: non-editing teachers need use questions capability
This makes it esay to grant access to shared question banks.

The advice becomes "give the user non-editing teacher role".
2025-04-08 10:06:39 +01:00
Tim Hunt e76afc9907 MDL-84303 qbanks: fix permission checks accessing shared banks 2025-04-08 10:06:39 +01:00
Tim Hunt 019e480c35 MDL-84303 qbank: fix recently viewed question tracking
This revealed some Unit tests with incorrect setup (trying to view
a qestion bank in course context) so I fixed those.
2025-04-08 10:06:39 +01:00
Huong Nguyen 547fe76923 Merge branch 'MDL-85123' of https://github.com/marinaglancy/moodle 2025-04-08 10:47:50 +07:00
Huong Nguyen 967525cc32 Merge branch 'MDL-85116-main' of https://github.com/junpataleta/moodle 2025-04-08 10:25:52 +07:00
Jun Pataleta 62fc8d741a Merge branch 'MDL-84058-main' of https://github.com/meirzamoodle/moodle 2025-04-08 10:07:09 +08:00
AMOS bot 5ef946d8b4 Automatically generated installer lang files 2025-04-08 00:07:53 +00:00
meirzamoodle 16111a3359 MDL-84058 cli: Add a backup check for course module names
Co-authored-by: Jun Pataleta <jun@moodle.com>
2025-04-08 06:27:49 +07:00
Tim Hunt f67105855c MDL-84303 quiz/qbanks: tidy up Behat test
Remove irrelevant details, and line up tables.
2025-04-07 14:57:48 +01:00
Mikel Martín 1e461c8342 MDL-85127 theme_boost: Fix BS4compat initialisation 2025-04-07 14:21:36 +02:00
Marina Glancy 214ce8b8f5 MDL-85123 core: reset caches after mocking plugins 2025-04-07 10:10:05 +01:00
Jun Pataleta 1d258a2148 Merge branch 'MDL-85012-main' of https://github.com/mihailges/moodle 2025-04-07 12:06:13 +08:00
Jun Pataleta c312dd82e4 MDL-85116 factor_sms: Set default weight and duration properly 2025-04-07 11:15:24 +08:00
Huong Nguyen b344c2c5b2 Merge branch 'MDL-84970-main' of https://github.com/andrewnicols/moodle 2025-04-07 10:01:49 +07:00
Huong Nguyen b868cdb854 Merge branch 'MDL-85106-main' of https://github.com/davewoloszyn/moodle 2025-04-07 09:35:55 +07:00
Paul Holden 958e767134 MDL-85100 question: override visually-hidden grouped element labels.
Since f9abc562 switched the class from `sr-only`, the affected labels
used on the question editing form remained invisible.
2025-04-04 17:27:45 +01:00
Mihail Geshoski 60e96c9cb0 MDL-85012 core_grades: Remove unused string 2025-04-04 23:29:55 +08:00
Huong Nguyen 1e89ba2335 Moodle release 5.0rc1 2025-04-04 22:21:55 +07:00
Huong Nguyen 8bcbf6e216 NOBUG: Add upgrade notes 2025-04-04 22:21:55 +07:00
Mihail Geshoski 62c0bd9072 MDL-85012 mod_assign: Modify behat tests to align with existing policies 2025-04-04 17:58:24 +08:00
Jun Pataleta 4fe64bf293 Merge branch 'MDL-84816-main' of https://github.com/meirzamoodle/moodle 2025-04-04 12:37:11 +08:00
meirzamoodle 4e5b621a7e MDL-84816 message: Make sure the 'see all' link stays visible 2025-04-04 11:25:52 +07:00
Huong Nguyen 2f9f87bdb5 Merge branch 'MDL-84997-main' of https://github.com/davewoloszyn/moodle 2025-04-04 11:14:56 +07:00
Huong Nguyen 5819d8b205 Merge branch 'MDL-85058_main' of https://github.com/catalyst/moodle 2025-04-04 10:34:35 +07:00
David Woloszyn 378e168d46 MDL-85106 AI: Fix AI usage reporting of explain text tokens 2025-04-04 14:30:33 +11:00
Jun Pataleta 245d335ce2 Merge branch 'MDL-84907-main' of https://github.com/HuongNV13/moodle 2025-04-04 11:29:00 +08:00
Huong Nguyen ac92443315 Merge branch 'MDL-84900_main' of https://github.com/marxjohnson/moodle 2025-04-04 10:20:03 +07:00
Shamim Rezaie 3acb662de0 Merge branch 'MDL-84836' of https://github.com/paulholden/moodle 2025-04-04 13:58:21 +11:00
Jun Pataleta 351b2b7206 Merge branch 'MDL-84914-main-enfix' of https://github.com/mudrd8mz/moodle 2025-04-04 09:47:15 +08:00
Huong Nguyen 4166957500 Merge branch 'MDL-85070-main' of https://github.com/srobotta/moodle 2025-04-04 08:35:17 +07:00
Shamim Rezaie 6ecba2ebfa Merge branch 'MDL-85009-main' of https://github.com/mihailges/moodle 2025-04-04 09:17:39 +11:00
Shamim Rezaie 390d6b16db Merge branch 'MDL-61823' of https://github.com/paulholden/moodle 2025-04-04 09:07:23 +11:00
Paul Holden 9ebb932bf3 Merge branch 'MDL-84951-main' of https://github.com/laurentdavid/moodle into main 2025-04-03 15:59:18 +01:00
Paul Holden 6717477354 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:31:40 +01:00
Paul Holden aec6078818 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 15:28:16 +01:00
Paul Holden dae0288b56 MDL-84836 tool_mfa: replace deprecated Bootstrap styles.
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
2025-04-03 12:45:01 +01:00
Mikel Martín afc113f33c MDL-84951 theme_boost: Fix deprecated Bootstrap class usages 2025-04-03 10:46:27 +02:00
Jun Pataleta 10f764cba6 Merge branch 'MDL-75971-main' of https://github.com/lameze/moodle 2025-04-03 14:36:39 +08:00
Simey Lameze 68ee911165 MDL-75971 behat: add email handling capabilities to Behat 2025-04-03 13:37:16 +08:00
Jun Pataleta ee892fa600 Merge branch 'MDL-84823-main' of https://github.com/meirzamoodle/moodle 2025-04-03 12:14:31 +08:00
Huong Nguyen 92f1931b5c Merge branch 'MDL-85023_main' of https://github.com/PhilippImhof/moodle 2025-04-03 11:07:31 +07:00
meirzamoodle f87f6cf122 MDL-84823 message: String deprecation 2025-04-03 10:59:05 +07:00
meirzamoodle e9034326c7 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 10:59:05 +07:00
Shamim Rezaie 8cbad482be Merge branch 'MDL-61730' of https://github.com/paulholden/moodle 2025-04-03 06:53:07 +11:00
Shamim Rezaie 8380612027 Merge branch 'MDL-85000-main' of https://github.com/HuongNV13/moodle 2025-04-03 06:12:34 +11:00
Jun Pataleta 6c447680b8 Merge branch 'MDL-84819-main' of https://github.com/HuongNV13/moodle 2025-04-03 00:01:53 +08:00
Jun Pataleta 44dc3849a8 Merge branch 'MDL-83692-main' of https://github.com/raortegar/moodle 2025-04-02 23:28:42 +08:00
Shamim Rezaie 13edf7fbf6 Merge branch 'MDL-72050-main' of https://github.com/sh-csg/moodle 2025-04-03 00:37:28 +11:00
Shamim Rezaie a30eacbfb6 Merge branch 'MDL-84961' of https://github.com/odeialba/moodle 2025-04-02 20:53:56 +11:00
Odei Alba 9d42423870 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-04-02 11:26:48 +02:00
Shamim Rezaie bc82d03688 Merge branch 'MDL-80629-main' of https://github.com/andrewnicols/moodle 2025-04-02 20:01:23 +11:00
Jun Pataleta 288bc09ef4 Merge branch 'mdl-84979_main' of https://github.com/james-cnz/moodle 2025-04-02 16:21:33 +08:00
Andrew Nicols e5908b0bec MDL-84970 editor_tiny: Use the langpack name for Moodle language 2025-04-02 16:05:12 +08:00
Paul Holden 884a06f6eb Merge branch 'MDL-80813' of https://github.com/marinaglancy/moodle into main 2025-04-02 09:03:21 +01:00
Paul Holden 9784e5b467 MDL-61730 gradeimport_xml: set type on form iprestriction field. 2025-04-02 08:50:31 +01:00
Huong Nguyen 2d0137ea54 Merge branch 'MDL-85046-main' of https://github.com/mihailges/moodle 2025-04-02 14:27:31 +07:00
Huong Nguyen 0c014c7095 Merge branch 'MDL-84980-main' of https://github.com/sarjona/moodle 2025-04-02 14:24:59 +07:00
Stephan Robotta e13a5b3f9d MDL-85070 qbank: Dialogue question move into category with comma 2025-04-02 08:50:58 +02:00
Huong Nguyen 264a007051 Merge branch 'MDL-84756-main' of https://github.com/roland04/moodle 2025-04-02 13:23:37 +07:00
Huong Nguyen 2c65c010d8 Merge branch 'MDL-85025-main' of https://github.com/roland04/moodle 2025-04-02 13:20:34 +07:00
Huong Nguyen 820169703c Merge branch 'MDL-85078-main' of https://github.com/roland04/moodle 2025-04-02 13:15:11 +07:00
Huong Nguyen aed9880517 MDL-84819 aiprovider_openai: Enable multiple types support for model 2025-04-02 10:20:18 +07:00
David Woloszyn cbd9d34d37 MDL-84819 aiprovider_openai: Fix default model for generate_image 2025-04-02 10:13:45 +07:00
Jun Pataleta 5861780ac3 Merge branch 'MDL-84884' of https://github.com/paulholden/moodle 2025-04-02 10:04:26 +08:00
Nathan Nguyen 7749e79212 MDL-85012 mod_assign: reuse show_penalty_indicator 2025-04-02 11:30:58 +11:00
Nathan Nguyen e159a37e2a MDL-85012 mod_assign: fix multiple attempt issue 2025-04-02 10:05:21 +11:00
Nathan Nguyen f45773a3b2 MDL-85012 core_grades: remove penalty on overridden grade 2025-04-02 10:05:17 +11:00
David Mudrák 5e88e47f58 MDL-84914 lang: Use fixed strings in tests, too 2025-04-01 21:47:43 +02:00
raortegar 4ff4c6a3d7 MDL-83692 factor_sms: MFA update default values when fields are unset 2025-04-01 20:56:53 +02:00
raortegar 463668d4d9 MDL-83692 factor_sms: MFA set default values when gateway list is empty 2025-04-01 20:17:01 +02:00
David Woloszyn dd1b8c3b8e MDL-83692 factor_sms: add notification for SMS gateway restriction 2025-04-01 20:17:01 +02:00
Luca Bösch c436e45d50 MDL-84782 quiz: Align buttons horizontally to the container start. 2025-04-01 17:58:10 +02:00
Sara Arjona 06cd71edd0 Merge branch 'MDL-85027-main' of https://github.com/HuongNV13/moodle 2025-04-01 17:14:54 +02:00
Sara Arjona 5cbaacc6f1 Merge branch 'MDL-84131-main' of https://github.com/laurentdavid/moodle 2025-04-01 17:09:20 +02:00
Sara Arjona b2b5e32058 Moodle release 5.0beta 2025-04-01 16:35:07 +02:00
Sara Arjona bfe86e8fe6 NOBUG: Add upgrade notes 2025-04-01 16:35:07 +02:00
Mark Johnson a8342dd5f5 MDL-84900 questions: Limit list of shared question banks
The "Switch question bank" modal was attempting to load every question
bank in the system the user has access to. For a highly privileged user,
this could mean loading the coursemodinfo cache for every course in the
system, resulting in memory exhaustion.

This change updates the API for getting shared question banks so it can
be searched by name and limited to a number of results. There is a new
external service that uses this functionality, and a Javascript data
provider for calling the service. The autocomplete in the "Switch
question bank" modal will now use this data provider for the "Other
question bank" autocomplete, rather than loading all banks up front.
2025-04-01 13:31:41 +01:00
Mark Johnson d3584833ea MDL-84900 questions: Allow get_formatted_bank to force filter context 2025-04-01 13:30:33 +01:00
Sara Arjona 2889ba2612 Merge branch 'MDL-80091-integration-main' of https://github.com/mihailges/moodle 2025-04-01 11:33:48 +02:00
Mihail Geshoski 390d53755a MDL-80091 mod_assign: Fix failing behat test 2025-04-01 17:10:14 +08:00
Mikel Martín bc756ce437 MDL-85078 mod_forum: Fix tertiary navigation styles layout 2025-04-01 08:52:19 +02:00
Nathan Nguyen f6a31eb0ae MDL-85058 core_grades: fix double format_float 2025-04-01 16:16:47 +11:00
Huong Nguyen c91ad45065 Merge branch 'MDL-84419-main' of https://github.com/clransom/moodle 2025-04-01 11:06:52 +07:00
Huong Nguyen c909d086c0 Merge branch 'MDL-75292-main' of https://github.com/mihailges/moodle 2025-04-01 10:54:15 +07:00
Huong Nguyen 4f8b732a31 Merge branch 'MDL-83856-main' of https://github.com/andrewgos/moodle 2025-04-01 10:47:36 +07:00
Huong Nguyen e09fcd1c76 Merge branch 'MDL-80091-main' of https://github.com/andrewgos/moodle 2025-04-01 10:40:11 +07:00
Huong Nguyen 3fb006f843 MDL-80944 mod_quiz: Revert parameters removal 2025-04-01 10:18:03 +07:00
Huong Nguyen e8edb68bbc Merge branch 'MDL-80944_final-removal-of-quiz_delete_override-and-quiz_delete_all_overrides' of https://github.com/ziegenberg/moodle 2025-04-01 10:15:41 +07:00
Huong Nguyen 2972780c2e Merge branch 'MDL-84917-main' of https://github.com/roland04/moodle 2025-04-01 10:07:48 +07:00
Huong Nguyen 800dfa0548 MDL-83479 backup: Format upgrade notes 2025-04-01 09:53:44 +07:00
Huong Nguyen 4a31bf5628 Merge branch 'mdl-83479-restore-hooks' of https://github.com/jaypha/moodle 2025-04-01 09:51:51 +07:00
Helen Foster f36233b296 MDL-84914 lang: Import fixed English strings (en_fix) 2025-03-31 20:38:29 +02:00
Paul Holden e8ec054113 Merge branch 'MDL-84673_properly-deprecate-print_graded_users_selector' of https://github.com/ziegenberg/moodle into main 2025-03-31 18:06:17 +01:00
Paul Holden 0a51669668 MDL-81437 files: fix SQL LIKE comparison, improve test coding style. 2025-03-31 17:58:24 +01:00
Paul Holden ff9ea3fe6d Merge branch 'MDL-81437_allow-webp-file-extension-by-default' of https://github.com/ziegenberg/moodle into main 2025-03-31 17:46:09 +01:00
Daniel Ziegenberg dd6500eb42 MDL-84673 core_grades: Deprecate print_graded_users_selector()
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-31 18:00:33 +02:00
Mihail Geshoski f805aeafd2 MDL-85046 theme_boost: Fix the spacing in the select_menu component
Adds padding on the .dropdown-item element to fix the lack of spacing
between the 'active' indicator and the item in the select_menu component.
Also converts some of the hard-coded padding to use existing spacer
definitions.
2025-03-31 23:50:00 +08:00
Daniel Ziegenberg 13743de30b MDL-81437 core_files: Adding webp to the standard included MIME types
Co-authored-by: Luca Bösch <luca.boesch@bfh.ch>
2025-03-31 17:21:22 +02:00
Daniel Ziegenberg 38ca98b632 MDL-81437 core_files: Add ad-hoc task to upgrade mimetypes on update
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-31 17:21:19 +02:00
Mihail Geshoski b829a6ddd3 MDL-75292 mod_assign: Modify the 'Graded' filter query
Modifies the query used to filter graded students by removing the
condition that requires a submission to be marked as submitted. This
change allows the query to return students who have not submitted
their work but have still been graded, a scenario supported in the
assignment module.
2025-03-31 22:45:23 +08:00
Kacper Rokicki 65c7be536f MDL-75292 assign: Add "Graded" filter to assignment submission table 2025-03-31 22:45:23 +08:00
Mikel Martín b326fe4f78 MDL-84917 tool_usertours: Fix button icon colours 2025-03-31 13:36:46 +02:00
Laurent David f02c60f567 MDL-84131 core_analytics: Remove indicator for chat and suvey
* When chat and survey are actually not installed, remove them
from the course_dropout target indicator.
2025-03-31 13:35:46 +02:00
Jun Pataleta 429b72400a Merge branch 'MDL-85029-main' of https://github.com/meirzamoodle/moodle 2025-03-31 14:19:28 +08:00
Andrew Nicols ff0992e2bd MDL-80629 env: Moodle 4.4.x and 4.5.x do not support PHP 8.4 2025-03-31 11:03:18 +08:00
Andrew Nicols 37a40e68b2 Merge branch 'MDL-76801-main' of https://github.com/andrewgos/moodle 2025-03-31 09:27:47 +08:00
Shamim Rezaie ef7a6fbbb3 Merge branch 'MDL-68806_main' of https://github.com/marxjohnson/moodle 2025-03-29 23:22:33 +11:00
Philipp Imhof 183d79b041 MDL-85023 quiz: allow WebRTC with SEB on Mac 2025-03-28 17:51:21 +01:00
Sara Arjona b00c328d2d on-demand release 5.0dev+ 2025-03-28 12:49:17 +01:00
Sara Arjona 7c0745a539 NOBUG: Add upgrade notes 2025-03-28 12:49:17 +01:00
Sara Arjona 28b0ca8d9b Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-03-28 12:49:08 +01:00
Mark Johnson 580a0d6827 MDL-68806 quiz: Separate global and per-quiz default settings 2025-03-28 09:35:00 +00:00
Mark Johnson 8d5d4f5314 MDL-68806 quiz: Backwards compatibility for mod_quiz_get_user_attempts 2025-03-28 09:34:59 +00:00
Mark Johnson 2841c53c7c MDL-68806 backup: Fix faulty question attempt step restore test
Previously, the test was passing by fluke because all question attempt
steps had the same timecreated date. However, the $originaliterator only
contained the first step of the question, not all 3 attempts that were
being backed up and restored. This means we were comparing the
timecreated of the first backed-up step with the timecreated on the
third restored step. As of MDL-68806, the first step's timecreated is
question_attempt_step::TIMECREATED_ON_FIRST_RENDER, which shows up this
error.

This change gets the question_usage_by_activity object back from the
attempt object which contains all the attempt steps, rather than using
the one created in the test, which doesn't.
2025-03-28 09:34:59 +00:00
Mark Johnson 9dee9c9917 MDL-68806 question: Set first attempt step timecreated
Previously, the timecreated for the first step of any question attempt
was set to the current time when the quiz attempt was created. With quiz
attempts being pre-created, this means the question attempts looking
like they were started before the quiz attempt. It also limits the
ability to analyse when a student actually started each question.

This change adds a new class constant,
question_attempt_step::TIMECREATED_ON_FIRST_RENDER. Passing this to the
question_attempt_step constructor will cause the timecreated to be set
to the time when the question attempt is first rendered, rather than
when the step is created.
2025-03-28 09:34:59 +00:00
Mark Johnson 50486f5d05 MDL-68806 quiz: Update questions in pre-created attempts when started
In case questions used in pre-created attempts were edited after
pre-creation, we check when the attempt is started and create
new question attempts if needed. There is still an opportunity to
improve performance further by finding a way to do this efficiently
when a new question version is created.
2025-03-28 09:34:59 +00:00
Mark Johnson 2e2e3adbbd MDL-68806 quiz: Display new attempt states on the attempts report 2025-03-28 09:34:59 +00:00
Mark Johnson 0b3b0fcce0 MDL-68806 quiz: Add task to pre-create quiz attempts. 2025-03-28 09:34:58 +00:00
Mark Johnson 0ffcd115c6 MDL-68806 quiz: Add new "Not started" and "Submitted" states 2025-03-28 09:34:10 +00:00
Paul Holden b582b05c39 MDL-85048 core: define mapping for new America/Coyhaique zone.
Follows same process as other timezone additions in d5ec3594.
2025-03-28 08:58:19 +00:00
Huong Nguyen 1ae3c73bbb Merge branch 'MDL-85048-main' of https://github.com/lameze/moodle 2025-03-28 15:00:13 +07:00
Simey Lameze 4c2ddeb839 MDL-85048 phpunit: add america/coyhaique timezone 2025-03-28 14:54:50 +08:00
Huong Nguyen 3730b5cb75 Merge branch 'MDL-84998_main' of https://github.com/catalyst/moodle 2025-03-28 13:43:49 +07:00
Huong Nguyen fe8e9bf033 Merge branch 'MDL-85017-main' of https://github.com/roland04/moodle 2025-03-28 13:43:49 +07:00
Huong Nguyen bdee94a986 Merge branch 'MDL-85019-main' of https://github.com/roland04/moodle 2025-03-28 13:43:49 +07:00
Huong Nguyen 857a16edb9 Merge branch 'MDL-85021-main' of https://github.com/roland04/moodle 2025-03-28 13:43:49 +07:00
Huong Nguyen 0fd77a586c Merge branch 'MDL-84952-main' of https://github.com/roland04/moodle 2025-03-28 13:43:49 +07:00
Huong Nguyen d2dd2b3437 Merge branch 'MDL-83828-main' of https://github.com/micaherne/moodle 2025-03-28 13:43:48 +07:00
David Woloszyn 6afca93f7b MDL-84997 core_message: Hide message pill when count is zero 2025-03-28 15:52:16 +11:00
AMOS bot d91bbad9c8 Automatically generated installer lang files 2025-03-28 00:08:48 +00:00
Marina Glancy add52d70b8 MDL-80813 qbank_customfields: fix settings permissions 2025-03-27 13:14:57 +00:00
Marina Glancy c90351ca3b MDL-80813 tool_unsuprules: fix settings permissions 2025-03-27 13:14:23 +00:00
Marina Glancy 892bce3593 MDL-80813 grade_penalty: fix permissions and CSS styles 2025-03-27 13:13:57 +00:00
Marina Glancy 4d51deb905 MDL-80813 core_admin: fix caps checks in admin tree, add all categories
Unconditionally create all categories in the admin tree since they can be referred to in the plugins for pages
that require different capabilities
2025-03-27 12:33:39 +00:00
Mikel Martín 54e2fffe96 MDL-85025 mod_forum: Fix ratings layout after BS5 upgrade 2025-03-27 10:23:00 +01:00
Andrew Nicols 2c1bfc89f9 MDL-77293 core: Whitespace fixup 2025-03-27 16:23:29 +08:00
Andrew Nicols d56a6cba44 Merge branch 'MDL-77293-main' of https://github.com/matthewhilton/moodle 2025-03-27 16:12:58 +08:00
meirzamoodle 7ce35942aa MDL-85029 AI: Remove deprecated style 2025-03-27 11:11:03 +07:00
Jun Pataleta db11ca6a1d Merge branch 'MDL-85028-main' of https://github.com/andrewnicols/moodle 2025-03-27 12:03:34 +08:00
Mihail Geshoski afa0b42d7d MDL-85009 gradereport_grader: Fix dropdown menu cut-off in user columns 2025-03-27 11:57:04 +08:00
Andrew Nicols 48adc55cfc MDL-85028 core: Check correct var name for router config 2025-03-27 11:44:49 +08:00
Huong Nguyen b2d17c7a1d MDL-85027 aiprovider_ollama: Remove trailing slash of endpoint 2025-03-27 09:56:09 +07:00
Jun Pataleta e8146c0831 Merge branch 'MDL-82565-main' of https://github.com/andrewnicols/moodle 2025-03-27 10:45:20 +08:00
Huong Nguyen 79e3d6d050 MDL-85027 AI: Revert lang string changes from MDL-83216
This revert commit 2f10fde
for core_ai language strings file.
2025-03-27 09:31:12 +07:00
Sara Arjona f56e2be0e8 Merge branch 'MDL-84986-main' of https://github.com/roland04/moodle 2025-03-26 18:05:14 +01:00
Mikel Martín 788cf22867 MDL-85021 mod_feedback: Fix 'Edit questions' UI after BS5 upgrade 2025-03-26 16:25:20 +01:00
Mikel Martín cd49ab1760 MDL-84952 theme_boost: Fix spacing for collapse/expand buttons 2025-03-26 15:39:21 +01:00
Andrew Nicols f23259c49c MDL-82565 core_course: Migrate tag management to route 2025-03-26 21:20:59 +08:00
Andrew Nicols 968183714d MDL-82565 core: Improve routed Error handling
In previous versions of Moodle we recommended use of the fallback
resource with /error/index.php.

This is incompatible with the routing system because they use the same
mechanism for responding to any unknown request.

To better handle this we need to move the current error handler page to
a routed page, and to provide a shim for the old location.

At the same time we need to improve the Slim Error handling middleware
to respond with our 404 handler for all 404s, except for those on API
routes where we always respond with JSON.
2025-03-26 21:20:59 +08:00
Andrew Nicols 0d73bbcf1e MDL-82565 core: Update router util 2025-03-26 21:20:59 +08:00
Andrew Nicols 9137558cd5 MDL-82565 core: Add support for routing of front-end pages
This is the beginning of the end for non-routed pages in Moodle and the
start of SEO-friendly page URLs.

A 'shim' is provided for backwards compatibility.
2025-03-26 21:20:58 +08:00
Mikel Martín 630d4869c6 MDL-84756 mod_glossary: Fix keywords layout after BS5 upgrade 2025-03-26 13:53:54 +01:00
Mikel Martín ca9e1f1562 MDL-85019 theme_boost: Fix .badge-none text colour 2025-03-26 13:15:27 +01:00
Mikel Martín 2d87ccab2a MDL-85017 theme_boost: Fix More menu active item indicator spacing 2025-03-26 11:23:32 +01:00
Michael Aherne 1dba8d5f2b MDL-83828 oauth: Make phpdoc return types match actual return type. 2025-03-26 09:29:56 +00:00
Jun Pataleta c116c89fa6 Merge branch 'MDL-84301_main' of https://github.com/praxisdigital/moodle 2025-03-26 14:05:02 +08:00
Nathan Nguyen d17f110f5c MDL-84998 mod_assign: fix division by zero error 2025-03-26 16:49:36 +11:00
Huong Nguyen c37d9fa6be Merge branch 'MDL-82555-main' of https://github.com/lucaboesch/moodle 2025-03-26 11:02:18 +07:00
Huong Nguyen 59d7d3ebf9 Merge branch 'MDL-85001' of https://github.com/paulholden/moodle 2025-03-26 10:53:23 +07:00
Jake Dallimore 1c0dc3514d Merge branch 'MDL-84438-regress-task' of https://github.com/brendanheywood/moodle 2025-03-26 11:37:48 +08:00
Huong Nguyen d37c1c1a8c Merge branch 'MDL-84731-main' of https://github.com/sammarshallou/moodle 2025-03-26 10:35:10 +07:00
Jake Dallimore 3d8a0fd6bb Merge branch 'MDL-85007' of https://github.com/paulholden/moodle 2025-03-26 11:31:27 +08:00
Huong Nguyen 58658a2fb3 Merge branch 'MDL-83272_main' of https://github.com/marxjohnson/moodle 2025-03-26 10:27:07 +07:00
Huong Nguyen fbf2fd660b Merge branch 'MDL-84623_close-recordset-in-tool_dataprivacy-expired_contexts_manager-clear_old_records' of https://github.com/ziegenberg/moodle 2025-03-26 10:23:28 +07:00
Huong Nguyen 38ba136415 MDL-85000 media_videojs: Enable Ogv.JS Tech for all browsers 2025-03-26 09:30:35 +07:00
Huong Nguyen aac280e0ea weekly release 5.0dev+ 2025-03-26 08:55:49 +07:00
Huong Nguyen 6f5b6776ee NOBUG: Add upgrade notes 2025-03-26 08:55:49 +07:00
Huong Nguyen 376390e17f NOBUG: Fixed file access permissions 2025-03-26 08:55:39 +07:00
Huong Nguyen c15d73b5ac Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-03-26 08:55:38 +07:00
Huong Nguyen a1aff5a9c8 MDL-83006 AI: Provider Plugin - Ollama - Version bump 2025-03-26 08:42:39 +07:00
Paul Holden ecc406ddd1 Merge branch 'MDL-83518-fix' of https://github.com/sarjona/moodle into main 2025-03-25 16:27:27 +00:00
Paul Holden 2d39ad1468 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 15:54:21 +00:00
Sara Arjona fe3ce8d23e MDL-83518 mod_assign: Add missing lang strings for SMS 2025-03-25 14:36:50 +01:00
Paul Holden e325076335 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:16:08 +00:00
danghieu1407 d792c4916a MDL-66584 qtype_ddimageortext: Move JSON data to data-attribute 2025-03-25 16:48:52 +07:00
Paul Holden 8555023544 MDL-83006 aiprovider_ollama: add to standard plugin list. 2025-03-25 08:56:30 +00:00
Paul Holden 69ce3d3141 MDL-83518 message_sms: add to standard plugins list. 2025-03-25 08:53:45 +00:00
Sara Arjona cb53d2971b Merge branch 'MDL-83518-main' of https://github.com/safatshahin/moodle 2025-03-25 07:52:57 +01:00
Safat 41982dfdb0 MDL-83518 mod_assign: Fix rebase error 2025-03-25 17:38:55 +11:00
James C 0a6414f91f MDL-84979 course: Correct course format update parameters 2025-03-25 19:17:35 +13:00
Matthew Hilton b348120780 MDL-77293 libraries: fix array query parameter handling 2025-03-25 14:56:41 +10:00
Huong Nguyen 2e87ad9946 Merge branch 'MDL-80815_simplify-redis-acquire_lock-method' of https://github.com/ziegenberg/moodle 2025-03-25 11:12:16 +07:00
Andrew Nicols 582d76c0f7 Merge branch 'MDL-83518-main' of https://github.com/safatshahin/moodle 2025-03-25 11:15:50 +08:00
Huong Nguyen 8854d64bb6 Merge branch 'MDL-84991-main' of https://github.com/junpataleta/moodle 2025-03-25 10:08:53 +07:00
Safat dd32bbf0f4 MDL-83518 core_message: Add sms specific property 2025-03-25 14:04:33 +11:00
Safat f66d719527 MDL-83518 core: Add nosmsever config to restrict sending SMS 2025-03-25 14:04:33 +11:00
Safat 28ff6aa13c MDL-83518 mod_assign: Add support for SMS notifications 2025-03-25 14:04:31 +11:00
Andrew Nicols 771895192b Merge branch 'MDL-84893-main' of https://github.com/davewoloszyn/moodle 2025-03-25 10:59:06 +08:00
Andrew Nicols 3e5ae3db77 Merge branch 'MDL-84112-main-fix_bigbluebutton_defaultcompletion_performance' of https://github.com/praxisdigital/moodle 2025-03-25 10:54:29 +08:00
Safat 581871e52c MDL-83518 core_message: Add processor restriction support 2025-03-25 13:50:27 +11:00
Safat 4aa8b1909b MDL-83518 message_sms: Add SMS message processor 2025-03-25 13:50:27 +11:00
Andrew Nicols 16cf28682a Merge branch 'MDL-84335_main' of https://github.com/PhilippImhof/moodle 2025-03-25 10:49:12 +08:00
Andrew Nicols 56453a8556 Merge branch 'MDL-83469-main' of https://github.com/ferranrecio/moodle 2025-03-25 10:46:57 +08:00
Andrew Nicols 3758c1d4b5 Merge branch 'MDL-75196-main' of https://github.com/sh-csg/moodle 2025-03-25 10:42:42 +08:00
Andrew Nicols c8e4bbe938 Merge branch 'MDL-84555-main' of https://github.com/ferranrecio/moodle 2025-03-25 10:41:50 +08:00
Andrew Nicols 4970452df9 Merge branch 'MDL-76668-main' of https://github.com/cameron1729/moodle 2025-03-25 10:36:06 +08:00
Luca Bösch 64f7cf32e5 MDL-82555 block_section_links: Add section title only setting. 2025-03-24 21:24:57 +01:00
Sara Arjona 0fe8287c33 Merge branch 'MDL-83006-main' of https://github.com/HuongNV13/moodle 2025-03-24 19:58:18 +01:00
Jun Pataleta 8ec5fefde7 MDL-84991 editor_tiny: Improve lang string generation instructions 2025-03-25 00:55:00 +08:00
Jun Pataleta b51e4405eb MDL-84991 editor_tiny: Revert lang string changes from MDL-84167
This reverts commit 0331bd777d
for editor_tiny's language strings file.
2025-03-25 00:55:00 +08:00
Sara Arjona 93d52b2c48 Merge branch 'MDL-84985' of https://github.com/paulholden/moodle 2025-03-24 17:44:15 +01:00
Philipp Imhof 01f059ddcc MDL-84335 question: check for null before accessing property
in function check_hint_file_access
2025-03-24 17:43:31 +01:00
Sara Arjona 197d658d57 Merge branch 'MDL-84940-main' of https://github.com/ferranrecio/moodle 2025-03-24 17:26:29 +01:00
Mikel Martín fcc8d569b1 MDL-84986 mod_assign: Fix submission table classes 2025-03-24 17:01:56 +01:00
Mikel Martín 6721120251 MDL-84986 theme_boost: Update .generaltable styles after BS5 upgrade 2025-03-24 17:01:14 +01:00
ferran b213a2f1f1 MDL-84555 report_outline: adding activity_icons to the report 2025-03-24 16:49:53 +01:00
ferran ec9915b278 MDL-84555 core_course: add activity_icons to completion bulk editors 2025-03-24 16:49:53 +01:00
ferran e445b12ac9 MDL-84555 block_recentlyaccesseditems: use activity_icons output 2025-03-24 16:49:53 +01:00
ferran ae22dea084 MDL-84555 backup: add activity_icons to the restore summary 2025-03-24 16:49:53 +01:00
ferran 7eab909866 MDL-84555 core_courseformat: adding icon colors to activities page 2025-03-24 16:49:53 +01:00
ferran 9b5018b4a3 MDL-84555 core_course: new activity_icon output class 2025-03-24 16:49:53 +01:00
Huong Nguyen b430020685 MDL-83006 AI: Provider Plugin - Ollama
Support AI Course placement - Explain action
2025-03-24 22:18:39 +07:00
Huong Nguyen 5fe9bf8bbd MDL-83006 AI: Provider Plugin - Ollama
Make Ollama compatible with new features:
 - AI Provider instance
 - AI Model settings
 - Behat tests
2025-03-24 22:18:39 +07:00
Matt Porritt 90227e4707 MDL-83006 AI: Provider Plugin - Ollama
Ollama is an open-source project that serves as a powerful
and user-friendly platform for running LLMs on your local machine.
It acts as a bridge between the complexities of LLM technology
and the desire for an accessible and customizable AI experience.

This plugin interfaces with the upstream AI service and will
make available AI Actions to the subsystem.
2025-03-24 22:18:21 +07:00
Sara Arjona 52e4933d84 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:52:12 +01:00
Sara Arjona 6deeadf10b Merge branch 'MDL-74149-behat' of https://github.com/HuongNV13/moodle 2025-03-24 11:33:27 +01:00
Jun Pataleta 95c6083f57 Merge branch 'MDL-84753-main' of https://github.com/roland04/moodle 2025-03-24 17:48:16 +08:00
Huong Nguyen c43808efff MDL-74149 Usertours: Fix Behat failure 2025-03-24 16:34:30 +07:00
Paul Holden 337e69545d MDL-84985 reportbuilder: export report action attributes correctly.
When included as part of external response data, extra validation
was performed on the returned structure.
2025-03-24 08:31:52 +00:00
Huong Nguyen fb4c613e69 Merge branch 'MDL-83160-main' of https://github.com/mickhawkins/moodle 2025-03-24 14:54:13 +07:00
Huong Nguyen ef0d08b8da MDL-78428 tiny_media: Fix JSDoc 2025-03-24 14:17:35 +07:00
Huong Nguyen cda7e8e8be MDL-78428 tiny_media: Code cleanup
- Fix typo
 - Behat improvement
2025-03-24 14:01:51 +07:00
Huong Nguyen 0c0c87ad8a Merge branch 'MDL-78428-main' of https://github.com/stevandoMoodle/moodle 2025-03-24 13:54:00 +07:00
Huong Nguyen 8a9f940700 Merge branch 'MDL-84227_main' of https://github.com/marxjohnson/moodle 2025-03-24 13:50:21 +07:00
Huong Nguyen 1adcf03199 Merge branch 'MDL-84812_main' of https://github.com/marxjohnson/moodle 2025-03-24 11:34:36 +07:00
Huong Nguyen 4fddb46c04 MDL-74149 Usertours: Re-build Javascript code 2025-03-24 11:21:15 +07:00
Huong Nguyen 206d93dd46 Merge branch 'MDL-84956_main' of https://github.com/marxjohnson/moodle 2025-03-24 11:17:42 +07:00
Huong Nguyen 3ef5e31cad MDL-74149 Usertours: Exclude categories improvement 2025-03-24 11:07:28 +07:00
Huong Nguyen 2ebf1af7b5 Merge branch 'MDL-74149-master' of https://github.com/vietlx426/moodle-1 2025-03-24 11:03:57 +07:00
Jun Pataleta 523574807b Merge branch 'MDL-84733' of https://github.com/timhunt/moodle 2025-03-24 11:45:28 +08:00
AMOS bot 964db81c1d Automatically generated installer lang files 2025-03-22 00:07:59 +00:00
Huong Nguyen 89d76fdc25 weekly release 5.0dev+ 2025-03-21 22:02:32 +07:00
Huong Nguyen 26a116feae NOBUG: Add upgrade notes 2025-03-21 22:02:31 +07:00
Huong Nguyen 1dc8e19410 NOBUG: Fixed file access permissions 2025-03-21 22:02:17 +07:00
Huong Nguyen 4b12296175 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-03-21 22:02:16 +07:00
Tim Hunt 3494adf5c9 MDL-84733 assig: fix HTML special characters in emails 2025-03-21 14:57:29 +00:00
Tim Hunt aa2fb1e3d2 MDL-84733 assign: use a template to render message bodies
The overall structure of these messages, which adds the course
and assignment name to whatever comes from the particular
message language string, was hard-coded in the assignment code.

By changing this to use a template, now themes can override this.
2025-03-21 14:57:29 +00:00
Tim Hunt b9bd43ad78 MDL-84733 assignment: more information for message lang strings 2025-03-21 14:57:29 +00:00
Tim Hunt 5b1a302374 MDL-84733 assign: add tests of existing message behaviour
This is to prove the changes in the next two commits don't change
the behaviour.

Note, I tidied up the whitespace in some HTML lang strings.
2025-03-21 14:57:29 +00:00
Frederik Milling Pytlick 2e8bd84403 MDL-80815 cachestore_redis: Simplified acquire_lock method
Simplified the acquire_lock method in the redis cache store, so that it
sets the key with an expiry in one go. Before, it would set it, then
update it afterwards with an expiry.

This also makes test_lock_timeouts() more robust.

Co-authored-by: Daniel Ziegenberg <daniel@ziegenberg.at>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-21 15:18:35 +01:00
Mark Johnson 3300ed2803 MDL-84956 theme: Fix regression in the size of question icons 2025-03-21 13:11:14 +00:00
Mark Johnson 39923878e6 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:40:59 +00:00
vietlx426 1aca8a1f00 MDL-74149 Usertours: Filters to exclude categories and courses 2025-03-21 15:57:53 +07:00
Glenn Poder 0a28d61a06 MDL-76668 navigation: Fix navigation for results in single activity 2025-03-21 13:51:10 +08:00
Jun Pataleta c1411d4a2c Merge branch 'MDL-84860-main' of https://github.com/andrewnicols/moodle 2025-03-21 12:31:43 +08:00
Andrew Nicols 4c158a1564 MDL-84860 GitHub: Bump workflow max PHP to 8.4 2025-03-21 12:19:21 +08:00
Huong Nguyen 2f7a37a7aa Merge branch 'MDL-84446-main' of https://github.com/andrewnicols/moodle 2025-03-21 11:17:18 +07:00
Huong Nguyen 90b9ce71d0 Merge branch 'MDL-84828-main' of https://github.com/andrewnicols/moodle 2025-03-21 10:46:42 +07:00
Jun Pataleta 28e6f6e335 Merge branch 'MDL-84846' of https://github.com/timhunt/moodle 2025-03-21 10:55:29 +08:00
Huong Nguyen 1c9d79e2ff Merge branch 'MDL-84867-main' of https://github.com/roland04/moodle 2025-03-21 09:05:25 +07:00
Huong Nguyen b497ad9682 Merge branch 'MDL-83697_main' of https://github.com/PhilippImhof/moodle 2025-03-21 08:36:22 +07:00
Huong Nguyen 777463c8d7 Merge branch 'MDL-84775-main' of https://github.com/lucaboesch/moodle 2025-03-21 08:14:49 +07:00
Andrew Nicols 3e5795fd8a Merge branch 'MDL-84936' of https://github.com/marinaglancy/moodle 2025-03-21 08:34:30 +08:00
Andrew Nicols e587896573 MDL-78090 core_question: Update deprecated method sigs per new deprecation rules 2025-03-21 08:31:28 +08:00
Andrew Nicols 08ad641c7d Merge branch 'MDL-78090_core_question-final-deprecations' of https://github.com/ziegenberg/moodle 2025-03-21 08:19:36 +08:00
Andrew Nicols 2c121ab509 Merge branch 'MDL-84674_trim-old-deprecations' of https://github.com/ziegenberg/moodle 2025-03-21 08:15:12 +08:00
AMOS bot 7db2e6c8b6 Automatically generated installer lang files 2025-03-21 00:07:57 +00:00
Andrew Nicols 620df481d3 Merge branch 'MDL-84803-main' of https://github.com/aanabit/moodle 2025-03-21 07:55:40 +08:00
Andrew Nicols a61a4d0355 Merge branch 'MDL-84591_main' of https://github.com/marxjohnson/moodle 2025-03-21 07:53:40 +08:00
Andrew Nicols f59168543d Merge branch 'MDL-84302' of https://github.com/timhunt/moodle 2025-03-21 07:51:57 +08:00
Paul Holden 78d4afcd44 Merge branch 'MDL-84894-main' of https://github.com/roland04/moodle into main 2025-03-20 17:28:54 +00:00
ferran 9428131e56 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-20 18:23:00 +01:00
Paul Holden 655d5149a4 Merge branch 'MDL-84955' of https://github.com/lostrogit/moodle into main 2025-03-20 17:22:15 +00:00
Paul Holden 7abacc344e Merge branch 'MDL-84772-main' of https://github.com/roland04/moodle into main 2025-03-20 17:16:28 +00:00
Mikel Martín 992949915d MDL-84894 core_question: Fix question input elements layout
After Bootstrap 5 upgrade in MDL-75669 some inline input elements inside questions
(qtype_gapselect, qtype_match and qtype_multianswer) are not correctly displayed.
That happened because new "form-select" class adds "display: block" instead of
"display: inline-block" as before in Bootstrap 4.
This commit fixes the "select" inputs in the question types adding "d-inline-block"
class.
2025-03-20 17:41:32 +01:00
Carlos Castillo b90456e62e MDL-84955 reportbuilder: Fix return type of deprecated functions 2025-03-20 17:38:59 +01:00
Paul Holden bb411f2ac7 Merge branch 'MDL-84877-main' of https://github.com/andrewnicols/moodle into main 2025-03-20 15:25:24 +00:00
Paul Holden 8f2087f2e6 Merge branch 'MDL-81655' of https://github.com/larsbonczek/moodle into main 2025-03-20 15:15:44 +00:00
Amaia Anabitarte 07152521c8 MDL-84803 mod_feedback: Make titles unique 2025-03-20 16:06:40 +01:00
Paul Holden 657273b823 Merge branch 'MDL-84538_fix-duplicated-language-strings' of https://github.com/ziegenberg/moodle into main 2025-03-20 14:44:58 +00:00
Mark Johnson a30b18a8b0 MDL-84812 quiz: Fix javascript error in random question modal
Clicking "Switch bank" in the random question modal resulted in a
Javascript error, because the initial modal was being returned from the
event listener for the button, not from the promise that tried to
.then() it.

This moves destruction of the initial modal to after the new modal is
created.
2025-03-20 14:33:13 +00:00
ferran 608a25df01 MDL-84940 block_section_links: omit subsections 2025-03-20 12:59:09 +01:00
Sara Arjona b45e93c6d4 Merge branch 'MDL-80984-main-fix' of https://github.com/junpataleta/moodle 2025-03-20 11:14:17 +01:00
Jun Pataleta 4817736a85 MDL-80984 core: Bump versions so upgrade steps are not skipped 2025-03-20 17:55:46 +08:00
Huong Nguyen e5b139637f Merge branch 'MDL-83535-main' of https://github.com/TobiGa/moodle 2025-03-20 16:15:36 +07:00
Jun Pataleta 37f88a9764 Merge branch 'MDL-84387-main' of https://github.com/junpataleta/moodle 2025-03-20 16:15:36 +07:00
Mikel Martín d84f9c5194 MDL-84867 theme_boost: Fix deprecated .badge-pill class usages 2025-03-20 10:02:41 +01:00
Mikel Martín 0f3e4df5aa 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:02:41 +01:00
Mikel Martín 887753e821 MDL-84772 core_question: Fix qbank filters layout
Fix question bank filters layout after Bootstrap 5 upgrade.
2025-03-20 09:27:31 +01:00
Mikel Martín ce0261dc43 MDL-84772 core_datafilter: Fix datafilter layout after BS5 upgrade
- Fix layout with BS5 classes.
- Replace deprecated Bootstrap classes.
2025-03-20 09:27:31 +01:00
Jun Pataleta b94d00d2fc MDL-84387 message: Update expected notification message 2025-03-20 13:35:13 +08:00
Stevani Andolo cc2cc8847c MDL-78428 tiny_media: Added repository in thumbnail insert 2025-03-20 13:19:43 +08:00
Stevani Andolo 1ef345e4cd MDL-78428 tiny_media: Code cleanup
Co-authored-by: Huong Nguyen <huong@moodle.com>
2025-03-20 13:19:03 +08:00
Jun Pataleta 0da8ae66b2 MDL-84387 assignsubmission_file: Call correct recursion method 2025-03-20 12:43:02 +08:00
Jun Pataleta a2d457bffe Merge branch 'MDL-84167-main' of https://github.com/meirzamoodle/moodle 2025-03-20 10:59:48 +08:00
meirzamoodle 0331bd777d MDL-84167 editor_tiny: Upgrade tiny to 7.7.1 2025-03-20 09:22:12 +07:00
Andrew Nicols ea91233c79 MDL-84828 tool_behat: Correct exit codes to always be int 2025-03-20 09:03:25 +08:00
Andrew Nicols 204f238237 MDL-84828 behat: Update Moodle BehatExtension
Behat 3.19.0 introduced a new mandatory Interface.
2025-03-20 09:03:25 +08:00
Andrew Nicols a3c604745f MDL-84828 core: Bump Behat to latest version 2025-03-20 09:03:25 +08:00
Daniel Ziegenberg 30c18117b0 MDL-84538 language: Remove duplicated lang string entries
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-20 00:15:22 +01:00
Jun Pataleta 2822054bbd Merge branch 'MDL-84154_upgrade-HTML-Purifier-to-latest-4-18-0' of https://github.com/ziegenberg/moodle 2025-03-20 07:09:59 +08:00
toanlamt 4898bee134 MDL-84387 mod_assign: Improve submission confirmation with file list
This add the ability for assingment submission plugins to summarise
what was submitted, and then that summary is included in the
message to students confirming to them that their submission
was received.

Then, this new API is implemented in the file and online text plugins.

Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2025-03-19 20:08:02 +00:00
Conn Warwicker 2d6df85dea MDL-84302 mod_quiz: Improvements with invalid questions.
- Improve visuals of invalid questions by highlighting and
labelling.
- Removes links to actions which will not work for invalid
questions
- Doesn't allow a preview/attempt of a quiz if it has invalid
questions. This is an improvement over it throwing an exception.
- Don't allow the adding of questions to a quiz if they have
an invalid type.
2025-03-19 18:42:50 +00:00
Paul Holden 08a02cce55 MDL-80984 gradepenalty: define type language strings, add to standard. 2025-03-19 23:57:40 +08:00
Andrew Nicols acbc01a1c1 MDL-80984 gradepenalty_duedate: Version bump 2025-03-19 23:57:36 +08:00
Andrew Nicols 44f0fcfe60 MDL-80984 core_grade: Lint fix 2025-03-19 23:57:29 +08:00
Sara Arjona c5d47d1051 Merge branch 'MDL-84683' of https://github.com/jfederico/moodle 2025-03-19 16:19:26 +01:00
Andrew Nicols a7aedd91ff MDL-80984 core: Coding style updates 2025-03-19 23:01:00 +08:00
Nathan Nguyen cd239dd1c3 MDL-80984 mod_assign: penalty implementation 2025-03-19 23:00:52 +08:00
Nathan Nguyen cfc6db3866 MDL-80984 gradepenalty_duedate: late submission penalties 2025-03-19 23:00:51 +08:00
Nathan Nguyen 224b6eb39a MDL-80984 gradepenalty: add penalty feature 2025-03-19 23:00:51 +08:00
Mikel Martín e1e6134f67 MDL-84753 mod_data: Remove deprecated styles from presets 2025-03-19 15:17:06 +01:00
Mikel Martín d4aa0c0a2b MDL-84753 mod_data: Replace Bootstrap deprecated classes 2025-03-19 15:17:06 +01:00
jfederico 3d4f56df80 MDL-84683 mdl_bigbluebuttonbn: Hide Settings for RecordingsOnly 2025-03-19 14:07:57 +00:00
Mikel Martín 73d5ae8aaa MDL-84753 mod_data: Fix fields sorting layout after BS5 2025-03-19 14:53:41 +01:00
Marina Glancy b41fa6ceb5 MDL-84936 core_courseformat: fix arguments of deprecated functions 2025-03-19 12:37:18 +00:00
Tobias Garske e886388c11 MDL-83535 theme_boost: Prevent sticky-footer from linewrapping 2025-03-19 10:06:11 +00:00
Jun Pataleta e4c7a5cb64 Merge branch 'MDL-84853-main' of https://github.com/andrewnicols/moodle 2025-03-19 16:49:08 +08:00
Jun Pataleta 8a9c088b41 Merge branch 'MDL-84852-main' of https://github.com/andrewnicols/moodle 2025-03-19 16:44:42 +08:00
Huong Nguyen 75c48d66ff Merge branch 'MDL-84892' of https://github.com/paulholden/moodle 2025-03-19 14:32:16 +07:00
Sara Arjona f3b76ad2dc Merge branch 'MDL-83840-main' of https://github.com/clransom/moodle 2025-03-19 08:07:00 +01:00
Andrew Nicols 5d5dda2966 MDL-79329 smsgateway_modica: Coding style fixes 2025-03-19 15:02:03 +08:00
Andrew Nicols 169cdde55b Merge branch 'MDL-79329-main' of https://github.com/safatshahin/moodle 2025-03-19 14:49:49 +08:00
Safat 9011f8a9db MDL-79329 smsgateway_modica: Add Modica SMS gateway to core 2025-03-19 16:33:43 +11:00
Jun Pataleta 6b2c4bb8c7 Merge branch 'MDL-84905-main' of https://github.com/HuongNV13/moodle 2025-03-19 13:18:06 +08:00
Andrew Nicols 0f2a9becf9 MDL-83399 core: Coding style fixes 2025-03-19 12:02:41 +08:00
Andrew Nicols 6ae45d119a Merge branch '83399-admin-loginas' of https://github.com/jaypha/moodle 2025-03-19 11:54:08 +08:00
Huong Nguyen 341a42df72 Merge branch 'MDL-84247' of https://github.com/timhunt/moodle 2025-03-19 10:13:21 +07:00
Huong Nguyen b4b5ead01a Merge branch 'MDL-83766' of https://github.com/ssj365/moodle 2025-03-19 10:05:32 +07:00
Andrew Nicols 87a2f4fc01 NOBUG: Version bump for report_insights 2025-03-19 11:03:14 +08:00
Huong Nguyen d118c67bb7 Merge branch 'MDL-84431-main' of https://github.com/andrewgos/moodle 2025-03-19 09:55:05 +07:00
David Woloszyn d643a6387e MDL-84893 core_message: Fix message drawer overlap and truncation 2025-03-19 13:53:45 +11:00
Huong Nguyen 286e797a4c Merge branch 'MDL-84897-main' of https://github.com/ferranrecio/moodle 2025-03-19 09:52:01 +07:00
Huong Nguyen 3bbc1af5bc Merge branch 'MDL-83499-main' of https://github.com/laurentdavid/moodle 2025-03-19 09:46:01 +07:00
Huong Nguyen d3eef51ef7 MDL-84907 backup: Fix invalid CTRL characters regex 2025-03-19 09:22:36 +07:00
Huong Nguyen 88da54e37b MDL-84905 Behat: Fix I set the following administration settings failure 2025-03-19 09:15:30 +07:00
Luca Bösch 332dffe7a9 MDL-84775 quiz: "Add question" button normal size. 2025-03-18 16:40:24 +01:00
Paul Holden 743bfcbc28 MDL-84884 editor_tiny: define plugin use capabilities in module context. 2025-03-18 14:33:20 +00:00
Tim Hunt 1f185ff5d4 MDL-84846 core lock: report un-released locks better
We now report un-released locks in Behat tests, and when developer
debug is on, as well as in PHPunit.

The exception now has a full stack track, to help locate the problem.
2025-03-18 13:50:35 +00:00
Katie Ransom 8c355f1f1c MDL-83840 course: add warning when hiding category 2025-03-18 13:42:59 +00:00
Sara Arjona c64e967ce6 on-demand release 5.0dev+ 2025-03-18 14:18:09 +01:00
Sara Arjona cf76747167 NOBUG: Add upgrade notes 2025-03-18 14:18:09 +01:00
Sara Arjona 63528d3678 NOBUG: Fixed SVG browser compatibility 2025-03-18 14:17:55 +01:00
Anders Rasmussen e743ac6d28 MDL-84112 bigbluebuttonbn: Added user output only if bbactivity is set 2025-03-18 11:31:49 +01:00
Paul Holden ba8b93a1b8 MDL-84892 admin: general style improvements to the environment table.
Co-authored-by: Mikel Martín <mikel@moodle.com>
2025-03-18 09:38:02 +00:00
Daniel Ziegenberg 15579eb07f MDL-84674 core: Remove long-deprecated methods
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-18 10:36:53 +01:00
Andrew Gosali 78187606c6 MDL-83856 gradingform_guide: fix remark format to always be FORMAT_HTML 2025-03-18 16:30:45 +07:00
Andrew Gosali 35ec08d6cf 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:06 +07:00
Stevani Andolo 4608e30cb9 MDL-78428 tiny_media: Resorted the lang strings 2025-03-18 13:23:04 +08:00
Stevani Andolo 568b1417cc MDL-78428 tiny_media: Added upgradenotes 2025-03-18 13:23:04 +08:00
Stevani Andolo 0ec686cd3f MDL-78428 tiny_media: Fixed failed behat test 2025-03-18 13:23:04 +08:00
Stevani Andolo cc4bab9deb MDL-78428 tiny_media: Methods deprecation 2025-03-18 13:23:04 +08:00
Stevani Andolo db71019e06 MDL-78428 tiny_media: Image code refactor
In this commit we also deprecated a lang string of "browserepositoriesimage,tiny_media"
2025-03-18 13:23:04 +08:00
Stevani Andolo 73e81651ba MDL-78428 tiny_media: Handled save-update media 2025-03-18 13:23:04 +08:00
Stevani Andolo 62104e46e1 MDL-78428 tiny_media: Update previewed embed's thumbnail 2025-03-18 13:23:04 +08:00
Stevani Andolo 818f886c4e MDL-78428 tiny_media: Implemented delete embed thumbnail preview 2025-03-18 13:23:04 +08:00
Stevani Andolo d7c122f90a MDL-78428 tiny_media: Implemented embed thumbnail preview 2025-03-18 13:23:04 +08:00
Stevani Andolo 160dd3289d MDL-78428 tiny_media: Implemented add embed thumbnail 2025-03-18 13:23:04 +08:00
Stevani Andolo 600d947efa MDL-78428 tiny_media: Embed subtitles and captions 2025-03-18 13:23:04 +08:00
Stevani Andolo 9853729199 MDL-78428 tiny_media: Implemented a delete embed preview 2025-03-18 13:23:04 +08:00
Stevani Andolo cc3c4c08d0 MDL-78428 tiny_media: Implemented a new embed preview 2025-03-18 13:23:03 +08:00
Stevani Andolo 75b6985900 MDL-78428 tiny_media: Handled drag-drop upload 2025-03-18 13:23:03 +08:00
Stevani Andolo 4ebfd5e671 MDL-78428 tiny_media: Handled repository upload 2025-03-18 13:23:03 +08:00
Stevani Andolo 6e7cb51c12 MDL-78428 tiny_media: Handled external media URL 2025-03-18 13:23:03 +08:00
Stevani Andolo 0cc6315420 MDL-78428 tiny_media: Implemented a new embed insert
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
2025-03-18 13:23:03 +08:00
Stevani Andolo d9d3b3e8b1 MDL-78428 tiny_media: Deprecated unused langs and templates 2025-03-18 13:23:03 +08:00
Jun Pataleta 56183c786e Merge branch 'MDL-81714_main' of https://github.com/marxjohnson/moodle 2025-03-18 12:57:55 +08:00
Jun Pataleta db591309d3 Merge branch 'MDL-84844-main' of https://github.com/PhMemmel/moodle 2025-03-18 12:43:55 +08:00
Huong Nguyen 1b07e67010 Merge branch 'MDL-84305-main' of https://github.com/timhunt/moodle 2025-03-18 11:16:23 +07:00
Jun Pataleta 4af8f12476 Merge branch 'MDL-84569' of https://github.com/paulholden/moodle 2025-03-18 11:06:45 +08:00
Huong Nguyen 30d689691c Merge branch 'MDL-76565_remove-strings-deprecated-in-moodle-versions-before-4-4' of https://github.com/ziegenberg/moodle 2025-03-18 08:53:15 +07:00
Jason Den Dulk 3d7c9a043a MDL-83399 core: Add ability for admins to login as other admins.
Add helper class to contain logic.
Add unit tests to test logic.
2025-03-18 12:48:25 +11:00
Huong Nguyen 1b584c5bae Merge branch 'MDL-77621_final-deprecation-of-lib-cronlib-php' of https://github.com/ziegenberg/moodle 2025-03-18 08:47:29 +07:00
Huong Nguyen adf4a4b14a Merge branch 'MDL-76561_phase-2-of-deprecation-of-functions-in-lib-deprecatedlib-php' of https://github.com/ziegenberg/moodle 2025-03-18 08:37:50 +07:00
Andrew Nicols 1c3e04d9b9 Merge branch 'MDL-84222-main' of https://github.com/HuongNV13/moodle 2025-03-18 08:03:26 +08:00
Andrew Nicols 23a85715fc Merge branch 'MDL-84541-main' of https://github.com/laurentdavid/moodle 2025-03-18 07:17:22 +08:00
Sara Arjona 1acaa35bf4 MDL-84353 tiny_premium: Rename useaccessibilitychecker capability to usea11ychecker
AMOS BEGIN
 MOV [premium:useaccessibilitychecker,tiny_premium],[premium:usea11ychecker,tiny_premium]
AMOS END
2025-03-18 06:28:57 +08:00
Tim Hunt caba341975 MDL-84247 question: move duplicate preview code into a method
This is useful code, as can be seen by the fact it is in two places.
So, moving it to a method.
2025-03-17 17:42:44 +00:00
Tim Hunt ece18d3d22 MDL-84247 questions: rename is_valid_question -> is_qtype_usable
and move it next to is_qtype_installed. This makes the API of the
question_bank class more consistent
2025-03-17 17:12:50 +00:00
Conn Warwicker 77777a0726 MDL-84247 core_question: Improvements to handling invalid questions.
- Highlight the row and adds a badge to indicate that a question
is invalid, to make it much clearer.
- Remove the bulk action checkbox
- Fixes usage count and comments links for missingtype questions.
- Add new behat tests and fix up some existing ones to work
with new logic.
2025-03-17 16:37:27 +00:00
Mark Johnson 5e73a7c064 MDL-84227 quiz: Improve responsiveness of question page 2025-03-17 15:20:13 +00:00
Sara Arjona 4de397afc3 Merge branch 'MDL-84353-main' of https://github.com/albertgasset/moodle 2025-03-17 15:46:28 +01:00
Laurent David 0cb4955a25 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:09 +01:00
ferran c72f27fdef MDL-84897 course: fix process monitor in Bootstrap 5 2025-03-17 13:10:32 +01:00
Sara Arjona 73cb67cd78 Merge branch 'MDL-81660-main' of https://github.com/andrewnicols/moodle 2025-03-17 11:56:44 +01:00
Huong Nguyen cef44fa573 Merge branch 'MDL-83591-main' of https://github.com/andrewgos/moodle 2025-03-17 16:00:15 +07:00
Albert Gasset 2ba96bf799 MDL-84353 tiny_premium: Enable external function for the mobile app 2025-03-17 09:33:10 +01:00
Albert Gasset 11b78da682 MDL-84353 tiny_premium: Add missing capability for a11ychecker plugin 2025-03-17 09:33:10 +01:00
Albert Gasset 72f00e28b0 MDL-84353 editor_tiny: Add new external function to get configuration 2025-03-17 09:33:10 +01:00
Huong Nguyen 3036771d7a Merge branch 'MDL-84738-main' of https://github.com/roland04/moodle 2025-03-17 15:02:54 +07:00
Huong Nguyen fd33ee7db9 Merge branch 'MDL-84246' of https://github.com/cwarwicker/moodle 2025-03-17 14:57:30 +07:00
Andrew Gosali f846c47ecf MDL-83550 gradingform_rubric: fix submit no grade when remark disabled 2025-03-17 14:49:35 +07:00
Huong Nguyen ad4281f406 Merge branch 'MDL-79086_final-removal-of-share_activity' of https://github.com/ziegenberg/moodle 2025-03-17 14:45:38 +07:00
Daniel Ziegenberg 7f9d2546f6 MDL-80944 mod_quiz: Final deprecation of quiz functions
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-17 08:27:37 +01:00
Andrew Gosali fff9d0b1fb 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:22:49 +07:00
Daniel Ziegenberg c03ec92852 MDL-84154 libraries: Upgrade HTML Purifier to 4.18.0
The library comes with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 21:42:28 +01:00
Paul Holden fe8dbab58f MDL-84892 theme_boost: re-use native alerts on environment page table. 2025-03-16 19:48:17 +00:00
Daniel Ziegenberg eee1ea8269 MDL-77621 core: Final deprecation of lib/cronlib.php
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:54:49 +01:00
Daniel Ziegenberg f1cb0a6b0f MDL-84623 privacy: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:53:28 +01:00
Daniel Ziegenberg af878dc381 MDL-76565 core: Final removal of deprecated strings
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:52:41 +01:00
Daniel Ziegenberg a7f02563c7 MDL-76561 core: final deprecation of functions before Moodle 4.4
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:52:11 +01:00
Daniel Ziegenberg fb711f3a4a fixup! MDL-78090 qbank: final deprecations 2025-03-16 19:28:00 +01:00
Daniel Ziegenberg dc63a6c9e9 MDL-78090 qbank: final deprecations
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:27:58 +01:00
Daniel Ziegenberg 1d97e47040 MDL-78090 core_question: final deprecations
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:27:56 +01:00
Daniel Ziegenberg c732fe8f79 MDL-79086 core: Final removal of share_activity
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-16 19:23:06 +01:00
Jun Pataleta 8f89677192 on-demand release 5.0dev+ 2025-03-15 20:22:04 +08:00
Jun Pataleta 78a93522c1 NOBUG: Add upgrade notes 2025-03-15 20:22:03 +08:00
Andrew Nicols 41917db65e MDL-84879 core: Remove stacktrace args from exceptions 2025-03-15 14:32:25 +08:00
Mark Johnson 0f60de575e MDL-81714 output/grades: Add upgrade notes 2025-03-14 16:01:05 +00:00
Mark Johnson 69afa8a3ac MDL-81714 grades: Display "Run now" button for admins in task indicator 2025-03-14 16:01:05 +00:00
Mark Johnson 10de329397 MDL-81714 grades: Add regrading progress indicator to grade reports 2025-03-14 16:01:05 +00:00
Mark Johnson f96965b930 MDL-81714 tool_recyclebin: Remove unnecessary task runs in tests
I assume that it was necessary at some point to run the ad-hoc tasks in
these tests, however the only task now being run is
regrade_final_grades, which causes the tests to fail due as they produce
output.

Whether the regrade is performed or not has no impact on the result of
the test, so removing the ad-hoc task run seems appropriate.
2025-03-14 16:01:05 +00:00
Mark Johnson b746bcd186 MDL-81714 grades: Make large regrades asynchronous
Currently, large courses can take a long time to perform a full regrade.
This is currently handled with a progress bar to prevent frontend
timeouts while the regrade takes place. However, because it can take so
long a teacher may not want to wait with the page open for several
minutes, particularly if they are performing several operations that
trigger a regrade.

This adds a new async flag to grade_regrade_final_grades which is true
by default. Instead of performing the regrade immediately, this queues
an instance of \core\task\regrade_final_grades for the course, which
will be executed in the background.

It is advisable to always leave the async flag set true, except in the
following scenarios:
- Automated tests.
- The regrade_final_grades task which actually wants to do the
calculations immediately.
- When you have performed a check to determine that the regrade process
is unlikely to take a long time, for example there are only a small
number of grade items.
2025-03-14 16:01:04 +00:00
Ilya Tregubov a2374ee968 MDL-81945 gradereport_singleview: Fix hidden grade handling.
Seems to become broken after IR refactoring.
2025-03-14 15:24:15 +00:00
Ilya Tregubov 36b9145916 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:24:15 +00:00
Ilya Tregubov 7bd645ba2a MDL-81945 gradereport_user: Behat tests for user report. 2025-03-14 15:24:15 +00:00
Ilya Tregubov bc87df421d MDL-81945 gradereport_singleview: Behat tests for singleview report. 2025-03-14 15:24:15 +00:00
Ilya Tregubov 498c8fd364 MDL-81945 gradereport_grader: Behat tests for grader report 2025-03-14 15:24:15 +00:00
Ilya Tregubov 8989381286 MDL-81945 core_grades: create Behat step for grades action menu. 2025-03-14 15:24:15 +00:00
Ilya Tregubov 7471a1afa9 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:24:15 +00:00
Sara Arjona e283b59012 on-demand release 5.0dev+ 2025-03-14 16:15:39 +01:00
Sara Arjona 20bead3ebd NOBUG: Add upgrade notes 2025-03-14 16:15:38 +01:00
Huong Nguyen f3acee8cc0 Merge branch 'MDL-81664-fix' of https://github.com/sarjona/moodle 2025-03-14 21:58:38 +07:00
Sara Arjona 97bfc58ff0 MDL-81664 lib: Fix wrong library repository 2025-03-14 15:53:30 +01:00
Shamiso.Jaravaza f7e93c4653 MDL-83766 mod_bigbluebuttonbn: Add subplugin sort
* Change sort from default alphabetical to order in manage extension list order
2025-03-14 08:08:36 -06:00
Sara Arjona 1a7d71a0ef Merge branch 'MDL-83541-behat' of https://github.com/HuongNV13/moodle 2025-03-14 11:07:54 +01:00
Huong Nguyen 970fe33c17 MDL-83541 qtype_ddimageortext: Fix Behat failure 2025-03-14 16:02:35 +07:00
Sara Arjona d5148da03e Merge branch 'MDL-83541-behat' of https://github.com/HuongNV13/moodle 2025-03-14 09:21:00 +01:00
Huong Nguyen a2be4986d4 MDL-83541 qtype_numerical: Fix incorrect test hints 2025-03-14 14:33:27 +07:00
Andrew Nicols 53ba66f180 MDL-84877 core_message: Notification preferences should use a Toast 2025-03-14 14:33:36 +08:00
Huong Nguyen d84b9f6fed Merge branch 'MDL-83541-main' of https://github.com/HuongNV13/moodle 2025-03-14 11:59:17 +07:00
Huong Nguyen ec7146084a MDL-83541 qtypes: Remove incorrect test file 2025-03-14 10:10:41 +07:00
Mark Johnson f4ab295f45 MDL-83541 qtypes: Define excluded hash fields and test hints 2025-03-14 10:10:22 +07:00
Mark Johnson c6f329808c 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:10:18 +07:00
Mark Johnson df381865b4 MDL-83541 qtype_calculated: Add missing field to backups 2025-03-14 10:10:13 +07:00
Mark Johnson 67f32d48e4 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:10:08 +07:00
Jun Pataleta 3777d9c898 Merge branch 'MDL-60910-master' of https://github.com/danghieu1407/moodle 2025-03-14 10:03:56 +08:00
Andrew Nicols 471b14c866 MDL-81660 core: Applied PHP CSS Parser patches
One of the patches has been merged, but the other is still outstanding.
2025-03-14 06:09:40 +08:00
Paul Holden 61c19d044a Merge branch 'MDL-84142' of https://github.com/marinaglancy/moodle into main 2025-03-13 16:30:37 +00:00
Tim Hunt 0a34c6aa10 MDL-84305 qbank upgrade: fix category hierarchies before upgrade
We know that, due to old bugs in places like backup and restore,
you can get question categories with a different contextid from
their parents. This was breaking the upgrade, so this is code
to auto-fix them before the upgrade continues.

Co-authored-by: Stephan Robotta <stephan.robotta@bfh.ch>
2025-03-13 16:04:51 +00:00
Sara Arjona db93e6943b Merge branch 'MDL-83634-main' of https://github.com/junpataleta/moodle 2025-03-13 16:28:12 +01:00
Sara Arjona 1116d54c96 Merge branch 'MDL-84449_deprecate-imagecopybicubic' of https://github.com/ziegenberg/moodle 2025-03-13 16:19:31 +01:00
Daniel Ziegenberg 2be326e162 MDL-84449 core: deprecate imagecopybicubic
The GD lib is a strict requirement, so use imagecopyresampled() instead.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:44:08 +02:00
Marina Glancy 0f75ab1d0e MDL-84142 enrol_paypal: use new template for the self enrolment widget 2025-03-13 13:06:49 +00:00
Marina Glancy 129ab8007e MDL-84142 enrol_fee: use new template for the self enrolment widget 2025-03-13 13:06:44 +00:00
Marina Glancy 58a1667f92 MDL-84142 enrol_guest: use new template for the self enrolment widget 2025-03-13 13:06:39 +00:00
Marina Glancy 7c196005c7 MDL-84142 enrol_self: use new template for the self enrolment widget 2025-03-13 13:06:35 +00:00
Marina Glancy 9e4aa9e324 MDL-84142 core_enrol: new template for self enrolment widgets 2025-03-13 13:06:29 +00:00
Michael Hawkins fb5e0d56cd MDL-83160 core: Update security.txt expiry 2025-03-13 20:33:52 +08:00
Sara Arjona a4f0254cf2 Merge branch 'MDL-84849' of https://github.com/paulholden/moodle 2025-03-13 13:23:37 +01:00
Sara Arjona faf604543c Merge branch 'MDL-84624_close-recordset-in-core-task-h5p_clean_orphaned_records_task-execute' of https://github.com/ziegenberg/moodle 2025-03-13 13:20:23 +01:00
Sara Arjona 815198488c Merge branch 'MDL-84552-main' of https://github.com/laurentdavid/moodle 2025-03-13 13:17:46 +01:00
Sara Arjona 32ad42449f Merge branch '83136-fix-unknowncategory-message-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-03-13 12:38:35 +01:00
Sara Arjona 54f628288c Merge branch 'MDL-77646-main' of https://github.com/lucaboesch/moodle 2025-03-13 12:33:40 +01:00
Laurent David 9f331d86de MDL-84552 core_adminpresets: Remove chat and survey entries
* Remove chat and survey entries in existing presets
2025-03-13 11:14:21 +01:00
Jun Pataleta 4c7b1f6992 Merge branch 'MDL-84543-main' of https://github.com/andrewnicols/moodle 2025-03-13 17:01:39 +08:00
Andrew Nicols d581c45a0f MDL-84853 core: Modify scssphp for PHP 8.4
The upstream changes to scssphp to support include a breaking version
change. As an interim measure this change addresses the nullable param
deprecations introduced by PHP 8.4.
2025-03-13 16:06:09 +08:00
Stefan Hanauska 282b802b02 MDL-75196 mod_data: Improve backup link processing 2025-03-13 08:22:38 +01:00
Stefan Hanauska cf13d59989 MDL-72050 question: Delete import draftfiles immediately 2025-03-13 08:17:10 +01:00
Stefan Hanauska 66c8a02f21 MDL-72050 filelib: Add function for deleting draftarea 2025-03-13 08:17:10 +01:00
Philipp Memmel 0272f33552 MDL-84844 core_course: Add index to course_sections for mod_subsection 2025-03-13 07:09:04 +01:00
Andrew Nicols 49b39efc9e MDL-84852 core: Modify mustache.php for PHP 8.4
Mustache.php has been largely abandoned. No version compatibly with PHP
8.4 is currently available.

As an interim measure this change addresses the nullable param
deprecations introduced by PHP 8.4.
2025-03-13 14:07:41 +08:00
Jun Pataleta c685d98fb6 Merge branch 'MDL-80386' of https://github.com/timhunt/moodle 2025-03-13 12:35:59 +08:00
Jun Pataleta 1a622c6742 Merge branch 'MDL-65233-main-no-midnight' of https://github.com/sim642/moodle 2025-03-13 12:21:28 +08:00
Andrew Nicols e60e923b83 MDL-81660 core: Bump php-css-parser to 8.7.0 2025-03-13 09:53:02 +08:00
Paul Holden 9c7574a6ec MDL-84849 course: fix category management drag/drop of courses.
Required classes were refactored in BS5 changes in ba30b66e.
2025-03-12 17:34:06 +00:00
Sara Arjona 48455be56a Merge branch 'MDL-78926_final-deprecation-of-core_course-output-activity_information-output-class' of https://github.com/ziegenberg/moodle 2025-03-12 17:48:28 +01:00
Sara Arjona 74fb6ec9d6 Merge branch 'MDL-83552' of https://github.com/dravek/moodle 2025-03-12 17:41:33 +01:00
Conn Warwicker 01d4095926 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-12 15:43:08 +00:00
Paul Holden 8d17d42b9c Merge branch 'MDL-84790-main' of https://github.com/roland04/moodle into main 2025-03-12 13:54:35 +00:00
Paul Holden 3468e4fc38 MDL-84143 enrol: upgrade note for new course enrolment renderer. 2025-03-12 11:57:34 +00:00
Paul Holden 170b27d99d Merge branch 'MDL-84143' of https://github.com/marinaglancy/moodle into main 2025-03-12 11:47:27 +00:00
Paul Holden 5a4a03cba6 Merge branch 'MDL-84649-main' of https://github.com/roland04/moodle into main 2025-03-12 11:37:05 +00:00
Sara Arjona 33710ad84b Merge branch 'MDL-78635' of https://github.com/paulholden/moodle 2025-03-12 12:27:50 +01:00
Sara Arjona 4226e94eea Merge branch 'MDL-79124' of https://github.com/paulholden/moodle 2025-03-12 12:23:00 +01:00
Conn Warwicker fc3192026d MDL-84246 core_question: Fix transfer task for invalid questions. 2025-03-12 10:52:03 +00:00
Ilya Tregubov 647db3f6e4 MDL-84143 enrol: Use mustache templates on enrolment options page 2025-03-12 10:38:51 +00:00
Huong Nguyen 38ae4260ea Merge branch 'MDL-84175_upgrade-WebAuthn-to-2-2-0' of https://github.com/ziegenberg/moodle 2025-03-12 17:19:28 +07:00
Daniel Ziegenberg fb3121a49c MDL-84175 libraries: Upgrade WebAuthn to 2.2.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:34:57 +02:00
Huong Nguyen dadc62f937 Merge branch 'MDL-84657_deprecate-calendar_add_month' of https://github.com/ziegenberg/moodle 2025-03-12 17:01:15 +07:00
Huong Nguyen 849138cf21 Merge branch 'MDL-79434_final-deprecation-of-calendar-functions' of https://github.com/ziegenberg/moodle 2025-03-12 16:49:41 +07:00
Daniel Ziegenberg 47b1b9eca3 MDL-79434 core_calendar: Initial deprecation of calendar_sub_month
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-12 10:42:09 +01:00
Daniel Ziegenberg 1749f92461 MDL-79434 core_calendar: Final removal of calendar functions
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-12 10:40:17 +01:00
Huong Nguyen 35622df64c Merge branch 'MDL-84640-main' of https://github.com/andelacruz/moodle 2025-03-12 16:32:00 +07:00
Huong Nguyen 523a2499ef Merge branch 'MDL-84742-main' of https://github.com/sarjona/moodle 2025-03-12 16:09:51 +07:00
Huong Nguyen dfabf5cfd6 Merge branch 'MDL-78605_final-deprecation-of-token_table-col_token' of https://github.com/ziegenberg/moodle 2025-03-12 15:46:08 +07:00
Angelia Dela Cruz 8abc980bcf MDL-84640 analytics: Behat for obtaining prediction models insights 2025-03-12 16:11:32 +08:00
Paul Holden 5f4565b271 MDL-79124 user: final removal of deprecated user preference methods. 2025-03-12 08:07:39 +00:00
Sara Arjona cfb3aa7ab8 Merge branch 'MDL-78780' of https://github.com/paulholden/moodle 2025-03-12 09:00:48 +01:00
Sara Arjona 1fa10951cf Merge branch 'MDL-81185' of https://github.com/paulholden/moodle 2025-03-12 08:54:28 +01:00
Sara Arjona 8192909868 Merge branch 'MDL-78869' of https://github.com/paulholden/moodle 2025-03-12 08:49:34 +01:00
Sara Arjona 49d118abd9 Merge branch 'MDL-78706' of https://github.com/paulholden/moodle 2025-03-12 08:34:44 +01:00
Sara Arjona 27f3bb0269 Merge branch 'MDL-80491' of https://github.com/paulholden/moodle 2025-03-12 08:30:32 +01:00
Sara Arjona a70d511f29 Merge branch 'MDL-83901-main-v02' of https://github.com/ferranrecio/moodle 2025-03-12 08:09:16 +01:00
Sara Arjona dd0321926c Merge branch 'MDL-81664-main' of https://github.com/andrewnicols/moodle 2025-03-12 07:48:04 +01:00
Andrew Nicols fdd8891091 MDL-84543 core: Basepath guess should work on root domains 2025-03-12 13:03:05 +08:00
Andrew Nicols d478ce6683 MDL-81664 core: Upgrade phpoffice/phpspreadsheet 2025-03-12 12:22:03 +08:00
Jun Pataleta aa7e06c0b8 MDL-83634 tool_brickfield: Test the image alt text check's severity 2025-03-12 12:02:57 +08:00
Jun Pataleta 33a8062efd 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 12:02:57 +08:00
Jun Pataleta 206b3c3bba 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 12:02:56 +08:00
Huong Nguyen 8163ba8d1c Merge branch 'MDL-84578' of https://github.com/cwarwicker/moodle 2025-03-12 10:39:19 +07:00
Huong Nguyen 91d2bf3b97 Merge branch 'main_MDL-84651' of https://github.com/mattporritt/moodle 2025-03-12 08:41:52 +07:00
Matt Porritt 6f127840c2 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-12 11:39:36 +11:00
Sara Arjona 7f55c4c469 Merge branch 'MDL-84801-main' of https://github.com/HuongNV13/moodle 2025-03-11 17:26:05 +01:00
ferran 6787c7ff64 MDL-83901 mod_workshop: add course overview integration 2025-03-11 17:08:34 +01:00
Mikel Martín 1da9f35196 MDL-84738 theme_boost: Replace Bootstrap deprecated helper classes 2025-03-11 16:28:07 +01:00
Mikel Martín faaa8a243f MDL-84738 mod_assign: Fix main action buttons layout
After Bootstrap 5 upgrade in MDL-75669 the main action buttons displayed
after the activity header were not displayed horizontally. Fix the layout
for BS5.
2025-03-11 16:26:32 +01:00
Andrew Nicols 038eca190f Merge branch 'MDL-84728_main' of https://github.com/marxjohnson/moodle 2025-03-11 22:43:51 +08:00
Andrew Nicols b85b7a61ad Merge branch 'MDL-84789' of https://github.com/paulholden/moodle 2025-03-11 22:32:15 +08:00
Andrew Nicols 7d131fe4aa MDL-83440 core: Correct upgrade notes 2025-03-11 22:30:35 +08:00
Mark Johnson 443bb137f7 MDL-84728 question: Map set references to original categories on restore
The restore process assumes all categories in the backup need restoring,
then sorts out which ones to keep later.

This caused issues with restoring set references that used categories
from a shared question bank, since the reference was updated to point to
a copy of the original category, which then got removed as it wasn't
needed.

This change checks whether we should keep the set reference pointing at
the original category, which it will unless:
- We are restoring to a different site (so the original category will
not exist)
- The context the original category belonged to no longer exists.
- The original category itself no longer exists
- The original category belonged to the same context as the original set
reference (in which case we are restoring a whole module, including a
copy of the category)
- We do not have permission to access questions in the original context.
If any of these are true, we should be keeping the restored copy of the
category, and the filter condition should point to it instead.
2025-03-11 14:28:25 +00:00
Andrew Nicols 6ed1e26ea4 Merge branch 'MDL-83440' of https://github.com/timhunt/moodle 2025-03-11 22:26:38 +08:00
Mikel Martín add6f71d06 MDL-84790 theme_boost: Fix btn-icon styles
Fix btn-icon styles following changes in MDL-84692
2025-03-11 15:13:43 +01:00
Sara Arjona b1276473f2 MDL-84742 enrol: Remove empty file enrol/self/bulkchangeforms.php 2025-03-11 14:55:05 +01:00
Derek Henderson 06f256fd60 MDL-77646 lib: Use iframe instead of object to display pdf. 2025-03-11 13:52:45 +01:00
Sara Arjona 2f82f5fe8c on-demand release 5.0dev+ 2025-03-11 13:11:38 +01:00
Sara Arjona e359b2444b NOBUG: Add upgrade notes 2025-03-11 13:11:38 +01:00
Sara Arjona cdb7d7475d Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-03-11 13:11:29 +01:00
Paul Holden 2270da3f7e MDL-84789 tag: Behat scenario for sorting of users in tags report. 2025-03-11 11:25:30 +00:00
Mark Johnson c9828a8105 MDL-84591 questions: Save question in use when a course is deleted
question_category_delete_safe checks if questions in the category to be
deleted are in use, and if so, saves them to a new qbank instance to
avoid breaking existing quizzes.

However, if the whole course is being deleted, the qbank is created in
the current course as question_category_delete_safe does not know is is
about to be deleted, and the questions are lost when the deletion
occurs.

This change passes down a flag to question_category_delete_safe so it
knows it was called as part of a whole course deletion, and moves saved
questions to the site course instead of the current course.
2025-03-11 11:00:40 +00:00
Jun Pataleta 83d90775a6 Merge branch 'MDL-84766' of https://github.com/paulholden/moodle 2025-03-11 12:01:30 +08:00
Jun Pataleta 43baa7b182 Merge branch 'MDL-84765' of https://github.com/paulholden/moodle 2025-03-11 11:32:15 +08:00
Jun Pataleta c64a5720b8 Merge branch 'MDL-84416-main' of https://github.com/sarjona/moodle 2025-03-11 11:06:28 +08:00
Jun Pataleta 9e21e25f6f Merge branch 'MDL-84769-main' of https://github.com/sarjona/moodle 2025-03-11 11:04:58 +08:00
Jun Pataleta 6dc94767d2 Merge branch 'MDL-84272' of https://github.com/timhunt/moodle 2025-03-11 11:02:25 +08:00
Jun Pataleta ffdb7689c2 Merge branch 'MDL-83884-master' of https://github.com/ntdat1904/datnguyen_moodle 2025-03-11 10:30:56 +08:00
Huong Nguyen 1a87a816ae MDL-84801 Behat: Fix Expand all fieldsets and advanced elements failure 2025-03-11 09:11:02 +07:00
AMOS bot cff036bb7f Automatically generated installer lang files 2025-03-11 00:07:59 +00:00
Paul Holden f73c90fe8b MDL-84569 payment: consistent payment modal primary button alignment. 2025-03-10 16:38:04 +00:00
Sara Arjona 8e1248930f Merge branch 'MDL-84537' of https://github.com/paulholden/moodle 2025-03-10 16:59:11 +01:00
Paul Holden 0d71bbbd96 Merge branch 'MDL-84524-main' of https://github.com/roland04/moodle into main 2025-03-10 15:30:50 +00:00
Paul Holden b2c459dbdd Merge branch 'MDL-84139' of https://github.com/marinaglancy/moodle into main 2025-03-10 14:50:57 +00:00
Paul Holden b445a4ee1e MDL-84789 reportbuilder: consistent user name sort by aliased field.
More work built upon e76d99f2, we need to perform the alias processing
earlier to ensure that it works for system reports where user sorting
isn't the default.
2025-03-10 13:31:33 +00:00
Mark Johnson b94b1ed5ff MDL-81714 output: Update stored progress bar APIs
Expand the methods available in the stored_progress_bar output component
and stored_progress_task_trait to allow a progress bar to be created in
a "pending" state before the associated task is executed.
2025-03-10 12:41:29 +00:00
Mark Johnson 91e69cee7f MDL-81714 progress: Add new \core\progress\stored class
This progress class updates a stored_progress_bar in a similar way to
how \core\progress\display updates a regular progress_bar, but it does
not produce any output unless the progress bar does.
2025-03-10 12:41:28 +00:00
Daniel Ziegenberg bf7abf4171 MDL-84657 core_calendar: Initial deprecation of calendar_add_month
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-10 11:52:05 +01:00
Sara Arjona 3623cda234 Merge branch 'MDL-84313-main' of https://github.com/dpalou/moodle 2025-03-10 11:35:37 +01:00
Paul Holden 34cbd649e2 Merge branch 'MDL-84620_close-recordset-in-tool_brickfield-manager-check_scheduled_areas' of https://github.com/ziegenberg/moodle into main 2025-03-10 10:29:37 +00:00
Daniel Ziegenberg bdf91420da MDL-84620 accessibility: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:40:24 +02:00
Sara Arjona def051bab0 Merge branch 'MDL-84743-main' of https://github.com/roland04/moodle 2025-03-10 11:20:52 +01:00
Sara Arjona d8855e67a2 Merge branch 'MDL-84256-main' of https://github.com/laurentdavid/moodle 2025-03-10 11:16:37 +01:00
Sara Arjona 4d07aaadf4 Merge branch 'MDL-84398' of https://github.com/pedrojordao/moodle 2025-03-10 11:12:05 +01:00
Sara Arjona 0155708345 Merge branch 'MDL-84159' of https://github.com/paulholden/moodle 2025-03-10 11:07:26 +01:00
Sara Arjona 50864aba80 Merge branch 'MDL-84401' of https://github.com/paulholden/moodle 2025-03-10 10:58:10 +01:00
Paul Holden 89738625b4 MDL-84537 reportbuilder: define optional 'separator' aggregation value.
For the group concatenation types, allow callers to define the text to
display between aggregated items. Use this to change the separator for
formatted tag names to be a space character.
2025-03-10 09:55:32 +00:00
Sara Arjona ff23924e80 Merge branch 'MDL-84156_upgrade-Simplepie-to-1-8-1' of https://github.com/ziegenberg/moodle 2025-03-10 09:45:56 +01:00
Daniel Ziegenberg 2572e113ea MDL-84156 Libraries: code cleanup of moodle_simplepie
- use "self::" for local static member reference
- small whitespace clean ups

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:35:44 +02:00
Daniel Ziegenberg d708bddfcb MDL-84156 Libraries: Upgrade SimpePie to 1.8.1
- removed sources in the `library/` directory of the SimplePie lib as
  those were for PSR-0 namespaces and we use PSR-4
- removed the PSR-4 autoloader provided by SimmpePie as we use our own
  class loading mechanism
- updated the instructions in readme_moodle.txt
- fixed constants now being namespaced under \SimplePie\SimplePie

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:35:38 +02:00
ferran 488244d12d MDL-84469 core_course: add fallback activity overview 2025-03-10 09:25:24 +01:00
David Carrillo c03f47abfd MDL-83552 reportbuilder: Add custom fields to Report builder 2025-03-10 08:21:10 +01:00
Paul Holden 8f9a5f131e MDL-83552 customfield: create external exporter for field data. 2025-03-10 08:20:09 +01:00
Sara Arjona 328b325fbc 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:16:36 +01:00
AMOS bot cd592967db Automatically generated installer lang files 2025-03-10 00:07:47 +00:00
Paul Holden 79d329d325 MDL-78869 core: final removal of deprecated openssl encryption support. 2025-03-09 20:25:00 +00:00
Paul Holden bfabec2b65 MDL-84537 reportbuilder: pass options to aggregation type constructor.
Amendments to the column class allow reports/entities to specify these
options for column instances, which are then passed to the aggregation
type when it is applied.
2025-03-09 20:18:54 +00:00
Andrew Nicols c8d1b8e0c0 Merge branch 'MDL-84177_upgrade-JMESPath-to-2-8-0' of https://github.com/ziegenberg/moodle 2025-03-09 22:37:49 +08:00
Daniel Ziegenberg 232c8f48fa MDL-84177 libraries: Upgrade JMESPath to 2.8.0
The library comes with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:39:50 +02:00
Andrew Nicols 232a1be14d Merge branch 'MDL-84176_upgrade-aws-sdk-to-3-342-2' of https://github.com/ziegenberg/moodle 2025-03-09 22:37:43 +08:00
Daniel Ziegenberg 03121f33c6 MDL-84176 libraries: Upgrade AWS SDK for PHP to 3.342.2
The library raises the minimum required PHP version to 8.0 and comes
with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-08 21:17:03 +01:00
Andrew Nicols c6a267109c Merge branch 'MDL-83798-main' of https://github.com/srobotta/moodle 2025-03-08 21:13:19 +08:00
Andrew Nicols ffbc57361b Merge branch 'MDL-84164_upgrade-PHP-JWT-to-6-11-0' of https://github.com/ziegenberg/moodle 2025-03-08 21:11:19 +08:00
Daniel Ziegenberg 415ff35be6 MDL-84164 libaries: Upgrade PHP-JWT to 6.11.0
The library raises the minimum required PHP version to 8.0 and comes
with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:36:19 +02:00
Andrew Nicols b395f437a3 Merge branch 'MDL-84169_upgrade-FPDI-to-2-6-3' of https://github.com/ziegenberg/moodle 2025-03-08 21:08:44 +08:00
Daniel Ziegenberg 8793ceda5a MDL-84169 libraries: Upgrade FPDI to 2.6.3
The library raises the minimum required PHP version to 7.1 and comes with PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-05-06 06:39:22 +02:00
Andrew Nicols 741a457791 Merge branch 'MDL-82937-main' of https://github.com/andrewgos/moodle 2025-03-08 20:57:45 +08:00
Andrew Nicols fad3caa1a6 Merge branch 'MDL-83230-main' of https://github.com/andrewgos/moodle 2025-03-08 20:57:03 +08:00
Andrew Nicols 972fa5b23e Merge branch 'MDL-77668-main' of https://github.com/kevpercy/moodle 2025-03-08 20:55:26 +08:00
Andrew Nicols cd060fb6df Merge branch 'MDL-75745-main' of https://github.com/andrewgos/moodle 2025-03-08 20:53:25 +08:00
Andrew Nicols e183df6de2 Merge branch 'MDL-84529' of https://github.com/cwarwicker/moodle 2025-03-08 20:52:04 +08:00
Jun Pataleta 8cb5d000a1 on-demand release 5.0dev+ 2025-03-08 11:45:27 +08:00
Jun Pataleta fb5abbafb6 NOBUG: Add upgrade notes 2025-03-08 11:45:27 +08:00
Jun Pataleta b4981ff67e NOBUG: Fixed file access permissions 2025-03-08 11:45:16 +08:00
Sara Arjona 46dd5f4a7c MDL-84769 calendar: Fix random PHPHUnit failures 2025-03-07 13:05:11 +01:00
Sara Arjona 37798a0f2e Merge branch 'MDL-84652-main-fix' of https://github.com/junpataleta/moodle 2025-03-07 11:45:19 +01:00
Laurent David 4feea9437f 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:19:30 +01:00
Sara Arjona 41d5b80b6a Merge branch 'MDL-84705-main' of https://github.com/roland04/moodle 2025-03-07 10:43:11 +01:00
Jun Pataleta 2fdd4220f2 MDL-84652 core: Properly uninstall mnetservice_enrol 2025-03-07 17:35:09 +08:00
Andrew Gosali ebe7a17655 MDL-83230 forum: removal of subject prefix "Re:" in forum discussions
- When replying in the forum
- When replying to the email
- When clicking the link in the email to reply
2025-03-07 17:33:04 +08:00
Andrew Gosali d912b2a083 MDL-75745 mod_book: import chapters to parse anchor links 2025-03-07 17:29:15 +08:00
Huong Nguyen d23870bc75 Merge branch 'MDL-84602-fix' of https://github.com/sarjona/moodle 2025-03-07 15:35:45 +07:00
Andrew Gosali 844b0c0dbd 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:53:46 +08:00
Mikel Martín 16e60b9937 MDL-84649 tiny_media: Fix delete image icon positioning
After Bootstrap 5 upgrade in MDL-75669 the image delete icon was
incorrectly positioned.
Fix the related template.
2025-03-07 08:37:55 +01:00
Mikel Martín 98a13669c3 MDL-84524 theme_boost: Fix backup/restore styles after BS5 upgrade 2025-03-07 08:30:29 +01:00
Sara Arjona ffa16a1eb3 MDL-84602 assign: Fix behat failures 2025-03-07 08:05:56 +01:00
Jun Pataleta 80ddc793fb Merge branch 'MDL-80995' of https://github.com/paulholden/moodle 2025-03-07 12:25:09 +08:00
Jun Pataleta e8c07e0599 Merge branch 'MDL-83216-main' of https://github.com/meirzamoodle/moodle 2025-03-07 12:15:29 +08:00
meirzamoodle 2f10fde01e MDL-83216 AI: Provider instances ordering 2025-03-07 11:10:11 +07:00
Huong Nguyen 31e26bae5e Merge branch 'MDL-84107-main' of https://github.com/HuongNV13/moodle 2025-03-07 11:00:08 +07:00
Andrew Nicols faeb72afa0 Merge branch 'MDL-84342-main' of https://github.com/meirzamoodle/moodle 2025-03-07 11:50:41 +08:00
Andrew Nicols fd5cb87d8c Merge branch 'MDL-81328' of https://github.com/Chocolate-lightning/moodle 2025-03-07 11:48:50 +08:00
meirzamoodle 1503d5fe81 MDL-84342 core_sms: Implement simple SMS notification shortening 2025-03-07 10:47:15 +07:00
Andrew Nicols 773220ddbe Merge branch 'MDL-84617-main' of https://github.com/sarjona/moodle 2025-03-07 11:43:10 +08:00
Jun Pataleta 820b16f97d Merge branch 'MDL-84652-main' of https://github.com/davewoloszyn/moodle 2025-03-07 10:54:11 +08:00
Daniel Ziegenberg 19f0c27ac0 MDL-84652 core: Add privacy provider for mnet
This privacy provider was erroneously added to auth_mnet where it should
not have been in the first place.

Original issue: MDL-84307

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:51:07 +08:00
Daniel Ziegenberg c3af0680e2 MDL-84652 core_auth: Remove auth_mnet dependencies
- Remove auth_mnet from the standard plugins
- PHP Unit:
  - Remove auth_mnet as a sample from unit testing in login tests
    and component tests replacing it with auth_ldap.
  - Conditionally skip tests for block mnet_hosts when auth_mnet is
    not installed.

Original issue: MDL-84307

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:50:47 +08:00
Daniel Ziegenberg db16fae43a MDL-84652 auth_mnet: Remove auth_mnet from Moodle 5.0
Original issue: MDL-84307

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:50:29 +08:00
Daniel Ziegenberg 60f7db3a93 MDL-84652 core: Remove block_mnet_hosts dependencies
- Remove block_mnet_hosts from the standard plugins
- Remove block_mnet_hosts from default admin presets
- Replace block_mnet_hosts in behat tests of core features

Original issue: MDL-84309

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:49:58 +08:00
Daniel Ziegenberg 660f12dc7c MDL-84652 block_mnet_hosts: Remove block_mnet_hosts from Moodle 5.0
Original issue: MDL-84309

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:49:39 +08:00
Daniel Ziegenberg 731cfd8529 MDL-84652 core: Remove enrol_mnet dependencies
- Remove block_mnet_hosts from the standard plugins

Original issue: MDL-84310

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:48:13 +08:00
Daniel Ziegenberg 085d32414a MDL-84652 enrol_mnet: Remove enrol_mnet from Moodle 5.0
Original issue: MDL-84310

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:47:47 +08:00
Daniel Ziegenberg f2208c1f6c MDL-84652 core_portfolio: Remove portfolio_mahara dependencies
- Remove portfolio_mahara from the standard plugins

Original issue: MDL-84308

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:47:00 +08:00
Daniel Ziegenberg c92646961d MDL-84652 portfolio_mahara: Remove portfolio_mahara from Moodle 5.0
Original issue: MDL-84308

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:46:27 +08:00
Daniel Ziegenberg e7011ad3f9 MDL-84652 core: Deprecate plugintype mnetservice
Original issue: MDL-84311
2025-03-07 10:46:08 +08:00
Daniel Ziegenberg 3dc9d02b51 MDL-84652 mnetservice_enrol: Remove mnetservice_enrol dependencies
Original issue: MDL-84311

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:45:24 +08:00
Daniel Ziegenberg f4eb61f8e2 MDL-84652 mnetservice_enrol: Remove mnetservice_enrol from Moodle 5.0
Original issue: MDL-84311

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-07 10:44:05 +08:00
Jun Pataleta db637903fc Merge branch 'MDL-78304_final-deprecation-for-mnet' of https://github.com/ziegenberg/moodle 2025-03-07 10:08:20 +08:00
Jun Pataleta 2c0c6a3f6f Merge branch 'MDL-84551' of https://github.com/jonof/moodle 2025-03-07 10:04:51 +08:00
Jun Pataleta 3273363698 Merge branch 'MDL-75486-main' of https://github.com/stevandoMoodle/moodle 2025-03-07 09:57:48 +08:00
Andrew Nicols 0360fb62d9 MDL-83334 core: Remove remaining references to E_STRICT in docs 2025-03-07 09:35:29 +08:00
Andrew Nicols ce74bfca99 Merge branch 'MDL-83334_remove-all-references-to-E_STRICT' of https://github.com/ziegenberg/moodle 2025-03-07 09:35:26 +08:00
Huong Nguyen a561c7611a Merge branch 'MDL-84737-main' of https://github.com/junpataleta/moodle 2025-03-07 08:32:14 +07:00
Andrew Nicols 2d8fc486da Merge branch 'MDL-81623' of https://github.com/paulholden/moodle 2025-03-07 09:25:01 +08:00
Stevani Andolo 70b5993e2a MDL-75486 filter_mathmaxloader: Upgraded MathJax cdn to version 3.2.2 2025-03-07 09:23:48 +08:00
Andrew Nicols 4cfa8f9884 Merge branch 'MDL-84602-main' of https://github.com/ferranrecio/moodle 2025-03-07 09:19:45 +08:00
Andrew Nicols 71d8a1f515 Merge branch 'MDL-84729-main' of https://github.com/HuongNV13/moodle 2025-03-07 09:10:33 +08:00
Andrew Nicols 0b4e05f524 Merge branch 'MDL-84532-main' of https://github.com/mihailges/moodle 2025-03-07 09:07:47 +08:00
Andrew Nicols f289bb4625 Merge branch 'MDL-83886-master' of https://github.com/ngtrdai/moodle 2025-03-07 09:06:16 +08:00
Andrew Nicols bfc826809a Merge branch 'MDL-83881_main' of https://github.com/marxjohnson/moodle 2025-03-07 09:05:13 +08:00
Andrew Nicols e7dd68201b Merge branch 'MDL-80173' of https://github.com/paulholden/moodle 2025-03-07 09:03:55 +08:00
Andrew Nicols 0f4cf18554 Merge branch 'MDL-82936' of https://github.com/paulholden/moodle 2025-03-07 09:01:41 +08:00
Paul Holden 1dc4b0586b MDL-84766 ai: use first enabled provider as default in instance form. 2025-03-06 19:53:26 +00:00
Paul Holden 75942da331 MDL-84765 aiprovider_azureai: ensure tests refer to correct provider. 2025-03-06 18:21:02 +00:00
Sara Arjona b7da6077eb Merge branch 'MDL-84155_upgrade-PHPMailer-to-6-9-3' of https://github.com/ziegenberg/moodle 2025-03-06 17:28:01 +01:00
Mikel Martín cace3ebb38 MDL-84743 theme_boost: Fix form checkboxes spacing
After Bootstrap upgrade in MDL-75669 the checkbox and advanced checkbox
form elements were not correctly displayed, because there was no space
between the input and the label. Fixed it using BS5 syntax.
2025-03-06 16:07:46 +01:00
ferran c85ae796cd MDL-84602 course: allowing chained setters to overview items 2025-03-06 15:46:35 +01:00
ferran 0f4cb86948 MDL-84602 course: adding alert count to overview 2025-03-06 15:46:35 +01:00
Paul Holden e44c23c982 MDL-82936 reportbuilder: implement report actions for existing reports.
Applied to the admin user listing page, and the report/schedule pages
to align the "New X" buttons.
2025-03-06 14:22:53 +00:00
Paul Holden c439e2d3c1 MDL-82936 reportbuilder: new APIs for enhancing report rendering.
We're introducing two new sets of APIs for both custom and system
reports:

* Report actions allow for the definition of an action to belong
  to the report and be rendered alongside the filters button;
* Report info container allows for the definition of content to
  render between the aforementioned action buttons and the table
  content itself
2025-03-06 14:22:53 +00:00
Sara Arjona 6068a51009 Merge branch 'MDL-84740-main' of https://github.com/roland04/moodle 2025-03-06 15:03:04 +01:00
Sara Arjona 25a0af5c20 Merge branch 'MDL-84720' of https://github.com/paulholden/moodle 2025-03-06 15:02:01 +01:00
Sara Arjona 9dfa2dfdc1 Merge branch 'MDL-84380-main' of https://github.com/laurentdavid/moodle 2025-03-06 15:00:49 +01:00
Sara Arjona e3a2547b58 Merge branch 'MDL-83720' of https://github.com/paulholden/moodle 2025-03-06 14:55:49 +01:00
Sara Arjona 7e20422545 Merge branch 'MDL-83265' of https://github.com/paulholden/moodle 2025-03-06 14:49:09 +01:00
Sara Arjona fee78a7dc3 Merge branch 'MDL-84744-main' of https://github.com/HuongNV13/moodle 2025-03-06 14:45:24 +01:00
Mark Johnson 086f6ba6db MDL-83881 qbank_viewcreator: Creator and modifier name filters
Add additional question filters for the "Created by" name and "Modified
by" name.

These filters will operate on all name fields that are selected for
these columns, as the exact text displayed is determined by the
fullname() function and not he query.
2025-03-06 11:42:30 +00:00
Mark Johnson d5397fee96 MDL-83881 question: Switch user ids in updated questions
Add switching of "modifiedby" and "createdby" usernames for user ids in
the "updated questions" behat creatable entity.
2025-03-06 11:42:30 +00:00
Conn Warwicker c7790d4ba7 MDL-84578 qbank_managecategories: Add category validation.
- This adds JS validation to the category autocomplete.
- This adds new behat steps to check this validation.
- This adds a new behat test to test this in managecategories.
2025-03-06 11:06:01 +00:00
Dai Nguyen Trong 9ce207c934 MDL-83886 badges: Move bakerlib.php to classes/png_metadata_handler 2025-03-06 17:23:44 +07:00
Huong Nguyen f1e1d84284 MDL-84744 enrol: Fix undefined function course_get_url 2025-03-06 17:04:59 +07:00
Dat Nguyen c47a972892 MDL-83884 badges: Move form files from badges to badges/classes/form 2025-03-06 16:47:24 +07:00
Huong Nguyen 7c1d949a90 MDL-84107 core_analytics: Version bump 2025-03-06 16:29:30 +07:00
Huong Nguyen 110a0afbaa MDL-84107 core_adminpresets: Remove Analytics setting 2025-03-06 16:29:30 +07:00
Huong Nguyen 1e604efa65 MDL-84107 core_analytics: Switch Behat to use Python backend 2025-03-06 16:29:30 +07:00
Huong Nguyen 5dc4290eba MDL-84107 core_analytics: Switch PHPUnit to use Python backend 2025-03-06 16:29:30 +07:00
Jun Pataleta 00bf9b20c4 MDL-84170 tiny_html: Regenerate for latest updates
The versions of the following dependencies have been updated as of
integration:
- codemirror/search: 6.5.9 => 6.5.10
- codemirror/view: 6.36.2 => 6.36.4
2025-03-06 17:22:55 +08:00
Jun Pataleta 7a81ae883e Merge branch 'MDL-84170-main' of https://github.com/meirzamoodle/moodle 2025-03-06 17:22:17 +08:00
Jun Pataleta 2ab060c006 Merge branch 'MDL-84354-main' of https://github.com/stevandoMoodle/moodle 2025-03-06 15:42:22 +08:00
Jun Pataleta 35801224df Merge branch 'MDL-84179-main' of https://github.com/meirzamoodle/moodle 2025-03-06 15:11:57 +08:00
Jun Pataleta 8ea054dc8f Merge branch 'MDL-84157-main' of https://github.com/meirzamoodle/moodle 2025-03-06 13:23:45 +08:00
David Woloszyn 2aeef38c7b MDL-84107 core_analytics: Skip tests if mlbackend_python not configured 2025-03-06 11:48:41 +07:00
David Woloszyn 42c2b70505 MDL-84107 mlbackend_php: Remove mlbackend_php
Replaced by mlbackend_python as the new default. New installs
will have analytics disabled to give admins a chance to
configure mlbackend_python before enabling analytics again.
2025-03-06 11:48:32 +07:00
Andrew Nicols 2455005096 Merge branch 'MDL-84558' of https://github.com/timhunt/moodle 2025-03-06 11:56:36 +08:00
Jun Pataleta 0c226198f0 Merge branch 'MDL-84162-main' of https://github.com/meirzamoodle/moodle 2025-03-06 11:53:59 +08:00
Andrew Nicols 399d04d09e Merge branch 'MDL-84723-main' of https://github.com/lameze/moodle 2025-03-06 11:50:12 +08:00
Andrew Nicols 8d5f85017a Merge branch 'MDL-84036-main' of https://github.com/aanabit/moodle 2025-03-06 11:47:47 +08:00
Simey Lameze 8fffdf5aa8 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:33 +08:00
Jun Pataleta a183cd73dc Merge branch 'MDL-84161-main' of https://github.com/meirzamoodle/moodle 2025-03-06 11:22:36 +08:00
Jun Pataleta d057b12be1 MDL-84163 componentlibrary: Update fontawesomeicons.json 2025-03-06 10:53:17 +08:00
Jun Pataleta b56de54faa Merge branch 'MDL-84163-main' of https://github.com/meirzamoodle/moodle 2025-03-06 10:49:39 +08:00
Jun Pataleta 24c33f569a Merge branch 'MDL-84165-main' of https://github.com/stevandoMoodle/moodle 2025-03-06 10:01:21 +08:00
Andrew Nicols 6a8840348a Merge branch 'MDL-84171' of https://github.com/paulholden/moodle 2025-03-06 09:21:44 +08:00
Andrew Nicols 48b252e04c Merge branch 'MDL-84295-main' of https://github.com/laurentdavid/moodle 2025-03-06 09:19:06 +08:00
Andrew Nicols f46591d196 Merge branch 'MDL-75442-main' of https://github.com/StudiUM/moodle 2025-03-06 09:10:51 +08:00
Andrew Nicols 035a92fa2c Merge branch 'MDL-84135' of https://github.com/paulholden/moodle 2025-03-06 09:09:06 +08:00
Sara Arjona 295ea4398a Merge branch 'MDL-84457' of https://github.com/paulholden/moodle 2025-03-05 16:40:47 +01:00
Sara Arjona 5354e2af6c Merge branch 'MDL-82399' of https://github.com/paulholden/moodle 2025-03-05 16:35:10 +01:00
Mikel Martín 841b2e2ca2 MDL-84705 AI: Fix image model form buttons
-After Bootstrap 5 upgrade in MDL-75669 the AI image model form buttons
were not working correctly. Fix the related syntax to BS5.
- Fix some deprecated 'form-group' usages
2025-03-05 14:48:18 +01:00
Andrew Nicols fd9b38d054 Merge branch 'MDL-79162' of https://github.com/paulholden/moodle 2025-03-05 21:15:42 +08:00
Andrew Nicols 8a2f61011a Merge branch 'MDL-84474_upgrade-libphonenumber-to-8-13-54' of https://github.com/ziegenberg/moodle 2025-03-05 21:09:36 +08:00
sam marshall e1c9edcfab MDL-84731 Calendar: Course select should honour courselistshortnames 2025-03-05 13:04:22 +00:00
Andrew Nicols 8caa60eb5f Merge branch 'MDL-81669_upgrade-phpxmlrpc' of https://github.com/ziegenberg/moodle 2025-03-05 21:03:48 +08:00
Andrew Nicols 6f118c31e0 Merge branch 'MDL-83026-main' of https://github.com/albertgasset/moodle 2025-03-05 21:00:11 +08:00
Andrew Nicols e8b91a6450 Merge branch 'MDL-78449-main' of https://github.com/dpalou/moodle 2025-03-05 20:58:28 +08:00
Andrew Nicols 07db45d74d Merge branch 'MDL-84618-main' of https://github.com/roland04/moodle 2025-03-05 20:57:39 +08:00
Jun Pataleta 947aafe7ce Merge branch 'MDL-84384' of https://github.com/paulholden/moodle 2025-03-05 20:43:30 +08:00
Mikel Martín a4aeacaca1 MDL-84740 theme_boost: Fix deprecated styles 2025-03-05 11:12:01 +01:00
Laurent David ee44c0c384 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:15:46 +01:00
Angelia Dela Cruz f862c5a06c MDL-84723 gradingform: Behat for maximum grade mismatch in marking guide 2025-03-05 17:12:21 +08:00
Mikel Martín bba4b46a3b MDL-84618 theme_boost: Fix buttons .btn hover styles 2025-03-05 09:54:10 +01:00
Dani Palou 3df726539b MDL-78449 choice: Support groups in get_choice_results WS 2025-03-05 09:34:16 +01:00
Sara Arjona 4c49799d04 Merge branch 'MDL-84002' of https://github.com/paulholden/moodle 2025-03-05 08:58:13 +01:00
Stephan Robotta c25db8ea78 MDL-83798 core_communication: include provider in exception messages 2025-03-05 08:54:44 +01:00
Sara Arjona 01a5feb9b5 Merge branch 'MDL-83888-main-v02' of https://github.com/ferranrecio/moodle 2025-03-05 08:31:28 +01:00
Sara Arjona 17c6b8509a Merge branch 'MDL-84265-main' of https://github.com/andrewnicols/moodle 2025-03-05 08:22:36 +01:00
Andrew Nicols b3796d2e60 Merge branch 'MDL-84172' of https://github.com/paulholden/moodle 2025-03-05 15:00:09 +08:00
Andrew Nicols 0865f0e996 Merge branch 'MDL-84017' of https://github.com/paulholden/moodle 2025-03-05 14:55:33 +08:00
Andrew Nicols 42b4c25499 Merge branch 'MDL-82170' of https://github.com/paulholden/moodle 2025-03-05 14:36:25 +08:00
Andrew Nicols a4b3cf493d Merge branch 'MDL-75875-main' of https://github.com/laurentdavid/moodle 2025-03-05 14:25:26 +08:00
Andrew Nicols 5c765b7d78 MDL-83344 core: Update thirdpartylibs for cfpropertylist 2025-03-05 14:24:39 +08:00
Andrew Nicols d76130ec4b Merge branch 'MDL-83344-main' of https://github.com/andrewgos/moodle 2025-03-05 14:22:04 +08:00
Andrew Nicols f3da0f5eb5 Merge branch 'MDL-84126-main' of https://github.com/davewoloszyn/moodle 2025-03-05 14:03:12 +08:00
Andrew Nicols f9340b96f5 Merge branch 'MDL-84631-main' of https://github.com/roland04/moodle 2025-03-05 14:01:53 +08:00
Andrew Nicols d36b08315d Merge branch 'MDL-84692-main' of https://github.com/roland04/moodle 2025-03-05 13:58:18 +08:00
Andrew Nicols 9e261994a4 Merge branch 'MDL-81155-main' of https://github.com/laurentdavid/moodle 2025-03-05 13:56:36 +08:00
Andrew Nicols d74f4d6ddc Merge branch 'MDL-80116-main' of https://github.com/ferranrecio/moodle 2025-03-05 13:53:06 +08:00
Huong Nguyen f861ab8535 Merge branch 'MDL-84694-main' of https://github.com/sarjona/moodle 2025-03-05 11:04:55 +07:00
Huong Nguyen b5fee651ff Merge branch 'MDL-84697-main' of https://github.com/sarjona/moodle 2025-03-05 10:54:50 +07:00
Huong Nguyen face303673 Merge branch 'MDL-84425-main' of https://github.com/andelacruz/moodle 2025-03-05 10:50:50 +07:00
Huong Nguyen 17904f8baf Merge branch 'MDL-83282-main' of https://github.com/andrewnicols/moodle 2025-03-05 10:44:06 +07:00
Andrew Nicols 63fbef8bf4 MDL-83282 core_form: Hint the field type for editor format selector
This was previously only working because Atto was actively setting the
value when it should never has done so.
2025-03-05 11:35:25 +08:00
Andrew Nicols 1aeaf278c1 MDL-83282 core: Remove most reference to Atto
Some references can remain, and others should remain until we drop
support for YUI, or Atto is no longer supported in the plugins database.

Note: Some reference to Atto will remain until such a time as it is no
longer possible to support the editor via the plugins database.
2025-03-05 11:35:25 +08:00
Andrew Nicols e49af69a1d MDL-83282 editor_atto: Remove Atto editor
This minor patch removes the Atto editor, and all of its subplugins from
Moodle core.
2025-03-05 11:35:17 +08:00
Jun Pataleta e0c28c7160 MDL-84737 qbank_managecategories: Disable max-line-length style rule 2025-03-05 11:28:41 +08:00
Angelia Dela Cruz 574b0961ff MDL-84425 theme_boost: Behat for course section selector unavailable 2025-03-05 11:16:14 +08:00
Jun Pataleta 5d34eeb6d5 Merge branch 'MDL-78778-main' of https://github.com/safatshahin/moodle 2025-03-05 10:27:46 +08:00
Andrew Nicols 61534718fe MDL-84265 core: Remove sqlite support 2025-03-05 10:27:10 +08:00
Andrew Nicols 09b3b76f39 MDL-83282 core: Disable text editors on uninstall 2025-03-05 10:07:39 +08:00
Safat 001c5361d3 MDL-78778 auth_cas: Uninstall cas & remove dependencies 2025-03-05 12:53:58 +11:00
Safat e6547f873a MDL-78778 auth_cas: Remove cas authentication from core 2025-03-05 12:33:23 +11:00
Stevani Andolo 3bd9251535 MDL-84165 media_videojs: Upgrade VideoJS to 8.21.1 2025-03-05 08:29:42 +08:00
Stevani Andolo c1b5c8b4e3 MDL-84354 libraries: Upgrade TCPDF to version 6.8.2 2025-03-05 08:28:40 +08:00
Daniel Ziegenberg 9c83209535 MDL-78926 wiki: Final deprecation of mod_wiki_renderer\wiki_info()
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:38:59 +01:00
Daniel Ziegenberg be4b3e3d03 MDL-78926 core: Final deprecation of activity_information
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:38:57 +01:00
Daniel Ziegenberg e405cf89a9 MDL-78926 course: Final deprecation of render_activity_information
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:38:55 +01:00
Daniel Ziegenberg 3070ef8161 MDL-78926 course: Removed core_course\output\activity_information
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:38:53 +01:00
Daniel Ziegenberg c23d5edb0f MDL-83334 core: Remove deprecated constant E_STRICT
One of the error levels PHP previously emitted was E_STRICT, on code
that was not strictly correct to ensure interoperability and forward
compatibility. PHP 7.0 converted the majority of existing E_STRICT
warnings to E_NOTICE, and since PHP 8.0, all E_STRICT notices have
changed to E_NOTICE.

Because all of the E_STRICT notices are upgraded to E_NOTICE since PHP
8.0, PHP 8.4 deprecates the E_STRICT constant.

The E_STRICT constant is deprecated in PHP 8.4. Using the constant
anywhere in PHP code now emits a deprecation notice in PHP 8.4 and
later.

The E_STRICT constant will be removed in PHP 9.0.

PHP core and core extensions since PHP 8.0 and later do not emit
E_STRICT notices at all. It is safe to assume that any PHP applications
that run on PHP 8.0 and later will never encounter E_STRICT notices, and
error reporting and handling can be safely updated to ignore E_STRICT
notices.

See: https://php.watch/versions/8.4/E_STRICT-deprecated

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:38:04 +01:00
Daniel Ziegenberg 86a91a65fe MDL-78605 core_webservice: Final removal of token_table::col_token
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:37:33 +01:00
Daniel Ziegenberg 5807d864a6 MDL-78304 core_mnet: Remove deprecated mnet_peer::get_public_key
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 20:37:02 +01:00
Daniel Ziegenberg 13b9df4959 MDL-84624 h5p: close recordset when it's not needed anymore
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:35:23 +01:00
Daniel Ziegenberg ae6278b3ea MDL-81669 libraries: Upgrade phpxmlrpc to 4.11.1
I also removed the version specific parts of readme_moodle.txt as those
infos are already available in the thirdpartylibs.xml. Also the
mentioned local changes are no longer relevant, so they can go too.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:25:41 +01:00
Daniel Ziegenberg e4a1a628aa MDL-84474 libraries: Upgrade libphonenumber-for-php-lite to 8.13.55
The library raises the minimum required PHP version to 8.1 and comes
with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:25:08 +01:00
Daniel Ziegenberg e70ae96def MDL-84155 libraries: Upgrade PHPMailer to 6.9.3
The library comes with an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-03-04 19:22:24 +01:00
Laurent David 37a79ede75 MDL-84380 core_question: Fix question bank layout in course
* Following BS5 migration, we had a couple of leftover classes like
media or float-right that needed to be fixed
2025-03-04 16:54:10 +01:00
Sara Arjona 5670447ece on-demand release 5.0dev+ 2025-03-04 16:14:27 +01:00
Sara Arjona 4c2d8b0205 NOBUG: Add upgrade notes 2025-03-04 16:14:27 +01:00
Sara Arjona fed3832f3b Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-03-04 16:14:19 +01:00
Paul Holden 0d487fd8de MDL-62230 mod_feedback: define exporter format for name/presentation. 2025-03-04 14:12:56 +00:00
ferran fb507a2855 MDL-83888 mod_assign: redirect index.php to course overview 2025-03-04 15:05:18 +01:00
ferran 4c08c5fb9a MDL-83888 mod_assign: add course overview integration 2025-03-04 15:05:18 +01:00
ferran d6a8068cd1 MDL-83888 course: grade activity overview item
The course activity overview tablew now shows the grade items for the
activity if the user has grading.
2025-03-04 12:29:16 +01:00
ferran 44dbc5fa54 MDL-80116 core_courseformat: section move final deprecation 2025-03-04 12:06:32 +01:00
Huong Nguyen a35335a9c4 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:27:32 +07:00
Mikel Martín 11657fe082 MDL-84692 theme_boost: Update .btn-icon class
- Update and improve styles for .btn-icon helper class for consistency.
- Added new $btn-icon-border-radius SCSS variable to cuztomize the btn-icon
border radius.
- Fix and simplify current .btn-icon usages
2025-03-04 10:23:00 +01:00
Laurent David 91ea7e05e4 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:09 +01:00
Jun Pataleta 1bcec24cb1 MDL-84643 theme_classic: Rebuild CSS 2025-03-04 15:57:55 +08:00
Jun Pataleta 38b8a9e59b Merge branch 'MDL-84643-main' of https://github.com/roland04/moodle 2025-03-04 15:55:15 +08:00
Mikel Martín 0a2b2620c1 MDL-84643 theme_boost: Fix form inputs colour contrast
After the Bootstrap 5 upgrade the contrast of the form inputs was
not enough. This commit adds the same colour contrast as before.

Also fixed some inconsistencies in classic theme variables.
2025-03-04 08:09:54 +01:00
meirzamoodle 6cdbfa8b11 MDL-84179 tool_messageinbound: Upgrade Roundcube to version 1.6.10 2025-03-04 13:11:32 +07:00
meirzamoodle d57d630aa6 MDL-84170 lib: Upgrade beautify to 1.15.3 2025-03-04 13:10:42 +07:00
meirzamoodle 6ca5ff4d79 MDL-84163 theme: Adjust Moodle files after the Font Awesome upgrade 2025-03-04 13:09:04 +07:00
meirzamoodle 8a6f0b6da4 MDL-84163 theme: Update FontAwesome to 6.7.2 2025-03-04 13:09:04 +07:00
meirzamoodle 10ee4503cf MDL-84162 libraries: Upgrade GeoIP2 and Maxmind DB Reader
- GeoIP2 PHP API 3.1.0
- MaxMind DB Reader API 1.12.0
2025-03-04 13:08:17 +07:00
meirzamoodle 3017cc729d MDL-84157 lib: Upgrade jQuery UI to 1.14.1 2025-03-04 13:07:32 +07:00
meirzamoodle 76ce6ea9a5 MDL-84161 lib: Upgrade OpenSpout to 4.28.5 2025-03-04 13:06:38 +07:00
Jun Pataleta c6bfb92f03 MDL-84643 theme_boost: Rebuild CSS 2025-03-04 12:45:35 +08:00
Jun Pataleta daf1a37e6c Merge branch 'MDL-84643-main' of https://github.com/roland04/moodle 2025-03-04 12:29:59 +08:00
Jun Pataleta f5f96912e1 Merge branch 'MDL-81015-main' of https://github.com/safatshahin/moodle 2025-03-04 12:24:45 +08:00
Jun Pataleta 7c86fa258a Merge branch 'MDL-84267' of https://github.com/paulholden/moodle 2025-03-04 12:18:13 +08:00
Huong Nguyen 8d1b3aa7bd Merge branch 'MDL-84356' of https://github.com/paulholden/moodle 2025-03-04 11:11:47 +07:00
David Woloszyn a0084a5274 MDL-84126 tiny_h5p: Capability check added 2025-03-04 15:03:28 +11:00
David Woloszyn fd29be217c MDL-84126 tiny_recordrtc: Capability check added 2025-03-04 15:03:28 +11:00
David Woloszyn a39cf222c8 MDL-84126 tiny_noautolink: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn c56c80e562 MDL-84126 tiny_media: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn 2e26f038e6 MDL-84126 tiny_link: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn b5d8bdcbe2 MDL-84126 tiny_html: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn b79f5b894a MDL-84126 tiny_equation: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn ec03d02879 MDL-84126 tiny_autosave: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn 6373da43ed MDL-84126 tiny_accessibilitychecker: Capability check added 2025-03-04 15:02:55 +11:00
David Woloszyn f6f0f0c5b0 MDL-84126 tiny_premium: Premium plugins check capability 2025-03-04 15:02:55 +11:00
David Woloszyn 97373483e6 MDL-84126 editor_tiny: Add capability check for plugins 2025-03-04 15:01:05 +11:00
Huong Nguyen 17f1abcd91 Merge branch 'MDL-84595-main' of https://github.com/andrewnicols/moodle 2025-03-04 10:39:50 +07:00
Huong Nguyen 206b2a886a Merge branch 'MDL-77107' of https://github.com/paulholden/moodle 2025-03-04 10:08:41 +07:00
Paul Holden 19a9c8b70f MDL-84720 reportbuilder: note change of column sort field behaviour. 2025-03-03 16:10:25 +00:00
ferran f92afcee5c MDL-83888 core: add renderer_helper for DI 2025-03-03 13:15:13 +01:00
ferran 9b2f727a3e MDL-83888 core: notice badge renderer method 2025-03-03 13:15:13 +01:00
Huong Nguyen c6c340b577 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:20:51 +07:00
Huong Nguyen 21e84790a2 Merge branch 'MDL-84577-main' of https://github.com/sarjona/moodle 2025-03-03 09:56:39 +07:00
AMOS bot 5dbd48a356 Automatically generated installer lang files 2025-03-02 00:08:19 +00:00
Sara Arjona be2d56339f MDL-84697 calendar: Move untranslatable strings from langconfig 2025-02-28 16:35:55 +01:00
Sara Arjona 451b600fd7 MDL-84694 theme: Replace legacy BS4 references in activities overview 2025-02-28 15:58:53 +01:00
Paul Holden 4171656e4d Merge branch 'MDL-84644-main' of https://github.com/roland04/moodle into main 2025-02-28 11:37:17 +00:00
Paul Holden 05505d6d1e Merge branch 'MDL-84647-main' of https://github.com/roland04/moodle into main 2025-02-28 11:31:45 +00:00
Paul Holden 03f40c1b16 Merge branch 'MDL-84661-main' of https://github.com/roland04/moodle into main 2025-02-28 11:28:04 +00:00
Sara Arjona 50d5d878b5 MDL-84617 core_calendar: Final removal of core_calendar_renderer:event 2025-02-28 10:21:55 +01:00
Amaia Anabitarte 866d2247d4 MDL-84617 core_calendar: Final removal of deprecated functions
The following methods have been removed (they were deprecated
long time ago):
- prepare_for_view()
- calendar_add_event_metadata()

The following methods have been deprecated (they are not used
anymore):
- calendar_get_courselink()
- calendar_events_by_day have been

Co-author: Amaia Anabitarte <amaia@moodle.com>
2025-02-28 10:20:36 +01:00
Sara Arjona 5a8f7cb596 MDL-84577 badges: Improve badge creation form
To improve usability, the UX team proposed the following changes:

- Remove most tooltips
- Add information directly to the page
- Simplify several text strings
2025-02-28 07:38:42 +01:00
Andrew Nicols 98b28fe13d MDL-81664 core: Import composer/pcre into core 2025-02-28 08:52:25 +08:00
Pedro Jordao c6dd02d764 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:30:58 -03:00
Paul Holden b7711421c8 MDL-81623 admin: sensitive toggle when prompting for upgrade key. 2025-02-27 21:13:57 +00:00
Paul Holden 955c498a78 MDL-84384 ai: improved usage report provider/action filtering.
Move provider column callback to the entity that defines it, and
ensure Behat scenarios are populated with valid data.
2025-02-27 19:56:05 +00:00
Sara Arjona 688478cfa4 weekly release 5.0dev 2025-02-27 16:54:40 +01:00
Sara Arjona 1c3a9c2f05 NOBUG: Add upgrade notes 2025-02-27 16:54:40 +01:00
Sara Arjona d62012b8f1 NOBUG: Fixed SVG browser compatibility 2025-02-27 16:54:33 +01:00
Mikel Martín 25c46a7510 MDL-84661 theme_boost: Fix nav styles in small screens
Fix nav tabs styles for small screens after Bootstrap 5 upgrade.
2025-02-27 15:55:10 +01:00
Conn Warwicker a6e30bbc04 MDL-84529 core: Remove max validation on datetime filter.
This removes the "max" attribute from the input field of the
datetime filter. This can then be added back in by specific
filters if they inherit the core one and add their own
getContext() method.
2025-02-27 13:42:23 +00:00
Huong Nguyen df0407029f Merge branch 'MDL-83873-main' of https://github.com/sarjona/moodle 2025-02-27 11:19:59 +07:00
Huong Nguyen 24b0a7b2e3 Merge branch 'MDL-84450-main' of https://github.com/roland04/moodle 2025-02-27 11:18:38 +07:00
Huong Nguyen ba03cfbb1a Merge branch 'MDL-84346-main' of https://github.com/roland04/moodle 2025-02-27 11:16:32 +07:00
Huong Nguyen ad8a310929 Merge branch 'MDL-84327-main' of https://github.com/raortegar/moodle 2025-02-27 11:10:01 +07:00
Huong Nguyen 6cb751bcd2 Merge branch 'MDL-81996' of https://github.com/paulholden/moodle 2025-02-27 10:39:31 +07:00
Huong Nguyen 17d67c00bc Merge branch 'MDL-80351' of https://github.com/pedrojordao/moodle 2025-02-27 10:13:13 +07:00
Huong Nguyen dec75083e0 Merge branch 'MDL-84527' of https://github.com/paulholden/moodle 2025-02-27 09:32:44 +07:00
Huong Nguyen 455c7414f6 Merge branch 'MDL-84639' of https://github.com/paulholden/moodle 2025-02-27 09:24:54 +07:00
Jun Pataleta 0ad0c882f2 Merge branch 'MDL-80519-main' of https://github.com/roland04/moodle 2025-02-27 10:22:48 +08:00
Simey Lameze b20eac7c99 MDL-84424 behat: add template_competencies generator and improve test 2025-02-27 07:46:22 +08:00
Angelia Dela Cruz 6dc2c065b2 MDL-84424 tool_lp: admin can create learning plans from template 2025-02-27 07:46:22 +08:00
Paul Holden fea9abc471 Merge branch 'MDL-84613-main' of https://github.com/roland04/moodle into main 2025-02-26 14:44:04 +00:00
Paul Holden faefc0a59e Merge branch 'MDL-84637-main' of https://github.com/roland04/moodle into main 2025-02-26 14:39:43 +00:00
Mikel Martín 6904ae8a73 MDL-84647 theme_boost: Fix coloured table rows
After the Bootstrap 5 upgrade, table rows with defined text colour
(using "text-muted" helper class) were not affecting the inner cells.
Add a custom rule in tables.scss to avoid that behaviour.
2025-02-26 14:59:57 +01:00
Sara Arjona 6125a7893c Merge branch 'MDL-83764-main' of https://github.com/laurentdavid/moodle 2025-02-26 14:53:26 +01:00
Mikel Martín 1d452ce4ca MDL-84450 theme_boost: Add backward compatibility for BS4 data-attr
New `theme_boost/bs4-compat` JS module added to silectly convert old BS4
data-attributes syntax to the new in BS5.
For example: data-toggle="dropdown" > data-bs-toggle="dropdown"

Co-authored-by: ferranrecio <ferran@moodle.com>
2025-02-26 14:08:49 +01:00
Sara Arjona 48fc4b1ee8 Merge branch 'MDL-84381-main' of https://github.com/roland04/moodle 2025-02-26 13:08:35 +01:00
Sara Arjona d2dc037b0b Merge branch 'MDL-82825_remove-php-enum-library' of https://github.com/ziegenberg/moodle 2025-02-26 13:01:38 +01:00
Amaia Anabitarte 72937feda2 MDL-83873 core_calendar: Deprecating lib functions 2025-02-26 12:31:42 +01:00
Amaia Anabitarte e6813f315e MDL-83873 core_calendar: New human date format 2025-02-26 12:31:42 +01:00
Frederik Milling Pytlick 9caa656e32 MDL-84301 core: Added peak memory usage to cron 2025-02-26 09:38:17 +01:00
Jun Pataleta 05a669b3da Merge branch 'MDL-84593-main' of https://github.com/dmitriim/moodle 2025-02-26 16:26:19 +08:00
Mikel Martín 1bb67525f6 MDL-84644 reportbuilder: Fix editor table styles after BS5 upgrade
- Fix table top border in reportbuilder editor
- Fix incorrect bold styles in some elements of editor table headings
2025-02-26 09:13:13 +01:00
Sara Arjona 0b7b10796a Merge branch 'MDL-84011' of https://github.com/paulholden/moodle 2025-02-26 08:52:41 +01:00
Sara Arjona efe1f1537a Merge branch 'MDL-84584-main' of https://github.com/sh-csg/moodle 2025-02-26 08:04:02 +01:00
Mikel Martín d28678b426 MDL-84637 reportbuilder: Fix help buttons in editor
After the Bootstrap 5 upgrade the help buttons on the editor page
were not working anymore. This commit fixes the JS related error.
2025-02-26 08:02:49 +01:00
Jun Pataleta ce73ff3d84 MDL-83970 core: Bump upgrade code version properly 2025-02-26 14:57:51 +08:00
Jun Pataleta 6885f03931 Merge branch 'MDL-83970-main' of https://github.com/meirzamoodle/moodle 2025-02-26 14:38:52 +08:00
Shamim Rezaie b50f4f03e4 Merge branch 'MDL-82942-main' of https://github.com/davewoloszyn/moodle 2025-02-26 17:28:00 +11:00
Jun Pataleta 465144b15a Merge branch 'MDL-84554-main' of https://github.com/jleyva/moodle 2025-02-26 14:25:38 +08:00
Sara Arjona 2f79a4367d Merge branch 'MDL-84607-main' of https://github.com/lameze/moodle 2025-02-26 07:04:09 +01:00
David Woloszyn aa3ccbda4e MDL-82942 aiplacement_courseassist: Improve response formatting 2025-02-26 16:03:55 +11:00
David Woloszyn 4bcadda1b6 MDL-82942 aiplacement_courseassist: Integrate Explain action into UI
Part of this change required refactoring of several course assist files.
The updates now accommodates for multiple course assist actions.
2025-02-26 12:26:58 +11:00
David Woloszyn b5be13d2d6 MDL-82942 aiplacement_courseassist: Add explain action 2025-02-26 11:52:39 +11:00
Jun Pataleta f5f227f737 Merge branch 'MDL-83674-main' of https://github.com/sammarshallou/moodle 2025-02-26 07:19:35 +08:00
Jun Pataleta 34c0ed5d12 Merge branch 'MDL-84628-main' of https://github.com/roland04/moodle 2025-02-26 07:16:10 +08:00
Jun Pataleta 5461afb6f4 Merge branch 'MDL-84324-main' of https://github.com/roland04/moodle 2025-02-26 07:13:31 +08:00
Jun Pataleta c5948d002e Merge branch 'MDL-84125-main' of https://github.com/davewoloszyn/moodle 2025-02-26 07:09:20 +08:00
Paul Holden 81ce30d0c1 Merge branch 'MDL-84379-main' of https://github.com/laurentdavid/moodle into main 2025-02-25 17:11:35 +00:00
Paul Holden 7e52d971a9 Merge branch 'MDL-84378-main' of https://github.com/laurentdavid/moodle into main 2025-02-25 17:02:48 +00:00
Paul Holden 7513e55194 Merge branch 'MDL-84407-main' of https://github.com/laurentdavid/moodle into main 2025-02-25 16:57:08 +00:00
Mikel Martín 932ac1198f MDL-84643 theme_boost: Fix form inputs colour contrast
After the Bootstrap 5 upgrade the contrast of the form inputs was
not enough. This commit adds the same colour contrast as before.
2025-02-25 15:50:59 +01:00
Marina Glancy c24a444fd4 MDL-84139 enrol_fee: display the instance name on enrolment page 2025-02-25 14:10:26 +00:00
Mikel Martín 89dd407bcf MDL-84381 tool_componentlibrary: Remove Bootstrap 4 documentation
After Bootstrap 5 upgrade in MDL-75669, Bootstrap 4 docs included are not
applicable anymore.
2025-02-25 15:06:26 +01:00
Mikel Martín 55ea685517 MDL-84631 course: Fix activity completion badges after BS5 upgrade
After Bootstrap 5 upgrade completion badges (success, danger) in the
activity pages were incorrectly displayed. This commit is fixing the
helper classes needed.
2025-02-25 14:31:10 +01:00
Mikel Martín ac146ac14e MDL-84324 core: Fix Bootstrap dropdown key listeners
Bootstrap EventHandler is managing the keydown event at document
level in the capture phase. That is conflicting with dropdown elements
with form autocomplete inputs inside, because when suggestions panel is
open, pressing the "Esc" key will close the whole dropdown.
This commit fixes that behaviour by realocating the Bootsrap dropdown
event listener to the body instead of the document.
2025-02-25 13:31:41 +01:00
Mikel Martín f9d5238ccb MDL-80519 theme_boost: Fix deprecated BS4 SCSS usages 2025-02-25 13:13:58 +01:00
Mikel Martín d85a71ffc7 MDL-80519 theme_boost: Add backward compatibility for BS4 SCSS
This commit will add a bs4-compat SCSS file with some of the helper classes
that are dropped in BS5. That will help third-party plugins to do the migration.

- Add backward compatibility for .media
- Add backward compatibility for badges
- Add backward compatibility for forms
- Add backward compatibility for cards
- Add backward compatibility for .no-gutters
- Add backward compatibility for spacing
- Add backward compatibility for margins and paddings
- Add backward compatibility for float directions
- Add backward compatibility for border directions
- Add backward compatibility for text directions
- Add backward compatibility for .close
- Add backward compatibility for font utilities
- Add backward compatibility for rounded sizes
- Add backward compatibility for sr-only
- Add backward compatibility for custom controls
- Add backward compatibility for .btn-block
2025-02-25 13:13:58 +01:00
Sara Arjona 741c072b58 Merge branch 'MDL-83892-main-v02' of https://github.com/ferranrecio/moodle 2025-02-25 12:18:38 +01:00
Paul Holden 33e6c7eb10 Merge branch 'MDL-83108-main' of https://github.com/albertgasset/moodle into main 2025-02-25 11:04:43 +00:00
Paul Holden 18d2b2e679 Merge branch 'MDL-78711_final-removal-of-edit_default_completion' of https://github.com/ziegenberg/moodle into main 2025-02-25 10:59:41 +00:00
Paul Holden 2f13b8c341 Merge branch 'MDL-84178_uprade-symfony-deprecation-contracts-to-3-5-1' of https://github.com/ziegenberg/moodle into main 2025-02-25 10:56:49 +00:00
Paul Holden 0524210983 Merge branch 'MDL-84526-main' of https://github.com/roland04/moodle into main 2025-02-25 10:48:22 +00:00
Huong Nguyen a18f38b0a6 Merge branch 'MDL-83404-main' of https://github.com/andrewnicols/moodle 2025-02-25 16:17:20 +07:00
Paul Holden 025cb9c66a 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:48:19 +00:00
ferran fd905bcacc MDL-83892 course: fix section name in single activity format
The course activities overview shows the section name under each
activity. However, this information should not be present when the
course format does not support sections.
2025-02-25 09:41:44 +01:00
ferran a26db489d0 MDL-83892 mod_feedback: add course overview integration
Adds the necessary code to present the feedback information in the
course overview page. Due to this integration, the message user gets
when a feedback is already submitted has been unified and it is now the
same on both activity UI and the overview report.
2025-02-25 09:41:44 +01:00
meirzamoodle a5b90c1969 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 13:56:31 +07:00
Huong Nguyen bae7fb6318 Merge branch 'MDL-84051-main' of https://github.com/meirzamoodle/moodle 2025-02-25 11:00:29 +07:00
Huong Nguyen 9bd78e48d2 MDL-83401 core: Upgrade laravel/serializable to 2.0.3 2025-02-25 09:39:45 +07:00
Huong Nguyen e04fc99655 Merge branch 'MDL-83401-main' of https://github.com/andrewnicols/moodle 2025-02-25 09:35:29 +07:00
meirzamoodle b6d04b4882 MDL-84051 core: Call parent function to clear session data in the table 2025-02-25 08:50:35 +07:00
Van Binh Dang dafaf6aceb MDL-75442 quiz: Highlight error message when manually grading 2025-02-24 14:32:36 -05:00
ferran ff05e78de3 MDL-83892 core_course: log course overview events 2025-02-24 15:29:15 +01:00
ferran ecb96b5089 MDL-83892 core_course: overview page redirection method 2025-02-24 15:29:15 +01:00
ferran c1e8684813 MDL-83892 core_course: activity record from cm_info
Adds a new get_instance_record in the cm_info object so core can get the
activity table record without using the $DB object every time. Also, the
method caches de result so getting more than once per execution is much
faster.
2025-02-24 15:29:15 +01:00
Huong Nguyen 569ef2eafc Merge branch 'MDL-78349-main' of https://github.com/HuongNV13/moodle 2025-02-24 21:04:45 +07:00
meirzamoodle d3139ac91b MDL-78349 tiny_recordrtc: Convert recorded audio to MP3 format 2025-02-24 20:51:44 +07:00
meirzamoodle c857e0c6ac MDL-78349 tiny_recordrtc: Add lamejs library 2025-02-24 20:51:28 +07:00
Mikel Martín eda3d16912 MDL-84628 report_log: Fix report filters layout after BS5 upgrade 2025-02-24 13:27:27 +01:00
Mikel Martín c69e005068 MDL-84346 courseformat: Replace css class for completion buttons 2025-02-24 12:49:25 +01:00
Mikel Martín 0e8dd50d91 MDL-84346 theme_boost: Add new '.btn-subtle-' helper class
- Add new .btn-subtle helper class that accept different colour themes
(.btn-subtle-success, .btn-subtle-warning, ...) and also .btn-subtle-body
for basic styling
- Remove specific styles in course.scss that are not needed anymore
- Adjust some styles in course.scss that were affected by this change
2025-02-24 12:49:17 +01:00
Mihail Geshoski 8387b02821 MDL-84532 qtype_ordering: Update query to use $DB->sql_compare_text()
The change introduced in MDL-46739, which modified the 'value' column in
the 'user_preferences' database table from CHAR to TEXT, caused the
upgrade query to fail due to the '=' comparison operator being used on
this column in the WHERE clause. This fix updates the query to use
$DB->sql_compare_text() instead.
2025-02-24 17:47:27 +08:00
Mihail Geshoski 8f7626c27d 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 17:21:36 +08:00
Sara Arjona b363438b6e Merge branch 'MDL-84412' of https://github.com/jfederico/moodle 2025-02-24 08:20:28 +01:00
Laurent David 6da65220da MDL-84407 admin: Fix plugin stats badge display
* Fix plugin overview display regarding stats for
all plugins/additional plugins.
2025-02-24 06:58:04 +01:00
Laurent David d0483c0e6c MDL-84379 theme_boost: Fix course management page layout 2025-02-24 06:57:32 +01:00
Laurent David 69cac2249b MDL-84378 mod_quiz: Fix Switch bank button
* Fix alignment issue for Switch bank button in quiz
2025-02-24 06:56:46 +01:00
Laurent David 83f3427b54 MDL-84378 mod_assign: Fix right alignment for action button
* Fix the alignment for quick grading action button
2025-02-24 06:56:46 +01:00
Laurent David ffdee5e9db MDL-81155 report_log: Final deprecation for $grouplist
* The grouplist has been introduced in MDL-41465 and is not
 used anymore since the patch in MDL-80565.
2025-02-24 06:50:18 +01:00
Laurent David 1f7d376ac4 MDL-83764 core_courseformat: Deprecate externservercourse.php feature
* Add deprecation message and testing
2025-02-24 06:49:43 +01:00
Laurent David 0803d255d5 MDL-75875 core: Remove Single Button primary parameter
* Final deprecation for the use of a boolean as 'primary' parameter
(4th parameter of the constructor), used before to specify a button
was a primary button. This has been replaced by a wider range of
choices.
2025-02-24 06:49:18 +01:00
Huong Nguyen ffc3c4116b Merge branch 'MDL-84213' of https://github.com/paulholden/moodle 2025-02-24 10:09:15 +07:00
jfederico eaad45c2b0 MDL-84412 mdl_bigbluebuttonbn: Change the BigBlueButtonBN activity icon 2025-02-21 14:19:13 +00:00
sam marshall c325d903d5 MDL-83674 Files: pluginfile.php debugging if user not allowed course 2025-02-21 14:13:21 +00:00
Mikel Martín 778804382b MDL-84526 theme_boost: Fix forum table after BS5 upgrade
Bootstrap 5 upgrade in MDL-75669 generated a regression in Forum table
where form switches in "Subscribe" column were not correcly displayed.
This commit fixes that UI problem.
Because the fix is affecting "toggle all" checkboxes, an small fix was
also needed there.
2025-02-21 14:55:06 +01:00
Mikel Martín de8e8806da MDL-84324 core: Add jQuery compatibility for BS5
You don’t need jQuery in Bootstrap 5, but it’s still possible to use our components with jQuery.
If Bootstrap detects jQuery in the window object, it’ll add all of our components in jQuery’s plugin system.
This allows you to do the following:
$('#myTooltip').tooltip('show')
2025-02-21 14:48:02 +01:00
Mikel Martín d6e71f9b61 MDL-84613 theme_boost: Fix visually hidden focusable content 2025-02-21 13:13:26 +01:00
Albert Gasset c1752b5101 MDL-83108 tiny_h5p: Remove redundant aria-label attributes 2025-02-21 11:01:57 +01:00
Albert Gasset 22f97671d5 MDL-83108 tiny_h5p: New option to enable auto-play in the app 2025-02-21 11:01:57 +01:00
Daniel Ziegenberg b2e791a56b MDL-82825 libraries: Remove php-enum library
It was a dependency of zipstream, but is no longer required as this
functionality has been replaced by native PHP functionality.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-21 10:11:47 +01:00
Julien Boulen 944f992c69 MDL-83136 course: Add missing value on unknowncategory exception message 2025-02-21 09:25:18 +01:00
Andrew Gosali a68564bf39 MDL-84431 mod_forum: fix visual issue on forum reply button :focus 2025-02-21 17:05:04 +11:00
Huong Nguyen 7a318d5c85 weekly release 5.0dev 2025-02-21 10:14:58 +07:00
Huong Nguyen c442ec4556 NOBUG: Add upgrade notes 2025-02-21 10:14:58 +07:00
Simey Lameze fbcfe915bd MDL-84607 behat: use the correct ai generator entity 2025-02-21 07:46:00 +08:00
raortegar 5d3787409e 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:32:19 +01:00
raortegar ef1e72e76b 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:32:19 +01:00
raortegar 536c9d895a 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:32:19 +01:00
raortegar 1457407b45 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:32:19 +01:00
Andrew Nicols 23c397b59f MDL-84595 tool_behat: Allow accessibility tests to run for a single Node 2025-02-20 22:26:14 +08:00
Daniel Ziegenberg 6b73154985 MDL-84178 libraries: Upgrade Symfony Deprecation contracts to 3.5.1
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-20 11:01:06 +01:00
Dmitrii Metelkin a71811aac6 MDL-84593 events: remove course_module_instances_list_viewed event 2025-02-20 15:48:30 +11:00
Huong Nguyen 1ac88d0aca Merge branch 'MDL-80156_remove-SCSS-deprecated-in-4-4' of https://github.com/ziegenberg/moodle 2025-02-20 11:15:59 +07:00
Jun Pataleta 61edfc10a3 Merge branch 'MDL-84448-main' of https://github.com/lameze/moodle 2025-02-20 12:09:58 +08:00
Huong Nguyen 2997d49e4d Merge branch 'MDL-84453' of https://github.com/paulholden/moodle 2025-02-20 10:59:52 +07:00
Simey Lameze abf49b105d MDL-84448 behat: return null if theme has no config 2025-02-20 11:59:01 +08:00
Amanda Doughty 817f6c206e MDL-84448 lib: Fixed behat context check for grandchild themes 2025-02-20 11:55:50 +08:00
Jun Pataleta 69b7a835a2 Merge branch 'MDL-84592-main' of https://github.com/andrewnicols/moodle 2025-02-20 11:45:32 +08:00
Huong Nguyen 38b4635864 Merge branch 'MDL-84528' of https://github.com/paulholden/moodle 2025-02-20 10:16:32 +07:00
Jun Pataleta 37055708ce Merge branch 'MDL-84590-main' of https://github.com/andrewnicols/moodle 2025-02-20 10:49:53 +08:00
Huong Nguyen ccaaf73ec7 Merge branch 'MDL-78489-main' of https://github.com/aanabit/moodle 2025-02-20 09:49:14 +07:00
Huong Nguyen fdd77cc058 Merge branch 'MDL-75189_final-deprecation-of-functions-in_mod-data-lib.php' of https://github.com/ziegenberg/moodle 2025-02-20 09:44:27 +07:00
Andrew Nicols d538137c62 MDL-84592 tool_behat: Improve accessibility failure information 2025-02-20 10:26:00 +08:00
Andrew Nicols 2e1cdde8e4 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:58:44 +08:00
Shamim Rezaie 809849ef34 Merge branch 'MDL-82980-main' of https://github.com/HuongNV13/moodle 2025-02-20 12:15:33 +11:00
Paul Holden 75ef4f45c6 MDL-83265 course: user placeholders for request approval notification. 2025-02-19 18:44:04 +00:00
Huong Nguyen 4c9f4855dd MDL-82980 AI: Model settings 2025-02-19 21:47:54 +07:00
Sara Arjona f660214f25 Merge branch 'MDL-83872-main-v03' of https://github.com/ferranrecio/moodle 2025-02-19 12:43:19 +01:00
ferran fe377c9dca MDL-83872 course: adding overview tables to course overview
The course overview page can represent a table with the overview
integration implemented by the activity plugins. Each plugin
table is loaded as a fragment to optimize the course overview
loading time.
2025-02-19 12:23:23 +01:00
ferran d94f2acdae MDL-83872 course: adding activity overview base classes
The course overview page allows plugins to implementa an
activity overview integration. This commit adds all the
base classes for the integration, and also the "resources"
integration used by default in all plugins considered
resources like url, file, folder...
2025-02-19 12:23:23 +01:00
Stefan Hanauska 7b28511bd6 MDL-84584 badges: Don't delete all draft files 2025-02-19 12:15:49 +01:00
Sara Arjona 46619157f2 Merge branch 'MDL-83784' of https://github.com/cwarwicker/moodle 2025-02-19 11:58:21 +01:00
Sara Arjona d59d7dd1cf Merge branch 'MDL-84547-main' of https://github.com/micaherne/moodle 2025-02-19 11:55:30 +01:00
Huong Nguyen fd979ca30e Merge branch 'MDL-81759-main' of https://github.com/sarjona/moodle 2025-02-19 16:42:54 +07:00
Conn Warwicker 2499276c65 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:21:43 +00:00
Huong Nguyen 2643b82119 Merge branch 'MDL-80682-master' of https://github.com/NashTechOpenUniversity/moodle 2025-02-19 13:39:44 +07:00
Sara Arjona ad89f4c712 Merge branch 'MDL-84300-main' of https://github.com/andrewnicols/moodle 2025-02-19 07:12:27 +01:00
Sara Arjona 1cbf369879 Merge branch 'MDL-84476-main' of https://github.com/lucaboesch/moodle 2025-02-19 07:08:56 +01:00
ferran 6a230a0bca MDL-83872 core_courseformat: prepare completion button for reuse
The current completion button has specific templates only for the course
view page. However, from now on this component may be used in other
places and it needs a main template to be rendered in a standard way.
2025-02-18 18:00:24 +01:00
Tim Hunt 5d6fe4a279 MDL-84558 question bank: fix the PHPdocs for default_sort 2025-02-18 15:44:48 +00:00
Paul Holden b45d17ca30 MDL-80173 reportbuilder: remove various Oracle support/workarounds.
"True happiness is to rejoice in the
        <removal of Oracle compatibility>."

Reference: ba1f9cb2, 892b68d5, c63af985, 208adcf3, 9a244403, 3894fa94,
62d22c66, 628541b5, 429508a7.
2025-02-18 13:43:34 +00:00
Paul Holden 72421b1ed9 MDL-80173 reportbuilder: improve performance of date aggregation.
Due to Oracle re-factoring, we can improve the performance of date
aggregation by only executing the column supplied query once. We
can also improve the generated GROUP BY query to re-use the column
alias on supported DBs, rather than executing the aggregation again.
2025-02-18 13:43:34 +00:00
Paul Holden 5e5ee3397d MDL-84527 tag: add formatted tag name column to report entity. 2025-02-18 13:41:38 +00:00
Huong Nguyen 217cb34264 MDL-84341 qbank_history: Behat cleanup 2025-02-18 20:39:50 +07:00
Huong Nguyen d76660e695 Merge branch 'MDL-84341' of https://github.com/cwarwicker/moodle 2025-02-18 20:37:53 +07:00
Sara Arjona 33b6f90a99 Merge branch '84348-hide-h5p-preview-message-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-02-18 13:12:06 +01:00
Sara Arjona 8c7c48d756 Merge branch 'MDL-84208-main' of https://github.com/ferranrecio/moodle 2025-02-18 12:57:26 +01:00
Sara Arjona 4feb5e5b74 Merge branch 'MDL-75669-main' of https://github.com/roland04/moodle 2025-02-18 11:23:32 +01:00
Mikel Martín 30dd9da869 MDL-75669 theme_boost: Fix chrome behat failures after BS5 upgrade 2025-02-18 10:37:06 +01:00
Paul Holden ad010bce0f MDL-84172 libraries: upgrade to version 4.10.2 of axe-core. 2025-02-18 09:23:40 +00:00
Marina Glancy 9f9d043e1e MDL-83942 tag: allow to make default collection not searchable 2025-02-18 07:23:42 +01:00
Andrew Nicols 345a118942 MDL-84446 core: Check existence of pcntl_signal 2025-02-18 06:20:23 +08:00
Sara Arjona 8c9a72a749 Merge branch 'MDL-75669-main' of https://github.com/roland04/moodle 2025-02-17 16:50:26 +01:00
Michael Aherne 1a357e810a MDL-84547 questionbank: Rename import_form.php to enable autoloading. 2025-02-17 11:55:39 +00:00
Conn Warwicker 56cb9f0c54 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.
2025-02-17 11:47:21 +00:00
Juan Leyva 450b95c425 MDL-84554 tool_mobile: Remove partitioned cookies support 2025-02-17 11:30:37 +01:00
DangHieu1407 013a3085b0 MDL-80682 core_question: Question version information should be clearer 2025-02-17 15:04:38 +07:00
Mikel Martín 607f921c6b MDL-75669 courseformat: Fix bulk action styles for BS5 2025-02-17 08:13:48 +01:00
Mikel Martín ba30b66e19 MDL-75669 theme_boost: Fix list-group usages for BS5
- The .list-group-item elements in BS5 require an outer .list-group container.
  Some uses in core were missing the outer group item and need fixing.
2025-02-17 08:13:48 +01:00
Mikel Martín 66c8eb19e1 MDL-75669 theme_boost: Fix dropdowns styles 2025-02-17 08:13:48 +01:00
Mikel Martín 8caa092250 MDL-75669 usertours: Fix tours modal styling 2025-02-17 08:13:48 +01:00
Mikel Martín 2d1e648e89 MDL-75669 theme_boost: Adjust SCSS variables to BS5 2025-02-17 08:13:48 +01:00
Mikel Martín ac18405516 MDL-75669 theme_boost: Remove unneeded RTL fixes SCSS file 2025-02-17 08:13:48 +01:00
Mikel Martín 413b9219bf MDL-75669 output: Fix subpanels for BS5
- Fix subpanels positioning using data-bs-popper static
- Fix subpanels and dialogs event listener to use Boostrap EventHandler.
  Doing that will avoid Bootstrap from stop propagating the event to the
  subpanels and dialogs listeners.
2025-02-17 08:13:48 +01:00
Mikel Martín 8a8c8ab275 MDL-75669 block_timeline: Fix sorting feature for BS5
- Because of the new BS5 syntax and changes in event listeners the sorting
  filter for block timeline was now working. This commit fixes the incorrect
  behaviour.
2025-02-17 08:13:48 +01:00
Amaia Anabitarte 3f1fca28fc MDL-75669 qbank: Using boostrap attributes instead of title
Bootstrap5 documents that, for tooltips and when title is used, Popper
will replace it automatically with data-bs-title when the element is rendered.
So using title makes no sense because Popper will replace it. We are using
data-bs-original-title instead.
2025-02-17 08:13:48 +01:00
Mikel Martín 709273df45 MDL-75669 theme_boost: Remove unneeded carousel SCSS modifications 2025-02-17 08:13:48 +01:00
Amaia Anabitarte e29e633e16 MDL-75669 course_backup: Fixing behat issue 2025-02-17 08:13:48 +01:00
Amaia Anabitarte e04dc9dea6 MDL-75669 message: Fixing preferences behat
This commit fixes "As an admin I can view and edit message preferences
for a user" behat
2025-02-17 08:13:48 +01:00
Amaia Anabitarte 5245fd57a0 MDL-75669 report_participation: Remove innecessary JS parameters
The parameter are usable in course participants page because user
could add bulk notes linked to users. But that script is not used
in report/participants, so we don't need those arguments on the call.
2025-02-17 08:13:47 +01:00
Mikel Martín 4746042423 MDL-75669 theme_boost: Fix formautocomplete inside dropdowns
Fix problem where having a dropdown with a form autocomplete inside and
pressing Escape key will close the hole dropdown instead only the autocomplete
suggestions.
2025-02-17 08:13:47 +01:00
Mikel Martín ad37483f47 MDL-75669 courseformat: Fix section collapse in Tree JS
After Bootstrap 5 upgrade, when expanding/collapsing sections in course index and
move content modal using the chevrons, the Bootstrap collapse event will occur
before the courseindex logic (In BS4 if was the opposite and the BS collapse event
was triggered after). This commit fixes that specific problem.
2025-02-17 08:13:46 +01:00
Mikel Martín 4a7e3b27a7 MDL-75669 form: Fix password unmask input
In BS5 the combination of both ".d-none" and ".d-inline" block together
is now prioritizing "d-none". Because of that the logic has been changed
to only use ".d-none" for toggling the display.
2025-02-17 08:13:13 +01:00
Mikel Martín d4ce8ecec8 MDL-75669 filepicker: Fix filepicker popovers 2025-02-17 08:13:13 +01:00
Mikel Martín bb10eaefab MDL-75669 mod_data: Fix inline form layout accessibility 2025-02-17 08:13:13 +01:00
Mikel Martín 0c586b41c1 MDL-75669 theme_boost: Fix BS5 related JS
- Migrate Boostrap components related JS from JQuery to vanilla JS.
- Migrate Boostrap components related Events from JQuery to vanilla JS.
2025-02-17 08:13:11 +01:00
Andrew Gosali be207667c9 MDL-83344 lib/plist: update to the latest version (2.0.5) 2025-02-17 14:54:46 +11:00
Jonathon Fowler c1021aec0d MDL-84551 tiny_aiplacement: fix generateimage quality selection 2025-02-17 11:29:55 +10:00
Daniel Ziegenberg d7ded40e49 MDL-78711 course: Final deprecation of edit_default_completion()
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-15 11:56:02 +01:00
Mikel Martín f6e31a3d41 MDL-75669 theme_boost: Fix BS5 related behat steps and scenarios
- Fix some behat steps and scenarios that are failing because of
  Bootstrap 5 syntax changes.
- Add a new $behatsite SCSS variable when behat is runinng that
  disables Bootstrap transitions and effects.
2025-02-14 10:58:36 +01:00
Mikel Martín dd0f589e5e MDL-75669 theme_boost: Fix simplesearchform BS5 related styles 2025-02-14 10:58:36 +01:00
Mikel Martín 8f2b26dd26 MDL-75669 theme_boost: Fix double closing icon on BS5 buttons
- With BS5 now closing icon ("X") on modals, alerts, ... is being displayed twice.
  This commit Fixes that incorrect behaviour.
2025-02-14 10:58:36 +01:00
Mikel Martín 691e6c6042 MDL-75669 theme_boost: Refactor btn-block class removed in BS5 2025-02-14 10:58:36 +01:00
Mikel Martín 2a74ae6d9d MDL-75669 theme_boost: Refactor "media-breakpoint-down" mixin to BS5
- media-breakpoint-down() uses the breakpoint itself instead of the next breakpoint (e.g., media-breakpoint-down(lg)
instead of media-breakpoint-down(md) targets viewports smaller than lg).
2025-02-14 10:58:36 +01:00
Mikel Martín 3b8c9fd410 MDL-75669 theme_boost: Fix incorrect .row BS5 class usages
In BS5 all .row classes are intended to contain elements with any .col class
There were some cases where the .row class was being used only for display flex
purposes, so they where replaced.
2025-02-14 10:58:36 +01:00
Mikel Martín 9b5facb0d7 MDL-75669 theme_boost: Remove .navbar-light for BS5 2025-02-14 10:58:36 +01:00
Mikel Martín 04975cd2b2 MDL-75669 theme_boost: Refactor custom form elements to BS5
- .custom-check is now .form-check.
- .custom-check.custom-switch is now .form-check.form-switch.
- .custom-select is now .form-select.
- .custom-file and .form-file have been replaced by custom styles on top of .form-control.
- .custom-range is now .form-range.
- Dropped .input-group-append and .input-group-prepend. You can now just add buttons
  and .input-group-text as direct children of the input groups.
2025-02-14 10:58:36 +01:00
Albert Gasset 9e7ca660c2 MDL-83026 badges: Added full name of the course to badge exporters 2025-02-14 10:36:56 +01:00
Mikel Martín 5416483611 MDL-75669 theme_boost: Refactor BS5 data attributes
Data attributes for all Bootstrap5 JavaScript plugins are now namespaced
to help distinguish Bootstrap functionality from third parties and your own code.
For example, data-bs-toggle instead of data-toggle.
This commit refactor all old Bootstrap data-attributes to the new syntax.

Co-authored-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-14 09:10:33 +01:00
Mikel Martín 2aa19cb088 MDL-75669 theme_boost: Refactor dropdowns positioning classes
- Replace .dropdown-menu-[left|right] with .dropdown-menu-[start|end].
2025-02-14 09:10:33 +01:00
Mikel Martín 59bc788992 MDL-75669 theme_boost: Upgrade Boostrap to v5.3
- Follow upgrade steps
- Fix some SCSS to avoid CSS compilation errors.
2025-02-14 09:10:32 +01:00
Mikel Martín 2c9e46e4f7 MDL-75669 theme_boost: Remove BS5 bridge 2025-02-14 09:10:32 +01:00
David Woloszyn c5fb5fcb5f MDL-84125 tiny_premium: Add premium accessibility checker plugin 2025-02-14 13:16:33 +11:00
Jun Pataleta 77a7d81290 weekly release 5.0dev 2025-02-14 09:53:24 +08:00
Jun Pataleta 7e3d9ef895 NOBUG: Add upgrade notes 2025-02-14 09:53:24 +08:00
Jun Pataleta 75b3fd36af Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-02-14 09:53:10 +08:00
ferran 61ec2a5c68 MDL-84208 course: update default completion form template 2025-02-13 17:05:50 +01:00
ferran cfa13aa912 MDL-84208 core: optional heading level to select menu template
In manu ocasions, the select menu template is used for the tertiary
navigation. However, in many scenarios this tertiary navigation acts as
a heading level. With this patch the template data can specify the
desired heading level to guarantee accessibility.
2025-02-13 17:05:50 +01:00
Paul Holden e38045d10e MDL-84528 tag: define missing language string for related tags area. 2025-02-13 15:02:51 +00:00
Pedro Jordao 03ee5f8c2c 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:22:22 -03:00
Huong Nguyen c8f0232170 Merge branch 'MDL-83579' of https://github.com/paulholden/moodle 2025-02-13 11:11:19 +07:00
Jun Pataleta abcc187d30 Merge branch 'MDL-84245' of https://github.com/ssj365/moodle 2025-02-13 11:57:16 +08:00
Jun Pataleta 3fad8da8ea Merge branch 'mdl-83306_main' of https://github.com/james-cnz/moodle 2025-02-13 11:54:52 +08:00
Huong Nguyen 6aa91b0962 Merge branch 'MDL-84147' of https://github.com/paulholden/moodle 2025-02-13 10:53:11 +07:00
Jun Pataleta d7194e7da4 Merge branch 'MDL-84102-main' of https://github.com/andelacruz/moodle 2025-02-13 11:48:51 +08:00
Jun Pataleta ec36a7b4be Merge branch 'MDL-83542-main' of https://github.com/laurentdavid/moodle 2025-02-13 11:47:38 +08:00
Huong Nguyen 444fd9a783 Merge branch 'MDL-83645' of https://github.com/paulholden/moodle 2025-02-13 10:42:29 +07:00
Huong Nguyen 6fb9590214 Merge branch 'MDL-69142' of https://github.com/paulholden/moodle 2025-02-13 10:33:19 +07:00
Huong Nguyen a3e4e4565e Merge branch 'MDL-79265-master' of https://github.com/NashTechOpenUniversity/moodle 2025-02-13 09:15:20 +07:00
Jason Den Dulk c4335a8e0e MDL-83479 backup: Added upgrade notes.
Also some small tweaks to address comments.
2025-02-13 12:39:11 +11:00
Jason Den Dulk 7eb9cd0e8b MDL-83479 backup: Add hooks to restore process.
- Place hooks inside backup/util/ui/classes/hooks, to be consistent with
other autoloaded classes.
2025-02-13 11:41:45 +11:00
Jason Den Dulk a5de02a54c MDL-83479 backup: Add hooks to restore process.
- A hook to enable plugins to add extra settings to the restore task.
  This would be placed inside restore_root_task::define_settings()
- A hook to enable plugins to add extra fields to the copy course form. This would be done inside the copy_form class.
- An adjustment to add the restore plan settings to the course restored event data.
  This would be done inside restore_plan::execute().
- A hook to enable extra work inside the asynchronous copy task. To be placed inside asynchronous_copy_task::execute().
2025-02-13 11:41:45 +11:00
Paul Holden 5d2e52383b MDL-84356 enrol: add course link placeholder to welcome message. 2025-02-12 23:18:05 +00:00
Simmo Saan 38c7985705 MDL-65233 course: remove usergetmidnight from reset time shift 2025-02-12 21:53:09 +02:00
Simmo Saan 485ca23ba5 MDL-65233 course: add reset time shift test with non-midnight hour 2025-02-12 21:53:09 +02:00
Andrew Gosali 943a1887bc MDL-82937 lesson: removal of mod/lesson/tabs.php and string deprecations 2025-02-12 14:53:55 +07:00
Angelia Dela Cruz 1fb001768b MDL-84102 message: Behat for setting default notification preferences 2025-02-12 13:20:13 +08:00
Huong Nguyen 08f58d3d57 Merge branch 'MDL-83452-addbodyclass' of https://github.com/leonstr/moodle 2025-02-12 11:29:41 +07:00
Paul Holden ab68313384 MDL-84171 libraries: upgrade to version 3.1.2 of ZipStream. 2025-02-11 09:55:13 +00:00
Huong Nguyen 3792898775 Merge branch 'MOODLE_main_MDL-82601' of https://github.com/danielneis/moodle 2025-02-11 11:46:17 +07:00
Huong Nguyen 0fb2cb50bb Merge branch 'MDL-82440-main' of https://github.com/praxisdigital/moodle 2025-02-11 11:39:02 +07:00
Huong Nguyen 1a4aac47fd Merge branch 'MDL-84414-main' of https://github.com/andelacruz/moodle 2025-02-11 11:17:15 +07:00
Huong Nguyen 7fa18ffcfc Merge branch 'MDL-70610-main' of https://github.com/kevpercy/moodle 2025-02-11 11:12:58 +07:00
Angelia Dela Cruz 9b6641b1f7 MDL-84414 gradingform_guide: Behat test to set marking guide as ready 2025-02-11 10:33:18 +08:00
Andrew Nicols 3f3d8394fe MDL-84300 core: Support nested templates in routed API 2025-02-11 09:32:50 +08:00
Andrew Nicols ec2d5ba0c2 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 7dbc2d7bd7 Automatically generated installer lang files 2025-02-11 00:09:28 +00:00
Amaia Anabitarte 9f86b4a46d MDL-78489 core_courseformat: Final deprecation of availability_info 2025-02-10 17:09:03 +01:00
Paul Holden 4558d0d161 MDL-77107 gradereport_grader: final removal of deprecated Behat helper. 2025-02-10 15:50:04 +00:00
Daniel Ziegenberg 0f8a82c72d MDL-80156 theme_boost: Remove SCSS deprecated in 4.4
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-02-10 16:07:39 +01:00
Paul Holden 18310486ba MDL-69142 tool_cohortroles: fix table ordering by role name. 2025-02-10 12:33:58 +00:00
Brandon 3cfd1251fe MDL-81759 backup: Change import page layout 2025-02-10 09:54:19 +01:00
Sara Arjona b72d33176c Merge branch 'MDL-67462-main' of https://github.com/albertgasset/moodle 2025-02-10 09:38:35 +01:00
Shamiso.Jaravaza 71e5a109d9 MDL-84245 mod_bigbluebuttonbn: Add manual grades
* Added grade API functions to implement grades
* Created phpunit test to ensure grades are removed on reset
2025-02-09 20:03:49 -07:00
Paul Holden 52ac5b46a7 MDL-84002 mod_assign: consistently style attempt expand/collapse icon. 2025-02-09 20:40:03 +00:00
Paul Holden 2fe3e4c066 MDL-84401 libraries: upgrade to version 5.22.8 of ADOdb. 2025-02-09 20:24:08 +00:00
Luca Bösch 1513501bc5 MDL-84476 theme: btn.btn-icon round background. 2025-02-08 15:51:11 +01:00
ferran 802920fd4c MDL-83872 core: creating button and text_align properties
This issue creates a couple of enum to style buttons and text
alignments. Enums can be used by output classes to limit the
types of values accepted by using strict types.
2025-02-08 11:36:01 +01:00
Tim Hunt 132f1b8e2f MDL-83440 assign: let sub-plugins validate the assign settings form 2025-02-07 15:29:14 +00:00
Laurent David 26d7babbae MDL-83542 core_completion: Add hooks for cm completion
* Add hooks for events that lead to session_cache_reset
2025-02-07 11:52:39 +01:00
Laurent David e9ad127b79 MDL-83542 core: Add hooks for user switching
* Add hooks for events that lead to session_cache_reset
2025-02-07 11:52:39 +01:00
Laurent David 25a963a5d7 MDL-83542 core_course: Add hook for course content update
* Add hooks for course events that lead to session_cache_reset
2025-02-07 11:52:39 +01:00
Katie Ransom abd0c137fe 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:25:14 +00:00
Albert Gasset 86016f1e11 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:02:25 +01:00
Albert Gasset 5f6ebef730 MDL-67462 badges: Fix badge alignments returned in external functions 2025-02-07 09:02:25 +01:00
Paul Holden e0c94ce2a0 MDL-84457 ai: add provider form rate limit field validation. 2025-02-06 22:48:04 +00:00
Paul Holden 3f6838b1b9 MDL-84453 ai: simpler API for retrieving single provider record. 2025-02-06 21:34:18 +00:00
Paul Holden 3eceaf5388 MDL-84017 ai: help icons to describe the usage report token columns. 2025-02-06 17:04:07 +00:00
Sara Arjona 139a0ad5f0 weekly release 5.0dev 2025-02-06 16:21:38 +01:00
Sara Arjona 039db6bff9 NOBUG: Add upgrade notes 2025-02-06 16:21:38 +01:00
Sara Arjona 2c17f6c061 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-02-06 16:21:29 +01:00
Andrew Nicols d16a2b0f1d MDL-83404 core: Bump Guzzle and related libraries
GuzzleHttp/Guzzle   to 7.9.2
GuzzleHttp/Promises to 2.0.4
GuzzleHttp/PSR7     to 2.7.0.
kevinrob/guzzle-cache-middleware to 6.0.0
2025-02-06 19:42:01 +08:00
Jun Pataleta 14928b8883 Merge branch 'MDL-83794-main' of https://github.com/andrewnicols/moodle 2025-02-06 17:09:48 +08:00
Hieu Nguyen Dang be4d569ad0 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 14:48:33 +07:00
Andrew Nicols 7d26c0264d MDL-83794 editor_tiny: Fix typo in style name 2025-02-06 13:49:00 +08:00
Jun Pataleta 0c1856c15a Merge branch 'MDL-81829-fix-pretty-whoops' of https://github.com/brendanheywood/moodle 2025-02-06 12:20:09 +08:00
Huong Nguyen c66b1a467c Merge branch 'MDL-83757-main' of https://github.com/andrewnicols/moodle 2025-02-06 10:51:57 +07:00
Jun Pataleta e3c0f430fe Merge branch 'MDL-72080' of https://github.com/paulholden/moodle 2025-02-06 11:36:44 +08:00
Laurent David 1310e64699 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:52 +08:00
Paul Holden 20cd6ee4bc MDL-84003 mod_glossary: capability check restoring trusted entry text. 2025-02-06 10:51:30 +08:00
Paul Holden b5e5765301 MDL-84145 report_loglive: format event description as plain text. 2025-02-06 09:43:28 +07:00
Huong Nguyen f0db1489fd Merge branch 'MDL-84394' of https://github.com/paulholden/moodle 2025-02-06 09:26:09 +07:00
Huong Nguyen 3282338f31 Merge branch 'MDL-84343-main' of https://github.com/lameze/moodle 2025-02-06 08:53:10 +07:00
Huong Nguyen a1509e5c92 Merge branch 'MDL-83635-main' of https://github.com/junpataleta/moodle 2025-02-06 08:45:32 +07:00
Jun Pataleta 6b9e75f685 Merge branch 'MDL-84016' of https://github.com/paulholden/moodle 2025-02-06 09:36:07 +08:00
Jun Pataleta fb3f28a847 Merge branch 'MDL-74488' of https://github.com/paulholden/moodle 2025-02-06 09:33:58 +08:00
Paul Holden 8516492ef6 MDL-84159 libraries: upgrade to version 1.9.2 of loglevel. 2025-02-05 23:10:29 +00:00
Brendan Heywood 1f503304c5 MDL-81829 core: Fix early bootstrap bug with whoops 2025-02-06 09:31:22 +11:00
Brendan Heywood f016dc2302 MDL-84438 task: Ignore tasks which don't have valid classes 2025-02-06 09:25:38 +11:00
Paul Holden 476c0539ed MDL-81996 block_mentees: consistently ordered list of users. 2025-02-05 20:17:01 +00:00
Paul Holden db01833822 MDL-82170 user: replace increment operator on string type variable. 2025-02-05 20:08:34 +00:00
Paul Holden dd3af70440 MDL-74488 reportbuilder: method for retrieving report row counts. 2025-02-05 17:38:21 +00:00
Leon Stringer f8cab1509f 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:05:40 +01:00
Sara Arjona 35a82f9ecf Merge branch 'MDL-80848-main' of https://github.com/andrewgos/moodle 2025-02-05 18:05:40 +01:00
Jun Pataleta 5bb4758f77 Merge branch 'MDL-83753-main' of https://github.com/djarran/moodle 2025-02-05 18:05:40 +01:00
Jun Pataleta 1fbe085b1a Merge branch 'mdl-83695_main' of https://github.com/james-cnz/moodle 2025-02-05 18:05:40 +01:00
Sara Arjona d8dbb53c36 Merge branch 'MDL-67683-main' of https://github.com/junpataleta/moodle 2025-02-05 18:05:40 +01:00
Huong Nguyen fb211931cb Merge branch 'MDL-83909-main' of https://github.com/sarjona/moodle 2025-02-05 18:05:40 +01:00
Huong Nguyen d4220bd9c9 Merge branch 'MDL-79214-main' of https://github.com/aanabit/moodle 2025-02-05 18:05:39 +01:00
Huong Nguyen 433ee6ecbc Merge branch 'mdl-83690_main' of https://github.com/james-cnz/moodle 2025-02-05 18:05:39 +01:00
Huong Nguyen b8eb960fe5 Merge branch 'MDL-83650-main_fix_ods_cell' of https://github.com/Cl3mensM/moodle 2025-02-05 18:05:39 +01:00
Jun Pataleta d1b6d2eaf8 Merge branch 'MDL-83809-main' of https://github.com/sammarshallou/moodle 2025-02-05 18:05:39 +01:00
Andrew Nicols e17dd3bf62 MDL-83757 core: Force DI to use global DB instead of scoped 2025-02-05 20:35:25 +08:00
danghieu1407 6f956ce910 MDL-60910 ddimageortext: Create option for using transparent pictures 2025-02-05 14:11:23 +07:00
sam marshall f1f8163b27 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:50:53 +00:00
james-cnz d7054236c4 MDL-83695 backup: Add space before course Restores in progress heading 2025-02-05 00:19:13 +13:00
Simey Lameze 635522dc3c MDL-84343 phpunit: handle warnings on failing tests
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-02-04 19:00:29 +08:00
Simey Lameze 1bd9705200 MDL-84343 core: bump workflow to use pgsql 14
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-02-04 19:00:29 +08:00
Paul Holden 06fd28ba2b MDL-84239 badges: remove defunct code for disabling badge. 2025-02-04 15:18:22 +08:00
David Woloszyn fbae5e1ed5 MDL-84136 filter_tex: Improve sanitization of forbidden items 2025-02-04 11:34:14 +07:00
Mark Johnson c968ab77be MDL-84146 question: Improve handling of JS parameters 2025-02-04 02:34:28 +00:00
meirzamoodle 595db30261 MDL-84023 lib: Update requirejs to 2.3.7 2025-02-04 02:34:28 +00:00
Marina Glancy 4ca6597422 MDL-83941 tags: prevent users from browsing unsearchable collections 2025-02-04 02:34:28 +00:00
Mihail Geshoski 1ea3084c8f 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:34:28 +00:00
Huong Nguyen 83a027b132 Merge branch 'MDL-83822-main' of https://github.com/PhMemmel/moodle 2025-02-04 09:30:25 +07:00
Jun Pataleta 458b35a7bb Merge branch 'MDL-84337' of https://github.com/paulholden/moodle 2025-02-04 10:05:58 +08:00
Paul Holden b3fed61aee MDL-84337 ai: revert external set_action parameter renaming.
This preserves backwards compatibility pre 368114c7 and fixes the
placement table.
2025-02-03 10:46:57 +00:00
Huong Nguyen e6b368e16b Merge branch 'MDL-84388-main' of https://github.com/lameze/moodle 2025-02-03 15:08:42 +07:00
Jun Pataleta 0c584487d5 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:54:51 +08:00
Jun Pataleta 598d806333 MDL-67683 behat: Add accessibility test for the maintenance mode layout 2025-02-03 15:54:51 +08:00
Jun Pataleta 7b3ec91919 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:54:51 +08:00
Jun Pataleta 4e2a7af970 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:54:50 +08:00
Jun Pataleta 8553573e84 MDL-67683 theme: Set page heading in a header landmark for secure layout 2025-02-03 15:54:50 +08:00
Jun Pataleta 706b99f298 MDL-67683 auth: Test login page accessibility with axe best-practice tag 2025-02-03 15:54:50 +08:00
Jun Pataleta cf3ee68ce6 MDL-67683 behat: Update xpath selector for #region-main 2025-02-03 15:54:50 +08:00
Jun Pataleta e671b1ff0b 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:54:49 +08:00
Jun Pataleta 10736389fa 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:54:49 +08:00
Jun Pataleta 29f452307d 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:54:49 +08:00
Jun Pataleta a9a7883bcc 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:51:10 +08:00
Jun Pataleta 24b1c58505 Merge branch 'MDL-84336' of https://github.com/paulholden/moodle 2025-02-03 12:28:24 +08:00
Huong Nguyen 4cbf74c0eb Merge branch 'MDL-83871-main-v02' of https://github.com/ferranrecio/moodle 2025-02-03 09:37:25 +07:00
Huong Nguyen 56a7e2077c Merge branch 'MDL-81478-main' of https://github.com/meirzamoodle/moodle 2025-02-03 09:32:02 +07:00
Huong Nguyen 4292f1a886 Merge branch 'MDL-83794-main' of https://github.com/andrewnicols/moodle 2025-02-03 09:20:15 +07:00
AMOS bot abc432cd6e Automatically generated installer lang files 2025-02-01 00:07:55 +00:00
Sara Arjona 5075be8ecd Merge branch 'MDL-83562-main-v02' of https://github.com/ferranrecio/moodle 2025-02-01 00:20:37 +08:00
Sara Arjona 70bba6e9b2 Merge branch 'mdl-82679_main_wip' of https://github.com/james-cnz/moodle 2025-02-01 00:20:37 +08:00
Sara Arjona b2ff1cb848 Merge branch 'MDL-84321-main-enfix' of https://github.com/mudrd8mz/moodle 2025-02-01 00:20:37 +08:00
Jun Pataleta 8008466be8 Merge branch 'MDL-82542-master' of https://github.com/NashTechOpenUniversity/moodle 2025-02-01 00:20:36 +08:00
Sara Arjona a16934d66b MDL-83909 core_badges: Remove author name, email and url fields
The fields imageauthorname, imageauthoremail, and imageauthorurl have
been removed from badges due to confusion and their absence from the
official specification. These fields also do not appear in OBv3.0.

Additionally, the image_author_json.php file has been removed as it
is no longer needed.
2025-01-31 15:28:30 +01:00
ferran f6698b7567 MDL-83871 course: activity overview page
The old activities block will be fully replaced by a new course
activities overview page in the course secondary navigation. This
commit has the initial implementation of the page.
2025-01-31 15:21:48 +01:00
Paul Holden 750077f3cd MDL-84394 ai: ensure provider instance config correctly encoded. 2025-01-31 10:18:11 +00:00
Paul Holden acc654e8ce MDL-84213 reportbuilder: add course "do not force" field options.
Where course entity select elements theme, language and calendar are
defined we should prepend with "Do not force" in order to match the
interface when editing the same fields.

The select filter has been updated to ensure it supports empty values
when switched to simplified version (a0ef4bb8) as well as improving
validation to ensure only present options can be used for filtering.
2025-01-31 09:45:16 +00:00
Huong Nguyen 07881a5772 weekly release 5.0dev 2025-01-31 09:20:03 +07:00
Huong Nguyen fa201a1029 NOBUG: Add upgrade notes 2025-01-31 09:20:03 +07:00
Huong Nguyen 2043ca4638 NOBUG: Fixed file access permissions 2025-01-31 09:19:49 +07:00
Huong Nguyen d6839e7df4 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-01-31 09:19:45 +07:00
Simey Lameze e6205ecf67 MDL-84388 behat: use the correct ai provider generator
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-01-31 07:04:45 +08:00
Paul Holden c78793beb3 MDL-82399 admin: allow selective purging of courses cache from UI.
Equivalent to the same functionality in the CLI tool in 5e05ad570f.
2025-01-30 13:56:57 +00:00
ferran fc35470f25 MDL-83562 core_courseformat: deprecate movehere actions 2025-01-30 13:21:24 +01:00
Sara Arjona 2f9030260a Merge branch 'MDL-83152' of https://github.com/paulholden/moodle 2025-01-30 12:28:51 +01:00
Paul Holden 678cfb7867 MDL-83152 mod_glossary: observe pending entries sort order.
Ascending/descending should be compared in a case-insensitive manner
because apparently we use both lower/upper cases for each.
2025-01-30 10:56:06 +00:00
James C 52e458d91a MDL-82679 course: Prevent collapsable sections conflicting 2025-01-30 22:38:20 +13:00
Huong Nguyen d6765a4a50 Merge branch 'MDL-79281_main' of https://github.com/cwarwicker/moodle 2025-01-30 11:13:07 +07:00
Huong Nguyen 6861325075 Merge branch 'MDL-84103-main' of https://github.com/andelacruz/moodle 2025-01-30 11:09:43 +07:00
Huong Nguyen b845804c37 Merge branch 'MDL-84095-main' of https://github.com/meirzamoodle/moodle 2025-01-30 10:50:44 +07:00
Huong Nguyen d18c709e33 Merge branch 'MDL-84275' of https://github.com/paulholden/moodle 2025-01-30 10:27:27 +07:00
Huong Nguyen 92c7d6f4f0 Merge branch 'MDL-84114-main' of https://github.com/lucaboesch/moodle 2025-01-30 10:02:37 +07:00
Jun Pataleta a280955399 Merge branch 'MDL-79843-main-fix' of /Users/jun/Work/moodles/integration_main/moodle 2025-01-30 10:57:59 +08:00
Jun Pataleta 131e1a55b8 MDL-79843 tests: Remove unnecessary whitespace 2025-01-30 10:55:39 +08:00
Huong Nguyen 1a101d2620 Merge branch 'MDL-84339' of https://github.com/paulholden/moodle 2025-01-30 09:40:19 +07:00
Huong Nguyen a3d72aa941 Merge branch 'MDL-83862_main' of https://github.com/marxjohnson/moodle 2025-01-30 09:35:02 +07:00
Huong Nguyen f09efc6289 Merge branch 'MDL-83297-maxgradesperpage' of https://github.com/dragos5436/moodle 2025-01-30 09:28:38 +07:00
Huong Nguyen 81db585a53 Merge branch 'MDL-84323-main' of https://github.com/sarjona/moodle 2025-01-30 09:19:58 +07:00
Huong Nguyen ae78c31cca Merge branch 'MDL-84049-main' of https://github.com/sarjona/moodle 2025-01-30 09:13:50 +07:00
Angelia Dela Cruz 230c42148f MDL-84103 imscc: Behat test for import IMS Cartridge to course 2025-01-30 09:36:21 +08:00
Andrew Nicols 7ca85dfd6e MDL-83794 editor_tiny: Add SVG support 2025-01-30 07:23:57 +08:00
Andrew Nicols f67b2e8c6b MDL-83794 editor_tiny: Add support for MathML 2025-01-30 07:23:32 +08:00
Clemens 081a7d0ff9 MDL-83650 odslib: Add variable to class MoodleODSCell 2025-01-30 00:23:21 +01:00
james-cnz bf06c4b934 MDL-83690 course: Fix course index label links 2025-01-30 11:19:59 +13:00
Sara Arjona ff0e03ff56 Merge branch 'MDL-84264-main' of https://github.com/pmaneggia/moodle 2025-01-29 16:52:52 +01:00
Sara Arjona 68156941ff Merge branch 'MDL-84243-main' of https://github.com/ferranrecio/moodle 2025-01-29 16:47:35 +01:00
Sara Arjona 39a5efeace Merge branch 'MDL-84226' of https://github.com/paulholden/moodle 2025-01-29 16:22:11 +01:00
Sara Arjona 4d9dbc25c1 Merge branch 'MDL-84242' of https://github.com/paulholden/moodle 2025-01-29 15:52:03 +01:00
Paul Holden 0c090789f9 MDL-84016 reportbuilder: column methods for setting help icons.
This change exposes the underlying table library API for setting
help icon for table headers, via column instance getter/setter.

Support added for rendering said icons in system reports.
2025-01-29 11:50:10 +00:00
Sara Arjona 9f5fbf1aca Merge branch 'MDL-84205' of https://github.com/paulholden/moodle 2025-01-29 11:16:39 +01:00
Sara Arjona b34815c4ab Merge branch 'MDL-84320-main' of https://github.com/raortegar/moodle 2025-01-29 08:57:18 +01:00
Sara Arjona c96c4a529f Merge branch 'MDL-84129' of https://github.com/paulholden/moodle 2025-01-29 08:49:59 +01:00
Paul Holden f04f81b59b MDL-84336 ai: don't assume providers implement every action type. 2025-01-29 07:49:03 +00:00
Sara Arjona eaf91d10ce Merge branch 'MDL-84214' of https://github.com/paulholden/moodle 2025-01-29 08:39:21 +01:00
Sara Arjona 172cdeb027 Merge branch 'MDL-84148' of https://github.com/paulholden/moodle 2025-01-29 08:30:11 +01:00
Sara Arjona 1d7bfbbf8c Merge branch 'MDL-79819' of https://github.com/jonof/moodle 2025-01-29 08:18:29 +01:00
Sara Arjona 1cbfd1b16e Merge branch 'MDL-84355-main' of https://github.com/andrewnicols/moodle 2025-01-29 08:09:43 +01:00
Sara Arjona 6b4f794a79 Merge branch '83617-fix-grader-report-url-main' of https://github.com/DSI-Universite-Rennes2/moodle 2025-01-29 08:00:41 +01:00
Sara Arjona 5908f8309f Merge branch 'MDL-83152' of https://github.com/paulholden/moodle 2025-01-29 07:49:20 +01:00
Sara Arjona e14629243e Merge branch 'MDL-79907-main' of https://github.com/andrewgos/moodle 2025-01-29 07:46:31 +01:00
Andrew Nicols 2d9c877f58 MDL-79843 core: Fully reset the component cache for some tests 2025-01-29 14:39:50 +08:00
Andrew Nicols 7706577f9f MDL-83401 core: Upgrade PHP-DI/Invoker to 2.3.6 2025-01-29 11:58:43 +08:00
Andrew Nicols ede7bcbd7a MDL-83401 core: Upgrade laravel/serializable to 1.3.5 2025-01-29 11:58:43 +08:00
Andrew Nicols 75dedf1d87 MDL-83401 core: Upgrade PHP-DI to 7.0.7 2025-01-29 11:56:03 +08:00
Andrew Nicols 20aa9d055a MDL-84355 phpunit: Exclude fixtures from testsuite search 2025-01-29 11:43:40 +08:00
Andrew Nicols ee24c55435 MDL-84355 phpunit: Correct test path for component configs 2025-01-29 11:29:03 +08:00
Sara Arjona 54ed733f98 Merge branch 'MDL-73700_remove-all-the-old-php-version-checks-from-core' of https://github.com/ziegenberg/moodle 2025-01-28 19:43:36 +01:00
Daniel Ziegenberg 50ac1b5d44 MDL-73700 lti: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. It was introduced with
MDL-73523 because of deprecated openssl_x509_free(), openssl_pkey_free()
and openssl_free_key() functions.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:58:08 +01:00
Daniel Ziegenberg 1b8b1505e5 MDL-73700 backup: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:58:07 +01:00
Daniel Ziegenberg 723cfca487 MDL-73700 environment: Remove the deprecated igbinary322_version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now remove the check PHP version 7.2 in combination
with the igbinary extension version.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:58:04 +01:00
Daniel Ziegenberg 161cf71a48 MDL-73700 backup: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely switch to php_serialize as the serialize
handler.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:58:01 +01:00
Daniel Ziegenberg bcce1851f1 MDL-73700 mlbackend: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. As the lang string
`errorphp7required` is particular to mlbackend php plugin we are going
for direct deletion instead of regular deprecation.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:58:00 +01:00
Daniel Ziegenberg 5d99a0cbef MDL-73700 core: remove testing code for old PHP version
Because of PHP bug #70322 two different behaviours were tested (see
MDL-51863). Since those 10 year old PHP versions are way outdated there
is no reason to test for them any longer.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:58 +01:00
Daniel Ziegenberg 39fda04cdc MDL-73700 core: remove unused functions and strings from installer
While searching for no longer needed PHP 5.x & 7.0 checks, the
`phpversionhelp` lang string and, subsequently, the `memorylimithelp`
lang string and the `install_helpbutton()` and
`install_print_help_page()` functions were discovered. According to
comments on MDL-2787 and MDL-64482 they are no longer in use since
Moodle 1.x (approximately), neither reachable since some good versions
ago. With MDL-17458 (commit 3b09331066),
the function `print_compatibility_row()` was gone, and it seems like it
was the only place calling `install_helpbutton()`. And
`install_helpbutton()` was the only place where a link to the help mode
(e.g.  `install.php?help=$helpfield`) ever surfaced.  As both lang
strings and functions are particular to the installer and never could
have been used outside of it, we are going for direct deletion instead
of regular deprecation.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:57 +01:00
Daniel Ziegenberg 85304ca150 MDL-73700 fileconverter_googledrive: remove old PHP version workaround
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely write this as a one-liner.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:55 +01:00
Daniel Ziegenberg da3b7722ae MDL-73700 lib: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check.

As it was decided that we will not upgrade this library from upstream
any more (see MDL-52465) we can probably safely remove this. This change
is one of a long series of earlier changes. See readme_moodle.txt.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:53 +01:00
Daniel Ziegenberg 224a7d2aac MDL-73700 core: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. It was introduced with
MDL-75945  because a new signature was introduced to ImagePolygon
functions from PHP 8.1 with the previous signature deprecated in 8.1.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:52 +01:00
Daniel Ziegenberg 4355a5ac0a MDL-73700 repository: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. It was introduced with
MDL-73523 because of deprecated openssl_x509_free(), openssl_pkey_free()
and openssl_free_key() functions.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:57:50 +01:00
Daniel Ziegenberg b59725693c MDL-73700 mnet: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. It was introduced with
MDL-73523 because of deprecated openssl_x509_free(), openssl_pkey_free()
and openssl_free_key() functions.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:23:20 +01:00
Daniel Ziegenberg 0371d3c7da MDL-73700 enrol_lti: remove old PHP version check
As MDL-73016 set the minimum supported PHP version for Moodle 4.4 and up
to PHP 8.1 we can now safely remove this check. It was introduced with
MDL-73523 because of deprecated openssl_x509_free(), openssl_pkey_free()
and openssl_free_key() functions.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-28 18:23:18 +01:00
Paul Holden 2fd885cd85 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:45:22 +00:00
Amaia Anabitarte 1ccec343f4 MDL-84036 core: Finally remove deprecated external functions 2025-01-28 12:11:27 +01:00
Julien Boulen f267881c15 MDL-84348 h5pactivity: Hide preview mode warning for guest users 2025-01-28 12:00:05 +01:00
Amaia Anabitarte 89850267ff MDL-79214 mod_folder: Final removal of htmllize_tree() 2025-01-28 11:33:27 +01:00
Huong Nguyen 474231d1a4 Merge branch 'MDL-83079-main' of https://github.com/HuongNV13/moodle 2025-01-28 17:04:08 +07:00
Frederik Milling Pytlick d8f1d2aa95 MDL-83079 core: Make signal handlers run during non CLI scripts 2025-01-28 16:45:59 +07:00
Huong Nguyen d8cbf21f59 Merge branch 'MDL-84333-main' of https://github.com/ferranrecio/moodle 2025-01-28 16:28:09 +07:00
Andrew Nicols 695d146f1f Merge branch 'MDL-79843-main-2-squashed' of https://github.com/snake/moodle 2025-01-28 14:47:10 +08:00
Jake Dallimore 26fcb89fd2 MDL-79843 core: test covering hook events for deprecated plugins
Verifies that listeners are excluded if they are from a deprecated
plugin type.
2025-01-28 14:42:20 +08:00
Jake Dallimore 44b16855e6 MDL-79843 core_access: test covering capabilities for deprecated plugins
Access APIs still support the deprecated plugin during deprecation.
2025-01-28 14:42:20 +08:00
Jake Dallimore 36ab70c64a MDL-79843 core_external: test covering services for deprecated plugins
This just asserts that web services provided by deprecated plugins can
still be used (similar to how their APIs can still be used during the
deprecation period).
2025-01-28 14:42:20 +08:00
Jake Dallimore 995c5489b7 MDL-79843 core_adminpresets: skip deprecated plugin types during apply
Presets are stored in the DB and may contain config for plugins which
have since been deprecated. This just makes sure these are skipped when
trying to apply the preset.
2025-01-28 14:42:19 +08:00
Jake Dallimore 17eb4af339 MDL-79843 core_task: changes to support deprecated plugin types
This ensures:
- existing adhoc tasks will run and be cleared from the queue
- new adhoc tasks cannot be scheduled
- scheduled tasks cannot be listed or fetched via scheduling
Given the nature of the task API, since all tasks are just objects,
a manually created task can still be run via its ::execute() method.
2025-01-28 14:42:19 +08:00
Jake Dallimore d6e5a34703 MDL-79843 core_event: test covering events for deprecated plugin types 2025-01-28 14:42:19 +08:00
Jake Dallimore d6f0443308 MDL-79843 core: prevent callback use for deprecated plugins 2025-01-28 14:42:19 +08:00
Jake Dallimore 2a0e5c9ec4 MDL-79843 core: install/upgrade/admin supporting plugintype deprecation
This change:
- reports deprecated plugins during upgrade (informational only)
- reports deprecated plugins via site admin, permitting uninstall
- adds env check to block site install/upgrade when phase 2 deprecated
(deleted) plugins are detected. They must be uninstalled to continue.
2025-01-28 14:42:19 +08:00
Jake Dallimore 9a3e8f265c MDL-79843 core: add plugin_manager tests for plugintype deprecation
This change also includes a small extension to testable_plugin_manager,
allowing it to load a fixture plugininfo class for mock plugintypes from
the respective mock type directory root instead of requiring the
plugininfo be located in lib/classes/plugininfo. This prevents debugging
calls during mock use in tests.
2025-01-28 14:42:19 +08:00
Jake Dallimore 6031b7cb60 MDL-79843 core: support deprecated plugin types in plugin_manager APIs
This change:
- Adds param to plugin_manager::get_plugins() to permit return of
plugininfo for deprecated/deleted plugins, defaulting to false for
b/c.
- ensures plugininfo represents the deprecation state, via:
-- base::is_deprecated() and
-- base::is_deleted()
- ensures plugin_manager supports deprecated/deleted plugins in the
following APIs:
-- plugin_manager::get_present_plugins()
-- plugin_manager::get_installed_plugins()
-- plugin_manager::get_plugin_info()
-- plugin_manager::get_plugintype_root()
-- plugin_manager::can_uninstall_plugin()
-- plugin_manager::get_uninstall_url()

The above changes facilitate listing/reporting on deprecated or deleted
plugins in install, upgrade or site admin views.
2025-01-28 14:42:19 +08:00
Jake Dallimore 16690e3c88 MDL-79843 core: add component tests covering plugintype deprecation
Note: these tests impact \core\component caches and must be run in a
separate process to prevent impact on other tests.
2025-01-28 14:42:19 +08:00
Jake Dallimore 3f544be4ab MDL-79843 core: add test fixtures supporting plugin deprecation tests
This change adds the following fake plugintype+plugins for testing
\core\component:
- mock plugintype 'fake'
- mock plugin 'fake_fullfeatured'
- mock subplugintype for the 'fake' plugintype, 'fullsubtype'
- mock subplugintype for the 'fake' plugintype, 'fulldeprecatedsubtype'
- mock subplugintype for the 'fake' plugintype, 'fulldeletedsubtype'
- various mock implementations for APIs like access, events,
web services, hooks, legacy callbacks and class callbacks.
2025-01-28 14:42:19 +08:00
Jake Dallimore a644d26c5e MDL-79843 core: support mocking of deprecated plugins and subplugins
This adds support to the existing, shallow fakeplugin mocks provided by:
- advanced_testcase::add_mocked_plugintype() and
- advanced_testcase::add_mocked_plugin()
and adds new methods for deep mocking fakeplugins:
- advanced_testcase::add_full_mocked_plugintype()
- advanced_testcase::deprecate_full_mocked_plugintype()
- advanced_testcase::delete_full_mock_plugintype()
Deep mocking is required to test \core\component itself.
2025-01-28 14:42:19 +08:00
Jake Dallimore 6b1a63189b MDL-79843 core: add plugintype deprecation support to core component
By default, for backward-compatibility, these plugin types and plugins
are not returned from existing APIs.
2025-01-28 14:42:19 +08:00
Jun Pataleta ddf51fac59 Merge branch 'MDL-81195-main' of https://github.com/martygilbert/moodle 2025-01-28 10:53:10 +08:00
Safat 31b8a4e1cb MDL-81015 core_sms: Add support for async SMS sending 2025-01-28 13:40:55 +11:00
AMOS bot 7f7e874ed4 Automatically generated installer lang files 2025-01-28 00:07:51 +00:00
David Mudrák 3f38b28079 MDL-84321 lang: Use the fixed strings in tests, too 2025-01-27 23:11:59 +01:00
Helen Foster cb4070a2b7 MDL-84321 lang: Import fixed English strings (en_fix) 2025-01-27 23:01:17 +01:00
Paul Holden 127a0f03cc MDL-84339 ai: move deprecated component lang strings to correct place. 2025-01-27 16:41:22 +00:00
ferran f6810e5427 MDL-84243 core_courseformat: fix course index completion icon 2025-01-27 17:20:20 +01:00
Mark Johnson bc57ced4f2 MDL-83862 question: Improve documentation of $qbank parameters 2025-01-27 11:24:54 +00:00
ferran daa3fff377 MDL-84333 core_courseformat: fix page selector init 2025-01-27 12:10:32 +01:00
Mark Johnson 5b0f5d4c0c MDL-83862 qbank_viewcreator: Add timemodified filter
This adds a new filter for the timemodified, displayed
in the "Modified by" column. It uses the new core
datetime filter for the UI.
2025-01-27 10:48:24 +00:00
Mark Johnson bf4107159c MDL-83862 core: Add validation support for datafilters
This allows filter fields to use client-side form validation attributes to check for valid values,
and adds a validation() method for filters to implement custom validation conditions.

In the event of a validation failure, the invalid filters will not be applied, and the URL will
not be updated to avoid user sharing a URL that will generate an error. Filter conditions should
still implement server-side validation and throw exceptions to avoid erroneous values being
manually inserted into the URL.
2025-01-27 10:48:24 +00:00
Mark Johnson 2d56d31054 MDL-83862 question: Add timemodified support to question generator.
Previously it was not possible to manually specify the modified time for
a question in the test generator. This extends to the mechanism allowing
the modifying user to be specified (rather than using the current user)
to also allow the timemodified to be specified.
2025-01-27 10:48:24 +00:00
Mark Johnson 8629645d34 MDL-83862 core: Add datetime datafilter
This adds a new datafilter Javascript class for a
datetime filter. This supports filtering by dates before,
after or between the selected value(s).

The fields for selecting datetimes in the filter use
<input type="datetime-local">, so this commit also adds
support for filling reading and writing those fields in
behat tests.
2025-01-27 10:48:23 +00:00
Sara Arjona da2d0571ab 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:26 +01:00
Daniel Ziegenberg 484135927b MDL-75189 mod_data: Final deprecations after MDL-75059
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-24 22:18:48 +01:00
Paul Holden 99c5d1a107 MDL-83720 tag: correct description formatting component/filearea. 2025-01-24 12:52:10 +00:00
raortegar 30d5527981 MDL-84320 editor_tiny: Update tiny version in thirdpartylbs.xml 2025-01-24 11:38:02 +01:00
Jun Pataleta 94ef115f5c Merge branch 'MDL-83989-main' of https://github.com/clransom/moodle 2025-01-24 15:52:25 +08:00
Sara Arjona 33135d96ca MDL-84049 badges: Remove default apiversion value
Remove the default value for the apiversion field in the
badge_external_backpack table.
2025-01-24 07:05:11 +01:00
Marty fca896d4df 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:49:05 -05:00
Luca Bösch ce00976762 MDL-84114 quiz: style the question version pulldown nicely. 2025-01-23 18:39:30 +01:00
Sara Arjona bcf06a0484 weekly release 5.0dev 2025-01-23 17:34:50 +01:00
Sara Arjona 80e559acbf NOBUG: Add upgrade notes 2025-01-23 17:34:50 +01:00
Sara Arjona 2a91b07430 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-01-23 17:34:42 +01:00
Katie Ransom 4586f57df5 MDL-83989 file upload: Filemanager breaks if you drop file outside of it 2025-01-23 16:31:11 +00:00
Dani Palou 9ecfe28878 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:52:35 +01:00
Huong Nguyen bb72db2074 Merge branch 'MDL-82767-main-v03' of https://github.com/ferranrecio/moodle 2025-01-23 11:18:50 +07:00
Huong Nguyen 5fbd4b6555 Merge branch 'MDL-83869-main' of https://github.com/ferranrecio/moodle 2025-01-23 11:15:26 +07:00
Jun Pataleta 2beee5c41e Merge branch 'MDL-83848-main-v2' of https://github.com/lameze/moodle into MDL-83848-main-test 2025-01-23 12:13:41 +08:00
Huong Nguyen 8ad2dc02a1 Merge branch 'MDL-83751' of https://github.com/paulholden/moodle 2025-01-23 10:48:16 +07:00
Huong Nguyen 2cc07fc0e1 Merge branch 'MDL-76566' of https://github.com/paulholden/moodle 2025-01-23 10:44:03 +07:00
Huong Nguyen f0ac76efdb MDL-82977 AI: Version bump 2025-01-23 09:43:14 +07:00
Huong Nguyen 40fd9b8d22 Merge branch 'main_MDL-82977' of https://github.com/mattporritt/moodle 2025-01-23 09:36:50 +07:00
Simey Lameze 5af7da720b MDL-83848 core: unpin behat/gherkin dependency
This commit reverts 57dc5a7f17297c2a0dcffd47b3aecf5e1c228a713 "MDL-83470 composer: Require behat/gherkin 4.9.0 for now"
unpin behat/gherkin and fix Behat failures because of the update.
2025-01-23 10:31:30 +08:00
Huong Nguyen 9c69c2c15d Merge branch 'MDL-83763-main' of https://github.com/meirzamoodle/moodle 2025-01-23 09:24:02 +07:00
Huong Nguyen b079c7c7f2 Merge branch 'MDL-81685_matrix_homeserver_name_main' of https://github.com/mark-webster-catalyst/moodle 2025-01-23 09:16:47 +07:00
Huong Nguyen 39220c7ac1 Merge branch 'MDL-84101-main' of https://github.com/lameze/moodle 2025-01-23 09:08:27 +07:00
Huong Nguyen 318f00580c Merge branch 'MDL-84249-main' of https://github.com/lameze/moodle 2025-01-23 09:02:11 +07:00
Angelia Dela Cruz e9fc27e6f6 MDL-84101 message: Behat test for managing notification options 2025-01-23 07:32:10 +08:00
Jun Pataleta de6f1dfe4c Merge branch 'MDL-83035-main' of https://github.com/lameze/moodle 2025-01-22 21:55:43 +08:00
Tim Hunt 7400ed153d MDL-84272 virus scanning: add time to scan to draft_file_added event 2025-01-22 11:44:36 +00:00
ferran 53886acba6 MDL-83869 tool_componentlibrary: collapsable section page 2025-01-22 11:36:27 +01:00
ferran 46318e53d0 MDL-83869 output: new collapsable section component 2025-01-22 11:36:27 +01:00
ferran d91b897549 MDL-82767 mod_qbank: fix delete action url 2025-01-22 10:35:23 +01:00
ferran a438da66ca MDL-82767 core_courseformat: deprecate edits in mod.php and view.php
Most edit logic embed directly into course/view.php and course/mod.php
is now redirected to course/format/update.php. This commit add
deprecations messages to the old get params so it can be removed in
Moodle 6.0 for good.
2025-01-22 10:35:23 +01:00
ferran fec5bf61f4 MDL-82767 core_courseformat: replace old urls by update urls
Now there is course/format/update.php all course actions menus must
point to the new one instead of keep pointing at the course/view.php and
course/mod.php.
2025-01-22 10:35:23 +01:00
ferran 03c530cc9b MDL-82767 core_courseformat: new update.php to execute actions in course
Since Moodle 4.0, most course edit actions can be executed using the
core_courseformat_course_edit webservice using only four parameters
(courseid, ids, targetsectionid and targetcmid). However, some actions
logic is still replicated and embed in course/view.php and
course/mod.php files since the beginning of time. Now the
course/update.php offers a non-ajax way of executing the same actions
and replace the old replicated ways of doing the same.
2025-01-22 10:35:23 +01:00
Huong Nguyen 13f10c22c4 Merge branch 'MDL-83339-main' of https://github.com/laurentdavid/moodle 2025-01-22 15:22:55 +07:00
Huong Nguyen 80684906c0 Merge branch 'MDL-81070-main' of https://github.com/StudiUM/moodle 2025-01-22 15:18:37 +07:00
Huong Nguyen 02221d8328 Merge branch 'MDL-78365' of https://github.com/pedrojordao/moodle 2025-01-22 15:10:55 +07:00
Andrew Gosali b4598bf783 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:37:29 +07:00
Huong Nguyen 1414b38e0f Merge branch 'MDL-83850-master' of https://github.com/danghieu1407/moodle 2025-01-22 10:31:41 +07:00
Simey Lameze 750b7a57bc MDL-83035 behat: add missing attribute and final polishing
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-01-22 10:06:53 +08:00
Matt Porritt 179b229a68 MDL-82977 AI: Provider instances
Update the OpenAI provider plugin to support provider instances.
2025-01-22 08:43:26 +11:00
Matt Porritt d3858cc992 MDL-82977 AI: Provider instances
Update the Azure AI provider plugin to support provider instances.
2025-01-22 08:43:25 +11:00
Matt Porritt 368114c7cd MDL-82977 AI: Provider instances
Create provider instances for AI povider plugins.
Each provider plugin can now have multiple instances,
allowing for different configurations and models using
the same base provider.
2025-01-22 08:43:13 +11:00
Paul Holden b8fbe89d98 MDL-84275 factor_totp: format site fullname for authenticator setup. 2025-01-21 21:32:54 +00:00
dragos5436 b054c7eaf5 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 13:34:04 +00:00
Daniel Ziegenberg 08ca969323 MDL-83035 behat: deprecate admin presets behat steps
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2025-01-21 13:39:42 +01:00
Mark Webster f6cb62dc2e 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:06 +00:00
Paul Holden a2e8872367 MDL-84267 mod_data: deprecate unused comment related capabilities.
They were replaced with core comment API in, and have been unused
since, both 43110739 & e998effa.
2025-01-21 10:49:50 +00:00
Huong Nguyen 2eb108ec40 MDL-84191 qbank_viewquestiontext: Fix Behat failures 2025-01-21 17:13:21 +07:00
Laurent David 95c780ac2f MDL-83339 course_format: Unify init params for course editor
* Replace all selectors based on ID (getElementById) by querySelector
* Replaces element-id by '#element-id' in the init method
2025-01-21 07:12:04 +01:00
meirzamoodle 86e0f4146f MDL-83763 core_my: Update docs path link on Dashboard and My Course 2025-01-21 11:29:49 +07:00
Huong Nguyen a93ce36da5 Merge branch 'MDL-82944-main' of https://github.com/davewoloszyn/moodle 2025-01-21 11:23:18 +07:00
Huong Nguyen 30e8f22849 Merge branch 'MDL-84191_main' of https://github.com/cwarwicker/moodle 2025-01-21 10:38:32 +07:00
Huong Nguyen a84d96b2d0 Merge branch 'MDL-83861_main' of https://github.com/marxjohnson/moodle 2025-01-21 10:25:30 +07:00
Huong Nguyen a1ff6ad4df Merge branch 'MDL-81790-main' of https://github.com/laurentdavid/moodle 2025-01-21 10:22:19 +07:00
Huong Nguyen f30bb90004 Merge branch 'MDL-84138-main' of https://github.com/lucaboesch/moodle 2025-01-21 09:56:46 +07:00
Huong Nguyen 9c20c82107 Merge branch 'MDL-84111-main' of https://github.com/lucaboesch/moodle 2025-01-21 09:32:16 +07:00
Huong Nguyen c66df4e882 Merge branch 'MDL-83877' of https://github.com/cwarwicker/moodle 2025-01-21 09:23:15 +07:00
Huong Nguyen 57c8b86eda Merge branch 'MDL-84193' of https://github.com/cwarwicker/moodle 2025-01-21 09:12:54 +07:00
Huong Nguyen 03df1d9659 Merge branch 'MDL-82722_main' of https://github.com/cwarwicker/moodle 2025-01-21 09:05:08 +07:00
Huong Nguyen 05fc43c562 Merge branch 'MDL-82237_main' of https://github.com/marxjohnson/moodle 2025-01-21 08:57:46 +07:00
Paola Maneggia cb1c36f8b1 MDL-84264 backup: encode and decode urls for the new course section page 2025-01-20 18:49:42 +01:00
Salem Saidi f2384c458f MDL-81070 course: Display contact names in the search result by admin 2025-01-20 12:01:34 -05:00
Sara Arjona 2f5047e68f Merge branch 'MDL-81043-main' of https://github.com/HuongNV13/moodle 2025-01-20 16:47:56 +01:00
Sara Arjona 2f3cffd815 Merge branch 'MDL-83468-main' of https://github.com/andrewnicols/moodle 2025-01-20 16:47:56 +01:00
Andrew Nicols eb2301a76b MDL-83468 cachestore_redis: Skip tests if Redis extension not available 2025-01-20 16:47:56 +01:00
Andrew Nicols 175cfd8f1e MDL-83468 tool_policy: Test tidyups 2025-01-20 16:47:56 +01:00
Andrew Nicols d4314266f1 MDL-83468 phpunit: Remove erroneously located test
This has been in two testsuites since 2014.
2025-01-20 16:47:56 +01:00
Andrew Nicols 41249b16f3 MDL-83468 phpunit: Test names are not optional 2025-01-20 16:47:56 +01:00
Andrew Nicols 3b1118cfd4 MDL-83468 phpunit: assertEqualsCanonicalizing now compares keys too
In previous versions of PHPUnit, the `assertEqualsCanonicalizing()`
method compared values only, ignoring the keys entirely. Since PHPUnit
10 the method now checks keys where they are non-numeric.

To solve this we call `array_values()`.
2025-01-20 16:47:56 +01:00
Andrew Nicols bdb5309dfb MDL-83468 phpunit: Replace uses of setMethods with onlyMethods
The PHPUnit MockBuilder `setMethods()` method has been deprecated in
favour of the more accurately defined `onlyMethods()` method.

This was previously addressed in MDL-71036 for Moodle 3.11, but these
cases have crept back in.
2025-01-20 16:47:56 +01:00
Andrew Nicols 9536ca738e MDL-83468 phpunit: Do not throw exception in mocked destructor
PHPUnit removed the ability to mock a destructor, but our lock system
throws an exception if a lock has not been explicitly released in its
destructor.

Normally thhis is fine because the lock is released, and if not then we
want to know about it.

However, where we are mocking the lock, we do not actually obtain the
lock, and we may expect the test to fail.

This change moves the release and notification to a separate, reusable
public method, which is called from the destructor. This allows it to be
mocked at the appropriate time.
2025-01-20 16:47:56 +01:00
Andrew Nicols 118b3ccf46 MDL-83468 phpunit: Skip tests instead of data providers
Empty data providers are invalid and do not represent the state of the
test. Rather than commenting them out we should instead skip them.
2025-01-20 16:47:55 +01:00
Andrew Nicols cb63d29ace MDL-83468 phpunit: Add back deprecated assertTag 2025-01-20 16:47:55 +01:00
Andrew Nicols bd01a91ae0 MDL-83468 phpunit: Add back getName to testcase
In some situations we use the name of the test so we must keep
`getName()` for backwards compatibility.
2025-01-20 16:47:55 +01:00
Andrew Nicols d6aabc8b2e MDL-83468 phpunit: Add back isInIsolation to testcase
This helper has been deprecated in PHPUnit, but we still need it in
Moodle.
2025-01-20 16:47:55 +01:00
Andrew Nicols bc75ef8bbc MDL-83468 phpunit: Fix various tests after phpunit 10 2025-01-20 16:47:55 +01:00
Andrew Nicols b95a8c6ecc MDL-83468 phpunit: Fix data provider param names 2025-01-20 16:47:55 +01:00
Andrew Nicols b8591dc935 MDL-83468 phpunit: Dependency bump 2025-01-20 16:47:55 +01:00
Conn Warwicker d67a106192 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:22:20 +00:00
Mark Johnson ed51c39314 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:22 +00:00
danghieu1407 4d3c8595cf MDL-83850 report_progress: Add 'Completed' heading in the csv 2025-01-20 18:51:31 +07:00
Conn Warwicker 5107b5bcfc MDL-84193 qbank_bulkmove: Disable bulkmove on history page.
This removes the option to bulk move questions from the question
history page.
2025-01-20 10:07:41 +00:00
Julien Boulen 5aa26f647c 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 c1182446d9 MDL-84249 behat: remove unnecessary javascript tag
This commit also make the repeated scenario names unique.
2025-01-20 13:59:29 +08:00
Kevin Percy 8d3a5d997e MDL-70610 core: Fix typos (alot -> a lot, acces -> access, etc) 2025-01-20 12:01:30 +08:00
Jun Pataleta 7a48612bc2 Merge branch 'MDL-83750-main' of https://github.com/raortegar/moodle 2025-01-20 10:24:09 +08:00
Jun Pataleta 5feb937e87 Merge branch 'MDL-84202' of https://github.com/paulholden/moodle 2025-01-20 10:02:06 +08:00
Jun Pataleta 7941e283d2 Merge branch 'MDL-83814-main' of https://github.com/andrewnicols/moodle 2025-01-20 09:58:03 +08:00
Jonathon Fowler f6a5bd32bc MDL-79819 assignfeedback_editpdf: safely handle bad jpg->pdf conversion 2025-01-20 08:41:19 +10:00
Paul Holden 176adce393 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:07:55 +00:00
Paul Holden 90b2370f34 MDL-79162 badges: final removal of deprecated table renderer methods. 2025-01-17 14:42:00 +00:00
Paul Holden 7c97d8549c MDL-84214 mod_bigbluebuttonbn: fix default presentation file serving. 2025-01-17 12:26:57 +00:00
Paul Holden 77ecfb747d MDL-83152 mod_glossary: fix chronological sorting of pending entries. 2025-01-17 10:25:58 +00:00
Mark Johnson 9600744e44 MDL-83861 qbank: Add question idnumber filter 2025-01-17 10:23:10 +00:00
Conn Warwicker 91a196d961 MDL-83877 mod_quiz: Fix quiz question overflow CSS issues. 2025-01-17 10:00:38 +00:00
Jun Pataleta cd56cc1f5a Merge branch 'MDL-83341-main' of https://github.com/HuongNV13/moodle 2025-01-17 17:01:02 +08:00
Luca Bösch 47921f801f MDL-84138 mod_qbank: Add title to the page. 2025-01-17 09:48:17 +01:00
Huong Nguyen d9b97aaeaf 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:12:27 +07:00
Luca Bösch bad3de017c MDL-84111 qtype_ddimageortext: keep item type, file and text together. 2025-01-17 08:53:38 +01:00
Matt Porritt eabd31c5d3 MDL-82977 AI: Provider instances
Add a new admin setting that allows rendering of a template.
This means templated content can be rendered as part of
admin forms, giving more flexibility to forms and their actions.
2025-01-17 16:13:05 +11:00
Jun Pataleta 3000896f20 MDL-81780 tool_task: Minor ad-hoc tasks renderer refinements
* Ensure new strings are added alphabetically
* Fix rendering of delete button's aria-label
* Remove unused `deletetask` lang string
2025-01-17 11:53:58 +08:00
Jun Pataleta 0b8526e6d3 Merge branch 'MDL-81780-Adhoc-task-improvements' of https://github.com/waleedhassan5/moodle 2025-01-17 11:53:28 +08:00
AMOS bot ad36375460 Automatically generated installer lang files 2025-01-17 00:08:00 +00:00
Paul Holden 2bb8b013e7 MDL-83751 check: remove non-functional result class method. 2025-01-16 17:40:01 +00:00
Paul Holden ffcd39af1f MDL-83579 tiny_media: pass filepicker accepted types to dropzone. 2025-01-16 17:37:49 +00:00
Huong Nguyen a2653cc924 weekly release 5.0dev 2025-01-16 23:46:14 +07:00
Huong Nguyen 1b5e5d0870 NOBUG: Add upgrade notes 2025-01-16 23:46:14 +07:00
Huong Nguyen 6089e52765 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-01-16 23:45:55 +07:00
waleedhassan c0572a0423 MDL-81780 tool_task : Adhoc task improvements
Added fail delay column in the adhock task table on the admin page,
Added a new column for a delete action for the adhoc tasks on and
Wrote delete_adhoctask.php for delete functionality of adhoc tasks.
Wrote behat test for the delete functionality. Also there was a
logical error in the previous code where it was checking if the task
is due or not and it was just showing Never or ASAP instead of
actual time so fixed that as well.
2025-01-16 12:16:04 +00:00
Conn Warwicker 86d37cd476 MDL-84191 qbank_viewquestiontext: Add filter for question text.
This covers both question text and general feedback text.
2025-01-16 09:17:32 +00:00
Paul Holden a743f4cf83 MDL-84226 user: add report entity filter for user picture presence. 2025-01-16 08:11:49 +00:00
Jun Pataleta 4a2e2086a4 Merge branch 'MDL-80468-factorpage-m' of https://github.com/bwalkerl/moodle 2025-01-16 12:25:44 +08:00
David Woloszyn 1afbe03ec8 MDL-82944 message: Notify user about unsent messages 2025-01-16 13:46:21 +11:00
Jun Pataleta 3cd1c53182 Merge branch 'MDL-83826-main' of https://github.com/lameze/moodle 2025-01-16 10:21:58 +08:00
Conn Warwicker ea26351c78 MDL-82772 mod_quiz: Update context when random question is updated. 2025-01-15 13:15:52 +00:00
Jun Pataleta d0a31f104a Merge branch 'MDL-83172-main' of https://github.com/meirzamoodle/moodle 2025-01-15 17:02:12 +08:00
Laurent David b0c19ef4a8 MDL-81790 report_log: Log report page per activities
* When clicking on the More / Logs menu in an activity we
should stay on the activity page and not go on the course
report log
2025-01-15 09:41:08 +01:00
Sara Arjona e46858963c Merge branch 'MDL-83995' of https://github.com/paulholden/moodle 2025-01-15 08:26:51 +01:00
Angelia Dela Cruz 0745d3416b MDL-83826 core_admin: Behat coverage for plugins overview for admins 2025-01-15 14:02:28 +08:00
Huong Nguyen 7dbf73a4df Merge branch 'MDL-83673-main' of https://github.com/ferranrecio/moodle 2025-01-15 09:28:36 +07:00
Paul Holden d6168aa267 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:02:15 +00:00
Sara Arjona 7c9bfaa0f0 Merge branch 'MDL-84072' of https://github.com/paulholden/moodle 2025-01-14 14:43:47 +01:00
Sara Arjona 8d429bc55b Merge branch 'MDL-82866-main' of https://github.com/lameze/moodle 2025-01-14 14:22:20 +01:00
Simey Lameze fc5c0ad3e5 MDL-82866 behat: deprecate the old lp step and class 2025-01-14 19:20:00 +08:00
Sara Arjona 95b434cb4a Merge branch 'MDL-83630' of https://github.com/paulholden/moodle 2025-01-14 11:53:24 +01:00
Paul Holden bf73278f39 MDL-84202 customfield_number: add number instance to report testing. 2025-01-14 10:18:36 +00:00
Sara Arjona ca9e99cf07 Merge branch 'MDL-83183' of https://github.com/paulholden/moodle 2025-01-14 10:59:11 +01:00
meirzamoodle d0d481171b MDL-83172 environment: Fix undefined array key error 2025-01-14 16:12:00 +07:00
Sara Arjona 1627aa8e71 Merge branch 'MDL-83527-main-v02' of https://github.com/ferranrecio/moodle 2025-01-14 09:38:54 +01:00
Sara Arjona ec68d42f82 Merge branch 'MDL-83561-main' of https://github.com/laurentdavid/moodle 2025-01-14 08:42:42 +01:00
Sara Arjona 7f114bb370 Merge branch 'MDL-83214-main' of https://github.com/aanabit/moodle 2025-01-14 08:26:57 +01:00
Jun Pataleta 6ae2ce20c7 Merge branch 'MDL-84117' of https://github.com/cwarwicker/moodle 2025-01-14 14:30:50 +08:00
Jun Pataleta c76785cd9c Merge branch 'MDL-84124-main' of https://github.com/andrewnicols/moodle 2025-01-14 11:12:20 +08:00
Huong Nguyen 61911e21d1 Merge branch 'MDL-83969-main' of https://github.com/davewoloszyn/moodle 2025-01-14 09:10:01 +07:00
Huong Nguyen 8676e44d0e Merge branch 'MDL-83831-master' of https://github.com/NashTechOpenUniversity/moodle 2025-01-14 09:00:55 +07:00
AMOS bot 98cfbda088 Automatically generated installer lang files 2025-01-14 00:07:45 +00:00
Paul Holden d24b3b0049 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:03:23 +00:00
Pedro Jordao 121ac52570 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:26:13 -03:00
ferran 3474d4a241 MDL-83527 mod_qbank: migrate cm action menu to output class 2025-01-13 14:49:46 +01:00
ferran 3a8172a26a MDL-83527 core_courseformat: refactor course editor action menus
As part of the course format cleanup epic, all course editor action menu
output classes needs to be refactored to be more mantainable and
reusable. Also, it added notes for the final deprecation of many lines
of code in Moodle 6.0.
2025-01-13 14:49:46 +01:00
raortegar 84359a693c MDL-83750 core_form: Fix deprecated preg_replace in form 2025-01-13 14:14:49 +01:00
Daniel Neis Araujo 500b1e74bb MDL-82601 scorm: score not being stored when force complete is used 2025-01-13 09:56:07 -03:00
meirzamoodle c26cc0e005 MDL-83172 dml: Remove Oracle from LMS 2025-01-13 17:11:55 +07:00
Jun Pataleta 1873c97ceb Merge branch 'MDL-84141-main' of https://github.com/lucaboesch/moodle 2025-01-13 15:53:39 +08:00
Jun Pataleta 17e8daecbc Merge branch 'MDL-83832-master' of https://github.com/NashTechOpenUniversity/moodle 2025-01-13 15:50:39 +08:00
Jun Pataleta d76dc40565 Merge branch 'MDL-83968-main' of https://github.com/andrewnicols/moodle 2025-01-13 15:29:31 +08:00
Jun Pataleta 845313144c Merge branch 'MDL-83933-main' of https://github.com/sarjona/moodle 2025-01-13 15:25:13 +08:00
Andrew Nicols fd010644bc MDL-83968 core: Update uses of router test classes 2025-01-13 14:16:50 +08:00
Andrew Nicols 189bf3074f MDL-83968 core: Move router test classes to correct locations 2025-01-13 14:16:49 +08:00
AMOS bot 242c49137f Automatically generated installer lang files 2025-01-13 00:07:52 +00:00
Andrew Nicols eb68c4036a MDL-83814 core: Bump Node to latest LTS 2025-01-12 20:57:44 +08:00
Conn Warwicker 99f59d4883 MDL-84117 qbank_history: Fix missing javascript for bulk actions. 2025-01-10 16:10:11 +00:00
Benjamin Walker 7894138e3c MDL-80468 tool_mfa: Allow loading factor defined externalpages correctly 2025-01-10 21:14:44 +10:00
Simey Lameze b530641819 MDL-82866 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-01-10 15:07:37 +08:00
Andrew Nicols c145a65b61 MDL-84152 tests: Remove extraneous / in external file URL generation 2025-01-10 14:47:50 +08:00
Angelia Dela Cruz 5ccdd4399e MDL-82866 tool: Replaced tool_lp generators with standard generators 2025-01-10 14:30:00 +08:00
Paul Holden 9c0cb6aeea MDL-84148 tool_lp: clarify the primary save action of scales dialogue. 2025-01-09 18:26:43 +00:00
Paul Holden 8279f7ed6d MDL-84147 tool_lp: fix disturbingly large icon relocating competency. 2025-01-09 17:53:52 +00:00
Sara Arjona 28846e71c7 MDL-83933 theme: Update default icon width
While updating the custom icons for import/export, it was observed
that the default width for FontAwesome icons is 20px instead of
the previously assumed 16px.
This commit adjusts the default width accordingly and resolves several
styles where the width was incorrectly applied.
Additionally, the default icon color has been updated to ensure consistent
appearance across both SVG icons and FontAwesome icons.
2025-01-09 17:33:35 +01:00
Luca Bösch e5b1650013 MDL-84141 mod_qbank: filter name and qbank on recently viewed. 2025-01-09 17:23:48 +01:00
Sara Arjona 6ab62a98cd MDL-83933 pix: Switch import/export icons 2025-01-09 17:15:51 +01:00
Paul Holden efa8446ab3 MDL-83645 grade: fix text formatting in external grading form method. 2025-01-09 14:51:56 +00:00
Sara Arjona f4f166695c weekly release 5.0dev 2025-01-09 15:21:35 +01:00
Sara Arjona 36b966eaf2 NOBUG: Add upgrade notes 2025-01-09 15:21:35 +01:00
Sara Arjona 2830e3f0e7 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-01-09 15:21:25 +01:00
Paul Holden c3b800c1c3 MDL-84135 completion: correct entity table name to match schema. 2025-01-09 10:53:06 +00:00
Paul Holden 3947e72ea6 MDL-84135 reportbuilder: support deprecated entity table replacement.
This expands upon original work in d73a827a and allows for an entity
to define replacements for deprecated table names. The previous format
defining only the deprecated table names themselves is also supported.
2025-01-09 10:49:43 +00:00
meirzamoodle 31887ff87a MDL-84095 tiny_recordrtc: Shows error toast for failures 2025-01-09 15:14:26 +07:00
Jun Pataleta 204916e434 MDL-73909 core_message: Update external services declaration 2025-01-09 12:21:26 +08:00
Jun Pataleta 6e7e323520 Merge branch 'MDL-73909-main' of https://github.com/raortegar/moodle 2025-01-09 12:20:59 +08:00
Huong Nguyen 59b7514f6e Merge branch 'MDL-83737' of https://github.com/pedrojordao/moodle 2025-01-09 10:34:44 +07:00
Huong Nguyen 421f46969b Merge branch 'MDL-77185-diskfreespace' of https://github.com/leonstr/moodle 2025-01-09 10:12:52 +07:00
hieuvu a6e4638752 MDL-82542 qbank_managecategories: Add new user preferences
Keep the checkbox to show questions from subcategories as a user preference.
2025-01-09 09:21:19 +07:00
Jun Pataleta c3e4f4af89 Merge branch 'MDL-82769_main' of https://github.com/cwarwicker/moodle 2025-01-09 10:16:23 +08:00
Huong Nguyen 5253a59c5b Merge branch 'MDL-84080_main' of https://github.com/marxjohnson/moodle 2025-01-09 09:05:12 +07:00
AMOS bot 3b842ff31b Automatically generated installer lang files 2025-01-09 00:10:08 +00:00
Andrew Nicols 1f05f680cd MDL-84124 cache: Purge Redis cache between tests 2025-01-09 07:59:36 +08:00
Pedro Jordao a33ed897b1 MDL-83737 libraries: Upgrade ChartJS to version 4.4.7. 2025-01-08 13:33:17 -03:00
Paul Holden d4546f66a0 MDL-83995 mod_glossary: support export/import of entry trusted text. 2025-01-08 13:44:14 +00:00
Sara Arjona 208ea091f0 Merge branch 'MDL-83725-main' of https://github.com/ferranrecio/moodle 2025-01-08 13:46:36 +01:00
Sara Arjona 84ce028a9c Merge branch 'MDL-51119-fix' of https://github.com/sarjona/moodle 2025-01-08 13:40:50 +01:00
Sara Arjona e6099ce75b MDL-51119 glossary: Fix behat failures with classic 2025-01-08 13:33:36 +01:00
ferran 41acfca9a8 MDL-83725 theme: dynamic activity icons colors
Now themes can change the activity purpose colors using only the
$activity-icon-XXXX-bg scss variables. The filter is not computed using
a sass mixin intead of a custom filter.
2025-01-08 11:02:42 +01:00
Mark Johnson 5478e8b4ca MDL-84080 question: Prevent overly-long qbank names
When a question bank is created by the system, it's name may be created
by combining a course of category name with a language string. If the
course name is already near the limit for its database field, the
resulting question bank name may be too long for that field, and cause
an error.

This implements a function for generating question bank names which will
trim string parameters down until the resulting name is below the
allowed length. It also implements some validation to prevent
manually-created banks with names that are too long.
2025-01-08 09:53:50 +00:00
Huong Nguyen 499f5afe95 Merge branch 'MDL-83506-main' of https://github.com/andrewnicols/moodle 2025-01-08 15:39:36 +07:00
meirzamoodle 533feac594 MDL-81478 tiny_recordrtc: Add webm audio support as a fallback
Co-authored-by: Djarran Cotleanu <djarrancotleanu@catalyst-au.net>
2025-01-08 13:55:02 +07:00
Jun Pataleta ad42962a9e Merge branch 'MDL-84079-kill-all' of https://github.com/brendanheywood/moodle 2025-01-08 14:36:39 +08:00
Khoa Nguyen 1af6c93336 MDL-83831 core_question: Reset columns on history page causes confusion 2025-01-08 13:32:54 +07:00
sarjona f33f4222b6 Merge branch 'MDL-83917' of https://github.com/pedrojordao/moodle 2025-01-08 07:16:22 +01:00
Huong Nguyen 6103715544 Merge branch 'MDL-84042-main' of https://github.com/HuongNV13/moodle 2025-01-08 09:44:52 +07:00
Huong Nguyen 252418ae23 Merge branch 'MDL-84008-main' of https://github.com/lucaboesch/moodle 2025-01-08 09:40:56 +07:00
Huong Nguyen 173e502dd4 Merge branch 'MDL-79122_main' of https://github.com/cwarwicker/moodle 2025-01-08 09:25:44 +07:00
Huong Nguyen 27e2c0bd81 MDL-84042 mod_assign: Notification helper tests cleanup 2025-01-08 09:18:41 +07:00
David Woloszyn 7324de2320 MDL-84042 mod_assign: Fixed notification helper submission check
mod_assign_generator now accepts a status when creating a submission.
2025-01-08 09:08:58 +07:00
Pedro Jordao e1688e7094 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:16:46 -03:00
AMOS bot 704a21fc31 Automatically generated installer lang files 2025-01-08 00:07:49 +00:00
sarjona dc896db0c1 Merge branch 'MDL-51119-main' of https://github.com/lucaboesch/moodle 2025-01-07 18:05:42 +01:00
sarjona d597dd02ae Merge branch 'MDL-83746-main' of https://github.com/srobotta/moodle 2025-01-07 14:50:00 +01:00
Luca Bösch 9e791db25a MDL-51119 glossary: Allow multilang concepts. 2025-01-07 14:45:12 +01:00
sarjona 7a544b4631 Merge branch 'MDL-83335-main' of https://github.com/andrewnicols/moodle 2025-01-07 14:26:45 +01:00
sarjona c30a2d9f34 Merge branch 'MDL-82788-main' of https://github.com/meirzamoodle/moodle 2025-01-07 14:14:49 +01:00
Paul Holden a296bdfc5b 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:14:26 +00:00
Jun Pataleta 77d978b1ba Merge branch 'MDL-82958-main' of https://github.com/raortegar/moodle 2025-01-07 14:07:53 +08:00
Andrew Nicols b29615a6f0 MDL-83335 core: Explicitly specify escape with fgetcsv/fputcsv
PHP 8.4 requires that a value be provided for the `$escape` parameter to
both `fgetcsv()` and `fputcsv()`.
2025-01-07 13:26:48 +08:00
Khoa Nguyen 0beaac4d29 MDL-83832 core_question: Links to question history may show blank page 2025-01-07 11:22:19 +07:00
Huong Nguyen e359491569 Merge branch 'MDL-82895-main' of https://github.com/lucaboesch/moodle 2025-01-07 09:19:07 +07:00
Conn Warwicker d647b89089 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:36 +00:00
meirzamoodle 6df2c4a2fe MDL-82788 theme_boost: Obtain the correct Tiny and Atto editor elements 2025-01-06 20:26:35 +07:00
Luca Bösch 1523da0903 MDL-84008 qtype_match: keep question and answer together. 2025-01-06 13:35:20 +01:00
Luca Bösch d805159525 MDL-84008 qtype_calculated: glue formula, tolerance, display, feedback. 2025-01-06 13:35:20 +01:00
Luca Bösch 23437ff6bb MDL-84008 qtype_multichoice: keep choice, grade and feedback together. 2025-01-06 13:35:20 +01:00
Laurent David c7fec301bc MDL-83561 format_social: Limit visible sections in social
* Only the first section is visible in social format, so we
limit the visibility of the section to the first section.
This impacts the move dialog.
* Fix PHP unit tests
2025-01-06 06:57:43 +01:00
Jun Pataleta ee14b642ac Merge branch 'MDL-83835-main' of https://github.com/raortegar/moodle 2025-01-06 13:14:49 +08:00
Luca Bösch a5d3a624e5 MDL-82895 qbank_managecategories: Correct d'n'd hover text encoding 2025-01-03 08:50:06 +01:00
Huong Nguyen ab5692acdf weekly release 5.0dev 2025-01-03 13:53:42 +07:00
Huong Nguyen 0fc12f295f NOBUG: Add upgrade notes 2025-01-03 13:53:41 +07:00
Huong Nguyen 76595b1178 NOBUG: Fixed SVG browser compatibility 2025-01-03 13:53:20 +07:00
Huong Nguyen 949f6ddb35 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2025-01-03 13:53:18 +07:00
Huong Nguyen 25607dc526 Merge branch 'MDL-79958-fix' of https://github.com/HuongNV13/moodle 2025-01-02 23:59:47 +07:00
Huong Nguyen e4b61e02a4 MDL-79958 factor_nosetup: Language string updates 2025-01-02 23:59:47 +07:00
Huong Nguyen a846c4a58f Merge branch 'MDL-83959' of https://github.com/paulholden/moodle 2025-01-02 23:59:46 +07:00
Brendan Heywood 7382ba057f MDL-84079 cli: Fix deprecation warning 2025-01-02 15:04:49 +11:00
Huong Nguyen c295a1fbd5 Merge branch 'MDL-83639-fix' of https://github.com/HuongNV13/moodle 2025-01-02 10:00:44 +07:00
Huong Nguyen ca55996c42 MDL-83639 pix: Re-generate icons 2025-01-02 10:00:42 +07:00
Huong Nguyen d5505e0ae2 Merge branch 'MDL-83639-main' of https://github.com/sarjona/moodle 2025-01-02 10:00:11 +07:00
Huong Nguyen 1b0ba21150 Merge branch 'MDL-82460-main' of https://github.com/sarjona/moodle 2025-01-02 09:59:45 +07:00
Huong Nguyen cec2c6f872 Merge branch 'MDL-66129-main' of https://github.com/rhell4/moodle 2025-01-02 09:59:44 +07:00
Huong Nguyen 4cde72e6ed Merge branch 'MDL-79958-behat-fix' of https://github.com/HuongNV13/moodle 2025-01-02 09:59:44 +07:00
Huong Nguyen 3f30cea3d2 MDL-79958 tool_mfa: Fix Behat failures 2025-01-02 09:59:41 +07:00
AMOS bot e9c99baf5e Automatically generated installer lang files 2025-01-01 00:08:00 +00:00
Leon Stringer de059dbfe0 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:42 +00:00
AMOS bot cce983d597 Automatically generated installer lang files 2024-12-25 00:31:54 +00:00
Huong Nguyen 2b7430431a Merge branch 'MDL-83982-master' of https://github.com/danghieu1407/moodle 2024-12-24 15:31:31 +07:00
Huong Nguyen e33a3f8bee Merge branch 'MDL-84037_main' of https://github.com/marxjohnson/moodle 2024-12-24 15:22:47 +07:00
Huong Nguyen c0c03fa2f7 Merge branch 'MDL-79958-main' of https://github.com/HuongNV13/moodle 2024-12-24 15:19:34 +07:00
David Woloszyn 24f3d5f5d5 MDL-79958 tool_mfa: String updates and added settings description 2024-12-24 15:18:40 +07:00
David Woloszyn 8d7b8f99bd MDL-79958 factor_email: Email factor is enabled by default 2024-12-24 15:17:49 +07:00
Huong Nguyen 3c9bab2f33 Merge branch 'MDL-83159-main' of https://github.com/lucaboesch/moodle 2024-12-24 09:42:00 +07:00
Huong Nguyen f6fe786a32 Merge branch 'MDL-83988-main' of https://github.com/andrewnicols/moodle 2024-12-24 09:29:21 +07:00
ferran 22935259c1 MDL-82342 core_course: deprecate old course edit webservices
Both core_course_edit_section and core_course_edit_module are not needed
anymore. All course edit actions are now executed as state actions from
core_courseformat_update_course. Also, the core_course_get_module is
fully replaced by the core_courseformat cmitem fragment (including also
any possible JS module).
2024-12-23 11:28:17 +01:00
Sara Arjona 84f561189a Merge branch 'MDL-82341-main' of https://github.com/ferranrecio/moodle 2024-12-23 11:19:57 +01:00
Sara Arjona 0a7e04a184 Merge branch 'MDL-82034-main' of https://github.com/aanabit/moodle 2024-12-23 10:04:02 +01:00
Shamim Rezaie d2e4a25a52 Merge branch 'MDL-83005-main' of https://github.com/davewoloszyn/moodle 2024-12-23 06:02:19 +11:00
AMOS bot 2e19a9f52e Automatically generated installer lang files 2024-12-22 00:08:11 +00:00
AMOS bot 6664b4a568 Automatically generated installer lang files 2024-12-21 00:07:43 +00:00
Mark Johnson 89b061a702 MDL-84037 quiz: Fix restore of shared questions
When a quiz that used shared questions was being restored without the
qbank the questions came from, if the qbank still existed on the target
site, the restored questions were being left in a category in an invalid
course context.

This changes the process so that if the original qbank does exist and
the user can access to it, we will find any references to the restored
copies of questions from that qbank, switch them to refer back to the
original qbank, then delete the category they were restored to from the
course context.

If the user does not have access to the qbank, a new one will be created
in the target course and the questions moved there, just as if the
original qbank did not exist.
2024-12-20 12:10:29 +00:00
ferran f6cfb1ebc3 MDL-83673 core_courseformat: optimize pageitem update
The course page employs a scroll spy to highlight the
relevant element in the course index. However, the
frequency of updates is excessively high. This commit add
throttling of the scroll spy and prevents the page item
state from updating if the value hasn’t changed.
2024-12-20 12:29:58 +01:00
ferran f081373156 MDL-82341 core_courseformat: migrate events for inplace editable 2024-12-20 12:22:45 +01:00
ferran 074645571b MDL-82341 core_courseformat: migrate permalink to action request 2024-12-20 12:22:45 +01:00
ferran 751dcbb4b9 MDL-82341 core_course: deprecate yui modules 2024-12-20 12:22:45 +01:00
Amaia Anabitarte f87d36d750 MDL-82034 core_course: Fix Activity chooser opening issues on behat 2024-12-20 10:31:24 +01:00
Amaia Anabitarte 4c2b9922df MDL-82034 mod_subsection: Enable mod_subsection when upgrading 2024-12-20 10:31:22 +01:00
Amaia Anabitarte 4dda4b9dd9 MDL-82034 mod_subsection: Subsection is stable and uninstallable 2024-12-20 10:29:48 +01:00
Amaia Anabitarte c406bcecc3 MDL-82034 mod_subsection: Enable by default 2024-12-20 10:29:48 +01:00
Luca Bösch 70e97830b8 MDL-83159 mod_quiz: Use format_string for course and quiz name. 2024-12-20 10:14:52 +01:00
Sara Arjona 314d41f427 MDL-83639 pix: Update custom icons
Sabina Abellán from the UX team has created the following custom icons:

- ai*:sparkles
- core:e/insert_col_after
- core:e/insert_col_before
- core:e/split_cells
- core:e/text_color
- core:i/bulk_edit
- core:i/export
- core:i/grade_partiallycorrect
- core:i/item
- core:t/completion_incomplete
- core:t/locktime
- mod_scorm:browsed
- tool_policy:level

In addition to updating these SVG files, the entries in the icon_map() have
been removed to ensure that the customized version is always used.
2024-12-20 07:40:23 +01:00
Sara Arjona c0366ffea1 MDL-82460 pix: Deprecate unused icons
While addressing MDL-82211, these icons were identified as candidates
for deprecation. After confirmation that they are no longer in use,
they can now be safely deprecated.
2024-12-20 07:39:52 +01:00
Sara Arjona de71c9b306 MDL-82460 mod_quiz: Move theme icons to the module
The quiz icons from the theme/boost/pix folder have been relocated
to mod/quiz/pix. The icons in the theme/boost/pix/mod/quiz folder
will be deprecated and replaced by those in mod/quiz/pix.
2024-12-20 07:39:51 +01:00
Sara Arjona 99d36acade MDL-82460 form: Remove adv icon from _advancedHTML
The "adv" icon was used in _advancedHTML but was not displayed anywhere,
so it has been deprecated to clean up the code.
2024-12-20 07:39:51 +01:00
Sara Arjona d9c4176432 MDL-82460 pix: Remove redundant PNG/GIF icons 2024-12-20 07:39:51 +01:00
danghieu1407 c97c9c4b9f MDL-83982 Quiz: Add grade item percentage 2024-12-20 11:40:59 +07:00
AMOS bot e1c81a85fe Automatically generated installer lang files 2024-12-20 00:07:51 +00:00
Jun Pataleta 7d6f282aef weekly release 5.0dev 2024-12-19 20:07:48 +08:00
Jun Pataleta ff30f04299 NOBUG: Add upgrade notes 2024-12-19 20:07:48 +08:00
Jun Pataleta 4b176b9ab5 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-12-19 20:07:34 +08:00
djarrancotleanu e0a254bf19 MDL-83753 cachestore_redis: Allow for configurable connection timeout 2024-12-19 14:19:19 +10:00
djarrancotleanu 9d60aae85a MDL-83753 redis: Allow for configurable max retries setting 2024-12-19 14:19:14 +10:00
Huong Nguyen 94b45207e9 Merge branch 'MDL-83516-main-2' of https://github.com/meirzamoodle/moodle 2024-12-19 11:06:23 +07:00
Jun Pataleta 77403362a8 Merge branch 'MDL-82754-main' of https://github.com/meirzamoodle/moodle 2024-12-19 12:02:53 +08:00
Huong Nguyen ba313fddd8 Merge branch 'MDL-83395-main' of https://github.com/davewoloszyn/moodle 2024-12-19 10:55:45 +07:00
Huong Nguyen 05badcdae0 Merge branch 'MDL-83940' of https://github.com/paulholden/moodle 2024-12-19 10:40:11 +07:00
Huong Nguyen 7a5fb9bd78 Merge branch 'MDL-82697' of https://github.com/paulholden/moodle 2024-12-19 10:21:08 +07:00
Huong Nguyen c66bbed355 Merge branch 'MDL-83956' of https://github.com/paulholden/moodle 2024-12-19 10:07:02 +07:00
Huong Nguyen 7befed22d0 Merge branch 'versionbump' of https://github.com/junpataleta/moodle 2024-12-19 10:03:51 +07:00
David Woloszyn 25be0c2776 MDL-83969 hub: Update text for marketing opt-in 2024-12-19 13:41:49 +11:00
Andrew Nicols 84532b7667 MDL-83705 core: Update subplugins.json relative to plugin 2024-12-19 09:03:00 +07:00
Andrew Nicols 62ad246544 Merge branch 'MDL-63802-main' of https://github.com/lucaboesch/moodle 2024-12-19 09:19:34 +08:00
David Woloszyn af7ca95b3f MDL-83395 core_ai: AI usage report 2024-12-19 10:51:43 +11:00
Jun Pataleta a8ff492a8e NOBUG: Bump the main version.php file 2024-12-19 00:00:13 +08:00
Jun Pataleta 1ff50ac088 NOBUG: Bump versions for main to the current date 2024-12-18 23:53:12 +08:00
Paul Holden 11566d8820 MDL-78706 repository: final removal of deprecated get_file_size method. 2024-12-18 11:05:07 +00:00
Paul Holden 4de4e456a4 MDL-80995 tool_mfa: final removal of deprecated renderer method. 2024-12-18 11:03:37 +00:00
Jun Pataleta e33b058910 Merge branch 'MDL-83691-main' of https://github.com/meirzamoodle/moodle 2024-12-18 13:46:38 +08:00
Jun Pataleta c3c31731de Merge branch 'MDL-84026-main' of https://github.com/andrewnicols/moodle 2024-12-18 13:24:18 +08:00
djarrancotleanu 50100d3106 MDL-83753 redis: Set connection and read timeouts to configurable value 2024-12-18 14:50:56 +10:00
meirzamoodle 508e77a208 MDL-83516 tool_mfa: Improve the factors management table 2024-12-18 10:07:13 +07:00
Huong Nguyen 359472dd35 MDL-83738 reportbuilder: Fix PHP Syntaxt error 2024-12-18 10:00:45 +07:00
Jun Pataleta 6120f12c10 Merge branch '79121-normalize-proxy-bypass-main' of https://github.com/DSI-Universite-Rennes2/moodle 2024-12-18 10:56:00 +08:00
Andrew Nicols 7020726705 MDL-84026 core: Update GitHub Funding to point to fund.moodle.org 2024-12-18 10:45:09 +08:00
Huong Nguyen eac86fb5d3 Merge branch 'MDL-83738' of https://github.com/paulholden/moodle 2024-12-18 09:37:47 +07:00
Huong Nguyen b3aa2e1743 Merge branch 'MDL-83977_main' of https://github.com/marxjohnson/moodle 2024-12-18 09:09:40 +07:00
Huong Nguyen 28cd1d99e0 Merge branch 'MDL-84000' of https://github.com/paulholden/moodle 2024-12-18 09:03:50 +07:00
Sara Arjona 0edac60cfe Merge branch 'MDL-83807-main' of https://github.com/clransom/moodle 2024-12-17 17:06:22 +01:00
Mark Johnson 131803e8cf MDL-83977 qbank: Fix migration issues for unused questions.
Previously, question categories which contained only questions with no
usages were deleted during migration to mod_qbank.

Also, contexts that contained no questions once unsused questions were
deleted were still migrated to a mod_qbank instance, which was empty.

The intention is that hidden questions with no usages should be deleted,
then any categories which are now empty should be deleted rather than
migrated. If there are no categories that contain questions left in a
context, creation of a mod_qbank to migrate those categories is not
necessary.

The unit tests did not cover the cases of categories containing only
non-hidden questions without usages, of categories containing only
unused questions with multiple hidden versions, or of empty categories
with children that were not empty.

This change now specifically checks whether a category or is children
are empty before deleting the category, rather than checking question
usage, since stale questions (hidden questions with no usage) are
already deleted before this point. It also expands the unit tests to
cover the above cases.
2024-12-17 15:44:03 +00:00
Sara Arjona f2c9419a56 Merge branch 'MDL-71472_deprecate-add_select_with_email' of https://github.com/ziegenberg/moodle 2024-12-17 13:15:54 +01:00
Sara Arjona ba98c82406 Merge branch 'MDL-81952-main' of https://github.com/srobotta/moodle 2024-12-17 13:01:44 +01:00
Lars Bonczek f128e7b916 MDL-81655 theme: Fix maintenance warning positioning 2024-12-17 13:01:31 +01:00
Jun Pataleta b0ce9d6552 Merge branch 'MDL-83377-main' of https://github.com/sh-csg/moodle 2024-12-17 19:54:03 +08:00
Jun Pataleta d7d0135ca7 Merge branch 'MDL-83593' of https://github.com/lostrogit/moodle 2024-12-17 19:32:50 +08:00
Carlos Castillo dfed85fcb2 MDL-83593 theme_boost: Fix navbar site logo link 2024-12-17 11:18:39 +01:00
Sara Arjona 65a4277f85 Merge branch 'MDL-83336-main' of https://github.com/andrewnicols/moodle 2024-12-17 10:54:29 +01:00
Paul Holden 952747912c MDL-83738 reportbuilder: allow aggregations to define calculated type.
This allows each class to define the type of data that they return,
regardless of the type of column to which they are applied. This is the
pre-cursor to work on graphing and filtering of aggregated data.

E.g. a text field that is aggregated with "count" is returning numeric
data rather than text.
2024-12-17 08:28:31 +00:00
Paul Holden 0fe0fc675c MDL-84000 reportbuilder: move testcase helper to autoloaded namespace.
Clean up some class imports while we're at it.
2024-12-17 08:19:38 +00:00
Huong Nguyen cf0d361721 Merge branch 'MDL-83119-main' of https://github.com/sammarshallou/moodle 2024-12-17 14:59:22 +07:00
Sara Arjona 3dbf243303 Merge branch 'MDL-83361' of https://github.com/paulholden/moodle 2024-12-17 08:00:16 +01:00
Sara Arjona df337ab680 Merge branch 'MDL-83696-main' of https://github.com/andelacruz/moodle 2024-12-17 07:41:45 +01:00
Huong Nguyen eb2be9fede Merge branch 'MDL-77713' of https://github.com/cwarwicker/moodle 2024-12-17 09:11:56 +07:00
Huong Nguyen fe5ce6d717 Merge branch 'MDL-83860_main' of https://github.com/marxjohnson/moodle 2024-12-17 09:06:57 +07:00
Angelia Dela Cruz 29bf0123d8 MDL-83696 core_tag: Added behat for book chapter and glossary entry tags 2024-12-17 10:04:12 +08:00
Paul Holden b0bd6907b1 MDL-83183 mod_bigbluebuttonbn: consistent order in activity index. 2024-12-16 19:38:45 +00:00
hieuvu 5dbded532a MDL-82273 core_question: Fix behat failed 2024-12-16 18:48:38 +01:00
Julien Boulen 6d38ff43b7 MDL-79121 lib: Improve the dataset for is_proxybypass_provider() 2024-12-16 15:55:58 +01:00
Julien Boulen 67d0069dad 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
Mark Johnson c87cffac88 MDL-83860 qbank_viewquestionname: Add question name filter condition 2024-12-16 11:07:21 +00:00
Amaia Anabitarte e1e282a4b1 MDL-83214 core_course: Make is_delegated consistent 2024-12-16 11:07:32 +01:00
Stefan Hanauska c56efb2650 MDL-83377 repository_local: Missing options for searching 2024-12-16 06:26:58 +01:00
Huong Nguyen 5800e83c46 Merge branch 'MDL-79268-master' of https://github.com/danghieu1407/moodle 2024-12-16 10:55:03 +07:00
Huong Nguyen 3cbad54d6a Merge branch 'MDL-83859_main' of https://github.com/marxjohnson/moodle 2024-12-16 10:46:52 +07:00
Huong Nguyen adb94bf614 Merge branch 'MDL-83883_main' of https://github.com/marxjohnson/moodle 2024-12-16 10:24:44 +07:00
Huong Nguyen 860bb57497 Merge branch 'MDL-83703-main' of https://github.com/andrewnicols/moodle 2024-12-16 10:07:57 +07:00
Huong Nguyen ebc3b82b48 Merge branch 'MDL-82273-master' of https://github.com/NashTechOpenUniversity/moodle 2024-12-16 10:01:51 +07:00
Huong Nguyen bb3cda8b64 Merge branch 'MDL-75075-master' of https://github.com/NashTechOpenUniversity/moodle 2024-12-16 09:50:12 +07:00
Huong Nguyen a4abbc7fa9 Merge branch 'MDL-83493-main' of https://github.com/roland04/moodle 2024-12-16 08:59:44 +07:00
AMOS bot 0692025d41 Automatically generated installer lang files 2024-12-15 00:08:27 +00:00
Stephan Robotta 49a9803144 MDL-81952 questions: Fix warning in export of multitype 2024-12-14 13:16:19 +01:00
Conn Warwicker d9d2388965 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.
2024-12-13 15:31:47 +00:00
Paul Holden e1326c2aa0 MDL-84011 repository_wikimedia: switch to JSON from API endpoint. 2024-12-13 15:12:41 +00:00
Paul Holden 812975e218 MDL-83361 reportbuilder: date aggregation for timestamp columns.
This change introduces updates to the existing aggregation API, to
allow types to define whether to group by fields of a column to which
the aggregation is applied.

The new date aggregation utilises this, to allow for creation of time
series reports, e.g. report data grouped by dates.

Co-authored-by: Daniel Neis Araujo <danielneis@gmail.com>
2024-12-13 12:36:22 +00:00
Luca Bösch 3c94afe292 MDL-63802 theme_classic: ARIA label in nav for secure layout 2024-12-13 08:21:11 +01:00
hieuvu 5e952377aa MDL-82273 core_question: get correct category for question bank view 2024-12-13 14:07:49 +07:00
danghieu1407 4eaefa2a0f MDL-79268 questions: Show version numbers in delete confirmation 2024-12-13 13:35:04 +07:00
meirzamoodle 7dac99c191 MDL-83691 core_sms: Avoid saving unnecessary data in the database 2024-12-13 10:17:05 +07:00
Huong Nguyen a97ddeb2a2 weekly release 5.0dev 2024-12-13 08:57:54 +07:00
Huong Nguyen dab6f42de4 NOBUG: Add upgrade notes 2024-12-13 08:57:53 +07:00
Huong Nguyen 15b1d05530 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-12-13 08:57:32 +07:00
sam marshall b549491bb3 MDL-83119 search_solr: Implement check on connectivity, space usage
Implements a status check which confirms that the Solr search engine
is available. Optionally, the check can also show a warning if the
index grows beyond a certain size.

As part of this change, a new API was added in search_solr\engine
to allow using http_client (Guzzle) instead of raw Curl; this makes
it easier to create mock tests in PHPunit for the new functionality.
2024-12-12 13:32:11 +00:00
Jun Pataleta df990a7c02 Merge branch 'MDL-83733-main' of https://github.com/aanabit/moodle 2024-12-12 11:50:09 +08:00
Jun Pataleta fce8ddcac8 Merge branch 'MDL-83765-main' of https://github.com/aanabit/moodle 2024-12-12 11:43:29 +08:00
Paul Holden 83dc1912dd 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:50 +00:00
Paul Holden ded7f2e995 MDL-76566 core: final removal of pre-404 renamed class definitions. 2024-12-11 16:59:06 +00:00
Paul Holden a65a1aac9d MDL-78635 mod: final removal of deprecated libxml method wrappers. 2024-12-11 16:57:43 +00:00
Paul Holden f10d166e45 MDL-80491 communication: final removal of deprecated enrol method. 2024-12-11 16:57:16 +00:00
Andrew Nicols e89f890b3d MDL-83988 core: Hide common machine-read files 2024-12-11 23:34:55 +08:00
raortegar b014947acb MDL-82958 core_dml: Hide table details in exceptions if debug disabled 2024-12-11 12:31:29 +01:00
Katie Ransom d0e707920c MDL-83807 files: Make file_get_all_files_in_draftarea return zip files 2024-12-11 11:22:42 +00:00
Amaia Anabitarte 66bb598811 MDL-83807 h5p: Return a default valid H5P 2024-12-11 11:22:42 +00:00
Amaia Anabitarte 1d8d35a2c5 MDL-83765 core_output: deprecated functions have been removed from action_menu class. 2024-12-11 11:10:18 +01:00
Sara Arjona 1420e2fb5d Merge branch 'MDL-82457-main' of https://github.com/laurentdavid/moodle 2024-12-11 08:57:09 +01:00
Jun Pataleta 4929d6c3d1 Merge branch 'MDL-81520-main' of https://github.com/andrewnicols/moodle 2024-12-11 13:41:15 +08:00
Andrew Nicols f30cfe049d MDL-81520 mod_assign: Update tests to not extend assign_provider test 2024-12-11 12:30:24 +08:00
Andrew Nicols c2414e5a45 MDL-81520 core: Fix test finality 2024-12-11 12:30:23 +08:00
Huong Nguyen 7e497dedc4 Merge branch 'MDL-81825-main' of https://github.com/roland04/moodle 2024-12-11 09:52:51 +07:00
Brendan Heywood edea4a41af MDL-83979 repository_url: Always use the proxy for url downloads 2024-12-11 13:35:01 +11:00
AMOS bot 237ae8372e Automatically generated installer lang files 2024-12-11 00:07:50 +00:00
Mikel Martín a973ea46d7 MDL-81825 core: Replace sr_text() with visually_hidden_text()
In core renderer, replace 'sr_text' method with 'visually_hidden_text' to be
consistent with Bootstrap 5 upgrade.
2024-12-10 14:02:34 +01:00
Mikel Martín f9abc562f5 MDL-81825 theme_boost: Refactor .sr-only usages for BS5
- Add .visually-hidden to the Boostratp 5 bridge SCSS file
- Replace .sr-only occurrences with .visually-hidden
- Replace .dropzone-sr-only-focusable  with .dropzone-visually-hidden-focusable
  for consistency
2024-12-10 14:02:32 +01:00
Laurent David 34b0c5a24d MDL-82457 theme_boost: Remove styles for chat and survey
* Remove styles that were associated with the modules
2024-12-10 08:59:18 +01:00
Laurent David 6ec4617ee3 MDL-82457 tool_mobile: Remove chat and survey 2024-12-10 08:59:18 +01:00
Laurent David bdc1c81b02 MDL-82457 tool_brickfield: Remove core support for chat and survey 2024-12-10 08:59:18 +01:00
Laurent David e9bb3d1144 MDL-82457 core_presets: Remove chat and survey from presets
* Replace chat by page whenever possible
* Use Wiki when we need a module that is disabled by default.
2024-12-10 08:59:18 +01:00
Laurent David f8805b06d0 MDL-82457 core_analytics: Remove chat and survey from core 2024-12-10 08:59:18 +01:00
Laurent David 2be6563324 MDL-82457 core: Remove chat and survey dependencies
* Remove chat and survey plugins from the standard plugins
* Remove all related tables and settings from both plugins
using upgrade.
* Remove temporary admin notification (MDL-82297) and strings.
* PHP Unit:
   - Remove chat and survey as a sample module for unit testing
     replacing it with assignment module when possible (if not page).
   - Remove chat and survey from bulk update test
* Behat: Remove chat and survey behat tests
2024-12-10 08:59:18 +01:00
Laurent David 8e5ac0e34f MDL-82457 mod_chat: Remove mod_chat from Moodle 5.0 2024-12-10 08:59:18 +01:00
Laurent David 9d94ea58b6 MDL-82457 mod_survey: Remove mod survey from Moodle 5.0 2024-12-10 08:59:18 +01:00
Khoa Nguyen 9d1c481448 MDL-75075 quiz: Show question tags as non-links to avoid errors 2024-12-10 13:44:58 +07:00
Khoa Nguyen c5e4c202f5 MDL-75075 core_tag: Add an option to render tag lists without links 2024-12-10 13:44:17 +07:00
Huong Nguyen 60b98ff870 MDL-82313 mod_data: Fix illegal whitespaces 2024-12-10 09:55:27 +07:00
Huong Nguyen f9d55977fc Merge branch 'MDL-82313-main' of https://github.com/mackensen/moodle 2024-12-10 09:40:48 +07:00
Huong Nguyen 5988b6c49b Merge branch 'MDL-82886-main' of https://github.com/lucaboesch/moodle 2024-12-10 09:34:03 +07:00
Huong Nguyen 448d08d48e Merge branch 'MDL-83013-main' of https://github.com/lucaboesch/moodle 2024-12-10 09:29:08 +07:00
Huong Nguyen 158649ff5f Merge branch 'MDL-83920-main' of https://github.com/lucaboesch/moodle 2024-12-10 09:22:42 +07:00
Huong Nguyen 8da77b0aaf Merge branch 'MDL-81115_main' of https://github.com/cwarwicker/moodle 2024-12-10 09:17:54 +07:00
AMOS bot 75d1859105 Automatically generated installer lang files 2024-12-10 00:07:52 +00:00
Paul Holden 074eca0726 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:49:51 +00:00
Sara Arjona 9a482096f6 Merge branch 'MDL-83783-main' of https://github.com/aanabit/moodle 2024-12-09 16:20:30 +01:00
Sara Arjona 89769876a7 Merge branch 'MDL-75750-main' of https://github.com/aanabit/moodle 2024-12-09 16:18:38 +01:00
Sara Arjona c5906cddfc Merge branch 'MDL-81841-main' of https://github.com/laurentdavid/moodle 2024-12-09 16:16:24 +01:00
Sara Arjona 2ee90a9c84 Merge branch 'MDL-83456-main' of https://github.com/roland04/moodle 2024-12-09 16:10:13 +01:00
Frederik Milling Pytlick 02ec5c8587 MDL-82440 assignfeedback_editpdf: Force ghostscript pdf's to pdf v1.4 2024-12-09 15:50:03 +01:00
Charles Fulton fb3349e821 MDL-82313 mod_data: refactor field icon display 2024-12-09 09:30:59 -05:00
Andrew Gosali 7c712b0cdd MDL-79907 core_grades: removal on grade_structure's deprecated methods
- grade_structure::get_element_type_string()
- grade_structure::get_element_header()
- grade_structure::get_element_icon()
- grade_structure::get_activity_link()
2024-12-09 21:02:31 +07:00
Mark Johnson bfb057001b MDL-83883 qbank_editquestion: Add status filter condition
This allows users to filter questions based on whether a question is in
"draft" or "ready" status.
2024-12-09 11:12:21 +00:00
raortegar 01f13bee19 MDL-73909 core_message: Admin notification preferences saved on toggle 2024-12-09 10:31:04 +01:00
Paul Holden 45a6986aa4 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:55:26 +00:00
Laurent David fea59f3ae1 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:12:04 +01:00
Huong Nguyen 2963073f55 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:29:34 +07:00
James C 9e48341722 MDL-83306 book: Book section return fix 2024-12-09 10:19:24 +13:00
AMOS bot 568f9ccb5a Automatically generated installer lang files 2024-12-08 00:08:08 +00:00
Conn Warwicker c5633888e2 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:09 +00:00
Paul Holden c255206768 MDL-83940 comment: fix collapse/loading icons in comment container. 2024-12-06 10:48:46 +00:00
Paul Holden 382a8d6292 MDL-81185 enrol_self: final removal of deprecated email contact method. 2024-12-06 09:19:37 +00:00
Paul Holden 804038e2ed MDL-78780 grade: final removal of deprecated lang string methods. 2024-12-06 09:18:45 +00:00
meirzamoodle 58b9be52d5 MDL-82754 core: Improve treatStringsInContent() performance with arrays
Co-authored-by: JeanSotoriva <jeansotoriva@gmail.com>
2024-12-06 14:45:19 +07:00
Luca Bösch 7fbf8140a6 MDL-83920 core_question: Error when trying exporting 0 questions. 2024-12-06 08:36:12 +01:00
Luca Bösch 3c3b4b5573 MDL-83013 core_question: put "Delete" action last in menu. 2024-12-05 18:35:24 +01:00
Luca Bösch c7feeb94be MDL-82886 qbank_managecategories: put "Delete" action last in menu. 2024-12-05 18:35:23 +01:00
Huong Nguyen 0888a6d324 weekly release 5.0dev 2024-12-05 22:32:27 +07:00
Huong Nguyen 49c975b918 NOBUG: Add upgrade notes 2024-12-05 22:32:26 +07:00
Mikel Martín 55a9c190c0 MDL-83456 mod_scorm: Revert FA6 updated status icons 2024-12-05 14:27:56 +01:00
Mark Johnson e46a0c33ac MDL-83859 qbank_viewquestiontype: Add type filter
This adds a new question bank filter for filtering by question type. The
filter can be applied with one or multiple question types, and can
either include or exclude the selected types.
2024-12-05 11:30:32 +00:00
Mark Johnson 1613a98102 MDL-83859 core_question: Update filter condition API
This corrects some definitions of the methods in the base condition
class to make things more obvious to developers implementing new
filters.

Previously if your filter wanted to use the default
`core/datafilter/filtertype` class, you still had to implement
`get_filter_class` to return `null`, since it was declared as abstract.
This change defines it as returning `null` by default, so this is no
longer necessary.

Also, this removes the default definitions for `get_condition_key` and
`build_query_from_functions`, and declares them abstract. Currently it
is necessary to override these to implement a functional filter so it
doesn't make sense to have a useless default definition.

This will not cause any breakages with existing filters. All filters
must already be defining the methods that are now abstract, otherwise
they will not function. Any filter that is now overriding
`get_filter_class` to return `null` will continue to work as before,
even though this is no longer necessary.
2024-12-05 11:30:32 +00:00
Conn Warwicker 3f36e1ca6a MDL-77713 question: List question versions with most recent on top.
This makes the display of question versions consistent between
question preview and when users are building quizzes.
2024-12-05 11:17:06 +00:00
Huong Nguyen 0f7c41d664 MDL-83921 competency: Update unit tests with latest changes 2024-12-05 18:36:49 +08:00
Huong Nguyen 17552d4785 MDL-83606 Question bank: Fix PHPUnit failures 2024-12-05 15:31:57 +07:00
Huong Nguyen bef45583cc MDL-82379 core_user: Move email change token to user private access key 2024-12-05 13:37:56 +08:00
Huong Nguyen 488da643c6 Merge branch 'MDL-83606-master' of https://github.com/NashTechOpenUniversity/moodle 2024-12-05 12:09:24 +07:00
Huong Nguyen 376a4b5f76 Merge branch 'MDL-83345' of https://github.com/paulholden/moodle 2024-12-05 12:05:12 +07:00
Huong Nguyen 8a72d26558 Merge branch 'MDL-83396-main' of https://github.com/davewoloszyn/moodle 2024-12-05 11:54:48 +07:00
Huong Nguyen 076a519d97 Merge branch 'MDL-83852-web-install-fatal-error' of https://github.com/x-iy/moodle 2024-12-05 11:49:11 +07:00
Huong Nguyen 3da0c8952e Merge branch 'MDL-83836-main' of https://github.com/davewoloszyn/moodle 2024-12-05 11:43:56 +07:00
Jun Pataleta e9cded4559 Merge branch 'MDL-83727-master' of https://github.com/NashTechOpenUniversity/moodle 2024-12-05 12:35:52 +08:00
Huong Nguyen b07c5f48cb Merge branch 'MDL-83641' of https://github.com/paulholden/moodle 2024-12-05 11:29:03 +07:00
Huong Nguyen a89646e0fa MDL-83921 competency: Bump version 2024-12-05 11:19:53 +07:00
Michael Hawkins 950a829a31 MDL-83921 competency: Match web service capability check with page check 2024-12-05 11:18:58 +07:00
Jun Pataleta 51be71b1bf Merge branch 'MDL-83823-main-enfix' of https://github.com/mudrd8mz/moodle 2024-12-05 11:48:34 +08:00
Huong Nguyen 199fd9a02b Merge branch 'MDL-83584-main' of https://github.com/sammarshallou/moodle 2024-12-05 10:12:24 +07:00
Huong Nguyen 3eb413343e Merge branch 'MDL-83223-main' of https://github.com/meirzamoodle/moodle 2024-12-05 10:08:19 +07:00
Huong Nguyen 016ae54134 MDL-82963 Tag: Improve validation for users tagged with sepecified tag 2024-12-05 11:01:56 +08:00
Jun Pataleta eb67b65de1 Merge branch 'MDL-83844' of https://github.com/paulholden/moodle 2024-12-05 10:35:28 +08:00
Huong Nguyen 67bd6ce06a Merge branch 'MDL-82946-main-fix' of https://github.com/lameze/moodle 2024-12-05 09:00:34 +07:00
Jun Pataleta feeca026ae Merge branch 'MDL-83710' of https://github.com/paulholden/moodle 2024-12-05 09:55:03 +08:00
Simey Lameze 80a26532bb MDL-82946 behat: use existing questions to validate bulk delete
This commit also changes the question names to something more logical
2024-12-05 08:27:23 +08:00
Mark Johnson e347532af4 MDL-83883 datafilter: Fix initial state of binary filter
When a filter is added to a page after the initial page load, no
initialValues are passed, so we need to set a default value.
2024-12-04 11:21:01 +00:00
David Woloszyn c54de57c74 MDL-83005 tool_usertours: Fixed animating scroll on Boost tours 2024-12-04 16:12:30 +11:00
David Woloszyn 0d8707517d 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 15:44:39 +11:00
meirzamoodle 48e652623d 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:35:36 +07:00
Laurent David 5f4c55e16a MDL-82757 mod_data: Improve group access handling
* Improved handling of group access to ensure correct visibility of records.
2024-12-04 02:44:22 +00:00
Jun Pataleta cf5e586d03 MDL-61316 core: Fix session gc unit tests 2024-12-04 02:44:22 +00:00
meirzamoodle cacf7546b9 MDL-61316 core: Removed 5x multiplier from guest session expiration 2024-12-04 02:44:22 +00:00
Mark Johnson d0fb2d5cac MDL-83357 question: Fix filter cleaning in page links 2024-12-04 02:44:22 +00:00
Mark Johnson c5f78e9bd3 MDL-83357 question: Additional cleaning of filter params 2024-12-04 02:44:22 +00:00
Huong Nguyen 0ff35dc282 Merge branch 'MDL-82946-main' of https://github.com/lameze/moodle 2024-12-04 09:39:10 +07:00
David Mudrák ed0fffef85 MDL-83823 lang: Use the fixed strings in tests, too. 2024-12-03 20:08:25 +01:00
Paul Holden 8c1a4093b3 MDL-83345 reportbuilder: upgrade step to migrate existing filter data. 2024-12-03 16:42:36 +00:00
Paul Holden f7e0e8cd96 MDL-83345 reportbuilder: migrate filter storage from user preferences.
Use a dedicated persistent table/model for storage of a users' report
filter configuration.
2024-12-03 16:42:35 +00:00
Sara Arjona 6a545b5fcc Merge branch 'MDL-80303-main' of https://github.com/roland04/moodle 2024-12-03 15:55:50 +01:00
Sara Arjona 4023acad31 Merge branch 'MDL-83718-fix' of https://github.com/paulholden/moodle 2024-12-03 15:46:54 +01:00
Paul Holden e76d99f29d MDL-83718 reportbuilder: use aliased user fullname sort fields.
This is extending work started in 8f32e623 that removed duplicate
fields when sorting user fullname columns (to ensure compatibility
across supported DBs).

We must now refer to these sorted fields by their alias in order to
ensure they continue working when processed from the report table.

Co-authored-by: David Carrillo <davidmc@moodle.com>
2024-12-03 13:17:41 +00:00
Mikel Martín c74102a3c6 MDL-80303 theme_boost: Clean and reorder course SCSS
- Reorder SCSS blocks to improve readability
- Clean comment style to improve readability
- Refactor some SCSS blocks
- Move some styles from core.scss to course.scss
2024-12-03 10:57:29 +01:00
Mikel Martín 195b14b3d9 MDL-80303 theme_boost: Remove unused/unneded course SCSS
- Remove unused/unneeded styles in course.scss
- The .activity-wrapper class and its related SCSS styles are not
needed anymore after MDL-77863 was integrated.
2024-12-03 10:57:29 +01:00
Mikel Martín c0ba1ddfcb MDL-80303 theme_boost: Move non course related SCSS to other files
- Move course management SCSS to a new coursemanagement.scss file
- Move course listings and summary SCSS to a new courselisting.scss file
- Move block related SCSS to blocks.scss
- Move classic specific styles to theme_classic
- Move non-course specific styles to core.scss file
2024-12-03 10:57:27 +01:00
Sara Arjona 8126ba71df Merge branch 'MDL-83718-fix' of https://github.com/paulholden/moodle 2024-12-03 09:14:20 +01:00
Paul Holden 321e04d630 MDL-83718 tag: consistently sort "flagged" report entity column.
It contains only a calculated boolean field, and should be sorted
as such.
2024-12-03 07:27:22 +00:00
Angelia Dela Cruz 192fc6882e MDL-82946 qbank: Behat coverage for questions bulk actions 2024-12-03 11:36:49 +08:00
Huong Nguyen c0f349c034 Merge branch 'MDL-83718' of https://github.com/paulholden/moodle 2024-12-03 10:05:33 +07:00
Huong Nguyen bc89603638 Merge branch 'MDL-82913' of https://github.com/paulholden/moodle 2024-12-03 09:45:32 +07:00
Huong Nguyen 3ffaddc136 Merge branch 'MDL-83128' of https://github.com/paulholden/moodle 2024-12-03 09:31:54 +07:00
david adamson 7d82486029 MDL-83852 core: Fix web install fatal error 2024-12-03 13:07:32 +11:00
Helen Foster 9f1293b10d MDL-83823 lang: Import fixed English strings (en_fix) 2024-12-02 21:25:01 +01:00
Sara Arjona 9601ff6697 Merge branch 'MDL-83686' of https://github.com/paulholden/moodle 2024-12-02 13:52:19 +01:00
raortegar a2099bffcc MDL-83835 lib: PEAR - passing null to str functions is deprecated 2024-12-02 13:10:09 +01:00
Sara Arjona 8e2c8c4c8e Merge branch 'MDL-82949-main' of https://github.com/lucaboesch/moodle 2024-12-02 12:01:06 +01:00
Paul Holden e1df293131 MDL-83641 cohort: allow 'includes' option be specified in form element. 2024-12-02 10:58:44 +00:00
Paul Holden e9210ec9fc MDL-83844 mod_scorm: avoid SQL reserved words retrieving SCO timing. 2024-12-02 10:45:57 +00:00
Sara Arjona 64d96c1264 Merge branch 'MDL-81827-main' of https://github.com/HuongNV13/moodle 2024-12-02 10:27:58 +01:00
Paul Holden 430020f3ba MDL-83128 blocks: consistently style/align block list icons. 2024-12-02 09:25:16 +00:00
Jun Pataleta 62387aee48 Merge branch 'MDL-83648' of https://github.com/timhunt/moodle 2024-12-02 17:24:26 +08:00
Huong Nguyen 285ed82c69 MDL-81827 quizaccess: Fix Behat failure 2024-12-02 15:46:13 +07:00
Huong Nguyen 193a191dd9 Merge branch 'MDL-82947-main' of https://github.com/lucaboesch/moodle 2024-12-02 14:31:54 +07:00
Huong Nguyen ee90c26aa5 Merge branch 'MDL-83711-main' of https://github.com/lucaboesch/moodle 2024-12-02 14:19:19 +07:00
Shamim Rezaie 17201694ef Merge branch 'MDL-75610_main' of https://github.com/marxjohnson/moodle 2024-12-02 15:23:23 +11:00
Huong Nguyen a3036eb2ff Merge branch 'MDL-83778-master' of https://github.com/NashTechOpenUniversity/moodle 2024-12-02 10:44:06 +07:00
Huong Nguyen 6e6cd2a2f5 Merge branch 'MDL-83670-main' of https://github.com/sammarshallou/moodle 2024-12-02 10:30:33 +07:00
Huong Nguyen 386004dbee Merge branch 'MDL-82657_main' of https://github.com/marxjohnson/moodle 2024-12-02 10:17:06 +07:00
Huong Nguyen e56abd2369 Merge branch 'MDL-81827-main' of https://github.com/lucaboesch/moodle 2024-12-02 10:03:37 +07:00
Andrew Nicols a29e4820ae MDL-83703 tool_mfa: Remove legacy subplugins.php 2024-12-02 10:08:28 +08:00
Andrew Nicols 6ab400b733 MDL-83703 core: Remove support for subplugins.php 2024-12-02 10:08:28 +08:00
Andrew Nicols 426471917f MDL-83703 core: Add unit tests for subplugin fetching 2024-12-02 10:08:28 +08:00
Tim Hunt 50b1b5eea1 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 16:05:46 +00:00
Luca Bösch d4c979ad1e MDL-81827 quizaccess: Open Download Safe Exam Browser in new tab. 2024-11-29 15:49:03 +01:00
Luca Bösch 201c4c6c58 MDL-82949 qbank_managecategories: better vertical distinction of title. 2024-11-29 14:26:13 +01:00
Luca Bösch 2240ad6487 MDL-82947 qbank_managecategories: Hover color for category management. 2024-11-29 14:26:11 +01:00
Luca Bösch 3a1159fb78 MDL-83711 quiz: Quiz navigation profile pic not linking in secure mode 2024-11-29 14:25:45 +01:00
Sara Arjona a798b1db39 weekly release 5.0dev 2024-11-29 12:36:42 +01:00
Sara Arjona 44a0f48a30 NOBUG: Add upgrade notes 2024-11-29 12:36:42 +01:00
Sara Arjona 7895cc4c0a NOBUG: Fixed SVG browser compatibility 2024-11-29 12:36:28 +01:00
David Woloszyn a2f4f5bd3b MDL-83396 core_ai: Create AI policy acceptance report 2024-11-29 17:40:06 +11:00
Khoa Nguyen fd2946fa59 MDL-83727 question: Core question privacy provider misuses lazy-loading 2024-11-29 10:54:11 +07:00
Jun Pataleta 5a70440260 MDL-83470 composer: Require behat/gherkin 4.9.0 for now
`behat/gherkin` 4.10.0 introduces a breaking change where backslashes
in feature files need to be escaped. We need to pin the Behat version
to 4.9.0 for now and raise a separate issue to update to the later
versions once we've fixed the affected feature files and communicated
this change to the community.

More details:
https://github.com/Behat/Gherkin/releases/tag/v4.10.0
2024-11-29 10:39:12 +07:00
Khoa Nguyen 93289564e0 MDL-83778 quiz: prevent page caching for quiz view page 2024-11-28 16:40:06 +07:00
Jun Pataleta bce4b7fa2c 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:04:31 +07:00
Jun Pataleta 719fea2752 MDL-83470 gha: Bump min PHP version to 8.2 for web installer workflow 2024-11-28 14:01:00 +07:00
Jun Pataleta 5d5cedc8ff Merge branch 'MDL-82475' of https://github.com/paulholden/moodle 2024-11-28 13:23:55 +08:00
Huong Nguyen 711e58f1a4 Merge branch 'MDL-83776' of https://github.com/paulholden/moodle 2024-11-28 13:23:55 +08:00
Jun Pataleta 053a0b367b Merge branch 'MDL-83614' of https://github.com/paulholden/moodle 2024-11-28 13:23:55 +08:00
Huong Nguyen 7fd11604da Merge branch 'MDL-81821-main' of https://github.com/roland04/moodle 2024-11-28 13:23:54 +08:00
Huong Nguyen c77fb0e6e0 Merge branch 'MDL-83473_main' of https://github.com/dasistwas/moodle 2024-11-28 13:23:54 +08:00
Huong Nguyen 4d530b5048 Merge branch 'MDL-81745-main' of https://github.com/roland04/moodle 2024-11-28 13:23:54 +08:00
Jun Pataleta f491ab0ef8 Merge branch 'MDL-83759-main' of https://github.com/roland04/moodle 2024-11-28 13:23:54 +08:00
Huong Nguyen 3db0bb1436 Merge branch 'MDL-83811-main' of https://github.com/junpataleta/moodle 2024-11-28 13:23:53 +08:00
Jun Pataleta 0069dde1d9 Merge branch 'MDL-83412-main' of https://github.com/junpataleta/moodle 2024-11-28 13:23:53 +08:00
Huong Nguyen d08c982135 Merge branch 'MDL-83470-main' of https://github.com/junpataleta/moodle 2024-11-28 13:23:53 +08:00
Jun Pataleta 17e8952015 MDL-83470 core: Bump versions in moodle_minimum_php_version_is_met() 2024-11-28 13:23:50 +08:00
David Woloszyn 9e85964f96 MDL-83836 aiplacement_courseassist: Fixed JS selectors 2024-11-28 16:02:24 +11:00
Jun Pataleta 6bd4b3fd68 MDL-83412 core: Coding style fixes 2024-11-28 11:54:31 +08:00
Andrew Nicols 7cb2b0ca40 MDL-83412 calendartype_gregorian: Use core_date
Update timestamp_to_date_string to use core_date.
2024-11-28 11:47:30 +08:00
Andrew Nicols 941d0df29e 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:46:35 +08:00
Huong Nguyen 376bcbe79f Merge branch 'MDL-63264' of https://github.com/paulholden/moodle 2024-11-28 10:45:51 +07:00
Huong Nguyen 9bfa5c2b65 Merge branch 'MDL-83653' of https://github.com/timhunt/moodle 2024-11-28 10:21:07 +07:00
Huong Nguyen d3a0d5c6cb Merge branch 'MDL-82931-main' of https://github.com/PhMemmel/moodle 2024-11-28 09:43:30 +07:00
Huong Nguyen 2dd2c3db17 Merge branch 'MDL-83661-main' of https://github.com/ferranrecio/moodle 2024-11-28 09:38:49 +07:00
Huong Nguyen 282f9dc2ad Merge branch 'MDL-82932-main' of https://github.com/PhMemmel/moodle 2024-11-28 09:27:45 +07:00
Huong Nguyen 8da8b20ff9 Merge branch 'MDL-83643-main' of https://github.com/lameze/moodle 2024-11-28 09:19:52 +07:00
Jun Pataleta e84d95ed67 MDL-83811 dml: Make expected debugging message less specific
* Plus minor fixes for better unit test assertions
2024-11-28 10:03:42 +08:00
Jun Pataleta 134ae0ba57 Merge branch 'MDL-83211-main' of https://github.com/sammarshallou/moodle 2024-11-27 23:28:38 +08:00
Jun Pataleta 57529b2920 Merge branch 'MDL-83788-main' of https://github.com/andrewnicols/moodle 2024-11-27 16:19:22 +08:00
Huong Nguyen 8fc0a38df0 Merge branch 'mdl-72526_main' of https://github.com/james-cnz/moodle 2024-11-27 10:02:15 +07:00
Huong Nguyen f27ba19f25 Merge branch 'MDL-83658-main' of https://github.com/praxisdigital/moodle 2024-11-27 09:50:48 +07:00
Jun Pataleta 4e22073a9b MDL-83811 core: Make sure to trim leading backslashes too for Windows 2024-11-27 10:36:46 +08:00
Jun Pataleta 03729748d1 MDL-83470 core: Remove upgrade steps from 4.1 2024-11-27 10:27:09 +08:00
Andrew Nicols 324182ccef MDL-83788 mod_glossary: Correct assertions for assertArrayHasKey 2024-11-27 13:26:01 +11:00
Philipp Memmel ec338a7339 MDL-83822 core_session: Init redis connection in get_session_by_sid 2024-11-26 17:24:40 +01:00
Mikel Martín 636ab0fba9 MDL-81821 theme_boost: Refactor font utility classes for BS5 2024-11-26 15:17:30 +01:00
Mark Johnson 58efdf8871 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:37:57 +00:00
Shamim Rezaie 1132cfcf44 Merge branch 'MDL-77957-main-test2' of https://github.com/rezaies/moodle 2024-11-26 20:56:42 +11:00
Bastian Schmidt-Kuhl a202f297f1 MDL-77957 theme_boost: Fix drawer not closing on mobile if it has focus 2024-11-26 20:15:52 +11:00
jacob.viertel@wunderbyte.at 1773124a97 MDL-83473 course: hooks api for external courses 2024-11-26 09:11:45 +01:00
Jun Pataleta b234e013bb Merge branch 'MDL-82584-main-fix' of https://github.com/HuongNV13/moodle 2024-11-26 15:13:21 +08:00
Huong Nguyen 40630e1bd2 Merge branch 'mdl-82762_main_wip' of https://github.com/james-cnz/moodle 2024-11-26 12:10:17 +07:00
Huong Nguyen ea4b1f8e7b MDL-82584 mod_workshop: Correct DB select fields
We cannot use the `DISTINCT` CLOB fields on Oracle.
Instead of selecting all the fields, we just need
to select the needed fields only
2024-11-26 11:34:33 +07:00
Khoa Nguyen 69fc9048bf MDL-83606 Question bank: Delete questions to fit one page causes errors. 2024-11-26 11:15:56 +07:00
Simon Adams 231d110dd9 MDL-71378 mod_quiz: Fix GROUP BY statement in SQL 2024-11-26 14:34:06 +11:00
Jun Pataleta d3cabadd38 MDL-83811 gha: Replace redis-64 with redis 5.0 2024-11-26 01:06:13 +08:00
Amaia Anabitarte bf4f930773 MDL-83783 core_course: Make activity chooser button ids unique 2024-11-25 14:37:46 +01:00
Mikel Martín b873a345bb MDL-83759 theme_boost: Fix user navigation items height 2024-11-25 12:08:10 +01:00
Amaia Anabitarte 48df296967 MDL-83733 blocks: 'Activity' non used selectors had been deleted 2024-11-25 11:55:39 +01:00
Paul Holden 891548cac9 MDL-83630 theme_boost: vertically align submenu navigation icon. 2024-11-25 09:49:26 +00:00
Huong Nguyen f29f2ad5d3 Merge branch 'MDL-82584-main' of https://github.com/cwarwicker/moodle 2024-11-25 16:05:06 +07:00
Shamim Rezaie f72b4938ce MDL-71378 mod_qbank: fix version number 2024-11-25 18:38:59 +11:00
Huong Nguyen 86c1eaa4ef Merge branch 'MDL-83786-main' of https://github.com/andrewnicols/moodle 2024-11-25 14:34:25 +07:00
Shamim Rezaie 0af9b5ca7e Merge branch 'MDL-71378_main' of https://github.com/SimonasAdams/moodle 2024-11-25 18:21:18 +11:00
Huong Nguyen 6ef15493a2 Merge branch 'MDL-83704-main' of https://github.com/andrewnicols/moodle 2024-11-25 10:15:21 +07:00
Huong Nguyen a4f859f5ea Merge branch 'MDL-82351-main-v02' of https://github.com/ferranrecio/moodle 2024-11-25 09:28:40 +07:00
ferran 694edcf76b MDL-82351 core_courseformat: fix social format phpunits 2024-11-22 17:20:55 +01:00
ferranrecio ab5b390a77 MDL-82351 block_social_activities: migrate to reactive course editor
This commit integrate and clean the social activities block to use the
standard course format outputs and the course editor modules. The code
is similar to the one used in the site_main_menu block and cleanup most
of the ancient code.
2024-11-22 17:20:55 +01:00
ferranrecio 8be3db6de2 MDL-82351 format_social: migrate to reactive course editor
The commit adds all the necessary methods to allow social format to use
the course editor. The code is similar to the one used in the frontpage
format. The commit does not include the migration of the
social_activities blocks.
2024-11-22 17:20:55 +01:00
ferranrecio fa1296a7a4 MDL-82351 courseformat: allow blocks to use the course editor
Some formats like the social need the blocks and drawers to access the
course editor. However, the include_course_ajax was called after the
main page structure is created and produces some errors, especially in
behat. Now include_course_ajax is called before the page header.
2024-11-22 17:20:55 +01:00
ferranrecio 4053bd2139 MDL-82351 course: fix course_ajax_enabled function
The course_ajax_enabled was using a course_format_ajax_support which
does not initialize the course format with the correct parameters.
Having a global function to get something the format base format can
provide is unnecessary and redudant, for this reason the function is now
deprecated.
2024-11-22 17:20:55 +01:00
Paul Holden 466f6e88b5 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:39 +00:00
Paul Holden dfcbfde2bb MDL-83614 javascript: apply icon class to legacy lightbox spinner. 2024-11-22 16:13:24 +00:00
ferran 121f4ad5c5 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-22 17:12:13 +01:00
Jun Pataleta 9c206d1e72 MDL-83470 core: Bump version in phpcs.xml.dist 2024-11-22 23:48:22 +08:00
Jun Pataleta dd4c741d76 MDL-83470 core: Update composer.json 2024-11-22 23:48:22 +08:00
Jun Pataleta 70b1f1d61f MDL-83470 gha: Bump versions to the required values
For 5.0:
- Minimum PHP version is bumped to 8.2
- Minimum MySQL version is bumped to 8.4
- Minimum PostgreSQL version is bumped to 14
2024-11-22 23:48:22 +08:00
Jun Pataleta 18a3c3d186 MDL-83470 core: Define environment requirements for Moodle 5.0 2024-11-22 23:48:21 +08:00
Paul Holden a0ef4bb8fe MDL-82913 reportbuilder: simplify select filter for limited options.
Where the select filter contains upto two items (making it a binary
choice), then we can simplify the filter form elements to always
assume: "Equal to [ Option 1 | Option 2 ]".
2024-11-22 15:38:11 +00:00
Jun Pataleta 505a85eb9a weekly release 5.0dev 2024-11-22 22:26:25 +08:00
Jun Pataleta 1a85875c34 NOBUG: Add upgrade notes 2024-11-22 22:26:24 +08:00
Andrew Nicols 4d961d28ff Merge branch 'MDL-83551-main' of https://github.com/lameze/moodle 2024-11-22 10:50:48 +07:00
Andrew Nicols 305952533d Merge branch 'MDL-82589' of https://github.com/paulholden/moodle 2024-11-22 10:50:48 +07:00
Huong Nguyen 32a31cbb3f Merge branch 'MDL-83529-main' of https://github.com/sammarshallou/moodle 2024-11-22 10:50:48 +07:00
Andrew Nicols a3db27263a Merge branch 'MDL-82450' of https://github.com/paulholden/moodle 2024-11-22 10:50:48 +07:00
Huong Nguyen 1d35129541 Merge branch 'MDL-83747-main' of https://github.com/junpataleta/moodle 2024-11-22 10:50:48 +07:00
Huong Nguyen c2af08a68b Merge branch 'MDL-83048' of https://github.com/timhunt/moodle 2024-11-22 10:50:47 +07:00
Huong Nguyen 443871d320 Merge branch 'MDL-80430' of https://github.com/paulholden/moodle 2024-11-22 10:50:47 +07:00
Andrew Nicols 9781d5f392 MDL-83786 navigation: Correct incorrect paren in navfilter
This condition was checking whether navgfilter was true, and the
stringfilter was also true.

In most cases the condition will have actually worked correctly, albeit
by fluke. For users upgrading or otherwise missing the navfilter
configuration this condition led to warnings.
2024-11-22 08:36:17 +08:00
Paul Holden b48cb6861e MDL-83776 customfield_text: correct link field URL encoding. 2024-11-21 09:02:33 +00:00
Andrew Nicols 0ec23aca48 Merge branch 'MDL-83501-url-encode-nginx-paths' of https://github.com/rajandangi/moodle 2024-11-21 11:47:59 +08:00
Jun Pataleta 94b89dd9d4 Merge branch 'MDL-83290-main' of https://github.com/meirzamoodle/moodle 2024-11-21 11:46:08 +08:00
Andrew Nicols d2c5ae9f75 Merge branch 'MDL-83226' of https://github.com/paulholden/moodle 2024-11-21 11:44:32 +08:00
Jun Pataleta e5a241a02c Merge branch 'MDL-71257-main' of https://github.com/junpataleta/moodle 2024-11-21 11:33:32 +08:00
David Woloszyn 2be5e7e18d MDL-71257 dml: Rename master/slave to primary/replica 2024-11-21 11:17:51 +08:00
Andrew Nicols 3d24572e55 Merge branch 'MDL-83391-main' of https://github.com/cwarwicker/moodle 2024-11-21 10:51:52 +08:00
Philipp Memmel 5de5498807 MDL-82931 mod_data: Harden parsing of content format 2024-11-20 21:21:06 +01:00
Amaia Anabitarte 4b66547881 MDL-75750 theme: Round login frame in small viewport 2024-11-20 16:14:50 +01:00
Conn Warwicker 5dc79c468d MDL-82584 mod_workshop: Refactor DB queries
Refactor workshop participant queries to improve performance.

This commit refactors how the authors/reviewers selectors are done in
mod_workshop. Previously this was trying to do all the work within SQL
so querying user roles and capabilities, with massive UNIONS for each
group on the course, which on big courses lead to SQL thousands of
lines long which broke the page, or took 5+ minutes to load.

This has been refactored to try and query only what is required
and then do capability checks within code instead of SQL.
2024-11-20 15:04:35 +00:00
Paul Holden 2770dd65f1 Merge branch 'MDL-83570-main-fix' of https://github.com/junpataleta/moodle into main 2024-11-20 12:28:49 +00:00
Jun Pataleta 7f122657cf 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:06:32 +08:00
Stephan Robotta 38c2b2ed20 MDL-83746 navigation: check host and path for active flag in custom menu 2024-11-20 10:42:22 +01:00
Huong Nguyen 3b2311a4c3 Merge branch 'MDL-83570-main' of https://github.com/meirzamoodle/moodle 2024-11-20 16:10:57 +07:00
Jun Pataleta d5190768cb Merge branch 'MDL-72077-ro-debug' of https://github.com/catalyst/moodle 2024-11-20 15:24:47 +08:00
Frederik Milling Pytlick 2e3660811e 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:14:16 +01:00
meirzamoodle 392ed9c627 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 09:59:14 +07:00
Huong Nguyen 68fd46d625 Merge branch 'MDL-83513-main' of https://github.com/roland04/moodle 2024-11-20 09:00:27 +07:00
Paul Holden 02186de904 MDL-83718 reportbuilder: use window count method to get table data.
Use the new "counted recordset" DML API from 42664ee49a to obtain
the raw table data for reports. For those databases with defined
support for count window functions, this should give a performance
benefit by combining the count and main query into one request.
2024-11-19 18:07:04 +00:00
Mikel Martín 57cbb227cf 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:23:14 +01:00
Mikel Martín 801f8cc246 MDL-81745 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
2024-11-19 14:05:12 +01:00
Jun Pataleta fcb39d60a9 Merge branch 'MDL-81521-main' of https://github.com/andrewnicols/moodle 2024-11-19 15:15:17 +08:00
Huong Nguyen c6353ef018 Merge branch 'MDL-81823-main' of https://github.com/roland04/moodle 2024-11-19 10:28:33 +07:00
Huong Nguyen 5c7588552c Merge branch 'MDL-77065' of https://github.com/paulholden/moodle 2024-11-19 10:18:50 +07:00
Huong Nguyen 155c4bd1e8 Merge branch 'MDL-82349-main-v03' of https://github.com/ferranrecio/moodle 2024-11-19 09:51:54 +07:00
Huong Nguyen 7a9bd90e2c Merge branch 'MDL-83610' of https://github.com/marinaglancy/moodle 2024-11-19 09:27:55 +07:00
Mikel Martín 53c89cb985 MDL-81745 mod_feedback: Refactor edit amd module 2024-11-18 16:56:03 +01:00
Mikel Martín 7aee0a3aaa MDL-83513 theme_boost: Remove mediumwidth layout size 2024-11-18 16:21:49 +01:00
Jun Pataleta d88d8d902d MDL-83747 mod_data: Add accessible name for delcheck checkboxes 2024-11-18 19:38:40 +08:00
Marina Glancy 947684505e MDL-83610 behat: allow to set date fields in groups 2024-11-18 10:36:38 +00:00
Simon Adams a0cf3d2da5 MDL-71378 core_question & mod_quiz: Refactor deprecated contexts 2024-11-18 10:22:59 +00:00
Simon Adams 5955868d3d MDL-71378 mod_quiz: Add pill badge to question slot template 2024-11-18 10:22:59 +00:00
Simon Adams 291fdacfd5 MDL-71378 core_question: Only show module banks in question filters 2024-11-18 10:22:58 +00:00
Simon Adams a6c4ddada5 MDL-71378 qbank_bulkmove: refactor for moving to shared question banks 2024-11-18 10:22:58 +00:00
Simon Adams 746efe94eb MDL-71378 mod_qbank: Implement add to quiz bank sharing UI 2024-11-18 10:22:58 +00:00
meirzamoodle a0f57612ee MDL-83290 dml: Remove "ORDER BY" from the $sort 2024-11-18 16:07:57 +07:00
Jun Pataleta 198f0d26d8 Merge branch 'MDL-83502-main' of https://github.com/ferranrecio/moodle 2024-11-18 14:36:58 +08:00
Jun Pataleta 239893647a Merge branch 'MDL-70556' of https://github.com/timhunt/moodle 2024-11-18 14:31:40 +08:00
Tim Hunt 68d369917e MDL-70556 core db: change course fullname to 1333 chars
This is mainly for the benefit of multilang users.

As well as changing the database schema, it is also necessary to change
where this is inforced in PHP code (forms, web services). This was missed
when shortname was changed from 100 to 255 chars some time ago, but I have
fixed that here.

Note, I have not changed the legacy mnet code, since as far as I am aware
that is deprecated.
2024-11-15 15:28:23 +00:00
Simon Adams 966b264cf3 MDL-71378 mod_qbank: Add question bank backup/restore and refactor tests 2024-11-15 15:18:47 +00:00
Simon Adams 1db7518a7d MDL-71378 mod_qbank: Add install script to transfer question categories 2024-11-15 15:18:47 +00:00
Simon Adams 776d1e40e4 MDL-71378 mod_qbank: Add question bank management 2024-11-15 15:18:47 +00:00
Simon Adams 78d73cc9b7 MDL-71378 mod_qbank: Add initial plugin structure 2024-11-15 15:18:46 +00:00
Paul Holden 1317aee9e1 MDL-77065 reportbuilder: audience filter for the report access list. 2024-11-15 15:00:11 +00:00
Daniel Ziegenberg f3288f3c79 MDL-71472 core: Removal of site_registration_form::add_select_with_email
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-11-15 12:54:30 +01:00
Paul Holden f3cd1df6e1 MDL-80430 reportbuilder: final removal of default table aliases.
They've been auto-generated for some time now, and we can make the
newer `get_default_tables` method abstract to ensure it's always
implemented.
2024-11-15 10:21:45 +00:00
sam marshall 32f7ba8cdf 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:32:57 +00:00
sam marshall ee6251345d MDL-83529 Analytics: Upgrade can break if core module is deleted 2024-11-15 09:32:05 +00:00
Mark Johnson 9118a619c6 MDL-75610 theme: Allow the activity title in Boost theme's secure layout 2024-11-15 08:31:29 +00:00
Mark Johnson dd25891bda 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:31:29 +00:00
Jun Pataleta ef63c4cefd Merge branch 'MDL-82877' of https://github.com/paulholden/moodle 2024-11-15 13:31:22 +08:00
Andrew Nicols 5a86d3178a MDL-81521 mod_quiz: Update coding style of impacted tests 2024-11-15 12:50:56 +08:00
Andrew Nicols 9adfbcde4e MDL-81521 mod_quiz: Fix attempt walkthrough tests 2024-11-15 12:50:56 +08:00
Andrew Nicols a6acb015a3 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:55 +08:00
Huong Nguyen 269a8a8a1b weekly release 5.0dev 2024-11-15 09:21:08 +07:00
Huong Nguyen 093a2034b6 NOBUG: Add upgrade notes 2024-11-15 09:21:07 +07:00
Jun Pataleta 1b7b12140b Merge branch 'MDL-81285' of https://github.com/paulholden/moodle 2024-11-14 12:18:26 +08:00
Huong Nguyen 6c14a8aa86 MDL-81509 tasks: Fix upgrade note 2024-11-14 11:08:57 +07:00
Huong Nguyen 94568bc5e0 Merge branch 'MDL-81509_final-deprecation-of-task_base-is_blocking-and-set_blocking' of https://github.com/ziegenberg/moodle 2024-11-14 11:07:45 +07:00
Jun Pataleta 90af0ec61e Merge branch 'MDL-80926-main' of https://github.com/lameze/moodle 2024-11-14 12:06:42 +08:00
Huong Nguyen cbc68e95ad MDL-78890 gradereport_grader: Fix upgrade note 2024-11-14 11:04:13 +07:00
Huong Nguyen 123e29201c Merge branch 'MDL-78890-main' of https://github.com/mihailges/moodle 2024-11-14 11:03:10 +07:00
Huong Nguyen 1c67e24a85 Merge branch 'MDL-83095_final-deprecation-of-functions-in-block_tag_youtube' of https://github.com/ziegenberg/moodle 2024-11-14 10:45:47 +07:00
Huong Nguyen 29d873b02c Merge branch 'MDL-79165-main' of https://github.com/daledavies/moodle 2024-11-14 10:22:53 +07:00
Dale Davies 47ba008504 MDL-79165 cachestore_file: Add igbinary serializer option
AMOS BEGIN
 CPY [serializer_igbinary,cachestore_redis],[serializer_igbinary,cachestore_file]
 CPY [serializer_php,cachestore_redis],[serializer_php,cachestore_file]
AMOS END
2024-11-14 10:22:37 +07:00
Jun Pataleta 55fbe740ab Merge branch 'MDL-74836_main' of https://github.com/marxjohnson/moodle 2024-11-14 10:46:00 +08:00
Huong Nguyen 43784b0d98 Merge branch 'MDL-46739_main' of https://github.com/marxjohnson/moodle 2024-11-14 09:26:43 +07:00
James C e85338bfee MDL-82762 course: Prevent "undefined" being added to course index 2024-11-14 10:15:26 +13:00
Paul Holden 01b145a5bb MDL-83710 report_questioninstances: fix missing type query params. 2024-11-13 21:14:46 +00:00
James C e43c5eaf6b MDL-72526 course: Make course format output stuff protected, not private 2024-11-14 10:03:44 +13:00
Wiktor Wandachowicz 6f0b5dec12 MDL-83048 mod_quiz: Fixed use of grade_out_of and plugin renderer 2024-11-13 16:58:10 +00:00
Huong Nguyen a97260296d Merge branch 'MDL-83185-main' of https://github.com/laurentdavid/moodle 2024-11-13 14:25:42 +07:00
Paul Holden a42e43ba55 MDL-82450 tool_task: format fail delay in scheduled tasks list. 2024-11-13 07:13:29 +00:00
Huong Nguyen 86908e8aa9 Merge branch 'MDL-80689' of https://github.com/timhunt/moodle 2024-11-13 14:00:25 +07:00
Andrew Nicols 6f3ef90044 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:23:27 +08:00
Andrew Nicols 0a4c1aab08 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:14:38 +08:00
Simey Lameze b3d718147d MDL-83643 behat: make manual completion scenario names unique 2024-11-13 07:16:20 +08:00
Simey Lameze 9a3abb9148 MDL-83551 behat: make duplicated scenario names unique 2024-11-13 06:48:44 +08:00
Philipp Imhof 988640a2c7 MDL-83697 core: allow safe, proprietary CSS values 2024-11-12 13:53:00 +01:00
ferran b0683da877 MDL-82349 core_courseformat: new get_generic_section_name method
The string "sectionname" was an unnecessary coupling between
formats and other plugins. Now the generic name for a section
should be obtained using $format->get_generic_section_name.
This allow formats to use an alternative string for nameing
sections. This is especially important for rare formats like
the frontpage one that does not have a plugin lang file.
2024-11-12 12:22:25 +01:00
ferranrecio 0d04567882 MDL-82349 course: fix guest access to course 2024-11-12 12:21:55 +01:00
ferranrecio cccacbdc04 MDL-82349 course: add frontpage behats 2024-11-12 12:21:55 +01:00
ferranrecio a5ba68c97f MDL-82349 block_site_main_menu: fix behats 2024-11-12 12:21:55 +01:00
ferranrecio 2f13ffcfb1 MDL-82349 courseformat: add reactivity to main menu block 2024-11-12 12:02:16 +01:00
ferranrecio c5133ddc47 MDL-82349 courseformat: add reactivity to frontpage topic 2024-11-12 12:02:16 +01:00
ferranrecio c6a9177252 MDL-82349 core_courseformat: fix home section zero name 2024-11-12 12:02:16 +01:00
Paul Holden 22667ab397 MDL-82589 task: link to task logs report from failure notification. 2024-11-11 16:47:35 +00:00
Paul Holden 949dd966d0 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:07:32 +00:00
Nexterday cb13bba9b6 MDL-74836 theme: Display activity header on secure layouts 2024-11-11 15:14:03 +00:00
Laurent David fbe420fc26 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-11 13:17:27 +01:00
ferran 1f7faa941b MDL-83185 core_courseformat: Allow global state cache invalidation 2024-11-11 13:17:26 +01:00
Tim Hunt 8f9b57d5d3 MDL-46739 user preferences: change value column to TEXT.
Other similar columns config.value and config_plugins.value are TEXT, so
it is surprising that this column is different, and that has lead to
bugs in the past, so we should make it consistent.
2024-11-11 11:33:52 +00:00
Philipp Memmel 5cceeccca5 MDL-82932 mod_data: Fix export with userdata of deleted users 2024-11-11 12:33:35 +01:00
Jun Pataleta 5b2b63c349 Merge branch 'MDL-79679_upgrade-constant-time' of https://github.com/ziegenberg/moodle 2024-11-11 11:47:47 +08:00
Huong Nguyen 07c33f409f Merge branch 'MDL-81230_remove-deprecated-adhoc-tasks-in-BBB' of https://github.com/ziegenberg/moodle 2024-11-11 09:18:30 +07:00
Rossco Hellmans bdf5c2920f 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-11 08:51:39 +10:00
Tim Hunt 09aacafb9e 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:12:57 +00:00
Andrew Nicols f0c423a467 MDL-83506 editor_tiny: Disable default iframe sandboxing 2024-11-08 22:35:09 +08:00
sam marshall 3a5a441373 MDL-83670 availability_group: With hidden groups, can throw warning 2024-11-08 11:57:12 +00:00
Daniel Ziegenberg 064e809e88 MDL-83095 block_tag_youtube: Final remove of deprecated methods
Finale removal of block_tag_youtube::fetch_request() and
block_tag_youtube::render_video_list(). The functions where never meant
to be called from external, so removing them entirely.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-11-08 11:23:16 +01:00
Paul Holden fae40c06e5 MDL-81285 factor_webauthn: inform user on failed key registration. 2024-11-08 10:13:06 +00:00
Daniel Ziegenberg c14810e7d1 MDL-81509 tasks: Final deprecation of blocking tasks
Final deprecation of task_base::is_blocking and task_base::set_blocking.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-11-08 11:05:58 +01:00
Huong Nguyen 2b337b49f9 weekly release 5.0dev 2024-11-08 13:56:12 +07:00
Huong Nguyen 9e8268a28c NOBUG: Add upgrade notes 2024-11-08 13:56:10 +07:00
Huong Nguyen 5251979b01 MDL-82335 qbank_columnsortorder: Fix upgrade code coding style 2024-11-08 09:02:32 +07:00
sam marshall a1e6cc050a MDL-83584 report_log: Group filter can get list of all users in system 2024-11-07 09:38:33 +00:00
Huong Nguyen c89b3279bb MDL-82335 qbank_columnsortorder: Cleanup upgrade code 2024-11-07 13:35:01 +07:00
Huong Nguyen a25399959c Merge branch 'MDL-83619-main' of https://github.com/lameze/moodle 2024-11-07 11:05:15 +07:00
Huong Nguyen 121535d160 Merge branch 'MDL-83611-main' of https://github.com/lameze/moodle 2024-11-07 11:02:04 +07:00
Jun Pataleta 05c7d005c1 Merge branch 'MDL-72293' of https://github.com/paulholden/moodle 2024-11-07 11:59:41 +08:00
Huong Nguyen 9cda7c9706 Merge branch 'MDL-80953-main' of https://github.com/srobotta/moodle 2024-11-07 10:39:09 +07:00
Jun Pataleta 5d3ede37b4 Merge branch 'MDL-81551' of https://github.com/paulholden/moodle 2024-11-07 11:29:43 +08:00
Jun Pataleta fb0abbdfff Merge branch 'MDL-66873-main' of https://github.com/meirzamoodle/moodle 2024-11-07 11:00:11 +08:00
Huong Nguyen 5915c7d85d Merge branch 'MDL-82335' of https://github.com/AnupamaSarjoshi/moodle 2024-11-07 09:31:21 +07:00
Huong Nguyen 3fedbab7d1 Merge branch 'MDL-83316-main' of https://github.com/lameze/moodle 2024-11-07 09:26:21 +07:00
Simey Lameze 36f89fd2a9 MDL-83316 behat: remove duplicated Then from new test 2024-11-07 07:41:23 +08:00
Jun Pataleta bb39ec032b Merge branch 'mdl-83497_main' of https://github.com/james-cnz/moodle 2024-11-06 22:38:36 +08:00
sam marshall 152a37cb59 MDL-83316 Behat: New step allows system clock change 2024-11-06 13:59:09 +00:00
Anupama Sarjoshi 795fa07c3c 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 12:58:26 +00:00
Jun Pataleta 2084b4f02d Merge branch 'MDL-76563-main' of https://github.com/roland04/moodle 2024-11-06 17:29:26 +08:00
Jun Pataleta f6b21e289b Merge branch 'MDL-83394-main' of https://github.com/davewoloszyn/moodle 2024-11-06 14:01:04 +08:00
Simey Lameze d4c91d4c9e MDL-80926 behat: fix random and improve h5p completion test 2024-11-06 13:35:55 +08:00
Jun Pataleta b7b65fe478 Merge branch 'MDL-83602-main' of https://github.com/ilyatregubov/moodle 2024-11-06 13:30:40 +08:00
David Woloszyn c4ed556f0a MDL-83394 tiny_aiplacement: Use revised prompt for alt text 2024-11-06 14:23:34 +11:00
Jun Pataleta 3f5ecfead7 Merge branch 'MDL-77270' of https://github.com/dravek/moodle 2024-11-06 11:14:37 +08:00
Mikel Martín 7ee2b0d355 MDL-81823 theme_boost: Refactor .rounded-[sm|lg] usages for BS5
- Add .rounded-1 and .rounded-3 to the Boostratp 5 bridge SCSS file
- Replace .rounded-[sm|lg] occurrences with .rounded-[1|3]
2024-11-05 14:42:14 +01:00
Stephan Robotta 333d2e48ee MDL-80953 tiny: customize allowed HTML tags and attributes 2024-11-05 12:26:19 +01:00
Simey Lameze 0a3695963e MDL-83611 behat: increase window size to avoid randoms 2024-11-05 13:22:24 +08:00
Jun Pataleta 89d9c78fca Merge branch 'MDL-78453-main' of https://github.com/meirzamoodle/moodle 2024-11-05 10:57:39 +08:00
Huong Nguyen 6e0bc459e2 Merge branch 'MDL-82088' of https://github.com/paulholden/moodle 2024-11-05 08:56:51 +07:00
david adamson b86e98eaa6 MDL-72077 dml: Readonly connection debugging 2024-11-05 08:43:23 +11:00
Paul Holden 791eefd450 MDL-82088 reportbuilder: improve filtering by report schedule data. 2024-11-04 16:22:05 +00:00
meirzamoodle 536d9ff4ee MDL-78453 tiny_aiplacement: Increase the image alt text max length 2024-11-04 22:41:40 +07:00
meirzamoodle 5e259cc587 MDL-78453 tiny_media: Increase the image alt text max length 2024-11-04 22:41:40 +07:00
Paul Holden e9f56511bc MDL-82877 customfield: pass correct instanceid for restore structure. 2024-11-04 15:32:04 +00:00
Paul Holden c60c6a5311 MDL-83226 customfield: set backup/restore configuration defaults. 2024-11-04 15:29:04 +00:00
Jun Pataleta bf18f379f7 Merge branch 'MDL-83154-main' of https://github.com/davewoloszyn/moodle 2024-11-04 16:48:39 +08:00
Huong Nguyen b4c0f9adee Merge branch 'MDL-80484_main' of https://github.com/marxjohnson/moodle 2024-11-04 15:41:48 +07:00
Huong Nguyen fd7eddefb1 Merge branch 'MDL-82824-main' of https://github.com/andrewnicols/moodle 2024-11-04 15:38:19 +07:00
Simey Lameze 4b64c0c1c2 MDL-83619 behat: enable bbb module early in the test 2024-11-04 13:17:36 +08:00
Andrew Nicols b8c3c13467 MDL-82824 core: Order the PSR4 component list 2024-11-04 11:58:47 +08:00
Andrew Nicols a8c6201dbf MDL-82824 core: Correct thirdparty entry for slim 2024-11-04 11:52:10 +08:00
Andrew Nicols 670121daa3 MDL-82824 core: Add missing composer/PSR for various libs
Add missing aws-sdk composer.json
Add missing composer/PSR4 for SimplePie
Add missing composer/PSR4 for others
Add missing composer/PSR4 for markdown
Add missing composer/PSR4 for PHP-CSS-Parser
Add missing composer/PSR4 for Mustache
Add missing composer/PSR4 for RTLCSS
Add missing composer/PSR4 for SCSSPHP
Add missing composer/PSR4 for OpenSpout
Add missing composer/PSR4 for LTI
Add missing composer/PSR4 for GeoPattern
Add missing composer/PSR4 for CFPropertylist
Add missing composer/PSR4 for ZipStream
Add missing composer/PSR4 for PSR-20
Add missing composer/PSR4 for phpxmlrpc
Add missing composer/PSR4 for WebAuthn
2024-11-04 11:52:07 +08:00
Andrew Nicols 09e4f29fbd MDL-82824 core: Add unit test to ensure completeness of Autoloader 2024-11-04 11:49:47 +08:00
Andrew Nicols 16bacf8134 MDL-82824 core: Add/correct missing autoload functions 2024-11-04 11:49:47 +08:00
Andrew Nicols 7fe199c58b MDL-82824 core: Standardise PSR-4 paths to remove trailing / 2024-11-04 11:49:47 +08:00
Andrew Nicols e918f86624 MDL-82824 core: Standardise MaxMind classes 2024-11-04 11:49:47 +08:00
Huong Nguyen d015c4c213 weekly release 5.0dev 2024-11-01 14:28:56 +07:00
Huong Nguyen 6a1feb87bd NOBUG: Add upgrade notes 2024-11-01 14:28:56 +07:00
Huong Nguyen 930f2809ef Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-11-01 14:28:40 +07:00
David Woloszyn e4b39e764d MDL-83154 hub: Add model to AI usage data 2024-11-01 10:39:31 +11:00
David Woloszyn dd05af9259 MDL-83154 AI: Update privacy provider to include model 2024-11-01 10:39:31 +11:00
David Woloszyn f26c38bd20 MDL-83154 AI: Updated tests to include model response 2024-11-01 10:39:31 +11:00
David Woloszyn b7d9100445 MDL-83154 AI: Added model to the response
Not all responses will return the model used. When possible, we can
fallback to Moodle's stored config value.
2024-11-01 10:39:31 +11:00
David Woloszyn 2baf81a243 MDL-83154 AI: Add model field to ai_action_register table 2024-11-01 10:38:39 +11:00
waleedhassan 6ee711fb6c MDL-80484 mod_forum : Add a check for an empty email address
Added a check for empty email address so that if the adhoc task
for sending email notifcation to users for forum update fails
because of empty email address an exception is not thrown as
the exception was causing the the task for user with empty email
address to keep requeuing again and again after failing.

Wrote two test cases for testing if the fix has now prevented
the task for empty email address to be requeued after failing
and to test that if its still requeuing for other cases when
the adhoc task fails for some other reason in this cause we are
testing for bounce threshold.
2024-10-31 13:41:41 +00:00
Tim Hunt 7decfd7bce 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:36:04 +00:00
Tim Hunt 899f9908db MDL-80689 behat: add a transformation to get dirroot 2024-10-31 11:36:03 +00:00
Tim Hunt fc96ef2937 MDL-80689 form behat: move fixture file to the expected place 2024-10-31 11:36:02 +00:00
Ilya Tregubov 50e30f8859 MDL-83602 customfield_number: Add help text for fieldtype. 2024-10-31 16:16:17 +08:00
Huong Nguyen 8b4e5e6b06 Merge branch 'MDL-82911-main-fix' of https://github.com/lameze/moodle 2024-10-31 14:14:07 +07:00
Simey Lameze 0bd7e0eebf MDL-82911 behat: change future times example to minutes 2024-10-31 14:10:46 +08:00
Huong Nguyen 84e2ca4f02 Merge branch 'MDL-82911-main' of https://github.com/andelacruz/moodle 2024-10-31 11:21:44 +07:00
Huong Nguyen 2a8a749753 Merge branch 'MDL-83414-main' of https://github.com/lameze/moodle 2024-10-31 11:21:43 +07:00
Huong Nguyen 5c9cf0955f Merge branch 'MDL-63219v3-main' of https://github.com/michael-milette/moodle 2024-10-31 11:21:43 +07:00
Huong Nguyen d3018363a9 Merge branch 'MDL-83514' of https://github.com/marinaglancy/moodle 2024-10-31 11:21:43 +07:00
Jun Pataleta 50d8a547c7 Merge branch 'MDL-76564' of https://github.com/paulholden/moodle 2024-10-31 11:21:43 +07:00
Huong Nguyen 39212e30cb Merge branch 'MDL-82989-main' of https://github.com/meirzamoodle/moodle 2024-10-31 11:21:42 +07:00
Jun Pataleta 7e63510b03 Merge branch 'MDL-82809' of https://github.com/paulholden/moodle 2024-10-31 11:21:42 +07:00
Jun Pataleta 40ea7dbde2 Merge branch 'MDL-61232-main' of https://github.com/meirzamoodle/moodle 2024-10-31 11:21:42 +07:00
Jun Pataleta 4af11fc37a Merge branch 'MDL-83202' of https://github.com/paulholden/moodle 2024-10-31 11:21:42 +07:00
Jun Pataleta 2fdd7e7931 Merge branch 'MDL-81744-main' of https://github.com/roland04/moodle 2024-10-31 11:21:41 +07:00
Jun Pataleta 4319b82bfb Merge branch 'MDL-83477-main' of https://github.com/HuongNV13/moodle 2024-10-31 11:21:41 +07:00
Jun Pataleta 2672bbadea Merge branch 'MDL-78118' of https://github.com/paulholden/moodle 2024-10-31 11:21:41 +07:00
Huong Nguyen c0e132dce9 Merge branch 'MDL-82988-main' of https://github.com/meirzamoodle/moodle 2024-10-31 11:21:41 +07:00
Huong Nguyen 5413892317 Merge branch 'MDL-82905-main' of https://github.com/laurentdavid/moodle 2024-10-31 11:21:40 +07:00
Huong Nguyen 88c39c1766 Merge branch 'MDL-82904-main' of https://github.com/laurentdavid/moodle 2024-10-31 11:21:40 +07:00
Huong Nguyen 49e299df29 Merge branch 'MDL-82775-main' of https://github.com/dpalou/moodle 2024-10-31 11:21:39 +07:00
meirzamoodle c299f69e9f MDL-61232 core: Remove process_email.php and anything related to it 2024-10-30 04:51:27 +07:00
Marina Glancy e681b5219d MDL-83514 customfield_number: add missing event observers 2024-10-29 19:43:39 +00:00
Angelia Dela Cruz 24876d591b MDL-82911 mod_bigbluebuttonbn: Behat for BBB open and close date time 2024-10-29 14:38:14 +08:00
Angelia Dela Cruz 1f4d16eb34 MDL-83414 core_grades: Behat to test custom scale display 2024-10-29 14:32:17 +08:00
AMOS bot f7bbf45904 Automatically generated installer lang files 2024-10-29 00:07:57 +00:00
meirzamoodle 0afc433b81 MDL-82989 communication_matrix: Apply helper to mock http_client 2024-10-27 15:56:22 +07:00
meirzamoodle 758f79a5af MDL-82988 general: Apply helper to get path to fixture 2024-10-27 13:46:48 +07:00
David Carrillo 73a507507f MDL-77270 reportbuilder: Add ability to duplicate custom reports 2024-10-25 07:56:04 +02:00
Huong Nguyen ec7711b9a6 weekly release 5.0dev 2024-10-25 08:35:34 +07:00
Huong Nguyen 144a9fa027 NOBUG: Add upgrade notes 2024-10-25 08:35:34 +07:00
Huong Nguyen 1ca3f89005 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-10-25 08:35:18 +07:00
Mikel Martín b379315c91 MDL-81744 mod_feedback: Improve 'Templates' page UI
- Add new actions to the table in a single action menu.
- Refactor 'usetemplate' module to allow to be called multiple
  times in the same page.
- Remove 'mode' parameter and logic from template management.
- Add a heading to template preview page.
- Add 'Actions' menu to the template preview page.
- Fix related behat scenarios.
2024-10-24 12:22:33 +02:00
Mikel Martín dbc4abab15 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 12:10:02 +02:00
Jun Pataleta 4ec4bd5306 Merge branch 'MDL-82548-main' of https://github.com/roland04/moodle 2024-10-24 12:18:08 +08:00
Jun Pataleta 9f5d7823e5 Merge branch 'MDL-83423-main' of https://github.com/snake/moodle 2024-10-24 12:13:19 +08:00
Huong Nguyen 208328d6aa Merge branch 'MDL-83432' of https://github.com/paulholden/moodle 2024-10-24 10:12:39 +07:00
Huong Nguyen 9b01607b78 Merge branch 'MDL-83504' of https://github.com/marinaglancy/moodle 2024-10-24 09:44:35 +07:00
AMOS bot efc6f59a45 Automatically generated installer lang files 2024-10-24 00:08:20 +00:00
Jun Pataleta e0340141b0 Merge branch 'MDL-81308-main' of https://github.com/junpataleta/moodle 2024-10-23 18:15:21 +08:00
Jun Pataleta 599f2382ee Merge branch 'MDL-83430' of https://github.com/marinaglancy/moodle 2024-10-23 16:09:35 +08:00
Jun Pataleta c67df9aad4 Merge branch 'MDL-83463' of https://github.com/paulholden/moodle 2024-10-23 14:35:34 +08:00
Laurent David e1ee1bfdb5 MDL-82905 core_badges: Criteria as list only if multiple items 2024-10-23 08:17:44 +02:00
Laurent David 85a3097f2b MDL-82904 core_badges: Display empty column for unset criteria
* In the report builder badges with unset criteria should have a empty
value for the criteria column
2024-10-23 08:17:09 +02:00
Andrew Nicols c745b3fb80 MDL-81308 core: Use a helper for consecutive invocation counts 2024-10-23 14:14:33 +08:00
Andrew Nicols 8dcad87631 MDL-81308 core: Update tests to not use withConsecutive 2024-10-23 14:14:32 +08:00
Dani Palou 965932fdcb MDL-82775 mod_h5pactivity: Return total attempts in get_user_attempts 2024-10-22 20:28:56 +02:00
Daniel Ziegenberg d827dd2fdd MDL-79679 libaries: Upgrade Constant-Time Encoding to 3.0.0
The library raises the minimum required PHP version to 8.0 and comes with
an advertised PHP 8.4 compatibility.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-10-22 14:04:59 +02:00
Daniel Ziegenberg 33f3431cab MDL-81230 bigbluebutton: Remove deprecated adhoc tasks
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-10-22 14:02:42 +02:00
Jun Pataleta 660b4a9566 Merge branch 'MDL-83087-main' of https://github.com/roland04/moodle 2024-10-22 17:27:05 +08:00
Jun Pataleta 6ae735c2b4 Merge branch 'MDL-83376-main' of https://github.com/meirzamoodle/moodle 2024-10-22 17:18:30 +08:00
Jun Pataleta a464ecd440 Merge branch 'MDL-83472' of https://github.com/paulholden/moodle 2024-10-22 15:55:51 +08:00
Mikel Martín 93285b103c MDL-83477 output: Deprecate t/collapsedcaret icon 2024-10-22 09:28:27 +07:00
Marina Glancy 18067c8971 MDL-83504 user: reset preference cache in unittests 2024-10-21 17:58:50 +01:00
ferran a4cf29974f MDL-83502 course: fix chrome file dropping in course page 2024-10-21 11:32:26 +02:00
rajandangi ce040cb114 MDL-83501 core: URL encode paths for Nginx X-Accel-Redirect 2024-10-21 18:59:21 +10:30
meirzamoodle ac325600b3 MDL-83376 AI: Add is_request_allowed() to the base provider 2024-10-21 13:31:49 +07:00
meirzamoodle b14ab12b1d MDL-66873 backup: Remove all MODE_HUB related code 2024-10-21 13:13:16 +07:00
Kevin Percy 1e66964ad8 MDL-77668 core_grades: Final removal of grade_edit_tree_column_select 2024-10-21 14:08:09 +08:00
James C 7d0474f270 MDL-83497 course: Preserve move section dialogue info HTML 2024-10-19 16:22:56 +13:00
Paul Holden 61acf7d7be MDL-83432 enrol: fix arguments to enrolment test generator. 2024-10-18 15:12:34 +01:00
Paul Holden 807148fb68 MDL-83432 enrol_manual: reference correct role in welcome message. 2024-10-18 15:12:34 +01:00
Shamim Rezaie ecfcf00d92 weekly release 5.0dev 2024-10-18 23:28:31 +11:00
Shamim Rezaie 977131f5c7 Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-10-18 23:28:08 +11:00
Jun Pataleta 989c111447 Merge branch 'MDL-83457-main' of https://github.com/roland04/moodle 2024-10-17 12:23:17 +08:00
Jun Pataleta f5c7d78e30 Merge branch 'MDL-83443' of https://github.com/paulholden/moodle 2024-10-17 12:17:30 +08:00
Jun Pataleta b38fc30f72 Merge branch 'MDL-83442-main' of https://github.com/davewoloszyn/moodle 2024-10-17 12:13:27 +08:00
Jun Pataleta 659f7b1908 Merge branch 'MDL-83367' of https://github.com/dravek/moodle 2024-10-17 12:08:46 +08:00
Jun Pataleta 196c26522d Merge branch 'MDL-81450-main' of https://github.com/PhMemmel/moodle 2024-10-17 12:05:03 +08:00
Huong Nguyen b0c3652af6 Merge branch 'MDL-82580' of https://github.com/paulholden/moodle 2024-10-17 10:49:01 +07:00
Jun Pataleta 7ebe8cc971 Merge branch 'MDL-83143-main' of https://github.com/safatshahin/moodle 2024-10-17 11:47:08 +08:00
Jun Pataleta db8da82467 Merge branch 'MDL-82838-main' of https://github.com/justusdieckmann/moodle 2024-10-17 10:54:34 +08:00
Huong Nguyen 70a1139c4e Merge branch 'MDL-75724-master_toolbrickfield_tableheadercheck' of https://github.com/brickfield/moodle 2024-10-17 09:44:01 +07:00
Mikel Martín eed6ac78d2 MDL-83390 message: Fix category collapse icon
- Replace incorrect 't/collapsedcaret' with 't/collapsed' icon
- Add RTL icon for accessibility
2024-10-17 08:46:09 +07:00
Jun Pataleta eceee22097 Merge branch 'MDL-83002' of https://github.com/marinaglancy/moodle 2024-10-17 08:45:23 +07:00
Paul Holden 37266a9f19 MDL-83472 phpunit: add void return type to test methods.
See also 01148a0816 from MDL-81522.
2024-10-16 13:01:07 +01:00
Paul Holden 01540bb7ce MDL-83472 phpunit: call parent setUp unit test method.
See also 674497a12c from MDL-81523.
2024-10-16 13:01:00 +01:00
Paul Holden 26bb378e88 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:36 +01:00
Philipp Memmel 152231239f MDL-81450 mod_forum: Reduce size of file icon in HTML mails
@Co-authored-by: Mateusz Walczak
2024-10-16 11:31:59 +02:00
Paul Holden b1e9990de1 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:10 +01:00
David Woloszyn 3acfcd08d5 MDL-83442 aiprovider_azureai: Correct help string URL 2024-10-16 17:52:21 +11:00
Mathew May 15e1be9b72 MDL-81328 mod_book: Final deprecation of get_nav_classes 2024-10-16 14:28:11 +08:00
Huong Nguyen 1550c6d8e8 Merge branch 'MDL-82793-main' of https://github.com/phmemmel/moodle 2024-10-16 09:26:25 +07:00
Paul Holden 9e5f911411 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-15 21:40:07 +01:00
Philipp Memmel 43073fcd27 MDL-82793 core: Make modal execute JS from template
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-10-15 20:34:01 +02:00
Paul Holden edc012f7bb MDL-83463 backup: ensure defaults for course file inclusion are read. 2024-10-15 12:26:00 +01:00
Jun Pataleta 5cb05b44db Merge branch 'MDL-83070' of https://github.com/timhunt/moodle 2024-10-15 19:09:08 +08:00
Huong Nguyen 476ab17b19 Merge branch 'MDL-82429-brickfield-calculated-fontsize' of https://github.com/x-iy/moodle 2024-10-15 16:22:53 +07:00
Mikel Martín 20c6be9350 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:50:13 +02:00
Jun Pataleta e1225ec338 Merge branch 'MDL-83253-main' of https://github.com/andrewnicols/moodle 2024-10-15 11:44:42 +08:00
Jun Pataleta 7b6642844c Merge branch 'MDL-83257-main' of https://github.com/andrewnicols/moodle 2024-10-15 10:32:46 +08:00
Jake Dallimore e8ec0979dc 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:13:34 +08:00
AMOS bot d081a77310 Automatically generated installer lang files 2024-10-15 00:09:37 +00:00
Michael Pound aaaef4f1dc MDL-75724 tool_brickfield: Ensuring correct table headers pass checks. 2024-10-14 16:53:18 +00:00
Marina Glancy 6d757af2c9 MDL-83430 customfield_number: call display method from provider earlier 2024-10-14 10:55:21 +01:00
Marina Glancy 61d9a4ccac MDL-83430 customfield_number: fix storing activities number when 0 2024-10-14 10:55:15 +01:00
Conn Warwicker aa8c304af2 MDL-83391 core: Remove hard-coded "support" for webservers.
This allows for more flexibility with web server software.
2024-10-14 09:22:52 +01:00
Leon Stringer c8995f9e13 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:42:55 +01:00
Huong Nguyen 7014d61d93 Merge branch 'MDL-83381-main' of https://github.com/davewoloszyn/moodle 2024-10-14 11:08:25 +07:00
Andrew Nicols d2cff755d9 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-14 08:46:15 +08:00
AMOS bot b19fc1d9f7 Automatically generated installer lang files 2024-10-13 00:07:57 +00:00
Paul Holden 8c01166725 MDL-83443 enrol: use defined role name in welcome message. 2024-10-11 14:29:53 +01:00
Paul Holden 0d616b13e1 MDL-81551 factor_webauthn: inform user on successful key registration. 2024-10-11 12:40:47 +01:00
Jake Dallimore fc29adddf9 weekly on-sync release 5.0dev 2024-10-11 10:55:52 +08:00
Jake Dallimore 86ddb770fc Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install 2024-10-11 10:55:45 +08:00
Safat fcf941c74e MDL-83143 core_communication: Behat coverage for default to course name 2024-10-11 10:56:32 +11:00
Safat e0cce75501 MDL-83143 core_course: Add course name as default for empty room name 2024-10-11 10:56:32 +11:00
Safat a6d857d9e5 MDL-83143: core_communication: Fix variable name typos 2024-10-11 10:56:32 +11:00
Mihail Geshoski c5b1dd50ae MDL-78890 gradereport_grader: Final deprecation of get_right_avg_row() 2024-10-10 22:36:22 +08:00
Paul Holden 6437058f9d MDL-72293 reportbuilder: re-factor to use native sortable events. 2024-10-10 15:16:36 +01:00
Paul Holden ef490ad60d MDL-72293 javascript: emit native events from sortable list module.
Removes jQuery dependency from calling code that wants to listen for
these events. Maintains backwards compatibility with existing code
that does want to listen to jQuery-style events.
2024-10-10 15:16:36 +01:00
Jun Pataleta 1d208afaf2 Merge branch 'MDL-82813' of https://github.com/paulholden/moodle 2024-10-10 12:04:07 +08:00
Huong Nguyen 79c9f30a7f Merge branch 'MDL-82570-master' of https://github.com/vietlx426/moodle-1 2024-10-10 10:51:29 +07:00
Huong Nguyen cd35384df4 Merge branch 'MDL-83255-main' of https://github.com/TobiGa/moodle 2024-10-10 10:11:15 +07:00
Jun Pataleta e28447c09c Merge branch 'MDL-82912-main' of https://github.com/andelacruz/moodle 2024-10-10 10:35:00 +08:00
Jun Pataleta 57880e1b40 Merge branch 'MDL-82812_master_toolbrickfieldfaicons' of https://github.com/brickfield/moodle 2024-10-10 10:13:37 +08:00
Huong Nguyen c8812697ca Merge branch 'MDL-83283-main' of https://github.com/roland04/moodle 2024-10-10 09:07:07 +07:00
David Woloszyn eedb68462c MDL-83381 AI: Fix OpenAI provider config 2024-10-10 11:51:32 +11:00
Angelia Dela Cruz bf031177f0 MDL-82912 mod_workshop: Behat to view assessment after workshop close 2024-10-09 16:13:08 +08:00
Huong Nguyen 374ce36695 Merge branch 'MDL-83331' of https://github.com/timhunt/moodle 2024-10-09 14:46:42 +07:00
Andrew Nicols d9863dbc94 MDL-83336 core: Update for deprecation of xml_set_object
From PHP 8.4, `xml_set_object()`, and passing a string helper to
`xml_set_.*_handler()` has been deprecated.

This commit updates all uses of these in core code.

Please note the following libraries have not been modified and will be
handled via library upgrades separately:
- simplepie
- phpxmlrpc
- tcpdf
2024-10-09 15:02:37 +08:00
AMOS bot 8a043ec6bd Automatically generated installer lang files 2024-10-09 00:09:27 +00:00
Max Larkin e5a5007977 MDL-82812 tool_brickfield: Ignore fa icons 2024-10-08 13:02:46 +01:00
Huong Nguyen c58fcff09d Merge branch 'MDL-70180-main' of https://github.com/roland04/moodle 2024-10-08 09:34:10 +07:00
AMOS bot 349405718f Automatically generated installer lang files 2024-10-08 00:07:51 +00:00
david adamson 29bdc66fc2 MDL-82429 tool_brickfield: Process calculated fontsizes 2024-10-08 09:14:21 +11:00
Paul Holden ef77114960 MDL-78118 reportbuilder: final removal of deprecated report elements. 2024-10-07 18:49:21 +01:00
Paul Holden d73a827a90 MDL-78118 reportbuilder: entity method for deprecating old tables.
When an entity no longer uses a table (due to re-factoring, etc), we
should avoid breaking third-party reports by deprecating the table
name from the entity instead of straight removal. In doing so, we
can then emit debugging to inform developers.
2024-10-07 18:44:58 +01:00
Tim Hunt 8853e262e1 MDL-83331 behat: enable navigation direct to mod/.../index.php 2024-10-07 12:00:17 +01:00
Tim Hunt 9f88c344cd MDL-83070 question restore: recode links in hints 2024-10-07 08:53:28 +01:00
David Carrillo 6fe29f7bc1 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:15:19 +02:00
Huong Nguyen 4ee523f4a8 Merge branch 'MDL-83374-main' of https://github.com/junpataleta/moodle 2024-10-07 09:30:21 +07:00
Huong Nguyen 9a66f8bbc5 Merge branch 'MDL-83373-main' of https://github.com/junpataleta/moodle 2024-10-07 09:23:04 +07:00
Jun Pataleta c9356e039f MDL-83374 upgrade: add the 4.5.0 separation line to all upgrade scripts 2024-10-05 21:16:13 +08:00
Jun Pataleta 3048ab2257 MDL-83373 backup: Bump release to 5.0 2024-10-05 21:05:05 +08:00
Jun Pataleta 67f5ee3cec weekly back-to-dev release 5.0dev 2024-10-05 16:11:20 +08: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
Michael Milette b2d59a0372 MDL-63219 Output: Enable filters in custom menus. 2024-09-30 18:12:20 -04:00
Paul Holden 8e2ad49afe MDL-76564 behat: final removal of deprecated pre-404 step definitions. 2024-09-30 19:42:54 +01:00
Tobias Garske 0b38d6558c MDL-83255 core_course: Fix activitychooser recommended tab navigation 2024-09-30 10:00:47 +00:00
Paul Holden f466b40ca6 MDL-83202 reportbuilder: report list filtering by time/user modified. 2024-09-27 15:53:09 +01:00
Mikel Martín 1490f72122 MDL-83087 course: Convert category 'More' actions to kebab menu 2024-09-27 09:12:37 +02:00
Mikel Martín 1a66b08323 MDL-83283 mod_subsection: Fix subsection completion button margin 2024-09-27 08:50:24 +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
vietlx426 962c9d179b MDL-82570 themes: Help boxes not accessible if selected consecutively 2024-09-26 10:29:03 +07:00
Bas Brands 98dedc46ee MDL-70180 theme_boost: Allow form autoselect modal overflow
Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-09-23 15:06:22 +02:00
Paul Holden aecb3000f6 MDL-82580 report_log: preserve filter by individual user. 2024-09-20 20:54:09 +01:00
Paul Holden 14be75dc41 MDL-82813 group: correctly format group description property. 2024-09-19 13:44:52 +01:00
Justus Dieckmann 1d848a78cf MDL-82838 tool_mfa: Prevent accidental resubmission of token 2024-08-20 16:46:01 +02:00
9659 changed files with 307901 additions and 395415 deletions
+3 -1
View File
@@ -1,3 +1,5 @@
**/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
@@ -45,7 +45,7 @@ $CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
// Debug options - possible to be controlled by flag in future.
$CFG->debug = (E_ALL | E_STRICT); // DEBUG_DEVELOPER.
$CFG->debug = (E_ALL); // DEBUG_DEVELOPER.
$CFG->debugdisplay = 1;
$CFG->debugstringids = 1; // Add strings=1 to url to get string ids.
$CFG->perfdebug = 15;
+2 -2
View File
@@ -85,7 +85,7 @@ jobs:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 13
postgresql version: 14
postgresql db: test
postgresql user: test
postgresql password: test
@@ -93,7 +93,7 @@ jobs:
- name: Setting up PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
php-version: 8.4
ini-values: max_input_vars=5000
coverage: none
+5 -5
View File
@@ -15,7 +15,7 @@ on:
default: ''
env:
php: 8.3
php: 8.4
jobs:
Grunt:
@@ -62,12 +62,12 @@ jobs:
include:
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-22.04
php: 8.1
php: 8.2
extensions:
db: mysqli
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-22.04
php: 8.3
php: 8.4
db: pgsql
steps:
@@ -76,7 +76,7 @@ jobs:
uses: moodlehq/mysql-action@v1
with:
collation server: utf8mb4_bin
mysql version: 8.0
mysql version: 8.4
mysql database: test
mysql user: test
mysql password: test
@@ -88,7 +88,7 @@ jobs:
if: ${{ matrix.db == 'pgsql' }}
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 13
postgresql version: 14
postgresql db: test
postgresql user: test
postgresql password: test
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.1, 8.3]
php: [8.2, 8.4]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
+6 -6
View File
@@ -8,7 +8,7 @@ on:
required: false
default: ''
env:
php: 8.3
php: 8.4
jobs:
Grunt:
@@ -51,7 +51,7 @@ jobs:
matrix:
include:
- os: windows-latest
php: 8.3
php: 8.4
# Ideally we should use mysql/mariadb, but they are 4x slower without tweaks and configuration
# so let's run only postgres (1.5h vs 6h) only, If some day we want to improve the mysql runs,
# this is the place to enable them.
@@ -59,16 +59,16 @@ jobs:
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
- os: windows-latest
php: 8.1
php: 8.2
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium, zip
steps:
- name: Setting up DB mysql
if: ${{ matrix.db == 'mysqli' }}
uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: 8.0
mysql-version: 8.4
user: test
password: test
@@ -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
View File
@@ -59,3 +59,4 @@ moodle-plugin-ci.phar
phpcs.xml
jsconfig.json
UPGRADING-CURRENT.md
.phpunit.cache
+22 -9
View File
@@ -69,6 +69,17 @@ const fetchComponentData = () => {
// The list of components includes the list of subsystems.
componentData.components = {...componentData.subsystems};
const subpluginAdder = (subpluginType, subpluginTypePath) => {
glob.sync(`${subpluginTypePath}/*/version.php`).forEach(versionPath => {
const componentPath = fs.realpathSync(path.dirname(versionPath));
const componentName = path.basename(componentPath);
const frankenstyleName = `${subpluginType}_${componentName}`;
componentData.components[`${subpluginTypePath}/${componentName}`] = frankenstyleName;
componentData.pathList.push(componentPath);
});
};
// Go through each of the plugintypes.
Object.entries(components.plugintypes).forEach(([pluginType, pluginTypePath]) => {
// We don't allow any code in this place..?
@@ -84,16 +95,18 @@ const fetchComponentData = () => {
if (fs.existsSync(subPluginConfigurationFile)) {
const subpluginList = JSON.parse(fs.readFileSync(fs.realpathSync(subPluginConfigurationFile)));
Object.entries(subpluginList.plugintypes).forEach(([subpluginType, subpluginTypePath]) => {
glob.sync(`${subpluginTypePath}/*/version.php`).forEach(versionPath => {
const componentPath = fs.realpathSync(path.dirname(versionPath));
const componentName = path.basename(componentPath);
const frankenstyleName = `${subpluginType}_${componentName}`;
componentData.components[`${subpluginTypePath}/${componentName}`] = frankenstyleName;
componentData.pathList.push(componentPath);
if (subpluginList.subplugintypes) {
Object.entries(subpluginList.subplugintypes).forEach(([subpluginType, subpluginTypePath]) => {
subpluginAdder(
subpluginType,
`${pluginTypePath}/${componentName}/${subpluginTypePath}`
);
});
});
} else if (subpluginList.plugintypes) {
Object.entries(subpluginList.plugintypes).forEach(([subpluginType, subpluginTypePath]) => {
subpluginAdder(subpluginType, subpluginTypePath);
});
}
}
});
});
+1 -1
View File
@@ -1 +1 @@
lts/iron
lts/jod
+1339
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7,6 +7,6 @@ define("core_admin/expand_hash",["exports"],(function(_exports){Object.definePro
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.5
*/
const SELECTORS_COLLAPSE_ELEMENTS='[data-toggle="collapse"]',SELECTORS_FOCUSTHENEXPAND_ELEMENTS=".focus-expand";_exports.init=()=>{const focusexpand=document.querySelector(SELECTORS_FOCUSTHENEXPAND_ELEMENTS);null==focusexpand||focusexpand.addEventListener("click",(()=>{expandSection("".concat(focusexpand.getAttribute("href")))}))};const expandSection=hash=>{const container=document.querySelector(hash),targetContainer=null==container?void 0:container.querySelector(SELECTORS_COLLAPSE_ELEMENTS);if("false"===(null==targetContainer?void 0:targetContainer.getAttribute("aria-expanded"))){const collapseId=targetContainer.getAttribute("aria-controls"),collapseContainer=document.getElementById(collapseId);collapseContainer.classList.remove("collapse"),collapseContainer.classList.add("show"),targetContainer.setAttribute("aria-expanded","true"),targetContainer.classList.remove("collapsed");const collapseElement=document.querySelector(".collapseexpand.collapsemenu");collapseElement.setAttribute("aria-expanded","true"),collapseElement.classList.remove("collapsed")}};_exports.expandSection=expandSection}));
const SELECTORS_COLLAPSE_ELEMENTS='[data-bs-toggle="collapse"]',SELECTORS_FOCUSTHENEXPAND_ELEMENTS=".focus-expand";_exports.init=()=>{const focusexpand=document.querySelector(SELECTORS_FOCUSTHENEXPAND_ELEMENTS);null==focusexpand||focusexpand.addEventListener("click",(()=>{expandSection("".concat(focusexpand.getAttribute("href")))}))};const expandSection=hash=>{const container=document.querySelector(hash),targetContainer=null==container?void 0:container.querySelector(SELECTORS_COLLAPSE_ELEMENTS);if("false"===(null==targetContainer?void 0:targetContainer.getAttribute("aria-expanded"))){const collapseId=targetContainer.getAttribute("aria-controls"),collapseContainer=document.getElementById(collapseId);collapseContainer.classList.remove("collapse"),collapseContainer.classList.add("show"),targetContainer.setAttribute("aria-expanded","true"),targetContainer.classList.remove("collapsed");const collapseElement=document.querySelector(".collapseexpand.collapsemenu");collapseElement.setAttribute("aria-expanded","true"),collapseElement.classList.remove("collapsed")}};_exports.expandSection=expandSection}));
//# sourceMappingURL=expand_hash.min.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"expand_hash.min.js","sources":["../src/expand_hash.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Expand the collapse section element.\n *\n * @module core_admin/expand_hash\n * @copyright Meirza <meirza.arson@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 4.5\n */\n\nconst SELECTORS = {\n COLLAPSE_ELEMENTS: '[data-toggle=\"collapse\"]',\n FOCUSTHENEXPAND_ELEMENTS: '.focus-expand',\n};\n\n/**\n * Initializes the focus and expand functionality.\n */\nexport const init = () => {\n // Select all collapsible elements only.\n const focusexpand = document.querySelector(SELECTORS.FOCUSTHENEXPAND_ELEMENTS);\n\n // Add click event listener to the anchor element\n focusexpand?.addEventListener('click', () => {\n expandSection(`${focusexpand.getAttribute('href')}`);\n });\n};\n\n/**\n * Expands a section based on the provided URL hash.\n *\n * This function takes a hash string, finds the corresponding element in the DOM,\n * and expands it if it is currently collapsed. It updates the necessary ARIA\n * attributes and classes to reflect the expanded state.\n *\n * @param {string} hash - The hash (e.g., '#elementId') of the element to expand.\n */\nexport const expandSection = (hash) => {\n const container = document.querySelector(hash);\n const targetContainer = container?.querySelector(SELECTORS.COLLAPSE_ELEMENTS);\n\n if (targetContainer?.getAttribute('aria-expanded') === 'false') {\n const collapseId = targetContainer.getAttribute('aria-controls');\n const collapseContainer = document.getElementById(collapseId);\n\n // Show the content.\n collapseContainer.classList.remove('collapse');\n collapseContainer.classList.add('show');\n\n // Update aria-expanded attribute to reflect the new state.\n targetContainer.setAttribute('aria-expanded', 'true');\n targetContainer.classList.remove('collapsed');\n\n // Get collapse expand menu element.\n const collapseElement = document.querySelector('.collapseexpand.collapsemenu');\n // Ensure it gets noticed to make it work.\n collapseElement.setAttribute('aria-expanded', 'true');\n collapseElement.classList.remove('collapsed');\n }\n};\n"],"names":["SELECTORS","focusexpand","document","querySelector","addEventListener","expandSection","getAttribute","hash","container","targetContainer","collapseId","collapseContainer","getElementById","classList","remove","add","setAttribute","collapseElement"],"mappings":";;;;;;;;;MAwBMA,4BACiB,2BADjBA,mCAEwB,8BAMV,WAEVC,YAAcC,SAASC,cAAcH,oCAG3CC,MAAAA,aAAAA,YAAaG,iBAAiB,SAAS,KACnCC,wBAAiBJ,YAAYK,aAAa,oBAarCD,cAAiBE,aACpBC,UAAYN,SAASC,cAAcI,MACnCE,gBAAkBD,MAAAA,iBAAAA,UAAWL,cAAcH,gCAEM,WAAnDS,MAAAA,uBAAAA,gBAAiBH,aAAa,kBAA8B,OACtDI,WAAaD,gBAAgBH,aAAa,iBAC1CK,kBAAoBT,SAASU,eAAeF,YAGlDC,kBAAkBE,UAAUC,OAAO,YACnCH,kBAAkBE,UAAUE,IAAI,QAGhCN,gBAAgBO,aAAa,gBAAiB,QAC9CP,gBAAgBI,UAAUC,OAAO,mBAG3BG,gBAAkBf,SAASC,cAAc,gCAE/Cc,gBAAgBD,aAAa,gBAAiB,QAC9CC,gBAAgBJ,UAAUC,OAAO"}
{"version":3,"file":"expand_hash.min.js","sources":["../src/expand_hash.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Expand the collapse section element.\n *\n * @module core_admin/expand_hash\n * @copyright Meirza <meirza.arson@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 4.5\n */\n\nconst SELECTORS = {\n COLLAPSE_ELEMENTS: '[data-bs-toggle=\"collapse\"]',\n FOCUSTHENEXPAND_ELEMENTS: '.focus-expand',\n};\n\n/**\n * Initializes the focus and expand functionality.\n */\nexport const init = () => {\n // Select all collapsible elements only.\n const focusexpand = document.querySelector(SELECTORS.FOCUSTHENEXPAND_ELEMENTS);\n\n // Add click event listener to the anchor element\n focusexpand?.addEventListener('click', () => {\n expandSection(`${focusexpand.getAttribute('href')}`);\n });\n};\n\n/**\n * Expands a section based on the provided URL hash.\n *\n * This function takes a hash string, finds the corresponding element in the DOM,\n * and expands it if it is currently collapsed. It updates the necessary ARIA\n * attributes and classes to reflect the expanded state.\n *\n * @param {string} hash - The hash (e.g., '#elementId') of the element to expand.\n */\nexport const expandSection = (hash) => {\n const container = document.querySelector(hash);\n const targetContainer = container?.querySelector(SELECTORS.COLLAPSE_ELEMENTS);\n\n if (targetContainer?.getAttribute('aria-expanded') === 'false') {\n const collapseId = targetContainer.getAttribute('aria-controls');\n const collapseContainer = document.getElementById(collapseId);\n\n // Show the content.\n collapseContainer.classList.remove('collapse');\n collapseContainer.classList.add('show');\n\n // Update aria-expanded attribute to reflect the new state.\n targetContainer.setAttribute('aria-expanded', 'true');\n targetContainer.classList.remove('collapsed');\n\n // Get collapse expand menu element.\n const collapseElement = document.querySelector('.collapseexpand.collapsemenu');\n // Ensure it gets noticed to make it work.\n collapseElement.setAttribute('aria-expanded', 'true');\n collapseElement.classList.remove('collapsed');\n }\n};\n"],"names":["SELECTORS","focusexpand","document","querySelector","addEventListener","expandSection","getAttribute","hash","container","targetContainer","collapseId","collapseContainer","getElementById","classList","remove","add","setAttribute","collapseElement"],"mappings":";;;;;;;;;MAwBMA,4BACiB,8BADjBA,mCAEwB,8BAMV,WAEVC,YAAcC,SAASC,cAAcH,oCAG3CC,MAAAA,aAAAA,YAAaG,iBAAiB,SAAS,KACnCC,wBAAiBJ,YAAYK,aAAa,oBAarCD,cAAiBE,aACpBC,UAAYN,SAASC,cAAcI,MACnCE,gBAAkBD,MAAAA,iBAAAA,UAAWL,cAAcH,gCAEM,WAAnDS,MAAAA,uBAAAA,gBAAiBH,aAAa,kBAA8B,OACtDI,WAAaD,gBAAgBH,aAAa,iBAC1CK,kBAAoBT,SAASU,eAAeF,YAGlDC,kBAAkBE,UAAUC,OAAO,YACnCH,kBAAkBE,UAAUE,IAAI,QAGhCN,gBAAgBO,aAAa,gBAAiB,QAC9CP,gBAAgBI,UAAUC,OAAO,mBAG3BG,gBAAkBf,SAASC,cAAc,gCAE/Cc,gBAAgBD,aAAa,gBAAiB,QAC9CC,gBAAgBJ,UAAUC,OAAO"}
+1 -1
View File
@@ -23,7 +23,7 @@
*/
const SELECTORS = {
COLLAPSE_ELEMENTS: '[data-toggle="collapse"]',
COLLAPSE_ELEMENTS: '[data-bs-toggle="collapse"]',
FOCUSTHENEXPAND_ELEMENTS: '.focus-expand',
};
+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');
}
@@ -0,0 +1,73 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\admin;
use admin_setting;
/**
* Render a template as part of other admin settings.
* Use for rendering additional html in settings.
*
* @package core_admin
* @subpackage admin
* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class admin_setting_template_render extends admin_setting {
/**
* Constructor.
*
* @param string $name The name of the setting.
* @param string $templatename The name of the template to render.
* @param array|\stdClass $context The context to pass to the template.
*/
public function __construct(
string $name,
/** @var string The name of the template to render. */
protected string $templatename,
/** @var array|\stdClass The context to pass to the template. */
protected array|\stdClass $context
) {
$this->nosave = true;
parent::__construct($name, $templatename, '', '');
}
#[\Override]
public function get_setting(): bool {
return true;
}
#[\Override]
public function get_defaultsetting(): bool {
return true;
}
#[\Override]
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
public function write_setting($data): string {
// Do not write any setting.
return '';
}
#[\Override]
public function output_html($data, $query = ''): string {
global $OUTPUT;
return $OUTPUT->render_from_template($this->templatename, $this->context);
}
}
+1
View File
@@ -48,6 +48,7 @@ class purge_caches extends \moodleform {
$mform->addElement('header', 'purgecacheheader', get_string('purgeselectedcaches', 'admin'));
$checkboxes = [
$mform->createElement('advcheckbox', 'theme', '', get_string('purgethemecache', 'admin')),
$mform->createElement('advcheckbox', 'courses', '', get_string('purgecoursecache', 'admin')),
$mform->createElement('advcheckbox', 'lang', '', get_string('purgelangcache', 'admin')),
$mform->createElement('advcheckbox', 'js', '', get_string('purgejscache', 'admin')),
$mform->createElement('advcheckbox', 'template', '', get_string('purgetemplates', 'admin')),
@@ -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;
});
@@ -273,8 +271,6 @@ class task_log extends base {
* @return filter[]
*/
protected function get_all_filters(): array {
global $DB;
$tablealias = $this->get_table_alias('task_log');
// Name filter (Filter by classname).
@@ -332,7 +328,7 @@ class task_log extends base {
'output',
new lang_string('task_logoutput', 'admin'),
$this->get_entity_name(),
$DB->sql_cast_to_char("{$tablealias}.output")
"{$tablealias}.output"
))
->add_joins($this->get_joins());
@@ -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);
]);
}
/**
@@ -159,11 +159,11 @@ class users extends system_report {
->add_callback(static function(string $fullname, \stdClass $row): string {
if ($row->suspended) {
$fullname .= ' ' . \html_writer::tag('span', get_string('suspended', 'moodle'),
['class' => 'badge badge-secondary ms-1']);
['class' => 'badge text-bg-secondary ms-1']);
}
if (!$row->confirmed) {
$fullname .= ' ' . \html_writer::tag('span', get_string('confirmationpending', 'admin'),
['class' => 'badge badge-danger ms-1']);
['class' => 'badge text-bg-danger ms-1']);
}
return $fullname;
});
+1 -1
View File
@@ -232,7 +232,7 @@ class hook_list_table extends flexible_table {
}
if ($tooltip) {
$attributes['data-toggle'] = 'tooltip';
$attributes['data-bs-toggle'] = 'tooltip';
$attributes['title'] = $tooltip;
}
return html_writer::span($tag, "badge badge-{$type}", $attributes);
@@ -322,7 +322,7 @@ abstract class plugin_management_table extends flexible_table implements dynamic
],
'title' => $labelstr,
'label' => $labelstr,
'labelclasses' => 'sr-only',
'labelclasses' => 'visually-hidden',
];
return $OUTPUT->render_from_template('core_admin/setting_configtoggle', $params);
+1 -1
View File
@@ -71,7 +71,7 @@ Example:
exit(0);
}
error_reporting(E_ALL | E_STRICT);
error_reporting(E_ALL);
ini_set('display_errors', 1);
$content = core_component::get_cache_content();
+2 -3
View File
@@ -30,6 +30,7 @@
*/
define('CLI_SCRIPT', true);
define('NO_DEBUG_DISPLAY', false);
// extra execution prevention - we can not just require config.php here
if (isset($_SERVER['REMOTE_ADDR'])) {
@@ -165,7 +166,7 @@ $CFG->running_installer = true;
$CFG->early_install_lang = true;
$CFG->ostype = (stristr(PHP_OS, 'win') && !stristr(PHP_OS, 'darwin')) ? 'WINDOWS' : 'UNIX';
$CFG->dboptions = array();
$CFG->debug = (E_ALL | E_STRICT);
$CFG->debug = (E_ALL);
$CFG->debugdisplay = true;
$CFG->debugdeveloper = true;
@@ -216,7 +217,6 @@ $databases = array('mysqli' => moodle_database::get_driver_instance('mysqli', 'n
'auroramysql' => moodle_database::get_driver_instance('auroramysql', 'native'),
'mariadb'=> moodle_database::get_driver_instance('mariadb', 'native'),
'pgsql' => moodle_database::get_driver_instance('pgsql', 'native'),
'oci' => moodle_database::get_driver_instance('oci', 'native'),
'sqlsrv' => moodle_database::get_driver_instance('sqlsrv', 'native'), // MS SQL*Server PHP driver
);
foreach ($databases as $type=>$database) {
@@ -560,7 +560,6 @@ do {
if ($interactive) {
cli_separator();
cli_heading(get_string('dbprefix', 'install'));
//TODO: solve somehow the prefix trouble for oci.
if ($options['prefix'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['prefix']);
} else {
+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>
+1 -69
View File
@@ -43,61 +43,6 @@ $providers = get_message_providers();
$preferences = get_message_output_default_preferences();
if (($form = data_submitted()) && confirm_sesskey()) {
$newpreferences = array();
// Prepare default message outputs settings.
foreach ($providers as $provider) {
$componentproviderbase = $provider->component.'_'.$provider->name;
$disableprovidersetting = $componentproviderbase.'_disable';
if (!isset($form->$disableprovidersetting)) {
$newpreferences[$disableprovidersetting] = 1;
} else {
$newpreferences[$disableprovidersetting] = 0;
}
$componentprovidersetting = $componentproviderbase.'_locked';
foreach ($processors as $processor) {
$value = 0;
if (isset($form->{$componentprovidersetting}[$processor->name])) {
$value = $form->{$componentprovidersetting}[$processor->name];
if ($value == 'on') {
$value = 1;
}
}
// Record the site preference.
$newpreferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
}
$componentprovidersetting = $componentproviderbase.'_enabled';
$newsettings = [];
if (isset($form->$componentprovidersetting)) {
// Store defined comma-separated processors as setting value.
// Using array_filter eliminates elements set to 0 above.
$newsettings = array_keys(array_filter($form->{$componentprovidersetting}));
}
// Let's join existing setting values for disabled processors.
$property = 'message_provider_'.$componentprovidersetting;
if (property_exists($preferences, $property)) {
$existingsetting = $preferences->$property;
foreach ($disabledprocessors as $disable) {
if (strpos($existingsetting, $disable->name) > -1) {
$newsettings[] = $disable->name;
}
}
}
$value = join(',', $newsettings);
if (empty($value)) {
$value = null;
}
// Record the site preference.
$newpreferences['message_provider_'.$componentprovidersetting] = $value;
}
// Update database.
$transaction = $DB->start_delegated_transaction();
// Save processors enabled/disabled status.
foreach ($allprocessors as $processor) {
@@ -106,24 +51,11 @@ if (($form = data_submitted()) && confirm_sesskey()) {
$class::enable_plugin($processor->name, $enabled);
}
foreach ($newpreferences as $name => $value) {
$old = isset($preferences->$name) ? $preferences->$name : '';
if ($old != $value) {
add_to_config_log($name, $old, $value, 'core');
}
set_config($name, $value, 'message');
}
$transaction->allow_commit();
core_plugin_manager::reset_caches();
$url = new moodle_url('message.php');
redirect($url);
}
// Page settings
// Page settings.
$PAGE->set_context(context_system::instance());
$renderer = $PAGE->get_renderer('core', 'message');
+2 -1
View File
@@ -91,7 +91,8 @@ if (!empty($hostid) && array_key_exists($hostid, $hosts)) {
// this query is horrible and has to be remapped afterwards, because of the non-uniqueness
// of the remoterep service (it has two plugins so far that use it)
// it's possible to get a unique list back using a subquery with LIMIT but that would break oracle
// so it's best to just do this small query and then remap the results afterwards
// so it's best to just do this small query and then remap the results afterwards.
// TODO: Optimise the query, as Oracle-specific constraints no longer apply.
$sql = '
SELECT DISTINCT
' . $DB->sql_concat('r.plugintype', "'_'", 'r.pluginname', "'_'", 's.name') . ' AS uniqueid,
+12
View File
@@ -0,0 +1,12 @@
# core_adminpresets (subsystem) Upgrade notes
## 5.0
### Removed
- Remove chat and survey from Adminpresets.
For more information see [MDL-82457](https://tracker.moodle.org/browse/MDL-82457)
- Removed block_mnet_hosts from admin presets
For more information see [MDL-84309](https://tracker.moodle.org/browse/MDL-84309)
+4 -8
View File
@@ -193,14 +193,12 @@ class helper {
// Set Activity chooser tabs to "Starred, Recommended, All".
static::add_item($presetid, 'activitychoosertabmode', '4');
// Modules: Hide chat, database, external tool (lti), IMS content package (imscp), lesson, SCORM, survey, wiki, workshop.
static::add_plugin($presetid, 'mod', 'chat', false);
// Modules: Hide database, external tool (lti), IMS content package (imscp), lesson, SCORM, wiki, workshop.
static::add_plugin($presetid, 'mod', 'data', false);
static::add_plugin($presetid, 'mod', 'lti', false);
static::add_plugin($presetid, 'mod', 'imscp', false);
static::add_plugin($presetid, 'mod', 'lesson', false);
static::add_plugin($presetid, 'mod', 'scorm', false);
static::add_plugin($presetid, 'mod', 'survey', false);
static::add_plugin($presetid, 'mod', 'wiki', false);
static::add_plugin($presetid, 'mod', 'workshop', false);
@@ -209,7 +207,7 @@ class helper {
static::add_plugin($presetid, 'availability', 'profile', false);
// Blocks: Hide Activities, Blog menu, Blog tags, Comments, Course completion status, Courses, Flickr,
// Global search, Latest badges, Learning plans, Logged in user, Login, Main menu, Mentees, Network servers, Online users,
// Global search, Latest badges, Learning plans, Logged in user, Login, Main menu, Mentees, Online users,
// Private files, Recent blog entries, Recently accessed courses, Search forums, Section links, Social activities,
// Starred courses, Tags, YouTube.
// Hidden by default: Course/site summary, RSS feeds, Self completion, Feedback.
@@ -228,7 +226,6 @@ class helper {
static::add_plugin($presetid, 'block', 'login', false);
static::add_plugin($presetid, 'block', 'site_main_menu', false);
static::add_plugin($presetid, 'block', 'mentees', false);
static::add_plugin($presetid, 'block', 'mnet_hosts', false);
static::add_plugin($presetid, 'block', 'private_files', false);
static::add_plugin($presetid, 'block', 'blog_recent', false);
static::add_plugin($presetid, 'block', 'rss_client', false);
@@ -292,7 +289,7 @@ class helper {
static::add_item($presetid, 'enablenotes', '1');
static::add_item($presetid, 'enableblogs', '1');
static::add_item($presetid, 'enablebadges', '1');
static::add_item($presetid, 'enableanalytics', '1');
static::add_item($presetid, 'enableanalytics', '0');
static::add_item($presetid, 'enabled', '1', 'core_competency');
static::add_item($presetid, 'pushcourseratingstouserplans', '1', 'core_competency');
static::add_item($presetid, 'showdataretentionsummary', '1', 'tool_dataprivacy');
@@ -315,7 +312,7 @@ class helper {
static::add_plugin($presetid, 'availability', 'profile', true);
// Blocks: Enable Activities, Blog menu, Blog tags, Comments, Course completion status, Courses, Flickr,
// Global search, Latest badges, Learning plans, Logged in user, Login, Main menu, Mentees, Network servers, Online users,
// Global search, Latest badges, Learning plans, Logged in user, Login, Main menu, Mentees, Online users,
// Private files, Recent blog entries, Recently accessed courses, Search forums, Section links, Social activities,
// Starred courses, Tags, YouTube.
// Hidden by default: Course/site summary, RSS feeds, Self completion, Feedback.
@@ -333,7 +330,6 @@ class helper {
static::add_plugin($presetid, 'block', 'login', true);
static::add_plugin($presetid, 'block', 'site_main_menu', true);
static::add_plugin($presetid, 'block', 'mentees', true);
static::add_plugin($presetid, 'block', 'mnet_hosts', true);
static::add_plugin($presetid, 'block', 'private_files', true);
static::add_plugin($presetid, 'block', 'blog_recent', true);
static::add_plugin($presetid, 'block', 'search_forums', true);
+5
View File
@@ -1133,6 +1133,11 @@ class manager {
'visiblevalue' => $visiblevalue,
];
if ($plugininfo && $plugininfo->is_deprecated()) {
$skipped[] = $data;
continue;
}
if ($pluginclass == '\core\plugininfo\orphaned') {
$skipped[] = $data;
continue;
+2 -2
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PRESET>
<NAME>Imported preset</NAME>
<COMMENTS>&lt;p dir="ltr" style="text-align:left;"&gt;Porfolios enabled, Emojipicker enabled, Lesson media width set to 900 and maxanswers set to 2 and disabled advanced. Plugins: disabled block_html, mod_database and mod_chat plugins and enabled atto_html, block_activity_modules and mod_lesson.&lt;/p&gt;</COMMENTS>
<COMMENTS>&lt;p dir="ltr" style="text-align:left;"&gt;Porfolios enabled, Emojipicker enabled, Lesson media width set to 900 and maxanswers set to 2 and disabled advanced. Plugins: disabled block_html, mod_database and mod_page plugins and enabled atto_html, block_activity_modules and mod_lesson.&lt;/p&gt;</COMMENTS>
<PRESET_DATE>1631615985</PRESET_DATE>
<SITE_URL>http://demo.moodle</SITE_URL>
<AUTHOR>Ada Lovelace</AUTHOR>
@@ -30,7 +30,7 @@
<ACTIVITY_MODULES>1</ACTIVITY_MODULES>
</BLOCK>
<MOD>
<CHAT>0</CHAT>
<PAGE>0</PAGE>
<DATA>0</DATA>
<LESSON>1</LESSON>
</MOD>
+2 -2
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<PRESET>
<NAME>Starter</NAME>
<COMMENTS>&lt;p dir="ltr" style="text-align:left;"&gt;Badges disabled, Emojipicker enabled, Lesson media width set to 900 and maxanswers set to 2 and disabled advanced. Plugins: disabled block_html, mod_database and mod_chat plugins and enabled atto_html and block_activity_modules.&lt;/p&gt;</COMMENTS>
<COMMENTS>&lt;p dir="ltr" style="text-align:left;"&gt;Badges disabled, Emojipicker enabled, Lesson media width set to 900 and maxanswers set to 2 and disabled advanced. Plugins: disabled block_html, mod_database and mod_page plugins and enabled atto_html and block_activity_modules.&lt;/p&gt;</COMMENTS>
<PRESET_DATE>1631615985</PRESET_DATE>
<SITE_URL>http://demo.moodle</SITE_URL>
<AUTHOR>Ada Lovelace</AUTHOR>
@@ -30,7 +30,7 @@
<ACTIVITY_MODULES>1</ACTIVITY_MODULES>
</BLOCK>
<MOD>
<CHAT>0</CHAT>
<PAGE>0</PAGE>
<DATA>0</DATA>
<LESSON>1</LESSON>
</MOD>
+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' => [
],
+13 -10
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',
@@ -285,12 +285,15 @@ class helper_test extends \advanced_testcase {
// We need to change some of the default values; otherwise, the full preset won't be applied, because all the settings
// and plugins are the same.
set_config('enableanalytics', '0');
set_config('enableanalytics', '1');
$generator = $this->getDataGenerator()->get_plugin_generator('core_adminpresets');
$generator->create_preset(['name' => 'Preset 1']);
$invokable = self::get_invokable();
set_error_handler($invokable, E_WARNING);
$presetid = helper::change_default_preset($preset);
restore_error_handler();
if (empty($settings) && empty($plugins)) {
// The preset hasn't been applied.
@@ -321,7 +324,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',
@@ -331,7 +334,7 @@ class helper_test extends \advanced_testcase {
],
'plugins' => [
'assign' => 1,
'chat' => 0,
'wiki' => 0,
'data' => 0,
'lesson' => 0,
],
@@ -364,20 +367,20 @@ 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,
],
'plugins' => [
'assign' => 1,
'chat' => 0,
'page' => 0,
'data' => 0,
'lesson' => 1,
],
],
'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,18 +72,18 @@ 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,
'settingvalue' => BLOG_USER_LEVEL,
'expectedsaved' => true,
],
'Same value to bloglevel, so it will not be saved' => [
'setttingvalue' => BLOG_SITE_LEVEL,
'settingvalue' => BLOG_SITE_LEVEL,
'expectedsaved' => false,
],
'Save the bloglevel and set blog_menu block visibility to false' => [
'setttingvalue' => 0,
'settingvalue' => 0,
'expectedsaved' => true,
],
];
@@ -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,26 +66,26 @@ 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',
'setttingvalue' => 'New site fullname',
'settingvalue' => 'New site fullname',
'expectedsaved' => true,
],
'Fullname: same value' => [
'settingname' => 'fullname',
'setttingvalue' => 'PHPUnit test site',
'settingvalue' => 'PHPUnit test site',
'expectedsaved' => false,
],
'Summary: different value' => [
'settingname' => 'summary',
'setttingvalue' => 'This is a new site summary.',
'settingvalue' => 'This is a new site summary.',
'expectedsaved' => true,
],
'Summary: same value' => [
'settingname' => 'summary',
'setttingvalue' => '',
'settingvalue' => '',
'expectedsaved' => false,
],
];
@@ -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,34 +77,34 @@ 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',
'settingplugin' => 'core',
'settingname' => 'enablebadges',
'setttingvalue' => '1',
'settingvalue' => '1',
'expectedsaved' => false,
],
'Core setting with a different value is saved' => [
'category' => 'optionalsubsystems',
'settingplugin' => 'core',
'settingname' => 'enablebadges',
'setttingvalue' => '0',
'settingvalue' => '0',
'expectedsaved' => true,
],
'Plugin setting with the same value is not saved' => [
'category' => 'modsettinglesson',
'settingplugin' => 'mod_lesson',
'settingname' => 'mediawidth',
'setttingvalue' => '640',
'settingvalue' => '640',
'expectedsaved' => false,
],
'Plugin setting with different value is saved' => [
'category' => 'modsettinglesson',
'settingplugin' => 'mod_lesson',
'settingname' => 'mediawidth',
'setttingvalue' => '900',
'settingvalue' => '900',
'expectedsaved' => true,
],
];
@@ -167,14 +167,14 @@ 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',
'settingplugin' => 'mod_lesson',
'settingname' => 'maxanswers',
'advsettingname' => 'maxanswers_adv',
'advsetttingvalue' => '1',
'advsettingvalue' => '1',
'expectedsaved' => false,
],
'Plugin setting with different value is saved' => [
@@ -182,7 +182,7 @@ class adminpresets_setting_test extends \advanced_testcase {
'settingplugin' => 'mod_lesson',
'settingname' => 'maxanswers',
'advsettingname' => 'maxanswers_adv',
'advsetttingvalue' => '0',
'advsettingvalue' => '0',
'expectedsaved' => true,
],
'Plugin setting without advanced attributes are not saved' => [
@@ -190,7 +190,7 @@ class adminpresets_setting_test extends \advanced_testcase {
'settingplugin' => 'mod_lesson',
'settingname' => 'maxanswers',
'advsettingname' => null,
'advsetttingvalue' => '0',
'advsettingvalue' => '0',
'expectedsaved' => false,
],
];
+65 -12
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,
@@ -438,7 +438,10 @@ class manager_test extends \advanced_testcase {
// Call the method to be tested.
$manager = new manager();
try {
$invokable = self::get_invokable();
set_error_handler($invokable, E_WARNING);
list($xml, $preset, $settingsfound, $pluginsfound) = $manager->import_preset($filecontents);
restore_error_handler();
} catch (\exception $e) {
if ($expectedexception) {
$this->assertInstanceOf($expectedexception, $e);
@@ -506,7 +509,7 @@ class manager_test extends \advanced_testcase {
'activity_modules' => 1,
],
'mod' => [
'chat' => 0,
'page' => 0,
'data' => 0,
'lesson' => 1,
],
@@ -531,26 +534,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 +568,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 +578,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 +606,6 @@ class manager_test extends \advanced_testcase {
];
}
/**
* Test the behaviour of delete_preset() method when the preset id doesn't exist.
*
@@ -796,4 +812,41 @@ class manager_test extends \advanced_testcase {
$enabledplugins = \core\plugininfo\qtype::get_enabled_plugins();
$this->assertArrayHasKey('truefalse', $enabledplugins);
}
/**
* Test apply_preset for a deprecated plugin type.
*
* @runInSeparateProcess
*
* @covers ::apply_preset
* @return void
*/
public function test_apply_preset_deprecated_plugintype(): void {
global $CFG;
$this->resetAfterTest();
// Create a preset.
$generator = $this->getDataGenerator()->get_plugin_generator('core_adminpresets');
$presetid = $generator->create_preset();
// Add a mock plugin into the preset. This plugin will be mocked and deprecated below.
helper::add_plugin($presetid, 'fake', 'fullfeatured', true);
// Inject the mock plugin type + plugin, and deprecate it.
$this->add_mocked_plugintype('fake', "$CFG->libdir/tests/fixtures/fakeplugins/fake", true);
$this->add_mocked_plugin('fake', 'fullfeatured', $CFG->libdir . '/tests/fixtures/fakeplugins/fake/fullfeatured');
// Pre-flight check to ensure that the plugin is deprecated.
$pluginman = \core\plugin_manager::instance();
$plugininfo = $pluginman->get_plugin_info('fake_fullfeatured');
// Expected, unit-test-only debugging, since \core\plugin_manager isn't aware of the mock plugininfo class for this type.
$this->assertDebuggingCalled();
$this->assertTrue($plugininfo->is_deprecated());
// Finally, check apply_preset method, verifying the deprecated plugin is skipped.
$manager = new manager();
[$applied, $skipped] = $manager->apply_preset($presetid);
$this->assertdebuggingcalledcount(2); // Expected unit-test-only debugging, as above.
$this->assertContains('fake', array_column($skipped, 'plugin'));
}
}
@@ -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().
-80
View File
@@ -1,80 +0,0 @@
#!/usr/bin/php -f
<?php
//error_reporting(0);
//ini_set('display_errors',0);
require_once(__DIR__ . '/../config.php');
$tmp = explode('@',$_ENV['RECIPIENT']);
$address = $tmp[0];
// BOUNCE EMAILS TO NOREPLY
if ($_ENV['RECIPIENT'] == $CFG->noreplyaddress) {
$user = new stdClass();
$user->email = $_ENV['SENDER'];
if (!validate_email($user->email)) {
die();
}
$site = get_site();
$subject = get_string('noreplybouncesubject','moodle',format_string($site->fullname));
$body = get_string('noreplybouncemessage','moodle',format_string($site->fullname))."\n\n";
$fd = fopen('php://stdin','r');
if ($fd) {
while(!feof($fd)) {
$body .= fgets($fd);
}
fclose($fd);
}
$user->id = 0; // to prevent anything annoying happening
$from->firstname = null;
$from->lastname = null;
$from->email = '<>';
$from->maildisplay = true;
email_to_user($user,$from,$subject,$body);
die ();
}
/// ALL OTHER PROCESSING
// we need to split up the address
$prefix = substr($address,0,4);
$mod = substr($address,4,2);
$modargs = substr($address,6,-16);
$hash = substr($address,-16);
if (substr(md5($prefix.$mod.$modargs.$CFG->siteidentifier),0,16) != $hash) {
die("HASH DIDN'T MATCH!\n");
}
list(,$modid) = unpack('C',base64_decode($mod.'=='));
if ($modid == '0') { // special
$modname = 'moodle';
}
else {
$modname = $DB->get_field("modules", "name", array("id"=>$modid));
include_once('mod/'.$modname.'/lib.php');
}
$function = $modname.'_process_email';
if (!function_exists($function)) {
die();
}
$fd = fopen('php://stdin','r');
if (!$fd) {
exit();
}
while(!feof($fd)) {
$body .= fgets($fd);
}
$function($modargs,$body);
fclose($fd);
+5 -1
View File
@@ -42,7 +42,11 @@ if ($data = $form->get_data()) {
purge_caches();
$message = get_string('purgecachesfinished', 'admin');
} else {
purge_caches($data->purgeselectedoptions);
// When passing selected options, ensure each is cast to boolean for strict comparison.
purge_caches(array_map(
fn($option) => (bool) $option,
$data->purgeselectedoptions,
));
$message = get_string('purgeselectedcachesfinished', 'admin');
}
+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');
+96 -37
View File
@@ -295,7 +295,6 @@ class core_admin_renderer extends plugin_renderer_base {
$output .= $this->header();
$output .= $this->output->heading(get_string('notifications', 'admin'));
$output .= $this->upgrade_news_message();
$output .= $this->maturity_info($maturity);
$output .= empty($CFG->disableupdatenotifications) ? $this->available_updates($availableupdates, $availableupdatesfetch) : '';
$output .= $this->insecure_dataroot_warning($insecuredataroot);
@@ -755,22 +754,6 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->box($copyrighttext, 'copyright');
}
/**
* Display a transient notification for important upgrades messages for
* specific releases.
*
* @return string HTML to output.
*/
protected function upgrade_news_message() {
return $this->notification(
get_string('importantupdates_content', 'admin'),
'info',
false,
get_string('importantupdates_title', 'admin'),
'i/circleinfo, core'
);
}
/**
* Display a warning about installing development code if necesary.
* @param int $maturity
@@ -1041,7 +1024,7 @@ class core_admin_renderer extends plugin_renderer_base {
*/
public function plugins_check_table(core_plugin_manager $pluginman, $version, array $options = array()) {
global $CFG;
$plugininfo = $pluginman->get_plugins();
$plugininfo = $pluginman->get_plugins(true);
if (empty($plugininfo)) {
return '';
@@ -1076,6 +1059,20 @@ class core_admin_renderer extends plugin_renderer_base {
$upgradeabortable = $pluginman->list_restorable_archives();
foreach ($plugininfo as $type => $plugins) {
// Skip deleted plugin types.
if (\core_component::is_deleted_plugin_type($type)) {
continue;
}
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
if (\core_component::is_deprecated_plugin_type($type)) {
$reportableplugins = array_filter($plugins, function($plugininfo) {
return $plugininfo->versiondb != null;
});
if (empty($reportableplugins)) {
continue;
}
}
$header = new html_table_cell($pluginman->plugintype_name_plural($type));
$header->header = true;
@@ -1124,7 +1121,7 @@ class core_admin_renderer extends plugin_renderer_base {
);
$versiondb = new html_table_cell($plugin->versiondb);
$versiondisk = new html_table_cell($plugin->versiondisk);
$versiondisk = $plugin->is_deprecated() ? new html_table_cell() : new html_table_cell($plugin->versiondisk);
if ($isstandard = $plugin->is_standard()) {
$row->attributes['class'] .= ' standard';
@@ -1143,6 +1140,9 @@ class core_admin_renderer extends plugin_renderer_base {
$statuscode = $plugin->get_status();
$row->attributes['class'] .= ' status-' . $statuscode;
if ($plugin->is_deprecated()) {
$row->attributes['class'] .= ' deprecatedtype';
}
$statusclass = 'statustext badge ';
switch ($statuscode) {
case core_plugin_manager::PLUGIN_STATUS_NEW:
@@ -1163,6 +1163,18 @@ class core_admin_renderer extends plugin_renderer_base {
}
$status = html_writer::span(get_string('status_' . $statuscode, 'core_plugin'), $statusclass);
$deprecatedstatus = '';
if ($plugin->is_deprecated()) {
// During upgrade, omit the status for deprecated plugin types, unless it's 'missing from disk'.
// Deprecated plugins cannot be installed, upgraded, downgraded, and won't be automatically deleted.
$status = in_array($statuscode,
[core_plugin_manager::PLUGIN_STATUS_MISSING, core_plugin_manager::PLUGIN_STATUS_DELETE]) ? $status : '';
$deprecatedstatus = html_writer::span(
get_string('deprecated_type', 'core_plugin'),
'statustext badge bg-danger text-white'
);
}
if (!empty($installabortable[$plugin->component])) {
$status .= $this->output->single_button(
new moodle_url($this->page->url, array('abortinstall' => $plugin->component, 'confirmplugincheck' => 0)),
@@ -1188,7 +1200,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$status = new html_table_cell($sourcelabel.' '.$status);
$status = new html_table_cell($sourcelabel.' '.$status.' '.$deprecatedstatus);
if ($plugin->pluginsupported != null) {
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version, $CFG->branch));
} else {
@@ -1196,7 +1208,8 @@ class core_admin_renderer extends plugin_renderer_base {
}
$statusisboring = in_array($statuscode, array(
core_plugin_manager::PLUGIN_STATUS_NODB, core_plugin_manager::PLUGIN_STATUS_UPTODATE));
core_plugin_manager::PLUGIN_STATUS_NODB, core_plugin_manager::PLUGIN_STATUS_UPTODATE))
&& !$plugin->is_deprecated();
if ($options['xdep']) {
// we want to see only plugins with failed dependencies
@@ -1672,12 +1685,26 @@ class core_admin_renderer extends plugin_renderer_base {
*/
public function plugins_overview_panel(core_plugin_manager $pluginman, array $options = array()) {
$plugininfo = $pluginman->get_plugins();
$plugininfo = $pluginman->get_plugins(true);
$this->page->requires->js_call_amd('core_admin/plugins_overview', 'init');
$numtotal = $numextension = $numupdatable = $numinstallable = $nummissing = $numnew = 0;
foreach ($plugininfo as $type => $plugins) {
if (\core_component::is_deleted_plugin_type($type)) {
continue;
}
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
if (\core_component::is_deprecated_plugin_type($type)) {
$reportableplugins = array_filter($plugins, function($plugininfo) {
return $plugininfo->versiondb != null;
});
if (empty($reportableplugins)) {
continue;
}
}
foreach ($plugins as $name => $plugin) {
if ($res = $plugin->available_updates()) {
$numupdatable++;
@@ -1706,13 +1733,13 @@ class core_admin_renderer extends plugin_renderer_base {
$this->page->url,
get_string('overviewall', 'core_plugin'),
['title' => get_string('filterall', 'core_plugin'), 'data-filterby' => 'all', 'class' => 'active']
).' '.html_writer::span($numtotal, 'badge number number-all');
).' '.html_writer::span($numtotal, 'badge text-dark number number-all');
$infoext = html_writer::link(
new moodle_url($this->page->url, [], 'additional'),
get_string('overviewext', 'core_plugin'),
['title' => get_string('filtercontribonly', 'core_plugin'), 'data-filterby' => 'additional']
).' '.html_writer::span($numextension, 'badge number number-additional');
).' '.html_writer::span($numextension, 'badge text-dark number number-additional');
if ($numupdatable) {
$infoupdatable = html_writer::link(
@@ -1778,7 +1805,7 @@ class core_admin_renderer extends plugin_renderer_base {
*/
public function plugins_control_panel(core_plugin_manager $pluginman, array $options = array()) {
$plugininfo = $pluginman->get_plugins();
$plugininfo = $pluginman->get_plugins(true);
$table = new html_table();
$table->id = 'plugins-control-panel';
@@ -1795,6 +1822,20 @@ class core_admin_renderer extends plugin_renderer_base {
);
foreach ($plugininfo as $type => $plugins) {
if (\core_component::is_deleted_plugin_type($type)) {
continue;
}
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
if (\core_component::is_deprecated_plugin_type($type)) {
$reportableplugins = array_filter($plugins, function($plugininfo) {
return $plugininfo->versiondb != null;
});
if (empty($reportableplugins)) {
continue;
}
}
$heading = $pluginman->plugintype_name_plural($type);
$pluginclass = core_plugin_manager::resolve_plugininfo_class($type);
if ($manageurl = $pluginclass::get_manage_url()) {
@@ -1837,6 +1878,9 @@ class core_admin_renderer extends plugin_renderer_base {
}
$status = $plugin->get_status();
$row->attributes['class'] .= ' status-'.$status;
if ($plugin->is_deprecated()) {
$row->attributes['class'] .= ' deprecatedtype';
}
$pluginname = html_writer::tag('div', $icon.$plugin->displayname, array('class' => 'displayname')).
html_writer::tag('div', $plugin->component, array('class' => 'componentname'));
$pluginname = new html_table_cell($pluginname);
@@ -1878,19 +1922,29 @@ class core_admin_renderer extends plugin_renderer_base {
$source = '';
} else {
$row->attributes['class'] .= ' additional';
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge mr-1 bg-info text-white');
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge me-1 text-bg-info');
}
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
$row->attributes['class'] .= ' missing';
$msg = html_writer::div(get_string('status_missing', 'core_plugin'), 'statusmsg badge bg-danger text-white');
$msg = html_writer::div(get_string('status_missing', 'core_plugin'), 'statusmsg badge text-bg-danger');
} else if ($status === core_plugin_manager::PLUGIN_STATUS_NEW) {
$row->attributes['class'] .= ' newplugin';
$msg = html_writer::div(get_string('status_new', 'core_plugin'), 'statusmsg badge bg-success text-white');
$msg = html_writer::div(get_string('status_new', 'core_plugin'), 'statusmsg badge text-bg-success');
} else {
$msg = '';
}
$deprecatedmsg = '';
if ($plugin->is_deprecated()) {
// Omit the status for deprecated plugin types, unless it's 'missing from disk'.
$msg = $status == core_plugin_manager::PLUGIN_STATUS_MISSING ? $msg : '';
$deprecatedmsg = html_writer::div(
get_string('deprecated_type', 'core_plugin'),
'statusmsg badge bg-danger text-white'
);
}
$requriedby = $pluginman->other_plugins_that_require($plugin->component);
if ($requriedby) {
$requiredby = html_writer::tag('div', get_string('requiredby', 'core_plugin', implode(', ', $requriedby)),
@@ -1907,7 +1961,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$notes = new html_table_cell($source.$msg.$requiredby.$updateinfo);
$notes = new html_table_cell($source.' '.$msg.' '.$deprecatedmsg.$requiredby.$updateinfo);
$row->cells = array(
$pluginname, $version, $availability, $settings, $uninstall, $notes
@@ -2009,7 +2063,7 @@ class core_admin_renderer extends plugin_renderer_base {
get_string('status'),
);
$servertable->colclasses = array('centeralign name', 'centeralign info', 'leftalign report', 'leftalign plugin', 'centeralign status');
$servertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
$servertable->attributes['class'] = 'table table-striped admintable environmenttable generaltable table-sm';
$servertable->id = 'serverstatus';
$serverdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
@@ -2022,7 +2076,7 @@ class core_admin_renderer extends plugin_renderer_base {
get_string('status'),
);
$othertable->colclasses = array('aligncenter info', 'alignleft report', 'alignleft plugin', 'aligncenter status');
$othertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
$othertable->attributes['class'] = 'table table-striped admintable environmenttable generaltable table-sm';
$othertable->id = 'otherserverstatus';
$otherdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
@@ -2123,29 +2177,33 @@ class core_admin_renderer extends plugin_renderer_base {
} else {
$report = $this->doc_link(join('/', $linkparts), get_string($stringtouse, 'admin', $rec), true);
}
// Enclose report text in div so feedback text will be displayed underneath it.
$report = html_writer::div($report);
// Format error or warning line
if ($errorline) {
$messagetype = 'error';
$statusclass = 'bg-danger text-white';
$feedbackclass = 'alert-danger';
} else if ($warningline) {
$messagetype = 'warn';
$statusclass = 'bg-warning text-dark';
$feedbackclass = 'alert-warning';
} else {
$messagetype = 'ok';
$statusclass = 'bg-success text-white';
$feedbackclass = 'alert-success';
}
$status = html_writer::span($status, 'badge ' . $statusclass);
// Here we'll store all the feedback found
$feedbacktext = '';
// Append the feedback if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getFeedbackStr(), $messagetype);
$feedbacktext .= $environment_result->strToReport($environment_result->getFeedbackStr(),
"alert {$feedbackclass} px-2 py-1 m-1");
//Append the bypass if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getBypassStr(), 'warn');
$feedbacktext .= $environment_result->strToReport($environment_result->getBypassStr(),
'alert alert-warning px-2 py-1 m-1');
//Append the restrict if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(), 'error');
$feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(),
'alert alert-danger px-2 py-1 m-1');
$report .= $feedbacktext;
@@ -2189,10 +2247,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',
@@ -544,7 +544,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$options[$type] = get_string('archetype'.$type, 'role');
}
return html_writer::select($options, 'archetype', $this->role->archetype, false,
array('class' => 'custom-select'));
['class' => 'form-select']);
}
protected function get_assignable_levels_control() {
@@ -83,8 +83,6 @@ class role extends base {
* @return column[]
*/
protected function get_all_columns(): array {
global $DB;
$contextalias = $this->get_table_alias('context');
$rolealias = $this->get_table_alias('role');
@@ -97,9 +95,9 @@ class role extends base {
->add_joins($this->get_joins())
->add_fields("{$rolealias}.name, {$rolealias}.shortname, {$rolealias}.id, {$contextalias}.id AS contextid")
->add_fields(context_helper::get_preload_record_columns_sql($contextalias))
// The sorting is on name, unless empty (determined by single space - thanks Oracle) then we use shortname.
// The sorting is on name, unless empty then we use shortname.
->set_is_sortable(true, [
"CASE WHEN " . $DB->sql_concat("{$rolealias}.name", "' '") . " = ' '
"CASE WHEN COALESCE({$rolealias}.name, '') = ''
THEN {$rolealias}.shortname
ELSE {$rolealias}.name
END",
@@ -123,9 +121,9 @@ class role extends base {
))
->add_joins($this->get_joins())
->add_fields("{$rolealias}.name, {$rolealias}.shortname")
// The sorting is on name, unless empty (determined by single space - thanks Oracle) then we use shortname.
// The sorting is on name, unless empty then we use shortname.
->set_is_sortable(true, [
"CASE WHEN " . $DB->sql_concat("{$rolealias}.name", "' '") . " = ' '
"CASE WHEN COALESCE({$rolealias}.name, '') = ''
THEN {$rolealias}.shortname
ELSE {$rolealias}.name
END",
@@ -161,10 +159,6 @@ class role extends base {
->set_is_sortable(true);
// Description column.
$descriptionfieldsql = "{$rolealias}.description";
if ($DB->get_dbfamily() === 'oracle') {
$descriptionfieldsql = $DB->sql_order_by_text($descriptionfieldsql, 1024);
}
$columns[] = (new column(
'description',
new lang_string('description'),
@@ -172,8 +166,8 @@ class role extends base {
))
->add_joins($this->get_joins())
->set_type(column::TYPE_LONGTEXT)
->add_field($descriptionfieldsql, 'description')
->add_field("{$rolealias}.shortname")
->add_fields("{$rolealias}.description, {$rolealias}.shortname")
->set_is_sortable(true)
->add_callback(fn(?string $description, stdClass $role) => match ($description) {
null => '',
default => role_get_description($role),
+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);
+9 -9
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.
@@ -77,7 +77,7 @@ class provider_test extends provider_testcase {
$course = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$coursecat = $this->getDataGenerator()->create_category();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$cmcontext2 = \context_module::instance($page->cmid);
@@ -125,7 +125,7 @@ class provider_test extends provider_testcase {
$course = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$coursecat = $this->getDataGenerator()->create_category();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$cmcontext2 = \context_module::instance($page->cmid);
@@ -257,7 +257,7 @@ class provider_test extends provider_testcase {
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
@@ -348,7 +348,7 @@ class provider_test extends provider_testcase {
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
@@ -499,8 +499,8 @@ class provider_test extends provider_testcase {
// Create course category.
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
// Create chat module.
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course1->id]);
// Create assignment module.
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course1->id]);
$cmcontext = \context_module::instance($cm->cmid);
$systemcontext = \context_system::instance();
@@ -619,8 +619,8 @@ class provider_test extends provider_testcase {
// Create course category.
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
// Create chat module.
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course1->id]);
// Create assignment module.
$cm = $this->getDataGenerator()->create_module('assign', ['course' => $course1->id]);
$cmcontext = \context_module::instance($cm->cmid);
$systemcontext = \context_system::instance();
@@ -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
@@ -154,7 +149,7 @@ final class roles_test extends core_reportbuilder_testcase {
], true],
'Filter role name (no match)' => ['role:name', [
'role:name_operator' => select::EQUAL_TO,
'role:name_value' => -1,
'role:name_value' => $DB->get_field('role', 'id', ['shortname' => 'teacher']),
], false],
'Filter role archetype' => ['role:archetype', [
'role:archetype_operator' => select::EQUAL_TO,
+29 -10
View File
@@ -30,9 +30,16 @@ if ($hassiteconfig) {
// Add settings page for AI provider settings.
$providers = new admin_settingpage('aiprovider', new lang_string('aiproviders', 'ai'));
$providers->add(new admin_setting_heading('availableproviders',
get_string('availableproviders', 'core_ai'),
get_string('availableproviders_desc', 'core_ai')));
$providers->add(new \core_admin\admin\admin_setting_plugin_manager(
get_string('availableproviders', 'core_ai'),
get_string('availableproviders_desc', 'core_ai')));
// Add call to action to add a new provider.
$providers->add(new \core_admin\admin\admin_setting_template_render(
name: 'addnewprovider',
templatename: 'core_ai/admin_add_provider',
context: ['addnewproviderurl' => new moodle_url('/ai/configure.php')]
));
$providers->add(new \core_ai\admin\admin_setting_provider_manager(
'aiprovider',
\core_ai\table\aiprovider_management_table::class,
'manageaiproviders',
@@ -40,13 +47,6 @@ if ($hassiteconfig) {
));
$ADMIN->add('ai', $providers);
// Load settings for all AI providers.
$plugins = core_plugin_manager::instance()->get_plugins_of_type('aiprovider');
foreach ($plugins as $plugin) {
/** @var \core\plugininfo\aiprovider $plugin */
$plugin->load_settings($ADMIN, 'ai', $hassiteconfig);
}
// Add settings page for AI placement settings.
$placements = new admin_settingpage('aiplacement', new lang_string('aiplacements', 'ai'));
$placements->add(new admin_setting_heading('availableplacements',
@@ -67,3 +67,22 @@ if ($hassiteconfig) {
$plugin->load_settings($ADMIN, 'ai', $hassiteconfig);
}
}
// AI reports category.
$ADMIN->add('reports', new admin_category('aireports', get_string('aireports', 'core_ai')));
// Add AI policy acceptance report.
$aipolicyacceptance = new admin_externalpage(
'aipolicyacceptancereport',
get_string('aipolicyacceptance', 'core_ai'),
new moodle_url('/ai/policy_acceptance_report.php'),
'moodle/ai:viewaipolicyacceptancereport'
);
$ADMIN->add('aireports', $aipolicyacceptance);
// Add AI usage report.
$aiusage = new admin_externalpage(
'aiusagereport',
get_string('aiusage', 'core_ai'),
new moodle_url('/ai/usage_report.php'),
'moodle/ai:viewaiusagereport',
);
$ADMIN->add('aireports', $aiusage);
+6 -1
View File
@@ -2,6 +2,8 @@
// This file defines settingpages and externalpages under the "appearance" category
$ADMIN->add('appearance', new admin_category('themes', new lang_string('themesettingscustom', 'admin')));
$capabilities = array(
'moodle/my:configsyspages',
'moodle/tag:manage'
@@ -330,6 +332,10 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
$temp->add(new admin_setting_configcheckbox('logininfoinsecurelayout',
new lang_string('logininfoinsecurelayout', 'admin'),
new lang_string('logininfoinsecurelayout_desc', 'admin'), 0));
// Process primary navigation (custom menu) through Moodle filters.
$temp->add(new admin_setting_configcheckbox('navfilter',
new lang_string('navfilter', 'admin'),
new lang_string('navfilter_desc', 'admin'), 0));
$temp->add(new admin_setting_configtextarea('custommenuitems', new lang_string('custommenuitems', 'admin'),
new lang_string('configcustommenuitems', 'admin'), '', PARAM_RAW, '50', '10'));
$defaultsettingcustomusermenuitems = [
@@ -355,7 +361,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
new lang_string('themeselector', 'admin'), $CFG->wwwroot . '/admin/themeselector.php'));
// Settings page for each theme.
$ADMIN->add('appearance', new admin_category('themes', new lang_string('themesettingscustom', 'admin')));
foreach (core_component::get_plugin_list('theme') as $theme => $themedir) {
$settingspath = "$themedir/settings.php";
if (file_exists($settingspath)) {
+45 -14
View File
@@ -28,13 +28,22 @@ require_once($CFG->libdir . '/pdflib.php');
use core_admin\local\settings\filesize;
$capabilities = array(
$ADMIN->add('courses', new admin_category('coursedefaultsettings', new lang_string('defaultsettingscategory', 'course')));
$ADMIN->add('courses', new admin_category('groups', new lang_string('groups')));
$ADMIN->add('courses', new admin_category('activitychooser', new lang_string('activitychoosercategory', 'course')));
$ADMIN->add('courses', new admin_category('backups', new lang_string('backups', 'admin')));
$capabilities = [
'moodle/backup:backupcourse',
'moodle/category:manage',
'moodle/course:create',
'moodle/site:approvecourse',
'moodle/restore:restorecourse'
);
'moodle/restore:restorecourse',
'moodle/course:manageactivities',
'moodle/course:configurecustomfields',
'moodle/group:configurecustomfields',
'moodle/course:recommendactivity',
];
if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
// Speedup for non-admins, add all caps used on this page.
$ADMIN->add('courses',
@@ -104,7 +113,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
}
// Add a category for the course Default settings.
$ADMIN->add('courses', new admin_category('coursedefaultsettings', new lang_string('defaultsettingscategory', 'course')));
// Course Default Settings Page.
// NOTE: these settings must be applied after all other settings because they depend on them.
@@ -298,8 +306,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for the Groups.
$ADMIN->add('courses', new admin_category('groups', new lang_string('groups')));
// Add to the 'Groups' category.
$ADMIN->add(
'groups',
new admin_externalpage(
@@ -319,8 +326,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for the Activity Chooser.
$ADMIN->add('courses', new admin_category('activitychooser', new lang_string('activitychoosercategory', 'course')));
// Add to the 'Activity Chooser' category.
$temp = new admin_settingpage('activitychoosersettings', new lang_string('activitychoosersettings', 'course'));
// Tab mode for the activity chooser.
$temp->add(
@@ -372,8 +378,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for backups.
$ADMIN->add('courses', new admin_category('backups', new lang_string('backups','admin')));
// Add to the 'Backups' category.
// Create a page for general backups configuration and defaults.
$temp = new admin_settingpage('backupgeneralsettings', new lang_string('generalbackdefaults', 'backup'), 'moodle/backup:backupcourse');
@@ -415,11 +420,16 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_userscompletion', new lang_string('generaluserscompletion','backup'), new lang_string('configgeneraluserscompletion','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_logs', new lang_string('generallogs','backup'), new lang_string('configgenerallogs','backup'), array('value'=>0, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_histories', new lang_string('generalhistories','backup'), new lang_string('configgeneralhistories','backup'), array('value'=>0, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_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_general_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_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 +441,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 +463,23 @@ 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'),
@@ -585,10 +605,15 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_userscompletion', new lang_string('generaluserscompletion','backup'), new lang_string('configgeneraluserscompletion','backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_logs', new lang_string('generallogs', 'backup'), new lang_string('configgenerallogs', 'backup'), 0));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_histories', new lang_string('generalhistories','backup'), new lang_string('configgeneralhistories','backup'), 0));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_questionbank', new lang_string('generalquestionbank','backup'), new lang_string('configgeneralquestionbank','backup'), 1));
$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 +693,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)));
+3 -3
View File
@@ -2,10 +2,10 @@
// * Miscellaneous settings
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
// Experimental settings page.
$ADMIN->add('development', new admin_category('experimental', new lang_string('experimental', 'admin')));
// Experimental settings page
$ADMIN->add('development', new admin_category('experimental', new lang_string('experimental','admin')));
if ($hassiteconfig) { // Speedup for non-admins, add all caps used on this page.
$temp = new admin_settingpage('experimentalsettings', new lang_string('experimentalsettings', 'admin'));
//TODO: Re-enable cc-import once re-implemented in 2.0.x
+3 -3
View File
@@ -24,10 +24,10 @@
defined('MOODLE_INTERNAL') || die();
if (!$ADMIN->locate('file_redactor')) {
$ADMIN->add('server', new admin_category('file_redactor', get_string('redactor', 'core_files')));
}
if ($hassiteconfig) {
if (!$ADMIN->locate('file_redactor')) {
$ADMIN->add('server', new admin_category('file_redactor', get_string('redactor', 'core_files')));
}
$manager = \core\di::get(\core_files\redactor\manager::class);
+46 -5
View File
@@ -2,6 +2,13 @@
// This file defines settingpages and externalpages under the "grades" section
use core\plugininfo\gradepenalty;
$ADMIN->add('grades', new admin_category('gradereports', new lang_string('reportsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradeimports', new lang_string('importsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradeexports', new lang_string('exportsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradepenalty', new lang_string('gradepenalty', 'grades')));
if (has_capability('moodle/grade:manage', $systemcontext)
or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
@@ -91,7 +98,7 @@ if (has_capability('moodle/grade:manage', $systemcontext)
$temp->add(new admin_setting_my_grades_report());
$temp->add(new admin_setting_configtext('gradereport_mygradeurl', new lang_string('externalurl', 'grades'),
new lang_string('externalurl_desc', 'grades'), ''));
new lang_string('externalurl_desc', 'grades'), ''));
}
$ADMIN->add('grades', $temp);
@@ -181,7 +188,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
// The plugins must implement a settings.php file that adds their admin settings to the $settings object
// Reports
$ADMIN->add('grades', new admin_category('gradereports', new lang_string('reportsettings', 'grades')));
foreach (core_component::get_plugin_list('gradereport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
if (file_exists($plugindir.'/settings.php')) {
@@ -194,7 +200,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
}
// Imports
$ADMIN->add('grades', new admin_category('gradeimports', new lang_string('importsettings', 'grades')));
foreach (core_component::get_plugin_list('gradeimport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
@@ -209,7 +214,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
// Exports
$ADMIN->add('grades', new admin_category('gradeexports', new lang_string('exportsettings', 'grades')));
foreach (core_component::get_plugin_list('gradeexport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
if (file_exists($plugindir.'/settings.php')) {
@@ -221,5 +225,42 @@ if (has_capability('moodle/grade:manage', $systemcontext)
}
}
} // end of speedup
// Penalty.
// Supported modules.
$modules = core_grades\penalty_manager::get_supported_modules();
if (!empty($modules)) {
$temp = new admin_settingpage('supportedplugins', new lang_string('gradepenalty_supportedplugins', 'grades'),
'moodle/grade:manage');
$options = [];
foreach ($modules as $module) {
$options[$module] = new lang_string('modulename', $module);
}
$temp->add(new admin_setting_configmultiselect('gradepenalty_enabledmodules',
new lang_string('gradepenalty_enabledmodules', 'grades'),
new lang_string('gradepenalty_enabledmodules_help', 'grades'), [], $options));
$ADMIN->add('gradepenalty', $temp);
}
// External page to manage the penalty plugins.
$temp = new admin_externalpage(
'managepenaltyplugins',
get_string('managepenaltyplugins', 'grades'),
new moodle_url('/grade/penalty/manage_penalty_plugins.php'),
'moodle/grade:manage'
);
$ADMIN->add('gradepenalty', $temp);
// Settings from each penalty plugin.
foreach (core_component::get_plugin_list('gradepenalty') as $plugin => $plugindir) {
// Check if the plugin is enabled.
if (gradepenalty::is_plugin_enabled($plugin)) {
// Include all the settings commands for this plugin if there are any.
if (file_exists($plugindir . '/settings.php')) {
include($plugindir . '/settings.php');
}
}
}
} // end of speedup
-3
View File
@@ -39,9 +39,6 @@ if (isset($CFG->mnet_dispatcher_mode) and $CFG->mnet_dispatcher_mode !== 'off')
$ADMIN->add('mnet', new admin_externalpage('ssoaccesscontrol', new lang_string('ssoaccesscontrol', 'mnet'),
"$CFG->wwwroot/$CFG->admin/mnet/access_control.php",
'moodle/site:config'));
$ADMIN->add('mnet', new admin_externalpage('mnetenrol', new lang_string('clientname', 'mnetservice_enrol'),
"$CFG->wwwroot/mnet/service/enrol/index.php",
'moodle/site:config'));
$ADMIN->add('mnet', new admin_externalpage('trustedhosts', new lang_string('trustedhosts', 'mnet'),
"$CFG->wwwroot/$CFG->admin/mnet/trustedhosts.php",
'moodle/site:config'));
+34 -42
View File
@@ -24,6 +24,40 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
$ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats')));
$ADMIN->add('modules', new admin_category('customfieldsettings', new lang_string('customfields', 'core_customfield')));
$ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks')));
$ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
$ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol')));
$ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor')));
$ADMIN->add('modules', new admin_category('antivirussettings', new lang_string('antiviruses', 'antivirus')));
$ADMIN->add('modules', new admin_category('mlbackendsettings', new lang_string('mlbackendsettings', 'admin')));
$ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters')));
$ADMIN->add('modules', new admin_category('mediaplayers', new lang_string('type_media_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('fileconverterplugins', new lang_string('type_fileconverter_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('paymentgateways', new lang_string('type_paygw_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('dataformatsettings', new lang_string('dataformats')));
$ADMIN->add('modules', new admin_category('portfoliosettings', new lang_string('portfolios', 'portfolio'),
empty($CFG->enableportfolios)));
$ADMIN->add('modules', new admin_category('repositorysettings', new lang_string('repositories', 'repository')));
$ADMIN->add('modules', new admin_category('qbanksettings', new lang_string('type_qbank_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin')));
$ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin')));
$ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism')));
$ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports')));
$ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports')));
$ADMIN->add('modules', new admin_category('searchplugins', new lang_string('search', 'admin')));
$ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
$ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache')));
$ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache')));
$ADMIN->add('modules', new admin_category('calendartype', new lang_string('calendartypes', 'calendar')));
$ADMIN->add('modules', new admin_category('communicationsettings', new lang_string('communication', 'core_communication')));
$ADMIN->add('modules', new admin_category('sms', new lang_string('sms', 'core_sms')));
$ADMIN->add('modules', new admin_category('contentbanksettings', new lang_string('contentbank')));
$ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins')));
if ($hassiteconfig) {
/* @var admin_root $ADMIN */
$ADMIN->locate('modules')->set_sorting(true);
@@ -31,7 +65,6 @@ if ($hassiteconfig) {
$ADMIN->add('modules', new admin_page_pluginsoverview());
// activity modules
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
$ADMIN->add('modsettings', new admin_page_managemods());
@@ -48,7 +81,6 @@ if ($hassiteconfig) {
}
// course formats
$ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats')));
$temp = new admin_settingpage('manageformats', new lang_string('manageformats', 'core_admin'));
$temp->add(new admin_setting_manageformats());
$ADMIN->add('formatsettings', $temp);
@@ -60,7 +92,6 @@ if ($hassiteconfig) {
}
// Custom fields.
$ADMIN->add('modules', new admin_category('customfieldsettings', new lang_string('customfields', 'core_customfield')));
$temp = new admin_settingpage('managecustomfields', new lang_string('managecustomfields', 'core_admin'));
$temp->add(new admin_setting_managecustomfields());
$ADMIN->add('customfieldsettings', $temp);
@@ -72,7 +103,6 @@ if ($hassiteconfig) {
}
// blocks
$ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks')));
$ADMIN->add('blocksettings', new admin_page_manageblocks());
$plugins = core_plugin_manager::instance()->get_plugins_of_type('block');
core_collator::asort_objects_by_property($plugins, 'displayname');
@@ -82,8 +112,6 @@ if ($hassiteconfig) {
}
// authentication plugins
$ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
$temp = new admin_settingpage('manageauths', new lang_string('authsettings', 'admin'));
$temp->add(new admin_setting_manageauths());
$temp->add(new admin_setting_heading('manageauthscommonheading', new lang_string('commonsettings', 'admin'), ''));
@@ -160,7 +188,6 @@ if ($hassiteconfig) {
}
// Enrolment plugins
$ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol')));
$temp = new admin_settingpage('manageenrols', new lang_string('manageenrols', 'enrol'));
$temp->add(new admin_setting_manageenrols());
$ADMIN->add('enrolments', $temp);
@@ -177,7 +204,6 @@ if ($hassiteconfig) {
/// Editor plugins
$ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor')));
$temp = new admin_settingpage('manageeditors', new lang_string('editorsettings', 'editor'));
$temp->add(new \core_admin\admin\admin_setting_plugin_manager(
'editor',
@@ -194,7 +220,6 @@ if ($hassiteconfig) {
}
// Antivirus plugins.
$ADMIN->add('modules', new admin_category('antivirussettings', new lang_string('antiviruses', 'antivirus')));
$temp = new admin_settingpage('manageantiviruses', new lang_string('antivirussettings', 'antivirus'));
$temp->add(new admin_setting_manageantiviruses());
@@ -266,14 +291,12 @@ if ($hassiteconfig) {
}
// Machine learning backend plugins.
$ADMIN->add('modules', new admin_category('mlbackendsettings', new lang_string('mlbackendsettings', 'admin')));
$plugins = core_plugin_manager::instance()->get_plugins_of_type('mlbackend');
foreach ($plugins as $plugin) {
$plugin->load_settings($ADMIN, 'mlbackendsettings', $hassiteconfig);
}
/// Filter plugins
$ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters')));
$ADMIN->add('filtersettings', new admin_page_managefilters());
@@ -303,7 +326,6 @@ if ($hassiteconfig) {
}
// Media players.
$ADMIN->add('modules', new admin_category('mediaplayers', new lang_string('type_media_plural', 'plugin')));
$temp = new admin_settingpage('managemediaplayers', new lang_string('managemediaplayers', 'media'));
$temp->add(new admin_setting_heading('mediaformats', get_string('mediaformats', 'core_media'),
format_text(get_string('mediaformats_desc', 'core_media'), FORMAT_MARKDOWN)));
@@ -323,7 +345,6 @@ if ($hassiteconfig) {
$ADMIN->add('mediaplayers', $temp);
// Convert plugins.
$ADMIN->add('modules', new admin_category('fileconverterplugins', new lang_string('type_fileconverter_plural', 'plugin')));
$temp = new admin_settingpage('managefileconverterplugins', new lang_string('type_fileconvertermanage', 'plugin'));
$temp->add(new admin_setting_manage_fileconverter_plugins());
$ADMIN->add('fileconverterplugins', $temp);
@@ -343,7 +364,6 @@ if ($hassiteconfig) {
}
// Payment gateway plugins.
$ADMIN->add('modules', new admin_category('paymentgateways', new lang_string('type_paygw_plural', 'plugin')));
$temp = new admin_settingpage('managepaymentgateways', new lang_string('type_paygwmanage', 'plugin'));
$temp->add(new \core_admin\local\settings\manage_payment_gateway_plugins());
$temp->add(new admin_setting_description(
@@ -362,7 +382,6 @@ if ($hassiteconfig) {
}
// Data format settings.
$ADMIN->add('modules', new admin_category('dataformatsettings', new lang_string('dataformats')));
$temp = new admin_settingpage('managedataformats', new lang_string('managedataformats'));
$temp->add(new admin_setting_managedataformats());
$ADMIN->add('dataformatsettings', $temp);
@@ -376,12 +395,9 @@ if ($hassiteconfig) {
//== Portfolio settings ==
require_once($CFG->libdir. '/portfoliolib.php');
$catname = new lang_string('portfolios', 'portfolio');
$manage = new lang_string('manageportfolios', 'portfolio');
$url = "$CFG->wwwroot/$CFG->admin/portfolio.php";
$ADMIN->add('modules', new admin_category('portfoliosettings', $catname, empty($CFG->enableportfolios)));
// Add manage page (with table)
$temp = new admin_page_manageportfolios();
$ADMIN->add('portfoliosettings', $temp);
@@ -435,10 +451,8 @@ if ($hassiteconfig) {
// repository setting
require_once("$CFG->dirroot/repository/lib.php");
$catname =new lang_string('repositories', 'repository');
$managerepo = new lang_string('manage', 'repository');
$url = $CFG->wwwroot.'/'.$CFG->admin.'/repository.php';
$ADMIN->add('modules', new admin_category('repositorysettings', $catname));
// Add main page (with table)
$temp = new admin_page_managerepositories();
@@ -474,8 +488,6 @@ if ($hassiteconfig) {
// Question bank settings.
if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext)) {
$ADMIN->add('modules', new admin_category('qbanksettings',
new lang_string('type_qbank_plural', 'plugin')));
$temp = new admin_settingpage('manageqbanks', new lang_string('manageqbanks', 'admin'));
$temp->add(new \core_question\admin\manage_qbank_plugins_page());
$ADMIN->add('qbanksettings', $temp);
@@ -491,11 +503,9 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext)) {
// Question behaviour settings.
$ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin')));
$ADMIN->add('qbehavioursettings', new admin_page_manageqbehaviours());
// Question type settings.
$ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin')));
$ADMIN->add('qtypesettings', new admin_page_manageqtypes());
// Question preview defaults.
@@ -567,7 +577,6 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
// Plagiarism plugin settings
if ($hassiteconfig && !empty($CFG->enableplagiarism)) {
$ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism')));
$ADMIN->add('plagiarism', new admin_externalpage('manageplagiarismplugins', new lang_string('manageplagiarism', 'plagiarism'),
$CFG->wwwroot . '/' . $CFG->admin . '/plagiarism.php'));
@@ -599,7 +608,6 @@ if ($hassiteconfig) {
}
}
if (!empty($pages)) {
$ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports')));
core_collator::asort_objects_by_property($pages, 'visiblename');
foreach ($pages as $page) {
$ADMIN->add('coursereports', $page);
@@ -621,7 +629,6 @@ foreach (core_component::get_plugin_list('report') as $report => $plugindir) {
}
}
}
$ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports')));
$ADMIN->add('reportplugins', new admin_externalpage('managereports', new lang_string('reportsmanage', 'admin'),
$CFG->wwwroot . '/' . $CFG->admin . '/reports.php'));
core_collator::asort_objects_by_property($pages, 'visiblename');
@@ -631,7 +638,6 @@ foreach ($pages as $page) {
if ($hassiteconfig) {
// Global Search engine plugins.
$ADMIN->add('modules', new admin_category('searchplugins', new lang_string('search', 'admin')));
$temp = new admin_settingpage('manageglobalsearch', new lang_string('globalsearchmanage', 'admin'));
$pages = array();
@@ -773,7 +779,6 @@ if ($hassiteconfig) {
/// Add all admin tools
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
$settingspage = new admin_settingpage('toolsmanagement', new lang_string('toolsmanage', 'admin'));
$ADMIN->add('tools', $settingspage);
$settingspage->add(new \core_admin\admin\admin_setting_plugin_manager(
@@ -794,12 +799,10 @@ foreach ($plugins as $plugin) {
// Now add the Cache plugins
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache')));
$ADMIN->add('cache', new admin_externalpage('cacheconfig', new lang_string('cacheconfig', 'cache'), $CFG->wwwroot .'/cache/admin.php'));
$ADMIN->add('cache', new admin_externalpage('cachetestperformance', new lang_string('testperformance', 'cache'), $CFG->wwwroot . '/cache/testperformance.php'));
$ADMIN->add('cache', new admin_externalpage('cacheusage',
new lang_string('cacheusage', 'cache'), $CFG->wwwroot . '/cache/usage.php'));
$ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache')));
$ADMIN->locate('cachestores')->set_sorting(true);
foreach (core_component::get_plugin_list('cachestore') as $plugin => $path) {
$settingspath = $path.'/settings.php';
@@ -813,7 +816,6 @@ if ($hassiteconfig) {
// Add Calendar type settings.
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('calendartype', new lang_string('calendartypes', 'calendar')));
$plugins = core_plugin_manager::instance()->get_plugins_of_type('calendartype');
core_collator::asort_objects_by_property($plugins, 'displayname');
foreach ($plugins as $plugin) {
@@ -824,7 +826,6 @@ if ($hassiteconfig) {
// Communication plugins.
if ($hassiteconfig && core_communication\api::is_available()) {
$ADMIN->add('modules', new admin_category('communicationsettings', new lang_string('communication', 'core_communication')));
$temp = new admin_settingpage('managecommunicationproviders',
new lang_string('managecommunicationproviders', 'core_communication'));
$temp->add(new \core_communication\admin\manage_communication_providers_page());
@@ -838,13 +839,6 @@ if ($hassiteconfig && core_communication\api::is_available()) {
// SMS plugins.
if ($hassiteconfig) {
$ADMIN->add(
'modules',
new admin_category(
'sms',
new lang_string('sms', 'core_sms'),
),
);
$ADMIN->add(
'sms',
new admin_externalpage(
@@ -869,7 +863,6 @@ if ($hassiteconfig) {
// Content bank content types.
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('contentbanksettings', new lang_string('contentbank')));
$temp = new admin_settingpage('managecontentbanktypes', new lang_string('managecontentbanktypes'));
$temp->add(new admin_setting_managecontentbankcontenttypes());
$ADMIN->add('contentbanksettings', $temp);
@@ -888,7 +881,6 @@ if ($hassiteconfig) {
/// Add all local plugins - must be always last!
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins')));
$ADMIN->add('localplugins', new admin_externalpage('managelocalplugins', new lang_string('localpluginsmanage'),
$CFG->wwwroot . '/' . $CFG->admin . '/localplugins.php'));
}
+12
View File
@@ -64,3 +64,15 @@ $settings->add(new admin_setting_configcheckbox(
new lang_string('customreportsliveediting_desc', 'core_reportbuilder'), 1));
$ADMIN->add('reportbuilder', $settings);
$ADMIN->add(
'reportbuilder', new accesscallback(
'reportbuildercustomfields',
get_string('reportbuildercustomfields', 'core_reportbuilder'),
(new moodle_url('/reportbuilder/customfield.php'))->out(),
static function(): bool {
return has_capability('moodle/reportbuilder:configurecustomfields', context_system::instance());
},
empty($CFG->enablecustomreports)
)
);
+1 -1
View File
@@ -147,7 +147,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$sensiblesettingsdefault .= 'secretphrase@@url, cronremotepassword@@none, smtpuser@@none, ';
$sensiblesettingsdefault .= 'smtppass@@none, proxypassword@@none, quizpassword@@quiz, allowedip@@none, blockedip@@none, ';
$sensiblesettingsdefault .= 'dbpass@@logstore_database, messageinbound_hostpass@@none, ';
$sensiblesettingsdefault .= 'bind_pw@@auth_cas, pass@@auth_db, bind_pw@@auth_ldap, ';
$sensiblesettingsdefault .= 'pass@@auth_db, bind_pw@@auth_ldap, ';
$sensiblesettingsdefault .= 'dbpass@@enrol_database, bind_pw@@enrol_ldap, ';
$sensiblesettingsdefault .= 'server_password@@search_solr, ssl_keypassword@@search_solr, ';
$sensiblesettingsdefault .= 'alternateserver_password@@search_solr, alternatessl_keypassword@@search_solr, ';
+14 -5
View File
@@ -25,6 +25,10 @@
defined('MOODLE_INTERNAL') || die();
$ADMIN->add('server', new admin_category('taskconfig', new lang_string('taskadmintitle', 'admin')));
$ADMIN->add('server', new admin_category('email', new lang_string('categoryemail', 'admin')));
$ADMIN->add('server', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
if ($hassiteconfig) {
// System paths.
$temp = new admin_settingpage('systempaths', new lang_string('systempaths', 'admin'));
@@ -181,8 +185,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'),
@@ -325,7 +337,6 @@ if ($hassiteconfig) {
$ADMIN->add('server', $temp);
// Tasks.
$ADMIN->add('server', new admin_category('taskconfig', new lang_string('taskadmintitle', 'admin')));
// Task processing.
$temp = new admin_settingpage('taskprocessing', new lang_string('taskprocessing', 'admin'));
@@ -459,7 +470,6 @@ if ($hassiteconfig) {
}
// Email.
$ADMIN->add('server', new admin_category('email', new lang_string('categoryemail', 'admin')));
// Outgoing mail configuration.
$temp = new admin_settingpage('outgoingmailconfig', new lang_string('outgoingmailconfig', 'admin'));
@@ -631,7 +641,6 @@ if ($hassiteconfig) {
}
// Web services.
$ADMIN->add('server', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
// Web services > Overview.
$temp = new admin_settingpage('webservicesoverview', new lang_string('webservicesoverview', 'webservice'));
+2 -2
View File
@@ -46,9 +46,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$optionalsubsystems->add(new admin_setting_configcheckbox('allowstealth', new lang_string('allowstealthmodules'),
new lang_string('allowstealthmodules_help'), 0, 1, 0));
// TODO: Analytics is now disable on new installs until MDL-84481 overcomes the config of mlbackend_python.
$optionalsubsystems->add(new admin_setting_configcheckbox('enableanalytics', new lang_string('enableanalytics', 'admin'),
new lang_string('configenableanalytics', 'admin'), 1, 1, 0));
new lang_string('configenableanalytics', 'admin'), 0, 1, 0));
$optionalsubsystems->add(new admin_setting_configcheckbox('core_competency/enabled',
new lang_string('enablecompetencies', 'core_competency'),
+14 -8
View File
@@ -6,14 +6,20 @@ $ADMIN->add('users', new admin_category('accounts', new lang_string('accounts',
$ADMIN->add('users', new admin_category('roles', new lang_string('permissions', 'role')));
$ADMIN->add('users', new admin_category('privacy', new lang_string('privacyandpolicies', 'admin')));
if ($hassiteconfig
or has_capability('moodle/user:create', $systemcontext)
or has_capability('moodle/user:update', $systemcontext)
or has_capability('moodle/user:delete', $systemcontext)
or has_capability('moodle/role:manage', $systemcontext)
or has_capability('moodle/role:assign', $systemcontext)
or has_capability('moodle/cohort:manage', $systemcontext)
or has_capability('moodle/cohort:view', $systemcontext)) { // Speedup for non-admins, add all caps used on this page.
$capabilities = [
'moodle/user:create',
'moodle/user:update',
'moodle/user:delete',
'moodle/role:manage',
'moodle/role:assign',
'moodle/cohort:manage',
'moodle/cohort:view',
'moodle/cohort:configurecustomfields',
'moodle/role:safeoverride',
'moodle/role:override',
];
if ($hassiteconfig || has_any_capability($capabilities, $systemcontext)) { // Speedup for non-admins, all caps used on this page.
// Stuff under the "accounts" subcategory.
+7 -9
View File
@@ -28,9 +28,6 @@
<div class="simplesearchform d-flex justify-content-end">
<form autocomplete="off" action="{{action}}" method="get" accept-charset="utf-8" class="mform d-flex flex-wrap align-items-center simplesearchform">
<div class="input-group">
<label for="searchinput-{{uniqid}}">
<span class="sr-only">{{#str}} search, core {{/str}}</span>
</label>
<input type="text"
id="searchinput-{{uniqid}}"
class="form-control"
@@ -41,12 +38,13 @@
autocomplete="off"
{{#query}}value="{{.}}"{{/query}}
>
<div class="input-group-append">
<button type="submit" class="btn btn-primary search-icon">
{{#pix}} a/search, core {{/pix}}
<span class="sr-only">{{#str}} search, core {{/str}}</span>
</button>
</div>
<label for="searchinput-{{uniqid}}">
<span class="visually-hidden">{{#str}} search, core {{/str}}</span>
</label>
<button type="submit" class="btn btn-primary search-icon">
{{#pix}} a/search, core {{/pix}}
<span class="visually-hidden">{{#str}} search, core {{/str}}</span>
</button>
</div>
</form>
</div>
@@ -59,9 +59,9 @@
Setting autocomplete.
}}
<div class="form-select defaultsnext">
<div class="defaultsnext">
<input type="hidden" name="{{name}}[xxxxx]" value="_qf__force_multiselect_submission">
<select class="custom-select" name="{{name}}[]"
<select class="form-select" name="{{name}}[]"
id="{{id}}"
{{#multiple}}multiple{{/multiple}}>
{{#options}}
+1 -1
View File
@@ -81,7 +81,7 @@
{{#default}}
<div class="form-defaultinfo text-muted {{#forceltr}}text-ltr{{/forceltr}}">{{{default}}}</div>
{{/default}}
<div class="form-description mt-3">{{{description}}}</div>
<div class="form-text mt-2">{{{description}}}</div>
{{#dependenton}}<div class="form-dependenton mb-4 text-muted">{{{.}}}</div>{{/dependenton}}
</div>
</div>
@@ -41,8 +41,8 @@
<div class="form-duration defaultsnext">
<div class="d-flex flex-wrap align-items-center">
<input type="text" size="5" id="{{id}}v" name="{{name}}[v]" value="{{value}}" class="form-control text-ltr" {{#readonly}}disabled{{/readonly}}>
<label class="sr-only" for="{{id}}u">{{#str}}durationunits, admin{{/str}}</label>
<select id="{{id}}u" name="{{name}}[u]" class="form-control custom-select" {{#readonly}}disabled{{/readonly}}>
<label class="visually-hidden" for="{{id}}u">{{#str}}durationunits, admin{{/str}}</label>
<select id="{{id}}u" name="{{name}}[u]" class="form-control form-select" {{#readonly}}disabled{{/readonly}}>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
@@ -41,8 +41,8 @@
<div class="form-filesize defaultsnext">
<div class="d-flex flex-wrap align-items-center">
<input type="text" size="5" id="{{id}}v" name="{{name}}[v]" value="{{value}}" class="form-control text-ltr" {{#readonly}}disabled{{/readonly}}>
<label class="sr-only" for="{{id}}u">{{#str}}filesizeunits, admin{{/str}}</label>
<select id="{{id}}u" name="{{name}}[u]" class="form-control custom-select" {{#readonly}}disabled{{/readonly}}>
<label class="visually-hidden" for="{{id}}u">{{#str}}filesizeunits, admin{{/str}}</label>
<select id="{{id}}u" name="{{name}}[u]" class="form-control form-select" {{#readonly}}disabled{{/readonly}}>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
@@ -39,7 +39,7 @@
{{!
Setting configmultiselect.
}}
<div class="form-select">
<div>
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
@@ -58,7 +58,7 @@
{{!
Setting configmultiselect with optgroup support.
}}
<div class="form-select">
<div>
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
@@ -39,8 +39,8 @@
{{!
Setting configselect.
}}
<div class="form-select defaultsnext">
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}" class="custom-select">
<div class="defaultsnext">
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}" class="form-select">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
@@ -56,8 +56,8 @@
{{!
Setting configselect with optgroup support.
}}
<div class="form-select defaultsnext">
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}" class="custom-select">
<div class="defaultsnext">
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}" class="form-select">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
+4 -4
View File
@@ -46,14 +46,14 @@
}}
<div class="form-time defaultsnext">
<div class="d-flex flex-wrap align-items-center text-ltr">
<label class="sr-only" for="{{id}}h">{{#str}}hours{{/str}}</label>
<select id="{{id}}h" name="{{name}}[h]" class="custom-select" {{#readonly}}disabled{{/readonly}}>
<label class="visually-hidden" for="{{id}}h">{{#str}}hours{{/str}}</label>
<select id="{{id}}h" name="{{name}}[h]" class="form-select" {{#readonly}}disabled{{/readonly}}>
{{#hours}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/hours}}
</select>:
<label class="sr-only" for="{{id}}m">{{#str}}minutes{{/str}}</label>
<select id="{{id}}m" name="{{name}}[m]" class="custom-select" {{#readonly}}disabled{{/readonly}}>
<label class="visually-hidden" for="{{id}}m">{{#str}}minutes{{/str}}</label>
<select id="{{id}}m" name="{{name}}[m]" class="form-select" {{#readonly}}disabled{{/readonly}}>
{{#minutes}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/minutes}}
@@ -29,7 +29,7 @@
* state - state of the toggle
* title - title of the toggle tooltip
* label - label of the toggle
* labelclasses - classes for the label (sr-only for screen readers)
* labelclasses - classes for the label (visually-hidden for screen readers)
Example context (json):
{
@@ -44,7 +44,7 @@
}],
"title": "Title example",
"label": "Enable/disable reality",
"labelclasses": "sr-only"
"labelclasses": "visually-hidden"
}
}}
<div id="container-{{id}}"
@@ -42,7 +42,7 @@
}}
<div class="mb-3">
{{#selects}}
<select id="{{id}}{{key}}" name="{{name}}[]" class="custom-select mb-1">
<select id="{{id}}{{key}}" name="{{name}}[]" class="form-select mb-1">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
+1 -1
View File
@@ -41,6 +41,6 @@
</label>
</div>
<div class="form-setting col-sm-9">
<div class="form-description">{{{description}}}</div>
<div class="form-text">{{{description}}}</div>
</div>
</div>
@@ -39,7 +39,7 @@
Setting configselect.
}}
<div class="mb-3">
<select id="{{id}}" name="{{name}}[value]" class="form-select custom-select">
<select id="{{id}}" name="{{name}}[value]" class="form-select">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
@@ -52,7 +52,7 @@
data-choose="{{choose}}"
data-sesskey="{{sesskey}}">
<i class="icon fa fa-info-circle m-0" aria-hidden="true"></i>
<span class="sr-only">{{#str}}previewthemename, moodle, {{name}}{{/str}}</span>
<span class="visually-hidden">{{#str}}previewthemename, moodle, {{name}}{{/str}}</span>
</button>
{{#reporturl}}
<a
@@ -61,7 +61,7 @@
class="btn btn-link p-0 ms-2"
title="{{#str}}themeusagereportname, admin, {{name}}{{/str}}">
<i class="icon fa fa-area-chart m-0" aria-hidden="true"></i>
<span class="sr-only">{{#str}}themeusagereportname, admin, {{name}}{{/str}}</span>
<span class="visually-hidden">{{#str}}themeusagereportname, admin, {{name}}{{/str}}</span>
</a>
{{/reporturl}}
{{#settingsurl}}
@@ -71,7 +71,7 @@
class="btn btn-link p-0 ms-2"
title="{{#str}}themeeditsettingsname, admin, {{name}}{{/str}}">
<i class="icon fa fa-cog m-0" aria-hidden="true"></i>
<span class="sr-only">{{#str}}themeeditsettingsname, admin, {{name}}{{/str}}</span>
<span class="visually-hidden">{{#str}}themeeditsettingsname, admin, {{name}}{{/str}}</span>
</a>
{{/settingsurl}}
</div>
@@ -91,7 +91,7 @@
<input type="hidden" name="choose" value="{{choose}}">
<button type="submit" class="btn btn-primary">
<span aria-hidden="true">{{#str}}selecttheme, moodle{{/str}}</span>
<span class="sr-only">{{#str}}selectthemename, moodle, {{name}}{{/str}}</span>
<span class="visually-hidden">{{#str}}selectthemename, moodle, {{name}}{{/str}}</span>
</button>
</form>
{{/actionurl}}
+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");
}
}
+2 -5
View File
@@ -171,9 +171,7 @@ Feature: An administrator can browse user accounts
| User Two | two@example.com |
| User Three | three@example.com |
And I click on "Filters" "button"
And I set the following fields in the "System role" "core_reportbuilder > Filter" to these values:
| System role operator | Is equal to |
| System role value | Course creator |
And I set the field "System role value" in the "System role" "core_reportbuilder > Filter" to "Course creator"
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
And I click on "Filters" "button"
And I should see "User One" in the "reportbuilder-table" "table"
@@ -181,8 +179,7 @@ Feature: An administrator can browse user accounts
And I should not see "User Three" in the "reportbuilder-table" "table"
And I click on "Filters" "button"
And I click on "Reset all" "button" in the "[data-region='report-filters']" "css_element"
And I set the following fields in the "Course role" "core_reportbuilder > Filter" to these values:
| Role name | Teacher |
And I set the field "Role name" in the "Course role" "core_reportbuilder > Filter" to "Teacher"
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
And I click on "Filters" "button"
And I should not see "User One" in the "reportbuilder-table" "table"
@@ -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',
+35 -15
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'));
@@ -86,49 +86,69 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
return [
[
'initialstate' => 'textarea,tiny',
'pluginname' => 'editor_textarea',
'plugin' => 'editor_textarea',
'direction' => 1, // DOWN.
'expected' => $getorder([
'neworder' => $getorder([
'tiny',
'textarea',
]),
'newtexteditors' => 'tiny,textarea',
'newstate' => 'tiny,textarea',
],
[
'initialstate' => 'textarea,tiny',
'pluginname' => 'editor_textarea',
'plugin' => 'editor_textarea',
'direction' => -1, // UP.
'expected' => $getorder([
'neworder' => $getorder([
'textarea',
'tiny',
]),
'newtexteditors' => 'textarea,tiny',
'newstate' => 'textarea,tiny',
],
[
'initialstate' => 'textarea,tiny',
'pluginname' => 'editor_tiny',
'plugin' => 'editor_tiny',
'direction' => 1, // DOWN.
// Tiny is already at the bottom of the list of enabled plugins.
'expected' => $getorder([
'neworder' => $getorder([
'textarea',
'tiny',
]),
'newtexteditors' => 'textarea,tiny',
'newstate' => 'textarea,tiny',
],
[
'initialstate' => 'textarea,tiny',
'pluginname' => 'editor_atto',
'plugin' => 'editor_atto',
'direction' => 1, // DOWN.
// Atto is not enabled. Disabled editors are listed lexically after enabled editors.
'expected' => $getorder([
'neworder' => $getorder([
'textarea',
'tiny',
]),
'newtexteditors' => 'textarea,tiny',
'newstate' => 'textarea,tiny',
],
];
}
/**
* Test re-ordering plugins where one plugin is not enabled.
*
* Media plugins are ordered by rank, with enabled plugins first.
* This is similar to the editors test but covers a scenario that cannot be covered by the editors test due to
* not having enough plugins.
*/
public function test_execute_media_including_disabled(): void {
global $CFG;
$this->resetAfterTest();
$this->setAdminUser();
$CFG->media_plugins_sortorder = 'videojs,vimeo,html5video';
set_plugin_order::execute('youtube', -1);
$this->assertSame('videojs,vimeo,html5video', $CFG->media_plugins_sortorder);
}
/**
* Text execute method for plugins which do not support ordering.
*
@@ -142,7 +162,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\local\filters\{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],
@@ -141,10 +136,12 @@ class task_logs_test extends core_reportbuilder_testcase {
'task_log:output_operator' => text::IS_EMPTY,
], false],
'Filter result' => ['task_log:result', [
'task_log:result_operator' => boolean_select::CHECKED,
'task_log:result_operator' => select::EQUAL_TO,
'task_log:result_value' => 0,
], true],
'Filter result (no match)' => ['task_log:result', [
'task_log:result_operator' => boolean_select::NOT_CHECKED,
'task_log:result_operator' => select::EQUAL_TO,
'task_log:result_value' => 1,
], false],
'Filter time start' => ['task_log:timestart', [
'task_log:timestart_operator' => date::DATE_RANGE,
@@ -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}
+9
View File
@@ -0,0 +1,9 @@
# tool_admin_presets Upgrade notes
## 5.0
### Deprecated
- behat_admin_presets::following_in_the_should_download_between_and_bytes is deprecated. Use: the following element should download a file that:
For more information see [MDL-83035](https://tracker.moodle.org/browse/MDL-83035)
@@ -81,7 +81,6 @@ class admin_preset extends base {
* @return column[]
*/
protected function get_all_columns(): array {
global $DB;
$apalias = $this->get_table_alias('adminpresets');
// Name.
@@ -106,10 +105,6 @@ class admin_preset extends base {
});
// Description.
$descriptionfieldsql = "{$apalias}.comments";
if ($DB->get_dbfamily() === 'oracle') {
$descriptionfieldsql = $DB->sql_order_by_text($descriptionfieldsql, 1024);
}
$columns[] = (new column(
'description',
new lang_string('description'),
@@ -117,9 +112,9 @@ class admin_preset extends base {
))
->add_joins($this->get_joins())
->set_type(column::TYPE_LONGTEXT)
->add_field($descriptionfieldsql, 'description')
->add_field("{$apalias}.comments")
->set_is_sortable(true)
->set_callback(static function(?string $description, \stdClass $row): string {
->set_callback(static function(?string $description): string {
return format_text($description, FORMAT_HTML, ['context' => \context_system::instance()]);
});
@@ -45,7 +45,7 @@
{{#skippedchanges.show}}
{{#skippedchanges.heading}}
<h3>
<a data-toggle="collapse" href="#collapseSkippedChanges" role="button" aria-expanded="false" aria-controls="collapseSkippedChanges">
<a data-bs-toggle="collapse" href="#collapseSkippedChanges" role="button" aria-expanded="false" aria-controls="collapseSkippedChanges">
{{{.}}}
</a>
</h3>
@@ -30,7 +30,6 @@ Feature: I can apply presets
And I should see "Activities" in the "Setting changes" "table"
And I should see "Activity chooser tabs" in the "Setting changes" "table"
And I should see "Adaptive mode (no penalties)" in the "Setting changes" "table"
And I should see "Analytics" in the "Setting changes" "table"
And I should see "Blog menu" in the "Setting changes" "table"
And I should see "Blog tags" in the "Setting changes" "table"
And I should see "Calculated" in the "Setting changes" "table"
@@ -73,7 +72,6 @@ Feature: I can apply presets
And "Maximum number of attachments" row "Current value" column of "Setting changes" table should contain "9"
And "Maximum number of attachments" row "New value" column of "Setting changes" table should contain "3"
And I should see "Mentees" in the "Setting changes" "table"
And I should see "Network servers" in the "Setting changes" "table"
And I should see "Numerical" in the "Setting changes" "table"
And I should see "Online users" in the "Setting changes" "table"
And I should see "Private files" in the "Setting changes" "table"
@@ -1,130 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Steps definitions related with admin presets.
*
* @package tool_admin_presets
* @category test
* @copyright 2021 Pimenko <support@pimenko.com><pimenko.com>
* @author Sylvain Revenu | Pimenko
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
require_once(__DIR__ . '/../../../../../lib/behat/behat_base.php');
require_once(__DIR__ . '/../../../../../lib/behat/behat_field_manager.php');
use Behat\Mink\Exception\ExpectationException as ExpectationException;
/**
* Steps definitions related with admin presets.
*
* @package tool_admin_presets
* @category test
* @copyright 2021 Pimenko <support@pimenko.com><pimenko.com>
* @author Sylvain Revenu | Pimenko
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class behat_admin_presets extends behat_base {
/**
* Downloads the file from a specific link on the page and checks the size is in a given range.
*
* Only works if the link has an href attribute. Javascript downloads are
* not supported. Currently, the href must be an absolute URL.
*
* The range includes the endpoints. That is, a 10 byte file in considered to
* be between "5" and "10" bytes, and between "10" and "20" bytes.
*
* @Then /^following "(?P<link_string>[^"]*)" "(?P<selector_string>[^"]*)" in the "(?P<element_container_string>(?:[^"]|\\")*)" "(?P<text_selector_string>[^"]*)" should download between "(?P<min_bytes>\d+)" and "(?P<max_bytes>\d+)" bytes$/
* @param string $link the text of the link.
* @param string $selectortype The type of what we look for
* @param string $nodeelement Element we look in
* @param string $nodeselectortype The type of selector where we look in
* @param int $minexpectedsize the minimum expected file size in bytes.
* @param int $maxexpectedsize the maximum expected file size in bytes.
* @return void
* @throws ExpectationException
*/
final public function following_in_the_should_download_between_and_bytes(string $link, string $selectortype,
string $nodeelement, string $nodeselectortype, int $minexpectedsize, int $maxexpectedsize): void {
// If the minimum is greater than the maximum then swap the values.
if ((int) $minexpectedsize > (int) $maxexpectedsize) {
list($minexpectedsize, $maxexpectedsize) = [$maxexpectedsize, $minexpectedsize];
}
$exception = new ExpectationException('Error while downloading data from ' . $link, $this->getSession());
// It will stop spinning once file is downloaded or time out.
$result = $this->spin(
function($context, $args) {
return $this->download_file_from_link_within_node($args['selectortype'], $args['link'],
$args['nodeselectortype'], $args['nodeelement']);
},
[
'selectortype' => $selectortype,
'link' => $link,
'nodeselectortype' => $nodeselectortype,
'nodeelement' => $nodeelement
],
behat_base::get_extended_timeout(),
$exception
);
// Check download size.
$actualsize = (int) strlen($result);
if ($actualsize < $minexpectedsize || $actualsize > $maxexpectedsize) {
throw new ExpectationException('Downloaded data was ' . $actualsize .
' bytes, expecting between ' . $minexpectedsize . ' and ' .
$maxexpectedsize, $this->getSession());
}
}
/**
* Given the text of a link, download the linked file and return the contents.
*
* This is a helper method used by {@see following_in_the_should_download_between_and_bytes()}
*
* @param string $selectortype The type of what we look for
* @param string $link the text of the link.
* @param string $nodeselectortype The type of selector where we look in
* @param string $nodeelement Element we look in
* @return string the content of the downloaded file.
*/
final public function download_file_from_link_within_node(string $selectortype, string $link,
string $nodeselectortype, string $nodeelement): string {
// Find the link from ur specific node.
$linknode = $this->get_node_in_container($selectortype, $link, $nodeselectortype, $nodeelement);
$this->ensure_node_is_visible($linknode);
// Get the href and check it.
$url = $linknode->getAttribute('href');
if (!$url) {
throw new ExpectationException('Download link does not have href attribute',
$this->getSession());
}
if (!preg_match('~^https?://~', $url)) {
throw new ExpectationException('Download link not an absolute URL: ' . $url,
$this->getSession());
}
// Download the URL and check the size.
$session = $this->getSession()->getCookie('MoodleSession');
return download_file_content($url, ['Cookie' => 'MoodleSession=' . $session]);
}
}
@@ -0,0 +1,138 @@
<?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/>.
/**
* Steps definitions related with admin presets.
*
* @package tool_admin_presets
* @category test
* @copyright 2021 Pimenko <support@pimenko.com><pimenko.com>
* @author Sylvain Revenu | Pimenko
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
require_once(__DIR__ . '/../../../../../lib/behat/behat_deprecated_base.php');
require_once(__DIR__ . '/../../../../../lib/behat/behat_field_manager.php');
use Behat\Mink\Exception\ExpectationException as ExpectationException;
/**
* Steps definitions that are now deprecated and will be removed in the next releases.
*
* @package tool_admin_presets
* @category test
* @copyright 2021 Pimenko <support@pimenko.com><pimenko.com>
* @author Sylvain Revenu | Pimenko
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @todo MDL-78077 This will be deleted in Moodle 6.0.
*/
class behat_admin_presets_deprecated extends behat_deprecated_base {
/**
* Downloads the file from a specific link on the page and checks the size is in a given range.
*
* Only works if the link has an href attribute. Javascript downloads are
* not supported. Currently, the href must be an absolute URL.
*
* The range includes the endpoints. That is, a 10 byte file in considered to
* be between "5" and "10" bytes, and between "10" and "20" bytes.
*
* @deprecated since 5.0
*
* @Then /^following "(?P<link_string>[^"]*)" "(?P<selector_string>[^"]*)" in the "(?P<element_container_string>(?:[^"]|\\")*)" "(?P<text_selector_string>[^"]*)" should download between "(?P<min_bytes>\d+)" and "(?P<max_bytes>\d+)" bytes$/
* @param string $link the text of the link.
* @param string $selectortype The type of what we look for
* @param string $nodeelement Element we look in
* @param string $nodeselectortype The type of selector where we look in
* @param int $minexpectedsize the minimum expected file size in bytes.
* @param int $maxexpectedsize the maximum expected file size in bytes.
* @return void
* @throws ExpectationException
*/
#[\core\attribute\deprecated('behat_admin_presets::following_in_the_should_download_between_and_bytes', since: '5.0')]
final public function following_in_the_should_download_between_and_bytes(string $link, string $selectortype,
string $nodeelement, string $nodeselectortype, int $minexpectedsize, int $maxexpectedsize): void {
$this->deprecated_message("behat_admin_presets::following_in_the_should_download_between_and_bytes
is deprecated. Use: the following element should download a file that:");
// If the minimum is greater than the maximum then swap the values.
if ((int) $minexpectedsize > (int) $maxexpectedsize) {
list($minexpectedsize, $maxexpectedsize) = [$maxexpectedsize, $minexpectedsize];
}
$exception = new ExpectationException('Error while downloading data from ' . $link, $this->getSession());
// It will stop spinning once file is downloaded or time out.
$result = $this->spin(
function($context, $args) {
return $this->download_file_from_link_within_node($args['selectortype'], $args['link'],
$args['nodeselectortype'], $args['nodeelement']);
},
[
'selectortype' => $selectortype,
'link' => $link,
'nodeselectortype' => $nodeselectortype,
'nodeelement' => $nodeelement
],
behat_base::get_extended_timeout(),
$exception
);
// Check download size.
$actualsize = (int) strlen($result);
if ($actualsize < $minexpectedsize || $actualsize > $maxexpectedsize) {
throw new ExpectationException('Downloaded data was ' . $actualsize .
' bytes, expecting between ' . $minexpectedsize . ' and ' .
$maxexpectedsize, $this->getSession());
}
}
/**
* Given the text of a link, download the linked file and return the contents.
*
* This is a helper method used by {@see following_in_the_should_download_between_and_bytes()}
*
* @param string $selectortype The type of what we look for
* @param string $link the text of the link.
* @param string $nodeselectortype The type of selector where we look in
* @param string $nodeelement Element we look in
* @return string the content of the downloaded file.
*/
final public function download_file_from_link_within_node(string $selectortype, string $link,
string $nodeselectortype, string $nodeelement): string {
// Find the link from ur specific node.
$linknode = $this->get_node_in_container($selectortype, $link, $nodeselectortype, $nodeelement);
$this->ensure_node_is_visible($linknode);
// Get the href and check it.
$url = $linknode->getAttribute('href');
if (!$url) {
throw new ExpectationException('Download link does not have href attribute',
$this->getSession());
}
if (!preg_match('~^https?://~', $url)) {
throw new ExpectationException('Download link not an absolute URL: ' . $url,
$this->getSession());
}
// Download the URL and check the size.
$session = $this->getSession()->getCookie('MoodleSession');
return download_file_content($url, ['Cookie' => 'MoodleSession=' . $session]);
}
}
@@ -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.

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