Compare commits

...

1171 Commits

Author SHA1 Message Date
Huong Nguyen 02e8cebdd2 Moodle release 4.4.5 2024-12-06 13:13:12 +07:00
Huong Nguyen 024051b719 weekly release 4.4.4+ 2024-12-05 22:32:58 +07:00
Sara Arjona 6423996066 Merge branch 'MDL-75610-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-12-05 16:13:21 +01:00
Jun Pataleta 490e544204 MDL-75610 core: Revert the addition of .upgradenotes
Upgrade notes generated by the `upgradenotes` tool is only available
from Moodle 4.5. For 4.4 and below, we should still update the
appropriate upgrade.txt file.
2024-12-05 21:34:05 +08:00
Huong Nguyen 62395a5aca MDL-83921 competency: Update unit tests with latest changes 2024-12-05 18:37:08 +08:00
Huong Nguyen 41ed00e59a MDL-82379 core_user: Move email change token to user private access key 2024-12-05 13:38:21 +08:00
Huong Nguyen ba74b9be02 Merge branch 'MDL-83606-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2024-12-05 12:10:07 +07:00
Jun Pataleta 16f8d04930 Merge branch 'MDL-83727-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2024-12-05 12:36:00 +08:00
Huong Nguyen b389ec0b8b Merge branch 'MDL-83641-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-05 11:29:30 +07:00
Huong Nguyen 1c8ac6a361 MDL-83921 competency: Bump version 2024-12-05 11:21:32 +07:00
Michael Hawkins c748e7d7e9 MDL-83921 competency: Match web service capability check with page check 2024-12-05 11:21:23 +07:00
Jun Pataleta fcff77046d Merge branch 'MDL-83823-404-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_404_STABLE 2024-12-05 11:48:39 +08:00
Huong Nguyen d01b671f2d Merge branch 'MDL-83584-m404' of https://github.com/sammarshallou/moodle into MOODLE_404_STABLE 2024-12-05 10:13:00 +07:00
Huong Nguyen 2d35e0a180 Merge branch 'MDL-83223-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-12-05 10:08:58 +07:00
Huong Nguyen a8b11d8923 MDL-82963 Tag: Improve validation for users tagged with sepecified tag 2024-12-05 11:03:13 +08:00
Jun Pataleta 6cc0eabc7e Merge branch 'MDL-83844-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-05 10:35:36 +08:00
Jun Pataleta 4a1811b769 Merge branch 'MDL-83710-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-05 09:55:13 +08:00
Helen Foster ffabf0b4b9 MDL-83823 lang: Import fixed English strings (en_fix) 2024-12-04 20:26:09 +01:00
meirzamoodle 5e078e4a78 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:37:02 +07:00
Laurent David 77c39c40e3 MDL-82757 mod_data: Improve group access handling
* Improved handling of group access to ensure correct visibility of records.
2024-12-04 02:51:26 +00:00
Jun Pataleta 8ec9af05b5 MDL-61316 core: Fix session gc unit tests 2024-12-04 02:51:26 +00:00
meirzamoodle 0ecdb05ab9 MDL-61316 core: Removed 5x multiplier from guest session expiration 2024-12-04 02:51:26 +00:00
Mark Johnson 54bc7d8197 MDL-83357 question: Fix filter cleaning in page links 2024-12-04 02:51:26 +00:00
Mark Johnson ea3848abe8 MDL-83357 question: Additional cleaning of filter params 2024-12-04 02:51:26 +00:00
Huong Nguyen 5f0201bd79 Merge branch 'MDL-82946-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-12-04 09:39:43 +07:00
Angelia Dela Cruz 363941c247 MDL-82946 qbank: Behat coverage for questions bulk actions 2024-12-03 10:36:29 +08:00
Huong Nguyen 60e0905018 Merge branch 'MDL-83128-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-12-03 09:32:43 +07:00
Paul Holden 987b7ef10d MDL-83641 cohort: allow 'includes' option be specified in form element. 2024-12-02 10:58:50 +00:00
Paul Holden fdb5d897de MDL-83844 mod_scorm: avoid SQL reserved words retrieving SCO timing. 2024-12-02 10:47:47 +00:00
Jun Pataleta 02d5efc450 Merge branch 'MDL-83648_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-12-02 17:24:32 +08:00
Huong Nguyen 4b2a950d08 Merge branch 'MDL-83711-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-12-02 14:19:46 +07:00
Shamim Rezaie 899b4fa1f4 Merge branch 'MDL-75610_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-12-02 15:24:44 +11:00
Huong Nguyen 9ce7e40f2e Merge branch 'MDL-83778-404' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_404_STABLE 2024-12-02 10:44:38 +07:00
Huong Nguyen 84459c1ebf Merge branch 'MDL-83670-m404' of https://github.com/sammarshallou/moodle into MOODLE_404_STABLE 2024-12-02 10:31:06 +07:00
Huong Nguyen 495654b92b Merge branch 'MDL-82657_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-12-02 10:17:49 +07:00
Tim Hunt 6535a96989 MDL-83648 javascript dialogues: fix responsive behaviour
visibilityChanged in the dialogue base class does important things.
Therefore if ajaxException and exception also want to do something
else in response to the visibleChange event, it should use a
different method name, rather than a name that collides with the
base class method.
2024-11-29 17:05:14 +00:00
Luca Bösch 8628fc8664 MDL-83711 quiz: Quiz navigation profile pic not linking in secure mode 2024-11-29 14:25:49 +01:00
Sara Arjona 7da8af1006 weekly release 4.4.4+ 2024-11-29 12:37:03 +01:00
Khoa Nguyen 4bce55d783 MDL-83727 question: Core question privacy provider misuses lazy-loading 2024-11-29 10:55:39 +07:00
Khoa Nguyen e9cfb0ad02 MDL-83778 quiz: prevent page caching for quiz view page 2024-11-28 16:42:46 +07:00
Jun Pataleta 73a35edc24 MDL-83470 environment: Put back Oracle support for now
Even though Oracle support is planned to be dropped for 5.0, the
actual issue that drops it (MDL-83172) has not yet landed. So, it's
better to keep this in environment.xml for now and defer its removal
from environment.xml in MDL-83172.
2024-11-28 16:05:59 +07:00
Jun Pataleta 83c6906e75 Merge branch 'MDL-82475-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-11-28 13:19:08 +08:00
Huong Nguyen 3637e3db9f Merge branch 'MDL-83776-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-11-28 12:00:31 +07:00
Jun Pataleta 30d8c900a9 Merge branch 'MDL-83759-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-11-28 12:28:54 +08:00
Jun Pataleta 1d5e6e4e5d Merge branch 'MDL-83412-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-11-28 12:12:08 +08:00
Huong Nguyen 276c40500c Merge branch 'MDL-83470-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-11-28 11:03:57 +07:00
Jun Pataleta e7556aa106 MDL-83412 core: Coding style fixes 2024-11-28 11:55:26 +08:00
Andrew Nicols 68c96a97b9 MDL-83412 calendartype_gregorian: Use core_date
Update timestamp_to_date_string to use core_date.
2024-11-28 11:55:25 +08:00
Andrew Nicols 213b37077c MDL-83412 core: Use LLL/LLLL for standalone Month names
We currently use MMM and MMMM which mean 'month in year', however in
some locales this is context-specific and should only be used in
conjunction with a day, for example "10 October 2024".

LLL and LLLL are for "stand-alone on the in year" and should be used
when a month is used without a day.
2024-11-28 11:55:25 +08:00
Huong Nguyen e75b7d1e0d Merge branch 'MDL-63264-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-11-28 10:46:58 +07:00
Huong Nguyen 7a77eb18c3 Merge branch 'MDL-83653_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-11-28 10:21:43 +07:00
Huong Nguyen 5d5d2f8f49 Merge branch 'MDL-82931-MOODLE_404_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_404_STABLE 2024-11-28 09:44:27 +07:00
Huong Nguyen da00d28c2c Merge branch 'MDL-83661-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-11-28 09:39:16 +07:00
Huong Nguyen e778888ed2 Merge branch 'MDL-82932-MOODLE_404_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_404_STABLE 2024-11-28 09:28:29 +07:00
Huong Nguyen b058b6681c Merge branch 'MDL-83643-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-28 09:21:16 +07:00
Jun Pataleta e2928d531e Merge branch 'MDL-83211-m404' of https://github.com/sammarshallou/moodle into MOODLE_404_STABLE 2024-11-27 23:28:46 +08:00
Jun Pataleta c3184e070a Merge branch 'MDL-83788-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-11-27 16:19:30 +08:00
Huong Nguyen cd7f36d194 Merge branch 'MDL-83658-MOODLE_404_STABLE' of https://github.com/praxisdigital/moodle into MOODLE_404_STABLE 2024-11-27 09:51:28 +07:00
Andrew Nicols 6f97d3a89f MDL-83788 mod_glossary: Correct assertions for assertArrayHasKey 2024-11-27 13:26:01 +11:00
Mark Johnson 4da7e5dec3 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:29:02 +00:00
Shamim Rezaie 35b9ad6bbf Merge branch 'MDL-77957-404-test2' of https://github.com/rezaies/moodle into MOODLE_404_STABLE 2024-11-26 20:59:43 +11:00
Bastian Schmidt-Kuhl af68f3ca28 MDL-77957 theme_boost: Fix drawer not closing on mobile if it has focus 2024-11-26 20:52:17 +11:00
Huong Nguyen ecf91e296e Merge branch 'mdl-82762_404_wip' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2024-11-26 12:10:51 +07:00
Huong Nguyen ef09179d1e Merge branch 'MDL-83795-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-11-26 12:03:22 +07:00
Khoa Nguyen 1ab37f0e63 MDL-83606 Question bank: Delete questions to fit one page causes errors. 2024-11-26 11:17:49 +07:00
Mikel Martín 286c3367c2 MDL-83759 theme_boost: Fix user navigation items height 2024-11-25 12:05:32 +01:00
Huong Nguyen d514c32c71 Merge branch 'MDL-83704-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-11-25 10:15:52 +07:00
Paul Holden 1d192cf19d MDL-83128 blocks: consistently style/align block list icons. 2024-11-22 16:22:06 +00:00
Paul Holden d805dde928 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:50 +00:00
Jun Pataleta 86e2e5882e MDL-83795 courseformat: Move upgrade notes to upgrade.txt 2024-11-22 23:53:34 +08:00
Jun Pataleta 505987af6c weekly release 4.4.4+ 2024-11-22 22:26:55 +08:00
Paul Holden 558b5aa693 MDL-83776 customfield_text: correct link field URL encoding. 2024-11-21 09:53:49 +00:00
Jun Pataleta 888a4f23bb MDL-83470 core: Define environment requirements for Moodle 5.0 2024-11-21 17:35:23 +08:00
Andrew Nicols e871b6fc71 Merge branch 'MDL-83551-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-21 12:26:12 +08:00
Huong Nguyen d032d75641 Merge branch 'MDL-83747-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-11-21 11:08:56 +07:00
Huong Nguyen 43a90e8197 Merge branch 'MDL-83048_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-11-21 11:01:48 +07:00
Andrew Nicols 25657e4be2 Merge branch 'MDL-83501-url-encode-nginx-paths-MOODLE_404_STABLE' of https://github.com/rajandangi/moodle into MOODLE_404_STABLE 2024-11-21 11:48:31 +08:00
Andrew Nicols 2f27619ffe Merge branch 'MDL-83226-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-11-21 11:45:11 +08:00
Philipp Memmel 80a77e7c74 MDL-82931 mod_data: Harden parsing of content format 2024-11-20 21:23:06 +01:00
Paul Holden 761f169185 Merge branch 'MDL-83570-404-fix' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-11-20 12:25:07 +00:00
Jun Pataleta a3b50194ee 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:17:17 +08:00
Huong Nguyen 752b45d421 Merge branch 'MDL-83570-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-11-20 16:11:35 +07:00
Frederik Milling Pytlick 7d3a4aa37d 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:16:33 +01:00
meirzamoodle 55fb142c2f MDL-83570 tiny_recordrtc: Turn the audio bitrate input to Select field
The current code may have a bug. If users set the audio bit rate to
a non-supported value, such as 1000,
Firefox will display an error in the console,
while Chrome will create the recorded audio file successfully,
but it will have no sound. I tested this on Ubuntu 24.04.

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

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

The database conversion for the old value has been provided in
the lib/db/upgrade.php. The script will find the closest match to
the current data and update it accordingly.
2024-11-20 10:08:10 +07:00
Jun Pataleta d4a98e6cfb Merge branch 'MDL-81521-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-11-19 15:15:25 +08:00
Huong Nguyen 97b1dd2f2f Merge branch 'MDL-83610-404' of https://github.com/marinaglancy/moodle into MOODLE_404_STABLE 2024-11-19 09:28:58 +07:00
Jun Pataleta 626ea71299 MDL-83747 mod_data: Add accessible name for delcheck checkboxes 2024-11-18 19:39:13 +08:00
Marina Glancy 98975c118e MDL-83610 behat: allow to set date fields in groups 2024-11-18 10:37:17 +00:00
Jun Pataleta 90409e8fa0 Merge branch 'MDL-83502-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-11-18 14:37:06 +08:00
Andrew Nicols d7898ee7da MDL-81521 mod_quiz: Fix attempt walkthrough tests 2024-11-18 10:24:55 +08:00
Andrew Nicols c6942c9bb7 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-18 10:24:55 +08:00
sam marshall 38688c0be6 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:34:44 +00:00
Mark Johnson a88cbdae73 MDL-75610 theme: Allow the activity title in Boost theme's secure layout 2024-11-15 08:32:57 +00:00
Mark Johnson ec498ce036 MDL-75610 output: Fix title display logic in activity header
The display logic for including the title in the activity header was
such that the title would only display if both the theme default and the
layout option for 'notitle' were undefined or false. It was not possible
to a theme to have 'notitle' default to true, but have a layout override
that as false to display the title.

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

This also tweaks moodle_page::magic_get_layout_options to ensure the
theme is initialised before trying to return the layout options.
2024-11-15 08:32:56 +00:00
Jun Pataleta 5f85ba1793 Merge branch 'MDL-82877-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-11-15 13:31:31 +08:00
Huong Nguyen 63205f03bb weekly release 4.4.4+ 2024-11-15 09:21:36 +07:00
Jun Pataleta b820c1c5c3 Merge branch 'MDL-80926-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-14 12:05:17 +08:00
Jun Pataleta 482d0cc1dc Merge branch 'MDL-74836_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-11-14 10:46:12 +08:00
Paul Holden 195a4ce781 MDL-83710 report_questioninstances: fix missing type query params. 2024-11-13 21:16:05 +00:00
James C 785d70c2d7 MDL-82762 course: Prevent "undefined" being added to course index 2024-11-14 10:14:17 +13:00
Wiktor Wandachowicz ab25803907 MDL-83048 mod_quiz: Fixed use of grade_out_of and plugin renderer 2024-11-13 17:14:03 +00:00
Huong Nguyen 1a88833799 Merge branch 'MDL-83185-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-11-13 14:27:46 +07:00
Huong Nguyen 8e6355fc8c Merge branch 'MDL-80689_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-11-13 14:01:03 +07:00
Andrew Nicols 00fc817923 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:26:21 +08:00
Andrew Nicols c8f0796ca6 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:17:32 +08:00
Simey Lameze afe848bcc6 MDL-83643 behat: make manual completion scenario names unique 2024-11-13 07:18:01 +08:00
Simey Lameze 89e18f1381 MDL-83551 behat: make duplicated scenario names unique 2024-11-13 06:50:56 +08:00
Nexterday 200fb340e6 MDL-74836 theme: Display activity header on secure layouts 2024-11-11 15:15:54 +00:00
Philipp Memmel 364c27227a MDL-82932 mod_data: Fix export with userdata of deleted users 2024-11-11 12:38:54 +01:00
Tim Hunt a70bbb3628 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:14:41 +00:00
sam marshall 5bbe044927 MDL-83670 availability_group: With hidden groups, can throw warning 2024-11-08 11:59:00 +00:00
ferran a85c93018a MDL-83661 core_courseformat: fix drop file modal
When the user drags and drops a file into a course section that can
create more than one type of activity (for example a zip file) the modal
had repeated form elements ids. Now every radio option has its own id.
2024-11-08 11:45:58 +01:00
Huong Nguyen 3f9b9363d0 weekly release 4.4.4+ 2024-11-08 13:56:42 +07:00
Huong Nguyen 805ff1806a MDL-82335 qbank_columnsortorder: Fix upgrade code coding style 2024-11-08 09:04:55 +07:00
sam marshall 6ba656e2f5 MDL-83584 report_log: Group filter can get list of all users in system 2024-11-07 09:39:46 +00:00
Huong Nguyen 91d352a085 MDL-82335 qbank_columnsortorder: Cleanup upgrade code 2024-11-07 13:40:01 +07:00
Huong Nguyen 27073a36b6 Merge branch 'MDL-83619-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-07 11:05:52 +07:00
Huong Nguyen e1b6c9be56 Merge branch 'MDL-83611-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-07 11:02:35 +07:00
Huong Nguyen fee929cdaf Merge branch 'MDL-82335_404' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_404_STABLE 2024-11-07 09:31:58 +07:00
Huong Nguyen a3a1e2184d Merge branch 'MDL-83316-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-11-07 09:27:04 +07:00
Simey Lameze 2245a4c0bc MDL-83316 behat: remove duplicated Then from new test 2024-11-07 07:49:12 +08:00
sam marshall 803f72ef0f MDL-83316 Behat: New step allows system clock change 2024-11-07 07:48:02 +08:00
Jun Pataleta 5ad4c9cf3b Merge branch 'mdl-83497_404' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2024-11-06 22:38:45 +08:00
Anupama Sarjoshi 21fc25e46c MDL-82335 qbank_columnsortorder: Fix upgrading issue
When upgraded to Moodle 4.4 or higher, for qbank_columnsortorder
the colsize values in the config_plugins were getting incorrectly set,
resulting in errors accessing the question bank. Changes done to fix
this code and to remove the corrupted colsize value from
config_plugins table.
2024-11-06 13:31:02 +00:00
Jun Pataleta 962d7cfa55 Merge branch 'MDL-76563-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-11-06 17:29:34 +08:00
Simey Lameze 37319d2c88 MDL-80926 behat: fix random and improve h5p completion test 2024-11-06 13:37:05 +08:00
Simey Lameze be5b800a80 MDL-83611 behat: increase window size to avoid randoms 2024-11-05 13:21:33 +08:00
Simey Lameze c3bc783ff4 MDL-83619 behat: enable bbb module early in the test 2024-11-05 10:23:34 +08:00
Paul Holden 58c98e14d9 MDL-82877 customfield: pass correct instanceid for restore structure. 2024-11-04 15:32:14 +00:00
Paul Holden ad201ba85a MDL-83226 customfield: set backup/restore configuration defaults. 2024-11-04 15:29:17 +00:00
Laurent David 3203fb9ae7 MDL-83185 core_courseformat: Refresh cache on group change
* When we add users to a group (or remove them), we should refresh
the course index cache so it stays in sync with what the user
can actually see.
2024-11-04 06:15:25 +01:00
ferran 84c2589c42 MDL-83185 core_courseformat: Allow global state cache invalidation 2024-11-04 06:15:25 +01:00
Huong Nguyen 99b5729824 weekly release 4.4.4+ 2024-11-01 14:29:24 +07:00
Huong Nguyen 3134bf772a Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-11-01 14:29:22 +07:00
Tim Hunt db03f2a58e 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:39:16 +00:00
Tim Hunt 78cbc7cb16 MDL-80689 behat: add a transformation to get dirroot 2024-10-31 11:39:15 +00:00
Tim Hunt b784c144f8 MDL-80689 form behat: move fixture file to the expected place 2024-10-31 11:39:15 +00:00
Huong Nguyen 94ab19f544 Merge branch 'MDL-82911-404-fix' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-10-31 14:14:46 +07:00
Simey Lameze 438ef558cf MDL-82911 behat: change future times example to minutes 2024-10-31 14:15:48 +08:00
Huong Nguyen 16c1a0494c Merge branch 'MDL-82911-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-10-31 11:23:00 +07:00
Huong Nguyen 9b0b39065c Merge branch 'MDL-83414-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-10-31 11:23:00 +07:00
Huong Nguyen 8b0afe2984 Merge branch 'MDL-82989-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-10-31 11:22:59 +07:00
Jun Pataleta 6fa7222f0f Merge branch 'MDL-82809-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-31 11:22:59 +07:00
Huong Nguyen f616472d63 Merge branch 'MDL-82988-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-10-31 11:22:59 +07:00
Angelia Dela Cruz cc33999469 MDL-83414 core_grades: Behat to test custom scale display 2024-10-31 09:46:39 +08:00
Angelia Dela Cruz 4736294b35 MDL-82911 mod_bigbluebuttonbn: Behat for BBB open and close date time 2024-10-29 12:09:41 +08:00
AMOS bot cc86aa7f8d Automatically generated installer lang files 2024-10-29 00:07:50 +00:00
meirzamoodle 2f5145d704 MDL-82989 communication_matrix: Apply helper to mock http_client 2024-10-27 15:55:05 +07:00
Andrew Nicols e62acd23e0 MDL-82989 PHPUnit: Add helper to mock http_client 2024-10-27 15:55:05 +07:00
meirzamoodle 5bd5d08f7e MDL-82988 general: Apply helper to get path to fixture 2024-10-27 15:45:19 +07:00
Andrew Nicols 7bec161984 MDL-82988 PHPUnit: Add helper to get path to fixture 2024-10-27 15:45:19 +07:00
Huong Nguyen f960ce6d5b weekly release 4.4.4+ 2024-10-25 08:36:04 +07:00
Huong Nguyen 9ade28a977 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-10-25 08:36:01 +07:00
Mikel Martín 93821b6024 MDL-76563 theme: Change SCSS variable value
Change the value of the $pink SCSS colour variable so it is
colour contrast accessible on white backgrounds.
2024-10-24 13:27:57 +02:00
Jun Pataleta 731d5cc8b3 Merge branch 'MDL-82548-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-10-24 12:18:11 +08:00
Jun Pataleta 2bb85117e3 Merge branch 'MDL-83423-404' of https://github.com/snake/moodle into MOODLE_404_STABLE 2024-10-24 12:13:28 +08:00
Huong Nguyen dced24e7c3 Merge branch 'MDL-83432-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-24 10:13:29 +07:00
Huong Nguyen 62d0705cc1 Merge branch 'MDL-83504-404' of https://github.com/marinaglancy/moodle into MOODLE_404_STABLE 2024-10-24 09:45:06 +07:00
AMOS bot 62778bb1aa Automatically generated installer lang files 2024-10-24 00:08:14 +00:00
Jun Pataleta 3d05070094 Merge branch 'MDL-81308-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-10-23 18:15:28 +08:00
Jun Pataleta 7b007b32af Merge branch 'MDL-83463-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-23 14:35:39 +08:00
Andrew Nicols 564de9d4a7 MDL-81308 core: Use a helper for consecutive invocation counts 2024-10-23 14:17:37 +08:00
Andrew Nicols da7c5d98ec MDL-81308 core: Update tests to not use withConsecutive 2024-10-23 14:17:36 +08:00
Jun Pataleta ff51c0bbf6 Merge branch 'MDL-83472-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-22 15:55:59 +08:00
Marina Glancy 33bc3cd98c MDL-83504 user: reset preference cache in unittests 2024-10-21 16:04:43 +01:00
ferran dd2c9b56bf MDL-83502 course: fix chrome file dropping in course page 2024-10-21 11:40:42 +02:00
rajandangi a3bcf54428 MDL-83501 core: URL encode paths for Nginx X-Accel-Redirect 2024-10-21 19:49:27 +10:30
James C fb6ea9b0d6 MDL-83497 course: Preserve move section dialogue info HTML 2024-10-19 16:19:37 +13:00
Paul Holden 599a3be74f MDL-83432 enrol: fix arguments to enrolment test generator. 2024-10-18 15:12:52 +01:00
Paul Holden 23a60a1220 MDL-83432 enrol_manual: reference correct role in welcome message. 2024-10-18 15:12:52 +01:00
Shamim Rezaie b097840e33 weekly release 4.4.4+ 2024-10-18 23:28:57 +11:00
Shamim Rezaie 04e7c65f0c Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-10-18 23:28:55 +11:00
Jun Pataleta 7e3638ff2e Merge branch 'MDL-83457-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-10-17 12:23:24 +08:00
Jun Pataleta 540fda4055 Merge branch 'MDL-83443-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-17 12:17:38 +08:00
Jun Pataleta f44da13380 Merge branch 'MDL-83367-404' of https://github.com/dravek/moodle into MOODLE_404_STABLE 2024-10-17 12:08:52 +08:00
Jun Pataleta c8d55cdc52 Merge branch 'MDL-81450-MOODLE_404_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_404_STABLE 2024-10-17 12:05:10 +08:00
Huong Nguyen d87999b89a Merge branch 'MDL-82580-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-17 10:49:26 +07:00
Jun Pataleta 6e617b9e46 Merge branch 'MDL-83143-404' of https://github.com/safatshahin/moodle into MOODLE_404_STABLE 2024-10-17 11:47:16 +08:00
Jun Pataleta 5a237cfef2 Merge branch 'MDL-82838-404' of https://github.com/justusdieckmann/moodle into MOODLE_404_STABLE 2024-10-17 10:54:39 +08:00
Huong Nguyen e05af64ecf Merge branch 'MDL-75724-404_toolbrickfield_tableheadercheck' of https://github.com/brickfield/moodle into MOODLE_404_STABLE 2024-10-17 09:44:43 +07:00
Jun Pataleta 1427cd178c Merge branch 'MDL-83002-404' of https://github.com/marinaglancy/moodle into MOODLE_404_STABLE 2024-10-16 20:32:28 +08:00
Paul Holden 6f6eae5d67 MDL-83472 phpunit: add void return type to test methods.
See also 01148a0816 from MDL-81522.
2024-10-16 13:04:13 +01:00
Paul Holden f442e8d5ad 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:52 +01:00
Philipp Memmel 0ccc87c617 MDL-81450 mod_forum: Reduce size of file icon in HTML mails
@Co-authored-by: Mateusz Walczak
2024-10-16 11:32:48 +02:00
Paul Holden 92b27a6f07 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:22 +01:00
Paul Holden 07bc841860 MDL-82809 reportbuilder: load custom/profile fields consistently.
Ensure that provided columns and filters for each use appropriate
checks to determine their availability (based on user permissions,
etc), rather than conditionally adding them to the entity.
2024-10-16 09:11:20 +01:00
Huong Nguyen 0282a557d0 Merge branch 'MDL-82793-MOODLE_404_STABLE' of https://github.com/phmemmel/moodle into MOODLE_404_STABLE 2024-10-16 09:26:49 +07:00
Philipp Memmel d506b8f6e2 MDL-82793 core: Make modal execute JS from template
Co-authored-by: Huong Nguyen <huongnv13@gmail.com>
2024-10-15 20:52:27 +02:00
Paul Holden 34495e01fc MDL-83463 backup: ensure defaults for course file inclusion are read. 2024-10-15 12:27:17 +01:00
Jun Pataleta cd06961249 Merge branch 'MDL-83070_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-10-15 19:09:14 +08:00
Huong Nguyen 7cdc137d8a Merge branch 'MDL-82429-404' of https://github.com/x-iy/moodle into MOODLE_404_STABLE 2024-10-15 16:25:11 +07:00
Mikel Martín 8a6d6ef675 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:57:06 +02:00
Jun Pataleta b2cf67e4f5 Merge branch 'MDL-83253-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-10-15 11:44:36 +08:00
Jake Dallimore 62a0b21d27 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:12:21 +08:00
AMOS bot cee330362c Automatically generated installer lang files 2024-10-15 00:09:32 +00:00
Michael Pound 9e7d54ebe6 MDL-75724 tool_brickfield: Ensuring correct table headers pass checks. 2024-10-14 16:56:52 +00:00
AMOS bot b51456d83a Automatically generated installer lang files 2024-10-13 00:07:52 +00:00
Paul Holden 847ab7d072 MDL-83443 enrol: use defined role name in welcome message. 2024-10-11 14:35:28 +01:00
Jake Dallimore b48e64e2a1 weekly release 4.4.4+ 2024-10-11 10:55:06 +08:00
Jake Dallimore 71e219b7db Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-10-11 10:55:05 +08:00
Safat aa0fbc3f08 MDL-83143 core_communication: Behat coverage for default to course name 2024-10-11 11:02:08 +11:00
Safat 9ef5476361 MDL-83143 core_course: Add course name as default for empty room name 2024-10-11 11:02:08 +11:00
Safat 2c363085af MDL-83143: core_communication: Fix variable name typos 2024-10-11 11:02:07 +11:00
Jun Pataleta 75573d11e9 Merge branch 'MDL-82813-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-10-10 12:04:15 +08:00
Huong Nguyen 35ca0b0616 Merge branch 'MDL-82570-404' of https://github.com/vietlx426/moodle-1 into MOODLE_404_STABLE 2024-10-10 10:52:51 +07:00
Huong Nguyen 1ff3797d8d Merge branch 'MDL-83255-MOODLE_404_STABLE' of https://github.com/TobiGa/moodle into MOODLE_404_STABLE 2024-10-10 10:11:40 +07:00
Jun Pataleta 666fffc680 Merge branch 'MDL-82912-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-10-10 10:35:07 +08:00
Jun Pataleta 6bbb0de4eb Merge branch 'MDL-82812_404_toolbrickfieldfaicons' of https://github.com/brickfield/moodle into MOODLE_404_STABLE 2024-10-10 10:13:44 +08:00
Angelia Dela Cruz 79dcd64b34 MDL-82912 mod_workshop: Behat to view assessment after workshop close 2024-10-09 16:42:30 +08:00
Huong Nguyen 13e5a55ae9 Merge branch 'MDL-83331_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-10-09 14:47:14 +07:00
AMOS bot e5b03f9fb9 Automatically generated installer lang files 2024-10-09 00:09:23 +00:00
Max Larkin 9a72cc8837 MDL-82812 tool_brickfield: Ignore fa icons 2024-10-08 13:02:23 +01:00
Huong Nguyen 756a559024 Merge branch 'MDL-70180-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-10-08 09:36:38 +07:00
AMOS bot 0685bfdb24 Automatically generated installer lang files 2024-10-08 00:07:46 +00:00
david adamson 6f73e436fb MDL-82429 tool_brickfield: Process calculated fontsizes 2024-10-08 09:32:57 +11:00
Tim Hunt b72b37c974 MDL-83331 behat: enable navigation direct to mod/.../index.php 2024-10-07 12:05:19 +01:00
Tobias Garske dc2b113bca MDL-83255 core_course: Fix activitychooser recommended tab navigation 2024-10-07 08:24:31 +00:00
Tim Hunt a9d4d93b74 MDL-83070 question restore: recode links in hints 2024-10-07 08:53:58 +01:00
Jun Pataleta d7e3bea9fa Moodle release 4.4.4 2024-10-05 14:46:37 +08:00
AMOS bot f67240b70b Automatically generated installer lang files 2024-10-05 00:07:47 +00:00
Huong Nguyen 5ce118a9c5 weekly release 4.4.3+ 2024-10-04 20:48:10 +07:00
Huong Nguyen cc27af1b7f Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-10-04 20:48:08 +07:00
David Carrillo 2128d39ed7 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-04 15:36:31 +02:00
AMOS bot 3b8f6dee80 Automatically generated installer lang files 2024-10-04 00:07:45 +00:00
Marina Glancy 6c113ddc35 MDL-83002 theme_boost: tell behat to wait when initialising drawers 2024-10-03 15:52:13 +01:00
Michael Hawkins b08fbf57fd MDL-83352 message: Update usercantbemessaged string 2024-10-03 17:46:34 +07:00
vietlx426 fce950a59a MDL-82570 themes: Help boxes not accessible if selected consecutively 2024-10-03 16:27:29 +07:00
Jun Pataleta 54e9ee4a9e Merge branch 'MDL-83238-404-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_404_STABLE 2024-10-03 16:02:02 +08:00
David Carrillo ba131ff29d MDL-83179 badges: Get type and courseid from context instead of params 2024-10-03 08:12:10 +08:00
David Mudrák 6e61b34ac2 MDL-83238 lang: Fix the changed strings in the tests, too 2024-10-02 22:04:50 +02:00
Helen Foster 06666c60f5 MDL-83238 lang: Import fixed English strings (en_fix) 2024-10-02 22:04:50 +02:00
Shamim Rezaie a0c341d039 Merge branch 'MDL-83332-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-10-03 02:24:09 +10:00
Paul Holden 6e77a2070d MDL-83180 reportbuilder: correct access check for viewing schedules. 2024-10-02 16:49:26 +08:00
meirzamoodle 366d82ccd7 MDL-83332 environment: Reverts the slashargument removal on MDL-62640
We are encountering Behat failures on MacOS and possibly Windows.

This reverts commit 3202109780.
2024-10-02 13:29:14 +07:00
David Carrillo c75ec7503c MDL-83178 reportbuilder: correct access check to view badge recipients 2024-10-02 13:58:07 +08:00
Jun Pataleta 0f62b3d370 Merge branch 'm44-md83163' of https://github.com/danmarsden/moodle into MOODLE_404_STABLE 2024-10-02 12:31:22 +08:00
Dan Marsden 3100b07fb6 MDL-83310 course: remove hard-coded list of course formats from test. 2024-10-02 08:50:06 +13:00
Paul Holden 4a68972a4a MDL-83181 reportbuilder: ensure audience correctness before delete. 2024-10-01 12:41:17 +00:00
Paul Holden 1a219492f7 MDL-82386 block_rss_client: user access checks for feed edit/delete. 2024-10-01 12:41:17 +00:00
Huong Nguyen d8de6025b2 weekly release 4.4.3+ 2024-10-01 19:33:00 +07:00
Mikel Martín bdd79633d3 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:01:48 +02:00
Jun Pataleta 823e8d94de Merge branch 'MDL-83264-404-1' of https://github.com/mihailges/moodle into MOODLE_404_STABLE 2024-10-01 12:47:13 +08:00
Mihail Geshoski 54da83f40a MDL-83264 mod_quiz: Return the correct name for top categories 2024-10-01 09:43:13 +08:00
Shamim Rezaie 759bf6e3b6 Merge branch 'MDL-81590-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-09-30 23:01:29 +10:00
Huong Nguyen e3460d67f3 weekly release 4.4.3+ 2024-09-27 18:44:03 +07:00
Huong Nguyen a99970eeb5 NOBUG: Fixed SVG browser compatibility 2024-09-27 18:44:01 +07:00
Huong Nguyen 96321d7b45 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-09-27 18:44:00 +07:00
Jun Pataleta 971fd1cf26 MDL-81590 core: Build the context path without using DIRECTORY_SEPARATOR 2024-09-27 15:44:37 +08:00
Jun Pataleta c187fde227 Merge branch 'MDL-80929-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 12:40:18 +08:00
Huong Nguyen 7df5aeed41 Merge branch 'MDL-83205-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-09-27 11:27:05 +07:00
Huong Nguyen 21e23bef57 Merge branch 'MDL-82483-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 11:15:54 +07:00
Jun Pataleta 04d887ec89 Merge branch 'MDL-82602-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 12:10:46 +08:00
Huong Nguyen 12c97671bc Merge branch 'MDL-80974-MOODLE_404_STABLE' of https://github.com/sh-csg/moodle into MOODLE_404_STABLE 2024-09-27 11:08:52 +07:00
Jun Pataleta 3a1d250c27 Merge branch 'MDL-82973-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 12:06:01 +08:00
Jun Pataleta 3dadbe85af Merge branch 'MDL-83163-m404' of https://github.com/sammarshallou/moodle into MOODLE_404_STABLE 2024-09-27 11:59:25 +08:00
Andrew Nicols 9f3174a32d Merge branch 'MDL-83094-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 11:05:55 +08:00
Jun Pataleta bba5ec68ec Merge branch 'MDL-81157-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 10:28:24 +08:00
Jun Pataleta 7b354279c7 Merge branch 'MDL-82581-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-27 10:10:45 +08:00
AMOS bot 78380cc2a3 Automatically generated installer lang files 2024-09-27 00:07:45 +00:00
Andrew Nicols 0feec6d5f0 Merge branch 'MDL-83268-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-09-26 22:07:53 +08:00
Sara Arjona 03edcc984e MDL-83268 core_h5p: Fix version number 2024-09-26 16:02:17 +02:00
Andrew Nicols 264e5dcb44 Merge branch 'MDL-83268-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-09-26 21:32:37 +08:00
Sara Arjona 2f5e3d13b2 MDL-83268 core_h5p: Fix required Moodle version 2024-09-26 15:25:42 +02:00
Andrew Nicols 26d77f3735 Merge branch 'MDL-83268-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-09-26 21:06:53 +08:00
Jun Pataleta 4d1919014f Merge branch 'MDL-79288-404_blockaccessreview_colourcontrastcheck' of https://github.com/brickfield/moodle into MOODLE_404_STABLE 2024-09-26 19:45:02 +08:00
Sara Arjona 2fad1f88f1 MDL-83268 core_h5p: Remove unused font files
In https://h5ptechnology.atlassian.net/browse/HFP-4105, the
fonts/h5p-core-29.svg was merged with some conflicts.
Looking at the patch there, it seems all the h5p-core-29* fonts
can be removed because the ones used by the library are the
h5p-core-30-*.

I haven't added a note in the upgrade because it seems an error
on their release process (so I don't think it's worth adding
a note because it should be fixed in future releases).
2024-09-26 10:35:26 +02:00
Sara Arjona 0bcf1e2dcc MDL-83268 core_h5p: Remove the h5plib_v126 plugin
The h5plib_v126 plugin can be removed because it has been replaced
with h5plib_v127, which is using the latest versions of the
libraries.
2024-09-26 10:35:26 +02:00
Sara Arjona 76ed1fd12a MDL-83268 core_h5p: Add editor lib changes after upgrading it 2024-09-26 10:35:26 +02:00
Sara Arjona d205a07d40 MDL-83268 core_h5p: Upgrade editor lib to 1.27
This commit is upgrading the joubel/editor library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
2024-09-26 10:35:25 +02:00
Sara Arjona 5670b0932c MDL-83268 core_h5p: Add core lib changes after upgrading it 2024-09-26 10:35:25 +02:00
Sara Arjona 67cec533ea MDL-83268 core_h5p: Upgrade core lib to 1.27
This commit is upgrading the joubel/core library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
That's why the previous commit was duplicating the existing
h5plib_v126.
2024-09-26 10:35:25 +02:00
Sara Arjona 1550715d9b MDL-83268 h5plib: Create first version of h5plib_v127
AMOS BEGIN
  CPY [editor:a11ytitleshowlabel,h5plib_v126],[editor:a11ytitleshowlabel,h5plib_v127]
  CPY [editor:a11ytitlehidelabel,h5plib_v126],[editor:a11ytitlehidelabel,h5plib_v127]
  CPY [editor:atoz,h5plib_v126],[editor:atoz,h5plib_v127]
  CPY [editor:add,h5plib_v126],[editor:add,h5plib_v127]
  CPY [editor:addauthor,h5plib_v126],[editor:addauthor,h5plib_v127]
  CPY [editor:addentity,h5plib_v126],[editor:addentity,h5plib_v127]
  CPY [editor:addfile,h5plib_v126],[editor:addfile,h5plib_v127]
  CPY [editor:addnewchange,h5plib_v126],[editor:addnewchange,h5plib_v127]
  CPY [editor:addtitle,h5plib_v126],[editor:addtitle,h5plib_v127]
  CPY [editor:addvideodescription,h5plib_v126],[editor:addvideodescription,h5plib_v127]
  CPY [editor:avtablistlabel,h5plib_v126],[editor:avtablistlabel,h5plib_v127]
  CPY [editor:belowmin,h5plib_v126],[editor:belowmin,h5plib_v127]
  CPY [editor:cancel,h5plib_v126],[editor:cancel,h5plib_v127]
  CPY [editor:cancellabel,h5plib_v126],[editor:cancellabel,h5plib_v127]
  CPY [editor:changefile,h5plib_v126],[editor:changefile,h5plib_v127]
  CPY [editor:changelanguage,h5plib_v126],[editor:changelanguage,h5plib_v127]
  CPY [editor:changelibrary,h5plib_v126],[editor:changelibrary,h5plib_v127]
  CPY [editor:changelogdescription,h5plib_v126],[editor:changelogdescription,h5plib_v127]
  CPY [editor:close,h5plib_v126],[editor:close,h5plib_v127]
  CPY [editor:commonfields,h5plib_v126],[editor:commonfields,h5plib_v127]
  CPY [editor:commonfieldsdescription,h5plib_v126],[editor:commonfieldsdescription,h5plib_v127]
  CPY [editor:confirmchangelibrary,h5plib_v126],[editor:confirmchangelibrary,h5plib_v127]
  CPY [editor:confirmdeletechangelog,h5plib_v126],[editor:confirmdeletechangelog,h5plib_v127]
  CPY [editor:confirmimageremoval,h5plib_v126],[editor:confirmimageremoval,h5plib_v127]
  CPY [editor:confirmpastebuttontext,h5plib_v126],[editor:confirmpastebuttontext,h5plib_v127]
  CPY [editor:confirmpastecontent,h5plib_v126],[editor:confirmpastecontent,h5plib_v127]
  CPY [editor:confirmremoval,h5plib_v126],[editor:confirmremoval,h5plib_v127]
  CPY [editor:confirmremoveauthor,h5plib_v126],[editor:confirmremoveauthor,h5plib_v127]
  CPY [editor:contenttypebackbuttonlabel,h5plib_v126],[editor:contenttypebackbuttonlabel,h5plib_v127]
  CPY [editor:contenttypecacheoutdated,h5plib_v126],[editor:contenttypecacheoutdated,h5plib_v127]
  CPY [editor:contenttypecacheoutdateddesc,h5plib_v126],[editor:contenttypecacheoutdateddesc,h5plib_v127]
  CPY [editor:contenttypedemobuttonlabel,h5plib_v126],[editor:contenttypedemobuttonlabel,h5plib_v127]
  CPY [editor:contenttypedetailbuttonlabel,h5plib_v126],[editor:contenttypedetailbuttonlabel,h5plib_v127]
  CPY [editor:contenttypegetbuttonlabel,h5plib_v126],[editor:contenttypegetbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeiconalttext,h5plib_v126],[editor:contenttypeiconalttext,h5plib_v127]
  CPY [editor:contenttypeinstallbuttonlabel,h5plib_v126],[editor:contenttypeinstallbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeinstallerror,h5plib_v126],[editor:contenttypeinstallerror,h5plib_v127]
  CPY [editor:contenttypeinstallsuccess,h5plib_v126],[editor:contenttypeinstallsuccess,h5plib_v127]
  CPY [editor:contenttypeinstallingbuttonlabel,h5plib_v126],[editor:contenttypeinstallingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypelicensepaneltitle,h5plib_v126],[editor:contenttypelicensepaneltitle,h5plib_v127]
  CPY [editor:contenttypenotinstalled,h5plib_v126],[editor:contenttypenotinstalled,h5plib_v127]
  CPY [editor:contenttypenotinstalleddesc,h5plib_v126],[editor:contenttypenotinstalleddesc,h5plib_v127]
  CPY [editor:contenttypeowner,h5plib_v126],[editor:contenttypeowner,h5plib_v127]
  CPY [editor:contenttyperestricted,h5plib_v126],[editor:contenttyperestricted,h5plib_v127]
  CPY [editor:contenttyperestricteddesc,h5plib_v126],[editor:contenttyperestricteddesc,h5plib_v127]
  CPY [editor:contenttypesearchfieldplaceholder,h5plib_v126],[editor:contenttypesearchfieldplaceholder,h5plib_v127]
  CPY [editor:contenttypesectionall,h5plib_v126],[editor:contenttypesectionall,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversioncontent,h5plib_v126],[editor:contenttypeunsupportedapiversioncontent,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversiontitle,h5plib_v126],[editor:contenttypeunsupportedapiversiontitle,h5plib_v127]
  CPY [editor:contenttypeupdateavailable,h5plib_v126],[editor:contenttypeupdateavailable,h5plib_v127]
  CPY [editor:contenttypeupdatebuttonlabel,h5plib_v126],[editor:contenttypeupdatebuttonlabel,h5plib_v127]
  CPY [editor:contenttypeupdatesuccess,h5plib_v126],[editor:contenttypeupdatesuccess,h5plib_v127]
  CPY [editor:contenttypeupdatingbuttonlabel,h5plib_v126],[editor:contenttypeupdatingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeusebuttonlabel,h5plib_v126],[editor:contenttypeusebuttonlabel,h5plib_v127]
  CPY [editor:contributetranslations,h5plib_v126],[editor:contributetranslations,h5plib_v127]
  CPY [editor:copiedbutton,h5plib_v126],[editor:copiedbutton,h5plib_v127]
  CPY [editor:copiedtoclipboard,h5plib_v126],[editor:copiedtoclipboard,h5plib_v127]
  CPY [editor:copybutton,h5plib_v126],[editor:copybutton,h5plib_v127]
  CPY [editor:copytoclipboard,h5plib_v126],[editor:copytoclipboard,h5plib_v127]
  CPY [editor:createcontenttablabel,h5plib_v126],[editor:createcontenttablabel,h5plib_v127]
  CPY [editor:currentmenuselected,h5plib_v126],[editor:currentmenuselected,h5plib_v127]
  CPY [editor:editcopyright,h5plib_v126],[editor:editcopyright,h5plib_v127]
  CPY [editor:editimage,h5plib_v126],[editor:editimage,h5plib_v127]
  CPY [editor:editmode,h5plib_v126],[editor:editmode,h5plib_v127]
  CPY [editor:enteraudiotitle,h5plib_v126],[editor:enteraudiotitle,h5plib_v127]
  CPY [editor:enteraudiourl,h5plib_v126],[editor:enteraudiourl,h5plib_v127]
  CPY [editor:enterfullscreenbuttonlabel,h5plib_v126],[editor:enterfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:entervideotitle,h5plib_v126],[editor:entervideotitle,h5plib_v127]
  CPY [editor:entervideourl,h5plib_v126],[editor:entervideourl,h5plib_v127]
  CPY [editor:errorcalculatingmaxscore,h5plib_v126],[editor:errorcalculatingmaxscore,h5plib_v127]
  CPY [editor:errorcommunicatinghubcontent,h5plib_v126],[editor:errorcommunicatinghubcontent,h5plib_v127]
  CPY [editor:errorcommunicatinghubtitle,h5plib_v126],[editor:errorcommunicatinghubtitle,h5plib_v127]
  CPY [editor:errorheader,h5plib_v126],[editor:errorheader,h5plib_v127]
  CPY [editor:errornotsupported,h5plib_v126],[editor:errornotsupported,h5plib_v127]
  CPY [editor:errorparamsbroken,h5plib_v126],[editor:errorparamsbroken,h5plib_v127]
  CPY [editor:errortoohighversion,h5plib_v126],[editor:errortoohighversion,h5plib_v127]
  CPY [editor:example,h5plib_v126],[editor:example,h5plib_v127]
  CPY [editor:exceedsmax,h5plib_v126],[editor:exceedsmax,h5plib_v127]
  CPY [editor:exitfullscreenbuttonlabel,h5plib_v126],[editor:exitfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:expandcollapse,h5plib_v126],[editor:expandcollapse,h5plib_v127]
  CPY [editor:filetolarge,h5plib_v126],[editor:filetolarge,h5plib_v127]
  CPY [editor:fillinthefieldsbelow,h5plib_v126],[editor:fillinthefieldsbelow,h5plib_v127]
  CPY [editor:gethelp,h5plib_v126],[editor:gethelp,h5plib_v127]
  CPY [editor:h5pfileuploadservererrorcontent,h5plib_v126],[editor:h5pfileuploadservererrorcontent,h5plib_v127]
  CPY [editor:h5pfileuploadservererrortitle,h5plib_v126],[editor:h5pfileuploadservererrortitle,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedcontent,h5plib_v126],[editor:h5pfilevalidationfailedcontent,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedtitle,h5plib_v126],[editor:h5pfilevalidationfailedtitle,h5plib_v127]
  CPY [editor:h5pfilewrongextensioncontent,h5plib_v126],[editor:h5pfilewrongextensioncontent,h5plib_v127]
  CPY [editor:h5pfilewrongextensiontitle,h5plib_v126],[editor:h5pfilewrongextensiontitle,h5plib_v127]
  CPY [editor:height,h5plib_v126],[editor:height,h5plib_v127]
  CPY [editor:hide,h5plib_v126],[editor:hide,h5plib_v127]
  CPY [editor:hideimportantinstructions,h5plib_v126],[editor:hideimportantinstructions,h5plib_v127]
  CPY [editor:hubpanellabel,h5plib_v126],[editor:hubpanellabel,h5plib_v127]
  CPY [editor:illegaldecimalnumber,h5plib_v126],[editor:illegaldecimalnumber,h5plib_v127]
  CPY [editor:imagelightboxprogress,h5plib_v126],[editor:imagelightboxprogress,h5plib_v127]
  CPY [editor:imagelightboxtitle,h5plib_v126],[editor:imagelightboxtitle,h5plib_v127]
  CPY [editor:importantinstructions,h5plib_v126],[editor:importantinstructions,h5plib_v127]
  CPY [editor:insert,h5plib_v126],[editor:insert,h5plib_v127]
  CPY [editor:invalidformat,h5plib_v126],[editor:invalidformat,h5plib_v127]
  CPY [editor:language,h5plib_v126],[editor:language,h5plib_v127]
  CPY [editor:librarymissing,h5plib_v126],[editor:librarymissing,h5plib_v127]
  CPY [editor:licensecandistribute,h5plib_v126],[editor:licensecandistribute,h5plib_v127]
  CPY [editor:licensecanholdliable,h5plib_v126],[editor:licensecanholdliable,h5plib_v127]
  CPY [editor:licensecanmodify,h5plib_v126],[editor:licensecanmodify,h5plib_v127]
  CPY [editor:licensecansublicense,h5plib_v126],[editor:licensecansublicense,h5plib_v127]
  CPY [editor:licensecanusecommercially,h5plib_v126],[editor:licensecanusecommercially,h5plib_v127]
  CPY [editor:licensecannotholdliable,h5plib_v126],[editor:licensecannotholdliable,h5plib_v127]
  CPY [editor:licensedescription,h5plib_v126],[editor:licensedescription,h5plib_v127]
  CPY [editor:licensefetchdetailsfailed,h5plib_v126],[editor:licensefetchdetailsfailed,h5plib_v127]
  CPY [editor:licensemodalsubtitle,h5plib_v126],[editor:licensemodalsubtitle,h5plib_v127]
  CPY [editor:licensemodaltitle,h5plib_v126],[editor:licensemodaltitle,h5plib_v127]
  CPY [editor:licensemustincludecopyright,h5plib_v126],[editor:licensemustincludecopyright,h5plib_v127]
  CPY [editor:licensemustincludelicense,h5plib_v126],[editor:licensemustincludelicense,h5plib_v127]
  CPY [editor:licenseunspecified,h5plib_v126],[editor:licenseunspecified,h5plib_v127]
  CPY [editor:listbelowmin,h5plib_v126],[editor:listbelowmin,h5plib_v127]
  CPY [editor:listexceedsmax,h5plib_v126],[editor:listexceedsmax,h5plib_v127]
  CPY [editor:listlabel,h5plib_v126],[editor:listlabel,h5plib_v127]
  CPY [editor:loading,h5plib_v126],[editor:loading,h5plib_v127]
  CPY [editor:loadingimageeditor,h5plib_v126],[editor:loadingimageeditor,h5plib_v127]
  CPY [editor:logthischange,h5plib_v126],[editor:logthischange,h5plib_v127]
  CPY [editor:loggedchanges,h5plib_v126],[editor:loggedchanges,h5plib_v127]
  CPY [editor:maxscoresemanticsmissing,h5plib_v126],[editor:maxscoresemanticsmissing,h5plib_v127]
  CPY [editor:metadata,h5plib_v126],[editor:metadata,h5plib_v127]
  CPY [editor:metadatasharingandlicensinginfo,h5plib_v126],[editor:metadatasharingandlicensinginfo,h5plib_v127]
  CPY [editor:missingproperty,h5plib_v126],[editor:missingproperty,h5plib_v127]
  CPY [editor:missingtranslation,h5plib_v126],[editor:missingtranslation,h5plib_v127]
  CPY [editor:newchangehasbeenlogged,h5plib_v126],[editor:newchangehasbeenlogged,h5plib_v127]
  CPY [editor:newestfirst,h5plib_v126],[editor:newestfirst,h5plib_v127]
  CPY [editor:nextimage,h5plib_v126],[editor:nextimage,h5plib_v127]
  CPY [editor:nochangeshavebeenlogged,h5plib_v126],[editor:nochangeshavebeenlogged,h5plib_v127]
  CPY [editor:nocontenttypesavailable,h5plib_v126],[editor:nocontenttypesavailable,h5plib_v127]
  CPY [editor:nocontenttypesavailabledesc,h5plib_v126],[editor:nocontenttypesavailabledesc,h5plib_v127]
  CPY [editor:nofollow,h5plib_v126],[editor:nofollow,h5plib_v127]
  CPY [editor:notimageordimensionsfield,h5plib_v126],[editor:notimageordimensionsfield,h5plib_v127]
  CPY [editor:numresults,h5plib_v126],[editor:numresults,h5plib_v127]
  CPY [editor:numberfield,h5plib_v126],[editor:numberfield,h5plib_v127]
  CPY [editor:ok,h5plib_v126],[editor:ok,h5plib_v127]
  CPY [editor:onlynumbers,h5plib_v126],[editor:onlynumbers,h5plib_v127]
  CPY [editor:or,h5plib_v126],[editor:or,h5plib_v127]
  CPY [editor:orderitemdown,h5plib_v126],[editor:orderitemdown,h5plib_v127]
  CPY [editor:orderitemup,h5plib_v126],[editor:orderitemup,h5plib_v127]
  CPY [editor:outofstep,h5plib_v126],[editor:outofstep,h5plib_v127]
  CPY [editor:pasteandreplacebutton,h5plib_v126],[editor:pasteandreplacebutton,h5plib_v127]
  CPY [editor:pasteandreplacefromclipboard,h5plib_v126],[editor:pasteandreplacefromclipboard,h5plib_v127]
  CPY [editor:pastebutton,h5plib_v126],[editor:pastebutton,h5plib_v127]
  CPY [editor:pastecontent,h5plib_v126],[editor:pastecontent,h5plib_v127]
  CPY [editor:pastecontentnotsupported,h5plib_v126],[editor:pastecontentnotsupported,h5plib_v127]
  CPY [editor:pastecontentrestricted,h5plib_v126],[editor:pastecontentrestricted,h5plib_v127]
  CPY [editor:pasteerror,h5plib_v126],[editor:pasteerror,h5plib_v127]
  CPY [editor:pastefromclipboard,h5plib_v126],[editor:pastefromclipboard,h5plib_v127]
  CPY [editor:pastenocontent,h5plib_v126],[editor:pastenocontent,h5plib_v127]
  CPY [editor:pastetoonew,h5plib_v126],[editor:pastetoonew,h5plib_v127]
  CPY [editor:pastetooold,h5plib_v126],[editor:pastetooold,h5plib_v127]
  CPY [editor:popularfirst,h5plib_v126],[editor:popularfirst,h5plib_v127]
  CPY [editor:previousimage,h5plib_v126],[editor:previousimage,h5plib_v127]
  CPY [editor:proceedbuttonlabel,h5plib_v126],[editor:proceedbuttonlabel,h5plib_v127]
  CPY [editor:readless,h5plib_v126],[editor:readless,h5plib_v127]
  CPY [editor:readmore,h5plib_v126],[editor:readmore,h5plib_v127]
  CPY [editor:recentlyusedfirst,h5plib_v126],[editor:recentlyusedfirst,h5plib_v127]
  CPY [editor:reloadbuttonlabel,h5plib_v126],[editor:reloadbuttonlabel,h5plib_v127]
  CPY [editor:removefile,h5plib_v126],[editor:removefile,h5plib_v127]
  CPY [editor:removeimage,h5plib_v126],[editor:removeimage,h5plib_v127]
  CPY [editor:removeitem,h5plib_v126],[editor:removeitem,h5plib_v127]
  CPY [editor:requiredproperty,h5plib_v126],[editor:requiredproperty,h5plib_v127]
  CPY [editor:resettooriginallabel,h5plib_v126],[editor:resettooriginallabel,h5plib_v127]
  CPY [editor:savelabel,h5plib_v126],[editor:savelabel,h5plib_v127]
  CPY [editor:savemetadata,h5plib_v126],[editor:savemetadata,h5plib_v127]
  CPY [editor:screenshots,h5plib_v126],[editor:screenshots,h5plib_v127]
  CPY [editor:scriptmissing,h5plib_v126],[editor:scriptmissing,h5plib_v127]
  CPY [editor:searchresults,h5plib_v126],[editor:searchresults,h5plib_v127]
  CPY [editor:selectfiletoupload,h5plib_v126],[editor:selectfiletoupload,h5plib_v127]
  CPY [editor:selectlibrary,h5plib_v126],[editor:selectlibrary,h5plib_v127]
  CPY [editor:semanticserror,h5plib_v126],[editor:semanticserror,h5plib_v127]
  CPY [editor:show,h5plib_v126],[editor:show,h5plib_v127]
  CPY [editor:showimportantinstructions,h5plib_v126],[editor:showimportantinstructions,h5plib_v127]
  CPY [editor:tabtitlebasicfileupload,h5plib_v126],[editor:tabtitlebasicfileupload,h5plib_v127]
  CPY [editor:tabtitleinputlinkurl,h5plib_v126],[editor:tabtitleinputlinkurl,h5plib_v127]
  CPY [editor:textfield,h5plib_v126],[editor:textfield,h5plib_v127]
  CPY [editor:thecontenttype,h5plib_v126],[editor:thecontenttype,h5plib_v127]
  CPY [editor:thiswillpotentially,h5plib_v126],[editor:thiswillpotentially,h5plib_v127]
  CPY [editor:title,h5plib_v126],[editAMOS END
  or:title,h5plib_v127]
  CPY [editor:toolong,h5plib_v126],[editor:toolong,h5plib_v127]
  CPY [editor:tryagain,h5plib_v126],[editor:tryagain,h5plib_v127]
  CPY [editor:tutorial,h5plib_v126],[editor:tutorial,h5plib_v127]
  CPY [editor:unabletointerpreterror,h5plib_v126],[editor:unabletointerpreterror,h5plib_v127]
  CPY [editor:unabletointerpretsolution,h5plib_v126],[editor:unabletointerpretsolution,h5plib_v127]
  CPY [editor:unknownfieldpath,h5plib_v126],[editor:unknownfieldpath,h5plib_v127]
  CPY [editor:uploadinstructionstitle,h5plib_v126],[editor:uploadinstructionstitle,h5plib_v127]
  CPY [editor:uploadplaceholder,h5plib_v126],[editor:uploadplaceholder,h5plib_v127]
  CPY [editor:uploadsuccess,h5plib_v126],[editor:uploadsuccess,h5plib_v127]
  CPY [editor:uploadtablabel,h5plib_v126],[editor:uploadtablabel,h5plib_v127]
  CPY [editor:uploadvideotitle,h5plib_v126],[editor:uploadvideotitle,h5plib_v127]
  CPY [editor:uploading,h5plib_v126],[editor:uploading,h5plib_v127]
  CPY [editor:uploadingthrobber,h5plib_v126],[editor:uploadingthrobber,h5plib_v127]
  CPY [editor:usedforsearchingreportsandcopyrightinformation,h5plib_v126],[editor:usedforsearchingreportsandcopyrightinformation,h5plib_v127]
  CPY [editor:videoquality,h5plib_v126],[editor:videoquality,h5plib_v127]
  CPY [editor:videoqualitydefaultlabel,h5plib_v126],[editor:videoqualitydefaultlabel,h5plib_v127]
  CPY [editor:videoqualitydescription,h5plib_v126],[editor:videoqualitydescription,h5plib_v127]
  CPY [editor:warningchangebrowsingtoseeresults,h5plib_v126],[editor:warningchangebrowsingtoseeresults,h5plib_v127]
  CPY [editor:warningnocontenttypesinstalled,h5plib_v126],[editor:warningnocontenttypesinstalled,h5plib_v127]
  CPY [editor:warningupdateavailablebody,h5plib_v126],[editor:warningupdateavailablebody,h5plib_v127]
  CPY [editor:warningupdateavailabletitle,h5plib_v126],[editor:warningupdateavailabletitle,h5plib_v127]
  CPY [editor:width,h5plib_v126],[editor:width,h5plib_v127]
AMOS END
2024-09-26 10:35:25 +02:00
Jun Pataleta 81e23f4c02 Merge branch 'MDL-83263-404' of https://github.com/mihailges/moodle into MOODLE_404_STABLE 2024-09-26 16:28:47 +08:00
Michael Pound d8a9c0b987 MDL-79288 block_accessreview: Improve heatmap colour contrast. 2024-09-26 08:10:53 +00:00
Andrew Nicols a89faaf6e5 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 15:17:40 +08:00
Huong Nguyen 881d5fb544 Merge branch 'MDL-62640-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-09-26 11:07:20 +07:00
Cameron Ball 3f8ed2a39c MDL-82298 navigation: Update behat tests for theme_classic 2024-09-26 11:14:53 +08:00
Jun Pataleta e1f3a16764 Merge branch 'MDL-83235-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-26 09:25:41 +08:00
Sara Arjona 8cb9876cf8 Merge branch 'MDL-83173-404' of https://github.com/stevandoMoodle/moodle into MOODLE_404_STABLE 2024-09-25 17:11:36 +02:00
Andrew Nicols 24dadc7a7f Merge branch 'MDL-82298-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-09-25 22:55:25 +08:00
Andrew Nicols 1cc03ca6b9 MDL-82298 navigation: Update behat tests 2024-09-25 22:38:20 +08:00
Karjun Loong 35fd32ffb4 MDL-82298 navigation: Add behat tests for secondary menu navigation 2024-09-25 22:38:20 +08:00
Jose 5a010c604d MDL-82298 navigation: Add setting data-disableactive on moremenu items
This setting will avoid conflicts between checkmark and
bfcache. The removed function added as part of the MDL-77732
is no longer required as the behaviour on the menu items (including the
secondary navigation) is not altered anymore by the menuItemHelper function
(menu_navigation file).
2024-09-25 22:38:19 +08:00
Mihail Geshoski a646166319 MDL-83263 grade: Handle undefined array key on grade override revert 2024-09-25 17:27:13 +08:00
Huong Nguyen 6d65eb3a1f Merge branch 'MDL-72856-M404' of https://github.com/michael-milette/moodle into MOODLE_404_STABLE 2024-09-25 08:58:20 +07:00
Sara Arjona 9a19ddfef4 weekly release 4.4.3+ 2024-09-24 16:51:58 +02:00
Stevani Andolo ffaed1fc50 MDL-83173 course: Fixed overlaps courses cards three dots 2024-09-24 09:51:59 +08:00
Shamim Rezaie 2c111a05ea Merge branch 'MDL-77625_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-09-24 02:53:19 +10:00
Bas Brands e2712c4065 MDL-70180 theme_boost: Allow form autoselect modal overflow
Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-09-23 15:07:34 +02:00
Paul Holden 6865cf828b MDL-83235 qbank_columnsortorder: correct config retrieval ordering.
There is a unique index on plugin/name, so having a trailing order
clause on value would produce no effect. We also cannot order by
CLOB fields on Oracle, lest it complain loudly.
2024-09-23 08:56:38 +01:00
meirzamoodle 3202109780 MDL-62640 environment: Remove the deprecated slash argument check 2024-09-23 13:04:30 +07:00
Sara Arjona 0cd33e81ce Merge branch 'MDL-81612_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-09-23 07:36:18 +02:00
Huong Nguyen f5f2e79a72 Merge branch 'MDL-83204-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-09-23 11:12:45 +07:00
Paul Holden 4a4a42cdce MDL-82580 report_log: preserve filter by individual user. 2024-09-20 20:54:15 +01:00
Paul Holden c36fe51c48 MDL-82581 mod_label: avoid overflowing length of label name. 2024-09-20 19:26:56 +01:00
Sara Arjona 11fc78ed62 weekly release 4.4.3+ 2024-09-20 16:36:04 +02:00
Sara Arjona a635c64779 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-09-20 16:35:58 +02:00
Ilya Tregubov ff4f52ddcf Merge branch 'MDL-82663-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-20 10:17:24 +08:00
Huong Nguyen 3342532dfa Merge branch 'MDL-82740-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-09-20 08:44:20 +07:00
Ilya Tregubov 931ac8545a Merge branch 'MDL-74188-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-20 09:39:37 +08:00
Ilya Tregubov 4eed515242 Merge branch 'MDL-82488-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-20 09:25:13 +08:00
Sara Arjona 32162a7fe4 Merge branch 'MDL-83050-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-09-19 17:06:05 +02:00
Tim Hunt bc8b2d8b63 MDL-81612 assign: show current value when editing a student's extension
Also, if there is not currently an extension set, the set extension form
will default to whatever is the latest out of the due date, the cut-off date
and midnight tonight (in the server time-zone).
2024-09-19 16:02:12 +01:00
Tim Hunt ba94804e81 MDL-81612 assign: test generation of extensions
Also, some other improvements.

* In Behat you can now use either idnumber of name to identify an
  assignment you are generating things for.
* create_submission generator methods now wants the cmid in $data['cmid']
  not the confusingly named 'assignid'. The old name is accepted, but
  generates a debugging warning. (That will fail the test, but in a way
  that explains how to fix it.)
2024-09-19 16:02:12 +01:00
Jun Pataleta ad913b65ee MDL-82740 core: Check for monologo icons in theme overrides 2024-09-19 20:48:48 +08:00
Paul Holden 90fd319190 MDL-82813 group: correctly format group description property. 2024-09-19 13:44:58 +01:00
Laurent David 289f2b427a MDL-83050 core_courseformat: Fix index highlight for collapsed section
* Collapsed sections on course index is not highlighting the correct
element when scrolling over subelements.
2024-09-19 12:01:02 +02:00
Mikel Martín ae73896f2b MDL-83204 tool_policy: Fix footer link spacing 2024-09-19 11:28:37 +02:00
Mikel Martín 42be864b55 MDL-83204 tool_mobile: Fix footer link spacing 2024-09-19 11:28:36 +02:00
Huong Nguyen 7fbbd368f6 Merge branch 'MDL-83199-404' of https://github.com/mihailges/moodle into MOODLE_404_STABLE 2024-09-19 15:40:30 +07:00
Ilya Tregubov 003d6ee817 Merge branch 'MDL-82909-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-19 15:08:32 +08:00
Ilya Tregubov 084dbef995 Merge branch 'MDL-82494-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-19 14:05:19 +08:00
Andrew Nicols ecceaffca1 MDL-83205 core: Ensure that redis lock expiry is valid
PHP allows the specification of invalid values for `max_execution_time`,
including negative values. These should be normalised the same way that
an empty (unlimited) value is.
2024-09-19 13:36:52 +08:00
Ilya Tregubov b0600e2954 Merge branch 'MDL-81987_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-09-19 12:50:33 +08:00
Huong Nguyen 0df6fd6b43 Merge branch 'MDL-83122-404' of https://github.com/safatshahin/moodle into MOODLE_404_STABLE 2024-09-19 10:39:35 +07:00
Jun Pataleta e66e5955e7 MDL-79628 core: Add upgrade notes for the navigation_cache changes 2024-09-19 11:11:31 +08:00
Jun Pataleta d73ad2127e Merge branch 'MDL-79628-move-navcache-to-muc-feature-MOODLE_404_STABLE' of https://github.com/rajandangi/moodle into MOODLE_404_STABLE 2024-09-19 11:10:06 +08:00
Jun Pataleta fdb513461b Merge branch 'MDL-80965-404-behat-fix' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-09-19 08:41:05 +08:00
AMOS bot 0e69b95fbb Automatically generated installer lang files 2024-09-19 00:09:33 +00:00
Simey Lameze 3792869ef7 MDL-80965 behat: remove wrong tag from step 2024-09-19 07:49:22 +08:00
Sara Arjona a290cc77a3 Merge branch 'MDL-74917-404-wrong-post-actions-list-in-statslib' of https://github.com/melanietreitinger/moodle into MOODLE_404_STABLE 2024-09-18 17:19:14 +02:00
Mihail Geshoski 5ec04e7808 MDL-83199 core: Adjust the padding for the bulk actions content area 2024-09-18 17:30:22 +08:00
Huong Nguyen f129cbbe62 Merge branch 'MDL-81278-404' of https://github.com/mickhawkins/moodle into MOODLE_404_STABLE 2024-09-18 16:08:46 +07:00
Ilya Tregubov 9317b4d86e Merge branch 'MDL-80965-404' of https://github.com/ilyatregubov/moodle into MOODLE_404_STABLE 2024-09-18 15:33:21 +08:00
Ilya Tregubov 86a71669ee MDL-80965 mod_quiz: Code style fixes. 2024-09-18 15:29:49 +08:00
Luca Bösch 76d79b57c4 MDL-80965 mod_quiz: Put back random q category on the question page. 2024-09-18 15:29:49 +08:00
AMOS bot 6aa7832084 Automatically generated installer lang files 2024-09-18 00:07:44 +00:00
Paul Holden fbc8123eb4 MDL-82973 tool_usertours: add missing filelib library require. 2024-09-17 16:49:14 +01:00
Sara Arjona a4dd8fedf0 Merge branch 'MDL-82389-404' of https://github.com/ssj365/moodle into MOODLE_404_STABLE 2024-09-17 17:31:47 +02:00
Julien fc1e46db15 MDL-77625 question restore: test restoring a quiz into a course twice
The verifies that the previous two commits are doing the right thing.
2024-09-17 16:17:36 +01:00
Tim Hunt 26af25312c MDL-77625 question restore: fix restore of existing questions
Continuing from the last commit, the code to restore question
bank entries, versions and questions, was not taking note of
whether the first stage had indentified questions that did not
need to be restored. This is tricky, but the mapping can only be
worked out for questions, but in the backup file, the questions are
inside the question_bank_entries, and versions, so we encounter
those first.

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

That code had not been updated to cope with the Moodle 4.0
versioning changes, so it is updated here (while still keeping
the code to cope with the old backup format.)
2024-09-17 16:17:34 +01:00
Sara Arjona 62c4f8a76c weekly release 4.4.3+ 2024-09-17 15:09:23 +02:00
Safat 237a803050 MDL-83122 core_communication: Fix exception for delete user hook 2024-09-17 16:08:06 +10:00
sam marshall 32ac490e77 MDL-83163 core_course: Fresh install fails if dependency on format
If any plugin had dependency on a course format, Moodle fresh install
showed dependency errors (even though course format exists).
2024-09-16 15:44:25 +01:00
Jun Pataleta 54b01d1943 Merge branch 'MDL-83127-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-09-16 15:59:01 +08:00
Sara Arjona 8069aeec1e Merge branch 'MDL-82875_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-09-16 09:44:07 +02:00
Michael Hawkins e715380d4b MDL-81278 core: Update security.txt expiry 2024-09-16 14:50:32 +08:00
Paul Holden 20c681e5f8 MDL-81157 files: consistent repository button styling on small screen. 2024-09-15 11:13:03 +01:00
Paul Holden cfcaf488be MDL-82909 theme_boost: ensure we target immediate loading icon only.
Ignoring those used within inplace editable components in the table.
2024-09-15 11:11:44 +01:00
Paul Holden 2a65efd9a3 MDL-82909 javascript: replace custom loading icon with existing module. 2024-09-15 11:11:44 +01:00
Tim Hunt 46748714da MDL-82875 question export: test for not exporting hidden questions 2024-09-13 16:04:16 +01:00
Vithusha Kethiri 846e242aec MDL-82875 qbank_export: Fix removing hidden questions from the export 2024-09-13 16:04:16 +01:00
Sara Arjona 49d8babe8b weekly release 4.4.3+ 2024-09-13 13:20:49 +02:00
Sara Arjona 5102249c52 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-09-13 13:20:45 +02:00
Luca Bösch 37f5141f60 MDL-83127 qtype_ordering: handle NULL in question_hints table entries. 2024-09-13 12:07:57 +02:00
Paul Holden b9e73bd65e MDL-83094 customfield: align persistent definitions with DB schema.
Where the field/category tables allow nulls, the definition within
each corresponding persistent should match.
2024-09-12 17:36:59 +01:00
Melanie Treitinger 4a0cb6e1b5 MDL-74917 core: fix typo in function stats_get_post_actions
Fix phpunit test and apply coding guidelines.
2024-09-12 10:53:16 +02:00
Paul Holden bfe4d189cb MDL-82602 webservice: correct config link to enable for mobile. 2024-09-12 08:05:06 +01:00
Jun Pataleta 4058934644 Merge branch 'mdl-83046_404' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2024-09-12 13:40:33 +08:00
Huong Nguyen ca8e5915e6 Merge branch 'MDL-82545_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-09-12 10:46:52 +07:00
Huong Nguyen 2247cd68a4 Merge branch 'MDL-82959-MOODLE_404_STABLE' of https://github.com/sh-csg/moodle into MOODLE_404_STABLE 2024-09-12 10:35:11 +07:00
james-cnz 36c8faede8 MDL-83046 course: Add non-delegated sections before delegated ones 2024-09-12 12:11:31 +12:00
AMOS bot 31e1e17590 Automatically generated installer lang files 2024-09-12 00:07:43 +00:00
Shamiso.Jaravaza d79acfdd59 MDL-82389 mod_bigbluebuttonbn: Fix disablenotes 2024-09-11 09:34:34 -06:00
Huong Nguyen bc1324af4d Merge branch 'MDL-68676-404' of https://github.com/rhell4/moodle into MOODLE_404_STABLE 2024-09-11 15:50:10 +07:00
Huong Nguyen 367d1c7cb7 Merge branch 'MDL-75692-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-09-11 15:45:21 +07:00
Jun Pataleta 8346e2b912 Merge branch 'MDL-82270-extra_backslash-404' of https://github.com/mathbruyen/moodle into MOODLE_404_STABLE 2024-09-11 15:53:46 +08:00
Jun Pataleta 09274be2e0 Merge branch 'MDL-82492-404' of https://github.com/vladaskidanovas/moodle into MOODLE_404_STABLE 2024-09-11 15:36:45 +08:00
Huong Nguyen d8f262e0b5 Merge branch 'MDL-79020-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-09-11 09:19:22 +07:00
AMOS bot 692f8031bf Automatically generated installer lang files 2024-09-11 00:07:49 +00:00
Huong Nguyen f86b97fdd6 weekly release 4.4.3+ 2024-09-10 20:03:01 +07:00
Laurent David faf0e0654d MDL-75692 core_h5p: Debounce resize events
* Make sure that we don't call the resize event too often to
avoid infinite loop when content is auto resizing (fonts for example)
2024-09-10 11:32:00 +02:00
Huong Nguyen bc3050ad0c Merge branch 'MDL-83047-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-09-10 10:47:24 +07:00
Huong Nguyen 2412b1278b Merge branch 'MDL-83038-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-10 09:34:28 +07:00
Jun Pataleta cb6904b002 MDL-83047 theme_boost: Add upgrade note for theme plugins 2024-09-10 10:33:30 +08:00
Sara Arjona 2cf32c40e9 Merge branch 'MDL-83037-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-09 17:21:59 +02:00
Jun Pataleta a4ee77a654 MDL-83047 theme_boost: Apply background colour only on select layouts
* Apply the styling of `background-color` for `.page-header-headings`
only in the maintenance and secure layouts.
2024-09-09 17:01:11 +08:00
Huong Nguyen 15e04d6651 Merge branch 'MDL-82860-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-09-09 14:32:20 +07:00
meirzamoodle 8ccba0808b MDL-82860 atto_link: Set value as default to avoid unexpected behaviour 2024-09-09 08:11:56 +07:00
Jun Pataleta 9ecb8de2bb weekly release 4.4.3+ 2024-09-07 06:45:35 +08:00
Stefan Hanauska 851c6d00b6 MDL-82959 tool_recyclebin: Avoid null value for forcedsettings 2024-09-06 19:47:31 +02:00
Paul Holden 864bbf86db MDL-83038 mod_quiz: use dummy URL in quiz grading page external call. 2024-09-06 12:26:11 +01:00
Paul Holden 08127c83a7 MDL-83037 badges: ensure image is specified in Behat test generator. 2024-09-06 11:25:35 +01:00
ferranrecio c4f9163dc0 MDL-79020 core_courseformat: hide completion edit link in bulk edit 2024-09-06 11:11:16 +02:00
Jun Pataleta dfaa31d4f0 Merge branch 'MDL-63399-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-09-06 12:29:21 +08:00
Simey Lameze f62ef26f37 MDL-63399 behat: update existing tests to use the better download steps
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:14:33 +08:00
Simey Lameze 3dc10958bc MDL-63399 behat: new steps to verify downloads
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:06:44 +08:00
Huong Nguyen 7901350509 Merge branch 'MDL-82948-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-09-06 11:01:14 +07:00
Huong Nguyen 298810e993 Merge branch 'MDL-82677-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-09-06 10:50:55 +07:00
rajandangi 3c04cc40d0 MDL-79628 navigation: Refactor navigation_cache to use MUC 2024-09-06 09:44:47 +09:30
Huong Nguyen 125db05313 Merge branch 'MDL-80946_MOODLE_404_STABLE' of https://github.com/michaelkotlyar/moodle into MOODLE_404_STABLE 2024-09-05 15:53:59 +07:00
Michael Kotlyar c34b5f79cd MDL-80946 quizaccess_seb: Remove invalidkeys text if not using SEB. 2024-09-05 09:07:38 +01:00
Huong Nguyen e4b96893b8 Merge branch 'MDL-81909-404' of https://github.com/rezaies/moodle into MOODLE_404_STABLE 2024-09-05 14:49:53 +07:00
Shamim Rezaie 452d92d9bb MDL-81909 mod_assign: fix test_attempt_reopen_method_untilpass 2024-09-05 03:27:03 +10:00
Michael Milette e55e9974b8 MDL-72856 lib: Only inject one robots/noindex in head of Additional HTML 2024-09-04 12:32:01 -04:00
Sara Arjona fd5c2b3aa4 Merge branch 'MDL-82995_MOODLE_404_STABLE_feedback_broken_audio_video' of https://github.com/JordanKrauseDE/moodle into MOODLE_404_STABLE 2024-09-04 12:59:10 +02:00
JordanKrauseDE 1fd5899e70 MDL-82995 feedback: fixed audio and video width 2024-09-04 09:27:40 +02:00
Huong Nguyen b9a191dda8 Merge branch 'MDL-80225-404' of https://github.com/ssj365/moodle into MOODLE_404_STABLE 2024-09-04 09:30:04 +07:00
Paul Holden 89506cd08d MDL-80929 customfield: observe backup/restore settings to include. 2024-09-03 13:56:27 +01:00
Paul Holden e8c5f37306 MDL-80929 restore: consistent settings definition for custom fields. 2024-09-03 13:49:56 +01:00
Jun Pataleta 6a7b69a30a weekly release 4.4.3+ 2024-09-03 20:05:13 +08:00
Mathieu Bruyen ddbc161632 MDL-82270 tool_policy: fix guest policy template markup.
Remove extra backslash producing invalid markup in consent banner.
2024-09-03 09:47:28 +02:00
Jun Pataleta 4b6b859ca0 Merge branch 'MDL-82957-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-09-03 11:42:24 +08:00
Jun Pataleta 66896b275a Merge branch 'MDL-82804-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-03 10:32:18 +08:00
Jun Pataleta 2558c6a9b9 Merge branch 'MDL-82717-404' of https://github.com/liamgm/moodle into MOODLE_404_STABLE 2024-09-03 10:29:25 +08:00
Jun Pataleta 890f2e7c57 MDL-82255 editor_tiny: No need for extra styles for RTL 2024-09-02 16:55:53 +08:00
Jun Pataleta eb05d37e5b Merge branch 'MDL-82255-404' of https://github.com/raortegar/moodle into MOODLE_404_STABLE 2024-09-02 16:01:50 +08:00
Ilya Tregubov b85b5dd74e Merge branch 'MDL-82220-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-09-02 10:10:03 +08:00
Paul Holden 230831bc70 MDL-82494 user: correct profile field name formatting method.
Add optional `$escape` parameter to allow for unescaped return.
2024-08-30 09:48:08 +01:00
Paul Holden 60e11dc998 MDL-82488 customfield: allow for unescaped field formatted names.
Resolves double encoding of the same in Report builder editor.
2024-08-30 09:44:41 +01:00
Mikel Martín 88730f6a8d MDL-82957 course: Fix section bulk actions alignment 2024-08-30 09:14:19 +02:00
Huong Nguyen c1d466b911 Moodle release 4.4.3 2024-08-30 13:51:03 +07:00
Paul Holden cd69894e95 MDL-82804 badges: define no results notice inside report instances.
When doing so from calling code, the property is not persisted when
filtering/paging (or any AJAX interaction); instead, it should be
set from within the report instance itself.
2024-08-29 16:37:58 +01:00
Huong Nguyen 13561f5881 weekly release 4.4.2+ 2024-08-29 18:09:57 +07:00
Paul Holden c83eaf4066 MDL-82483 tag: update the max length constant to match schema. 2024-08-29 10:38:00 +01:00
Liam Moran e78fe25155 MDL-82717 enrol_lti: Make contextmembershipsurl property immutable
The contextmembershipsurl property on the nrsp_info object is itself
an object of type moodle_url so its getter should return a copy
of the moodle_url object instead of a reference to the class-internal
object. This commit adds a test for get_context_memberships_url and
updates the getter so the property is immutable.
2024-08-29 03:44:54 -05:00
Paul Holden a31041ef7b MDL-82365 mod_lesson: stricter equality checks of activity password. 2024-08-29 16:12:16 +08:00
Jun Pataleta 5f1db200b1 MDL-82948 theme_boost: Make <blockquote>'s border a bit darker 2024-08-29 16:04:31 +08:00
raortegar c5ef86c3bf MDL-82255 editor_tiny: Style blockquote in editor 2024-08-29 09:20:46 +02:00
Huong Nguyen 098013a01d Merge branch 'MDL-82718-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-29 11:08:46 +07:00
Huong Nguyen ec63b8f289 Merge branch 'MDL-82446-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-29 11:05:14 +07:00
Jun Pataleta b3cea552a2 Merge branch 'MDL-82651-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-08-29 11:59:35 +08:00
Jun Pataleta 9777b29452 Merge branch 'MDL-82802-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-29 11:40:00 +08:00
Ilya Tregubov 081dc58c6f MDL-82882 mod_quiz: Code style fixes 2024-08-29 11:28:03 +08:00
Ilya Tregubov a650045e23 Merge branch 'MDL-82882_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-08-29 11:24:44 +08:00
Huong Nguyen 1396072aa3 MDL-82790 filter_tidy: Fix coding style 2024-08-29 10:19:31 +07:00
Huong Nguyen 8864cfdcb8 Merge branch 'MDL-82790-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-29 10:04:55 +07:00
Ilya Tregubov 727cedf0be Merge branch 'MDL-82810_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-08-29 10:57:13 +08:00
Huong Nguyen d45bc875af Merge branch 'MDL-82898-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-08-29 09:50:14 +07:00
Paul Holden d09d4730d9 MDL-76962 auth_oauth2: users can only delete their own linked logins. 2024-08-29 10:32:16 +08:00
Stefan Hanauska faac67e2ea MDL-80974 enrol: Set category context for enrol form 2024-08-28 12:33:40 +02:00
Simey Lameze 57fcc42a49 MDL-82651 behat: remove unnecessary steps 2024-08-28 13:51:24 +08:00
Simey Lameze be680afe3e MDL-82651 behat: wait for button to exist before clicking 2024-08-28 13:51:23 +08:00
Angelia Dela Cruz e1d69f2347 MDL-82898 enrol_self: Behat to test student enrolment using key 2024-08-28 11:34:55 +08:00
Paul Holden 8caac3da44 MDL-82663 user: fix check for current user removing own enrolment.
We only need to remove the current user from selection if they were
ever part of the selection originally.
2024-08-27 16:55:20 +01:00
Paul Holden c0a69e036e MDL-82718 tiny_media: fix error string loading for invalid image. 2024-08-27 09:21:38 +01:00
Marina Glancy aca6d79b91 MDL-82567 core: Add has_capability method
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
Co-authored-by: Jun Pataleta <jun@moodle.com>
2024-08-26 04:01:20 +00:00
Huong Nguyen a2c405ba5f MDL-69684 session_redis: Improve upgrade note 2024-08-26 10:57:52 +07:00
Huong Nguyen f200548361 MDL-69684 session_redis: Improve PHPUnit test 2024-08-26 10:57:29 +07:00
Huong Nguyen 1ff829a4f0 Merge branch 'MDL-69684-M404_its-possible-to-hold-a-redis-session-lock-forever' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2024-08-26 10:54:10 +07:00
Shamim Rezaie 607cf7fff1 Merge branch 'MDL-82006-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-24 16:21:26 +10:00
Sara Arjona f714dbee87 weekly release 4.4.2+ 2024-08-23 16:03:51 +02:00
Tim Hunt 72ba0759fc MDL-82882 quiz: add before/after for attempt_summary_information 2024-08-23 12:53:37 +01:00
Jake Dallimore 0ada05c99f Merge branch 'MDL-82787-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-23 11:51:23 +08:00
Jake Dallimore a5c0090669 Merge branch 'MDL-82863-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-08-23 10:43:37 +08:00
Jun Pataleta 31d7689f7f Merge branch 'MDL-79215-MOODLE_404_STABLE' of https://github.com/MichaelReyesCatcan/moodle into MOODLE_404_STABLE 2024-08-22 23:57:30 +08:00
KarlReyesCatalyst 86a5027502 MDL-79215 lib/graphlib: Typecasting round() function to INT. 2024-08-22 10:20:47 -04:00
Sara Arjona 36002cf5e7 MDL-82863 tool_generator: Add missing BEHAT_TEST constant
The tool_generator now defines the BEHAT_TEST constant to ensure
that Behat generators are consistently utilized.
2024-08-22 13:23:46 +02:00
Mark Johnson 67674462dd MDL-82545 gradereport_grader: Limit grades per page
This replaces the limit on the number of students per page with a number
of grades per page, to take into account the number of grade items on a
course.
2024-08-22 11:04:20 +01:00
Shamiso.Jaravaza f354ba61e6 MDL-80225 mod_bigbluebuttonbn: Fix missing recordings 2024-08-21 21:02:54 -06:00
Huong Nguyen 778a1c3546 Merge branch 'MDL-82841-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-08-22 08:43:37 +07:00
Sara Arjona 19666984de Merge branch 'MDL-82695_404_STABLE' of https://github.com/andrewhancox/moodle into MOODLE_404_STABLE 2024-08-21 16:07:47 +02:00
Sara Arjona 268b9dadfd Merge branch 'MDL-82655-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-08-21 15:54:19 +02:00
Andrew Hancox e3b1909b2b MDL-82695 qtype_multianswer: Fix div by zero in compute_final_grade 2024-08-21 13:47:18 +01:00
Angelia Dela Cruz da1346752d MDL-82841 mod_workshop: Behat for submissions with set # of attachments 2024-08-21 19:00:23 +08:00
Huong Nguyen 50bbd580ac Merge branch 'MDL-82110-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-21 17:43:40 +07:00
Angelia Dela Cruz 6367ed9300 MDL-82655 mod_workshop: Behat test for manual and random allocation 2024-08-21 17:27:14 +08:00
Jun Pataleta 8684982cfe Merge branch 'MDL-78785_404_toolbrickfield_rgbcolorcontrasts' of https://github.com/brickfield/moodle into MOODLE_404_STABLE 2024-08-21 11:49:34 +08:00
Andrew Nicols 59a80f598b MDL-82787 behat: Correct stop of webdriver on failure 2024-08-21 08:46:07 +08:00
Sara Arjona 181f00f36e weekly release 4.4.2+ 2024-08-20 20:15:56 +02:00
Sara Arjona 38aaac7af6 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-08-20 20:15:53 +02:00
Justus Dieckmann a7f5c1eb05 MDL-82838 tool_mfa: Prevent accidental resubmission of token 2024-08-20 16:44:24 +02:00
Andrew Nicols fb7ef63350 MDL-82110 core: Remove debugging for unmigrated hooks in unit tests 2024-08-20 20:28:49 +08:00
Andrew Nicols 2d51edb610 MDL-82790 filter_tidy: Disable the tidy filter
This behaves very poorly and for most users has been silently not
working for many years.

When we stopped it from silently failing we discovered a number of
issues that it causes, for example:
- MDL-61117
- MDL-82790
2024-08-20 20:15:06 +08:00
vlad.kidanov 1ba60572b3 MDL-82492 gradereport_grader: Grader report HTML output optimization 2024-08-20 10:34:29 +01:00
Sara Arjona 24e196b63d Merge branch 'MDL-82455-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-19 16:45:58 +02:00
AMOS bot 944e9d5fdc Automatically generated installer lang files 2024-08-19 00:07:46 +00:00
Karen Holland b28424638c MDL-78785 tool_brickfield: Processing rgb & rgba color contrasts
Including rgb(), rgba() processing for colour contrast checking.
  Including review requests :void and @covers for phpunit testing.
2024-08-16 17:33:47 +00:00
Tim Hunt d580889967 MDL-82810 question bank: stop action menu from getting truncated 2024-08-16 13:35:50 +01:00
Paul Holden c804789bbb MDL-74188 notes: consistent formatting of text content.
Each method of adding notes, either via UI or external service (via
course participant actions), defined the format of the content
different from one another. Neither of those formats were correct.
2024-08-16 10:20:01 +01:00
Paul Holden ddd99c03d2 MDL-82220 group: check valid mapping when restoring custom fields. 2024-08-16 10:09:04 +01:00
Paul Holden 8aa860d7b7 MDL-82220 backup: ensure correct group/ing custom fields are included.
We should include only the custom field values that belong to those
groups and/or groupings that are being backed up.
2024-08-16 10:09:04 +01:00
Huong Nguyen d559cde424 weekly release 4.4.2+ 2024-08-16 08:38:37 +07:00
Paul Holden fafeeda7e1 MDL-82455 badges: link report recipients count to appropriate page. 2024-08-15 21:40:41 +01:00
Paul Holden ef70a58aed MDL-82006 reportbuilder: move filter Behat scenarios inside component. 2024-08-15 13:15:26 +01:00
Paul Holden d82ea0f211 MDL-82802 tool_xmldb: allow numeric characters in table names. 2024-08-15 12:00:40 +01:00
Huong Nguyen 96cf22c819 Merge branch 'MDL-82724-MOODLE_404_STABLE' of https://github.com/phmemmel/moodle into MOODLE_404_STABLE 2024-08-15 10:59:48 +07:00
Jun Pataleta 833b48fc75 Merge branch 'MDL-82782-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-15 11:51:57 +08:00
Jun Pataleta a1b390bd4f Merge branch 'MDL-82798-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-08-15 11:13:54 +08:00
Huong Nguyen cc9b202deb Merge branch 'MDL-82758-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-08-15 09:37:47 +07:00
Huong Nguyen f2e657fc42 MDL-82798 qtype_ddmarker: Fix Behat failure 2024-08-15 09:17:13 +07:00
Jun Pataleta d94e170007 Merge branch 'MDL-82792-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-08-15 10:14:49 +08:00
Jun Pataleta d430695693 Merge branch 'MDL-82668-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-14 23:26:32 +08:00
Jun Pataleta 36030e92d7 Merge branch 'MDL-82747-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-08-14 23:04:52 +08:00
Daniel Ziegenberg 0d0cdaeecf MDL-69684 session: Redis session locks set with expiry atomically
Co-Authored-By: Jamie Chapman-Brown <jamie.chapman-brown@agilicus.com>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 17:03:17 +02:00
Andrew Nicols dc9b44f531 MDL-82747 core: Register composer autoload files
Unfortunately PHP does not provide any means to autoload the files that
a functions is located in, even if they are in an namespace.

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

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

This change adds a section to the autoloader registration method which
loads all of the files defined in any third-party library included in
our `lib` directory which contains any `composer.json` file with such a
stanza.
2024-08-14 21:59:53 +08:00
Andrew Nicols 2243d1b395 MDL-82747 core: Provide a standard way to register the Autoloader 2024-08-14 21:59:52 +08:00
Andrew Nicols c0a2c4bfd8 MDL-82782 behat: Support runtime scaling of Behat windows 2024-08-14 21:48:44 +08:00
Sara Arjona 49a95e4cef MDL-82792 h5p: Fix random behat failures
We've started seeing various failures in Firefox and Classic.
Increasing the default window size fixes them.
2024-08-14 12:18:23 +02:00
Andrew Nicols d1d01d2cdb MDL-82668 core: Move phpstorm meta to di.php 2024-08-14 16:32:40 +08:00
Daniil Fajnberg cef371bcac MDL-82668 core: Use a .phpstorm.meta.php directory instead of a file
Allow developers to add their own metadata overrides
2024-08-14 16:32:40 +08:00
Sara Arjona 60dafdf7c1 Merge branch 'mdl-82214-m404' of https://github.com/NeillM/moodle into MOODLE_404_STABLE 2024-08-13 16:08:14 +02:00
Sara Arjona 9e351777b1 Merge branch 'MDL-82502-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-13 13:14:58 +02:00
Ilya Tregubov 0620ca406c Merge branch 'MDL-64675-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-13 10:44:17 +08:00
Ilya Tregubov cc2edf3b8c Moodle release 4.4.2 2024-08-10 14:54:49 +08:00
Jun Pataleta 7376b6deca MDL-82758 gha: Remove reference to the master branch 2024-08-09 16:15:03 +08:00
Jun Pataleta 7052d36f7c Merge branch 'MDL-82599-404-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_404_STABLE 2024-08-09 11:19:01 +08:00
Ilya Tregubov 04479a6a3c weekly release 4.4.1+ 2024-08-09 09:34:20 +08:00
Huong Nguyen 3521b24e51 MDL-82745 filter_tex: Improve PHPUnit test 2024-08-08 21:03:58 +08:00
Mark Johnson b5519852fc MDL-81987 redis: Set connection and read timeouts to 10 seconds
This allows the site to continue operating in case of degraded
performance, rather than throwing exceptions.
2024-08-08 13:17:03 +01:00
Michael Hawkins bdfa441f00 MDL-82745 filter_tex: Improve filter deny list 2024-08-08 11:40:11 +07:00
Michael Hawkins 6728d1ccc0 MDL-82576 qtype_calculated: Improve formula regexes 2024-08-08 11:11:28 +07:00
Ilya Tregubov 40d1da51bb Merge branch 'MDL-82608-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 11:09:24 +08:00
Ilya Tregubov c52869afbe Merge branch 'MDL-82605-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 11:03:30 +08:00
Safat 18d4531ad4 MDL-82395 tool_xmldb: Table layout update 2024-08-08 10:00:43 +07:00
Jun Pataleta 62aab40860 Merge branch 'MDL-82560-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-08-08 10:45:01 +08:00
Paul Holden b4525ba984 MDL-79373 admin: ensure all current password configs are defined.
Ensure the admin preset export tool has an accurate record of each,
to be observed as sensitive settings when creating an export.
2024-08-08 09:22:20 +07:00
Angelia Dela Cruz 7b16b52ffe MDL-82560 mod_forum: Test that students can only start one discussion 2024-08-08 10:22:17 +08:00
Andrew Nicols ff93557b40 Merge branch 'MDL-80593-404-alt' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-08-08 10:19:43 +08:00
Huong Nguyen 48e8e6f434 Merge branch 'MDL-82177_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-08-08 09:11:00 +07:00
Huong Nguyen ecc5f367ef Merge branch 'MDL-82592_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-08-08 09:02:09 +07:00
Huong Nguyen 850b4a5f56 Merge branch 'MDL-82669-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 08:58:43 +07:00
Jun Pataleta 91eae783fc Merge branch 'MDL-77784-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 09:56:07 +08:00
Huong Nguyen 912817f097 Merge branch 'mdl-826620-44' of https://github.com/matthewhilton/moodle into MOODLE_404_STABLE 2024-08-08 08:41:25 +07:00
Ilya Tregubov 36412a5fea Merge branch 'MDL-82209-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 09:22:12 +08:00
Ilya Tregubov a7f19c9072 Merge branch 'MDL-82525-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 08:27:15 +08:00
Ilya Tregubov 4bc773ad03 Merge branch 'MDL-82208-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-08 08:18:04 +08:00
Paul Holden cb05767ce1 MDL-64675 mod_feedback: better detection of last page break element.
Inform user when a page break item cannot be added.
2024-08-07 16:57:44 +01:00
Jun Pataleta 4973da2768 Merge branch 'MOODLE_404_MDL-82518' of https://github.com/danielneis/moodle into MOODLE_404_STABLE 2024-08-07 17:12:08 +08:00
Paul Holden aa145e2669 MDL-82633 mod_quiz: filter user visible overrides in external methods. 2024-08-07 16:08:16 +08:00
Paul Holden bdc4367460 MDL-82633 mod_quiz: re-factor visibility check for overrides. 2024-08-07 16:08:16 +08:00
Ilya Tregubov fc467246b4 Merge branch 'MDL-81830-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-07 15:28:02 +08:00
Paul Holden ee502bf6b5 MDL-81394 restore: format backup file metadata details safely. 2024-08-07 14:04:30 +08:00
Ilya Tregubov ee6e605770 MDL-79541 gradereport_user: Fix indentation in Behat. 2024-08-07 04:13:49 +00:00
Huong Nguyen 2d953eb291 MDL-81718 core_grades: Fix Behat failures 2024-08-07 04:13:49 +00:00
raortegar 6e7faf5854 MDL-81718 core: Improve localstorage validation 2024-08-07 04:13:49 +00:00
Paul Holden 50569e6f4a MDL-82558 h5p: escape template error/exception content. 2024-08-07 04:13:49 +00:00
Paul Holden 23a61db0f0 MDL-82392 blocks: consistent cleaning of block instance names. 2024-08-07 04:13:49 +00:00
Paul Holden d3d580671a MDL-82261 mod_feedback: ensure only non-respondents can be messaged. 2024-08-07 04:13:49 +00:00
Paul Holden 8304649791 MDL-82390 badges: correct context check when deleting badges. 2024-08-07 04:13:49 +00:00
meirzamoodle c8c3b17cd2 MDL-82136 curl: Send credentials to redirect URL if allowed
Curl has the option CURLOPT_UNRESTRICTED_AUTH. If true, curl will send
the credentials to a different host. If false, they will not be sent.

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

This patch works almost the same as CURLOPT_UNRESTRICTED_AUTH in ideal
conditions. It will check whether the host is different. If so, the
system will check what value CURLOPT_UNRESTRICTED_AUTH has. If it is
not specified, then by default, it will be false. If false, then
credentials will not be sent.
2024-08-07 04:13:49 +00:00
Paul Holden 3e5569a61a MDL-82262 mod_feedback: fix broken bulk message sesskey checks. 2024-08-07 04:13:49 +00:00
Paul Holden 80782f8907 MDL-64984 mod_glossary: capability check when restoring global type. 2024-08-07 04:13:49 +00:00
David Woloszyn 51af50ade5 MDL-81951 communication_matrix: Fix suspended users ignored bug 2024-08-07 04:13:49 +00:00
David Woloszyn b683a38423 MDL-81951 communication_matrix: New trait for power levels
A more reliable way of obtaining room power levels is now used in the
new trait get_room_power_levels_v3. This makes
get_room_powerlevels_from_sync_v3 less needed, but not necessarily
redundant. The names of the containing methods have been adjusted to
make better sense of which trait they belong to.
2024-08-07 04:13:49 +00:00
Ilya Tregubov 54dc1112cb MDL-79541 core_grades: Add missing user info to search services.
Seems just fullname is not enough. So added all name fields.
2024-08-07 04:13:49 +00:00
Ilya Tregubov 421c0608e8 MDL-79541 core_grades: Hidden user fields check for search.
If some user profile fields are hidden on some grade reports
users without permission were able to see those.
2024-08-07 04:13:49 +00:00
Huong Nguyen 7678c3f41c Merge branch 'MDL-82643-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-07 10:45:41 +07:00
Huong Nguyen a3573087d1 Merge branch 'MDL-82611-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-07 10:25:18 +07:00
Huong Nguyen f809e209e3 Merge branch 'MDL-82620-404' of https://github.com/ericmerrill/moodle into MOODLE_404_STABLE 2024-08-07 10:20:38 +07:00
Jun Pataleta 59a377abbe Merge branch 'MDL-82606_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-08-07 11:12:05 +08:00
Philipp Memmel ac7cecfb37 MDL-82724 editor_tiny: Harden check for quicktoolbar and contextmenu 2024-08-06 16:47:22 +02:00
Tim Hunt 83a24b0e9f MDL-82606 filterlib: pass a row limit to recordset for performance
On Postgres, at least, get_recordset_sql performs signficantly worse
if you don't pass a limit. So, we add a limit to the query, but one
that in enormously too large, so it should never have an effect.
(And, there is code to check we never hit the limit, to avoid subtle bugs.)
2024-08-06 10:47:24 +01:00
Jun Pataleta 7ffbd04d35 Merge branch 'MDL-82344-404' of https://github.com/snake/moodle into MOODLE_404_STABLE 2024-08-06 17:26:44 +08:00
Jun Pataleta 19284518d1 Merge branch 'MDL-79568-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-08-06 17:20:26 +08:00
Neill Magill cb8578e93f MDL-82214 admin: Settings should not change when in read only mode
Before this change if some settings were:

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

when the settings page was saved the setting would be set tobe empty,
because the hidden input remained on the page, while the other inputs
where not posted to Moodle.
2024-08-06 09:53:34 +01:00
Paul Holden 217f5d8f8d MDL-82446 files: pleasantly style the filepicker modal containers. 2024-08-05 08:40:35 +01:00
Paul Holden dec2143d73 MDL-79568 javascript: remove lang parameter from legacy string calls. 2024-08-05 08:33:19 +01:00
Ilya Tregubov abd4203547 Merge branch 'MDL-82171-muc-sited-MOODLE_404_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_404_STABLE 2024-08-05 11:18:59 +08:00
Shamim Rezaie 28922ba889 Merge branch 'MDL-82384-MOODLE_404_STABLE' of https://github.com/jwcatau/moodle into MOODLE_404_STABLE 2024-08-03 23:55:36 +10:00
Daniel Neis Araujo b67fb190b9 MDL-82518 core_user: Fix regression introduced by MDL-80271 2024-08-02 14:46:51 -03:00
David Mudrák 1e0f46a125 MDL-82599 lang: Use the fixed strings in tests, too 2024-08-02 17:44:42 +02:00
Helen Foster 1abeac9ba4 MDL-82599 lang: Import fixed English strings (en_fix) 2024-08-02 17:42:52 +02:00
Paul Holden 84c134f7c0 MDL-82669 mod_assign: remove Atto reliance workaround for Behat.
See 8fe80e743c for context, and 802ff3e2e3 for additonal comments.
2024-08-02 10:33:34 +01:00
Paul Holden aa8f7a6a39 MDL-82669 editor: remove reliance on Atto editor in Behat scenarios. 2024-08-02 10:33:34 +01:00
Jun Pataleta 731e8a1e01 MDL-82677 theme: Set a background colour for page heading
* Set a background colour for the .page-header-headings class.
* Assign the .page-header-headings class to the maintenance mode
template's page header div.
2024-08-02 17:25:21 +08:00
Paul Holden 2937e90bc7 MDL-82502 courseformat: align module action capability checks.
The "Hide/Show/Duplicate" actions should be considered self-contained,
and not also require "manageactivities" capability (per existing docs)
in addition to the specific capability that controls the action itself.

Also ensure the "Duplicate" capability checks are in the course context.
2024-08-02 10:01:16 +01:00
Paul Holden 01971bc9a4 MDL-82608 mod_data: null content checks when editing fields. 2024-08-02 09:57:37 +01:00
Paul Holden 09fae09cd5 MDL-82605 contentbank: pre-load contexts for options list.
Prevents additional DB reads per category/course, which can be
potentially expensive on large sites.
2024-08-02 09:50:17 +01:00
Ilya Tregubov e0381615aa weekly release 4.4.1+ 2024-08-02 09:30:45 +08:00
Ilya Tregubov 349916ae5f Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-08-02 09:30:42 +08:00
Matthew Hilton 5168d9c97b MDL-82662 login: load library with require_once 2024-08-02 10:52:57 +10:00
Paul Holden fc38c5c7e7 MDL-77784 quiz_grading: editor agnostic Behat scenario steps. 2024-08-01 14:17:15 +01:00
James Williams 3ab8986eb0 MDL-82384 core: Alter logic to only purge muc OR course caches. 2024-08-01 18:53:18 +10:00
Huong Nguyen be4d15a856 Merge branch 'MDL-80064-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-08-01 10:41:43 +07:00
Huong Nguyen 495f38ff3f Merge branch 'MDL-82598-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-08-01 10:26:52 +07:00
Huong Nguyen 0fe19ee1dc MDL-80593 core: Make Modal to work with Debug Template Info mode 2024-08-01 10:18:18 +07:00
Huong Nguyen ef3d7a9d18 MDL-80017 core_grades: Move upgrade note 2024-08-01 09:15:26 +07:00
Huong Nguyen 1970d836c6 Merge branch 'MDL-80017-404' of https://github.com/jleyva/moodle into MOODLE_404_STABLE 2024-08-01 09:12:12 +07:00
Ilya Tregubov 96f76208d1 Merge branch 'MDL-81689_MOODLE_404_STABLE' of https://github.com/rzhtwberlin/moodle into MOODLE_404_STABLE 2024-08-01 09:59:26 +08:00
Jun Pataleta 2fb409a999 Merge branch 'MDL-82286-404' of https://github.com/daledavies/moodle into MOODLE_404_STABLE 2024-08-01 09:47:11 +08:00
AMOS bot 86afac09e9 Automatically generated installer lang files 2024-08-01 00:07:35 +00:00
Sara Arjona 45fbccf625 Merge branch 'MDL-72876-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-07-31 17:15:19 +02:00
Sara Arjona 2c2cda1660 Merge branch 'MDL-82397-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-07-31 16:59:27 +02:00
Sara Arjona e6176d6dba Merge branch 'MDL-82596-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-31 16:46:06 +02:00
Dale Davies 0be064b328 MDL-82286 quiz_accessrule: Add SEB config test for floating point number
This tests several variations of SEB config files, to ensure Moodle
is able to parse them and generate a config key hash that matches
what SEB expects.

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

Also added coverage information to the test case class docblock.
2024-07-31 11:17:26 +01:00
Jun Pataleta 5b68c82eb2 Merge branch 'MDL-82187-single-button-404' of https://github.com/djarran/moodle into MOODLE_404_STABLE 2024-07-31 17:21:32 +08:00
Paul Holden 94bcaa0d4f MDL-82208 block_starredcourses: avoid double encoding course name. 2024-07-31 08:47:23 +01:00
Simey Lameze 971b7b6eb7 MDL-82598 behat: improve example submission test 2024-07-31 09:05:07 +08:00
AMOS bot ad698059ae Automatically generated installer lang files 2024-07-31 00:07:32 +00:00
Paul Holden 1114ab3822 MDL-82643 enrol_self: clarify validation of notification threshold. 2024-07-30 15:48:07 +01:00
Tim Hunt adf336cbf2 MDL-82177 file upload: default to path '/'when things go wrong
This 'fix' is basically a work-around, but one that is already used in
some places. Now it is used in all similar places.

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

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

Also, this is all historic JavaScript which will get replaced in the
grand de-YUI-fication, so I think a pragmatic fix is justified here.
2024-07-30 15:07:02 +01:00
Jun Pataleta b150085bb1 MDL-72876 theme_classic: Enclose welcome message in Bootstrap card 2024-07-30 19:40:21 +08:00
meirzamoodle f0dd2ae1f5 MDL-80064 authentication: password can be null
The Open ID Connect plugin uses null for the password,
which makes the internal password update fail to proceed.
Allowing null resolved the problem.

As a note, there is a potential issue if the authentication method has
a false return for the prevent_local_password because it will trigger
the hash_internal_user_password() where  the $password can not be null.
Since this only addresses the oauth2 issue, we should ignore it.
2024-07-29 15:50:08 +07:00
Paul Holden fd63451ecc MDL-82525 user: correct course parameter for course profile page. 2024-07-29 09:22:03 +01:00
Paul Holden 3d40c9bc47 MDL-81830 calendar: handle clearing of group type course element. 2024-07-29 09:20:49 +01:00
Paul Holden b540ab944c MDL-82209 calendar: consistent event action icon hovering.
* Apply hover on the icons, rather than the outer container;
* Make hover colour and text decoration appropriate for the icon
2024-07-29 09:19:35 +01:00
Jake Dallimore d34d87f45a MDL-82344 mod_lti: relax content selection validation in instance form
This was added in MDL-78916 in 4.3 but makes configuring a generic
launch to the default tool URL impossible, since a content item must be
selected. This fix:
- Makes this element optional again, which allows teachers to choose
whether a given instance launches into selected content, or launches
the default tool URL.
- Changes the style to btn-secondary, given it's now optional again
2024-07-29 13:06:11 +08:00
Andrew Nicols abd665d545 Merge branch 'MDL-82250-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-07-29 11:47:56 +08:00
Ilya Tregubov 5bcdefb516 Merge branch 'MDL-80345-404' of https://github.com/MartinGauk/moodle into MOODLE_404_STABLE 2024-07-29 11:33:22 +08:00
Paul Holden d69212b895 MDL-82596 behat: switch manual private files upload to generator. 2024-07-28 19:16:57 +01:00
Paul Holden 0223b0fefb MDL-82596 behat: tidy up existing usage of private files generator.
Filename is no longer required (since 83db25c330), given it never
did anything so can be removed. Requiring the "Private files" block
also isn't necessary since original switch to generator methods.
2024-07-28 19:13:39 +01:00
Paul Holden 3452312c8c MDL-82611 mod_assign: capability check before exporting grade link. 2024-07-26 21:20:40 +01:00
Eric Merrill e884c04350 MDL-82620 completion: Make enrol duration comp happen at the right time 2024-07-26 14:11:53 -04:00
Luca Bösch a1dcb85347 MDL-82397 block_recentlyaccesseditems: Assure space between items. 2024-07-26 18:23:48 +02:00
Tim Hunt ed179a8d7f MDL-82592 quiz grades: 'setup for sections' handling of descriptions 2024-07-26 13:07:21 +01:00
Johannes Burk 30bae49637 MDL-81689 tests: Check task DB record for nextruntime 2024-07-26 10:36:29 +02:00
Johannes Burk 0ae247b51f MDL-81689 tasks: add unit test to check for the bug 2024-07-26 10:36:29 +02:00
Jun Pataleta d8a1a67fd7 weekly release 4.4.1+ 2024-07-26 13:35:36 +08:00
Jun Pataleta acbfa5e1a3 NOBUG: Fixed SVG browser compatibility 2024-07-26 13:35:34 +08:00
Jun Pataleta 408154a1b6 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-07-26 13:35:33 +08:00
Jun Pataleta f91d479407 Merge branch 'MDL-82373-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-26 13:20:45 +08:00
Andrew Nicols 09b9c2a5b9 MDL-82373 core_message: Make message drawer router behat-aware
The drawer router was modifying the DOM in a variety of ways and hiding
content, without any pendingJS checks. As a result, there were cases
where a part of the UI was not visible, but had been rendered and was in
the DOM.

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

Additionally the lazy load manager had a similar issue.
2024-07-26 12:45:30 +08:00
Juan Leyva 8d12c2a15e MDL-80017 core_grades: Fix return type for itemname 2024-07-25 11:16:52 +02:00
Huong Nguyen a358040701 Merge branch 'MDL-82527-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-25 10:48:50 +07:00
Huong Nguyen a03674de6f Merge branch 'MDL-82530-spelling-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2024-07-25 10:41:38 +07:00
Huong Nguyen b3dbeeecf7 Merge branch 'MDL-82328-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-25 10:36:01 +07:00
Jun Pataleta e18333d842 Merge branch 'MDL-82373-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-25 11:31:43 +08:00
Huong Nguyen 67b21bbc99 Merge branch 'MDL-58287-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-25 10:29:43 +07:00
Jun Pataleta d81770cdbe Merge branch 'MDL-77706-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-25 11:02:46 +08:00
Huong Nguyen 688ee9e9d1 Merge branch 'MDL-82553-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-07-25 09:17:26 +07:00
Shamim Rezaie 42cc612a5e Merge branch 'MDL-82540-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-07-25 12:07:24 +10:00
Shamim Rezaie fa8b74b5eb Merge branch 'MDL-82551-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-07-25 11:52:59 +10:00
Huong Nguyen ffc32f80a5 Merge branch 'MDL-82554-MOODLE_404_STABLE' of https://github.com/micaherne/moodle into MOODLE_404_STABLE 2024-07-25 08:50:32 +07:00
Huong Nguyen 3da6a04461 Merge branch 'MDL-82451-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-07-25 08:43:49 +07:00
Huong Nguyen eac19ef151 Merge branch 'MDL-82422-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-07-25 08:36:46 +07:00
AMOS bot 37a95f12e7 Automatically generated installer lang files 2024-07-25 00:08:08 +00:00
Amaia Anabitarte 727c4c5a6e MDL-82451 course: Switch hide/show icons for section action menu 2024-07-24 12:17:45 +02:00
Jun Pataleta a52f92a82c Merge branch 'MDL-81803-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-24 16:57:50 +08:00
Jun Pataleta 067818c2e6 Merge branch 'MDL-82289-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-24 15:05:32 +08:00
Angelia Dela Cruz d7d19fe136 MDL-82422 mod_workshop: Behat for how strict assessment comparison is 2024-07-24 13:44:36 +08:00
Huong Nguyen 28a7d39b2a Merge branch 'MDL-82528-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-24 12:00:09 +07:00
Michael Aherne da95f8d083 MDL-82554 question: Allow null createdby in question_has_capability_on. 2024-07-23 10:47:07 +01:00
Simey Lameze b1297a80df MDL-82250 core: add web installer test workflow 2024-07-23 13:33:03 +08:00
Jun Pataleta cbafc55078 MDL-82553 behat: Run accessibility tests using WCAG 2.2 success criteria 2024-07-22 14:37:49 +08:00
Jun Pataleta b7bd55bc82 MDL-82551 core: Set welcome message heading to level 1 2024-07-22 14:21:02 +08:00
Huong Nguyen aafb937adf Merge branch 'MDL-82481-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-22 10:40:44 +07:00
Huong Nguyen 95d011dcf1 Merge branch 'MDL-82193-404' of https://github.com/ericmerrill/moodle into MOODLE_404_STABLE 2024-07-22 09:39:46 +07:00
Ilya Tregubov c930111e17 Merge branch 'MDL-82499-MOODLE_404_STABLE' of https://github.com/micaherne/moodle into MOODLE_404_STABLE 2024-07-22 09:42:53 +08:00
djarrancotleanu f0c5d668e9 MDL-82187 core: Add default type for single button in template 2024-07-22 08:48:26 +10:00
AMOS bot a061f1b4c2 Automatically generated installer lang files 2024-07-21 00:07:43 +00:00
Paul Holden 2299b73307 MDL-58287 courseformat: ensure all format plugins are returned. 2024-07-19 15:23:37 +01:00
Paul Holden 85c7dcaf05 MDL-82528 courseformat: switch to existing group action icon.
Use a version that already exists in our fontawesome mapping so it
can be consistently styled/overridden.
2024-07-19 12:54:42 +01:00
Sara Arjona 8d30ff7575 Merge branch 'MDL-81119-forced-config-MOODLE_404_STABLE' of https://github.com/bwalkerl/moodle into MOODLE_404_STABLE 2024-07-19 12:37:16 +02:00
Jun Pataleta 2e8bf841c6 MDL-82540 core: Use an empty check for $CFG->debugdisplay 2024-07-19 16:25:12 +08:00
Benjamin Walker d5b719f6a0 MDL-81119 tool_recyclebin: Stop overriding unrelated forced config 2024-07-19 14:37:23 +10:00
Ilya Tregubov d7cb2a66cd weekly release 4.4.1+ 2024-07-19 09:30:25 +08:00
Leon Stringer e96db7beec MDL-82530 core: Fix spelling 2024-07-18 14:51:00 +01:00
Paul Holden 44801c448c MDL-82481 customfield_select: return field options pre-formatted. 2024-07-18 14:03:18 +01:00
Paul Holden 904222b6f2 MDL-82481 reportbuilder: re-use existing method for field options. 2024-07-18 14:03:18 +01:00
Paul Holden f1bc96a8ab MDL-82527 h5p: improve editor Behat scenarios for embedding content.
* Move the shared drag fixture out of the Atto plugin;
* Switch to using faster generators for populating private files;
* Clarify required fields for private files generator
2024-07-18 09:37:47 +01:00
Jun Pataleta d0ce8e8d62 Merge branch 'MDL-82505-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-18 12:50:57 +08:00
Jun Pataleta c2f3e98cea Merge branch 'MDL-75864-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-07-18 12:47:50 +08:00
Huong Nguyen 266c8b73b0 MDL-82505 calendar: more precise matching of calendar day partial
The partial name selector points to the parent element,
but the Javascript code monitors the child element.
We need to make it consistent
2024-07-18 11:37:07 +07:00
Andrew Nicols 00ce502c67 Merge branch 'MDL-82309-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-18 11:58:45 +08:00
Ilya Tregubov 38ab94e04b Merge branch 'MDL-82445-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-18 11:37:02 +08:00
Andrew Nicols dc6db54e99 Merge branch 'MDL-81932-404' of https://github.com/safatshahin/moodle into MOODLE_404_STABLE 2024-07-18 11:29:01 +08:00
Huong Nguyen d45422ccbf Merge branch 'MDL-82192-404' of https://github.com/ericmerrill/moodle into MOODLE_404_STABLE 2024-07-18 10:27:17 +07:00
Andrew Nicols c1b4d24095 Merge branch 'MDL-81272-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-18 11:22:10 +08:00
Andrew Nicols e05fa63684 MDL-82445 filter_tidy: Ensure locale does not change when using Tidy 2024-07-18 11:00:42 +08:00
Andrew Nicols 03f840b4f2 MDL-82445 core: Create locale helper utility 2024-07-18 11:00:42 +08:00
Ilya Tregubov fbd674e81b Merge branch 'MDL-82090-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-18 10:39:49 +08:00
Ilya Tregubov 1291503846 Merge branch 'MDL-82444-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-18 10:32:55 +08:00
Huong Nguyen 21fc6a3016 Merge branch 'MDL-82467-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-18 09:19:51 +07:00
Sara Arjona 23f0ec2766 Merge branch 'MDL-82353-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-07-17 17:07:53 +02:00
Paul Holden b99a81af8e MDL-82499 question: test for invalid question in capability check. 2024-07-17 09:57:42 +01:00
Andrew Nicols 908488e472 MDL-82373 contentbank: Pause in Behat before interacting with h5p
It seems that the loading of the h5p content upsets other interactions
with the page in Firefox as it loads. Unfortunately I haven't found a
reliable way to handle this with pendingJS yet.

This is the poor man's fix and we should find a better solution.
2024-07-17 13:28:57 +08:00
Andrew Nicols 7fdb644bd1 MDL-82373 question: Make window larger in behat tests
I would suggest that this is a stop gap to solve some failing tests. We
really need to look at whether we can improve the usability of this
interface on smaller displays as a longer-term fix.
2024-07-17 13:28:56 +08:00
Andrew Nicols 70204fd73c MDL-82373 core_grades: Address random failures when editing gradebook 2024-07-17 13:28:56 +08:00
Andrew Nicols 389e4fc011 MDL-82373 behat: Wait for alerts before accepting/dismissing them 2024-07-17 13:28:56 +08:00
Andrew Nicols ed4a47302e MDL-82373 core: Make CollapsibleRegion more tolerant to behat 2024-07-17 13:28:55 +08:00
Andrew Nicols 0f0710a249 MDL-82373 tool_usertours: Ensure that behat waits for tours to show/hide 2024-07-17 13:28:55 +08:00
Andrew Nicols 42511349ae MDL-82373 behat: Stop killing the entire Behat run on driver error
If there's a driver error, for example from a step taking too long, then
this kills the entire Behat run and we have to start from scratch.

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

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

Refreshing the page addresses this.
2024-07-17 13:28:54 +08:00
Brendan Heywood 31e0fd81a7 MDL-82171 core: Rewarm bootstrap.php after a cache purge 2024-07-17 15:16:12 +10:00
Ilya Tregubov 7a21be49f9 Merge branch 'MDL-82002-404' of https://github.com/durenadev/moodle into MOODLE_404_STABLE 2024-07-17 11:04:55 +08:00
Michael Aherne 43b3bda115 MDL-82499 question: Fail if questionid does not exist. 2024-07-16 14:59:55 +01:00
Dale Davies 088c523df0 MDL-82286 core: Set serialize_precision to current PHP default 2024-07-16 10:01:57 +01:00
Angelia Dela Cruz 4af5185587 MDL-82353 gradingform: Behat to verify marking guide can be set to draft 2024-07-16 16:46:51 +08:00
Andrew Nicols b2018b2fbc MDL-77706 atto_link: Work around Mozilla bug 1906559
This upstream bug prevents creation of an anchor with a hyperlink where
the content has a block-like display.

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

This is only done for Firefox-based browsers.
2024-07-16 15:37:46 +08:00
Ilya Tregubov 25f4874743 Merge branch 'MDL-82282-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-16 09:26:20 +08:00
Ilya Tregubov 3ff165b4c5 Merge branch 'MDL-82319-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-07-16 09:21:58 +08:00
Ilya Tregubov 1d51af0f8e Merge branch 'MDL-73662-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-16 09:15:50 +08:00
Paul Holden aa550ddea6 MDL-82467 completion: simplify field SQL for completion columns.
For columns whose values can be represented purely in SQL, we don't
need to/shouldn't select extra data because it confuses the column
output during aggregation for numeric/boolean columns.
2024-07-15 13:34:55 +01:00
Huong Nguyen 978ada1047 MDL-81272 calendar: Improve permission check for separate group mode 2024-07-15 15:46:55 +07:00
Andrew Nicols 8b7270f9b1 MDL-66903 core: Check PHPUNIT_TEST defined before using 2024-07-15 13:45:36 +07:00
Huong Nguyen 8741181a5b Merge branch 'MDL-66903-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-15 13:22:02 +07:00
Laurent David e7065ad471 MDL-82319 core_courseformat: Remove redundant lock icon in section 2024-07-15 06:33:31 +02:00
Andrew Nicols d36cf65ef3 MDL-66903 core: Introduce \core_component::reset to replace hacks
Traditionally we have done this using reflection and it would be better
to do this in a 'proper' fashion in case we ever need to change how it
works.
2024-07-15 12:22:19 +08:00
Andrew Nicols 39d46917bb MDL-66903 testing: Helper to load fixture files 2024-07-15 12:22:17 +08:00
Andrew Nicols 6b3d8fd889 MDL-66903 testing: Add support for a \tests\ namespace during tests
This commit:
- introduces a \tests\ sub-namespace for use in unit tests only
- the path to this the tests/classes directory of the owning parent
- files here are excluded from unit test runs

This is agreed per policy in MDL-80855.
2024-07-15 12:21:54 +08:00
Andrew Nicols b15b73848a MDL-66903 testing: Fix whitespace 2024-07-15 12:21:06 +08:00
Andrew Nicols 6cd08cc382 MDL-66903 testing: Reset CFG and component after test
This change moves the reset of global test state to the finally section
rather than doing it only if the test passes.

Previously if a test which modifies the `core_component` internals
failed, it would not reset the internal state and impact subsequent
tests.
2024-07-15 12:21:06 +08:00
Eric Merrill b1a6791aa2 MDL-82193 scorm: Don't store header with multiline AICC content 2024-07-12 15:35:35 -04:00
Paul Holden 384300011c MDL-82444 core: skip environment test on optional plugin extensions. 2024-07-12 13:49:54 +01:00
Paul Holden 57fc94747d MDL-82444 filter_tidy: advertise required PHP extension. 2024-07-12 13:34:06 +01:00
Paul Holden 9956e9ff31 MDL-73662 mod_quiz: fix initialization arguments to close button.
Co-authored-by: Sergio Rabellino <rabellino@di.unito.it>
2024-07-12 13:18:10 +01:00
Paul Holden 8601c56964 MDL-81803 tool_dataprivacy: observe disabled expiration time.
A non-positive integer value should indicate "No time limit".
2024-07-12 11:04:59 +01:00
Daniel Ureña 9f1ab61160 MDL-82002 Media: Video embedding from the app is styled properly. 2024-07-12 11:22:07 +02:00
Huong Nguyen 4197e50fec weekly release 4.4.1+ 2024-07-12 08:42:06 +07:00
Huong Nguyen 23ba4d1792 Merge branch 'MDL-82245-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-11 11:14:07 +07:00
Jun Pataleta 17e5aaa5be Merge branch 'MDL-81265-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-07-11 12:08:52 +08:00
Jun Pataleta dd998e8d88 MDL-81265 mod_workshop: Verify "Setup phase" heading with "should exist" 2024-07-11 11:58:39 +08:00
Laurent David 1bfd61c0fd MDL-81265 mod_workshop: Fix accessibility issues
* Page title should be h2
* Contrasts in the table headers (for submission, assessment and grading)
should be 4:1 at least
2024-07-11 11:58:39 +08:00
Andrew Nicols 95274afe55 Merge branch 'MDL-78936-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-11 11:53:21 +08:00
Andrew Nicols 8d1bf9d92d Merge branch 'MDL-82431-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-11 11:46:26 +08:00
Huong Nguyen 799e5c9ecc Merge branch 'MDL-79717-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-11 09:35:15 +07:00
Huong Nguyen 1d20be4c3d Merge branch 'MDL-76654-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-07-11 09:19:40 +07:00
Paul Holden ed5fde9c1f MDL-82431 phpunit: correct unit test filename and classname.
Standardise the same test cases, e.g. make final, covers notation,
static data providers, namespaces, etc.

Once the tests run, a couple of them failed. They required changes
to assertions to make them pass.
2024-07-10 19:06:17 +01:00
Sara Arjona 45d839a7c8 Merge branch 'MDL-82391-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-10 18:05:53 +02:00
Jun Pataleta 0ebbf88990 Merge branch 'MDL-82417-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-07-10 22:16:11 +08:00
Paul Holden 2196813e1e MDL-79717 phpunit: ensure unique data provider keys in tests.
Duplicate data provider keys were overwriting and/or duplicating
one another, leading to some cases being skipped.

Other "duplicate array key" errors were picked up by `phpcs` in
this dragnet across all tests, which have also been fixed.
2024-07-10 14:08:52 +01:00
Huong Nguyen 562b9775b2 Merge branch 'MDL-82308_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-07-10 14:57:24 +07:00
Ilya Tregubov cbe78bb3a6 Merge branch 'MDL-82323-striptags_error-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2024-07-10 12:18:40 +08:00
Huong Nguyen 8cfc9387f2 Merge branch 'MDL-68211-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-07-10 09:07:49 +07:00
Huong Nguyen 0ea950e710 Merge branch 'MDL-82236-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-07-10 09:04:14 +07:00
Tim Hunt 077f535912 MDL-82401 quiz: editing modals must be removed on close 2024-07-10 08:58:13 +07:00
Sara Arjona e1816e9af1 Merge branch 'MDL-81349-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-09 18:14:44 +02:00
Paul Holden 5ca387bef3 MDL-82391 courseformat: correct selector element section URLs.
It's required by themes that don't use the course index component,
e.g. Classic theme.
2024-07-09 14:45:22 +01:00
Sara Arjona 27cd5596e7 Merge branch 'MDL-82360-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-09 15:30:14 +02:00
Sara Arjona a10c074f54 Merge branch 'MDL-77834-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-09 15:22:13 +02:00
Sara Arjona ba80f884f7 Merge branch 'MDL-81991-404-alt' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-09 13:07:47 +02:00
Sara Arjona 54ec6416b4 Merge branch 'MDL-78388-404' of https://github.com/djarran/moodle into MOODLE_404_STABLE 2024-07-09 11:47:34 +02:00
Sara Arjona 83bec3bdb5 Merge branch 'MDL-66251-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-07-09 10:36:36 +02:00
Paul Holden 8a325684d0 MDL-82309 comment: preserve link text property during AJAX requests.
We really only need to update the count value that follows the link
text content, so do that rather than overwriting the entire thing.
2024-07-09 09:17:17 +01:00
Sara Arjona 8704a69aed Merge branch 'MDL-80947-404' of https://github.com/stevandoMoodle/moodle into MOODLE_404_STABLE 2024-07-09 10:03:09 +02:00
Sara Arjona d6fbf5661a Merge branch 'MDL-82310-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-07-09 08:54:54 +02:00
Angelia Dela Cruz 6a33cb3e08 MDL-82236 mod_data: Behat to display DB activity entry rating 2024-07-09 14:53:06 +08:00
Sara Arjona cd2d47dafc Merge branch 'MDL-81296-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-07-09 08:50:36 +02:00
David Woloszyn 1be7820208 MDL-82417 admin: Clarify signoutofotherservices strings 2024-07-09 13:58:14 +10:00
Angelia Dela Cruz f297094295 MDL-81296 mod_data: Behat test for data activity readonly availability 2024-07-09 11:38:35 +08:00
Paul Holden 0aeff04c0a MDL-82328 auth_oauth2: don't load custom profile field data too early.
By prematurely loading custom profile data in the constructor, under
specific circumstances it would happen before the page was fully
initialised which meant that any attempt at applying filters when
formatting profile field data would result in thrown exception.
2024-07-08 08:55:55 +01:00
Simey Lameze 959963e1e4 MDL-76654 behat: fixes and improvements to self assessment test 2024-07-08 11:22:08 +08:00
Angelia Dela Cruz 7acefc469c MDL-76654 behat: Coverage for workshop self-assessment 2024-07-08 11:22:08 +08:00
meirzamoodle 3ae349b86e MDL-66251 form: Hiding and disabling static elements.
Added functionality to locate static text elements within the form,
improving the ability to target and manipulate the static elements for
hiding and disabling purposes.
2024-07-08 09:17:26 +07:00
Stevani Andolo 3413c90bd2 MDL-80947 communication_customlink: Check before customlink update 2024-07-08 07:21:15 +08:00
Sara Arjona 41a5833327 MDL-68211 feedback: Export percentage format
The feedback was exporting the percentage in the Analysis file using
a wrong value for the format, so instead of having only 2 decimals,
the number was not formatted.
2024-07-05 10:13:46 +02:00
Ilya Tregubov 9557a52569 weekly release 4.4.1+ 2024-07-05 09:02:00 +08:00
Huong Nguyen f41181c894 Merge branch 'MDL-80907-404-take-2' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-04 21:43:53 +07:00
Huong Nguyen ff3fb00a96 MDL-80907 qtype_ordering: Fix incorrect Behat column selectors 2024-07-04 21:24:12 +07:00
Paul Holden 7f45da44ed MDL-82289 mod_feedback: correct comparison of current $course. 2024-07-04 10:28:49 +01:00
Sara Arjona d9a761f6ee Merge branch 'MDL-80907-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-04 11:19:45 +02:00
Paul Holden 771694018e MDL-82282 question: consider only editable flags in JS module. 2024-07-04 10:19:30 +01:00
Paul Holden eafd1bcb17 MDL-82090 completion: account for alternate gradepass form fields.
Some modules (e.g. Workshop) have "*gradepass" fields for each grade
item, which should be accounted for when trying to freeze them.
2024-07-04 10:17:34 +01:00
Huong Nguyen 7065a3dca0 MDL-80907 behat: Fix incorrect column selectors 2024-07-04 15:16:45 +07:00
Safat 5bc2479793 MDL-81932 communication_customlink: Fix behat tests 2024-07-04 17:10:19 +10:00
Safat 70d257fc5b MDL-81932 communication_matrix: Fix behat tests 2024-07-04 17:10:19 +10:00
Safat 3423dd2245 MDL-81932 core_communication: Fix communication provider change issue 2024-07-04 17:10:19 +10:00
Huong Nguyen a0a2015027 Merge branch 'MDL-80907-404' of https://github.com/marinaglancy/moodle into MOODLE_404_STABLE 2024-07-04 11:13:38 +07:00
Ilya Tregubov 96f2686d47 Merge branch 'MDL-63670-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-07-04 10:57:37 +08:00
Ilya Tregubov 5bbd628f49 Merge branch 'MDL-82315-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-04 10:39:02 +08:00
Ilya Tregubov aad75c1072 Merge branch 'MDL-82024-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-04 09:50:53 +08:00
ferranrecio c35610502f MDL-82310 backup: fix delegated section restore 2024-07-03 18:26:01 +02:00
Sara Arjona f35b8e6651 Merge branch 'MDL-82100-404' of https://github.com/danghieu1407/moodle into MOODLE_404_STABLE 2024-07-03 17:14:17 +02:00
Jun Pataleta 5be8cf7ba8 Merge branch 'MDL-31192-M404_colored-box-with-pre-tag-function-generates-a-warning' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2024-07-03 15:13:04 +08:00
Hieu Nguyen Dang b3b8f520e9 MDL-82100 Quiz\report: Show customised question numbers 2024-07-03 13:48:49 +07:00
Sara Arjona a25eb4cb95 Merge branch 'MDL-82363-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-07-03 08:23:43 +02:00
lameze f4f7f83ce5 NOBUG: Increase file size to avoid random failures 2024-07-03 13:40:22 +08:00
Huong Nguyen f312621f0d MDL-82363 Calendar: Responsiveness improvement for calendar block
Hide the month name if the screen is too small
2024-07-03 11:02:36 +07:00
djarrancotleanu 6ad723885c MDL-78388 course: Copy permissions when duplicating module 2024-07-03 13:49:00 +10:00
Shamim Rezaie 2119c703d2 Merge branch 'MDL-82329-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-07-03 04:06:50 +10:00
Paul Holden 42938d2dd4 MDL-82360 courseformat: remove console upload error string debugging. 2024-07-02 15:55:27 +01:00
Paul Holden 462357ebf0 MDL-77834 mod_feedback: consistent HTML decoding of answer data.
Restores functionality from 72629ee8c0 that went missing along the way.
2024-07-01 16:22:00 +01:00
Luca Bösch a79853672e MDL-81959 qtype_multianswer: Margin between checkboxes and text 2024-07-01 16:16:13 +02:00
Paul Holden 75b3607fc3 MDL-81349 group: case-sensitive name validation when editing. 2024-07-01 09:41:43 +01:00
Huong Nguyen f142770c37 Merge branch 'MDL-79758_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-07-01 14:25:16 +07:00
Huong Nguyen cf92d64a57 Merge branch 'MDL-79971-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-07-01 14:16:45 +07:00
Huong Nguyen 6771eb805b Merge branch 'MDL-79796_404' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_404_STABLE 2024-07-01 14:10:08 +07:00
Huong Nguyen 6c7121254d Merge branch 'MDL-73091-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-07-01 14:05:36 +07:00
Leon Stringer f523a01673 MDL-82323 core: Fix get_striptags must be bool
If an exception occurs during install $CFG->formatstringstriptags may
not be populated, if so fall back to a default value.
2024-06-28 10:23:49 +01:00
Paul Holden 75791eabea MDL-82245 restore: use translated lang string in page heading. 2024-06-28 10:03:09 +01:00
Amaia Anabitarte 2c804c3ab2 MDL-79971 completion: Don't assume a completed activity is viewed 2024-06-28 10:16:28 +02:00
Paul Holden 044e924d8a MDL-82329 course: consistent section permalink on view/section pages. 2024-06-28 08:59:54 +01:00
Paul Holden 6b01e331e6 MDL-82315 backup: account for null course section sequence value. 2024-06-27 23:34:48 +01:00
Sara Arjona 87d7ac1f81 weekly release 4.4.1+ 2024-06-27 16:36:48 +02:00
Sara Arjona 09c7a41d7f Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-06-27 16:36:45 +02:00
Stephan Robotta 219d5bfb44 MDL-79758 qbank: add filter in pagination links
Contains some minor tweaks by Tim Hunt <T.J.Hunt@open.ac.uk>.
2024-06-27 09:22:31 +01:00
Huong Nguyen 32d08ee47f Merge branch 'MDL-62958-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-27 11:05:03 +07:00
Huong Nguyen ef45ffc444 Merge branch 'MDL-82251-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-27 10:56:26 +07:00
Huong Nguyen 52cbcdbca7 Merge branch 'MDL-82008-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-06-27 10:26:47 +07:00
Jun Pataleta 97c21add9e Merge branch 'MDL-79809-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-06-27 11:01:33 +08:00
Andrew Nicols 15d331c058 MDL-63670 core_message: Tests should not use another testcase as base 2024-06-27 08:55:33 +08:00
Tim Hunt 2ac781b76d MDL-82308 forms: set a nice default size for multi-selects
This is a backport of MDL-81515.
2024-06-26 13:24:24 +01:00
Sara Arjona 6d4ea3f3c2 Merge branch 'MDL-80625-404' of https://github.com/ssj365/moodle into MOODLE_404_STABLE 2024-06-26 12:14:56 +02:00
Sara Arjona b0b17142c7 Merge branch 'MDL-80344-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-26 12:11:17 +02:00
Huong Nguyen 306b5289a7 MDL-81991 core: Reload accessdata for dirty users in CLI mode 2024-06-26 16:27:46 +07:00
Huong Nguyen 99ae088704 MDL-78936 editor_tiny: Disable quickbars for small target
The quickbars selection toolbar is not displayed correctly
if the target element is too small. We will wait for it
to be fixed in the future before we re-enable it in Moodle
2024-06-26 10:16:52 +07:00
Ilya Tregubov 7605966155 Merge branch 'MDL-82233-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-06-26 10:24:02 +08:00
Ilya Tregubov 0f7d291b9c Merge branch 'MDL-82167-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-06-26 10:19:59 +08:00
Sara Arjona ff2164fd3d Merge branch 'MDL-79231-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-06-25 16:13:01 +02:00
Sara Arjona b1072fc937 Merge branch 'MDL-82160-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-06-25 16:00:06 +02:00
Huong Nguyen 81900583fe Merge branch 'MDL-82277-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-25 13:53:54 +07:00
Wolfgang Reichert 9dde27f0bb MDL-73091 core_badges: Avoid undefined variable notice in review
* Fix review method for award_criteria_courseset when courseset is empty
* Add unit tests for coverage of the award_criteria_courseset class

@co-authored jz-reichert@web.de
2024-06-25 08:47:34 +02:00
Huong Nguyen 40ffccc33b Merge branch 'MDL-82200_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-06-25 09:13:43 +07:00
Huong Nguyen 1975be2909 Merge branch 'MDL-80061-404' of https://github.com/ssj365/moodle into MOODLE_404_STABLE 2024-06-25 09:07:21 +07:00
Paul Holden 160617d2d5 MDL-82024 format_topics: toggle un/highlight section icon correctly. 2024-06-24 19:48:48 +01:00
Paul Holden 2b42e986e3 MDL-82277 mod_h5pactivity: less fragile error Behat step assertion.
Avoids frequent failures related to iframe resizing/timing.
2024-06-24 15:55:58 +01:00
Paul Holden e9683d416f MDL-62958 admin: ensure uploaded plugin directory structure present.
Including any empty directories, which would cause validation to
subsequently fail when they were skipped.

Co-authored-by: Leon Stringer <leon.stringer@ntlworld.com>
2024-06-24 12:47:38 +01:00
Huong Nguyen 85c8395e52 MDL-79809 environment: Moodle 4.5 requirements 2024-06-24 09:37:15 +07:00
Rossco Hellmans 375c921a69 MDL-68676 mod_assign: check accessallgroups in can_edit_submission()
In can_edit_submission() when the assign group mode is SEPARATEGROUPS
check if the user has the moodle/site:accessallgroups capability before
checking if they are a shared groupmember. Due to the teamsubmission
setting students might not be in a group but can still submit, which
means they are not returned in get_shared_group_members().
2024-06-22 13:44:59 +10:00
AMOS bot fa80a0b8a5 Automatically generated installer lang files 2024-06-22 00:14:10 +00:00
Daniel Ziegenberg 10eead2473 MDL-31192 core_webservice: do not render div inside span
`<span>` tags only permit "phrasing content" but `<div>` (and also the
`<ins>` tag) are flow content. So, switching to div all along.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-06-21 16:32:35 +02:00
Martin Gauk f341c774de MDL-80345 core_lock: deal with hash collisions in postgres_lock_factory 2024-06-21 13:42:59 +02:00
Mikel Martín 731bf1cb78 MDL-82160 renderer: Add render_context_header method to core_renderer
In MDL-81597 the original render_context_header method was removed and converted to a template.
That caused a regression, so this patch adds the method again but using the new template.
2024-06-21 11:55:56 +02:00
Luca Bösch 18bf9704e7 MDL-82008 backup: Format 'Continue' and 'Cancel' button to have a margin 2024-06-21 09:37:02 +02:00
Sara Arjona cd781ab1b7 weekly release 4.4.1+ 2024-06-20 16:30:56 +02:00
Sara Arjona 7ec026173e Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-06-20 16:30:51 +02:00
Paul Holden ce6b2f77c9 MDL-82251 customfield: correct field management icon sizes. 2024-06-20 09:55:18 +01:00
David Woloszyn d3078a3f53 MDL-79231 core_theme: Fix Tiny menu in fullscreen mode modals 2024-06-20 14:32:57 +10:00
David Woloszyn d5be1b502f MDL-79231 mod_assign: Fix Tiny menu in fullscreen mode 2024-06-20 14:32:57 +10:00
Huong Nguyen a74b702a23 Merge branch 'MDL-78773-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-20 11:06:22 +07:00
Jun Pataleta 4246ca2fbf Merge branch 'MDL-82246-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-06-20 11:41:49 +08:00
Huong Nguyen 931f11899a Merge branch 'MDL-82202-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-20 10:21:13 +07:00
Andrew Nicols f3ade2b67a MDL-82246 tiny_recordrtc: Correct string name for insecure alert title 2024-06-20 10:58:13 +08:00
Huong Nguyen a1334d14d7 Merge branch 'MDL-81761-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-20 09:54:48 +07:00
Huong Nguyen c2cd21be15 Merge branch 'MDL-82169-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-20 09:19:45 +07:00
AMOS bot 3fb33d314e Automatically generated installer lang files 2024-06-20 00:16:24 +00:00
Sara Arjona e075cb4c1d Merge branch 'MDL-81534-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-19 16:49:56 +02:00
Sara Arjona 7cb072b11e Merge branch 'MDL-81857-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-19 15:53:02 +02:00
Sara Arjona d84efee3e2 Merge branch 'MDL-82181-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-19 15:42:27 +02:00
Sara Arjona 5fbdb37d60 Merge branch 'MDL-81730-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-19 13:31:39 +02:00
meirzamoodle f8eecf37d9 MDL-75864 cache: Change key prefix in cache_cron_task
Currently, the cache_cron_task is set to look for 'sess_' as a key prefix,
which is not used in any code. As a result, sessions that have exceeded the timeout are never deleted.

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

Co-authored-by: Renaud Lemaire <rlemaire@cblue.be>
2024-06-19 13:42:50 +07:00
Sara Arjona 4bdf820437 Merge branch 'MDL-77665-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-06-19 07:35:22 +02:00
Huong Nguyen d59f7a04f0 Merge branch 'MDL-81249-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-06-19 09:18:33 +07:00
Andrew Nicols 1d753e37af Merge branch 'MDL-81644-404-new' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-06-18 23:25:33 +08:00
Andrew Nicols 77c9660195 Merge branch 'MDL-81431-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-06-18 22:50:44 +08:00
Andrew Nicols 877e585704 Merge branch 'MDL-81739-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-06-18 22:34:10 +08:00
Sara Arjona f64d94dd62 MDL-82233 badges: Display awarded users only when it applies
The message with the number of uses who have awarded a badge
were displayed always (even when the badge was disabled).
2024-06-18 16:06:49 +02:00
Angelia Dela Cruz f6f6475b8e MDL-81249 gradingform: Behat test that grades are retained 2024-06-18 18:07:47 +08:00
Angelia Dela Cruz e877329be1 MDL-81249 gradingform: Enhance Behat test for deleting marking guide 2024-06-18 17:46:26 +08:00
Huong Nguyen 26824c239e Merge branch 'MDL-82148_404' of https://github.com/stronk7/moodle into MOODLE_404_STABLE 2024-06-18 16:27:43 +07:00
Shamim Rezaie 6aa18b9c05 Merge branch 'mdl-78080-404-split' of https://github.com/james-cnz/moodle into MOODLE_404_STABLE 2024-06-18 16:06:10 +10:00
lameze d348237022 MDL-81431 behat: set grade item checkboxes one at the time 2024-06-18 13:58:16 +08:00
Paul Holden 114ddf489e MDL-82202 course: correct last access report entity column callback.
Ensure it works when being aggregated.
2024-06-17 14:27:09 +01:00
Laurent David f78c93e325 MDL-77665 mod_h5pactivity: Improve generator package upload
* Allow the specification of the username in order to set the owner
of the H5P file package when creating a new H5P instance.
2024-06-17 06:32:13 +02:00
Laurent David 941c866216 MDL-77665 core_h5p: Allow deployment if user has been deleted
* If user has been deleted we consider that the content can be deployed
by a user who can deploy other packages
* Add behat test to cover for this use case
* Fix the content bank generator as it was failing to upload the content
as the given user
2024-06-17 06:32:13 +02:00
James C d9ba8ea3f3 MDL-78080 course: Duplicate section: Duplicate by section id, not num 2024-06-17 12:36:04 +12:00
James C 6e41020e44 MDL-78080 course: Duplicate section: No duplicate option for section 0 2024-06-17 12:36:04 +12:00
James C 2be9aaf311 MDL-78080 course: Duplicate section: Don't copy deleted activities 2024-06-17 12:36:04 +12:00
James C ac65869391 MDL-78080 course: Duplicate section: Copy section summary files 2024-06-17 12:35:38 +12:00
James C f7184f748f MDL-78080 course: Duplicate section: Copy custom section options 2024-06-17 12:32:47 +12:00
James C 40995c1030 MDL-78080 course: Duplicate section: Fix course_update_section params 2024-06-17 12:32:15 +12:00
Eloy Lafuente (stronk7) 202c58888a MDL-82148 phpunit: Remove all cases of multiple @coversDefaultClass
Only one by class is allowed (to be used as shortcut exclusively).
2024-06-14 16:05:15 +02:00
Tim Hunt 6d35be2af2 MDL-82200 inplace editable: fix background of the help text 2024-06-14 12:59:37 +01:00
Anupama Sarjoshi 754768bad3 MDL-79796 quiz: Preview icon should be visible in question bank pop-up 2024-06-14 11:50:53 +01:00
Ilya Tregubov fbed8034eb weekly release 4.4.1+ 2024-06-14 08:57:00 +08:00
Eric Merrill 73713bd675 MDL-82192 scorm: Correct field names for AICC ExitAu 2024-06-13 18:38:49 -04:00
Jun Pataleta 347ade6e68 Merge branch 'MDL-81287-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-13 12:03:21 +08:00
Jun Pataleta ece31e87a6 Merge branch 'MDL-82178_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-06-13 12:00:35 +08:00
Huong Nguyen 7b3d547f4a Merge branch 'MDL-81577-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-13 10:55:57 +07:00
Huong Nguyen 89d93d2632 Merge branch 'MDL-82184-dbcollation-comment-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2024-06-13 10:19:37 +07:00
Huong Nguyen d1f4ca4505 Merge branch 'MDL-81781-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-13 10:13:00 +07:00
Huong Nguyen f5a2ddef9f Merge branch 'MDL-69514-404' of https://github.com/pedrojordao/moodle into MOODLE_404_STABLE 2024-06-13 09:54:11 +07:00
Jun Pataleta 533deb42af Merge branch 'MDL-79885-404' of https://github.com/Chocolate-lightning/moodle into MOODLE_404_STABLE 2024-06-13 10:37:39 +08:00
Huong Nguyen 15b422f3a7 Merge branch 'MDL-82162-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-06-13 09:14:05 +07:00
Mathew May 17f080683d MDL-79885 qtype_ordering: Add learner behat testing 2024-06-13 10:11:10 +08:00
Huong Nguyen 9874249ad1 Merge branch 'MDL-82155-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-13 09:03:12 +07:00
Shamiso.Jaravaza 7fae6efbd8 MDL-80061 mod_bigbluebuttonbn: Change filter field
* Change dismissed recording time filter from timecreated to timemodified
2024-06-12 13:52:05 -06:00
Leon Stringer e4a8fd37f0 MDL-82184 database: Revise dbcollation comment 2024-06-12 18:15:30 +01:00
Paul Holden c8bdae260b MDL-82181 tiny_media: correctly determine whether to show dropzone. 2024-06-12 14:19:47 +01:00
Tim Hunt 200eb30225 MDL-82178 quiz graded notification: fix capability check
Also improve the scheduled task logging
2024-06-12 12:40:26 +01:00
Huong Nguyen d3890caed1 Merge branch 'MDL-81332-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-06-12 13:15:44 +07:00
Jun Pataleta 3f1f6192ea Merge branch 'MDL-81355-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-06-12 10:38:11 +08:00
Michael Aherne bf51502049 MDL-81355 phpdoc: Fix incorrect phpdocs on block_base. 2024-06-12 10:32:42 +08:00
Huong Nguyen 0d1cbfb3b7 Merge branch 'MDL-82001-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-12 09:01:39 +07:00
Huong Nguyen 6d717d9c8a Merge branch 'MDL-81522_404' of https://github.com/stronk7/moodle into MOODLE_404_STABLE 2024-06-12 08:46:59 +07:00
Paul Holden 4d4efaa72c MDL-82169 user: remove access to non-existent $options array. 2024-06-11 21:25:59 +01:00
ferranrecio b2ce12db1d MDL-82167 core: fix reactive debug panel 2024-06-11 16:16:25 +02:00
Sara Arjona 96c159f032 MDL-82162 tool: Switch to admin when executing runtestscenario by CLI
When the runtestscenario is executed via CLI, generators requiring a valid
$USER will fail.
This patch switches to the admin user, consistent with the approach used
in other simlar CLI scripts.
2024-06-11 13:27:18 +02:00
Ilya Tregubov c260c622b9 Merge branch 'MDL-81510-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-06-11 18:59:32 +08:00
Laurent David 71f5eee793 MDL-81510 core_courseformat: Fix activity highlight in index
* When directly accessing the module with the #module-xxx anchor
we should highlight the module as the current page item.
2024-06-11 12:47:38 +02:00
Eloy Lafuente (stronk7) 2a86638a15 MDL-81522 phpunit: Add a few non-void return types to tests
This is the final (3rd) commit, where we are adding missing
return types to a few tests (using @depends) which return
types are non-void, but something really returned (for consume
by the dependent test).
2024-06-11 12:18:05 +02:00
Eloy Lafuente (stronk7) 091b458c52 MDL-81522 phpunit: Add missing void return type to all tests #2
This commit includes more changes, all them also adding the :void
return type to unit tests missing them.

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

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

All the changes in this commit have been applied automatically
using the moodle.PHPUnit.TestReturnType sniff and are, exclusively
adding the ": void" return types when missing.
2024-06-11 12:18:04 +02:00
Huong Nguyen 7b6070003a MDL-68540 tool_usertours: Remove hideif workaround
We don't need to use the group element to use hideif
for text editor element anymore
2024-06-11 15:32:47 +07:00
Huong Nguyen d376d8cdbf Merge branch 'MDL-68540-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-06-11 15:32:23 +07:00
Angelia Dela Cruz 5541cd1af9 MDL-81332 core_course: Behat test for grade and activity reports display 2024-06-11 16:17:00 +08:00
Jun Pataleta dd345ab8ee Merge branch 'MDL-81428-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-06-11 13:41:49 +08:00
David Woloszyn 90c5adee7c MDL-68540 form: Correctly target editors in node tree
This fix solves the hideIf and disabledIf form conditions that were not
correctly targetting the editor due to a name attribute mismatch.
2024-06-11 13:06:12 +10:00
Paul Holden d5395c4f47 MDL-82155 core: define/correct third party library names. 2024-06-10 19:52:08 +01:00
Shamiso.Jaravaza 84a3e73aa0 MDL-80625 mod_bigbluebuttonbn: Fix param name 2024-06-10 10:13:35 -06:00
Pedro Jordao c0a966d944 MDL-69514 Core: Close popover when modal is closed
Currently in Firefox, if we opened a popover that was inside a modal
and closed the modal by pressing the ESC key, the popover remained on
the screen. With this change, we will ensure that popovers are closed
when the modal is closed.
2024-06-10 12:14:44 -03:00
Sara Arjona 844247aecf Merge branch 'MDL-81949-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-10 16:46:38 +02:00
Sara Arjona 90f138fced Merge branch 'MDL-81678-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-10 16:39:16 +02:00
Sara Arjona 6a46e9524b Merge branch 'MDL-70972-MOODLE_404_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_404_STABLE 2024-06-10 12:33:26 +02:00
Huong Nguyen 21b4aac782 MDL-81428 theme_boost: Match .disabled opacity with .text-muted 2024-06-10 17:08:22 +07:00
Huong Nguyen 83b9f0e29d MDL-81428 core: Display the correct status for the contact request 2024-06-10 17:08:22 +07:00
Ilya Tregubov 6d4a0cbcb2 Merge branch 'MDL-81510-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-06-10 13:31:56 +08:00
Paul Holden 06b9cbdefd MDL-81949 tool_replace: prompt user for unrecognised CLI parameters. 2024-06-07 11:41:03 +01:00
Paul Holden 2b4769bb73 MDL-81678 enrol: don't escape course name in welcome message. 2024-06-07 11:39:43 +01:00
Paul Holden e858c2e747 MDL-78773 report_stats: improve display of mode selection element.
Make use of existing theme selectors for navigation elements to style.
2024-06-07 11:34:17 +01:00
Paul Holden 222fb603c0 MDL-81781 report_log: escape description selectively on display/export.
Per cd85e090f3 all content was escaped, however we should only do that
when displaying the value in browser or exporting to file format which
supports HTML.
2024-06-07 11:30:18 +01:00
Paul Holden f2dbbfe66e MDL-81781 dataformat: public helper method to get writer instance. 2024-06-07 11:30:18 +01:00
Meirza 821f2a390c MDL-81644 calendar: The behaviour of event dates in the block calendar
There is a difference in the behaviour of the calendar block when it is on the calendar page and when it is not.
On the calendar page, when the user clicks on the date or link next/previous month or day name in the calendar block,
it will have the effect of changing the URL, which should not happen.

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

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

For the popover, I set the "animation" to false to avoid the random Behat failure caused by the slow animation.
2024-06-07 14:45:24 +07:00
Laurent David ac692ebbf6 MDL-81510 core_courseformat: Do not reset the scroll position
* Revert the change made in MDL-75762 which would wait and change
  course index selection depending on the actual scroll position
2024-06-07 09:39:32 +02:00
Laurent David 40960e49bc MDL-81510 core_courseformat: Expand course section to show activity
* When a course activity is specified via an anchor in the URL we
should expand the course content containing the activity
* When we point to a specific activity via an anchor in the URL we should
expand the course index (section) surrounding the actitity.
2024-06-07 09:39:32 +02:00
Andrew Nicols db07c09afc Moodle release 4.4.1 2024-06-07 14:55:41 +08:00
Jun Pataleta 70c8bfa038 weekly release 4.4+ 2024-06-06 22:30:32 +08:00
Jun Pataleta ccca8adbc1 NOBUG: Fixed file access permissions 2024-06-06 22:30:32 +08:00
Jun Pataleta 7e01d53de3 Merge branch 'MDL-81750-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-06-06 22:06:30 +08:00
Jun Pataleta 3317a05ec9 Merge branch 'MDL-82045-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-06-06 22:06:29 +08:00
Leon Stringer b0dddbb02a MDL-81146 forms: Disable submit buttons in Chrome 2024-06-06 22:06:29 +08:00
Huong Nguyen 322dae8b9c MDL-81875 mod_data: Fix incorrect version number 2024-06-06 22:06:29 +08:00
Andrew Nicols f6be7e2a3e Merge branch 'MDL-81794-404' of https://github.com/meirzamoodle/moodle into MOODLE_404_STABLE 2024-06-06 22:06:29 +08:00
Huong Nguyen aca5d1d5c6 Merge branch 'MDL-81875-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-06-06 22:06:29 +08:00
Huong Nguyen 07367f22f1 Merge branch 'MDL-81749-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-06-06 22:06:28 +08:00
Huong Nguyen 0c47aa6a92 Merge branch 'MDL-81989-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-06-06 22:06:28 +08:00
meirzamoodle e23f603c41 MDL-81890 assign: confirm_sesskey fixed in view_fix_rescaled_null_grades 2024-06-06 22:06:28 +08:00
meirzamoodle 9af9711c0a MDL-81890 enrol_lti: Fix sesskey checks 2024-06-06 22:06:28 +08:00
meirzamoodle 30fadc3686 MDL-81890 course: Fix sesskey checks 2024-06-06 22:06:28 +08:00
meirzamoodle 756090ed79 MDL-81890 tool_moodlenet: Fix sesskey checks 2024-06-06 22:06:27 +08:00
Jun Pataleta 2630591338 MDL-81631 backup: Simplify logic using null coalescing operator 2024-06-06 22:06:27 +08:00
Jun Pataleta e00e4487a4 Merge branch 'MDL-81631_404' of https://github.com/santoshndev/moodle into MOODLE_404_STABLE 2024-06-06 22:06:27 +08:00
Jun Pataleta 64f1fd7d7b Merge branch 'MDL-81894-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-06-06 22:06:27 +08:00
Jun Pataleta 09b06bdb28 Merge branch 'MDL-78198-404' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-06-06 22:06:27 +08:00
Huong Nguyen 9e1723f4b8 Merge branch 'MDL-81865-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-06-06 22:06:26 +08:00
Jun Pataleta 3b4e2ae357 Merge branch 'MDL-82086-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-06 22:06:26 +08:00
Huong Nguyen d35b9dc7bb Merge branch 'MDL-81397-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-06 22:06:26 +08:00
Paul Holden 500cec5757 MDL-81778 mod_bigbluebuttonbn: access checks when getting meeting URL. 2024-06-06 22:06:26 +08:00
Stevani Andolo 891e9994b4 MDL-81412 calendar: Sanitise calendar event names 2024-06-06 22:05:53 +08:00
Paul Holden 1bff691a64 MDL-81857 user: don't check whether address is an identity field.
It can never be selected as one, so the previous comparison could
never pass.
2024-06-06 08:58:42 +01:00
David Woloszyn 1913cdb088 MDL-81739 tiny_noautolink: Remove URL checking when preventing auto-link 2024-06-06 15:06:04 +10:00
Andrew Nicols 83b3ee6212 MDL-82045 course: Destroy copy course modal instead of hiding it 2024-06-06 10:04:10 +08:00
Andrew Nicols 253c16b64d MDL-81894 core: system_clock should use the server timezone 2024-06-06 00:18:52 +08:00
Paul Holden 2ed6a57f36 MDL-80344 calendar: correct no subscriptions language string use.
Ensure expected parameters are present; avoid string concatenation.
2024-06-05 15:52:18 +01:00
Amaia Anabitarte af96d4eebe MDL-81749 core_completion: Let custom rules to return failed state 2024-06-05 15:55:28 +02:00
lameze 4e6de24f31 MDL-81989 install: remove unnecessary closing div tags 2024-06-05 14:02:56 +08:00
Paul Holden 7d1563333b MDL-82055 output: replace usage of named templatable interface.
It's not available during, and breaks, site installation. The output
class doesn't necessarily need it in 78db6bbce8, so switch to simple
templatable interface instead.
2024-06-05 14:02:54 +08:00
Cameron Ball f7988538b2 MDL-81774 curl: Strip auth headers when redirecting to different host 2024-06-05 02:41:19 +00:00
Jun Pataleta 6ba71820b1 Merge branch 'MDL-81982-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-06-05 10:29:17 +08:00
David Mudrák 61c5863b1a MDL-81982 lang: Fix strings order
Fixes the strings order in files where CI has detected the wrong order
of modified strings.
2024-06-05 10:25:06 +08:00
David Mudrák 0091b1a153 MDL-81982 lang: Use fixed strings in tests, too 2024-06-05 10:25:06 +08:00
Helen Foster b12afc89e4 MDL-81982 lang: Import fixed English strings (en_fix) 2024-06-05 10:25:06 +08:00
Huong Nguyen 844aef124c Merge branch 'MDL-81970-plagiarism_upgrade_txt-404' of https://github.com/leonstr/moodle into MOODLE_404_STABLE 2024-06-05 09:13:49 +07:00
Huong Nguyen 476a8fcb72 Merge branch 'MDL-81751-MOODLE_404_STABLE' of https://github.com/durzo/moodle into MOODLE_404_STABLE 2024-06-05 08:56:10 +07:00
David Woloszyn fe22fe1c83 MDL-81750 form: Add selector to match filemanager in group 2024-06-05 09:34:57 +10:00
Laurent David cb9527cd4f MDL-81875 mod_data: Revert database autolink removal
Autolinks are used in the database for text fields via
the auto-linking filter.
The revert is partial here because of changes made
in MDL-70384 to all field forms/templates

This reverts commit 42edaba5 from MDL-80949
2024-06-04 16:09:31 +02:00
Paul Holden e71fc4ff3b MDL-82086 theme_boost: consistent selector for textarea form controls.
In a similar vein to 31f6039635, we shouldn't assume form controls are
always descendents of `.mform` (e.g. the messaging drawer input).
2024-06-04 14:37:37 +01:00
Paul Holden 89fae608a6 MDL-81397 courseformat: define section editing capabilities.
This ensures consistency for current page instance, when rendering
content in response to fragment AJAX requests.
2024-06-04 09:00:17 +01:00
Philipp Memmel 2692097272 MDL-70972 format_singleactivity: Apply new behavior to behat test 2024-06-04 06:36:49 +00:00
Philipp Memmel 11ca67f853 MDL-70972 format_singleactivity: Show activities when creating course
Co-authored-by: Laurent David <lmedavid@gmail.com>
2024-06-04 06:36:49 +00:00
Huong Nguyen 34bcb7e70e Merge branch 'MDL-81936-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-04 13:16:01 +07:00
Huong Nguyen 608f7d6aa0 Merge branch 'MDL-81955-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-04 10:33:46 +07:00
Andrew Nicols c43d07d0cf Merge branch 'MDL-80208-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-04 11:07:20 +08:00
Juan Leyva ad46a97f53 MDL-80959 tool_mobile: Use different user keys for QR and auto login 2024-06-04 10:33:40 +08:00
Andrew Nicols da4e626ffa Merge branch 'MDL-82047-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-04 10:29:18 +08:00
Andrew Nicols cb4904ea25 Merge branch 'MDL-82055-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-06-04 09:50:36 +08:00
Paul Holden 4d5289e599 MDL-81534 tool_generator: standardize user creation language string. 2024-06-03 09:43:15 +01:00
Huong Nguyen 0efd3066a2 Merge branch 'MDL-81544-404' of https://github.com/rezaies/moodle into MOODLE_404_STABLE 2024-06-03 12:05:35 +07:00
Huong Nguyen 002b1aed6a Merge branch 'MDL-73735-M404_duplicate-line-course-rest-php' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2024-06-03 11:53:25 +07:00
Huong Nguyen c73c1bafc1 Merge branch 'MDL-82009-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-06-03 11:36:47 +07:00
Sara Arjona e56c732209 MDL-82009 course: Course blocks should be displayed in section page too 2024-05-31 15:16:55 +02:00
Paul Holden cff22cd5ab MDL-82055 output: replace usage of named templatable interface.
It's not available during, and breaks, site installation. The output
class doesn't necessarily need it in 78db6bbce8, so switch to simple
templatable interface instead.
2024-05-31 13:04:30 +01:00
Sara Arjona 2ec3b297d7 Merge branch 'MDL-81850-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-31 10:44:41 +02:00
Ilya Tregubov 1e480e2851 Merge branch 'MDL-77685-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-31 09:04:44 +08:00
Luca Bösch a22d64816d MDL-81865 mod_quiz: Display modal for 'Add random question' as mform.
This is a backport of MDL-81713.
2024-05-30 21:56:03 +02:00
Paul Holden 89d9032e4d MDL-81577 mod: correct arguments when formatting text for RSS. 2024-05-30 19:17:27 +01:00
Paul Holden f540fab1dc MDL-82047 analytics: remove 32-bit integer checks for maximum time. 2024-05-30 19:00:25 +01:00
Paul Holden a49c099ae5 MDL-82001 mod_quiz: respect user language in draft save message text. 2024-05-30 16:04:58 +01:00
Sara Arjona 1291869f90 weekly release 4.4+ 2024-05-30 17:00:26 +02:00
Jun Pataleta 7a420b6a34 Merge branch 'MDL-80831-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-05-30 18:25:50 +08:00
Huong Nguyen ff963d9feb MDL-80831 core: Add missing classname for privacy url 2024-05-30 17:17:13 +07:00
Paul Holden ad693b830a MDL-81850 availability_group: correctly retrieve groups for given user. 2024-05-30 10:15:47 +01:00
Huong Nguyen c2b0463539 Merge branch 'MDL-80973-404' of https://github.com/jleyva/moodle into MOODLE_404_STABLE 2024-05-30 10:38:06 +07:00
Andrew Nicols f0445d5cac MDL-68262 assignfeedback_editpdf: Correct args to make_request_directory 2024-05-30 09:54:08 +07:00
Sara Arjona 2debc731ef Merge branch 'MDL-81983_404' of https://github.com/lostrogit/moodle into MOODLE_404_STABLE 2024-05-29 14:07:31 +02:00
Sara Arjona 56aaf7a998 Merge branch 'MDL-81901-progress-cli-MOODLE_404_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_404_STABLE 2024-05-29 13:32:31 +02:00
Sara Arjona 86cb89c5fc Merge branch 'MDL-80911-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-05-29 13:19:22 +02:00
Jun Pataleta 9a75b24e1c Merge branch 'MDL-81779-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-29 17:02:01 +08:00
Andrew Nicols b19ce46723 MDL-68262 assignfeedback_editpdf: Update unit test for latest coding style 2024-05-29 16:19:41 +08:00
Andrew Nicols 370843c967 MDL-68262 assignfeedback_editpdf: Switch to request dirs 2024-05-29 16:19:41 +08:00
Andrew Nicols da15787ed0 Merge branch 'MDL-80831-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-05-29 14:27:20 +08:00
Jun Pataleta 801a2b9497 MDL-80831 theme: Set a vertical padding for footer links
This is to increase the target size of links within the footer and
meet WCAG 2.2 Level AA Success Criterion 2.5.8
2024-05-29 10:40:11 +08:00
Jun Pataleta 7a5bdf76b6 MDL-80831 gradereport_grader: Remove unnecessary setting of aria-hidden
- If an element is being hidden visually with `display: none;` (e.g. by
using the class `.d-none`), there's no need to set `aria-hidden` because
it is already hidden from the accessibility tree.
- Setting `aria-hidden=false` is also not recommended and it's better to
remove the `aria-hidden` attribute instead of setting it to false.
2024-05-29 10:40:11 +08:00
Jun Pataleta 63f7c6cc6a MDL-80831 behat: Re-enable target-size rule for accessibility tests 2024-05-29 10:40:11 +08:00
Brendan Heywood b35b012e9e MDL-81901 core: Fix progress bar bug in cli in non tty mode 2024-05-29 11:15:05 +10:00
Andrew Nicols 0204fbb810 Merge branch 'MDL-82015-404' of https://github.com/ak4t0sh/moodle into MOODLE_404_STABLE 2024-05-29 09:11:05 +08:00
Andrew Nicols 5cf7efb761 Merge branch 'MDL-81597-404' of https://github.com/roland04/moodle into MOODLE_404_STABLE 2024-05-28 23:49:59 +08:00
Andrew Nicols 2016d4c6dd MDL-81733 mod_lesson: Coding style fixes 2024-05-28 23:45:50 +08:00
Andrew Nicols aae18f59aa Merge branch 'MDL-81733-404' of https://github.com/izendegi/moodle into MOODLE_404_STABLE 2024-05-28 23:45:47 +08:00
Mikel Martín 4d23fe8a58 MDL-81597 theme_boost: Fix header bar alignment
- Refactot context_header class to implement named templatable so
render_context_header in core and theme_boost can be removed
- Refactor context_header to use templates
- Fix context header layout and styles
2024-05-28 16:33:21 +02:00
Arnaud Trouvé fcfcdd6508 MDL-82015 mod_bigbluebuttonbn: Fix date formatting during import 2024-05-28 15:24:26 +02:00
Andrew Nicols 45808a99b4 Merge branch 'MDL-82004-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-28 14:31:42 +08:00
Andrew Nicols e4acde27c9 Merge branch 'MDL-81822-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-28 14:05:58 +08:00
Andrew Nicols 5182b60391 Merge branch 'MDL-81870-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-28 14:00:15 +08:00
Huong Nguyen 23ab7d4973 Merge branch 'MDL-78768-M404_import-multiple-new-grade-items' of https://github.com/ziegenberg/moodle into MOODLE_404_STABLE 2024-05-28 12:32:26 +07:00
Andrew Nicols af8f13bac5 MDL-81897 tool_mobile: Coding style fix 2024-05-28 11:41:16 +08:00
Andrew Nicols e5b2b5e0ba Merge branch 'MDL-81897-404' of https://github.com/jleyva/moodle into MOODLE_404_STABLE 2024-05-28 11:40:53 +08:00
Andrew Nicols 9a6b07f0de Merge branch 'MDL-81757-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-28 10:25:26 +08:00
Andrew Nicols 11e53bf4b0 Merge branch 'MDL-81698_404' of https://github.com/stronk7/moodle into MOODLE_404_STABLE 2024-05-28 10:12:50 +08:00
Huong Nguyen 176caab765 Merge branch 'MDL-81915_404' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_404_STABLE 2024-05-28 08:57:45 +07:00
Andrew Nicols bd03886512 Merge branch 'MDL-78942-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-28 09:17:28 +08:00
Juan Leyva 6f6d2d9a0f MDL-80973 tool_policy: Fix edge case 2024-05-27 17:20:22 +02:00
Mikel Martín e6af0ea94e MDL-81597 renderer: Add page getter method to renderer_base 2024-05-27 13:27:05 +02:00
Eloy Lafuente (stronk7) 86b45212e8 MDL-81698 phpunit: Convert some skipped tests into useful ones
After some tests, it seems that we can safely cover
phpunit_util::reset_all_data() executing it within
own basic_test self tests.

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

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

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

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

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

Note that we are not using PHPUnit's own
isolation here, just running them one by one.
2024-05-25 17:19:51 +02:00
Anupama Sarjoshi 25724ebfbb MDL-81915 admin: Fix test_admin_output_new_settings_by_page unit test 2024-05-24 11:24:32 +01:00
Iñigo Zendegi c73623506d MDL-81733 lesson: Support filters on lesson activity link 2024-05-24 09:42:57 +02:00
meirzamoodle 7450f0e33f MDL-81794 cachestore_redis: Fix the TLS issue on the Redis 2024-05-24 14:28:10 +07:00
meirzamoodle 55163a6ba9 MDL-81794 core: Fix the TLS issue on the Redis 2024-05-24 14:28:10 +07:00
Ilya Tregubov 4e04339cbd weekly release 4.4+ 2024-05-24 10:51:59 +08:00
Andrew Nicols bf3562d13e MDL-78198 file: Stop sending the Accept-Charset header in curl
See notes on:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Charset

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

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

UTF-8 is well-supported and the overwhelmingly preferred choice for
character encoding. To guarantee better privacy through less
configuration-based entropy, all browsers omit the Accept-Charset
header.
2024-05-23 22:18:08 +08:00
Paul Holden aca3ad2008 MDL-82004 assignsubmission_onlinetext: no concatenation in lang strings. 2024-05-23 13:08:22 +01:00
Paul Holden f34e050e9b MDL-81870 core: re-factor duplicate plugin savepoint implementations. 2024-05-23 09:09:26 +01:00
Paul Holden c2eb42fc7b MDL-81870 core: validate component during upgrade task savepoint. 2024-05-23 09:04:24 +01:00
Huong Nguyen 625e015ff8 Merge branch 'MDL-81407_404' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_404_STABLE 2024-05-23 10:38:42 +07:00
Huong Nguyen 9d74cebd74 Merge branch 'MDL-81992_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-05-23 09:45:26 +07:00
Huong Nguyen 64ad970e5e Merge branch 'MDL-81862-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-23 08:47:48 +07:00
Tim Hunt f0fb54d907 MDL-81992 question bank: disable create question button until ready
Previously, you could click the button before it was ready, and that
just led to an error, which was very silly usability.
2024-05-22 16:26:05 +01:00
Paul Holden 5da8226f72 MDL-80208 cachestore_redis: ensure empty set many with TTL don't throw. 2024-05-21 22:36:46 +01:00
Santosh Nagargoje 2fcd7f93b9 MDL-81631 backup: Added null parameter fix 2024-05-21 17:06:21 +05:30
Daniel Ziegenberg 9b30118456 MDL-73735 course: remove duplicate line of code
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
Co-authored-by: Davo Smith <davo.smith@synergy-learning.com>
2024-05-21 13:30:24 +02:00
Huong Nguyen dd87304fcf Merge branch 'MDL-81652-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-05-21 17:33:50 +07:00
Huong Nguyen b08fbf99db Merge branch 'MDL-76765-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-05-21 17:29:22 +07:00
Carlos Castillo b3f708d4d1 MDL-81983 admin: Remove double capability check 2024-05-21 12:14:21 +02:00
Huong Nguyen 4572a114a9 Merge branch 'MDL-81538-404' of https://github.com/rezaies/moodle into MOODLE_404_STABLE 2024-05-21 16:31:51 +07:00
Paul Holden c889381be2 MDL-81862 mod_assign: add activity field files for backup/restore. 2024-05-21 09:06:01 +01:00
Ilya Tregubov 1e07a5eef6 Merge branch 'MDL-81318-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-21 12:49:20 +08:00
Shamim Rezaie 2c40c8554b Merge branch 'MDL-80599-404-2' of https://github.com/ilyatregubov/moodle into MOODLE_404_STABLE 2024-05-21 14:23:15 +10:00
Huong Nguyen 955f4f3bb7 Merge branch 'MDL-81948-404' of https://github.com/ferranrecio/moodle into MOODLE_404_STABLE 2024-05-21 10:03:12 +07:00
Huong Nguyen 1dca48371d Merge branch 'MDL-81904-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-21 09:43:45 +07:00
Huong Nguyen c0b9a52430 Merge branch 'MDL-80583-404' of https://github.com/stevandoMoodle/moodle into MOODLE_404_STABLE 2024-05-21 09:24:34 +07:00
Luca Bösch 462b8f9861 MDL-76765 qtype_ddmarker: Show multiple tries options correctly. 2024-05-20 22:13:40 +02:00
Luca Bösch 242ab5d5aa MDL-76765 question: Show multiple tries options correctly. 2024-05-20 22:13:39 +02:00
Luca Bösch bf8a28b220 MDL-81652 qtype_multianswer: Tackle Bootstrap 5 compatibility. 2024-05-20 21:30:18 +02:00
Paul Holden 20d6ffb9ee MDL-81730 assignsubmission_file: deterministic submission file order. 2024-05-20 20:16:18 +01:00
Paul Holden a76a1e3f5c MDL-81822 tool_licensemanager: slightly relax license shortname type.
The "*-4.0" license versions could not be managed currently.
2024-05-20 17:44:47 +01:00
Paul Holden fbd18d8ead MDL-81761 gradingform_guide: remove duplicate click of frequent comment. 2024-05-20 17:40:45 +01:00
Leon Stringer 78b3369ca0 MDL-81970 plagiarism: Callbacks wrong way round 2024-05-20 11:01:33 +01:00
Stevani Andolo 2f0513b91c MDL-80583 communication_matrix: Ignore unreachable matrix server 2024-05-20 16:46:58 +08:00
Paul Holden b25405fd56 MDL-81904 mod_feedback: show export questions only if any present. 2024-05-20 09:27:38 +01:00
Huong Nguyen 5565f47e9b MDL-80911 Course: Fix missing required files 2024-05-20 10:08:02 +07:00
Huong Nguyen 2848c7d6be Merge branch 'MDL-81929-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-20 09:20:11 +07:00
Anupama Sarjoshi 4e151ddf30 MDL-81407 qbank_columnsortorder: Fix error displaying hiddencols
When the question custom fields were deleted, if there were any
hidden columns in qbank Column sort order referring those fields they
were throwing 'Custom field does not exist' exception. Changes done to
ignore such fields and display valid hiddencols, as these references
were breaking the qbank Column sort order and Question bank pages.
2024-05-19 08:58:45 +01:00
Daniel Ziegenberg 4b9de301c3 MDL-78768 grade: fix import multiple new grade items
Prior to this change, when importing grades from .csv (or another
method) and you choose to map the grades to a 'New grade item', you get
the following error message:
```
"Mapping collision detected - two fields maps to the same grade item
new."
```
A workaround existed that required users to import one column at a time,
which was cumbersome.

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

Co-authored-by: hehe009 <max_kan@hotmail.com>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-05-17 21:22:09 +02:00
Paul Holden dbffeb334b MDL-81955 assignfeedback_editpdf: ensure ghostscript present in tests. 2024-05-17 10:25:27 +01:00
ferranrecio 165709ff7d MDL-81948 theme: fix fallback layout logic
Finding the page layout fallback was trying to get a default layout from
the ancient theme called "base". This default theme do not exists
anymore and defining a wrong layout in a theme is a code mistake that
should not be bypassed.
2024-05-17 10:43:35 +02:00
Ilya Tregubov 0a75d57b13 MDL-80599 enrol_guest: Support password update in csv course upload 2024-05-17 11:01:22 +08:00
Ilya Tregubov 3182c71093 MDL-80599 enrol_self: Support password update in csv course upload 2024-05-17 11:01:22 +08:00
Ilya Tregubov 56fb55683a MDL-80599 core: Refactor enrol methods
Move update instance logic to its own method and cover with tests.
Also update enrol plugins to work woth new methods.
2024-05-17 11:01:22 +08:00
Ilya Tregubov 78229db6a1 MDL-80599 enrol_self: Check group key regardless of policy used
Password policy is not connected to using of group key enrolment
2024-05-17 11:01:22 +08:00
Paul Holden d04044bb0a MDL-81936 editor_tiny: handle default filepicker/draftitem config.
If they aren't passed in editor options config, ensure they still
observe the registered option processor (type) for each.
2024-05-16 18:49:46 +01:00
Jordan Tomkinson c1b4ccc4c6 MDL-81751 ddl: new reserved keywords in Aurora MySQL database engine 2024-05-16 13:41:29 +01:00
Paul Holden 5db3c95e29 MDL-81929 user: reset the selected bulk action when nothing selected.
In the case of bulk user actions that are implemented via Javascript,
we should ensure that once they are complete the selected action is
reset to its default state of "Choose..." so that it can be selected
again.
2024-05-16 13:00:26 +01:00
Huong Nguyen bcae2164ac weekly release 4.4+ 2024-05-16 18:25:19 +07:00
Huong Nguyen 207eed1190 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-05-16 18:25:16 +07:00
Huong Nguyen c948d9e40e Merge branch 'MDL-81598-404' of https://github.com/laurentdavid/moodle into MOODLE_404_STABLE 2024-05-16 09:51:05 +07:00
Huong Nguyen 9ccdee7687 Merge branch 'MDL-81543-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-16 09:38:53 +07:00
Huong Nguyen 1a3e68a956 Merge branch 'MDL-79838-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-05-16 09:21:54 +07:00
Paul Holden dfde819c8b MDL-81287 mod_forum: observe default discussion paging value. 2024-05-15 13:23:17 +01:00
Paul Holden ffe67fc6df MDL-81318 assignsubmission_onlinetext: ignore blank content download. 2024-05-15 09:33:18 +01:00
Angelia Dela Cruz 8a60437bea MDL-79838 mod_h5pactivity: Behat for H5P activity grade settings control 2024-05-15 14:33:21 +08:00
Shamim Rezaie c62143a5df Merge branch 'MDL-81530-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-05-15 15:12:59 +10:00
Huong Nguyen 691f2c8950 Merge branch 'MDL-51360-404-2' of https://github.com/ilyatregubov/moodle into MOODLE_404_STABLE 2024-05-15 10:44:18 +07:00
Ilya Tregubov 6ae2c78e9f Merge branch 'MDL-70441-404-fix' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-15 09:30:40 +08:00
Simey Lameze 7a4ea4dd65 MDL-70441 mod_assign: change condition to check if variable is not empty 2024-05-15 09:15:16 +08:00
Shamim Rezaie 217a7af933 MDL-81544 theme_boost: Don't change the display of .visibleifjs elements 2024-05-15 04:13:24 +10:00
Sara Arjona df176b292a Merge branch 'MDL-81805-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-14 17:05:38 +02:00
Juan Leyva fa5a564a17 MDL-81897 tool_mobile: Force partitioned cookies on inapp browser 2024-05-14 13:44:15 +02:00
Ilya Tregubov dd1d91486d Merge branch 'MDL-70441-404' of https://github.com/kevpercy/moodle into MOODLE_404_STABLE 2024-05-14 14:09:05 +08:00
David Balch f9ab045794 MDL-70441 assign: Freeze workflow states not available to user.
Prior to this, a custom grader role that has mod/assign:grade but not
mod/assign:releasegrades or mod/assign:managegrades would see a select
with only the states available to them - not the current state, and
could reset a grade from released to Not marked/In marking/Marking
completed.
2024-05-14 12:55:00 +08:00
Huong Nguyen 32bf836fec Merge branch 'MDL-81434-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-14 08:52:47 +07:00
Paul Holden e205d5accc MDL-81543 qtype_calculated: correct component of language string. 2024-05-13 10:43:44 +01:00
Laurent David 9febdf9b0f MDL-81598 theme_boost: Fix quiz review options tooltips 2024-05-13 08:26:29 +02:00
Ilya Tregubov ce8695ff1f Merge branch 'MDL-81867-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-13 09:29:09 +08:00
AMOS bot 3e80d6ee79 Automatically generated installer lang files 2024-05-12 00:14:32 +00:00
Paul Holden 513bafbcfd MDL-81867 qbank_columnsortorder: correct/cleanup previous upgrade step. 2024-05-10 09:16:46 +01:00
Ilya Tregubov 7fc818ebb8 MDL-51360 core_grades: Improve documentation of grade_get_grades(). 2024-05-10 09:17:03 +08:00
Ilya Tregubov 0219831af4 MDL-51360 mod_quiz: Don't do full course recalculation.
It seems it was never needed. We only need to know if just one
grade is overridden and its value.
2024-05-10 09:17:03 +08:00
Ilya Tregubov 477aa7c750 weekly release 4.4+ 2024-05-10 09:09:33 +08:00
Paul Holden 47e844d0f4 MDL-81757 editor_tiny: preserve unicode character escape in errors.
Removing backslashes from the XHR response led to errors including
unicode escape codes being broken.
2024-05-09 20:13:14 +01:00
Amaia Anabitarte c44c1b5345 MDL-81601 core_course: Add course index completion status behats 2024-05-09 19:43:20 +08:00
Jun Pataleta 28e9e58577 Merge branch 'MDL-81713-404' of https://github.com/junpataleta/moodle into MOODLE_404_STABLE 2024-05-09 12:02:19 +08:00
Jun Pataleta 6a628bcd3a MDL-81713 mod_quiz: Use accessible fieldset name for Behat test 2024-05-09 11:56:22 +08:00
Luca Bösch 10e44e40d9 MDL-81713 mod_quiz: Add random question 'Parent category' help icon. 2024-05-09 11:56:09 +08:00
Jun Pataleta a625583b11 Merge branch 'MDL-80972-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-09 11:43:23 +08:00
info@eWallah.net 810ab99d7d MDL-80972 behat: Behat check_server_status can provide better info. 2024-05-09 11:07:31 +08:00
Huong Nguyen 82a76a1b69 Merge branch 'MDL-81423_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-05-09 09:55:24 +07:00
Huong Nguyen ddca055e0d Merge branch 'MDL-80453-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-05-09 09:47:55 +07:00
Ilya Tregubov b0a11d12ca Merge branch 'MDL-81601-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-05-09 10:46:17 +08:00
Huong Nguyen 996564f803 Merge branch 'MDL-79702-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-09 09:33:39 +07:00
Paul Holden 2512e6b09e MDL-77685 grade: remove Behat specific report rendering hacks.
These changes follow the same approach as that taken elsewhere in
the Gradebook in 3643f48e0f.
2024-05-08 12:29:43 +01:00
Angelia Dela Cruz d5d6b0f7f9 MDL-80453 mod_glossary: Behat for different glossary format display 2024-05-08 17:26:13 +08:00
Amaia Anabitarte 52b4f3bb1d MDL-81601 core_course: Fix course index completion status 2024-05-08 08:25:57 +02:00
Marina Glancy ad9d4bb4af MDL-80907 various: fixes to incorrect column selectors in behat 2024-05-07 19:28:46 +01:00
Marina Glancy 569d9dfe39 MDL-80907 behat: be more precise in selecting table rows 2024-05-07 19:28:37 +01:00
Paul Holden 1c2f5dc1df MDL-81434 reportbuilder: ensure filter/condition parameter uniqueness.
This change fixes an edge case that could be triggered by creating a
custom report that contained a filter instance that was active as both
a filter and condition, where the filter instance provides parameters
to it's SQL fragment.

There is only one such filter present currently with which we can test
this, see 2f9001cbe9.
2024-05-07 15:03:16 +01:00
Paul Holden 75d95bc4b8 Merge branch 'MDL-81764_404' of https://github.com/lostrogit/moodle into MOODLE_404_STABLE 2024-05-07 14:43:03 +01:00
Paul Holden a6c17af4c7 Merge branch 'MDL-81776-404' of https://github.com/dravek/moodle into MOODLE_404_STABLE 2024-05-07 14:33:10 +01:00
Huong Nguyen 7ac2d7f598 MDL-81530 editor_tiny: Better browsers compatibility
The TinyMCE.remove() function is killing other events on Firefox
We need to modify the setupForElementId() to make TinyMCE to
remove itself outside of the event loop
2024-05-07 14:21:22 +07:00
Simey Lameze c4533967d1 MDL-81805 behat: remove unnecessary @javascript from tests 2024-05-07 09:10:19 +08:00
Paul Holden 5bd4a81e09 MDL-81779 theme_boost: more liberal selector for form-control elements.
There are various pages (e.g. many related to permissions), where the
form element is not a descendent of `.mform` - so the previous selector
never matched them and led to unstyled inputs.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2024-05-06 20:34:41 +01:00
Simey Lameze 72f0a11f0d MDL-79702 behat: improvements and fixes to new tests
This commit adds the handling of tags as string separated by comma
to forum and glossary modules.
2024-05-06 20:02:23 +08:00
Angelia Dela Cruz 7b873db958 MDL-79702 core_tag: Behat for activity tags deletion during course reset 2024-05-06 20:02:23 +08:00
Huong Nguyen b83cd14d25 Merge branch 'MDL-80589-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-06 09:37:09 +07:00
Ilya Tregubov 4b0ca64617 Merge branch 'MDL-81656-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-06 09:55:34 +08:00
David Carrillo 7741ae3094 MDL-81776 reportbuilder: Check tagarea enabled when check availability
- When checking availability for a column/filter we need to assert
tagarea is enabled because it can return also null value.
2024-05-03 12:22:46 +02:00
Tim Hunt aa1dc46bc8 MDL-81423 assign: improve valdation message for submissionstatement 2024-05-03 10:33:46 +01:00
Shamim Rezaie 27dd2e751f MDL-81538 theme_boost: Fix popover arrow direction in RTL 2024-05-03 13:03:30 +10:00
Ilya Tregubov f88dbfcafc weekly release 4.4+ 2024-05-03 08:22:32 +08:00
Ilya Tregubov aaf45097b7 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-05-03 08:22:29 +08:00
AMOS bot adb0352ef4 Automatically generated installer lang files 2024-05-03 00:10:48 +00:00
Carlos Castillo da4486b202 MDL-81764 reportbuilder: Include full name filter to Users system report 2024-05-02 13:56:47 +02:00
Simey Lameze 778470818a MDL-80589 behat: fixes and improvements to new tests 2024-05-02 13:33:44 +08:00
Angelia Dela Cruz 4625eeb998 MDL-80589 qtype_numerical: Behat to add, edit, preview numeric question 2024-05-02 13:33:44 +08:00
Huong Nguyen 4e7d555c18 Merge branch 'MDL-81587_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-05-02 09:37:58 +07:00
Huong Nguyen 8b7f262aca Merge branch 'MDL-81611_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-05-02 09:02:11 +07:00
Huong Nguyen d33dd13fd5 Merge branch 'MDL-79851-404' of https://github.com/lameze/moodle into MOODLE_404_STABLE 2024-05-01 16:10:54 +07:00
Angelia Dela Cruz a548bccf18 MDL-79851 mod_h5pactivity: Behat for h5p activity access control 2024-05-01 14:26:10 +08:00
Huong Nguyen 9977c07a69 Merge branch 'MDL-81621-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-05-01 10:59:03 +07:00
Sara Arjona eedb5fde7a Merge branch 'MDL-81724-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-30 16:38:04 +02:00
Tim Hunt eabc15f983 MDL-81587 quiz: fix layout of the add/edit random UI
Some of the removed CSS seems no longer relevant now that we have
customisation options for the layout of the question bank.
2024-04-30 15:25:11 +01:00
Sara Arjona 18ac43934a Merge branch 'MDL-78889-404' of https://github.com/ilyatregubov/moodle into MOODLE_404_STABLE 2024-04-30 16:05:12 +02:00
Sara Arjona 35914200b5 MDL-80571 tiny_premium: Fix version 2024-04-30 15:45:39 +02:00
Sara Arjona 48c064505e Merge branch 'MDL-81632-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-30 15:09:34 +02:00
Sara Arjona 417fbe1534 Merge branch 'MDL-80571-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-04-30 15:05:56 +02:00
Paul Holden c70ceb5f7b MDL-81724 editor_tiny: remove whitespace from block formats syntax.
Ensures that the values are subsequently translated correctly. Workaround
for upstream bug: https://github.com/tinymce/tinymce/pull/9599

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2024-04-30 09:26:17 +01:00
Huong Nguyen c4735904e5 Merge branch 'MDL-79149-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-30 11:48:13 +07:00
Huong Nguyen 0792e7bdd9 Merge branch 'MDL-81717-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-04-30 11:38:11 +07:00
Huong Nguyen eaf09ebbc4 Merge branch 'MDL-81707-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-30 10:14:44 +07:00
Ilya Tregubov d620ee8cdf Merge branch 'MDL-77272-404' of https://github.com/SergioComeron/moodle into MOODLE_404_STABLE 2024-04-30 10:18:21 +08:00
Huong Nguyen f7124a4a95 MDL-81610 course: Update upgrade.txt 2024-04-30 09:12:17 +07:00
Huong Nguyen 34f1f22b00 Merge branch 'MDL-81610_404_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_404_STABLE 2024-04-30 09:01:19 +07:00
David Woloszyn a95ac513bf MDL-80571 tiny_premium: Premium plugins can be individually enabled 2024-04-30 09:40:42 +10:00
Sara Arjona a829242d47 MDL-81717 h5p: Improve robustness content type fetching
Strengthen code to ensure retrieval of all content types, despite
failures.
2024-04-29 12:33:38 +02:00
Paul Holden 2479bc2042 MDL-81707 availability_grade: fix alignment of condition checkboxes. 2024-04-29 10:38:41 +01:00
Paul Holden 67376511ac MDL-81656 h5p: correct content editing URL parameter handling. 2024-04-29 09:22:21 +01:00
Paul Holden b65b4892ae MDL-81621 mod_bigbluebuttonbn: remove reflection setAccessible call.
See 361dfe8145 for context.
2024-04-29 09:21:19 +01:00
Ilya Tregubov be159037d4 MDL-78889 gradereport_user: Fix pass/fail icon for totals
When the category has a 'grade to pass' set, the pass/fail icon
was displayed even when the category total grade values was hidden.
2024-04-29 14:44:28 +08:00
Ilya Tregubov eccadb67b7 MDL-81380 qbank_columnsortorder: Add type and return value hint 2024-04-29 10:47:59 +08:00
Ilya Tregubov 94d8b7f040 Merge branch 'MDL-81380_404' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_404_STABLE 2024-04-29 10:47:06 +08:00
Huong Nguyen c6bf1efac6 Merge branch 'MDL-80849-404' of https://github.com/davewoloszyn/moodle into MOODLE_404_STABLE 2024-04-29 08:55:27 +07:00
Ilya Tregubov 50c7842d73 Merge branch 'MDL-80597-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-29 09:46:14 +08:00
Ilya Tregubov 48597285cd Merge branch 'MDL-81697-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-29 09:22:27 +08:00
David Woloszyn e13fe01c7b MDL-80849 communication_matrix: Prevent numeric usernames 2024-04-29 10:49:32 +10:00
Anupama Sarjoshi 1542a9f9e1 MDL-81380 qbank_columnsortorder: Add upgrade.php
Before Moodle 4.3, config_plugins settings for qbank_columnsortorder
(disabledcol, enabledcol) had a value like
qbank_statistics\columns\facility_index,
qbank_statistics\columns\discriminative_efficiency, ...
In Moodle 4.3, the values are stored as
qbank_statistics\columns\facility_index-facility_index.
So updating the old values to match the new format.
2024-04-26 17:12:45 +01:00
Paul Holden 310b932482 MDL-79149 report_participation: more resilient activity access test.
Use the "Forum" module rather than the "Book" module, because the latter
emits two events when a student views it - if these two events happened
either side of a single second, then the report  would count two distinct
views (when it was trying to assert only one).
2024-04-26 16:08:11 +01:00
Paul Holden edf923e38e MDL-80597 mod_quiz: simplify filtering by tags Behat assertions.
The initial filtering for category was redundant, as it's applied
by default. While present it also caused reproducible failures on
CI due to timing issues when trying to apply multiple filters.
2024-04-26 10:27:06 +01:00
Huong Nguyen 95a5cb8038 Merge branch 'MDL-78433-404' of https://github.com/aanabit/moodle into MOODLE_404_STABLE 2024-04-26 16:19:53 +07:00
Huong Nguyen 771786ad4d Merge branch 'MDL-81641_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-04-26 16:03:54 +07:00
Sara Arjona 5f6b32c4cb Merge branch 'MDL-81581_404' of https://github.com/stronk7/moodle into MOODLE_404_STABLE 2024-04-26 10:48:29 +02:00
Sara Arjona 8ee732f391 Merge branch 'MDL-77445-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-04-26 10:40:29 +02:00
Paul Holden 21e6eea20e MDL-81697 qtype_ordering: correctly reference feedback file areas. 2024-04-25 21:38:15 +01:00
Eloy Lafuente (stronk7) 1dbc78253c MDL-81581 phpunit: Apply the new method to all remaining cases
After discussing it in the issue, we have agreed to apply
the new phpunit_util::normalise_line_endings() method to
all the remaining cases (within tests!) where the manual
replacement was being done. This commits achieves that.

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

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

This change allows the result of is_tracked_user to be passed to the cm
state object, then calls it once and passes it to each cm's object. If
it is not passed in, it will be computed on demand as before.
2024-04-25 16:15:21 +01:00
Mark Johnson 6c484f9fc8 MDL-81611 assign: Close session early in gradingpanel fragment 2024-04-25 16:14:26 +01:00
SergioComeron 6de35b2623 MDL-77272 report: Enable module level report options 2024-04-25 17:13:03 +02:00
Sara Arjona f0c1a3789d weekly release 4.4+ 2024-04-25 15:43:27 +02:00
Sara Arjona 8f0f474882 Merge branch 'install_404_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_404_STABLE 2024-04-25 15:43:24 +02:00
Philipp Imhof 452cf5c72d MDL-80087 Questions: warn if preload_all_step_users was not called
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-04-25 09:37:47 +07:00
Paul Holden dd88b540c2 MDL-81632 block_recentlyaccesseditems: deterministic item ordering.
Behat tests of this functionality could trigger the unlikely (in real
world usage) scenario where a user has an identical "timeaccess" value
for multiple course activities.

This led to random failures in said tests when the DB ordered items in
apparently random order, where the "timeaccess" value was equal.
2024-04-24 20:57:36 +01:00
Sara Arjona 6a04c121af Merge branch 'MDL-77998-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-04-24 14:47:59 +02:00
Angelia Dela Cruz 83eb2a624c MDL-77998 Behat: Add behat coverage for preferences navigation 2024-04-24 19:38:50 +08:00
Huong Nguyen 1d6bee488d Merge branch 'MDL-81627_404' of https://github.com/timhunt/moodle into MOODLE_404_STABLE 2024-04-24 15:26:05 +07:00
Tim Hunt 14574fdb56 MDL-81301 quiz: improve performance of deleting a quiz 2024-04-24 15:19:23 +07:00
Angelia Dela Cruz aa213563e7 MDL-77445 Behat: Coverage for activity chooser navigation 2024-04-24 15:38:05 +08:00
Jun Pataleta 1d01c74390 Merge branch 'MDL-81570-404' of https://github.com/sarjona/moodle into MOODLE_404_STABLE 2024-04-24 14:40:39 +08:00
ferranrecio 0e70a88d03 MDL-81575 core_courseformat: fix interactive section visibility badge 2024-04-24 12:37:32 +08:00
Jun Pataleta 49b666b670 Merge branch 'MDL-81567-404' of https://github.com/lucaboesch/moodle into MOODLE_404_STABLE 2024-04-24 12:21:59 +08:00
Mikel Martín 4c1beb921f MDL-81460 theme_boost: Fix loading spinner wobbles 2024-04-24 12:11:01 +08:00
Huong Nguyen dcb43cf3b0 Merge branch 'MOODLE_404_MDL-81613' of https://github.com/danielneis/moodle into MOODLE_404_STABLE 2024-04-24 09:59:59 +07:00
Huong Nguyen aa71fcfb7f Merge branch 'MDL-81564-404' of https://github.com/HuongNV13/moodle into MOODLE_404_STABLE 2024-04-24 08:58:03 +07:00
Laurent David 53557c3be1 MDL-81564 mod_data: Remove duplicate error messages
* When a field is missing the error is duplicated for all field
subsequently added to the database
2024-04-24 08:54:58 +07:00
Ilya Tregubov 16f7008c68 Merge branch 'MDL-81274-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-24 09:44:17 +08:00
Huong Nguyen 291a5449eb Merge branch 'MDL-80107-404' of https://github.com/andelacruz/moodle into MOODLE_404_STABLE 2024-04-24 08:35:50 +07:00
Angelia Dela Cruz 42d52002ee MDL-80107 gradingform: Behat test for defining marking guide 2024-04-24 09:03:58 +08:00
Tim Hunt c9b7b67fad MDL-81641 question: fix random question loader draft state tests 2024-04-23 18:25:24 +01:00
Daniel Neis Araujo 8a2929c1a9 MDL-81613 report_log: fix user fullname export for log report 2024-04-23 14:05:07 -03:00
Amaia Anabitarte 8f53f30e02 MDL-78433 course: Remove duplicated course search form 2024-04-23 16:23:13 +02:00
Sara Arjona 9ea7607613 Merge branch 'MDL-81209-main' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-04-23 15:36:42 +02:00
Sara Arjona 26a607e8a3 Merge branch 'MDL-81578-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-23 15:13:46 +02:00
Sara Arjona 4378d1dadc Merge branch 'MDL-81457-main' of https://github.com/andrewnicols/moodle into MOODLE_404_STABLE 2024-04-23 14:57:03 +02:00
Sara Arjona 582eb88404 MDL-81570 tiny_premium: Add missing lang string 2024-04-23 12:43:40 +02:00
Sara Arjona ec0e1d74a0 Merge branch 'MDL-81603-404' of https://github.com/paulholden/moodle into MOODLE_404_STABLE 2024-04-23 12:38:44 +02:00
Tim Hunt 82eacb2e48 MDL-81627 quiz restore: fix restore of grade item for each slot 2024-04-23 11:34:16 +01:00
Jun Pataleta 8b976e77ce MDL-81616 upgrade: add the 4.4.0 separation line to all upgrade scripts 2024-04-23 15:24:02 +10:00
Paul Holden cab8184fcb MDL-81274 mod_data: observe current approved value on record import. 2024-04-22 12:48:54 +01:00
Paul Holden 7b18faed92 MDL-78942 tool_mfa: replace deprecated coding standards annotation.
Replace with equivalent `phpcs` annotation as appropriate, same as
done previously in a5c91474ee (see that commit for further context).
2024-04-22 12:29:15 +01:00
Paul Holden 4adb2a7695 MDL-81578 user: disable form change checker for bulk user actions.
When bulk user actions are used from the "Browse users" report.
2024-04-22 12:22:57 +01:00
Paul Holden 410b333e47 MDL-81603 reportbuilder: don't rely on real entity in datasource test. 2024-04-22 11:24:10 +01:00
AMOS bot a8908c1a50 Automatically generated installer lang files 2024-04-22 00:10:33 +00:00
Luca Bösch b0fec7d82b MDL-81567 mod_quiz: Adopt edit section title pencil icons size. 2024-04-20 23:05:11 +02:00
Andrew Nicols dc0cf1f273 MDL-81209 core: Unit test should not care about plugin details 2024-04-08 20:54:48 +08:00
Andrew Nicols 5b9fdc0e9a MDL-81457 core: Do not mark tests as Incomplete when they are wrong
This check was marking a test as Incomplete if there was a bug in any
part of the test, rather than failing the test in such a way that the
test bug may be found.

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

https://docs.phpunit.de/en/9.6/incomplete-and-skipped-tests.html
2024-04-08 08:45:16 +08:00
3317 changed files with 43715 additions and 36495 deletions
+143
View File
@@ -0,0 +1,143 @@
name: One by One Testing
# Run all the individual unit tests one by one, with
# fully independent PHPUnit executions. Useful to
# detect issues with some tests that are using stuff
# that has been made available by others, but is not
# available when running individually.
#
# Note that we aren't using PHPUnit's own isolation
# here but completely separated runs, one for each
# test.
#
# The workflow will fail reporting all the tests
# that have failed (and will pass if no failure is
# detected, of course).
#
# It's only executed via workflow dispatch (automated
# or manual), not by push/tag. And acceptd configuration
# of phpunit, specially useful to run it with PHPUnit's
# own isolation or any other option.
on:
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
chunks: 7
jobs:
collect:
name: Collect individual unit tests
runs-on: ubuntu-latest
outputs:
matrix: ${{steps.individual-tests.outputs.matrix }}
steps:
- name: Checking out code
uses: actions/checkout@v4
- name: Looking for all individual tests
id: individual-tests
run: |
count=0 # Number of individual tests found.
while read -r testfile; do # For each test file.
while read -r testname; do # For each unit test in a file.
count=$((count + 1))
# Sent it to the correct chunk file.
chunk=$(((($count % $chunks)) + 1))
echo "$testname $testfile" >> ./chunk_$chunk.txt
done < <(grep "function test_" "${testfile}" | sed -r "s/^.*function (test_[a-zA-Z0-9_]+).*/\1/")
done < <(find . -name "*_test.php")
# Generate the matrix to run tests.
echo "matrix=$(ls -1 chunk_*.txt | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
echo "$count individual tests collected in $chunks files"
- name: Upload individual tests files
uses: actions/upload-artifact@v4
with:
name: individual_tests
path: chunk_*.txt
retention-days: 1
test:
name: Run tests
needs: collect
runs-on: ubuntu-latest
services:
exttests:
image: moodlehq/moodle-exttests
ports:
- 8080:80
redis:
image: redis
ports:
- 6379:6379
strategy:
fail-fast: false
matrix:
file: ${{ fromJson(needs.collect.outputs.matrix) }}
steps:
- name: Setting up DB pgsql
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 13
postgresql db: test
postgresql user: test
postgresql password: test
- name: Setting up PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
ini-values: max_input_vars=5000
coverage: none
- name: Checking out code
uses: actions/checkout@v4
- name: Download individual test files
uses: actions/download-artifact@v4
with:
name: individual_tests # Make all the chunk files available for the next steps.
- name: Setting up PHPUnit
env:
dbtype: pgsql
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
sudo locale-gen en_AU.UTF-8
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Run PHPUnit test (one by one)
env:
dbtype: pgsql
run: |
status=0
count=0
while read -r line; do # For each line in the chunk file
count=$((count + 1))
filter="${line% *}"
file="${line#* }"
# Run the individual unit test and report problems if needed to.
if ! php vendor/bin/phpunit \
--fail-on-empty-test-suite \
--fail-on-warning \
--fail-on-risky \
--filter "$filter" ${{ inputs.phpunit_extra_options }} \
"$file" >/dev/null 2>&1; then
if [ $status -eq 0 ]; then
echo "Problems found, list of PHPUnit commands failing:"
fi
echo "vendor/bin/phpunit --filter '${filter}' ${{ inputs.phpunit_extra_options }} $file"
status=$((status + 1))
fi
done < ${{ matrix.file }}
echo "Finished: $count individual tests executed, $status tests failed"
exit $status
-1
View File
@@ -4,7 +4,6 @@ on:
push:
branches-ignore:
- main
- master
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
+23
View File
@@ -0,0 +1,23 @@
name: Web Installer Testing
on:
workflow_dispatch:
jobs:
InstallationTest:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.1, 8.3]
steps:
- name: Construct repository URL
run: echo "REPOSITORY_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}" >> $GITHUB_ENV
shell: bash
- uses: moodlehq/moodle-webinstaller-test@main
with:
repository: ${{ env.REPOSITORY_URL }}
branch: ${{ github.ref_name }}
php: ${{ matrix.php }}
+3 -1
View File
@@ -26,7 +26,9 @@
/.patches/
/.idea/
.phpstorm.*
!.phpstorm.meta.php
!/.phpstorm.meta.php/
/.phpstorm.meta.php/*
!/.phpstorm.meta.php/di.php
/nbproject/
CVS
.DS_Store
+1 -1
View File
@@ -5,6 +5,6 @@ define("core_admin/bulk_user_actions",["exports","core_reportbuilder/local/selec
* @module core_admin/bulk_user_actions
* @copyright 2024 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,reportSelectors=_interopRequireWildcard(reportSelectors),tableEvents=_interopRequireWildcard(tableEvents),FormChangeChecker=_interopRequireWildcard(FormChangeChecker),CustomEvents=_interopRequireWildcard(CustomEvents),_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const Selectors_bulkActionsForm="form#user-bulk-action-form",Selectors_userReportWrapper='[data-region="report-user-list-wrapper"]',Selectors_checkbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="slave"]',Selectors_masterCheckbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="master"]',Selectors_checkedRows='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked';_exports.init=()=>{var _userBulkForm$closest;const userBulkForm=document.querySelector(Selectors_bulkActionsForm),userReport=null==userBulkForm||null===(_userBulkForm$closest=userBulkForm.closest(Selectors_userReportWrapper))||void 0===_userBulkForm$closest?void 0:_userBulkForm$closest.querySelector(reportSelectors.regions.report);if(!userBulkForm||!userReport)return;const actionSelect=userBulkForm.querySelector("select");CustomEvents.define(actionSelect,[CustomEvents.events.accessibleChange]),(0,_jquery.default)(actionSelect).on(CustomEvents.events.accessibleChange,(event=>{if(event.target.value&&"0"!=="".concat(event.target.value)){const e=new Event("submit",{cancelable:!0});userBulkForm.dispatchEvent(e),e.defaultPrevented||(FormChangeChecker.markFormSubmitted(userBulkForm),userBulkForm.submit())}}));const updateUserIds=()=>{const selectedUsers=[...userReport.querySelectorAll(Selectors_checkedRows)],selectedUserIds=selectedUsers.map((check=>parseInt(check.value)));userBulkForm.querySelector('[name="userids"]').value=selectedUserIds.join(","),actionSelect.disabled=0===selectedUsers.length;const selectedUsersNames=selectedUsers.map((check=>document.querySelector('label[for="'.concat(check.id,'"]')).textContent));userBulkForm.data={userids:selectedUserIds,usernames:selectedUsersNames}};updateUserIds(),document.addEventListener("change",(event=>{(event.target.matches(Selectors_checkbox)||event.target.matches(Selectors_masterCheckbox))&&userReport.contains(event.target)&&updateUserIds()})),document.addEventListener(tableEvents.tableContentRefreshed,(event=>{userReport.contains(event.target)&&updateUserIds()}))}}));
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,reportSelectors=_interopRequireWildcard(reportSelectors),tableEvents=_interopRequireWildcard(tableEvents),FormChangeChecker=_interopRequireWildcard(FormChangeChecker),CustomEvents=_interopRequireWildcard(CustomEvents),_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const Selectors_bulkActionsForm="form#user-bulk-action-form",Selectors_userReportWrapper='[data-region="report-user-list-wrapper"]',Selectors_checkbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="slave"]',Selectors_masterCheckbox='input[type="checkbox"][data-togglegroup="report-select-all"][data-toggle="master"]',Selectors_checkedRows='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked';_exports.init=()=>{var _userBulkForm$closest;const userBulkForm=document.querySelector(Selectors_bulkActionsForm),userReport=null==userBulkForm||null===(_userBulkForm$closest=userBulkForm.closest(Selectors_userReportWrapper))||void 0===_userBulkForm$closest?void 0:_userBulkForm$closest.querySelector(reportSelectors.regions.report);if(!userBulkForm||!userReport)return;const actionSelect=userBulkForm.querySelector("select");CustomEvents.define(actionSelect,[CustomEvents.events.accessibleChange]),(0,_jquery.default)(actionSelect).on(CustomEvents.events.accessibleChange,(event=>{if(event.target.value&&"0"!=="".concat(event.target.value)){const e=new Event("submit",{cancelable:!0});userBulkForm.dispatchEvent(e),e.defaultPrevented||(FormChangeChecker.markFormSubmitted(userBulkForm),userBulkForm.submit())}}));const updateUserIds=()=>{const selectedUsers=[...userReport.querySelectorAll(Selectors_checkedRows)],selectedUserIds=selectedUsers.map((check=>parseInt(check.value)));userBulkForm.querySelector('[name="userids"]').value=selectedUserIds.join(","),actionSelect.disabled=0===selectedUsers.length,actionSelect.disabled&&(actionSelect.value="0");const selectedUsersNames=selectedUsers.map((check=>document.querySelector('label[for="'.concat(check.id,'"]')).textContent));userBulkForm.data={userids:selectedUserIds,usernames:selectedUsersNames}};updateUserIds(),document.addEventListener("change",(event=>{(event.target.matches(Selectors_checkbox)||event.target.matches(Selectors_masterCheckbox))&&userReport.contains(event.target)&&updateUserIds()})),document.addEventListener(tableEvents.tableContentRefreshed,(event=>{userReport.contains(event.target)&&updateUserIds()}))}}));
//# sourceMappingURL=bulk_user_actions.min.js.map
File diff suppressed because one or more lines are too long
+6
View File
@@ -65,7 +65,13 @@ export const init = () => {
const selectedUsers = [...userReport.querySelectorAll(Selectors.checkedRows)];
const selectedUserIds = selectedUsers.map(check => parseInt(check.value));
userBulkForm.querySelector('[name="userids"]').value = selectedUserIds.join(',');
// Disable the action selector if nothing selected, and reset the current selection.
actionSelect.disabled = selectedUsers.length === 0;
if (actionSelect.disabled) {
actionSelect.value = "0";
}
const selectedUsersNames = selectedUsers.map(check => document.querySelector(`label[for="${check.id}"]`).textContent);
// Add the user ids and names to the form data attributes so they can be available from the
// other JS modules that listen to the form submit event.
@@ -184,6 +184,7 @@ class users extends system_report {
$entityuseralias = $entityuser->get_table_alias('user');
$filters = [
'user:fullname',
'user:firstname',
'user:lastname',
'user:username',
@@ -500,4 +500,15 @@ abstract class plugin_management_table extends flexible_table implements dynamic
protected function supports_ordering(): bool {
return $this->plugininfoclass::plugintype_supports_ordering();
}
/**
* Check if the user has the capability to access this table.
*
* Default implementation for plugin management tables is to require 'moodle/site:config' capability
*
* @return bool Return true if capability check passed.
*/
public function has_capability(): bool {
return has_capability('moodle/site:config', $this->get_context());
}
}
+3 -7
View File
@@ -177,6 +177,7 @@ $CFG->admin = array_pop($parts);
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
require_once($CFG->libdir.'/classes/component.php');
require_once($CFG->libdir.'/classes/text.php');
require_once($CFG->libdir.'/classes/string_manager.php');
require_once($CFG->libdir.'/classes/string_manager_install.php');
@@ -192,13 +193,8 @@ require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/componentlib.class.php');
require_once($CFG->dirroot.'/cache/lib.php');
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
// Required because the database checks below lead to session interaction which is going to lead us to requiring autoloaded classes.
if (defined('COMPONENT_CLASSLOADER')) {
spl_autoload_register(COMPONENT_CLASSLOADER);
} else {
spl_autoload_register('core_component::classloader');
}
// Register our classloader.
\core_component::register_autoloader();
require($CFG->dirroot.'/version.php');
$CFG->target_release = $release;
+390
View File
@@ -4508,4 +4508,394 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.5" requires="4.1.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.6.7" />
<VENDOR name="mysql" version="8.0" />
<VENDOR name="postgres" version="13" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.1.0" level="required">
</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_oracle_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.0" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="oracle" version="19" />
</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_oracle_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+1 -1
View File
@@ -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' => [
],
+6 -6
View File
@@ -84,7 +84,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
@@ -177,7 +177,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_item_provider(): array {
public static function add_item_provider(): array {
return [
'Setting without plugin' => [
'name' => 'settingname',
@@ -239,7 +239,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_plugin_provider(): array {
public static function add_plugin_provider(): array {
return [
'Plugin: enabled (using int)' => [
'type' => 'plugintype',
@@ -321,7 +321,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function change_default_preset_provider(): array {
public static function change_default_preset_provider(): array {
return [
'Starter preset' => [
'preset' => 'starter',
@@ -364,7 +364,7 @@ class helper_test extends \advanced_testcase {
'preset' => 'unexisting',
],
'Valid XML file' => [
'preset' => __DIR__ . '/fixtures/import_settings_plugins.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml'),
'settings' => [
'allowemojipicker' => 1,
'enableportfolios' => 1,
@@ -377,7 +377,7 @@ class helper_test extends \advanced_testcase {
],
],
'Invalid XML file' => [
'preset' => __DIR__ . '/fixtures/invalid_xml_file.xml',
'preset' => self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml'),
],
'Unexisting XML file' => [
'preset' => __DIR__ . '/fixtures/unexisting.xml',
@@ -72,7 +72,7 @@ class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Save the bloglevel and set blog_menu block visibility to true' => [
'setttingvalue' => BLOG_USER_LEVEL,
@@ -66,7 +66,7 @@ class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Fullname: different value' => [
'settingname' => 'fullname',
@@ -77,7 +77,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Core setting with the same value is not saved' => [
'category' => 'optionalsubsystems',
@@ -167,7 +167,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_attributes_values_provider(): array {
public static function save_attributes_values_provider(): array {
return [
'Plugin setting with the same value is not saved' => [
'category' => 'modsettinglesson',
+31 -9
View File
@@ -29,6 +29,14 @@ use stdClass;
* @coversDefaultClass \core_adminpresets\manager
*/
class manager_test extends \advanced_testcase {
/**
* Include required libraries.
*/
public static function setUpBeforeClass(): void {
global $CFG;
require_once($CFG->libdir.'/adminlib.php');
}
/**
* Test the behaviour of protected get_site_settings method.
*
@@ -359,7 +367,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,
@@ -522,26 +530,32 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function import_preset_provider(): array {
public static function import_preset_provider(): array {
return [
'Import settings from an empty file' => [
'filecontents' => '',
'expectedpreset' => false,
],
'Import settings and plugins from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings_plugins.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings_plugins.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
],
'Import only settings from a valid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_settings.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_settings.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => false,
],
'Import settings and plugins from a valid XML file with Starter name, which will be marked as non-core' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/import_starter_name.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'import_starter_name.xml')
),
'expectedpreset' => true,
'expectedsettings' => true,
'expectedplugins' => true,
@@ -550,7 +564,9 @@ class manager_test extends \advanced_testcase {
'expectedpresetname' => 'Starter',
],
'Import settings from an invalid XML file' => [
'filecontents' => file_get_contents(__DIR__ . '/fixtures/invalid_xml_file.xml'),
'filecontents' => file_get_contents(
filename: self::get_fixture_path(__NAMESPACE__, 'invalid_xml_file.xml')
),
'expectedpreset' => false,
'expectedsettings' => false,
'expectedplugins' => false,
@@ -558,20 +574,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,
@@ -36,7 +36,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::get_metadata().
* @covers ::get_metadata
*/
public function test_get_metadata() {
public function test_get_metadata(): void {
$collection = new collection('core_adminpresets');
$newcollection = provider::get_metadata($collection);
$itemcollection = $newcollection->get_collection();
@@ -49,7 +49,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::get_contexts_for_userid() doesn't return any context.
* @covers ::get_contexts_for_userid
*/
public function test_get_contexts_for_userid() {
public function test_get_contexts_for_userid(): void {
global $USER;
$this->resetAfterTest();
@@ -67,7 +67,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::get_users_in_context() doesn't return any user.
* @covers ::get_users_in_context
*/
public function test_get_users_in_context() {
public function test_get_users_in_context(): void {
global $USER;
$this->resetAfterTest();
@@ -88,7 +88,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::export_user_data().
* @covers ::export_user_data
*/
public function test_export_user_data() {
public function test_export_user_data(): void {
global $USER;
$this->resetAfterTest();
@@ -121,7 +121,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::delete_data_for_all_users_in_context().
* @covers ::delete_data_for_all_users_in_context
*/
public function test_delete_data_for_all_users_in_context() {
public function test_delete_data_for_all_users_in_context(): void {
global $DB, $USER;
$this->resetAfterTest();
@@ -146,7 +146,7 @@ class privacy_provider_test extends provider_testcase {
* Test for provider::delete_data_for_user().
* @covers ::delete_data_for_user
*/
public function test_delete_data_for_user() {
public function test_delete_data_for_user(): void {
global $DB, $USER;
$this->resetAfterTest();
+2 -2
View File
@@ -874,8 +874,8 @@ class core_admin_renderer extends plugin_renderer_base {
protected function mobile_configuration_warning($mobileconfigured) {
$output = '';
if (!$mobileconfigured) {
$settingslink = new moodle_url('/admin/settings.php', ['section' => 'mobilesettings']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'));
$settingslink = new moodle_url('/admin/search.php', ['query' => 'enablemobilewebservice']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'), 'get');
$output .= $this->warning(get_string('mobilenotconfiguredwarning', 'admin') . '&nbsp;' . $configurebutton);
}
+3 -3
View File
@@ -27,7 +27,7 @@ use core_role_preset;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class preset_test extends \advanced_testcase {
public function test_xml() {
public function test_xml(): void {
global $DB;
$roles = $DB->get_records('role');
@@ -81,10 +81,10 @@ class preset_test extends \advanced_testcase {
* Tests covered method.
* @covers \core_role_preset::parse_preset
*/
public function test_mixed_levels() {
public function test_mixed_levels(): void {
// The problem here is that we cannot guarantee plugin contexts
// have unique short names, so we have to also support level numbers.
$xml = file_get_contents(__DIR__ . '/fixtures/mixed_levels.xml');
$xml = file_get_contents(self::get_fixture_path(__NAMESPACE__, 'mixed_levels.xml'));
$this->assertTrue(\core_role_preset::is_valid_preset($xml));
$preset = \core_role_preset::parse_preset($xml);
+9 -9
View File
@@ -45,7 +45,7 @@ class provider_test extends provider_testcase {
* Test to check export_user_preferences.
* returns user preferences data.
*/
public function test_export_user_preferences() {
public function test_export_user_preferences(): void {
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
@@ -64,7 +64,7 @@ class provider_test extends provider_testcase {
/**
* Check all contexts are returned if there is any user data for this user.
*/
public function test_get_contexts_for_userid() {
public function test_get_contexts_for_userid(): void {
global $DB;
$this->resetAfterTest();
@@ -114,7 +114,7 @@ class provider_test extends provider_testcase {
/**
* Test that user data is exported correctly.
*/
public function test_export_user_data() {
public function test_export_user_data(): void {
global $DB;
$this->resetAfterTest();
@@ -243,7 +243,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_data_for_all_users_in_context().
*/
public function test_delete_data_for_all_users_in_context() {
public function test_delete_data_for_all_users_in_context(): void {
global $DB;
$this->resetAfterTest();
@@ -329,7 +329,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_data_for_user().
*/
public function test_delete_data_for_user() {
public function test_delete_data_for_user(): void {
global $DB;
$this->resetAfterTest();
@@ -387,7 +387,7 @@ class provider_test extends provider_testcase {
/**
* Export for a user with a key against a script where no instance is specified.
*/
public function test_export_user_role_to_cohort() {
public function test_export_user_role_to_cohort(): void {
global $DB;
$this->resetAfterTest();
@@ -443,7 +443,7 @@ class provider_test extends provider_testcase {
/**
* Test for provider::delete_user_role_to_cohort().
*/
public function test_delete_user_role_to_cohort() {
public function test_delete_user_role_to_cohort(): void {
global $DB;
$this->resetAfterTest();
@@ -478,7 +478,7 @@ class provider_test extends provider_testcase {
/**
* Test that only users within a course context are fetched.
*/
public function test_get_users_in_context() {
public function test_get_users_in_context(): void {
global $DB;
$this->resetAfterTest();
@@ -599,7 +599,7 @@ class provider_test extends provider_testcase {
/**
* Test that data for users in approved userlist is deleted.
*/
public function test_delete_data_for_users() {
public function test_delete_data_for_users(): void {
global $DB;
$this->resetAfterTest();
+24 -1
View File
@@ -420,6 +420,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_general_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
new lang_string('configgeneralcontentbankcontent', 'backup'),
@@ -431,7 +437,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
['value' => 1, 'locked' => 0])
);
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_legacyfiles',
new lang_string('generallegacyfiles', 'backup'),
new lang_string('configlegacyfiles', 'backup'), array('value' => 1, 'locked' => 0)));
@@ -460,6 +465,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
new lang_string('generalgroups', 'backup'), new lang_string('configgeneralgroups', 'backup'),
array('value' => 1, 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_import_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
['value' => 1, 'locked' => 0],
));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_import_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -589,6 +600,12 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_groups', new lang_string('generalgroups', 'backup'),
new lang_string('configgeneralgroups', 'backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_competencies', new lang_string('generalcompetencies','backup'), new lang_string('configgeneralcompetencies','backup'), 1));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_customfield',
new lang_string('generalcustomfield', 'backup'),
new lang_string('configgeneralcustomfield', 'backup'),
1,
));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_contentbankcontent',
new lang_string('generalcontentbankcontent', 'backup'),
@@ -668,6 +685,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 -1
View File
@@ -152,7 +152,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$sensiblesettingsdefault .= 'server_password@@search_solr, ssl_keypassword@@search_solr, ';
$sensiblesettingsdefault .= 'alternateserver_password@@search_solr, alternatessl_keypassword@@search_solr, ';
$sensiblesettingsdefault .= 'test_password@@cachestore_redis, password@@mlbackend_python, ';
$sensiblesettingsdefault .= 'badges_badgesalt@@none, calendar_exportsalt@@none';
$sensiblesettingsdefault .= 'badges_badgesalt@@none, calendar_exportsalt@@none, ';
$sensiblesettingsdefault .= 'bigbluebuttonbn_shared_secret@@none, apikey@@tiny_premium, ';
$sensiblesettingsdefault .= 'matrixaccesstoken@@communication_matrix, api_secret@@factor_sms';
$temp->add(new admin_setting_configtextarea('adminpresets/sensiblesettings',
get_string('sensiblesettings', 'core_adminpresets'),
get_string('sensiblesettingstext', 'core_adminpresets'),
@@ -38,6 +38,6 @@
}
}}
<div class="form-checkbox defaultsnext">
<input type="hidden" name="{{name}}" value="{{no}}">
{{^readonly}}<input type="hidden" name="{{name}}" value="{{no}}">{{/readonly}}
<input {{#readonly}}disabled{{/readonly}} type="checkbox" name="{{name}}" value="{{value}}" id="{{id}}" {{#checked}}checked{{/checked}}>
</div>
@@ -35,7 +35,7 @@
}
}}
<div class="form-multicheckbox">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
{{#hasoptions}}
<ul>
{{#options}}
@@ -40,7 +40,7 @@
Setting configmultiselect.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
@@ -59,7 +59,7 @@
Setting configmultiselect with optgroup support.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
+6 -6
View File
@@ -18,7 +18,7 @@ Feature: An administrator can browse user accounts
When I navigate to "Users > Accounts > Browse list of users" in site administration
# Name field always present, email field is default for showidentity.
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
# Should not see other identity fields or non-default name fields.
@@ -34,7 +34,7 @@ Feature: An administrator can browse user accounts
| alternativefullnameformat | firstnamephonetic lastname |
When I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name - phonetic / Last name | Email address |
| First name - phonetic | Email address |
| Yewzer One | one@example.com |
| Yoozare Two | two@example.com |
@@ -43,7 +43,7 @@ Feature: An administrator can browse user accounts
| showuseridentity | department,profile_field_frog |
When I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Favourite frog | Department |
| First name | Favourite frog | Department |
| User One | Kermit | Attack |
| User Two | Tree | Defence |
And I should not see "Email address" in the "table" "css_element"
@@ -103,7 +103,7 @@ Feature: An administrator can browse user accounts
| user3 | User | Three | three@example.com | Glass |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
| User Three | three@example.com |
@@ -137,7 +137,7 @@ Feature: An administrator can browse user accounts
| user2 | C1 | student |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
And I click on "Filters" "button"
@@ -166,7 +166,7 @@ Feature: An administrator can browse user accounts
| user1 | coursecreator | system | |
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then the following should exist in the "reportbuilder-table" table:
| First name / Last name | Email address |
| First name | Email address |
| User One | one@example.com |
| User Two | two@example.com |
| User Three | three@example.com |
+21
View File
@@ -159,3 +159,24 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
And I should not see "User One" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
@javascript
Scenario: Filter users by full name
When I click on "Filters" "button"
And I set the following fields in the "Full name" "core_reportbuilder > Filter" to these values:
| Full name operator | Is equal to |
| Full name value | User One |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
Then I should see "User One" in the "reportbuilder-table" "table"
And I should not see "User Two" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
And I click on "Reset all" "button" in the "[data-region='report-filters']" "css_element"
And I set the following fields in the "Full name" "core_reportbuilder > Filter" to these values:
| Full name operator | Is equal to |
| Full name value | User Two |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
And I should see "User Two" in the "reportbuilder-table" "table"
And I should not see "User One" in the "reportbuilder-table" "table"
And I should not see "User Three" in the "reportbuilder-table" "table"
And I should not see "User Four" in the "reportbuilder-table" "table"
-22
View File
@@ -48,25 +48,3 @@ Feature: View task logs report and use its filters
| operator | shouldornotsee |
| Less than | should not see |
| Greater than | should see |
@javascript
Scenario: Reset task log filters
Given I log in as "admin"
And I change window size to "large"
And I navigate to "Server > Tasks > Task logs" in site administration
When I click on "Filters" "button"
And I set the following fields in the "Result" "core_reportbuilder > Filter" to these values:
| Result operator | Is equal to |
| Result value | Fail |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
Then I should see "Filters applied"
And I should see "Filters (1)" in the "#dropdownFiltersButton" "css_element"
And I should see "Nothing to display"
And I click on "Reset all" "button" in the "[data-region='report-filters']" "css_element"
And I should see "Filters reset"
And I should not see "Filters (1)" in the "#dropdownFiltersButton" "css_element"
And I should see "Filters" in the "#dropdownFiltersButton" "css_element"
And "[data-region='report-filters']" "css_element" should be visible
And the following fields in the "Result" "core_reportbuilder > Filter" match these values:
| Result operator | Is any value |
And I should not see "Nothing to display"
+1 -1
View File
@@ -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',
+2 -2
View File
@@ -72,7 +72,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_editor_provider(): array {
public static function execute_editor_provider(): array {
$pluginmanager = \core_plugin_manager::instance();
$allplugins = array_keys($pluginmanager->get_plugins_of_type('editor'));
@@ -142,7 +142,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
$this->assertIsArray(set_plugin_order::execute($plugin, 1));
}
public function execute_non_orderable_provider(): array {
public static function execute_non_orderable_provider(): array {
return [
// Activities do not support ordering.
['mod_assign'],
+1 -1
View File
@@ -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 [
[
@@ -110,7 +110,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],
@@ -5,16 +5,18 @@ Feature: I can download a preset
| name |
| Custom preset |
@javascript
Scenario: Custom preset settings can be downloaded
Given I log in as "admin"
And I navigate to "Site admin presets" in site administration
When I open the action menu in "Custom preset" "table_row"
Then following "Download" "link" in the "Custom preset" "table_row" should download between "0" and "5000" bytes
Then following "Download" in the "Custom preset" "table_row" should download a file that:
| Has mimetype | text/xml |
| Contains text in xml element | Custom preset |
@javascript
Scenario: Core preset settings can be downloaded
Given I log in as "admin"
And I navigate to "Site admin presets" in site administration
When I open the action menu in "Starter" "table_row"
Then following "Download" "link" in the "Starter" "table_row" should download between "0" and "5000" bytes
Then following "Download" in the "Starter" "table_row" should download a file that:
| Has mimetype | text/xml |
| Contains text in xml element | Starter |
@@ -30,7 +30,7 @@ class preset_deleted_test extends \advanced_testcase {
/**
* Test preset_deleted event.
*/
public function test_preset_deleted_event() {
public function test_preset_deleted_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_downloaded_test extends \advanced_testcase {
/**
* Test preset_downloaded event.
*/
public function test_preset_downloaded_event() {
public function test_preset_downloaded_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_exported_test extends \advanced_testcase {
/**
* Test preset_exported event.
*/
public function test_preset_exported_event() {
public function test_preset_exported_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_imported_test extends \advanced_testcase {
/**
* Test preset_imported event.
*/
public function test_preset_imported_event() {
public function test_preset_imported_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_loaded_test extends \advanced_testcase {
/**
* Test preset_loaded event.
*/
public function test_preset_loaded_event() {
public function test_preset_loaded_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_previewed_test extends \advanced_testcase {
/**
* Test preset_previewed event.
*/
public function test_preset_previewed_event() {
public function test_preset_previewed_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class preset_reverted_test extends \advanced_testcase {
/**
* Test preset_reverted event.
*/
public function test_preset_reverted_event() {
public function test_preset_reverted_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -30,7 +30,7 @@ class presets_listed_test extends \advanced_testcase {
/**
* Test presets_listed event.
*/
public function test_presets_listed_event() {
public function test_presets_listed_event(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -70,7 +70,7 @@ class base_test extends \advanced_testcase {
*
* @return array
*/
public function log_provider(): array {
public static function log_provider(): array {
return [
// Action = base.
'action=base and mode = show' => [
@@ -156,7 +156,7 @@ class export_test extends \advanced_testcase {
*
* @return array
*/
public function export_execute_provider(): array {
public static function export_execute_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -190,7 +190,7 @@ class import_test extends \advanced_testcase {
*
* @return array
*/
public function import_execute_provider(): array {
public static function import_execute_provider(): array {
$fixturesfolder = __DIR__ . '/../../../../../presets/tests/fixtures/';
return [
+2 -2
View File
@@ -50,7 +50,7 @@ class external_test extends externallib_advanced_testcase {
/**
* test_potential_contexts description
*/
public function test_potential_contexts() {
public function test_potential_contexts(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -71,7 +71,7 @@ class external_test extends externallib_advanced_testcase {
/**
* test_potential_contexts description
*/
public function test_potential_contexts_no_manager() {
public function test_potential_contexts_no_manager(): void {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
@@ -0,0 +1,61 @@
@tool @tool_behat
Feature: Frozen clock in Behat
In order to write tests that depend on the current system time
As a test writer
I need to set the time using a Behat step
Background:
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "activities" exist:
| activity | course | name | idnumber | externalurl |
| url | C1 | Fixture | url1 | #wwwroot#/admin/tool/behat/tests/fixtures/core/showtime.php |
| forum | C1 | TestForum | forum1 | |
Scenario: Time has been frozen
# Set up 2 forum discussions at different times. This tests the clock in the Behat CLI process.
Given the time is frozen at "2024-03-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
And the time is frozen at "2024-08-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject2 | Message2 |
When I am on the "TestForum" "forum activity" page logged in as admin
Then I should see "1 Mar 2024" in the "Subject1" "table_row"
And I should see "1 Aug 2024" in the "Subject2" "table_row"
# Also view time on the fixture page. This tests the clock for Behat web server requests.
And I am on the "Fixture" "url activity" page
And I should see "Behat time is not the same as real time"
# This Unix time corresponds to 12:34:56 in Perth time zone.
And I should see "Unix time 1722486896"
And I should see "Date-time 2024-08-01 12:34:56"
# This scenario is second, to verify that the clock automatically goes back to normal after test.
Scenario: Time is normal
Given the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
When I am on the "TestForum" "forum activity" page logged in as admin
# The time should be the real current time, not the frozen time.
Then I should see "## today ##%d %b %Y##" in the "Subject1" "table_row"
And I am on the "Fixture" "url activity" page
And I should see "Behat time is the same as real time"
Scenario: Time is frozen and then unfrozen
Given the time is frozen at "2024-03-01 12:34:56"
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject1 | Message1 |
And the time is no longer frozen
And the following "mod_forum > discussions" exist:
| user | forum | name | message |
| admin | forum1 | Subject2 | Message2 |
When I am on the "TestForum" "forum activity" page logged in as admin
Then I should see "1 Mar 2024" in the "Subject1" "table_row"
# The time should be the real current time, not the frozen time for this entry.
And I should see "## today ##%d %b %Y##" in the "Subject2" "table_row"
And I am on the "Fixture" "url activity" page
And I should see "Behat time is the same as real time"
+1 -1
View File
@@ -25,7 +25,7 @@ Feature: Confirm that we can open multiple browser tabs
And I open a tab named "CourseViewer4" on the "My courses" page
# Switch between all the tabs and confirm their different contents.
Then I should see "You're not enrolled in any course"
Then I should see "You're not enrolled in any courses."
And I switch to "CourseViewer2" tab
And "Course 3" "heading" should exist
And I switch to "CourseViewer1" tab
@@ -53,7 +53,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @return array of value and expectation pairs to be tested.
*/
public function provider_test_set_get_value() {
public static function provider_test_set_get_value(): array {
return [
'null' => [null, null],
'int' => [3, 3],
@@ -68,9 +68,9 @@ class behat_form_text_test extends \basic_testcase {
*
* @param mixed $value value to be set.
* @param mixed $expectation value to be checked.
* @dataProvider provider_test_set_get_value()
* @dataProvider provider_test_set_get_value
*/
public function test_set_get_value($value, $expectation) {
public function test_set_get_value($value, $expectation): void {
$session = $this->createMock(Session::class);
$node = $this->createMock(NodeElement::class);
$node->method('getValue')->willReturn($value);
@@ -85,7 +85,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @return array of decsep, value, match and result pairs to be tested.
*/
public function provider_test_matches() {
public static function provider_test_matches(): array {
return [
'lazy true' => ['.', 'hello', 'hello', true],
'lazy false' => ['.', 'hello', 'bye', false],
@@ -113,9 +113,9 @@ class behat_form_text_test extends \basic_testcase {
* @param mixed $value value to be set.
* @param mixed $match value to be matched.
* @param bool $result expected return status of the function.
* @dataProvider provider_test_matches()
* @dataProvider provider_test_matches
*/
public function test_matches($decsep, $value, $match, $result) {
public function test_matches($decsep, $value, $match, $result): void {
global $CFG;
// Switch of string manager to avoid having to (slow) customise the lang file.
+52
View File
@@ -0,0 +1,52 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Fixture to show the current server time using \core\clock.
*
* @package tool_behat
* @copyright 2024 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// phpcs:disable moodle.Files.RequireLogin.Missing
require(__DIR__ . '/../../../../../../config.php');
defined('BEHAT_SITE_RUNNING') || die('Behat fixture');
$PAGE->set_context(\context_system::instance());
$PAGE->set_url(new \moodle_url('/admin/tool/behat/tests/fixtures/core/showtime.php'));
echo $OUTPUT->header();
$clock = \core\di::get(\core\clock::class);
$dt = $clock->now();
$realbefore = time();
$time = $clock->time();
$realafter = time();
echo html_writer::div('Unix time ' . $time);
echo html_writer::div('Date-time ' . $dt->format('Y-m-d H:i:s'));
echo html_writer::div('TZ ' . $dt->getTimezone()->getName());
if ($time >= $realbefore && $time <= $realafter) {
echo html_writer::div('Behat time is the same as real time');
} else {
echo html_writer::div('Behat time is not the same as real time');
}
echo $OUTPUT->footer();
+10 -6
View File
@@ -25,6 +25,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_behat;
use behat_config_util;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -39,7 +43,7 @@ require_once($CFG->libdir . '/behat/classes/behat_config_manager.php');
* @copyright 2016 Rajesh Taneja
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_behat_manager_util_testcase extends advanced_testcase {
class manager_util_test extends \advanced_testcase {
/** @var array Fixtures features which are available. */
private $featurepaths = array(
@@ -103,11 +107,11 @@ class tool_behat_manager_util_testcase extends advanced_testcase {
*/
private function get_behat_config_util($behatconfigutil, $notheme = false) {
// Create a map of arguments to return values.
$map = array(
array('withfeatures', __DIR__.'/fixtures/theme/withfeatures'),
array('nofeatures', __DIR__.'/fixtures/theme/nofeatures'),
array('defaulttheme', __DIR__.'/fixtures/theme/defaulttheme'),
);
$map = [
['withfeatures', self::get_fixture_path(__NAMESPACE__, 'theme/withfeatures')],
['nofeatures', self::get_fixture_path(__NAMESPACE__, 'theme/nofeatures')],
['defaulttheme', self::get_fixture_path(__NAMESPACE__, 'theme/defaulttheme')],
];
// List of themes is const for test.
if ($notheme) {
$themelist = array('defaulttheme');
@@ -245,7 +245,6 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
return $luminosity;
}
/**
* Returns the decimal equivalents for a HEX color. Returns null if it cannot be determined.
* @param string $color The hex color value
@@ -268,13 +267,21 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
*/
public function convert_color(string $color): string {
$color = trim($color);
if (strpos($color, ' ') !== false) {
$colors = explode(' ', $color);
foreach ($colors as $backgroundpart) {
if (substr(trim($backgroundpart), 0, 1) == '#' ||
in_array(trim($backgroundpart), array_keys($this->colornames)) ||
strtolower(substr(trim($backgroundpart), 0, 3)) == 'rgb') {
$color = $backgroundpart;
// Search for color in rgb format first, as this can potentially contain a space.
if (strpos($color, 'rgb') !== false) {
$colors = explode('rgb', $color, 2); // Getting 2 only in array.
// Getting end point of rgb value, i.e. the end bracket.
$endpos = strpos($colors[1], ')');
$color = 'rgb' . substr($colors[1], 0, ($endpos + 1)); // Recompiling rgb value.
} else {
// Splitting multi-value css background value.
if (strpos($color, ' ') !== false) {
$colors = explode(' ', $color);
foreach ($colors as $backgroundpart) {
if (substr(trim($backgroundpart), 0, 1) == '#' ||
in_array(trim($backgroundpart), array_keys($this->colornames))) {
$color = $backgroundpart;
}
}
}
}
@@ -296,9 +303,20 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
}
// RGB values.
if (strtolower(substr($color, 0, 3)) == 'rgb') {
$colors = explode(',', trim(str_replace('rgb(', '', $color), '()'));
if (count($colors) != 3) {
return false;
if (strpos($color, 'rgba') !== false) {
$tmpbg = $this->get_rgb($this->defaultbackground);
$colors = explode(',', trim(str_replace('rgba(', '', $color), '()'));
if (count($colors) != 4) {
return false;
}
$colors[0] = round(((1 - $colors[3]) * $tmpbg['r']) + ($colors[3] * $colors[0]));
$colors[1] = round((1 - $colors[3]) * $tmpbg['g']) + ($colors[3] * $colors[1]);
$colors[2] = round((1 - $colors[3]) * $tmpbg['b']) + ($colors[3] * $colors[2]);
} else {
$colors = explode(',', trim(str_replace('rgb(', '', $color), '()'));
if (count($colors) != 3) {
return false;
}
}
$r = intval($colors[0]);
$g = intval($colors[1]);
@@ -392,13 +410,13 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
$pos3 = stripos($fontsize, 'px');
if ($pos1 !== false) {
$rem = substr($fontsize, 0, -3);
$newfontsize = $newfontsize * $rem;
$newfontsize = is_numeric($rem) ? $newfontsize * $rem : $newfontsize;
} else if ($pos2 !== false) {
$em = substr($fontsize, 0, -2);
$newfontsize = $newfontsize * $em;
$newfontsize = is_numeric($em) ? $newfontsize * $em : $newfontsize;
} else if ($pos3 !== false) {
$px = substr($fontsize, 0, -2);
$newfontsize = 0.75 * $px;
$newfontsize = is_numeric($px) ? 0.75 * $px : $newfontsize;
} else if (in_array($fontsize, array_keys($this->fontsizenames))) {
$newfontsize = $this->fontsizenames[$fontsize];
} else {
@@ -62,9 +62,18 @@ class css_text_has_contrast extends brickfield_accessibility_color_test {
foreach ($entries as $element) {
$style = $this->css->get_style($element);
if (isset($style['background-color']) || isset($style['color'])) {
if (isset($style['background-color']) || isset($style['color']) || isset($style['background'])) {
if (!isset($style['background-color'])) {
$style['background-color'] = $this->defaultbackground;
if (isset($style['background'])) {
// Parsing background-color from CSS background shortcut string.
$style['background-color'] = '#' . $this->convert_color($style['background']);
// If value is empty after hash, then use defaultbackground.
if ($style['background-color'] == '#') {
$style['background-color'] = $this->defaultbackground;
}
} else {
$style['background-color'] = $this->defaultbackground;
}
}
if (!isset($style['color'])) {
@@ -82,11 +91,7 @@ class css_text_has_contrast extends brickfield_accessibility_color_test {
$style['color'] = '#' . $this->convert_color($style['color']);
$style['background-color'] = '#' . $this->convert_color($background);
if (substr($background, 0, 3) == "rgb") {
$background = '#' . $this->convert_color($background);
}
$luminosity = $this->get_luminosity($style['color'], $background);
$luminosity = $this->get_luminosity($style['color'], $style['background-color']);
$fontsize = 0;
$bold = false;
$italic = false;
@@ -16,7 +16,7 @@
namespace tool_brickfield\local\htmlchecker\common\checks;
use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_tag_test;
use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_test;
/**
* Brickfield accessibility HTML checker library.
@@ -28,11 +28,25 @@ use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_tag_test;
* @copyright 2020 onward: Brickfield Education Labs, www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class i_is_not_used extends brickfield_accessibility_tag_test {
class i_is_not_used extends brickfield_accessibility_test {
/** @var int The default severity code for this test. */
public $defaultseverity = \tool_brickfield\local\htmlchecker\brickfield_accessibility::BA_TEST_SEVERE;
/** @var string The tag this test will fire on. */
public $tag = 'i';
/**
* Check for any i elements and flag them as errors
* while allowing font awesome icons to be used.
*/
public function check(): void {
foreach ($this->get_all_elements('i') as $element) {
// Ensure this is not a font awesome icon with aria-hidden.
if (str_contains($element->getAttribute('class'), 'fa-') && $element->getAttribute('aria-hidden') === 'true') {
continue;
}
$this->add_report($element);
}
}
}
@@ -46,7 +46,7 @@ class table_data_should_have_th extends brickfield_accessibility_table_test {
foreach ($tr->childNodes as $th) {
if ($this->property_is_equal($th, 'tagName', 'th')) {
break 3;
} else {
} else if ($th->nodeName != '#text') {
$this->add_report($table);
break 3;
}
@@ -57,7 +57,7 @@ class table_data_should_have_th extends brickfield_accessibility_table_test {
foreach ($child->childNodes as $th) {
if ($this->property_is_equal($th, 'tagName', 'th')) {
break 2;
} else {
} else if ($th->nodeName != '#text') {
$this->add_report($table);
break 2;
}
@@ -35,7 +35,7 @@ class accessibility_test extends \advanced_testcase {
* @throws \dml_exception
* @throws \moodle_exception
*/
public function test_get_title() {
public function test_get_title(): void {
$this->resetAfterTest();
$object = new accessibility();
$filter = new filter();
@@ -57,7 +57,7 @@ class accessibility_test extends \advanced_testcase {
*
* @throws \dml_exception
*/
public function test_check_ids() {
public function test_check_ids(): void {
$this->resetAfterTest();
$object = new accessibility();
@@ -74,7 +74,7 @@ class accessibility_test extends \advanced_testcase {
*
* @throws \dml_exception
*/
public function test_get_translations() {
public function test_get_translations(): void {
$this->resetAfterTest();
$object = new accessibility();
@@ -90,7 +90,7 @@ class accessibility_test extends \advanced_testcase {
*
* @throws \dml_exception
*/
public function test_get_category_courseids() {
public function test_get_category_courseids(): void {
$this->resetAfterTest();
$object = new accessibility();
$category = $this->getDataGenerator()->create_category();
+4 -4
View File
@@ -32,7 +32,7 @@ class area_test extends area_test_base {
/**
* Test for the area assign intro
*/
public function test_assign() {
public function test_assign(): void {
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
$assign1 = $this->getDataGenerator()->create_module('assign', array(
@@ -87,7 +87,7 @@ class area_test extends area_test_base {
/**
* Test for the area questiontext
*/
public function test_questiontext() {
public function test_questiontext(): void {
$this->resetAfterTest();
/** @var \core_question_generator $generator */
$generator = $this->getDataGenerator()->get_plugin_generator('core_question');
@@ -147,7 +147,7 @@ class area_test extends area_test_base {
/**
* test for the area questionanswers
*/
public function test_questionanswers() {
public function test_questionanswers(): void {
global $DB;
$this->resetAfterTest();
@@ -191,7 +191,7 @@ class area_test extends area_test_base {
/**
* Test for the areas choice intro and choice options
*/
public function test_choice() {
public function test_choice(): void {
global $DB;
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
+6 -6
View File
@@ -27,7 +27,7 @@ use tool_brickfield\local\tool\filter;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filters_test extends \advanced_testcase {
public function test_constructor() {
public function test_constructor(): void {
$this->resetAfterTest();
// Variables.
@@ -56,7 +56,7 @@ class filters_test extends \advanced_testcase {
$this->assertEquals($object->url, $url);
}
public function test_get_course_sql() {
public function test_get_course_sql(): void {
$this->resetAfterTest();
$object = new filter();
@@ -73,7 +73,7 @@ class filters_test extends \advanced_testcase {
}
public function test_validate_filters() {
public function test_validate_filters(): void {
$this->resetAfterTest();
// Variables.
$courseid = 0;
@@ -102,7 +102,7 @@ class filters_test extends \advanced_testcase {
$this->assertFalse($output);
}
public function test_has_course_filters() {
public function test_has_course_filters(): void {
$this->resetAfterTest();
$object = new filter();
@@ -114,7 +114,7 @@ class filters_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_has_capability_in_context() {
public function test_has_capability_in_context(): void {
global $DB;
$this->resetAfterTest();
@@ -151,7 +151,7 @@ class filters_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_get_errormessage() {
public function test_get_errormessage(): void {
$this->resetAfterTest();
// Variables.
$courseid = 0;
@@ -36,7 +36,7 @@ class questionanswers_test extends \advanced_testcase {
/**
* Test find course areas.
*/
public function test_find_course_areas() {
public function test_find_course_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -122,7 +122,7 @@ class questionanswers_test extends \advanced_testcase {
/**
* Test find relevant areas.
*/
public function test_find_relevant_areas() {
public function test_find_relevant_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -153,7 +153,7 @@ class questionanswers_test extends \advanced_testcase {
/**
* Test find system areas.
*/
public function test_find_system_areas() {
public function test_find_system_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -42,7 +42,7 @@ class questiontext_test extends area_test_base {
/**
* Test find course areas.
*/
public function test_find_course_areas() {
public function test_find_course_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -126,7 +126,7 @@ class questiontext_test extends area_test_base {
/**
* Test find relevant areas.
*/
public function test_find_relevant_areas() {
public function test_find_relevant_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -156,7 +156,7 @@ class questiontext_test extends area_test_base {
/**
* Test find system areas.
*/
public function test_find_system_areas() {
public function test_find_system_areas(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -197,7 +197,7 @@ class questiontext_test extends area_test_base {
*
* @covers ::get_course_and_category
*/
public function test_get_course_and_category() {
public function test_get_course_and_category(): void {
$this->resetAfterTest();
$this->setAdminUser();
@@ -103,7 +103,7 @@ EOD;
/**
* Test for links opening a new tab or window
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'a');
@@ -64,7 +64,7 @@ EOD;
/**
* Test for anchor tags containing text
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'a');
@@ -90,7 +90,7 @@ EOD;
/**
* Test for anchor tags not containing susplicious link text
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
@@ -103,7 +103,7 @@ EOD;
/**
* Test Area tags opening new window without warning
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'area');
@@ -64,7 +64,7 @@ EOD;
/**
* Test for area tags containing an alt value
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'area');
@@ -64,7 +64,7 @@ EOD;
/**
* Test for basefont tags being used
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'basefont');
@@ -64,7 +64,7 @@ EOD;
/**
* Test for blink tags being used
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'blink');
@@ -65,7 +65,7 @@ EOD;
/**
* Test for b tags being used
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'b');
$this->assertTrue($results[1]->element->tagName == 'b');
@@ -124,7 +124,7 @@ EOD;
/**
* Test for checking the length of the content
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->message == '<p id=\'wc\'>Word Count: 578</p>');
@@ -30,8 +30,9 @@ require_once('all_checks.php');
/**
* Class test_css_text_has_contrast_test
* @covers \tool_brickfield\local\htmlchecker\brickfield_accessibility
*/
class css_text_has_contrast_test extends all_checks {
final class css_text_has_contrast_test extends all_checks {
/** @var string The check type. */
protected $checktype = 'css_text_has_contrast';
@@ -226,10 +227,22 @@ EOD;
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with calculated size colour values. */
private $calculatedfail = <<<EOD
<body><p style="color:#EF0000; background-color:white; font-size: calc(0.90375rem + 0.045vw)">
This is not contrasty enough.</p></body>
EOD;
/** @var string HTML with calculated size colour values. */
private $calculatedpass = <<<EOD
<body><p style="color:#E60000; background-color:white; font-size: calc(0.90375rem + 0.045vw);">
This is contrasty enough.</p></body>
EOD;
/**
* Test for the area assign intro
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'p');
@@ -255,7 +268,7 @@ EOD;
/**
* Test with valid colour names.
*/
public function test_check_for_namedcolours() {
public function test_check_for_namedcolours(): void {
$results = $this->get_checker_results($this->namecolours);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -263,7 +276,7 @@ EOD;
/**
* Test with invalid colour names.
*/
public function test_check_for_invalidcolours() {
public function test_check_for_invalidcolours(): void {
$results = $this->get_checker_results($this->invalidcolours);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -271,7 +284,7 @@ EOD;
/**
* Test with invalid colour numeric values.
*/
public function test_check_for_invalidvalues() {
public function test_check_for_invalidvalues(): void {
$results = $this->get_checker_results($this->invalidvalue);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -279,7 +292,7 @@ EOD;
/**
* Test with empty colour values.
*/
public function test_check_for_emptyvalues() {
public function test_check_for_emptyvalues(): void {
$results = $this->get_checker_results($this->emptyvalue);
$this->assertEmpty($results);
}
@@ -287,7 +300,7 @@ EOD;
/**
* Test for text px18 with insufficient contrast of 4.49.
*/
public function test_check_for_px18_fail() {
public function test_check_for_px18_fail(): void {
$results = $this->get_checker_results($this->px18);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -295,7 +308,7 @@ EOD;
/**
* Test for text px19 bold with sufficient contrast of 4.49.
*/
public function test_check_for_px19bold_pass() {
public function test_check_for_px19bold_pass(): void {
$results = $this->get_checker_results($this->px19bold);
$this->assertEmpty($results);
}
@@ -303,7 +316,7 @@ EOD;
/**
* Test for text px18 with sufficient contrast of 4.81.
*/
public function test_check_for_px18_pass() {
public function test_check_for_px18_pass(): void {
$results = $this->get_checker_results($this->px18pass);
$this->assertEmpty($results);
}
@@ -311,7 +324,7 @@ EOD;
/**
* Test for medium (12pt) text with insufficient contrast of 4.49.
*/
public function test_check_for_medium_fail() {
public function test_check_for_medium_fail(): void {
$results = $this->get_checker_results($this->mediumfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -319,7 +332,7 @@ EOD;
/**
* Test for medium (12pt) text with sufficient contrast of 4.81.
*/
public function test_check_for_medium_pass() {
public function test_check_for_medium_pass(): void {
$results = $this->get_checker_results($this->mediumpass);
$this->assertEmpty($results);
}
@@ -327,7 +340,7 @@ EOD;
/**
* Test for larger (14pt) text with insufficient contrast of 2.94.
*/
public function test_check_for_larger_fail() {
public function test_check_for_larger_fail(): void {
$results = $this->get_checker_results($this->largerfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -335,7 +348,7 @@ EOD;
/**
* Test for larger (14pt) text with insufficient contrast of 3.02.
*/
public function test_check_for_larger_pass() {
public function test_check_for_larger_pass(): void {
$results = $this->get_checker_results($this->largerpass);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -343,8 +356,134 @@ EOD;
/**
* Test for larger (14pt) bold text with sufficient contrast of 3.02.
*/
public function test_check_for_largerbold_pass() {
public function test_check_for_largerbold_pass(): void {
$results = $this->get_checker_results($this->largerboldpass);
$this->assertEmpty($results);
}
/**
* Test for rgb colors with insufficient contrast.
*/
public function test_bad_rgbcolor(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background-color:rgb(204, 204, 204);">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for rgb colors with sufficient contrast.
*/
public function test_good_rgbcolor(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background-color:rgb(0, 0, 0);">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for named colors with insufficient contrast.
*/
public function test_bad_namedcolor2(): void {
$html = '<body><p style="color:lightcyan; background-color:lavender;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for named colors with sufficient contrast.
*/
public function test_good_namedcolor2(): void {
$html = '<body><p style="color:linen; background-color:darkslategray;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for background value with insufficient contrast.
*/
public function test_bad_backgroundcss(): void {
$html = '<body><p style="color:lightcyan; background:fixed lavender center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with sufficient contrast.
*/
public function test_good_backgroundcss(): void {
$html = '<body><p style="color:linen; background:fixed darkslategray center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for background value with rgb with insufficient contrast.
*/
public function test_bad_backgroundcssrgb(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background:fixed rgb(204, 204, 204) center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgb with sufficient contrast.
*/
public function test_good_backgroundcssrgb(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background:fixed rgb(0, 0, 0) center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for text with insufficient contrast of 4.3.
*/
public function test_bad_contrastrounding(): void {
$html = '<body><p style="color:#F50000; background-color:white; font-size: 12px">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgba with insufficient contrast.
*/
public function test_bad_backgroundcssrgba(): void {
$html = '<body><p style="color:rgba(255, 255, 255, 0.5); background:fixed rgba(0, 204, 204, 0.5) center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgba with sufficient contrast.
*/
public function test_good_backgroundcssrgba(): void {
$html = '<body><p style="color:rgba(255, 255, 255, 0.75); background:fixed rgba(0, 0, 0, 0.75) center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for calculated (12pt) text with insufficient contrast of 4.49.
*/
public function test_check_for_calculated_fail(): void {
$results = $this->get_checker_results($this->calculatedfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for calculated (12pt) text with sufficient contrast of 4.81.
*/
public function test_check_for_calculated_pass(): void {
$results = $this->get_checker_results($this->calculatedpass);
$this->assertEmpty($results);
}
}
@@ -81,7 +81,7 @@ EOD;
/**
* Test for noembed child tags
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'embed');
@@ -122,7 +122,7 @@ EOD;
/**
* Test the header following an h3 must be h1, h2, h3 or h4.
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'h5');
@@ -76,7 +76,7 @@ EOD;
/**
* Test for headers not containing text
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'h2');
@@ -30,6 +30,8 @@ require_once('all_checks.php');
/**
* Class i_is_not_used_testcase
*
* @covers \tool_brickfield\local\htmlchecker\common\checks\i_is_not_used
*/
class i_is_not_used_test extends all_checks {
/** @var string Check type */
@@ -64,11 +66,20 @@ EOD;
/**
* Test for i tags being used
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'i');
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
/**
* Test for font awesome icon.
*/
public function test_fa_icon(): void {
$html = '<div><i class="fa fa-user"></i><i>Hello there</i><i class="fa fa-address-book" aria-hidden="true"></i></div>';
$results = $this->get_checker_results($html);
$this->assertCount(2, $results);
}
}
@@ -64,7 +64,7 @@ EOD;
/**
* Test for img alt attributes matching the src attribute
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'img');
@@ -68,7 +68,7 @@ EOD;
/**
* Test for image alt attributes being too long
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'img');
@@ -63,7 +63,7 @@ EOD;
/**
* Test for >Anchor tags containing a nested img tag, must not have an empty alt attribute
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'img');
@@ -133,7 +133,7 @@ EOD;
/**
* Test for the each en string specified in $strings - line 43 in imgAltNotPlaceHolder.
*/
public function test_failcheck() {
public function test_failcheck(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'img');
@@ -156,7 +156,7 @@ EOD;
/**
* Test with alt that was not specified in the $strings array.
*/
public function test_passcheck1() {
public function test_passcheck1(): void {
$results = $this->get_checker_results($this->htmlpass1);
$this->assertEmpty($results);
}
@@ -76,7 +76,7 @@ EOD;
/**
* Test for missing image alt text.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'img');
@@ -87,7 +87,7 @@ EOD;
/**
* Test for present image alt text.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertTrue(count($results) == 0);
}
@@ -66,7 +66,7 @@ EOD;
/**
* Test for usemap attribute.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'img');
}
@@ -74,7 +74,7 @@ EOD;
/**
* Test for ismap attribute.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -76,7 +76,7 @@ EOD;
/**
* Test for if legend is empty or only has white spaces.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'legend');
@@ -87,7 +87,7 @@ EOD;
/**
* Test for if legend has text.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -254,7 +254,7 @@ EOD;
/**
* Test for if heading exists where doc length is above 1800
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertNotEmpty($results);
@@ -263,7 +263,7 @@ EOD;
/**
* Test for if marquee does not exist.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass1);
$this->assertEmpty($results);
@@ -66,7 +66,7 @@ EOD;
/**
* Test for missing embed element within object element.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'object');
}
@@ -74,7 +74,7 @@ EOD;
/**
* Test for present embed element within object element.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -63,7 +63,7 @@ EOD;
/**
* Test for missing title attribute within object element.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'object');
}
@@ -71,7 +71,7 @@ EOD;
/**
* Test for present title attribute within object element.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -129,7 +129,7 @@ EOD;
/**
* Test that embed element within object element.
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'object');
}
@@ -137,7 +137,7 @@ EOD;
/**
* Test for embed element within object element.
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass1);
$this->assertEmpty($results);
@@ -77,7 +77,7 @@ EOD;
/**
* Test for b tags being used
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'strike');
@@ -30,6 +30,8 @@ require_once('all_checks.php');
/**
* Class table_data_should_have_th_test
*
* @covers \tool_brickfield\local\htmlchecker\common\checks\table_data_should_have_th
*/
class table_data_should_have_th_test extends all_checks {
/** @var string Check type */
@@ -113,11 +115,122 @@ EOD;
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass3 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<thead>
<tr>
<th>
This is table heading
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass4 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<tr>
<th>
This is table heading
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass5 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<thead>
<tr>
<th>
This is table heading
</th>
</tr>
</thead>
<tbody>
<tr>
<th>
This is a table heading in table data
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/** @var string HTML that should not get flagged. */
private $htmlpass6 = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Table should have at least one th - pass</title>
</head>
<body>
<table>
<tbody>
<tr>
<th>
This is a table heading in table data
</th>
</tr>
<tr>
<td>
This is a tables data
</td>
</tr>
</tbody>
</table>
</body>
</html>
EOD;
/**
* Test that th does not exist
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'table');
@@ -128,11 +241,23 @@ EOD;
/**
* Test that th does exist
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass1);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass2);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass3);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass4);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass5);
$this->assertEmpty($results);
$results = $this->get_checker_results($this->htmlpass6);
$this->assertEmpty($results);
}
}
@@ -67,7 +67,7 @@ EOD;
/**
* Test that caption and summary are equal
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail);
$this->assertTrue($results[0]->element->tagName == 'table');
}
@@ -75,7 +75,7 @@ EOD;
/**
* Test that caption and summary are not equal
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -125,7 +125,7 @@ EOD;
/**
* Test for rowspan and colspan
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertNotEmpty($results);
@@ -136,7 +136,7 @@ EOD;
/**
* Test for rowspan and colspan
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass);
$this->assertEmpty($results);
}
@@ -163,7 +163,7 @@ EOD;
/**
* Test that th has scope that is equal to col or row
*/
public function test_check_fail() {
public function test_check_fail(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertEquals(2, count($results));
$this->assertTrue($results[0]->element->tagName == 'th');
@@ -177,7 +177,7 @@ EOD;
/**
* Test that th has scope but != col || row. Test that th has no scope
*/
public function test_check_pass() {
public function test_check_pass(): void {
$results = $this->get_checker_results($this->htmlpass1);
$this->assertEmpty($results);
@@ -26,7 +26,7 @@ namespace tool_brickfield\local\tool;
*/
class activityresults_test extends \advanced_testcase {
public function test_toolname() {
public function test_toolname(): void {
$this->resetAfterTest();
$object = new activityresults();
@@ -34,7 +34,7 @@ class activityresults_test extends \advanced_testcase {
$this->assertEquals($output, 'Activity breakdown summary');
}
public function test_toolshortname() {
public function test_toolshortname(): void {
$this->resetAfterTest();
$object = new activityresults();
@@ -42,7 +42,7 @@ class activityresults_test extends \advanced_testcase {
$this->assertEquals($output, 'Activity breakdown');
}
public function test_pluginname() {
public function test_pluginname(): void {
$this->resetAfterTest();
$object = new activityresults();
@@ -50,7 +50,7 @@ class activityresults_test extends \advanced_testcase {
$this->assertEquals($output, 'activityresults');
}
public function test_get_output() {
public function test_get_output(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
@@ -26,7 +26,7 @@ namespace tool_brickfield\local\tool;
*/
class checktyperesults_test extends \advanced_testcase {
public function test_toolname() {
public function test_toolname(): void {
$this->resetAfterTest();
$object = new checktyperesults();
@@ -34,7 +34,7 @@ class checktyperesults_test extends \advanced_testcase {
$this->assertEquals($output, 'Content types summary');
}
public function test_toolshortname() {
public function test_toolshortname(): void {
$this->resetAfterTest();
$object = new checktyperesults();
@@ -42,7 +42,7 @@ class checktyperesults_test extends \advanced_testcase {
$this->assertEquals($output, 'Content types');
}
public function test_pluginname() {
public function test_pluginname(): void {
$this->resetAfterTest();
$object = new checktyperesults();
@@ -50,7 +50,7 @@ class checktyperesults_test extends \advanced_testcase {
$this->assertEquals($output, 'checktyperesults');
}
public function test_get_output() {
public function test_get_output(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
@@ -26,7 +26,7 @@ namespace tool_brickfield\local\tool;
*/
class errors_test extends \advanced_testcase {
public function test_toolname() {
public function test_toolname(): void {
$this->resetAfterTest();
$object = new errors();
@@ -34,7 +34,7 @@ class errors_test extends \advanced_testcase {
$this->assertEquals($output, 'Error list summary');
}
public function test_toolshortname() {
public function test_toolshortname(): void {
$this->resetAfterTest();
$object = new errors();
@@ -42,7 +42,7 @@ class errors_test extends \advanced_testcase {
$this->assertEquals($output, 'Error list');
}
public function test_pluginname() {
public function test_pluginname(): void {
$this->resetAfterTest();
$object = new errors();
@@ -50,7 +50,7 @@ class errors_test extends \advanced_testcase {
$this->assertEquals($output, 'errors');
}
public function test_get_output() {
public function test_get_output(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
@@ -29,7 +29,7 @@ class printable_test extends \advanced_testcase {
/**
* Test tool name.
*/
public function test_toolname() {
public function test_toolname(): void {
$this->resetAfterTest();
$object = new printable();
@@ -40,7 +40,7 @@ class printable_test extends \advanced_testcase {
/**
* Test tool short name.
*/
public function test_toolshortname() {
public function test_toolshortname(): void {
$this->resetAfterTest();
$object = new printable();
@@ -51,7 +51,7 @@ class printable_test extends \advanced_testcase {
/**
* Test plugin name.
*/
public function test_pluginname() {
public function test_pluginname(): void {
$this->resetAfterTest();
$object = new printable();
@@ -77,7 +77,7 @@ class printable_test extends \advanced_testcase {
/**
* Test get output.
*/
public function test_get_output() {
public function test_get_output(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
+1 -1
View File
@@ -28,7 +28,7 @@ class manager_test extends \advanced_testcase {
/**
* Tests for the function manager::get_all_areas()
*/
public function test_get_areas() {
public function test_get_areas(): void {
$this->resetAfterTest();
$areas = manager::get_all_areas();
$areaclassnames = array_map('get_class', $areas);
@@ -40,7 +40,7 @@ class registration_test extends \advanced_testcase {
* Tests the state of the registration system when first installed.
* @throws \dml_exception
*/
public function test_initial_state() {
public function test_initial_state(): void {
$this->resetAfterTest();
$regobj = new mock_registration();
@@ -56,7 +56,7 @@ class registration_test extends \advanced_testcase {
* Test the various states for setting registration keys.
* @throws \dml_exception
*/
public function test_set_keys_for_registration() {
public function test_set_keys_for_registration(): void {
$this->resetAfterTest();
$regobj = new mock_registration();
@@ -79,7 +79,7 @@ class registration_test extends \advanced_testcase {
* Test the validation system through its several states.
* @throws \dml_exception
*/
public function test_validation() {
public function test_validation(): void {
$this->resetAfterTest();
$regobj = new mock_registration();
@@ -112,7 +112,7 @@ class registration_test extends \advanced_testcase {
* Tests the system after validation grace periods expire.
* @throws \dml_exception
*/
public function test_validation_time_expiry() {
public function test_validation_time_expiry(): void {
$this->resetAfterTest();
$regobj = new mock_registration();
@@ -149,7 +149,7 @@ class registration_test extends \advanced_testcase {
* Tests the system after summary data time periods expire.
* @throws \dml_exception
*/
public function test_summary_time_expiry() {
public function test_summary_time_expiry(): void {
$this->resetAfterTest();
$regobj = new mock_registration();
+19 -19
View File
@@ -26,7 +26,7 @@ namespace tool_brickfield;
*/
class scheduler_test extends \advanced_testcase {
public function test_request_analysis() {
public function test_request_analysis(): void {
$this->resetAfterTest();
// I believe there is a bug where the code won't work with the default constructor values.
@@ -48,7 +48,7 @@ class scheduler_test extends \advanced_testcase {
}
public function test_mark_analyzed() {
public function test_mark_analyzed(): void {
$this->resetAfterTest();
$object = new scheduler();
$output = $object->mark_analyzed();
@@ -59,7 +59,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_create_schedule() {
public function test_create_schedule(): void {
global $DB;
$this->resetAfterTest();
@@ -76,7 +76,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertEquals($record->instanceid, 1);
}
public function test_delete_schedule() {
public function test_delete_schedule(): void {
global $DB;
// Call create_record() to insert a record into the table.
@@ -95,7 +95,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertFalse($record);
}
public function test_is_in_schedule() {
public function test_is_in_schedule(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -109,7 +109,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_is_scheduled() {
public function test_is_scheduled(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -129,7 +129,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_is_submitted() {
public function test_is_submitted(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -149,7 +149,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_is_analyzed() {
public function test_is_analyzed(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -170,14 +170,14 @@ class scheduler_test extends \advanced_testcase {
}
// Can't test because it's a protected function.
public function test_standard_search_params() {
public function test_standard_search_params(): void {
}
// Can't test because it's a protected function.
public function test_get_contextid() {
public function test_get_contextid(): void {
}
public function test_get_datarecord() {
public function test_get_datarecord(): void {
$this->resetAfterTest();
$object = new scheduler();
@@ -200,11 +200,11 @@ class scheduler_test extends \advanced_testcase {
}
// No return statement.
public function test_process_scheduled_requests() {
public function test_process_scheduled_requests(): void {
}
public function test_initialize_schedule() {
public function test_initialize_schedule(): void {
global $DB;
$this->resetAfterTest();
@@ -219,14 +219,14 @@ class scheduler_test extends \advanced_testcase {
$this->assertEquals($record->contextlevel, 20);
}
public function test_request_course_analysis() {
public function test_request_course_analysis(): void {
$this->resetAfterTest();
$output = scheduler::request_course_analysis(1);
$this->assertTrue($output);
}
public function test_create_course_schedule() {
public function test_create_course_schedule(): void {
global $DB;
$this->resetAfterTest();
@@ -237,7 +237,7 @@ class scheduler_test extends \advanced_testcase {
}
public function test_delete_course_schedule() {
public function test_delete_course_schedule(): void {
global $DB;
$this->resetAfterTest();
@@ -251,7 +251,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertFalse($record);
}
public function test_is_course_in_schedule() {
public function test_is_course_in_schedule(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -264,7 +264,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_is_course_scheduled() {
public function test_is_course_scheduled(): void {
$this->resetAfterTest();
// This should assert to false as no record has been inserted.
@@ -283,7 +283,7 @@ class scheduler_test extends \advanced_testcase {
$this->assertTrue($output);
}
public function test_is_course_analyzed() {
public function test_is_course_analyzed(): void {
$this->resetAfterTest();
$object = new scheduler(10, 1);
+13 -13
View File
@@ -30,7 +30,7 @@ use tool_brickfield\local\tool\tool;
class tool_test extends \advanced_testcase {
/** @var string base 64 image */
protected $base64img = <<<EOF
protected static string $base64img = <<<EOF
<img src="data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/
8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5N
WvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29u
@@ -58,7 +58,7 @@ w==" alt="This is a bus." />';
EOF;
public function test_build_all_accessibilitytools() {
public function test_build_all_accessibilitytools(): void {
$tools = tool::build_all_accessibilitytools();
$this->assertEquals($tools['errors']::toolshortname(), 'Error list');
@@ -68,14 +68,14 @@ EOF;
$this->assertEquals($tools['advanced']::toolshortname(), 'Advanced');
}
public function test_data_is_valid() {
public function test_data_is_valid(): void {
$object = $this->getMockForAbstractClass(tool::class);
$object->set_filter(new filter());
$output = $object->data_is_valid();
$this->assertFalse($output);
}
public function test_can_access() {
public function test_can_access(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
$filter = new filter(1, $category->id, 'tab', 3, 4);
@@ -86,14 +86,14 @@ EOF;
$this->assertFalse($output);
}
public function test_get_error_message() {
public function test_get_error_message(): void {
$tool = $this->getMockForAbstractClass(tool::class);
$output = $tool->get_error_message();
$this->assertEquals($output, '');
}
public function test_get_module_label() {
public function test_get_module_label(): void {
$output = tool::get_module_label('core_course');
$this->assertEquals($output, 'Course');
@@ -101,7 +101,7 @@ EOF;
$this->assertEquals($output, 'Book');
}
public function test_toplevel_arguments() {
public function test_toplevel_arguments(): void {
$this->resetAfterTest();
$category = $this->getDataGenerator()->create_category();
$filter = new filter(1, $category->id, 'tab', 3, 4);
@@ -118,11 +118,11 @@ EOF;
* Base64 image provider.
* @return array
*/
public function base64_img_provider(): array {
public static function base64_img_provider(): array {
$img = '<img src="myimage.jpg" />';
return [
'Image tag alone (base64)' => [
$this->base64img,
self::$base64img,
true,
],
'Image tag alone (link)' => [
@@ -130,7 +130,7 @@ EOF;
false,
],
'Image tag in string (base64)' => [
"This is my image {$this->base64img}.",
"This is my image " . self::$base64img,
true,
],
'Image tag in string (link)' => [
@@ -154,15 +154,15 @@ EOF;
* @param string $content
* @param bool $expectation
*/
public function test_base64_img_detected(string $content, bool $expectation) {
public function test_base64_img_detected(string $content, bool $expectation): void {
$this->assertEquals(
$expectation,
tool::base64_img_detected($content)
);
}
public function test_truncate_base64() {
$truncated = tool::truncate_base64($this->base64img);
public function test_truncate_base64(): void {
$truncated = tool::truncate_base64(self::$base64img);
$this->assertStringContainsString('<img src="data:image/gif;base64..."', $truncated);
}
}

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