Compare commits

...

1134 Commits

Author SHA1 Message Date
Jun Pataleta 143c2cd5be Moodle release 4.3.4 2024-04-20 15:57:33 +08:00
Huong Nguyen 06b6467f4f weekly release 4.3.3+ 2024-04-19 17:05:32 +07:00
Jun Pataleta 452279abad Merge branch 'MDL-81584-403' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-04-19 11:03:30 +08:00
Mihail Geshoski a51e542e5b MDL-81584 gradereport_grader: Pin the last row only when necessary
Fixes the current behavior where the last row in the grader report is
always 'pinned', ensuring it is pinned only when necessary.
2024-04-18 16:15:11 +08:00
Jun Pataleta 76c0c9ed59 Merge branch 'MDL-81525-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-04-17 23:42:14 +08:00
Laurent David 4443ecf6b4 MDL-81267 mod_data: Additional tests 2024-04-17 10:33:13 +02:00
Laurent David faadca21a9 MDL-81267 mod_data: Clean field type before inclusion
* Filter out wrong field types when restoring or creating a field.
2024-04-17 10:33:13 +02:00
Paul Holden bcb96be529 MDL-80878 tool_mfa: safely retrieve the referrer URL. 2024-04-17 03:24:20 +00:00
Stevani Andolo 8fdda09338 MDL-81354 core: Escape string of fullname 2024-04-17 03:24:19 +00:00
Paul Holden 593204b45d MDL-81463 auth: ensure login recaptcha always checked if configured. 2024-04-17 03:24:19 +00:00
Paul Holden c988992f7e MDL-81062 mod_lesson: escape identity fields in overview report. 2024-04-17 03:24:19 +00:00
Paul Holden 4408c3fcaa MDL-80712 mod_workshop: stricter cleaning of sub-plugin values. 2024-04-17 03:24:19 +00:00
Paul Holden 6c08d1c101 MDL-81058 admin: fix sesskey checks for admin preset actions. 2024-04-17 03:24:19 +00:00
Paul Holden dd433ba094 MDL-81059 tool_analytics: fix sesskey checks for model actions. 2024-04-17 03:24:19 +00:00
Laurent David fcd361badb MDL-81284 mod_wiki: Add stricter cleaning of contentformat
* When restoring backup we clean the contentformat and defaultformat
to avoid issue with invalid value.
* Add tests for format and defaultformat so to check that we
 filter out invalid formats
* Remove private $basepath variable as it was used one and not always
initialised correctly.
2024-04-17 03:24:19 +00:00
meirzamoodle bef5f4a121 MDL-81352 filter: Ensure equation safety prior to filtering 2024-04-17 03:24:19 +00:00
Paul Holden f9e6040e28 MDL-81135 mod_feedback: stricter cleaning of item type parameter. 2024-04-17 03:24:19 +00:00
Huong Nguyen d77f2d55ef MDL-81247 calendar: Extra validation for webservices 2024-04-17 03:24:19 +00:00
Paul Holden de7ec71ca4 MDL-80877 tool_mfa: protect logout process with sesskey check. 2024-04-17 03:24:19 +00:00
Paul Holden de366cea22 MDL-81247 calendar: freeze event type if "user" only allowed. 2024-04-17 03:24:19 +00:00
Leon Stringer 6bc016ad41 MDL-80585 report_log: sanitize descriptions
Strip any HTML tags from values in the "Description" column.
2024-04-17 03:24:19 +00:00
Huong Nguyen df23edbbab Merge branch 'MDL-81552-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-04-17 10:13:41 +07:00
Jun Pataleta 33b34bc86a MDL-81552 core: Assign proper webdav_client class variables 2024-04-16 13:06:46 +08:00
Andrew Nicols ffc51ab3fd MDL-81525 core_user: Move after_complete_login to correct NS 2024-04-15 08:53:35 +08:00
Sara Arjona d706265b8e weekly release 4.3.3+ 2024-04-12 13:23:26 +02:00
Huong Nguyen 15912783c4 Merge branch 'MDL-77015-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-12 11:46:05 +07:00
Huong Nguyen b9dd2d29c5 Merge branch 'MDL-65381-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2024-04-12 11:11:28 +07:00
Andrew Nicols 99748cdee6 Merge branch 'MDL-70829-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-04-12 11:59:04 +08:00
Huong Nguyen 692cda1525 MDL-79174 availability: Behat cleanups 2024-04-12 10:57:04 +07:00
Huong Nguyen 951a3d5e5c Merge branch 'MDL-79174_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2024-04-12 10:56:50 +07:00
Andrew Nicols 07dab571dd Merge branch 'MDL-81192_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2024-04-12 11:48:24 +08:00
Jun Pataleta 4544ea122b MDL-70829 output: Remove the presentation role for html_writer::img()
* A presentation role is not necessary for the img tag.
  - If a non-empty alt text is provided, the presentation role will
  conflict with the alt text.
  - An empty alt text denotes a decorative image. The presence of a
  presentation role is redundant.
* Make sure that the alt text is set to an empty string. Otherwise,
  an img tag without an alt attribute will be produced which is an
  invalid markup.
2024-04-12 11:45:35 +08:00
Andrew Nicols d16fc3c7e3 Merge branch 'MDL-78902_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-04-12 11:18:49 +08:00
Jun Pataleta 007e527c3c MDL-70829 core: Set the icon of action icons as a decorative image
* When text is rendered for the action icon, set the icon as a
decorative image by setting empty alt and title attributes and adding
the aria-hidden attribute as well. Otherwise, assistive technologies
will read the action name twice.
2024-04-12 11:14:06 +08:00
Jun Pataleta fea05fb8a3 MDL-70829 block_recentlyaccesseditems: Move listitem role out of <a>
* Axe DevTools flags an error on the recently accessed items block that
the listitem role is not allowed for <a> tags. This is because the
"listitem" role will override the native semantic meaning of the course
links. So the solution is to move the course links within a <div> tag
with the listitem role instead.
2024-04-12 11:14:06 +08:00
Jun Pataleta 84ef1906e0 MDL-70829 tool_lp: Add empty alt text for decorative image
* The decorative image for the course modules in the user competency
summary modal is missing an empty alt text.
2024-04-12 11:14:05 +08:00
Jun Pataleta 744065174c MDL-70829 theme_boost: Make context header icons decorative
The non-empty alt text for the icons of the context header buttons like
the "Message" and the "Add contact" buttons cause redundant information
to be read twice by screen readers when the buttons are rendered with
the icon and the button name. The icons need to be set as decorative by
setting an empty alt text for them.
* The presentation role is also unnecessary.
* The alt text is needed when the button gets rendered without the
button name text.
2024-04-12 11:14:05 +08:00
Jun Pataleta 1e2ef693f7 MDL-70829 core_search: Mark up decorative image properly
* An empty alt text is enough for decorative images. There's no need
  to set a presentation role.
2024-04-12 11:13:14 +08:00
Jun Pataleta 182e09ab5c MDL-70829 enrol_manual: Mark up decorative image properly
* An empty alt text is enough for decorative images. There's no need
  to set a presentation role.
2024-04-12 11:13:14 +08:00
Jun Pataleta ca0e61a79d MDL-70829 mod_workshop: Mark up decorative images properly
* Decorative images should have an empty alt text and there's no need
to set a presentation role.
2024-04-12 11:13:13 +08:00
Jun Pataleta f0aa5e9668 MDL-70829 mod_quiz: Mark up decorative images properly
* Decorative images should have an empty alt text and there's no need
to set a presentation role.
* Accessibility Behat tests added to cover the changes
2024-04-12 11:13:13 +08:00
Jun Pataleta 814fea407a MDL-70829 mod_data: Mark up decorative images properly
* Decorative images should have an empty alt text and there's no need
to set a presentation role.
* Accessibility Behat tests added to cover the changes
2024-04-12 11:13:13 +08:00
Jun Pataleta 1ae95e3b63 MDL-70829 course: Mark up decorative images properly
* Decorative images should have an empty alt text and there's no need
to set a presentation role.
* Accessibility Behat tests added to cover the changes:
  - block_starredcourses uses the core_course/no-courses template
  - core_completion tests changes in core_course/activity instance and
    core_course/editdefaultcompletion
2024-04-12 11:13:13 +08:00
Jun Pataleta f99f693238 MDL-70829 block_recentlyaccesseditems: Mark up decorative image properly
* The zero state image is purely decorative so there's no need to
set a non-empty alt text for it.
* The presentation role is also unnecessary for decorative image with
empty alt.
* Accessibility Behat tests added to cover changes
2024-04-12 11:13:12 +08:00
Jun Pataleta ae48b9e8a6 MDL-70829 block_myoverview: Mark up decorative image properly
* The zero state image is purely decorative so there's no need to
set a non-empty alt text for it.
* The presentation role is also unnecessary for decorative image with
empty alt.
* Accessibility Behat tests added to cover changes
2024-04-12 11:13:12 +08:00
Jun Pataleta f28b4d1ae1 MDL-70829 tool_lp: Remove presentation role for decorative images
* Behat tests in report_competency added to test the user summary
display in the user competency summary modal.
2024-04-12 11:13:12 +08:00
Jun Pataleta ca3218b23f MDL-70829 core: Remove presentation role for decorative images
* An image with non-empty alt text should not have a presentation role.
* An empty alt attribute is sufficient for decorative images. No need to
add a presentation role for them.
* Additionally, if there is already text that is present for an image,
there's no need to add an alt text with the same text. Such images are
decorative and should just have an empty alt text.
2024-04-12 11:13:12 +08:00
Huong Nguyen 8a1547bb17 Merge branch 'MDL-81320-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-12 10:11:42 +07:00
Huong Nguyen 1872094df6 Merge branch 'MDL-81256-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-04-12 08:58:28 +07:00
Shamim Rezaie 34d5c59153 Merge branch 'MDL-81306-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-04-12 11:46:06 +10:00
Huong Nguyen 8aed364c22 Merge branch 'MDL-81316-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-04-12 08:37:01 +07:00
Huong Nguyen bdd0d80a09 Merge branch 'MDL-81420-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-04-12 08:34:08 +07:00
Ilya Tregubov cbd81332e3 Merge branch 'MDL-80160-403-siteadminsconfigphp' of https://github.com/mudrd8mz/moodle into MOODLE_403_STABLE 2024-04-12 08:47:17 +08:00
Shamim Rezaie 33fd0471e8 Merge branch 'MDL-81482_403' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_403_STABLE 2024-04-12 09:31:10 +10:00
Tomo Tsuyuki b81756cc04 MDL-78902 quiz restore: fix restore of 3.x backups with random questions
... where the random questions come from the quiz module context.

Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-04-11 22:09:59 +01:00
Sara Arjona 98a9e324d8 Merge branch 'MDL-81472-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-11 17:35:49 +02:00
Andrew Nicols a341231108 Merge branch 'MDL-81114_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-04-11 23:25:43 +08:00
Sara Arjona c5c52e66f3 Merge branch 'MDL-80469-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-04-11 14:52:00 +02:00
Marina Glancy 6e5d277fc2 MDL-80469 forms: add a hidden label to the button action group
This is a temporary solution to the accessibility problem
"Fieldsets without legend". We will no longer use a fieldset tag
if there is no legend after MDL-80431
2024-04-11 12:56:24 +01:00
Sara Arjona b6394a0b60 Merge branch 'MDL-81383_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-04-11 12:49:36 +02:00
Tim Hunt 6edfe1b415 MDL-81383 questions: get_filtered_questions order should be predictable
This method supports $limit and $offset paramters. The query must have
a predictable ORDER BY for that to make sense.
2024-04-11 10:27:41 +01:00
Pedro Jordao 95c957791e MDL-80195 forms: Keep dropdown menu open when tabbing into datepicker
When accessing a datepicker that is within a dropdown menu using the tab
key, the navigation sequence was changed since the datepicker code is
not rendered within the dropdown menu element, thus the dropdown was
closed as it was understood that we were not more inside it.
Furthermore, when exiting the datepicker by pressing tab, as the
dropdown was closed, the navigation jumped to the first element on the
page, which is the link to Skip to main content.

To resolve this, a validation was added that keeps the dropdown menu
open if the datepicker is open and accessed via the tab key.
2024-04-11 11:03:38 +02:00
Mark Johnson 217154895c MDL-81192 sessions: Prevent false positive session change errors
If $CFG->enable_read_only_sessions_debug was not enabled, debugging could be
enabled part-way through a request when restart_with_write_lock was
called. This meant that a diff between the initial and final session
would be made during write_close(), although the intial session state
was never captured. This generated false positives in the logs, and it
thought any variable set in the session was a change from the original
value.

This ensures that debugging is enabled before the debug flag is allowed
to change, preventing false positives.
2024-04-11 08:54:39 +01:00
Andrew Nicols 076f6e9464 MDL-77967 core_user: Coding style fixes in tests 2024-04-11 14:06:11 +08:00
Andrew Nicols 24c4875f6a Merge branch 'MDL-77967-403' of https://github.com/rmady/moodle into MOODLE_403_STABLE 2024-04-11 14:06:06 +08:00
Huong Nguyen 78cac12d8e Merge branch 'MDL-81362-403' of https://github.com/ssj365/moodle into MOODLE_403_STABLE 2024-04-11 10:59:26 +07:00
Huong Nguyen f990fcdca7 Merge branch 'MDL-81327-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-04-11 10:19:07 +07:00
Andrew Nicols 59cf12eca4 Merge branch 'MDL-81227_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-04-11 10:59:53 +08:00
Ilya Tregubov 3f01eeb49f Merge branch 'MDL-81491-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-04-11 09:51:48 +08:00
Shamiso.Jaravaza ffa09ce293 MDL-81362 mod_bigbluebuttonbn: Fix content type 2024-04-10 11:51:06 -06:00
Sara Arjona 5f8bfd504a Merge branch 'MDL-74977-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-04-10 15:50:58 +02:00
Huong Nguyen df99388d27 MDL-74977 core_courseformat: add expanded section update actions
This also fix the Random "Course content preferences" Behat failure
2024-04-10 18:11:45 +07:00
Sara Arjona 811b9e4187 Merge branch 'MDL-81307-fix-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-04-10 12:52:51 +02:00
Sara Arjona 4971008242 MDL-81307 theme: Fix behat failures with classic and sticky footer
Authored-by: Mikel Martín Corrales <mikel@moodle.com>
2024-04-10 12:33:46 +02:00
Jake Dallimore 510f9e3c08 MDL-81491 enrol_lti: fix incorrect login_hint parameter type validation
This was always bad, but since we only used it to verify the existence
of the param, and let library code take $_REQUEST for the real
validation, it was ok. Now, since we're redirecting to self during
necessary cookie checks added by MDL-80835, we lose the real value
originally stored in $_REQUEST. This patch just fixes the param type,
setting it to raw, which is what it should have used originally. The
raw value won't be cast from a string to an int as part of the
require_param call, so the value won't be lost any more.
2024-04-10 17:43:11 +08:00
Huong Nguyen 0cd42e33bf Merge branch 'MDL-81351-403-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_403_STABLE 2024-04-10 13:55:26 +07:00
Huong Nguyen a0cf83c8f5 Merge branch 'MDL-81182_403' of https://github.com/aolley/moodle into MOODLE_403_STABLE 2024-04-10 11:24:19 +07:00
Anupama Sarjoshi cec3a6438b MDL-81482 Questions: Fix questionlib_test PHPUnit tests 2024-04-09 16:49:22 +01:00
Sara Arjona 220637457e Merge branch 'MDL-81307-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2024-04-09 16:18:31 +02:00
Sara Arjona 725f6f35a3 Merge branch 'MDL-81451-403' of https://github.com/lucaboesch/moodle into MOODLE_403_STABLE 2024-04-09 15:31:10 +02:00
Mikel Martín 441ab036e0 MDL-81307 core_courseformat: Add bulk styles for small devices 2024-04-09 13:30:34 +02:00
Paul Holden 596b317c27 MDL-81472 mod_scorm: add missing library require to privacy class. 2024-04-09 11:38:08 +01:00
Sara Arjona c9fe574fdd weekly release 4.3.3+ 2024-04-09 12:07:24 +02:00
Laurent David e5f200616e MDL-81327 report_loglive: Apply the same fixes to loglive
* Additional fix: take into account selected group (filter)
2024-04-09 11:00:30 +02:00
Andrew Nicols 61282aa692 MDL-81327 report_log: Make group filtering logstore agnostic
The original implementation of group filtering introduced in MDL-80565
assumed that the log table existed in Moodle's own database. This is not
the case of the database logstore, or any similar logstore implemetning
the database \core\log\sql_reader interface.

Furthermore this check was also applying the SQL when the user had the
`accessallgroups` capability, or when the course was not in SEPARATE
groups mode (no groupmode and/or visible groups).

Co-authored: Laurent David <laurent.david@moodle.com>
2024-04-09 11:00:30 +02:00
Laurent David f67fa427bd MDL-81327 report_log: Fix col_fullusername
* Avoid calling get_user_fullname too many times and
deal with the case that $event->userid is empty
2024-04-09 11:00:30 +02:00
Andrew Nicols ff4d5f3caa MDL-81327 core: Remove unnecessary table filter
The \Traversable interface does not define the `valid` method.
Furthermore, the `valid` method actually checks that there is a _next_
value, which requires the value already be fetched and waiting. This is
not the case for all Iterators. For example the CallbackFilterIterator
does not load the initial value until it is requested.

It is completely unnecessary to do this check anyway as an invalid
Iterator will just not return any values.
2024-04-09 11:00:29 +02:00
Jake Dallimore 829a0d615a Merge branch 'MDL-81060-403-fix' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-04-09 10:13:37 +08:00
Luca Bösch 9c5db33257 MDL-81451 qtype_missingtype: adopt icon size to other. 2024-04-08 17:27:03 +02:00
Luca Bösch 2f5def5d83 MDL-81451 qtype_gapfill: adopt icon size to other. 2024-04-08 17:27:03 +02:00
Sara Arjona 2f59f5b835 Merge branch 'MDL-81298-MOODLE_403_STABLE' of https://github.com/vithushau/moodle into MOODLE_403_STABLE 2024-04-08 17:11:55 +02:00
Didier 'OdyX' Raboud fecf2ee25a MDL-65381 grade_report: fix empty separate groups own grades access
On separate groups' courses, users without groups could not access
their own grade items.
2024-04-08 17:03:02 +02:00
Sara Arjona bf9e1f978e Merge branch 'MDL-78457-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-08 16:54:47 +02:00
Huong Nguyen 01a0c19364 Merge branch 'MDL-75037-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-08 16:06:38 +07:00
Marina Glancy 0b8ce298cb MDL-81256 lib: fix rounding of thumbnail image size 2024-04-08 10:01:47 +01:00
Sara Arjona e2b856751a MDL-81420 enrol: Remove duplicated header in editing form 2024-04-08 10:49:29 +02:00
Jake Dallimore 94eb59c5b8 Merge branch 'MDL-81405-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2024-04-08 15:35:18 +08:00
Ilya Tregubov fb74eac976 Merge branch 'MDL-81409-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-04-08 12:45:18 +08:00
Huong Nguyen afbec4a656 Merge branch 'MDL-80934-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-04-08 09:13:16 +07:00
Jake Dallimore a4a4cb1cdb MDL-81060 core: fix incorrect userquota usage in zip_packer
This change reverts much of MDL-74641, removing the erroneous userquota
checks from zip_packer. Now, during extraction, the zip_packer will exit
with an error status when it encounters a file which is larger than its
advertised size, and NOT when it determines the size of the extracted
files have exceeded the userquota (which only applies to private files
and which was used incorrectly here). It also reverts changes to the
draftfiles_ajax.php file, restoring the original (pre-MDL-74641) error
handling.
2024-04-08 09:11:48 +07:00
Huong Nguyen c056e99130 Merge branch 'MDL-81402-MOODLE_403_STABLE' of https://github.com/sh-csg/moodle into MOODLE_403_STABLE 2024-04-08 09:03:20 +07:00
Juan Leyva de6fb6e2f7 MDL-81405 tool_mobile: Set Partitioned cookie for the mobile app 2024-04-06 12:25:51 +02:00
Juan Leyva 5e7440acdc MDL-81405 session: New core cookie helper utility class 2024-04-06 12:25:51 +02:00
Paul Holden 5de37ea321 MDL-81320 datafield_checkbox: account for empty field content. 2024-04-05 15:16:40 +01:00
Sara Arjona cf01fd6bef weekly release 4.3.3+ 2024-04-05 13:22:31 +02:00
Sara Arjona 034c9d9559 Merge branch 'MDL-81359-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2024-04-04 17:02:59 +02:00
Huong Nguyen daa896b54a Merge branch 'MDL-81386-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-04-04 21:56:29 +07:00
Stefan Hanauska bccc540bce MDL-81402 course: Add sectionnum to cm export 2024-04-04 13:02:30 +02:00
Laurent David 3071a94206 MDL-80934 core_courseformat: Expand section when selected
* Sections in the course content must be expanded when an item
from this section is selected in the course index
2024-04-04 10:41:48 +02:00
Andrew Nicols 493bef4270 MDL-81316 core: Encode anchor fragments properly to RFC 3986 2024-04-04 16:04:37 +08:00
Ilya Tregubov 4ec1c56fd6 Merge branch 'MDL-78370-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-04-04 14:19:20 +08:00
Andrew Nicols d1d193c61a NOBUG: mod_h5pactivity - Version bump after rewrite 2024-04-04 10:36:26 +08:00
Sara Arjona 1f037c1abb Merge branch 'MDL-80765-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-04-03 17:18:56 +02:00
Huong Nguyen 38fc785fe4 MDL-81393 atto: Disable mediaplugin filter for Behat test 2024-04-04 00:23:28 +11:00
Paul Holden fc377530a2 MDL-75037 core: update Moodlenet repository search URLs. 2024-04-03 13:00:38 +01:00
Jake Dallimore 53176786c8 MDL-81409 enrol_lti: fixes to dynamic registration to support Blackboard
The following fixes resolve issues when used with Blackboard Learn:
- Set registration request Content-Type header to application/json
- Make registration_token optional, per the spec:
https://www.imsglobal.org/node/200666#step-1-registration-initiation-request
- Conditionally create the deployment since it's optional in
lti-tool-configuration:
https://www.imsglobal.org/node/200666#lti-configuration-0
- Remove empty custom_parameters property, since that's optional too:
https://www.imsglobal.org/node/200666#lti-configuration-0
- Remove overly-strict validation on registration_token. This was
validating the param as a JWT, but since the spec has stabilised, this
is not always the case. It's a Bearer token that's opaque to the tool
(i.e. it's just passed back unmodified), so while it could be validated
against RFC6750, it's simplest to just remove the validation entirely.
- change targetOrigin of the postMessage to '*' as per the spec:
https://www.imsglobal.org/node/200666#step-4-registration-completed-and-activation
2024-04-03 16:22:26 +08:00
Sara Arjona 075138c474 MDL-81386 output: Fix failure in PHPUnit when running filtered tests
There was a data provider to get the list of the FontAwesome icons that
was initialized when running filtered tests.
It was causing some failures with filtered tests that, for instance,
called require_login and changed the course.
To avoid this failure (and also to improve the performance), the logic
to get the icons list has been moved to the test.
2024-04-03 09:27:10 +02:00
Shamim Rezaie 18023c7dab Merge branch 'MDL-81393-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-04-03 16:38:40 +11:00
Andrew Nicols 22ae648dd2 Merge branch 'MDL-80818-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2024-04-03 13:05:36 +08:00
Huong Nguyen fbf4d35827 Merge branch 'MDL-77779-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2024-04-03 09:12:29 +07:00
Huong Nguyen 7c9a625cf8 Merge branch 'MDL-81300-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2024-04-03 09:06:52 +07:00
Huong Nguyen ca0020a224 Merge branch 'MDL-81072-403' of https://github.com/stevandoMoodle/moodle into MOODLE_403_STABLE 2024-04-03 08:55:11 +07:00
Huong Nguyen 0c4a148cdb Merge branch 'MDL-77838-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-04-03 08:52:23 +07:00
Sara Arjona 6294b06174 weekly release 4.3.3+ 2024-04-02 14:46:38 +02:00
Paul Holden 1d8c25f479 MDL-78457 course: remove participants navigation if cannot access. 2024-04-02 10:03:47 +01:00
Paul Holden 7f01b0369a MDL-77015 mod_data: consistent escaping of template field names.
* When creating default templates, avoid escaping the field names
  contained within [[ ]] brackets;
* When managing field, ensure the field names are escaped.
2024-04-02 10:02:07 +01:00
Mikel Martín a7a85820f2 MDL-81300 theme_boost: Fix dnd overlay in course sections
Drag and drop overlay in course page was being overlapped by divider
buttons and quick edit links.
That happens because both elements have their own z-index context.
Add z-index to the drag and drop overlay elenment to fix this issue.
2024-04-02 10:14:39 +02:00
Andrew Nicols 63f7915427 Merge branch 'MDL-79712-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-04-02 11:56:33 +08:00
Laurent David b7b1e20ed4 MDL-80765 mod_data: Trim values on field update
* When creating a field we usually trim values, so we should
do the same on field update
2024-04-02 05:41:39 +02:00
Jake Dallimore 8657868c97 MDL-79712 auth_lti: ensure MoodleSession uses SameSite=None Secure
The MoodleSession cookie is already set this way when using Chrome, but
not for Firefox. This is a decision made in \core\session\manager. When
Firefox eventually defaults to SameSite=Lax when the SameSite attribute
is omitted from the Set-Cookie headers, the MoodleSession cookie won't
be sent. This change ensures the cookies used during LTI launches will
continue to work if/when this happens, and despite any changes which may
be made to core's sessionlib in future.
2024-04-02 11:40:17 +08:00
Huong Nguyen 9ae3cd1be7 MDL-81393 media_videojs: Switch to use Ogv.Js tech for Chrome 2024-04-02 10:27:07 +07:00
David Mudrák 829c469c5b MDL-81351 lang: Use the fixed strings in the tests, too 2024-03-28 11:01:39 +01:00
Helen Foster 3fdae1298f MDL-81351 lang: Import fixed English strings (en_fix) 2024-03-28 10:58:24 +01:00
Stevani Andolo e67ae9fe63 MDL-81072 tool_mfa: Fixed bulk user actions capability 2024-03-28 17:35:11 +08:00
Andrew Nicols f0f1caa67d MDL-81306 core: Do not use xsendfile for request dirs 2024-03-28 09:30:07 +08:00
Andrew Nicols ee06a613b3 MDL-81306 core: Remove docs on use of xsendfile with request dirs
This reverts the change made in MDL-80648 and adds a note to not do it.
2024-03-28 09:29:26 +08:00
Ilya Tregubov bc0c77d35c Merge branch 'mdl80598-403' of https://github.com/matthewhilton/moodle into MOODLE_403_STABLE 2024-03-28 09:06:11 +08:00
Ilya Tregubov 8c41baf328 Merge branch 'MDL-80302-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2024-03-28 08:59:24 +08:00
Amaia Anabitarte 355e8b6cf9 MDL-80818 QuickForm: Freeze all elements with the same name
There are some radio buttons in activity Completion Conditions settings
that must be frozen altogether, because all of them have the same name.
2024-03-27 16:24:50 +01:00
Amaia Anabitarte fcbe53778d MDL-80302 completion: Improve default completion error tracking
Co-authored-by: Sara Arjona <sara@moodle.com>
2024-03-27 16:12:12 +01:00
Vithusha Uthayakumar f1bb6ea00c MDL-81298 external: fix typo error in failing testcase 2024-03-27 16:48:39 +11:00
Ilya Tregubov 013d4e7303 Merge branch 'MDL-80036-403' of https://github.com/mickhawkins/moodle into MOODLE_403_STABLE 2024-03-27 11:08:11 +08:00
Andrew Nicols 0f4478b8e5 MDL-80332 core: Coding style fixes 2024-03-26 22:44:51 +08:00
Andrew Nicols 5dfcc1aedd Merge branch 'MDL-80332-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2024-03-26 22:43:37 +08:00
sam marshall aa4baad9a4 MDL-81359 core_courseformat: Availability 'Show more' unwelcome outing
If the availability restriction includes a link, then 'Show more'
always appeared even when the entire text is already shown.
2024-03-26 13:40:41 +00:00
Sara Arjona 1c530d86d1 weekly release 4.3.3+ 2024-03-26 12:31:12 +01:00
Jun Pataleta 88d342fdf2 Merge branch 'MDL-80384-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-03-26 11:16:18 +08:00
Jun Pataleta c96efdb613 MDL-80384 courseformat: Set activity icon alt text on editing mode
From a warning using WAVE:
* The title attribute value for images that lack an alt attribute value
will be presented to screen reader users. However, providing image
content in the alt attribute typically provides better accessibility,
and should be used in most cases. The title attribute will generate a
mouse hover tooltip which may or may not be desired - this tooltip will
not be presented to touch screen or keyboard users.
2024-03-26 11:02:35 +08:00
Jun Pataleta 06e13d72f0 Merge branch 'MDL-81266_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-03-26 10:33:57 +08:00
Matthew Hilton 336f311676 MDL-80598 bigbluebutton: Gracefully handle invalid customdata 2024-03-26 10:09:30 +10:00
Sara Arjona 211c8caca5 Merge branch 'MDL-81246-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-25 17:01:45 +01:00
Sara Arjona ce8ec44c40 Merge branch 'MDL-80088-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-25 16:20:31 +01:00
Juan Leyva d7a0cb8d00 MDL-80332 tool_mobile: Fallback por app launches 2024-03-25 16:05:07 +01:00
Juan Leyva 7cec5c9b71 MDL-80332 login: New hooks for complete login and passed MFA 2024-03-25 15:56:01 +01:00
Laurent David 0b3802bb0b MDL-80384 core_courseformat: Remove activty icon link
* Remove the link over the image icon for an activity and use
the title attribute for the tooltip
2024-03-25 13:25:34 +01:00
Andrew Nicols 37c7b5004b Merge branch 'MDL-80827-403' of https://github.com/stevandoMoodle/moodle into MOODLE_403_STABLE 2024-03-25 11:44:22 +08:00
Huong Nguyen 05305ea751 Merge branch 'MDL-79829-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-03-25 09:22:37 +07:00
Huong Nguyen 5cb5826c45 Merge branch 'MDL-81074-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-03-25 09:15:48 +07:00
Andrew Nicols a5e94e0a08 MDL-81074 core: Simplify strftime tests 2024-03-25 09:51:25 +08:00
Luca Bösch aa2919309f MDL-81074 core: align core_date::strftime results for numeric and string 2024-03-25 09:51:25 +08:00
Andrew Nicols 1c42deaf58 MDL-81074 core: Add assertTimeStringMatches PHPUnit Assertion
Also raised as https://github.com/sebastianbergmann/phpunit/issues/5757
2024-03-25 09:51:25 +08:00
Eloy Lafuente (stronk7) 7d01ea90fe MDL-81266 composer: Bump behat/behat to 3.14 and other deps
Only applied to 402_STABLE and up, all them requiring PHP 8.0
as a minimum. And generated following the instructions in the
dev docs.
2024-03-23 13:37:33 +01:00
Paul Holden e7a3a5982e MDL-77838 repository: preserve empty dirs in download if selected. 2024-03-22 16:22:40 +00:00
Sara Arjona 74d3c96149 weekly release 4.3.3+ 2024-03-22 14:02:56 +01:00
Jun Pataleta ef94d46a7f Merge branch 'MDL-81313-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-03-22 11:47:46 +08:00
Sara Arjona d537ffbeb5 Merge branch 'MDL-80488-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-21 17:30:48 +01:00
Sara Arjona 65afe1196a Merge branch 'MDL-79913-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-21 17:18:18 +01:00
Sara Arjona 23ec91a2c4 Merge branch 'MDL-81112-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-21 17:11:35 +01:00
Sara Arjona e4b036da69 Merge branch 'MDL-69688_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-03-21 15:29:53 +01:00
Huong Nguyen 4a454da7ce Merge branch 'MDL-81289-403' of https://github.com/ferranrecio/moodle into MOODLE_403_STABLE 2024-03-21 15:12:18 +07:00
Huong Nguyen 7e5bd6d54e Merge branch 'MDL-80835-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-03-21 14:53:31 +07:00
Jake Dallimore fff106ffc2 MDL-80835 auth_lti: fix bad cast breaking samesite LTI usage 2024-03-21 15:37:38 +08:00
Jake Dallimore b6470d6252 MDL-80835 enrol_lti: add partitioning support for OIDC state cookie
Adds the property that is required by Chrome to opt-in to its 3rd party
cookie partitioning solution, CHIPS. This specific change ensures the
'state' cookie, used in the OIDC handshake, has partitioning support.
This cookie can be partitioned unconditionally, since it's a cookie
controlled by the library and one we don't expect to be set without
partitioning elsewhere.
2024-03-21 15:37:37 +08:00
Jake Dallimore d95a5de2ac MDL-80835 auth_lti: add partitioning to post-auth MoodleSession cookie
Adds the property that is required by Chrome to opt-in to its 3rd party
cookie partitioning solution, CHIPS. This specific change to auth_lti is
to ensure the MoodleSession Set-Cookie header resulting from
complete_user_login() calls (in auth.php) have this property set.
2024-03-21 15:37:37 +08:00
Jake Dallimore b14d02d177 MDL-80835 enrol_lti: add cookies required notice to auth login endpoint
This will be displayed if the cookie checks fail, which currently occurs
in Safari only.
2024-03-21 15:37:37 +08:00
Jake Dallimore 93aac92d01 MDL-80835 enrol_lti: add partitioning support to MoodleSession cookie
Adds the property that is required by Chrome to opt-in to its 3rd party
cookie partitioning solution, CHIPS. This specific change deals with the
cookie that is set when the user is not yet auth'd with the site and is
necessary to facilitate OIDC nonce retrieval and validation.
2024-03-21 15:37:37 +08:00
Jake Dallimore 1e09e6ffa6 MDL-80835 auth_lti: add cookie helper facilitating CHIPS opt-in
To opt a cookie in to Chrome's 3rd party cookie partitioning solution,
CHIPS, the property 'Partitioned;' needs to be set. This adds a helper
class supporting this, for a given cookie(s).

Note also, PHP's native
cookie APIs (setcookie, etc) don't support this cookie property yet -
(https://github.com/php/php-src/issues/12646).

Since this class is intended to allow existing Set-Cookie headers to be
modified before being sent (e.g. allowing clients to set a property on a
cookie set elsewhere in code), it deals with the headers directly anyway
but it means that new cookies must also use this helper to opt-in,
instead of relying on setcookie(). E.g. where the intent is to add
partitioning support to a new cookie, that cookie must first be set
(setcookie) and then it may opt-in to partitioning via this helper;
partitioning support cannot be achieved directly through setcookie and
friends yet.
2024-03-21 15:37:36 +08:00
Eloy Lafuente (stronk7) 7e170eb1b3 MDL-69688 phpunit: Improve test_context_not_used
This adds a few changes to the old test_context_not_used test:

- Move it to become an advanced_test, because its mission
  is to verify that the assertEventContextNotUsed() assertion
  works as expected.
- For consistency, also move the fixtures to own phpunit fixtures.
- Add proper coverage tags, to verify that the assertion is being
  covered.
- Add a data provider to provide all the current cases and ease
  any future case that may be needed in the future. One by one
  because previously there was code never executed with the
  warning expectation causing the test to stop.
- Run them in isolation, while this is not strictly required, it's
  including external fixtures and, we'll need that isolation soon
  (for changes coming when moving the test to PHPUnit 9.6 in MDL-81266).
2024-03-21 08:30:32 +01:00
Jake Dallimore 8e9abf5bd6 MDL-81313 core: Revert "Merge branch 'MDL-80338-403'
This reverts commit 3905247a84, reversing
changes made to 4414c4598e.
2024-03-21 11:30:10 +08:00
Paul Holden d238e4fd99 MDL-80488 mod_lesson: avoid overflowing length of page titles. 2024-03-20 23:51:18 +00:00
Paul Holden d3faf37e8b MDL-81112 gradereport_grader: show user country value correctly. 2024-03-20 23:49:57 +00:00
Jun Pataleta 0f32a8b13d Merge branch 'MDL-79007-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-03-20 15:39:23 +08:00
Jun Pataleta 6f55bc72a9 Merge branch 'MDL-81110-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2024-03-20 15:37:51 +08:00
Mark Johnson 443656c85c MDL-79007 calendar: Make screen readers read the new month name 2024-03-20 15:08:15 +08:00
Mark Johnson aed27a6b69 MDL-79007 calendar: Make screen readers read out calendar day popovers 2024-03-20 15:05:20 +08:00
Mark Johnson 5e6a2dc020 MDL-79007 calendar: Expose block month link names to screen readers 2024-03-20 15:02:14 +08:00
Ilya Tregubov 37f5032db5 weekly release 4.3.3+ 2024-03-20 08:54:10 +08:00
Ilya Tregubov 378a2e3f32 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-03-20 08:54:07 +08:00
ferranrecio bda0176205 MDL-81289 core_courseformat: fix get_format_string params 2024-03-19 17:34:09 +01:00
Mikel Martín 1cc3736947 MDL-81110 theme_boost: Fix scroll-margin-top in #maincontent
- Fix scroll-margin-top in #maincontent element
- Add scroll-margin-top for focused elements too
2024-03-19 14:51:58 +01:00
Paul Holden 1e7b4f6537 Merge branch 'MDL-78438-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2024-03-19 10:45:34 +00:00
Ilya Tregubov b709cc3eee MDL-78438 gradereport_grader: Fix Behat test
Seems Oracle is too slow on pressing buttons :))
2024-03-19 17:46:47 +08:00
Michael Hawkins 03102060dd MDL-80036 core: Update security.txt expiry 2024-03-19 15:31:08 +08:00
Huong Nguyen 1c31e9722f Merge branch 'MDL-81156-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-03-19 10:55:47 +07:00
Andrew Nicols a42516478d Merge branch 'MDL-77255-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-19 11:39:21 +08:00
Huong Nguyen 02300131b7 MDL-77255 block_tag_flickr: Update to match with the new API
Flickr dropped php_serial format, we need to change to JSON format
2024-03-19 10:14:46 +07:00
Ilya Tregubov 28f91d0b2d Merge branch 'MDL-80240-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-19 10:28:13 +08:00
Ilya Tregubov 40dbc075d8 Merge branch 'MDL-80919-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-19 10:14:27 +08:00
Ilya Tregubov 7050d41112 Merge branch 'MDL-78438-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-19 09:47:16 +08:00
Ilya Tregubov 609e18fbc3 Merge branch 'MDL-80793-403' of https://github.com/OxyOCE/moodle into MOODLE_403_STABLE 2024-03-19 09:12:41 +08:00
AMOS bot c038bc3d09 Automatically generated installer lang files 2024-03-19 00:08:51 +00:00
Sara Arjona 1c31846b97 Merge branch 'MDL-72923-M403' of https://github.com/michael-milette/moodle into MOODLE_403_STABLE 2024-03-18 16:57:01 +01:00
Sara Arjona a0739d133d Merge branch 'MDL-81254-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-18 16:08:15 +01:00
Laurent David 416a586a1d MDL-79829 theme: Fix Course index draggable cursor
* Make the cursor consistent for drag and drop operation
to be the same in the course content and the course index
2024-03-18 07:39:15 +01:00
Laurent David 3b8bde71fa MDL-79829 core: Reactive drag and drop cursor
* When dragging and dropping an item, the cursor should be
set to "move" and not copy.
2024-03-18 07:39:15 +01:00
Jun Pataleta 0dfe161746 Merge branch 'MDL-80279-403' of https://github.com/pedrojordao/moodle into MOODLE_403_STABLE 2024-03-18 11:22:42 +08:00
Paul Holden 2bc19b944e MDL-79913 grade: respect messaging config for user heading buttons. 2024-03-15 17:00:28 +00:00
Paul Holden 5c0e2639d4 MDL-81254 grade: ensure we always close the graded user iterator.
This ensures that the recordsets contained within are also closed
when we're done with them.
2024-03-15 16:04:07 +00:00
Huong Nguyen 45ad566de9 weekly release 4.3.3+ 2024-03-15 21:48:19 +07:00
Huong Nguyen 5fc8c89068 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-03-15 21:48:18 +07:00
Pedro Jordao eac4b571ee MDL-80279 core: Set new attributes for user profile initials
When the user does not have a profile photo and initials are displayed,
there is no alt text for the initials which causes accessibility
issues, so with this change I added the user's full name to the title
and aria-label attributes and I set a role='img' when the element span
is rendered.
2024-03-15 07:39:23 -03:00
Jake Dallimore e2e8268afb Merge branch 'MDL-80167-403-int' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-15 12:54:47 +08:00
Huong Nguyen e70e73d9b7 MDL-81246 dml: Check the statement resource before freeing it 2024-03-15 11:19:43 +07:00
Huong Nguyen 7ad4a82cb3 MDL-80167 core: Skip Oracle for Oracle environment in unit tests 2024-03-15 08:46:35 +07:00
Ilya Tregubov 2c757362db Merge branch 'MDL-81190-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-15 08:42:19 +08:00
Tim Hunt bf505f1075 MDL-81227 question bank: improve the order of the action menu 2024-03-14 17:38:02 +00:00
Sara Arjona e81ce235b6 Merge branch 'MDL-80167-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-14 11:54:59 +01:00
Sara Arjona a99c603cba Merge branch 'MDL-80479-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-03-14 11:47:56 +01:00
Huong Nguyen d424951ce0 MDL-80167 admin: Add environment check for Oracle database 2024-03-14 17:42:39 +07:00
Simey Lameze 585eb7d2e8 MDL-80479 behat: improve new test for quiz timer 2024-03-14 10:21:17 +08:00
Angelia Dela Cruz 745c87c8a3 MDL-80479 mod_quiz: Behat to set quiz opening and closing time 2024-03-14 10:21:17 +08:00
Ilya Tregubov 293ccf1948 MDL-77779 competency: Fix course restore from older backups.
overridegrade might be not set if Moodle < 4.1
2024-03-14 09:29:54 +08:00
Simey Lameze fa534ac13e MDL-81156 behat: coverage for force course language 2024-03-14 09:04:34 +08:00
AMOS bot be7316f99e Merge branch 'MOODLE_403_STABLE' into install_403_STABLE 2024-03-14 00:13:18 +00:00
Sara Arjona f6c86bbd1b Merge branch 'MDL-80865-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-13 12:18:53 +01:00
Ilya Tregubov d03306a1ce Merge branch 'MDL-80565-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-03-13 11:22:45 +08:00
AMOS bot 6d2a2edc34 Automatically generated installer lang files 2024-03-13 00:11:10 +00:00
Ilya Tregubov a30f476d18 weekly release 4.3.3+ 2024-03-13 08:09:48 +08:00
Tim Hunt 81fafbc199 MDL-81039 qtype_multichoice: better way to control feedback display 2024-03-12 12:00:05 +01:00
Tim Hunt 842dd9f729 MDL-81039 question: Improve some comments in question_display_options 2024-03-12 12:00:00 +01:00
Huong Nguyen a734d9caba Merge branch 'MDL-76805-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-03-12 10:32:24 +07:00
Shamiso.Jaravaza 5fdf46bbca MDL-76805 mod_bigbluebuttonbn: Fix up behat tests 2024-03-12 10:58:33 +08:00
Ilya Tregubov 8912f31a06 Merge branch 'MDL-81035-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-12 10:40:44 +08:00
Ilya Tregubov 1cb9abbb90 Merge branch 'MDL-81127-403' of https://github.com/izendegi/moodle into MOODLE_403_STABLE 2024-03-12 10:27:13 +08:00
Ilya Tregubov 1782190cbe Merge branch 'MDL-81191-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-12 10:15:47 +08:00
Paul Holden e0fc0dc15b MDL-81191 course: define batch stealth feedback language string. 2024-03-11 17:27:17 +00:00
Paul Holden 0b82683d9d MDL-81190 mod_assign: correct context argument to format string. 2024-03-11 16:58:00 +00:00
Sara Arjona b9ca2c5320 Merge branch 'MDL-79027-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-11 17:26:56 +01:00
Laurent David 4e9c9df95a MDL-80565 report_loglive: Do not show logs from other groups
* Prevent users from seeing logs from other groups if
groupmode is in SEPARATEGROUP
2024-03-11 14:30:55 +01:00
Laurent David afd4ccf425 MDL-80565 report_log: Prevent user from seeing other logs
* When no groups are selected we forcefully prevent
users from seeing users' logs from other groups
2024-03-11 14:30:55 +01:00
Laurent David b66a627a00 MDL-80565 report_log: Fix report log selector
* When using the report log and we select a group, the group
list should show the right list of users
2024-03-11 14:30:54 +01:00
Laurent David 0f235f56c1 MDL-80565 report: Revert MDL-41465 changes
* Partial revert of changes made in MDL-41465,
while keeping the API changes made in enrol/lib.
2024-03-11 14:30:54 +01:00
Tim Hunt 36e03243da MDL-81114 question: fix selection of random questions with draft status
We need to pick the latest 'ready' version of each question
(not questions where the latest version is ready).

There are test of the behaviour of random_question_loader, and
then a test in the quiz to prove it works in use.
2024-03-11 10:45:19 +00:00
Huong Nguyen 7fe8b9e448 MDL-81035 core: Fix redirect with sub-path 2024-03-11 15:56:14 +07:00
Adam Olley 639dceb19b MDL-81182 factor_email: Correct path for config.php require
Without this, the path is incorrect and can, in some circumstances (if
config.php is a symlink for one) - result in PHP requiring the config
file twice.
2024-03-10 00:35:02 +10:30
Tim Hunt db8d3fef9c MDL-81114 question: clarify the SQL in ensure_filtered_questions_loaded
This should not change the (currently buggy) behaviour at all,
but my brain needs this to understand how to fix the bug.
2024-03-08 19:31:32 +00:00
Tim Hunt 14ce932d9a MDL-81114 question: fix coding style in random_question_loader_test 2024-03-08 19:31:32 +00:00
Paul Holden 6cde2b3bc0 Merge branch 'MDL-81128-403-STABLE' of https://github.com/davidcerezal/moodle into MOODLE_403_STABLE 2024-03-08 14:50:26 +00:00
Paul Holden aec51de205 Merge branch 'MDL-81152-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-03-08 14:45:22 +00:00
Iñigo Zendegi aba3268336 MDL-81127 filter: Support filters on course completion message 2024-03-08 14:05:52 +01:00
Sara Arjona fde6c3c7ef weekly release 4.3.3+ 2024-03-08 11:11:50 +01:00
Ilya Tregubov 0ded712a6b Merge branch 'MDL-78547-403-phpunit' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-03-08 13:44:56 +08:00
Huong Nguyen a28e42c0c1 MDL-78547 quiz: Remove unnecessary call to clear_regrade_date_cache()
This method is designed to clear the values but these values are never set anywhere
It's safe to remove it out of the test now
2024-03-08 12:42:04 +07:00
Huong Nguyen 2fe254dac4 Merge branch 'MDL-81082-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-08 10:28:07 +07:00
Huong Nguyen 24b0aa122e Merge branch 'MDL-81123-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-03-08 10:13:01 +07:00
Huong Nguyen b7d4c3cef2 Merge branch 'MDL-81046-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-03-08 10:07:08 +07:00
Ilya Tregubov f1feb6fcd6 Merge branch 'MDL-80550-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-08 11:05:44 +08:00
Huong Nguyen d56573e41c Merge branch 'MDL-78547_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-03-08 08:52:11 +07:00
Ilya Tregubov 7fd5907b8d Merge branch 'MDL-80943-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-08 09:22:15 +08:00
Tim Hunt d365aef387 MDL-78547 quiz: fix how deprecated add random calls structure 2024-03-07 16:13:01 +00:00
Tim Hunt dcff2a039f MDL-78547 quiz: in a preview, if a question has been edited, update it
As part of implementing this, there is a new more efficient method
get_version_information_for_questions_in_attempt to see if any
questions in a quiz need to be updated. The regrade code was updated
to take advantage of this.

Co-authored-by: Khoa Nguyen Dang <khoanguyend7@nashtechglobal.com>
2024-03-07 16:13:01 +00:00
Tim Hunt 189464ade2 MDL-78547 questions: a way to replace a attempt in a usage
... without keeping the old attempt

Co-authored-by: Khoa Nguyen Dang <khoanguyend7@nashtechglobal.com>
2024-03-07 16:13:01 +00:00
Sara Arjona c01663867a MDL-69656 backup: Remove illegal whitespaces 2024-03-07 12:05:34 +01:00
Paul Holden bf0849d9a4 MDL-80943 reportbuilder: select-type customfields should be text.
The column type determines the available aggregation options present
for the column. Custom fields of type "select" should be considered as
text fields for this purpose, because their stored value represents
the index to their available options, rather than having any distinct
meaning of it's own for display.
2024-03-07 09:47:53 +00:00
Huong Nguyen 1c2004265c Merge branch 'MDL-79990-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-03-07 10:04:40 +07:00
Mihail Geshoski 90743958a7 MDL-81152 mod_lti: Custom parameter configuration in the instance form
Re-enables the configuration of custom parameters when creating or
modifying a tool instance in a course.

Backport of MDL-80914.
2024-03-07 09:57:46 +08:00
Simey Lameze c91ee7412e MDL-79990 behat: custom step to verify assign grading data
This commit also optimise the new behat test.
2024-03-07 09:44:22 +08:00
Angelia Dela Cruz 7e076e4dc8 MDL-79990 gradingform: Behat test for marking guide information display 2024-03-07 09:44:21 +08:00
Andrew Nicols 6b8243f6af Merge branch 'MDL-69656-MOODLE_403_STABLE' of https://github.com/sh-csg/moodle into MOODLE_403_STABLE 2024-03-06 23:23:27 +08:00
David Cerezal f7d052160f MDL-81128 behat: use specific step instead a workaround 2024-03-06 16:04:44 +01:00
Michael Milette 49fcf4e984 MDL-72923 message: Fixed levels of headings in messaging drawer. 2024-03-06 07:33:52 -05:00
Stefan Hanauska 8e874c5ad6 MDL-69656 backup: Replace urlencoded pluginfile urls 2024-03-06 07:40:59 +01:00
Andrew Nicols b710b9b222 Merge branch 'MDL-80183-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-06 14:04:44 +08:00
Andrew Nicols 4659884ef4 Merge branch 'MDL-80646-403' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-03-06 13:22:11 +08:00
Huong Nguyen c0a6ce3bed Merge branch 'MDL-80241-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-06 09:23:46 +07:00
Huong Nguyen 4a339ac3e5 Merge branch 'MDL-79278-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-03-06 09:13:08 +07:00
Angelia Dela Cruz b2da7b06a3 MDL-79278 mod_quiz: Teacher can set how quiz questions behave behat
Co-authored-by: Simey Lameze <simey@moodle.com>
2024-03-06 09:45:26 +08:00
David Mudrák 3ec1c77fc8 MDL-80160 admin: Fix site admins selector UI if the list is hardcoded
If the list of site admins was defined in the config.php, the UI to
select / modify admins never worked. But there was no indication of the
reason which was unexpected and confusing.
2024-03-05 23:45:11 +01:00
Sara Arjona 933404f2eb Merge branch 'MDL-80930-403' of https://github.com/raortegar/moodle into MOODLE_403_STABLE 2024-03-05 15:24:56 +01:00
Andrew Nicols 9c7ca927d3 Merge branch 'MDL-80731-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-03-05 22:04:47 +08:00
Sara Arjona 970fe4d26d weekly release 4.3.3+ 2024-03-05 11:22:18 +01:00
Andrew Nicols b89e60af09 MDL-81123 tiny_html: Make empty codemirror region clickable 2024-03-05 14:12:15 +08:00
Mihail Geshoski 6784ab5334 MDL-80646 mod_lti: Enable key and secret configuration in legacy tools
When restoring a manually configured tool to a different site, the key
and secret are not being restored, which is an expected behaviour.
However, legacy (pre-4.3) manually configured tools do not have the
option to configure the key and secret, which makes these instances
unusable. To make sure these tools will continue working after a backup
and restore, we need to re-enable the key and secret fields in the
legacy instance settings form.
2024-03-05 13:23:32 +08:00
Jun Pataleta e644d854f3 Merge branch 'MDL-80819_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-03-05 11:50:01 +08:00
Huong Nguyen f9e36cc9f1 Merge branch 'MDL-80836-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-03-05 10:24:12 +07:00
Paul Holden 91af0db62a MDL-80240 gradereport_grader: fix userfields parameter to search sql. 2024-03-04 14:43:36 +00:00
Paul Holden 1a980f3e43 MDL-79027 block_myoverview: retrieve only course related custom fields. 2024-03-04 10:38:56 +00:00
raortegar ab1fcc6db4 MDL-80930 core: Course delete modules task handle non deletable cms 2024-03-01 13:19:06 +01:00
Jun Pataleta 994a21d4ff weekly release 4.3.3+ 2024-03-01 12:24:28 +08:00
Jun Pataleta 5bca23a73d Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-03-01 12:24:26 +08:00
Sara Arjona 9bae536652 Merge branch 'MDL-80391-403-int' of https://github.com/stevandoMoodle/moodle into MOODLE_403_STABLE 2024-02-29 08:08:57 +01:00
Stevani Andolo 151e1e8d42 MDL-80391 tiny_html: Fixed multi modal layer display 2024-02-29 13:02:21 +08:00
Huong Nguyen 6d68f5ba61 Merge branch 'MDL-80364-403' of https://github.com/pedrojordao/moodle into MOODLE_403_STABLE 2024-02-29 10:45:13 +07:00
Simey Lameze 01f67edc81 MDL-68674 behat: make content bank steps more specific 2024-02-29 09:41:52 +07:00
Andrew Nicols e3d6973ed2 Merge branch 'MDL-81042-43' of https://github.com/micaherne/moodle into MOODLE_403_STABLE 2024-02-29 09:21:42 +08:00
Sara Arjona 381de34d2a Merge branch 'MDL-81029-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2024-02-28 17:22:04 +01:00
Sara Arjona 8e3b63a32a Merge branch 'MDL-80391-403' of https://github.com/stevandoMoodle/moodle into MOODLE_403_STABLE 2024-02-28 17:09:48 +01:00
Sara Arjona 33f4a94841 Merge branch 'mdl-80917-403' of https://github.com/Fragonite/moodle into MOODLE_403_STABLE 2024-02-28 16:44:20 +01:00
Sara Arjona 52854e2805 Merge branch 'MDL-80834_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-02-28 16:34:39 +01:00
Sara Arjona 2fe3312360 Merge branch 'MDL-80197-403' of https://github.com/pedrojordao/moodle into MOODLE_403_STABLE 2024-02-28 16:09:41 +01:00
Jun Pataleta 4abf80757d Merge branch 'MDL-68674-403' of https://github.com/lucaboesch/moodle into MOODLE_403_STABLE 2024-02-28 23:03:58 +08:00
Sara Arjona 6ed4268891 Merge branch 'MDL-52891-MOODLE_403_STABLE' of https://github.com/opitz/moodle into MOODLE_403_STABLE 2024-02-28 15:23:24 +01:00
Paul Holden 6cd156fdbc MDL-81082 tool_mfa: format site name in email subject. 2024-02-28 10:13:07 +00:00
Andrew Nicols 3a1443ee0b MDL-80684 core: Correct location of task tests 2024-02-28 14:20:54 +08:00
Andrew Nicols c108c1ead7 Merge branch 'MDL-80684-MOODLE_403_STABLE-fail_running_tasks_on_shutdown' of https://github.com/praxisdigital/moodle into MOODLE_403_STABLE 2024-02-28 14:20:49 +08:00
Stevani Andolo 5c9a7231d7 MDL-80827 tool_xmldb: Fixed xmldb editor broken with PHP 8.1 2024-02-28 10:05:00 +08:00
AMOS bot 1ad5ef6c30 Automatically generated installer lang files 2024-02-28 00:11:07 +00:00
Harry Smith e2ffae6fb6 MDL-80793 calendar: Setup $USER with all fields 2024-02-28 10:37:59 +13:00
Pedro Jordao a5e26adf33 MDL-80364 message: Change icon and background-color when item selected
Icon and background-color had contrast issues in the selected state.
2024-02-27 15:33:22 +01:00
Sara Arjona 228c50444d Merge branch 'MDL-81036-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-02-27 13:04:09 +01:00
Matthias Opitz 997ca5d78e MDL-52891 calculatedsimple question: forcing new gen. values into form
* forcing new generated sets of wildcard values into the question edit form so they can be saved.
* added Behat test to check new generated values are used.
2024-02-27 11:13:26 +00:00
Huong Nguyen 2abf7ccd5f Merge branch 'MDL-78984-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-27 09:53:45 +07:00
Michael Aherne c3c25c7899 MDL-81042 quiz: Typo in renamed class. 2024-02-26 09:05:35 +00:00
Andrew Nicols 911bbea72e MDL-81046 core: Add hook to apis list 2024-02-26 10:12:22 +08:00
Paul Holden 885a65b33a MDL-80550 cohort: get IDs for customfields correctly in external search. 2024-02-23 15:27:35 +00:00
Amaia Anabitarte f89f680035 MDL-81029 core_course: Fix activity settings page title 2024-02-23 16:04:39 +01:00
Marina Glancy 8e08798e8e MDL-81036 behat: fix the action menu clickable area selector 2024-02-23 11:22:54 +00:00
Paul Holden 064450ce1f MDL-78984 mod_assign: observe timelimit config in override form. 2024-02-23 11:18:45 +00:00
Eloy Lafuente (stronk7) 4d1aaab4c0 MDL-80819 install: halt any install if php min version is not met
Apart from environmental stuff, the moodle_minimum_php_version_is_met()
function is executed by all installs (web, cli, database, ...)
and halts any installation (early) not meeting the PHP constraints.
2024-02-23 11:08:18 +01:00
Jun Pataleta 7576c307fb Merge branch 'MDL-77965-m403' of https://github.com/NeillM/moodle into MOODLE_403_STABLE 2024-02-23 17:59:46 +08:00
Luca Bösch f3f10bfab6 MDL-68674 theme: Have block headers have h3 class="h5". 2024-02-23 10:59:44 +01:00
Paul Holden e7bf300cdf MDL-78438 gradereport_grader: use lang string for collapsed columns. 2024-02-23 09:39:12 +00:00
Neill Magill f357b3f715 MDL-77965 unit tests: Add covers annotation 2024-02-23 09:32:45 +00:00
Neill Magill 4038a3419b MDL-77965 quiz: Improve efficiency of the data export
Before this change the query used an index scan to perform the
export, this could be really expensive on the database.

After the change the the query will use far more efficient joins,
on a large MySQL instance this can take minutes off of the query
time.

In additon the query was returning two columns that are not used
in the function. The layout column was causing the UNION to fail
on Oracle as it cannot compare text columns, removing these
columns from the returned data should further increase
performance further.
2024-02-23 09:32:45 +00:00
Neill Magill fe76a2562e MDL-77965 grade: Improve data export performance
The existing query was inefficient using an index scan and
index merges. This change splits the query up into many individually
much more efficient queries.

This should significantly improve performance on large sites.
2024-02-23 09:32:45 +00:00
Neill Magill 6f9d8ca34f MDL-77965 notes: Improve data export performance
The UNION caused the query to be run in a way that is very
inefficient on MySQL, separating the queries causes each of them to
run in a much more efficient form.

Any duplicated will be filtered out on the PHP side instead of in
the database. On large Moodle sites this is preferable as the
extract is likely to be performed on a server dedicated to running
the Moodle cron and so there will be less of effect on resources
that are used to serve end users.
2024-02-23 09:32:45 +00:00
Neill Magill 1bcd7533c4 MDL-77965 calendar: Improve performance of data extract
The UNION caused the query to be run in a way that is very
inefficient on MySQL, separating the queries causes each of them to
run in a much more efficient form.

Any duplicated will be filtered out on the PHP side instead of in
the database. On large Moodle sites this is preferable as the
extract is likely to be performed on a server dedicated to running
the Moodle cron and so there will be less of effect on resources
that are used to serve end users.
2024-02-23 09:32:45 +00:00
Neill Magill ff5f100601 MDL-77965 competency: Improve query performance and data
This change removes LEFT JOINS to improve the performance
when run against Moodle sites with very large data sets.

It will also cause some additional contexts to be returned:

1. When a user has modified a user_evidence_competency
   without modifying its associated user_evidence record
2024-02-23 09:32:45 +00:00
Neill Magill 248742095d MDL-77965 competency: Correct order of expectations
The expected value was being passed second which meant that the
messages sent by PHPUnit when this fails are the wrong way round.
2024-02-23 09:32:45 +00:00
Jun Pataleta 6219f4d2ac Merge branch 'MDL-80805-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2024-02-23 17:31:57 +08:00
Huong Nguyen b0cd9cac9a weekly release 4.3.3+ 2024-02-23 08:37:44 +07:00
Huong Nguyen be997d91fa Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-02-23 08:37:42 +07:00
Paul Holden 77c0a7cf05 MDL-80183 message: improve ARIA labelling of total/unread counts. 2024-02-22 17:03:52 +00:00
Paul Holden b26a2d7328 MDL-80183 message: render user online status as an accessible icon. 2024-02-22 17:01:00 +00:00
Paul Holden 3f8fb93834 MDL-80731 core: ensure valid /Lang attribute in generated PDF files.
As with the changes in 4be39296, PDF files have criteria for validity
of language identifiers.
2024-02-22 16:53:03 +00:00
Huong Nguyen f278206b91 Merge branch 'MDL-80844_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-02-22 11:24:00 +07:00
Huong Nguyen 3905247a84 Merge branch 'MDL-80338-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-22 11:18:06 +07:00
Huong Nguyen 4414c4598e Merge branch 'MDL-62404_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-02-22 10:49:52 +07:00
Huong Nguyen 897436f056 Merge branch 'MDL-80868-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-22 10:43:17 +07:00
Huong Nguyen c68e966686 Merge branch 'MDL-80950-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-02-22 10:40:29 +07:00
Huong Nguyen f7ed5663a7 Merge branch 'MDL-80862-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-02-22 10:37:49 +07:00
Huong Nguyen 8f13279477 Merge branch 'MDL-80481_403' of https://github.com/santoshndev/moodle into MOODLE_403_STABLE 2024-02-22 09:50:51 +07:00
Santosh Nagargoje f50245a6d3 MDL-80481 report: Fixed breadcrumb menu issue 2024-02-22 02:00:19 +05:30
Sara Arjona c1b7ab67c7 Merge branch 'MDL-76441_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-02-21 17:49:56 +01:00
Sara Arjona 9c195964aa Merge branch 'wip_MDL-79802_m43_v8' of https://github.com/gjb2048/moodle into MOODLE_403_STABLE 2024-02-21 17:32:05 +01:00
Mark Johnson 39af71da2c MDL-79174 availability: Allow group condition to use hidden groups
Previously, groups with GROUP_VISIBILITY_NONE could be selected for an
availability condition, but as the group API did not return a user's own
groups with this visibility, the condition's is_available check always
failed.

This change uses the new $includehidden parameter to get all of a user's
groups from groups_get_user_groups when evaluating the condition, so
these groups work as expected. Due to the enforced hiding of conditions
containing these groups, they will never be seen by the user.
2024-02-21 15:42:47 +00:00
Mark Johnson 558de0b8b4 MDL-79174 groups: Add includehidden parameter
This allows groups_get_user_groups to return groups with
GROUP_VISIBILITY_NONE that the specified user belongs to. The parameter
is false by default, and should be use with care as membership of these
groups should not be revealed to the user.
2024-02-21 15:42:47 +00:00
Sara Arjona b56fe5fff9 Merge branch 'MDL-80605-403' of https://github.com/jbs1/moodle into MOODLE_403_STABLE 2024-02-21 16:19:19 +01:00
Sara Arjona 716113cbfb Merge branch 'MDL-80404-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-02-21 13:23:31 +01:00
Paul Holden 9eac2f3c93 MDL-80241 grade: update user filtering by matched properties.
Invert the previous logic, which maintained a "banned" list of
fields, to instead only try to filter on those fields that are
explicitly defined to support that.
2024-02-21 10:21:36 +00:00
Sara Arjona 701e4cc18d Merge branch 'MDL-78944-43' of https://github.com/Chocolate-lightning/moodle into MOODLE_403_STABLE 2024-02-21 09:18:56 +01:00
Angelia Dela Cruz 104be7a8a7 MDL-80404 mod_data: Behat for url autolinking and opening in new window 2024-02-21 16:01:56 +08:00
Huong Nguyen adf6b7bf7f Merge branch 'MDL-79792-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-02-21 14:25:28 +07:00
Angelia Dela Cruz aaf858c6db MDL-79792 core_badges: Behat test for awarding badge to group members 2024-02-21 14:01:24 +08:00
Jun Pataleta a8fa0e61ac Merge branch 'MDL-79003-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-02-21 10:36:10 +08:00
Jun Pataleta 9287d34b78 MDL-78370 block_myoverview: Conditionally show "All" paging option
To minimise performance issues when displaying courses in Summary view,
we need to conditionally show the "All" paging option. This commit
will prevent the "All" paging option to be shown if the following
conditions are met:
- The display mode is "summary"; and
- There are more than 100 courses to be shown.
2024-02-21 09:43:28 +08:00
Juan Leyva 115b8e9a6c MDL-79802 tool_mobile: Support new setting in the mobile app 2024-02-20 18:09:57 +00:00
Gareth Barnard 39fcdac6d3 MDL-79802 core_h5p: Add a new setting for adding custom H5P styles. 2024-02-20 18:09:41 +00:00
Paul Holden 90d0f55fe1 MDL-80919 course: initial check for section modules to duplicate. 2024-02-20 16:22:33 +00:00
Sara Arjona 6c1b457252 Merge branch 'MDL-80912-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-20 15:39:24 +01:00
Sara Arjona b0c9e538e4 Merge branch 'MDL-80383-403' of https://github.com/rjnl/moodle into MOODLE_403_STABLE 2024-02-20 15:20:06 +01:00
Paul Holden 5e968b8864 MDL-80088 mod_imscp: better uploaded package filetype validation. 2024-02-20 14:10:10 +00:00
Huong Nguyen ae17dcde01 MDL-76024 qtype calculated: Fix deprecation related to dynamic property 2024-02-20 12:29:31 +01:00
Paul Holden 191ac5c44c MDL-80865 customfield_textarea: empty check prior to exporting value.
Co-authored-by: Sara Bozzini <s.bozzini@cineca.it>
2024-02-20 10:54:53 +00:00
Huong Nguyen 2eca6f3d5f Merge branch 'MDL-80936-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-20 10:28:31 +07:00
Huong Nguyen 42d864754a Merge branch 'MDL-76024-MOODLE_403_STABLE' of https://github.com/opitz/moodle into MOODLE_403_STABLE 2024-02-20 10:23:35 +07:00
Andrew Nicols 7653886081 MDL-80862 testing: Reset task manager between behat tests 2024-02-20 10:54:43 +08:00
AMOS bot c86674c04d Automatically generated installer lang files 2024-02-20 00:13:56 +00:00
Pedro Jordao ab85e38732 MDL-80197 forms: Added attributes to the calendar link
The datepicker is not keyboard accessible when in a modal.

As we are using yui datepicker and the change is not simple, I added aria-hidden and tabindex properties to avoid screenreaders.
2024-02-19 21:11:52 -03:00
Jeremy Schulz c847d5ea85 MDL-80605 uploaduser: fixed username already existing when mail-matching 2024-02-19 17:24:53 +01:00
Paul Holden 30fa519fa0 MDL-80912 reportbuilder: output table caption when rendering reports.
Move the `get_name` method to the base report class, so that it can be
implemented by all report types. Provide a default implementation for
system reports based on the name of the class.

Use the name of the report as the caption. Target via Behat selectors.
2024-02-19 11:57:53 +00:00
Frederik Milling Pytlick 11a3328b06 MDL-80684 core: Fail running tasks on shutdown
When you kill a process which is executing a task, it now marks it as failed.
2024-02-19 12:06:08 +01:00
Sara Arjona dac3242a2c Merge branch 'MDL-79674-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-02-19 10:20:47 +01:00
Sara Arjona 5f20a1efc2 Merge branch 'MDL-80613-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-02-19 09:14:23 +01:00
Rodrigo Mady e258e86f15 MDL-77967 user: Add format text to custom profile fields name 2024-02-16 17:16:37 -03:00
Matthias Opitz 5e3470fd4a MDL-76024 calculated questions: improving coding style 2024-02-16 10:22:07 +00:00
Matthias Opitz c93271e1d6 MDL-76024 calculated questions: cast float type before comparison
* added calculated question for multiplication to tests/helper.php.
* added test_grading_of_negative_responses() test to question/type/calculated/tests/question_test.php
2024-02-16 10:22:07 +00:00
Eloy Lafuente (stronk7) 0ed448a277 MDL-80844 phpunit: Only some tests can use the debugging sink
The only tests that have COMPLETE* support for the debugging sink
are the advanced_testcase and the database_driver ones (store and
report). So we must ensure that the rest of tests don't use the
debugging sink at all.

Right now we are using it for storing, but later there is not
reporting, so any debugging happening within non advanced tests
is not detected.

This commit just ensures that we stop making that storing for
non advanced/database_driver tests. Nothing more, nothing less.

* Note that we have had to add a few missing bits to the
database_driver testcase because it was not 100% complete. Now
it behaves 100% the same than the advanced_testcase one regarding
the debugging sink.
2024-02-15 18:46:26 +01:00
Eloy Lafuente (stronk7) ad241529f2 MDL-76441 env: Moodle 4.2.x and 4.3.x do not support PHP 8.3 2024-02-15 18:44:52 +01:00
Sara Arjona 63d96ee2d8 MDL-80950 external: Fix PHP deprecated error for explode()
This patch fixes the following error:
PHP Deprecated:  explode(): Passing null to parameter #2 ($string)
of type string is deprecated in lib/upgradelib.php on line 1299
2024-02-15 17:52:40 +01:00
sam marshall 4f3822bba9 MDL-80805 core_form: Accessibility - add aria-required to form fields
Most types of form field will now include aria-required="true" if the
field is marked as required. This causes assistive technology to inform
users that the field is required.

Before this change, in some cases (e.g. screen reader users tabbing
through fields) users were not informed that a field is required.
2024-02-15 15:00:42 +00:00
Sara Arjona e4bbd79059 weekly release 4.3.3+ 2024-02-15 15:39:42 +01:00
Sara Arjona fe2f6bbe27 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-02-15 15:39:38 +01:00
lihidor 7f489efdde MDL-62404 mod_quiz: Delete previews after repaginate 2024-02-15 11:00:34 +00:00
Simey Lameze a0ce4d0c52 MDL-80613 behat: convert manual completion steps to use generators 2024-02-15 18:00:06 +08:00
Huong Nguyen f7f0ab2403 Merge branch 'MDL-80823-wwwroot-redirect-MOODLE_403_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_403_STABLE 2024-02-15 11:13:56 +07:00
Mathew May 3fcfe24a7e MDL-78944 gradereport_grader: Spurious behat fix 2024-02-15 10:46:34 +08:00
Jake Dallimore 194baa7436 MDL-80836 auth_lti: take user through login instead of sesspiggyback
Browsers are phasing out 3rd party cookies. Those which can be set are
partitioned to the top level embedding site, so piggybacking is
prevented. This will break the account linking process. This fix swaps
the piggyback for a login round trip, as originally intended, which
resolves the issue.
2024-02-15 10:37:39 +08:00
Stevani Andolo ffdb463148 MDL-80391 tiny_html: Fixed the loose focus in window manager 2024-02-15 10:07:57 +08:00
Alexander Van der Bellen ec0c5414b2 MDL-80917 core_backup: Clear restored course cache 2024-02-15 09:09:41 +08:00
Paul Holden 7f1caa7c57 MDL-80936 reportbuilder: fix when default customfield values are shown.
We should ensure we only show a value for the custom field (default or
otherwise) when it's actually joined to an entity it represents.
2024-02-14 12:22:47 +00:00
Sara Arjona 75b3874f97 Merge branch 'MDL-79321-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-02-14 09:35:28 +01:00
Angelia Dela Cruz 7d5ff8512a MDL-79321 mod_quiz: Behat to set quiz as interactive with multiple tries 2024-02-13 16:41:50 +08:00
Jun Pataleta 8b009ba789 Merge branch 'MDL-80402-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-02-13 15:52:10 +08:00
Jun Pataleta 28f306aac9 Merge branch 'MDL-80766-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-13 15:34:29 +08:00
Angelia Dela Cruz ab38bff9df MDL-80402 mod_quiz: Behat for interactive quiz question dependency 2024-02-13 10:44:03 +08:00
Huong Nguyen 9892a5c5fc Merge branch 'MDL-80630_403' of https://github.com/PhilippImhof/moodle into MOODLE_403_STABLE 2024-02-13 09:30:50 +07:00
Huong Nguyen 5ac04b4066 Merge branch 'MDL-80869-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-13 09:14:36 +07:00
Huong Nguyen b83ed4284e Merge branch 'MDL-80326-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-02-13 08:55:50 +07:00
AMOS bot 119dc62c26 Automatically generated installer lang files 2024-02-13 00:10:27 +00:00
AMOS bot c57f73b11f Automatically generated installer lang files 2024-02-12 00:11:21 +00:00
Jake Dallimore 0f84dd778b Moodle release 4.3.3 2024-02-09 10:33:30 +08:00
Paul Holden 78c1fbac60 MDL-80868 question: correct deleted format plugin definitions. 2024-02-08 16:15:31 +00:00
Sara Arjona fb7872a5d3 weekly release 4.3.2+ 2024-02-08 16:18:12 +01:00
Sara Arjona 67dd781b75 NOBUG: Fixed SVG browser compatibility 2024-02-08 16:18:09 +01:00
Paul Holden 71b2e366cd MDL-80869 mod_bigbluebuttonbn: ensure test retrieves expected record. 2024-02-08 13:22:05 +00:00
Sara Arjona 5780b8c228 Merge branch 'MDL-80544-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 11:26:47 +01:00
Paul Holden 8116bf4059 MDL-80544 h5p: add v126 library to list of standard plugins. 2024-02-08 10:12:54 +00:00
Philipp Imhof ffce63d647 MDL-80630 mod_quiz: keep timer hidden across pages
If a student hides the timer, store that setting in their user
preferences in order to keep it hidden even if they go from one page
to another in a quiz.
2024-02-08 09:43:58 +01:00
Laurent David 7a03a909a1 MDL-80326 course_format: Visibility changes only when capability is set
* When an editing teacher has not the capability to change visibility
(for example if for a given module the capability is removed), the visibility
drop down menu in the card should not be available.
2024-02-08 09:21:30 +01:00
Huong Nguyen 53f840cd4a Merge branch 'MDL-80809-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:15 +08:00
Andrew Nicols a32d53f1aa Merge branch 'MDL-80768-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:15 +08:00
Ilya Tregubov 556a285702 MDL-80504 forum: Fix seperate group mode 2024-02-08 16:06:14 +08:00
Ilya Tregubov 126d617b77 Merge branch 'MDL-80753-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-02-08 16:06:14 +08:00
Andrew Nicols 8a344dbe0b Merge branch 'MDL-80738-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:14 +08:00
Huong Nguyen 88828ee3af MDL-80544 h5plib: Use the correct plugin version 2024-02-08 16:06:14 +08:00
Ilya Tregubov 393f787b8f Merge branch 'MDL-80716-MOODLE_403_STABLE' of https://github.com/sh-csg/moodle into MOODLE_403_STABLE 2024-02-08 16:06:13 +08:00
Leon Stringer 4b9f6e77d3 MDL-80501 mod_h5pactivity: activity group mode
Respect activity's group mode when checking access to the report.
Previously only the course's group mode was checked.
2024-02-08 16:06:13 +08:00
Huong Nguyen 4528d12f52 Merge branch 'MDL-80544-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-02-08 16:06:13 +08:00
Huong Nguyen 30e1117ed1 Merge branch 'MDL-80832-403' of https://github.com/davewoloszyn/moodle into MOODLE_403_STABLE 2024-02-08 16:06:12 +08:00
Daniel Ziegenberg ff90193c15 MDL-80648 files: extend xsendfilealiases
Add missing entry for custom $CFG->localrequestdir locations in the
preconfigured array for $CFG->xsendfilealiases in config-dist.php.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-02-08 16:06:12 +08:00
Andrew Nicols f2b0e454e6 Merge branch 'MDL-80803-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:12 +08:00
Andrew Nicols 2264b79dbe Merge branch 'MDL-36733-MOODLE_403_STABLE' of https://github.com/PascalHamar/moodle into MOODLE_403_STABLE 2024-02-08 16:06:12 +08:00
Andrew Nicols b03d9fcc3f Merge branch 'MDL-80667-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:11 +08:00
Ilya Tregubov f13b4e0caf Merge branch 'MDL-78173-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:11 +08:00
Sara Arjona 15b019781d Merge branch 'MDL-80392-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2024-02-08 16:06:11 +08:00
Sara Arjona fff830198f Merge branch 'mdl-78095-403' of https://github.com/james-cnz/moodle into MOODLE_403_STABLE 2024-02-08 16:06:10 +08:00
Sara Arjona 45a503f086 Merge branch 'MDL-74500-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 16:06:10 +08:00
Sara Arjona a184b0b1fb Merge branch 'MDL-80808_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-02-08 16:06:05 +08:00
Sara Arjona 3feb4e3b22 Merge branch 'MDL-79514-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 15:45:36 +08:00
Sara Arjona 571be8e18c Merge branch 'MDL-79577-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 15:45:36 +08:00
Jun Pataleta a20fdb53f5 Merge branch 'MDL-80784-403' of https://github.com/noeldemartin/moodle into MOODLE_403_STABLE 2024-02-08 15:45:36 +08:00
Ilya Tregubov 6a8d0fb2b0 MDL-69774 mod_forum: Restrict URL to accpet only expected params 2024-02-08 15:45:35 +08:00
Huong Nguyen 2283877ba6 Merge branch 'MDL-78417-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 15:45:35 +08:00
Huong Nguyen d6cd2eb5fe Merge branch 'MDL-80512-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-08 15:45:35 +08:00
Brendan Heywood f443edd43e MDL-80823 core: Redirect to wwwroot with full path 2024-02-08 12:08:47 +11:00
Paul Holden f32d3af553 MDL-74500 profilefield_checkbox: override show/empty class methods. 2024-02-07 14:13:51 +00:00
Paul Holden 120e0af3de MDL-80338 core: encode moodle_url instance anchor properties. 2024-02-07 12:21:33 +00:00
Ilya Tregubov 224dbd8063 Merge branch 'MDL-80124-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 13:16:25 +08:00
Ilya Tregubov 18d692f70b Merge branch 'MDL-80324-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 13:12:23 +08:00
Jun Pataleta 219899c8ce Merge branch 'MDL-70058-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 12:31:34 +08:00
Jun Pataleta 4f45925082 Merge branch '403_check_cached_empty_modnames' of https://github.com/opitz/moodle into MOODLE_403_STABLE 2024-02-07 11:17:54 +08:00
David Woloszyn 84150d8909 MDL-80832 communication_matrix: Fix regression caused by MDL-80403 2024-02-07 14:10:42 +11:00
Jun Pataleta 7a79c4d751 Merge branch 'MDL-75081-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 10:37:19 +08:00
Ilya Tregubov b0f737dbb9 Merge branch 'MDL-79433-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 10:13:00 +08:00
meirzamoodle 5907407061 MDL-74641 repository: Fix wrong increment of temporary file for small sizes 2024-02-07 02:34:18 +01:00
meirzamoodle 427b0d3fee MDL-74641 repository: Handles increase bytes while extracting zip files
We should not rely solely on the provided size information.
Therefore the system needs to recalculate the size of each file in the zip file,
whether small or big.

The changes also cover the filemanager.js file if an error appears.
2024-02-07 02:34:18 +01:00
meirzamoodle 5ea392de64 MDL-78300 block: Determine if users can comment based on context 2024-02-07 02:34:18 +01:00
Paul Holden 3ed8b67746 MDL-54749 tool_langimport: require sesskey to update lang packs. 2024-02-07 02:34:18 +01:00
Ilya Tregubov f8d5db3ea7 Merge branch 'MDL-79527_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-02-07 09:28:28 +08:00
Ilya Tregubov b681fa9b5f Merge branch 'MDL-80767-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 09:01:52 +08:00
Ilya Tregubov 44dd499b96 Merge branch 'MDL-78621-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-07 08:57:04 +08:00
Jun Pataleta bc763d3c0a Merge branch 'MDL-80693-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2024-02-07 08:32:54 +08:00
Paul Holden 0492cbf9b7 MDL-75081 grade: fix rogue gradebook scenarios containing invalid steps.
Various re-factors over recent releases appear to have led to quite a
drift between actual functionality and what these scenarios assert for
imagined functionality. Page elements and content are referenced that
don't exist in multiple places.
2024-02-06 17:31:48 +00:00
Paul Holden 437738f488 MDL-75081 behat: define new heading named selector.
Co-authored-by: Jun Pataleta <jun@moodle.com>
2024-02-06 17:06:50 +00:00
Paul Holden 3932499ea6 MDL-75081 behat: correct tests of table contents asserting one column.
Prior to this change, assertions of "should exist" and "should not
exist" in table content, where the step provided only a single column,
could give false positives and pass (when they shouldn't).
2024-02-06 16:41:25 +00:00
Paul Holden ad4046a5a2 Merge branch 'MDL-80735-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-02-06 15:26:47 +00:00
Marina Glancy df7b18b9bc MDL-80735 reportbuilder: do not render filters form during download
this removes unnecessary calculations and also prevents the session mutation
2024-02-06 14:52:38 +00:00
Sara Arjona ad287dc5e5 Merge branch 'MDL-80816_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-02-06 15:51:47 +01:00
Tim Hunt a99bebe766 MDL-80834 quiz editing: fix position of the 'depends on previous' icon 2024-02-06 11:31:41 +00:00
Juan Leyva b9c148dbde MDL-80392 completion: Temporary fix for completion state via exporters 2024-02-06 11:05:06 +01:00
Jun Pataleta 0f64786579 Merge branch 'MDL-80725-403-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_403_STABLE 2024-02-06 15:58:56 +08:00
Sara Arjona 1011b7166b MDL-80544 core_h5p: Remove the h5plib_v124 plugin
The h5plib_v124 plugin can be removed because it has been replaced
with h5plib_v126, which is using the latest versions of the
libraries.
2024-02-06 08:11:33 +01:00
Sara Arjona ee44b0bf5c MDL-80544 core_h5p: Add core lib changes after upgrading it 2024-02-06 08:10:04 +01:00
Sara Arjona db242167a3 MDL-80544 core_h5p: Upgrade core lib to 1.26
This commit is upgrading the joubel/core library to the one
tagged as 1.26 (which also increases the coreApi minorVersion).
That's why the previous commit was duplicating the existing
h5plib_v124.
This tag is also pointing to the same tag that the mod_hvp is using
too: https://github.com/h5p/moodle-mod_hvp/releases/tag/1.26.1
2024-02-06 08:10:04 +01:00
Sara Arjona 510bbe8a53 MDL-80544 h5plib: Create first version of h5plib_v126
AMOS BEGIN
 CPY [editor:a11ytitleshowlabel,h5plib_v124],[editor:a11ytitleshowlabel,h5plib_v126]
 CPY [editor:a11ytitlehidelabel,h5plib_v124],[editor:a11ytitlehidelabel,h5plib_v126]
 CPY [editor:atoz,h5plib_v124],[editor:atoz,h5plib_v126]
 CPY [editor:add,h5plib_v124],[editor:add,h5plib_v126]
 CPY [editor:addauthor,h5plib_v124],[editor:addauthor,h5plib_v126]
 CPY [editor:addentity,h5plib_v124],[editor:addentity,h5plib_v126]
 CPY [editor:addfile,h5plib_v124],[editor:addfile,h5plib_v126]
 CPY [editor:addnewchange,h5plib_v124],[editor:addnewchange,h5plib_v126]
 CPY [editor:addtitle,h5plib_v124],[editor:addtitle,h5plib_v126]
 CPY [editor:addvideodescription,h5plib_v124],[editor:addvideodescription,h5plib_v126]
 CPY [editor:avtablistlabel,h5plib_v124],[editor:avtablistlabel,h5plib_v126]
 CPY [editor:belowmin,h5plib_v124],[editor:belowmin,h5plib_v126]
 CPY [editor:cancel,h5plib_v124],[editor:cancel,h5plib_v126]
 CPY [editor:cancellabel,h5plib_v124],[editor:cancellabel,h5plib_v126]
 CPY [editor:changefile,h5plib_v124],[editor:changefile,h5plib_v126]
 CPY [editor:changelanguage,h5plib_v124],[editor:changelanguage,h5plib_v126]
 CPY [editor:changelibrary,h5plib_v124],[editor:changelibrary,h5plib_v126]
 CPY [editor:changelogdescription,h5plib_v124],[editor:changelogdescription,h5plib_v126]
 CPY [editor:close,h5plib_v124],[editor:close,h5plib_v126]
 CPY [editor:commonfields,h5plib_v124],[editor:commonfields,h5plib_v126]
 CPY [editor:commonfieldsdescription,h5plib_v124],[editor:commonfieldsdescription,h5plib_v126]
 CPY [editor:confirmchangelibrary,h5plib_v124],[editor:confirmchangelibrary,h5plib_v126]
 CPY [editor:confirmdeletechangelog,h5plib_v124],[editor:confirmdeletechangelog,h5plib_v126]
 CPY [editor:confirmimageremoval,h5plib_v124],[editor:confirmimageremoval,h5plib_v126]
 CPY [editor:confirmpastebuttontext,h5plib_v124],[editor:confirmpastebuttontext,h5plib_v126]
 CPY [editor:confirmpastecontent,h5plib_v124],[editor:confirmpastecontent,h5plib_v126]
 CPY [editor:confirmremoval,h5plib_v124],[editor:confirmremoval,h5plib_v126]
 CPY [editor:confirmremoveauthor,h5plib_v124],[editor:confirmremoveauthor,h5plib_v126]
 CPY [editor:contenttypebackbuttonlabel,h5plib_v124],[editor:contenttypebackbuttonlabel,h5plib_v126]
 CPY [editor:contenttypecacheoutdated,h5plib_v124],[editor:contenttypecacheoutdated,h5plib_v126]
 CPY [editor:contenttypecacheoutdateddesc,h5plib_v124],[editor:contenttypecacheoutdateddesc,h5plib_v126]
 CPY [editor:contenttypedemobuttonlabel,h5plib_v124],[editor:contenttypedemobuttonlabel,h5plib_v126]
 CPY [editor:contenttypedetailbuttonlabel,h5plib_v124],[editor:contenttypedetailbuttonlabel,h5plib_v126]
 CPY [editor:contenttypegetbuttonlabel,h5plib_v124],[editor:contenttypegetbuttonlabel,h5plib_v126]
 CPY [editor:contenttypeiconalttext,h5plib_v124],[editor:contenttypeiconalttext,h5plib_v126]
 CPY [editor:contenttypeinstallbuttonlabel,h5plib_v124],[editor:contenttypeinstallbuttonlabel,h5plib_v126]
 CPY [editor:contenttypeinstallerror,h5plib_v124],[editor:contenttypeinstallerror,h5plib_v126]
 CPY [editor:contenttypeinstallsuccess,h5plib_v124],[editor:contenttypeinstallsuccess,h5plib_v126]
 CPY [editor:contenttypeinstallingbuttonlabel,h5plib_v124],[editor:contenttypeinstallingbuttonlabel,h5plib_v126]
 CPY [editor:contenttypelicensepaneltitle,h5plib_v124],[editor:contenttypelicensepaneltitle,h5plib_v126]
 CPY [editor:contenttypenotinstalled,h5plib_v124],[editor:contenttypenotinstalled,h5plib_v126]
 CPY [editor:contenttypenotinstalleddesc,h5plib_v124],[editor:contenttypenotinstalleddesc,h5plib_v126]
 CPY [editor:contenttypeowner,h5plib_v124],[editor:contenttypeowner,h5plib_v126]
 CPY [editor:contenttyperestricted,h5plib_v124],[editor:contenttyperestricted,h5plib_v126]
 CPY [editor:contenttyperestricteddesc,h5plib_v124],[editor:contenttyperestricteddesc,h5plib_v126]
 CPY [editor:contenttypesearchfieldplaceholder,h5plib_v124],[editor:contenttypesearchfieldplaceholder,h5plib_v126]
 CPY [editor:contenttypesectionall,h5plib_v124],[editor:contenttypesectionall,h5plib_v126]
 CPY [editor:contenttypeunsupportedapiversioncontent,h5plib_v124],[editor:contenttypeunsupportedapiversioncontent,h5plib_v126]
 CPY [editor:contenttypeunsupportedapiversiontitle,h5plib_v124],[editor:contenttypeunsupportedapiversiontitle,h5plib_v126]
 CPY [editor:contenttypeupdateavailable,h5plib_v124],[editor:contenttypeupdateavailable,h5plib_v126]
 CPY [editor:contenttypeupdatebuttonlabel,h5plib_v124],[editor:contenttypeupdatebuttonlabel,h5plib_v126]
 CPY [editor:contenttypeupdatesuccess,h5plib_v124],[editor:contenttypeupdatesuccess,h5plib_v126]
 CPY [editor:contenttypeupdatingbuttonlabel,h5plib_v124],[editor:contenttypeupdatingbuttonlabel,h5plib_v126]
 CPY [editor:contenttypeusebuttonlabel,h5plib_v124],[editor:contenttypeusebuttonlabel,h5plib_v126]
 CPY [editor:contributetranslations,h5plib_v124],[editor:contributetranslations,h5plib_v126]
 CPY [editor:copiedbutton,h5plib_v124],[editor:copiedbutton,h5plib_v126]
 CPY [editor:copiedtoclipboard,h5plib_v124],[editor:copiedtoclipboard,h5plib_v126]
 CPY [editor:copybutton,h5plib_v124],[editor:copybutton,h5plib_v126]
 CPY [editor:copytoclipboard,h5plib_v124],[editor:copytoclipboard,h5plib_v126]
 CPY [editor:createcontenttablabel,h5plib_v124],[editor:createcontenttablabel,h5plib_v126]
 CPY [editor:currentmenuselected,h5plib_v124],[editor:currentmenuselected,h5plib_v126]
 CPY [editor:editcopyright,h5plib_v124],[editor:editcopyright,h5plib_v126]
 CPY [editor:editimage,h5plib_v124],[editor:editimage,h5plib_v126]
 CPY [editor:editmode,h5plib_v124],[editor:editmode,h5plib_v126]
 CPY [editor:enteraudiotitle,h5plib_v124],[editor:enteraudiotitle,h5plib_v126]
 CPY [editor:enteraudiourl,h5plib_v124],[editor:enteraudiourl,h5plib_v126]
 CPY [editor:enterfullscreenbuttonlabel,h5plib_v124],[editor:enterfullscreenbuttonlabel,h5plib_v126]
 CPY [editor:entervideotitle,h5plib_v124],[editor:entervideotitle,h5plib_v126]
 CPY [editor:entervideourl,h5plib_v124],[editor:entervideourl,h5plib_v126]
 CPY [editor:errorcalculatingmaxscore,h5plib_v124],[editor:errorcalculatingmaxscore,h5plib_v126]
 CPY [editor:errorcommunicatinghubcontent,h5plib_v124],[editor:errorcommunicatinghubcontent,h5plib_v126]
 CPY [editor:errorcommunicatinghubtitle,h5plib_v124],[editor:errorcommunicatinghubtitle,h5plib_v126]
 CPY [editor:errorheader,h5plib_v124],[editor:errorheader,h5plib_v126]
 CPY [editor:errornotsupported,h5plib_v124],[editor:errornotsupported,h5plib_v126]
 CPY [editor:errorparamsbroken,h5plib_v124],[editor:errorparamsbroken,h5plib_v126]
 CPY [editor:errortoohighversion,h5plib_v124],[editor:errortoohighversion,h5plib_v126]
 CPY [editor:example,h5plib_v124],[editor:example,h5plib_v126]
 CPY [editor:exceedsmax,h5plib_v124],[editor:exceedsmax,h5plib_v126]
 CPY [editor:exitfullscreenbuttonlabel,h5plib_v124],[editor:exitfullscreenbuttonlabel,h5plib_v126]
 CPY [editor:expandcollapse,h5plib_v124],[editor:expandcollapse,h5plib_v126]
 CPY [editor:filetolarge,h5plib_v124],[editor:filetolarge,h5plib_v126]
 CPY [editor:fillinthefieldsbelow,h5plib_v124],[editor:fillinthefieldsbelow,h5plib_v126]
 CPY [editor:gethelp,h5plib_v124],[editor:gethelp,h5plib_v126]
 CPY [editor:h5pfileuploadservererrorcontent,h5plib_v124],[editor:h5pfileuploadservererrorcontent,h5plib_v126]
 CPY [editor:h5pfileuploadservererrortitle,h5plib_v124],[editor:h5pfileuploadservererrortitle,h5plib_v126]
 CPY [editor:h5pfilevalidationfailedcontent,h5plib_v124],[editor:h5pfilevalidationfailedcontent,h5plib_v126]
 CPY [editor:h5pfilevalidationfailedtitle,h5plib_v124],[editor:h5pfilevalidationfailedtitle,h5plib_v126]
 CPY [editor:h5pfilewrongextensioncontent,h5plib_v124],[editor:h5pfilewrongextensioncontent,h5plib_v126]
 CPY [editor:h5pfilewrongextensiontitle,h5plib_v124],[editor:h5pfilewrongextensiontitle,h5plib_v126]
 CPY [editor:height,h5plib_v124],[editor:height,h5plib_v126]
 CPY [editor:hide,h5plib_v124],[editor:hide,h5plib_v126]
 CPY [editor:hideimportantinstructions,h5plib_v124],[editor:hideimportantinstructions,h5plib_v126]
 CPY [editor:hubpanellabel,h5plib_v124],[editor:hubpanellabel,h5plib_v126]
 CPY [editor:illegaldecimalnumber,h5plib_v124],[editor:illegaldecimalnumber,h5plib_v126]
 CPY [editor:imagelightboxprogress,h5plib_v124],[editor:imagelightboxprogress,h5plib_v126]
 CPY [editor:imagelightboxtitle,h5plib_v124],[editor:imagelightboxtitle,h5plib_v126]
 CPY [editor:importantinstructions,h5plib_v124],[editor:importantinstructions,h5plib_v126]
 CPY [editor:insert,h5plib_v124],[editor:insert,h5plib_v126]
 CPY [editor:invalidformat,h5plib_v124],[editor:invalidformat,h5plib_v126]
 CPY [editor:language,h5plib_v124],[editor:language,h5plib_v126]
 CPY [editor:librarymissing,h5plib_v124],[editor:librarymissing,h5plib_v126]
 CPY [editor:licensecandistribute,h5plib_v124],[editor:licensecandistribute,h5plib_v126]
 CPY [editor:licensecanholdliable,h5plib_v124],[editor:licensecanholdliable,h5plib_v126]
 CPY [editor:licensecanmodify,h5plib_v124],[editor:licensecanmodify,h5plib_v126]
 CPY [editor:licensecansublicense,h5plib_v124],[editor:licensecansublicense,h5plib_v126]
 CPY [editor:licensecanusecommercially,h5plib_v124],[editor:licensecanusecommercially,h5plib_v126]
 CPY [editor:licensecannotholdliable,h5plib_v124],[editor:licensecannotholdliable,h5plib_v126]
 CPY [editor:licensedescription,h5plib_v124],[editor:licensedescription,h5plib_v126]
 CPY [editor:licensefetchdetailsfailed,h5plib_v124],[editor:licensefetchdetailsfailed,h5plib_v126]
 CPY [editor:licensemodalsubtitle,h5plib_v124],[editor:licensemodalsubtitle,h5plib_v126]
 CPY [editor:licensemodaltitle,h5plib_v124],[editor:licensemodaltitle,h5plib_v126]
 CPY [editor:licensemustincludecopyright,h5plib_v124],[editor:licensemustincludecopyright,h5plib_v126]
 CPY [editor:licensemustincludelicense,h5plib_v124],[editor:licensemustincludelicense,h5plib_v126]
 CPY [editor:licenseunspecified,h5plib_v124],[editor:licenseunspecified,h5plib_v126]
 CPY [editor:listbelowmin,h5plib_v124],[editor:listbelowmin,h5plib_v126]
 CPY [editor:listexceedsmax,h5plib_v124],[editor:listexceedsmax,h5plib_v126]
 CPY [editor:listlabel,h5plib_v124],[editor:listlabel,h5plib_v126]
 CPY [editor:loading,h5plib_v124],[editor:loading,h5plib_v126]
 CPY [editor:loadingimageeditor,h5plib_v124],[editor:loadingimageeditor,h5plib_v126]
 CPY [editor:logthischange,h5plib_v124],[editor:logthischange,h5plib_v126]
 CPY [editor:loggedchanges,h5plib_v124],[editor:loggedchanges,h5plib_v126]
 CPY [editor:maxscoresemanticsmissing,h5plib_v124],[editor:maxscoresemanticsmissing,h5plib_v126]
 CPY [editor:metadata,h5plib_v124],[editor:metadata,h5plib_v126]
 CPY [editor:metadatasharingandlicensinginfo,h5plib_v124],[editor:metadatasharingandlicensinginfo,h5plib_v126]
 CPY [editor:missingproperty,h5plib_v124],[editor:missingproperty,h5plib_v126]
 CPY [editor:missingtranslation,h5plib_v124],[editor:missingtranslation,h5plib_v126]
 CPY [editor:newchangehasbeenlogged,h5plib_v124],[editor:newchangehasbeenlogged,h5plib_v126]
 CPY [editor:newestfirst,h5plib_v124],[editor:newestfirst,h5plib_v126]
 CPY [editor:nextimage,h5plib_v124],[editor:nextimage,h5plib_v126]
 CPY [editor:nochangeshavebeenlogged,h5plib_v124],[editor:nochangeshavebeenlogged,h5plib_v126]
 CPY [editor:nocontenttypesavailable,h5plib_v124],[editor:nocontenttypesavailable,h5plib_v126]
 CPY [editor:nocontenttypesavailabledesc,h5plib_v124],[editor:nocontenttypesavailabledesc,h5plib_v126]
 CPY [editor:nofollow,h5plib_v124],[editor:nofollow,h5plib_v126]
 CPY [editor:notimageordimensionsfield,h5plib_v124],[editor:notimageordimensionsfield,h5plib_v126]
 CPY [editor:numresults,h5plib_v124],[editor:numresults,h5plib_v126]
 CPY [editor:numberfield,h5plib_v124],[editor:numberfield,h5plib_v126]
 CPY [editor:ok,h5plib_v124],[editor:ok,h5plib_v126]
 CPY [editor:onlynumbers,h5plib_v124],[editor:onlynumbers,h5plib_v126]
 CPY [editor:or,h5plib_v124],[editor:or,h5plib_v126]
 CPY [editor:orderitemdown,h5plib_v124],[editor:orderitemdown,h5plib_v126]
 CPY [editor:orderitemup,h5plib_v124],[editor:orderitemup,h5plib_v126]
 CPY [editor:outofstep,h5plib_v124],[editor:outofstep,h5plib_v126]
 CPY [editor:pasteandreplacebutton,h5plib_v124],[editor:pasteandreplacebutton,h5plib_v126]
 CPY [editor:pasteandreplacefromclipboard,h5plib_v124],[editor:pasteandreplacefromclipboard,h5plib_v126]
 CPY [editor:pastebutton,h5plib_v124],[editor:pastebutton,h5plib_v126]
 CPY [editor:pastecontent,h5plib_v124],[editor:pastecontent,h5plib_v126]
 CPY [editor:pastecontentnotsupported,h5plib_v124],[editor:pastecontentnotsupported,h5plib_v126]
 CPY [editor:pastecontentrestricted,h5plib_v124],[editor:pastecontentrestricted,h5plib_v126]
 CPY [editor:pasteerror,h5plib_v124],[editor:pasteerror,h5plib_v126]
 CPY [editor:pastefromclipboard,h5plib_v124],[editor:pastefromclipboard,h5plib_v126]
 CPY [editor:pastenocontent,h5plib_v124],[editor:pastenocontent,h5plib_v126]
 CPY [editor:pastetoonew,h5plib_v124],[editor:pastetoonew,h5plib_v126]
 CPY [editor:pastetooold,h5plib_v124],[editor:pastetooold,h5plib_v126]
 CPY [editor:popularfirst,h5plib_v124],[editor:popularfirst,h5plib_v126]
 CPY [editor:previousimage,h5plib_v124],[editor:previousimage,h5plib_v126]
 CPY [editor:proceedbuttonlabel,h5plib_v124],[editor:proceedbuttonlabel,h5plib_v126]
 CPY [editor:readless,h5plib_v124],[editor:readless,h5plib_v126]
 CPY [editor:readmore,h5plib_v124],[editor:readmore,h5plib_v126]
 CPY [editor:recentlyusedfirst,h5plib_v124],[editor:recentlyusedfirst,h5plib_v126]
 CPY [editor:reloadbuttonlabel,h5plib_v124],[editor:reloadbuttonlabel,h5plib_v126]
 CPY [editor:removefile,h5plib_v124],[editor:removefile,h5plib_v126]
 CPY [editor:removeimage,h5plib_v124],[editor:removeimage,h5plib_v126]
 CPY [editor:removeitem,h5plib_v124],[editor:removeitem,h5plib_v126]
 CPY [editor:requiredproperty,h5plib_v124],[editor:requiredproperty,h5plib_v126]
 CPY [editor:resettooriginallabel,h5plib_v124],[editor:resettooriginallabel,h5plib_v126]
 CPY [editor:savelabel,h5plib_v124],[editor:savelabel,h5plib_v126]
 CPY [editor:savemetadata,h5plib_v124],[editor:savemetadata,h5plib_v126]
 CPY [editor:screenshots,h5plib_v124],[editor:screenshots,h5plib_v126]
 CPY [editor:scriptmissing,h5plib_v124],[editor:scriptmissing,h5plib_v126]
 CPY [editor:searchresults,h5plib_v124],[editor:searchresults,h5plib_v126]
 CPY [editor:selectfiletoupload,h5plib_v124],[editor:selectfiletoupload,h5plib_v126]
 CPY [editor:selectlibrary,h5plib_v124],[editor:selectlibrary,h5plib_v126]
 CPY [editor:semanticserror,h5plib_v124],[editor:semanticserror,h5plib_v126]
 CPY [editor:show,h5plib_v124],[editor:show,h5plib_v126]
 CPY [editor:showimportantinstructions,h5plib_v124],[editor:showimportantinstructions,h5plib_v126]
 CPY [editor:tabtitlebasicfileupload,h5plib_v124],[editor:tabtitlebasicfileupload,h5plib_v126]
 CPY [editor:tabtitleinputlinkurl,h5plib_v124],[editor:tabtitleinputlinkurl,h5plib_v126]
 CPY [editor:textfield,h5plib_v124],[editor:textfield,h5plib_v126]
 CPY [editor:thecontenttype,h5plib_v124],[editor:thecontenttype,h5plib_v126]
 CPY [editor:thiswillpotentially,h5plib_v124],[editor:thiswillpotentially,h5plib_v126]
 CPY [editor:title,h5plib_v124],[editor:title,h5plib_v126]
 CPY [editor:toolong,h5plib_v124],[editor:toolong,h5plib_v126]
 CPY [editor:tryagain,h5plib_v124],[editor:tryagain,h5plib_v126]
 CPY [editor:tutorial,h5plib_v124],[editor:tutorial,h5plib_v126]
 CPY [editor:unabletointerpreterror,h5plib_v124],[editor:unabletointerpreterror,h5plib_v126]
 CPY [editor:unabletointerpretsolution,h5plib_v124],[editor:unabletointerpretsolution,h5plib_v126]
 CPY [editor:unknownfieldpath,h5plib_v124],[editor:unknownfieldpath,h5plib_v126]
 CPY [editor:uploadinstructionstitle,h5plib_v124],[editor:uploadinstructionstitle,h5plib_v126]
 CPY [editor:uploadplaceholder,h5plib_v124],[editor:uploadplaceholder,h5plib_v126]
 CPY [editor:uploadsuccess,h5plib_v124],[editor:uploadsuccess,h5plib_v126]
 CPY [editor:uploadtablabel,h5plib_v124],[editor:uploadtablabel,h5plib_v126]
 CPY [editor:uploadvideotitle,h5plib_v124],[editor:uploadvideotitle,h5plib_v126]
 CPY [editor:uploading,h5plib_v124],[editor:uploading,h5plib_v126]
 CPY [editor:uploadingthrobber,h5plib_v124],[editor:uploadingthrobber,h5plib_v126]
 CPY [editor:usedforsearchingreportsandcopyrightinformation,h5plib_v124],[editor:usedforsearchingreportsandcopyrightinformation,h5plib_v126]
 CPY [editor:videoquality,h5plib_v124],[editor:videoquality,h5plib_v126]
 CPY [editor:videoqualitydefaultlabel,h5plib_v124],[editor:videoqualitydefaultlabel,h5plib_v126]
 CPY [editor:videoqualitydescription,h5plib_v124],[editor:videoqualitydescription,h5plib_v126]
 CPY [editor:warningchangebrowsingtoseeresults,h5plib_v124],[editor:warningchangebrowsingtoseeresults,h5plib_v126]
 CPY [editor:warningnocontenttypesinstalled,h5plib_v124],[editor:warningnocontenttypesinstalled,h5plib_v126]
 CPY [editor:warningupdateavailablebody,h5plib_v124],[editor:warningupdateavailablebody,h5plib_v126]
 CPY [editor:warningupdateavailabletitle,h5plib_v124],[editor:warningupdateavailabletitle,h5plib_v126]
 CPY [editor:width,h5plib_v124],[editor:width,h5plib_v126]
AMOS END
2024-02-06 08:10:03 +01:00
Jun Pataleta 42f5f85440 Merge branch 'MDL-72703-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-06 12:10:17 +08:00
Ilya Tregubov 226ed0720c Merge branch 'MDL-80713-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-02-06 11:20:00 +08:00
Tim Hunt 7a8178bb64 MDL-80808 quiz: improve message when the student can't review 2024-02-05 10:49:04 +00:00
Jun Pataleta 7ddd5b33e7 Merge branch 'MDL-80060-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-05 16:06:53 +08:00
Huong Nguyen 54bbef1f5b Merge branch 'MDL-80811-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-05 13:42:21 +07:00
Huong Nguyen e756e542d0 Merge branch 'MDL-80718-403' of https://github.com/dpalou/moodle into MOODLE_403_STABLE 2024-02-05 13:37:21 +07:00
Huong Nguyen 468be1ea44 Merge branch 'MDL-67772-email-thread-headers-MOODLE_403_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_403_STABLE 2024-02-05 13:33:33 +07:00
Jun Pataleta 2209f6a8f1 Merge branch 'MDL-80694-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-02-05 14:26:59 +08:00
Huong Nguyen 4a07c82f34 Merge branch 'MDL-80537_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-02-05 11:28:44 +07:00
Huong Nguyen cfcf3ab6a9 MDL-80713 Unit Tests: Message sink improvement
- Added a new method called get_messages_by_component()
  This method will help to retreive the redirected messages
  of specific component only
- Added a new method called get_messages_by_component_and_type()
  This method will help to retreive the redirected messages
  of specific component and type only
2024-02-05 09:24:34 +07:00
Eloy Lafuente (stronk7) cc4a3ee105 MDL-80816 core: Bump actions to newer versions
All the new ones are Nodejs 20 based, because
Nodejs 16 is being deprecated @ GH environments.

https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20
2024-02-02 17:16:13 +01:00
Tim Hunt eee0a8e89f MDL-79527 questions: category tree loading handling bad data
It should always be the case that a question category and its parent
category belong to the same context. However, over the years, we have
observed that this becomes violated by some data in some Moodle sites.
(The suspicion is that this is a backup/restor bug of some sort which
has never been tracked down.)

Since this happens, we should make the code robust to it, which is what
this change does. It ensure that when loading child categories, we only
consider ones in the same context.
2024-02-02 11:35:23 +00:00
Ilya Tregubov 48fbf7ed14 weekly release 4.3.2+ 2024-02-02 08:56:22 +08:00
Ilya Tregubov 8387191264 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-02-02 08:56:19 +08:00
james-cnz 44a72bc059 MDL-78095 course: Respect is_bulk_editable() 2024-02-02 10:41:41 +13:00
Paul Holden b7d38b140f MDL-80811 mod_quiz: fix question preview popup event handling.
* Fix the selector used to identify the preview icon element;
* Remove redundant code for handling it's click event, because it
  already registers itself with a popup action which handles that.
2024-02-01 20:39:03 +00:00
David Mudrák 36febde242 MDL-80725 lang: Fix Behat regressions related to the question rename 2024-02-01 20:04:44 +01:00
David Mudrák a7bc47969e MDL-80725 lang: Fix Help and documentation regressions 2024-02-01 20:04:34 +01:00
Paul Holden f2358a0d24 MDL-80809 course: correct context arguments when formatting strings. 2024-02-01 18:16:23 +00:00
Tim Hunt 6505fbbdb1 MDL-80537 question bank: escape plain text display of question text 2024-02-01 16:26:54 +00:00
Paul Holden cfd56552f7 MDL-80803 course: observe mod availability before update notification. 2024-02-01 14:51:33 +00:00
Brendan Heywood 911d28ca9c MDL-67772 mod_forum: Fix email threading for first message 2024-02-01 16:26:59 +11:00
Huong Nguyen 74b3080301 Merge branch 'MDL-80485-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 11:31:00 +07:00
Huong Nguyen 9d3ca32e49 Merge branch 'MDL-80660-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 11:23:41 +07:00
Huong Nguyen 4791e99ecd Merge branch 'MDL-80538-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-02-01 11:17:58 +07:00
Simey Lameze 52695bbb94 MDL-80538 phpdoc: add missing null parameter type to phpdoc 2024-02-01 12:07:26 +08:00
info@eWallah.net 2e3a273b53 MDL-80538 phpdoc: Incorrect dataformat type documentation in table lib 2024-02-01 12:07:26 +08:00
Huong Nguyen e991ae96e2 Merge branch 'MDL-71665-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-02-01 11:06:54 +07:00
Huong Nguyen 3c78b6304e Merge branch 'MDL-80450-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 11:01:18 +07:00
Huong Nguyen 9e31deb6d8 Merge branch 'MDL-80692-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:57:31 +07:00
Huong Nguyen 8df121e399 Merge branch 'MDL-73010-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:50:21 +07:00
Jun Pataleta e7ebe317a5 Merge branch 'MDL-74775-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-02-01 11:47:08 +08:00
Huong Nguyen 455a187b0a Merge branch 'MDL-29261-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:45:33 +07:00
Huong Nguyen fa924d4936 Merge branch 'MDL-80706-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-02-01 10:43:56 +07:00
Jun Pataleta 10d5a2bb2a Merge branch 'MDL-80247-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 11:39:01 +08:00
Jun Pataleta 747c921e6c Merge branch 'MDL-79725-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-02-01 11:33:15 +08:00
Ilya Tregubov 43922d6125 Merge branch 'MDL-80202-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:39:08 +08:00
Ilya Tregubov af5161261c Merge branch 'MDL-80199-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:31:23 +08:00
Ilya Tregubov 7368993bb8 Merge branch 'MDL-80727-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-02-01 10:26:45 +08:00
Huong Nguyen c0930849d6 Merge branch 'MDL-80289-403' of https://github.com/call-learning/moodle into MOODLE_403_STABLE 2024-02-01 08:55:38 +07:00
David Mudrák 6142dd41f2 MDL-80725 lang: Use the fixed strings in tests, too 2024-01-31 22:11:01 +01:00
Helen Foster 1f2ac8c548 MDL-80725 lang: Import fixed English strings (en_fix) 2024-01-31 19:42:26 +01:00
Paul Holden c58a4359e8 MDL-80766 gradereport_grader: omit max constraint for unlimited grades. 2024-01-31 18:26:40 +00:00
Noel De Martin 9c23c1735e MDL-80784 behat: Disable SSL checks for app initialization 2024-01-31 14:08:51 +01:00
Ilya Tregubov ad243c92e5 Merge branch 'MDL-80575-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-31 09:24:53 +08:00
Paul Holden b6121b9d1a MDL-80767 theme_boost: right align process monitor to block drawer. 2024-01-31 00:03:26 +00:00
Paul Holden 40ae05718c MDL-80768 output: stricter progress bar component percentage type.
Avoid mixing float/string types, where the decimal separator could
vary according to current locale.
2024-01-30 23:28:40 +00:00
Paul Holden 0739484ac1 MDL-80738 quiz_statistics: ensure tests uses a DB-backed lock class.
Fix the test file/class name too.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2024-01-30 15:38:58 +00:00
Paul Holden c7f9966a35 MDL-80692 calendar: calculate today relative to users own timezone.
Co-authored-by: Archil Abuladze <armiworker@gmail.com>
2024-01-30 14:39:06 +00:00
Paul Holden 4a68477a49 MDL-74500 user: method to determine whether to show profile fields.
The new API replaces identical behaviour in existing calling code, but
allows for profile field types to override/separate the logic used to
show the field and determine whether it's empty
2024-01-30 11:33:58 +00:00
Paul Holden 73ea78fcc9 MDL-80485 tool_lp: consistent activity icon element styling. 2024-01-30 11:28:45 +00:00
Jun Pataleta d48e967e89 MDL-79674 behat: Use proper tags for testing WCAG 2.1 criteria
`wcag2a` and `wcag2aa` refer to WCAG 2.0 standards. We should be using
`wcag21a` and `wcag21aa` to test against WCAG 2.1 standards.

See:
https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#axe-core-tags
2024-01-30 16:21:02 +08:00
Jun Pataleta 09414b1184 MDL-79674 behat: axe-core version fixes
* Update \behat_accessibility::run_axe_validation_for_tags()'s
  PHPDoc block to reflect the current version.
* Fix incorrect copyright tag for the library
2024-01-30 16:21:01 +08:00
Andrew Nicols 4826318d38 MDL-79003 js: Bump stylelint and components
Stylelint 15 deprecates a heap of rules which will be removed in 16.

We can't use 16 because it's ESM and requires a big restructure of our
build process.

We can temporarily silence the deprecations and then when we update our
build tooling we can make use of @stylistic/stylelint-plugin to add the
rules back.

This commit:
- bumps stylelint and related dependencies accordingly
- fixes issues identified with newer sniffs
- temporarily silences deprecation warnings
2024-01-30 12:21:03 +08:00
Andrew Nicols 2b4ddd43ae MDL-79003 js: Move rollup ratelimit to generateBundle
There are two phases of a build: Building, and then Outputting.

We were previously listening on the final event for the build phase, but
we should be listening to the final event of the output phase.
2024-01-30 12:21:03 +08:00
Andrew Nicols c8f80a6e57 MDL-79003 js: Move browserlist config to package.json 2024-01-30 12:21:03 +08:00
Andrew Nicols 1db97f7655 MDL-79003 js: Standard package bump - glob 2024-01-30 12:21:03 +08:00
Andrew Nicols acbc1e2f19 MDL-79003 js: Standard package bump - async 2024-01-30 12:21:03 +08:00
Andrew Nicols a57d584b63 MDL-79003 js: Remove grunt-contrib-uglify
We stopped using this when we updated our processes to support ESMs in
MDL-62497. Removal of the dependency was missed at the time.
2024-01-30 12:21:02 +08:00
Andrew Nicols ef0e06808a MDL-79003 js: Standard package bump - grunt 2024-01-30 12:21:02 +08:00
Andrew Nicols eeff8efe54 MDL-79003 js: Standard package bump - watchman 2024-01-30 12:21:02 +08:00
Andrew Nicols 6bfbf54f23 MDL-79003 js: Standard package bump - ajv 2024-01-30 12:21:02 +08:00
Andrew Nicols 6038897710 MDL-79003 js: Use our own jsdoc wrapper
grunt-jsdoc is abandoned and only works with an older version of jsdoc.

This is a very simple wrapper around jsdoc itself.

This commit also includes a fix for broken docs.
2024-01-30 12:21:01 +08:00
Andrew Nicols e3ec5309f6 MDL-79003 core: Bump eslint 2024-01-30 12:21:01 +08:00
Andrew Nicols d3f1b1ccbe MDL-79003 core: Bump NodeJS to lts/iron (NodeJS 20) 2024-01-30 12:21:01 +08:00
Huong Nguyen 3ff7d53def Merge branch 'MDL-80523-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-30 09:42:09 +07:00
Laurent David 14503ba527 MDL-71665 core_courseformat: Sync activity name in the page
* Changing the name of an activity should change the access restriction messages.
* Introduction of a marker as data-cm-name-for to be able to change any
occurence of a course module name in the page when this one changes.
2024-01-29 09:01:14 +01:00
Andrew Nicols 4e65a8f094 MDL-80753 tiny_premium: Load TinyMCE Premium for the current editor ver 2024-01-29 15:06:48 +08:00
Stefan Hanauska b684c13efc MDL-80716 course: Fix group button position 2024-01-29 06:34:15 +01:00
Huong Nguyen 7b9d56e0df MDL-74775 adhoc_task: Do not clear the timecreated of failed tasks 2024-01-29 10:02:30 +07:00
Jun Pataleta 9a49d022aa Merge branch 'MDL-69225-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-01-29 10:20:13 +08:00
Jun Pataleta 068eec99a8 Merge branch 'MDL-78311-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-29 10:08:31 +08:00
Jun Pataleta 12704fb808 Merge branch 'M403-MDL-79930' of https://github.com/marcusboon/moodle into MOODLE_403_STABLE 2024-01-29 10:04:30 +08:00
Marcus Boon 800acd242a MDL-79930 mod_forum: Use MUC for forum count discussions 2024-01-29 08:34:15 +10:00
AMOS bot bca168b02c Automatically generated installer lang files 2024-01-27 00:11:31 +00:00
Paul Holden b6a66ef378 MDL-78311 core: fix host parameter type cleaning by IPv4 address. 2024-01-25 23:39:38 +00:00
Paul Holden 4e62e08558 MDL-80727 tool_task: replace hard-coded adhoc task runner strings. 2024-01-25 22:46:17 +00:00
Paul Holden 4a8cd5019f MDL-80124 admin: prevent deletion of pre-installed preset definitions. 2024-01-25 21:51:48 +00:00
Sara Arjona 101d476c33 MDL-69225 h5pactivity: Review when and which banners display
The UX team proposal is to display two different notifications, to avoid confusion:

1. When the user is in preview mode:
Message: 'You are in preview mode.'
Notification Type: Information (blue), with the information permanently visible and not dismissible,
ensuring continuous awareness.

2. When activity tracking is disabled:
Message: 'Attempt tracking is not enabled for this activity. You can enable it in Settings.'
Notification Type: Warning (yellow) with a close icon for dismissal if tracking is intentionally disabled.

These notifications should only be visible to teachers and content creators, not students.
If a teacher also has a student role, this information should not appear when logged in as a student.

That's why the pre-existing is_tracking_enabled() function has been updated to only check if tracking
is on for an activity, without considering user capabilities (that's why the $user parameter has been
removed from this function too). Besides, a new function called can_submit() has been created to find
out if users are allowed to submit an activity.
2024-01-25 17:48:20 +01:00
Sara Arjona 6080ef9fe7 weekly release 4.3.2+ 2024-01-25 16:48:27 +01:00
Paul Holden aae5c2b7db MDL-80660 user: preserve return URL upon role switch from frontpage. 2024-01-25 15:40:55 +00:00
Dani Palou de6f5d6333 MDL-80718 quiz: Apply overrides in mod_quiz_get_combined_review_options 2024-01-25 10:04:09 +01:00
Jun Pataleta ae60d04ffa Merge branch 'MDL-80656-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-01-25 12:14:00 +08:00
Jun Pataleta 554b7a2bc4 Merge branch 'MDL-80673-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-01-25 12:05:53 +08:00
Huong Nguyen 64909575cf Merge branch 'MDL-80224-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-25 11:01:48 +07:00
Jake Dallimore 1d8dd426aa MDL-80673 mod_forum: fix modal creation when viewing student grades
Fixes a regression caused by MDL-78324.
2024-01-25 11:49:59 +08:00
Huong Nguyen 5c24699cbb Merge branch 'MDL-80516-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-25 10:45:28 +07:00
Huong Nguyen 1129d43162 Merge branch 'MDL-76671-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2024-01-25 10:24:31 +07:00
Huong Nguyen a538c90eec Merge branch 'MDL-80650_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-01-25 09:24:56 +07:00
Ilya Tregubov ef367f6b6e Merge branch 'MDL-80098-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-25 10:20:30 +08:00
Huong Nguyen 569d925366 Merge branch 'MDL-80676-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-01-25 09:07:47 +07:00
Ilya Tregubov 9548f6bef3 Merge branch 'MDL-79927-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-25 09:53:46 +08:00
Huong Nguyen 663e4efbd6 Merge branch 'MDL-76716-m403' of https://github.com/stefangub/moodle into MOODLE_403_STABLE 2024-01-25 08:51:07 +07:00
Ilya Tregubov e74cdb09a4 Merge branch 'MDL-79159-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-25 09:35:48 +08:00
Ilya Tregubov 2fee3b63b0 Merge branch 'MDL-80653-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-25 09:25:47 +08:00
Sara Arjona 324b256141 Merge branch 'MDL-80458-403' of https://github.com/mickhawkins/moodle into MOODLE_403_STABLE 2024-01-24 17:15:00 +01:00
Sara Arjona 42074afdfa Merge branch 'MDL-79681-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-24 17:02:26 +01:00
Sara Arjona 7aaab961cc Merge branch 'MDL-79152-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-01-24 16:02:39 +01:00
Paul Holden abde115855 MDL-78173 user: correct return URL upon login as from frontpage. 2024-01-24 14:58:23 +00:00
Sara Arjona 378614ed32 Merge branch 'MDL-80668-403' of https://github.com/pedrojordao/moodle into MOODLE_403_STABLE 2024-01-24 15:16:15 +01:00
Sara Arjona 7d533d3f0f Merge branch 'MDL-78888-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-24 13:25:56 +01:00
Sara Arjona 9f0ab79ba9 Merge branch 'MDL-76723-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-01-24 13:13:10 +01:00
Sara Arjona 2a7697dc75 Merge branch 'MDL-79940-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-24 09:22:37 +01:00
Angelia Dela Cruz b1c6e30a90 MDL-79159 mod_lesson: Behat coverage for lesson question max attempts 2024-01-24 16:17:26 +08:00
Ilya Tregubov e8c1759b02 Merge branch 'MDL-80270-403' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-01-24 13:46:53 +08:00
Michael Hawkins 22c10c8b14 MDL-80458 core: Hide MoodleNet share bulk option if feature disabled 2024-01-24 11:53:41 +08:00
Simey Lameze e06ad7179e MDL-80656 behat: remove unnecessary activity duplication steps 2024-01-24 11:14:26 +08:00
Angelia Dela Cruz deb73ef1a4 MDL-79940 mod_workshop: Behat to confirm review button for reviewers 2024-01-24 09:02:45 +08:00
Ilya Tregubov 18b04fed1b Merge branch 'MDL-80320-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-01-24 08:56:28 +08:00
Marina Glancy d26d56ee34 MDL-80706 customfield: php8.1 warning about passing null to strlen 2024-01-23 14:58:17 +00:00
Marina Glancy 6f70b7f650 MDL-80694 external: fix return param in inplace_editable WS 2024-01-23 14:20:56 +00:00
Laurent David 2f024231da MDL-80320 core_courseformat: Disable group selection
* When forced groupmode is enabled for the course:
  - the group selection in the activity card be disabled
  - the activity action menu groupmode will not be visible.
  - only the icon will be visible
* Add new test to check for visibility
2024-01-23 11:31:42 +01:00
Stefan Van der Vyver 54bf8d378c MDL-76716 grades: handle open delegated transaction on grade delete 2024-01-23 10:10:24 +00:00
Paul Holden 0ac0b5dbb1 MDL-80512 tool_task: absolute path to required library file. 2024-01-23 09:18:12 +00:00
Jun Pataleta 5ba3b9e9a9 Merge branch 'MDL-80271-MOODLE_403_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_403_STABLE 2024-01-23 16:32:57 +08:00
Paul Holden 67f5534d53 MDL-80324 webservice: correct current page URL for user settings. 2024-01-23 08:22:48 +00:00
Sara Arjona 3b53984d0d Merge branch 'MDL-80339-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-23 07:48:26 +01:00
Jake Dallimore 48ec9b3bd2 MDL-79725 libraries: fix auth URL generation in lti1p3 library 2024-01-23 12:52:37 +08:00
Ilya Tregubov beb8242c98 Merge branch 'MDL-75579-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-01-23 12:04:42 +08:00
Jun Pataleta d132858820 Merge branch 'MDL-78219-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2024-01-23 11:59:26 +08:00
Huong Nguyen 7d4f09b978 MDL-75579 Backup: Prevent failed course restore task to be retried 2024-01-23 09:41:23 +07:00
Huong Nguyen 8c719efc1b MDL-75579 adhoc_task: Implement no-retry flag 2024-01-23 09:41:23 +07:00
Angelia Dela Cruz 198a42a084 MDL-80339 mod_lesson: Behat to confirm grade visibility in lesson 2024-01-23 10:12:05 +08:00
Jun Pataleta da9bbf5a96 Merge branch 'MDL-79029-403' of https://github.com/ferranrecio/moodle into MOODLE_403_STABLE 2024-01-23 09:21:49 +08:00
Sara Arjona a8fe1be288 Merge branch 'MDL-80559-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 16:23:30 +01:00
sam marshall d44fe7013d MDL-80693 core_user: search() fails if no standard identify fields 2024-01-22 12:54:37 +00:00
Paul Holden 010d2ffb83 MDL-80202 repository_local: null check when recursing child nodes. 2024-01-22 10:19:45 +00:00
Ferran Recio e679f8f11f MDL-79029 behat: optimize behat tests
Replace some add activity to section steps to the new
add activity to course section so they are faster and do
not require javascript.
2024-01-22 11:15:21 +01:00
Ferran Recio 9f7163869e MDL-79029 behat: new add activity steps 2024-01-22 11:15:21 +01:00
Paul Holden 6435680f5a MDL-80653 h5p: handle content type creation errors in test.
See also same in c7d08f85.
2024-01-22 09:46:10 +00:00
Huong Nguyen 316865e2ae Merge branch 'MDL-80532-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 15:39:11 +07:00
Huong Nguyen 873baf6623 Merge branch 'MDL-80499-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 15:36:20 +07:00
Jun Pataleta 466009c2a4 Merge branch 'MDL-80377-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-22 16:32:40 +08:00
Jun Pataleta 74a3fa91e4 Merge branch 'MDL-80374-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 16:29:38 +08:00
Jun Pataleta 3beb0e2080 Merge branch 'MDL-80323-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 16:26:06 +08:00
Jun Pataleta fa50ca4ba1 Merge branch 'MDL-80232-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-22 15:04:43 +08:00
Pedro Jordao eb1eee3b71 MDL-80668 modal: Change aria roles on modal to improve accessibility.
The roles we were using were no longer the most recommended for modals.
2024-01-19 08:11:39 -03:00
Paul Holden 32487e36d9 MDL-79577 user: better parsing of user menu lang string identifiers. 2024-01-19 09:49:19 +00:00
Matthias Opitz ccbb6bd37e MDL-79988 course: checking for cached empty modnames
Check if empty modnames have been cached and if so retrieve them again.
2024-01-19 09:41:23 +00:00
Angelia Dela Cruz ccec3cf2e1 MDL-80377 block: Behat confirming folder file in recent activity block 2024-01-19 14:29:20 +08:00
Jun Pataleta 84662768ec MDL-80676 core: Remove unnecessary aria-labelledby for action menu links
The aria-labelledby attribute for the action menu link's <a> tag is
unnecessary as the <span> tag containing the action menu link's text
is already within the <a> tag and already serves as the link's label by
default.
2024-01-19 14:12:41 +08:00
Philipp Memmel 41b9fb7623 MDL-80271 core_user: Only update record if necessary 2024-01-19 05:59:27 +00:00
Huong Nguyen 9d3e70fe06 weekly release 4.3.2+ 2024-01-19 11:23:54 +07:00
Paul Holden f44de225ac MDL-79514 mod_feedback: ensure base item class library is required. 2024-01-18 20:46:33 +00:00
Paul Holden 87617b8daa MDL-80667 task: preserve environment when running tasks from web.
For sites that rely on environment variables to set configuration,
ensure they are also present when executing task process.

Co-authored-by: Olivier Wenger <olivier.wenger@liip.ch>
2024-01-18 16:54:06 +00:00
Paul Holden 6ff1d5393a MDL-79433 tiny_autosave: allow non-logged in user calls to webservice.
Accounts for the editor being added to pages for non-logged in users,
such as the "New account" page.
2024-01-18 10:49:16 +00:00
Paul Holden 782e402138 MDL-73010 repository_filesystem: fix directory read comparison.
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2024-01-18 10:02:16 +00:00
Tim Hunt 02dc1a1079 MDL-80650 quiz restore: restore of max marks review option from pre 4.2 2024-01-18 09:26:10 +00:00
Andrew Nicols 4064887a19 MDL-79152 editor_tiny: Enable browser-based spell-checking 2024-01-18 12:53:38 +08:00
Andrew Nicols fc8bbc49ea Merge branch 'MDL-80201-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-01-18 11:34:28 +08:00
Jun Pataleta d90f7daba1 Merge branch 'MDL-72308-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-18 11:30:18 +08:00
Huong Nguyen acecd19472 Merge branch 'MDL-80403-403' of https://github.com/davewoloszyn/moodle into MOODLE_403_STABLE 2024-01-18 10:25:36 +07:00
Jun Pataleta 5881620471 Merge branch 'MDL-79498-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-01-18 10:59:23 +08:00
Andrew Nicols 06f9ad8a38 Merge branch 'MDL-80591_403' of https://github.com/stronk7/moodle into MOODLE_403_STABLE 2024-01-18 10:57:20 +08:00
Justus Dieckmann f7010a6d9b MDL-79498 javascript: Adjust get_string function signature
Reflect param and lang being optional parameters.
2024-01-18 10:55:42 +08:00
Andrew Nicols 5cd72ef46d Merge branch 'MDL-80041-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-01-18 10:54:00 +08:00
Sara Arjona 24585543ba Merge branch 'MDL-80058-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-01-17 18:46:34 +01:00
Sara Arjona becb952d29 Merge branch 'MDL-80081-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-01-17 18:18:10 +01:00
Juan Leyva dd660845cc MDL-76671 tool_mobile: Allow OAuth launches after accepting policies 2024-01-17 16:50:47 +01:00
Sara Arjona d56b3a7911 Merge branch 'MDL-80255-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2024-01-17 11:51:10 +01:00
Paul Holden 887da1cd67 MDL-78888 tool_uploaduser: case-insensitive email matching on upload. 2024-01-17 09:01:12 +00:00
Paul Holden 827446a7ba MDL-80098 core: correct arguments for invalidmoduleid exceptions.
The "invalid module ID" should be passed as the `$a` constructor
argument.
2024-01-17 08:58:55 +00:00
Paul Holden 82244afc3a MDL-80060 enrol_manual: correct exception constructor arguments. 2024-01-17 08:57:44 +00:00
Paul Holden 4d0d8f7f1b MDL-78417 tool_uploaduser: handle empty default in custom menu field. 2024-01-17 08:55:54 +00:00
Huong Nguyen 835b2d01cc Merge branch 'MDL-79701-403' of https://github.com/rjnl/moodle into MOODLE_403_STABLE 2024-01-17 14:08:25 +07:00
Huong Nguyen 1d54f1f1f9 Merge branch 'MDL-80498_403' of https://github.com/santoshndev/moodle into MOODLE_403_STABLE 2024-01-17 10:38:04 +07:00
Huong Nguyen 144f2f0a52 Merge branch 'MDL-80260-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-17 10:17:35 +07:00
Amaia Anabitarte 05dc4a42d5 MDL-80255 mod_scorm: Remove 'Completed' as default completion 2024-01-16 17:27:23 +01:00
Paul Holden 8145ad6b6a MDL-72703 profilefield_text: validate field length when editing.
This also means the same validation is applied elsewhere,  such as
in the upload user tool.
2024-01-16 09:54:14 +00:00
Sara Arjona aa0b05ff8e Merge branch 'MDL-80266-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-01-16 07:20:10 +01:00
Andrew Nicols c5713d6b76 MDL-80266 mod_forum: Reset subscription caches between behat tests 2024-01-16 13:34:31 +08:00
Ilya Tregubov bf61a48eeb Merge branch 'MDL-69615-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-01-16 10:57:24 +08:00
Huong Nguyen 806dcd5eee MDL-69615 core_backup: Send backup report email once the tasks are done 2024-01-16 09:31:03 +07:00
Sara Arjona 8929efb8b5 Merge branch 'MDL-59467-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-01-15 17:28:18 +01:00
Sara Arjona b6d4be7a3c Merge branch 'MDL-79519-403_url_select' of https://github.com/Tsheke/moodle into MOODLE_403_STABLE 2024-01-15 17:03:05 +01:00
Paul Holden 97e996c764 MDL-29261 tool_uploaduser: warn user about invalid data values. 2024-01-15 15:14:59 +00:00
Paul Holden e7d19f0cb3 MDL-72308 mod_forum: update legacy uses of formchangechecker module. 2024-01-15 14:26:00 +00:00
Paul Holden 70f7b59c3c MDL-80516 core: more robust plugin update component checking.
Occurs when a plugin in incorrectly removed (via file system only,
rather than following proper uninstall process), and also contains
it's own sub-plugins.

In the above scenario, the update would request and receive back a
response for a plugin whose name was comprised of an empty string,
subsequently causing errors when processing said response.
2024-01-15 14:10:08 +00:00
Johnny Tsheke 6249537886 MDL-79519 course: remove null to use the default value. 2024-01-15 09:09:33 -05:00
Sara Arjona f08dadcdf8 Merge branch 'MDL-79091-MOODLE_403_STABLE' of https://github.com/jay-oswald/moodle into MOODLE_403_STABLE 2024-01-15 12:31:41 +01:00
Jake Dallimore 631d94a872 MDL-78219 enrol_lti: fix auth method usage in base testcase 2024-01-15 15:44:24 +08:00
Jake Dallimore 796935efc2 MDL-78219 auth_lti: ensure user updates happen after authentication
If an existing session is active at the time of launch, that user id
appears in the user_updated log. This log should show the launching user
updating their own record, not someone else. To resolve this, auth the
user before making any record updates so that the event gets the correct
user id.
2024-01-15 15:44:24 +08:00
Jake Dallimore a58f004545 MDL-78219 auth_lti: force empty session before launch user creation
If an existing session is active at the time of launch, that user id
appears in the user_created log, incorrectly (it should be system/0).
This patch makes sure that any existing session is terminated before
creation of a new user during launches.
2024-01-15 15:44:24 +08:00
Huong Nguyen 42b22b46fe MDL-69615 privacy: Use task trait for unit tests 2024-01-15 11:24:02 +07:00
Huong Nguyen 99f60697ec MDL-69615 core_task: Add a task trait 2024-01-15 11:24:02 +07:00
Eloy Lafuente (stronk7) f192195a76 MDL-80591 phpunit: delegate run to phpunit binary
Instead of manually including composer's auto-loading
stuff and then run PHPUnit\TextUI\Command::main(), now
we are using the PHPUnit "binary".

That way behaviour should be 100% the same than
running vendor/bin/phpunit (recommended instead of util.php --run).

Also, note that, for other util.php commands, we still need
composer's auto-loading to happen, so we have moved it immediately
after the --run command.

Finally, a few more file_exists() conditions have been added
to ensure that PHPUnit is properly installed. Redundant but...
2024-01-13 18:31:45 +01:00
Paul Holden 22e5c8aba6 MDL-70058 customfield: reference field element names correctly.
In the course external create/update methods, we must ensure that
the correct form element names are used. Specifically because the
textarea field type uses non-standard name.
2024-01-12 10:29:25 +00:00
Jun Pataleta 9e8c90c86c Merge branch 'MDL-80526-MOODLE_403_STABLE' of https://github.com/ScottVerbeek/moodle into MOODLE_403_STABLE 2024-01-12 17:44:32 +08:00
Jun Pataleta b0c3178932 Merge branch 'MDL-80192-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-12 17:28:27 +08:00
Paul Holden 38f2164bfe Merge branch 'MDL-80564-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-01-12 09:07:40 +00:00
Santosh Nagargoje fa51aa95a6 MDL-80498 group: Added required rule for filepicker field 2024-01-12 14:29:41 +05:30
meirzamoodle b149b40a9c MDL-80081 editor_tiny: Allow empty content in the i tag 2024-01-12 15:42:14 +07:00
Paul Holden d369e3628e MDL-80192 reportbuilder: ensure filter form group elements have labels.
This ensures compliance with the following WCAG criterion:

"H71: Providing a description for groups of form controls using fieldset
and legend elements".
2024-01-12 08:39:40 +00:00
Paul Holden f5192ab0b3 MDL-80192 forms: implement method to set group element hidden label.
This is consistent with the API used for other form element types,
in order to provide screen-readable text in the fieldset legend while
not necessarily wanting to display said label.

The new class property is automatically exported to the template via
the `templatable_form_element` trait.
2024-01-12 08:33:35 +00:00
Jun Pataleta 0e676bd8c2 Merge branch 'MDL-80353-MOODLE_403_STABLE' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-01-12 16:20:44 +08:00
Ilya Tregubov 076379a485 weekly release 4.3.2+ 2024-01-12 09:11:37 +08:00
Marina Glancy 5a94a957bc MDL-80564 reportbuilder: Consistent permission check for user full name 2024-01-11 14:45:28 +00:00
Paul Holden 22c6b1a162 MDL-80575 mod_forum: correct field name for "Notify students" setting. 2024-01-11 11:44:28 +00:00
ScottVerbeek a83ac73434 MDL-80526 tool_filetypes: Test required icons in test_get_file_icons
The test now checks for the required icons, without needing to specify a count.
Allowing developers to add custom icons to the folder pix/f/mycustomicon.svg without needing to alter any unit test.
2024-01-11 14:45:57 +10:00
Jun Pataleta 50dd5eaab1 Merge branch 'MDL-80246-403' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-01-11 11:50:00 +08:00
Huong Nguyen 4743212ffb Merge branch 'MDL-80452-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-11 10:44:33 +07:00
Huong Nguyen f07be5e649 Merge branch 'MDL-80229-403' of https://github.com/davewoloszyn/moodle into MOODLE_403_STABLE 2024-01-11 10:36:07 +07:00
Angelia Dela Cruz 3ccc4d1681 MDL-80452 mod_h5pactivity: Behat for H5Pactivity duplication and delete 2024-01-11 11:20:19 +08:00
Ilya Tregubov 4d52b09e84 Merge branch 'MDL-80446-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-11 10:44:28 +08:00
Ilya Tregubov 2fe32ba8cf Merge branch 'MDL-80357_403_STABLE' of https://github.com/SimonasAdams/moodle into MOODLE_403_STABLE 2024-01-11 10:38:38 +08:00
Ilya Tregubov a2085cbfaf Merge branch 'MDL-80333_403' of https://github.com/santoshndev/moodle into MOODLE_403_STABLE 2024-01-11 10:34:43 +08:00
Paul Holden f1d798a1e0 MDL-80499 datafield_date: specify UTC time when editing field content. 2024-01-10 19:23:11 +00:00
Paul Holden c86be8ac94 MDL-80199 report_log: remove duplicate "all logs" breadcrumb. 2024-01-10 10:07:53 +00:00
Santosh Nagargoje a1cf1082b7 MDL-80333 Authentication: Fixed new login notification adhoc task 2024-01-10 15:28:44 +05:30
Paul Holden d239ef73c9 MDL-78621 mod_choice: verify limited responses before showing "full". 2024-01-10 09:47:39 +00:00
Sara Arjona 36c5f8d2e0 Merge branch 'MDL-80340-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-01-10 07:35:03 +01:00
Huong Nguyen 85fb00c041 Merge branch 'MDL-80382-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-01-10 10:30:14 +07:00
meirzamoodle 0f752d0bca MDL-80058 editor_tiny: add preformatted format to the blocks 2024-01-10 09:38:38 +07:00
Paul Holden f7829013e5 MDL-80559 badges: set contexturl/name in badge awarded notification. 2024-01-09 17:16:41 +00:00
Simey Lameze 0953e51829 MDL-80340 behat: make query to fetch h5p attempts less strict 2024-01-09 16:15:49 +08:00
Angelia Dela Cruz aba3431ae9 MDL-80382 behat: Replace "Frist" typos in Behat tests to "First" 2024-01-09 10:52:51 +08:00
Sara Arjona 1a7ab557b6 Merge branch 'MDL-78999_403' of https://github.com/santoshndev/moodle into MOODLE_403_STABLE 2024-01-08 16:38:38 +01:00
Paul Holden 142df0645c MDL-80323 h5p: fail content type retrieval task on errors.
It's better for the task to fail gracefully rather than silently
swallow any errors, so that the task API can schedule re-tries.

If the endpoint is temporarily down and/or misbehaving, this will
allow admins to have clearer failures.
2024-01-08 10:06:36 +00:00
Huong Nguyen a1f2d724cc Merge branch 'MDL-73639-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-01-08 16:08:43 +07:00
Simey Lameze fb59440170 MDL-73639 behat: improvements to the new recover grades test 2024-01-08 13:09:03 +08:00
Angelia Dela Cruz f91e98828d MDL-73639 core_grades: Behat to test Recover grades default settings 2024-01-08 13:09:03 +08:00
Rajneel Totaram e00b9ca316 MDL-80383 mod_book: Make book content use full width on small screens 2024-01-08 15:35:37 +12:00
Ilya Tregubov f29220e39d Merge branch 'MDL-69497-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-08 10:04:15 +08:00
Ilya Tregubov f84479e3d6 Merge branch 'MDL-79937-403_fixlessonmatching' of https://github.com/catalystfd/moodle into MOODLE_403_STABLE 2024-01-08 09:20:25 +08:00
Víctor Déniz 6fb76aa958 MDL-79681 user: fix conditional to get the last access to a course 2024-01-05 13:55:54 +00:00
Paul Holden 4e2b5137f4 MDL-79681 user: fix participant filter "never accessed" options.
For courses, determine whether "Never accessed" should be available,
and correct the used value to match that expected by the API (-1).
2024-01-05 13:55:54 +00:00
Laurent David 5665addea4 MDL-80289 mod_bigbluebutton: Fix retrieval of meeting via meetingid 2024-01-05 11:15:17 +01:00
Santosh Nagargoje 8357d9b18f MDL-78999 theme: Fixed site logo issue in small screens 2024-01-05 01:12:27 +05:30
Rajneel Totaram 4a2aa40512 MDL-79701 block_calendar_upcoming: Display activity name in tooltip 2024-01-05 07:17:36 +12:00
Paul Holden a53b8e1d2c MDL-80523 mod_label: correct upgrade step select query parameters. 2024-01-04 16:22:28 +00:00
Paul Holden 96a452dd41 MDL-80532 block_myoverview: don't post sesskey to quickstart guide URL. 2024-01-04 14:38:35 +00:00
Paul Holden 42df379616 MDL-79927 files: scope toggleall checkboxes per filemanager instance.
Ensures that when multiple exist on the same page, each operates
independently of the others.
2024-01-04 13:22:40 +00:00
Paul Holden e600e8e6b4 MDL-80247 files: multi-byte aware filename shortening in exporter.
Also correctly extract the original file extension.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
Co-authored-by: Mazitov Artem <maz@2i.tusur.ru>
2024-01-04 13:20:19 +00:00
Sara Arjona d5d0774fec weekly release 4.3.2+ 2024-01-04 12:02:00 +01:00
Sara Arjona 8b571da7fe Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-01-04 12:01:55 +01:00
Sara Arjona d1b7d46143 Merge branch 'MDL-79307-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-03 17:18:21 +01:00
Sara Arjona 381755e1f9 Merge branch 'MDL-80243-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-01-03 16:58:06 +01:00
Sara Arjona f8dec8bfb2 Merge branch 'MDL-76719-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-01-03 16:32:40 +01:00
Shamim Rezaie 8cc5641be0 Merge branch 'MDL-79708-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2024-01-03 00:11:33 +11:00
Huong Nguyen 40ae0fe34e Merge branch 'MDL-80412-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-27 17:22:24 +07:00
AMOS bot 2d462e1d39 Automatically generated installer lang files 2023-12-23 00:11:29 +00:00
Jun Pataleta f810374a0e Moodle release 4.3.2 2023-12-22 10:00:26 +08:00
Jun Pataleta 3eca273205 MDL-80041 gradereport_singleview: Implement grade validation
Implement grade validation for numeric grade overrides by setting
the type attribute for the grade input to number and setting a min
and max attribute values. Submitting the form with invalid values
will trigger built-in validation of the inputs.
2023-12-21 22:18:53 +08:00
Sara Arjona 6c73be6e8e weekly release 4.3.1+ 2023-12-21 13:34:17 +01:00
Paul Holden b8fe6ee6c3 MDL-80450 mod_resource: observe print intro setting when embedding. 2023-12-21 11:22:06 +00:00
Huong Nguyen 5a7599385f Merge branch 'MDL-80151-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2023-12-20 15:39:54 +07:00
Huong Nguyen eae457d10d MDL-80151 behat: Improve viewing site calendar step 2023-12-20 16:32:38 +08:00
Angelia Dela Cruz 56eb910aed MDL-80151 mod_chat: Behat for chat repeat times and past session view 2023-12-20 16:32:38 +08:00
Simey Lameze 11dcef291d MDL-80151 behat: add calendar step to navigate to specific view 2023-12-20 16:32:38 +08:00
Jun Pataleta 42cbafd610 Merge branch 'MDL-68124-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-12-20 15:01:05 +08:00
Simon Adams 7af3c41dd3 MDL-80357 theme_boost: Correctly interpolate SCSS
Fixes interpolation between SCSS setting and background images SCSS when SCSS setting is a single line comment
2023-12-19 15:25:50 +00:00
Paul Holden b60adc89ec MDL-80260 tool_mfa: fix all factor report table alignment per auth. 2023-12-19 12:20:45 +00:00
Jun Pataleta fb1752711e Merge branch 'MDL-80393-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-19 17:25:10 +08:00
Paul Holden 3919d8e3b0 MDL-80446 mod_feedback: stricter selector for getting draggable items.
Ensure we don't also match inner nodes of the label question.
2023-12-19 08:27:25 +00:00
Jun Pataleta 9d291854a5 MDL-76723 core_tag: Use external_format_value constructor properly
* First parameter should be the field name that the format property
points to.
* No need for VALUE_REQUIRED since it's the default for the $required
parameter.
* Third parameter is the default value and not a description string.
2023-12-19 15:50:21 +08:00
Jun Pataleta 77a5658f0e MDL-76723 mod_page: Use external_format_value constructor properly
* 'Content format' is passed to the $default parameter which is
incorrect.
* Also removed passing of VALUE_REQUIRED because it's already the
default value for the $required parameter.
2023-12-19 15:50:21 +08:00
Jun Pataleta bbfbc8abd1 MDL-76723 core_external: Handle format properties properly
- If a text format property defines the 'optional' attribute as true,
then the $required parameter that
is passed to \core\external\exporter::get_format_structure() should be
VALUE_OPTIONAL.
- If a default value is provided for a format property,
\core\external\exporter::get_format_structure() should pass the default
value to the external_format_value constructor.
- Added validation for external_format_value for the default parameter.
  Debugging will be shown in case an invalid default value is passed.
- Amended unit tests for better coverage.
2023-12-19 15:50:21 +08:00
Frédéric Massart def6645cdc MDL-76723 core_external: Test invalid required value for format fields 2023-12-19 15:50:21 +08:00
Paul Holden 99eb359503 MDL-80393 lang: expose current page language to JS modules.
Since 4be39296 the root HTML element contains the iso6391 language
code of the current language pack. However various JS modules need
access to the original Moodle language pack code, so expose that
in the `M.cfg` structure.
2023-12-19 07:47:22 +00:00
Jun Pataleta b9698228ab MDL-80201 core: Check for default format value for exporter::export() 2023-12-19 15:46:59 +08:00
David Woloszyn cdb365b9f4 MDL-80403 communication_matrix: Fixed convert power levels to array
The curent patch revealed a bug inside set_matrix_power_levels
where returned user power levels contained an array of objects.
Other methods were failing and giving incorrect responses
as they were expecting arrays.
2023-12-19 13:36:26 +11:00
David Woloszyn 0f4b02411e MDL-80403 communication_matrix: Update membership checks membership 2023-12-19 13:36:26 +11:00
Andrew Nicols ae93fa2696 MDL-59467 core: Use hasHelper instead of catching exception
When xdebug is set to break on exceptions it stops on all exceptions,
including _caught_ exceptions.

As a result we regularly hit this uniqid helper issue if debugging with
xdebug.

The solution is to check if the helper exists using the hasHelper method
instead of catching an exception when it does not exist.
2023-12-19 09:20:42 +08:00
Sara Arjona 6f344ff877 MDL-68124 lesson: Fix random behat error with Oracle
This random error was caused because when reviewing an attempt,
the first pageid to display is calculated based on the timeseen
field in the lesson_attempst table.
In Oracle, sometimes it returned the second pageid (because both
had the same timeseen), so which led to these random failures.

Apart from adding 1-second wait when the attempt is created (to
guarantee the first page is returned properly), a few more
improvements have been also made, like removing manual steps for
setting the lesson activity or adding some extra checks to
confirm the information displayed is expected.
2023-12-18 09:48:48 +01:00
Huong Nguyen 68c20d41fe Merge branch 'MDL-80410-403' of https://github.com/lucaboesch/moodle into MOODLE_403_STABLE 2023-12-18 14:09:47 +07:00
Simey Lameze d916077929 MDL-80243 behat: make completion step more specific
Credit goes to Matthias Opitz
2023-12-18 09:32:45 +08:00
Paul Holden a432e1767f MDL-80412 reportbuilder: Behat scenario to view/sort additional names.
Related to fixes from 8f32e623.
2023-12-15 10:55:25 +00:00
Paul Holden 7a0a94b6b2 MDL-80412 reportbuilder: remove duplicate columns from order clause.
This works around a problem in SQL Server, which caused it to throw a
DML exception if the same column is duplicated in `ORDER BY` clause.

Backported from MDL-79270.
2023-12-15 10:54:10 +00:00
Luca Bösch 4272fc3f28 MDL-80410 resource: File icon without 'nofilter' 2023-12-15 07:01:47 +01:00
Huong Nguyen 1bd5dfe090 weekly release 4.3.1+ 2023-12-15 08:44:19 +07:00
Huong Nguyen f8d0e86350 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2023-12-15 08:44:13 +07:00
Huong Nguyen e092c75d15 Merge branch 'MDL-79828-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-12-14 10:14:43 +07:00
Huong Nguyen 90b3f5fc26 Merge branch 'MDL-79050-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-12-14 09:56:47 +07:00
Huong Nguyen c77bef3ad7 Merge branch 'MDL-80394-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-12-14 09:22:42 +07:00
Ilya Tregubov 260eef0a72 Merge branch 'MDL-79938-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2023-12-14 08:50:54 +08:00
AMOS bot af0fe95d84 Automatically generated installer lang files 2023-12-14 00:11:12 +00:00
Sara Arjona ee0c928f10 Merge branch 'MDL-80233-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2023-12-13 10:22:10 +01:00
Angelia Dela Cruz d1796d1f0e MDL-79050 Behat: Add behat coverage to retake lesson activity 2023-12-13 16:25:13 +08:00
Huong Nguyen ac2acd0072 Merge branch 'MDL-74466-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-13 09:28:57 +07:00
Ilya Tregubov 155abc6945 MDL-80394 core_grades: Revert changes to graded_users_iterator
Third party plugins are using it and change was breaking it
2023-12-13 09:38:14 +08:00
Ilya Tregubov cf0b182dee Merge branch 'MDL-80003_403' of https://github.com/PhilippImhof/moodle into MOODLE_403_STABLE 2023-12-13 09:22:16 +08:00
Sara Arjona f863084cc9 Merge branch 'MDL-77572_403' of https://github.com/santoshndev/moodle into MOODLE_403_STABLE 2023-12-12 17:55:57 +01:00
sam marshall 2ddad8ce7a MDL-79938 Behat: Add steps to support multiple tabs 2023-12-12 16:43:08 +00:00
Santosh Nagargoje 8d45a9f2a2 MDL-77572 Course: Added fix for section,activity visibility capabilities
added fix
2023-12-12 21:38:45 +05:30
Amaia Anabitarte 4b0a34f08a MDL-80233 completion: Use default for empty values 2023-12-12 16:34:11 +01:00
Sara Arjona 3a7f291d38 Merge branch 'MDL-80315-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-12-12 14:19:52 +01:00
Sara Arjona bbfc6312a8 Merge branch 'MDL-79835_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-12-12 14:11:41 +01:00
Paul Holden d6df348ec4 MDL-80224 tool_uploaduser: better user defaults per site configuration.
Improve use of `core_user` type/default/choice definitions when setting
fields in the "Default values" form, used on upload.
2023-12-12 10:12:58 +00:00
Paul Holden 61f8a1fe55 MDL-80374 grade: show localised plugin name in report column heading. 2023-12-11 10:34:58 +00:00
Ilya Tregubov 67666fda0e MDL-79708 question_bank: Fix legacy filter condition.
build_query_from_filter method expects includesubcategories
to be inside filteroptions array
2023-12-11 11:49:45 +08:00
Marina Glancy 77fe4a8e3e MDL-80353 core_user: announce user selector changes to the screenreader 2023-12-08 15:30:00 +00:00
Huong Nguyen fe8d759b17 Moodle release 4.3.1 2023-12-08 09:21:43 +07:00
Mihail Geshoski bf3a6a122f MDL-80246 tiny_equation: Escape elementid in the data-target attribute
Tabs use the value of the data-target attribute of the active tab link
to find and display the appropriate tab content. In some situations the
elementid value that is used to generate the data-target may contain
certain characters that have a special meaning in the selector context
(e.g. ".", ",", "#") and because of that the target element cannot be
correctly identified. To fix this problem the elementid value needs to
be escaped prior to generating the data-target attribute.
2023-12-08 10:05:37 +08:00
Francis Devine e368e04824 MDL-79937 mod_lesson: Fix matching pagetype question matching
The addition of text format on the output of the answer responses broke
the matching later when comparing the valid answer against the sent
response, as the answer response was not correspondingly formatted.

I decided to use the un formatted answer response as the key, to keep it
as close as identical to prior behaviour
2023-12-08 09:08:06 +13:00
Paul Holden 2671324c9e MDL-80232 forumreport_summary: fix pagination count for summary report. 2023-12-07 17:25:44 +00:00
Philipp Imhof 983921ecff MDL-80003 mod_quiz: watch all instances of tinyMCE 2023-12-07 17:29:58 +01:00
Sara Arjona f72244a8c2 weekly release 4.3+ 2023-12-07 16:22:04 +01:00
Paul Holden d09f737c7d MDL-79980 mod_survey: remove responses link if user cannot access.
Update Behat scenario to match.
2023-12-07 12:08:47 +01:00
Brendan Heywood b654282b18 MDL-80309 tasks: Clean up mtrace logs 2023-12-07 12:08:05 +08:00
Andrew Nicols bdb5a4ba40 Merge branch 'MDL-80257-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2023-12-07 11:43:05 +08:00
Huong Nguyen 419d7f40c3 Merge branch 'MDL-80341_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-12-07 10:27:58 +07:00
Paul Holden 7be05aae41 MDL-79839 tool_task: clean task classname parameter prior to use. 2023-12-07 10:54:01 +08:00
Huong Nguyen 04261e8722 Merge branch 'MDL-79061-403-2' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-12-07 09:52:28 +07:00
Jun Pataleta a53121b74a MDL-79061 course: Create a sr-only mutations logger
* Create SRLogger that extends from the default Logger class. This
logger outputs the feedback to a sr-only ARIA live region to allow
screen readers to announce the feedback from mutations.
* Update the course editor to use the SRLogger.
2023-12-07 10:43:13 +08:00
Ferran Recio 6814c42260 MDL-79061 core: Mechanism for logging mutation feedbacks
* Create a mechanism for logging mutation feedbacks.
* The mutation feedbacks are displayed as a toast by default.
* Apply this logging mechanism on the course homepage to provide
feedback for the results of actions performed on course modules and
course sections.
2023-12-07 10:43:13 +08:00
Huong Nguyen 658953e34f Merge branch 'MDL-68652-403-1' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-12-07 09:31:46 +07:00
Jun Pataleta c2c03f203f Merge branch 'MDL-80281_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-12-07 10:16:52 +08:00
Huong Nguyen 9a1a58e593 Merge branch 'MDL-77136-403' of https://github.com/lucaboesch/moodle into MOODLE_403_STABLE 2023-12-07 08:36:35 +07:00
Paul Holden 0f63155d58 MDL-79980 mod_survey: respect activity group mode getting report. 2023-12-07 09:32:11 +08:00
Ilya Tregubov 25e00b5e1f MDL-68652 core_grades: Only return allowed fields.
Grade iterator should check user permissions.
2023-12-07 09:12:39 +08:00
Ilya Tregubov b2bc3b9e7e Merge branch 'MOODLE_403_MDL-73378' of https://github.com/danielneis/moodle into MOODLE_403_STABLE 2023-12-07 09:01:58 +08:00
Jun Pataleta 38ed732727 Merge branch 'MDL-79761-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2023-12-07 08:54:00 +08:00
Paul Holden 463f16617e MDL-80239 grade: escape matched data in user search results. 2023-12-07 08:42:38 +08:00
Paul Holden 260924aeb8 MDL-80287 grade: escape current value in search templates. 2023-12-07 08:36:32 +08:00
Tim Hunt d7a1ef5dfa MDL-79835 behat_core_generator: remove misleading error obfuscation 2023-12-06 18:12:20 +00:00
Jun Pataleta b38413afe4 Merge branch 'MDL-80127_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-12-06 22:12:17 +08:00
Jun Pataleta 05ab53734b Merge branch 'MDL-80079-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-12-06 21:59:11 +08:00
Luca Bösch 708732ed72 MDL-77136 qtype_randomsamatch: Newest versions for shortanswer questions 2023-12-06 14:14:14 +01:00
Luca Bösch 121d6fb20a MDL-77136 core_question: Newest versions get_questions_from_categories 2023-12-06 14:14:14 +01:00
Tim Hunt e4acb387bb MDL-80127 question engine: prevent fatal errors from old bad data 2023-12-06 11:38:58 +00:00
Tim Hunt ff74bb2682 MDL-80127 question engine: don't convert null to '' before storing 2023-12-06 11:38:58 +00:00
Tim Hunt 17fb4afaab MDL-80341 quiz: unseen descriptions are not unanswered questonis
This was causing confusing in the 'are you sure you want to submit' confirmation pop-up.
2023-12-06 11:13:27 +00:00
Angelia Dela Cruz 0cb2fd1a7f MDL-80315 block_comments: Removed duplicate Behat test
Deleted the duplicated course comments block behat test. The file
blocks/comments/tests/behat/add_comment.feature is deleted as a
result.
2023-12-06 18:18:53 +08:00
Ilya Tregubov 60541d90e5 Merge branch 'MDL-76109-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2023-12-06 15:42:55 +08:00
Huong Nguyen 4b26df011f Merge branch 'MDL-50650-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-12-06 14:06:13 +07:00
Stephan Robotta fbecc7132d MDL-41465 reports: In separate group mode, limit to same 2023-12-06 13:52:58 +07:00
Ilya Tregubov bbea6e1d31 MDL-68652 mod_forum: Only include gradable users in grading 2023-12-06 12:45:09 +08:00
David Woloszyn 9e3ca2a866 MDL-79759 repository_url: Limit css imports and remove fragments
There are checks to urls that attempt to limit recurrsion when
parse_file is called. This is problematic for css import urls that
can call an indefinite amount of nested import urls. An import limit
has been introduced to address this. Fragments have also been removed.
2023-12-06 03:54:20 +01:00
Stevani Andolo 40ee4ab3fa MDL-80174 tool_log: ensure "other" data is safely unserialized. 2023-12-06 03:54:20 +01:00
Paul Holden d40fc8708a MDL-80268 badges: require capability to view awarded badges. 2023-12-06 03:54:20 +01:00
Paul Holden 2a60bc604f MDL-79797 backup: ensure block config is safely unserialized. 2023-12-06 03:54:20 +01:00
Ilya Tregubov e8237560d3 Merge branch 'MDL-79692-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-06 10:50:13 +08:00
Huong Nguyen 258783a754 Merge branch 'MDL-80180-403' of https://github.com/jbs1/moodle into MOODLE_403_STABLE 2023-12-06 09:16:28 +07:00
Ilya Tregubov 81de0469c1 Merge branch 'MDL-74248-MOODLE_403_STABLE-fix_mp3_mod_folder' of https://github.com/praxisdigital/moodle into MOODLE_403_STABLE 2023-12-06 10:01:00 +08:00
Sara Arjona 638cbfac93 Merge branch 'MDL-80286-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-05 16:42:14 +01:00
Sara Arjona 85c70539df Merge branch 'MDL-79862-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2023-12-05 16:35:25 +01:00
Sara Arjona 5b442418ad Merge branch 'MDL-79979-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2023-12-05 16:16:47 +01:00
Jun Pataleta 9c641bf38e Merge branch 'MDL-73974-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-12-05 23:09:37 +08:00
Karen Holland f9797aca63 MDL-73974 tool_brickfield: Processing alpha fontsizes 2023-12-05 23:07:57 +08:00
Sara Arjona d4b1ecbed4 Merge branch 'MDL-55640-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2023-12-05 16:01:54 +01:00
Sara Arjona d140771110 Merge branch 'MDL-80015-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-12-05 15:51:28 +01:00
Sara Arjona 762df4050c Merge branch 'MDL-80254-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-05 15:45:38 +01:00
Paul Holden a56003588a MDL-79307 assignfeedback_editpdf: more informative task failure.
If ghostscript is not correctly configured the task will never
succeed, so error out earlier with a more informative exception
explaining this.
2023-12-05 12:20:23 +00:00
Jun Pataleta bee2d552b7 Merge branch 'MDL-79806_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-12-05 12:48:31 +08:00
Huong Nguyen f172248f20 Merge branch 'MDL-71336-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-05 11:19:41 +07:00
Jun Pataleta db71e79e05 Merge branch 'm43-mdl64431' of https://github.com/danmarsden/moodle into MOODLE_403_STABLE 2023-12-05 12:13:40 +08:00
Huong Nguyen 05c9ce4bd8 Merge branch 'MOODLE_403_STABLE' of https://github.com/dragos5436/moodle into MOODLE_403_STABLE 2023-12-05 10:40:29 +07:00
Ilya Tregubov ade9f7177a MDL-68652 core_grades: Refactor grades functions.
get_gradable_users now has extra param to retrieve only active
users. Grade reports hase their own grade_report::get_gradable_users
since they decided whether to inlcude active users from report preferences
2023-12-05 10:52:12 +08:00
Ilya Tregubov 05846ae405 MDL-68652 core_grades: Add a webservice to retrive only gradable users. 2023-12-05 10:52:12 +08:00
Ilya Tregubov e186ad572d Merge branch 'MDL-80043-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-12-05 09:11:08 +08:00
Ilya Tregubov 9f636a3de3 Merge branch 'MDL-80131-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-12-05 09:00:43 +08:00
Marina Glancy d79ad5de6a MDL-79761 navigation: fix default setting during web installation 2023-12-04 13:06:06 +00:00
Sara Arjona b7c8f7f723 Merge branch 'MDL-80185-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-12-04 11:00:44 +01:00
Paul Holden 46192ca77e MDL-80254 reportbuilder: better handling of deleted users in schedules.
We should verify that schedule and audience users are active accounts,
and that we don't try to send report schedules either from/to them if
they aren't.
2023-12-04 09:48:42 +00:00
meirzamoodle d68ea95f26 MDL-80257 editory_tiny: Implement ui_mode: split
Since version 6.4 and later, TinyMCE had a feature `ui_mode: split`.

It enables support for editors in scrollable containers,
and Moodle has some pages, especially the course pages, that are using the scrollable containers.
Therefore, all workaround that is addressed should be replaced by the feature to avoid future problems
regarding the overflow and the z-index issues.
2023-12-04 16:28:44 +07:00
meirzamoodle 85af2e6a7c MDL-80257 editory_tiny: Remove tox-tinymce-aux z-index
Remove .tox-tinymce-aux from style.css because z-index is already defined in TinyMCE skin.css
2023-12-04 16:28:44 +07:00
Paul Holden 4ac4b93064 MDL-74466 repository: avoid passing around sesskey when not required. 2023-12-04 09:22:32 +00:00
Jun Pataleta 136aef1fe6 Merge branch 'MDL-80221-403-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_403_STABLE 2023-12-04 16:11:30 +08:00
Ilya Tregubov 79ea6a2d22 MDL-50650 core_grades: Validate minimum grade when importing grades
Also add behat test for max and min grade validation.
2023-12-04 16:03:21 +08:00
Kyle Matter e2f5104676 MDL-50650 core_grades: allow grade imports larger than 100 points 2023-12-04 12:53:21 +08:00
Jun Pataleta bc133f6fc3 Merge branch 'MDL-79726-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-12-04 12:09:17 +08:00
Huong Nguyen bea6119692 Merge branch 'MDL-79784-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2023-12-04 09:25:35 +07:00
Jun Pataleta b04fcb4527 MDL-80131 mod_data: Make page titles unique 2023-12-02 07:20:35 +08:00
dragos5436 b4278ca6b0 MDL-60632 mod_quiz: Fix chart rendering fail in quiz report
If a quiz activity has negative grading enabled for incorrect answers,
students can achieve overall negative grades in this quiz. If at least
one student achieves a negative grade, the chart at the bottom of the
quiz 'Results' tab will fail to display. This patch add a search for
negative results, removes them from the band below 0 and adds them to
the 0 band. This will make the chart render correctly again.

Co-authored-by: Susana Leitão <sleitao@uporto.pt>
Co-authored-by: Matthias Opitz <m.opitz@ucl.ac.uk>

Removed whitespace at end of lines
2023-12-01 15:28:24 +00:00
Paul Holden 9785551527 MDL-76719 mod_assign: don't try to load user if there are none. 2023-12-01 13:18:38 +00:00
Paul Holden 533074d453 MDL-69497 mod_assign: amend preference definitions for current user.
Ensure they can always be updated when using the grader.
2023-12-01 10:55:28 +00:00
Sara Arjona d20c47f89c Merge branch 'MDL-80209-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2023-12-01 10:56:09 +01:00
Sara Arjona d29433ddc6 MDL-79726 completion: Overall should consider pass/fail states too
In MDL-78744, when the overallcompletion state was added to be displayed
in the activity card, only COMPLETE/INCOMPLETE status were considered.
However, depending on the activity completion settings, there are a
couple of states more that should also be included (COMPLETE_FAIL and
COMPLETE_PASS).

A new method has been added to the cm_completion_details class to
calculate whether a module should be considered or not completed,
based on their completion options and the current value for the
overall complete state.
2023-12-01 09:19:11 +01:00
David Mudrák 0a494aa9f6 MDL-80221 lang: Use fixed strings in the tests, too 2023-12-01 06:28:07 +01:00
Ilya Tregubov a418e9e53a weekly release 4.3+ 2023-12-01 13:12:23 +08:00
Jun Pataleta 3f10ec31b5 MDL-80043 grade: Add upgrade.txt notes 2023-12-01 09:10:53 +08:00
Jun Pataleta 488a653e50 MDL-80043 gradereport_grader: Define editingmode_title lang string 2023-12-01 09:10:53 +08:00
Jun Pataleta 7fa08a0b35 MDL-80043 grade: editingmode_title support for grade report plugins
* Add support for grade report plugins that define an
`editingmode_title` lang string. If the grade report plugin defines this
 language string, it will be used for the page title's unique
 identifying information when editing mode is turned on.
2023-12-01 09:10:53 +08:00
Jun Pataleta 6a89731462 MDL-80043 gradereport_singleview: Improve heading wordings
* Make the headings for the single view easier to read and understand
* When on editing mode, update the heading for the grade and user
screens to convey to the user that the page is currently on editing
mode. This is helpful for screen reader users as they can immediately
know the current display mode of the single view report page when this
gets read via the page title.
2023-12-01 09:10:53 +08:00
Jun Pataleta fd8b7fc730 MDL-80043 grade: Use heading parameter for the page title if provided 2023-12-01 09:10:52 +08:00
sam marshall 006eaeef08 MDL-55640 setuplib: test_localcachedir fails sporadically 2023-11-30 13:57:48 +00:00
Paul Holden 2862cce2a9 MDL-80286 datafield_date: cast field content to real when sorting.
This ensures we don't under/overflow the size of an integer in DB.
2023-11-30 10:05:01 +00:00
Amaia Anabitarte e3d76202cd MDL-80209 mod_scorm: Save minimum score completion 2023-11-30 10:40:17 +01:00
Mark Johnson 6441cca4d1 MDL-79806 quiz_statistics: Queue recalculation on attempt_deleted 2023-11-30 08:53:16 +00:00
Juan Leyva 04892e4707 MDL-79784 tool_mobile: Add missing external::format_text 2023-11-30 09:47:46 +01:00
Jay Oswald 3ef7a7d76a MDL-79091 core_badges: refactor bades cron task 2023-11-30 17:24:37 +11:00
Jay Oswald 8cf880c5de MDL-79091 core_badges: use adhoc tasks 2023-11-30 17:24:37 +11:00
Huong Nguyen 17282deeea Merge branch 'MDL-79816-403' of https://github.com/rmady/moodle into MOODLE_403_STABLE 2023-11-30 10:40:37 +07:00
Meirza c2e8975523 MDL-76109 core: Don't check password policy for guest user
Besides adding the is_guest() check in the check_password_policy() condition,
I also changed the temporary user ID because the temporary user and
the guest must not share the same ID. Otherwise, it will raise an error.

Co-authored-by: Andrei Bautu <abautu@gmail.com>
2023-11-30 10:35:38 +07:00
Huong Nguyen c5e3ce289e Merge branch 'MDL-74378_403' of https://github.com/PhilippImhof/moodle into MOODLE_403_STABLE 2023-11-30 10:11:45 +07:00
Ilya Tregubov 83e442cc69 Merge branch 'MDL-79890-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-11-30 10:45:01 +08:00
Ilya Tregubov b8f0f87b5f Merge branch 'MDL-78849-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-30 10:38:09 +08:00
Ilya Tregubov 539e5db429 Merge branch 'MDL-79325-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-30 09:34:46 +08:00
Sara Arjona 4c3523d987 Merge branch 'MDL-80205-403' of https://github.com/aanabit/moodle into MOODLE_403_STABLE 2023-11-29 18:42:09 +01:00
Mihail Geshoski 222b528160 MDL-80270 gradereport_grader: User row as the last row cannot be sticky
In certain scenarios, a user row can be the last row in the grader
report table. The current logic does not take this into account and
always pins the last row regardless of the type.
This change ensures that the last row is not a user row before executing
the logic responsible for pinning this row.
2023-11-30 00:10:30 +08:00
Jun Pataleta a0951e25b3 Merge branch 'MDL-79841-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2023-11-29 23:48:44 +08:00
Sara Arjona 70a95b8eae Merge branch 'MDL-79610-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-11-29 16:37:08 +01:00
Sara Arjona 5705496179 Merge branch 'MDL-80150-403' of https://github.com/lucaboesch/moodle into MOODLE_403_STABLE 2023-11-29 13:34:40 +01:00
Mikel Martín e77912a7c5 MDL-79610 courseformat: Fix availability restrictions rendering
When duplicating a course module, availability restrictions was not rendering
properly. That happened because 'editing' was not being exported for template
for a single course module. This patch adds 'editing' to the cm exported data.
2023-11-29 13:11:05 +01:00
Paul Holden fb13f6dd01 Merge branch 'MDL-79967-403-fix' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-11-29 12:03:05 +00:00
Jun Pataleta fbeef47a58 MDL-79967 mod_scorm: Use only the required field for the query 2023-11-29 18:32:07 +08:00
Sara Arjona 8fa5a3008d MDL-80150 resource: Reintroduce file icon
The new activity card design, planned for Moodle 4.3, reintroduces
the resource MIME icon that was removed in Moodle 4.0.
This is a backport of MDL-78285.
2023-11-29 09:58:14 +01:00
Jun Pataleta 2c94380acf Merge branch 'MDL-79148-403' of https://github.com/ssj365/moodle into MOODLE_403_STABLE 2023-11-29 15:20:32 +08:00
Jun Pataleta 8cd66034e4 Merge branch 'm43-mdl79967' of https://github.com/danmarsden/moodle into MOODLE_403_STABLE 2023-11-29 12:25:05 +08:00
Huong Nguyen 0bb3a2f20a Merge branch 'v_4_3_0' of https://github.com/dominicchinkh/moodle into MOODLE_403_STABLE 2023-11-29 10:33:21 +07:00
Huong Nguyen 96f06326f8 Merge branch 'm43-mdl80004' of https://github.com/danmarsden/moodle into MOODLE_403_STABLE 2023-11-29 09:52:51 +07:00
Huong Nguyen 8b6d43705e Merge branch 'MDL-80002-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-11-29 09:36:06 +07:00
Huong Nguyen eb0575859b Merge branch 'MDL-79267-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-29 09:17:38 +07:00
Huong Nguyen a6ce3c0758 Merge branch 'MDL-79512-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2023-11-29 09:08:38 +07:00
Huong Nguyen a9bfc2075b Merge branch 'MDL-76694-403' of https://github.com/snake/moodle into MOODLE_403_STABLE 2023-11-29 09:01:12 +07:00
Jun Pataleta 6a1644abff Merge branch 'MDL-80181-403' of https://github.com/srobotta/moodle into MOODLE_403_STABLE 2023-11-29 09:37:46 +08:00
Jeremy Schulz 1bbc0425e3 MDL-80180 admin: added readonly support for multicheckbox 2023-11-28 14:34:37 -05:00
Pascal Hamar 015b2a0cd8 MDL-36733 qtype_calculated: Wildcards in calculated question hints
The placeholders for the hints are properly replaced by this change and any formulas present are replaced.

The validation is performed by the existing function qtype_calculated_find_formula_errors(),
which is called by the calculate() function,
which in turn is called by the variable substituter "vs" using the replace_expressions_in_text() function.

vs -> replace_expressions_in_text() -> calculate() -> qtype_calculated_find_formula_errors().
2023-11-28 18:41:33 +01:00
Mark Johnson cb18237b5c MDL-80281 session: Don't report long session locks for readonly sessions
Previously, $CFG->sessionlockdebug was reporting long session locks for
all requests, even if they defined READ_ONLY_SESSION. This change
ensures that only sessions with locks are reported.
2023-11-28 16:21:17 +00:00
Shamiso.Jaravaza c898074fd8 MDL-79148 mod_bigbluebuttonbn: fix recording link 2023-11-27 23:54:56 -07:00
Ilya Tregubov 14b5d0694f Merge branch 'MDL-79603-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-11-28 13:53:20 +08:00
Laurent David 54d0894ec3 MDL-79841 theme_boost: Do not remove card borders
* When we are in small screensize we had removed the
left and right borders for cards. This is now restored
2023-11-28 06:37:37 +01:00
Jun Pataleta 0b326e9e72 Merge branch 'MDL-80210_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-11-28 10:35:14 +08:00
Amaia Anabitarte eae154a081 MDL-80205 mod_scorm: Remove all Pass grade options from completion 2023-11-27 18:04:30 +01:00
Helen Foster 42022a1d26 MDL-80221 lang: Import fixed English strings (en_fix) 2023-11-24 18:30:16 +01:00
Stephan Robotta c59c0f906b MDL-80181 wiki: fix width of left column in comments 2023-11-24 11:18:07 +01:00
Philipp Imhof e82f1d43c8 MDL-74378 mod_quiz: make sure timer is initialized 2023-11-24 08:52:05 +01:00
Huong Nguyen 6ff6327a6b weekly release 4.3+ 2023-11-24 12:23:15 +07:00
Huong Nguyen 4b34028221 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2023-11-24 12:23:12 +07:00
David Woloszyn 1e8af88afd MDL-80229 core: Add tolerance to min_get_minimum_revision 2023-11-24 15:51:45 +11:00
Eloy Lafuente (stronk7) edbbe29706 Merge branch 'MDL-79966-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2023-11-23 23:40:50 +01:00
sam marshall fc35bc5876 MDL-79966 core_task: NEVER_RUN_TIME did not fit in 10 digits 2023-11-23 16:23:39 +00:00
Rodrigo Mady 6c5f358ca2 MDL-79816 block_recentlyaccesseditems: Fix modname type in WS 2023-11-23 11:57:22 -03:00
Paul Holden 895189107f MDL-71336 forms: ensure grouped date elements have unique IDs.
Previously they were each taking the ID of their parent group element.
2023-11-23 12:01:28 +00:00
Tim Hunt d8c4a57ce8 MDL-80210 quiz: fix default for reviewmaxmarks when upgrading
It is correct that the database default should be 0, to match
other similar columns, but when sites are upgraded, we need
to set the settings for all existing quizzes to match the previous
behaviour.
2023-11-23 11:03:46 +00:00
Andrew Nicols 3d5c60ad26 Merge branch 'MDL-79966-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2023-11-23 10:30:40 +08:00
Huong Nguyen a2cfa93011 Merge branch 'MDL-78496-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-11-23 09:23:00 +07:00
Ilya Tregubov e40f4e4d83 Merge branch 'MDL-80157_storedfileproblem-403' of https://github.com/leonstr/moodle into MOODLE_403_STABLE 2023-11-23 09:47:03 +08:00
Ilya Tregubov 1f0f185176 Merge branch 'MDL-79185-MOODLE_403_STABLE' of https://github.com/dmitriim/moodle into MOODLE_403_STABLE 2023-11-22 11:48:09 +08:00
Dmitrii Metelkin d5d2c59161 MDL-79185 cache: don't throw exception if cache data is corrupted 2023-11-22 12:49:18 +11:00
Ilya Tregubov c2c357dfb2 Merge branch 'MDL-78670-403' of https://github.com/rmady/moodle into MOODLE_403_STABLE 2023-11-22 09:10:54 +08:00
Paul Holden fccf80c3a3 MDL-80185 lang: use iso6391 language code for HTML lang attributes.
This resolves accessibility issues where Moodle language pack codes
didn't always map to correspondingly named iso6391 codes.

Where this value is defined in the language configuration, it will
now be used.
2023-11-21 22:55:21 +00:00
Mikel Martín ee26c16e90 MDL-80015 course: Fix category 'More' dropdown alignment
Co-authored-by: Stephen Sharpe <stephen.sharpe@synergy-learning.com>
2023-11-21 14:15:39 +01:00
Angelia Dela Cruz 26c5ffd356 MDL-79828 core_badges: Delete already awarded course badges 2023-11-21 16:30:12 +08:00
Amaia Anabitarte d38211efc6 MDL-79979 tool_generator: Use auto-enrol admin in new courses setting 2023-11-21 08:41:57 +01:00
sam marshall dd844035ac MDL-79966 core_task: Scheduled task timing (crontab fields) is wrong 2023-11-20 17:12:27 +00:00
Amaia Anabitarte 778b8f51b1 MDL-79979 tool_generator: Use auto-enrol admin in new courses setting 2023-11-20 17:13:59 +01:00
Juan Olivares 4d28563eeb MDL-74248 mod_folder: Fix mp3 files being unaccessible in chrome
Platform users that host mp3 files within a folder are not able to access them using Chrome. This fix allows them to do so.
2023-11-20 11:30:28 +01:00
Dan Marsden 89f3fced22 MDL-79967 scorm: Fix scorm_insert_track grading calls. 2023-11-20 22:03:10 +13:00
Amaia Anabitarte 1ed0cb2562 MDL-79862 completion: Improve error handling for default completion 2023-11-20 09:52:22 +01:00
Huong Nguyen 7e1589b2ee Merge branch 'MDL-80037-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-11-20 14:48:38 +07:00
Huong Nguyen bc5d145dfb Merge branch 'MDL-79783-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-20 14:05:10 +07:00
Huong Nguyen 5aaba2850f Merge branch 'MDL-79604-403' of https://github.com/srobotta/moodle into MOODLE_403_STABLE 2023-11-20 14:01:22 +07:00
Laurent David 3116b46192 MDL-79512 mod_feedback: Add toast dialog when saved
* Add notification to notify the user once the changes have been
successfully saved
2023-11-20 06:55:14 +01:00
Laurent David 3a1aed3578 MDL-79512 mod_feedback: Fix issue with drag and drop
* A teacher can not change the order of the questions in feedback
as the order is not saved.
2023-11-20 06:55:14 +01:00
AMOS bot a2544fd5ca Automatically generated installer lang files 2023-11-20 00:10:44 +00:00
Rodrigo Mady ebab82c9f3 MDL-78670 mod_quiz: Add offline atempt rule for sequential navigation 2023-11-17 20:30:50 -03:00
Mark Johnson 40e56b3adc MDL-79806 mod_quiz: Implement new quiz_attempt_deleted callback 2023-11-17 16:06:58 +00:00
Leon Stringer 0a360e1eb2 MDL-80157 file: Exception message spelling 2023-11-17 14:35:38 +00:00
Paul Holden 59aa25852c MDL-79325 group: consistent name formatting in overview page/export. 2023-11-17 09:48:06 +00:00
Jun Pataleta ba60319c94 MDL-80037 theme: Indicate when $CFG->theme is defined in config.php
* And prevent selection of theme if $CFG->theme is defined in config.php
2023-11-17 09:24:32 +08:00
Dominic Chin ad836b6d4c MDL-80035 theme_boost: Fix fourth argument of single_button constructor 2023-11-17 09:17:27 +11:00
Sara Arjona 72d7395c96 weekly release 4.3+ 2023-11-16 16:22:34 +01:00
Sara Arjona d376741b93 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2023-11-16 16:22:30 +01:00
Paul Holden ca991dbe29 MDL-78849 user: correct logical operator behaviour for guest button.
Apart from being banned per MDL-74990, it causes a subtle bug here
due to operator precedence.

Co-authored-by: Tom Mayfield <tmayfield@costrack.com>
2023-11-16 11:31:49 +00:00
Huong Nguyen 3a7594c71a Merge branch 'MDL-76457-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-11-16 10:58:12 +07:00
Huong Nguyen 9f88fb2125 Merge branch 'MDL-80066-403' of https://github.com/elza3ym/moodle into MOODLE_403_STABLE 2023-11-16 10:53:03 +07:00
Ilya Tregubov f29c4e36a4 Merge branch 'MDL-80121-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-11-16 10:01:03 +08:00
Ilya Tregubov a87db5a60d Merge branch 'MDL-75616-403' of https://github.com/davewoloszyn/moodle into MOODLE_403_STABLE 2023-11-16 09:23:06 +08:00
Mohamed Shehata 07bbe2fa5e MDL-80066 form: fix date picker on small screens 2023-11-15 23:44:09 +02:00
Sara Arjona 1c11297195 Merge branch 'MDL-79981-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-11-15 17:10:10 +01:00
Sara Arjona 5f59e2a61e Merge branch 'MDL-79962-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-15 16:47:39 +01:00
Sara Arjona 7e4119de7e Merge branch 'MDL-79697-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-11-15 16:15:49 +01:00
Andrew Nicols c30c1ca9cd MDL-79697 core: PSR-4 NS can be spread across multiple dirs
The PSR-4 specification does not preclude a single namespaces from
having multiple sources. This is the case for several PSR standards
including standard packagist packages distributed by PSR:

- PSR-7 - HTTP Message Interfaces: \Psr\Http\Message
- PSR-17 - HTTP Factories: \Psr\Http\Message
- PSR-15 - http-server-handler: \Psr\Http\Server
- PSR-15 - http-server-middleware: \Psr\Http\Server
2023-11-15 21:24:52 +08:00
Sara Arjona f50c83ac37 Merge branch 'MDL-80045-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-11-15 13:47:10 +01:00
Sara Arjona c54b573bd0 Merge branch 'MDL-79956-403' of https://github.com/ssj365/moodle into MOODLE_403_STABLE 2023-11-15 13:31:44 +01:00
Jun Pataleta 1f5e140ae9 MDL-80121 gradereport_singleview: Increase zero-state heading level
With the h2 heading not being rendered on the zero-state pages of the
Single view report, we need to increase the heading level of the
"Search for a user to view all their grades" and
"Select a grade item above" headings from h3 to h2.
2023-11-15 19:24:04 +08:00
Jun Pataleta f65d067dec MDL-80121 grade: Trim heading
In order to prevent rendering an empty heading <h2>, we need to make
sure that the $heading parameter passed to print_grade_page_head() is
not an empty string.
2023-11-15 19:24:04 +08:00
Stephan Robotta dbe914883c MDL-79604 mod_data: exception if mandatory checkox list is missing 2023-11-15 12:22:49 +01:00
Ilya Tregubov 783dc4cdb2 Merge branch 'MDL-79996-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-15 15:24:26 +08:00
Dan Marsden 26e91219e8 MDL-64431 assignfeedback_editpdf: Flatten PDF files 2023-11-15 19:28:21 +13:00
Huong Nguyen 15526541b3 Merge branch 'MDL-79648-403' of https://github.com/SergioComeron/moodle into MOODLE_403_STABLE 2023-11-15 09:13:35 +07:00
Huong Nguyen c78364eb73 Merge branch 'MDL-79601-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-11-15 09:09:25 +07:00
Angelia Dela Cruz 0c9bc880c1 MDL-79603 mod_scorm: Behat coverage for Scorm package display options 2023-11-15 09:41:38 +08:00
Andrew Nicols 93f282a345 MDL-78496 phpcs: Moodle 4.3.x supports up to php82 only
At this point, and per our PHP policy, Moodle 4.3 is not expected to
support PHP 8.3.
2023-11-15 09:23:31 +08:00
Andrew Nicols 7d4ba18a65 MDL-79890 core: Stop using get_class() without args
PHP 8.3 deprecates the use of `get_class()` without arguments. The
following alternatives should instead be used as appropriate:

- `get_class($this)` - The equivalent for instance methods
- `self::class` - The current class

Note that the behaviour of `get_class()` in a static method was
equivalent to `self::class` and _not_ `static::class`. That is to say
that the previous behaviour did not respect late static binding.
2023-11-15 09:14:08 +08:00
Andrew Nicols e78cbaa6c4 MDL-79890 core: ReflectionProperties::setValue() should take 2 args
Since PHP 8.3 setValue() must be called with null as the first arg if
called statically.
2023-11-15 09:13:08 +08:00
Mikel Martín 9b401dfc29 MDL-76457 tool_usertours: Fix tour popovers in RTL 2023-11-14 21:27:38 +01:00
Mikel Martín 3e179325e9 MDL-76457 theme_boost: Fix bootstrap popovers in RTL
- Fix the arrow placement for bootstrap popovers in RTL mode.
- Remove unneded css parser workaround for popover arrows.
  After MDL-67386 was integrated those changes were not needed anymore.
2023-11-14 21:27:38 +01:00
Sara Arjona 60727a7cdf MDL-77581 lesson: Fix behat random failures 2023-11-14 16:24:43 +01:00
Andrew Nicols 4d59c788ee MDL-78496 environment: Moodle 4.4 requirements
The only changes to requirements since Moodle 4.3 are increases to:

* the minimum PHP version required; and
* the minimum required Moodle version.
2023-11-14 22:47:55 +08:00
Andrew Nicols d5993fffd4 MDL-80079 core: Correct incorrect arg to format_text::$options 2023-11-14 22:28:55 +08:00
Andrew Nicols 136bd2c4c4 MDL-80079 core: Correct incorrect arg to format_string::$options 2023-11-14 22:28:55 +08:00
Mikel Martín b2d8615725 MDL-80045 block_starredcourses: Fix cards alignment in small screens 2023-11-14 14:36:23 +01:00
Sara Arjona 4e880779f9 Merge branch 'MDL-77581-403' of https://github.com/dpalou/moodle into MOODLE_403_STABLE 2023-11-14 11:52:51 +01:00
Dani Palou e5efe8b6d1 MDL-77581 lesson: Fix generator unit tests in oracle 2023-11-14 11:11:25 +01:00
SergioComeron da4a2d6191 MDL-79648 core_course: 29 October repeating day 2023-11-13 18:37:23 +01:00
Sara Arjona 84ec153634 Merge branch 'MDL-77581-403' of https://github.com/dpalou/moodle into MOODLE_403_STABLE 2023-11-13 17:19:41 +01:00
Paul Holden b69c42db5d MDL-79692 enrol_meta: check for group validity when adding members. 2023-11-13 10:23:14 +00:00
Huong Nguyen 55d5f7756d Merge branch 'MDL-74129-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-11-13 10:43:18 +07:00
David Saylor b262a67c89 MDL-75616 backup: Use standard temp directory for extraction 2023-11-13 11:08:17 +11:00
AMOS bot 05492ddbb3 Automatically generated installer lang files 2023-11-12 00:10:15 +00:00
Sara Arjona 185856927d MDL-74129 h5p: Preserve metadata information
The metadata information was not restored when an H5P file was uploaded
(it was saved when it was edited directly from the Content bank, but the
original information in the H5P file was lost).
This patch includes all the metadata fields and its values in the original
H5P file to preserve this information too.
2023-11-10 10:33:47 +01:00
Ilya Tregubov 935c2509f1 weekly release 4.3+ 2023-11-10 09:17:15 +08:00
Paul Holden a502fbcd1e MDL-79962 roles: consistent sorting of role entity name column.
The "name" field is typically omitted for default/pre-defined roles,
which should be accounted for when sorting.
2023-11-09 17:04:03 +00:00
Dani Palou 061186c215 MDL-77581 behat: Test create lesson pages using UI 2023-11-09 11:32:00 +01:00
Dani Palou eac49ffa4c MDL-77581 behat: Apply new lesson cluster generators to existing tests 2023-11-09 11:32:00 +01:00
Dani Palou db82329f6c MDL-77581 behat: Create generators for lesson clusters 2023-11-09 11:32:00 +01:00
Dani Palou 875ad48c9d MDL-77581 lesson: Fix wrong PHPDoc in some generator functions
While creating the new perform_create_page function I noticed that the PHPDoc return type of the existing functions was wrong
2023-11-09 11:01:51 +01:00
Dani Palou c627e1a4de MDL-77581 behat: Remove lesson_student_dashboard test file
After f7c476bac5 was integrated, these tests didn't assert anything specific and similar steps are already tested in lesson_navigation
2023-11-09 11:01:51 +01:00
Dani Palou 3b0165ec67 MDL-77581 behat: Apply new lesson generators to existing tests 2023-11-09 11:01:51 +01:00
Dani Palou 96bfaf67fd MDL-77581 behat: Create generators for lesson pages and answers 2023-11-09 11:01:51 +01:00
Dani Palou fc4354c7e3 MDL-77581 behat: Support finish_generate_ in generators 2023-11-09 11:01:51 +01:00
Shamiso.Jaravaza b5c49b8ac9 MDL-79956 mod_bigbluebuttonbn: fix import links 2023-11-08 21:48:03 -07:00
Michael Aherne 2721a7cdc3 MDL-80030 filelib: Fix info type. 2023-11-09 11:13:52 +08:00
Ilya Tregubov ab79a0e972 Merge branch 'MDL-79992-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-11-09 09:57:09 +08:00
Sara Arjona 275af6c114 Merge branch 'MDL-79827-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-08 18:10:44 +01:00
Sara Arjona dcc8300ef4 Merge branch 'MDL-79975-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-08 18:03:03 +01:00
Sara Arjona af62e9773c Merge branch 'MDL-79781-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-08 17:19:51 +01:00
Sara Arjona 0ac35f9248 Merge branch 'MDL-76555-403' of https://github.com/pmaneggia/moodle into MOODLE_403_STABLE 2023-11-08 17:06:18 +01:00
Mikel Martín a028969791 MDL-79601 report_completion: Fix RTL First/Last name alignment 2023-11-08 16:23:29 +01:00
Mikel Martín 7bc41babf8 MDL-79601 report_progress: Fix RTL First/Last name alignment 2023-11-08 16:23:29 +01:00
Andrew Nicols 4e08cbd42e MDL-79981 core: Add ability to manually run and filter phpunit on GHA 2023-11-08 12:53:43 +08:00
Ilya Tregubov d3427d45fa Merge branch 'MDL-79615_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-11-08 10:43:00 +08:00
Huong Nguyen 67a690d176 Merge branch 'MDL-79739-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-11-08 09:23:50 +07:00
Huong Nguyen 81d72254b5 Merge branch 'MDL-79840-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-08 09:23:09 +07:00
Ilya Tregubov b2e58aed7b Merge branch 'MDL-79858-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-08 09:49:29 +08:00
Paul Holden 5ca36b0731 MDL-79267 mod_forum: define report subplugin type language strings. 2023-11-07 09:49:56 +00:00
Huong Nguyen b105ec5188 Merge branch 'MDL-78953-403' of https://github.com/pedrojordao/moodle into MOODLE_403_STABLE 2023-11-07 15:33:52 +07:00
Jun Pataleta a85f7c200b MDL-80019 mod_bigbluebuttonbn: Use updated completion field names
Field names for the completion conditions have been updated since 4.3.
So the fields names should also be updated in the test.
2023-11-07 13:13:18 +08:00
Jun Pataleta f09f15e0be Merge branch 'MDL-80019-403' of https://github.com/call-learning/moodle into MOODLE_403_STABLE 2023-11-07 13:11:51 +08:00
Laurent David e35be12fb7 MDL-80019 mod_bigbluebuttonbn: Completion form freeze fix
* When the completion is locked, we should not be able to edit the completion elements
2023-11-06 22:11:02 +01:00
Sara Arjona 2f1a67685f Merge branch 'mdl-78650-403-stable' of https://github.com/Fragonite/moodle into MOODLE_403_STABLE 2023-11-06 09:51:00 +01:00
Huong Nguyen d3bc17fe56 Merge branch 'MDL-79062-403-2' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-11-06 10:52:04 +07:00
Dan Marsden adfd93a303 MDL-80004 scorm: add missing require locallib during course reset. 2023-11-06 12:05:12 +13:00
Paola Maneggia 82f9838f28 MDL-76555 mod_resource: Fix PHP8.0 type error (legacy resources) 2023-11-05 13:46:39 +01:00
Mikel Martín a18057fd06 MDL-80002 forumreport_summary: Fix summary report date filtering 2023-11-03 15:47:30 +01:00
Paul Holden dbc285e49e MDL-79996 communication: valid instance checks during user deletion. 2023-11-03 12:55:55 +00:00
Sara Arjona 31b409d920 MDL-79992 backup: Display course backups from activity restore
The Course backup area was not displaying the course backups when
accessing to the Restore page for an activity because the context
was not updated properly for this area.
2023-11-03 12:23:18 +01:00
Jake Dallimore 501c58729f MDL-76694 core_comment: exit the js init if the element cannot be found
In pages which result in the theme_boost/embedded template being used,
blocks may be rendered and the resulting HTML ignored, leaving any JS
they may have added to run without a corresponding DOM element to act
on. This fixes that case for comments, making sure we exit gracefully
during the init if the element can't be found.
2023-11-03 10:13:14 +08:00
pedrojordao 3cc283a25e MDL-78953 autocomplete: Add only one empty option when deselecting item.
Each option that was deselected was prepending an empty option in the select.
2023-11-02 18:47:59 -03:00
Paul Holden 188b5021fb MDL-79975 tool_task: correct class attribute table cell property. 2023-11-02 13:19:50 +00:00
Sara Arjona be7a698223 weekly release 4.3+ 2023-11-02 13:40:53 +01:00
Jun Pataleta 60a1c97289 MDL-79062 grade: Behat test fixes
* Feature: We can use a minimum grade different than zero
  - Use correct minimum input values.
  - Use data generators for faster test execution.
* Scenario: Disable category overriding
  - Use the field name to ensure that the correct field is being tested.
2023-11-02 17:34:29 +08:00
Jun Pataleta 92afaa484f MDL-79062 grades: Sort-by-name menu item accessibility fixes
* <h6> tags cannot be in table cells. Replace them with <div> tags.
* Group the ascending/descending sort menu items to better indicate
where they belong to.
2023-11-02 17:34:28 +08:00
Jun Pataleta 9fdb460330 MDL-79062 gradereport_grader: Set numeric type for grade value inputs
* Set grade inputs for grade items with type set to GRADE_VALUE to
number and add min and max input attributes, where necessary.
2023-11-02 17:34:28 +08:00
Jun Pataleta ccfc156b43 MDL-79062 gradereport_grader: Remove setting of tabindex >= 1
Tab indices that are greater than or equal to 1 break the natural
tab order of the document and may cause problems for keyboard users.
2023-11-02 17:34:27 +08:00
Huong Nguyen 10f10ee269 Merge branch 'MDL-78903-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2023-11-02 10:18:20 +07:00
Huong Nguyen 47bf3467a2 Merge branch 'MDL-79801-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-11-02 10:14:46 +07:00
Huong Nguyen 04d7b13fc4 Merge branch 'MDL-79617_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-11-02 09:05:36 +07:00
Alexander Van der Bellen a3e7f7fd14 MDL-78650 mod_assign: Improve group submission action event handling
Don't return an event action when a group submission has already been submitted
by another student.
2023-11-01 20:38:30 +08:00
Alexander Van der Bellen 745b504426 MDL-78650 mod_assign: Add Behat test 2023-11-01 20:38:24 +08:00
Alexander Van der Bellen 89913c7eeb MDL-78650 mod_assign: Add unit test 2023-11-01 20:38:20 +08:00
Daniel Neis Araujo eb658e33c3 MDL-73378 gradebook: Category grade null when all subgrades are null 2023-10-31 13:58:16 -03:00
Sara Arjona 03e68d81b4 Merge branch 'MDL-79856-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-31 13:26:32 +01:00
Sara Arjona ae80f632bf Merge branch 'MDL-79849-403' of https://github.com/jleyva/moodle into MOODLE_403_STABLE 2023-10-31 13:08:20 +01:00
Jun Pataleta e2079313e2 Merge branch 'MDL-79853-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-10-31 16:46:06 +08:00
Huong Nguyen b4bade5ca9 Merge branch 'MDL-79807_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-10-31 12:49:48 +08:00
Huong Nguyen 10883ef268 Merge branch 'MDL-79460-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2023-10-31 12:49:48 +08:00
David Woloszyn 19e1e834a7 MDL-79460 communication_matrix: Re-enabled tests that use new sync route 2023-10-31 09:34:06 +07:00
Meirza f30b0eee9b MDL-78903 tiny_h5p: show repositories if editor filepicker type set 2023-10-31 08:00:28 +07:00
Meirza 0ad939f062 MDL-78903 tiny_media: show repositories if editor filepicker type set 2023-10-31 08:00:27 +07:00
Jun Pataleta e8f534c4f4 Merge branch 'MDL-77274-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2023-10-30 17:14:27 +08:00
Jun Pataleta 7e22a9c2c7 Merge branch 'MDL-79800-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-10-30 16:40:12 +08:00
Mikel Martín c542a77f11 MDL-79800 courseformat: Fix activity cards right elements margins
- Fix margins in elements displayed in the right side of activity cards.
Replace right margins with left margins to avoid extra space when editing
mode is off and action menu is not displayed.
- Fix groupmode icon spacing when displayed in small resolutions with edit
mode disabled
2023-10-30 07:52:38 +01:00
Laurent David db52a8bc31 MDL-77274 core_renderer: Respect full name format in letter avatars
* Make sure that we respect the fullnamedisplay and alternativefullnameformat
parameters to decide on the initials for a given user
* Add further tests

Co-authored-by: Tatsunori Uchino <tats.u@live.jp>
2023-10-30 06:16:09 +01:00
Huong Nguyen 4800afbc3e Merge branch 'MDL-79639_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2023-10-30 11:22:59 +07:00
Jun Pataleta 990b740ec1 Merge branch 'MDL-79194-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2023-10-27 23:33:20 +08:00
Mark Johnson b1d436a281 MDL-79615 course: Improve efficency of cache rebuilds
When bulk-updating course module visibility, set_coursemodule_visibily
was triggering a partial cache purge and rebuild for each course module.
This potentially led to 2 cache sets each requiring a lock to be
acquired and released per course module, plus any other cache updates
for other changes to the course in the same request.

This adds a new $rebuildcache paramter to the
set_coursemodule_visibilty, which is true by default to retain the
existing behaviour. If set false, it will skip doing the partial purge
and rebuild for that course module, and it is up to the calling code to
ensure the cache is updated as requried.

To assist with this, there is a new
course_modinfo::purge_course_module_cache_multiple() method, which
allows multiple course modules to be purged from the cache in a single
cache set.
2023-10-27 10:51:29 +01:00
Ilya Tregubov 8bf31f2277 Merge branch 'MDL-79693-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-27 16:45:37 +08:00
Jun Pataleta 97fc41ebcb Merge branch 'MDL-77364-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-10-27 16:34:00 +08:00
Sara Arjona bac3ffbe79 MDL-77364 myoverview: Display course name tooltip
Based on the feedback given by the UX team:
- The text has been increased to display more (50 vs 55).
- A tooltip has been added to display the full course name on hover,
following the accessibility guidelines.
2023-10-27 07:26:24 +02:00
Jun Pataleta dc7dd96189 weekly release 4.3+ 2023-10-27 09:43:04 +08:00
Jun Pataleta 67c567062e NOBUG: Fixed SVG browser compatibility 2023-10-27 09:43:03 +08:00
Jun Pataleta b7ee271c8b Merge branch 'MDL-79768-403-fix' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-10-26 23:05:58 +08:00
Ferran Recio 81cdd8db81 MDL-79194 core_courseformat: optimize section reload
* When reloading a section, we also forced the reloading of
course modules, resulting in doing the same work twice (once for
the section reload and once for the course module reload)
* Debounce the reloading process so prevent unwanted duplicate
reloads
2023-10-26 14:53:07 +02:00
Paul Holden 90d7b45f5f MDL-79858 block_myoverview: correctly export request course button. 2023-10-26 13:40:31 +01:00
Mark Johnson 632d4faeec MDL-79807 quiz_statistics: Clear stats cache when question added/removed 2023-10-26 13:38:31 +01:00
Paul Holden aac3b19bff MDL-79781 course: detect invalid creator role for pending courses. 2023-10-26 13:18:34 +01:00
Paul Holden a65a8fc40a MDL-79856 roles: use role localname when confirming deletion. 2023-10-26 12:00:54 +01:00
Angelia Dela Cruz c0bedfd833 MDL-79768 fix: Fixed random failing Behat due to time difference 2023-10-26 18:05:04 +08:00
Laurent David b72551c475 MDL-79194 core_course: Refresh modules menus with section changes
* Whenever a section is hidden, we need to refresh all contextual (hamburger)
menus of each course modules.
2023-10-26 11:04:40 +02:00
Andrew Nicols 437967f78e MDL-79853 core: Add phpunit options to manual runs 2023-10-26 14:48:51 +08:00
Jun Pataleta e05747e353 Merge branch 'MDL-79768-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-10-26 10:48:18 +08:00
Jun Pataleta 4865c40790 Merge branch 'MDL-42189-403' of https://github.com/davewoloszyn/moodle into MOODLE_403_STABLE 2023-10-26 10:32:13 +08:00
Paul Holden d63fd0365a Merge branch 'MDL-79762-43' of https://github.com/kabalin/moodle into MOODLE_403_STABLE 2023-10-25 23:55:54 +01:00
Juan Leyva f054958593 MDL-79849 tool_mobile: Add search disabled features 2023-10-25 17:32:26 +02:00
Ruslan Kabalin 7ee0ee6206 MDL-79762 core: Add possibility to define modal type for modalform
If `moduleName` param is passed in config object for modalform, it will be
used to instantiate modal class, otherwise 'core/modal_save_cancel' is
used.

Co-authored-by: Marina Glancy <marina@moodle.com>
2023-10-25 15:57:11 +01:00
Paul Holden cf715c550a MDL-79840 contentbank: fix references to invalid icon images. 2023-10-25 08:45:51 +01:00
Jun Pataleta 440a27c5de Merge branch 'MDL-75572-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-10-25 13:44:40 +08:00
Sara Arjona 2130e4ff8b MDL-75572 criteria: Only award badges to sucessfull completions
The UX team confirmed a badge shouldn't be awarded when the criteria
use a passing grade and the user gets a failing grade.
So the COMPLETION_COMPLETE_FAIL status won't be considered
completed for activities with completion that require a passing
grade.
2023-10-25 07:08:26 +02:00
Jun Pataleta 676626064c Merge branch 'MDL-79782-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2023-10-24 22:47:47 +08:00
Jun Pataleta 655ac0b6a6 Merge branch 'MDL-79767-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-24 16:23:12 +08:00
Jun Pataleta 28233e5b3d Merge branch 'MDL-79637-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-10-24 10:48:55 +08:00
Paul Holden e001508f68 MDL-79827 tiny_link: show repositories only if editor filepicker set. 2023-10-23 22:01:01 +01:00
Mark Johnson 9b96653fc5 MDL-79617 repository_upload: Close session early in upload process 2023-10-23 15:32:15 +01:00
Angelia Dela Cruz 920ddcb70f MDL-79768 mod_data: Test for student can see upcoming data activity 2023-10-23 08:50:51 +08:00
David Woloszyn 82d1033f43 MDL-42189 gradereport_overview: Report hidden from suspended enrolments 2023-10-23 09:46:58 +11:00
Paul Holden 6856da7f09 MDL-79801 tag: fix report entity flagged column/filter query.
The "flag" field isn't a boolean state (1/0), it's a cumulative
count of how many times the tag has been flagged by users. This
should be accounted for to ensure that column aggregation and
filtering performs correctly.
2023-10-20 14:22:17 +01:00
Sara Arjona 150d134fa2 weekly release 4.3+ 2023-10-20 12:16:13 +02:00
Sara Arjona d30fa9918f Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2023-10-20 12:16:09 +02:00
Mikel Martín 343ad024c0 MDL-79782 pix: Replace angles- SVGs with Free versions 2023-10-20 08:50:10 +02:00
Huong Nguyen 4f8778cfc7 Merge branch 'MDL-78775-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-10-20 09:29:47 +07:00
Ilya Tregubov b770c56b6d MDL-78775 gradereport_grade: Fix Behat.
Sort by lastname before doing any assertions.
2023-10-20 09:56:26 +08:00
Paul Holden 156953f115 MDL-79783 theme_boost: remove form-check padding inside table cells. 2023-10-19 14:13:46 +01:00
Mark Johnson 07a6698d01 MDL-79639 quiz_statistics: Prevent database deadlocks
This changes the cache purge code to select IDs for deletion
first, rather than using a subquery in a DELETE, since this
risks causing a deadlock in MySQL.
2023-10-19 08:57:34 +01:00
Huong Nguyen 1ec619db69 Merge branch 'MDL-79689-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-10-19 10:03:37 +07:00
Paul Holden 9f5f8d4a0a MDL-79767 communication: correct arguments when loading instance. 2023-10-18 22:38:50 +01:00
Sara Arjona 810f134cdc Merge branch 'MDL-79635-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-18 19:55:48 +02:00
Sara Arjona 7b1a0a0e65 Merge branch 'MDL-77651-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2023-10-18 15:47:11 +02:00
Sara Arjona 447530591d Merge branch 'MDL-79747_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-10-18 10:28:57 +02:00
Huong Nguyen 34223e32ef Merge branch 'MDL-78775-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-10-18 12:56:24 +07:00
Ilya Tregubov ac3cda51f0 MDL-78775 core_grades: Fix Behat 2023-10-18 12:53:53 +08:00
Angelia Dela Cruz f25ac24adf MDL-79689 mod_assign: Behat for enabling anonymous submissions 2023-10-18 10:46:30 +08:00
Huong Nguyen c3ba14a052 Merge branch 'MDL-79705-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-18 09:36:17 +07:00
Huong Nguyen bd844a184c Merge branch 'MDL-78979-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-18 09:23:31 +07:00
AMOS bot c968b1236f Automatically generated installer lang files 2023-10-18 00:11:10 +00:00
Jun Pataleta ff2d542295 MDL-77651 calendar: Hide left/right arrow characters
* Hide the arrow characters for the calendar templates so they won't be
read out by screen readers and avoid confusion for screen reader users.
2023-10-17 23:51:52 +08:00
Jun Pataleta bf68987951 MDL-77651 core: Hide left/right arrow characters for link_arrow_xx()
* The arrow characters in link_arrow_right() and link_arrow_left()
functions get announced by screen readers. This causes confusion
and is unnecessary.
2023-10-17 23:51:52 +08:00
Paul Holden e2049d770c MDL-79705 reportbuilder: remove checkbox field callback handling.
We no longer need special handling of this field type, because it
now returns language strings rather than HTML markup for a checkbox
element on display.
2023-10-17 16:51:29 +01:00
Paul Holden 021bdd0e4b MDL-79705 profilefield_checkbox: display data as simple Yes/No. 2023-10-17 16:51:29 +01:00
Tim Hunt 9bb59ad004 MDL-79747 quiz stats: task should run as admin the right way
The correct way to get an ad-hoc task to run as the main admin account
is to leave userid as null.

Setting it causes fatal errors if the main admin account is set to
auth: nologin.
2023-10-17 16:50:32 +01:00
Iñaki Arenaza fd1035ecf0 MDL-78481 mod_lesson: matching pagetype applying filters fix 2023-10-17 17:15:39 +02:00
Paul Holden 0602fdc0cb MDL-79693 output: remove embedded toast region from clipboard modal.
This was causing the toast notification upon the clipboard action
result to immediately disappear as the modal was closed. The toast
module can happily handle this for us itself, so remove from the
template.
2023-10-17 08:20:57 +01:00
Andrew Nicols 1294e309dc MDL-79739 core: Only run some tests in separate processes 2023-10-17 12:21:12 +08:00
Huong Nguyen 596bc2c2bf Merge branch 'MDL-78775-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2023-10-17 10:47:02 +07:00
Ilya Tregubov 09568062fd Merge branch 'MDL-79691-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-10-17 10:28:27 +08:00
Huong Nguyen b205b758e8 Merge branch 'MDL-79367-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2023-10-17 09:17:46 +07:00
Paul Holden 55077e45bb MDL-78979 mod_data: correct restore decode rule for data view page. 2023-10-16 20:53:52 +01:00
Angelia Dela Cruz 9c4f0d31f2 MDL-79691 mod_h5pactivity: Behat coverage for H5P activity grades reset 2023-10-16 16:18:43 +08:00
Sara Arjona c220ad62dd Merge branch 'MDL-79566-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2023-10-16 09:53:48 +02:00
Ilya Tregubov ffc8c116fd Merge branch 'MDL-79365-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-16 14:07:55 +08:00
Sara Arjona 8679a15604 MDL-79367 availability: Fail grade does not mark activities as completed
The UX team confirmed that an activity shouldn't be considered completed
when the criteria use a passing grade and the user gets a failing grade.
So the COMPLETION_COMPLETE_FAIL status won't be considered
completed from now on.
2023-10-16 07:52:40 +02:00
Huong Nguyen 9995038273 Merge branch 'MDL-79698-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-10-16 11:39:53 +07:00
Huong Nguyen 70ee7b1beb Merge branch 'MDL-79653-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2023-10-16 10:54:38 +07:00
Huong Nguyen 5cc2ab26eb Merge branch 'MDL-79352-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-16 10:42:06 +07:00
Huong Nguyen cf0446155b MDL-79566 tiny_autosave: Add Javascript submission handler 2023-10-16 09:29:16 +07:00
Paul Holden 87c42699d9 MDL-79365 customfield_textarea: ensure field uniqueness is correct. 2023-10-13 14:30:34 +01:00
Andrew Nicols 97bcb22dba MDL-79693 core: Move toast regions to document on modal close 2023-10-13 14:22:48 +01:00
Andrew Nicols ecd82700a7 MDL-79698 core: Correct duplicate array key in test provider 2023-10-13 15:44:17 +08:00
Ilya Tregubov daa598b1b4 MDL-78775 core_grades: Fix saving on grader report page
When we have a pagination on grader page and search for user
that is not on first page, saving was throwing an error
since page didn't have enough data
2023-10-13 14:09:25 +08:00
Ilya Tregubov 13eb20d8d1 weekly release 4.3+ 2023-10-13 13:39:23 +08:00
Angelia Dela Cruz d0a9c57c0b MDL-79653 gradingform_guide: Behat coverage for deleting marking guide 2023-10-13 10:46:23 +08:00
Huong Nguyen 21b11cdb3d Merge branch 'MDL-79638-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-10-12 11:07:19 +07:00
Ilya Tregubov d4b2c50163 Merge branch 'MDL-79160-master' of https://github.com/danghieu1407/moodle into MOODLE_403_STABLE 2023-10-12 09:43:41 +08:00
Ilya Tregubov bd50ac1876 Merge branch 'MDL-79422-master' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2023-10-12 09:09:27 +08:00
Ilya Tregubov da4204c491 Merge branch 'MDL-79562-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2023-10-12 09:06:32 +08:00
Simey Lameze 780b99229c MDL-79562 behat: make verification step more specific 2023-10-12 08:16:22 +08:00
Jun Pataleta bebde352fe Merge branch 'MDL-79611-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-11 18:15:46 +08:00
Jun Pataleta 1adf99597e Merge branch 'MDL-79633-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-11 13:41:12 +08:00
Huong Nguyen 70c1b02809 Merge branch 'MDL-78103-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2023-10-11 11:25:04 +07:00
chen levy 335c9c920d MDL-78103 theme: Fixed dropdown menu size by the content 2023-10-11 11:10:26 +07:00
Safat b1ad4fb830 MDL-79614 communication_matrix: Add missing call for sync flag 2023-10-11 11:04:44 +08:00
Jun Pataleta 2b5073a222 MDL-79626 upgrade: add the 4.3.0 separation line to all upgrade scripts 2023-10-11 09:40:13 +08:00
Andrew Nicols 731b150241 MDL-79637 phpunit: Do not reset DB during init of isolated tests
During the bootstrap of PHPUnit we ensure that the database has been
reset to its initial state.

We do this by checking the internally-stored DB write count between
runs. If the count is not yet set (null), or it has been increased, we
force a reset.

When running an isolated test the test runner resets the database, it
then sets up a new isolated test environment by writing a new PHPUnit
test case and passing it to a new PHP Process using standard in. As part
of this, the bootstrap is run for that process.

Because we are in a new process, the db write count is fresh and not yet
set. This has been leading to an additional db reset before the isolated
test.

To handle this we want to _not_ perform a reset during the
initialisation for isolated runs. We know that the DB is in a fresh
state before we start the run.

To support this we need to know whether the test is an isolated test
during the bootstrap, which means we cannot use the previous approach to
calculating this.

Instead we look at the PHP_SELF value. PHP sets this to "Standard input
code" when run from stdin, instead of running a file.

There should not be any other legitimate reason to run a PHPUnit
bootstrap via this stdin approach.

Unfortunately this approach is a little bit risky as it depends on the
presence of a specific string, however this string has been in place
since 2016, and there is no legitimate way of calculating this.

I did consider looking at whether the called script included `/vendor/`
and `/phpunit`, but this is also likely a risky approach if someone
calls PHPUnit in an unexpected way.

This approach is itself unit tested so any change to PHP's stdin string
before we deprecate this approach entirely in 12 months time will be
caught.
2023-10-11 09:29:26 +08:00
Paul Holden 228ee621e6 Merge branch 'MDL-79642-q_tags_off-403' of https://github.com/leonstr/moodle into MOODLE_403_STABLE 2023-10-10 21:18:55 +01:00
Andrew Nicols 16f65ba275 MDL-79638 phpunit: Add unit test for increment resets 2023-10-11 00:10:33 +08:00
Andrew Nicols 165918258d MDL-79638 phpunit: Remove mysql/mariadb hack
This hack was introduced to work around a bug in MySQL 5.6.14 and
MariaDB at the time.

https://bugs.mysql.com/bug.php?id=69882

It was addressed a few months later in 5.6.16, and 5.7.4.
MariaDB merged version 5.6.16 of MySQL's InnoDB engine in MariaDB
10.0.11 and got hte patch from there.

Moodle has required MySQL 8.0, and MariaDB 10.6.7 since Moodle 4.2 and
it is therefore safe to remove these hacks.
2023-10-10 23:35:45 +08:00
Sara Arjona 3392a198d7 Merge branch 'MDL-79623-MOODLE_403_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_403_STABLE 2023-10-10 16:19:19 +02:00
Leon Stringer 7cba44007c MDL-79642 qbank_tagquestion: Fix Return type err
Previously if $CFG->usetags was not enabled the course question bank
page would show:

  Exception - qbank_tagquestion\plugin_feature::get_question_filters():
  Return value must be of type array, none returned

This is now fixed.
2023-10-10 12:13:56 +01:00
Paul Holden 0004f31e2e MDL-79635 group: ensure unique params used to determine visibility.
Or we'll trigger DML "Incorrect number of query parameters" exception.
2023-10-10 10:08:53 +01:00
Sara Arjona 83865c7979 Merge branch 'MDL-77816-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2023-10-10 09:21:27 +02:00
Ilya Tregubov b43222dc67 Merge branch 'MDL-79501-master' of https://github.com/geichelberger/moodle into MOODLE_403_STABLE 2023-10-10 15:06:11 +08:00
Ilya Tregubov e857efcf28 Merge branch 'MDL-79279' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2023-10-10 11:20:58 +08:00
Ilya Tregubov e7ab69fa26 Merge branch 'MDL-71414-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2023-10-10 10:19:00 +08:00
Paul Holden f4743bbb8d MDL-79633 mod_data: correct timemodified tag replacement attribute. 2023-10-09 19:41:02 +01:00
Paul Holden d1b63c5e18 MDL-79352 admin: fix links to tool plugin management page. 2023-10-09 15:11:52 +01:00
Paul Holden cf5065ed71 MDL-79611 group: early exit getting members of non-existing group. 2023-10-09 15:00:33 +01:00
Paul Holden bf380e2d46 MDL-77816 mod_bigbluebuttonbn: feedback when validating completion. 2023-10-09 14:58:49 +01:00
Yannick Schillinger 4b40f8273d MDL-77816 mod_bigbluebuttonbn: Fix completionValidate argument format 2023-10-09 14:58:38 +01:00
Laurent David c0f2ff773f MDL-71414 mod_h5pactivity: Add a new "None" message
* In matching types of questions, sometimes the user does not answer all
questions. We now display "None" in the result report. The answer can
be either correct or incorrect.
* Fix "unknown" answer constant name.
2023-10-09 11:57:34 +02:00
Laurent David 2ef18bce0d MDL-71414 mod_h5pactivity: Fix issue with drop down report
* Drag and Drop report were missing answers when target could be dropped on multiple
drop zones.
2023-10-09 11:57:34 +02:00
Philipp Memmel 536780ce38 MDL-79623 tool_componentlibrary: Fix correct modal content attribute 2023-10-09 09:05:41 +00:00
danghieu1407 5174e4e36d MDL-79160 Question: Answer field overflows parent width with large size 2023-10-05 10:57:51 +07:00
Gregor Eichelberger 91135c5305 MDL-79501 tiny: Fix editing multiple videos
The selection gets lost while opening the modal dialogue to update an
embedded media. Caching the current selection allows us to update the
previously selected node instead of updating the first embedded media.

Signed-off-by: Gregor Eichelberger <gregor.eichelberger@tuwien.ac.at>
2023-09-29 14:07:44 +02:00
Andrew Nicols 3720532cb2 MDL-79422 ajax: Update service.php for coding style 2023-09-20 16:03:12 +08:00
Andrew Nicols 7f569fc1f1 MDL-79422 ajax: Allow no-login WS calls to fetch after a failure 2023-09-20 16:02:31 +08:00
Tim Hunt 1437ed51ef MDL-79279 qformat_xml: multianswer import should support idnumber
Fix suggested by Georg Maißer.
2023-09-07 11:40:48 +01:00
1824 changed files with 24112 additions and 19061 deletions
+10 -4
View File
@@ -7,6 +7,12 @@ on:
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.2
@@ -17,10 +23,10 @@ jobs:
steps:
- name: Checking out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Configuring node & npm
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
@@ -99,7 +105,7 @@ jobs:
coverage: none
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setting up PHPUnit
env:
@@ -115,4 +121,4 @@ jobs:
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options
run: vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
+10 -5
View File
@@ -1,7 +1,12 @@
name: Windows Testing
on:
workflow_dispatch
workflow_dispatch:
inputs:
phpunit_extra_options:
description: Additional options to apply to PHPUnit
required: false
default: ''
env:
php: 8.2
@@ -16,10 +21,10 @@ jobs:
git config --global core.eol lf
- name: Checking out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Configuring node & npm
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
@@ -112,7 +117,7 @@ jobs:
git config --global core.eol lf
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v3
uses: actions/checkout@v4
# Needs to be done after php is available, git configured and Moodle checkout has happened.
- name: Setting up moodle-exttests service
@@ -141,4 +146,4 @@ jobs:
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options
run: vendor/bin/phpunit $phpunit_options ${{ inputs.phpunit_extra_options }}
+6 -14
View File
@@ -21,7 +21,7 @@
*/
/**
* Function to generate the destination for the uglify task
* Function to generate the destination for the minification task
* (e.g. build/file.min.js). This function will be passed to
* the rename property of files array when building dynamically:
* http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically
@@ -60,7 +60,6 @@ module.exports = grunt => {
grunt.registerTask('js', ['amd', 'yui']);
// Register NPM tasks.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-rollup');
@@ -104,6 +103,7 @@ module.exports = grunt => {
// The queue runner will run the next `size` items in the queue.
const runQueue = (size = 1) => {
queue.splice(0, size).forEach(resolve => {
grunt.log.debug(`Item resolved. Kicking off next one.`);
resolve();
});
};
@@ -113,15 +113,17 @@ module.exports = grunt => {
// The options hook is run in parallel.
// We can return an unresolved Promise which is queued for later resolution.
options: async() => {
options: async(options) => {
return new Promise(resolve => {
queue.push(resolve);
startQueue();
return options;
});
},
// When an item in the queue completes, start the next item in the queue.
buildEnd: () => {
generateBundle: (options, bundle) => {
grunt.log.debug(`Finished output phase for ${Object.keys(bundle).join(', ')}`);
runQueue();
},
};
@@ -155,16 +157,6 @@ module.exports = grunt => {
],
presets: [
['@babel/preset-env', {
targets: {
browsers: [
">0.3%",
"last 2 versions",
"not ie >= 0",
"not op_mini all",
"not Opera > 0",
"not dead"
]
},
modules: false,
useBuiltIns: false
}]
+28 -12
View File
@@ -20,17 +20,33 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
// Project configuration.
grunt.config.merge({
jsdoc: {
dist: {
options: {
configure: ".grunt/jsdoc/jsdoc.conf.js",
},
},
},
});
module.exports = (grunt) => {
const path = require('path');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.registerTask('jsdoc', 'Generate JavaScript documentation using jsdoc', function() {
const done = this.async();
const configuration = path.resolve('.grunt/jsdoc/jsdoc.conf.js');
grunt.util.spawn({
cmd: 'jsdoc',
args: [
'--configure',
configuration,
]
}, function(error, result, code) {
if (result.stdout) {
grunt.log.write(result.stdout);
}
if (result.stderr) {
grunt.log.error(result.stderr);
}
if (error) {
grunt.fail.fatal(`JSDoc failed with error code ${code}`);
} else {
grunt.log.write('JSDoc completed successfully'.green);
}
done();
});
});
};
+5 -1
View File
@@ -29,6 +29,7 @@ module.exports = grunt => {
// Use a fully-qualified path.
src: files,
options: {
quietDeprecationWarnings: true,
configOverrides: {
rules: {
// These rules have to be disabled in .stylelintrc for scss compat.
@@ -45,7 +46,10 @@ module.exports = grunt => {
return {
stylelint: {
scss: {
options: {syntax: 'scss'},
options: {
quietDeprecationWarnings: true,
customSyntax: 'postcss-scss',
},
src: files,
},
},
+1 -1
View File
@@ -1 +1 @@
lts/gallium
lts/iron
+16 -4
View File
@@ -1,9 +1,14 @@
{
"customSyntax": "postcss-scss",
"plugins": [
"stylelint-csstree-validator"
],
"rules": {
"csstree/validator": true,
"csstree/validator": {
"syntaxExtensions": [
"sass"
]
},
"at-rule-empty-line-before": [ "always",
{"except": [ "blockless-after-blockless"], ignore: ["after-comment", "inside-block"]}
],
@@ -45,7 +50,7 @@
"function-name-case": "lower",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-url-scheme-blacklist": ["data"],
"function-url-scheme-disallowed-list": ["data"],
"function-whitespace-after": "always",
"indentation": 4,
"keyframe-declaration-no-important": true,
@@ -84,12 +89,19 @@
"selector-type-no-unknown": true,
"string-no-newline": true,
"time-min-milliseconds": 100,
"unit-blacklist": ["pt"],
"unit-disallowed-list": ["pt"],
"unit-case": "lower",
"unit-no-unknown": true,
"value-keyword-case": ["lower", {"ignoreKeywords": ["/(@|$)/"]}],
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
}
},
"overrides": [
{
"files": ["**/yui/**/*.css"],
"rules": {
}
}
]
}
@@ -19,7 +19,7 @@ namespace core_admin\table;
use moodle_url;
/**
* Tiny admin settings.
* Admin tool settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
@@ -30,12 +30,6 @@ class tool_plugin_management_table extends \core_admin\table\plugin_management_t
return 'tool';
}
public function guess_base_url(): void {
$this->define_baseurl(
new moodle_url('/admin/tools.php')
);
}
protected function get_column_list(): array {
$columns = parent::get_column_list();
@@ -45,6 +39,6 @@ class tool_plugin_management_table extends \core_admin\table\plugin_management_t
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/tool.php', $params);
return new moodle_url('/admin/settings.php', array_merge(['section' => 'toolsmanagement'], $params));
}
}
+2 -2
View File
@@ -80,8 +80,8 @@ if (!$category = $DB->get_record('course_categories', ['id' => $options['categor
throw new \moodle_exception('invalidcategoryid');
}
$backupdir = "restore_" . uniqid();
$path = $CFG->tempdir . DIRECTORY_SEPARATOR . "backup" . DIRECTORY_SEPARATOR . $backupdir;
$backupdir = restore_controller::get_tempdir_name(SITEID, $USER->id);
$path = make_backup_temp_directory($backupdir);
cli_heading(get_string('extractingbackupfileto', 'backup', $path));
$fp = get_file_packer('application/vnd.moodle.backup');
+201
View File
@@ -3923,6 +3923,8 @@
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.2" requires="3.11.8">
@@ -3939,6 +3941,7 @@
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.0.0" level="required">
<RESTRICT function="restrict_php_version_83" message="unsupportedphpversion83" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -4112,6 +4115,8 @@
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.3" requires="3.11.8">
@@ -4128,6 +4133,7 @@
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="8.0.0" level="required">
<RESTRICT function="restrict_php_version_83" message="unsupportedphpversion83" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -4303,6 +4309,201 @@
</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_CHECKS>
</MOODLE>
<MOODLE version="4.4" 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_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+2 -2
View File
@@ -761,8 +761,8 @@ class manager {
public function delete_preset(int $presetid): void {
global $DB;
// Check the preset exists.
$preset = $DB->get_record('adminpresets', ['id' => $presetid]);
// Check the preset exists (cannot delete the pre-installed core "Starter" and "Full" presets).
$preset = $DB->get_record('adminpresets', ['id' => $presetid, 'iscore' => self::NONCORE_PRESET]);
if (!$preset) {
throw new moodle_exception('errordeleting', 'core_adminpresets');
}
+20 -1
View File
@@ -16,6 +16,7 @@
namespace core_adminpresets;
use moodle_exception;
use stdClass;
/**
@@ -599,10 +600,28 @@ class manager_test extends \advanced_testcase {
$manager = new manager();
$this->expectException(\moodle_exception::class);
$this->expectException(moodle_exception::class);
$this->expectExceptionMessage('Error deleting from database');
$manager->delete_preset($unexistingid);
}
/**
* Test trying to delete the core/pre-defined presets
*
* @covers ::delete_preset
*/
public function test_delete_preset_core(): void {
global $DB;
$this->resetAfterTest();
$starterpreset = $DB->get_record('adminpresets', ['iscore' => manager::STARTER_PRESET]);
$this->expectException(moodle_exception::class);
$this->expectExceptionMessage('Error deleting from database');
(new manager())->delete_preset($starterpreset->id);
}
/**
* Test the behaviour of delete_preset() method.
*
+32 -43
View File
@@ -49,26 +49,11 @@ if ($action == 'newon') {
admin_externalpage_setup($pagename);
$sesskeyurl = $CFG->wwwroot.'/'.$CFG->admin.'/repository.php?sesskey=' . sesskey();
$baseurl = $CFG->wwwroot.'/'.$CFG->admin.'/repository.php';
$configstr = get_string('manage', 'repository');
// The URL used for redirection, and that all edit related URLs will be based off.
$baseurl = new moodle_url('/admin/repository.php');
$return = true;
if (!empty($action)) {
require_sesskey();
}
/**
* Helper function that generates a moodle_url object
* relevant to the repository
*/
function repository_action_url($repository) {
global $baseurl;
return new moodle_url($baseurl, array('sesskey'=>sesskey(), 'repos'=>$repository));
}
if (($action == 'edit') || ($action == 'new')) {
$pluginname = '';
if ($action == 'edit') {
@@ -182,16 +167,12 @@ if (($action == 'edit') || ($action == 'new')) {
}
}
} else if ($action == 'show') {
if (!confirm_sesskey()) {
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
require_sesskey();
$class = \core_plugin_manager::resolve_plugininfo_class('repository');
$class::enable_plugin($repository, 1);
$return = true;
} else if ($action == 'hide') {
if (!confirm_sesskey()) {
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
require_sesskey();
$class = \core_plugin_manager::resolve_plugininfo_class('repository');
$class::enable_plugin($repository, 0);
$return = true;
@@ -199,9 +180,7 @@ if (($action == 'edit') || ($action == 'new')) {
$repositorytype = repository::get_type_by_typename($repository);
if ($sure) {
$PAGE->set_pagetype('admin-repository-' . $repository);
if (!confirm_sesskey()) {
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
require_sesskey();
if ($repositorytype->delete($downloadcontents)) {
// Include this information into config changes table.
@@ -220,20 +199,15 @@ if (($action == 'edit') || ($action == 'new')) {
$output = $OUTPUT->box_start('generalbox', 'notice');
$output .= html_writer::tag('p', $message);
$removeurl = new moodle_url($sesskeyurl);
$removeurl->params(array(
$removeurl = new moodle_url($baseurl, [
'action' =>'delete',
'repos' => $repository,
'sure' => 'yes',
));
]);
$removeanddownloadurl = new moodle_url($sesskeyurl);
$removeanddownloadurl->params(array(
'action' =>'delete',
'repos'=> $repository,
'sure' => 'yes',
$removeanddownloadurl = new moodle_url($removeurl, [
'downloadcontents' => 1,
));
]);
$output .= $OUTPUT->single_button($removeurl, get_string('continueuninstall', 'repository'));
$output .= $OUTPUT->single_button($removeanddownloadurl, get_string('continueuninstallanddownload', 'repository'));
@@ -245,9 +219,11 @@ if (($action == 'edit') || ($action == 'new')) {
$return = false;
}
} else if ($action == 'moveup') {
require_sesskey();
$repositorytype = repository::get_type_by_typename($repository);
$repositorytype->move_order('up');
} else if ($action == 'movedown') {
require_sesskey();
$repositorytype = repository::get_type_by_typename($repository);
$repositorytype->move_order('down');
} else {
@@ -339,8 +315,7 @@ if (($action == 'edit') || ($action == 'new')) {
$userinstancenumbertext = "";
}
$settings .= '<a href="' . $sesskeyurl . '&amp;action=edit&amp;repos=' . $typename . '">' . $settingsstr .'</a>';
$settings = html_writer::link(new moodle_url($baseurl, ['action' => 'edit', 'repos' => $typename]), $settingsstr);
$settings .= $OUTPUT->container_start('mdl-left');
$settings .= '<br/>';
$settings .= $admininstancenumbertext;
@@ -357,22 +332,34 @@ if (($action == 'edit') || ($action == 'new')) {
$currentaction = 'hide';
}
$select = new single_select(repository_action_url($typename, 'repos'), 'action', $actionchoicesforexisting, $currentaction, null, 'applyto' . basename($typename));
// Active toggle.
$selectaction = new moodle_url($baseurl, ['sesskey' => sesskey(), 'repos' => $typename]);
$select = new single_select($selectaction, 'action', $actionchoicesforexisting, $currentaction, null,
'applyto' . basename($typename));
$select->set_label(get_string('action'), array('class' => 'accesshide'));
// Display up/down link
$updown = '';
$spacer = $OUTPUT->spacer(array('height'=>15, 'width'=>15)); // should be done with CSS instead
if ($updowncount > 1) {
$updown .= "<a href=\"$sesskeyurl&amp;action=moveup&amp;repos=".$typename."\">";
$updown .= $OUTPUT->pix_icon('t/up', get_string('moveup')) . "</a>&nbsp;";
$moveupaction = new moodle_url($baseurl, [
'sesskey' => sesskey(),
'action' => 'moveup',
'repos' => $typename,
]);
$updown .= html_writer::link($moveupaction, $OUTPUT->pix_icon('t/up', get_string('moveup'))) . '&nbsp;';
}
else {
$updown .= $spacer;
}
if ($updowncount < $totalrepositorytypes) {
$updown .= "<a href=\"$sesskeyurl&amp;action=movedown&amp;repos=".$typename."\">";
$updown .= $OUTPUT->pix_icon('t/down', get_string('movedown')) . "</a>&nbsp;";
$movedownaction = new moodle_url($baseurl, [
'sesskey' => sesskey(),
'action' => 'movedown',
'repos' => $typename,
]);
$updown .= html_writer::link($movedownaction, $OUTPUT->pix_icon('t/down', get_string('movedown'))) . '&nbsp;';
}
else {
$updown .= $spacer;
@@ -400,7 +387,9 @@ if (($action == 'edit') || ($action == 'new')) {
foreach ($plugins as $plugin => $dir) {
// Check that it has not already been listed
if (!in_array($plugin, $alreadyplugins)) {
$select = new single_select(repository_action_url($plugin, 'repos'), 'action', $actionchoicesfornew, 'delete', null, 'applyto' . basename($plugin));
$selectaction = new moodle_url($baseurl, ['sesskey' => sesskey(), 'repos' => $plugin]);
$select = new single_select($selectaction, 'action', $actionchoicesfornew, 'delete', null,
'applyto' . basename($plugin));
$select->set_label(get_string('action'), array('class' => 'accesshide'));
$uninstall = '';
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('repository_' . $plugin, 'manage')) {
+9 -10
View File
@@ -18,8 +18,6 @@ require_once(__DIR__ . '/../config.php');
require_once($CFG->dirroot . '/repository/lib.php');
require_once($CFG->libdir . '/adminlib.php');
require_sesskey();
// id of repository
$edit = optional_param('edit', 0, PARAM_INT);
$new = optional_param('new', '', PARAM_PLUGIN);
@@ -43,12 +41,8 @@ if ($edit){
admin_externalpage_setup($pagename, '', null, new moodle_url('/admin/repositoryinstance.php'));
$baseurl = new moodle_url("/$CFG->admin/repositoryinstance.php", array('sesskey'=>sesskey()));
$parenturl = new moodle_url("/$CFG->admin/repository.php", array(
'sesskey'=>sesskey(),
'action'=>'edit',
));
// The URL used for redirection, and that all edit related URLs will be based off.
$parenturl = new moodle_url('/admin/repository.php', ['action' => 'edit']);
if ($new) {
$parenturl->param('repos', $new);
@@ -116,6 +110,7 @@ if (!empty($edit) || !empty($new)) {
$return = false;
}
} else if (!empty($hide)) {
require_sesskey();
$instance = repository::get_type_by_typename($hide);
$instance->hide();
core_plugin_manager::reset_caches();
@@ -129,6 +124,7 @@ if (!empty($edit) || !empty($new)) {
throw new repository_exception('nopermissiontoaccess', 'repository');
}
if ($sure) {
require_sesskey();
if ($instance->delete($downloadcontents)) {
$deletedstr = get_string('instancedeleted', 'repository');
core_plugin_manager::reset_caches();
@@ -141,14 +137,17 @@ if (!empty($edit) || !empty($new)) {
echo $OUTPUT->header();
echo $OUTPUT->box_start('generalbox', 'notice');
$continueurl = new moodle_url($baseurl, array(
$continueurl = new moodle_url($PAGE->url, [
'type' => $type,
'delete' => $delete,
'sure' => 'yes',
));
]);
$continueanddownloadurl = new moodle_url($continueurl, array(
'downloadcontents' => 1
));
$message = get_string('confirmdelete', 'repository', $instance->name);
echo html_writer::tag('p', $message);
+13
View File
@@ -38,6 +38,19 @@ if (!is_siteadmin()) {
}
$admisselector = new core_role_admins_existing_selector();
if (array_key_exists('siteadmins', $CFG->config_php_settings)) {
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('manageadmins', 'core_role'), 3);
echo $OUTPUT->notification(get_string('siteadministratorsconfigphp', 'core_role'), \core\output\notification::NOTIFY_INFO);
echo $OUTPUT->box_start();
echo $OUTPUT->paragraph(get_string('existingadmins', 'core_role'));
$admisselector->display();
echo $OUTPUT->box_end();
echo $OUTPUT->footer();
die();
}
$potentialadmisselector = new core_role_admins_potential_selector();
if ($addusersaction) {
@@ -97,7 +97,7 @@ class role extends base {
->set_type(column::TYPE_TEXT)
->add_fields("{$rolealias}.name, {$rolealias}.shortname, {$rolealias}.id, {$contextalias}.id AS contextid")
->add_fields(context_helper::get_preload_record_columns_sql($contextalias))
->set_is_sortable(true)
->set_is_sortable(true, ["CASE WHEN {$rolealias}.name = '' THEN {$rolealias}.shortname ELSE {$rolealias}.name END"])
->set_callback(static function($name, stdClass $role): string {
if ($name === null) {
return '';
+1 -1
View File
@@ -76,7 +76,7 @@ switch ($action) {
$optionsyes = array('action'=>'delete', 'roleid'=>$roleid, 'sesskey'=>sesskey(), 'confirm'=>1);
$a = new stdClass();
$a->id = $roleid;
$a->name = $roles[$roleid]->name;
$a->name = $roles[$roleid]->localname;
$a->shortname = $roles[$roleid]->shortname;
$a->count = $DB->count_records_select('role_assignments',
'roleid = ?', array($roleid), 'COUNT(DISTINCT userid)');
+2 -2
View File
@@ -200,14 +200,14 @@ reports,core_reportbuilder|/reportbuilder/index.php',
));
$choices = [HOMEPAGE_SITE => new lang_string('home')];
if (!empty($CFG->enabledashboard)) {
if (!isset($CFG->enabledashboard) || $CFG->enabledashboard) {
$choices[HOMEPAGE_MY] = new lang_string('mymoodle', 'admin');
}
$choices[HOMEPAGE_MYCOURSES] = new lang_string('mycourses', 'admin');
$choices[HOMEPAGE_USER] = new lang_string('userpreference', 'admin');
$temp->add(new admin_setting_configselect('defaulthomepage', new lang_string('defaulthomepage', 'admin'),
new lang_string('configdefaulthomepage', 'admin'), get_default_home_page(), $choices));
if (!empty($CFG->enabledashboard)) {
if (!isset($CFG->enabledashboard) || $CFG->enabledashboard) {
$temp->add(new admin_setting_configcheckbox(
'allowguestmymoodle',
new lang_string('allowguestmymoodle', 'admin'),
+14
View File
@@ -41,4 +41,18 @@ if (!empty($defaulth5plib)) {
$settings->add(new admin_settings_h5plib_handler_select('h5plibraryhandler', new lang_string('h5plibraryhandler', 'core_h5p'),
new lang_string('h5plibraryhandler_help', 'core_h5p'), $defaulth5plib));
$setting = new admin_setting_configtextarea(
'core_h5p/h5pcustomcss',
new lang_string('h5pcustomcss', 'core_h5p'),
new lang_string('h5pcustomcss_help', 'core_h5p'),
'',
PARAM_NOTAGS
);
$setting->set_updatedcallback(function () {
// Enables use of file_storage constants.
\core_h5p\local\library\autoloader::register();
\core_h5p\file_storage::generate_custom_styles();
});
$settings->add($setting);
}
@@ -23,12 +23,15 @@
* name - form element name
* hasoptions - there are some options
* options - list of options containing name, key, id, checked, label
* readonly - bool
Example context (json):
{
"name": "test",
"hasoptions": true,
"options": [ { "name": "Option", "key": "k1", "id": "id0", "checked": true, "label": "Option label"} ]
"options": [ { "name": "Option", "key": "k1", "id": "id0", "checked": true, "label": "Option label"} ],
"readonly": false
}
}}
<div class="form-multicheckbox">
@@ -37,7 +40,7 @@
<ul>
{{#options}}
<li>
<input type="checkbox" name="{{name}}[{{key}}]" value="1" id="{{id}}_{{key}}" {{#checked}}checked{{/checked}}>
<input type="checkbox" name="{{name}}[{{key}}]" value="1" id="{{id}}_{{key}}" {{#readonly}}disabled{{/readonly}} {{#checked}}checked{{/checked}}>
<label for="{{id}}_{{key}}">{{{label}}}</label>
</li>
{{/options}}
@@ -16,6 +16,7 @@
namespace tool_admin_presets\local\action;
use core_adminpresets\manager;
use moodle_exception;
/**
@@ -34,8 +35,8 @@ class delete extends base {
public function show(): void {
global $DB, $OUTPUT;
// Getting the preset name.
$presetdata = $DB->get_record('adminpresets', ['id' => $this->id], 'name');
// Check the preset exists (cannot delete the pre-installed core "Starter" and "Full" presets).
$presetdata = $DB->get_record('adminpresets', ['id' => $this->id, 'iscore' => manager::NONCORE_PRESET], 'name');
if ($presetdata) {
$deletetext = get_string('deletepreset', 'tool_admin_presets', $presetdata->name);
@@ -64,7 +65,7 @@ class delete extends base {
* Delete the DB preset
*/
public function execute(): void {
confirm_sesskey();
require_sesskey();
$this->manager->delete_preset($this->id);
@@ -52,8 +52,6 @@ class export extends base {
* Stores a preset into the DB.
*/
public function execute(): void {
confirm_sesskey();
$url = new \moodle_url('/admin/tool/admin_presets/index.php', ['action' => 'export', 'mode' => 'execute']);
$this->moodleform = new export_form($url);
@@ -87,7 +85,7 @@ class export extends base {
* @throws xml_writer_exception
*/
public function download_xml(): void {
confirm_sesskey();
require_sesskey();
list($xmlstr, $filename) = $this->manager->download_preset($this->id);
@@ -40,8 +40,6 @@ class import extends base {
* Imports the xmlfile into DB
*/
public function execute(): void {
confirm_sesskey();
$url = new \moodle_url('/admin/tool/admin_presets/index.php', ['action' => 'import', 'mode' => 'execute']);
$this->moodleform = new import_form($url);
@@ -38,8 +38,6 @@ class load extends base {
public function execute(): void {
global $OUTPUT;
confirm_sesskey();
$url = new \moodle_url('/admin/tool/admin_presets/index.php', ['action' => 'load', 'mode' => 'execute']);
$this->moodleform = new load_form($url);
@@ -73,7 +73,7 @@ class rollback extends base {
public function execute(): void {
global $OUTPUT;
confirm_sesskey();
require_sesskey();
list($presetapp, $rollback, $failures) = $this->manager->revert_preset($this->id);
+7 -7
View File
@@ -97,28 +97,28 @@ if ($onlycli === false) {
switch ($action) {
case 'enable':
confirm_sesskey();
require_sesskey();
$model->enable();
redirect($returnurl);
break;
case 'disable':
confirm_sesskey();
require_sesskey();
$model->update(0, false, false);
redirect($returnurl);
break;
case 'delete':
confirm_sesskey();
require_sesskey();
$model->delete();
redirect($returnurl);
break;
case 'edit':
confirm_sesskey();
require_sesskey();
$invalidcurrenttimesplitting = $model->invalid_timesplitting_selected();
$potentialtimesplittings = $model->get_potential_timesplittings();
@@ -183,7 +183,7 @@ switch ($action) {
break;
case 'evaluate':
confirm_sesskey();
require_sesskey();
if ($model->is_static()) {
throw new moodle_exception('errornostaticevaluate', 'tool_analytics');
@@ -226,7 +226,7 @@ switch ($action) {
break;
case 'scheduledanalysis':
confirm_sesskey();
require_sesskey();
if ($onlycli) {
throw new moodle_exception('erroronlycli', 'tool_analytics');
@@ -292,7 +292,7 @@ switch ($action) {
break;
case 'clear':
confirm_sesskey();
require_sesskey();
$model->clear();
redirect($returnurl);
+34
View File
@@ -0,0 +1,34 @@
@tool_behat
Feature: Confirm that we can open multiple browser tabs
In order to use multiple browser tabs
As a test writer
I need the relevant Behat steps to work
@javascript @_switch_window
Scenario: Open multiple browser tabs
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
| Course 2 | C2 |
| Course 3 | C3 |
And I am on the "C1" "Course" page logged in as "admin"
# Open a new tab on the same page.
When I open a tab named "CourseViewer1" on the current page
And I should see "Course 1" in the "h1" "css_element"
And I am on the "C2" "Course" page
# Open new tab for specified page with identifier.
And I open a tab named "CourseViewer2" on the "C3" "Course" page
# And for a specified page without identifier.
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"
And I switch to "CourseViewer2" tab
And "Course 3" "heading" should exist
And I switch to "CourseViewer1" tab
And "Course 2" "heading" should exist
And I switch to the main tab
And "Course 1" "heading" should exist
@@ -170,6 +170,19 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
'yellowgreen' => '9acd32'
];
/** @var string[] Define estimated relative font-size codes to pt values. */
public $fontsizenames = [
'xx-small' => 9,
'x-small' => 10,
'small' => 11,
'smaller' => 11,
'medium' => 12,
'large' => 14,
'larger' => 14,
'x-large' => 18,
'xx-large' => 24,
];
/**
* Helper method that finds the luminosity between the provided
* foreground and background parameters.
@@ -227,7 +240,8 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
$l2 = (.2126 * $r4 + 0.7152 * $g4 + 0.0722 * $b4);
}
$luminosity = round(($l1 + 0.05) / ($l2 + 0.05), 2);
// Increase round to 4 to avoid a 4.49 contrast being round up to a false pass of 4.5.
$luminosity = round(($l1 + 0.05) / ($l2 + 0.05), 4);
return $luminosity;
}
@@ -362,4 +376,35 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
: $backrgb['b'] - $forergb['b'];
return ['red' => $reddiff, 'green' => $greendiff, 'blue' => $bluediff];
}
/**
* Helper method that finds the estimated font-size for the provided
* string font-size parameter.
* @param string $fontsize The css font-size, in various formats
* @return int The estimated font-size
*/
public function get_fontsize(string $fontsize): int {
$newfontsize = 12; // Default value, in pt, equivalent to 16px.
// Search for rem, em, and px initially, typical font-size values.
$pos1 = stripos($fontsize, 'rem');
$pos2 = stripos($fontsize, 'em');
$pos3 = stripos($fontsize, 'px');
if ($pos1 !== false) {
$rem = substr($fontsize, 0, -3);
$newfontsize = $newfontsize * $rem;
} else if ($pos2 !== false) {
$em = substr($fontsize, 0, -2);
$newfontsize = $newfontsize * $em;
} else if ($pos3 !== false) {
$px = substr($fontsize, 0, -2);
$newfontsize = 0.75 * $px;
} else if (in_array($fontsize, array_keys($this->fontsizenames))) {
$newfontsize = $this->fontsizenames[$fontsize];
} else {
preg_match_all('!\d+!', $fontsize, $matches);
$newfontsize = $matches[0][0] ?? $newfontsize;
}
return (int) $newfontsize;
}
}
@@ -92,8 +92,7 @@ class css_text_has_contrast extends brickfield_accessibility_color_test {
$italic = false;
if (isset($style['font-size'])) {
preg_match_all('!\d+!', $style['font-size'], $matches);
$fontsize = $matches[0][0];
$fontsize = $this->get_fontsize($style['font-size']);
}
if (isset($style['font-weight'])) {
@@ -178,6 +178,54 @@ EOD;
</html>
EOD;
/** @var string HTML with px18 fail colour values. */
private $px18 = <<<EOD
<body><p style="color:#EF0000; background-color:white; font-size: 18px">
This is not contrasty enough.</p></body>
EOD;
/** @var string HTML with px19bold pass colour values. */
private $px19bold = <<<EOD
<body><p style="color:#EF0000; background-color:white; font-size: 19px; font-weight: bold;">
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with px18 pass colour values. */
private $px18pass = <<<EOD
<body><p style="color:#E60000; background-color:white; font-size: 18px">
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with medium size colour values. */
private $mediumfail = <<<EOD
<body><p style="color:#EF0000; background-color:white; font-size: medium">
This is not contrasty enough.</p></body>
EOD;
/** @var string HTML with px18 colour values. */
private $mediumpass = <<<EOD
<body><p style="color:#E60000; background-color:white; font-size: medium">
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with larger fail colour values. */
private $largerfail = <<<EOD
<body><p style="color:#FF6161; background-color:white; font-size: larger">
This is not contrasty enough.</p></body>
EOD;
/** @var string HTML with px18 colour values. */
private $largerpass = <<<EOD
<body><p style="color:#FF5C5C; background-color:white; font-size: larger;">
This is contrasty enough.</p></body>
EOD;
/** @var string HTML with px18 colour values. */
private $largerboldpass = <<<EOD
<body><p style="color:#FF5C5C; background-color:white; font-size: larger; font-weight: bold;">
This is contrasty enough.</p></body>
EOD;
/**
* Test for the area assign intro
*/
@@ -235,4 +283,68 @@ EOD;
$results = $this->get_checker_results($this->emptyvalue);
$this->assertEmpty($results);
}
/**
* Test for text px18 with insufficient contrast of 4.49.
*/
public function test_check_for_px18_fail() {
$results = $this->get_checker_results($this->px18);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for text px19 bold with sufficient contrast of 4.49.
*/
public function test_check_for_px19bold_pass() {
$results = $this->get_checker_results($this->px19bold);
$this->assertEmpty($results);
}
/**
* Test for text px18 with sufficient contrast of 4.81.
*/
public function test_check_for_px18_pass() {
$results = $this->get_checker_results($this->px18pass);
$this->assertEmpty($results);
}
/**
* Test for medium (12pt) text with insufficient contrast of 4.49.
*/
public function test_check_for_medium_fail() {
$results = $this->get_checker_results($this->mediumfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for medium (12pt) text with sufficient contrast of 4.81.
*/
public function test_check_for_medium_pass() {
$results = $this->get_checker_results($this->mediumpass);
$this->assertEmpty($results);
}
/**
* Test for larger (14pt) text with insufficient contrast of 2.94.
*/
public function test_check_for_larger_fail() {
$results = $this->get_checker_results($this->largerfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for larger (14pt) text with insufficient contrast of 3.02.
*/
public function test_check_for_larger_pass() {
$results = $this->get_checker_results($this->largerpass);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for larger (14pt) bold text with sufficient contrast of 3.02.
*/
public function test_check_for_largerbold_pass() {
$results = $this->get_checker_results($this->largerboldpass);
$this->assertEmpty($results);
}
}
+3
View File
@@ -61,5 +61,8 @@ function xmldb_tool_cohortroles_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2023042401, 'tool', 'cohortroles');
}
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -24,7 +24,7 @@ The confirmation AMD module is loaded automatically, so the only thing you need
to the target element:
{{< highlight html >}}
<button type="button" class="btn btn-primary" data-confirmation="modal" data-confirmation-title-str='["delete", "core"]'
data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str='["delete", "core"]'>Show confirmation modal</button>
data-confirmation-content-str='["areyousure"]' data-confirmation-yes-button-str='["delete", "core"]'>Show confirmation modal</button>
{{< /highlight >}}
You can also use it on PHP, you just need to set the attributes parameter to any moodle output component that takes attributes:
@@ -32,7 +32,7 @@ You can also use it on PHP, you just need to set the attributes parameter to any
echo $OUTPUT->single_button('#', get_string('delete'), 'get', [
'data-confirmation' => 'modal',
'data-confirmation-title-str' => json_encode(['delete', 'core']),
'data-confirmation-question-str' => json_encode(['areyousure']),
'data-confirmation-content-str' => json_encode(['areyousure']),
'data-confirmation-yes-button-str' => json_encode(['delete', 'core'])
]);
{{< / php >}}
@@ -56,8 +56,8 @@ echo $OUTPUT->single_button('#', get_string('delete'), 'get', [
<td>The modal title language string identifier, must be provided in JSON encoded format.</td>
</tr>
<tr>
<td>data-confirmation-question-str</td>
<td>The confirmation question language string identifier, must be provided in JSON encoded format.</td>
<td>data-confirmation-content-str</td>
<td>The modal main content language string identifier, must be provided in JSON encoded format.</td>
</tr>
<tr>
<td>data-confirmation-yes-button-str</td>
@@ -86,14 +86,14 @@ echo $OUTPUT->single_button('#', get_string('delete'), 'get', [
{{< example >}}
<button type="button" class="btn btn-primary" data-confirmation="modal" data-confirmation-title-str='["ok", "core"]'
data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str='["ok", "core"]'>Show confirmation modal</button>
data-confirmation-content-str='["areyousure"]' data-confirmation-yes-button-str='["ok", "core"]'>Show confirmation modal</button>
{{< /example >}}
#### Delete Modal
{{< example >}}
<button type="button" class="btn btn-primary" data-confirmation="modal" data-confirmation-type="delete" data-confirmation-title-str='["delete", "core"]'
data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str='["delete", "core"]'>Show delete modal</button>
data-confirmation-content-str='["areyousure"]' data-confirmation-yes-button-str='["delete", "core"]'>Show delete modal</button>
{{< /example >}}
@@ -101,7 +101,7 @@ data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str
{{< example >}}
<button type="button" class="btn btn-primary" data-confirmation="modal" data-confirmation-title-str='["save", "core"]'
data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str='["save", "core"]' data-confirmation-toast="true"
data-confirmation-content-str='["areyousure"]' data-confirmation-yes-button-str='["save", "core"]' data-confirmation-toast="true"
data-confirmation-toast-confirmation-str='["saved", "core_question", "My question"]'>Show confirmation modal</button>
{{< /example >}}
@@ -109,6 +109,6 @@ data-confirmation-toast-confirmation-str='["saved", "core_question", "My questio
{{< example >}}
<button type="button" class="btn btn-primary" data-confirmation="modal" data-confirmation-title-str='["save", "core"]'
data-confirmation-question-str='["areyousure"]' data-confirmation-yes-button-str='["save", "core"]'
data-confirmation-content-str='["areyousure"]' data-confirmation-yes-button-str='["save", "core"]'
data-confirmation-destination="http://moodle.com">Show confirmation modal</button>
{{< /example >}}
+3
View File
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -22,12 +22,12 @@ Feature: Within a moodle instance, an administrator should be able to modify lan
Scenario: Edit an string but don't save it to lang pack.
When I press "Apply changes and continue editing"
Then I should not see "moodle documents" in the "page-footer" "region"
And I should see "Help and documentation" in the "page-footer" "region"
And I should see "Documentation for this page" in the "page-footer" "region"
@javascript
Scenario: Customize an string as admin and save it to lang pack.
Given I press "Save changes to the language pack"
And I should see "There are 1 modified strings."
When I click on "Continue" "button"
Then I should not see "Help and documentation" in the "page-footer" "region"
Then I should not see "Documentation for this page" in the "page-footer" "region"
And I should see "moodle documents" in the "page-footer" "region"
+3
View File
@@ -152,5 +152,8 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2023062700, 'tool', 'dataprivacy');
}
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -47,7 +47,7 @@ $string['cachedef_purpose'] = 'Data purposes';
$string['cachedef_purpose_overrides'] = 'Purpose overrides in the Data privacy tool';
$string['cachedef_contextlevel'] = 'Context levels purpose and category';
$string['cancelrequest'] = 'Cancel request';
$string['cancelrequestconfirmation'] = 'Do you really want cancel this data request?';
$string['cancelrequestconfirmation'] = 'Do you want to cancel this data request?';
$string['cannotreset'] = 'Unable to reset this request. Only rejected requests can be reset.';
$string['categories'] = 'Categories';
$string['category'] = 'Category';
@@ -16,6 +16,7 @@
namespace tool_dataprivacy\task;
use core\task\task_trait;
use tool_dataprivacy\api;
defined('MOODLE_INTERNAL') || die();
@@ -30,6 +31,8 @@ require_once(__DIR__ . '/../data_privacy_testcase.php');
*/
class task_test extends \data_privacy_testcase {
use task_trait;
/**
* Test tearDown.
*/
@@ -215,17 +218,4 @@ class task_test extends \data_privacy_testcase {
$this->assertCount(1, \tool_dataprivacy\api::get_data_requests($user->id,
[api::DATAREQUEST_STATUS_CANCELLED], [api::DATAREQUEST_TYPE_DELETE]));
}
/**
* Helper to execute a particular task.
*
* @param string $task The task.
*/
private function execute_task($task) {
// Run the scheduled task.
ob_start();
$task = \core\task\manager::get_scheduled_task($task);
$task->execute();
ob_end_clean();
}
}
@@ -120,8 +120,7 @@ Feature: Add customised file types
| Custom description | Froggy file |
And I press "Save changes"
# Create a resource activity and add it to a course
And I am on "Course 1" course homepage with editing mode on
When I add a "File" to section "1"
When I add a resource activity to course "Course 1" section "1"
And I set the following fields to these values:
| Name | An example of customised file type |
| Description | File description |
@@ -82,12 +82,24 @@ class tool_filetypes_test extends advanced_testcase {
}
/**
* Test get_file_icons() function to confirm no file icons are removed/added by mistake.
* Test get_file_icons() function to confirm no file icons are removed by mistake.
*
* @covers ::get_file_icons
*/
public function test_get_file_icons() {
$icons = utils::get_file_icons();
$this->assertCount(31, $icons);
$filetypes = core_filetypes::get_types();
$requiredicons = array_column($filetypes, 'icon');
$requireduniqueicons = array_unique($requiredicons);
// The 'folder' icon is not a file, however the test validates no
// file icons are removed by mistake from the directory pix/f.
// Adding the folder icon manually completes the scope of this test.
$requireduniqueicons[] = 'folder';
foreach ($requireduniqueicons as $requiredicon) {
$this->assertArrayHasKey($requiredicon, $icons, "Icon '$requiredicon' is missing.");
}
}
}
@@ -216,7 +216,7 @@ class tool_generator_course_backend extends tool_generator_backend {
* @return int Course id
*/
public function make() {
global $DB, $CFG;
global $DB, $CFG, $USER;
require_once($CFG->dirroot . '/lib/phpunit/classes/util.php');
raise_memory_limit(MEMORY_EXTRA);
@@ -252,6 +252,12 @@ class tool_generator_course_backend extends tool_generator_backend {
}
}
// We are checking 'enroladminnewcourse' setting to decide to enrol admins or not.
if (!empty($CFG->creatornewroleid) && !empty($CFG->enroladminnewcourse) && is_siteadmin($USER->id)) {
// Deal with course creators - enrol them internally with default role.
enrol_try_internal_enrol($this->course->id, $USER->id, $CFG->creatornewroleid);
}
// Log total time.
$this->log('coursecompleted', round(microtime(true) - $entirestart, 1));
@@ -0,0 +1,33 @@
@core @core_course @tool_generator
Feature: Admins can create test courses
In order to create testing information
As an admin
I need to create testing courses quickly
@javascript
Scenario: 'Auto-enrol admin in new courses' setting when creating a test course as admin
Given I log in as "admin"
And the following config values are set as admin:
| enroladminnewcourse | 0 |
And I navigate to "Development > Make test course" in site administration
And I set the following fields to these values:
| Size of course | XS |
| Course full name | Fake course for testing |
| Course short name | fake |
And I press "Create course"
And I click on "Continue" "link"
And I navigate to course participants
Then I should not see "Teacher"
And I should not see "Nothing to display"
And the following config values are set as admin:
| enroladminnewcourse | 1 |
And I navigate to "Courses > Add a new course" in site administration
And I navigate to "Development > Make test course" in site administration
And I set the following fields to these values:
| Size of course | XS |
| Course full name | New fake course for testing |
| Course short name | newfake |
And I press "Create course"
And I click on "Continue" "link"
And I navigate to course participants
And I should see "Teacher"
@@ -68,9 +68,14 @@ class maketestcourse_test extends \advanced_testcase {
$this->assertEquals(2, count($modinfo->get_section_info_all()));
// Check user is enrolled.
// enroladminnewcourse is enabled by default, so admin is also enrolled as teacher.
$users = get_enrolled_users($context);
$this->assertEquals(1, count($users));
$this->assertEquals('tool_generator_000001', reset($users)->username);
$this->assertEquals(2, count($users));
$usernames = array_map(function($user) {
return $user->username;
}, $users);
$this->assertTrue(in_array('admin', $usernames));
$this->assertTrue(in_array('tool_generator_000001', $usernames));
// Check there's a page on the course.
$pages = $modinfo->get_instances_of('page');
+1 -1
View File
@@ -114,7 +114,7 @@ if ($mode == DELETION_OF_SELECTED_LANG and (!empty($uninstalllang) or !empty($co
}
}
if ($mode == UPDATE_ALL_LANG) {
if ($mode == UPDATE_ALL_LANG && confirm_sesskey()) {
core_php_time_limit::raise();
$controller->update_all_installed_languages();
}
@@ -87,6 +87,7 @@
<div>
<form id="updateform" action="{{updateurl}}" method="post">
<fieldset>
<input type="hidden" name="sesskey" value="{{sesskey}}">
<input type="submit" value="{{#str}}updatelangs, tool_langimport{{/str}}" class="btn btn-secondary">
{{#hasmanyinstalledlanguages}}
<p class="mt-2 small">{{#str}} updatelangsnote, tool_langimport, {"taskname": {{#quote}}{{updatelangstaskname}}{{/quote}} }{{/str}}</p>
+1 -1
View File
@@ -82,7 +82,7 @@ trait reader {
*/
public static function decode_other(?string $other) {
if ($other === 'N;' || preg_match('~^.:~', $other ?? '')) {
return unserialize($other);
return unserialize($other, ['allowed_classes' => [stdClass::class]]);
} else {
return json_decode($other ?? '', true);
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -39,5 +39,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -66,5 +66,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -75,7 +75,7 @@ class manage_competency_frameworks_page implements renderable, templatable {
);
$this->navigation[] = $addpage;
$competenciesrepository = new single_button(
new moodle_url('https://archive.moodle.net/competencies'),
new moodle_url('https://moodle.net/search', ['q' => 'competency frameworks']),
get_string('competencyframeworksrepository', 'tool_lp'),
'get'
);
@@ -102,7 +102,7 @@
<strong>{{#str}}activities{{/str}}</strong>
<ul class="inline list-inline p-2">
{{#coursemodules}}
<li class="list-inline-item"><a href="{{url}}"><img src="{{iconurl}}"> {{name}} </a></li>
<li class="list-inline-item"><a href="{{url}}"><img class="icon" src="{{iconurl}}"> {{name}} </a></li>
{{/coursemodules}}
{{^coursemodules}}
<li class="list-inline-item">{{#str}}noactivities, tool_lp{{/str}}</li>
@@ -49,7 +49,7 @@
}
}}
<span>
<img height="12" src="{{profileimageurlsmall}}" alt="" role="presentation">
<img height="12" src="{{profileimageurlsmall}}" alt="">
<span>{{fullname}}</span>
{{#hasidentity}}
<span><small>{{identity}}</small></span>
@@ -49,7 +49,7 @@
<p>
<ul class="inline list-inline">
{{#coursemodules}}
<li class="list-inline-item"><a href="{{url}}"><img src="{{iconurl}}"> {{name}} </a></li>
<li class="list-inline-item"><a href="{{url}}"><img class="icon" src="{{iconurl}}" alt=""> {{name}} </a></li>
{{/coursemodules}}
{{^coursemodules}}
<li class="list-inline-item"><span class="alert">{{#str}}noactivities, tool_lp{{/str}}</span></li>
@@ -50,7 +50,7 @@
}}
<span>
<a href="{{profileurl}}" title="{{#str}}viewprofile{{/str}}">
<img height="18" src="{{profileimageurlsmall}}" alt="" role="presentation">
<img height="18" src="{{profileimageurlsmall}}" alt="">
<span>{{fullname}}</span>
{{#hasidentity}}
<span><small>{{identity}}</small></span>
+13
View File
@@ -42,7 +42,20 @@ $PAGE->set_title($pagetitle);
// Logout if it was requested.
$logout = optional_param('logout', false, PARAM_BOOL);
$sesskey = optional_param('sesskey', '_none_', PARAM_RAW);
if ($logout) {
if (!confirm_sesskey($sesskey)) {
echo $OUTPUT->header();
echo $OUTPUT->confirm(
get_string('logoutconfirm'),
new moodle_url($PAGE->url, ['logout' => 1, 'sesskey' => sesskey()]),
new moodle_url('/'),
);
echo $OUTPUT->footer();
die;
}
if (!empty($SESSION->wantsurl)) {
// If we have the wantsurl, we should redirect there, to keep it intact.
$wantsurl = $SESSION->wantsurl;
@@ -0,0 +1,51 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace tool_mfa\hook;
use core\hook\described_hook;
use core\hook\stoppable_trait;
/**
* Allow plugins to callback as soon possible after user has passed MFA.
*
* @package tool_mfa
* @copyright 2024 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class after_user_passed_mfa implements
described_hook,
\Psr\EventDispatcher\StoppableEventInterface {
use stoppable_trait;
/**
* Describes the hook purpose.
*
* @return string
*/
public static function get_hook_description(): string {
return 'Allow plugins to callback as soon possible after user has passed MFA.';
}
/**
* List of tags that describe this hook.
*
* @return string[]
*/
public static function get_hook_tags(): array {
return ['login'];
}
}
+4
View File
@@ -332,6 +332,10 @@ class manager {
$event = \tool_mfa\event\user_passed_mfa::user_passed_mfa_event($USER);
$event->trigger();
// Allow plugins to callback as soon possible after user has passed MFA.
$hook = new \tool_mfa\hook\after_user_passed_mfa();
\core\hook\manager::get_instance()->dispatch($hook);
// Add/update record in DB for users last mfa auth.
self::update_pass_time();
+5 -2
View File
@@ -16,6 +16,7 @@
namespace tool_mfa\output;
use core\context\system;
use tool_mfa\local\factor\object_factor;
use tool_mfa\local\form\login_form;
use \html_writer;
@@ -222,7 +223,8 @@ class renderer extends \plugin_renderer_base {
// Support link.
$supportemail = $CFG->supportemail;
if (!empty($supportemail)) {
$subject = get_string('email:subject', 'tool_mfa', $SITE->fullname);
$subject = get_string('email:subject', 'tool_mfa',
format_string($SITE->fullname, true, ['context' => system::instance()]));
$maillink = \html_writer::link("mailto:$supportemail?Subject=$subject", $supportemail);
$notification .= get_string('error:support', 'tool_mfa');
$notification .= \html_writer::tag('p', $maillink);
@@ -333,8 +335,8 @@ class renderer extends \plugin_renderer_base {
// Auth rows.
$authtypes = get_enabled_auth_plugins(true);
$row = [];
foreach ($authtypes as $authtype) {
$row = [];
$row[] = \html_writer::tag('b', $authtype);
// Setup the overall totals columns.
@@ -635,6 +637,7 @@ class renderer extends \plugin_renderer_base {
'hasadditionalfactors' => $hasadditionalfactors,
'additionalfactors' => $alladitionalfactors,
'authurl' => $authurl->out(),
'sesskey' => sesskey(),
'supportlink' => $this->get_support_link(),
'disablefactor' => $disablefactor
];
@@ -46,5 +46,8 @@ function xmldb_factor_auth_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2021020500, 'factor', 'auth');
}
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -24,7 +24,7 @@
*/
// Ignore coding standards for login check, this page does not require login.
// @codingStandardsIgnoreStart
require_once(__DIR__ . '../../../../../../config.php');
require_once(__DIR__ . '/../../../../../config.php');
$instanceid = required_param('instance', PARAM_INT);
$pass = optional_param('pass', '0', PARAM_INT);
$secret = optional_param('secret', 0, PARAM_INT);
@@ -34,7 +34,7 @@ $string['error:futurecode'] = 'This code is invalid. Please verify the time on y
Current system time is {$a}.';
$string['error:oldcode'] = 'This code is too old. Please verify the time on your authenticator device is correct and try again.
Current system time is {$a}.';
$string['error:wrongverification'] = 'Incorrect verification code';
$string['error:wrongverification'] = 'Incorrect verification code.';
$string['factorsetup'] = 'App setup';
$string['info'] = '<p>Use any time-based one-time password (TOTP) authenticator app on your device to generate a verification code, even when it is offline.</p>
+1 -2
View File
@@ -31,8 +31,7 @@ require_once($CFG->libdir.'/tablelib.php');
require_login(null, false);
require_capability('moodle/site:config', context_system::instance());
global $_SERVER;
$returnurl = $_SERVER['HTTP_REFERER'];
$returnurl = get_local_referer(false);
$PAGE->set_url('/admin/tool/mfa/index.php');
+4
View File
@@ -112,6 +112,10 @@ function tool_mfa_after_config(): void {
* @return array
*/
function tool_mfa_bulk_user_actions(): array {
if (!has_capability('moodle/site:config', context_system::instance())) {
return [];
}
return [
'tool_mfa_reset_factors' => new action_link(
new moodle_url('/admin/tool/mfa/reset_factor.php'),
@@ -83,6 +83,7 @@
<div class="d-flex justify-content-center">
<form id="cancelmfa" method="POST" action="{{{authurl}}}">
<input type="hidden" id="{{uniqid}}-logout" name="logout" value="true">
<input type="hidden" name="sesskey" value="{{sesskey}}">
<input type="submit" class="btn btn-secondary"
name="cancelmfa" id="cancelmfa_button"
value="{{#str}} cancellogin, tool_mfa {{/str}}">
+12 -1
View File
@@ -384,7 +384,16 @@ class api {
$settings->searchhideallcategory = $CFG->searchhideallcategory;
$settings->searchmaxtopresults = $CFG->searchmaxtopresults;
$settings->searchbannerenable = $CFG->searchbannerenable;
$settings->searchbanner = $CFG->searchbanner;
$settings->searchbanner = \core_external\util::format_text(
$CFG->searchbanner, FORMAT_HTML, $context)[0];
}
if (empty($section) || $section === 'h5psettings') {
\core_h5p\local\library\autoloader::register();
$customcss = \core_h5p\file_storage::get_custom_styles();
if (!empty($customcss)) {
$settings->h5pcustomcssurl = $customcss['cssurl']->out() . '?ver=' . $customcss['cssversion'];
}
}
return $settings;
@@ -515,6 +524,7 @@ class api {
'comments' => 'CoreBlockDelegate_AddonBlockComments',
'completionstatus' => 'CoreBlockDelegate_AddonBlockCompletionStatus',
'feedback' => 'CoreBlockDelegate_AddonBlockFeedback',
'globalsearch' => 'CoreBlockDelegate_AddonBlockGlobalSearch',
'glossary_random' => 'CoreBlockDelegate_AddonBlockGlossaryRandom',
'html' => 'CoreBlockDelegate_AddonBlockHtml',
'lp' => 'CoreBlockDelegate_AddonBlockLp',
@@ -523,6 +533,7 @@ class api {
'private_files' => 'CoreBlockDelegate_AddonBlockPrivateFiles',
'recent_activity' => 'CoreBlockDelegate_AddonBlockRecentActivity',
'rss_client' => 'CoreBlockDelegate_AddonBlockRssClient',
'search_forums' => 'CoreBlockDelegate_AddonBlockSearchForums',
'selfcompletion' => 'CoreBlockDelegate_AddonBlockSelfCompletion',
'tags' => 'CoreBlockDelegate_AddonBlockTags',
);
@@ -0,0 +1,55 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace tool_mobile;
use core\session\utility\cookie_helper;
/**
* Allows plugins to add any elements to the footer.
*
* @package tool_mobile
* @copyright 2024 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class hook_callbacks {
/**
* Callback to recover $SESSION->wantsurl.
*
* @param \core_user\hook\after_login_completed $hook
*/
public static function after_login_completed(
\core_user\hook\after_login_completed $hook,
): void {
global $SESSION, $CFG;
// Check if the user is doing a mobile app launch, if that's the case, ensure $SESSION->wantsurl is correctly set.
if (!NO_MOODLE_COOKIES && !empty($_COOKIE['tool_mobile_launch'])) {
if (empty($SESSION->wantsurl) || strpos($SESSION->wantsurl, '/tool/mobile/launch.php') === false) {
$params = json_decode($_COOKIE['tool_mobile_launch'], true);
$SESSION->wantsurl = (new \moodle_url("/$CFG->admin/tool/mobile/launch.php", $params))->out(false);
}
}
// Set Partitioned and Secure attributes to the MoodleSession cookie if the user is using the Moodle app.
if (\core_useragent::is_moodle_app()) {
cookie_helper::add_attributes_to_cookie_response_header(
'MoodleSession' . $CFG->sessioncookie,
['Secure', 'Partitioned'],
);
}
}
}
@@ -0,0 +1,49 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace tool_mobile\local\hooks\user;
/**
* Handles mobile app launches when third-party auth plugins are put in front of MFA.
*
* @package tool_mobile
* @copyright 2024 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class after_user_passed_mfa {
/**
* Callback to recover $SESSION->wantsurl.
*
* @param \tool_mfa\hook\after_user_passed_mfa $hook
*/
public static function callback(\tool_mfa\hook\after_user_passed_mfa $hook): void {
global $SESSION, $CFG;
// Check if the user is doing a mobile app launch, if that's the case, ensure $SESSION->wantsurl is correctly set.
if (!NO_MOODLE_COOKIES && !empty($_COOKIE['tool_mobile_launch'])) {
if (empty($SESSION->wantsurl) || strpos($SESSION->wantsurl, '/tool/mobile/launch.php') === false) {
$params = json_decode($_COOKIE['tool_mobile_launch'], true);
$SESSION->wantsurl = (new \moodle_url("/$CFG->admin/tool/mobile/launch.php", $params))->out(false);
$SESSION->tool_mfa_has_been_redirected = true; // Indicate MFA that they need to follow $SESSION->wantsurl.
}
// Invalidate cookie as we won't be needing it anymore.
unset($_COOKIE['tool_mobile_launch']);
if (!headers_sent()) { // Just be very cautios as this is a critical code.
setcookie('tool_mobile_launch', '', -1, $CFG->sessioncookiepath);
}
}
}
}
+38
View File
@@ -0,0 +1,38 @@
<?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/>.
/**
* Hook callbacks for Moodle app tools
*
* @package tool_mobile
* @copyright 2024 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$callbacks = [
[
'hook' => \core_user\hook\after_login_completed::class,
'callback' => \tool_mobile\hook_callbacks::class . '::after_login_completed',
'priority' => 500,
],
[
'hook' => tool_mfa\hook\after_user_passed_mfa::class,
'callback' => 'tool_mobile\local\hooks\user\after_user_passed_mfa::callback',
'priority' => 500,
],
];
+3
View File
@@ -47,5 +47,8 @@ function xmldb_tool_mobile_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+20 -9
View File
@@ -44,6 +44,18 @@ if (!$CFG->enablewebservices) {
throw new moodle_exception('enablewsdescription', 'webservice');
}
// Check if the service exists and is enabled.
$service = $DB->get_record('external_services', ['shortname' => $serviceshortname, 'enabled' => 1]);
if (empty($service)) {
throw new moodle_exception('servicenotavailable', 'webservice');
}
// Set a cookie indicating that there was a launch to authenticate via the site from the app.
$ldata = json_encode(['service' => $serviceshortname, 'passport' => $passport,
'urlscheme' => $urlscheme, 'confirmed' => (int) $confirmed, 'oauthsso' => $oauthsso]);
$expires = time() + (15 * MINSECS); // 15 minutes for authentication should be enough.
setcookie('tool_mobile_launch', $ldata, $expires, $CFG->sessioncookiepath, $CFG->sessioncookiedomain);
// We have been requested to start a SSO process via OpenID.
if (!empty($oauthsso) && is_enabled_auth('oauth2')) {
$wantsurl = new moodle_url('/admin/tool/mobile/launch.php',
@@ -56,23 +68,22 @@ if (!empty($oauthsso) && is_enabled_auth('oauth2')) {
// Check if the plugin is properly configured.
$typeoflogin = get_config('tool_mobile', 'typeoflogin');
if (empty($SESSION->justloggedin) and
$typeoflogin != tool_mobile\api::LOGIN_VIA_BROWSER and
if (empty($SESSION->justloggedin) &&
!is_enabled_auth('oauth2') &&
$typeoflogin != tool_mobile\api::LOGIN_VIA_BROWSER &&
$typeoflogin != tool_mobile\api::LOGIN_VIA_EMBEDDED_BROWSER) {
throw new moodle_exception('pluginnotenabledorconfigured', 'tool_mobile');
}
// Check if the service exists and is enabled.
$service = $DB->get_record('external_services', array('shortname' => $serviceshortname, 'enabled' => 1));
if (empty($service)) {
throw new moodle_exception('servicenotavailable', 'webservice');
}
require_login(0, false);
// Require an active user: not guest, not suspended.
core_user::require_active_user($USER);
// Remove cookie.
unset($_COOKIE['tool_mobile_launch']);
setcookie('tool_mobile_launch', '', -1, $CFG->sessioncookiepath);
// Get an existing token or create a new one.
$timenow = time();
$token = \core_external\util::generate_token_for_current_user($service);
@@ -125,7 +136,7 @@ if ($confirmed or $isios) {
}
$notice = get_string('clickheretolaunchtheapp', 'tool_mobile');
echo html_writer::link($location, $notice, array('id' => 'launchapp'));
echo $OUTPUT->box(html_writer::link($location, $notice, ['id' => 'launchapp']), 'generalbox warning centerpara');
echo html_writer::script(
"window.onload = function() {
document.getElementById('launchapp').click();
+12
View File
@@ -271,3 +271,15 @@ function tool_mobile_pre_processor_message_send($procname, $data) {
$data->fullmessagehtml .= html_writer::tag('p', get_string('readingthisemailgettheapp', 'tool_mobile', $url->out()));
}
}
/**
* Callback to add headers before the HTTP headers are sent.
*
*/
function tool_mobile_before_http_headers() {
global $CFG;
// Set Partitioned and Secure attributes to the MoodleSession cookie if the user is using the Moodle app.
if (\core_useragent::is_moodle_app()) {
\core\session\utility\cookie_helper::add_attributes_to_cookie_response_header('MoodleSession'.$CFG->sessioncookie, ['Secure', 'Partitioned']);
}
}
@@ -270,6 +270,18 @@ class externallib_test extends externallib_advanced_testcase {
$this->assertCount(0, $result['warnings']);
$this->assertEquals($expected, $result['settings']);
// H5P custom CSS.
set_config('h5pcustomcss', '.debug { color: #fab; }', 'core_h5p');
\core_h5p\local\library\autoloader::register();
\core_h5p\file_storage::generate_custom_styles();
$result = external::get_config();
$result = external_api::clean_returnvalue(external::get_config_returns(), $result);
$customcss = \core_h5p\file_storage::get_custom_styles();
$expected[] = ['name' => 'h5pcustomcssurl', 'value' => $customcss['cssurl']->out() . '?ver=' . $customcss['cssversion']];
$this->assertCount(0, $result['warnings']);
$this->assertEquals($expected, $result['settings']);
// Change a value and retrieve filtering by section.
set_config('commentsperpage', 1);
$expected[10]['value'] = 1;
+3
View File
@@ -75,5 +75,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -155,5 +155,8 @@ function xmldb_tool_moodlenet_upgrade(int $oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+6 -7
View File
@@ -50,12 +50,10 @@ list($options, $unrecognized) = cli_get_params(
)
);
if (file_exists(__DIR__.'/../../../../vendor/phpunit/phpunit/composer.json')) {
// Composer packages present.
require_once(__DIR__.'/../../../../vendor/autoload.php');
} else {
// Note: installation via PEAR is not supported any more.
// Basic check to see if phpunit is installed.
if (!file_exists(__DIR__.'/../../../../vendor/phpunit/phpunit/composer.json') ||
!file_exists(__DIR__.'/../../../../vendor/bin/phpunit') ||
!file_exists(__DIR__.'/../../../../vendor/autoload.php')) {
phpunit_bootstrap_error(PHPUNIT_EXITCODE_PHPUNITMISSING);
}
@@ -74,12 +72,13 @@ if ($options['run']) {
}
}
$_SERVER['argv'] = array_values($_SERVER['argv']);
PHPUnit\TextUI\Command::main();
require(__DIR__ . '/../../../../vendor/bin/phpunit');
exit(0);
}
define('PHPUNIT_UTIL', true);
require(__DIR__.'/../../../../vendor/autoload.php');
require(__DIR__ . '/../../../../lib/phpunit/bootstrap.php');
// from now on this is a regular moodle CLI_SCRIPT
+3
View File
@@ -46,5 +46,8 @@ function xmldb_tool_policy_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -35,7 +35,7 @@ $renderer = $PAGE->get_renderer('tool_task');
if ($classname) {
$pageurl = new moodle_url('/admin/tool/task/adhoctasks.php');
$PAGE->navbar->add(get_string('adhoctasks', 'tool_task'), $pageurl);
$PAGE->navbar->add($classname, $PAGE->url);
$PAGE->navbar->add(s($classname), $PAGE->url);
$tasks = core\task\manager::get_adhoc_tasks($classname, $failedonly);
+3
View File
@@ -80,6 +80,9 @@ $string['runnow'] = 'Run now';
$string['runagain'] = 'Run again';
$string['runadhoc_confirm'] = 'Tasks will run on the web server and may take some time to complete.';
$string['runadhoc'] = 'Run ad hoc tasks now?';
$string['runadhoctask'] = 'Run \'{$a->task}\' task ID {$a->taskid}';
$string['runadhoctasks'] = 'Run all \'{$a}\' tasks';
$string['runadhoctasksfailed'] = 'Run failed \'{$a}\' tasks';
$string['runnow_confirm'] = 'Are you sure you want to run this task \'{$a}\' now? The task will run on the web server and may take some time to complete.';
$string['runclassname'] = 'Run all';
$string['runclassnamefailedonly'] = 'Run all failed';
+2 -1
View File
@@ -45,5 +45,6 @@ function tool_task_status_checks() : array {
* @param string $eol End of line character
*/
function tool_task_mtrace_wrapper(string $message, string $eol): void {
echo s($message . $eol);
$message = s($message);
echo $message . $eol;
}
+2 -2
View File
@@ -82,7 +82,7 @@ class tool_task_renderer extends plugin_renderer_base {
);
$classcell = new html_table_cell($classcontent);
$classcell->header = true;
$classcell->class = "task-class-summary text-ltr";
$classcell->attributes['class'] = "task-class-summary text-ltr";
$duecontent = $stats['due'];
if ($canruntasks && ($stats['due'] > 0 || $stats['failed'] > 0)) {
@@ -166,7 +166,7 @@ class tool_task_renderer extends plugin_renderer_base {
// Main tasks table.
$table = $this->generate_adhoc_tasks_simple_table($tasks, $canruntasks);
$table->caption = "$classname "
$table->caption = s($classname) . " "
. get_string($failedonly ? 'adhoctasksfailed' : 'adhoctasks', 'tool_task');
$table->head[3] .= " $failedorall"; // Spice up faildelay heading.
+9 -2
View File
@@ -54,13 +54,19 @@ if ($taskid) {
throw new \moodle_exception('invalidtaskid');
}
$classname = $record->classname;
$heading = "Run $classname task Id $taskid";
$heading = get_string('runadhoctask', 'tool_task', ['task' => $classname, 'taskid' => $taskid]);
$tasks = [core\task\manager::adhoc_task_from_record($record)];
} else {
if (!$classname) {
throw new \moodle_exception('noclassname', 'tool_task');
}
$heading = "Run $classname " . ($failedonly ? "failed" : "all")." tasks";
$heading = get_string(
$failedonly ? 'runadhoctasksfailed' : 'runadhoctasks',
'tool_task',
s($classname),
);
$now = time();
$tasks = array_filter(
core\task\manager::get_adhoc_tasks($classname, $failedonly, true),
@@ -111,6 +117,7 @@ require_sesskey();
\core\session\manager::write_close();
// Prepare to handle output via mtrace.
require_once("{$CFG->dirroot}/{$CFG->admin}/tool/task/lib.php");
$CFG->mtrace_wrapper = 'tool_task_mtrace_wrapper';
// Run the specified tasks.
+2
View File
@@ -89,6 +89,8 @@ echo $OUTPUT->select_element_for_append();
// Prepare to handle output via mtrace.
echo html_writer::start_tag('pre', ['style' => 'color: #fff; background: #333; padding: 1em; min-height: 24lh']);
require_once("{$CFG->dirroot}/{$CFG->admin}/tool/task/lib.php");
$CFG->mtrace_wrapper = 'tool_task_mtrace_wrapper';
// Run the specified task (this will output an error if it doesn't exist).
+5 -1
View File
@@ -236,6 +236,8 @@ class form_test extends \advanced_testcase {
$checker->set_day_of_week('6');
$this->assertTrue($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('7');
$this->assertTrue($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('8');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('20');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
@@ -247,7 +249,7 @@ class form_test extends \advanced_testcase {
$checker->set_day_of_week('*/6');
$this->assertTrue($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('*/7');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
$this->assertTrue($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('*/13');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('*/35');
@@ -271,6 +273,8 @@ class form_test extends \advanced_testcase {
$checker->set_day_of_week('65-2');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('3-7');
$this->assertTrue($checker->is_valid($checker::FIELD_DAYOFWEEK));
$checker->set_day_of_week('3-8');
$this->assertFalse($checker->is_valid($checker::FIELD_DAYOFWEEK));
}
}
@@ -367,6 +367,11 @@ class cli_helper {
$firstoption = reset($selectoptions);
$default = $firstoption['attr']['value'];
}
// The menu profile field type allows for an empty default value, handle that here.
if (preg_match('/^profile_field_/', $name) && $default === '') {
$possiblevalues[] = $default;
}
}
if ($element instanceof \HTML_QuickForm_checkbox) {
+34 -4
View File
@@ -461,9 +461,22 @@ class process {
return;
}
$matchparam = $this->get_match_on_email() ? ['email' => $user->email] : ['username' => $user->username];
if ($existinguser = $DB->get_records('user', $matchparam + ['mnethostid' => $user->mnethostid])) {
if (is_array($existinguser) && count($existinguser) !== 1) {
if ($this->get_match_on_email()) {
// Case-insensitive query for the given email address.
$userselect = $DB->sql_equal('email', ':email', false);
$userparams = ['email' => $user->email];
} else {
$userselect = 'username = :username';
$userparams = ['username' => $user->username];
}
// Match the user, also accounting for multiple records by email.
$existinguser = $DB->get_records_select('user', "{$userselect} AND mnethostid = :mnethostid",
$userparams + ['mnethostid' => $user->mnethostid]);
$existingusercount = count($existinguser);
if ($existingusercount > 0) {
if ($existingusercount !== 1) {
$this->upt->track('status', get_string('duplicateemail', 'tool_uploaduser', $user->email), 'warning');
$this->userserrors++;
return;
@@ -675,6 +688,17 @@ class process {
break;
case UU_USER_ADD_UPDATE:
if ($this->get_match_on_email()) {
if ($usersbyname = $DB->get_records('user', ['username' => $user->username])) {
foreach ($usersbyname as $userbyname) {
if (strtolower($userbyname->email) != strtolower($user->email)) {
$this->usersskipped++;
$this->upt->track('status', get_string('usernotaddedusernameexists', 'error'), 'warning');
$skip = true;
}
}
}
}
break;
case UU_USER_UPDATE:
@@ -1371,8 +1395,14 @@ class process {
}
}
}
// Warn user about invalid data values.
if (($invalid = \core_user::validate($user)) !== true) {
$this->upt->track('status', get_string('invaliduserdata', 'tool_uploaduser', s($user->username)), 'warning');
$listseparator = get_string('listsep', 'langconfig') . ' ';
$this->upt->track('status', get_string('invaliduserdatavalues', 'tool_uploaduser', [
'username' => s($user->username),
'values' => implode($listseparator, array_keys($invalid)),
]), 'warning');
}
}
@@ -50,6 +50,7 @@ The example text file may also be used for testing, as you are able to preview u
$string['infoprefix'] = 'Info:';
$string['invalidupdatetype'] = 'This option cannot be selected with the chosen upload type.';
$string['invaliduserdata'] = 'Invalid data detected for user {$a} and it has been automatically cleaned.';
$string['invaliduserdatavalues'] = 'Incorrect data ({$a->values}) found for user {$a->username}. This data has been corrected or deleted.';
$string['invalidtheme'] = 'Theme "{$a}" is not installed and will be ignored.';
$string['linex'] = 'Line {$a}';
$string['matchemail'] = 'Match on email address';
@@ -296,3 +296,25 @@ Feature: Upload users
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I should see "Bilbo Baggins"
And I should not see "Frodo Baggins"
@javascript
Scenario: Create a new user when matching them on email where where the username already exists
Given the following "users" exist:
| username | firstname | lastname | email |
| bilbob | Samwise | Gamgee | samwise@example.com |
| frodob | Frodeo | Baspins | frodo@example.com |
And I log in as "admin"
And I navigate to "Users > Accounts > Upload users" in site administration
When I upload "lib/tests/fixtures/upload_users_email_matching.csv" file to "File" filemanager
And I press "Upload users"
Then I should see "Upload users preview"
And I set the following fields to these values:
| Upload type | Add new and update existing users |
| Existing user details | Override with file |
| Match on email address | Yes |
And I press "Upload users"
And I should see "User not added - username already exists under a different email"
And I press "Continue"
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I should see "Samwise Gamgee"
And I should see "Frodo Baggins"
@@ -186,6 +186,26 @@ EOF;
$this->assertEquals('student1', reset($usersasdefaultrole)->username);
}
/**
* Test that invalid data contained in uploaded CSV triggers appropriate warnings
*/
public function test_user_upload_user_validate(): void {
$this->resetAfterTest();
$this->setAdminUser();
$csv = <<<EOF
username,firstname,lastname,email,country
student1,Student,One,s1@example.com,Wales
EOF;
$output = $this->process_csv_upload($csv, ['--uutype=' . UU_USER_ADDNEW]);
// We should get the debugging from the user class itself, as well as warning in the output regarding the same.
$this->assertDebuggingCalled('The property \'country\' has invalid data and has been cleaned.');
$this->assertStringContainsString('Incorrect data (country) found for user student1. ' .
'This data has been corrected or deleted.', $output);
}
/**
* Generate cli_helper and mock $_SERVER['argv']
*
+13 -29
View File
@@ -97,9 +97,6 @@ class admin_uploaduser_form2 extends moodleform {
$columns = $this->_customdata['columns'];
$data = $this->_customdata['data'];
// I am the template user, why should it be the administrator? we have roles now, other ppl may use this script ;-)
$templateuser = $USER;
// upload settings and file
$mform->addElement('header', 'settingsheader', get_string('settings'));
@@ -276,30 +273,19 @@ class admin_uploaduser_form2 extends moodleform {
$mform->setDefault('autosubscribe', core_user::get_property_default('autosubscribe'));
$mform->addElement('text', 'city', get_string('city'), 'maxlength="120" size="25"');
$mform->setType('city', PARAM_TEXT);
if (empty($CFG->defaultcity)) {
$mform->setDefault('city', $templateuser->city);
} else {
$mform->setDefault('city', core_user::get_property_default('city'));
}
$mform->setType('city', core_user::get_property_type('city'));
$mform->setDefault('city', core_user::get_property_default('city'));
$choices = get_string_manager()->get_list_of_countries();
$choices = array(''=>get_string('selectacountry').'...') + $choices;
$mform->addElement('select', 'country', get_string('selectacountry'), $choices);
if (empty($CFG->country)) {
$mform->setDefault('country', $templateuser->country);
} else {
$mform->setDefault('country', core_user::get_property_default('country'));
}
$mform->addElement('select', 'country', get_string('selectacountry'), core_user::get_property_choices('country'));
$mform->setDefault('country', core_user::get_property_default('country') ?: '');
$mform->setAdvanced('country');
$choices = core_date::get_list_of_timezones($templateuser->timezone, true);
$mform->addElement('select', 'timezone', get_string('timezone'), $choices);
$mform->setDefault('timezone', $templateuser->timezone);
$mform->addElement('select', 'timezone', get_string('timezone'), core_date::get_list_of_timezones(null, true));
$mform->setDefault('timezone', core_user::get_property_default('timezone'));
$mform->setAdvanced('timezone');
$mform->addElement('select', 'lang', get_string('preferredlanguage'), get_string_manager()->get_list_of_translations());
$mform->setDefault('lang', $templateuser->lang);
$mform->addElement('select', 'lang', get_string('preferredlanguage'), core_user::get_property_choices('lang'));
$mform->setDefault('lang', core_user::get_property_default('lang'));
$mform->setAdvanced('lang');
$editoroptions = array('maxfiles'=>0, 'maxbytes'=>0, 'trusttext'=>false, 'forcehttps'=>false);
@@ -313,25 +299,23 @@ class admin_uploaduser_form2 extends moodleform {
$mform->setForceLtr('idnumber');
$mform->addElement('text', 'institution', get_string('institution'), 'maxlength="255" size="25"');
$mform->setType('institution', PARAM_TEXT);
$mform->setDefault('institution', $templateuser->institution);
$mform->setType('institution', core_user::get_property_type('institution'));
$mform->addElement('text', 'department', get_string('department'), 'maxlength="255" size="25"');
$mform->setType('department', PARAM_TEXT);
$mform->setDefault('department', $templateuser->department);
$mform->setType('department', core_user::get_property_type('department'));
$mform->addElement('text', 'phone1', get_string('phone1'), 'maxlength="20" size="25"');
$mform->setType('phone1', PARAM_NOTAGS);
$mform->setType('phone1', core_user::get_property_type('phone1'));
$mform->setAdvanced('phone1');
$mform->setForceLtr('phone1');
$mform->addElement('text', 'phone2', get_string('phone2'), 'maxlength="20" size="25"');
$mform->setType('phone2', PARAM_NOTAGS);
$mform->setType('phone2', core_user::get_property_type('phone2'));
$mform->setAdvanced('phone2');
$mform->setForceLtr('phone2');
$mform->addElement('text', 'address', get_string('address'), 'maxlength="255" size="25"');
$mform->setType('address', PARAM_TEXT);
$mform->setType('address', core_user::get_property_type('address'));
$mform->setAdvanced('address');
// Next the profile defaults
@@ -102,7 +102,7 @@ class block extends base {
*/
public static function add_disabled_constraints_to_form(\MoodleQuickForm $mform) {
$mform->hideIf('targetvalue_block', 'targettype', 'noteq',
\tool_usertours\target::get_target_constant_for_class(get_class()));
\tool_usertours\target::get_target_constant_for_class(self::class));
}
/**
@@ -92,7 +92,7 @@ class selector extends base {
*/
public static function add_disabled_constraints_to_form(\MoodleQuickForm $mform) {
$mform->hideIf('targetvalue_selector', 'targettype', 'noteq',
\tool_usertours\target::get_target_constant_for_class(get_class()));
\tool_usertours\target::get_target_constant_for_class(self::class));
}
/**
@@ -81,7 +81,7 @@ class unattached extends base {
* @param MoodleQuickForm $mform The form to add configuration to.
*/
public static function add_disabled_constraints_to_form(\MoodleQuickForm $mform) {
$myvalue = \tool_usertours\target::get_target_constant_for_class(get_class());
$myvalue = \tool_usertours\target::get_target_constant_for_class(self::class);
foreach (array_keys(self::$forcedsettings) as $settingname) {
$mform->hideIf($settingname, 'targettype', 'eq', $myvalue);
+1 -1
View File
@@ -283,7 +283,7 @@ class manager {
'title' => get_string('importtour', 'tool_usertours'),
],
(object) [
'link' => new \moodle_url('https://archive.moodle.net/tours'),
'link' => new \moodle_url('https://moodle.net/search', ['q' => 'user tours']),
'linkproperties' => [
'target' => '_blank',
],
+3
View File
@@ -146,5 +146,8 @@ function xmldb_tool_usertours_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2023053000, 'tool', 'usertours');
}
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -91,12 +91,12 @@ class edit_field_save extends XMLDBAction {
$comment = trim($comment);
$type = required_param('type', PARAM_INT);
$length = strtolower(optional_param('length', NULL, PARAM_ALPHANUM));
$length = optional_param('length', null, PARAM_INT);
$decimals = optional_param('decimals', NULL, PARAM_INT);
$notnull = optional_param('notnull', false, PARAM_BOOL);
$sequence = optional_param('sequence', false, PARAM_BOOL);
$default = optional_param('default', NULL, PARAM_PATH);
$default = trim($default);
$default = is_null($default) ? $default : trim($default);
$editeddir = $XMLDB->editeddirs[$dirpath];
$structure = $editeddir->xml_file->getStructure();
+4 -5
View File
@@ -33,18 +33,17 @@ $userid = required_param('userid', PARAM_INT);
admin_externalpage_setup('externalserviceusersettings');
//define nav bar
$PAGE->set_url('/' . $CFG->admin . '/webservice/service_user_settings.php',
array('id' => $serviceid, 'userid' => $userid));
$PAGE->set_url('/admin/webservice/service_user_settings.php', ['serviceid' => $serviceid, 'userid' => $userid]);
$node = $PAGE->settingsnav->find('externalservices', navigation_node::TYPE_SETTING);
if ($node) {
$node->make_active();
}
$PAGE->navbar->add(get_string('serviceusers', 'webservice'),
new moodle_url('/' . $CFG->admin . '/webservice/service_users.php', array('id' => $serviceid)));
$returnurl = new moodle_url('/admin/webservice/service_users.php', ['id' => $serviceid]);
$PAGE->navbar->add(get_string('serviceusers', 'webservice'), $returnurl);
$PAGE->navbar->add(get_string('serviceusersettings', 'webservice'));
$formaction = new moodle_url('', array('id' => $serviceid, 'userid' => $userid));
$returnurl = new moodle_url('/' . $CFG->admin . '/webservice/service_users.php', array('id' => $serviceid));
$webservicemanager = new webservice();
$serviceuser = $webservicemanager->get_ws_authorised_user($serviceid, $userid);
+3
View File
@@ -52,5 +52,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -90,7 +90,7 @@ class login implements renderable, templatable {
$languagedata = new \core\output\language_menu($PAGE);
$this->languagemenu = $languagedata->export_for_action_menu($OUTPUT);
$this->canloginasguest = $CFG->guestloginbutton and !isguestuser();
$this->canloginasguest = $CFG->guestloginbutton && !isguestuser();
$this->canloginbyemail = !empty($CFG->authloginviaemail);
$this->cansignup = $CFG->registerauth == 'email' || !empty($CFG->registerauth);
if ($CFG->rememberusername == 0) {
+3
View File
@@ -44,5 +44,8 @@ function xmldb_auth_db_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -44,5 +44,8 @@ function xmldb_auth_email_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -52,5 +52,8 @@ function xmldb_auth_ldap_upgrade($oldversion) {
// Automatically generated Moodle v4.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v4.3.0 release upgrade line.
// Put any upgrade step following this.
return true;
}

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