Huong Nguyen [Tue, 13 Jan 2026 03:18:36 +0000 (10:18 +0700)]
Merge branch 'MDL-87444-main' of https://github.com/roland04/moodle
Huong Nguyen [Tue, 13 Jan 2026 03:15:36 +0000 (10:15 +0700)]
Merge branch 'MDL-87443' of https://github.com/paulholden/moodle
Huong Nguyen [Mon, 12 Jan 2026 08:46:03 +0000 (15:46 +0700)]
Merge branch 'MDL-87229-main' of https://github.com/lucaboesch/moodle
Huong Nguyen [Mon, 12 Jan 2026 08:27:01 +0000 (15:27 +0700)]
Merge branch 'MDL-87056' of https://github.com/paulholden/moodle
Huong Nguyen [Mon, 12 Jan 2026 08:23:51 +0000 (15:23 +0700)]
Merge branch 'MDL-86565' of https://github.com/paulholden/moodle
Huong Nguyen [Mon, 12 Jan 2026 08:01:48 +0000 (15:01 +0700)]
Merge branch 'MDL-87120' of https://github.com/paulholden/moodle
Amaia Anabitarte [Wed, 14 Jan 2026 08:45:14 +0000 (09:45 +0100)]
MDL-87283 core_course: Create a new page for restricted activities
Only the activities with visible restrictions will be available.
Amaia Anabitarte [Wed, 14 Jan 2026 08:44:14 +0000 (09:44 +0100)]
MDL-87283 core: Add new path_module parameter type for routing
AMOS bot [Thu, 15 Jan 2026 00:08:11 +0000 (00:08 +0000)]
Automatically generated installer lang files
Paul Holden [Mon, 12 Jan 2026 17:44:56 +0000 (17:44 +0000)]
MDL-87634 core: exclude fixtures from Github actions "one-by-one" job.
This is consistent with the PHPUnit general configuration in
20aa9d05.
Yerai Rodríguez [Fri, 9 Jan 2026 15:34:38 +0000 (16:34 +0100)]
MDL-76975 admin: Move AMD dependencies to data attribute to fix overflow
Since there is a 1024 length limit on arguments passed through
js_call_amd(), we pass it through a HTML element dataset to avoid
this limit.
meirzamoodle [Tue, 13 Jan 2026 13:48:18 +0000 (20:48 +0700)]
MDL-87425 core_output: Remove the question/qengine.js
meirzamoodle [Tue, 13 Jan 2026 13:48:18 +0000 (20:48 +0700)]
MDL-87425 core_navigation: Remove the deprecated class file
meirzamoodle [Tue, 13 Jan 2026 13:48:18 +0000 (20:48 +0700)]
MDL-87425 core: Remove the deprecated code
meirzamoodle [Tue, 13 Jan 2026 13:48:18 +0000 (20:48 +0700)]
MDL-87425 general: Remove the deprecated code
Guest [Mon, 22 Dec 2025 09:04:55 +0000 (14:34 +0530)]
MDL-87478 mod_quiz: Make pre-create attempts work with previews
Yusuf Wibisono [Tue, 13 Jan 2026 09:56:27 +0000 (16:56 +0700)]
MDL-87528 admin: Password visibility enabled by default
AMOS bot [Tue, 13 Jan 2026 00:08:12 +0000 (00:08 +0000)]
Automatically generated installer lang files
Andrew Nicols [Mon, 12 Jan 2026 02:06:42 +0000 (10:06 +0800)]
MDL-87625 core: Use the /r.php basepath to guess routes
Paul Holden [Mon, 12 Jan 2026 17:21:05 +0000 (17:21 +0000)]
MDL-87635 backup: ensure required test libraries are loaded.
Huong Nguyen [Mon, 12 Jan 2026 06:42:08 +0000 (13:42 +0700)]
Merge branch 'mdl-85530_main' of https://github.com/james-cnz/moodle
Huong Nguyen [Mon, 12 Jan 2026 06:40:42 +0000 (13:40 +0700)]
Merge branch 'mdl-86959_main' of https://github.com/james-cnz/moodle
Simey Lameze [Mon, 12 Jan 2026 04:10:11 +0000 (12:10 +0800)]
MDL-87088 behat: add missing @javascript tags to required tests
Huong Nguyen [Mon, 12 Jan 2026 02:53:07 +0000 (09:53 +0700)]
Merge branch 'MDL-87088-main' of https://github.com/andelacruz/moodle
Andrew Nicols [Mon, 12 Jan 2026 02:50:12 +0000 (10:50 +0800)]
Merge branch 'MDL-87423-main' of https://github.com/meirzamoodle/moodle
Huong Nguyen [Mon, 12 Jan 2026 02:43:04 +0000 (09:43 +0700)]
Merge branch 'MDL-86058-allow-enable-disable-tasks-from-cli-with-pending-upgrade' of https://github.com/duyhuynhdev/moodle
Angelia Dela Cruz [Mon, 1 Dec 2025 02:45:40 +0000 (10:45 +0800)]
MDL-87070 mod_glossary: Behat to confirm glossary autolinking works
Simey Lameze [Mon, 12 Jan 2026 00:32:22 +0000 (08:32 +0800)]
MDL-87636 core: bump postgres version to 16
Paul Holden [Fri, 12 Dec 2025 11:37:34 +0000 (11:37 +0000)]
MDL-87263 reportbuilder: simplify entity element loading in reports.
Paul Holden [Thu, 4 Dec 2025 16:46:44 +0000 (16:46 +0000)]
MDL-87263 reportbuilder: observe entity order when adding multiple.
Ensure the order in which entities are passed from the datasource is
observed when adding all/multiple. Continuation of work originally done
in
9a8091d5.
Paul Holden [Thu, 11 Dec 2025 17:51:06 +0000 (17:51 +0000)]
MDL-87443 reportbuilder: use Toast selector in Behat scenarios.
Paul Holden [Thu, 11 Dec 2025 17:31:11 +0000 (17:31 +0000)]
MDL-87443 behat: define new Toast message named selector.
Mark Johnson [Fri, 9 Jan 2026 10:39:28 +0000 (10:39 +0000)]
MDL-87287 qbank_deletequestion: Update behat test for tag deletion
Now that deleting a tagged question correctly deletes it tag instances,
the tag is no longer available for re-selection after all the tagged
questions are deleted.
Mark Johnson [Fri, 28 Nov 2025 11:08:59 +0000 (11:08 +0000)]
MDL-87287 mod_qbank: De-duplicate tags when migrating questions
In the migration from old-style question banks to mod_qbank, if a
question had the same tag from multiple contexts, when it was moved to
its new question bank context, the migration tried to set multiple tag
instances for the same tag to the same context, which caused a unique
key violation.
This add some checking to the
`question_move_question_tags_to_new_context` function to identify any
tag instances to be moved that will trigger this key violation, and
delte any duplicates before the move so we end up with a single instance
of the tag in the new context. This is done in a transaction that will
only be committed once the remaining tags have been moved.
This required adding the `tiuserid` field to the data returned by
`core_tag_tag::get_items_tag` so we can assemble the unique key without
having to do additional queries.
This also extends the test coverage for the `transfer_questions` task
to ensure tags are moved to the new contexts, and tags on stale questions
are deleted.
Mark Johnson [Fri, 28 Nov 2025 11:01:21 +0000 (11:01 +0000)]
MDL-87287 qbank_tagquestion: Remove all tags from deleted questions
When we deleted a question, we were including the userid of the user who
performed the delete when checking for question tags. This means that if
user A tagged the question, and user B deleted the question, it might
leave the tags behind.
This fixes the issue by deleting tags regardless of the user, and adds
an upgrade step to find and remove orphaned tag instances.
Yusuf Wibisono [Thu, 8 Jan 2026 09:48:39 +0000 (16:48 +0700)]
MDL-87527 admin: New installs enable email login by default
Luca Bösch [Tue, 18 Nov 2025 10:46:23 +0000 (11:46 +0100)]
MDL-87229 course: Show nice "Other users" table in courses.
Jayce Birrell [Thu, 20 Nov 2025 00:22:55 +0000 (10:52 +1030)]
MDL-50364 forms: calendar header renderer uses translated months
Angelia Dela Cruz [Thu, 4 Dec 2025 04:41:36 +0000 (12:41 +0800)]
MDL-87088 core_grades: Behat to view grades from user menu
Huong Nguyen [Fri, 9 Jan 2026 01:40:59 +0000 (08:40 +0700)]
weekly release 5.2dev
Huong Nguyen [Fri, 9 Jan 2026 01:40:58 +0000 (08:40 +0700)]
NOBUG: Add upgrade notes
Huong Nguyen [Fri, 9 Jan 2026 01:40:32 +0000 (08:40 +0700)]
Merge branch 'install_main' of https://git.in.moodle.com/amosbot/moodle-install
Marty [Wed, 10 Sep 2025 19:19:56 +0000 (15:19 -0400)]
MDL-86423 mod_assign: Reduce duesoon/overdue notifications.
Students shouldn't receive overdue notifications if there is nothing to
submit in Moodle.
Students shouldn't receive due soon notifications if they a) already
have a grade or b) meet activity completion status.
Paul Holden [Tue, 11 Nov 2025 11:29:03 +0000 (11:29 +0000)]
MDL-87120 course: observe activity dates display in course requests.
Upgrade step to ensure the default value for this field in the schema
matches the default value used in the interface itself.
Paul Holden [Wed, 7 Jan 2026 14:27:44 +0000 (14:27 +0000)]
MDL-87608 javascript: fix public paths in generated jsconfig file.
This partly reverts changes from
31335206, removing the double public/
directory component of the file paths.
Mikel Martín [Fri, 12 Dec 2025 14:42:02 +0000 (15:42 +0100)]
MDL-87444 reportbuilder: Fix button icons UI
Mikel Martín [Mon, 15 Dec 2025 16:17:34 +0000 (17:17 +0100)]
MDL-87444 core: Add 'extraclasses' param to drag_handle
Add new 'extraclasses' parameter to drag_handle template. That will help
to customise the button sizing and extra styles.
Mikel Martín [Fri, 12 Dec 2025 14:15:08 +0000 (15:15 +0100)]
MDL-87444 theme_boost: Adjust icon sizes
The iconsizes map value `1` was extremely small and unusable, so values `1` and `2` have been
updated to provide usable icon sizes in the UI.
Safat [Wed, 7 Jan 2026 05:27:09 +0000 (16:27 +1100)]
Merge branch 'MDL-87406-main' of https://github.com/ericmerrill/moodle
Safat [Wed, 7 Jan 2026 05:15:39 +0000 (16:15 +1100)]
Merge branch 'MDL-67733-main' of https://github.com/HuongNV13/moodle
Andrew Nicols [Wed, 7 Jan 2026 05:07:41 +0000 (13:07 +0800)]
Merge branch 'MDL-82284-main' of https://github.com/meirzamoodle/moodle
Jun Pataleta [Wed, 7 Jan 2026 03:18:18 +0000 (11:18 +0800)]
Merge branch 'MDL-86436-navigation-accessibility-page-heading-menu-visible-on-larger-screens-even-if-empty' of https://github.com/stopfstedt/moodle
Jun Pataleta [Wed, 7 Jan 2026 03:14:05 +0000 (11:14 +0800)]
Merge branch 'MDL-87416-glossary-entry-page-title-missing' of https://github.com/stopfstedt/moodle
Martin Gauk [Mon, 18 Aug 2025 16:00:38 +0000 (18:00 +0200)]
MDL-86342 mod_assign: Allow subplugins to backup data at activity-level
Muhammad Arnaldo [Mon, 5 Jan 2026 03:43:10 +0000 (10:43 +0700)]
MDL-86346 core: update the use of ArrayLoader namespace
The Mustache library just got updated to version 3 recently.
The changes include update to psr-4. Hence, we update
the call to the class ArrayLoader.
Adrian Greeve [Tue, 6 Jan 2026 01:04:49 +0000 (09:04 +0800)]
Merge branch 'MDL-87526-main' of https://github.com/andrewnicols/moodle
Stefan Topfstedt [Sat, 6 Dec 2025 00:22:06 +0000 (16:22 -0800)]
MDL-87416 glossary: set page title on glossary entry details page.
Mark Johnson [Mon, 5 Jan 2026 11:28:50 +0000 (11:28 +0000)]
MDL-85431 questions: Fix access checks on Question banks page
Users who could not manage activities on a course, but did have
permission to access particular question banks, could not access the
Question banks page.
This modifies the permission checks on that page to allow access if the
user can either manage activities, or has access to at least one
activity that publishes questions. Some additional changes to the output
were required to prevent non-editing users adding banks.
It also modifies the navigation hook to add the Question banks
navigation node if the user can access any activitiy that publishes
questions on the course. This is all based on cached modinfo and
permissions data so should remain performant.
Paul Holden [Mon, 5 Jan 2026 14:24:30 +0000 (14:24 +0000)]
Merge branch 'MDL-87529' of https://github.com/yerairogo/moodle
Paul Holden [Mon, 5 Jan 2026 10:09:25 +0000 (10:09 +0000)]
MDL-87251 tool_uploadcourse: update scenarios for self-enrol title.
Paul Holden [Mon, 5 Jan 2026 09:59:59 +0000 (09:59 +0000)]
Merge branch 'MDL-87251-main' of https://github.com/roland04/moodle
Paul Holden [Mon, 5 Jan 2026 09:46:51 +0000 (09:46 +0000)]
Merge branch 'MDL-87288-main' of https://github.com/ilyatregubov/moodle
AMOS bot [Sat, 3 Jan 2026 00:08:09 +0000 (00:08 +0000)]
Automatically generated installer lang files
Mark Johnson [Tue, 18 Nov 2025 14:10:22 +0000 (14:10 +0000)]
MDL-73602 questions: Remove qtype_random
Mark Johnson [Wed, 19 Nov 2025 16:34:17 +0000 (16:34 +0000)]
MDL-73602 quiz: Remove all qtype_random references
This removes the use of the "random" qtype for random questions from the
quiz module. Instead, the quiz structure now idenfies slots containing
random questions using a `random` boolean field on the slot.
This includes some amendments to statistics classes in the core_question
namespace, as they ultimately get their question data from
mod/quiz/report/reportlib.php
It also introduces a proper (if limited) way to add random questions in
behat tests.
Mark Johnson [Tue, 18 Nov 2025 16:32:39 +0000 (16:32 +0000)]
MDL-73602 quiz: Restore random tag filters to new format
As we are now creating set references using the modern filtercondition
format, this ensures legacy tag filters are also converted directly to
the new format.
We no longer need the tag name as part of this, only the ID, so we have
factored the name out of `process_quiz_slot_tags`.
Andrew Nicols [Tue, 25 Jun 2024 01:55:46 +0000 (09:55 +0800)]
MDL-82284 core: Remove all PHP5 constructors
meirzamoodle [Thu, 25 Dec 2025 04:09:57 +0000 (11:09 +0700)]
MDL-87423 core: Remove the deprecated functions
James C [Tue, 30 Dec 2025 04:38:46 +0000 (17:38 +1300)]
MDL-85530 course: Improve PHPDoc types for course format code
James C [Tue, 30 Dec 2025 04:37:37 +0000 (17:37 +1300)]
MDL-86959 course: Improve PHPDoc types for course code
Sara Arjona [Mon, 29 Dec 2025 13:51:30 +0000 (14:51 +0100)]
Merge branch 'MDL-87280-main' of https://github.com/sarjona/moodle
Huong Nguyen [Mon, 29 Dec 2025 06:51:34 +0000 (13:51 +0700)]
Merge branch 'MDL-81882-main' of https://github.com/yusufwib01/moodle
Huong Nguyen [Mon, 29 Dec 2025 06:45:41 +0000 (13:45 +0700)]
Merge branch 'MDL-86346-main' of https://github.com/muhammadarnaldo/moodle
Matt Porritt [Fri, 14 Mar 2025 04:13:51 +0000 (15:13 +1100)]
MDL-84862 AI: Stop provider instance creataion when no provider plugins
Prevents calls to action to create an AI provider instance from
being displayed to users when there are no AI provider plugins
installed in the instance.
Co-Authored-By: Yusuf Wibisono <yusuf.wibisono@moodle.com>
Muhammad Arnaldo [Mon, 1 Dec 2025 04:54:57 +0000 (11:54 +0700)]
MDL-86346 lib: Update mustache helper after upgrade
- Update component file, moved mustache from psr-0 to psr-4 section
- Update mustache helpers
- Update mustache related tests
Huong Nguyen [Mon, 29 Dec 2025 02:54:25 +0000 (09:54 +0700)]
Merge branch 'MDL-87433-main' of https://github.com/muhammadarnaldo/moodle
AMOS bot [Sat, 27 Dec 2025 00:08:11 +0000 (00:08 +0000)]
Automatically generated installer lang files
AMOS bot [Fri, 26 Dec 2025 00:08:07 +0000 (00:08 +0000)]
Automatically generated installer lang files
Muhammad Arnaldo [Wed, 24 Dec 2025 08:47:54 +0000 (15:47 +0700)]
MDL-87433 course: Add sorting to get_nearest_editable_subcategory
Add ORDER BY to the query to ensure categories are returned in
consistent order. This fixes random test failures, especially
on PostgreSQL.
Mark Johnson [Tue, 18 Nov 2025 16:30:25 +0000 (16:30 +0000)]
MDL-73602 questions: Prevent restore of qtype_random questions
This completely removes the step of creating a question with qtype
'random' during the restore process.
Previously, we would create the question bank entry, question version
and question record, then rely on the activity using it to convert it to
a question set reference and delete it. If the activity was never
restored, the question remained in the database.
Now, we store the random question data in a temporary record. The
activity still converts this to a set reference, and now directly to the
new filter condition format. The temporary record will automatically be
cleaned up after the restore.
If the restore process attempts to create a question record with qtype
'random', this will now throw a coding exception as this must never
happen.
Yerai Rodríguez [Tue, 23 Dec 2025 12:26:46 +0000 (13:26 +0100)]
MDL-87529 core_customfield: reset CF handler cache after form save
Alex Keel [Tue, 23 Dec 2025 12:28:35 +0000 (12:28 +0000)]
MDL-86869 gradereport_singleview: Raises memory limit
Amaia Anabitarte [Tue, 23 Dec 2025 10:37:53 +0000 (11:37 +0100)]
Merge branch 'MDL-87279-main' of https://github.com/sarjona/moodle
Mihail Geshoski [Tue, 23 Dec 2025 08:58:28 +0000 (16:58 +0800)]
Merge branch 'MDL-84987_main' of https://github.com/marxjohnson/moodle
Mihail Geshoski [Tue, 23 Dec 2025 08:51:33 +0000 (16:51 +0800)]
Merge branch 'MDL-85649_main' of https://github.com/marxjohnson/moodle
Mihail Geshoski [Tue, 23 Dec 2025 08:46:57 +0000 (16:46 +0800)]
Merge branch 'MDL-86995-main' of https://github.com/sh-csg/moodle
Mihail Geshoski [Tue, 23 Dec 2025 08:09:28 +0000 (16:09 +0800)]
Merge branch 'MDL-86798_main' of https://github.com/marxjohnson/moodle
Sara Arjona [Fri, 12 Dec 2025 11:46:28 +0000 (12:46 +0100)]
MDL-87280 subsection: Add task to remove existing descriptions
Sara Arjona [Mon, 1 Dec 2025 09:41:20 +0000 (10:41 +0100)]
MDL-87279 course: Remove edit description for delegated sections
Sara Arjona [Tue, 23 Dec 2025 05:48:42 +0000 (06:48 +0100)]
Merge branch 'MDL-83115-main' of https://github.com/aanabit/moodle
Andrew Nicols [Tue, 23 Dec 2025 03:45:09 +0000 (11:45 +0800)]
MDL-87526 core: Moodle provides moodle/lms
Mark Johnson [Fri, 11 Jul 2025 08:00:13 +0000 (09:00 +0100)]
MDL-85649 questions: Show question count in the question banks page
This displays a badge next to each question bank with a count of the
question it contains. The counts are loaded asynchrnously to avoid
adding extra queries to the page load.
Amaia Anabitarte [Wed, 19 Nov 2025 15:49:16 +0000 (16:49 +0100)]
MDL-83115 course_format: Improve format does not support sections error
Laurent David [Wed, 15 Oct 2025 10:47:28 +0000 (12:47 +0200)]
MDL-86854 core_course: refactor moveto_module other usages
Laurent David [Tue, 14 Oct 2025 08:46:26 +0000 (10:46 +0200)]
MDL-86854 core_courseformat: cm_move to use cmactions methods
Laurent David [Tue, 14 Oct 2025 06:36:33 +0000 (08:36 +0200)]
MDL-86854 core_courseformat: Add move_before logic by cmactions
Stefan Hanauska [Wed, 5 Nov 2025 13:08:15 +0000 (14:08 +0100)]
MDL-86995 mod_forum: Allow ignoring maxeditingtime for qanda forum
Mark Johnson [Thu, 11 Dec 2025 11:19:09 +0000 (11:19 +0000)]
MDL-86798 questions: Check original context is on the same site
When checking if the original context exists during a restore, we need
to check that we're looking at the context on the same site, not one on
a different site that happens to have the same ID.
Mark Johnson [Fri, 14 Nov 2025 11:08:17 +0000 (11:08 +0000)]
MDL-86798 questions: Track next version for question bank entries
This adds a new "nextversion" field to `question_bank_entries` to track
which version number the next version of the question should have. This
ensures that version numbers are not re-used if the latest version is
deleted.
To use this field, you must call
`\core_question\versions::get_next_version()`. This will initialise the
field to the correct value if it is currently null.
If you create a new version using this value, you must then call
`\core_question\versions::increment_next_version()` to increment the
counter.
Mark Johnson [Thu, 13 Nov 2025 09:12:49 +0000 (09:12 +0000)]
MDL-86798 questions: Restore backups containing deleted versions
If the latest version of a question is deleted, and then a new one
created, the new one will currently re-use the version number of the
deleted version. If the original version was backed up before it was
deleted, then restored later, we end up with two questions in one
question bank entry that have the same version.
To resolve this, when restoring a question, we check if there is already
a version with the same version number, then bump it and any higher
versions up by 1. We also check for any references specifically using
these versions and bump those up by 1. Any references using "always
latest" will be fine, as the latest version will still be the latest.
Additionally, if deleting a version made it hidden, and the backup
contains the same version in "ready" state, restoring the backup will
restore it to "ready" state.