moodle.git
4 days agoweekly release 5.0.1+ MOODLE_500_STABLE
Michael Hawkins [Fri, 11 Jul 2025 04:48:56 +0000 (12:48 +0800)]
weekly release 5.0.1+

4 days agoNOBUG: Add upgrade notes
Michael Hawkins [Fri, 11 Jul 2025 04:48:56 +0000 (12:48 +0800)]
NOBUG: Add upgrade notes

5 days agoMDL-85721 qtype_multianswer: Update find_duplicated_subquestions for Oracle compatibility
Mark Johnson [Wed, 9 Jul 2025 10:09:44 +0000 (11:09 +0100)]
MDL-85721 qtype_multianswer: Update find_duplicated_subquestions for Oracle compatibility

5 days agoMDL-84695 mod_qbank: Fix illegal whitespace
Mihail Geshoski [Thu, 10 Jul 2025 03:07:25 +0000 (11:07 +0800)]
MDL-84695 mod_qbank: Fix illegal whitespace

5 days agoMDL-84695 mod_qbank: fix unit test for MS SQL server
Mark Johnson [Thu, 3 Jul 2025 14:51:29 +0000 (15:51 +0100)]
MDL-84695 mod_qbank: fix unit test for MS SQL server

6 days agoMDL-85721 qtype_multianswer: Fix version bump
Mihail Geshoski [Wed, 9 Jul 2025 03:13:47 +0000 (11:13 +0800)]
MDL-85721 qtype_multianswer: Fix version bump

6 days agoMDL-85689 mod_quiz: Behat for adding and deleting page from quiz
andelacruz [Wed, 25 Jun 2025 07:27:12 +0000 (15:27 +0800)]
MDL-85689 mod_quiz: Behat for adding and deleting page from quiz

6 days agoMDL-85939 qbank_columnsortorder: improve preview page table alignment.
Paul Holden [Fri, 4 Jul 2025 01:49:38 +0000 (09:49 +0800)]
MDL-85939 qbank_columnsortorder: improve preview page table alignment.

6 days agoMDL-84901 auth: specific session start error language string.
Paul Holden [Mon, 17 Mar 2025 18:13:35 +0000 (18:13 +0000)]
MDL-84901 auth: specific session start error language string.

6 days agoMDL-85697 mod_lesson: Behat for lesson group and user overrides
andelacruz [Tue, 1 Jul 2025 09:23:06 +0000 (17:23 +0800)]
MDL-85697 mod_lesson: Behat for lesson group and user overrides

6 days agoMDL-85697 mod_assign: Behat for assignment group and user overrides
andelacruz [Tue, 1 Jul 2025 08:10:05 +0000 (16:10 +0800)]
MDL-85697 mod_assign: Behat for assignment group and user overrides

6 days agoMDL-85697 mod_quiz: Behat for quiz group and user overrides
andelacruz [Tue, 24 Jun 2025 09:12:58 +0000 (17:12 +0800)]
MDL-85697 mod_quiz: Behat for quiz group and user overrides

7 days agoMDL-84255 quiz: Show quiz title in heading in accessrule_seb layout.
Luca Bösch [Wed, 23 Apr 2025 07:26:29 +0000 (09:26 +0200)]
MDL-84255 quiz: Show quiz title in heading in accessrule_seb layout.

7 days agoMDL-85947 ci: Bump GHA to Ubuntu 24.04
Daniel Ziegenberg [Mon, 7 Jul 2025 13:57:39 +0000 (15:57 +0200)]
MDL-85947 ci: Bump GHA to Ubuntu 24.04

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
7 days agoMDL-85863 user: Defer new-password email until after transaction commit
yusufwib01 [Thu, 3 Jul 2025 16:32:50 +0000 (23:32 +0700)]
MDL-85863 user: Defer new-password email until after transaction commit

7 days agoMDL-85659 theme_boost: Fix editor generated tables styles
Mikel Martín [Thu, 3 Jul 2025 12:59:00 +0000 (14:59 +0200)]
MDL-85659 theme_boost: Fix editor generated tables styles

8 days agoMDL-81702 core_message: Add focustrap and backdrop
Laurent David [Mon, 7 Apr 2025 09:21:45 +0000 (11:21 +0200)]
MDL-81702 core_message: Add focustrap and backdrop

* Add focustrap and backdrop to message drawer.

8 days agoMDL-81702 theme_boost: Add focus lock to drawers
Laurent David [Mon, 7 Apr 2025 07:33:42 +0000 (09:33 +0200)]
MDL-81702 theme_boost: Add focus lock to drawers

* Add focus lock to drawers for small screens

8 days agoMDL-81702 theme_boost: Remove site home link from drawers
Laurent David [Mon, 7 Apr 2025 05:19:22 +0000 (07:19 +0200)]
MDL-81702 theme_boost: Remove site home link from drawers

* The site-home-link was added to all menu drawers and should
only be added to the main menu drawer (mobile version)

8 days agoMDL-84695 mod_qbank: More precise get_qbank_ids_of_type_in_course query.
Luca Bösch [Fri, 28 Feb 2025 13:43:18 +0000 (14:43 +0100)]
MDL-84695 mod_qbank: More precise get_qbank_ids_of_type_in_course query.

9 days agoweekly release 5.0.1+
Mihail Geshoski [Sun, 6 Jul 2025 01:25:48 +0000 (09:25 +0800)]
weekly release 5.0.1+

9 days agoNOBUG: Add upgrade notes
Mihail Geshoski [Sun, 6 Jul 2025 01:25:48 +0000 (09:25 +0800)]
NOBUG: Add upgrade notes

11 days agoMDL-85037 block_html: correct access checks for plugin file serving.
Paul Holden [Tue, 1 Apr 2025 13:54:19 +0000 (14:54 +0100)]
MDL-85037 block_html: correct access checks for plugin file serving.

11 days agoMDL-41924 quiz: Annotate questions for backups
Mark Johnson [Fri, 28 Feb 2025 09:59:30 +0000 (09:59 +0000)]
MDL-41924 quiz: Annotate questions for backups

Find question bank entries for all questions referenced by a question
slot, and for all questions matching a question bank referenced used for
a random question, and record their IDs so they can be included in
backups.

11 days agoMDL-41924 backup: Reduce questions included in backups
Mark Johnson [Thu, 13 Feb 2025 09:31:11 +0000 (09:31 +0000)]
MDL-41924 backup: Reduce questions included in backups

Historically, backups of an activity using questions would include all
questions for the entire context, where any question had been used. This
could lead to very large backup files, and exacerbated problems with
question duplication.

This changes the process for annotating categories to include in the
backup to find specific categories, rather than whole contexts. It
includes 3 groups of categories:
1. Those that belong to the backed up activity's context.
2. Those that contain a question used directly in a question_reference
belonging to the activity.
3. Those that contain a question used via a question_set_reference
belonging to the activity.
It also adds in any parent categories that are not included by the
above, so we have a complete hierarchy.

For group 1, the backup will include all questions belonging to these
categories, as before. For groups 2 and 3, it will only include
questions for question bank entries that have been annotated by the
activity.

12 days agoMDL-85069 qbank_bulkmove: Load banks and categories dynamically
Mark Johnson [Mon, 2 Jun 2025 12:49:28 +0000 (13:49 +0100)]
MDL-85069 qbank_bulkmove: Load banks and categories dynamically

The bulk move question dialogue presents 2 autocomplete fields for
selection of the target bank and category to move questions to. This was
loading all banks and categories the user could access, and filtering
categories based on the selected bank.

On large sites, this was not usable as there were too many banks and
categories to load leading to timeouts.

This refactors the dialogue to load just the current bank and cagtegory
initially, then load other options on demand via AJAX.

12 days agoMDL-85069 question: Services for question bank and category search
Mark Johnson [Thu, 29 May 2025 14:09:12 +0000 (15:09 +0100)]
MDL-85069 question: Services for question bank and category search

This updates the core_question_search_shared_banks external function
with additional parameters to make it applicable outside of the "Switch
bank" dialogue in the quiz, with the corresponding changes to the
question_banks_datasource Javascript module, and unit test coverage.

It also adds a new \core_question\output\question_category_selector
class for rendering a select list of question categories, migrating
the logic used in qbank_managecategories to a core namespace. There
is a fragment callback for rendering this via AJAX.

13 days agoMDL-85666 phpunit: add general plugin tests
Petr Skoda [Tue, 10 Jun 2025 09:12:27 +0000 (11:12 +0200)]
MDL-85666 phpunit: add general plugin tests

This defines new group which can be used
to limit execution of these tests to one plugin only.

For example to execute all tests for Label module use:

phpunit --testsuite=mod_label_testsuite
phpunit --group=plugin_checks --filter=mod_label

or

phpunit --filter=mod_label

13 days agoAutomatically generated installer lang files
AMOS bot [Wed, 2 Jul 2025 00:09:57 +0000 (00:09 +0000)]
Automatically generated installer lang files

13 days agoMDL-85721 qtype_numerical: Prevent duplication on restore
Mark Johnson [Thu, 12 Jun 2025 12:37:35 +0000 (13:37 +0100)]
MDL-85721 qtype_numerical: Prevent duplication on restore

If question_numerical record for a question has been deleted, when its
options are loaded its answers will not have a tolerance property. This
can lead to duplication.

Also, older questions may not have a question_numerical_options record.

To avoid this, we use 0 as a default tolerance for all answers if there
is no matching record, and do the same when reading the question
structure from backups. We also generate default values for the rest of
the options.

13 days agoMDL-85721 qtype: Cope with missing options records
Mark Johnson [Thu, 12 Jun 2025 12:32:20 +0000 (13:32 +0100)]
MDL-85721 qtype: Cope with missing options records

If we restore a question (or any other) which has had its
qtype_xxx_options record deleted, we get a notification output when we
try to build the options.

This may be called from an AJAX request (such as when we duplicate a
quiz), and outputting the notification breaks the AJAX response.
Returning false also means we don't get the answers attached to the
questiondata options, so the structure doesn't match the restored data,
and we get duplication.

This emits the errors via debugging instead, which allows it to be
supressed or logged, and allows get_question_options() to continue
running.

13 days agoMDL-85721 qtype_multianswer: Clean up duplicate subquestions
Mark Johnson [Tue, 10 Jun 2025 13:09:30 +0000 (14:09 +0100)]
MDL-85721 qtype_multianswer: Clean up duplicate subquestions

This adds an ad-hoc task to clean up duplicate subquestions created by
the bug.

When the upgrade is run, it will run a query to check if any
subquestions have been duplicated (if there are multiple questions with
the same parent, text and stamp), and queue the cleanup task if there
are.

For each stamp identified, the task will find instances of the question
that are not referred to in their parent's sequence field, confirm that
they have 0 usages, and delete them.

13 days agoMDL-85721 qtype_multichoice: Generate default options on restore
Mark Johnson [Mon, 9 Jun 2025 14:40:21 +0000 (15:40 +0100)]
MDL-85721 qtype_multichoice: Generate default options on restore

qtype_multichoice::get_question_options() will create a default options
object if no qtype_multichoice_options record exists. This means if we
restore a backup containing a multichoice question without any options
(see previous commit), it will always create a duplicate.

This change generates a default set of options for the backupdata if
none exists, so the identity hash will match if the same question exists
in the database without options, and we dont get duplicates.

13 days agoMDL-85721 qtype_multianswer: Don't delete qtype data for subquestions
Mark Johnson [Mon, 9 Jun 2025 14:37:16 +0000 (15:37 +0100)]
MDL-85721 qtype_multianswer: Don't delete qtype data for subquestions

Historically, multianswer would re-use question IDs from subquestions,
so it was necessary to delete qtype-specific data if the qtype changed.
Since versioning was introduced, editing creates new versions of the
qtype and subquestions. Deleting the data means the original versions of
the subquestions cannot function correctly, so we shouldn't do that
anymore.

2 weeks agoMDL-85069 question: Fix return URL parameters after moving questions
Mark Johnson [Thu, 29 May 2025 14:04:13 +0000 (15:04 +0100)]
MDL-85069 question: Fix return URL parameters after moving questions

When calling the core_question_move_questions external function, the
returned $returnurl paramater kept the original `cat`, `category` and
`lastchanged` parameters.

If the question was moved to another question bank, this meant the user
would be redirected to that bank, but the URL would still refer to the
category in the original bank. Opening the bulk move dialogue again
would then show the original bank and category selected by default, not
the current one.

This change ensures the cat parameter is updated to match the new
category, unsets the `category` parameter as it is redundant. If a single
question is moved, "lastchanged" is updated to that question, otherwise
it is unset.

2 weeks agoMDL-85069 qbank: Add tool_generator callback
Mark Johnson [Thu, 29 May 2025 13:59:07 +0000 (14:59 +0100)]
MDL-85069 qbank: Add tool_generator callback

This adds a callback for tool_generator and the required lang strings to
allow qbanks to be generated as part of test courses, by passing the
--additionalmodules=qbank argument to maketestcourse.php.

2 weeks agoMDL-85563 phpunit: Clock API should always use Moodle system time
Neill Magill [Thu, 22 May 2025 09:17:37 +0000 (10:17 +0100)]
MDL-85563 phpunit: Clock API should always use Moodle system time

When using `clock::now()` the frozen cloxk and incrementing clock will now
always return a `DateTimeImmutable` that uses the configured Moodle system
time. In unit tests this will be Australia/Perth.

Before this change, it would sometimes be UCT.

2 weeks agoMDL-85881 questions: Handle multi-byte names during migration
Mark Johnson [Mon, 30 Jun 2025 10:07:14 +0000 (11:07 +0100)]
MDL-85881 questions: Handle multi-byte names during migration

We were using strlen() instead of core_text::strlen() when checking the
length of a question bank name created during the migration. This meant
that multibyte strings were counted as being too long, even though they
were within the character limit.

2 weeks agoMDL-85779 block_timeline: fix/restore sort toggle dropdown behaviour.
Paul Holden [Sun, 29 Jun 2025 15:06:09 +0000 (23:06 +0800)]
MDL-85779 block_timeline: fix/restore sort toggle dropdown behaviour.

Changes during Bootstrap upgrade, in conjunction with both 8a8c8ab2 and
0c586b41, caused the layout to deviate from that expected elsewhere for
managing of Bootstrap dropdown elements. Thus the dynamically chosen
item was no longer being shown as selected. Fix that here.

2 weeks agoweekly release 5.0.1+
Huong Nguyen [Sun, 29 Jun 2025 09:18:33 +0000 (16:18 +0700)]
weekly release 5.0.1+

2 weeks agoMDL-85769 AI: Trap focus within AI drawer on smaller screens
meirzamoodle [Tue, 24 Jun 2025 02:07:18 +0000 (09:07 +0700)]
MDL-85769 AI: Trap focus within AI drawer on smaller screens

Co-authored-by: Laurent David <laurent.david@moodle.com>
2 weeks agoMDL-84487 mod_quiz: Use modal form for editing random questions
Mark Johnson [Tue, 17 Jun 2025 15:32:02 +0000 (16:32 +0100)]
MDL-84487 mod_quiz: Use modal form for editing random questions

Creating and editing random questions were using 2 different forms - one
dynamic form in a modal, and the other a regular form on a standalone
page. The "Switch bank" UI only works in a modal, so while it was
displayed on the edit page, it didn't function.

This combines the editing functionality with the existing modal form, so
the same UI can be used for both operations, and the "Switch bank"
functionality works.

2 weeks agoMDL-85665 mod_quiz: Behat to build quiz in single activity format course
andelacruz [Wed, 11 Jun 2025 09:21:03 +0000 (17:21 +0800)]
MDL-85665 mod_quiz: Behat to build quiz in single activity format course

2 weeks agoMDL-83752 workshop: Handle empty feedbackreviewer
Daniel Ziegenberg [Mon, 18 Nov 2024 17:00:42 +0000 (18:00 +0100)]
MDL-83752 workshop: Handle empty feedbackreviewer

Causes PHP warnings when null on PHP 8.1.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
3 weeks agoMDL-85734 calendar: support multilang group names.
Luca Bösch [Tue, 10 Jun 2025 14:16:39 +0000 (16:16 +0200)]
MDL-85734 calendar: support multilang group names.

3 weeks agoMDL-85466 course: space between number and course icon.
Luca Bösch [Tue, 20 May 2025 15:42:32 +0000 (17:42 +0200)]
MDL-85466 course: space between number and course icon.

3 weeks agoweekly release 5.0.1+
Huong Nguyen [Fri, 20 Jun 2025 08:14:19 +0000 (15:14 +0700)]
weekly release 5.0.1+

3 weeks agoMDL-85210 mod_qbank: Update question set references during upgrade
Mark Johnson [Tue, 3 Jun 2025 10:26:44 +0000 (11:26 +0100)]
MDL-85210 mod_qbank: Update question set references during upgrade

When moving question categories during the migration to mod_qbank, set
references using questions in those categories were not updated with the
new context.

Furthermore, since top categories from system, category and course
contexts are deleted and not moved, and set references that filtered
based on a top category were left pointing to a non-existant category.

This change updates set references using the top category to point to
the new top category where its subcategories are moved, and updates set
references for all subcategories to set the new context.

3 weeks agoMDL-85210 question: Update move_question_set_references
Mark Johnson [Tue, 3 Jun 2025 13:08:54 +0000 (14:08 +0100)]
MDL-85210 question: Update move_question_set_references

move_question_set_references expected the set reference to use the old
filter format.

This change converts the filter to the new format if required, before
updating the category and context ids.

3 weeks agoMDL-75947 ltiservice_gradebookservices: Fix unit test
Mihail Geshoski [Thu, 19 Jun 2025 08:15:36 +0000 (16:15 +0800)]
MDL-75947 ltiservice_gradebookservices: Fix unit test

Fixes the test_sequential_score_posts() unit test in lineitem_test
by removing dynamic class property assignments, which were triggering
deprecation notices.

3 weeks agoMDL-76414 navigation: Show 'Calendar' link in primary nav to guests
yusufwib01 [Wed, 4 Jun 2025 20:40:58 +0000 (03:40 +0700)]
MDL-76414 navigation: Show 'Calendar' link in primary nav to guests

3 weeks agoMDL-76342 core_output: Wrap buttons below heading on small screens
yusufwib01 [Wed, 11 Jun 2025 15:34:08 +0000 (22:34 +0700)]
MDL-76342 core_output: Wrap buttons below heading on small screens

3 weeks agoMDL-85514 core_form: support 'in' rule for multiselects via subset of
Jake Dallimore [Fri, 16 May 2025 02:17:10 +0000 (10:17 +0800)]
MDL-85514 core_form: support 'in' rule for multiselects via subset of

The 'in' rule currently behaves the same way that 'eq' does when used
with multi-selects, which is not correct. It should be modelled by
checking whether the selected values are a subset of the rule values
(i.e. selected values are 'in' the rule values). This patch implements
that for core form rules as well as for the admin settings show/hide.
Several behat features are updated as well, because these were verifying
the incorrect behaviour for multi-select in rules.

3 weeks agoMDL-85773 forms: Read-only selects must have static labels
Sebastian Gundersen [Thu, 12 Jun 2025 13:57:02 +0000 (15:57 +0200)]
MDL-85773 forms: Read-only selects must have static labels

This is to prevent labels with an invalid for attribute, referencing non-existing elements.

4 weeks agoMDL-85742 block_timeline: Fix active item indicator spacing
Luca Bösch [Wed, 11 Jun 2025 01:41:57 +0000 (03:41 +0200)]
MDL-85742 block_timeline: Fix active item indicator spacing

4 weeks agoMDL-85678 mod_feedback: a11y Behat coverage for Manage templates page
Jun Pataleta [Thu, 5 Jun 2025 10:24:58 +0000 (18:24 +0800)]
MDL-85678 mod_feedback: a11y Behat coverage for Manage templates page

4 weeks agoMDL-85678 mod_feedback: Fix a11y issues in the Manage templates page
Jun Pataleta [Thu, 5 Jun 2025 09:06:18 +0000 (17:06 +0800)]
MDL-85678 mod_feedback: Fix a11y issues in the Manage templates page

- Fix the heading hierarchy.
- Add a visually-hidden column header for the actions column.

4 weeks agoMDL-75947 ltiservice_gradebookservices: score->timestamp as dategraded
Jake Dallimore [Fri, 9 Aug 2024 05:55:43 +0000 (13:55 +0800)]
MDL-75947 ltiservice_gradebookservices: score->timestamp as dategraded

If this is not passed in to grade_update(), then it's not passed on to
update_raw_grade(), resulting in time() being used instead, which isn't
correct. The grade timemodified value should be set to the timestamp
provided by the tool in the score post JSON, not the time of the score
post itself.

Co-authored-by: Jayce Birrell <jayce.birrell@moodle.com>
4 weeks agoMDL-75947 ltiservice_gradebookservices: test sequential score posting
Jake Dallimore [Fri, 9 Aug 2024 07:09:54 +0000 (15:09 +0800)]
MDL-75947 ltiservice_gradebookservices: test sequential score posting

This tests highlights a problem with the score handling logic and
will currently fail. On score post, the current time is used for
grade->timemodified instead of the score->timestamp provided by the
tool in the POST JSON.

4 weeks agoAutomatically generated installer lang files
AMOS bot [Sun, 15 Jun 2025 00:09:55 +0000 (00:09 +0000)]
Automatically generated installer lang files

4 weeks agoweekly release 5.0.1+
Mihail Geshoski [Fri, 13 Jun 2025 06:43:27 +0000 (14:43 +0800)]
weekly release 5.0.1+

4 weeks agoNOBUG: Add upgrade notes
Mihail Geshoski [Fri, 13 Jun 2025 06:43:27 +0000 (14:43 +0800)]
NOBUG: Add upgrade notes

4 weeks agoMDL-84531 core: default deprecated attribute `$replacement` to null.
Paul Holden [Thu, 12 Jun 2025 13:39:51 +0000 (14:39 +0100)]
MDL-84531 core: default deprecated attribute `$replacement` to null.

4 weeks agoMDL-84752 qtype_essay: create accessible min/max words form elements.
Paul Holden [Thu, 6 Mar 2025 08:34:03 +0000 (08:34 +0000)]
MDL-84752 qtype_essay: create accessible min/max words form elements.

Because of historical requirements involving fieldsets in question
type forms (see 958e7671), we should use ARIA label attribute on
grouped elements rather than normal labels in order to make them
accessible.

Co-authored-by: Jun Pataleta <jun@moodle.com>
4 weeks agoMDL-72123 message: Add upgrade note
Huong Nguyen [Thu, 12 Jun 2025 02:21:40 +0000 (09:21 +0700)]
MDL-72123 message: Add upgrade note

4 weeks agoMDL-85700 theme_boost: Fix singleselect spacing
Mikel Martín [Fri, 6 Jun 2025 08:16:57 +0000 (10:16 +0200)]
MDL-85700 theme_boost: Fix singleselect spacing

- Fix single_select template adding gap between elements.

4 weeks agoMDL-82797 question engine: gift import fix
Justin Hunt [Sun, 13 Oct 2024 00:40:45 +0000 (09:40 +0900)]
MDL-82797 question engine: gift import fix

4 weeks agoMDL-84611 blocks: Respect instance_allow_multiple()
Stefan Hanauska [Wed, 11 Jun 2025 09:17:43 +0000 (11:17 +0200)]
MDL-84611 blocks: Respect instance_allow_multiple()

4 weeks agoMDL-84611 block_html: Change tests to respect capabilities
Stefan Hanauska [Wed, 11 Jun 2025 09:13:12 +0000 (11:13 +0200)]
MDL-84611 block_html: Change tests to respect capabilities

4 weeks agoMDL-85274 calendar: Duration limits added to forms
David Woloszyn [Tue, 27 May 2025 04:02:19 +0000 (14:02 +1000)]
MDL-85274 calendar: Duration limits added to forms

4 weeks agoMDL-85316 admin: Add environment check for AWS Aurora database
meirzamoodle [Fri, 23 May 2025 03:59:56 +0000 (10:59 +0700)]
MDL-85316 admin: Add environment check for AWS Aurora database

5 weeks agoMDL-85350 questions: skip restore test for certain 3rd party plugins
Philipp Imhof [Fri, 6 Jun 2025 13:20:04 +0000 (15:20 +0200)]
MDL-85350 questions: skip restore test for certain 3rd party plugins

The test_restore_course_with_same_stamp_questions() test assumes
that all question types using answers will also use the table
"question_answers" to store said answers. However, some 3rd party
qtypes might use custom tables and for those, the test would fail.

5 weeks agoMoodle release 5.0.1 v5.0.1
Mihail Geshoski [Fri, 6 Jun 2025 04:32:05 +0000 (12:32 +0800)]
Moodle release 5.0.1

5 weeks agoNOBUG: Add upgrade notes
Mihail Geshoski [Fri, 6 Jun 2025 04:32:05 +0000 (12:32 +0800)]
NOBUG: Add upgrade notes

5 weeks agoMDL-84976 tool_policy: noclean param was not set
Rajneel Totaram [Sun, 23 Mar 2025 09:47:29 +0000 (21:47 +1200)]
MDL-84976 tool_policy: noclean param was not set

5 weeks agoMDL-72123 message: Hide add to contacts button if user not allowed
yusufwib01 [Mon, 26 May 2025 18:25:23 +0000 (01:25 +0700)]
MDL-72123 message: Hide add to contacts button if user not allowed

5 weeks agoMDL-85683 enrol: use formatted course name for notification context.
Paul Holden [Thu, 5 Jun 2025 22:20:51 +0000 (23:20 +0100)]
MDL-85683 enrol: use formatted course name for notification context.

5 weeks agoweekly release 5.0+
Sara Arjona [Thu, 5 Jun 2025 14:43:29 +0000 (16:43 +0200)]
weekly release 5.0+

5 weeks agoNOBUG: Add upgrade notes
Sara Arjona [Thu, 5 Jun 2025 14:43:28 +0000 (16:43 +0200)]
NOBUG: Add upgrade notes

5 weeks agoMDL-83762 core_files: Bind resolve IPs and ports to cURL calls
Michael Hawkins [Fri, 14 Feb 2025 07:18:26 +0000 (15:18 +0800)]
MDL-83762 core_files: Bind resolve IPs and ports to cURL calls

5 weeks agoMDL-84518 course: improved course visibility state handling
Vincent Schneider [Tue, 13 May 2025 15:51:53 +0000 (17:51 +0200)]
MDL-84518 course: improved course visibility state handling

5 weeks agoMDL-80380 core_auth: Add upgrade note
Huong Nguyen [Wed, 21 May 2025 04:14:40 +0000 (11:14 +0700)]
MDL-80380 core_auth: Add upgrade note

5 weeks agoMDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email
Huong Nguyen [Tue, 20 May 2025 01:34:56 +0000 (08:34 +0700)]
MDL-80380 admin: Support Microsoft XOAUTH2 for outgoing email

5 weeks agoMDL-85488 mathjax: refactor loader to enhance configuration and loading
Martin Gauk [Fri, 16 May 2025 17:07:14 +0000 (19:07 +0200)]
MDL-85488 mathjax: refactor loader to enhance configuration and loading

5 weeks agoMDL-85323 core: Don't cache the login page
Mark Johnson [Fri, 2 May 2025 15:39:22 +0000 (16:39 +0100)]
MDL-85323 core: Don't cache the login page

5 weeks agoMDL-85375 libraries: Escaping a query parameter on pg_insert_id()
meirzamoodle [Tue, 20 May 2025 02:48:29 +0000 (09:48 +0700)]
MDL-85375 libraries: Escaping a query parameter on pg_insert_id()

5 weeks agoMDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks
Vincent Schneider [Fri, 11 Apr 2025 19:23:51 +0000 (21:23 +0200)]
MDL-84706 bigbluebuttonbn: improved authorization and mitigate CSRF risks

5 weeks agoMDL-79993 course: Fix PHPUnit failure
Huong Nguyen [Wed, 14 May 2025 05:18:32 +0000 (12:18 +0700)]
MDL-79993 course: Fix PHPUnit failure

5 weeks agoMDL-79993 course: Improve user access to recent courses service
raortegar [Tue, 29 Apr 2025 07:10:15 +0000 (09:10 +0200)]
MDL-79993 course: Improve user access to recent courses service

5 weeks agoMDL-84497 badges: fix missing action sesskey checks.
Vincent Schneider [Fri, 11 Apr 2025 09:10:49 +0000 (11:10 +0200)]
MDL-84497 badges: fix missing action sesskey checks.

5 weeks agoMDL-85645 mod_quiz: Behat to display questionbank name of quiz question.
andelacruz [Wed, 4 Jun 2025 06:14:04 +0000 (14:14 +0800)]
MDL-85645 mod_quiz: Behat to display questionbank name of quiz question.

5 weeks agoMDL-85239 mod_quiz: Use visually-hidden instead of deprecated sr-only
Jun Pataleta [Thu, 5 Jun 2025 01:25:34 +0000 (09:25 +0800)]
MDL-85239 mod_quiz: Use visually-hidden instead of deprecated sr-only

5 weeks agoMDL-84804 output: amend page title when navigating dynamic tabs.
Paul Holden [Wed, 4 Jun 2025 12:14:07 +0000 (13:14 +0100)]
MDL-84804 output: amend page title when navigating dynamic tabs.

Prepend the current tab name to the page title, to ensure we can
easily identify the current page/tab and that it is both unique
and accessible.

5 weeks agoMDL-84804 javascript: new module for manipulating the page title.
Paul Holden [Wed, 4 Jun 2025 12:13:22 +0000 (13:13 +0100)]
MDL-84804 javascript: new module for manipulating the page title.

5 weeks agoMDL-85041 core: Make methods calling `announceChanges` async as well
Jun Pataleta [Fri, 30 May 2025 05:17:33 +0000 (13:17 +0800)]
MDL-85041 core: Make methods calling `announceChanges` async as well

5 weeks agoMDL-85041 core: Improve autocomplete/tag a11y for assistive tech
meirzamoodle [Tue, 13 May 2025 08:50:50 +0000 (15:50 +0700)]
MDL-85041 core: Improve autocomplete/tag a11y for assistive tech

- Updated autocomplete behavior to announce dynamic changes
via ARIA live regions
- Fixed focus management for keyboard and screen reader navigation
- Added proper role/aria tags for interactive tag components

5 weeks agoMDL-85200 mod_quiz: Improve efficience of populate_question_sources
Mark Johnson [Tue, 3 Jun 2025 15:34:12 +0000 (16:34 +0100)]
MDL-85200 mod_quiz: Improve efficience of populate_question_sources

This uses the contexts from the categories of questions in the quiz to
narrow down the list of course modules we are querying to just those we
will need.

5 weeks agoMDL-85200 mod_quiz: Expand behat test to cover shared bank display
Mark Johnson [Tue, 3 Jun 2025 15:32:49 +0000 (16:32 +0100)]
MDL-85200 mod_quiz: Expand behat test to cover shared bank display

This extends the existing behat test for adding a question from a shared
bank to confirm that the source bank is displayed with the question on
the Questions page.

The bank name is already passed through format_string() before being
passed to the template, so additional encoding by the template is not
necessary, hence the template has been changed to use triple braces.

5 weeks agoMDL-85571 mod_assign: Improve PHPUnit tests
Huong Nguyen [Wed, 4 Jun 2025 02:44:09 +0000 (09:44 +0700)]
MDL-85571 mod_assign: Improve PHPUnit tests

5 weeks agoMDL-85571 mod_assign: Add visibility check to due digest notification
raortegar [Tue, 27 May 2025 08:12:37 +0000 (10:12 +0200)]
MDL-85571 mod_assign: Add visibility check to due digest notification