Compare commits

...

4756 Commits

Author SHA1 Message Date
Shamim Rezaie 91e6642f16 Moodle release 4.2.2 2023-08-11 23:20:32 +10:00
Jun Pataleta 62169983fd MDL-78983 core: Preserve default behaviour of flipping question icon
Introduce a lang string `questioniconfollowlangdirection` that will
allow the current behaviour of displaying the question mark icon
in RTL languages in the same manner as the current language.
2023-08-11 16:10:47 +07:00
Huong Nguyen 459659ce89 Merge branch 'MDL-78983-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-08-11 12:53:23 +07:00
Jun Pataleta 18e34acffb MDL-78983 core: Fix question mark icon direction flipping
This fixes the changes made in MDL-75047:
* Change `thisicondirection` langconfig string to a more specific one
  like `questionicondirection`.
* Use existing direction string value `ltr` for the value of
  `questionicondirection`. Also add a comment to at least provide some
  form of documentation for it.
* Improve the logic for applying the horizontal flipping class for the
  question icon:
  - Check first if the icon is a question icon
  - Flip the icon if `questionicondirection` is set to `rtl`.
2023-08-11 11:48:02 +08:00
Huong Nguyen 571777775e weekly release 4.2.1+ 2023-08-10 22:50:48 +07:00
Huong Nguyen 4945852c97 Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-08-10 22:50:46 +07:00
Ilya Tregubov a15550e7ff MDL-78790 gradereport_grader: Fix sorting. 2023-08-10 18:43:20 +07:00
meirzamoodle 61bc6ed948 MDL-78685 auth_oauth2: Added logged-in status check 2023-08-10 18:43:20 +07:00
Jun Pataleta 9e32013053 Merge branch 'MDL-78957_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-08-10 18:43:20 +07:00
Jun Pataleta 76420650aa Merge branch 'MDL-78962_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-08-10 18:43:20 +07:00
Jun Pataleta 922cc4d23e Merge branch 'MDL-77817-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-08-10 18:43:18 +07:00
Jun Pataleta 8cf476dc6d Merge branch 'MDL-78674-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-08-10 18:42:58 +07:00
Ilya Tregubov dc9c9d16f4 Merge branch 'MDL-78939-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-10 18:42:58 +07:00
Paul Holden 0923a3979e MDL-78790 gradereport_grader: normalise report sort parameter safely. 2023-08-10 18:42:58 +07:00
Paul Holden e6eb379544 MDL-78871 gradereport_grader: capability check getting report users. 2023-08-10 18:42:58 +07:00
Sara Arjona 59f6c64947 Merge branch 'MDL-76123-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-10 18:42:57 +07:00
Jun Pataleta 5aac33d755 Merge branch 'MDL-77378_402_v3' of https://github.com/TomoTsuyuki/moodle into MOODLE_402_STABLE 2023-08-10 18:42:57 +07:00
Michael Hawkins 82c04ab972 MDL-78763 tool_policy: Initialise returnurl as a moodle_url in viewall 2023-08-10 18:42:57 +07:00
Paul Holden 5047ae82f9 MDL-78792 message: access checks in processor fragment callback. 2023-08-10 18:42:57 +07:00
raortegar 3ef202da9c MDL-74289 lib: Improve the proxy bypass matching 2023-08-10 18:42:52 +07:00
Jun Pataleta fd65fe1bdf MDL-78674 calendar: No need to call get_course_and_cm_from_instance()
The course ID and CM id can already be fetched from the event object.
2023-08-10 09:37:58 +08:00
Santosh Nagargoje 9ffdcf3da1 MDL-78674 calendar: Added fix to rebuild module cache in calendar 2023-08-10 09:37:58 +08:00
Tim Hunt 8905ebffb7 MDL-78962 core/loadingicon: remove jQuery requirement in the API 2023-08-09 21:17:05 +01:00
Eloy Lafuente (stronk7) a3ed617072 MDL-78957 libraries: Fix php82 undefined property deprecation
This was detected only in master (4.3dev) because MDL-40084
added a unit test covering it. But the very same patch is
needed in 402_STABLE, no matter it's not covered there.
2023-08-09 15:26:58 +02:00
Paul Holden e3d93edc6d MDL-78647 files: safer unserializing of file reference data. 2023-08-09 04:53:19 +00:00
Shamim Rezaie 6f93f45c53 MDL-66212 tool_lpimport: properly check capabilities
The moodle/competency:competencymanage capability should be checked
before showing the import and export pages.
2023-08-09 04:53:19 +00:00
Matt Porritt d043d3daf7 MDL-78340 Blocks: Dashboards now respect block permission overrides
Patch makes user dashboard respect permission overrides
that have been set on individual blocks on the system
dashboard (indexsys.php). When a user dashboard is created
either when the user visits their dashboard for the first
time or after an admin reset. When blcoks are copied to
the new dashbaord overriden permissions are also copied.
2023-08-09 04:53:19 +00:00
Rajneel Totaram c85b2a4566 MDL-71728 mod_quiz: check if user can access this page 2023-08-09 04:53:19 +00:00
Huong Nguyen 1933e6a39f Merge branch 'MDL-78904-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-08-09 11:42:56 +07:00
Huong Nguyen 68366595f2 Merge branch 'MDL-75047-MOODLE_402_STABLE' of https://github.com/SysBind/moodle into MOODLE_402_STABLE 2023-08-09 11:30:15 +07:00
Jun Pataleta a8e8576e0b Merge branch 'MDL-78872-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-09 12:10:23 +08:00
Ilya Tregubov a14e8aaae7 Merge branch 'MDL-78714-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-08-09 12:05:05 +08:00
Huong Nguyen 1b05063d00 Merge branch 'MDL-78235-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-08-09 10:43:03 +07:00
Ilya Tregubov ae4ae605b4 Merge branch 'MOODLE_402_STABLE_MDL-78860' of https://github.com/mattporritt/moodle into MOODLE_402_STABLE 2023-08-09 09:43:08 +08:00
Andrew Nicols 9de452c011 MDL-78714 editor_tiny: Disable HTML Sanitisation in TinyMCE
This is in keeping with other Editors such as Atto and resolves an issue
where DOM Purification incorrectly identifies HTML-like string content
as an HTML tag with a JS variable.

Moodle already performs XSS sanitisation using HTML Purifier in PHP.
2023-08-09 09:07:04 +08:00
Andrew Nicols ff9d561d82 MDL-78714 editor_tiny: Add xss_sanitize option to TinyMCE
To address a potential data loss issue, a feature introduced in TinyMCE
6.4.0 to disable client-side XSS sanitisation must be backported.
2023-08-09 09:05:25 +08:00
Andrew Nicols 5acae49336 MDL-78714 editor_tiny: Move TinyMCE import instructions to correct path 2023-08-09 09:05:23 +08:00
Huong Nguyen c5f9df8d11 Merge branch 'MDL-78492_aurora_mysql_rowformat_402' of https://github.com/mark-webster-catalyst/moodle into MOODLE_402_STABLE 2023-08-08 21:42:59 +07:00
Sara Arjona 08d97e4b30 Merge branch 'MDL-78770-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-08-08 13:55:32 +02:00
Sara Arjona 9a1aea7c91 Merge branch 'MDL-77658-MOODLE_402_STABLE' of https://github.com/SysBind/moodle into MOODLE_402_STABLE 2023-08-08 13:29:48 +02:00
Sara Arjona c662c08d89 Merge branch 'MDL-78559-402' of https://github.com/rmady/moodle into MOODLE_402_STABLE 2023-08-08 13:02:01 +02:00
Paul Holden ab962f6e20 MDL-76123 course: multilingual module icon alt text attribute. 2023-08-08 08:29:20 +01:00
Jun Pataleta a27734b6f1 Merge branch 'MDL-78896-402-enfix' of https://github.com/vmdef/moodle into MOODLE_402_STABLE 2023-08-08 15:29:14 +08:00
Paul Holden 3e11151348 MDL-78939 qformat_xml: fix reference to calculated question files. 2023-08-08 08:09:38 +01:00
AMOS bot 9b01237187 Automatically generated installer lang files 2023-08-08 00:10:35 +00:00
Helen Foster 63440b3216 MDL-78896 lang: Import fixed English strings (en_fix) 2023-08-07 11:26:45 +01:00
Ilya Tregubov 410d8cf0ba Merge branch 'MDL-78800_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-08-07 16:58:05 +08:00
Ilya Tregubov 9f24926e1a Merge branch 'MDL-78550-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-08-07 11:34:27 +08:00
chen levy cd2d34a055 MDL-77658 theme: Fixed RTL manage course categories menu
fixed course checkboxes that appears on the categories menu on RTL
2023-08-06 09:56:29 +03:00
Eloy Lafuente (stronk7) 11510dadbc MDL-78800 composer: Bump dependencies to current ones
This bumps direct dependencies to current ones:

- phpunit: 9.5.x No updates here, there is the 9.6.x series
  available but a lot of deprecation warnings have been
  introduced there without any alternative to use. See:
  - https://github.com/sebastianbergmann/phpunit/issues/5160
  - https://github.com/sebastianbergmann/phpunit/issues/5062
  - ...
  While that will be handy to prepare ourselves to PHPUnit 10
  in some months... we cannot force everybody to jump to 9.6.x
  because that will make a lot of tests to start emitting
  warnings.
  So we stay with PHPUnit 9.5.x for the life of this branch.
- mink-phpwebdriver: 1.2.1 No updates here, just changed the
  constraint because we cannot advance to 1.3.x yet, there is
  a change there causing some app tests to fail. See:
  - https://github.com/oleg-andreyev/MinkPhpWebDriver/pull/81
  So we stay with 1.2.x until that issue is fixed/clarified,
  only then we'll review the status.
- behat: 3.12.x => 3.13.x

And also, automatically, a bunch of 2nd and deepest dependencies.

Generated with php80 that is the lowest php version supported
by this branch and, also, by some of the dependencies, as per
documented @ https://moodledev.io/general/development/tools/composer

Worth mentioning behat/mink-goutte-driver, that we should move
to mink-browserkit-driver, but that's out from this issue scope.
2023-08-04 15:08:51 +02:00
Sara Arjona 6f40d9ffd7 weekly release 4.2.1+ 2023-08-04 12:40:05 +02:00
Jun Pataleta a5742d7845 MDL-78904 user: Remove non-existent require
* And enclose context parameter in an array.
2023-08-04 14:42:39 +08:00
Matt Porritt 6177a2f994 MDL-78860 qtype_calculatedmulti: PHP 8.2 compatibility
PHP 8.2 has deprecated setting properties on objects dynamically.
The qtype_calculatedmulti question type had two properties being
set this way($correctanswerlength and$correctanswerformat).
This patch extends the question_answer class to add the properties
when the object is instantiated.
2023-08-04 15:46:46 +10:00
meirzamoodle ab0a36e796 MDL-77817 editor_tiny: Fix menu and dialogue window position
The boost theme makes the TinyMCE editor rendered in a scrollable container,
scrolling the editor’s container will cause TinyMCE UI elements to be detached from the anchor.
Therefore, to keep the tinyMCE menu in the correct position,
adjustments must be made on the page drawers style.

When using TinyMCE editor in Safari browsers, a problem may occur where the dialogue
windows (such as modal dialogs) overlap with page drawers due to a specific behavior
in Safari's rendering. This function addresses the issue by adjusting the CSS overflow
property of the page drawers, ensuring they do not obscure the dialogue windows.
2023-08-03 11:40:17 +07:00
Jun Pataleta c3f70b3ef5 MDL-78498 mod_forum: Prevent race condition in forum recent activity
* Using the generator to create the forum discussions, the timecreated
of a discussion can be set before the user's last course access which
will prevent forum_print_recent_activity() from including this generated
discussion in the recent activity results. To work around this, generate
the forum discussion 1 second after the current time to make sure that
the user's last course access will always be before the discussion's
creation time.
* This patch also includes some optimisations by:
  - Removing the unnecessary @javascript tag for the
    `Time limit expires` scenario
  - Bringing the discussion generation to each scenario to allow each
    scenario to customise the data passed to the generator like for the
    `Time limit expires` scenario.
  - Navigating directly to the forum instance.
2023-08-03 11:33:24 +08:00
Ilya Tregubov abfdb19e80 Merge branch 'MDL-78866-402' of https://github.com/danghieu1407/moodle into MOODLE_402_STABLE 2023-08-03 09:38:55 +08:00
Ilya Tregubov 4fb54bb52f Merge branch 'MDL-78742-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-03 09:24:03 +08:00
Sara Arjona 46e3110812 Merge branch 'MDL-78460-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-02 08:51:06 +02:00
Jun Pataleta 2dc7fc1497 Merge branch 'MDL-78498-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-08-02 11:23:10 +08:00
Paul Holden e30c0b63b7 MDL-78872 grade: fix external class execute method visibility. 2023-08-02 02:15:13 +01:00
Sara Arjona 7dbeef905e Merge branch 'MDL-78703-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-08-01 13:44:59 +02:00
danghieu1407 d7b79e57a9 MDL-78866 question: question_created trigger pre-saving extra fields 2023-08-01 16:00:49 +07:00
Simey Lameze bcd8431a7f MDL-78498 behat: add support for private replies
This commit adds support for private replies in the
'the following forum replies exist in course' custom step.
2023-08-01 16:08:00 +08:00
Angelia Dela Cruz 03795be887 MDL-78498 Behat: Use data generators for forum posts and replies
This commit does few things:
* Replace manual forum posts and replies to use data generator.
* It also changes the code to handle social forums.
* Other behat clean-ups and optimization.

Co-authored-by: Simey Lameze <simey@moodle.com>
2023-08-01 16:08:00 +08:00
Andrew Nicols b74cea9834 MDL-78632 core: Update upgrade versions 2023-08-01 09:31:11 +08:00
Andrew Nicols ce9eee67cb Merge branch 'M402-MDL-78632' of https://github.com/marcusboon/moodle into MOODLE_402_STABLE 2023-08-01 09:29:51 +08:00
Tomo Tsuyuki 1d1b5908db MDL-77378 qtype_multianswer: Fix division by zero errors 2023-08-01 11:25:42 +10:00
Michael Aherne 10cb2941e5 MDL-78235 userprofile: Check for defaultdata with isset(). 2023-07-31 19:32:55 +08:00
Jun Pataleta 1dc6a35d24 MDL-78550 core: Ensure spacing between more menu item attributes 2023-07-28 17:25:44 +08:00
Jun Pataleta 5c0af05e15 MDL-78550 grade: Hide empty filler rows from the accessibility tree 2023-07-28 17:25:22 +08:00
Jun Pataleta 997d5e44a8 MDL-78550 grade: Avoid rendering an empty <h2> heading 2023-07-28 17:25:21 +08:00
Jun Pataleta d351633fb9 MDL-78550 grade: Fix HTML validator errors
* Remove invalid "text" attribute in <td> elements
* Use proper id value for grade category checkboxes.
2023-07-28 17:25:20 +08:00
Marcus Boon db9b34b993 MDL-78632 filetypes: Introduce yaml file type 2023-07-28 15:27:26 +10:00
Ilya Tregubov e4919b0feb weekly release 4.2.1+ 2023-07-28 10:44:10 +08:00
Ilya Tregubov 520a212057 Merge branch 'MDL-78782-402' of https://github.com/ferranrecio/moodle into MOODLE_402_STABLE 2023-07-27 09:59:42 +08:00
Ferran Recio ad4e61c2a2 MDL-78782 behat: optimize with editing mode step
The current I am on course homepage with editing mode loads twice the
course page. This patch prevents this from happening by going directly
to editmode.php.
2023-07-26 16:20:06 +02:00
Huong Nguyen 170a0d0eb9 Merge branch 'MDL-78618_402' of https://github.com/larsbonczek/moodle into MOODLE_402_STABLE 2023-07-26 14:22:13 +07:00
Jun Pataleta 7629c4ff44 Merge branch 'MDL-78377-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-26 10:47:34 +08:00
Mark Webster afc6f0953c MDL-78492 dml: Better support for auroramysql
Aurora MySQL does not support row format COMPRESSED and falls back
to COMPACT if you try to use it, cuasing column size too large
errors if you try to use it with utf8mb4 collation.
2023-07-25 11:58:08 +01:00
Miri Lipson bbcf3db3c5 MDL-75047 icons: Define the orientation of the question mark in right-to-left languages. 2023-07-25 11:04:37 +03:00
Huong Nguyen acf600a9b4 weekly release 4.2.1+ 2023-07-21 20:56:27 +07:00
Huong Nguyen 917780c2cb Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-07-21 20:56:26 +07:00
Paul Holden 124a575813 MDL-78742 tool_uploadcourse: configure show activity dates value. 2023-07-20 16:28:39 +01:00
Jun Pataleta 1d12df6e12 MDL-78770 tiny_recordrtc: Use proper window.console.warn() function 2023-07-20 14:32:46 +08:00
Jun Pataleta e5acfffa04 MDL-78770 atto_recordrtc: Use proper window.console.warn() function 2023-07-20 14:23:14 +08:00
Huong Nguyen 9f2d2332de Merge branch 'MDL-78525-402' of github.com:HuongNV13/moodle into MOODLE_402_STABLE 2023-07-20 10:57:47 +07:00
Huong Nguyen d3e42f9a8b MDL-78525 core: Update upgrade.txt for count_words and count_letters 2023-07-20 10:53:56 +07:00
Ilya Tregubov b222d8927b Merge branch 'MDL-76854-subscription_deleted-402' of https://github.com/leonstr/moodle into MOODLE_402_STABLE 2023-07-20 10:49:32 +08:00
Huong Nguyen 44f4d3b123 Merge branch 'MDL-78525/402' of https://github.com/skodak/moodle into MOODLE_402_STABLE 2023-07-20 09:04:12 +07:00
Ilya Tregubov cfe04a6891 Merge branch 'MDL-75115-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-07-20 09:41:07 +08:00
Andrew Nicols 7f50d30e9f Merge branch 'MDL-78716-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-20 00:28:36 +08:00
Andrew Nicols 97fbf797c4 Merge branch 'MDL-78715-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-20 00:17:21 +08:00
Andrew Nicols 45561f7d84 Merge branch 'MDL-77645-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-20 00:11:36 +08:00
Andrew Nicols 3f3409cfd7 Merge branch 'MDL-77328-402-fix' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-07-19 23:47:51 +08:00
Andrew Nicols 66c3430f2d Merge branch 'MDL-78704-402' of https://github.com/rjnl/moodle into MOODLE_402_STABLE 2023-07-19 21:57:37 +08:00
Jun Pataleta ac846f9fd7 MDL-77328 qformat_xml: Avoid dynamic declaration for question_answer
Declare qformat_xml::answerfiles and qformat_xml::feedbackfiles instead
of dynamically declaring answerfiles and feedbackfiles for the
question_answer instance when exporting questions and answers to XML
format.
2023-07-19 14:33:41 +08:00
Jun Pataleta fe7295010e MDL-77328 qtype_caclulatedmulti: Use qtype_calculated_answer
The question answers for question type plugins extending
\qtype_calculated now have the type
\qtype_calculated\qtype_calculated_answer. So the answers for test
helper functions make_calculatedmulti_question_singleresponse() and
make_calculatedmulti_question_multiresponse() should also be changed
accordingly.
2023-07-19 14:33:41 +08:00
Jun Pataleta 5fe5629ef2 MDL-77328 qtype_caclulatedsimple: Use qtype_calculated_answer
The question answers for question type plugins extending
\qtype_calculated now have the type
\qtype_calculated\qtype_calculated_answer. So the answers for
make_calculatedsimple_question_sum() should be changed accordingly.
2023-07-19 14:33:41 +08:00
Jun Pataleta 6ec5cfa4e8 MDL-77328 qtype_calculated: Add upgrade.txt notes
* Question type plugins that extend qtype_calculated should be made
aware of the changes about the new question_answer type
\qtype_calculated\qtype_calculated_answer.
2023-07-19 14:33:41 +08:00
Jun Pataleta 91430abc21 Merge branch 'MDL-77328-402' of https://github.com/rezaies/moodle into MOODLE_402_STABLE 2023-07-19 09:54:18 +08:00
AMOS bot a6ef6a2253 Automatically generated installer lang files 2023-07-19 00:11:05 +00:00
Shamim Rezaie e88e9f6327 Merge branch 'MDL-78564-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-17 20:36:32 +10:00
Leon Stringer b755271b8d MDL-76854 tool_monitor: subscription_deleted ctx
Fix course context for subscription_deleted event when deleting rules
with multiple subscriptions.
2023-07-15 08:20:08 +01:00
Paul Holden f5aca82d20 MDL-78703 behat: fix HTTP GET method capitalization on redirect. 2023-07-15 00:59:59 +01:00
Paul Holden c7ac993b9e MDL-78715 payment: prevent action menus flowing under container. 2023-07-14 17:16:54 +01:00
Paul Holden 0bd734bdda MDL-78716 course: fix category idnumber updating logic.
Where only the case of the idnumber field was being updated, we
triggered an exception because checking for an exising idnumber
was not excluding the current category (i.e. the one being updated).
2023-07-14 15:14:16 +01:00
Paul Holden 79bfce98af MDL-78460 mod_forum: correctly render timed post label information. 2023-07-14 10:14:57 +01:00
Petr Skoda b3fa09d554 MDL-78525 core: fix word and character counting 2023-07-14 08:44:26 +02:00
Ilya Tregubov 0ac092cc92 weekly release 4.2.1+ 2023-07-14 09:25:36 +08:00
Rajneel Totaram 6b8b79c3f4 MDL-78704 course: Render unescaped HTML for activity dates 2023-07-14 10:19:54 +12:00
Tim Hunt b69cc0c26d MDL-76757 delete questions: fix message generation logic
The order was getting scrambled.
2023-07-13 21:43:48 +02:00
Meirza 6e4e0abad7 MDL-77328 qtype_multianswer: Refactor for PHP 8.2 compatibility
This commit addresses compatibility issues in the qtype_multianswer
question type. The following changes were made:

- The usage of the undeclared property $maxmark on subquestions in
  qtype_multianswer was identified as problematic. To resolve this,
  the existing declared property $defaultmark is now being used for
  the same purpose.

By switching to the declared property $defaultmark, compatibility with
PHP 8.2 is ensured and the issue with the undeclared property is
resolved.
2023-07-13 21:04:48 +10:00
Shamim Rezaie 35b64b004a MDL-77328 qtype_calculated: Refactor for PHP 8.2 compatibility
This commit addresses compatibility issues in the qtype_calculated
question type. The following problems were identified and resolved:

- qtype_calculated was reusing the qtype_numerical_answer class and
  setting two additional properties ($correctanswerlength and
  $correctanswerformat) that were not declared. To resolve this, a new
  class, qtype_calculated_answer, was defined and utilised.
- During grading in qtype_numerical, there were references to an
  undeclared property ($unitisright) used to track calculation details.
  This issue was fixed using a 'replace temp with query' refactoring.

These changes ensure the qtype_calculated question type is compatible
with PHP 8.2 and addresses the identified issues.
2023-07-13 21:04:48 +10:00
Meirza b8949b4c90 MDL-77328 qtype_truefalse: Refactor for PHP 8.2 compatibility
This commit addresses the following issues and improvements in the
qtype_truefalse class:

- Added missing class properties:
 - public $truefeedbackformat
 - public $falsefeedbackformat
 - public $showstandardinstruction
- Updated qtype_truefalse_question to include type hinting for better
  IDE support.
2023-07-13 21:04:48 +10:00
Jun Pataleta 89d84af752 Merge branch 'MDL-76046-402' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-07-13 11:19:36 +08:00
Huong Nguyen b7bf1d6fc3 Merge branch 'MDL-75195-402' of https://github.com/raortegar/moodle into MOODLE_402_STABLE 2023-07-13 09:57:55 +07:00
Huong Nguyen 68d5bfe6e3 Merge branch 'MDL-76757-402' of https://github.com/danghieu1407/moodle into MOODLE_402_STABLE 2023-07-13 09:46:44 +07:00
Ilya Tregubov af4ff2b867 Merge branch 'mdl-7133-402' of https://github.com/juancs/moodle into MOODLE_402_STABLE 2023-07-13 10:31:11 +08:00
Jake Dallimore 73ec043d4b Merge branch 'MDL-77912_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-07-13 10:09:26 +08:00
Andrew Nicols 951d0b8987 Merge branch 'MDL-78157-402' of https://github.com/golenkovm/moodle into MOODLE_402_STABLE 2023-07-13 09:48:03 +08:00
Andrew Nicols 2578646f10 Merge branch 'MDL-78556-402' of https://github.com/danghieu1407/moodle into MOODLE_402_STABLE 2023-07-13 09:28:49 +08:00
Andrew Nicols 10b7e70014 Merge branch 'MDL-76996_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-07-13 09:25:24 +08:00
Ilya Tregubov 3779f0fb4a Merge branch 'MDL-73213_402' of https://github.com/pedrojordao/moodle into MOODLE_402_STABLE 2023-07-13 09:18:09 +08:00
Sara Arjona c52c8e85dd Merge branch 'MDL-78673-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-07-12 18:18:08 +02:00
Andrew Nicols c18f100ea0 Merge branch 'MDL-77450-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-07-13 00:09:58 +08:00
Andrew Nicols 954d38e6f2 Merge branch 'MDL-78676-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-07-13 00:06:22 +08:00
Sara Arjona 79b2271482 Merge branch 'MDL-78455-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-07-12 17:37:07 +02:00
Sara Arjona 819aa90469 Merge branch 'MDL-78642-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-12 17:21:42 +02:00
Sara Arjona 6ac3d62125 Merge branch 'MDL-78522-402' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-07-12 16:57:42 +02:00
Paul Holden 6bdf4bb2b1 MDL-77645 course: ensure active enrolments are considered for drawer.
Otherwise the enrolment index page tries to load the course index
drawer, which doesn't exist at this point and triggers exceptions in
the editor module.

Co-authored-by: Tim Volckmann <tim.volckmann@mastersolution.com>
2023-07-12 14:35:23 +01:00
Tim Hunt 22c57001d1 MDL-76996 question bank: fix errors when qbank_statistics is disabled 2023-07-12 11:47:17 +01:00
Sara Arjona 92ee7151e5 Merge branch '76319-gradebook-add-missing-continue-button-402' of https://github.com/DSI-Universite-Rennes2/moodle into MOODLE_402_STABLE 2023-07-12 08:28:09 +02:00
Miri Lipson 0e2342d79d MDL-75115 theme_boost: Fix Bootstrap tooltips in RTL mode 2023-07-12 09:11:42 +07:00
Ilya Tregubov bcfc49e3ab Merge branch 'MDL-78216-402-1' of https://github.com/mihailges/moodle into MOODLE_402_STABLE 2023-07-12 09:47:49 +08:00
Tim Hunt 0fc9bfa71a MDL-77912 questions: make multi-choice stats calc robust to bad data 2023-07-11 16:57:58 +01:00
raortegar bed2352e67 MDL-75195 core: Added supportemail option to install_database.php 2023-07-11 11:13:54 +02:00
danghieu1407 38d1c5f174 MDL-78556 tablelib: flexible_table should support caption tag 2023-07-11 14:15:22 +07:00
Angelia Dela Cruz b98876efa1 MDL-77450 Behat: Behat cleanup and optimisation 2023-07-11 13:31:45 +08:00
Ilya Tregubov b0be75b9ac Merge branch 'MDL-67852_MOODLE_402_NEW' of https://github.com/aydevworks/moodle into MOODLE_402_STABLE 2023-07-11 11:11:54 +08:00
Ilya Tregubov 47cb335ea2 Merge branch 'MDL-77690-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-07-11 09:51:42 +08:00
Ilya Tregubov e046077a13 Merge branch 'MDL-75359-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-11 09:29:49 +08:00
Julien Boulen 96b5cb56e8 MDL-76319 gradebook: add continue button after csv grades import error 2023-07-10 10:18:31 +02:00
danghieu1407 bb7d15c7e0 MDL-76757 Question bank: Can not delete the question completely 2023-07-10 14:32:35 +07:00
Andrew Nicols a8105bccf9 MDL-78673 grade: Switch test to use generators 2023-07-10 11:28:00 +08:00
Andrew Nicols 6a79b98768 MDL-78673 grade: Switch to behat navigation steps 2023-07-10 11:27:09 +08:00
Andrew Nicols ded705eacd MDL-78673 grade: Address random failure due to toast 2023-07-10 11:26:38 +08:00
Andrew Nicols 2e8bbe2c94 MDL-78673 behat: Allow plugins to define their expansion of > 2023-07-10 11:26:38 +08:00
Andrew Nicols 3e34904ce9 Merge branch 'MDL-77180-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-09 22:14:11 +08:00
Alex Yeung b4deb483ce MDL-67852 tool_dataprivacy: Fix security checks 2023-07-09 14:51:32 +01:00
Juan Segarra Montesinos ebc281d14f MDL-71133 mod_assign: Grade decimals missing with marking workflow 2023-07-09 08:12:50 +02:00
Sara Arjona fdf3daa6a9 MDL-78676 mod_data: Check completion rules properly
The completion_rule_enabled() method was not checking all the fields
and, in some cases, it was returning false (because it was not checking
that "Count of entries" field was enabled).
2023-07-07 18:28:29 +02:00
Paul Holden 8c540d58f2 MDL-77180 customfield: allow entry of formatted category names.
Change the param type of the category name when editing to allow
for entry of multilang tags, the formatting of which is already
supported when returning category name.

Co-authored-by: Hiroto Kagotani <hiroto.kagotani@gmail.com>
2023-07-07 14:59:49 +01:00
Paul Holden a75a0a596e MDL-75359 reportbuilder: fixes for custom/user profile field elements.
Ensures cross-DB compatibility for all types of both custom and user
profile fields, specifically when they're filtered and/or aggregated.

Implement stress testing of both via appropriate report sources.
2023-07-07 14:43:24 +01:00
Ilya Tregubov d7a0dcbdae MDL-78522 cohort: Fix capability/visibility check. 2023-07-07 15:58:27 +08:00
Ilya Tregubov 2ef6a3b9b9 weekly release 4.2.1+ 2023-07-07 11:52:21 +08:00
Ilya Tregubov 4aa826356b Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-07-07 11:52:18 +08:00
Pedro Jordao f4727c3922 MDL-73213 autocomplete: keep selected value when the state changes.
The selected value of the dropdown was being cleared when the dropdown
was opened, this was causing an error when submitting the form if the
field was required. The main cause was that we were emptying the
select before loading new values, this solution was created because
of an issue where we could not deselect values if the list was
reloaded. To fix this problem, I added an empty option as the first
element of the select only when deselecting a certain item.
2023-07-06 15:42:57 -03:00
Lars Bonczek 67dea5b53b MDL-78618 core_course: use UNION in get_nearest_editable_subcategory 2023-07-06 18:52:17 +02:00
Sara Arjona 3231d72a96 Merge branch 'MDL-78391-402' of https://github.com/HuongNV13/moodle into MOODLE_402_STABLE 2023-07-06 11:03:11 +02:00
Huong Nguyen f1a8189dfb MDL-78391 atto_recordrtc: Fix recording issue with Chrome 2023-07-06 15:47:47 +07:00
Huong Nguyen 395f8c49d8 MDL-78391 tiny_recordrtc: Fix recording issue with Chrome 2023-07-06 15:47:44 +07:00
Sara Arjona bdd7ea645e Merge branch 'MDL-77375-402-patch' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-07-06 10:12:22 +02:00
Paul Holden 882d676a66 MDL-78642 mod_assign: typecast portfolio button renderer return.
Internally the button return is nullable, which we need to account
for in the renderer.
2023-07-06 09:04:54 +01:00
Misha Golenkov 412231454f MDL-78379 js: Add missing newline character 2023-07-06 16:15:36 +10:00
Ilya Tregubov e9c4e02202 MDL-77375 tool_dataprivacy: Fix menus going floaty. 2023-07-06 13:11:47 +08:00
Jun Pataleta c17ed92914 Merge branch 'MDL-78391-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-07-06 11:59:15 +08:00
Jun Pataleta 3e592b11fe Merge branch 'MDL-78488_402' of https://github.com/t-schroeder/moodle into MOODLE_402_STABLE 2023-07-06 11:17:19 +08:00
Ilya Tregubov d5e8ce4743 Merge branch 'MDL-69983-402' of https://github.com/davewoloszyn/moodle into MOODLE_402_STABLE 2023-07-06 10:26:06 +08:00
Ilya Tregubov 57d3069711 Merge branch 'MDL-78608_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-07-06 09:57:00 +08:00
Jun Pataleta a5b351cf10 Merge branch 'MDL-78484-402' of https://github.com/NashTechOpenUniversity/moodle into MOODLE_402_STABLE 2023-07-06 09:41:33 +08:00
Ilya Tregubov 2ad8691f81 Merge branch 'MDL-77375-402' of https://github.com/rezaies/moodle into MOODLE_402_STABLE 2023-07-06 09:20:36 +08:00
Jun Pataleta 4af519c068 Merge branch 'MDL-74893-MOODLE_402_STABLE-fix_auto_login_guest' of https://github.com/praxisdigital/moodle into MOODLE_402_STABLE 2023-07-06 09:14:17 +08:00
Paul Holden 079269febb Merge branch 'MDL-78542-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-07-05 17:13:19 +01:00
Andrew Nicols 3bdf0bdffe Merge branch 'MDL-78644-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-05 22:10:30 +08:00
Andrew Nicols 5f71eb0d12 Merge branch 'MDL-78338-402_toolbrickfieldlinkinnewwindow' of https://github.com/brickfield/moodle into MOODLE_402_STABLE 2023-07-05 22:01:48 +08:00
Rodrigo Mady 4e233eb6b0 MDL-78559 mod_chat: Fix chat report loading with TeX filter 2023-07-05 10:57:38 -03:00
Andrew Nicols 1eb52d00f1 Merge branch 'MDL-78622_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-07-05 21:56:14 +08:00
Andrew Nicols dee8468aa9 Merge branch 'MDL-64152-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-07-05 21:49:05 +08:00
Andrew Nicols 3c3bd19f49 Merge branch 'MDL-78614-402' of https://github.com/noeldemartin/moodle into MOODLE_402_STABLE 2023-07-05 20:30:28 +08:00
Paul Holden e2fd30a2c5 MDL-78644 files: more fault tolerant resizing of logos/icons.
If we cannot resize the given file (files such as ICO can't be, for
SVG it makes no sense), then we should just return the original file
as is rather than an error.
2023-07-05 12:51:36 +01:00
Ilya Tregubov 0db5c697d7 Merge branch 'MDL-78485-402' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-07-05 11:51:48 +08:00
Andrew Nicols 935664bc95 Merge branch 'MDL-78158-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-07-05 10:23:55 +08:00
Andrew Nicols 178fe9f0c7 Merge branch 'MDL-77873-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-07-05 10:04:22 +08:00
Luca Bösch c65dabf79b MDL-77873 quiz: style the question number edit elements. 2023-07-04 23:06:59 +02:00
Huong Nguyen 2bcdfcf638 Merge branch 'MOODLE_402_MDL-77396_Fix' of https://github.com/Dineshdurai/moodle into MOODLE_402_STABLE 2023-07-04 16:15:26 +07:00
Huong Nguyen d8e0807dd2 Merge branch 'MDL-78596-coursecard-divider-402' of https://github.com/leonstr/moodle into MOODLE_402_STABLE 2023-07-04 15:28:01 +07:00
Huong Nguyen 86e27a7eb1 Merge branch 'MDL-78578-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-07-04 15:16:00 +07:00
Huong Nguyen a52d5c9e28 Merge branch 'MDL-76853-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-07-04 12:46:10 +07:00
Huong Nguyen 442c94a808 Merge branch 'MDL-78138-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-07-04 12:38:35 +07:00
Stevani Andolo c270d87fec MDL-78485 editor_tiny: Allowed script tag to be added in tinyMCE editor 2023-07-04 13:36:34 +08:00
Andrew Nicols 9047a30cd9 Merge branch 'MDL-75324-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-07-04 13:30:04 +08:00
Andrew Nicols 3970ad4264 Merge branch 'MDL-76840_402' of https://github.com/uzimike/moodle into MOODLE_402_STABLE 2023-07-04 13:21:18 +08:00
Simey Lameze a51864ad26 MDL-75324 behat: use a proper step to verify completion status 2023-07-04 11:20:14 +08:00
AMOS bot 1169389d47 Automatically generated installer lang files 2023-07-04 00:11:41 +00:00
Angelia Dela Cruz 09792257fd MDL-78158 behat: Behat cleanup and optimisation 2023-07-04 07:49:46 +08:00
Sara Arjona 28005f7f39 Merge branch 'MDL-77868-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-03 17:29:35 +02:00
Sara Arjona 576ae57607 Merge branch 'MDL-76661-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-07-03 17:26:21 +02:00
Paul Holden a2a899b204 MDL-78377 grade: reset page number when filtering by group. 2023-07-03 12:54:53 +01:00
Angelia Dela Cruz 82fdb9e20e MDL-78158 Behat: Use data generators to add blocks 2023-07-03 18:59:19 +08:00
Tim Hunt 9512b017b2 MDL-78622 quiz: add question query must include contextid
It is logically requried and necessary for the query to use the index
2023-07-03 11:51:36 +01:00
Paul Holden 97ea22bc19 MDL-76661 mod_bigbluebuttonbn: fix meeting attendee role comparison. 2023-07-03 11:41:10 +01:00
Noel De Martin c3c2180169 MDL-78614 behat: Remove trailing quotes 2023-07-03 11:18:30 +02:00
Andrew Nicols e18af1ab61 MDL-78391 atto_recordrtc: Improve MacOS codec compatability 2023-07-03 16:52:28 +08:00
Andrew Nicols b31b0f7479 MDL-78391 tiny_recordrtc: Set filename according to container 2023-07-03 16:52:26 +08:00
Andrew Nicols 0f07221c64 MDL-78391 tiny_recordrtc: Switch to mp4 container for h264
Theh WebM container does not support H.264 / AVC.

For more information see:
https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#webm

General purpose video, preferably in an open format
WebM (ideally with MP4 fallback)
2023-07-03 16:52:07 +08:00
Andrew Nicols cf681dc724 MDL-78391 tiny_recordrtc: Improve codec selection
From my experimentation I have discovered that Safari does not properly
respect the standard MediaRecorder mimetype. Instead of using `codecs=`
it uses `codecs:`.

This change copies the codec array to have the list of possible codecs
include both codecs= and codecs: whilst remaining in order.
2023-07-03 16:50:13 +08:00
Andrew Nicols be8a7442e7 MDL-78391 tiny_recordrtc: Respect codec options
The audio and video plugins were overriding the wrong method, and thus
preventing selection of a relevant codec and breaking playback on some
devices.
2023-07-03 16:50:11 +08:00
Andrew Nicols 2f6c1b56e4 MDL-76853 editor_tiny: Refactor behat helpers into trait 2023-07-03 09:38:23 +08:00
Karen Holland e72f030874 MDL-78338 tool_brickfield: Allow link open in new window with warning 2023-07-01 23:11:18 +01:00
Shamim Rezaie 91acee489d MDL-77375 core_grades: set boundary of the dropdowns in grade setup page 2023-07-02 00:05:18 +10:00
Shamim Rezaie 72d853549a MDL-77375 gradereport_singleview: set boundary of the dropdowns 2023-07-02 00:05:18 +10:00
Shamim Rezaie 4059ac3e29 MDL-77375 tool_dataprivacy: set boundary of the dropdowns 2023-07-02 00:03:04 +10:00
Shamim Rezaie 1d724c4a4a MDL-77375 mod_forum: set boundary of the dropdown
Also removed the unnecessary button role from the <button> element
2023-07-02 00:03:03 +10:00
Shamim Rezaie 73da2849e5 MDL-77375 mod_assign: set overflow constraint boundary of the dropdowns 2023-07-02 00:03:03 +10:00
Shamim Rezaie 8dda51d57e MDL-77375 output: Allow additional options for dropdowns 2023-07-02 00:03:03 +10:00
Shamim Rezaie 5c945e1283 MDL-77375 theme: Re-fix the bootstrap scrollbar issue 2023-07-02 00:03:03 +10:00
Paul Holden ed5a1cdef1 MDL-78564 mod_assign: ensure submission statement is present.
Don't require acceptance of statement, if no such statements exists,
during assignment submission.
2023-06-30 14:20:02 +01:00
Jun Pataleta 5491e32ef3 MDL-77690 mod_lesson: Lesson accessibility fixes
* Set the heading levels of lesson pages appropriately to avoid skipped
heading issues.
* Add appropriate labels for tertiary navigation select menus.
2023-06-30 17:55:09 +08:00
Jun Pataleta abd334b104 MDL-77690 core: New activity_header method get_heading_level()
Add a new method for activity_header that determines the heading level
depending on whether the theme displays a heading for the activity
header (usually a h2 heading with the activity name).

E.g. in Boost, the activity name is already being displayed in a
heading. So page headings can be rendered as h2. However, on Classic,
the activity name is being displayed as a h2 heading. So headings need
to be adjusted for the activity pages.
2023-06-30 17:55:04 +08:00
Tim Schroeder 5014d7bbb4 MDL-78488 question bank: don't load statistics when they are disabled 2023-06-30 11:47:50 +02:00
Jun Pataleta d32cccf278 MDL-77690 user: Add sr-only heading for the user profile page 2023-06-30 17:45:25 +08:00
Jun Pataleta d6fc042d06 MDL-78542 mod_url: clicktoopen lang string fix
- Improve the grammatical structure of the lang string.
- Remove the mention of "link", for sighted users, it should already
be obvious that it's a link. For screen reader users, screen readers
already announce links. So it would be confusing for them to hear
something like "Click 'Moodle.org, link' link to open resource"
2023-06-30 17:27:45 +08:00
Jun Pataleta 628c5c07de MDL-78542 mod_url: Add a help text for URL resource name field
Add a help text explaining that the URL resource's name field will be
used for the link text. Also add basic guidelines about naming links for
the benefit of screen reader users.
2023-06-30 17:27:45 +08:00
Jun Pataleta eeabb5303f MDL-78542 mod_url: Use the module name for the URL resource's link text 2023-06-30 17:27:43 +08:00
Jun Pataleta 9f23aa9036 Merge branch 'MDL-78068-402' of https://github.com/laurentdavid/moodle into MOODLE_402_STABLE 2023-06-30 16:42:37 +08:00
Jake Dallimore 059dab5861 MDL-64152 library: Fix legacy LTI launches when using reverse proxy
LTI 1.1 uses OAuth 1.0, which requires 'hostname', among other things,
as part of signature verification. When Moodle is run behind a reverse
proxy, $_SERVER['SERVER_NAME'] is an unreliable way to fetch hostname.
It isn't always equal to the external hostname but instead can contain
the local host, meaning the signature verification will fail. This
change replaces the use of $_SERVER vars with $FULLME - which already
takes this into account - to fix the signature verification.

Co-authored-by: Berengar W. Lehr <Berengar.Lehr@uni-jena.de>
2023-06-30 16:42:02 +08:00
Franziska Hübler 1da8cc11f2 MDL-69983 backup: Save async backups in correct area. 2023-06-30 10:13:17 +10:00
AMOS bot fe7f1346bf Automatically generated installer lang files 2023-06-30 00:08:45 +00:00
Stevani Andolo e334506829 MDL-76046 core: Fixed secondary navigation on smaller screen 2023-06-30 06:31:05 +08:00
Luca Bösch d2c83565d9 MDL-78138 theme_boost: Reliably remove TYPE_CATEGORY breadcrumbs. 2023-06-29 21:42:31 +02:00
Tim Hunt 3c311cc9af MDL-78608 question stats: avoid loading data for missing contexts
It turns out that there are plugins which don't (currently)
clean up their question attempts when a context is deleted.
Therefore, we need to make Moodle core robust to that.
2023-06-29 16:26:13 +01:00
Huong Nguyen b509652427 weekly release 4.2.1+ 2023-06-29 22:22:17 +07:00
Andrew Nicols 024fe89697 Merge branch 'MDL-78599-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-29 11:33:06 +08:00
Jun Pataleta dc5f74ce5d Merge branch 'MDL-77993-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-29 11:27:58 +08:00
Jun Pataleta e6d3a4817e Merge branch 'MDL-78432-402' of https://github.com/laurentdavid/moodle into MOODLE_402_STABLE 2023-06-29 11:25:48 +08:00
Andrew Nicols c807000e6d Merge branch 'MDL-78018-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-29 11:01:57 +08:00
Ilya Tregubov 18e1093d07 Merge branch 'MDL-77286-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-06-29 09:44:59 +08:00
Ilya Tregubov b401a8b4c9 Merge branch 'MDL-78521-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-06-29 09:34:44 +08:00
Huong Nguyen 6c3cf7dce0 Merge branch 'MDL-77679_402' of https://github.com/mkassaei/moodle into MOODLE_402_STABLE 2023-06-28 21:17:53 +07:00
Jake Dallimore bafffc90d1 MDL-78599 enrol_lti: fix SQL syntax error in course grade sync 2023-06-28 12:40:33 +08:00
Jake Dallimore 4f5d62730f MDL-78599 enrol_lti: test covering decoupled, course context grade syncs
This covers the case where a course is published and the launch data
doesn't include the 'lineitem' property of the ags claim, meaning the
tool can manage its own line items.
2023-06-28 12:40:22 +08:00
Leon Stringer def6434c79 MDL-78596 core_course: Remove divider
With courselistshortnames enabled Moodle 3.11 and earlier showed
"Category | Short name" on the first line of course cards (for example
in block_myoverview).  From Moodle 4.0 the category is moved to the last
line making the first line "Short name |".  This change removes that
stray "|".
2023-06-27 17:40:15 +01:00
Simey Lameze e81aa45dec MDL-77286 behat: change window size to large to avoid random fails 2023-06-27 17:12:12 +08:00
Laurent David 7075ea60ea MDL-78432 mod_label: Process markdown in label name
* Process markdown and other allowed formats (see FORMAT_XXX) in get_label_name
so it does not display it as a litteral string in the course index menu.
2023-06-27 08:13:01 +02:00
Andrew Nicols cecd6ed530 Merge branch 'MDL-78459-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-27 13:14:23 +08:00
Ilya Tregubov 59227e27fa Merge branch 'MDL-78443-402' of https://github.com/jleyva/moodle into MOODLE_402_STABLE 2023-06-27 11:01:22 +08:00
Jake Dallimore 9434b600c9 MDL-78578 enrol_lti: permit launch cache access during launch redirects
This handles things like site policies, which store the current URL,
redirect to the policy agreement, then redirect back the current URL
afterwards. In such cases, we want to redirect back with 'launchid' set
so that we can fetch the id_token from the session cache. This is the
same thing we already do during account binding, so the patch only
makes sure the PAGE->url is properly set before calling require_login.
2023-06-27 10:06:14 +08:00
Dinesh Durai 62b3a19b17 MDL-77396 wiki: Fix print without background 2023-06-27 00:53:47 +05:30
mkassaei 2345dcbdfa MDL-77679 Drag and drop question type weird behavior 2023-06-26 17:04:41 +01:00
Jun Pataleta 8e90f17e65 Merge branch 'MDL-76724_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-06-26 19:26:00 +08:00
Laurent David b312ed4b11 MDL-78068 mod_h5pactivity: Fix sort the paragraph activity
* Fix sort the paragraph/sequencing activity report in H5P.
2023-06-26 08:42:44 +02:00
Jun Pataleta 961137d435 Merge branch 'MDL-78168-402-final' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-26 11:20:01 +08:00
Simey Lameze 33fc59cfc5 MDL-78521 behat: reload page before asserting content
This commit also reword a Scenario name to make it unique
2023-06-26 11:19:39 +08:00
Andrew Nicols 2273c1f8e7 Merge branch 'MDL-78237-402' of https://github.com/davewoloszyn/moodle into MOODLE_402_STABLE 2023-06-24 23:21:41 +08:00
Andrew Nicols 84b160f432 Merge branch 'MDL-76673-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-24 22:46:37 +08:00
Andrew Nicols ff32f911a3 Merge branch 'MDL-78544-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-24 22:26:41 +08:00
Andrew Nicols d8cecb3d25 Merge branch 'MDL-77152-MOODLE_402_STABLE' of https://github.com/sh-csg/moodle into MOODLE_402_STABLE 2023-06-24 22:17:43 +08:00
Andrew Nicols 3054ef4de3 Merge branch 'MDL-78172-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-24 21:59:58 +08:00
Eloy Lafuente (stronk7) a5aa29cd2a MDL-76724 phpcs: Moodle 4.2.x is going to use php80 to php82 only
Now that it has been decided to backport php82 to Moodle 4.2.x, we
can already fix the php versions to be checked by the coding
standard (they were previously open for the branch).
2023-06-24 12:29:53 +02:00
Eloy Lafuente (stronk7) 3ac9bda79a MDL-76724 environment: Moodle 4.3 requirements
Note that there aren't changes since Moodle 4.2
so this is a complete copy of the information
for that version.
2023-06-24 12:29:53 +02:00
Andrew Nicols cb6d999911 MDL-78168 mod_assign: Stop storing properties dynamically
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

In these cases, mod_assign was treating other unrelated objects as its
personal object store. These have been updated to not require this.
2023-06-24 13:35:13 +08:00
Sara Arjona 56c8910c4b weekly release 4.2.1+ 2023-06-23 09:00:07 +02:00
Andrew Nicols f37ded7607 Merge branch 'MDL-78004_402' of https://github.com/mwehr/moodle into MOODLE_402_STABLE 2023-06-22 14:34:42 +02:00
Ilya Tregubov a70d3dcdb6 Merge branch 'MDL-78434-m402' of https://github.com/sammarshallou/moodle into MOODLE_402_STABLE 2023-06-22 14:34:42 +02:00
Julien Boulen 4e4264c058 MDL-77986 backup: trim extra white spaces on search forms 2023-06-22 14:34:42 +02:00
Andrew Nicols 470d53ca58 Merge branch 'MDL-78071-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-22 14:34:42 +02:00
Andrew Nicols 88d7a6c496 Merge branch 'MDL-78541/402' of https://github.com/skodak/moodle into MOODLE_402_STABLE 2023-06-22 14:34:42 +02:00
Andrew Nicols 9879ed8f06 Merge branch 'MDL-78350-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-22 14:34:41 +02:00
Andrew Nicols db9c75632a Merge branch 'MDL-68067-42' of https://github.com/Chocolate-lightning/moodle into MOODLE_402_STABLE 2023-06-22 14:34:41 +02:00
Andrew Nicols 4a8db46d03 Merge branch 'MDL-78056-402' of https://github.com/laurentdavid/moodle into MOODLE_402_STABLE 2023-06-22 14:34:41 +02:00
Andrew Nicols db19db585b Merge branch 'MDL-78263-402' of https://github.com/jleyva/moodle into MOODLE_402_STABLE 2023-06-22 14:34:41 +02:00
Andrew Nicols 2e9c7a7af5 Merge branch 'MDL-78435-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-22 14:34:41 +02:00
Andrew Nicols f3ef477d4c Merge branch 'MDL-75913-402' of https://github.com/davewoloszyn/moodle into MOODLE_402_STABLE 2023-06-22 14:34:40 +02:00
Andrew Nicols 087043b0fe Merge branch 'MDL-78477_402' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_402_STABLE 2023-06-22 14:34:40 +02:00
Andrew Nicols bcada07b27 Merge branch 'MDL-78159-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-22 14:34:40 +02:00
Andrew Nicols 8ddac57a20 Merge branch 'MDL-77865_MOODLE_402_STABLE' of https://github.com/tuanngocnguyen/moodle into MOODLE_402_STABLE 2023-06-22 14:34:40 +02:00
Andrew Nicols 2a9a1b8117 Merge branch 'MDL-78164-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-22 14:34:39 +02:00
hieuvu d91659242b MDL-78484 formslib: Move enable checkbox display before the date picker 2023-06-22 11:03:16 +07:00
Jake Dallimore 18339a5fa7 MDL-78544 forms: fix string to number comparison bug in duration element
Prior to PHP 8, 0 == "", but now no more. We should use empty instead.
See: https://www.php.net/manual/en/migration80.incompatible.php
2023-06-22 10:59:37 +08:00
Paul Holden ea5509263a MDL-78350 reportbuilder: parse javascript before rendering template. 2023-06-21 17:33:37 +01:00
Paul Holden 402709b93d MDL-78350 output: parse returned dynamic tab javascript when loading.
Ensure we don't create nested <script> tags when rendering templates,
which triggers console errors since 1ef815cd.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-06-21 17:25:37 +01:00
Petr Skoda 570405db75 MDL-78541 admin: ignore headings in admin_apply_default_settings()
This is a workaround for plugins that do not have
unique setting names.
2023-06-21 15:46:47 +02:00
Sara Arjona 4df28116eb Merge branch 'MDL-76635-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-06-21 14:02:16 +02:00
Anupama Sarjoshi cc2638d1b2 MDL-78477 qbank_history: Fix and improve UI for edit menu delete option
Changes done to fix the warnings thrown in the history view when the
last version of a question is deleted and improved UI to display the
message and a Continue button, to navigate back to the Question bank.
2023-06-21 10:46:51 +01:00
Sara Arjona af3eebdcf9 Merge branch 'MDL-63120_Badges_cron_task_fails-MOODLE_402_STABLE' of https://github.com/mebis-lp/moodle into MOODLE_402_STABLE 2023-06-21 11:43:10 +02:00
Ilya Tregubov 3769c65a97 Merge branch 'MDL-77591-402' of https://github.com/justusdieckmann/moodle into MOODLE_402_STABLE 2023-06-21 16:58:18 +08:00
Meirza 8bdda22ea1 MDL-78159 lib: Added missing properties for core libraries
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-06-21 15:42:59 +07:00
Meirza 5dee6a318c MDL-78164 lib: Added class properties that are not declared in grade
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-06-21 14:47:46 +07:00
Ilya Tregubov b280b960e3 Merge branch 'MDL-76174_402' of https://github.com/larsbonczek/moodle into MOODLE_402_STABLE 2023-06-21 14:26:45 +08:00
Simey Lameze 3c566431b1 MDL-76635 comment: render the delete icon in the right place
Special thanks to Andrew Lyons.
2023-06-21 12:45:27 +08:00
Simey Lameze 104eb90f4d MDL-76635 behat: improve submission comments test 2023-06-21 12:45:27 +08:00
Andrew Nicols 692ca82c6d Merge branch 'MDL-78163-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-21 11:59:25 +08:00
Andrew Nicols 262c1241bf Merge branch 'MDL-78160-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-21 10:22:16 +08:00
Lars Bonczek 62036a3e8b MDL-76174 core_course: get_nearest_editable_subcategory performance fix 2023-06-20 14:42:54 +02:00
Ilya Tregubov 371d086fcb Merge branch 'MDL-78259-htmlpurify-media-tags-402' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-06-20 14:36:50 +08:00
Julien Boulen bd7702ca83 MDL-78259 weblib: purify audio/video tags as inline elements 2023-06-20 14:34:10 +08:00
Ilya Tregubov 049c3e85f9 Merge branch 'MDL-77525/402' of https://github.com/skodak/moodle into MOODLE_402_STABLE 2023-06-20 13:04:28 +08:00
eWallah 0423dd3b75 MDL-68067 tool_mobile: Mobile tool link does not have a class attribute. 2023-06-20 10:26:13 +08:00
Jun Pataleta 0733bec58f Merge branch 'MDL-74021-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-06-20 10:13:29 +08:00
Jun Pataleta 24496360d2 Merge branch 'MDL-78369_402' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_402_STABLE 2023-06-19 23:16:55 +08:00
Mihail Geshoski ac4099d93b MDL-78216 gradereport_grader: Fix overlapping caused by sticky cells 2023-06-19 22:19:59 +08:00
Paul Holden fab09fb1c6 MDL-78071 cohort: disable report actions for managed cohorts. 2023-06-19 15:05:20 +01:00
Meirza 22d912df33 MDL-78160 lib: Added class properties that are not declared in dml
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

At the test_transaction_with_events() I changed $this->_called into $called local var,
since the $called is used inside the anonymous function I added the third param as
a variable passed by reference so the last assert can get the newest value.
2023-06-19 19:57:43 +07:00
Paul Holden 8f47df378a MDL-78459 tool_mobile: use site context in mobile manifest file.
Prevents debugging notices when the site shortname is formatted in
the response data.
2023-06-19 13:01:59 +01:00
Angelia Dela Cruz 218d456ca0 MDL-74021 behat: Page behat generators use UI
Replace steps that manually add page instances via the UI and use
Behat generators. This improves the speed of Behat test runs.

Co-authored-by: Simey Lameze <simey@moodle.com>
2023-06-19 17:09:20 +08:00
David Woloszyn d9c38222f2 MDL-75913 behat: Use alternatives to Atto in tests 2023-06-19 16:38:42 +10:00
David Woloszyn c9af94efcd MDL-75913 behat: Switch to TinyMCE editor iframe 2023-06-19 16:38:42 +10:00
David Woloszyn bfcc39996f MDL-75913 behat: Private files data generator 2023-06-19 16:38:42 +10:00
Andrew Nicols 0b80e3a887 MDL-75913 behat: Add support for file uploads in page generators 2023-06-19 16:38:42 +10:00
Andrew Nicols 7a35fe7213 MDL-75913 behat: Add support for file uploads in generators 2023-06-19 16:38:42 +10:00
Anders Rasmussen 3222658b8b MDL-74893 authentication: Fix auto-login guest
Fixed auto-login as guest, when Guest login button is hidden
2023-06-19 07:50:33 +02:00
Laurent David 91e6a55056 MDL-78056 mod_h5pactivity: Fix incorrect attempt report
* Fix interpretation of the results on the attempt report whenever case
sensitive option is enabled.
2023-06-19 06:12:01 +02:00
Paul Holden 6f97a0325c MDL-77868 mod_bigbluebuttonbn: default config for welcome editable.
The property was added to the config options in c3f4123b, however no
default value was provided, meaning if it was ever unset then a PHP
type error would be triggered on the null return.
2023-06-18 19:19:48 +01:00
Stefan Hanauska 377aa25c81 MDL-77152 files: Ensure trailing/leading slash 2023-06-18 16:22:20 +02:00
Petr Skoda 15217816ff MDL-77525 filter: add filtering stages 2023-06-17 16:48:40 +02:00
Paul Holden 53f513b9c6 MDL-78435 mod_assign: ensure due date is always after start date. 2023-06-16 18:41:58 +01:00
Juan Leyva a622730742 MDL-78443 course: Missing require for course_request 2023-06-16 10:17:40 +02:00
Andrew Nicols 95e0d9ce66 weekly release 4.2.1+ 2023-06-16 12:04:18 +08:00
Andrew Nicols 2d78e70d7b Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-06-16 12:04:15 +08:00
Angelia Dela Cruz 01b8a0b596 MDL-78455 Behat: Behat cleanup and optimisation for blog/tests/behat 2023-06-16 09:12:37 +08:00
Angelia Dela Cruz 6165917109 MDL-78455 Behat: Add Behat for adding, editing and deleting blog entries 2023-06-16 09:11:22 +08:00
Juan Leyva a98016f5c7 MDL-78263 airnotifier: keep notification name as part of the payload 2023-06-15 17:28:15 +02:00
Sara Arjona 686a27c470 Merge branch 'MDL-78165-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-15 10:17:05 +02:00
Andrew Nicols a6f69bb3e1 MDL-78165 mod_bigbluebuttonbn: Fetch cron status using API 2023-06-15 16:02:53 +08:00
Nathan Nguyen 5b8f9536e0 MDL-77865 qtype_ddwtos: fix incorrect inplace class 2023-06-15 15:02:14 +10:00
Ilya Tregubov 0bf0a489fb Merge branch 'MDL-70152-402-fix' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-06-15 12:12:37 +08:00
Simey Lameze 7b5b10df16 MDL-70152 behat: reply to post using data generator 2023-06-15 12:03:54 +08:00
Andrew Nicols dfd3cf1ca2 Merge branch 'MDL-77224-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-15 12:02:24 +08:00
Andrew Nicols ca3cd0d583 Merge branch 'MDL-78066-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-15 11:26:47 +08:00
Andrew Nicols f526079781 Merge branch 'MDL-78461-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-15 11:23:21 +08:00
Andrew Nicols 4548c9ac70 Merge branch 'MDL-78385-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-15 11:07:13 +08:00
Andrew Nicols 8f15bff75d Merge branch 'MDL-78141-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-15 11:03:02 +08:00
Andrew Nicols 42c06e002a Merge branch 'MDL-69231-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-06-15 10:59:34 +08:00
Ilya Tregubov a5cd8f3e91 Merge branch 'MDL-77542-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-15 10:36:59 +08:00
Ilya Tregubov 7a6deae378 Merge branch 'MDL-76733-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-15 10:23:09 +08:00
Andrew Nicols 13d0035479 Merge branch 'MDL-78165-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-15 10:00:01 +08:00
Andrew Nicols fb22161d75 Merge branch 'MDL-78478-402' of https://github.com/dasistwas/moodle into MOODLE_402_STABLE 2023-06-15 09:56:03 +08:00
Jake Dallimore 31e371e554 MDL-78066 enrol_lti: fix deep linking error in multiple grade items case
If an activity, like workshop or forum, has multiple grade items,
declarative binding of the grade item (line item) isn't supported.
Instead of throwing an exception, handle the case more elegantly
and just omit the 'add to gradebook' option for these activities.
2023-06-15 09:42:51 +08:00
Jake Dallimore 1aa2996451 MDL-78066 enrol_lti: test showing multi-grade-items failure
This test demonstrates the failure of the repository to properly fetch
published resources which are compatible with declarative line item
binding.
2023-06-15 09:42:48 +08:00
Andrew Nicols d33ae4187d MDL-76733 mod_assign: Remove JS requirement for time-based tests
Converting these tests to use an onlinetext submission and drop the JS
requirement means that they are much less susceptible to runtime issues,
and not susceptible to those caused by JS at all.
2023-06-15 09:34:06 +08:00
Andrew Nicols 1a6d3fe529 MDL-76733 mod_assign: Address random failure
This random failure was happening because of the time required to render
and interact with the file picker which sometimes exceeded 2 seconds,
depending on the speed of the machine running the tests.

Converting these tests to use an onlinetext submission and drop the JS
requirement means that they are much less susceptible to runtime issues,
and not susceptible to those caused by JS at all.
2023-06-15 09:33:42 +08:00
Ilya Tregubov ce7eed3bbc Merge branch 'MDL-78102-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-06-15 09:03:46 +08:00
AMOS bot 4ef6372aa4 Automatically generated installer lang files 2023-06-15 00:16:27 +00:00
Sara Arjona 289afaad9b Merge branch 'MDL-78055-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-14 16:54:52 +02:00
Sara Arjona 052c85bd72 Merge branch 'MDL-74824-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-14 16:51:06 +02:00
Sara Arjona 3cb0f37200 Merge branch 'MDL-76733-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-14 16:22:17 +02:00
David Bogner 9113605691 MDL-78478 forms: Fix repeated elements in dynamic forms 2023-06-14 15:39:05 +02:00
Meirza 352932e61f MDL-78165 lib: Added class properties that are not declared in classes
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-06-14 20:18:24 +07:00
Paul Holden 98080048cd MDL-78055 themes: account for undefined extrascsscallback config.
Where a theme didn't define this property, it would raise debugging
deprecation warnings in PHP8.1.
2023-06-14 13:51:09 +01:00
Paul Holden eb1b246855 MDL-78385 course: fix non-AJAX activity indentation URL parameter. 2023-06-14 13:00:40 +01:00
Sara Arjona 0c357b9b3f Merge branch 'MDL-76715-402' of https://github.com/aanabit/moodle into MOODLE_402_STABLE 2023-06-14 13:18:20 +02:00
Sara Arjona d0c63dda2e Merge branch 'MDL-64648-402_enrol_manual_expirynotify_default_in_enrol_instance' of https://github.com/vtos/moodle into MOODLE_402_STABLE 2023-06-14 13:08:19 +02:00
Jun Pataleta 4b90d6a142 Merge branch 'MDL-78466-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-14 16:00:25 +08:00
Jake Dallimore 0e0af39f4b Merge branch 'MDL-78144-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-14 14:16:24 +08:00
Ilya Tregubov 79d4938240 Merge branch 'MDL-70152-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-06-14 13:24:40 +08:00
Jun Pataleta 25be7facf2 Merge branch 'MDL-76445-402-patch' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-06-14 12:18:49 +08:00
Andrew Nicols 36d7db23d0 MDL-78466 cache: Add new result_found helper
This helper is intended to prevent recurrences of this issue by moving
the guess-work to something well tested.
2023-06-14 11:58:06 +08:00
Meirza 020f7e655a MDL-78144 libraries: Added #[AllowDynamicProperties] to ltiprovider
To prevent the PHP 8.2 warning about Dynamic Properties' deprecation,
the #[\AllowDynamicProperties] attributes was added.
2023-06-14 10:28:24 +07:00
Meirza b613c4bbde MDL-78163 lib: Added class properties that are not declared in form
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-06-14 09:53:22 +07:00
Jun Pataleta ace64f66e3 Merge branch 'MDL-78313-blocks-performance-MOODLE_402_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_402_STABLE 2023-06-14 10:15:36 +08:00
Andrew Nicols e528b5dab4 MDL-78466 cache: Perform strict test on static cache values
If a statically accelerated cache returns an empty array then the value
was still fetched from the non-static cache store.

The check of the `$result` should be strictly checked against `false`,
which is the value used if no value was found.
2023-06-14 09:27:25 +08:00
Ilya Tregubov eb0e8f6bd5 MDL-76445 gradereport_singleview: Fix Behat test
When you unenrol a user, the notification blocks some tertiary
navigation links.
2023-06-14 09:05:00 +08:00
vtos 76b28ab6c0 MDL-64648 enrol_manual: fixed default setting of 'expirynotify'
When creating a course, a manual enrolment instance is added by default. The instance settings should inherit the values of those
for the manual enrolment plugin and properly calculate its extra settings. The 'expirynotify' setting wasn't inherited correctly
in case it had 'Enroller + Enrolled' value.
A functional test was added to test the behaviour of settings inheritance.
2023-06-13 18:21:28 +02:00
Paul Holden 10bc8af009 MDL-78461 core: fix base plugininfo class reference to root directory. 2023-06-13 14:05:24 +01:00
Sara Arjona 32f001d98d MDL-78102 badges: Check empty backpack email/password
For backpack connection using OBv2.0, email and password can't be
blank.
This patch adds some extra checks to validate this and displays an
error to the users before trying to connect to the backpack.
Besides, the error displayed when any error is returned by the
backpack (like invalid credentials), has also been improved, to
make it clearer for the users.
2023-06-13 11:21:58 +02:00
sam marshall 029325bb3b MDL-78434 Lib: PHP 8.1 incompatible code relating to LDAP\Connection 2023-06-13 09:46:01 +01:00
Brendan Heywood 2f6ef17322 MDL-78313 admin: Improve performance of manage blocks page
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-06-13 17:49:57 +10:00
Ilya Tregubov 10d4819083 Merge branch 'MDL-76445-402-2' of https://github.com/mihailges/moodle into MOODLE_402_STABLE 2023-06-13 15:45:50 +08:00
Amaia Anabitarte aa85dad6c1 MDL-76715 mod_data: Remove data_records when the last field is deleted 2023-06-13 09:33:30 +02:00
Mihail Geshoski 3415229bf1 MDL-76445 gradereport_singleview: Usability fixes 2023-06-13 15:14:21 +08:00
Mihail Geshoski 40d2a8cb93 MDL-76445 gradereport_user: Usability fixes 2023-06-13 15:14:21 +08:00
Mihail Geshoski 932ebd1c2e MDL-76445 grade: Helper that returns all gradable users in a course 2023-06-13 15:14:21 +08:00
Jake Dallimore afd992fd6d Merge branch 'MDL-73052-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-06-13 14:44:37 +08:00
Andrew Nicols 167d24f052 MDL-78297 core: Bump version to update cache config
The missing version bump caused cache configuration to not be updated,
and the static acceleration cache size was therefore not updated. The
result here was that the static acceleration cache was constantly
emptied leading to an increased page load time.
2023-06-13 11:05:57 +08:00
michaelkotlyar f45045aa85 MDL-76840 mod_assign: Account for extension when calculating time left. 2023-06-13 14:53:02 +12:00
Anupama Sarjoshi cc2512d450 MDL-78369 Multiple choice: Increase Choice and feedback boxes size 2023-06-12 12:07:47 +01:00
Jun Pataleta 3a1b6ac250 Merge branch 'MDL-75937-402' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-06-12 16:10:31 +08:00
Stevani Andolo 56edfcf6d5 MDL-75937 admin: Fixed config data display inconsistency 2023-06-12 15:24:51 +08:00
Jake Dallimore cd7b95205b Merge branch 'MDL-78167-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-12 15:06:32 +08:00
Andrew Nicols c6d04cbb1c Merge branch 'MDL-78166-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-12 12:25:53 +08:00
Andrew Nicols 13ba731659 Merge branch 'MDL-78355-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-12 10:26:56 +08:00
Andrew Nicols 7886051f83 Merge branch 'MDL-78297-402' of https://github.com/MartinGauk/moodle into MOODLE_402_STABLE 2023-06-12 10:19:13 +08:00
Paul Holden b1b41636a4 MDL-77224 mod_h5pactivity: clean up attempt data on activity deletion. 2023-06-11 18:37:08 +01:00
Paul Holden fff6b8b710 MDL-77993 mod_lesson: ensure report action menu always present. 2023-06-11 18:35:09 +01:00
Paul Holden 64734d59af MDL-74824 user: fix custom change password URL in login notification. 2023-06-11 17:41:01 +01:00
Paul Holden 419fcadcc8 MDL-78018 mod_assign: format group name in grading table. 2023-06-11 15:02:31 +01:00
Paul Holden 900534adc0 MDL-77542 mod_assign: remove duplicate grade heading from grader.
It's already part of the subsequent rendered form.
2023-06-11 15:01:28 +01:00
Paul Holden a30b75f9f8 MDL-78172 mod_forum: ensure group names are correctly formatted. 2023-06-11 15:00:23 +01:00
Ilya Tregubov 8c989335be Moodle release 4.2.1 2023-06-10 14:07:52 +08:00
Justus Dieckmann 87dc0ccfc3 MDL-77591 mod_assign: Fix feedback zip import for group submissions
Import now checks whether assignment is an group submission and
matches group ids instead of user ids in that case.

Additionally check for original unchanged files to not import in
group files instead of user files.
2023-06-09 14:47:27 +02:00
Ilya Tregubov d4937c4527 weekly release 4.2+ 2023-06-09 13:14:22 +08:00
Sara Arjona 62e7dc94d9 Merge branch 'MDL-78415-402-enfix' of https://github.com/vmdef/moodle into MOODLE_402_STABLE 2023-06-08 20:33:07 +02:00
Víctor Déniz cf40395830 MDL-78415 lang: Fix typo in Behat tests 2023-06-08 18:48:39 +01:00
Víctor Déniz ab62e5f23f MDL-78415 lang: Fix Behat tests regressions after merging en_fix strings 2023-06-08 11:52:38 +01:00
Víctor Déniz a29056941b MDL-78415 lang: Add parameter to reopencolumn string 2023-06-08 11:51:59 +01:00
Helen Foster 78db6582ba MDL-78415 lang: Import fixed English strings (en_fix) 2023-06-08 11:50:02 +01:00
David Woloszyn 80db7a0873 MDL-78237 editor_tiny: Prevent navbar obscuring modal content 2023-06-08 17:15:12 +10:00
David Woloszyn f77fe1c652 MDL-78237 css: Make navbar height available for non sass-use 2023-06-08 17:15:12 +10:00
Sara Arjona b1ccbfc24d Merge branch 'MDL-77946-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 06:56:51 +02:00
Sara Arjona 8c9545ca78 Merge branch 'MDL-78308-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 06:48:35 +02:00
Andrew Nicols 5b48a61484 Merge branch 'MDL-75696_402_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_402_STABLE 2023-06-08 12:31:03 +08:00
Andrew Nicols ef3eb09347 Merge branch 'MDL-78364-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 12:18:50 +08:00
Andrew Nicols abff2a6570 Merge branch 'MDL-78008_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-06-08 12:10:28 +08:00
Andrew Nicols 15afb64771 Merge branch 'MDL-77933-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-08 12:03:17 +08:00
Andrew Nicols c8631653cd MDL-76838 core: Add unit test for invalid unicode sequences 2023-06-08 11:59:14 +08:00
Andrew Nicols 30add0c159 Merge branch 'MDL-76838-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 11:54:25 +08:00
Cameron Ball 2fbb766149 MDL-75898 assignfeedback_editpdf: Improve page count mismatch logic
MDL-45580 introduced the readonlypages filearea, and when loading
page images for an attempt, the code would check if the pages existed
, creating them if not. The code inside this block also contained
a guard clause for the case where no readonly pages existed - which
is a situation that should not happen. Whenever readonly pages are
requested, they should exist.

MDL-66626 introduced a situation where page counts not matching would
also retrigger page generation. However this led to a situation where
the guard clause could be entered when requesting readonly pages.

This patch refactors the guard clause, and improves the logic to
regenerate pages.
2023-06-08 11:44:19 +08:00
Cameron Ball 3fa41951f3 MDL-75898 assignfeedback_editpdf: Don't poll readonly pages
When requesting the readonly version of pages (which contain
teacher annotations), they should always be available - the
PHP side even throws an exception when they're not. This
means we don't need to worry about polling document converters
from the JS side and can just return the pages immediately.
2023-06-08 11:44:19 +08:00
Cameron Ball 3d02f36f87 MDL-75898 assignfeedback_editpdf: Add randomness to PDF annotations
The behat step "I draw on the pdf" creates the exact same line every
time it is called. This can cause issues in a situation like the following:

- Student uploads PDF
- Teacher annotates page 1
- Student edits submission, adding another PDF
- Teacher annotates page 1 again
- When the student looks at their annotated PDF it appears the same as
  before they added the second PDF (i.e., they don't see extra pages for
  the second PDF)

Exactly why this happens isn't clear, and in practice this probably never
happens because the chances of drawing the exact same line twice are almost
0. However, when testing the functionality added in MDL-45580 it was causing
issues.
2023-06-08 11:44:19 +08:00
Andrew Nicols dcd20bec34 Merge branch 'MDL-78026-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 11:36:40 +08:00
Andrew Nicols fec48e90ac Merge branch 'MDL-77264-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-08 11:34:06 +08:00
Andrew Nicols 1a469cda51 Merge branch 'MDL-76821-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-08 11:29:11 +08:00
Jake Dallimore f98b725610 MDL-77933 enrol_lti: return site name and logo during registration
Instead of the Moodle icon and the 'moodle' lang string, return the
site fullname and compact logo during dynamic registration.
2023-06-08 11:28:38 +08:00
Andrew Nicols cc9f2527a8 Merge branch 'MDL-77799-m402' of https://github.com/sammarshallou/moodle into MOODLE_402_STABLE 2023-06-08 11:21:14 +08:00
Andrew Nicols 8e5f9ca9d4 Merge branch 'MDL-78408-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-08 11:05:20 +08:00
Jun Pataleta d247ea08e9 Merge branch 'MDL-78036_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-06-08 11:03:33 +08:00
Andrew Nicols eab902354f Merge branch 'wip_MDL-78400_m42' of https://github.com/gjb2048/moodle into MOODLE_402_STABLE 2023-06-08 10:51:34 +08:00
Andrew Nicols d3e4957556 Merge branch 'MDL-76406-402' of https://github.com/safatshahin/moodle into MOODLE_402_STABLE 2023-06-08 10:37:53 +08:00
Jun Pataleta 40b68fd88f Merge branch 'MDL-76842-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-06-08 10:34:37 +08:00
Jun Pataleta c180b1babd Merge branch 'MDL-78229-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-06-08 10:30:34 +08:00
Jun Pataleta a1e281a31d Merge branch 'MDL-78431-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-06-08 10:28:25 +08:00
Jake Dallimore ab12596a7b MDL-76842 enrol_lti: fix user record updates in user_repository
Only call user_update_user when the relevant user data has changed,
preventing unnecessary user_updated events. This also removes the
line setting timemodified on the user since user_update_user already
handles this.
2023-06-08 10:28:24 +08:00
Jake Dallimore fd5585777f MDL-76842 enrol_lti: test confirming the erroneous user_updated events
This test will fail until the fix - only updating users when data has
changed - is put in place in the following commit.
2023-06-08 09:37:45 +08:00
Jake Dallimore 5132a27822 MDL-76842 auth_lti: don't update the user unless data has changed
When receiving data from the LTI launch, or service call, only update
the user record when we know something has changed. This prevents the
creation of many \core\event\user_updated events.
2023-06-08 09:37:44 +08:00
Stevani Andolo 9f6fbc11dd MDL-78215 core: Added support unit test 2023-06-08 09:36:40 +08:00
Stevani Andolo a801a741b9 MDL-78215 core: support checking if 0.0.0.0 is in subnet 2023-06-08 09:36:40 +08:00
Jake Dallimore 685be3d41b MDL-76842 auth_lti: don't update the user after membership creation
This isn't required and generates excess events. The only thing update
does, other than update the user fields, is to update the picture, but
in this case, that's unset in membership-based auths anyway, so it's
entirely safe to remove this.
2023-06-08 09:36:17 +08:00
Jake Dallimore 0e504f73ee MDL-76842 auth_lti: test confirming the erroneous user_updated events
This test will fail until the fix - only updating users when data has
changed - is put in place in the following commit.
2023-06-08 09:36:16 +08:00
Jun Pataleta 7dfcc7e3f5 Merge branch 'MDL-78378-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-06-07 23:25:42 +08:00
Jun Pataleta 35500db40c Merge branch 'MDL-76745_402_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_402_STABLE 2023-06-07 22:54:16 +08:00
Andrew Nicols cfb5b76ba7 MDL-78431 core: Abort after config for source maps 2023-06-07 21:07:43 +08:00
Sara Arjona ff68353e39 Merge branch 'MDL-78322-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-07 12:43:03 +02:00
Sara Arjona 0f410c087a Merge branch 'MDL-78352-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-07 12:41:11 +02:00
Sara Arjona e160cdd8a7 Merge branch 'MDL-78047-402' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-06-07 18:14:20 +08:00
Sara Arjona d25ad8aaf9 Merge branch 'MDL-78010-402' of https://github.com/ferranrecio/moodle into MOODLE_402_STABLE 2023-06-07 18:14:20 +08:00
Sara Arjona c938c41de8 Merge branch 'MDL-78143-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-07 18:14:19 +08:00
Sara Arjona 04996f2cf8 Merge branch 'MDL-78147-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-07 18:14:19 +08:00
Martin Gauk 801ccfebe4 MDL-78297 core: Less cache lookups in deprecated capabilities feature
Avoid use of $cache->has.
2023-06-07 12:07:14 +02:00
sam marshall 5481c31fe6 MDL-77799 webservice_rest: unhandled exception should go in server log 2023-06-07 10:02:05 +01:00
Jake Dallimore 79a9167a1e MDL-78408 core: fix restoration of anchor to wantsurl during login 2023-06-07 14:28:57 +08:00
Stevani Andolo 4d035d0f80 MDL-78047 core_courseformat: Wrapping added to text and media activity 2023-06-07 12:58:52 +08:00
Paul Holden cd885856f3 MDL-77193 mnet: correct sorting of access control table. 2023-06-07 09:53:31 +08:00
Meirza 5f67d77aae MDL-78147 h5p: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-06-07 05:17:33 +07:00
Ferran Recio d59a10108c MDL-78010 mod_label: improve upgrade performance 2023-06-06 21:33:16 +02:00
Meirza b4cf5c50bf MDL-78143 lib: Added class properties in html purifier
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-06-06 21:48:13 +07:00
Paul Holden e5e6bb9764 MDL-78355 xapi: correct coverage notation for delete state test. 2023-06-06 12:04:09 +01:00
Eloy Lafuente (stronk7) 71440dc236 MDL-78036 behat: Move all links from old docs to new counterparts 2023-06-06 12:38:49 +02:00
Petr Skoda 75264720ac MDL-76683 core_group: fix template 2023-06-06 09:33:15 +00:00
Hiroto Kagotani 735c2c6b47 MDL-76936 course: purge course cache on resetting start date 2023-06-06 11:22:39 +02:00
Paul Holden 319d3954f8 MDL-78364 reportbuilder: earlier calculation of schedule recipients. 2023-06-05 16:22:30 +01:00
Gareth Barnard 0fc6e59121 MDL-78400 JavaScript: Building JS puts build files in src dir on Win. 2023-06-05 14:54:24 +01:00
Luca Bösch ace6e8db3d MDL-78229 quiz: quiz editing page less narrow.
This is a backport of MDL-77872.
2023-06-02 08:34:08 +02:00
Sara Arjona 2d4d196f97 MDL-73052 page: Fix page description when it has only an image
This is as regression of MDL-72413, when description was moved to a
standard module API.
In some cases, when description has only images, it's was not
displayed.
2023-06-02 08:20:42 +02:00
Sara Arjona 2970f0f433 MDL-78378 survey: Display default introduction when description is empty
This is a regression when the activity pages were redessigned in Moodle
4.0. The default introduction should be displayed when the activity
description is empty.
2023-06-02 08:19:53 +02:00
Simey Lameze 719b351f86 MDL-69231 behat: remaining work for role capability generator
This commit does few things:
* Unify data generators usage to role short name.
* Replace remaining manual steps to use the new data generator.
* Also replaced other manual steps to set config to use data generators.
* Tidy up of some tests, aligning pipes and splitting one line steps into multiple lines.
* Fixes tests to have one Given/When/Then per scenario.
2023-06-02 12:45:36 +08:00
Andrew Nicols fc2b45f960 MDL-69231 behat: Update tests to use new generator 2023-06-02 12:45:36 +08:00
Andrew Nicols fb6e93d98a MDL-69231 tests: Add role capability setting generator 2023-06-02 12:45:36 +08:00
Andrew Nicols 1281e34e02 MDL-69231 tests: Improve existing role generator
Support definition of context levels and permissions.
2023-06-02 12:45:36 +08:00
Safat 4899d8c11a MDL-76406 core: Add environment check for versions not supporting 8.2 2023-06-02 12:05:24 +10:00
Ilya Tregubov 20302d4f86 weekly release 4.2+ 2023-06-02 09:55:35 +08:00
Ilya Tregubov d1053fe035 Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-06-02 09:55:33 +08:00
Mark Johnson 5d361ee332 MDL-76745 cache: Implement cache_loader_with_locking in cache_disabled
If a plugin attempts to do something that would lock coursemodinfo cache
during install (such as creating a course module), this currently fails
as check_lock_state is not implemented in cache_disabled. Adding the
cache_loader_with_locking interface ensures that all lock methods are
implemented.
2023-06-01 15:04:39 +01:00
Brendan Heywood a43b2b2998 MDL-77749 admin: Fix code error with unset config duration 2023-06-01 13:32:37 +08:00
Jun Pataleta cf46e93304 Merge branch 'MDL-78092-m402' of https://github.com/sammarshallou/moodle into MOODLE_402_STABLE 2023-06-01 11:36:32 +08:00
Andrew Nicols bb7b0f996d Merge branch 'MDL-78383_m402' of https://github.com/jrchamp/moodle into MOODLE_402_STABLE 2023-06-01 11:12:45 +08:00
Andrew Nicols 9c5e63cf17 Merge branch 'MDL-78146-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-01 11:07:03 +08:00
Andrew Nicols 5d89ce0058 Merge branch 'MDL-78327_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-06-01 10:52:31 +08:00
Ilya Tregubov 6143ad4b1b Merge branch 'MDL-78196-402' of https://github.com/jleyva/moodle into MOODLE_402_STABLE 2023-06-01 10:40:17 +08:00
Andrew Nicols d54edef0f7 Merge branch 'MDL-78142-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-06-01 09:54:24 +08:00
Ilya Tregubov 02d2e80bae Merge branch 'MDL-77259-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-06-01 09:29:39 +08:00
Ilya Tregubov 5cf5134a12 Merge branch 'MDL-75961-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-06-01 09:08:02 +08:00
AMOS bot 5112c89929 Automatically generated installer lang files 2023-06-01 00:11:06 +00:00
Juan Leyva fab3b2ccbc MDL-78196 user: Fix files used space check 2023-05-31 17:15:18 +02:00
Sara Arjona 56f75d7aea Merge branch 'MDL-76693-402' of https://github.com/roland04/moodle into MOODLE_402_STABLE 2023-05-31 17:08:55 +02:00
Simey Lameze 2f10bf1a1f MDL-77547 behat: run recalculate task before checking values 2023-05-31 15:04:54 +02:00
Tim Hunt 0384f8dfa0 MDL-78327 question stats: store same timestamp for all question stats 2023-05-31 12:02:23 +01:00
Sara Arjona e05576d74c Merge branch 'MDL-77547-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-05-31 12:51:25 +02:00
Sara Arjona 01b577ee65 Merge branch 'MDL-77907-402' of https://github.com/andelacruz/moodle into MOODLE_402_STABLE 2023-05-31 12:18:07 +02:00
Sara Arjona 0f5a1a61f7 Merge branch 'MDL-78145-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-05-31 12:09:24 +02:00
Sara Arjona b4479d7981 Merge branch 'MDL-78148-402' of https://github.com/ferranrecio/moodle into MOODLE_402_STABLE 2023-05-31 11:42:12 +02:00
Sara Arjona 2a2badacb2 Merge branch 'MDL-73648-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-31 11:38:13 +02:00
Jonathan Champ eb0585ea72 MDL-78383 cache: Remove unused class property configlockmappings 2023-05-30 19:45:28 -04:00
Ilya Tregubov 7faf41dce5 Merge branch 'MDL-73138-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-30 12:54:09 +08:00
Ilya Tregubov 6aa360ae83 Merge branch 'MDL-77723-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-30 12:44:28 +08:00
AMOS bot 804e8b62da Automatically generated installer lang files 2023-05-30 00:10:40 +00:00
Jun Pataleta 1092a998ae Merge branch 'MDL-78314-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-05-29 17:35:15 +08:00
Mikel Martín 027e3c6660 MDL-76693 core_course: Fix activity chooser summary overlap
In activity chooser modal, there is an overlap issue in the information "sub-page".
Changing some classes in the layout solves the problem.
2023-05-29 09:38:32 +02:00
Ferran Recio 2b407d891f MDL-78148 core_courseformat: reduce the use of uniqid in templates 2023-05-29 08:40:20 +02:00
Angelia Dela Cruz 865ca1d6a2 MDL-70152 behat: Forum behat generators use UI
Behat cleanup and optimisation
2023-05-29 10:30:44 +08:00
Angelia Dela Cruz 0f11899e33 MDL-70152 behat: Forum behat generators use UI
Replace steps that manually add forum and forum post instances
via the UI and use Behat generators. This improves the speed of
Behat test runs.
2023-05-29 10:30:32 +08:00
Andrew Nicols da0459f75f MDL-70152 forum: Create behat data generator
* Convert track_read_posts.feature to use activity and discussion
data generators as exmaple.

Co-authored-by: Jun Pataleta <jun@moodle.com>
2023-05-29 10:30:32 +08:00
Meirza 8a5b788914 MDL-76673 atto: Check color contrast only on elements that have text
If the content in Atto is wrapped by an element with only a background color, without text color,
the accessibility checker will use the parent text-color as the foreground color, which is owned by form-control,
it becomes a problem if the wrapped element background using #34274f and the parent text-color is #495057 then
the low contrast as a result.

To avoid such a situation, the patch will only calculate color contrast if only the element has text,
so it will give results per element if the accessibility checker is unsatisfied.
2023-05-27 14:01:09 +07:00
Meirza 5d893a4748 MDL-76673 tiny: Check color contrast only on elements that have text
If the content in Tiny is wrapped by an element with only a background color, without text color,
the accessibility checker will use the parent text-color as the foreground color, which is owned by form-control,
it becomes a problem if the wrapped element background using #34274f and the parent text-color is #495057 then
the low contrast as a result.

To avoid such a situation, the patch will only calculate color contrast if only the element has text,
so it will give results per element if the accessibility checker is unsatisfied.

The patch also changes the selected element from 'body > *' to 'body *',
so it will return all elements (parents and children) in the content instead of parents only.

And minor modifications on the warning_content.mustache to fix the numbering format.
2023-05-27 14:01:09 +07:00
Meirza 1b284001ac MDL-78146 lib: Added missing class properties in phpmailer
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-27 11:27:14 +07:00
Meirza b3350a0ea7 MDL-78145 lib: Added missing class properties in pear
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-27 11:11:29 +07:00
Meirza 0ffed15ee4 MDL-78142 lib: Added class properties that are not declared in bennu
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-27 09:50:11 +07:00
meirzamoodle a385c75dca MDL-78141 libraries: Apply some changes from ADOdb 5.22.5
To make Moodle 4.2 compatible with PHP 8.2 regarding the deprecation of dynamic properties,
several changes have been made from version 5.22.5 (https://github.com/adodb/adodb/compare/v5.22.4...v5.22.5) and
then applied the changes to Moodle 4.2.
2023-05-27 09:48:13 +07:00
Meirza 62bd66ccf9 MDL-78166 lib: Added missing class properties in portfolio
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

Removing the existing $id property at portfolio_format_leap2a_writer, because
the $id only needed inside the __construct().
2023-05-27 09:29:33 +07:00
Meirza 0e7a7318af MDL-78167 lib: Added missing class properties in tests
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

Adding @runTestsInSeparateProcesses and removing setUp() and tearDown() at the
component_test.php, so the test will run in a separate process making sure that
whatever changes happen to the in-memory version of the component class in its thread,
therefore does not impact other tests and makes it more safe.
2023-05-27 09:27:10 +07:00
Eloy Lafuente (stronk7) d20cf16533 MDL-78036 behat: Fix php81 deprecation warning 2023-05-26 18:04:18 +02:00
Luca Bösch 3e13847324 MDL-78314 quiz: style button fieldset in "Manually grade question". 2023-05-26 15:10:33 +02:00
Paul Holden 24f646038c MDL-78352 webservice: use default user context page heading. 2023-05-26 12:27:40 +01:00
Wehr Mario b29be1a2ed MDL-78004 cache: Fix deprecated null value in Redis connect 2023-05-26 13:24:32 +02:00
Paul Holden 928760f865 MDL-73648 badges: add Behat generator class for creating badges. 2023-05-26 12:19:20 +01:00
Paul Holden 9a3f097da5 MDL-73138 group: remove double encoding of group/role names. 2023-05-26 10:25:42 +01:00
Paul Holden 1198d57f71 MDL-73138 user: avoid double encoding participant filter values. 2023-05-26 10:25:42 +01:00
Sara Arjona 6b8884e13b weekly release 4.2+ 2023-05-26 09:28:41 +02:00
Sara Arjona 7edbca66f9 Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-05-26 09:28:36 +02:00
Jun Pataleta e0c8854480 Merge branch 'MDL-78346-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-05-25 16:22:41 +08:00
Andrew Nicols 7d5b30290f MDL-78346 tool_langimport: Print any notifications before redirect 2023-05-25 14:54:58 +08:00
Jun Pataleta 3e2bf77656 Merge branch 'MDL-78339-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-25 12:01:10 +08:00
Jun Pataleta 15b0cd25e6 Merge branch 'MDL-76065-402' of https://github.com/lameze/moodle into MOODLE_402_STABLE 2023-05-25 11:57:05 +08:00
Jun Pataleta e99fcecdf9 Merge branch 'MDL-78320-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-25 11:48:47 +08:00
Jun Pataleta 5feb510035 Merge branch 'MDL-78346-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-05-25 11:43:43 +08:00
Andrew Nicols cae92e5a92 MDL-78346 tool_langimport: Redirect after action to prevent resubmission 2023-05-25 11:14:15 +08:00
Andrew Nicols 1342f28224 MDL-78346 tool_langimport: Prevent uninstallation of invalid targets 2023-05-25 11:14:14 +08:00
Andrew Nicols b0b214bbf2 Merge branch 'MDL-77341-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-05-25 10:46:32 +08:00
Andrew Nicols 1ff32127d4 Merge branch 'MDL-78307-402' of https://github.com/dpalou/moodle into MOODLE_402_STABLE 2023-05-25 10:42:57 +08:00
Andrew Nicols a443a29b79 Merge branch 'MDL-77995-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-25 09:50:34 +08:00
Paul Holden f92c748a2d MDL-78320 quiz_overview: format group names in overview report. 2023-05-24 16:19:32 +01:00
Andrew Nicols af0f37405f Merge branch 'MDL-77983-402' of https://github.com/rjnl/moodle into MOODLE_402_STABLE 2023-05-24 21:15:03 +08:00
= 3180479b87 MDL-63120 core_badges: Avoid multiple joins in sql statement 2023-05-24 13:35:27 +02:00
Dani Palou fb71a7a8c7 MDL-78307 quiz: Fix URL passed to secure_window.init_close_button 2023-05-24 13:10:45 +02:00
Dani Palou b10afcdd4c MDL-78307 quiz: Fix contexturl passed to attempt_overdue message 2023-05-24 13:10:45 +02:00
Paul Holden 93c35a89bb MDL-78339 webservice: correctly namespace external API. 2023-05-24 09:38:08 +01:00
Jun Pataleta 43fdf37a96 Merge branch 'MDL-78005-402' of https://github.com/davewoloszyn/moodle into MOODLE_402_STABLE 2023-05-24 12:06:45 +08:00
Simey Lameze b490a0ae08 MDL-75961 behat: review and enhance mod_imscp tests
This commit makes the following improvements to mod_imscp tests:
* Removes unnecessary @javascript and @_file_upload tags from non-JS tests.
* Removes user/enrol data generation from tests that can be performed as admin.
* Removes "I log out" and other unnecessary steps.
2023-05-24 10:40:44 +08:00
Angelia Dela Cruz 80410a354b MDL-75961 behat: IMSCP behat generators use UI
Replace steps that manually add IMSCP instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2023-05-24 10:40:44 +08:00
Sara Arjona b1b0c2d59b Merge branch 'MDL-78176_402' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_402_STABLE 2023-05-23 17:45:52 +02:00
Sara Arjona aa7aec1088 Merge branch 'MDL-78242-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-23 17:36:54 +02:00
Jun Pataleta 7bae6c8ca6 Merge branch 'MDL-76688/402' of https://github.com/skodak/moodle into MOODLE_402_STABLE 2023-05-23 15:22:14 +08:00
Angelia Dela Cruz 7a5806d3cb MDL-77547 Behat: Coverage to check for bad multichoice questions 2023-05-23 15:16:04 +08:00
Simey Lameze 279cc50e5c MDL-76065 behat: Review and enhance mod_lti Behat tests
In this commit, the following improvements were made to the mod_lti Behat tests:

* Replaced manual steps with data generators to set completion.
* Eliminated unnecessary user and course enrolments data generation as some tests can be performed as an admin.
* Removed the @javascript tag from non-JS tests.
* Updated the LTI data generator to generate an internal Moodle URL in the toolurl field, enabling the use of XML files.
2023-05-23 12:13:53 +08:00
Angelia Dela Cruz dc4ff6a2f5 MDL-76065 behat: LTI behat generators use UI
Replace steps that manually add LTI instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2023-05-23 12:13:53 +08:00
Andrew Nicols 7c64a411d7 MDL-76733 mod_assign: Tidy up availability behat tests
This feature had lots of small issues and it made sense to fix it whilst
investigating a query:

* most of the steps do not require JavaScript
* it uses the UI to set an admin setting, for every scenario:
** only 3-4 of the scenarios actually test that setting
** it is very slow to do it his way when we have a generator step we can use
* we create two assignments in the Background, but each test only uses one of them
* we create the assignments in the Background with a generator, but
  update them to modify various settings in each Scenario using the UI
  when we should just create one assignment for each test and set it up
  correctly for that Scenario
2023-05-23 10:55:42 +08:00
Andrew Nicols fb343534d0 Merge branch 'MDL-78170-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-23 10:28:05 +08:00
Andrew Nicols b4935649b3 Merge branch 'MDL-78087-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-05-23 10:26:39 +08:00
AMOS bot 0d426e571a Automatically generated installer lang files 2023-05-23 00:10:30 +00:00
Paul Holden b938b53096 MDL-76838 backup: remove invalid utf8 code sequences writing XML.
The surrogate blocks FFFE and FFFF are non-characters, specifically
disallowed in the character range for XML documents.
2023-05-22 21:04:07 +01:00
Paul Holden 525b69dc69 MDL-78322 tool_cohortroles: don't assign roles to deleted users. 2023-05-22 20:14:34 +01:00
Tim Hunt 5630f86d81 MDL-78008 qtype_multianswer: random guess score with missing subqs
Sometimes, due to other bugs, subquestions can get lost, so the code
needs to be robust to this.
2023-05-22 17:01:59 +01:00
Sara Arjona 30ac87781a Merge branch 'MDL-78211-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-22 17:41:42 +02:00
Sara Arjona 2b9a9286d0 Merge branch 'MDL-78226-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-22 17:29:21 +02:00
Sara Arjona 2e6d8b72b1 Merge branch 'MDL-78225-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-22 12:04:13 +02:00
sam marshall 2724eb6041 MDL-78092 Cache: Modinfo locking with Redis store does not work
The feature added in 4.1 to lock the modinfo cache does not work when
using Redis, because:

* The API to acquire a cache lock is confusing, and the code did not
  check that it successfully acquired a lock before going on to build
  the cache anyway.

* Unlike the other types of cache lock, the Redis store did not retry
  the lock for a timeout period before giving up and failing.

This change fixes both points.
2023-05-22 10:44:15 +01:00
Jun Pataleta df8413ade0 Merge branch 'MDL-78157-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-05-22 15:29:36 +08:00
Andrew Nicols 414f0df046 MDL-78157 js: Be more careful about inserting missing module names
It is perfectly legitimate to create and/or use a method named `define`
in JS outside of RequireJS.

Unfortunately our requirejs.php wrapper is dumb and does not understand
this.

In the long term we need to stop doing this at all. We really should be
able to already, but every time I try to something prevents it.

In the interim, this change adds a secondary check to see if there is an
existing define which _does_ have the right name in it already.
2023-05-22 14:40:41 +08:00
Jun Pataleta 29a7e00f9c Merge branch 'MDL-78323-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-05-22 14:29:10 +08:00
Andrew Nicols 81b9a51fb7 MDL-78323 gradereport_grader: Fix jsdoc syntax 2023-05-22 09:23:47 +08:00
Meirza 03c461ab87 MDL-77341 mnet: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-20 21:38:35 +07:00
Anupama Sarjoshi c2fbb10a52 MDL-78176 Question: Fix D&D onto image and D&D markers theme issue 2023-05-19 16:31:44 +01:00
Jun Pataleta 4781b41631 weekly release 4.2+ 2023-05-19 21:13:51 +08:00
Jun Pataleta caf4da762c Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-05-19 21:13:48 +08:00
Andrew Nicols 0ab5bf01f0 MDL-77733 behat: Remove extraneous no-axe option
There is no need for no-axe if we make axe a boolean value. We already
have automatic support for negated boolean flags.
2023-05-19 11:27:57 +08:00
Mark Johnson 078782e656 MDL-75696 quiz: Fix restoring pre-4.0 quizzes with random questions
Restoring multiple quizzes from a pre-4.0 backup was broken when
the quizzes shared a random question. This is because after the
first quiz created a set reference in place of the random question,
it deleted the question record so it was not there for the second
quiz to use. This change tracks the IDs of random questions so
they can be deleted at the end.
2023-05-18 15:55:39 +01:00
Mark Johnson 2b6456c1d0 MDL-75696 quiz: Set default value for includingsubcategories on restore 2023-05-18 15:55:39 +01:00
Mark Johnson a37ce627a8 MDL-75696 backup: Fix backup version checks
Several version checks were incorrectly using
restore_controller::info::moodle_release instead of moodle_version as a
version number. This replaces all of those checks with a common pair of
methods to make the checks clearer and more maintainable.
2023-05-18 15:55:38 +01:00
Paul Holden 26b885edb6 MDL-78308 output: better parsing of custom menu item configuration.
Previously certain values would cause deprecation notices in PHP8.1.
2023-05-18 10:19:20 +01:00
Jun Pataleta b514f0bb1d Merge branch 'MDL-78116-402' of https://github.com/andrewnicols/moodle into MOODLE_402_STABLE 2023-05-18 12:11:39 +08:00
Andrew Nicols 12dc12c954 Merge branch 'MDL-77451-402' of https://github.com/rezaies/moodle into MOODLE_402_STABLE 2023-05-18 11:59:41 +08:00
Jun Pataleta ec7b3cab86 Merge branch 'MDL-78135-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-18 11:54:58 +08:00
Andrew Nicols 6808c8f3b2 Merge branch 'MDL-78260_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-05-18 11:51:32 +08:00
Andrew Nicols 109a0ffeb9 Merge branch 'MDL-78151-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-18 11:48:26 +08:00
Simey Lameze 4a04cda71b MDL-77733 behat: enable Axe accessibility tests by default 2023-05-18 11:43:57 +08:00
David Woloszyn a0920d8b8d MDL-78005 editor_tiny: Declared vars to supress error logging 2023-05-18 13:02:55 +10:00
Jun Pataleta 11bf54289f Merge branch 'MOODLE_402_STABLE_MDL-78048' of https://github.com/mattporritt/moodle into MOODLE_402_STABLE 2023-05-18 10:14:47 +08:00
Tim Hunt 666708b561 MDL-78260 quiz stats: fix View details for random questions 2023-05-17 09:10:20 +01:00
Rajneel Totaram a1162e3943 MDL-77983 core_user: Avoid passing nulls to base64_decode 2023-05-17 19:37:15 +12:00
Ilya Tregubov 9de9651809 Merge branch 'MDL-78152-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-17 15:07:17 +08:00
Sara Arjona dcb3ce31ce Merge branch 'MDL-77350-402' of https://github.com/meirzamoodle/moodle into MOODLE_402_STABLE 2023-05-17 08:26:39 +02:00
Meirza 8b641a1b0d MDL-77350 tag: Added class properties that are not declared 2023-05-17 09:00:09 +07:00
Meirza 8fa53a336e MDL-77350 competency: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 5a22258f42 MDL-77350 favourites: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

// Removed test_add_malformed_favourite()
PHPUnit version >= 9.5 no longer converts PHP deprecations to exceptions by default.
To comply with PHP 8.2, which will deprecate the dynamic properties,
we need to remove test_add_malformed_favourite()
because the test will raise a warning for dynamic property deprecations.
2023-05-17 09:00:09 +07:00
Meirza 92cba2c5ba MDL-77350 auth: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 7d8a40fe3e MDL-77350 availability: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 2de2d6bc30 MDL-77350 badges: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza beb55edffc MDL-77350 blocks: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza ae8466162d MDL-77350 blog: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza b5f98e022d MDL-77350 cache: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza b9d21ee2ad MDL-77350 calendar: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 04fb9beb20 MDL-77350 comment: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 3be559b763 MDL-77350 completion: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 88a1d4d4c2 MDL-77350 course: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza e0045688b3 MDL-77350 enrol: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza c645df564a MDL-77350 filter: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 8bac8a2da7 MDL-77350 media: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 2e339446d8 MDL-77350 message: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:09 +07:00
Meirza 1c9379ab09 MDL-77350 mod_h5pactivity: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
Meirza 24ad6848aa MDL-77350 portfolio: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
Meirza da43ea4ef7 MDL-77350 rating: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
Meirza f49f24c516 MDL-77350 report: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
Meirza 473cfc369d MDL-77350 search: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
Meirza 0ba9466281 MDL-77350 webservice: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-17 09:00:08 +07:00
AMOS bot 9e6f6c0e7e Automatically generated installer lang files 2023-05-17 00:11:02 +00:00
Matt Porritt b87a75110b MDL-78048 Site Registration: Course Dates
Course date registration data reports correctly.

MDL-77306 added a count of how many courses there are
without start and end dates. However, all courses have
a start date, it is only the end date that is optional.
This patch fixes the data collection and makes the lang
string describing it clearer.
2023-05-17 09:03:20 +10:00
Jun Pataleta 52bcdf9e06 Merge branch 'MDL-77439-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-05-16 20:38:50 +08:00
Peter Mayer f113d4c116 MDL-77439 lib_filebrowser: Splitup query to speedup get_courses 2023-05-16 20:37:47 +08:00
Paul Holden 16bac432fd MDL-78026 group: format retrieved group names from external methods. 2023-05-16 10:10:01 +01:00
Paul Holden 4e28613a16 MDL-77264 grade: define fallback name of abstract export event. 2023-05-16 09:54:34 +01:00
Paul Holden 1df40c823e MDL-77259 tool_monitor: use core component API for event list.
The previous method of hardcoded filepaths, specifically for events
belonging to core, meant that any events belongs to core subsystems
were omitted (core_customfield, core_h5p, core_payment, etc).
2023-05-16 09:50:17 +01:00
Angelia Dela Cruz 5dfec00bb1 MDL-77907 Behat: Coverage for duplicating competency framework 2023-05-16 15:45:05 +08:00
Jake Dallimore c00c6dd4cf Merge branch 'MDL-77930-402' of https://github.com/rjnl/moodle into MOODLE_402_STABLE 2023-05-16 10:49:46 +08:00
Jake Dallimore 0f687a9028 Merge branch 'MDL-78120-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-05-16 10:44:49 +08:00
Jun Pataleta 1d2b0ade40 Merge branch 'MDL-75576_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-05-16 09:59:11 +08:00
Ilya Tregubov a5f2c1d591 Merge branch 'MDL-77840-402' of https://github.com/davewoloszyn/moodle into MOODLE_402_STABLE 2023-05-16 09:48:13 +08:00
Andrew Nicols 5e59ad2b6e Merge branch 'MDL-77432-402' of https://github.com/lucaboesch/moodle into MOODLE_402_STABLE 2023-05-15 22:12:31 +08:00
Andrew Nicols 441003231f Merge branch 'MDL-78149-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-15 22:06:20 +08:00
Andrew Nicols 54c8336373 Merge branch 'MDL-78140-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-15 22:03:44 +08:00
Paul Holden e3ac233307 MDL-78242 roles: consistently check course contact config. 2023-05-15 13:04:39 +01:00
Tim Hunt 4d263b0505 MDL-75576 quiz/question statistics: don't expire by time
Previously, a set of calculated quiz statistics would only 'last' for
15 minutes. Then they would be considered invalid and not used.

Now, computed statistics are kept indefinitely. Instead, when a new
batch of values are computed for a particular set of settings, older numbers
for the same settings are deleted first. Therefore,
question_stats_cleanup_task is no more.
2023-05-15 10:03:27 +01:00
Tim Hunt 25953f9c7f MDL-75576 quiz statistics: don't time-limit the use of cached values
This should have been done as part of  MDL-74762, but was missed.
2023-05-15 10:03:26 +01:00
Tim Hunt b112cee58c MDL-75576 quiz statistics: don't compute when a user views the qbank
Previously, when users viewed the question bank, if the quiz statistics
had not already been calculated, we would try to compute them there an then.
This could be very, very slow, leading to session lock problems.

Now, we never try to compute the statistics on the fly. Instead, we rely
on the existing \quiz_statistics\task\recalculate scheduled task to do it.
2023-05-15 10:03:26 +01:00
Tim Hunt bc7dacecb6 MDL-75576 question bank: bulk-load statistics for all questions at once
There is a new method on the column class, for the column to declare any
statistics it requires. The question then efficiently loads all those
statistics in one go, and makes them available as the columns are
rendererd, or do any subsequent processing.
2023-05-15 10:03:26 +01:00
Tim Hunt d1fcfd1de2 MDL-75576 qbank_statistics: remove copy-pasted PHPdoc comments
These methods are already correctly documented on the base class.
2023-05-15 10:03:25 +01:00
Luca Bösch 32bc50a135 MDL-78120 login: handle empty wantsurl on login with alternateloginurl. 2023-05-15 10:20:24 +02:00
Paul Holden 02e893a575 MDL-77995 javascript: more precise path matching building JS. 2023-05-15 09:05:44 +01:00
Paul Holden 59c75c928d MDL-77723 user: ensure identity refers to a valid custom profile field. 2023-05-15 09:03:34 +01:00
Andrew Nicols c2a74815c0 Merge branch 'MDL-78156_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-05-15 12:43:38 +08:00
Jun Pataleta 9ac38f5db6 Merge branch 'MDL-76903-402' of https://github.com/laurentdavid/moodle into MOODLE_402_STABLE 2023-05-15 12:06:09 +08:00
Andrew Nicols 04b35cb3db Merge branch 'MDL-78125-402' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-05-15 11:57:59 +08:00
Jun Pataleta c6cc0449ed MDL-78125 qtype_multianswer: Convert popover trigger to link
According to Boostrap Popovers documentation for popovers triggered
on focus:
"For proper cross-browser and cross-platform behavior, you must use the
<a> tag, not the <button> tag, and you also must include a tabindex
attribute."
2023-05-12 22:47:18 +08:00
Luca Bösch 30f1f0778f MDL-77432 mod_assign: Confirm submission page standard and not incourse 2023-05-12 09:20:14 +02:00
Ilya Tregubov f9edf5c1be weekly release 4.2+ 2023-05-12 08:56:43 +08:00
Ilya Tregubov c4f7a44824 Merge branch 'install_402_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_402_STABLE 2023-05-12 08:56:41 +08:00
Paul Holden 26dbb8466a MDL-78226 contentbank: verify presence of bank heading element. 2023-05-11 23:16:29 +01:00
Paul Holden 2fb84af337 MDL-78225 output: add sesskey for post requests only in renderables. 2023-05-11 22:48:48 +01:00
Laurent David 717c74a448 MDL-76903 mod_book: Fix activity completion
* Check only visibles pages to set completion status.
* Make sure we have consistent completion value in API and on the view page.
2023-05-11 12:09:26 +02:00
Paul Holden 4a2e621012 MDL-78140 analytics: improve context restrictions manager test.
This test apparently fails sporadically on Oracle, without obvious
causes. The failure however was hard to interpret, and the test
itself made a lot of assumptions about the system re. naming of
categories/courses. This could be prone to errors, so improve that.
2023-05-11 09:37:46 +01:00
Sara Arjona 732dc4f334 MDL-78087 h5p: Fix TimeLine display bug
When the H5P third-party library was upgraded to moodle-1.23, the calls to
libraryToString(xxx, true) where replaced with libraryToFolderName().
We missed this, which was doing the H5P Timeline activities weren't
displayed properly.

Thanks Joseph for raising this and preparing a patch! Well done!

Co-authored: Joseph Rézeau
2023-05-11 10:22:48 +02:00
Paul Holden c348119685 MDL-77946 access: fix category sort order of capability contexts. 2023-05-11 08:33:27 +01:00
Jun Pataleta ced8835b5f Merge branch 'MDL-76344-402-fix' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-05-11 14:35:13 +08:00
Stevani Andolo a5cf13cd90 MDL-76344 course: Fixed course image 'non image file' layout 2023-05-11 14:11:00 +08:00
Jake Dallimore 10f9d0d51a Merge branch 'MDL-75552-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-05-11 11:23:33 +08:00
Sara Arjona 9bdfec812d Merge branch 'MDL-78040-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-10 19:45:14 +02:00
Paul Holden 78d90e3c16 MDL-78211 contentbank: fix context option when formatting categories. 2023-05-10 17:42:23 +01:00
Paul Holden d5ec3594cc MDL-78151 core: account for timezone differences in intl extension.
Recent additions to timezones from the IANA TZDB are not necessarily
reflected in those used by the intl extension and/or ICU zones:

 * America/Ciudad_Juarez
 * America/Nuuk
 * Europe/Kyiv
 * Pacific/Kanton

Create mapping to allow these zones to be used without errors.
2023-05-10 17:12:16 +01:00
Mikhail Golenkov 5303c032bb MDL-77592 filter_tex: Use request dir instead of temp shared storage 2023-05-10 13:03:29 +08:00
Andrew Nicols b2cca9ef62 Merge branch 'MDL-78034-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-10 12:59:57 +08:00
Ilya Tregubov 87736d9a0b Merge branch 'MDL-75623-MOODLE_402_STABLE' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-05-10 11:45:49 +08:00
Stefan Hanauska b1496fa5df MDL-75623 backup: Encode pluginfile URLs 2023-05-10 11:44:45 +08:00
Paul Holden 411dc66fd9 MDL-78170 rating: consistently calculate average rating aggregation.
Ensure it's always cast by the database as a float, to avoid loss of
precision.
2023-05-09 15:57:37 +01:00
Jun Pataleta c58d3b4759 Merge branch 'MDL-78065-402' of https://github.com/HuongNV13/moodle into MOODLE_402_STABLE 2023-05-09 22:41:56 +08:00
Paul Holden 39a930f762 MDL-78149 mod_data: ensure group selector is always present. 2023-05-09 12:20:29 +01:00
Paul Holden 3493d9ebc3 MDL-78152 mod_book: set permissions required for page editing. 2023-05-09 12:11:26 +01:00
Jun Pataleta eff51c6001 Merge branch 'MDL-78093-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-09 17:26:18 +08:00
Shamim Rezaie 7365bc38b2 MDL-77451 gradereport: stress handling for multiple clicks 2023-05-09 16:57:10 +10:00
Andrew Nicols 856803faf8 MDL-75552 badges: move apiBase consumption to backpack
The apiBase in .well-known/badgeconnect.json was ignored and it was
causing some failures when connecting or sending badges to an
external backpack.
For OBv2.1, it has been changed to always use the apiBase defined
in the badgeconnect.json backpack provider.
2023-05-09 08:51:25 +02:00
Rajneel Totaram 97d935b337 MDL-77930 accesslib: php81 deprecation warnings on missing plugins 2023-05-09 17:48:45 +12:00
Eloy Lafuente (stronk7) f46e5fc229 MDL-78156 groups: Make groups_get_user_groups() order deterministic
Right now the order of the groups returned by groups_get_user_groups()
is not fixed and, every DB, can return them in any order. While 99%
of times the order will be the creation one, depending of the RDBMS
decisions, they can be returned in any order.

This is specially noticeable with Oracle, but can affect to any DB.

And that makes some tests (expecting a given order) to fail.

This commit fixes the problem by making the order of the groups
deterministic, because that's the way we use to fix these problems.

Alternative is to relax the tests so only values are asserted by
using assertEqualsCanonicalizing().
2023-05-08 18:25:05 +02:00
Petr Skoda 8a6c536b29 MDL-76688 filter_text: prevent LaTeX3 syntax 2023-05-08 10:11:55 +02:00
AMOS bot 84da51dafd Automatically generated installer lang files 2023-05-07 00:07:29 +00:00
Paul Holden 98448477d9 MDL-78135 completion: include required criteria library in test. 2023-05-05 16:45:39 +01:00
Jake Dallimore 62076a191e MDL-76821 enrol_lti: prevent legacy launches via upgraded enrolment
If the enrolment instance (the 'published resource') has been upgraded
from LTI 1.1/2.0 to LTI 1.3 (i.e. a new instance was not created),
prevent legacy launches which may occur from old resource links. Only
LTI Advantage launches should be permitted through the method.
2023-05-05 17:10:12 +08:00
Jake Dallimore b1a7ae63c3 MDL-76821 enrol_lti: fix bug in repo causing return of legacy lti users
If the enrolment method is updated from an LTI 1.1/2.0 tool to an LTI
1.3 tool, it may have associated enrol_lti_users records not having
ltideploymentid values. These are legacy users and must not be returned
by the repository, which deals only with LTI 1.3 LTI users.
2023-05-05 17:10:12 +08:00
Jun Pataleta 929ad63114 Merge branch 'MDL-76344-402' of https://github.com/stevandoMoodle/moodle into MOODLE_402_STABLE 2023-05-05 10:35:07 +08:00
Sara Arjona 29a21ee986 weekly release 4.2+ 2023-05-04 12:42:42 +02:00
Eloy Lafuente (stronk7) c721cc6803 MDL-78116 core: Run tests against Windows on GHA
Signed-off-by: Andrew Nicols <andrew@nicols.co.uk>
2023-05-04 15:41:54 +08:00
Dani Palou 2ccc6a2346 MDL-78054 airnotifier: Fix data encrypted several times 2023-05-04 12:06:28 +08:00
Stevani Andolo cd3643a149 MDL-76344 course: Fixed course image 'non image file' layout 2023-05-04 10:28:03 +08:00
Jake Dallimore 2138619b01 Merge branch 'MDL-78002_402' of https://github.com/stronk7/moodle into MOODLE_402_STABLE 2023-05-04 10:08:09 +08:00
Ilya Tregubov 97f6672420 Merge branch 'MDL-78094-402' of https://github.com/snake/moodle into MOODLE_402_STABLE 2023-05-04 08:54:07 +08:00
Paul Holden f6afe82978 MDL-78040 block_glossary_random: switch to block test generator.
Random failures after manually adding block instances (specifically
on slow/Oracle systems) can be entirely avoided by using the block
test generator for scenarios that are not specifically concerned with
manually adding blocks.
2023-05-03 16:45:16 +01:00
Laurent David 16f91dfdb3 MDL-77781 core_completion: Completion view must be deleted too
When resetting a course, completion view entries should also be
deleted

Co-authored-by: Georg Moser <georg@moser.link>
2023-05-03 16:05:10 +02:00
Jun Pataleta da46551bea Merge branch 'MDL-77398-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 20:36:28 +08:00
Jake Dallimore 861ce57a8a Merge branch 'MDL-77384-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 16:52:21 +08:00
Jake Dallimore 048070e25f Merge branch 'MDL-78023-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 16:15:42 +08:00
Sara Arjona 223b1afabf Merge branch 'MDL-77312-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 09:59:17 +02:00
Sara Arjona 92a57c95be Merge branch 'MDL-78049-MOODLE_402_STABLE' of https://github.com/PhMemmel/moodle into MOODLE_402_STABLE 2023-05-03 09:45:16 +02:00
Ilya Tregubov 680644b593 Merge branch 'MDL-77320-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 15:36:34 +08:00
Sara Arjona bdaed5ec3c Merge branch '42_MDL-78057' of https://github.com/danmarsden/moodle into MOODLE_402_STABLE 2023-05-03 09:22:39 +02:00
Sara Arjona 812219fcb2 Merge branch 'MDL-76971-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 09:18:23 +02:00
Sara Arjona 514865575c Merge branch 'MDL-78006-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 09:04:35 +02:00
Ilya Tregubov 1b1c1a56b1 Merge branch 'MDL-77810-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 13:08:32 +08:00
Ilya Tregubov 33f62c3309 Merge branch 'MDL-77987_402' of https://github.com/AnupamaSarjoshi/moodle into MOODLE_402_STABLE 2023-05-03 12:40:12 +08:00
Jake Dallimore 0f66c8fe5c Merge branch 'MDL-78052-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-05-03 12:06:45 +08:00
Ilya Tregubov a56ca931aa Merge branch 'MDL-77546-402' of https://github.com/mihailges/moodle into MOODLE_402_STABLE 2023-05-03 10:57:05 +08:00
Jun Pataleta 453ea97395 Merge branch 'MDL-77394-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 10:31:07 +08:00
Jun Pataleta 4e9be8c131 Merge branch 'MDL-78038-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 10:25:37 +08:00
Ilya Tregubov a7055da32d Merge branch 'MDL-77936-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 10:07:40 +08:00
Jun Pataleta bd85500e2a Merge branch 'MDL-78011-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-03 09:58:10 +08:00
Jake Dallimore e0e94dbf84 MDL-78094 webservice_soap: fix use of core_external in locallib 2023-05-03 09:43:29 +08:00
Ilya Tregubov 9de24c27c6 Merge branch 'MDL-76835-402' of https://github.com/aya-saad1/moodle into MOODLE_402_STABLE 2023-05-03 09:29:32 +08:00
David Woloszyn 89215b79fb MDL-77840 enrol_lti: Avoid passing nulls to base64_encode 2023-05-03 09:34:29 +10:00
Paul Holden 4065904ad1 MDL-78093 gradereport_grader: handle modal retrieval promise failures. 2023-05-02 16:19:52 +01:00
Paul Holden 3862ec015d MDL-78093 grade: standardize additional external parameter type. 2023-05-02 16:19:38 +01:00
Sara Arjona c516a6fc14 Merge branch 'MDL-77858-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-05-02 16:49:48 +02:00
Sara Arjona fb14c67dec Merge branch 'MDL-77791_402' of https://github.com/dvdcastro/moodle into MOODLE_402_STABLE 2023-05-02 12:03:53 +02:00
Jun Pataleta b297347f12 Merge branch 'MDL-76857-402' of https://github.com/sarjona/moodle into MOODLE_402_STABLE 2023-05-02 15:45:09 +08:00
Huong Nguyen b89351f084 MDL-78065 tiny_link: Fix cannot create link for selection text 2023-05-02 11:38:01 +07:00
David Woloszyn b78a8983ed MDL-77840 lti: Avoid passing nulls to base64_encode 2023-05-02 13:50:14 +10:00
David Woloszyn 84ddb8c655 MDL-77840 backup: Avoid passing nulls to base64_encode 2023-05-02 13:50:14 +10:00
David Woloszyn cc3828c85a MDL-77840 mnet: Avoid passing nulls to base64_encode 2023-05-02 13:50:14 +10:00
Ilya Tregubov 7af8bddad7 Merge branch 'MDL-78025_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-05-02 11:43:12 +08:00
Dan Marsden 3bdfc594b6 MDL-78057 core_user: Use correct class for context check. 2023-05-01 08:50:40 +12:00
Eloy Lafuente (stronk7) c6ff4c551e MDL-78002 phpunit: Ensure that all uses of psr streams are closed
While the uses here were not causing too much problem with PHPUnit
execution in any OS, better have them explicitly closed to better
serve as reference for other, future uses anywhere in codebase.

Always that a stream is used, better we close it as soon as possible,
not relying on destructors, gc and friends.
2023-04-29 23:08:27 +02:00
Eloy Lafuente (stronk7) b6531bf613 MDL-78002 moodlenet: Always close the request stream explicitly
And do it as soon as it's not needed any more. Else, only
_destruct() / shutdown / gc will, and that can be problematic
if many streams are open, or, under some environments like
Windows that consider the stream underlying files still busy,
because they have not been closed.
2023-04-29 20:33:09 +02:00
Paul Holden 7c4fc1725f MDL-77810 gradereport_summary: show localised plugin name in report. 2023-04-27 15:19:27 +01:00
Ilya Tregubov 4f625c1e2e weekly release 4.2+ 2023-04-27 19:28:33 +08:00
Sara Arjona 99e38b7118 MDL-78052 lib: Set Moodle files after Font Awesome upgrade 2023-04-27 13:22:20 +02:00
Sara Arjona 5650cab0d6 MDL-78052 theme: Update FontAwesome to 6.4.0
This version also fixes a regression in 6.3.0 where a number of
icons weren't centered properly in their viewboxes.
2023-04-27 13:22:20 +02:00
Sara Arjona 4b23b98e16 MDL-76857 filter_displayh5p: Improve behat tests
Although the screenshots in the failures for some of the scenarios in
filter/displayh5p/tests/behat/h5p_filter.feature, like "Render a local
H5P file as teacher" were displaying the expected result, there were
some javascript errors (probably due to behat is quicker and the
iframes were not always ready).
I've added one extra step before accessing the iframe to give more
time to the H5P player to load and confirm the page is displayed
properly.
2023-04-27 11:21:26 +02:00
Paul Holden c7595a7169 MDL-77320 tool_licensemanager: restrict exposure of user sesskey. 2023-04-27 09:33:33 +01:00
Paul Holden b97ffab51a MDL-77936 grade: omit second cell action divider when not required. 2023-04-27 08:42:52 +01:00
Philipp Memmel f1633ba0f8 MDL-78049 core_external: Run test_all_external_info in separate process 2023-04-27 08:30:57 +02:00
Mihail Geshoski 3f4b46b16a MDL-77546 gradereport_singleview: Fix item order in grade item selector 2023-04-27 11:59:06 +08:00
danghieu1407 32df1530ff MDL-77883 forms: fix display of client-side validation for textareas 2023-04-27 11:08:42 +08:00
Jun Pataleta 20e1d18c29 Merge branch 'MDL-77997_402' of https://github.com/timhunt/moodle into MOODLE_402_STABLE 2023-04-27 10:40:49 +08:00
Paul Holden 01fd68f06d MDL-78038 mod_bigbluebuttonbn: observe course format section config. 2023-04-26 16:10:45 +01:00
Tim Hunt a8a3855c6d MDL-78025 questions: improve the comment on question_references.version 2023-04-26 15:36:57 +01:00
Tim Hunt 950aa78611 MDL-78025 questions: fix PHPdoc on question_require_capability_on 2023-04-26 15:36:57 +01:00
Tim Hunt b2e36b6baa MDL-78025 quiz: fix the quiz_questions_in_use logic 2023-04-26 15:36:57 +01:00
Tim Hunt 85662b721b MDL-78025 questions: questions_in_use should check question_references
This avoids the needs for plugins to do separate queries, which is
easier for them, and better performing.
2023-04-26 15:36:56 +01:00
Tim Hunt eb6c618fd4 MDL-78025 question generator: make the behaviour less surprising
* The object returned by update_question is alwasy a new clone
  and the $question passed in will not be modified.

* The returned object has the fields like questionbankentryid and
  the ones related to versionning, so it is more like the data
  returned by question_bank::load_question_data.
2023-04-26 15:36:56 +01:00
Paul Holden d43dc80d65 MDL-78034 mod_bigbluebuttonbn: format instance group names. 2023-04-26 15:31:38 +01:00
Tim Hunt 8e1583455e MDL-78025 question: move hiding logic into question_delete_question
This logic belongs in the API, so it is applied consistently.

Also this avoids calling the expensive function questions_in_use
twice per question.
2023-04-26 15:30:58 +01:00
Aya Saad 4bfce15818 MDL-76835 theme: Fix unordered lists indentation 2023-04-26 14:01:47 +02:00
Ilya Tregubov 6b8aeb5c90 Merge branch 'MDL-76929-402' of https://github.com/ilyatregubov/moodle into MOODLE_402_STABLE 2023-04-26 09:28:52 +08:00
Matt Porritt d9f71f0666 MDL-76929 Libraries: Upgrade phpxmlrpc to 4.10.1 2023-04-26 09:26:40 +08:00
David Castro 9e0d12e5ae MDL-77791 data: Fix file attachment to search doc 2023-04-25 19:56:26 -05:00
Paul Holden 86fd45f0de MDL-78023 tool_policy: cast timemodified column on table download. 2023-04-25 14:51:04 +01:00
Sara Arjona ffd32bacba Merge branch 'MDL-77313-402' of https://github.com/paulholden/moodle into MOODLE_402_STABLE 2023-04-25 15:18:35 +02:00
Paul Holden 3ee04ecf78 Merge branch 'MDL-78007-402' of https://github.com/HuongNV13/moodle into MOODLE_402_STABLE 2023-04-25 12:36:08 +01:00
Max Larkin c675170c4e MDL-73331 tool_brickfield: Update advanced tab display 2023-04-25 12:04:36 +01:00
Paul Holden 0c74bbfa06 Merge branch 'MDL-77766-402-2' of https://github.com/junpataleta/moodle into MOODLE_402_STABLE 2023-04-25 09:38:36 +01:00
Anupama Sarjoshi 4f7ccd0432 MDL-77987 Backup: add progress tracking to some slow steps 2023-04-25 09:19:36 +01:00
Paul Holden 4806324231 MDL-77384 check: clarify statistics check name. 2023-04-25 09:05:45 +01:00
Paul Holden 9c779fefc7 MDL-76971 reportbuilder: switch remaining classes to external_api.
Continues on the work started in a3cc26f8, to remove the last
remnants of usage of previous external API classes.
2023-04-25 08:50:27 +01:00
Paul Holden b82cc59782 MDL-78011 qbank_managecategories: require library for pagesize const. 2023-04-24 15:35:47 +01:00
Jun Pataleta e38a933fa2 MDL-77766 qtype_truefalse: Respect showstandardinstruction
* When showstandardinstruction is set to no, replace the standard
instruction with the generic "Answer" text for the answer options
fieldset's legend.
2023-04-24 20:11:10 +08:00
Jun Pataleta 9ef5ed8527 MDL-77766 qtype_multichoice: Respect showstandardinstruction
* When showstandardinstruction is set to no, replace the standard
instruction with the generic "Answer" text for the answer options
fieldset's legend.
2023-04-24 20:11:10 +08:00
Marina Glancy f1afcf6616 MDL-78006 course: test for adding activity in a new section 2023-04-24 11:42:07 +01:00
Paul Holden 0a05336551 MDL-78006 course: register activity chooser listeners just once. 2023-04-24 11:41:57 +01:00
Tim Hunt a9c5734f04 MDL-77997 questions: add back Export as XML to the preview screen
The used the exist in Moodle up to 3.11, but then was removed with
insufficient thought in 4.0 (because we had grander long-term plans
which still have not happened). Until those plans happen, this
commit adds the simple link back on the preview screen.
2023-04-24 11:30:28 +01:00
Paul Holden 1e81424bdd MDL-77312 files: exclude drafts when determining license usage. 2023-04-24 11:08:18 +01:00
Paul Holden 4aaaaa5f57 MDL-77313 restore: re-add field to indicate course/category search.
When the two restore forms for searching courses and categories were
converted to core templates in eb9935c9 they lost the named submit
button, which broke searching.
2023-04-24 11:05:13 +01:00
Paul Holden 963b56cf7e MDL-77858 javascript: correct core/notification exception imports. 2023-04-24 10:45:55 +01:00
Paul Holden f3368a55b5 MDL-77394 mod_forum: de-couple discussion pinned/starred options. 2023-04-24 10:38:28 +01:00
Paul Holden 37564d61d5 MDL-77398 mod_assign: disable form submit protection for batch options. 2023-04-24 10:35:49 +01:00
Huong Nguyen 94a87bc47e MDL-78007 tiny_media: Fix wrong condition for the Tiny Media
Including in this commit:
 - Switched to Tiny editor in manually_mark_question.feature
2023-04-24 15:59:26 +07:00
Jun Pataleta e6615e587f MDL-78000 upgrade: add the 4.2.0 separation line to all upgrade scripts 2023-04-24 13:22:41 +08:00
Jun Pataleta ae4efa96ee Moodle release 4.2 2023-04-22 17:06:55 +08:00
Eloy Lafuente (stronk7) 2204fd7ad7 Moodle release 4.2rc2 2023-04-21 19:19:59 +02:00
Eloy Lafuente (stronk7) ae4d40b517 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-04-21 19:19:53 +02:00
Jake Dallimore 0074137749 Merge branch 'MDL-77889-integration-master-fix' of https://github.com/mihailges/moodle 2023-04-21 17:15:26 +08:00
Mihail Geshoski ad7839f6ff MDL-77889 gradebook: Tighten up backward compatibility checks 2023-04-21 16:53:47 +08:00
Jun Pataleta d3fa6641a2 Merge branch 'MDL-77229-patch' of https://github.com/ilyatregubov/moodle 2023-04-21 16:44:22 +08:00
Ilya Tregubov a0b40bd104 MDL-77229 mod_lesson: Black list detailed statistics in classic Behat.
The nav element to go to detailed stats page is missing in classic
2023-04-21 15:03:02 +08:00
Shamim Rezaie e38262e271 MDL-77889 gradereport: restore backwards compatibility in searchwidget
The widgetbase module was intended to be a generic search widget,
despite its location in grade/amd/src. As such, other modules may
depend on this. This was modified in MDL-76246, which added new
requires params to the js, and changed the js to expect certain new
data attributes in the templates. This broke b/c for existing
dependents.

This patch makes sure the existing uses of the basewidget continue
to work by adding b/c code. See MDL-77991 which deals with deprecating
this search widget and replacing it with one that just implements the
desired combobox logic, without the b/c code. That issue should also
make it abundantly clear that this widget is for public consumption.
2023-04-21 14:19:43 +08:00
Jun Pataleta 8dd488cb5b Merge branch 'MDL-77989-master' of https://github.com/andrewnicols/moodle 2023-04-21 13:44:51 +08:00
Andrew Nicols fcba0cb379 MDL-77989 core: Fix uses of legacy external API 2023-04-21 13:33:56 +08:00
Andrew Nicols 1a53cbbae4 MDL-77989 testing: Add test file isolation helper
When we deprecate the use of a file, we often include tests which ensure
that the legacy behaviour is maintained. There are also legacy uses
in the community where people would like to use the deprecated API for a
period.

The issue that we face is that, if the deprecated file is included once,
then it will be included for all other, unrelated, tests. This means
that other tests may not detect cases where the deprecated file was
included.

We can solve these cases by running the test that performs the inclusion
in a deprecated process. This means that the inclusion is only performed
in that isolated process, and other unrelated tests do not include the
file.

However, we also then need to detect which files which are including the
file and which we do not know about.

This change introduces:
- an override to the TestCase::setInIsolation method to define a
  constant when the test is running in isolation
- a new function that a file can call when it is included, to make sure
  that the test process was isolated, where there is any test.
2023-04-21 13:33:56 +08:00
Ilya Tregubov 04bf346ca3 Merge branch 'MDL-77903' of https://github.com/Chocolate-lightning/moodle 2023-04-21 13:18:14 +08:00
Jun Pataleta 19022cd940 Merge branch 'MDL-77927-master' of https://github.com/stevandoMoodle/moodle 2023-04-21 13:11:43 +08:00
Mathew May f9c6548189 MDL-77903 gradereport_grader: Keyboard accessibility 2023-04-21 13:09:25 +08:00
Jun Pataleta 4bf6bb37c2 MDL-77927 core: Delete other mod_assignment subplugins
Non-core mod_assignment subplugin data may still be present on the
database. We need to make sure to remove these too during upgrade.
2023-04-21 12:32:10 +08:00
Jun Pataleta 0720524804 MDL-77927 core: mod_assignment subplugins environment check 2023-04-21 12:32:06 +08:00
Jun Pataleta dddc9a08cd MDL-77927 core: Move assignment removal upgrade code
Move the fixed assignment removal upgrade code to the end of the upgrade
script as a new upgrade step. Already upgraded sites with mod_assignment
removed should just be able to rerun this without any issues.
2023-04-21 12:31:11 +08:00
Stevani Andolo d023b5356c MDL-77927 grade: Delete mod_assignment orphaned data before its removal 2023-04-21 12:31:07 +08:00
Ilya Tregubov ad401db0f8 Merge branch 'MDL-77229-master' of https://github.com/ilyatregubov/moodle 2023-04-21 12:11:59 +08:00
Ilya Tregubov 1601a2610f MDL-77229 lesson: Add Behat test 2023-04-21 12:02:34 +08:00
Andrew Nicols ba81947f43 Merge branch 'MDL-77849-master' of https://github.com/ilyatregubov/moodle 2023-04-21 11:31:22 +08:00
Jun Pataleta e07f28e276 Merge branch 'MDL-77896' of https://github.com/paulholden/moodle 2023-04-21 11:21:40 +08:00
Mihail Geshoski bc977c3588 MDL-77849 gradereport_grader: Align content in user identity cells 2023-04-21 09:59:30 +08:00
Ilya Tregubov 2bfd75d9a0 MDL-77849 gradereport_grader: Align properly grade display types 2023-04-21 09:59:30 +08:00
Ilya Tregubov 4c699d007a MDL-77849 gradereport_grader: Make menus aligned with text 2023-04-21 09:59:25 +08:00
Shamim Rezaie 39c4e7f3cb MDL-77849 gradereport_grader: Switch from px to rem values 2023-04-21 09:58:58 +08:00
Shamim Rezaie 3816a64f32 MDL-77849 gradereport_grader: Numerical grades should be right-aligned 2023-04-21 09:58:50 +08:00
Andrew Nicols f7d7ad7fed MDL-77989 core_external: Isolate testing of deprecated file
The inclusion of this deprecated file leads to tests passing which may
fail when run in a different order, or for just a single testsuite.
2023-04-21 09:33:53 +08:00
Dan Marsden 9d162d1b8a MDL-77989 webservices: fix unit test error with xmlize_result 2023-04-21 09:31:57 +08:00
AMOS bot 2a5bf37102 Automatically generated installer lang files 2023-04-21 00:07:45 +00:00
Paul Holden 571292b6eb MDL-77896 editor_tiny: approximate height for non-visible editors.
When an editor is renderer initially invisible to the browser, e.g.
the forum "Add discussion" form, it has a `clientHeight` value of
zero. We can approximate an alternative value based on the number
of rows in the textarea.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-04-20 15:24:23 +01:00
Juan Leyva f14c09406a MDL-77229 lesson: Fix error for empty responses (numerical pagetype) 2023-04-20 12:46:21 +02:00
Jun Pataleta 445a139d21 Merge branch 'MDL-73012-master' of https://github.com/ferranrecio/moodle 2023-04-20 16:32:15 +08:00
Jun Pataleta a14f23aa2a Merge branch 'MDL-77922-master' of https://github.com/ferranrecio/moodle 2023-04-20 16:09:56 +08:00
Ilya Tregubov 1c25a0cc2f Merge branch 'MDL-77577-master' of https://github.com/andelacruz/moodle 2023-04-20 12:33:23 +08:00
Andrew Nicols 6732d8819d Merge branch 'MDL-77973-master' of https://github.com/snake/moodle 2023-04-20 12:14:40 +08:00
Jake Dallimore fffc7ebf7c MDL-77973 core: fix broken navigation when moodlenet misconfigured
Instead of failing with an exception, throw a debugging notice.
2023-04-20 11:47:54 +08:00
Ilya Tregubov 05a0d7c8b6 Merge branch 'MDL-77918' of https://github.com/Chocolate-lightning/moodle 2023-04-20 09:32:16 +08:00
Andrew Nicols 59d42e1ed2 MDL-77718 editor_tiny: Restrict the revision to int for loaders
The revision should always be an int. I suspect this was missed during
debugging and not corrected.
2023-04-19 16:44:19 +00:00
Paul Holden 5521d1d6e8 MDL-77187 mod_wiki: validate external method sort parameters. 2023-04-19 16:44:19 +00:00
Paul Holden a8da761f8b MDL-77959 moodlenet: void return type style fixes in test. 2023-04-19 17:35:12 +01:00
Paul Holden 5338fc591e Merge branch 'MDL-77959-master' of https://github.com/HuongNV13/moodle 2023-04-19 17:25:14 +01:00
Jun Pataleta ad37980aeb Merge branch 'MDL-77955' of https://github.com/paulholden/moodle 2023-04-19 23:45:25 +08:00
Paul Holden c81bfc4f45 Merge branch 'MDL-77897-master' of https://github.com/andrewnicols/moodle 2023-04-19 14:13:03 +01:00
Paul Holden 1af2d18adb Merge branch 'MDL-77960-master' of https://github.com/lameze/moodle 2023-04-19 13:41:31 +01:00
Paul Holden b952c16086 Merge branch 'MDL-77944-master' of https://github.com/andrewnicols/moodle 2023-04-19 13:06:40 +01:00
Huong Nguyen 5548b91e3e MDL-77959 core_moodlenet: Convert activity intro to plaintext 2023-04-19 17:40:21 +07:00
Paul Holden f2f44e5ec9 MDL-77932 gradereport_grader: simplify range/average cell collapsing. 2023-04-19 11:27:43 +01:00
Paul Holden 078e0fd885 Merge branch 'MDL-77932-master' of https://github.com/mihailges/moodle 2023-04-19 11:25:59 +01:00
Ferran Recio 86fe8e582e MDL-73012 core_courseformat: add pending to move section modal 2023-04-19 12:15:32 +02:00
Jun Pataleta 02ba4ceefa Merge branch 'MDL-77940' of https://github.com/stronk7/moodle 2023-04-19 17:43:23 +08:00
Jake Dallimore 555ad338bf Merge branch 'MDL-77958-master' of https://github.com/andrewnicols/moodle 2023-04-19 17:08:14 +08:00
Andrew Nicols 3ac1acacca MDL-77958 moodlenet: Various style fixes
This change contains various style fixes which I encountered and fixed
whilst addressing the other issues identified in this issue.
2023-04-19 16:12:50 +08:00
Andrew Nicols 581ccb9a47 MDL-77958 moodlenet: Pass stored_file to improve memory usage
Previously the content of the stored file was extracted and stored in a
variable, passed around, and then submitted to MoodleNet. This results
in very high memory consumption when dealing with MoodleNet.

The stored_file should be passed around as a first-level param to
discourage this, and the content should _never_ be loaded into memory.
Instead file streams and resources should be used to allow Guzzle/Curl
to buffer the file from disk/other storage straight to MoodleNet.
2023-04-19 16:12:50 +08:00
Paul Holden 8d3b99d2a3 Merge branch 'MDL-77898-master' of https://github.com/junpataleta/moodle 2023-04-19 09:03:22 +01:00
Jun Pataleta 07243a3ae3 Merge branch 'MDL-77785' of https://github.com/timhunt/moodle 2023-04-19 15:45:55 +08:00
Andrew Nicols 489a53ceb2 MDL-77897 editor_tiny: Save editor content on editor blur 2023-04-19 14:57:10 +08:00
Mathew May b0aff926da MDL-77918 gradereport_grader: zindex the dropdowns to overlap better 2023-04-19 14:26:42 +08:00
Simey Lameze 4e6528182f MDL-77960 behat: make verification steps more specific 2023-04-19 14:09:58 +08:00
Andrew Nicols 96a1a0abce MDL-77958 file: Add psr stream functionality to file API
This change introduces a new get_psr_stream() method to:
* stored_file
* file_system

This allows us to fetch a Psr Stream implementing the
PSR\Http\Message\StreamInterface and pass it into Guzzle, which means
that there is no need to load the entire file content into memory to
serve it.
2023-04-19 13:51:49 +08:00
Ilya Tregubov 43205a0460 Merge branch 'MDL-77935' of https://github.com/paulholden/moodle 2023-04-19 13:26:15 +08:00
Jun Pataleta b1954bfdf9 Merge branch 'MDL-77953' of https://github.com/stronk7/moodle 2023-04-19 12:37:55 +08:00
Andrew Nicols a089496f96 Merge branch 'MDL-77954' of https://github.com/paulholden/moodle 2023-04-19 11:16:50 +08:00
Mihail Geshoski 71241e64a5 MDL-77932 gradereport_grader: Make range row cells collapsible 2023-04-19 10:09:57 +08:00
Paul Holden 78d24550af MDL-77955 moodlenet: destroy backup controller in class destructor.
This ensures that it's always cleaned up during tests, where not doing
so can cause spurious errors on Windows.
2023-04-18 22:42:13 +01:00
Paul Holden fd8184a295 MDL-77954 moodlenet: store packaged activities in user draft.
We shouldn't invent fileareas with invalid values (specifically in
this case, the `itemid` overflowed maximum length of the field on
Oracle).

Given the generated file is transitory in nature, instead store it
in the users draft area.
2023-04-18 18:40:15 +01:00
Eloy Lafuente (stronk7) 30e94a8916 MDL-77953 pagelib: Ensure that null $SCRIPT continues behaving the same
It's possible to have some Moodle components soft linked instead
of being real directories within codebase (within dirroot).

For example, Composer's "vendor" directory can be soft linked
(from elsewhere), or also plugins can be installed using soft
links.

In those cases, Moodle calculates the $SCRIPT global as null. And,
then, string operations on it are emitting a PHP deprecation message
with PHP 8.1 and up.

This fix just ensures that the behaviour is the same than before
PHP 8.1, aka: ltrim(null) = '' (empty string), without any PHP warning.
2023-04-18 18:48:58 +02:00
Eloy Lafuente (stronk7) c2b716a8cc MDL-77940 versions: main version bump 2023-04-18 18:09:28 +02:00
Eloy Lafuente (stronk7) 061c9d7ba0 MDL-77940 versions: bump all versions and requires near release
version = 2023042400 release version
requires= 2023041800 current rc1 version
2023-04-18 18:08:09 +02:00
Paul Holden 7343c65bea Merge branch 'MDL-77941-master' of https://github.com/aanabit/moodle 2023-04-18 16:57:40 +01:00
Amaia Anabitarte f4a172afde MDL-77941 blocks_overview: Remove duplicated strings for zero states 2023-04-18 17:36:57 +02:00
Andrew Nicols 3933cbfb5a Merge branch 'MDL-77895' of https://github.com/paulholden/moodle 2023-04-18 23:34:59 +08:00
Andrew Nicols 7beda01cae Moodle release 4.2rc1 2023-04-18 22:29:14 +08:00
Andrew Nicols 5124b6747c NOBUG: Fixed SVG browser compatibility 2023-04-18 22:29:11 +08:00
Andrew Nicols 09912bfefa Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-04-18 22:29:10 +08:00
Ferran Recio f81b79a4b1 MDL-77922 core_courseformat: add pending to move activity modal 2023-04-18 13:22:08 +02:00
Jake Dallimore c9e8aa0406 Merge branch 'MDL-75316-master-4' of https://github.com/mickhawkins/moodle 2023-04-18 17:24:55 +08:00
Michael Hawkins 2e024f304a MDL-75316 core: MoodleNet integration final improvements 2023-04-18 17:00:54 +08:00
Huong Nguyen 58ced4add0 MDL-75316 core_moodlenet: Share to MoodleNet modal and activity menu
Originally implemented as MDL-75785
2023-04-18 17:05:07 +08:00
Huong Nguyen 6a877d438b MDL-75316 core: Webservice for sending activity to MoodleNet
Originally implemented as MDL-75933
2023-04-18 17:04:46 +08:00
Michael Hawkins 42ba0492e2 MDL-75316 core: Corrected oauth2_client::get_accesstoken() docblock
Originally implemented as MDL-75932
2023-04-18 17:04:30 +08:00
Michael Hawkins 77f85ed287 MDL-75316 core: Add activity sender & moodlenet_client to MoodleNet API
This makes it possible to share a single activity to a MoodleNet
instance (which has been enabled for sharing in site admin).
This utilises the core\moodlenet\activity_packager to create an
activity backup, then sends it using the MoodleNet create resource
API specification.

Originally implemented as MDL-75932
2023-04-18 17:04:14 +08:00
raortegar 9bc769a610 MDL-75316 core: Add activity packager to MoodleNet API
This makes it possible to package a single activity as a Moodle backup
file, excluding user data so it is ready to be shared as a MoodleNet
resource.

Co-authored-by: Michael Hawkins <michaelh@moodle.com>

Originally implemented as MDL-75932
2023-04-18 17:03:45 +08:00
Michael Hawkins d6c4c0fbbd MDL-75316 core: Set up MoodleNet API structure and utilities helper
Initial folder structure and declaring API.
Created utilities class.

Originally implemented as MDL-75932
2023-04-18 17:03:18 +08:00
Huong Nguyen cd097f117b MDL-75316 core_moodlenet: Rename settings
Originally implemented as MDL-75319
2023-04-18 17:03:02 +08:00
Huong Nguyen 7727745bf7 MDL-75316 core_moodlenet: Create MoodleNet capability
Originally implemented as MDL-75319
2023-04-18 17:02:47 +08:00
Huong Nguyen 852e31dbc4 MDL-75316 tool_moodlenet: Rename setting section
Rename the existing section from "MoodleNet settings" to "MoodleNet inbound settings"

Originally implemented as MDL-75319
2023-04-18 17:02:19 +08:00
Huong Nguyen ef2a1934a0 MDL-75316 core_moodlenet: Add setting to control sharing
Originally implemented as MDL-75319
2023-04-18 17:01:38 +08:00
Huong Nguyen d9a6577410 MDL-75316 admin: Create Share to MoodleNet experimental setting
Originally implemented as MDL-75319
2023-04-18 17:00:54 +08:00
Jun Pataleta 4df52460b5 MDL-77898 calendar: Add iconclass for upcoming_mini template
The icon's iconclass context data adds additional CSS class(es) to
calendar event icons to better control how the event icon is displayed.
e.g. without filtering for activity events that don't hae monologo
versions of their icons.
2023-04-18 15:58:09 +08:00
Paul Holden adb6d5468e MDL-77895 editor_tiny: standardize quickbar selection toolbar.
Ensure the same heading tags are available as those defined in the
editor block formats configuration (c51b7e2c).

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-04-18 07:46:05 +01:00
Ilya Tregubov 34d7edf079 Merge branch 'MDL-77916' of https://github.com/paulholden/moodle 2023-04-18 14:27:49 +08:00
Andrew Nicols 797f03228b Merge branch 'MDL-77893-master' of https://github.com/jleyva/moodle 2023-04-18 13:28:12 +08:00
Andrew Nicols 825e621264 Merge branch 'MDL-77735-master' of https://github.com/sarjona/moodle 2023-04-18 12:11:08 +08:00
Ilya Tregubov aac60d73a1 Merge branch 'MDL-77770' of https://github.com/paulholden/moodle 2023-04-18 12:01:28 +08:00
Ilya Tregubov 43c2c25645 Merge branch 'MDL-76855' of https://github.com/Chocolate-lightning/moodle 2023-04-18 11:17:43 +08:00
Andrew Nicols 5e4559c85a Merge branch 'MDL-77355' of https://github.com/paulholden/moodle 2023-04-18 10:32:49 +08:00
Ilya Tregubov 6255f92d66 Merge branch 'MDL-77943' of https://github.com/paulholden/moodle 2023-04-18 10:17:45 +08:00
Andrew Nicols df2e6c1cd4 Merge branch 'MDL-77902' of https://github.com/Chocolate-lightning/moodle 2023-04-18 10:10:39 +08:00
Mathew May ae6826953e MDL-77902 gradereport_grader: Clear btn & user differentiation 2023-04-18 09:59:13 +08:00
Andrew Nicols dfec1a8e00 MDL-77944 behat: Rename chrome options for w3c support
From Selenium 4.8.0, support for non-w3c browser control has ended.

We only use W3C browser control these days, and this was missed as part
of the move to W3C. All browser options must be vendor-prefixed.
2023-04-18 09:03:35 +08:00
Ilya Tregubov 688c9b13d4 Merge branch 'MDL-77827-master' of https://github.com/HuongNV13/moodle 2023-04-18 08:58:33 +08:00
AMOS bot e93fd454a2 Automatically generated installer lang files 2023-04-18 00:07:41 +00:00
Paul Holden ba64c15814 MDL-77943 group: use shorter names for visibility report elements. 2023-04-17 19:36:55 +01:00
Paul Holden 6a5a787844 Merge branch 'MDL-77878-master-enfix' of https://github.com/vmdef/moodle 2023-04-17 19:12:36 +01:00
Juan Leyva cf76d1bf9f MDL-77893 airnotifier: Apply payload size optimisation to all push 2023-04-17 15:36:28 +02:00
Juan Leyva 862a9fb24c MDL-77893 airnotifier: Allow configuring how to process encrypted notifs 2023-04-17 15:36:28 +02:00
Paul Holden 71cdfae287 Merge branch 'MDL-77842-master' of https://github.com/sarjona/moodle 2023-04-17 13:49:58 +01:00
Juan Leyva bdf525a43e MDL-77893 airnotifier: Leave only message data processed by Airnotifier 2023-04-17 13:34:55 +02:00
Paul Holden f2c1e6c114 Merge branch 'MDL-76212-master-nav' of https://github.com/kevpercy/moodle 2023-04-17 11:49:23 +01:00
Paul Holden 44e3cb05e5 Merge branch 'MDL-77324-master-2' of https://github.com/ilyatregubov/moodle 2023-04-17 11:05:55 +01:00
Juan Leyva 964ad9d264 MDL-77893 airnotifier: Allow to set publickey when creating new device 2023-04-17 11:03:15 +02:00
Paul Holden b4b88da77d MDL-77935 contentbank: avoid phpunit crashes during isolated tests.
Simplify the test for allowed contexts by removing problematic use of
data provider annotation.

See: https://github.com/sebastianbergmann/phpunit/issues/2739
2023-04-17 09:26:16 +01:00
Víctor Déniz b576b068bd MDL-77878 lang: Use fixed strings in tests 2023-04-17 08:49:59 +01:00
Mathew May fbc51cd591 MDL-77902 gradebook: Ensure dyn search works with pagination 2023-04-17 13:10:56 +08:00
Mathew May 53675693b4 MDL-76855 gradereport_user: Prevent parent access errors 2023-04-17 11:24:51 +08:00
Andrew Nicols 35118869c7 Merge branch 'MDL-77874' of https://github.com/paulholden/moodle 2023-04-17 11:20:53 +08:00
Helen Foster ee8408c4d5 MDL-77878 lang: Import fixed English strings (en_fix) 2023-04-14 13:08:38 +01:00
Sara Arjona d2e27ec8bb Merge branch 'MDL-77913' of https://github.com/paulholden/moodle 2023-04-14 14:02:08 +02:00
Sara Arjona ed53d81dc7 MDL-77842 badges: Improve debugging information for Badgr
In MDL-77086 some extra information was added when a badge can't be
sent to a backpack. However, as the Badgr is not following the
specification, it's still hard to debug it when it fails (as
raised in MDL-75552, Badgr is not working because, in some cases,
it's returning the "Method Not Allowed / Request method 'POST'
not supported" error.
2023-04-14 13:47:23 +02:00
Sara Arjona 440edc5e42 MDL-77735 core: Check $CFG->lang isset
In some cases, $CFG->lang might not be set, and this is causing a
Notice to be displayed when, for instance, database connection fails.
This patch should fix this case.
2023-04-14 13:46:18 +02:00
Sara Arjona 0e08d0df60 Moodle release 4.2beta 2023-04-14 10:54:08 +02:00
Sara Arjona 7e71cbce68 NOBUG: Fixed SVG browser compatibility 2023-04-14 10:54:05 +02:00
Sara Arjona c7987a7547 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-04-14 10:54:04 +02:00
Huong Nguyen f5867c078d MDL-77827 events: Changed JSON comparison to be less strict 2023-04-14 12:28:55 +07:00
AMOS bot ad255c2215 Automatically generated installer lang files 2023-04-14 00:07:47 +00:00
Paul Holden 62d48a1d47 MDL-77916 h5p: register autoloader in helper testcase. 2023-04-13 23:12:13 +01:00
Paul Holden dcdeb47f39 MDL-77913 qbank_previewquestion: deterministic ordering of versions.
Ensure the ordering of loaded question versions is consistent, avoids
random Oracle failures.
2023-04-13 21:13:41 +01:00
Sara Arjona 2e20e08aa9 Merge branch 'MDL-76986-master' of https://github.com/davewoloszyn/moodle 2023-04-13 17:31:58 +02:00
Sara Arjona bdc106e840 Merge branch 'MDL-76859-master' of https://github.com/sarjona/moodle 2023-04-13 16:24:20 +02:00
Sara Arjona a9ff77113e Merge branch 'MDL-77833-course-content-chng-notiification-multilang' of https://github.com/Amrita1991/moodle 2023-04-13 16:20:00 +02:00
Sara Arjona 9ce4fb65fd Merge branch 'MDL-77164-master' of https://github.com/marinaglancy/moodle 2023-04-13 14:00:18 +02:00
Sara Arjona d46db802af Merge branch 'MDL-77860' of https://github.com/paulholden/moodle 2023-04-13 13:44:53 +02:00
Sara Arjona 2f771f3175 Merge branch 'MDL-77788-master' of https://github.com/rmady/moodle 2023-04-13 13:16:46 +02:00
Marina Glancy 8fc1486d36 MDL-77164 various: fix incorrect phpdocs 2023-04-13 11:35:06 +01:00
Sara Arjona b4b950b75c Merge branch 'MDL-77618-admin-password-autocomplete' of https://github.com/brendanheywood/moodle 2023-04-13 12:19:09 +02:00
Amrita Deb Dutta 8974cc057c MDL-77833 course: content change notification multilang processing
adding context to format_string

fix multilang in coursename

change context param
2023-04-13 11:30:43 +02:00
Sara Arjona 33d64277b7 Merge branch 'MDL-77256-master' of https://github.com/rbravod/moodle 2023-04-13 11:20:24 +02:00
Ilya Tregubov 0fdd514f11 MDL-77324 gradereport_singleview: Make action menus consistent 2023-04-13 16:57:48 +08:00
Marina Glancy 4d765cd699 MDL-77164 privacy: typehint test content writer 2023-04-13 09:43:15 +01:00
Marina Glancy fcf887919b MDL-77164 lib/pear: correct phpdocs 2023-04-13 09:43:15 +01:00
Marina Glancy 9ffbcce0ac MDL-77164 various: fix mustache template name 2023-04-13 09:43:15 +01:00
Marina Glancy 04f8fdd021 MDL-77164 various: fix javascript AMD module name 2023-04-13 09:43:15 +01:00
Sara Arjona 948e68e9be Merge branch 'MDL-77856-master' of https://github.com/junpataleta/moodle 2023-04-13 09:42:58 +02:00
Sara Arjona 57589966bc Merge branch 'MDL-77468-master' of https://github.com/rmady/moodle 2023-04-13 09:19:54 +02:00
David Woloszyn 41e5260a3b MDL-76986 editor_tiny: Convert language code format for getting strings 2023-04-13 16:01:44 +10:00
Ilya Tregubov dd1a41f2d8 Merge branch 'MDL-75274-weekly' of https://github.com/Chocolate-lightning/moodle 2023-04-13 13:38:14 +08:00
Mathew May 3a8eeedf6a MDL-75274 theme_boost: Aria so dropdowns with search focus better 2023-04-13 11:45:17 +08:00
Mathew May 1a1939ac29 MDL-75274 gradereport_grader: Column collapsing 2023-04-13 11:45:17 +08:00
Ilya Tregubov e285841a9a MDL-75274 core_grades: Add % symbol to weights column
As per design it should have % symbol.
2023-04-13 11:44:38 +08:00
Ilya Tregubov e3a4dcf056 MDL-75274 gradereport_grader: Add back advanced grading url
It was accidentally removed.
2023-04-13 10:42:04 +08:00
Ilya Tregubov 277b55199e MDL-75274 gradereport_grader: Fix sorting of grade items.
Seems that baseurl is rewritten causing toggling of ordering
not work
2023-04-13 10:42:04 +08:00
Ilya Tregubov cfbb0ea4d5 Merge branch 'MDL-70975-adhoc-carneval' of https://github.com/catalyst/moodle 2023-04-13 09:07:58 +08:00
Sara Arjona e450756ce1 Merge branch 'MDL-73610' of https://github.com/stronk7/moodle 2023-04-12 18:19:34 +02:00
Sara Arjona 16511af2a1 Merge branch 'MDL-77012' of https://github.com/paulholden/moodle 2023-04-12 14:09:27 +02:00
Sara Arjona 3c5e26901c Merge branch 'MDL-77374-master' of https://github.com/meirzamoodle/moodle 2023-04-12 13:14:07 +02:00
Petr Skoda 43b56a90d9 MDL-76859 h5p: Fix behat failures
- Only resize if the H5P EmbedCommunicator is defined (otherwise, it was causing a
JS error)
- An unnecessary image has been removed from the greeting-card.h5p fixture package.
That way, the text will always be displayed (even if the iframe is still not
resized). Instead of replacing the original greeting-card-887.h5p file, I've
renamed it to greeting-card.h5p, to remove these ugly and unnecessary numbers
at the end of the file name).
2023-04-12 12:26:23 +02:00
Sara Arjona dbe725ac04 Merge branch 'MDL-77882' of https://github.com/paulholden/moodle 2023-04-12 12:21:13 +02:00
Sara Arjona e9327f7339 Merge branch 'MDL-77348-master' of https://github.com/meirzamoodle/moodle 2023-04-12 12:19:06 +02:00
Shamim Rezaie 0175787cc0 Merge branch 'MDL-76722-fix' of https://github.com/sarjona/moodle 2023-04-12 19:50:47 +10:00
Sara Arjona ea2e9d5920 MDL-76722 core: Fix upgrade failures with MariaDB
The 'enable' field doesn't exist, and this is causing some failures
with MariaDB (and probably with MySQL too).
2023-04-12 11:43:52 +02:00
Meirza bb7f3bd9f5 MDL-77374 libraries: Added #[AllowDynamicProperties] attribute
To temporarily prevent the PHP 8.2 warning about Dynamic Properties' deprecation,
the #[AllowDynamicProperties] property was added. We encourage anyone to perform the upgrade
as soon as the Google library complies with PHP 8.2.
2023-04-12 16:39:43 +07:00
Ilya Tregubov 99e2c31f3a Merge branch 'MDL-77585-master' of https://github.com/jleyva/moodle 2023-04-12 17:24:22 +08:00
Shamim Rezaie caa9fe6e42 Merge branch 'MDL-76722-master' of https://github.com/andrewnicols/moodle 2023-04-12 19:23:17 +10:00
Shamim Rezaie e2120da616 MDL-77871 gradereport_grader: Make sure cells are full-height 2023-04-12 09:08:19 +02:00
Meirza 8cee99346b MDL-77348 mod_lesson: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-04-12 13:56:27 +07:00
Meirza 67e583783c MDL-77348 mod_lti: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

While working on this issue, even though it's not related to the deprecation issue,
I added 'use core_external\external_api' to avoid the 'Undefined type external_api' warning at
mod_lti_testcase::generate_tool_proxy().
2023-04-12 13:56:21 +07:00
Meirza 52f512e5cf MDL-77348 mod_scorm: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-04-12 13:05:35 +07:00
Meirza 1f78fb2562 MDL-77348 mod_data: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-04-12 13:05:28 +07:00
Kevin Percy b9ad54bad8 MDL-76212 gradebook_nav: Fixed tertiary nav for smaller screens 2023-04-12 13:29:13 +08:00
Meirza a96114571e MDL-77348 mod_glossary: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-04-12 10:04:24 +07:00
Paul Holden 9efd335f4a MDL-77882 gradereport_grader: don't search on custom identity field.
Currently throws SQL exceptions if site identity configuration has
such a field included.
2023-04-11 22:54:39 +01:00
Juan Leyva c0560689fc MDL-77468 user: Fix invalid check for group belonging 2023-04-11 09:29:58 -03:00
Juan Leyva e464d2c8a1 MDL-77468 user: Make user profile visibility consistent web and ws 2023-04-11 09:24:40 -03:00
Sara Arjona 255d5a3c5a Merge branch 'MDL-77837-master' of https://github.com/andrewnicols/moodle 2023-04-11 12:12:43 +02:00
Sara Arjona 7d750e2a46 Merge branch 'MDL-77030-master-feedback' of https://github.com/kevpercy/moodle 2023-04-11 11:17:52 +02:00
Sara Arjona dbabe07db8 Merge branch 'MDL-77148' of https://github.com/AnupamaSarjoshi/moodle 2023-04-11 10:17:03 +02:00
Sara Arjona b4feecf2f5 Merge branch 'MDL-77612-master' of https://github.com/laurentdavid/moodle 2023-04-11 10:04:35 +02:00
Sara Arjona cdeec59377 Merge branch 'MDL-76792-master' of https://github.com/jleyva/moodle 2023-04-11 09:13:08 +02:00
Kevin Percy b976b3bed0 MDL-77030 gradereport_grader: Display feedback in grader report 2023-04-11 13:16:06 +08:00
Laurent David 9f1f4de23b MDL-77612 mod_label: Label name fix
* The @@PLUGINFILE@@ placeholder or URLs should not be displayed in the
course index for labels
2023-04-11 05:24:07 +02:00
Alex Morris 38160a6f94 MDL-76722 message_airnotifier: Add encrypted notifications 2023-04-11 08:58:27 +08:00
Alex Morris 9bc236d48d MDL-76722 user: Add new update_user_device_public_key webservice 2023-04-11 08:58:27 +08:00
Alex Morris 7c843b380b MDL-76722 lib/db: Add new publickey field to user_devices table 2023-04-11 08:58:26 +08:00
Shamim Rezaie d580daaf48 Merge branch 'MDL-77686' of https://github.com/paulholden/moodle 2023-04-08 05:02:35 +10:00
AMOS bot 84a6867180 Automatically generated installer lang files 2023-04-07 00:07:39 +00:00
Paul Holden aaf231551a MDL-77874 tiny_link: define help link text language string. 2023-04-06 19:08:03 +01:00
Andrew Nicols 115d6a8b9d MDL-77837 cron: Move cron_setup_user to deprecatedlib 2023-04-06 23:19:01 +08:00
Andrew Nicols 25f1ec59d9 MDL-77837 core: Improve usage docs for cron::setup_user 2023-04-06 23:19:01 +08:00
Andrew Nicols 2dde341898 MDL-77837 core: Improve cron upgrade.txt notes 2023-04-06 23:19:01 +08:00
Andrew Nicols 5319ba9c15 MDL-77837 phpunit: Ensure that the cron user setter is used
When running an adhoc task in a unit test we should use the cron variant
of the set user method to mimic the behaviour of a real cron run.
2023-04-06 23:19:01 +08:00
Andrew Nicols 12b0f796b9 MDL-77837 cron: Ensure user is set when running tasks
We should be proactive in ensuring that the environment is clean when
running a task. We already ensure that we have a clean renderer and
other parts of the output chain, but we were not setting a clean user.

This change adds a call to setup the cron user before each task is
actually executed.
2023-04-06 23:19:01 +08:00
Paul Holden fa921f87f2 MDL-77686 logstore_legacy: final plugin uninstallation step.
This supersedes the partial uninstallation from 61cd980f, ensuring
we also now clear up any remaining data (e.g. scheduled tasks).
2023-04-06 14:46:31 +01:00
Paul Holden e80192f606 MDL-77770 gradereport_user: fix errors when no users to navigate. 2023-04-06 14:40:58 +01:00
Eloy Lafuente (stronk7) 5d9eae8042 MDL-73610 nodejs: Small updates to required packages
The main goal of this issue is to avoid scanners (Dependabot
and friends), reporting about security issues with the current
xmldom 0.6.0 package.

Note that this doesn't affect prod at all, because it's a dev
dependency, hardly exploitable. So it's not a security fix, just
a security_benefit, if something.

So here, we are updating from xmldom 0.6.0 to @xmldom/xmldom 0.8.7
(note that the package was renamed in 0.7.0, so it's the very same)

Also, when proceeding with the changes, it was detected that we
are incorrectly declaring @babel/eslint-parser as a normal dependency
instead of a development one, so we are also fixing that little detail.

The commands executed to get the changes above applied have been:

- nvm use
- npm install @xmldom/xmldom@^0.8.7 --save-dev
- npm uninstall xmldom
- npm install @babel/eslint-parser@^7.17.0 --save-dev

(we haven't run a complete re-install because we only want to modify
the minimum possible at this stage).
2023-04-06 14:59:33 +02:00
Anupama Sarjoshi e6a3295fba MDL-77148 core: Fix to export params for templates in correct format
When questions are filtered by tags in the question bank, the qtagids
params are passed in the array format. Though moodle_url handles this,
single_button::export_for_template cannot. Hence changes done in
weblib.php to provide params for export_for_template in the
suitable format.
Thanks Huong. I have added the Behat test you provided in the patch.
2023-04-06 13:22:01 +01:00
Sara Arjona bd2de8edf6 on-demand release 4.2dev+ 2023-04-06 14:03:11 +02:00
Sara Arjona 78116a0ceb Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-04-06 14:02:59 +02:00
Paul Holden 997713f43e MDL-77355 webservice: Behat scenario for adding service functions. 2023-04-06 11:58:53 +01:00
Matt Porritt 6abfde47dc MDL-77355 Web services: add function class not found
Fixes a regression caused by MDL-76583 That prevents functions
being added to new or existing external services.
2023-04-06 11:46:35 +01:00
Andrew Nicols 31f82832b6 MDL-65471 core: Sort directories before hashing 2023-04-06 15:41:00 +08:00
Andrew Nicols eb1b172397 Merge branch 'MDL-65471-outageless' of https://github.com/Peterburnett/moodle 2023-04-06 08:36:25 +02:00
Ilya Tregubov e6cc70c9e7 Merge branch 'MDL-76150-patch' of https://github.com/ilyatregubov/moodle 2023-04-06 08:36:25 +02:00
Sara Arjona 84a0ad16e2 Merge branch 'MDL-73642_master' of https://github.com/tasosb/moodle 2023-04-06 08:36:24 +02:00
Shamim Rezaie 06a48988e6 MDL-76150 gradereport_grader: dropdowns were partly covered during behat 2023-04-06 08:36:24 +02:00
Paul Holden dcc32979ec Merge branch 'MDL-77802-master' of https://github.com/ferranrecio/moodle 2023-04-06 08:36:22 +02:00
Ilya Tregubov ac7f9b45a3 Merge branch 'MDL-77130-master-v2' of https://github.com/dmitriim/moodle 2023-04-06 08:35:17 +02:00
Sara Arjona 34ab6b02d9 Merge branch 'MDL-75301_master' of https://github.com/marxjohnson/moodle 2023-04-06 08:33:06 +02:00
Peter Burnett 027c770eab MDL-65471 upgrade: framework to reduce maintenance mode 2023-04-06 11:38:26 +10:00
Paul Holden 9787a885c1 MDL-77860 tool_moodlenet: use localised language strings for import. 2023-04-05 23:02:55 +01:00
Jun Pataleta e3c0c2f2c2 MDL-77856 qtype_multianswer: Use Bootstrap Popover for subq feedback
The YUI Overlay widget encloses the subquestion feedback in a div
which causes a div element to be enclosed in the subquestion span. This
leads to an accessibility issue in terms of HTML parsing as inline
elements (span) should not contain block elements (div)
The YUI Overlay widget is also not accessible as it does not really hide
the overlay contents via aria-hidden when the overlay is not being
shown. It's better if we stop using this and use Bootstrap's
popover component which is more accessible by default.

This patch also removes module.js for the qtype_multianswer plugin as
it only contains codes related to rendering the feedback contents in the
YUI overlay widget which is no longer necessary.
2023-04-06 05:33:46 +08:00
Ferran Recio 625f9646a7 MDL-77802 core_xapi: create core_xapi_get_states webservice
The xAPI get states webservice is needed for mobile APPs to check if any
new state has been stored from another device.
2023-04-05 12:59:06 +02:00
Shamim Rezaie b54fbcf532 Merge branch 'MDL-77555' of https://github.com/paulholden/moodle 2023-04-05 11:25:16 +01:00
Paul Holden 63b3e4f996 Merge branch 'MDL-69551' of https://github.com/timhunt/moodle 2023-04-05 11:25:16 +01:00
Ilya Tregubov 3d4bb4cfe4 Merge branch 'MDL-76150-master' of https://github.com/rezaies/moodle 2023-04-05 11:25:16 +01:00
Shamim Rezaie 880a67aba1 MDL-76150 gradereport_grader: Display category name cell like 2 columns 2023-04-05 11:25:15 +01:00
Shamim Rezaie 21aee2b968 MDL-76150 gradereport_grader: Make numerical grades right-aligned
- state icons follow the alignment of their respective grade type
2023-04-05 11:25:15 +01:00
Shamim Rezaie 867186cb1d MDL-76150 gradereport_grader: Split header cells to 3 visual columns
- Column width changed to 200px
2023-04-05 11:25:15 +01:00
Shamim Rezaie 086720334f MDL-76150 gradereport_grader: status icons stick to the row's buttom
- There's 20px gap between status icons
- The row height adapt to the content
2023-04-05 11:25:15 +01:00
Shamim Rezaie d93c99f19b MDL-76150 gradereport_grader: some style changes
- Table cells are top-aligned
- Cell paddings changed to 10px
- In the header row, the user detail cells don't wrap but other cells do
- Grade item names wrap when they are long
- Action menu button for the grade cells does not go to the next line
  when the cell is not in the header row
- Heading cells in the footer row are right aligned
2023-04-05 11:25:14 +01:00
Shamim Rezaie f5bda6d051 MDL-76150 gradereport_grader: render header cells from template 2023-04-05 11:25:14 +01:00
Shamim Rezaie 97f89d3438 MDL-76150 gradereport_grader: Remove striped bg colours 2023-04-05 11:25:14 +01:00
Shamim Rezaie 5a890b5ff1 MDL-76150 theme_boost: fix sticky header position on narrow screens 2023-04-05 11:25:14 +01:00
Shamim Rezaie 6ca40f597f MDL-76150 gradereport_grader: Remove abandoned CSS definitions 2023-04-05 11:25:14 +01:00
Mark Johnson 96bada8495 MDL-75301 quiz: Use "always latest" option for question previews
This will set the "alwayslatest" option when previewing a question from
the quiz according to the version setting used in the quiz slot.
2023-04-05 10:23:47 +01:00
Mark Johnson 23630ece3d MDL-75301 question: Add "always latest" option to previews 2023-04-05 10:23:47 +01:00
Paul Holden 5d0f34bde2 MDL-77555 reportbuilder: improve SQL generation within filters.
Use native ANSI SQL syntax for numeric comparisons where possible,
define filter API for the case where filters must re-use the given
field SQL while ensuring uniqueness of any field parameters.

Currently only necessary in the category filter type.
2023-04-05 09:37:37 +01:00
Srdjan 85323070e7 MDL-70975 task: adhoctasks.php - queued ad hoc tasks report
Similar to scheduled tasks report

core\task\manager::adhoc_task_from_record() now raises moodle_exception
2023-04-05 11:29:46 +10:00
Srdjan 6d9aaa8412 MDL-70975 task: Support for running only failed ad hoc tasks
* CLI adhoc_task.php: new option --failed
2023-04-05 11:05:23 +10:00
Srdjan fa61fce08d MDL-70975 task: Support for limiting the number of adhoc tasks to run
* CLI adhoc_task.php: new option --taskslimit
* CLI adhoc_task.php: --execute option is implied when other options are given
* core\task\manager::get_next_adhoc_task(): new param $number
  for limiting number of tasks to run
2023-04-05 11:05:18 +10:00
Srdjan 3491ea1650 MDL-70975 task: Support for running adhoc tasks filtered by class
* CLI adhoc_task.php: new option --classname
* core\task\manager::get_next_adhoc_task(): new param $classname
  for filtering tasks
2023-04-05 11:00:46 +10:00
Srdjan 9405b5aa6d MDL-70975 task: Support for running adhoc tasks by id
* CLI adhoc_task.php: new option --id
* cron::run_adhoc_task($taskid) for running tasks by id
* core\task\manager::get_adhoc_task($taskid) for retreival/locking
2023-04-05 10:55:18 +10:00
AMOS bot 78c8050676 Automatically generated installer lang files 2023-04-05 00:07:47 +00:00
Juan Leyva d16ed5a5e9 MDL-77788 mod_assign: Apply format_string to group names in WS 2023-04-04 18:14:32 -03:00
Paul Holden 1f6722e696 Merge branch 'MDL-77254-master' of https://github.com/sarjona/moodle 2023-04-04 17:36:51 +01:00
Paul Holden a56c646317 Merge branch 'MDL-77839-master' of https://github.com/sarjona/moodle 2023-04-04 16:46:17 +01:00
Sara Arjona 1996a7cfbf MDL-77254 backup: Backup/restore xAPI state 2023-04-04 17:23:43 +02:00
Sara Arjona c8628576e3 MDL-77254 h5p: Add support to restored states
The restored states should be treated differently, to avoid resetting
them by default the first time users access them.
In that case, the first time users access to content with restored
xAPI states, they should be displayed (instead of resetting them).
2023-04-04 17:23:43 +02:00
Tim Hunt 6f9f573a84 MDL-69551 quiz: start quiz password field should be a passwordunmask
This help accessibility and usability
2023-04-04 12:18:37 +01:00
Paul Holden 7b041826b5 Merge branch 'MDL-77712-master' of https://github.com/laurentdavid/moodle 2023-04-04 12:06:41 +01:00
Paul Holden e7294e280f MDL-74936 core: version bump to force upgrade/cache reload.
Ensure all the new context level namespaces/classes are available.
2023-04-04 10:44:23 +01:00
Paul Holden c51b7e2c44 MDL-77012 editor_tiny: correct block formats property syntax.
Co-authored-by: Hiroto Kagotani <hiroto.kagotani@gmail.com>
2023-04-04 09:53:13 +01:00
Sara Arjona 37ae308e0c MDL-77839 mod_h5pactivity: Improve behat to avoid random errors
The 'Content state is removed when an attempt is created' scenario
is failing randomly because the content for the student2 was not
always saved. Some extra steps have been added to give more time
to the player to save contents and also to check it has the
expected value.
2023-04-04 10:30:47 +02:00
Sara Arjona 9ae7853669 Merge branch 'MDL-77825' of https://github.com/Chocolate-lightning/moodle 2023-04-04 10:09:25 +02:00
Ilya Tregubov 90fa3f3390 Merge branch 'MDL-69976' of https://github.com/paulholden/moodle 2023-04-04 12:20:52 +08:00
Andrew Nicols b8fb2f43e8 Merge branch 'MDL-77584-master' of https://github.com/ewallah/moodle 2023-04-04 12:05:18 +08:00
Andrew Nicols 261bfa1b42 Merge branch 'MDL-77385-master' of https://github.com/srobotta/moodle 2023-04-04 12:03:54 +08:00
Andrew Nicols b0d5ad536b MDL-74936 core: Add context to apis.json 2023-04-04 11:24:21 +08:00
Andrew Nicols a262ba5d6e Merge branch 'MDL-74936' of https://github.com/skodak/moodle 2023-04-04 11:22:49 +08:00
Dmitrii Metelkin c11d4284be MDL-77130 cohort: add custom fields 2023-04-04 13:01:40 +10:00
AMOS bot b6d5458702 Automatically generated installer lang files 2023-04-04 00:07:48 +00:00
Paul Holden 5a85990706 Merge branch 'MDL-77338-master' of https://github.com/meirzamoodle/moodle 2023-04-03 16:48:19 +01:00
Meirza 8a5485a714 MDL-77338 backup: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-04-03 22:39:39 +07:00
Paul Holden 7fa4859b34 Merge branch 'MDL-75906-master' of https://github.com/mickhawkins/moodle 2023-04-03 14:54:04 +01:00
Mathew May d017cb5d52 MDL-77825 grade_gradereport: MS SQL fix for user search 2023-04-03 20:17:59 +08:00
Mark Johnson bddfd39804 MDL-75301 question: Add behat generator for updating questions
This adds "core_question > updated question" as an entity for `the
following "X" exist` and calls the existing update_question() generator
which will create a new question version with the supplied data.
2023-04-03 12:31:15 +01:00
Sara Arjona 0d8fc7d9b1 Merge branch 'MDL-76800-master' of https://github.com/raortegar/moodle 2023-04-03 12:41:14 +02:00
Paul Holden cea2bf47eb Merge branch 'MDL-77227-master' of https://github.com/aanabit/moodle 2023-04-03 10:56:13 +01:00
Sara Arjona 1f9ed85d71 Merge branch 'MDL-77807' of https://github.com/paulholden/moodle 2023-04-03 11:53:12 +02:00
Michael Hawkins d4cdf52873 MDL-75906 core: Updated security.txt expiry 2023-04-03 17:11:02 +08:00
Sara Arjona c75ff0b0a3 Merge branch 'MDL-77656' of https://github.com/timhunt/moodle 2023-04-03 11:01:34 +02:00
Laurent David 166e04899e MDL-77712 core_course: Fix exception with inplace editor
* On fresh install, an exception is raised when we try to modify
the name of a newly inserted activity in the front page
2023-04-03 10:33:56 +02:00
AMOS bot d61705cf82 Automatically generated installer lang files 2023-04-02 00:07:40 +00:00
AMOS bot be350ecd2a Automatically generated installer lang files 2023-04-01 00:07:51 +00:00
Petr Skoda 176191dab5 MDL-74936 core: tidy up context API 2023-03-31 23:09:39 +02:00
Petr Skoda 728c3c4bd1 MDL-74936 core: namespace all context class 2023-03-31 23:09:39 +02:00
Paul Holden fba0658777 on-demand release 4.2dev+ 2023-03-31 18:13:57 +01:00
Paul Holden af694fea80 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-31 18:13:54 +01:00
Tim Hunt 9efaa719cc MDL-77656 quiz: stop using displayed number as an id 2023-03-31 16:01:23 +01:00
Tim Hunt 3bea326d7a MDL-77656 quiz: Don't use custom question numbers from shuffled sections 2023-03-31 16:01:23 +01:00
Tim Hunt 24bbb18eb2 MDL-77656 quiz editing: customisable numbers only in unshuffled sections
This works by always outputting both the customised and uncustomised
number into the HTML of the Questions page, then uses CSS & JS to
show the appropriate one as shuffle is toggled.
2023-03-31 16:01:23 +01:00
Tim Hunt d7462893b0 MDL-77656 quiz: handling special chars in customised question numbers 2023-03-31 16:01:22 +01:00
Tim Hunt 6df55bf1f3 MDL-77656 quiz: fix web services to handle custom question numbers 2023-03-31 16:01:22 +01:00
Paul Holden 541981fcb9 MDL-74465 blocks: correct upgrade note version number. 2023-03-31 08:46:26 +01:00
raortegar ca2fd15a2a MDL-76800 lib: Adapt dataformat to OpenSpout 4.0 version. 2023-03-31 09:18:14 +02:00
Ilya Tregubov e090ef0b6a Merge branch 'MDL-76143-patch' of https://github.com/ilyatregubov/moodle 2023-03-31 14:33:30 +08:00
Mathew May c48881b5fd MDL-76143 gradereport_grader: Behat changes after integration 2023-03-31 14:32:44 +08:00
Jake Dallimore d4c37fc282 Merge branch 'MDL-59175' of https://github.com/paulholden/moodle 2023-03-31 11:56:14 +08:00
Jake Dallimore 3811982477 Merge branch 'MDL-77794' of https://github.com/paulholden/moodle 2023-03-31 11:48:29 +08:00
Andrew Nicols 64f2e494b9 Merge branch 'MDL-77783-master' of https://github.com/junpataleta/moodle 2023-03-31 11:30:54 +08:00
Jake Dallimore aeb7763a0d Merge branch 'MDL-77033-master-3' of https://github.com/ilyatregubov/moodle 2023-03-31 11:29:45 +08:00
Shamim Rezaie e541732a6a Merge branch 'MDL-74465-master-5' of https://github.com/marinaglancy/moodle 2023-03-31 13:45:15 +11:00
Ilya Tregubov 5b8c1ffd84 Merge branch 'MDL-77406' of https://github.com/AnupamaSarjoshi/moodle 2023-03-31 09:47:23 +08:00
Ilya Tregubov e2f4cf48a5 Merge branch 'MDL-70976-master' of https://github.com/laurentdavid/moodle 2023-03-31 09:41:17 +08:00
AMOS bot fd4a478861 Automatically generated installer lang files 2023-03-31 00:07:44 +00:00
Paul Holden fc2cfd8695 MDL-77807 files: normalise file entity size/type column fields.
The `filename` field was only used by each to determine whether the
file was itself a directory, and it's presence meant that aggregation
of each column wasn't working properly.
2023-03-30 20:40:24 +01:00
Sara Arjona 28953bf23b Merge branch 'MDL-77693-master' of https://github.com/andrewnicols/moodle 2023-03-30 19:00:32 +02:00
Sara Arjona c80dd76bef Merge branch 'MDL-77456-master' of https://github.com/laurentdavid/moodle 2023-03-30 18:42:02 +02:00
Sara Arjona 4c0ce28ade Merge branch 'MDL-77761-master' of https://github.com/junpataleta/moodle 2023-03-30 17:53:13 +02:00
Jun Pataleta 64c1a5c337 Merge branch 'MDL-77306-master' of https://github.com/junpataleta/moodle 2023-03-30 23:38:57 +08:00
Sara Arjona b4cb4ac512 Merge branch 'MDL-77672-master' of https://github.com/ferranrecio/moodle 2023-03-30 17:32:53 +02:00
Jun Pataleta c5c065e10a MDL-77306 core: Remove LIMIT from SQL statement
Adding LIMIT to the primary auth type SQL statement does not play well
with Oracle. We can just remove the LIMIT clause from the SQL statement
and and pass IGNORE_MULTIPLE to the call to $DB->get_field_sql()
instead.
2023-03-30 23:18:27 +08:00
Sara Arjona 09171a3c3a Merge branch 'MDL-77726-master' of https://github.com/jleyva/moodle 2023-03-30 16:56:56 +02:00
Ferran Recio da1aa96664 MDL-77672 core_courseformat: fix bulk in one section per page 2023-03-30 16:42:59 +02:00
Sara Arjona 36f5355865 Merge branch 'MDL-77764' of https://github.com/paulholden/moodle 2023-03-30 16:31:15 +02:00
Paul Holden c59d7f0174 Merge branch 'MDL-77789-master' of https://github.com/sarjona/moodle 2023-03-30 14:32:21 +01:00
Ilya Tregubov 51182b603b MDL-77033 core_grades: Deprecate get icons functions.
We don't use those anymore. There are respective functions to get
link without icon.
2023-03-30 20:20:10 +08:00
Ilya Tregubov 013cf3b741 MDL-77033 core_behat: Fix behat tests. 2023-03-30 20:20:10 +08:00
Ilya Tregubov 11b6dce50c MDL-77033 core_grades: Add status column to setup page
Also make action menu consistent with grader report
2023-03-30 20:20:10 +08:00
Ilya Tregubov 7653093b55 MDL-77033 core_behat: Remove multilang from some scenarios
It should be only tested once. No need to have it in all tests.
Some steps will have to use category fullname so using tags in steps
will look ugly.
2023-03-30 20:20:10 +08:00
Ilya Tregubov 8b4bc3d31a MDL-77033 core_behat: Refactor behat steps to be reusable.
We will need similar step definitions for gradebook setup page.
So moving those from grader plugin to the core.
2023-03-30 20:20:10 +08:00
Ilya Tregubov 9ba802ca0c MDL-77033 cores_grades: Refactor cell menus to be reusable.
We need similar menus on gradebook setup page. So moving from
grader plugin to core
2023-03-30 20:20:10 +08:00
Paul Holden a7f7e0728b Merge branch 'MDL-76481_master_Brickfield_TCPDF_error' of https://github.com/brickfield/moodle 2023-03-30 12:50:07 +01:00
Sara Arjona d94061e03d Merge branch 'MDL-77762' of https://github.com/paulholden/moodle 2023-03-30 13:45:11 +02:00
Marina Glancy 9788496e4a MDL-74465 theme_classic: override new block steps 2023-03-30 12:15:55 +01:00
Marina Glancy a507a9e68a MDL-74465 blocks: changes for backward-compatibility 2023-03-30 12:15:55 +01:00
Marina Glancy 4d768ba508 MDL-74465 block_rss_client: display config when adding 2023-03-30 12:15:54 +01:00
Marina Glancy 2fdfc9c362 MDL-74465 block_glossary_random: display config when adding 2023-03-30 12:15:54 +01:00
Marina Glancy 2909e91877 MDL-74465 block_activity_results: display config when adding 2023-03-30 12:15:54 +01:00
Marina Glancy 04c3cd2343 MDL-74465 block_html: display config when adding 2023-03-30 12:15:54 +01:00
Marina Glancy 6b081d2e9f MDL-74465 blocks: allow configuration in modal
Introduce 'pagehash' - an identifier that uniquely identifies a page for the user session
2023-03-30 12:15:54 +01:00
Marina Glancy 1150b08264 MDL-74465 blocks: move some code into separate functions
This commit has no functional changes, only code refactoring
2023-03-30 12:15:51 +01:00
Jun Pataleta 3aaf813bd2 Merge branch 'MDL-77333' of https://github.com/stronk7/moodle 2023-03-30 19:03:48 +08:00
Sara Arjona afe1f192c4 Merge branch 'MDL-76895-master' of https://github.com/ferranrecio/moodle 2023-03-30 12:51:03 +02:00
Marina Glancy 854dd65966 MDL-74465 blocks: improve phpdocs 2023-03-30 11:41:16 +01:00
Sara Arjona de73be254f MDL-77789 mod_h5pactivity: Only remove the current user state content
When a new attempt is created, the previous state content is removed.
There was a bug which was removing all the content data of a given
activity for all the users (instead of deleting only the content data
for the current user).
2023-03-30 12:32:02 +02:00
Ferran Recio 879dc5f308 MDL-76895 core_courseformat: add detailed bulk selection checks
To prevent future regressions some extra checks has been added to the
bulk_select feature file. The new checks validate the activities and
sections bulk selectors are really selected, not only the total count.
2023-03-30 12:13:24 +02:00
Paul Holden f60057a680 Merge branch 'MDL-77773-master' of https://github.com/andrewnicols/moodle 2023-03-30 10:41:15 +01:00
Ferran Recio 0436605df5 MDL-76895 core_courseformat: add fast bulk selections 2023-03-30 11:40:45 +02:00
Jun Pataleta a5eda30ecf Merge branch 'MDL-77346-master' of https://github.com/meirzamoodle/moodle 2023-03-30 17:31:47 +08:00
Paul Holden 2d820b8f28 MDL-77794 contentbank: fix plugin type language strings.
AMOS BEGIN
 CPY [type_contentbank,core_plugin],[type_contenttype,core_plugin]
 CPY [type_contentbank_plural,core_plugin],[type_contenttype_plural,core_plugin]
AMOS END
2023-03-30 09:50:51 +01:00
Max Larkin b0c5683638 MDL-76481 tool_brickfield: Fix PHP 8 report download 2023-03-30 09:03:36 +01:00
Paul Holden 813800d218 Merge branch 'MDL-75017' of https://github.com/timhunt/moodle 2023-03-30 08:47:52 +01:00
Paul Holden bf3c07834a Merge branch 'MDL-77744-master-2' of https://github.com/ilyatregubov/moodle 2023-03-30 08:34:35 +01:00
Ilya Tregubov 1d919c12c6 Merge branch 'MDL-73771' of https://github.com/lostrogit/moodle 2023-03-30 14:22:32 +08:00
Jun Pataleta ae3e9667c2 MDL-72350 core: Add @covers for test_check_mod_assignment_is_used
Plus, remove getStatus() assertion when running the test with
mod_assignment reinstalled since it check_mod_assignment returns a
null result.
2023-03-30 13:00:39 +08:00
Jun Pataleta 11c2667107 Merge branch 'MDL-72350-master' of https://github.com/stevandoMoodle/moodle 2023-03-30 12:57:20 +08:00
Jun Pataleta 4858a62623 Merge branch 'MDL-76143-class' of https://github.com/Chocolate-lightning/moodle 2023-03-30 12:37:52 +08:00
Andrew Nicols e0acbbc6ea MDL-77693 core: Check the start time of a cron run when fetching tasks
When fetching the list of tasks to run, we were using the _process_
start time as a base. The various task fetchers (adhoc and scheduled)
only fetch tasks which were due to run _before_ this time.

With the new keepalive setting, we need to pass both the process start
time, and the run start time. We need to use the process start time to
determine whether MUC caches have been cleared since the process
started. but the run start time to fetch recent runs.
2023-03-30 11:35:59 +08:00
Mathew May d80fb6ce2c MDL-76143 gradebook: Add search into graderreport 2023-03-30 11:29:01 +08:00
Andrew Nicols 43caf1bee7 Merge branch 'MDL-74664-master' of https://github.com/call-learning/moodle 2023-03-30 11:27:09 +08:00
Jake Dallimore bbe6da6890 Merge branch 'MDL-77347-master' of https://github.com/meirzamoodle/moodle 2023-03-30 10:45:41 +08:00
Sara Arjona 1147a9fe9d MDL-72350 mod: Remove mod_assignment
The Assignment 2.2 activity module was disabled in 2012 but kept to
enable pre-2.2 backups to be restored and have the assignments
auto-converted to new assignments. After almost 10 years, it's time
to remove it from Moodle core.
2023-03-30 09:00:10 +08:00
Stevani Andolo 26d78531e7 MDL-72350 core: Added environment check for mod_assignment
Decided to add an environment check before uninstalling the
mod_assignment plugin to prevent data lost.
2023-03-30 09:00:06 +08:00
Stevani Andolo 7310e99dda MDL-72350 mod: Updated upgrade.txt file 2023-03-30 08:09:13 +08:00
Stevani Andolo 731a62f30f MDL-72350 mod_assign: Removed upgradelib.php from mod_assign
After checking the the relation between mod_assign and mod_assginment,
it was found that upgradelib.php was only used/called from the
mod_assignment. Therefore, it was decided to move the upgradelib.php
from mod_assign to mod_assignment and deleted the line in which requires the upgradelib.php
2023-03-30 08:09:07 +08:00
AMOS bot f4e221887f Automatically generated installer lang files 2023-03-30 00:07:47 +00:00
Amaia Anabitarte fd5db65c0b MDL-77227 roles: Remove extra information for override page 2023-03-29 18:15:46 +02:00
Juan Leyva 7ad5ec2add MDL-76792 course: Remove unnecessary include and checks
This code is very old and does nothing, the proper format validation and fallback is handled by the core_courseformat class.
2023-03-29 17:28:08 +02:00
Juan Leyva b540a59e55 MDL-76792 webservice: Avoid exception when missing component 2023-03-29 17:28:05 +02:00
Laurent David ca2e4603c0 MDL-74664 mod_bigbluebuttonbn: Fix capabilty checking
* role::has_capability_in_course should check if course exist first
2023-03-29 17:16:32 +02:00
Laurent David e635ba840d MDL-74664 mod_bigbluebuttonbn: Restricted recording access fix
* Recording formats should not be accessible to students unless specified as safe
* A global setting will now list all the "safe" formats for students
* A new capability 'mod/bigbluebuttonbn:viewallrecordingsformats' will allow users to
see all formats (as long as they can manage recordings also)
2023-03-29 17:16:32 +02:00
Tim Hunt 47ff5c8e5b MDL-77785 quiz/question: display long question numbers better 2023-03-29 15:04:34 +01:00
Carlos Castillo e882ef7edf MDL-73771 theme: Fix scrollbar position 2023-03-29 09:01:43 -05:00
Paul Holden 4f13fa65ce Merge branch 'MDL-76866-master' of https://github.com/andrewnicols/moodle 2023-03-29 13:36:26 +01:00
Andrew Nicols cd48ee93c3 MDL-76866 repository_contentbank: Mark step as using atto editor 2023-03-29 20:33:47 +08:00
Andrew Nicols faa68960ad MDL-76866 calendar: Make test more specific 2023-03-29 20:33:47 +08:00
Andrew Nicols 198842e4f6 MDL-76866 mod_quiz: Use atto for grading test
This test is using xpaths for Atto specifically and is an Atto-specific
test.

It needs to be rewritten to be editor-agnostic.
2023-03-29 20:33:47 +08:00
Andrew Nicols 035d818dd3 MDL-76866 mod_data: Disable the HTML editor to insert partial HTML
This test is adding table rows into an HTML editor and, quite rightly,
is failing under TinyMCE.

This only worked under Atto because Atto does not perform any HTML
validation. A user would not actually be able to insert the template
content this way, and therefore the test is/was invalid.

This change disables the HTML editor before inserting the template
content, which resembles the actions of a real user.
2023-03-29 20:33:47 +08:00
Andrew Nicols 96fd7a83fb MDL-76866 mod_data: Editors should have data-fieldtype attrib 2023-03-29 20:33:47 +08:00
Andrew Nicols 4782312411 MDL-76866 editor_atto: Remove old install script
This install script has not been required for a number of years because
we require the previous LTS for an LTS+1 upgrade. Once Atto was
part of core after an LTS release, it was safe to remove this file.

This is now preventing Tiny from becoming default for new installs in
some situations.
2023-03-29 20:33:47 +08:00
Andrew Nicols 2583805c68 MDL-76866 editor_tiny: make tiny default editor 2023-03-29 20:33:47 +08:00
raortegar 3ddfaebd43 MDL-76800 lib: upgrade OpenSpout to 4.0 2023-03-29 11:34:19 +02:00
Ilya Tregubov b6a5a0bcc2 MDL-77744 core_grades: Use separate attribute for gradeitems/users. 2023-03-29 17:24:55 +08:00
Paul Holden e4317c27b2 Merge branch 'MDL-77339-master' of https://github.com/meirzamoodle/moodle 2023-03-29 10:21:08 +01:00
Paul Holden 2e7cf5a9be Merge branch 'MDL-77701-master' of https://github.com/dpalou/moodle 2023-03-29 10:04:40 +01:00
Jun Pataleta acb6846bfa Merge branch 'MDL-77774' of https://github.com/paulholden/moodle 2023-03-29 16:55:41 +08:00
Sara Arjona 4bb8de0c6e Merge branch 'MDL-77677-master' of https://github.com/ferranrecio/moodle 2023-03-29 10:33:07 +02:00
Laurent David 0ff7295ee4 MDL-77456 core_courseformat: Fix highlight in course index
* When navigating to a restricted activity as a student from the course index
the item is not highlighted when refreshing the page.
2023-03-29 09:13:54 +02:00
Laurent David 4281b6e859 MDL-70976 core_files: Allow for draft files url inserted in content
* The file file_remove_editor_orphaned_files should take into account URL that
have been embedded in a tag content instead of an attribute (like src attribute)
* This will fix issue with inserting H5P content in calendar events.
2023-03-29 09:09:56 +02:00
Ilya Tregubov 499894532d Merge branch 'MDL-77748' of https://github.com/skodak/moodle 2023-03-29 14:12:41 +08:00
Shamim Rezaie a0b134107c Merge branch 'MDL-74452_master' of https://github.com/marxjohnson/moodle 2023-03-29 15:26:49 +11:00
Matt Porritt 4c76cc46f8 MDL-77306 Site Registration: add extra statistics
Add the DB type, count of courses with start or end dates set,
default site theme, and primary auth type statistics to those
collected as part of the site registration data.
2023-03-29 15:22:28 +11:00
Stevani Andolo 9266ae8f4a MDL-72350 mod_assignment: Removed all mod_assignment files 2023-03-29 11:47:43 +08:00
Jun Pataleta 904567404b Merge branch 'MDL-77767-master' of https://github.com/jleyva/moodle 2023-03-29 11:17:10 +08:00
Ilya Tregubov e328cc54ae Merge branch 'MDL-77740-master' of https://github.com/andrewnicols/moodle 2023-03-29 10:57:35 +08:00
Jun Pataleta 476f162812 Merge branch 'MDL-77382-master' of https://github.com/snake/moodle 2023-03-29 09:48:38 +08:00
Jun Pataleta 7695b4b18c Merge branch 'MDL-77119' of https://github.com/paulholden/moodle 2023-03-29 09:46:31 +08:00
Jun Pataleta e174f3e0d5 Merge branch 'MDL-76941-master-2' of https://github.com/HuongNV13/moodle 2023-03-29 09:31:58 +08:00
Jun Pataleta e95e290532 MDL-77783 core: Validate sublugins.json
* Validate the decoded subplugins.json before processing it.
* Log errors if subplugins.json is invalid or if plugintypes is not
defined.
2023-03-29 09:29:36 +08:00
Jun Pataleta 8e8a8c1a60 MDL-77761 core_form: Add label for editor format selector 2023-03-29 07:59:39 +08:00
Stephan Robotta b86719f9d0 MDL-77385 cli: CLI script to modify emailstop flag for users 2023-03-28 20:23:23 +02:00
Paul Holden 107b21db16 MDL-77774 gradereport_grader: correct/cleanup previous upgrade step.
Using incorrect data in the upgrade step from ca60efb8 created a
phantom plugin entry.
2023-03-28 18:42:51 +01:00
Eloy Lafuente (stronk7) 6612eab5a4 MDL-77333 mod_resource: fixes generator uploading files + tests
MDL-76499 revealed a few problems with resource generators:

1. We were not covering with unit tests the upload of files from disk
   (and here it's where the problem was).
2. There was a little of confusion between disk paths (only needed
   to upload files) and file_area paths (the generator only creates
   or uploads files to the root directory of the file area.
3. It was possible to request the upload of a file to the generator
   without that file effectively existing.

This commit fixes those points  and covers 99% of the generator code.
2023-03-28 19:06:09 +02:00
Anupama Sarjoshi 23aab0eebf MDL-77406 core: Fix code checker issues 2023-03-28 17:50:03 +01:00
Anupama Sarjoshi 42f4b0a991 MDL-77406 core: Logs to record user file uploaded in draft area 2023-03-28 17:49:54 +01:00
Paul Holden f7a8df253b on-demand release 4.2dev+ 2023-03-28 15:55:49 +01:00
Paul Holden bec19cf3f7 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-28 15:55:46 +01:00
Andrew Nicols 7ba9097264 MDL-77773 editor_tiny: Improve initial editor size 2023-03-28 20:47:49 +08:00
Paul Holden 59e69a939e Merge branch 'MDL-77105-master-4' of https://github.com/junpataleta/moodle 2023-03-28 12:38:39 +01:00
Jun Pataleta 064971648c MDL-77105 core: Cast custom data to an array when evaluating filtericon
Since other modules may treat custom data as an object, we need to make
cast it to an array before evaluating for the `filtericon` custom data.
2023-03-28 18:48:31 +08:00
Mark Johnson ace34e2bb2 MDL-74452 quiz: Fix reopen_open_attempt_test 2023-03-28 11:42:44 +01:00
Mark Johnson 72e7818467 MDL-74452 quiz: Display an error if all versions are in draft status 2023-03-28 11:42:44 +01:00
Juan Leyva fe2f96762a MDL-77767 question: Fix PHP warning in ddimageortext 2023-03-28 11:39:17 +02:00
Ferran Recio f52d4fcb82 MDL-77677 core_courseformat: debounce reload cm method 2023-03-28 09:48:51 +02:00
Dani Palou 349774a9f3 MDL-77701 mod_h5pactivity: Return admin settings in by_courses WS 2023-03-28 08:00:48 +02:00
Huong Nguyen dfaf14fb18 MDL-76941 tool_usertours: Fix accessibility issue when resizing 2023-03-28 12:17:39 +07:00
Andrew Nicols ad15209e1f Merge branch 'MDL-77029-master' of https://github.com/ilyatregubov/moodle 2023-03-28 12:37:01 +08:00
Jake Dallimore 1d25d477d6 Merge branch 'MDL-76149-master' of https://github.com/rezaies/moodle 2023-03-28 12:07:32 +08:00
Jake Dallimore efac6d72cf Merge branch 'MDL-77105-master-4' of https://github.com/junpataleta/moodle 2023-03-28 11:42:29 +08:00
Ilya Tregubov cb00d26105 MDL-77029 gradereport_grader: Fix sorting bug
When column was sorted in descending order, null values
were shown first.
2023-03-28 11:22:45 +08:00
Ilya Tregubov fc9583bae1 MDL-77029 gradereport_grader: Add sorting to grade item columns 2023-03-28 11:22:42 +08:00
Andrew Nicols 8fe80e743c MDL-77740 editor_tiny: Set the Editor window from the iFrame element
This is a workaround for an upstream bug which I have not been able to
reproduce outside of Moodle whereby the editor.contentWindow does not
match the editor.iframeElement.contentWindow when it should.

This issue only seems to affect Firefox, and it may even be a bug in
Firefox. It can only be reproduced when using a fresh browser which has
never had a TinyMCE window open.
2023-03-28 10:43:21 +08:00
Jun Pataleta d4d13a5a94 Merge branch 'MDL-77342-master' of https://github.com/meirzamoodle/moodle 2023-03-28 09:54:50 +08:00
Jun Pataleta 860f85e8b8 Merge branch 'MDL-77670-master' of https://github.com/juancs/moodle 2023-03-28 07:04:23 +08:00
Paul Holden fd3180c5d3 MDL-77762 contentbank: always provide exit button when appropriate.
If the current user can access the content bank in the context of the
current item, then provide link back to it.
2023-03-27 18:08:55 +01:00
Meirza ab2f3f1bda MDL-77339 grade: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 22:53:04 +07:00
Paul Holden 5ed9c1da14 MDL-77764 contentbank: add field label to context selection element. 2023-03-27 16:51:52 +01:00
Meirza 98c55a725e MDL-77346 mod_workshop: Added missing class properties
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 21:59:39 +07:00
Sara Arjona 7c2cacaaf0 Merge branch 'MDL-76376' of https://github.com/jrchamp/moodle 2023-03-27 16:56:22 +02:00
Sara Arjona 1a01afbcb3 Merge branch 'MDL-77659' of https://github.com/AnupamaSarjoshi/moodle 2023-03-27 16:50:25 +02:00
Sara Arjona cc853bf064 Merge branch 'MDL-73226-master' of https://github.com/jleyva/moodle 2023-03-27 16:08:19 +02:00
Juan Leyva fc97f32010 MDL-73226 files: Add quota checks to core_user_add_user_private_files 2023-03-27 13:11:46 +02:00
Sara Arjona e4663dc82f Merge branch 'MDL-76303-master' of https://github.com/ssj365/moodle 2023-03-27 12:39:44 +02:00
Paul Holden 696ae3bc3a Merge branch 'MDL-77729' of https://github.com/timhunt/moodle 2023-03-27 11:09:24 +01:00
Paul Holden 1e22628003 Merge branch 'MDL-77734-master' of https://github.com/ferranrecio/moodle 2023-03-27 10:45:10 +01:00
Sara Arjona c2793cf824 Merge branch 'MDL-77561-master' of https://github.com/lameze/moodle 2023-03-27 11:43:19 +02:00
Paul Holden 4146329063 MDL-77555 reportbuilder: method to ensure unique parameters in SQL. 2023-03-27 10:29:25 +01:00
Ferran Recio 5cdb09d10c MDL-77734 core_courseformat: add title to bulk duplicate activities 2023-03-27 11:17:55 +02:00
Meirza a36fcf48a9 MDL-77347 files: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 15:58:22 +07:00
Meirza 7466712fc2 MDL-77347 mod_feedback: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 15:58:17 +07:00
Meirza ace998b8eb MDL-77347 mod_survey: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 15:58:12 +07:00
Meirza f34a1296b5 MDL-77347 mod_bigbluebuttonbn: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 15:58:06 +07:00
Meirza caddf4dd1d MDL-77347 mod_chat: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-27 15:58:01 +07:00
Jun Pataleta 3ecaf6362b MDL-77105 core: Add upgrade.txt notes 2023-03-27 13:58:24 +08:00
Jun Pataleta 6077aae181 MDL-77105 mod_url: Declare filtericon custom data
* Set a custom data `filtericon` when the icon being rendered for the
URL resource is not equal to the default plugin icon.
2023-03-27 13:58:23 +08:00
Jun Pataleta f10d132bdc MDL-77105 mod_lti: Add 'nofilter' class for custom tool icons
Add a '.nofilter' class when rendering custom tool icons in order
to render them as is and without CSS filter on the activity chooser.
2023-03-27 13:57:07 +08:00
Jun Pataleta cd4cebdaef MDL-77105 core_course: Add 'nofilter' class for non-monologo icons
When rendering content items, check whether the plugin has monologo
icons. If so, add a 'nofilter' class so the plugin icon can be
rendered as is and without the CSS filter.
2023-03-27 13:56:15 +08:00
Jun Pataleta 97215704d3 MDL-77105 block_timeline: Add 'nofilter' class when necessary
Add the `.nofilter` class for activity icons when the icon URL's
`filtericon` parameter is not set, so they get rendered as they are on
the timeline block.
2023-03-27 13:54:36 +08:00
Jun Pataleta b78978dac6 MDL-77105 block_recentlyaccesseditems: Add 'nofilter' class
Add the `.nofilter` class for activity icons when the icon URL's
`filtericon` parameter is not set, so they get rendered as they are on
the recently accessed items block.
2023-03-27 13:53:56 +08:00
Jun Pataleta cf09a7f253 MDL-77105 theme_boost: Add 'nofilter' class when necessary
Add the `.nofilter` class for activity icons when the icon URL's
`filtericon` parameter is not set, so they get rendered as they are on
the context header on the activity page.
2023-03-27 13:32:09 +08:00
Jun Pataleta 95d0e30eff MDL-77105 course_format: Add 'nofilter' class when necessary
Add the `.nofilter` class for activity icons when the icon URL's
`filtericon` parameter is not set, so they get rendered as they are on
the course homepage.
2023-03-27 13:32:09 +08:00
Jun Pataleta 2ce59aa924 MDL-77105 core: Conditionally apply icon filter
* Apply the filter CSS property only to activity icons
that don't have the ".nofilter" class. This will allow
activities with non-SVG icons to be rendered as they are.
2023-03-27 13:32:09 +08:00
Jun Pataleta a898d8ac54 MDL-77105 core: Add a filtericon parameter to course mod icon URLs
* If a plugin defines a `filtericon` custom data or uses its monologo
version of the icon, a `filtericon` parameter is being added to the
icon's URL. This information can help plugins determine whether to
render the activity icon as is or with CSS filtering.
2023-03-27 13:32:09 +08:00
Jun Pataleta cd0afd5c76 MDL-77105 core: Method to determine whether a plugin has monolog icons 2023-03-27 13:32:09 +08:00
Shamim Rezaie ce20ad194e MDL-76149 gradereport_grader: Remove studentsperpage config 2023-03-27 04:50:42 +11:00
Shamim Rezaie 14eefae721 MDL-76149 form: Change checker to respect .ignoredirty for active node 2023-03-27 04:47:49 +11:00
Shamim Rezaie d6f26ec49d MDL-76149 gradereport_grader: show perpage dropdown 2023-03-27 04:47:49 +11:00
Shamim Rezaie b7e66fc444 MDL-76149 gradereport_grader: Adding a sticky footer
The pagination bar and the save button are now displayed on the sticky
footer
2023-03-27 04:47:49 +11:00
Petr Skoda f4f106a1c2 MDL-77748 grunt: fix Windows compatibility 2023-03-26 13:33:05 +02:00
Meirza 59c6b2dccd MDL-77342 repository: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-26 14:48:29 +07:00
AMOS bot 975c2531b9 Automatically generated installer lang files 2023-03-26 00:07:45 +00:00
Tim Hunt a5fc60a997 MDL-77729 qformat_missingword: fix form of help link 2023-03-25 15:38:38 +00:00
Sara Arjona 09fd61415e on-demand release 4.2dev+ 2023-03-24 14:00:13 +01:00
Tim Hunt 94a584bf38 MDL-75017 questions: give a clear error if the context type is invalid 2023-03-24 12:59:22 +00:00
Tim Hunt 2e1fde188e MDL-75017 questions: fix weird setup in qformat_xml_import_export_test 2023-03-24 12:56:14 +00:00
Andrew Nicols eafe74bb2d Merge branch 'MDL-75334-master' of https://github.com/call-learning/moodle 2023-03-24 10:49:26 +08:00
Jun Pataleta 67ad18ce07 Merge branch 'MDL-77626' of https://github.com/timhunt/moodle 2023-03-24 10:40:47 +08:00
Andrew Nicols dc52959313 Merge branch 'MDL-76520-master' of https://github.com/HuongNV13/moodle 2023-03-24 09:34:38 +08:00
Jun Pataleta 40a59bccff Merge branch 'MDL-76147-master-2' of https://github.com/ilyatregubov/moodle 2023-03-24 09:32:40 +08:00
Ilya Tregubov fd2b6f5ca9 MDL-76147 gradereport_grader: Fix collapsing preferences.
At certain cases I didn't see a tick in view mode. For example
when I click grades only and then switch to totals only a tick
next to total only was not shown. I think this is caused since before
mode was changed in circlurar order i.e.
fullmode->grade only->aggregate only->fullmode. But now any order is
possible so we need to respect it
2023-03-24 09:26:45 +08:00
Ilya Tregubov ca60efb89f MDL-76147 gradereport_grader: remove deprecated preferences. 2023-03-24 09:26:45 +08:00
Ilya Tregubov f70f2760e8 MDL-76147 grader_report: Fix action menus being covered.
First column and Averages row are sticky. So menu are
covered those.
2023-03-24 09:26:45 +08:00
Ilya Tregubov d2fe7362af MDL-76147 gradereport_grader: Remove show calculation setting. 2023-03-24 09:26:45 +08:00
Ilya Tregubov de32a9e57d MDL-76147 gradereport_grader: Fix Behat tests. 2023-03-24 09:26:45 +08:00
Ilya Tregubov ae79f856e2 MDL-76147 gradereport_grader: Remove show activity icons setting.
We we always show those. Was enabled by default.
2023-03-24 09:26:45 +08:00
Ilya Tregubov 7656f5b6b0 MDL-76147 gradereport_grader: Move grade items and categories icons to action menu. 2023-03-24 09:26:45 +08:00
Ilya Tregubov 1c9d0e57b1 MDL-76147 gradereport_grader: Code style fixes. 2023-03-24 09:26:45 +08:00
Ilya Tregubov 9af798e684 Merge branch 'MDL-76932-master' of https://github.com/meirzamoodle/moodle 2023-03-24 09:16:34 +08:00
Simey Lameze b15d88b811 MDL-77561 behat: add step to accept dpa and enable bigbluebutton
The step i_enable_plugin cannot be used as bigbluebuttonbn_default_dpa_accepted
setting needs to be enable in order for the BigBlueButton plugin to be enabled.
2023-03-24 08:14:37 +08:00
Sara Arjona 6bcb807d15 Merge branch 'MDL-76360-master' of https://github.com/laurentdavid/moodle 2023-03-23 18:33:49 +01:00
Sara Arjona 8975155060 Merge branch 'MDL-77705' of https://github.com/paulholden/moodle 2023-03-23 18:30:21 +01:00
Juan Leyva 76807203a3 MDL-77726 user: Fix custom user profiles supporting filtering in WS 2023-03-23 18:08:03 +01:00
Paul Holden 2aeaa9e4b3 Merge branch 'MDL-77714' of https://github.com/stronk7/moodle 2023-03-23 17:00:09 +00:00
Sara Arjona 70bcda2ef8 Merge branch 'MDL-77666' of https://github.com/paulholden/moodle 2023-03-23 17:53:38 +01:00
Sara Arjona 5ccb47ef47 Merge branch 'MDL-76246-master' of https://github.com/rezaies/moodle 2023-03-23 17:27:33 +01:00
Shamim Rezaie 3d16a7f453 MDL-76246 core_grades: Add aria-label to the group combobox
Also replaced str with cleanstr for aria-labels
2023-03-24 03:20:44 +11:00
Sara Arjona 9ec55f3091 Merge branch 'MDL-77721-master' of https://github.com/lameze/moodle 2023-03-23 16:17:51 +01:00
Shamiso.Jaravaza dca1c7994f MDL-76303 mod_bigbluebuttonbn: Fix userlimit 2023-03-23 08:26:51 -06:00
Paul Holden ee8290f231 Merge branch 'MDL-77392-master' of https://github.com/srobotta/moodle 2023-03-23 12:25:27 +00:00
Paul Holden cd5b9b97d9 Merge branch 'MDL-77691' of https://github.com/roland04/moodle 2023-03-23 11:43:39 +00:00
Stephan Robotta 06872a4ebd MDL-77392 calendar: calendar items are hidden because of settings 2023-03-23 12:39:15 +01:00
Paul Holden 6c3207ff8f Merge branch 'MDL-73708-master' of https://github.com/rmady/moodle 2023-03-23 11:10:53 +00:00
Laurent David 76e3c30465 MDL-76360 mod_data: Field page layout improvement
* Unify the fields_action_bar and action_bar template
* Make sure the Create a field button is a primary button
* The fields_action_bar is very similar to the action_bar template so
should be used instead
2023-03-23 12:02:14 +01:00
Huong Nguyen 359efecb03 MDL-76520 tiny_link: Add a TinyMCE link plugin
Co-authored-by: Andrew Lyons <andrew@nicols.co.uk>
2023-03-23 15:50:44 +07:00
Simey Lameze 61f4843fed MDL-77721 navigation: Revert the patch for MDL-75908.
This reverts commit 7b8fa9de86.
2023-03-23 15:45:11 +08:00
Jake Dallimore dc63f52538 Merge branch 'MDL-76246-master' of https://github.com/rezaies/moodle 2023-03-23 10:17:06 +08:00
Juan Leyva 27be439eb7 MDL-73708 course: Return geo pattern generated course images via WS 2023-03-22 17:39:07 -03:00
Eloy Lafuente (stronk7) 3faf1c1989 MDL-77714 general: Remove mentions to Travis CI in a few places
Not critical to have, but better don't mention it. Note that all
the cases need to stay because there may be other environments
where the same problems are reproducible.

Only exception is the CURL_SSLVERSION_TLSv1_2 constant, that
can be safely removed because it's available since PHP 5.5.19.
2023-03-22 19:17:14 +01:00
Eloy Lafuente (stronk7) 9a344c8967 MDL-77714 general: Remove Travis CI integration from core
Agreed @ MDLSITE-7135, this completely removes the Travis CI
integration with a note in the lib/upgrade.txt file, pointing
to the currently supported GHA alternative.
2023-03-22 19:04:54 +01:00
Paul Holden 3e0edcdb18 MDL-76551 mod_bigbluebuttonbn: correct stdClass method parameter type. 2023-03-22 17:15:16 +00:00
Paul Holden 0444b91148 Merge branch 'MDL-76551-master' of https://github.com/call-learning/moodle 2023-03-22 17:08:04 +00:00
Laurent David 7af38677b6 MDL-75334 mod_bigbluebuttonbn: Generate course with BigblueButtonBN
* Use a new generator to create a course full of BigblueButton Activities
in order to check for performances with a lot of activities
2023-03-22 17:28:26 +01:00
Sara Arjona ee3502dfc4 Merge branch 'MDL-76905-master' of https://github.com/ferranrecio/moodle 2023-03-22 16:52:47 +01:00
Laurent David aa9c5cf455 MDL-76551 mod_bigbluebuttonbn: Add user picture
* Add user picture with token
* Add a new global setting to enable or disable avatar for users in meeting.
2023-03-22 15:42:28 +01:00
Laurent David ba81f720db MDL-76551 mod_bigbluebuttonbn: Refactor join url
* get_join url should not have as many parameters as they can be deduced from the instance.
* Refactoring it will allow to pass on more implicit parameters like the user profile file.
2023-03-22 15:07:23 +01:00
Paul Holden 2a8228e410 Merge branch 'MDL-77049-master' of https://github.com/sarjona/moodle 2023-03-22 13:39:34 +00:00
Ferran Recio ae799fad7d MDL-76905 core_courseformat: match prototype visual style 2023-03-22 14:08:51 +01:00
Sara Arjona c03b9a47cf Merge branch 'MDL-77380-master' of https://github.com/lameze/moodle 2023-03-22 14:06:01 +01:00
Sara Arjona 465be9348b Merge branch 'MDL-77433-master' of https://github.com/ferranrecio/moodle 2023-03-22 13:53:32 +01:00
Sara Arjona d04f42492c Merge branch 'MDL-77692' of https://github.com/paulholden/moodle 2023-03-22 13:50:06 +01:00
Paul Holden 054a6fa9b4 Merge branch 'MDL-77643-master' of https://github.com/jleyva/moodle 2023-03-22 12:38:02 +00:00
Ferran Recio a1ea81eb8b MDL-77433 core_courseformat: use validate_cms to check capabilities 2023-03-22 13:21:05 +01:00
Sara Arjona 91175a6773 MDL-77049 core_h5p: Use the styles from Raw SCSS theme settings
MDL-69087 added an option to let themes personalize the H5P styles.
This patch implements the h5p_alter_styles() method in boost, to
let admins personalize the H5P styles using the 'Raw initial SCSS'
and 'Raw SCSS' theme settings.
That way, users won't need to create their own themes to define
some styles for the H5P player.
2023-03-22 12:10:57 +01:00
Shamim Rezaie 5c9142eee4 MDL-76246 contentbank: fix behat failure 2023-03-22 20:59:14 +11:00
Shamim Rezaie 02471ef1cd MDL-76246 core_grades: Remove url param from ws 2023-03-22 20:59:14 +11:00
Shamim Rezaie 1a01607463 MDL-76246 core_grades: Improve user search styling
Show profile image, and display email in a separate line
2023-03-22 20:59:14 +11:00
Shamim Rezaie d2881df06b MDL-76246 core_grades: Group search widget to combobox 2023-03-22 20:59:14 +11:00
Shamim Rezaie 343e676c4b MDL-76246 gradereport_singleview: Grade item search widget to combobox 2023-03-22 20:59:14 +11:00
Shamim Rezaie d856c48639 MDL-76246 gradereport_singleview: Make the user search widget a combobox 2023-03-22 20:59:14 +11:00
Shamim Rezaie 3db5625fc9 MDL-76246 gradereport_user: Make the user search widget a combobox
Use <div> instead of <button> because <button> cannot have <div>
children.
2023-03-22 20:59:14 +11:00
Shamim Rezaie c4f33ceb59 MDL-76246 output: combobox support improvements
- It was a mistake to assume the listbox is always within
   combobox.parentElement
 - Take into account that the popup of the combobox is not necessarily a
   listbox
 - Update combobox fix so that it also work with comboboxes that are not
   select-menu
 - Update combobox fix so that it also support editable comboboxes
 - Update click listener to take into account that the event's target
   might be one of the option element
 - Having a hidden input element for comboboxes was not an ARIA
   requirement and was added by us. I added data-input-element to the
   combobox element to specify the input element related to it.
2023-03-22 20:59:14 +11:00
Jun Pataleta 775872450c Merge branch 'MDL-77673-master' of https://github.com/jleyva/moodle 2023-03-22 17:12:29 +08:00
Ilya Tregubov e11ec0caed Merge branch 'MDL-77032-master-1' of https://github.com/mihailges/moodle 2023-03-22 13:36:05 +08:00
Ilya Tregubov 794f107e88 on-demand release 4.2dev+ 2023-03-22 09:37:45 +08:00
Ilya Tregubov ccc424affa Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-22 09:37:43 +08:00
Paul Holden d834accd90 MDL-77705 reportbuilder: avoid re-using field alias between entities.
Ensure that when the user entity is added multiple times to a report,
when there are custom profile fields, each of those gets a unique table
alias per-entity.
2023-03-21 16:43:00 +00:00
Jun Pataleta 3be6f5c941 Merge branch 'MDL-75746_master' of https://github.com/marxjohnson/moodle 2023-03-21 15:48:03 +01:00
Jake Dallimore d001dd43ca Merge branch 'MDL-70687_default-redis-session-lock-expiration-to-php-execution-time' of https://github.com/ziegenberg/moodle 2023-03-21 15:48:03 +01:00
Jun Pataleta 869cfac1cc Merge branch 'MDL-69124' of https://github.com/paulholden/moodle 2023-03-21 15:48:01 +01:00
Jun Pataleta 6baff9e550 Merge branch 'MDL-77541' of https://github.com/paulholden/moodle 2023-03-21 15:46:29 +01:00
Jun Pataleta 930bd50758 Merge branch 'MDL-77607' of https://github.com/stronk7/moodle 2023-03-21 15:46:29 +01:00
Ilya Tregubov 1ac2e6ecca Merge branch 'mdl-72533-event-table-performance' of https://github.com/petersistrom/moodle 2023-03-21 15:46:28 +01:00
Paul Holden 1eb6c49fa3 Merge branch 'MDL-72124_master' of https://github.com/marxjohnson/moodle 2023-03-21 15:46:28 +01:00
Sara Arjona 494060a4a5 Merge branch 'MDL-77574-master' of https://github.com/lameze/moodle 2023-03-21 15:46:28 +01:00
Sara Arjona 3b68a32832 Merge branch 'MDL-73670-master' of https://github.com/jleyva/moodle 2023-03-21 15:46:28 +01:00
Sara Arjona 2e334cf58c Merge branch 'MDL-77523-master' of https://github.com/juancs/moodle 2023-03-21 15:46:27 +01:00
Sara Arjona d2b0c53db4 Merge branch 'MDL-76893-master' of https://github.com/ferranrecio/moodle 2023-03-21 15:46:27 +01:00
Paul Holden 718108c52f Merge branch 'MDL-77178-master' of https://github.com/aanabit/moodle 2023-03-21 15:46:23 +01:00
Ferran Recio 3beffbb506 MDL-76893 core_courseformat: bulk move activites 2023-03-21 15:46:23 +01:00
Sara Arjona 89cb8b4ee5 Merge branch 'MDL-76918' of https://github.com/paulholden/moodle 2023-03-21 15:46:23 +01:00
Paul Holden 868215311b Merge branch 'MDL-76926-master' of https://github.com/snake/moodle 2023-03-21 15:46:23 +01:00
Tim Hunt 8489808536 MDL-77673 ddimageortext: keep JS data just for the mobile app 2023-03-21 10:13:24 +01:00
Simey Lameze 57e9fec4c8 MDL-77380 block_myoverview: improve show toggle functionality test 2023-03-21 14:43:30 +08:00
Angelia Dela Cruz 374b6d8e0e MDL-77577 Behat: Replaced the use of "Install selected language pack(s)
Evaluated usage of "Install selected language pack(s)" in Behat and
replaced the steps to use generator to install language packs as part
of test setup.
2023-03-21 11:58:30 +08:00
Paul Holden a2a2ea51aa MDL-77692 reportbuilder: format custom field condition/filter names. 2023-03-20 16:09:25 +00:00
Paul Holden f17ba9deb2 MDL-77119 group: custom report elements for group visibility data.
Allow for the reporting of group visibility/participation properties
introduced in 958da5b6, by implementing new entity columns & filters.
2023-03-20 15:44:57 +00:00
Juan Leyva bba614a5eb MDL-77643 tool_mobile: Return location settings 2023-03-20 16:38:44 +01:00
Mikel Martín 9191edb72f MDL-77691 behat: Add step to navigate to profile page directly 2023-03-20 14:18:33 +01:00
Anupama Sarjoshi 79370e225e MDL-77659 core_reportbuilder: fix user profile fields phpunit tests 2023-03-20 12:19:57 +00:00
Amaia Anabitarte d535182414 MDL-77178 report: Update reports tertiary navigation 2023-03-20 11:13:55 +01:00
Paul Holden 060e47e58e MDL-69976 mod_lti: final removal of deprecated 310 method. 2023-03-20 09:41:15 +00:00
Jun Pataleta 109d902105 Merge branch 'MDL-76894-master' of https://github.com/ferranrecio/moodle 2023-03-20 10:43:04 +08:00
Jun Pataleta 12237e6a8c Merge branch 'MDL-76851-master' of https://github.com/ferranrecio/moodle 2023-03-20 10:39:31 +08:00
Jun Pataleta 385f059edc Merge branch 'MDL-76997-master' of https://github.com/aanabit/moodle 2023-03-20 10:32:35 +08:00
Mark Sharp 4e99fe48bc MDL-72533 core_calendar: improve calendar event table peformance
- Filter searchable courses if set.
- Sites with large groups should now experience better performance.
- Applies and optimises query against a proper date range.

Co-authored-by: Mark Sharp <mark.sharp@solent.ac.uk>
Co-authored-by: Peter Sistrom <petersistrom@catalyst-au.net>
Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
2023-03-20 12:15:14 +11:00
AMOS bot 2ec5eb507b Automatically generated installer lang files 2023-03-20 00:07:44 +00:00
Brendan Heywood 2e8bb2cced MDL-77618 admin: Passwords should not auto complete 2023-03-18 12:58:08 +11:00
AMOS bot 0f11994872 Automatically generated installer lang files 2023-03-18 00:07:47 +00:00
Juan Segarra Montesinos adb63ac50e MDL-77670 course: Preserve course summary format 2023-03-17 20:56:26 +01:00
Eloy Lafuente (stronk7) ef936717ee MDL-77607 core_component: Fix wrong component for the grade api
The correct component (subsystem) for the "grade" API is
"core_grades" not "core_grade".

Let's fix that and cover it with tests.
2023-03-17 19:27:14 +01:00
Sara Arjona f3bf17cdfb on-demand release 4.2dev+ 2023-03-17 17:59:32 +01:00
Sara Arjona d2bb0ffd42 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-17 17:59:15 +01:00
Ferran Recio 6ac6100f1c MDL-76894 core_courseformat: bulk move section 2023-03-17 16:18:19 +01:00
Mihail Geshoski 4d7900a391 MDL-77032 grade: Collapsible grade categories in Gradebook setup 2023-03-17 23:04:41 +08:00
Sara Arjona 3acf967276 MDL-77608 h5p: Fix after rewrite
Minor changes, like removing extra line at the end of the file or adding
comment in lib/db/upgrade.php.
2023-03-17 13:20:41 +01:00
Jun Pataleta 4bc059c6cc Merge branch 'master_MDL-76906' of https://github.com/mattporritt/moodle 2023-03-17 13:10:13 +01:00
Jun Pataleta 6dbe4b6839 Merge branch 'MDL-76910' of https://github.com/paulholden/moodle 2023-03-17 13:10:13 +01:00
Jun Pataleta 52d8364819 Merge branch 'MDL-76257-master' of https://github.com/juancs/moodle 2023-03-17 13:10:13 +01:00
Jun Pataleta 16dc3230f5 Merge branch 'MDL-77608' of https://github.com/paulholden/moodle 2023-03-17 13:10:11 +01:00
Ilya Tregubov 9caa246c2b Merge branch 'MDL-76915-master' of https://github.com/meirzamoodle/moodle 2023-03-17 13:04:35 +01:00
Ilya Tregubov cc35edd595 Merge branch 'MDL-76914-master' of https://github.com/meirzamoodle/moodle 2023-03-17 13:04:35 +01:00
Ilya Tregubov b043c16659 Merge branch 'MDL-76911-master' of https://github.com/HuongNV13/moodle 2023-03-17 13:04:35 +01:00
Ilya Tregubov f4891b1034 Merge branch 'MDL-69882' of https://github.com/paulholden/moodle 2023-03-17 13:04:33 +01:00
Paul Holden d81bbc0933 Merge branch 'MDL-76920-master' of https://github.com/cescobedo/moodle 2023-03-17 13:03:32 +01:00
Sara Arjona 5c0e75de4b Merge branch 'master_MDL-76916' of https://github.com/mattporritt/moodle 2023-03-17 13:03:32 +01:00
Sara Arjona a15d363453 Merge branch 'MDL-77275-master' of https://github.com/laurentdavid/moodle 2023-03-17 13:03:31 +01:00
Sara Arjona 6ebfc73e55 Merge branch 'master_MDL-76923' of https://github.com/mattporritt/moodle 2023-03-17 13:03:31 +01:00
Sara Arjona adc7bd5103 Merge branch 'MDL-67526_final-deprecation-of-plagiarism-functions' of https://github.com/ziegenberg/moodle 2023-03-17 13:03:31 +01:00
Paul Holden 66d1d50e92 Merge branch 'MDL-76989-master' of https://github.com/sarjona/moodle 2023-03-17 13:03:30 +01:00
Paul Holden 95c5001ddb Merge branch 'MDL-75464-master' of https://github.com/meirzamoodle/moodle 2023-03-17 13:03:30 +01:00
Paul Holden 6c1777a273 Merge branch 'MDL-76921-master' of https://github.com/cescobedo/moodle 2023-03-17 13:03:30 +01:00
Paul Holden 49e8e72196 Merge branch 'MDL-77337-master' of https://github.com/meirzamoodle/moodle 2023-03-17 13:03:30 +01:00
Jun Pataleta ac0f2ddfd9 Merge branch 'MDL-77604-master' of https://github.com/meirzamoodle/moodle 2023-03-17 13:03:30 +01:00
Jake Dallimore 1546c4ff88 Merge branch 'MDL-76309-master' of https://github.com/sh-csg/moodle 2023-03-17 13:03:29 +01:00
Andrew Nicols 7db7cde55a Merge branch 'MDL-75908-master' of https://github.com/srobotta/moodle 2023-03-17 13:03:29 +01:00
Ilya Tregubov 02009d366e Merge branch 'master_MDL-76909' of https://github.com/mattporritt/moodle 2023-03-17 13:03:29 +01:00
Ilya Tregubov 6ff1017fed Merge branch 'master_MDL-76924' of https://github.com/mattporritt/moodle 2023-03-17 13:03:29 +01:00
Jun Pataleta 7d9c04e2e6 Merge branch 'MDL-75650-master-simple' of https://github.com/snake/moodle 2023-03-17 13:03:28 +01:00
Andrew Nicols 060b63cd1c Merge branch 'MDL-67789-master' of https://github.com/sarjona/moodle 2023-03-17 13:03:24 +01:00
Ilya Tregubov d438271cad Merge branch 'MDL-76989-master' of https://github.com/sarjona/moodle 2023-03-17 12:56:53 +01:00
Ferran Recio 602a308f25 MDL-76851 core_course: fix course view.php indentation 2023-03-17 11:07:13 +01:00
Ferran Recio 856b295569 MDL-76851 core_courseformat: plugin custom editor strings
Most section related actions require the frontend to use alternative
strings depending on the format plugin lang file. This patch adds
overridden strings to the current setViewFormat course editor setup
object.
2023-03-17 11:07:13 +01:00
Ferran Recio 9c583f5ec5 MDL-76851 core_courseformat: bulk section and cm delete action 2023-03-17 10:26:00 +01:00
AMOS bot 353d6af691 Automatically generated installer lang files 2023-03-17 00:07:46 +00:00
Paul Holden f6310247cb MDL-77666 contentbank: format category names for display. 2023-03-16 23:04:35 +00:00
info@eWallah.net f709c0293e MDL-77584 currencies: Fix outdated ISO 4217 code for Zambian Kwacha
On 2013-01-01 the ZMK code got replaced by the new ZMW code.

AMOS BEGIN
 MOV [ZMK,core_currencies],[ZMW,core_currencies]
AMOS END
2023-03-16 19:53:41 +01:00
Amaia Anabitarte 1c491de8e8 MDL-76997 admin: Option to reset course indentation 2023-03-16 17:22:02 +01:00
Paul Holden caf236427e MDL-76918 libraries: upgrade to version 1.3.1 of Rangy. 2023-03-16 16:08:33 +00:00
Sara Arjona 75f4fd0a74 MDL-76989 theme: Update Font Awesome icons in SCSS
The new Font Awesome version needs some changes in the way icons
are displayed from SCSS files:

- The atribute 'content: "\xxx"' needs to be converted to
'content: fa-content("\xxx")'
- The style must be declared. The regular is used by default, so all the
solid icons needs to add '@extend .fa-solid'
- @include fa-icons() is not required anymore (if used, the icons
are not displayed properly).
2023-03-16 13:17:53 +01:00
Meirza 30a220ec83 MDL-75464 libraries: upgrade EvalMath to 1.0.1 2023-03-16 17:27:30 +07:00
Meirza a314425cd0 MDL-77604 recentlyaccesseditems: convert HTMLCollection to an array.
While working on this issue MDL-76931(Upgrade core-js-bundle),
we need to convert a HTMLCollection like .children to an array to use forEach(),
so we can upgrade the core-js to the upper version.
2023-03-16 15:38:10 +07:00
Stefan Hanauska c556374d52 MDL-76309 mod_assign: Compatibility with zip download 2023-03-16 07:17:55 +01:00
Meirza a6894fc65e MDL-77337 analytics: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-16 09:46:07 +07:00
Paul Holden 5219aa3cf0 MDL-76339 mod_bigbluebuttonbn: correct upgrade note fix versions. 2023-03-15 19:15:00 +00:00
Paul Holden 0a9bdbc984 Merge branch 'MDL-76339-master' of https://github.com/call-learning/moodle 2023-03-15 19:03:03 +00:00
Paul Holden 8edec2c29f Merge branch 'master_MDL-76928' of https://github.com/mattporritt/moodle 2023-03-15 17:24:23 +00:00
Jun Pataleta 6a3a3e1cd5 Merge branch 'MDL-77600' of https://github.com/stronk7/moodle 2023-03-15 16:33:23 +01:00
Jun Pataleta f854dce12b Merge branch 'MDL-77343-master' of https://github.com/meirzamoodle/moodle 2023-03-15 16:33:23 +01:00
Stephan Robotta 7b8fa9de86 MDL-75908 navigation: fix active flag in navigation for custom menus 2023-03-15 11:16:44 +01:00
Sara Arjona bd0a6e6dcc MDL-67789 h5p: Save current state using xAPI State
Co-author: Andrew Lyons <andrew@moodle.com>
2023-03-15 09:42:18 +01:00
Ferran Recio 03a4abde0f MDL-67789 xapi: Add support to save content state 2023-03-15 09:42:18 +01:00
Meirza 29d20be214 MDL-77343 mod_assign: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-15 14:30:47 +07:00
Meirza c49d3231ad MDL-76932 libraries: remove old YUI lib 3.17.2 2023-03-15 13:35:00 +07:00
Andrew Nicols 888c5853db Merge branch 'MDL-77550-master' of https://github.com/dpalou/moodle 2023-03-15 14:26:11 +08:00
Meirza bf30ef1b53 MDL-76932 libraries: upgrade YUI lib to 3.18.1 2023-03-15 13:21:15 +07:00
Juan Segarra Montesinos 844ca05c2e MDL-77523 mod_data: textarea field should honor editor preferred format 2023-03-15 06:48:10 +01:00
Jake Dallimore 576369bf97 Merge branch 'MDL-77186-master' of https://github.com/andrewnicols/moodle 2023-03-15 12:00:42 +08:00
Jake Dallimore ecc0f661c5 Merge branch 'MDL-35745' of https://github.com/timhunt/moodle 2023-03-15 11:31:36 +08:00
Ilya Tregubov 3df60a19fd MDL-68093 workshop: Rebuilt js files. 2023-03-15 11:00:07 +08:00
Jun Pataleta ba7bf0781a Merge branch 'MDL-77344-master' of https://github.com/meirzamoodle/moodle 2023-03-15 10:34:07 +08:00
Ilya Tregubov a34dbbe6fe Merge branch 'MDL-68093_master' of https://github.com/marxjohnson/moodle 2023-03-15 10:19:07 +08:00
Jun Pataleta cf5d3d6757 Merge branch 'MDL-77611' of https://github.com/timhunt/moodle 2023-03-15 10:01:13 +08:00
Ilya Tregubov f67237598c Merge branch 'MDL-77419-master' of https://github.com/danghieu1407/moodle 2023-03-15 09:18:44 +08:00
AMOS bot be76a44f4e Automatically generated installer lang files 2023-03-15 00:07:44 +00:00
Paul Holden 012ff5b6ac MDL-59175 theme_boost: style inherited permission on overide page. 2023-03-14 20:58:18 +00:00
Meirza e8a39af31d MDL-77344 mod_forum: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-15 03:53:14 +07:00
cescobedo d84ebf69a8 MDL-76920 atto_html: Upgrade Codemirror to 5.65.12 2023-03-14 21:18:06 +01:00
cescobedo 4ad4d9287c MDL-76921 atto_html: Upgrade JS Beautify to 1.14.7 2023-03-14 21:17:08 +01:00
Sara Arjona efecce2ddf MDL-76989 behat: Increase download size for dataexport
After upgrading the Font Awesome from 4.7 to 6.3.0, the moodle.css
file is bigger than before, so a few behat tests related to the data
export (where the moodle.css file is included), need to be updated
to meet the new size.
2023-03-14 17:33:16 +01:00
Sara Arjona 0ad4ef1d3d MDL-76989 lib: Set Moodle files after Font Awesome upgrade
This patch updates the Font Awesome library version from 4.7 to 6.3.0.
The readme_moodle.txt has been updated properly because the new version
works slightly different.
There is a file to add backward compatibily to version 6 files (shim).
More information about how to upgrade from 4 to 6 can be found in
https://fontawesome.com/docs/web/setup/upgrade/upgrade-from-v4

Although a few icons have been renamed in Moodle 6, as the new version
is compatible with v4 icons, for now the references to the old icons
(fa fa-xxxx --> fa-solid fa-xxxx) haven't been changed yet.
A separate issue will be created to update them in the future and
review if some new icons can be used too.
2023-03-14 17:33:07 +01:00
Tim Hunt d5086a0938 MDL-77626 quiz statistics: Divide by zero if a random Q has max mark 0 2023-03-14 16:29:12 +00:00
Sara Arjona 6d7d2b012c MDL-76989 theme: Update FontAwesome to 6.3.0 2023-03-14 17:23:36 +01:00
Eloy Lafuente (stronk7) 4e663020ae MDL-77600 install: update the list of stale files for 4.2 2023-03-14 17:18:48 +01:00
Mark Johnson e57993e921 MDL-75746 mod_quiz: Fix backup and restore of quiz slots 2023-03-14 16:07:55 +00:00
Daniel Ziegenberg 3018036ebd MDL-67526 plagiarism: Final deprecation of plagiarism functions
Following MDL-65835 this now finally deprecates and removes the
functions:
  - plagiarism_save_form_elements(), please use
    {plugin name}_coursemodule_edit_post_actions() instead
  - plagiarism_get_form_elements_module(), please use
    {plugin name}_coursemodule_standard_elements() instead.
  - plagiarism_plugin::get_form_elements_module(), please
    use {plugin name}_coursemodule_edit_post_actions() instead.
  - plagiarism_plugin::save_form_elements(), please use
    {plugin name}_coursemodule_standard_elements() instead.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2023-03-14 17:04:20 +01:00
Mark Johnson 95d961fc2d MDL-72124 question: Fix system-level URLs in question events 2023-03-14 15:39:42 +00:00
Eloy Lafuente (stronk7) 12a8176926 on-demand release 4.2dev+ 2023-03-14 16:12:46 +01:00
Eloy Lafuente (stronk7) a51f525849 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-14 16:12:41 +01:00
Andrew Nicols 0b54a57e2a MDL-76867 core_admin: Remove tinymce following MDL-77308 2023-03-14 21:41:48 +08:00
Jun Pataleta 734f5446e3 Merge branch 'MDL-76991-master' of https://github.com/aanabit/moodle 2023-03-14 21:41:48 +08:00
Ilya Tregubov 1b7b8e21e0 MDL-76867 core_admin: Rebuild js. 2023-03-14 21:41:48 +08:00
Jun Pataleta 32fc5c14a0 Merge branch 'MDL-76680/master' of https://github.com/skodak/moodle 2023-03-14 21:41:48 +08:00
Ilya Tregubov a9acb554a1 Merge branch 'MDL-76867-master' of https://github.com/andrewnicols/moodle 2023-03-14 21:41:43 +08:00
Andrew Nicols cadd534db5 Merge branch 'MDL-76802-master' of https://github.com/sarjona/moodle 2023-03-14 21:40:45 +08:00
Tim Hunt c051fbd0c2 MDL-35745 quiz: let teachers to re-open a Never submitted attempt
In the quiz reports, for any 'Never submitted' attempt, there is
now a 'Re-open' button next to where it says the attempt state.

If that is clicked, there is an 'Are you sure?' pop-up. If the user
continues, the attempt is reopened. If the student now has time left,
the attempt is put into the In progress state. If there is not time
left the attempt is immediately submitted and graded. The
'Are you sure? pop-up says which of those two things will happen.
2023-03-14 13:09:27 +00:00
Juan Leyva 609e99b5cd MDL-73670 block: Remove hack to force returning the overview block 2023-03-14 13:14:29 +01:00
Mark Johnson 055f994afa MDL-68093 workshop: Add behat test for viewing reports by group 2023-03-14 08:52:26 +00:00
Mark Johnson 7095fe0caa MDL-68093 wiki: Restrict group options to participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson 1a520430d4 MDL-68093 survey: Add behat test for viewing response reports by group 2023-03-14 08:52:26 +00:00
Mark Johnson 31a1a7b455 MDL-68093 scorm: Add behat test for viewing reports by group 2023-03-14 08:52:26 +00:00
Mark Johnson 988b7cbfa6 MDL-68093 quiz: Add behat test for viewing results by group 2023-03-14 08:52:26 +00:00
Mark Johnson 647628e839 MDL-68093 lesson: Add behat test for non-participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson 247004108f MDL-68093 h5pactivity: Add restriction for participation groups. 2023-03-14 08:52:26 +00:00
Mark Johnson a1b1af77af MDL-68093 forum: Add behat tests for non-participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson 7f9e7f2982 MDL-68093 feedback: Add behat tests for non-participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson 8932fe55e5 MDL-68093 data: Add behat tests for groups 2023-03-14 08:52:26 +00:00
Mark Johnson 02f7e2d37b MDL-68093 choice: Add behat tests for groups 2023-03-14 08:52:26 +00:00
Mark Johnson dfa5310b80 MDL-68093 chat: Add behat tests for groups 2023-03-14 08:52:26 +00:00
Mark Johnson eb1aab3437 MDL-68093 bigbluebutton: Add behat tests for non-participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson 0775756551 MDL-68093 assign: Restrict group submission to participation groups 2023-03-14 08:52:26 +00:00
Mark Johnson cab6e97c1f MDL-68093 availability: Add support for private rule sets
This allows an availability plugin to indicate that a selected condition
should be considered "private", and therefore should never be shown to
users who don't satisfy the criteria. The availability_groups plugin
uses this to protect visibility of groups that are not visible to
non-members.
2023-03-14 08:52:25 +00:00
Mark Johnson 958da5b67e MDL-68093 groups: Add visibility and participation settings
These new settings are designed to enchance user privacy surrounding
groups. They allow groups to be configured so that users outside the
group cannot see the group, so that users in the group cannot see each
other, or so that users cannot see the group at all, even if they are in
it. This avoids issues where a group may be assigned based on sensitive
personal information (such as a person requiring special arrangements
due to a disability).

By default, groups are visible to all and available for participation in
activities, which maintains the current behaviour.

For performance, a new cache has been added to track the number of
groups on a course that are not visible to non-members. This allows us
to revert to the existing behaviour if the new features are not being
used at all on a course, and only apply the new visibility conditions if
they are.

Users who have the moodle/course:viewhiddengroups capability should be
concious of exposing hidden groups when showing their screen to other
users. The "Switch role to..." feature can be used to show a course page
on screen without exposing private availability conditions, for example.

The changes cover several specific areas:
* grouplib functions, which most code should use to get lists of groups
  and members (this includes the participants page).
* Activities supporting group overrides will not allow overrides for
  groups that are hidden from all users.
* Activities supporting separate/visible groups modes will only allow
  groups with the new "participation" flag enabled to be selected.
* Group messaging will be disabled for groups where members cannot see
  each other, or cannot see the group at all.
2023-03-14 08:52:25 +00:00
Juan Segarra Montesinos d7055c80e2 MDL-76257 core: Activity intro should honor user preference on creation 2023-03-14 06:02:39 +01:00
danghieu1407 b875ecdcc4 MDL-77419 Quiz: question/qengine.js tidy-up 2023-03-14 10:26:46 +07:00
Andrew Nicols 39f3b1ab66 MDL-77186 core: Move deprecated cron functions to deprecatedlib 2023-03-14 11:19:03 +08:00
Andrew Nicols 209cfe461d MDL-77186 core: Add upgrade note about core\cron migration 2023-03-14 11:19:03 +08:00
Andrew Nicols f6d9b81ebc MDL-77186 core: Address coding style violations in cron 2023-03-14 11:19:03 +08:00
Andrew Nicols 3cd05c7a15 MDL-77186 core: Move cron_setup_user to namespaced class 2023-03-14 11:19:03 +08:00
Andrew Nicols 070c781097 MDL-77186 core: Move max/default cron_keepalive to class const 2023-03-14 11:19:03 +08:00
Andrew Nicols 573066ba5f MDL-76867 core_admin: Standardise plugin management when plugin missing from disk 2023-03-14 11:07:43 +08:00
Huong Nguyen d2ae030fa7 MDL-76911 lib: Update jQuery to 3.6.4 2023-03-14 08:45:31 +07:00
Andrew Nicols 6aba049a64 MDL-76867 core_admin: Migrate media plugin management to dynamic table 2023-03-14 08:44:15 +08:00
Andrew Nicols 9bc9204a52 MDL-76867 core_admin: Migrate admin tool management to plugin management 2023-03-14 08:44:15 +08:00
Andrew Nicols 0d18f6d0d4 MDL-76867 core_admin: Migrate blocks admin ui to plugin management 2023-03-14 08:44:15 +08:00
Andrew Nicols 6d978dd35a MDL-76867 core_admin: Add support for editor sorting via ajax 2023-03-14 08:44:15 +08:00
Andrew Nicols f54cc61e4b MDL-76867 core_admin: Migrate editors admin ui to plugin management 2023-03-14 08:44:15 +08:00
Andrew Nicols 9f1c596dbd MDL-76867 core_admin: Migrate module management table to dynamic table 2023-03-14 08:44:15 +08:00
Andrew Nicols e2de093fe8 MDL-76867 editor_tiny: Add plugin management page 2023-03-14 08:44:15 +08:00
Andrew Nicols 51cfde0d3f MDL-76867 core: Add plugin management page 2023-03-14 08:44:15 +08:00
Andrew Nicols f4a48a517b MDL-76867 core_table: Allow dynamic table filterset to be specified
The previous behaviour guessed the table filterset based on the table's
class name, but this is not very flexible if you wish to create an
abstract table class and use a generic filter for all implementations.

This change adds the ability to specify the filterset class, with the
default behaviour using the table class name as a prefix.
2023-03-14 08:44:15 +08:00
Andrew Nicols fdb1df2bfd MDL-76867 core: Add plugintype_supports_disabling to plugininfo 2023-03-14 08:34:42 +08:00
Andrew Nicols 6809289cf4 MDL-76867 core: Plugintype coding style fixes 2023-03-14 08:34:42 +08:00
AMOS bot 19992963e6 Automatically generated installer lang files 2023-03-14 00:07:45 +00:00
Paul Holden 6b6e7eaad2 MDL-69882 phpunit: final removal of deprecated 310 helper methods. 2023-03-13 17:46:44 +00:00
Juan Leyva dd43bfd026 MDL-77585 grade: New WS gradereport_user_get_access_information 2023-03-13 15:20:34 +01:00
Tim Hunt e52dbcdef4 MDL-77611 tool_uploaduser: fix phpunit assumptions about profile fields 2023-03-13 13:31:33 +00:00
Andrew Nicols 347fc32088 MDL-77186 core: Rename incorrectly named test 2023-03-13 21:21:13 +08:00
Andrew Nicols 9ec46c232d MDL-77186 core: Move all uses of cronlib to new class 2023-03-13 21:21:13 +08:00
Andrew Nicols 99a67b615f MDL-77186 core: Move cronlib to namespaced class 2023-03-13 21:21:13 +08:00
Andrew Nicols 1b59967d71 MDL-77186 core: Add a new keepalive setting to cron 2023-03-13 21:19:55 +08:00
Andrew Nicols 097d2bda6c MDL-77186 admin: Add min/max limits to configduration 2023-03-13 21:19:37 +08:00
Andrew Nicols 733e85487a MDL-77186 core: Improve coding style for cron_run() 2023-03-13 21:19:37 +08:00
Andrew Nicols fbeb9f8952 MDL-77186 core: Improve coding style for cron.php 2023-03-13 21:19:36 +08:00
Sara Arjona f0a20c0a76 MDL-76802 core: Create a grunt task to get upgradable libs
A new grunt task, upgradablelibs, has been added in order to get the
list of libraries that have a newer version in their repositories.

Co-author: Andrew Lyons <andrew@moodle.com>
2023-03-13 11:53:23 +01:00
Amaia Anabitarte 6d2c321d7c MDL-76991 tool_mobile: Return course format indentation setting 2023-03-13 11:47:13 +01:00
Amaia Anabitarte a7c64595c8 MDL-76991 core_course: New course format setting to enable/disable indentation in weeks and topics 2023-03-13 11:47:13 +01:00
Sara Arjona edcfb3b27f MDL-76802 core: Add or update missing third-party repositories
While preparing the libraries that need to be upgraded for 4.2 in
MDL-76373 I've seen that the new Tiny editor missed the repository.
2023-03-13 11:39:30 +01:00
Paul Holden 3cb70de95f MDL-77608 mod_h5pactivity: namespace component lib testcase. 2023-03-13 09:36:40 +00:00
Laurent David 301c56ae1d MDL-77275 mod_data: Template reset button changes
* Remove the reset button in the sticky footer (template page)
* Add the reset button action in the Action menu
2023-03-13 07:35:44 +01:00
Simey Lameze 06cfcc8dae MDL-77574 myoverview: wait until next button exists before clicking 2023-03-13 14:11:35 +08:00
Jun Pataleta b711e80069 Merge branch 'MDL-77598' of https://github.com/paulholden/moodle 2023-03-13 14:08:45 +08:00
Jun Pataleta 973a6c39d6 Merge branch 'MDL-73144/402' of https://github.com/skodak/moodle 2023-03-13 13:34:19 +08:00
Jake Dallimore d0789c1a7a MDL-77382 core: fix error handling in oauth2 callback for auth'd users
Pass the errors back to the calling code when the user is authenticated,
otherwise, fall back on the existing redirection to the login page.
2023-03-13 10:47:23 +08:00
Jake Dallimore 2c38a73fe7 MDL-76926 enrol_lti: remove guzzle shim code as guzzle now in core 2023-03-13 10:42:56 +08:00
Jake Dallimore 550e45520d MDL-76926 libraries: update upgrade steps and 3rd party libs for lt1p3 2023-03-13 10:42:56 +08:00
Jake Dallimore efae8d36d5 MDL-76926 libraries: upgrade lib/lti1p3 to patched v5.2.6 2023-03-13 10:42:56 +08:00
Meirza 170561ee94 MDL-76914 libraries: upgrade Chart.js to 4.2.1 2023-03-13 08:53:26 +07:00
AMOS bot 9b79ec922c Automatically generated installer lang files 2023-03-12 00:07:55 +00:00
Petr Skoda 80d32fc93a MDL-76680 core: disable $USER->ignoresesskey on next page 2023-03-11 10:37:12 +01:00
Paul Holden 9bf8699b7c MDL-77598 editor_tinymce: ensure sub-plugins are also uninstalled. 2023-03-10 16:37:32 +00:00
Paul Holden 61cd980fb7 MDL-77598 logstore_legacy: complete plugin uninstallation step. 2023-03-10 16:19:12 +00:00
Petr Skoda 98bcff8d8e MDL-73144 core: switch to Dart sass 2023-03-10 16:25:17 +01:00
Jun Pataleta 5e1df25566 weekly release 4.2dev 2023-03-10 22:09:48 +08:00
Jun Pataleta 55831380be Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-10 22:09:46 +08:00
Nils Adermann e63ed5511b MDL-70687 session: Redis session lock exp = max exec time
If for any reason a Redis session lock is not being released, all subsequent
requests will wait to acquire the lock, forcing them to time out eventually.
This will happen till the original lock finally expires after the session timeout.

This sets the Redis session lock expiry time to whatever is lower,
either the PHP execution time `max_execution_time`, if the value was
defined in the `php.ini` or the globally configured `sessiontimeout`.
Setting it to the lower of the two will not make things worse it if the
execution timeout is longer than the session timeout.
For the PHP execution time, once the PHP execution time is over, we can
be sure that the lock is no longer actively held so that the lock can
expire safely. Although at `lib/classes/php_time_limit.php::raise(int)`,
Moodle can progressively increase the maximum PHP execution time, this
is limited to the `max_execution_time` value defined in the `php.ini`.
For the session timeout, we assume it is safe to consider the lock to
expire once the session itself expires.
If we unnecessarily hold the lock any longer, it blocks other session
requests.

Co-authored-by: Daniel Ziegenberg <daniel@ziegenberg.at>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2023-03-10 12:33:53 +01:00
Ilya Tregubov 5b277492ea Merge branch 'MDL-77429-master-fix' of https://github.com/andrewnicols/moodle 2023-03-10 14:52:27 +08:00
Andrew Nicols 17ff77a9c0 MDL-77429 course: Change course date to previous day
When a test runs just after midnight, and the user time zone is not the
same as the server timezone, and the course is created using a generator
(which runs in server time zone) but the UI presented in the user
timezone, the course start time is still in the future.

We need to create the course a day earlier to ensure that the "This
week" indicator is in the correct day.
2023-03-10 14:11:23 +08:00
Ilya Tregubov 2a52e1d742 MDL-77172 tool_capability: Rebuilt map file for search.js 2023-03-10 13:39:32 +08:00
Andrew Nicols 68f92f7a80 MDL-77037 core_course: Add new courseindex test to classic excludelist 2023-03-10 13:31:34 +08:00
Andrew Nicols b038d8ff3c Merge branch 'MDL-77582-master' of https://github.com/sarjona/moodle 2023-03-10 12:19:17 +08:00
Jun Pataleta d990390775 Merge branch 'MDL-77458-master' of https://github.com/andrewnicols/moodle 2023-03-10 12:06:16 +08:00
Ilya Tregubov 827b6ac216 Merge branch 'MDL-77172' of https://github.com/paulholden/moodle 2023-03-10 11:43:30 +08:00
Jake Dallimore 3f8994c07d Merge branch 'MDL-77517-master' of https://github.com/juancs/moodle 2023-03-10 11:38:11 +08:00
Brendan Heywood 327d1ced40 MDL-77530 tool_task: Fix coding errors in longrunningtasks check 2023-03-10 11:28:45 +08:00
Brendan Heywood 653ad78f43 MDL-77530 tool_task: Fix coding errors in checks 2023-03-10 11:28:45 +08:00
Ilya Tregubov 27e0329a08 Merge branch 'MDL-77291-master' of https://github.com/sarjona/moodle 2023-03-10 10:44:41 +08:00
Jun Pataleta 5896d29905 Merge branch 'MDL-76603-master' of https://github.com/junpataleta/moodle 2023-03-10 10:15:12 +08:00
Shamim Rezaie ae197c027a MDL-76603 gradingforms: Some A11y fixes on editing form
- Use span instead of dummy input elements because form elements need a
  label
- Sufficient size for target is at least 24px by 24px (Success Criteria
  2.5.8)
2023-03-10 10:08:42 +08:00
Shamim Rezaie 48b7dc597b MDL-76603 mod_assign: Move advanced grading grades out of the tables 2023-03-10 10:08:42 +08:00
Andrew Nicols 1fa8fa0fb5 Merge branch 'MDL-77567' of https://github.com/paulholden/moodle 2023-03-10 09:46:24 +08:00
Andrew Nicols 8393a0f288 Merge branch 'MDL-76849-master-5' of https://github.com/junpataleta/moodle 2023-03-10 09:29:28 +08:00
Jun Pataleta 7063f9c17f Merge branch 'MDL-70613' of https://github.com/paulholden/moodle 2023-03-10 09:19:55 +08:00
Sara Arjona 9ddb0132f6 Merge branch 'MDL-77323-master' of https://github.com/NashTechOpenUniversity/moodle 2023-03-09 16:48:34 +01:00
Paul Holden 1218a03850 MDL-70613 mod_feedback: cast feedback text values for table sorting.
Specifically avoids Oracle ORA-00932 (inconsistent CLOB datatype).
2023-03-09 14:59:05 +00:00
Andrew Nicols 43f5bfdbe4 Merge branch 'MDL-76970-master' of https://github.com/laurentdavid/moodle 2023-03-09 22:22:32 +08:00
Andrew Nicols 7beb5d5af2 Merge branch 'mdl-77329-master-clr' of https://github.com/ferranrecio/moodle 2023-03-09 22:18:25 +08:00
Andrew Nicols cc7cf2f49a Merge branch 'MDL-77431-master' of https://github.com/lucaboesch/moodle 2023-03-09 22:17:20 +08:00
Andrew Nicols 4330efc85f Merge branch 'MDL-77463-master' of https://github.com/andelacruz/moodle 2023-03-09 22:09:41 +08:00
Andrew Nicols 19a06a04a9 Merge branch 'MDL-77429-master' of https://github.com/andelacruz/moodle 2023-03-09 22:03:12 +08:00
Andrew Nicols 37fa8c6fc0 MDL-77037 core_course: Coding style fix in Behat feature 2023-03-09 21:59:29 +08:00
Andrew Nicols c9cc52aec1 Merge branch 'MDL-77037-master' of https://github.com/laurentdavid/moodle 2023-03-09 21:53:01 +08:00
Sara Arjona 6c6adc462c MDL-77582 mod_quiz: Fix view_url() on null error 2023-03-09 13:57:41 +01:00
James C 2702583d6c MDL-77329 course: Prevent collapse state loss 2023-03-09 11:49:55 +01:00
Sara Arjona 1a76b44a7a Merge branch 'MDL-76940-master' of https://github.com/laurentdavid/moodle 2023-03-09 10:54:41 +01:00
Ilya Tregubov 58fb00eb18 Merge branch 'MDL-77308-master' of https://github.com/andrewnicols/moodle 2023-03-09 17:02:07 +08:00
Jun Pataleta 7e8212c7ab Merge branch 'MDL-77533' of https://github.com/paulholden/moodle 2023-03-09 16:35:40 +08:00
Ilya Tregubov 1e8c9685fd Merge branch 'MDL-77056' of https://github.com/paulholden/moodle 2023-03-09 16:16:59 +08:00
Jun Pataleta 8441270181 Merge branch 'MDL-77559-master-2' of https://github.com/andrewnicols/moodle 2023-03-09 16:02:01 +08:00
Laurent David 387371bacd MDL-77037 core_courseformat: Refresh course index
* Refresh course index when language change
2023-03-09 08:41:02 +01:00
Andrew Nicols f58a71baab MDL-77308 core: Remove editor_tiny from core 2023-03-09 15:28:35 +08:00
Andrew Nicols edc4d51e6e Merge branch 'MDL-77420-master' of https://github.com/ferranrecio/moodle 2023-03-09 11:52:59 +08:00
Andrew Nicols 0a3b918b3c Merge branch 'MDL-77014-master' of https://github.com/lucaboesch/moodle 2023-03-09 11:41:49 +08:00
Andrew Nicols 61f32d5ec6 Merge branch '76945-bootstrap-dropdowns-master' of https://github.com/DSI-Universite-Rennes2/moodle 2023-03-09 10:53:50 +08:00
Andrew Nicols 5ae44ff9d3 Merge branch 'MDL-77467' of https://github.com/timhunt/moodle 2023-03-09 10:46:36 +08:00
Jun Pataleta 6ae65770b5 Merge branch 'MDL-77225' of https://github.com/timhunt/moodle 2023-03-09 10:43:15 +08:00
Andrew Nicols 8edff671b5 Merge branch 'MDL-77418' of https://github.com/paulholden/moodle 2023-03-09 10:35:16 +08:00
Andrew Nicols 1e1b1144c7 Merge branch 'master' of https://github.com/fcbsd/moodle 2023-03-09 10:28:22 +08:00
Andrew Nicols 29a48b540c Merge branch 'MDL-77539' of https://github.com/paulholden/moodle 2023-03-09 10:09:29 +08:00
Andrew Nicols 511401f4f6 MDL-77559 js: Rebuild all JS with Node 16 2023-03-09 09:53:19 +08:00
Jun Pataleta 5e51f083a1 MDL-76849 qtype_essay: Allow question number inclusion in answer fields
* Have the following classes extend qtype_essay_format_renderer_base
  as they have been meant to:
  - qtype_essay_format_editor_renderer
  - qtype_essay_format_noinline_renderer
  - qtype_essay_format_plain_renderer
* Add a question_display_options instance variable for
qtype_essay_format_renderer_base so its subclasses can use it to
generate the label for their respective answer fields.
2023-03-09 08:59:33 +08:00
Jun Pataleta 4e4e66cfe8 MDL-76849 qtype_shortanswer: Include question number in answer fields 2023-03-09 08:59:33 +08:00
Jun Pataleta 91205c8884 MDL-76849 qtype_numerical: Include question number in answer fields
* Also covers its qtype_calculated and qtype_calculatedsimple
which extend its renderer class
2023-03-09 08:59:33 +08:00
Jun Pataleta 7f7ce0d199 MDL-76849 qtype_multianswer: Include question number in answer fields
* Add the question number to the answer fields if it's available.
* Improve multiple choice question accessibility:
  - Label the multiple choice question groups appropriately by
    enclosing them in fieldset tags and applying sr-only legend tags to
    label them.
  - Apply Bootstrap form-check classes to the radio buttons, so they
    are rendered better and become responsive as well. This also helps
    avoid the use of the table element for layout purposes when
    rendering horizontal multiple choice sub-questions.
2023-03-09 08:59:33 +08:00
Jun Pataleta 28c6b39640 MDL-76849 qtype_match: Include question number in answer fields 2023-03-09 08:59:33 +08:00
Jun Pataleta 5739770d98 MDL-76849 qtype_truefalse: Include question number in answer fields
* Improve accessibility as well by grouping the radio buttons
in a fieldset.
2023-03-09 08:59:33 +08:00
Jun Pataleta 70ea4b9df1 MDL-76849 qtype_multichoice: Include question number in answer fields
* Improve accessibility as well by grouping the radio buttons/checkboxes
in a fieldset.
2023-03-09 08:59:33 +08:00
Jun Pataleta 5b4258d7a7 MDL-76849 qtype_ddwtos: Include question number in answer fields
* Plus include the item number so users will have an idea which blank
numbers they are currently on.
2023-03-09 08:59:33 +08:00
Jun Pataleta fdc24f0470 MDL-76849 qtype_gapselect: Include question number in answer fields 2023-03-09 08:59:33 +08:00
Jun Pataleta fb651434e0 MDL-76849 qtype: Add a questionidentifier instance variable
* Add an instance variable to question_display_options to store the
identifier associated with the question being rendered.
* This information can be used by question type plugins to improve the
accessibility of the answer fields being rendered by adding the
question identifier to the answer fields' labels.
* Adding the question identifier to the label can be achieved by using
question_display_options::add_question_identifier_to_label().

Co-authored-by: Tim Hunt <t.j.hunt@open.ac.uk>
2023-03-09 08:59:33 +08:00
Andrew Nicols a9f2cb6926 MDL-77559 js: Revert "MDL-75012 core: Bump NodeJS version requirements"
This reverts commit 6d0fdd8fd8.
2023-03-09 08:22:08 +08:00
Andrew Nicols 3c2be0bf6d MDL-77559 js: Revert "MDL-75012 js: Bump standard dependencies"
This reverts commit f70d9a3eef.
2023-03-09 08:21:55 +08:00
Andrew Nicols 7081e0beb0 MDL-77559 js: Revert "MDL-75012 js: Remove grunt-contrib-uglify"
This reverts commit abb6877596.
2023-03-09 08:21:36 +08:00
Andrew Nicols ab981109ef MDL-77559 js: Revert "MDL-75012 js: Bump stylelint and components"
This reverts commit 1c73373b3d.
2023-03-09 08:21:22 +08:00
Andrew Nicols faea97bd56 MDL-77559 js: Revert "MDL-75012 js: Update browserslist"
This reverts commit 19f5ffb28a.
2023-03-09 08:21:19 +08:00
Andrew Nicols b90a48dd46 MDL-77559 js: Revert "MDL-75012 js: Bump node-sass"
This reverts commit 7c3db6d458.
2023-03-09 08:21:15 +08:00
Andrew Nicols 4b7fbb189b MDL-77559 js: Revert "MDL-75012 js: Audit fix"
This reverts commit 472fc27ab9.
2023-03-09 08:21:12 +08:00
Andrew Nicols 9d7929cc15 MDL-77559 js: Revert "MDL-75012 js: Use our own jsdoc wrapper"
This reverts commit 5d0631b6a1.
2023-03-09 08:21:07 +08:00
Andrew Nicols 73bc2604f0 MDL-77559 js: Revert "MDL-75012 js: Bump shifter to new version"
This reverts commit b3f7721cdd.
2023-03-09 08:21:03 +08:00
Andrew Nicols 551c058b08 MDL-77559 js: Revert "MDL-75012 js: Put shifter on a diet"
This reverts commit 784098fe9e.
2023-03-09 08:20:57 +08:00
Andrew Nicols dde8111811 MDL-77559 js: Revert "MDL-75012 js: Drop support for modules built pre-babel"
This reverts commit 84c650489a.
2023-03-09 08:20:53 +08:00
Andrew Nicols 103892b3f0 MDL-77559 js: Revert "MDL-75012 js: Remove unused babel-preset-minify dependency"
This reverts commit ed3c951001.
2023-03-09 08:20:49 +08:00
Andrew Nicols 63cab4a560 MDL-77559 js: Revert "MDL-75012 js: Bump Babel dependencies"
This reverts commit ee0e2bcc8f.
2023-03-09 08:20:45 +08:00
Andrew Nicols 805d34f8c4 MDL-77559 js: Revert "MDL-75012 core: Fix upgrade.txt conflicts"
This reverts commit 8ce226081c.
2023-03-09 08:20:42 +08:00
Andrew Nicols 1e4a2f5dc8 MDL-77559 js: Revert "MDL-75012 js: Remove orphaned source maps"
This reverts commit baef734ef7.
2023-03-09 08:19:24 +08:00
AMOS bot 21202cca89 Automatically generated installer lang files 2023-03-09 00:07:44 +00:00
Tim Hunt 1c86e18fde MDL-77225 questions: fix regrade of descriptions in finished attempts
The added logic is similar to the logic in other behaviours, and the new test fails without it.
2023-03-08 19:00:01 +00:00
Sara Arjona 7b6a00dec4 Merge branch 'MDL-77464' of https://github.com/timhunt/moodle 2023-03-08 16:14:40 +01:00
Paul Holden f4134f6a73 MDL-77567 tool_behat: remove global library requires in external class.
We already deferred their loading in 3982341f, but the requires were since
added back mistakenly.
2023-03-08 14:54:13 +00:00
Laurent David 8f3d9e291e MDL-76940 core_courseformat: Index refreshing when role switch
* Hidden sections and content should not visible to students when switching role
2023-03-08 11:47:21 +01:00
Ilya Tregubov 25254ceea3 Merge branch 'MDL-77163-master' of https://github.com/andrewnicols/moodle 2023-03-08 17:28:13 +08:00
Ilya Tregubov ce3fd6a75d Merge branch 'MDL-77414-master' of https://github.com/andelacruz/moodle 2023-03-08 17:04:32 +08:00
Shamim Rezaie 74b103b218 MDL-76603 gradingform_rubric: preserve bg colour on hover 2023-03-08 19:32:07 +11:00
Shamim Rezaie 8b0fe1ee00 MDL-76603 gradingform_rubric: fix roles
- set the role of table to none
- moved aria-label from <table> element (that doesn't has role="none")
  to the element that has the radiogroup role
- if it's not radiogroup/radio, it is list/listitem
- removed aria-label from the rubric table and used caption instead
2023-03-08 19:32:07 +11:00
Angelia Dela Cruz 6c5740ba37 MDL-77429 Behat: Add coverage for changing course format as teacher 2023-03-08 15:47:34 +08:00
Jun Pataleta 42b994a808 Merge branch 'MDL-76919-master' of https://github.com/andrewnicols/moodle 2023-03-08 15:45:32 +08:00
Luca Bösch d70ed83644 MDL-77014 course: Single activity format course title multilang. 2023-03-08 08:03:22 +01:00
Laurent David f5d0b197f8 MDL-76970 mod_forum: Login prompt for guest users
* When user submit to a forum as an anonymous user, the login prompt
should clearly explain the follow up actions.
2023-03-08 07:50:35 +01:00
Andrew Nicols 974d7e4dab Merge branch 'MDL-52805-42' of https://github.com/Chocolate-lightning/moodle 2023-03-08 14:49:59 +08:00
Angelia Dela Cruz 0612c6f8a5 MDL-77414 Behat: Coverage for "Require all group members submit" setting 2023-03-08 14:44:45 +08:00
Sara Arjona 022acf037b Merge branch 'MDL-77440' of https://github.com/timhunt/moodle 2023-03-08 07:23:35 +01:00
Angelia Dela Cruz d1c03c435c MDL-77463 Behat: Coverage for assign submission notification to teacher 2023-03-08 14:11:10 +08:00
Jun Pataleta 530e55e077 Merge branch 'MDL-77472' of https://github.com/paulholden/moodle 2023-03-08 11:53:46 +08:00
Petr Skoda 9f178c1f81 MDL-77524 filter_algebra: fix error message 2023-03-08 11:26:40 +08:00
Jake Dallimore c61e59cd68 Merge branch 'MDL-77031-master' of https://github.com/mihailges/moodle 2023-03-08 11:00:08 +08:00
Paul Holden f0a557bffb MDL-75517 report_participation: filter report by viewable roles only. 2023-03-08 10:36:52 +08:00
Michael Hawkins 493205b6b2 MDL-77204 mod_wiki: Clean filename in Moodle1 backup 2023-03-08 10:33:14 +08:00
Paul Holden 81e74af17f MDL-77046 availability: validate profile field in condition. 2023-03-08 10:23:55 +08:00
Paul Holden a931a7f8ce MDL-76809 gradereport_history: pre-filter report userids filter.
Ensure current user is able to access each of the provided userids.
2023-03-08 09:59:49 +08:00
Ilya Tregubov bb69388f82 Merge branch 'MDL-77446-master' of https://github.com/andelacruz/moodle 2023-03-08 09:18:13 +08:00
Petr Skoda 1899e03973 MDL-76645 filter_data: fix link title attribute 2023-03-08 00:54:14 +00:00
Paul Holden 0e3c8eb740 MDL-77129 tool_lp: remove redundant call to set page header. 2023-03-08 00:54:14 +00:00
Paul Holden 355556c05f MDL-77008 mod_data: require sesskey to reset module templates. 2023-03-08 00:54:14 +00:00
Lars Bonczek 128c0c2160 MDL-75659 core: Don't render component argument twice in mustache pix helper 2023-03-08 00:54:14 +00:00
Jun Pataleta 85718f00d8 Merge branch 'MDL-77416-master-enfix' of https://github.com/vmdef/moodle 2023-03-08 08:50:30 +08:00
Jake Dallimore bc0bc7ac4c MDL-75650 core: add moodlenet oauth2 service to core 2023-03-08 08:48:20 +08:00
Jake Dallimore 40af893af5 MDL-75650 core: add oauth2 auth server config reader
Simple JSON reader which takes an issuer and reads its metadata. The
class is aware of request-centric rules, such as:
- The position of the well known suffix in the URL (per RFC8414)
- The requirement to have HTTPS auth server issuer URL
- The validity of query strings, paths and fragments in the auth server
issuer URL
,but makes no attempt to validate the config JSON returned.
2023-03-08 08:48:20 +08:00
AMOS bot 0f78929786 Automatically generated installer lang files 2023-03-08 00:07:47 +00:00
Paul Holden 198db552b0 MDL-77056 reportbuilder: relative date filter for before given period. 2023-03-07 22:46:50 +00:00
Roberto Bravo 6c3b8ae16d MDL-77256 tool_uploaduser: fix get allowed roles for courses
During user upload the permission to assign roles is checked in the wrong context
2023-03-07 18:37:22 +01:00
Dani Palou aba460cec9 MDL-77550 lesson: Format decimals in feedback page 2023-03-07 15:56:26 +01:00
Tim Hunt 1a3897d1ba MDL-77464 questions: regrading was losing question_attempt metadata
This is very similar to MDL-77090, but at the time, I missed that this
also needed to be handled. (Question metadata is, I think, only used
by the quiz 'Try another question like this one' feature.)
2023-03-07 13:40:10 +00:00
Paul Holden 5b7c1491fc MDL-69124 course: final removal of deprecated 310 method. 2023-03-07 12:43:44 +00:00
Ferran Recio 5e445c0e3a MDL-77420 core: fix modal close button on remove on close 2023-03-07 13:13:44 +01:00
Angelia Dela Cruz 76ce84befb MDL-77446 Behat: Add coverage for changing uploaded file details 2023-03-07 16:08:12 +08:00
Mathew May 00747e2641 MDL-52805 core: Remove references to old logging in behat 2023-03-07 13:08:46 +08:00
Mathew May 33ebbddde2 MDL-52805 core: Remove legacy log plugin and more calls 2023-03-07 13:08:46 +08:00
Mathew May 5dace7abc8 MDL-52805 core: Plugins with removed tests due to old events 2023-03-07 13:08:46 +08:00
Mathew May e5ca7766e7 MDL-52805 core: Remove legacy log calls 2023-03-07 13:08:46 +08:00
Andrew Nicols 565a615308 Merge branch 'MDL-77094' of https://github.com/timhunt/moodle 2023-03-07 12:08:58 +08:00
Andrew Nicols 830c9fd7dd Merge branch 'MDL-77336-master' of https://github.com/meirzamoodle/moodle 2023-03-07 12:01:30 +08:00
Andrew Nicols be76699b78 Merge branch 'MDL-77345-master' of https://github.com/meirzamoodle/moodle 2023-03-07 11:29:23 +08:00
Mathew May fce2e17633 MDL-52805 core: Add debugging for old event functions 2023-03-07 11:10:02 +08:00
Ilya Tregubov d4e2192da1 Merge branch 'MDL-75542-master' of https://github.com/PhMemmel/moodle 2023-03-07 08:21:47 +08:00
AMOS bot 8b1ce3c572 Automatically generated installer lang files 2023-03-07 00:07:44 +00:00
Sara Arjona 31aee1c82e MDL-77291 behat: Fix some behat scenarios
Some behat scenarios were using labels with links to access some
specific PHP files.
Now that labels are also displayed in the course index, the region
needs to be defined in the step to access to the expected link
(otherwise, the one in the course index will be used).
2023-03-06 17:26:37 +01:00
Tim Hunt 72d2d24815 MDL-77464 questions: update comments in question_attempt_step
The class comment had some inaccuracies which I fixed.
I also replaced all uses of @link with @see.
2023-03-06 16:23:13 +00:00
Sara Arjona c282cec66c Merge branch 'MDL-77460-master' of https://github.com/lameze/moodle 2023-03-06 16:33:53 +01:00
Paul Holden 76a48c8270 MDL-77539 blog: null coalesce external blog form name/description.
We can't pass null to most string related functions (e.g. `trim`) in
PHP8.1 onwards.
2023-03-06 14:49:07 +00:00
Paul Holden 39f6f7324e MDL-77541 customfield_select: final removal of deprecated 310 method. 2023-03-06 12:45:34 +00:00
fcbsd e2d138f250 MDL-77365 count_words: Make span> an inline tag 2023-03-06 10:59:44 +00:00
Meirza e2d5d50276 MDL-77336 admin: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-06 16:44:06 +07:00
Paul Holden e084865f19 MDL-77533 customfield: fix exception thrown during handler retrieval. 2023-03-06 09:05:52 +00:00
Meirza 210b1ea87b MDL-77345 mod_wiki: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-03-06 10:44:04 +07:00
Paul Holden 6a62ccc52a MDL-77472 grade: correct URL param type for adding tracking params. 2023-03-05 20:06:40 +00:00
Andrew Nicols c1f9b5122c Merge branch 'MDL-77462' of https://github.com/timhunt/moodle 2023-03-05 22:11:08 +08:00
Andrew Nicols 4018ca9023 Merge branch 'MDL-76922-master' of https://github.com/sarjona/moodle 2023-03-05 21:57:53 +08:00
Andrew Nicols 668f65f281 Merge branch 'MDL-76907-master' of https://github.com/sarjona/moodle 2023-03-05 21:54:42 +08:00
Andrew Nicols 031721c29f Merge branch 'MDL-76925-master' of https://github.com/sarjona/moodle 2023-03-05 21:53:11 +08:00
Juan Segarra Montesinos 35c2161472 MDL-77517 js: Disable "Edit mode" button when clicked
When clicked, disable the "Edit mode" button just before doing a
redirection. It's been reported that after clicling several times the
button, an inconsistent state between the button and the editing mode is
achieved. The patch mitigates the issue.
2023-03-05 06:40:49 +01:00
Paul Holden 47c0e48c9c MDL-77172 tool_capability: replace YUI search with ESM version. 2023-03-04 10:19:31 +00:00
Andrew Nicols c50c88e0e6 Merge branch 'MDL-77387_master' of https://github.com/pmaneggia/moodle 2023-03-04 13:30:30 +08:00
Víctor Déniz 6a9f78b0e7 MDL-77416 lang: Use fixed strings in tests 2023-03-03 14:15:30 +00:00
Helen Foster 2e99dd6346 MDL-77416 lang: Import fixed English strings (en_fix) 2023-03-03 14:02:06 +00:00
Andrew Nicols d3cdfc645e Merge branch 'MDL-70226-master' of https://github.com/sarjona/moodle 2023-03-03 20:51:22 +08:00
Sara Arjona 5c20b537b4 MDL-70226 course: Add more options to the activitychoosertabmode setting
Some extra options have been added to the activitychoosertabmode setting, to let
admins decide when to display the Recommended tab.
Apart from that, one of these values have be set as default value for this setting,
as suggested by the UX/PX teams. So the Starter and Full presets have been updated
too with the new values.
2023-03-03 13:45:15 +01:00
Sara Arjona 4e6593263d MDL-76925 lib: Set Moodle files after axe upgrade 2023-03-03 11:46:29 +01:00
Sara Arjona c0e910cc4b MDL-76925 lib: Upgrade axe to 4.6.3 2023-03-03 11:46:28 +01:00
Sara Arjona 0bcb4a66cb MDL-76922 lib: Set Moodle files after PHPSpreadSheet upgrade 2023-03-03 11:45:49 +01:00
Sara Arjona a95afa1316 MDL-76922 lib: Upgrade PHPSpreadSheet to 1.28.0 2023-03-03 11:45:49 +01:00
Sara Arjona 43c79ce226 MDL-76907 lib: Set Moodle files after minify upgrade 2023-03-03 11:45:10 +01:00
Peter Dias e9cb651b5d MDL-76907 core: Add custom Moodle patch to minify
There is a Pull-request from Tim Hunt to the project in GitHub
(https://github.com/matthiasmullie/minify/issues/317) but, for now,
as it hasn't been applied yet, we need to manually cherry-pick
this change.
2023-03-03 11:45:10 +01:00
Sara Arjona dc40a20ed7 MDL-76907 lib: Upgrade minify to 1.3.70 2023-03-03 11:45:10 +01:00
Paola Maneggia 7b5c35895b MDL-77387 course: drop 'moodle/course:view' for course copy UI
Enabling the course copy UI of MDL-64843 already without the capability 'moodle/course:view'
has the advantage, that a user with 'moodle/course:create', 'moodle/backup:backupcourse'
and 'moodle/restore:restorecourse' (typically a teacher)
will be able to use this UI for their own courses and with the additional benefit
of also being enrolled in the copied course.
Important: the role assigned to the user who copies a course is determined
by the value of the setting 'creatornewroleid', which defaults to 'editingteacher'.
2023-03-03 08:49:43 +00:00
Tim Hunt de086efd41 MDL-77462 core_question: avoid passing null to preg_match 2023-03-03 08:46:00 +00:00
Jun Pataleta 3f223172c6 Merge branch 'MDL-77428-master' of https://github.com/andelacruz/moodle 2023-03-03 16:35:22 +08:00
Ferran Recio 5f59807c06 MDL-77291 core_courseformat: show labels in course index 2023-03-03 09:15:11 +01:00
Andrew Nicols be39b195fd Merge branch 'MDL-77434-master' of https://github.com/lameze/moodle 2023-03-03 16:01:29 +08:00
Luca Bösch d855c47b77 MDL-77431 course: Let the bulk edit toggle look like edit mode switch. 2023-03-03 08:54:56 +01:00
Andrew Nicols 80f3336478 Merge branch 'master_MDL-77300' of https://github.com/mattporritt/moodle 2023-03-03 15:35:04 +08:00
Andrew Nicols 479d3a6ce9 Merge branch 'MDL-77370-master' of https://github.com/rbravod/moodle 2023-03-03 15:28:35 +08:00
Andrew Nicols dc31744914 Merge branch 'MDL-76908-master' of https://github.com/cescobedo/moodle 2023-03-03 15:01:43 +08:00
Philipp Memmel e026dd9caf MDL-75542 core_courseformat: Add param for expanding section 2023-03-03 07:54:07 +01:00
Andrew Nicols 74a44f78a3 Merge branch 'MDL-77232' of https://github.com/davidpesce/moodle 2023-03-03 14:39:32 +08:00
Matt Porritt 998a009c42 MDL-76909 Libraries: Upgrade Simplepie to 1.8.0 2023-03-03 16:42:01 +11:00
Laurent David b318fa7320 MDL-76339 mod_bigbluebuttonbn: Update dismissed recordings
* When the server is not reachable (or recordings are not reacheable)
the recording is set to RECORDING_STATUS_DISMISSED and is then
not visible in the list.
* Add a CLI script to solve potential issue with DISMISSED recordings
2023-03-03 05:48:53 +01:00
Jun Pataleta d5dd0e2c18 MDL-76849 question: New lang strings for answer fields 2023-03-03 12:48:02 +08:00
Matt Porritt 6a82ef2474 MDL-76923 Libraries: Upgrade ZipStream to 2.4.0 2023-03-03 15:09:08 +11:00
Andrew Nicols 4ee86a5256 Merge branch 'MDL-77327' of https://github.com/timhunt/moodle 2023-03-03 12:02:44 +08:00
Jake Dallimore 556208417d weekly release 4.2dev 2023-03-03 11:08:26 +08:00
Jake Dallimore 88978c38b9 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-03-03 11:08:24 +08:00
Andrew Nicols 4113ab2f5e MDL-76919 editor_tiny: Improve import instructions
This includes a number of changes to improve how we manage the import of
security patches and repeatability of the build.
2023-03-03 10:57:38 +08:00
Andrew Nicols 1f9cf76c53 MDL-76919 editor_tiy: Bump to version 6.3.2 2023-03-03 09:32:31 +08:00
Tim Hunt 497c527e98 MDL-77467 retore: add progress tracking to potentially slow steps 2023-03-02 15:36:28 +00:00
David Pesce ab1b671110 MDL-77232 enrol_lti: Parallelize lti (1.3) gradesync using adhoc tasks 2023-03-02 09:33:20 -05:00
Meirza 6d2e7a56e0 MDL-76915 libraries: upgrade GeoIP2 to 2.13.0 2023-03-02 21:25:42 +07:00
Andrew Nicols e80987133b MDL-77458 core: Add supported php version info to phpcs config 2023-03-02 20:37:52 +08:00
Roberto Bravo 25c2d17157 MDL-77370 admin: Add a new setting for Support contact 2023-03-02 12:58:07 +01:00
Paul Holden 6e4f1b9a5e MDL-76910 libraries: upgrade to version 6.6.2 of TCPDF. 2023-03-02 11:31:02 +00:00
Mihail Geshoski a05cfc2487 MDL-77031 grade: Revamp the styling of the gradebook setup 2023-03-02 17:01:54 +08:00
Angelia Dela Cruz cb6355ee3c MDL-77428 Behat: Add coverage for forum post word count 2023-03-02 13:44:09 +08:00
Matt Porritt 78e2e20709 MDL-76906 Libraries: Upgrade ADODB to 5.22.4 2023-03-02 16:22:14 +11:00
Simey Lameze f7f3ccf06e MDL-77434 core: add a comment explaining the php versions strategy 2023-03-02 13:14:43 +08:00
Jun Pataleta baef734ef7 MDL-75012 js: Remove orphaned source maps 2023-03-02 13:04:55 +08:00
Jun Pataleta 8ce226081c MDL-75012 core: Fix upgrade.txt conflicts 2023-03-02 12:57:28 +08:00
Jun Pataleta 916503658d Merge branch 'MDL-75012-master-5' of https://github.com/andrewnicols/moodle 2023-03-02 12:34:34 +08:00
Andrew Nicols abccd6ba40 Merge branch 'MDL-77386-master' of https://github.com/ferranrecio/moodle 2023-03-02 12:06:27 +08:00
Andrew Nicols 30d898cbe6 Merge branch 'MDL-76825-master' of https://github.com/meirzamoodle/moodle 2023-03-02 12:05:07 +08:00
Jun Pataleta 724f8b8cb9 Merge branch 'MDL-75719-master-4' of https://github.com/ilyatregubov/moodle 2023-03-02 12:03:19 +08:00
Andrew Nicols 33b1e41f13 MDL-75012 js: Full build of all grunt things 2023-03-02 11:55:32 +08:00
Andrew Nicols ee0e2bcc8f MDL-75012 js: Bump Babel dependencies
Please note that whilst some dependencies have higher versions
available, these are not compatible at this time.
2023-03-02 11:55:32 +08:00
Andrew Nicols ed3c951001 MDL-75012 js: Remove unused babel-preset-minify dependency 2023-03-02 11:55:31 +08:00
Andrew Nicols 84c650489a MDL-75012 js: Drop support for modules built pre-babel
We now include more polyfills than we have ever done, and some of these
cause false-positives on our code to address modules which do not have a
name.

We started adding module names to modules in Moodle 3.8 at _build_ time
and kept support for modules which were not transpiled using Babel
before that point.

We no longer need to support this as all pre-3.8 Moodle versions are
long out of support. The most recent to go out of support was Moodle
3.5, which went completely out of support in May 2021.

We should not support code written and minified without a transpilation
phase from this time any longer.
2023-03-02 11:55:31 +08:00
Andrew Nicols b604b474d4 MDL-77141 gradereport_user: Adjust course name to fix test 2023-03-02 11:49:38 +08:00
Andrew Nicols c7c6573378 Merge branch 'MDL-77141-master' of https://github.com/lucaboesch/moodle 2023-03-02 11:49:00 +08:00
Jake Dallimore 32fd742690 Merge branch 'MDL-77461-master' of https://github.com/andrewnicols/moodle 2023-03-02 11:42:23 +08:00
Jake Dallimore ee3922a10f Merge branch 'MDL-77400-master' of https://github.com/dpalou/moodle 2023-03-02 11:27:04 +08:00
Andrew Nicols 9e8532058f Merge branch 'MDL-77368' of https://github.com/paulholden/moodle 2023-03-02 11:18:34 +08:00
Andrew Nicols 4946bb1bb0 Merge branch 'MDL-61458' of https://github.com/paulholden/moodle 2023-03-02 11:16:57 +08:00
Andrew Nicols 220191eca5 MDL-77461 behat: Use get_course_id instead of DB fetch 2023-03-02 11:06:28 +08:00
Ilya Tregubov bc87c5b391 MDL-75719 completion: Add Behat scenario for completion states. 2023-03-02 11:03:02 +08:00
Ilya Tregubov 9f062f1379 MDL-75719 completion: Fix unit tests and Behat tests.
Fix tests since we changed behavior of completions (completion
state an UI).
2023-03-02 11:03:02 +08:00
Ilya Tregubov 11a9bf7fd6 MDL-75719 completion: Fix viewed criteria.
When we unlock completion criteria and save changes 'viewed' criteria
still should be completed if user has viewed activity before. Seems
that that was broken by recent changes. Fixing here.
2023-03-02 11:03:02 +08:00
Ilya Tregubov fbb01b4724 MDL-75719 completion: Fix completion state for hidden grade items.
For hidden grade items we used to mark students as completed if
they have any grade. But this was not working correctly when we
also set pass grade for activity and completion criteria based
on pass grade. So we will have these completion states

Competion criteria 'Receive grade':
No grade - COMPLETION_INCOMPLETE
Grade visible, achieved passing grade - COMPLETION_COMPLETE_PASS
Grade visible, failed passing grade - COMPLETION_COMPLETE_FAIL
Grade hidden - COMPLETION_COMPLETE

Completion criteris 'Receive passing grade'
No grade - COMPLETION_INCOMPLETE
Grade visible, achieved passing grade - COMPLETION_COMPLETE_PASS
Grade visible, failed passing grade - COMPLETION_COMPLETE_FAIL
Grade hidden, achieved passing grade - COMPLETION_COMPLETE_PASS
Grade hidden, failed passing grade - COMPLETION_COMPLETE_FAIL_HIDDEN
2023-03-02 11:03:02 +08:00
Jake Dallimore 2520d8b099 Merge branch 'MDL-77318-master' of https://github.com/Utdanningsdirektoratet/moodle 2023-03-02 10:55:45 +08:00
Simey Lameze 56dd7bfb72 MDL-77460 behat: improve roles.feature test 2023-03-02 10:51:55 +08:00
Andrew Nicols b517dc7c88 Merge branch 'MDL-77150' of https://github.com/roland04/moodle 2023-03-02 10:46:49 +08:00
Andrew Nicols e258534b3f Merge branch 'MDL-75534-master-forum-usermodified-zero' of https://github.com/mudrd8mz/moodle 2023-03-02 10:38:15 +08:00
Jake Dallimore 9abd366ab7 Merge branch 'MDL-76298' of https://github.com/timhunt/moodle 2023-03-02 10:12:43 +08:00
Jun Pataleta 9533281da6 Merge branch 'MDL-77413-master' of https://github.com/andelacruz/moodle 2023-03-02 09:46:02 +08:00
Andrew Nicols 64e7cfabe6 Merge branch 'MDL-77391' of https://github.com/jrchamp/moodle 2023-03-02 09:26:13 +08:00
Andrew Nicols 5c1707e598 Merge branch 'MDL-77321' of https://github.com/paulholden/moodle 2023-03-02 09:24:44 +08:00
Matt Porritt 63d6e74a8e MDL-76916 Libraries: Upgrade PHP-JWT to 6.4.0 2023-03-02 12:23:55 +11:00
Andrew Nicols 832e7cba0d Merge branch 'MDL-77412' of https://github.com/sumaiyamannan/moodle 2023-03-02 09:23:49 +08:00
Andrew Nicols 0c8b3749f2 Merge branch 'MDL-40600-master-duplicate_section' of https://github.com/alexmorrisnz/moodle 2023-03-02 09:23:05 +08:00
Andrew Nicols 6a36f59497 Merge branch 'MDL-77135-master' of https://github.com/aanabit/moodle 2023-03-02 09:19:14 +08:00
Andrew Nicols 0fd0dff885 Merge branch 'MDL-75753-master' of https://github.com/call-learning/moodle 2023-03-02 09:14:06 +08:00
Andrew Nicols f6e53500d9 MDL-77277 theme_boost: Add reference to CL update 2023-03-02 09:13:09 +08:00
Andrew Nicols 54ac0ae079 Merge branch 'MDL-77277-master' of https://github.com/skodak/moodle 2023-03-02 09:11:22 +08:00
Jun Pataleta 1cbf445628 Merge branch 'MDL-74586-master-sqlrss' of https://github.com/mudrd8mz/moodle 2023-03-02 08:58:28 +08:00
Jun Pataleta 6802f6b7f4 Merge branch 'MDL-76938_restore_comments' of https://github.com/davosmith/moodle 2023-03-02 08:42:15 +08:00
Matt Porritt ba2dc81c80 MDL-76924 Libraries: Upgrade php-enum to 1.8.4 2023-03-02 11:41:49 +11:00
Matt Porritt 16dbf367c3 MDL-76928 Libraries: Upgrade lunr.js to 2.3.9 2023-03-02 11:15:49 +11:00
AMOS bot 9829bff032 Automatically generated installer lang files 2023-03-02 00:07:51 +00:00
Jun Pataleta 675dadaf55 Merge branch 'MDL-77430' of https://github.com/stronk7/moodle 2023-03-01 23:59:40 +08:00
Jun Pataleta 7eda9557c3 Merge branch 'MDL-77417' of https://github.com/stronk7/moodle 2023-03-01 23:54:34 +08:00
Petr Skoda 416d3ef5d6 MDL-77277 theme_boost: remove Bootstrap version reference 2023-03-01 13:02:24 +01:00
Jun Pataleta 222099cda1 Merge branch 'MDL-77250-master' of https://github.com/lameze/moodle 2023-03-01 17:08:07 +08:00
hieuvu cd81f29f55 MDL-77323 question: Prevent drag item sent into two drop zone 2023-03-01 14:48:32 +07:00
Jake Dallimore f7134f1083 Merge branch 'MDL-76897' of https://github.com/timhunt/moodle 2023-03-01 12:43:58 +08:00
Andrew Nicols 2b4c86e251 Merge branch 'MDL-77299-master' of https://github.com/meirzamoodle/moodle 2023-03-01 11:14:36 +08:00
Meirza f228e373cc MDL-77299 mod_quiz: Added missing class properties.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

Co-authored-by: Tim Hunt <t.j.Hunt@open.ac.uk>
2023-03-01 10:09:19 +07:00
Meirza e4b24bdd79 MDL-77299 question: Added class properties that are not declared.
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.

Co-authored-by: Tim Hunt <t.j.Hunt@open.ac.uk>
2023-03-01 10:09:09 +07:00
Andrew Nicols 427659d202 Merge branch 'MDL-58945' of https://github.com/timhunt/moodle 2023-03-01 10:54:13 +08:00
Andrew Nicols cd53dbb5fe Merge branch 'MDL-68776' of https://github.com/paulholden/moodle 2023-03-01 10:53:08 +08:00
Andrew Nicols 31aed9a211 Merge branch 'MDL-74585' of https://github.com/paulholden/moodle 2023-03-01 10:51:26 +08:00
Andrew Nicols b049bc9ac5 Merge branch 'MDL-77322_basicauth_checkbox' of https://github.com/leonstr/moodle 2023-03-01 10:49:21 +08:00
Andrew Nicols eb9b349c9f Merge branch 'MDL-72727' of https://github.com/paulholden/moodle 2023-03-01 10:46:09 +08:00
AMOS bot de7b6c7760 Automatically generated installer lang files 2023-03-01 00:07:42 +00:00
Tim Hunt 0458c69d0d MDL-77327 qtype_ddmarker: remove use of unnecessary undeclared field
Also:
  * Fix some incorrect punctuation in two strings.
  * Add a test to verify that this change does not cause a regression.
  * Improve some PHPdoc comments.
2023-02-28 17:44:55 +00:00
Tim Hunt d65c17d16f MDL-77440 quiz: fix nav error reviewing after redoing a question 2023-02-28 16:29:03 +00:00
Petr Skoda 089b9a8846 MDL-77277 tool_componentlibrary: import Bootstrap v4.6.2 2023-02-28 23:46:00 +08:00
Petr Skoda 6db8f35c43 MDL-77277 theme_boost: import Bootstrap v4.6.2 2023-02-28 23:45:52 +08:00
Paul Holden 1e8c579812 MDL-61458 tool_lp: remove custom cohort autocomplete form selector.
The previous commit replaced the only remaining usage of it with the
equivalent core cohort form element. Prior to that, 21a0008f had done
the same.
2023-02-28 15:45:20 +00:00
Mikel Martín 292925d4c0 MDL-77150 reportbuilder: Fix report attributes classes are ignored
Fix report attributes with key 'class' being ingored when adding them to report classes.
2023-02-28 16:19:26 +01:00
Mikel Martín 86311f5a40 MDL-77150 core_table: Fix classes added as columnsattributes are ignored
Fix columnattributes with key 'class' being ingored by adding them to every 'column_class'.
2023-02-28 16:19:19 +01:00
Jonathan Champ cdf6c1ae88 MDL-77391 question admin: further improve query peformance in qtypes.php 2023-02-28 10:17:11 -05:00
Andrew Nicols 6555861856 Merge branch 'MDL-77425' of https://github.com/stronk7/moodle 2023-02-28 23:03:49 +08:00
Andrew Nicols a9fb039e3c Merge branch 'MDL-73018_bump-travis-and-gha-to-use-php81-instead-of-php80' of https://github.com/ziegenberg/moodle 2023-02-28 23:02:57 +08:00
cescobedo dc2d9ca7f7 MDL-76908 lib: update phpmailer to 6.7.1 2023-02-28 15:39:08 +01:00
Andrew Nicols 8ae5ebb507 MDL-77163 cachestore_mongodb: Remve from core 2023-02-28 22:24:04 +08:00
David Mudrák fcfe8ceef1 MDL-74586 rss: Make rss_get_userid_from_token() use table index
Due to missing `AND k.script = 'rss'` condition, the query did not make
use of the existing script-value compound index defined for the table.
So it had to perform the full sequential scan for all rows when
searching for the token. This had serious performance issues on sites
with many users, especially in case on non-existing token / key.
2023-02-28 13:21:35 +01:00
Eloy Lafuente (stronk7) d2c721b9e0 MDL-77430 plugininfo: php81 deprecation warnings on missing plugins
Whenever some plugin is missing from disk but installed, the plugins
page (and the upgrade) shows them as "missing from disk". Still, the
code tries to do things with their directory that, now, is null.

That was silently defaulting to '' in previous php versions, but
php81 emits a deprecated warning. So we have to check for them.
2023-02-28 11:34:21 +01:00
Jun Pataleta e4725be660 Merge branch 'MDL-76992-master' of https://github.com/aanabit/moodle 2023-02-28 18:26:12 +08:00
Daniel Ziegenberg 7427854c11 MDL-73018 ci: Move highest PHP to 8.1 (from current 8.0)
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2023-02-28 11:21:48 +01:00
Dani Palou aec31e312a MDL-77400 reportbuilder: Fix enrolment status return type 2023-02-28 10:41:12 +01:00
Amaia Anabitarte 2a7632feb5 MDL-76992 core_courseindex: Apply indentation in the course index 2023-02-28 10:26:15 +01:00
Angelia Dela Cruz 9fded44344 MDL-77413 Behat: Minor changes to optimise the existing tests 2023-02-28 17:19:47 +08:00
Angelia Dela Cruz 4380682549 MDL-77413 Behat: Add coverage to verify groups can have a picture 2023-02-28 17:08:08 +08:00
Jun Pataleta 946a88c87e Merge branch 'MDL-77248-master' of https://github.com/andrewnicols/moodle 2023-02-28 15:46:54 +08:00
Andrew Nicols 0c0f6bffd8 MDL-77308 editor_tiny: Remove from core 2023-02-28 13:40:09 +08:00
Andrew Nicols 36b69bbb05 MDL-77248 mod_bigbluebuttonbn: Remove unused dpa pages 2023-02-28 12:04:51 +08:00
Andrew Nicols ce7c207203 MDL-77248 mod_bigbluebuttonbn: Set dpa accepted when creating activities
This only applies when creating activities using the test data
generator.
2023-02-28 12:04:51 +08:00
Andrew Nicols e6fe30187f MDL-77248 core: Move pre_enable_plugin_actions callback to enable_plugin
Note: The original callback was incorrectly using the $PAGE output,
which cannot be relied upon in this callback. The best we can do here is
to add a notification to explain the situation.
2023-02-28 12:04:50 +08:00
Andrew Nicols 797b76becf MDL-77248 core_admin: Tidy up coding style of admin/modules 2023-02-28 12:01:15 +08:00
Andrew Nicols 784098fe9e MDL-75012 js: Put shifter on a diet
This commit switches to a new custom version of Shifter which sees it
put on a massive diet.

Many of the standard Shifter features are totally unused by Moodle, but
they add dependency spaghetti. Some of those dependencies will start to
cause us issues as they have not been updated for a very long time, are
no longer maintained, and are no longer compatible with anything
resembling a recent version of NodeJS.
2023-02-28 10:22:45 +08:00
Andrew Nicols b3f7721cdd MDL-75012 js: Bump shifter to new version
This resolves an issue identified in 77083 which identified that GitHub
hashes shouldn't be treated as repeatable.

Whilst GitHub have reverted this change, it's still worth making this
change.
2023-02-28 10:19:51 +08:00
Andrew Nicols 5d0631b6a1 MDL-75012 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.
2023-02-28 10:19:51 +08:00
Andrew Nicols 472fc27ab9 MDL-75012 js: Audit fix 2023-02-28 10:19:51 +08:00
Andrew Nicols 7c3db6d458 MDL-75012 js: Bump node-sass 2023-02-28 10:19:51 +08:00
Andrew Nicols 19f5ffb28a MDL-75012 js: Update browserslist
To avoid build changes we exclude older versions of Android browser
2023-02-28 10:19:51 +08:00
Andrew Nicols 1c73373b3d MDL-75012 js: Bump stylelint and components 2023-02-28 10:19:50 +08:00
Andrew Nicols abb6877596 MDL-75012 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.
2023-02-28 10:19:50 +08:00
Andrew Nicols f70d9a3eef MDL-75012 js: Bump standard dependencies
This change bumps dependencies which have no impact upon the build
process
2023-02-28 10:19:50 +08:00
Andrew Nicols 6d0fdd8fd8 MDL-75012 core: Bump NodeJS version requirements 2023-02-28 10:19:50 +08:00
Jun Pataleta 855cc8c7d7 Merge branch 'MDL-76956-master' of https://github.com/sammarshallou/moodle 2023-02-28 10:07:01 +08:00
Jun Pataleta 1b0a923a75 Merge branch 'MDL-77276-master' of https://github.com/sarjona/moodle 2023-02-28 10:05:04 +08:00
Jun Pataleta 74c875b6da Merge branch 'MDL-76990-master' of https://github.com/aanabit/moodle 2023-02-28 09:45:32 +08:00
Matt Porritt d41770a249 MDL-77300 Site Registration: Prompt to register site after upgrade
Unregistered sites will now display registration form to admins
after every core upgrade. Non core upgrades will not trigger the
form.
Registration form will not show for sites that are not set to
public.
2023-02-28 11:39:28 +11:00
Paul Holden 0df45e134d MDL-72727 mod_forum: prevent default favourite toggle click event.
Allow the repository call to the web service method to complete before
re-directing, otherwise the call may not complete and/or races against
the page reload causing random Behat errors.
2023-02-27 23:24:08 +00:00
Sumaiya Javed 567504d8fd MDL-77412 reportbuilder: Make groupconcat aggregation method sortable. 2023-02-28 10:39:00 +13:00
Paul Holden 54b135e034 MDL-77321 reportbuilder: cache list of loaded reports per user.
Since 0188af39 we've cached loaded reports, however there was an
edge case in those report sources that relied on the current user
as part of their own initialization (e.g. checking capabilities).

Co-authored-by: Marina Glancy <marina@moodle.com>
2023-02-27 21:13:11 +00:00
Paul Holden 9ae5c203aa MDL-77418 mod_feedback: defensive use of analysis item data. 2023-02-27 19:21:22 +00:00
Tim Hunt 1b72db7082 MDL-76897 quiz: fix incorrect StdClass 2023-02-27 18:41:58 +00:00
Tim Hunt 20ccfc162d MDL-76897 quiz: deprecate unused quiz_calculate_best_attempt 2023-02-27 18:41:58 +00:00
Tim Hunt 728160cfbc MDL-76897 quiz: quiz_save_best_grade -> recompute_final_grade
also, the associated quiz_calculate_best_grade (only used here)
moved to a protected method.
2023-02-27 18:41:58 +00:00
Tim Hunt ff3f4eb2e7 MDL-76897 quiz: quiz_set_grade -> update_quiz_maximum_grade 2023-02-27 18:41:57 +00:00
Tim Hunt c212565151 MDL-76897 quiz: quiz_update_all_final_grades -> grade_calculator 2023-02-27 18:41:56 +00:00
Tim Hunt 4080962125 MDL-76897 quiz: quiz_update_all_attempt_sumgrades -> grade_calculator 2023-02-27 18:41:56 +00:00
Tim Hunt c12ff3d5f3 MDL-76897 quiz: get the context more efficiently where possible 2023-02-27 18:41:56 +00:00
Tim Hunt 1ee7f41762 MDL-76897 quiz: streamline initalisation of $quiz, $cm, $course 2023-02-27 18:41:55 +00:00
Amaia Anabitarte b37fe9a088 MDL-76990 core_course: Recover move right/left functionality 2023-02-27 18:27:57 +01:00
Eloy Lafuente (stronk7) 52f033b732 MDL-77425 travis: Ensure databases shutdown have time to complete
This is only randomly affecting to Moodle 4.2 with PostgreSQL 13
that, for some reason, returns the control to the script before
some files (.pid) have been deleted as part of the database
shutdown.

It seems that adding 1 second of sleep it's enough to workaround
that problem (there are examples of that in various Travis discussions).

So we are adding here 2 seconds, to ensure we are in the safe side
towards consistent passes. And we are applying the same strategy
also to the MySQL installation, just to keep them 100% parallel.
2023-02-27 16:52:14 +01:00
Paul Holden efbe491826 MDL-61458 tool_cohortroles: switch to core user/cohort form elements.
Remove last dependency on tool_lp plugin.
2023-02-27 12:20:16 +00:00
Paul Holden 4b8346eeec Merge branch 'MDL-77288-master' of https://github.com/lucaboesch/moodle 2023-02-27 10:38:51 +00:00
Eloy Lafuente (stronk7) 2d0c0dbcb6 MDL-77417 behat: behat_error_handler meets deprecation error types
Right now, any E_DEPRECATED, E_USER_DEPRECATED error type leads
to exception in behat runs, because the behat error handled is
not aware of them. See MDL-38041 for the initial implementation.

We don't want that to happen and they must behave like other "low"
error types (notices, warnings...), that will be reported in logs
or output, but won't trigger any exception, so the test can continue.

This commit just adds those 2 "new" error types to the handler,
providing the very same behaviour for them than the rest.
2023-02-27 09:33:08 +01:00
Meirza bd35a360ca MDL-76825 tiny: restyling link on focus for sufficient colour contrast.
Text elements must have sufficient colour contrast against the background,
restyling the link element when it is focused is to ensure colour contrast of at least 4.5:1
2023-02-27 09:27:46 +07:00
Meirza b12b738994 MDL-76825 tiny_media: Make IDs and labels unique. 2023-02-27 09:27:46 +07:00
Meirza 749a8c02f5 MDL-76825 theme: ensure button role has an accessible name. 2023-02-27 09:27:46 +07:00
Ferran Recio 01d6ba02a3 MDL-40600 core_courseformat: duplicate a named section with copy
When a named section is duplicated, the name must have a (copy) particle
to make visible what section is the original and what is the copy.
2023-02-27 09:19:26 +13:00
Alex Morris f1c4cc73df MDL-40600 course: Add ability to duplicate section 2023-02-27 09:10:36 +13:00
Leon Stringer ad592f442d MDL-77322 oauth2: Fix basicauth checkbox
Following MDL-61880 you could turn on "Authenticate token requests via
HTTP headers" but not turn this off again.  This change fixes this and
adds a Behat scenario to test toggling this checkbox is saved
correctly.
2023-02-24 17:25:43 +00:00
Tim Hunt dbd62aa94d MDL-76897 quiz: move quiz_update_sumgrades into grade_calculator 2023-02-24 16:14:51 +00:00
Tim Hunt 086bbf3f89 MDL-76897 quiz: create new class for all the grade calculation code 2023-02-24 16:14:51 +00:00
Laurent David 7bd13d581d MDL-75753 mod_bigbluebuttonbn: Support SHA256 and SHA512 checksum
* Add support for SHA256 and SHA512 checksum
2023-02-24 14:20:29 +01:00
Ferran Recio 30c172becf MDL-77386 core_courseformat: add plugin and module to cm state 2023-02-24 12:24:25 +01:00
Amaia Anabitarte 9f840c140d MDL-77135 block_myoverview: Remove duplicated strings
AMOS BEGIN
  CPY [zero_nopermission_title,block_myoverview],[zero_default_title,block_myoverview]
AMOS END
2023-02-24 12:01:45 +01:00
Sara Arjona 529faa9eaa MDL-77276 mod_data: Update reset single template string
When a single template is reset, the string displayed in the modal should
not reference to "all templates" to avoid confusion, as it was shown in the
original prototype for the 4.1 database project.
2023-02-24 11:21:49 +01:00
Luca Bösch 3d59f5073c MDL-77288 quiz: Horizontally align feedback to the border & full width.
Probably from historical reasons and because of layout of former Moodle
versions the container the feedback is situated in has 70% width and is
indented. In nowadays themes this looks weird and gives visual inconsistency.
2023-02-24 10:44:19 +01:00
Luca Bösch 6d330cfec6 MDL-77141 gradebook: Correct course name in user report 2023-02-24 10:44:17 +01:00
Jun Pataleta 9ee4f8db8b weekly release 4.2dev 2023-02-24 15:43:16 +08:00
Jun Pataleta 5be89588f8 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-02-24 15:43:13 +08:00
Andrew Nicols c1456aad07 Merge branch 'master_MDL-77376' of https://github.com/mattporritt/moodle 2023-02-24 12:31:48 +08:00
Andrew Nicols 9dff6e9c27 Merge branch 'MDL-76611' of https://github.com/paulholden/moodle 2023-02-23 19:04:29 +01:00
Andrew Nicols d8f6c76400 Merge branch 'MDL-76843' of https://github.com/timhunt/moodle 2023-02-23 19:04:29 +01:00
Andrew Nicols 8a27d2c082 Merge branch 'MDL-77271-master' of https://github.com/lameze/moodle 2023-02-23 19:04:29 +01:00
Ilya Tregubov 8773ff3f56 MDL-74433 mod_assign: Fix version.php 2023-02-23 19:04:29 +01:00
Andrew Nicols 9b82570918 Merge branch 'MDL-77290-master' of https://github.com/HuongNV13/moodle 2023-02-23 19:04:29 +01:00
Andrew Nicols 157387832b Merge branch 'MDL-76735-master' of https://github.com/HuongNV13/moodle 2023-02-23 19:04:29 +01:00
Ilya Tregubov 4a76af27df Merge branch 'MDL-74433' of https://github.com/larsbonczek/moodle 2023-02-23 19:04:29 +01:00
Andrew Nicols e515c15cfa Merge branch 'MDL-77352' of https://github.com/paulholden/moodle 2023-02-23 19:04:29 +01:00
Matt Porritt dd753f67e3 MDL-77376 Licensing: Update trademark.txt
Update Trademark policy in TRADEMARK.txt to
be in line with advice from the Moodle HQ
legal team
2023-02-23 15:35:25 +11:00
Andrew Nicols d174cf3f85 Merge branch 'MDL-76412-master' of https://github.com/raortegar/moodle 2023-02-23 11:04:07 +08:00
Andrew Nicols 7839d62111 Merge branch 'MDL-77354-master' of https://github.com/HuongNV13/moodle 2023-02-23 10:49:09 +08:00
Ilya Tregubov bb4633c967 Merge branch 'MDL-31235-master' of https://github.com/srobotta/moodle 2023-02-23 10:48:11 +08:00
Andrew Nicols 2b3baeb174 Merge branch 'MDL-76577/402' of https://github.com/skodak/moodle 2023-02-23 10:46:15 +08:00
Andrew Nicols 35f8c81d6f Merge branch 'MDL-77278-master' of https://github.com/ferranrecio/moodle 2023-02-23 10:43:50 +08:00
Andrew Nicols a95f9fc1fb Merge branch 'MDL-69838' of https://github.com/paulholden/moodle 2023-02-23 10:39:42 +08:00
Andrew Nicols 0af94c6bb7 Merge branch 'MDL-75005_42' of https://github.com/skodak/moodle 2023-02-23 10:29:15 +08:00
Andrew Nicols 82e035955c Merge branch 'MDL-76804-master' of https://github.com/lucaboesch/moodle 2023-02-23 10:13:31 +08:00
Ilya Tregubov d6c9b9eaed Merge branch 'MDL-77182-master' of https://github.com/ferranrecio/moodle 2023-02-23 10:09:51 +08:00
Andrew Nicols baae0cd2d6 MDL-77230 mod_feedback: Coding style violation fixes 2023-02-23 10:05:47 +08:00
Andrew Nicols 42fcac25e2 Merge branch 'MDL-77230-master' of https://github.com/sarjona/moodle 2023-02-23 10:05:33 +08:00
Ilya Tregubov 07053e8140 Merge branch 'MDL-76873' of https://github.com/paulholden/moodle 2023-02-23 09:57:45 +08:00
Andrew Nicols d7d5b417b6 Merge branch 'MDL-77210' of https://github.com/timhunt/moodle 2023-02-23 09:22:40 +08:00
Andrew Nicols 58820e2e56 Merge branch 'MDL-77149-master' of https://github.com/sammarshallou/moodle 2023-02-23 09:20:15 +08:00
Andrew Nicols 5a896a722c Merge branch 'MDL-76815' of https://github.com/paulholden/moodle 2023-02-23 09:14:03 +08:00
Paul Holden 09f51d1461 MDL-77368 forms: remove console logging of upload DOM element. 2023-02-22 17:44:30 +00:00
Tim Hunt dd1385b80d MDL-76843 quiz: add test to verify random essay stats now work 2023-02-22 14:30:23 +00:00
Tim Hunt 4484757021 MDL-76843 quiz: fix statistics questions for missing questions 2023-02-22 14:30:23 +00:00
Tim Hunt 837d1cbf52 MDL-76843 questions behat: enhancements requried to test this issue
* New steps to set up certian sorts of broken test data.
* Fix qtype_essay_question::un_summarise_response().
2023-02-22 14:30:22 +00:00
Paul Holden 922c61dee8 MDL-74585 core: pass string identifier/component to network keepalive.
Avoid passing potentially large amounts of data in the page AMD call,
allow the `core/network` module to load actual string content itself.
2023-02-22 13:49:30 +00:00
Tim Hunt b920f2b0d1 MDL-76298 drag-drop questions: validate the questions are complete
Previously, it was possible to create drag-drop markers and onto image
questions without any drag items or drop zones. This was non-sensical,
and broke statistics calculations.

So, missing validation added, and random guess score calculation made
robust.
2023-02-22 12:03:09 +00:00
Tim Hunt 3088bc6600 MDL-58945 qbank: showing q text should give option of plain or full 2023-02-22 11:15:02 +00:00
Ilya Tregubov 9f31d4cd5f Merge branch 'MDL-77285-master' of https://github.com/lameze/moodle 2023-02-22 12:26:33 +08:00
Huong Nguyen 0703ba8a51 MDL-77354 tool_behat: Fix deprecated strlen() of null in PHP 8.1 2023-02-22 11:07:49 +07:00
Ilya Tregubov 6138e692ca Merge branch 'MDL-76784-master' of https://github.com/sammarshallou/moodle 2023-02-22 10:51:41 +08:00
Huong Nguyen 3fbe7ace06 MDL-77290 tiny_media: Fix cannot update the created media
Including in this commit:
 - Changed the button text to Update media when the user is updating the media
 - Added new Behat tests
2023-02-22 09:33:31 +07:00
Ilya Tregubov 9fcb71d5ff Merge branch 'MDL-76850-master' of https://github.com/ferranrecio/moodle 2023-02-22 09:26:49 +08:00
Paul Holden d58b28d97e MDL-77352 javascript: declare debouncer outside the event handler.
It needs to be declared as such, otherwise each time the event is
triggered a new debouncer is created.
2023-02-21 22:38:59 +00:00
Paul Holden ffb123b6e8 MDL-76602 mod_lti: array syntax/whitespace cleanup. 2023-02-21 17:04:29 +00:00
Paul Holden 87912b7929 Merge branch 'MDL-76602-master-lti13claims' of https://github.com/cengage/moodle 2023-02-21 16:46:25 +00:00
Ferran Recio d43c14471b MDL-76850 core_courseformat: bulk duplicate activities 2023-02-21 12:26:04 +01:00
sam marshall 201b6db1ac MDL-77149 core_files: Network filesystem (Amazon EFS) can warn
If you delete a file with a hash and then create another file with
the same hash, sometimes on EFS filesystems while trying to create
the new file, it returns true to the file_exists check even though
the file doesn't exist, but then fails other calls.

This change makes Moodle tolerate that behaviour.
2023-02-21 10:53:31 +00:00
sam marshall a3b1e3b4ee MDL-76784 core_cache: versioned cache (modinfo) can fail in install
When cache is disabled but temporary in-memory caches are allowed,
these were direct instances of cachestore_static with no loader, which
meant that the get_versioned and set_versioned functions did not work.
2023-02-21 10:40:23 +00:00
Sara Arjona da2b7863c3 Merge branch 'MDL-76146-patch' of https://github.com/ilyatregubov/moodle 2023-02-21 11:32:03 +01:00
Ilya Tregubov d99995cec3 MDL-76146 gradereport_grader: Add class lost during rebase. 2023-02-21 18:07:12 +08:00
Ilya Tregubov 4145046020 Merge branch 'MDL-76848-master' of https://github.com/ferranrecio/moodle 2023-02-21 17:36:32 +08:00
Huong Nguyen 40db4f52d4 MDL-76735 editor_tiny: Fix random behat failure for Media image 2023-02-21 14:30:11 +07:00
Simey Lameze 26cf7b3fa9 MDL-77271 behat: verify user licence preference is remembered 2023-02-21 15:17:27 +08:00
Simey Lameze d9d8a1ad36 MDL-77271 behat: test to verify used licence cannot be deleted 2023-02-21 12:18:05 +08:00
Ilya Tregubov 414d3cdd5f Merge branch 'MDL-68347-master-2' of https://github.com/marinaglancy/moodle 2023-02-21 10:06:39 +08:00
Ilya Tregubov 69e47815d9 Merge branch 'MDL-76386-master' of https://github.com/laurentdavid/moodle 2023-02-21 09:47:38 +08:00
AMOS bot 1073989f90 Automatically generated installer lang files 2023-02-21 00:07:40 +00:00
Paul Holden 6111426f1d Merge branch 'MDL-76146-master' of https://github.com/ilyatregubov/moodle 2023-02-20 16:41:29 +00:00
Paul Holden 8939a00f66 Merge branch 'MDL-77269-master' of https://github.com/lameze/moodle 2023-02-20 12:17:41 +00:00
Simey Lameze 3236bf8e11 MDL-77269 licencemanager: show notification instead of an exception 2023-02-20 19:17:06 +08:00
Paul Holden 0972a5b7a9 Merge branch 'MDL-76545-master' of https://github.com/ferranrecio/moodle 2023-02-20 10:28:52 +00:00
Marina Glancy c184b2d284 MDL-68347 course: trigger event if user was created during restore 2023-02-20 10:20:00 +00:00
Paul Holden eeafcc715a MDL-76797 roles: add @since annotation to role created event. 2023-02-20 10:08:21 +00:00
Paul Holden 273e006419 Merge branch 'MDL-76797-master' of https://github.com/JBThong/moodle 2023-02-20 10:00:16 +00:00
Paul Holden 63e5431b25 Merge branch 'MDL-77287-master' of https://github.com/snake/moodle 2023-02-20 09:55:08 +00:00
Audun Jørstad Lillekjendlie c31425f4fd MDL-77318 core: Add role attribute to user navigation div 2023-02-20 10:52:02 +01:00
Paul Holden 25e8971b3a MDL-76873 user: method for returning profile field instance of type.
Re-factor implementation of profile field access within user fields
class to use that already provided by the fields themselves.
2023-02-20 09:24:05 +00:00
Paul Holden 65c4ae7bda MDL-76873 reportbuilder: correct checks for profile field visibility. 2023-02-20 09:22:00 +00:00
Laurent David 183d97a956 MDL-76386 core_user: Add/remove users dialog improvement
* Use language string to customise user information in the group Add/Remove dialog
2023-02-20 09:37:06 +01:00
Ferran Recio 4f7d5541c4 MDL-76545 core: fix reactive debug panel
The reactive debug panel stops working when a new reactive instance is
created in the fly. This was not detected until the new dragf and drop
files into course uses a second reactive UI component in the same page.
2023-02-20 09:01:57 +01:00
Ferran Recio 135c8a999c MDL-77182 core: add debug template info setting
A new developer setting that adds comments in the page HTML specifying
which template is used to render each part of the page. It can be set
form the site admin development tab and it is stored
as $CFG->debugtemplateinfo.
2023-02-20 08:54:06 +01:00
Thong Bui 5db011a600 MDL-76797 core_role: Add create role event class 2023-02-20 12:37:35 +07:00
Jun Pataleta b6432d5475 Merge branch 'MDL-45301_master_v3' of https://github.com/TomoTsuyuki/moodle 2023-02-20 10:15:17 +08:00
Andrew Nicols 68169e1fb9 Merge branch 'MDL-77020' of https://github.com/paulholden/moodle 2023-02-20 09:52:39 +08:00
Sara Arjona 0cde029237 MDL-77230 mod_feedback: Validate feedback access
The get_items() and get_page_items() external methods should return
items only when the user has access. Otherwise, empty array for items
will be returned, with the exact error in the warnings parameter.
2023-02-17 12:41:10 +01:00
Luca Bösch 0428998de2 MDL-76804 course: inserting activities UI element centered. 2023-02-17 11:09:12 +01:00
Ferran Recio 39743b5197 MDL-77278 theme_boost: fix sticky footer in firefox 2023-02-17 10:08:51 +01:00
Ferran Recio e6802896f7 MDL-76848 core_courseformat: bulk availability 2023-02-17 10:07:32 +01:00
Ferran Recio b1ad8480fe MDL-76848 core: add disable buttons to modals 2023-02-17 10:07:32 +01:00
Petr Skoda ac08f4f608 MDL-76577 block_html: fix incorrect use of draft files 2023-02-17 09:53:07 +01:00
Petr Skoda f0613d1bfa MDL-75005 core: remove invalid addslashes() 2023-02-17 09:50:06 +01:00
Jake Dallimore 0b1159cf85 MDL-77287 tool_oauth2: fix issuer form validation
This ensures validation errors from the issuer persistent are seen.
2023-02-17 15:15:10 +08:00
Stephan Robotta 75b8733197 MDL-31235 core_grades: use text filters for criterion fields 2023-02-17 08:11:14 +01:00
Tomo Tsuyuki 9e725bc168 MDL-45301 assign: Add font options for EditPDF 2023-02-17 15:30:25 +11:00
Ilya Tregubov 1b8ac1ff8c MDL-76146 gradereport_grader: remove deprecated preferences. 2023-02-17 11:35:05 +08:00
Ilya Tregubov 5cb18337cb MDL-76146 gradereport_grader: Remove show grade analysis icon preference 2023-02-17 11:34:09 +08:00
Ilya Tregubov c1a3087f8b MDL-76146 gradereport_grader: Remove show lock icon preference. 2023-02-17 11:34:09 +08:00
Ilya Tregubov 5eff5df97b MDL-76146 gradereport_grader: Remove show show/hide icon preference
Since we move those icons to actions menu we don't need this pref.
2023-02-17 11:34:09 +08:00
Ilya Tregubov 29c220583f MDL-76146 gradereport_grader: Move action icons to action menu. 2023-02-17 11:34:09 +08:00
Ilya Tregubov 149805bc78 MDL-76146 gradereport_grader: Code style fixes. 2023-02-17 11:34:08 +08:00
Ilya Tregubov 7cff9f25c5 MDL-76146 gradereport_grader: Remove non used files.
Seems it should have been deprecated long time ago.
2023-02-17 11:34:08 +08:00
Ilya Tregubov 67f2669510 MDL-76146 gradereport_grader: Deprecate AJAX grading interface.
Its not stable and not consistent.
2023-02-17 11:34:08 +08:00
Ilya Tregubov a335d50daa MDL-76146 gradereport_grader: Deprecate quick feedback. 2023-02-17 11:34:08 +08:00
Ilya Tregubov 8503f2cfd8 weekly release 4.2dev 2023-02-17 09:12:15 +08:00
Ilya Tregubov d0643a7f79 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-02-17 09:12:12 +08:00
Simey Lameze 3fa6293426 MDL-77285 behat: change window size to large to prevent error 2023-02-17 08:43:34 +08:00
AMOS bot 384cbde2c8 Automatically generated installer lang files 2023-02-17 00:07:56 +00:00
Paul Holden b3a50f4a82 MDL-76815 reportbuilder: avoid duplication getting audience component.
The component the audience belongs to is used by the cards exporter
for rendering the editing interface. Avoid duplication in determining
this value by defining appropriate method in the base class.
2023-02-16 12:15:52 +00:00
Paul Holden 7c432c0ffb MDL-77020 behat: refer to search input fields by name/role.
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-02-16 10:56:28 +00:00
Audun Jørstad Lillekjendlie 494abd821b MDL-77020 core: Include a unique id in the search input field id 2023-02-16 10:19:14 +00:00
Andrew Nicols 4a5cf23d07 Merge branch 'MDL-75578-master' of https://github.com/mackensen/moodle 2023-02-16 12:01:08 +08:00
Jun Pataleta 3ed2b90708 Merge branch 'MDL-72182' of https://github.com/paulholden/moodle 2023-02-16 11:58:59 +08:00
Andrew Nicols 82bdffdf3e Merge branch 'MDL-77145-master' of https://github.com/davewoloszyn/moodle 2023-02-16 11:56:28 +08:00
Andrew Nicols 3eed2c7914 Merge branch 'MDL-76222' of https://github.com/paulholden/moodle 2023-02-16 11:53:55 +08:00
Andrew Nicols 55574803c1 Merge branch 'MDL-77102' of https://github.com/paulholden/moodle 2023-02-16 11:50:54 +08:00
Jun Pataleta e6343d70fd Merge branch 'MDL-76584' of https://github.com/paulholden/moodle 2023-02-16 11:49:21 +08:00
Andrew Nicols bea9ec6435 Merge branch 'MDL-77207-master' of https://github.com/meirzamoodle/moodle 2023-02-16 11:38:19 +08:00
Andrew Nicols 4fa300b78f Merge branch 'MDL-76415-master' of https://github.com/meirzamoodle/moodle 2023-02-16 11:31:42 +08:00
Andrew Nicols 6b05cf75a8 Merge branch 'MDL-76582-master' of https://github.com/NashTechOpenUniversity/moodle 2023-02-16 11:25:11 +08:00
Andrew Nicols 18073fe93b Merge branch 'MDL-74698' of https://github.com/jonof/moodle 2023-02-16 11:06:33 +08:00
Ilya Tregubov 26af3bc26e MDL-76313 forum: code style changes. 2023-02-16 10:59:55 +08:00
Ilya Tregubov f85505169b Merge branch '76313-forum-improve-accessibility-master' of https://github.com/DSI-Universite-Rennes2/moodle 2023-02-16 10:59:32 +08:00
Andrew Nicols 6d31626130 Merge branch 'MDL-76791-master' of https://github.com/sammarshallou/moodle 2023-02-16 10:53:25 +08:00
Ilya Tregubov 2e9025e90d MDL-75379 core: Code style changes. 2023-02-16 10:49:24 +08:00
Ilya Tregubov 0c93d7654d Merge branch 'MDL-75379' of https://github.com/larsbonczek/moodle 2023-02-16 10:48:49 +08:00
Andrew Nicols 892d75be7c Merge branch 'MDL-76878' of https://github.com/paulholden/moodle 2023-02-16 10:42:37 +08:00
Ilya Tregubov a5c00c17f9 Merge branch 'MDL-73519-master' of https://github.com/meirzamoodle/moodle 2023-02-16 09:30:21 +08:00
Andrew Nicols 124e1462bc MDL-77250 editor_tinymce: set base URL and URI 2023-02-16 08:32:41 +08:00
Paul Holden 9074c28699 Merge branch 'MDL-77086-master' of https://github.com/sarjona/moodle 2023-02-15 16:21:48 +00:00
Paul Holden 12229dd389 Merge branch 'MDL-77009-master' of https://github.com/andrewnicols/moodle 2023-02-15 15:51:06 +00:00
Andrew Nicols ffe97712e5 Merge branch 'MDL-76413-master' of https://github.com/raortegar/moodle 2023-02-15 23:38:34 +08:00
Andrew Nicols 3db03d69b5 Merge branch 'MDL-76478-password-unmask' of https://github.com/brendanheywood/moodle 2023-02-15 23:07:23 +08:00
Andrew Nicols f8f4677592 Merge branch 'MDL-76948' of https://github.com/larsbonczek/moodle 2023-02-15 23:01:04 +08:00
Andrew Nicols f60c946408 Merge branch 'MDL-73317-master' of https://github.com/matthewhilton/moodle 2023-02-15 22:56:35 +08:00
Paul Holden 77c4493a11 Merge branch 'MDL-77147' of https://github.com/timhunt/moodle 2023-02-15 11:49:21 +00:00
raortegar a03e6363de MDL-76412 general: Fixed PHP 8.2 utf8_encode deprecations 2023-02-15 10:27:38 +01:00
raortegar f6608a7e32 MDL-76412 lib: Fixed PHP 8.2 utf8_encode deprecations in phpxmlrpc 2023-02-15 10:27:38 +01:00
raortegar 87f235e0bb MDL-76412 lib: Fixed PHP 8.2 utf8_encode deprecations in horde 2023-02-15 10:27:33 +01:00
raortegar dc51096889 MDL-76412 lib: Fixed PHP 8.2 utf8_encode deprecations tinymce 2023-02-15 09:56:40 +01:00
Ilya Tregubov d54a1d78f1 Merge branch 'MDL-75230-master' of https://github.com/andelacruz/moodle 2023-02-15 16:12:19 +08:00
Jun Pataleta 9b4e8fa082 Merge branch 'MDL-77171-master' of https://github.com/andrewnicols/moodle 2023-02-15 11:22:56 +08:00
Andrew Nicols 0035504108 Merge branch 'MDL-77241' of https://github.com/paulholden/moodle 2023-02-15 11:14:26 +08:00
Jun Pataleta 215f4b5893 Merge branch 'MDL-77156-master' of https://github.com/lucaboesch/moodle 2023-02-15 11:12:17 +08:00
Jun Pataleta c02a4d0511 Merge branch 'MDL-77212' of https://github.com/paulholden/moodle 2023-02-15 11:09:19 +08:00
Jun Pataleta 98055a3468 Merge branch 'MDL-77223' of https://github.com/roland04/moodle 2023-02-15 11:07:16 +08:00
Jun Pataleta 03128a758e Merge branch 'MDL-77201' of https://github.com/paulholden/moodle 2023-02-15 11:05:39 +08:00
AMOS bot 5d4ee19d43 Automatically generated installer lang files 2023-02-15 00:07:56 +00:00
Paul Holden a309d643ab Merge branch 'MDL-77140-master' of https://github.com/snake/moodle 2023-02-14 15:51:32 +00:00
Paul Holden ca77e6a192 Merge branch 'MDL-75454-master' of https://github.com/davewoloszyn/moodle 2023-02-14 15:05:58 +00:00
Paul Holden 34e7f27664 MDL-77241 course: optional chaining safety for section toggles. 2023-02-14 12:51:08 +00:00
Paul Holden 79b12bc335 Merge branch 'MDL-63608' of https://github.com/AnupamaSarjoshi/moodle 2023-02-14 11:59:50 +00:00
Paul Holden 650b6caf83 MDL-77201 reportbuilder: pass current aggregation to column callbacks. 2023-02-14 11:03:03 +00:00
Paul Holden fe30100f98 Merge branch 'MDL-73937' of https://github.com/ssj365/moodle 2023-02-14 09:43:10 +00:00
Ilya Tregubov c6493c7d3e Merge branch 'MDL-76947-master' of https://github.com/davewoloszyn/moodle 2023-02-14 13:52:34 +08:00
Ilya Tregubov 0140a3cc6f Merge branch 'MDL-76620-master' of https://github.com/call-learning/moodle 2023-02-14 13:25:54 +08:00
David Woloszyn 02418cc093 MDL-75454 cache: Reduced exposure of sesskey param 2023-02-14 11:25:49 +11:00
Shamiso.Jaravaza 1054a794d6 MDL-73937 mod_bigbluebuttonbn: Remove lockedlayout 2023-02-13 15:24:35 -07:00
Tim Hunt b7a67f8896 MDL-77210 quiz: fix regrade for attempts with redone questions 2023-02-13 16:55:52 +00:00
Mikel Martín 96215abdc8 MDL-77223 reportbuilder: Fix first report column as integer 2023-02-13 16:15:38 +01:00
Meirza 5265300706 MDL-76415 report_eventlist: Fixed str interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:47 +07:00
Meirza 2a33c2736a MDL-76415 core_privacy: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:47 +07:00
Meirza 1c218880a9 MDL-76415 portfolio: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:47 +07:00
Meirza 1e8ed4e305 MDL-76415 mod_forum: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:47 +07:00
Meirza 3c0fa9b9cb MDL-76415 assignfeedback_editpdf: Fixed str interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza d8474a647a MDL-76415 gradereport_singleview: Fixed str interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza e2cd808b34 MDL-76415 core: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza 6b02417e8c MDL-76415 core_course: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza 113c78a110 MDL-76415 tool_componentlibrary: Fixed str interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza 90e94a3498 MDL-76415 blocks: Fixed ${var} string interpolation deprecations.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza e9822519eb MDL-76415 lib: Fixed ${} string interpolation deprecations in phpxmlrpc
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza 3f850a8a4a MDL-76415 lib: Fixed ${var} str interpolation deprecations in php-jwt.
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Meirza 89131a73c2 MDL-76415 lib: Fixed ${var} string interpolation deprecations in php-ml
Since PHP 8.2, placing the dollar sign outside the curly brace is deprecated when
the expression inside the braces resolves to a variable or an expression.
2023-02-13 19:51:46 +07:00
Lars Bonczek 0a704a6b03 MDL-75379 core: Use non-static template cache 2023-02-13 12:33:33 +01:00
Paul Holden 2f73d7a232 MDL-76611 cohort: prevent duplicate idnumber in inplace editable. 2023-02-13 10:33:23 +00:00
raortegar 3a673213fb MDL-76413 lib: Fixed PHP 8.2 callable deprecations in evalmath 2023-02-13 10:36:46 +01:00
raortegar d7fd2c788a MDL-76413 lib: Fixed PHP 8.2 callable deprecations in minify 2023-02-13 10:35:38 +01:00
raortegar 0e715b0c52 MDL-76413 lib: Fixed PHP 8.2 callable deprecations in adodb 2023-02-13 10:35:38 +01:00
raortegar 08e0045c03 MDL-76413 general: Fixed PHP 8.2 Callable deprecations 2023-02-13 10:35:38 +01:00
Paul Holden e5f01178a6 MDL-77212 tiny_accessibilitychecker: remove unused lang string fetch. 2023-02-13 08:48:51 +00:00
Sara Arjona 597564d7b4 MDL-77086 badges: Improve debugging
Display more information, like the status error, when the badge can't
be sent to the backpack.
2023-02-13 08:40:45 +01:00
Ilya Tregubov c11fac04c1 Merge branch 'MDL-77189-master' of https://github.com/lameze/moodle 2023-02-13 13:42:58 +08:00
Simey Lameze 0876de8868 MDL-77189 behat: basic coverage for wikimedia repository 2023-02-13 13:12:00 +08:00
Jun Pataleta d1d808b5b4 Merge branch '76314-forum-fix-forumtype-and-groupmode-validation-master' of https://github.com/DSI-Universite-Rennes2/moodle 2023-02-13 11:39:22 +08:00
Jun Pataleta 099508cce7 Merge branch '76312-forum-subscriber-sorting-master' of https://github.com/DSI-Universite-Rennes2/moodle 2023-02-13 11:27:17 +08:00
Jun Pataleta db79d463b6 Merge branch 'MDL-62839' of https://github.com/JasonEverling/moodle 2023-02-13 10:05:58 +08:00
Meirza b77041ff28 MDL-77207 core: PHP 8.2 makes exported class name fully qualified. 2023-02-11 16:12:37 +07:00
Anupama Sarjoshi 05d51c15ca MDL-63608 quiz: Fix Access order when manually grading quizzes
Changes done to fix access order of attempts that need manual grading.
Changed button text from 'Save and go to next page' to 'Save and show next' to improve UI.
2023-02-10 17:42:10 +00:00
Luca Bösch d19685ba69 MDL-77156 enrol_self: deprecated trim() of null in PHP 8.1 2023-02-10 18:20:08 +01:00
Paul Holden 1ea152c99a weekly release 4.2dev 2023-02-10 13:47:28 +00:00
Paul Holden 9ca082a5b0 NOBUG: Fixed SVG browser compatibility 2023-02-10 13:47:26 +00:00
Paul Holden 77c7943c0a Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2023-02-10 13:47:26 +00:00
Paul Holden 889f35fc26 MDL-69838 core: final removal of deprecated 310 methods. 2023-02-10 11:20:00 +00:00
Paul Holden 5021b3a5b5 MDL-68776 search: remove support for optional add_documents return.
All six returned array elements must now be present.
2023-02-10 10:41:50 +00:00
Julien Boulen 9f3baf8c4f MDL-76314 forum: add form check to prevent combining wrong parameters
Form validation prevents combining the forum type "single discussion" and the group mode "separate groups".
2023-02-10 11:07:21 +01:00
Julien Boulen 0b1e4b57b6 MDL-76312 forum: sort subscribers list by fullname 2023-02-10 10:26:31 +01:00
Jun Pataleta 36564d26ba Merge branch 'MDL-74272-fix' of https://github.com/sarjona/moodle 2023-02-10 16:52:36 +08:00
Sara Arjona ad1a9e85de MDL-74272 behat: Fix issue with headless
It seems unrelated to this patch... But git bisect pointed it here.
2023-02-10 09:42:53 +01:00
Jake Dallimore 7e6f706717 MDL-77140 mod_lti: fix content item return for new TinyMCE versions 2023-02-10 10:11:34 +08:00
David Woloszyn 694b3ef878 MDL-77145 enrol: Removed course shortname from unenrolme string 2023-02-10 11:10:15 +11:00
Jason A Everling 6f4011db33 MDL-62839 mod_lti: change instructorchoiceacceptgrades default value
update mod_lti behat test: renametool.feature, added  "Accept grades from the tool" to "1"
2023-02-09 10:22:17 -06:00
Paul Holden 6f4675e043 MDL-76222 tool_customlang: non-translatable export CLI filename.
This matches the name used for manual (via UI) language export.
2023-02-09 14:18:05 +00:00
Andrew Nicols ea1f5eba27 Merge branch 'MDL-76904-master' of https://github.com/NashTechOpenUniversity/moodle 2023-02-09 12:04:21 +08:00
Andrew Nicols 219d15895e Merge branch 'MDL-74755' of https://github.com/paulholden/moodle 2023-02-09 11:44:16 +08:00
Jun Pataleta 6845a7f74f Merge branch 'MDL-77052-master' of https://github.com/Utdanningsdirektoratet/moodle 2023-02-09 11:27:43 +08:00
Jun Pataleta 5ab615c610 Merge branch 'MDL-77161-master' of https://github.com/andrewnicols/moodle 2023-02-09 11:18:24 +08:00
Andrew Nicols 8d35d59bf3 Merge branch 'MDL-76354' of https://github.com/paulholden/moodle 2023-02-09 10:58:29 +08:00
Jun Pataleta c909797ec1 Merge branch 'MDL-77007-master' of https://github.com/andrewnicols/moodle 2023-02-09 10:52:55 +08:00
Andrew Nicols c7a1f4c748 Merge branch 'MDL-77018' of https://github.com/timhunt/moodle 2023-02-09 10:50:58 +08:00
Andrew Nicols 2de031b74c Merge branch 'MDL-76066-master' of https://github.com/aanabit/moodle 2023-02-09 10:27:00 +08:00
Andrew Nicols 9890d88107 Merge branch 'MDL-77057' of https://github.com/paulholden/moodle 2023-02-09 10:19:22 +08:00
Andrew Nicols 43962ec9ce Merge branch 'MDL-72559-master' of https://github.com/keevan/moodle 2023-02-09 10:17:12 +08:00
Matthew Hilton 5ea4d886ee MDL-73317 assign: Move useridlist cache construction
Move the construction of the useridlist $SESSION cache to when a key
is requested.

This stops the writing of $SESSION when backing up
or restoring mod_assign instances, which is neccessary since the
backup and restore scripts close the session when processing.
2023-02-09 12:03:49 +10:00
Matthew Hilton f106babf53 MDL-73317 search: Close session later in script
The session write_close was moved to the earliest point in the script
that does not modify the session. This is currently always after
$OUTPUT->header()
2023-02-09 12:03:49 +10:00
Matthew Hilton 49c4cfb2d5 MDL-73317 restore: Reset navcache before closing session
As part of a restore, the session is closed early so it does not
interrupt the users session during the restore.

Currently the restore controller rebuilds the course caches while
restoring. This inadvertently resets the navcache, which would edit the
session despite it being closed.

Because this tracker now adds logging for this behaviour, it means
restoring now outputs a debugging message as a warning.

To resolve the debugging message, the navcache is now reset just before
closing the session. This is allowed, since the caches are designed
to be volatile.
2023-02-09 12:03:49 +10:00
Matthew Hilton 863bad8d7e MDL-73317 report_participation: Close session later in script
The script has been reorganised so that it closes the session as early
as possible, without causing session changes after close being logged.

In this case, after the table has been output it is OK to close the
session.
2023-02-09 12:03:49 +10:00
Matthew Hilton 4faa3204d6 MDL-73317 session: Log extra details for cachestore changes
More visibility depth is required for cachestore changes since they
are usually multi dimensional arrays.
2023-02-09 12:03:49 +10:00
Matthew Hilton 9c8d8502c0 MDL-73317 session: Log session changes after close
A snapshot of the session is now taken when write_close is called.
The session at shutdown is then compared to the snapshot. If changes
are detected, they are logged. This aids developers in seeing if
early session closes may be having unintended consequences.
2023-02-09 12:03:49 +10:00
Matthew Hilton 95077da502 MDL-73317 session: Improve session diff detection
Previously, newly added keys to the session were not detected. Objects
with the same properties were also incorrectly reported as different.

This commit improves this, and updates the unit tests to reflect the
new functionality.
2023-02-09 12:03:49 +10:00
Andrew Nicols cfb728bebb Merge branch 'MDL-76499-master' of https://github.com/andelacruz/moodle 2023-02-09 09:52:53 +08:00
Andrew Nicols 9dca529997 Merge branch 'MDL-70586-master' of https://github.com/sarjona/moodle 2023-02-09 09:40:34 +08:00
Andrew Nicols d56df7c204 Merge branch 'MDL-76912' of https://github.com/paulholden/moodle 2023-02-09 09:37:00 +08:00
Andrew Nicols c9956b2c94 Merge branch 'MDL-77177' of https://github.com/paulholden/moodle 2023-02-09 07:11:32 +08:00
Paul Holden 29c13cc54b Merge branch 'MDL-76672-master' of https://github.com/Utdanningsdirektoratet/moodle 2023-02-08 14:57:30 +00:00
Jun Pataleta 73cd0ff616 Merge branch 'MDL-74272-master' of https://github.com/sarjona/moodle 2023-02-08 22:25:18 +08:00
Paul Holden f85f441914 Merge branch 'MDL-76542-master' of https://github.com/lameze/moodle 2023-02-08 14:22:10 +00:00
Laurent David 00eecda571 MDL-76620 mod_bigbluebuttonbn: Fix guest behat test
* Refactor guest_access.feature behat test
2023-02-08 14:27:47 +01:00
Laurent David 8fcf662484 MDL-76620 mod_bigbluebuttonbn: Fix guest access with forcelogin
*With "forcelogin" setting turned on, the new external guest
 links in the bigbluebutton plugin do not work but show the login screen instead
2023-02-08 14:27:47 +01:00
Sara Arjona 72f75ef344 MDL-74272 theme_boost: Coding style improvements 2023-02-08 13:05:26 +01:00
Sara Arjona 5d7d947553 MDL-74272 theme_boost: Remove plugin name on course page
In 4.0, the plugin name was added above their name. Based on the community
feedback and the research done by the UX team, this needs to be removed.
This commit removes the activity name when edit mode is disabled.
2023-02-08 13:04:31 +01:00
Paul Holden ef47376a37 Merge branch 'MDL-73692-master-Add-support-for-missing-timestamps-to-rss-block' of https://github.com/melanietreitinger/moodle 2023-02-08 11:22:08 +00:00
Melanie Treitinger e5709fc588 MDL-73692 blocks: Add support for missing timestamps to rss block. 2023-02-08 11:20:48 +01:00
Paul Holden a09dc53828 MDL-77177 mod_data: re-factor internal method argument order.
We cannot have required method parameters after optional, it doesn't
make sense. Also it causes deprecation notices in PHP8.1.
2023-02-08 09:57:52 +00:00
Jun Pataleta 65228171e5 Merge branch 'MDL-74905' of https://github.com/stronk7/moodle 2023-02-08 17:19:38 +08:00
Angelia Dela Cruz 367027f979 MDL-75230 behat: Lesson Behat tests optimised
Replace steps that manually add Lesson instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2023-02-08 14:20:21 +08:00
Simey Lameze 64799f9ace MDL-76542 behat: add step to go to user edit page directly 2023-02-08 12:22:29 +08:00
Simey Lameze d991b12d15 MDL-76542 behat: create custom profile fields using data generators
This commit also adds a new test to verify the custom profile fields
works using the user interface.
2023-02-08 12:12:08 +08:00
Jun Pataleta 8b3e36f8a8 Merge branch 'MDL-76755-master' of https://github.com/davewoloszyn/moodle 2023-02-08 11:34:21 +08:00
Paul Holden 4402b0b677 MDL-77154 course: access checks in course format fragment callbacks. 2023-02-08 11:11:00 +08:00
Andrew Nicols 01da499897 Merge branch 'MDL-76418-master' of https://github.com/srobotta/moodle 2023-02-08 08:52:59 +08:00
Stephan Robotta a8de5c5002 MDL-76418 course: section action menu item to show permlink to section 2023-02-07 17:56:46 +01:00
Andrew Nicols 41ccc8acb9 MDL-77171 core: Remove legacy tooltip/popuphelp YUI mods 2023-02-07 23:52:01 +08:00
Paul Holden 6f81371f7a Merge branch 'MDL-77112-master' of https://github.com/lucaboesch/moodle 2023-02-07 15:18:52 +00:00
Jun Pataleta f9ced0f475 Merge branch 'MDL-76901' of https://github.com/paulholden/moodle 2023-02-07 22:56:20 +08:00
Jun Pataleta 9bba8650c0 Merge branch 'MDL-76569-master' of https://github.com/andrewnicols/moodle 2023-02-07 22:54:12 +08:00
Andrew Nicols 7bf57d9850 MDL-77161 cachestore_memcached: Remove from core 2023-02-07 21:42:50 +08:00
Paul Holden bfb5197738 MDL-76901 reportbuilder: cache custom report element persistents.
During request lifecycle ensure that column, filter and condition
persistents are only loaded a single time to prevent additional
database reads.

Provide invalidation method, used by the report helpers, to ensure
that the persistents are re-loaded appropriately.

Co-authored-by: Marina Glancy <marina@moodle.com>
2023-02-07 13:10:14 +00:00
Lars Bonczek 9b7c8f54ab MDL-74433 mod_assign: Fix logging of submission removal 2023-02-07 12:33:49 +01:00
Jun Pataleta 34b1252fbf Merge branch 'MDL-76089-master' of https://github.com/junpataleta/moodle 2023-02-07 15:35:46 +08:00
Marina Glancy e6d6224271 MDL-76089 lib: upgrade horde library 2023-02-07 15:21:05 +08:00
Andrew Nicols 685d9c277f Merge branch 'MDL-77023' of https://github.com/paulholden/moodle 2023-02-07 12:47:58 +08:00
Andrew Nicols c7ac3be265 Merge branch 'MDL-77123-master' of https://github.com/cameron1729/moodle 2023-02-07 12:38:28 +08:00
Andrew Nicols 94cb2bbc60 Merge branch 'mdl-76729_master' of https://github.com/james-cnz/moodle 2023-02-07 12:36:52 +08:00
Andrew Nicols bff31d527c Merge branch 'MDL-75946-master' of https://github.com/davewoloszyn/moodle 2023-02-07 10:38:52 +08:00
Andrew Nicols 81f9751c9e Merge branch 'MDL-76691-master' of https://github.com/sarjona/moodle 2023-02-07 10:36:40 +08:00
Sara Arjona 876c3a39d5 MDL-76691 core_h5p: Add editor lib changes after upgrading it 2023-02-06 16:48:08 +01:00
Sara Arjona 0929df7d35 MDL-76691 core_h5p: Upgrade editor lib to moodle-1.23 2023-02-06 16:48:08 +01:00
Sara Arjona ca37dd3baf MDL-76691 core_h5p: Add core lib changes after upgrading it
Apart from applying the points described in readme_moodle.txt, the following
changes have been done too:

- The parameter $folderName from the method libraryToString() have been removed
and a new method, libraryToFolderName() has been added to the H5PCore API.
References to libraryToString() with the $folderName set to true have been
replaced to the new method.
- missing-main-library has been added and replaces in some cases to
missing-required-library.
- The framework saveLibraryData method must be called before saveLibrary
(h5p.classes.php file has been patched to leave the original order because
libraryid is required to save the itemid).
- The getLibraryId() method from H5PCore has been rewritten to use MUC, in
order to avoid PHPUnit failures.
2023-02-06 16:48:07 +01:00
Sara Arjona d18d90602b MDL-76691 core_h5p: Upgrade core lib to moodle-1.23 2023-02-06 16:48:07 +01:00
sam marshall 3353aecc8b MDL-76791 core_cache: Locking breaks for multiple-identifiers store
Cache locking fails if the cache store supports multiple identifiers
(in core, the only two which do are cachestore_static and
cachestore_mongodb, so this is unlikely to cause severe problems).
2023-02-06 15:46:17 +00:00
Sara Arjona e1ac3833f5 MDL-70586 mod_feedback: Hide the Preview questions icon for students
The Preview questions icon shouldn't be displayed unless the user can
edit the feedback or access to the reports; otherwise, it's causing
confusion (especially when the feedback is not opened).
2023-02-06 16:33:09 +01:00
Jun Pataleta 08a061ad5d Merge branch 'MDL-76432-master-v02' of https://github.com/ferranrecio/moodle 2023-02-06 22:30:40 +08:00
Paul Holden f37b990a7a Merge branch 'MDL-77078-master' of https://github.com/andelacruz/moodle 2023-02-06 13:33:01 +00:00
Andrew Nicols c4fceb6237 Merge branch 'MDL-75688-master' of https://github.com/call-learning/moodle 2023-02-06 21:18:06 +08:00
Andrew Nicols e5c8a01996 Merge branch 'MDL-77042' of https://github.com/paulholden/moodle 2023-02-06 21:15:16 +08:00
Audun Jørstad Lillekjendlie 4b5ba65000 MDL-76672 block_myoverview: add role attribute for filter div 2023-02-06 14:05:54 +01:00
Tim Hunt 9091406f71 MDL-77147 question admin: optimised the query in admin/qtypes.php 2023-02-06 12:46:22 +00:00
Audun Jørstad Lillekjendlie 316c52d150 MDL-77052 block_recentlyaccesseditems: HTML role attribute
HTML elements with role=list must contain children with role=listitem
2023-02-06 13:45:17 +01:00
Ferran Recio 1113f8328e MDL-76432 core_courseformat: migrate file drag and drop
Replace the old course/dragdrop.js file (which was not even minimised)
to AMD modules and integrate them to the new reactive course editor.
From now on, a file can be drop over any course section, no matter if it
is in the course content or in the course index. It will also start
using the new process monitor to show the uploading state to the user.
2023-02-06 12:59:25 +01:00
Ferran Recio a3f116367e MDL-76432 core_courseformat: add file_handlers webservice
In 4.0- version each time the course page is loaded the file handlers
are calculate din the backend and injected directly into JS using a json
encapsulation. With this new webservice the handlers can be obtained
directly from the frontend when needed.
2023-02-06 12:59:25 +01:00
Ferran Recio e359b9889a MDL-76432 core: reactive drapdrop file support
This commit adds all the necessary CSS and logic to handle file dropping
into a reactive compoment. From now on, a reactive application can
handle both element drag&drop and file drop easily.
2023-02-06 12:58:44 +01:00
Ferran Recio 2846751f2b MDL-76432 core: add process monitor UI component
Create a new UI compoment to queue, execute and display errors on batch
processing. The first use of this component is when the teacher drops a
file into the course page.
2023-02-06 12:58:43 +01:00
Ferran Recio ff5f669cf8 MDL-76432 aria: add getFirst to nomalise
Half of the times the normalise module is used is to get a single
element. However, because jQuery elements can contain multiple elements
the getList is always an array. Due to this in many ocasions we repeat
the getList(VAR)[0] line instead of having a more readable getFirst
method which only implies a couple of lines in the original code.
2023-02-06 12:58:43 +01:00
Paul Holden 21bd0c3430 Merge branch 'MDL-76370-publicpaths-proxying' of https://github.com/jaydn/moodle 2023-02-06 11:02:41 +00:00
Marina Glancy e861734286 MDL-72182 my: tests for resetting dashboard
Co-authored-by: Paul Holden <paulh@moodle.com>
2023-02-06 09:34:18 +00:00
Paul Holden b31b37aaae MDL-72182 user: cross-DB compatibility for getting user pages/blocks. 2023-02-06 09:34:18 +00:00
Paul Holden c766043420 MDL-74755 block_accessreview: stricter checking of enabled config. 2023-02-06 09:31:31 +00:00
Andrew Nicols 92d04b9e7b Merge branch 'MDL-77091' of https://github.com/paulholden/moodle 2023-02-06 12:58:56 +08:00
Andrew Nicols 98b8ee2e1e Merge branch 'MDL-76783-master' of https://github.com/ferranrecio/moodle 2023-02-06 12:57:43 +08:00
Andrew Nicols eee93ead3a Merge branch 'master_MDL-77062' of https://github.com/guillogo/moodle 2023-02-06 12:56:48 +08:00
David Woloszyn 92facc90e2 MDL-76947 css: Fixed layout regression on dropdown menus 2023-02-06 15:11:04 +11:00
Angelia Dela Cruz 3d7fa69c02 MDL-77078 Behat: Coverage for assignment submission statement 2023-02-06 10:43:10 +08:00
AMOS bot 9445b9afd0 Automatically generated installer lang files 2023-02-06 00:07:44 +00:00
Anastasios Bithas e12ab61deb MDL-73642 mod_assign: Disable draft option if submission already made 2023-02-04 18:40:07 +02:00
Andrew Nicols 6414935cca Merge branch 'MDL-76662' of https://github.com/paulholden/moodle 2023-02-04 21:37:23 +08:00
Eloy Lafuente (stronk7) 012a4c5cf8 MDL-74905 ci: travis and gha, raise to agreed requirements
Basically, we only need to change:
- PHP 8.0
- MySQL 8.0
- PostgreSQL 13

Also, remove any php-xmlrpc installation because they aren't
needed since Moodle 4.1.

Finally, ensure that we aren't using mysql bin logs ever, because
they are huge and can make the 1Gb tmpfs to become full. This is
specifically needed for MySQL 8.0, because it comes with bin logs
enabled by default.

We have forked the mysql-action to achieve that:

https://github.com/moodlehq/mysql-action

Worth blaming travis because, after PG 11 and 12 using port 5433,
now they are back (in PG 13) to port 5432. Surely there is some
logic behind the undocumented ping-pong but...
2023-02-03 19:48:02 +01:00
Eloy Lafuente (stronk7) fa269897c7 MDL-74905 upgrade: remove all the < 3.11.0 upgrade steps
Note that, despite the commit message, this is not possible. Moodle
3.11.0 (and 3.10.0) were developed in parallel with Moodle 4.0, and
when they were released, the master branch had already diverged, so
the master branch does not contain the comment lines:

"// Automatically generated Moodle v3.11.0 release upgrade line"

And they are needed to know which parts of the upgrade are safe to delete.

So we only proceed to delete all those steps from lib/db/upgrade.php
which version is known to be < 2021051708 (v3.11.8), master ones will
be, always bigger than that. We don't touch plugin upgrade scripts
because they may have different versions, not 100% matching the
2021051708 rule, so there will be an excess of steps there.

Note this is not a big problem, just a few more steps will be skipped and
that's all. Whenever we bump the Moodle requirements again (to Moodle
4.0 or up), the lines will be back and we'll be able to safely remove
all the steps before them. See previous Moodle requirements issues as
example.

The upgrade steps deleted by this commit weren't using any stuff from
upgradelib, tasks..., so there isn't anything else to be removed but
the core steps themselves.

Also includes an upgrade step to prevent upgrading from any
version < 2021051708 (v3.11.8) as anti-cheating measure.
2023-02-03 19:48:02 +01:00
Eloy Lafuente (stronk7) c66dc59131 MDL-74905 environment: Apply agreed changes:
- PHP 8.0 required.
- Moodle 3.11.8 required (first minor supporting PHP 8.0 officially).
- MySQL 8.0 required.
- MariaDB 10.6.7 required.
- PostgreSQL 13 required.
- php-sodium extension required.
- 64-bit PHP required.
2023-02-03 19:48:02 +01:00
Eloy Lafuente (stronk7) 6667366b54 MDL-74905 environment: 4.2 base information
This is a direct copy of the 4.1 information, to
have all the real changes under control in next commit(s).
2023-02-03 19:48:02 +01:00
Eloy Lafuente (stronk7) 93406bd4f1 MDL-74905 composer: Regenerate with php80 and requirements raised
Now that the required PHP version has been raised to php80, set
it in the composer.json file and regenerate everything, following
the instructions @ https://docs.moodle.org/dev/Composer .

The only changes, as agreed in the issue are:
- Raise min PHP version to 8.0 (from 7.4).
- Make the php-sodium extension required (was optional).
- Small behat/behat bump to 3.12.0 (from 3.11.0)
2023-02-03 19:48:02 +01:00
Paul Holden 44d140d20c Merge branch 'MDL-76869-master' of https://github.com/cameron1729/moodle 2023-02-03 14:58:24 +00:00
Paul Holden 85bb12214d Merge branch 'MDL-77090' of https://github.com/timhunt/moodle 2023-02-03 14:46:48 +00:00
Paul Holden fe6db3e3b2 Merge branch 'MDL-76447-master' of https://github.com/meirzamoodle/moodle 2023-02-03 14:31:38 +00:00
Ferran Recio 9930b7a2e6 MDL-76783 core_courseformat: add bulk editing interface 2023-02-03 13:39:22 +01:00
Ferran Recio c9a8713539 MDL-76783 core_courseformat: add bulk state data 2023-02-03 12:24:59 +01:00
Ferran Recio 986ab2b84a MDL-76783 core_courseformat: add bulk-hidden classes 2023-02-03 12:24:59 +01:00
Ferran Recio cb85359b14 MDL-76783 theme_boost: sticky footer js control 2023-02-03 12:24:53 +01:00
Luca Bösch dda015f855 MDL-77112 quiz: Align some elements in quiz reports better. 2023-02-03 11:52:44 +01:00
Jun Pataleta 0780e87f06 weekly release 4.2dev 2023-02-03 15:43:31 +08:00
Angelia Dela Cruz 09dd28488a MDL-76499 behat: Resource Behat tests optimised
Replace steps that manually add resource instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.

Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
2023-02-03 11:02:26 +08:00
David Woloszyn 4004fd2963 MDL-75946 lib_horde: Fixed deprecated FILTER_SANITIZE_STRING 2023-02-03 12:56:36 +11:00
David Woloszyn e4bbca0401 MDL-75946 core_h5p: Fixed deprecated FILTER_SANITIZE_STRING 2023-02-03 12:56:35 +11:00
Jonathon Fowler d9bc9af91a MDL-74698 backup: correctly restore course format options
Old-version backups (< 3.11.7, < 4.0.1) lose their course-level format
options when restoring into newer versions after the backup structure
was changed.

Also, course-level format options were not accurately restored against
the appropriate format type. And section-level format options were
redundantly stored at course-level and restored without mapping their
sectionids, thus creating lint.
2023-02-03 10:17:05 +10:00
Tim Hunt 484828957a MDL-77090 questions: regrade of interactive attempts lose tries count
The behaviour-specific data was getting corrupted when the regrade
recreated the first step, because $oldstep->get_behaviour_data() was
stripping off the leading '-' characters from the names, and they were
not being added back.
2023-02-02 14:34:19 +00:00
Cameron Ball 02af9bd120 MDL-77123 message_airnotifier: Don't test configured providers 2023-02-02 14:10:01 +08:00
Jun Pataleta 3f0b0dccb1 Merge branch 'MDL-72609-master' of https://github.com/andrewnicols/moodle 2023-02-02 12:41:16 +08:00
Andrew Nicols 537706353b Merge branch 'MDL-75870-master' of https://github.com/nwp90/moodle 2023-02-02 12:38:49 +08:00
Andrew Nicols 8aa7812ff8 MDL-75085 external: Whitespace fix 2023-02-02 12:38:46 +08:00
David Woloszyn 23318ebb5e MDL-76755 admin: Blocked hosts defaults improved 2023-02-02 15:16:17 +11:00
Andrew Nicols 7ceb00f887 Merge branch 'MDL-75085-master-4' of https://github.com/junpataleta/moodle 2023-02-02 12:02:26 +08:00
Andrew Nicols 8360ac66f3 Merge branch 'MDL-75830-master' of https://github.com/andelacruz/moodle 2023-02-02 11:55:10 +08:00
Andrew Nicols cc44a3eea5 Merge branch 'MDL-77024' of https://github.com/timhunt/moodle 2023-02-02 11:51:51 +08:00
Andrew Nicols 11d09ef410 Merge branch 'MDL-76675' of https://github.com/stronk7/moodle 2023-02-02 11:02:21 +08:00
Andrew Nicols ba4adc5321 Merge branch 'MDL-76591' of https://github.com/paulholden/moodle 2023-02-02 11:00:29 +08:00
Jun Pataleta 8b88c61b70 Merge branch 'MDL-69690-master' of https://github.com/ilyatregubov/moodle 2023-02-02 10:35:02 +08:00
Ilya Tregubov a67e5f5496 Merge branch 'MDL-77058' of https://github.com/dravek/moodle 2023-02-02 10:05:20 +08:00
Jun Pataleta de4a2a1b9e Merge branch 'MDL-77092-master' of https://github.com/sammarshallou/moodle 2023-02-02 09:57:13 +08:00
Andrew Nicols 929e5b4552 Merge branch 'MDL-75912-master' of https://github.com/andelacruz/moodle 2023-02-02 09:49:05 +08:00
Ilya Tregubov 9c7e11c996 Merge branch 'MDL-77079-master' of https://github.com/lameze/moodle 2023-02-02 09:13:48 +08:00
Jun Pataleta 60fe64d786 MDL-75085 core_external: Validate $required param
Make sure that the $required param for external_description and its
subclasses are either VALUE_DEFAULT, VALUE_REQUIRED, or VALUE_OPTIONAL.
2023-02-02 09:13:43 +08:00
Jun Pataleta 7a85d041d7 MDL-75085 core_external: Pass proper $required param value in tests 2023-02-02 09:08:29 +08:00
Jun Pataleta a85c424204 MDL-75085 external: Fix external_multiple_structure parameter passing
Some calls to the external_multiple_structure's constructor incorrectly
pass parameters where the value for the $description parameter is not
being passed. This results to invalid values being passed for the
$required parameter.
2023-02-02 09:08:29 +08:00
Angelia Dela Cruz 710607ce5f MDL-75830 behat: Book behat tests optimised
Replace steps that manually add Book instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
Additionally, performed Behat cleanup and optimisation to affected
files.
2023-02-02 09:08:09 +08:00
Andrew Nicols 2f2c587552 Merge branch 'MDL-77100' of https://github.com/paulholden/moodle 2023-02-02 08:30:02 +08:00
Andrew Nicols b3469566ae Merge branch 'MDL-77001' of https://github.com/paulholden/moodle 2023-02-02 08:26:54 +08:00
Andrew Nicols 44fd686a2f Merge branch 'MDL-77003' of https://github.com/paulholden/moodle 2023-02-02 08:19:45 +08:00
Andrew Nicols 8ec42cd259 Merge branch 'MDL-75345' of https://github.com/paulholden/moodle 2023-02-02 08:17:42 +08:00
Nick Phillips 1435abde89 MDL-75870 course: only section togglers to toggle sections 2023-02-02 11:37:29 +13:00
Paul Holden d22142f537 Merge branch 'MDL-76658-master' of https://github.com/andelacruz/moodle 2023-02-01 16:34:36 +00:00
Paul Holden 147c31800b MDL-75345 reportbuilder: improve course/user custom report tests.
Ensure column and filters provided by each source have sufficient
coverage. Re-factor individual entity/helper class tests to test
their own specific implementation only.

Remove now-defunct test fixtures.
2023-02-01 15:41:32 +00:00
Paul Holden 5b644bfd30 MDL-77091 reportbuilder: set base time in schedule test generator.
The base time allows for the setting of the "current time" for the
purposes of the schedule test against recurrence configuration.

We should ensure the generator method allows this property so that
it can be used when calculating the initial "next send time" of the
schedule upon creation (and avoiding excessive recursion when the
actual current time is used for the calculation).
2023-02-01 14:39:21 +00:00
Paul Holden 8011dc68c6 Merge branch 'MDL-76311-master' of https://github.com/meirzamoodle/moodle 2023-02-01 14:16:11 +00:00
Meirza f249a04e93 MDL-76311 user: redirect to proper URL if a new user creation cancelled 2023-02-01 20:12:41 +07:00
Meirza 3f7981d480 MDL-76447 editor_tiny: revert the z-index.
Nesting the dropdown menu inside the parent DOM makes the menu can display correctly
without changing the z-index.
2023-02-01 17:33:22 +07:00
Meirza 83b5089e54 MDL-76447 editor_tiny: Nest the dropdown menu in the parent DOM.
The TinyMCE menu has a significant issue with the Overflow style,
and the Boost theme heavily uses Overflow for drawer navigation.
Nest the dropdown menu container into the parent editor container makes it work correctly.

Co-authored-by: davewoloszyn <david.woloszyn@moodle.com>
Co-authored-by: xr0master <xr0master@gmail.com>
2023-02-01 17:33:18 +07:00
Paul Holden f256b82879 Merge branch 'MDL-73847' of https://github.com/jonof/moodle 2023-02-01 10:00:22 +00:00
Sara Arjona cfac887beb Merge branch 'MDL-76135-patch' of https://github.com/ilyatregubov/moodle 2023-02-01 10:13:12 +01:00
Ilya Tregubov f3168a1bc7 MDL-76135 core: Remove old http-message lib 2023-02-01 16:41:18 +08:00
Paul Holden 25a6675fcd MDL-77102 mod_wiki: remove deprecated mbstring overload checks. 2023-02-01 08:32:10 +00:00
Ilya Tregubov 939ef5197a Merge branch 'MDL-76135-master' of https://github.com/safatshahin/moodle 2023-02-01 15:47:12 +08:00
Jun Pataleta a41eee1ba4 Merge branch 'MDL-76985-master' of https://github.com/sh-csg/moodle 2023-02-01 14:12:05 +08:00
Ilya Tregubov e2f539df20 Merge branch 'MDL-76587-master' of https://github.com/lameze/moodle 2023-02-01 13:25:18 +08:00
Jun Pataleta 2147bd6951 MDL-75085 webservice: Fix parameter passed to external_format_value 2023-02-01 11:12:02 +08:00
Angelia Dela Cruz 854a357add MDL-75912 behat: Wiki Behat tests optimised
Behat cleanup and optimisation
2023-02-01 11:01:47 +08:00
Angelia Dela Cruz 77cb8e55e4 MDL-75912 behat: Wiki Behat tests now use generators
Replace steps that manually add Wiki instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2023-02-01 11:00:57 +08:00
Simey Lameze af00222947 MDL-77079 behat: use different step to validate presets table data 2023-02-01 09:01:56 +08:00
guillermogomez 43c64bc141 MDL-77062 reportbuilder: Add filters/conditions for completion entity
This commit will add missing fields as Time enrolled/started/reaggregated
in the filter/condition area for the completion entity when creating a course participants
as a report source in the Report Builder.
2023-01-31 18:37:44 -05:00
Paul Holden 0f58d46b05 MDL-77100 mod_data: replace calls to str_ends_with, fix assertions.
Calls to `str_ends_with` are polyfilled currently, as the method is
not present in PHP7.4 or earlier. We should avoid uses of it so as
to not trip up compatibility standard checkers.
2023-01-31 21:35:33 +00:00
Tim Hunt c60878c90d MDL-77094 quiz_statistics: improve efficiency of the recalculate task
quiz_settings::create() requires at least 3 DB queries, so the point is
that we can avoid doing that until after we have worked out if we need
to calculate statistics for this quiz.

Also, we order the list of quizzes to consier, to process the ones with
more recent attempts first.
2023-01-31 15:58:48 +00:00
Julien Boulen 07193bcb00 MDL-76945 theme: fix the rendering of arrows on dropdown variants 2023-01-31 15:17:15 +01:00
Andrew Nicols 2b6224a345 Merge branch 'MDL-75945-master' of https://github.com/meirzamoodle/moodle 2023-01-31 22:12:16 +08:00
sam marshall b639c1455a MDL-77092 Behat: Expand all fieldsets fails with single fieldset
The Behat step to expand all fieldsets did not work if the page
contains only one fieldset.
2023-01-31 13:56:04 +00:00
Andrew Nicols 58afba6d82 Merge branch 'MDL-77081' of https://github.com/paulholden/moodle 2023-01-31 21:43:01 +08:00
Angelia Dela Cruz 7bc1079332 MDL-76658 Behat: Coverage for course cohort enrolment groups
Co-authored-by: Simey Lameze <simey@moodle.com>
2023-01-31 21:18:31 +08:00
Paul Holden 16747048f3 MDL-77081 forms: PHP8.1 compatibility for group/textarea elements.
See related changes in b0a83aa7, we can no longer pass null values
to some string related methods.
2023-01-31 10:51:24 +00:00
Ilya Tregubov 2ed4132539 Merge branch 'MDL-77077-master' of https://github.com/snake/moodle 2023-01-31 18:13:10 +08:00
hieuvu 1912982e95 MDL-76904 question: Keep question highlight in url 2023-01-31 16:33:32 +07:00
Andrew Nicols 1f4794341b Merge branch 'MDL-75498-master' of https://github.com/ferranrecio/moodle 2023-01-31 15:13:33 +08:00
Simey Lameze f93b2f3992 MDL-76587 behat: make grading page wider to avoid 'out of bounds' fail
This is because on classic theme the navigation block pushes the content
to the right and once behat changes the grades the 'Save changes' button
is no longer visible.
2023-01-31 11:14:51 +08:00
Paul Holden 76327f04ac MDL-76591 comment: create test generators and Behat scenarios.
The added scenarios cover the management of comments: viewing,
filtering and deletion.
2023-01-30 16:00:25 +00:00
Paul Holden 35f3847064 MDL-76591 comment: implement new management interface elements.
Convert existing JS modules, call existing external service for
comment deletion.
2023-01-30 15:54:00 +00:00
Paul Holden 648b80c201 MDL-76591 comment: convert existing overview page to system report.
Re-use the entity definitions previously created in fdf2f8f3 for
custom reporting, to create a new system report class.
2023-01-30 15:53:59 +00:00
Charles Fulton 63305c402a MDL-75578 course: require course library to resolve namespace issues 2023-01-30 10:43:09 -05:00
Ferran Recio cde3565a67 MDL-75498 mod_data: add new tags to presets 2023-01-30 12:01:22 +01:00
Ferran Recio 0213df2f03 MDL-75498 mod_data: add extra tags to templates 2023-01-30 12:01:20 +01:00
Paul Holden 1d21409158 MDL-76912 libraries: upgrade to version 1.8.1 of loglevel. 2023-01-30 09:58:53 +00:00
Jake Dallimore 9981e1ec2e MDL-77077 mod_lti: Fix JWT signature verify when alg missing from JWKS
Infer the algorithm, where necessary, using a combination of JWT
headers and known valid LTI algorithms.
2023-01-30 16:44:23 +08:00
Andrew Nicols ce548692ac Merge branch 'MDL-77040' of https://github.com/paulholden/moodle 2023-01-30 12:22:28 +08:00
Andrew Nicols edd1fa9218 Merge branch 'MDL-76933' of https://github.com/paulholden/moodle 2023-01-30 11:25:27 +08:00
Andrew Nicols 9bdeb2c012 Merge branch 'MDL-76357-master' of https://github.com/aanabit/moodle 2023-01-30 11:20:32 +08:00
Safat e2d4a543b0 MDL-76135 core: Implement Guzzle cache middleware 2023-01-30 13:05:27 +11:00
Safat 59a9987719 MDL-76135 core: Add guzzle cache middleware 2023-01-30 13:05:27 +11:00
Safat 7c5363eed3 MDL-76135 core: Implement the Guzzle library in core
This commit will implement the Guzzle library in core
to make it usable in different locations.

Co-Authored-By: Andrew Nicols <andrew@nicols.co.uk>
Co-Authored-By: Safat Shahin <safat.shahin@moodle.com>
2023-01-30 13:05:27 +11:00
Andrew Nicols 7b150add44 MDL-76135 core: Import the Guzzle library
This commit will import the Guzzle library in
core. The imported libraries will be used in
the next commits to create an api for the http
client to be used in relevant locations.

Co-Authored-By: Andrew Nicols <andrew@nicols.co.uk>
Co-Authored-By: Safat Shahin <safat.shahin@moodle.com>
2023-01-30 13:05:27 +11:00
Tim Hunt a344e7a3b4 MDL-77018 qbank_statistics: only load stats for contexts that exist
Also, pre-load the contexts for efficiency.
2023-01-27 20:51:05 +00:00
David Matamoros cf86329c7a MDL-77058 reportbuilder: Fix for cohort null idnumber column 2023-01-27 13:53:44 +01:00
Paul Holden fdc9bd1a76 MDL-77057 group: format group names in module override pages. 2023-01-27 11:50:58 +00:00
Tim Hunt 34ca197526 MDL-77024 quiz: fix metatdata on log events
Some had the wrong edulevel or crud
2023-01-27 11:30:28 +00:00
Andrew Nicols f570647d67 Merge branch 'MDL-76562-master' of https://github.com/meirzamoodle/moodle 2023-01-27 13:13:23 +08:00
Andrew Nicols 7bf34d9982 Merge branch 'MDL-75978-master' of https://github.com/JBThong/moodle 2023-01-27 12:24:53 +08:00
Laurent David caecb565c8 MDL-75688 mod_bigbluebuttonbn: Add indexes to log table
* The compound index courseid,bigbluebuttonid is useful to add in order
to speed up some of the queries on the bigbluebuttonbn_logs table
2023-01-26 16:47:42 +01:00
Paul Holden 7f59718891 MDL-77040 core: assert types of returned Geoplugin data, not values.
The results we get from these tests are beyond our control, and are
unreliable for use in testing.

See also previous change 215cd2d8 in similar tests.
2023-01-26 13:24:00 +00:00
Eloy Lafuente (stronk7) 0cbf52d3f4 MDL-76675 date: Only test all TZ names with PHPUNIT_LONGTEST enabled
It happens often that some timezone is renamed, split, added to the
IANAs list of timezones (that, for PHP is kept updated by the
php-timezonedb PECL extension).

When the information coming from the extension changes, all the
PHPUnit jobs in the world start failing (that's when CIs update
their PHP images, when devs update their packages, ...).

So, what we are doing here is to move that test that check for
every single string existing to be run only when PHPUNIT_LONGTEST
is enabled. That way only places running all tests will run that
one. And every other run just will skip it.

This corresponds to point 1 & 2 of the issue, lower impact in general
and, still be able to enable the tests to run.
2023-01-26 14:18:29 +01:00
Paul Holden ebb277ecf5 MDL-76662 tool_log: correct supported reports test assertions. 2023-01-26 13:09:21 +00:00
Davo Smith b395c3f63b MDL-76938 backup: fix restore of comments linked to a course format 2023-01-26 12:31:13 +00:00
Amaia Anabitarte a58ea07a41 MDL-76357 theme: Make sticky footer more prominent 2023-01-26 13:11:18 +01:00
Sara Arjona 880462a168 weekly release 4.2dev 2023-01-26 09:59:06 +01:00
Paul Holden 723b01e416 MDL-77042 mod_data: fix empty/zero equality check for numeric field. 2023-01-25 16:57:58 +00:00
Jun Pataleta f15855ecd6 Merge branch 'MDL-76977' of https://github.com/paulholden/moodle 2023-01-25 16:10:28 +08:00
Jun Pataleta c0bdbf327c Merge branch 'MDL-77036-master' of https://github.com/lameze/moodle 2023-01-25 16:02:37 +08:00
Stefan Hanauska 4b5714fa6a MDL-76985 course: Redirect to moved section 2023-01-25 08:58:53 +01:00
Jun Pataleta 8c3cb3d17e Merge branch 'MDL-77027-master' of https://github.com/andrewnicols/moodle 2023-01-25 15:33:52 +08:00
Sara Arjona 47fd608156 Merge branch 'MDL-76968-master' of https://github.com/junpataleta/moodle 2023-01-25 08:22:23 +01:00
Simey Lameze 6510a7d9ba MDL-77036 core_iplookup: update test_ipv4 test expectations 2023-01-25 15:11:52 +08:00
Andrew Nicols 8fb8bfaf35 MDL-77007 auth: Remove auth-yui-passwordunmask
This was used as part of the auth_config.php configuration system for
the auth subsystem, which was deprecated in Moodle 3.3.

It has never had any other uses in core.

Whilst it would be ideal to deprecate it by replacing with an
alternative, it would be impossible to test.
2023-01-25 14:14:15 +08:00
Andrew Nicols 6a5512c999 MDL-77007 admin: Remove deprecated auth_config.php usage
This was deprecated in Moodle 3.3 and should now be removed.
2023-01-25 14:13:59 +08:00
Andrew Nicols a72168741c MDL-77027 webservice: Add missing class requires 2023-01-25 11:14:59 +08:00
Jun Pataleta f3c29eab3d Merge branch 'MDL-76967-master' of https://github.com/lucaboesch/moodle 2023-01-25 08:57:24 +08:00
Paul Holden ea0515758a MDL-77003 javascript: improve string helper JSON detection.
Changes in fbc2732d made the JS template string helper method
too strict in regards to what it considers a valid JSON object.

Co-authored-by: Mike Churchward <mike@brickfieldlabs.ie>
2023-01-24 22:14:12 +00:00
Paul Holden c4b07bdadf MDL-77023 javascript: always normalise component of lang strings.
Co-authored-by: David Matamoros <davidmc@moodle.com>
2023-01-24 16:29:22 +00:00
Jun Pataleta ce9f6db2ff Merge branch 'MDL-76899' of https://github.com/timhunt/moodle 2023-01-24 23:19:43 +08:00
Sara Arjona ae53d04144 Merge branch 'MDL-75337-master' of https://github.com/laurentdavid/moodle 2023-01-24 16:07:35 +01:00
Jun Pataleta ebbcfa9164 Merge branch 'MDL-76430-master' of https://github.com/ferranrecio/moodle 2023-01-24 21:03:28 +08:00
Ferran Recio d770ebd01b MDL-76430 core_courseformat: implement fragment to course format 2023-01-24 12:00:11 +01:00
Jun Pataleta e742e21800 Merge branch 'MDL-76639-master' of https://github.com/andelacruz/moodle 2023-01-24 18:59:38 +08:00
Jun Pataleta 5587484e3c Merge branch 'MDL-76652-master' of https://github.com/lameze/moodle 2023-01-24 18:45:46 +08:00
Jun Pataleta 29c59bab1f Merge branch 'MDL-76655-master' of https://github.com/andelacruz/moodle 2023-01-24 18:27:10 +08:00
Meirza bf3a9c3b3f MDL-75945 core: Convert a floating value to an integer.
In PHP 8.1, any implicit conversion of float to int, which leads to a loss in precision, is now deprecated.
To avoid the error warning, the code must explicitly convert a floating value to an integer.
2023-01-24 16:49:10 +07:00
Andrew Nicols b1f844750b MDL-77009 tool_monitor: Replace YUI dropdown with ESM version 2023-01-24 16:22:07 +08:00
Andrew Nicols 84929c01f7 MDL-77007 core_form: Remove deprecated moodle-form-passwordunmask 2023-01-24 15:08:50 +08:00
Jun Pataleta 9ed08abd3b Merge branch 'MDL-76973' of https://github.com/paulholden/moodle 2023-01-24 14:02:56 +08:00
Laurent David 9686196e91 MDL-75337 mod_data: Single button - mod_data changes
* Update mod_data module to use the new button style
2023-01-24 06:01:35 +01:00
Laurent David fc72a1d7b1 MDL-75337 core: Single button - core changes
* Change all core calls toward single_button to use single_button::BUTTON_PRIMARY
    when needed
2023-01-24 06:01:35 +01:00
Andrew Nicols ecc2a8775a Merge branch 'MDL-69164-master' of https://github.com/JBThong/moodle 2023-01-24 11:45:27 +08:00
Jun Pataleta da144479fb Merge branch 'MDL-76362-master-extra' of https://github.com/andrewnicols/moodle 2023-01-24 10:38:55 +08:00
Jun Pataleta bcfed4c920 Merge branch 'MDL-76987-master' of https://github.com/andrewnicols/moodle 2023-01-24 09:03:09 +08:00
Angelia Dela Cruz 2cd327b16f MDL-76655 behat: Coverage for workshop grading strategies 2023-01-24 08:48:08 +08:00
Paul Holden 363942cbb6 MDL-76354 competency: export user privacy data unconditionally.
We should ensure that any past competency data for a user is always
exported, regardless whether competencies are currently enabled.
2023-01-23 22:14:22 +00:00
Paul Holden 89be8b7c78 MDL-77001 tiny_autosave: use valid lang string during privacy export. 2023-01-23 22:05:45 +00:00
Amaia Anabitarte d4e66f1df5 MDL-76066 mod_data: Trigger field_deleted event when importing 2023-01-23 18:53:44 +01:00
Laurent David 377c962f11 MDL-75337 core: Single button - API changes
* Update component library for new features of single_button and modal
    * Update core_notification javascript
2023-01-23 13:45:21 +01:00
Andrew Nicols 5e33d57dbe MDL-76987 webservice: Correct namespace for external_api 2023-01-23 20:37:05 +08:00
Paul Holden 89db417402 MDL-76584 question: correct temporary questionid upgrade field.
Pass correct parameter/type in field constructor (`XMLDB_NOTNULL`)
for consistency. This corrects the definition and preserves the
truthyness of the value that was incorrectly passed previously.
2023-01-23 09:16:48 +00:00
Andrew Nicols fcad49b03b MDL-72609 core: Remove YUI from M.util.pendingJS 2023-01-23 15:02:55 +08:00
Andrew Nicols b8f6b7602b MDL-72609 core: Fix complete_js to be a list of strings 2023-01-23 15:02:55 +08:00
Andrew Nicols 116ddb8933 MDL-72609 behat: Rewrite core/pending to observe ES6 style
This commit makes the following changes:
* convert to use ES6 module format
* migrate from a jQuery Deferred to a native ES6 promise
* add a native-Promise-like instantiation

New uses are documented in appropriate jsdoc with examples.
2023-01-23 15:02:55 +08:00
Eloy Lafuente (stronk7) 7fa7d4dd2a MDL-76362 workshop: check for empty (null included) feedbackreviewer
As far as feedbackreviewer can be null, we cannot, since PHP 8.1
apply any string operation (trim, strlen...) on it, hence, checking
before applying.
2023-01-23 09:17:48 +08:00
Eloy Lafuente (stronk7) 240b193603 MDL-76362 enrol_lti: Prevent calling to DataConnector with null keys
While it could have been fixed in DataConnector (3rd part lib), better
prevent in our code to call to it with null keys.

Covered by unit tests.
2023-01-23 09:17:48 +08:00
Eloy Lafuente (stronk7) 4a76c772d7 MDL-76362 output: Preserve original behaviour for PHP 8.1
Whenever the page_requirements_manager::js_fix_url()
is called with null url, it must throw an exception and emit 0 warnings.

It's covered by an explicit test:

test_js_fix_url_coding_exception with data set "Provide a null argument"
2023-01-23 09:17:48 +08:00
Andrew Nicols 7000a99de3 MDL-76362 core: Coding style fixes 2023-01-23 09:15:55 +08:00
Andrew Nicols ce85ef1e49 MDL-76362 core_privacy: Shortcircuit URL rewriting on empty content 2023-01-23 09:15:55 +08:00
Andrew Nicols 5d3cb79f30 MDL-76362 core: Short circuit s() on empty values 2023-01-23 09:15:55 +08:00
Andrew Nicols 19bedb8eba MDL-76362 core: Short-circuit strip_querystring on empty values 2023-01-23 09:15:55 +08:00
Andrew Nicols b0aa0b63e0 MDL-76362 core_file: Check prefix exists before checking length 2023-01-23 09:15:55 +08:00
Andrew Nicols 93ab932211 MDL-76362 core: plugin names must be strings to be valid 2023-01-23 09:15:55 +08:00
Andrew Nicols e068f2284f MDL-76362 core: Update core_component plugin name tests 2023-01-23 09:15:55 +08:00
Andrew Nicols eceb3c49fd MDL-76362 core: Test coursealias before using 2023-01-23 09:15:55 +08:00
Andrew Nicols 6ae3f79c1e MDL-76362 h5p: Use string as default lang param 2023-01-23 09:15:55 +08:00
Andrew Nicols e76b1bcd5e MDL-76362 qtype_numerical: Fix bug in phpdoc 2023-01-23 09:15:54 +08:00
Andrew Nicols 771b49c9ac MDL-76362 qtype_calculated*: Address issues with null strings 2023-01-23 09:15:54 +08:00
Andrew Nicols b7710dbaf4 MDL-76362 qtype: Update formatting of qtype_calculated* upgradelib 2023-01-23 09:15:54 +08:00
Andrew Nicols b4103db72e MDL-76362 qtype_numerical: Support empty units for apply_units 2023-01-23 09:15:54 +08:00
Andrew Nicols 913430f144 MDL-76362 qtype_numeric: Refactor answer tests 2023-01-23 09:15:54 +08:00
Andrew Nicols 32b45433bb MDL-76362 question: Add test for number(null) 2023-01-23 09:15:54 +08:00
Andrew Nicols 5c2d98efcd MDL-76362 question: Refactor question number unit tests 2023-01-23 09:15:54 +08:00
Andrew Nicols ef09257dc1 MDL-76362 core: Use empty default string when getting prefs
The json_decode function does not accept a null, which is the
traditional default for get_user_preferences. By passing a default of
am empty string we avoid issues in PHP 8.1.
2023-01-23 09:15:54 +08:00
Marina Glancy b0a83aa7bd MDL-76362 various: Avoid passing nulls to functions that don't allow nulls
PHP 8.1 is more strict on the parameter type. Functions such as trim(), strlen(), str_replace(), etc
show notice when null is passed as an argument
2023-01-23 09:15:54 +08:00
Marina Glancy 491ed7b200 MDL-76362 mustache: Override parent method to avoid PHP notices
Parent method checks baseDir that is null in this case. This shows notices under PHP 8.1
2023-01-23 09:15:54 +08:00
Paul Holden 5414b82e6e MDL-76977 phpunit: ensure unique data provider keys in mustache test. 2023-01-20 17:19:16 +00:00
Sara Arjona 7c56b6900e Merge branch 'MDL-76942-master-2' of https://github.com/junpataleta/moodle 2023-01-20 16:20:09 +01:00
Sara Arjona 3c649386da Merge branch 'MDL-76139-master' of https://github.com/kevpercy/moodle 2023-01-20 16:11:54 +01:00
Jun Pataleta b60cb734b7 MDL-76942 course: Adjust activity chooser Behat tests
* Try to use the button name instead of CSS selectors whenever possible.
2023-01-20 21:27:39 +08:00
Jun Pataleta 544656431a MDL-76942 core: Revert change to insertresourceoractivitybefore
Revert the lang string "Add an activity or resource before [xx]" back to
its original form of "Insert an activity or resource before [xx]" in
order to avoid conflicts with the "Add an activity or resource" button
especially when running Behat tests.
2023-01-20 21:27:39 +08:00
Andrew Nicols 5b2e04f301 MDL-75945 core: Update uses of ImagePolygon
A new signature was introduced to ImagePolygon functions from PHP 8.0
with the previous signature deprecated in 8.1.

For PHP versions 8.0 and later we should use the new signature. Once PHP
8.0 is the required minimum version, the legacy version should be
removed.
2023-01-20 18:41:26 +07:00
Paul Holden 1b52486cce MDL-76973 user: correct testcase reference to external_api class. 2023-01-20 11:30:02 +00:00
Paul Holden ab670ab286 MDL-76933 badges: create user-focused datasource for custom reporting.
This report source differs from the original badges source (5274ee5a)
by making `user` the primary table of the report, allowing for reports
on all users regardless of whether they have been awarded badges.
2023-01-20 10:20:01 +00:00
Paul Holden 75ab52d902 MDL-76878 user: amend permission callbacks for preference definitions.
Ensure those preferences that are used for storing state can always be
updated via web service requests for the current user.
2023-01-20 10:05:21 +00:00
Jun Pataleta a479c1854b MDL-76968 mod_quiz: Use proper external_api reference 2023-01-20 17:06:17 +08:00
Luca Bösch a4eee48b49 MDL-76967 questions: Questions last used line height 2023-01-20 09:56:55 +01:00
Kevin Percy 567214a500 MDL-76139 gradebook_grader: Move group selector to tertiary navigation 2023-01-20 13:08:59 +08:00
Jaydn Cunningham 6ad6b28a34 MDL-76370 curl: suppress CONNECT header when using HTTP proxy 2023-01-20 14:26:30 +10:30
Meirza ec805cd575 MDL-76562 editor_tiny: Added functions to remove button/menu/submenu.
Added a few functions to remove the toolbar button, menubar and sub-menu items.
One of the implementations is to remove the justify alignment in the toolbar and
the sub-menu items to aid the accessibility aspect of the TinyMCE editor.
2023-01-20 09:57:52 +07:00
Ilya Tregubov df502b3e4c weekly release 4.2dev 2023-01-20 09:41:37 +08:00
sam marshall 100e38fe38 MDL-76956 core_grades: Regrade progress bar should be more granular
This change makes the regrade progress bar send frequent updates to
the web browser, even when processing within the same grade item, to
avoid timeout problems when there are a large number of users.
2023-01-19 16:43:51 +00:00
Jun Pataleta 4e8aee01fe Merge branch 'MDL-76725' of https://github.com/paulholden/moodle 2023-01-19 12:05:12 +08:00
Jun Pataleta 317af68140 Merge branch 'MDL-76537' of https://github.com/stronk7/moodle 2023-01-19 11:24:04 +08:00
Jun Pataleta 6538b400df Merge branch 'MDL-76583-master-withoutrename' of https://github.com/andrewnicols/moodle 2023-01-19 11:18:43 +08:00
Ilya Tregubov 42a2b973ce Merge branch 'MDL-76870-master' of https://github.com/lameze/moodle 2023-01-19 11:14:46 +08:00
Ilya Tregubov 89b722402e Merge branch 'MDL-76766-master' of https://github.com/aanabit/moodle 2023-01-19 11:03:40 +08:00
Andrew Nicols fcbad1f68a MDL-76583 external: Add unit test for deprecated test helper 2023-01-19 11:02:31 +08:00
Ilya Tregubov 385721f022 Merge branch 'MDL-74756-master' of https://github.com/sh-csg/moodle 2023-01-19 10:29:35 +08:00
Jun Pataleta fad05d7929 Merge branch 'MDL-76583-master-withoutrename' of https://github.com/andrewnicols/moodle 2023-01-19 09:44:48 +08:00
Andrew Nicols 46eb8da969 Merge branch 'MDL-69643' of https://github.com/paulholden/moodle 2023-01-19 09:05:46 +08:00
Andrew Nicols 853f07d4c0 Merge branch 'MDL-69127' of https://github.com/paulholden/moodle 2023-01-19 09:01:39 +08:00
Andrew Nicols 5abb018103 Merge branch 'MDL-69126' of https://github.com/paulholden/moodle 2023-01-19 08:58:01 +08:00
Andrew Nicols b56a9b9004 Merge branch 'MDL-76841' of https://github.com/paulholden/moodle 2023-01-19 08:54:07 +08:00
Andrew Nicols 3731f4e263 Merge branch 'MDL-70070' of https://github.com/paulholden/moodle 2023-01-19 08:47:51 +08:00
Andrew Nicols 1dbc7b303e MDL-76583 core_external: Update util_test coding style 2023-01-19 07:34:09 +08:00
Andrew Nicols a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00
Andrew Nicols 3e1920966c MDL-76583 core_external: Note deprecations and renames 2023-01-19 07:34:00 +08:00
Andrew Nicols 188dfcbf8c MDL-76583 core_external: External API Test coding style fixes 2023-01-19 07:33:47 +08:00
Andrew Nicols c435f5d95b MDL-76583 core_external: Update service management functions 2023-01-19 07:33:47 +08:00
Andrew Nicols 47814221e5 MDL-76583 core_external: Update util string formatting functions 2023-01-19 07:33:47 +08:00
Andrew Nicols d5d4ff8986 MDL-76583 core_external: Update token functions 2023-01-19 07:33:47 +08:00
Andrew Nicols 7a4f57cbfa MDL-76583 core_external: util class coding style fixes 2023-01-19 07:33:47 +08:00
Andrew Nicols 93d0f2f2c1 MDL-76583 core_external: external_files coding style fixes 2023-01-19 07:33:47 +08:00
Andrew Nicols be1c3877c5 MDL-76583 core_external: external_value coding style fixes 2023-01-19 07:33:47 +08:00
Andrew Nicols 1125fa94f6 MDL-76583 core_external: external_format_value coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols b46a72c1aa MDL-76583 core_external: external_single_structure coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols 135fae604c MDL-76583 core_external: external_multiple_structure coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols 8e336beac3 MDL-76583 core_external: external_function_params coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols 59c9577912 MDL-76583 core_external: external_warnings coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols 6325775551 MDL-76583 core_external: external_api unit tests coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols ca7305f0c6 MDL-76583 core_external: external_description coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols 8bc2011d3d MDL-76583 core_external: external settings coding style fixes 2023-01-19 07:33:46 +08:00
Andrew Nicols c978cd8cc3 MDL-76583 core_external: core_external\external_api coding style fixes 2023-01-19 07:33:38 +08:00
Andrew Nicols fa676b4776 MDL-76583 core_external: Implement Privacy API for core_external
AMOS BEGIN
 MOV [privacy:metadata:serviceusers,core_webservice],[privacy:metadata:serviceusers,core_external]
 MOV [privacy:metadata:serviceusers:iprestriction,core_webservice],[privacy:metadata:serviceusers:iprestriction,core_external]
 MOV [privacy:metadata:serviceusers:timecreated,core_webservice],[privacy:metadata:serviceusers:timecreated,core_external]
 MOV [privacy:metadata:serviceusers:userid,core_webservice],[privacy:metadata:serviceusers:userid,core_external]
 MOV [privacy:metadata:serviceusers:validuntil,core_webservice],[privacy:metadata:serviceusers:validuntil,core_external]
 MOV [privacy:metadata:tokens,core_webservice],[privacy:metadata:tokens,core_external]
 MOV [privacy:metadata:tokens:creatorid,core_webservice],[privacy:metadata:tokens:creatorid,core_external]
 MOV [privacy:metadata:tokens:iprestriction,core_webservice],[privacy:metadata:tokens:iprestriction,core_external]
 MOV [privacy:metadata:tokens:lastaccess,core_webservice],[privacy:metadata:tokens:lastaccess,core_external]
 MOV [privacy:metadata:tokens:privatetoken,core_webservice],[privacy:metadata:tokens:privatetoken,core_external]
 MOV [privacy:metadata:tokens:timecreated,core_webservice],[privacy:metadata:tokens:timecreated,core_external]
 MOV [privacy:metadata:tokens:token,core_webservice],[privacy:metadata:tokens:token,core_external]
 MOV [privacy:metadata:tokens:tokentype,core_webservice],[privacy:metadata:tokens:tokentype,core_external]
 MOV [privacy:metadata:tokens:userid,core_webservice],[privacy:metadata:tokens:userid,core_external]
 MOV [privacy:metadata:tokens:validuntil,core_webservice],[privacy:metadata:tokens:validuntil,core_external]
 MOV [privacy:request:notexportedsecurity,core_webservice],[privacy:request:notexportedsecurity,core_external]
AMOS END
2023-01-19 07:33:35 +08:00
Andrew Nicols 0392551bcb MDL-76583 core_external: Migrate service management to util 2023-01-19 07:33:35 +08:00
Andrew Nicols caddb452f0 MDL-76583 core_external: Migrate string formatting functions to util 2023-01-19 07:33:35 +08:00
Andrew Nicols 7f5fb6a592 MDL-76583 core_external: Migrate token functions class 2023-01-19 07:33:35 +08:00
Andrew Nicols 7d079e82e1 MDL-76583 core_external: Move util test and update 2023-01-19 07:33:35 +08:00
Andrew Nicols 453738e3fd MDL-76583 core_external: Move files test and update 2023-01-19 07:33:35 +08:00
Andrew Nicols 3f8fdc8e33 MDL-76583 core_external: Move settings test and update 2023-01-19 07:33:35 +08:00
Andrew Nicols ecbb31b160 MDL-76583 core_external: Migrate external_settings class 2023-01-19 07:33:35 +08:00
Andrew Nicols e460e2e43f MDL-76583 core_external: Migrate external_format_value class 2023-01-19 07:33:35 +08:00
Andrew Nicols 780ba1333b MDL-76583 core_external: Migrate external_warnings class 2023-01-19 07:33:35 +08:00
Andrew Nicols c42831cec6 MDL-76583 core_external: Migrate external_files class 2023-01-19 07:33:35 +08:00
Andrew Nicols ebbf342127 MDL-76583 core_external: Migrate external_util class 2023-01-19 07:33:35 +08:00
Andrew Nicols fff2c7420f MDL-76583 core_external: Migrate restricted_context_exception class 2023-01-19 07:33:35 +08:00
Andrew Nicols 698f06edeb MDL-76583 core_external: Migrate external_function_parameters class 2023-01-19 07:33:35 +08:00
Andrew Nicols 279ae4d5b3 MDL-76583 core_external: Migrate external_multiple_structure class 2023-01-19 07:33:35 +08:00
Andrew Nicols 967bed2954 MDL-76583 core_external: Migrate external_single_structure class 2023-01-19 07:33:34 +08:00
Andrew Nicols 61d59eaa11 MDL-76583 core_external: Migrate external_value class 2023-01-19 07:33:34 +08:00
Andrew Nicols 6f185f1873 MDL-76583 core_external: Migrate external_description class 2023-01-19 07:33:34 +08:00
Andrew Nicols cdd51a663b MDL-76583 core_external: Move external_api unit tests 2023-01-19 07:33:34 +08:00
Andrew Nicols 56bcaf409f MDL-76583 core_external: Migrate external_api to core_external\external_api 2023-01-19 07:33:18 +08:00
Lars Bonczek 9ed7a8ebae MDL-76948 mod_assign: Fix description of submission_unlocked event 2023-01-18 16:25:58 +01:00
Jun Pataleta 0f1a005017 Merge branch 'MDL-76525-master' of https://github.com/PhMemmel/moodle 2023-01-18 22:56:09 +08:00
Tim Hunt ec0a2dd85b MDL-76899 quiz: Fix PHPdocs issues 2023-01-18 12:14:37 +00:00
Philipp Memmel 4f4fbea9c3 MDL-76525 mod_data: Add param validation for data fields 2023-01-18 12:09:07 +01:00
Ilya Tregubov ec5e09b393 Merge branch 'MDL-55929-master' of https://github.com/srobotta/moodle 2023-01-18 14:18:53 +08:00
Tien Nguyen 5863659d79 MDL-69164 Question: Convert question/qengine.js to AMD modules 2023-01-18 11:24:38 +07:00
Andrew Nicols f9a3ec96b6 Merge branch 'MDL-76898' of https://github.com/timhunt/moodle 2023-01-18 11:10:29 +08:00
Claude Vervoort e56fec2662 MDL-76602 mod_lti: move lti13 claim declaration in subplugin 2023-01-17 16:51:32 -05:00
Stephan Robotta 0c8f9108c2 MDL-55929 assign: allow bulk emails in assignment userslist 2023-01-17 10:12:50 +01:00
Jake Dallimore 9681ec4693 Merge branch 'MDL-66221-master' of https://github.com/raortegar/moodle 2023-01-17 11:28:40 +08:00
Andrew Nicols 4a2793002c MDL-76583 core_external: Add new core_external subsystem 2023-01-17 10:59:15 +08:00
Stefan Hanauska a9149c13af MDL-74756 availability_completion: Prev activity (completion n/enabled) 2023-01-16 22:20:48 +01:00
Tim Hunt 28f090d975 MDL-76899 quiz: fix whitespace around operators 2023-01-16 19:07:08 +00:00
Tim Hunt 2bb6c8b281 MDL-76899 quiz: bulk fix all array literals array() -> []
This was done with PHPStorm's automated tool. No manual editing
2023-01-16 17:12:45 +00:00
Tim Hunt 17e11dd9d5 MDL-76899 quiz: Bulk fix object -> stdClass in PHPdoc 2023-01-16 17:12:44 +00:00
Tim Hunt 450e55e79d MDL-76899 quiz: remove unneeded tearDown from a unit test 2023-01-16 17:12:34 +00:00
Tim Hunt f4099bcd78 MDL-76899 quiz: basic cleanup of the structure and repaginate classes 2023-01-16 17:12:23 +00:00
Tim Hunt 6e7c63b36f MDL-76898 quiz: Move deprecated functions deprecatedlib.php
These were already deprecated, but in the wrong file.
2023-01-16 17:12:15 +00:00
Tim Hunt 03cf2ce782 MDL-76898 quiz: final deprecation of things deprecated long ago 2023-01-16 17:12:02 +00:00
Sara Arjona d62f6ae036 Merge branch 'MDL-61789-master' of https://github.com/meirzamoodle/moodle 2023-01-16 17:08:38 +01:00
Sara Arjona 574f68f014 Merge branch 'MDL-76219-master' of https://github.com/meirzamoodle/moodle 2023-01-16 16:45:00 +01:00
Brendan Heywood d561d97273 MDL-76478 formslib: Fix autocomplete bug of existing passwords 2023-01-16 22:58:07 +11:00
Paul Holden fd8d11b704 MDL-76841 tool_mobile: improve potential config issues test.
Avoid certificate checking of the default test site (`example.com`),
and update the assertion so we get clearer failures in the future.
2023-01-16 08:30:49 +00:00
Paul Holden af8da7c737 MDL-70070 phpunit: correct data provider method names.
They should not be prefixed `test_` because that's how actual
test methods containing assertions are identified by PHPUnit.
2023-01-16 08:28:37 +00:00
Kevin Pham 0072559aa7 MDL-72559 cache: core/plugin_functions cache can be local
Co-Authored-By: Tim Hunt <T.J.Hunt@open.ac.uk>
2023-01-16 16:29:48 +11:00
Jun Pataleta dd0580d809 Merge branch 'MDL-76377-master' of https://github.com/aanabit/moodle 2023-01-16 09:40:07 +08:00
Jun Pataleta aedbfba858 Merge branch 'MDL-76358-master' of https://github.com/laurentdavid/moodle 2023-01-16 09:32:56 +08:00
Jonathon Fowler c9fe46fe3d MDL-73847 lti: fetch keyset URLs using configured proxy settings 2023-01-16 10:00:17 +10:00
raortegar afb4a9effd MDL-66221 tool_recyclebin: Fix recycle bin with activity settings
If backup_auto_activities setting from Automated backup is disabled
the activities will not be stored for the recycle bin
2023-01-13 11:30:54 +01:00
Simey Lameze bb0aeafb25 MDL-76870 question: change assertion to assertEqualsCanonicalizing
By using that assertion the arrays will be sorted before comparison
preventing any Oracle sorting related failures.

Credits for the solution go to Tim Hunt!
2023-01-13 18:12:48 +08:00
Eloy Lafuente (stronk7) 357f784091 MDL-76537 behat: Month and day names are lang-dependent correct utf-8
Just verify that calendars are always displayed with correct UTF-8
and in the language the user is currently using.
2023-01-13 09:57:28 +01:00
Eloy Lafuente (stronk7) 7827edc78d MDL-76537 core: Fix date_format_string() to work with php-intl
With Moodle 4.1 and up, we have stopped to work with strftime(),
because it's deprecated for PHP 8.1 and up and, instead we are
using core_date::strftime() that performs the conversions using
the php-intl extension.

The original strftime() had a lot of OS-specific dependencies,
both about locale names and charsets used to provide the information.

Instead, the php-intl gets rid of all those OS-specific nightmares
and only uses ICU/Unicode locales and UTF-8.

Because of that, the old utf-8 => windows charset => utf-8
conversions aren't needed anymore. Hence, removing them.
2023-01-13 09:57:28 +01:00
Angelia Dela Cruz 320218633a MDL-76639 behat: Add Behat test coverage for quiz with limited attempts 2023-01-13 16:10:00 +08:00
Jun Pataleta 5dbac075be weekly release 4.2dev 2023-01-13 10:52:09 +08:00
Amaia Anabitarte bb3a7fcda5 MDL-76377 block_myoverview: Improve zero state 2023-01-12 15:55:57 +01:00
Paul Holden e72f47cbfc Merge branch 'MDL-76739-master-fix' of https://github.com/junpataleta/moodle 2023-01-12 12:09:15 +00:00
Jun Pataleta 4c36405d3a Merge branch 'MDL-76649-master-fix' of https://github.com/junpataleta/moodle 2023-01-12 17:09:58 +08:00
Jun Pataleta 25ff4c441b MDL-76739 mod_data: Split comments test into two
MDL-75596 added an "Insert an activity or resource before ..." button
that allows adding an activity or a resource before or after another
activity in a course. This renders the button in the DOM (although
hidden and shown only on mouseover) when there's at least one activity
in the course.

In this issue, the button's label was renamed to "Add an activity or
resource before ..." and it now obscures the normal "Add an activity or
resource" button at the bottom of the course section from being
interacted on when running Behat tests.

This failure happens in the create_activity.feature file as it creates
two DB activities in a single scenario – one when "usecomments" is
turned on and one when it's turned off. Given this limitation, a
workaround is to split the "Teacher cannot enable comments if they are
disabled at site level" scenario into two scenarios with the first one
testing when "usecomments" is on while the second scenario testing when
"usecomments" is turned off.
2023-01-12 17:05:55 +08:00
Cameron Ball 6bf955ca9e MDL-76869 gradebook: Pass exception to rollback 2023-01-12 16:31:46 +08:00
Ilya Tregubov 93a70ba807 MDL-69690 mod_workshop: Fix fieldname for workshop. 2023-01-12 15:01:11 +07:00
Laurent David e4a1d891fc MDL-76358 mod_data: Refactor preset output
* Remove unused manager in the presets.php
* Use single quote instead of double quote for array keys
2023-01-12 08:24:45 +01:00
Jun Pataleta 71b3f9c39f MDL-76649 mod_quiz: Use correct quizid attribute from attempt 2023-01-12 15:17:35 +08:00
Andrew Nicols 769397fd9d Merge branch 'MDL-76820-master' of https://github.com/cameron1729/moodle 2023-01-12 12:09:11 +08:00
Jun Pataleta e0d857f39f Merge branch 'MDL-76649' of https://github.com/timhunt/moodle 2023-01-12 12:06:35 +08:00
Jun Pataleta f23d02a0ca Merge branch 'MDL-76474-master-2' of https://github.com/HuongNV13/moodle 2023-01-12 11:55:29 +08:00
Huong Nguyen 6dd6248e41 MDL-76474 tiny_h5p: Prevent H5P Formatter placeholder to be assessed 2023-01-12 10:51:03 +07:00
Huong Nguyen d21b6d194a MDL-76474 tiny_accessibilitychecker: Prevent placeholders to be assessed 2023-01-12 10:51:03 +07:00
Huong Nguyen c4c85a8f1c MDL-76474 editor_tiny: Implement placeholder selector list
We created a list of placeholder selectors in placeholderSelectors option.
The purpose of this list is to indicate the contents that are only shown
in the editor and not to the users, by that way, we can decide to apply or
not to apply rules, styles, etc... to these contents
2023-01-12 10:51:02 +07:00
Michael Hawkins 71564e3e70 MDL-76861 blog: Ensure correct escaping applied to search string 2023-01-12 11:42:51 +08:00
Jake Dallimore 230ac291c8 MDL-76862 user: Unit test for setting user home page preferences 2023-01-12 11:35:10 +08:00
Paul Holden 2dfc273752 MDL-76862 user: ensure user can only update own preferred start page. 2023-01-12 11:35:10 +08:00
Andrew Nicols f516200459 Merge branch 'MDL-76839' of https://github.com/paulholden/moodle 2023-01-12 10:56:33 +08:00
Cameron Ball c9769197cd MDL-76820 core_search: Reset manager::$coursedeleting between tests 2023-01-12 10:43:29 +08:00
Jun Pataleta 2a29bead81 Merge branch 'MDL-76739-master-test' of https://github.com/junpataleta/moodle 2023-01-12 10:17:08 +08:00
Jun Pataleta 5166c729b4 MDL-76739 behat: Replace occurrences of "surname" in Behat tests
Replace occurrences of "surname" in Behat tests with "last name"
2023-01-12 09:53:41 +08:00
David Mudrák 50ba9dc72c MDL-76739 lang: Use the fixed strings in the tests, too 2023-01-12 09:17:27 +08:00
Helen Foster 975a127325 MDL-76739 lang: Import fixed English strings (en_fix) 2023-01-12 09:17:27 +08:00
Ilya Tregubov be1c1485ad Merge branch 'MDL-76607-master' of https://github.com/davewoloszyn/moodle 2023-01-11 19:11:49 +07:00
Amaia Anabitarte bbd7aa78b2 MDL-76766 mod_quiz: Allow shuffling quizes with no questions 2023-01-11 11:15:35 +01:00
Laurent David 45317d6db5 MDL-76358 mod_data: Add options to preset menu
* Add "Preview" and "Use this preset" menus to the preset plugin page's
burger menu
* Refactor importmapping dialogue to use the 'data-action' selector
* Add a new set_kebab_trigger action menu method
* Use set_additional_classes method for action menu
* Remove redundant parameter to add_action_menu
2023-01-11 10:59:04 +01:00
Andrew Nicols c81fbbfec9 Merge branch '66924-view-own-private-reply-master' of https://github.com/DSI-Universite-Rennes2/moodle 2023-01-11 15:52:41 +08:00
Tim Hunt 3b23ff6fec MDL-76810 redirect handling: ensure return URLs are properly sanitised 2023-01-11 11:42:28 +08:00
Andrew Nicols 6f1c9d3b53 Merge branch 'MDL-76614' of https://github.com/timhunt/moodle 2023-01-11 10:32:42 +08:00
Andrew Nicols 9e21e8a807 Merge branch 'MDL-76356' of https://github.com/stronk7/moodle 2023-01-11 10:26:20 +08:00
Jake Dallimore 98a23389b6 Merge branch 'MDL-76597-master-2' of https://github.com/junpataleta/moodle 2023-01-11 10:12:20 +08:00
Paul Holden 362818ff36 Merge branch 'MDL-76811-master' of https://github.com/andrewnicols/moodle 2023-01-10 16:40:05 +00:00
Paul Holden 6bd76e2a4d Merge branch 'MDL-76803-master' of https://github.com/junpataleta/moodle 2023-01-10 16:24:09 +00:00
Paul Holden 37f68b7522 Merge branch 'MDL-76653-master' of https://github.com/lameze/moodle 2023-01-10 15:29:15 +00:00
Marina Glancy b1c97381b4 MDL-76356 various: avoid implicit conversion to int
PHP before version 8.1 automatically converted to int if the function
parameter (or array key) is expected to be int. PHP 8.1 shows notice in
this case
2023-01-10 15:27:11 +01:00
Paul Holden 1bf87e87a4 MDL-76839 mod_data: correct external test class coverage notation. 2023-01-10 12:59:06 +00:00
Paul Holden 4250414279 Merge branch 'MDL-76833-master' of https://github.com/andrewnicols/moodle 2023-01-10 12:29:17 +00:00
Marina Glancy 594a8c5ab7 MDL-76356 various: avoid implicit conversion to arrays
PHP before version 8.1 automatically converted stdClass or 'false' to arrays if
function parameter expects array (for example, "reset").
PHP 8.1 shows notices in these situations
2023-01-10 12:16:52 +01:00
Julien Boulen 5f493679c3 MDL-76313 forum: improve accessibility on subscribers page
- add header on table of subscribers
- remove one redundant header
2023-01-10 11:16:31 +01:00
Jun Pataleta 2924075480 MDL-76803 lang: Update usages of reworded email display options 2023-01-10 16:01:18 +08:00
Meirza c5e4685833 MDL-73519 core_course: re-styling the unordered list.
Currently, the unordered list in the course content follows the original style and
is ordered from the top of the content section, which is not part of the description.
That's why the first occurrence of the list is the 2nd level which uses the circle as the marker/list type
instead of the disc. In contrast, the editor always uses the original style.

so we need to reset the CSS of the unordered list in the description to the original
which the disc as the first marker, a circle for the second marker,
and a square for the following levels.
2023-01-10 11:54:47 +07:00
Andrew Nicols 7519620572 MDL-76833 core: Bump phpunit/php-code-coverage version
This includes a bug fix for a display issue with code coverage reporting
in phpunit's HTML output report.
2023-01-10 12:09:01 +08:00
Andrew Nicols 35eb66d9dc MDL-76811 mod_data: Remove duplicate tests 2023-01-10 11:39:40 +08:00
Andrew Nicols cec147f428 MDL-76811 mod_data: Stop testing template creation on field creation
The default template is no longer created when creating the fields with
the generator, so we should stop testing that it is.
2023-01-10 11:39:40 +08:00
Andrew Nicols 103b17c761 MDL-76811 mod_data: Generator test cleanup 2023-01-10 11:39:39 +08:00
Jun Pataleta 3385715f52 MDL-76803 lang: Make email display options more concise 2023-01-10 11:04:03 +08:00
Simey Lameze 4d2b1f26a7 MDL-76653 behat: add coverage for SCORM availability 2023-01-10 10:26:20 +08:00
Jun Pataleta 1a7a646ca2 Merge branch 'MDL-76061-master' of https://github.com/PhMemmel/moodle 2023-01-10 09:41:37 +08:00
james-cnz 2771e87019 MDL-76729 filepicker: Restore file picker thumbnails in tree view 2023-01-10 12:03:28 +13:00
Tim Hunt 7e4972a4a8 fixup! MDL-76614 quiz: deprecate class moodle_quiz_exception 2023-01-09 17:48:26 +00:00
Philipp Memmel b84005ef9f MDL-76061 core_calendar: Fix changing event type from 'user' 2023-01-09 14:49:50 +01:00
Julien Boulen b87ead3384 MDL-66924 mod_forum: Allow users to see their own private messages
Allow users to see their own private messages even if they don't have
mod/forum:readprivatereplies capability

Add behat test to avoid MDL-67109 issue.

Co-authored-by: Martin Putzlocher <mputzi@users.noreply.github.com>
2023-01-09 14:41:01 +01:00
Tim Hunt 192f993906 MDL-76649 quiz statistics task: output more useful trace info
At the moment, quiz_statistics\task\recalculate gives no useful
information about what it is doing, which makes it hard to investigate
if the task fails. This commit makes it more usefully verbose.

Also, following this change, one instance of this task will not
run for more than one hour at a time.

As part of this commit, I have added a new helper mtrace_exception.
to consistently log exceptions in scheduled tasks. It is sad to
add a new function to moodlelib.php, but that seemed the logical place.
Looking at other tasks, this method is badly needed. Many are just
logging the ->getMessage() which is normaly insufficient for proper
debugging. However, swiching all existing tasks to use the new function
will need to wait for a future MDL.
2023-01-09 13:26:41 +00:00
Paul Holden 025985ff61 Merge branch 'MDL-75532-master' of https://github.com/snake/moodle 2023-01-09 11:50:58 +00:00
Jun Pataleta 6bbe2ebf06 Merge branch 'MDL-76785' of https://github.com/paulholden/moodle 2023-01-09 19:38:36 +08:00
Jun Pataleta db2ee34986 Merge branch 'MDL-76506' of https://github.com/jrchamp/moodle 2023-01-09 19:34:07 +08:00
Paul Holden 535d6e2445 MDL-76785 tiny_media: define video width/height language strings.
AMOS BEGIN
 CPY [videoheight,atto_media],[videoheight,tiny_media]
 CPY [videowidth,atto_media],[videowidth,tiny_media]
AMOS END
2023-01-09 10:52:22 +00:00
Jun Pataleta 438f6d73e0 Merge branch 'MDL-76787' of https://github.com/paulholden/moodle 2023-01-09 18:39:32 +08:00
Paul Holden 8749d96121 Merge branch 'MDL-76601-master' of https://github.com/junpataleta/moodle 2023-01-09 10:11:11 +00:00
Jun Pataleta 2892b7a0b2 Merge branch 'MDL-76812' of https://github.com/paulholden/moodle 2023-01-09 17:46:29 +08:00
Jun Pataleta 7927374af9 MDL-76597 mod_quiz: Add a default heading name for Behat tests 2023-01-09 15:41:27 +08:00
Ilya Tregubov 9934ec1363 Merge branch 'MDL-76134-abstract' of https://github.com/Chocolate-lightning/moodle 2023-01-09 14:39:28 +07:00
Jake Dallimore 969a392cf1 MDL-75532 enrol_lti: fix optional lineitemsurl in grade sync task
As in MDL-74691, we need either or both of these fields, meaning either
one could be omitted. This just supports that as per the fix made in
MDL-74691.
2023-01-09 11:36:04 +08:00
Jake Dallimore 6331a834a4 MDL-75532 enrol_lti: add tests for coupled and decoupled line items
This covers the following cases:
1. Where only the 'lineitem' service endpoint is provided
2. Where only the 'lineitems' service endpoint is provided.
Existing tests already cover the case where both are provided.
2023-01-09 11:36:04 +08:00
hieuvu 2b6bf085af MDL-76582 question: Allow response filearea to have different pattern 2023-01-09 09:26:52 +07:00
Simey Lameze 59a459c5e7 MDL-76652 behat: use data generator and remove duplicated steps 2023-01-09 10:16:14 +08:00
Simey Lameze 00bd42ea5d MDL-76652 behat: add coverage for postwithoutthrottling logic 2023-01-09 10:16:14 +08:00
Mathew May bf783645e1 MDL-76134 gradebook: Modify user story behat tests into passable runs 2023-01-09 09:22:20 +08:00
Mathew May 712f219c7c MDL-76134 gradebook: Hook into tertiary dropdown item 2023-01-09 09:22:20 +08:00
Mathew May 6b0d3b3eae MDL-76134 gradebook: Add a bare dropdown component 2023-01-09 09:22:20 +08:00
Mathew May d83fcf1976 MDL-76134 core: Provide a option to render initials bars smaller 2023-01-09 09:22:20 +08:00
Mathew May 9af57b7180 MDL-76134 core: User story behat test 2023-01-09 09:21:19 +08:00
Meirza b79231361b MDL-61789 auth_oauth2: Update profile fields based on data mapping.
After the user creation, the system must call an update function to update profile_fields_*.
We also provided two functions into user/profile/lib.php to get available from other areas.
We added PHP unit testing for new public functions and
the Behat tests for custom profile fields with locked and unlocked statuses.

Co-authored-by: Matt Porritt <matt.porritt@moodle.com>
2023-01-07 20:59:26 +07:00
Jun Pataleta 08a2781607 MDL-76597 mod_quiz: Set presentation role for the question list
Since the <ul> and <li> elements for listing the quiz questions and
elements are mainly used for layout purposes, it is better to set the
role of these elements to presentation only.
The aria-label for the <li> element is inappropriate and can also cause
confusion to screen reader users. Better to remove this. Though this is
being used in the confirmation modal so better to just change it to a
data attribute.
2023-01-06 22:37:54 +08:00
Jun Pataleta 317dd19f02 MDL-76597 mod_quiz: Set presentation role for the question list
Since the <ul> and <li> elements for listing the quiz questions and
elements are mainly used for layout purposes, it is better to set the
role of these elements to presentation only.
2023-01-06 22:37:54 +08:00
Jun Pataleta f7bcd8304f MDL-76597 mod_quiz: Add label for question checkboxes 2023-01-06 22:37:54 +08:00
Jun Pataleta beac221ac4 MDL-76597 mod_quiz: Darken section heading on quiz questions page 2023-01-06 22:37:54 +08:00
Jun Pataleta 384e40a750 MDL-76597 mod_quiz: Add label for version selector 2023-01-06 22:37:54 +08:00
Jun Pataleta e4f1f254c9 MDL-76597 mod_quiz: Add a default sr-only section heading
Add a default sr-only section heading in order to prevent having an
empty heading for the quiz section which is not good for accessibility.

Plus:
- There's also an existing issue where filters are never applied to
section headings on load. This has been fixed in this commit as well.
- Button role added for the edit section button which enables it to
take advantage of the theme highlighting when it receives focus.
2023-01-06 22:37:54 +08:00
Tim Hunt a02497f942 MDL-76614 quiz: clean up view.php script 2023-01-06 14:35:55 +00:00
Tim Hunt ca7fb1eb02 MDL-76614 quizaccess_seb: rename access_manager & quiz_settings classes
This is to avoid confusion between the main mod_quiz classes and SEB's own.
2023-01-06 14:35:55 +00:00
Tim Hunt 58e4bc9a3e MDL-76614 quiz: clean up the quiz_settings class 2023-01-06 14:35:54 +00:00
Tim Hunt a9f8547599 MDL-76614 quiz: rename quiz => mod_quiz\quiz_settings 2023-01-06 14:35:54 +00:00
Tim Hunt ae6a1c0391 MDL-76614 quiz: clean up the quiz_attempt class 2023-01-06 14:35:52 +00:00
Tim Hunt 5682c8c70e MDL-76614 quiz: move class quiz_attempt => mod_quiz\quiz_attempt
I thought about renaming the class to just plain attempt, but I
acutally think quiz_attempt makes it clearer what this is. Also
not changing the name massively reduces the pain for everyone
updating their code (including me right now!)
2023-01-06 14:35:51 +00:00
Tim Hunt 79a29d243c MDL-76614 quiz: remove unneeded MOODLE_INTERNAL 2023-01-06 14:35:51 +00:00
Tim Hunt 03116995d5 MDL-76614 quiz: move quiz_review_nav_panel to classes 2023-01-06 14:35:51 +00:00
Tim Hunt ccbb5da784 MDL-76614 quiz: move quiz_attempt_nav_panel to classes 2023-01-06 14:35:51 +00:00
Tim Hunt adbd0daddb MDL-76614 quiz: clean up navigation_panel_base class 2023-01-06 14:35:50 +00:00
Tim Hunt 74c6823bac MDL-76614 quiz: move quiz_nav_panel_base to classes folder 2023-01-06 14:35:50 +00:00
Tim Hunt 600b17db21 MDL-76614 quiz: move quiz_nav_section_heading to classes folder 2023-01-06 14:35:50 +00:00
Tim Hunt 6833a902df MDL-76614 quiz: move quiz_nav_question_button to classes folder 2023-01-06 14:35:50 +00:00
Tim Hunt 89f97a7e2a MDL-76614 quiz: code cleanup in mod_quiz\output\renderer 2023-01-06 14:35:50 +00:00
Tim Hunt 5ef8b6978e MDL-76614 quiz: mod_quiz_renderer => mod_quiz\output\renderer 2023-01-06 14:35:49 +00:00
Tim Hunt 6c989eb24c MDL-76614 quiz: Final deprecation of view_page::$startattemptwarning
This waas deprecated in Moodle 3.1 MDL-46091
2023-01-06 14:35:49 +00:00
Tim Hunt abeeaef10a MDL-76614 quiz: mod_quiz_view_object => mod_quiz\output\view_page 2023-01-06 14:35:49 +00:00
Tim Hunt aceae3a4fa MDL-76614 quiz: move mod_quiz_links_to_other_attempts => classes\output 2023-01-06 14:35:49 +00:00
Tim Hunt 581a3bc7e9 MDL-76614 quiz: quiz_add_random_form => mod_quiz\form\add_random_form 2023-01-06 14:35:49 +00:00
Tim Hunt dd41b972c0 MDL-76614 quiz: clean up edit_override_form class 2023-01-06 14:35:49 +00:00
Tim Hunt 8af8ef3b9f MDL-76614 quiz: clean up access_rule_base class 2023-01-06 14:35:48 +00:00
Tim Hunt 2ff112c688 MDL-76614 quiz: quiz_access_rule_base => mod_quiz\local\access_rule_base 2023-01-06 14:35:48 +00:00
Tim Hunt dda9ba07f3 MDL-76614 quiz: quiz_override_form => mod_quiz\form\edit_override_form 2023-01-06 14:35:48 +00:00
Tim Hunt f83181d397 MDL-76614 quiz: deprecate class moodle_quiz_exception
Code should just directly use moodle_execption.

Note, some of the existing uses (in web services) were passing a
literal message, not a language string identifier, but I decided
now was not the time to try to fix that.
2023-01-06 14:35:48 +00:00
Tim Hunt f6ae83f40e MDL-76614 quiz: clean up update_overdue_attempts class 2023-01-06 14:35:48 +00:00
Tim Hunt 4ae4d8d1b6 MDL-76614 quiz: merge mod_quiz_overdue_attempt_updater into task
The only place this code was used was in
mod_quiz\task\update_overdue_attempts so neater to combine them into one
class.
2023-01-06 14:35:48 +00:00
Tim Hunt 91c913debc MDL-76614 quiz: move mod_quiz_preflight_check_form to classes & clean up 2023-01-06 14:35:47 +00:00
Tim Hunt b3d59e5ad8 MDL-76614 quiz: clean up class access_manager 2023-01-06 14:35:47 +00:00
Tim Hunt fed4a7fbd4 MDL-76614 quiz: move quiz_access_manager -> mod_quiz\access_manager 2023-01-06 14:35:47 +00:00
Paul Holden 15286a56d5 MDL-64153 dml: fix trailing comma and whitespace in upgrade note. 2023-01-06 11:35:04 +00:00
Paul Holden e395dff081 Merge branch 'MDL-32114-master' of https://github.com/srobotta/moodle 2023-01-06 11:20:46 +00:00
Paul Holden bb0369fd65 Merge branch 'MDL-64153-master' of https://github.com/meirzamoodle/moodle 2023-01-06 10:57:10 +00:00
Paul Holden bb95badd99 Merge branch 'MDL-76578-master' of https://github.com/aanabit/moodle 2023-01-06 10:41:35 +00:00
Paul Holden 982dbee359 Merge branch 'MDL-76781-master' of https://github.com/lucaboesch/moodle 2023-01-06 10:23:54 +00:00
Paul Holden 6183ad3c22 MDL-76812 reportbuilder: ensure audience key is incremented correctly. 2023-01-06 09:57:14 +00:00
Ilya Tregubov db1b807270 MDL-76251 mod_forum: Fix illegal whitespace. Another try. 2023-01-06 16:41:59 +07:00
Paul Holden 0e742a2fc9 MDL-69643 message: final removal of deprecated 310 methods. 2023-01-06 09:28:40 +00:00
Ilya Tregubov 8bcf50cfe3 Merge branch 'MDL-76251-patch' of https://github.com/ilyatregubov/moodle 2023-01-06 16:14:23 +07:00
Ilya Tregubov f6a3144275 MDL-76251 mod_forum: Fix illegal whitespace. 2023-01-06 16:08:17 +07:00
Ilya Tregubov 7349b04257 Merge branch 'MDL-76251-master' of https://github.com/aya-saad1/moodle 2023-01-06 15:37:20 +07:00
Matt Porritt 6793891887 MDL-61789 auth_oauth2: Allow admin to choose profile fields for mapping
Update oauth2 to allow mapping of provider attributes against
user profile fields. Fields can also be locked to prevent
user changes.

Co-Authored-By: Michael Milette <michael.milette@tngconsulting.ca>
2023-01-06 13:27:11 +07:00
Ilya Tregubov f99f305be6 Merge branch 'MDL-75878-master' of https://github.com/sammarshallou/moodle 2023-01-06 11:07:51 +07:00
Meirza f8537ffec6 MDL-64153 dml: Added extrainfo in the DB options config.
extrainfo is an extra information for the DB driver, e.g. SQL Server,
has additional configuration according to its environment,
which the administrator can specify to alter and override any connection options.

Co-authored-by: LukeCarrier <luke@carrier.im>
2023-01-06 06:17:17 +07:00
Stephan Robotta 4a31dd69d6 MDL-32114 form: markdown must be preserved on saving post
- Markdown is saved to the DB, no conversion to HTML to keep
  ability to reedit the content without beaking it.
- Blockquote element is styled that it's distingishable from
  normal text.
2023-01-05 18:34:44 +01:00
Paul Holden d843168c14 MDL-69127 analytics: final removal of renamed target class mapping. 2023-01-05 17:28:59 +00:00
Paul Holden 2c57184251 MDL-69126 lang: final removal of deprecated 310 strings. 2023-01-05 14:38:37 +00:00
Andrew Nicols 23d8120ab0 Merge branch 'MDL-76508-master' of https://github.com/meirzamoodle/moodle 2023-01-05 21:30:01 +08:00
Luca Bösch 864a1eba5a MDL-76781 gradebook: support multilingual group names. 2023-01-05 13:27:39 +01:00
Paul Holden b8b905cd90 weekly release 4.2dev 2023-01-05 10:53:08 +00:00
Aya Saad 7c074d8b8e MDL-76251 mod_forum: fix responsive issues in discussion 2023-01-05 11:47:15 +02:00
Meirza 3b4bc74692 MDL-76219 lib: Remove Box\Spout library 2023-01-05 16:04:37 +07:00
Meirza 93220a66f5 MDL-76219 lib: Change Box\Spout to OpenSpout library 2023-01-05 15:58:18 +07:00
David Woloszyn 6dc10b6241 MDL-76607 timeline: Reordered message to account for long course name 2023-01-05 12:11:42 +11:00
David Woloszyn 004b220513 MDL-76607 css: Fixed various classes where long strings break layout 2023-01-05 12:10:58 +11:00
Paul Holden a082b6e084 MDL-76787 tiny_h5p: correct capability for plugin enabled state. 2023-01-04 16:07:50 +00:00
Sara Arjona 908f3a4c78 Merge branch 'MDL-74987-master' of https://github.com/ferranrecio/moodle 2023-01-04 16:57:31 +01:00
Sara Arjona 0a27fcbcde Merge branch 'MDL-76375-master' of https://github.com/lucaboesch/moodle 2023-01-04 16:21:30 +01:00
Sara Arjona be95fb2581 Merge branch 'MDL-75596-master' of https://github.com/sh-csg/moodle 2023-01-04 16:15:37 +01:00
Luca Bösch 57682b43ae MDL-76375 quiz generator: Allow more than one attempt by Behat tests. 2023-01-04 15:12:58 +01:00
Paul Holden bb0085e1d9 MDL-76725 mod_wiki: avoid named arguments in real path callback.
See also f4fb91ae. PHP8 now supports named arguments in calls to
the `call_user_func_array` method, which can result in differing
behaviour compared to PHP7, e.g. in this case it was throwing an
exception due to an unknown named parameter.
2023-01-04 14:08:20 +00:00
Sara Arjona b92b0b6cea Merge branch 'MDL-76221' of https://github.com/paulholden/moodle 2023-01-04 13:08:44 +01:00
Paul Holden 7a36c24c92 MDL-76657 grade: load required test libraries for grade helper. 2023-01-04 11:20:44 +00:00
Paul Holden 38a25b4f3e Merge branch 'MDL-76657-master' of https://github.com/rezaies/moodle 2023-01-04 11:10:35 +00:00
Paul Holden 45818da292 MDL-76221 reportbuilder: improve report test generator methods.
Test generators for creating report columns, filters and conditions
now allow for setting all persistent properties.
2023-01-04 10:56:27 +00:00
Jun Pataleta 401fc00245 Merge branch 'MDL-74822-master' of https://github.com/HuongNV13/moodle 2023-01-04 17:29:26 +08:00
Jun Pataleta 9581a44cf8 MDL-76601 block_myoverview: Remove hover action before clicking on menu
With the course card menu now always displayed, there's no need to hover
first before clicking on the menus on block_myoverview Behat tests.
2023-01-04 17:21:47 +08:00
Jun Pataleta 466266999c MDL-76601 blocks: Always display course card menus
Displaying the course card menu only on hover is bad in terms of
accessibility as it prevents keyboard-only users from accessing the
menu. So it's better to always display them.
2023-01-04 17:00:04 +08:00
Ferran Recio 302a5e43a6 MDL-74987 core_courseformat: alt to duplicate modules
If a user drags an activity and press the ALT key, the activity will be
duplicated in the new place instead of simply moved. This behaviour
is quite normal in many softwares and it is a non intrusive usability
improvement.
2023-01-04 09:25:52 +01:00
Ferran Recio 35a12cfffb MDL-74987 core_courseformat: migrate duplicate to state action 2023-01-04 09:25:52 +01:00
Ferran Recio a3264eb5e0 MDL-74987 core_courseformat: add pending to refresh activity
The activity reload was missing a pending control. This can lead to
behat errors if the module refresh takes longer than expected for some
reason.
2023-01-04 09:25:52 +01:00
Sara Arjona 7202dcb79e Merge branch 'MDL-76181' of https://github.com/paulholden/moodle 2023-01-04 09:20:13 +01:00
Meirza b2b17b9d9b MDL-76219 lib: Add the OpenSpout 3.7.3 library 2023-01-04 09:47:06 +07:00
Stefan Hanauska 15034e7100 MDL-75596 course: Allow inserting activities everywhere
Co-authored-by: Mathew May <mathewm@hotmail.co.nz>
2023-01-03 21:49:06 +01:00
Sara Arjona 139a629763 Merge branch 'MDL-75177' of https://github.com/paulholden/moodle 2023-01-03 17:50:34 +01:00
sam marshall fbd61d1268 MDL-75878 Course: Adding graded activity too slow when lots of grades
Adding an activity with a grade item previously triggered a course
regrade, which can be extremely slow. This change makes it so that on
courses where regrading is slow, when you add an activity that
requires regrading, it takes you to an intermediate screen with a
progress bar.

This change also fixes a bug in the existing grade overview report,
which shows grades across multiple courses, but previously only
checked, and if necessary regraded, one course.
2023-01-03 16:04:58 +00:00
Sara Arjona 4759dbe119 Merge branch 'MDL-76308-master' of https://github.com/BruceGoodGuy/moodle 2023-01-03 14:12:53 +01:00
Paul Holden cade48a337 Merge branch 'MDL-74989-master' of https://github.com/ferranrecio/moodle 2023-01-03 12:33:45 +00:00
Paul Holden cd2fc29712 Merge branch 'MDL-53137-master' of https://github.com/lucisgit/moodle 2023-01-03 12:14:30 +00:00
Sara Arjona ae71d43924 Merge branch 'MDL-71506-master' of https://github.com/lucaboesch/moodle 2023-01-03 13:10:11 +01:00
Ferran Recio fe4784e60f MDL-74989 core_courseformat: migrate cm delete to reactive
Migrate the course index delete activities to the new reactive actions
with batch deletion.
2023-01-03 13:07:31 +01:00
Paul Holden 7cc42b6d97 Merge branch 'MDL-76780-master' of https://github.com/sarjona/moodle 2023-01-03 11:48:43 +00:00
Paul Holden b938034022 Merge branch 'MDL-75346-reset_dashboard_error' of https://github.com/leonstr/moodle 2023-01-03 11:28:19 +00:00
Sara Arjona 788a8d9598 MDL-76780 core: Add missing customfield to apis.json 2023-01-03 11:52:47 +01:00
Ferran Recio d789209f3e MDL-74989 core_courseformat: fix courseindex components init methods
The courseindex init methods contains static references to the class
name instead of a dynamic "this" reference. This makes harder for format
plugins to extend those classes as they need to override the init method
for no specific reason.
2023-01-03 11:10:33 +01:00
Paul Holden 42926069da Merge branch 'MDL-76188-master' of https://github.com/ferranrecio/moodle 2023-01-03 09:34:28 +00:00
Paul Holden 2f6ee403ef Merge branch 'MDL-75877-master' of https://github.com/JBThong/moodle 2023-01-03 09:27:51 +00:00
Paul Holden 63a43391ad Merge branch 'MDL-58615-master' of https://github.com/andrewnicols/moodle 2023-01-03 09:20:22 +00:00
Shamim Rezaie cf2b926f10 MDL-76657 gradebook: Remove hard-coded plugin names from unit test 2023-01-03 20:13:12 +11:00
Andrew Nicols 03b79c4921 MDL-32105 mod_glossary: Improve behat test 2023-01-03 15:31:48 +08:00
Andrew Nicols 623c8c1906 Merge branch 'MDL-32105-master' of https://github.com/Chocolate-lightning/moodle 2023-01-03 15:18:01 +08:00
Peter 8ab91e47b9 MDL-32105 mod_glossary: Restrict glossary aliases by set of keywords 2023-01-03 13:45:18 +08:00
Andrew Nicols 1ac2eb53fb MDL-58615 core: Remove the useexternalyui setting
I have opted not to go through any deprecation process for this as there
is not really much we can do about it anyway. There is no loss of
functionality - just a change of where things are served from.

The Yahoo! CDN was only used for http connections as it did not
officially support SSL, and it is not guaranteed to continue existing in
the future since YUI has been deprecated for a number of years now.
2023-01-03 11:43:01 +08:00
Huong Nguyen ef8420e5a3 MDL-74822 usertours: Fix accessibility issues with user tours
Including in this commit:
 - Prevent the tour to be displayed if the CSS is disabled by the browser
 - Removed redundant tabindex=0 attribute on the target
 - Created extra code to re-calculate the suitable position of the tour
 - Fixed tour issue in 200% and 400% zoom
 - Fixed tour highlight is not correct in 200% and 400%
2023-01-03 10:34:48 +07:00
Thong Bui c0903eade7 MDL-75877 workshop: Refactor outputs in view.php 2023-01-03 10:20:52 +07:00
Sara Arjona decf1ba332 Merge branch 'MDL-60038-master' of https://github.com/aneno-m-e/moodle 2023-01-02 16:35:16 +01:00
Luca Bösch 3f489e2d2a MDL-71506 mod_choice: suppress non respondents in downloads if set so. 2023-01-02 15:54:25 +01:00
Sara Arjona ac023fbfb2 Merge branch 'MDL-76106-master' of https://github.com/NashTechOpenUniversity/moodle 2023-01-02 13:07:34 +01:00
Sara Arjona 6821897849 Merge branch 'MDL-76760' of https://github.com/paulholden/moodle 2023-01-02 12:27:34 +01:00
Ferran Recio 63a7c58ee3 MDL-76188 core_courseformat: migrate highlight to reactive component
The highlight and unhighlight sections applies only to the format_topics
plugins. With this commit all the related code is migrated to reactive
component and format_topics extend the current course editor to add all
the logic
2023-01-02 11:39:52 +01:00
Sara Arjona 912aaf5649 Merge branch 'MDL-76301' of https://github.com/dravek/moodle 2023-01-02 10:59:15 +01:00
Paul Holden 121f5b6300 MDL-76221 core: method to filter by defined properties of persistent. 2022-12-29 14:02:58 +00:00
Paul Holden 5162a7882d MDL-76181 reportbuilder: sort columns during stress testing. 2022-12-29 13:59:31 +00:00
Sara Arjona 12e9d9e1bf weekly release 4.2dev 2022-12-29 12:57:40 +01:00
Sara Arjona 2528ff0664 Merge branch 'MDL-76399-patch-master' of https://github.com/ilyatregubov/moodle 2022-12-29 09:12:05 +01:00
Ilya Tregubov e3d5313d55 MDL-76399 behat: switch to appropriate Behat step for selects. 2022-12-29 14:57:31 +07:00
Ilya Tregubov 74aeed54a4 Merge branch 'm42_MDL-69581_Improve_MySQL_MariaDB_Server_Version_Detection_v3' of https://github.com/scara/moodle 2022-12-29 10:30:44 +07:00
Ilya Tregubov e93d2b0cbe Merge branch 'MDL-76399' of https://github.com/paulholden/moodle 2022-12-29 09:40:51 +07:00
Sara Arjona bb883d95aa Merge branch 'MDL-76153' of https://github.com/paulholden/moodle 2022-12-28 18:50:28 +01:00
Sara Arjona 2842575f95 Merge branch 'MDL-76479' of https://github.com/paulholden/moodle 2022-12-28 18:37:39 +01:00
Sara Arjona ec6e4419ed Merge branch 'MDL-76154' of https://github.com/paulholden/moodle 2022-12-28 18:32:01 +01:00
Sara Arjona 7f10321d79 Merge branch 'MDL-76004-master' of https://github.com/aanabit/moodle 2022-12-28 18:22:29 +01:00
Sara Arjona 8b61e8c7ce Merge branch 'MDL-72523' of https://github.com/paulholden/moodle 2022-12-28 13:01:33 +01:00
Sara Arjona 3dd93ffc5e Merge branch 'MDL-76617' of https://github.com/stronk7/moodle 2022-12-28 12:42:12 +01:00
Paul Holden a6e45197ca MDL-72523 calendar: return original focus from event modals. 2022-12-28 11:14:38 +00:00
Huong Nguyen 887f193c38 MDL-72523 javascript: Introduce setReturnElement for core/modal 2022-12-28 11:14:38 +00:00
Sara Arjona 53754b776c Merge branch 'MDL-72563-master' of https://github.com/KepaUrzelai/moodle 2022-12-28 12:13:09 +01:00
Sara Arjona 94b9eb947b Merge branch 'MDL-69071' of https://github.com/paulholden/moodle 2022-12-28 11:41:04 +01:00
Paul Holden 3982341f7a MDL-76760 tool_behat: defer library loading until service execution.
Ensures that API documentation can be generated without requiring
the presence of the `vendor/` directory.
2022-12-28 10:08:10 +00:00
Matteo Scaramuccia 0131c3be00 MDL-69581 dml: Improve MySQL/MariaDB server version detection
Add 'versionfromdb' to opt-in for VERSION() query.

mariadb_native_moodle_database::get_server_info() has been removed
to avoid the specific override: everything is now managed in the base
method which takes care of both MySQL and MariaDB versioning details.

New protected methods have been added too to improve the testing strategy,
allowing to mock the results from an actual DB connection.
The new testing strategy enables simulating even the Azure scenarios.
2022-12-28 10:59:45 +01:00
Sara Arjona 69ffc40621 Merge branch 'MDL-76304-master-add_pagesize_to_webservice' of https://github.com/alexmorrisnz/moodle 2022-12-28 10:23:42 +01:00
Sara Arjona 0adda8c66b Merge branch 'MDL-76734-master' of https://github.com/andrewnicols/moodle 2022-12-28 10:04:25 +01:00
Sara Arjona 0d31e86687 Merge branch 'MDL-74145' of https://github.com/paulholden/moodle 2022-12-28 09:56:13 +01:00
Ilya Tregubov dee383a0fa Merge branch 'MDL-76731_master' of https://github.com/PhilippImhof/moodle 2022-12-28 15:13:21 +07:00
Ilya Tregubov 1e4612ddb5 Merge branch 'MDL-76129-master' of https://github.com/sammarshallou/moodle 2022-12-28 11:26:26 +07:00
Sara Arjona 407f0604ba Merge branch 'MDL-76679' of https://github.com/paulholden/moodle 2022-12-27 16:55:17 +01:00
Sara Arjona 0b733266b0 Merge branch 'MDL-72775-master' of https://github.com/QihuiChan/moodle 2022-12-27 16:12:50 +01:00
Amaia Anabitarte f8ec9e6893 MDL-76578 core_course: One section per page summary information 2022-12-26 16:04:09 +01:00
Meirza fbc2732d9f MDL-76508 templates: Handling non-JSON string
When the param string contains a left curly bracket as the first character,
the system will assume the string is a JSON string and will be parsed and returned as an object.
But in some cases, the string is not JSON and will return an error if the system parses it.
For example, a user might have used the course name with a left curly bracket as the first character.
Adding a double quote after the left curly bracket to differentiate between string and JSON string,
so it can be safe to parse the string, and also added try..catch to ensure that the parsing creates an object type.
2022-12-23 09:57:36 +07:00
Qihui Chan 791e56d3bc MDL-72775 tool_task: check long running tasks 2022-12-23 09:41:05 +10:00
Noemie Ariste 60d3823bec MDL-60038 moodlelib: ignore site policy if user auth type = 'webservice' 2022-12-23 10:11:11 +13:00
Eloy Lafuente (stronk7) 47435471ee MDL-76617 store_mongodb: Adjust moodle to mongo-php-library to v1.15.0
The new library version should work without problems with older
php-mongodb extension versions:
- v1.15.0 (paired version, tested).
- v1.14.1 (tested)

But, in order to keep them paired, the requirements have been
raised to the extension v1.15.0. See:

https://www.mongodb.com/docs/drivers/php/#compatibility
2022-12-22 19:36:36 +01:00
Eloy Lafuente (stronk7) c5efd54971 MDL-76617 store_mongodb: Update mongo-php-library to v1.15.0
This updates the library from v1.13.1. Fixes some php81 warnings
leading to failed/risky tests.

The new library version should work without problems with older
php-mongodb extension versions:
- v1.15.0 (paired version, tested).
- v1.14.1 (tested)
2022-12-22 19:36:36 +01:00
Philipp Imhof 75be72b2d6 MDL-76731 behat: add steps to check for version
Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2022-12-22 17:13:02 +01:00
Tony Butler 2970988674 MDL-53137 qtype_numerical: Swap geo tolerance limits for -ve answers 2022-12-22 15:31:12 +00:00
Ilya Tregubov 15a695d573 weekly release 4.2dev 2022-12-22 19:16:24 +07:00
Ilya Tregubov 564e89d62e Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-12-22 19:16:22 +07:00
sam marshall 0b2c2a1f95 MDL-76129 upgrade: Allow caching in specific functions
During install/upgrade, caching is disabled. This change provides a
way to temporarily enable caching (using in-memory cache storage only)
within a specific function; caches are deleted afterwards.

Adding this to two locations improves install performance quite a lot.

Caching is not enabled during the parts of plugin installation that
can vary for individual plugins (install.php/upgrade.php) as these
might be relying on its absence, for example by making direct database
changes.
2022-12-22 11:05:45 +00:00
sam marshall 7724e543ff MDL-76129 accesslib: Speed up adding new cloned capabilities
Adding new capabilities can be slow if they have permissions cloned
from an existing capability, and if there are many places in the
database where the existing capability was overridden.

This change optimises the clone-capability performance, approximately
halving the number of queries required.
2022-12-22 11:05:39 +00:00
sam marshall fe6a51265a MDL-76129 accesslib: Improve performance of adding new capabilities
Adding multiple capabilities was very slow because it clears and
rebuilds the capability cache after each one. This change makes it
clear the cache once after adding all capabilities, before adding
permissions to the archetype roles.
2022-12-22 11:05:14 +00:00
Ilya Tregubov 28f7a7c7b2 Merge branch 'MDL-76667' of https://github.com/paulholden/moodle 2022-12-22 12:24:57 +07:00
Ilya Tregubov e133891051 Merge branch 'MDL-74609-patch' of https://github.com/ilyatregubov/moodle 2022-12-22 12:24:57 +07:00
Paul Holden a48f53ec1c Merge branch 'MDL-75965-master' of https://github.com/HuongNV13/moodle 2022-12-22 12:24:57 +07:00
Tim Hunt 7622b4a1f7 MDL-74609 Quiz: question number customisation - fixup Behat 2022-12-22 12:24:57 +07:00
Andrew Nicols a13484242b MDL-75105 tool_behat: Coding style fixes 2022-12-22 12:24:57 +07:00
Andrew Nicols 98cc2716f0 Merge branch 'MDL-75105_master' of https://github.com/marxjohnson/moodle 2022-12-22 12:24:57 +07:00
Andrew Nicols 411d3730d9 Merge branch 'MDL-74609' of https://github.com/mkassaei/moodle 2022-12-22 12:24:57 +07:00
Paul Holden 7a7b970640 Merge branch 'MDL-75667-master' of https://github.com/farhan6318/moodle 2022-12-22 12:24:57 +07:00
Paul Holden 88339b4e67 Merge branch 'MDL-75914-master' of https://github.com/meirzamoodle/moodle 2022-12-22 12:24:57 +07:00
Thong Bui 4dc5d9e97f MDL-75978 Quiz\D&D: on mobile, a moving line-wrap can bork the question 2022-12-22 10:08:29 +07:00
AMOS bot 377e66bf0f Automatically generated installer lang files 2022-12-22 00:07:46 +00:00
Mahmoud Kassaei 2074448b34 MDL-74609 Quiz: allow the displayed question numbers to be customised 2022-12-21 12:04:30 +00:00
Meirza e33194755f MDL-75914 webservice: Added fake URL to avoid debugging output.
Webservice doesn't need to set the page URL. Hence,
any function that requires a page URL will raise debugging output.
The patch fixes it by adding a fake URL for the webservice.
The patch also removed assertDebuggingCalled because it is no longer needed.
2022-12-21 16:30:21 +07:00
Mark Johnson b05efb43a4 MDL-75105 tool_behat: List available data generators
This will find all data generators that can be used in behat via the
'the following "something" exist:' step, and display them in a select
list on the step definitions page.

When a generator is selected, it will fetch the required fields for that
generator and display them on the page.
2022-12-21 08:38:09 +00:00
Huong Nguyen fc7ecd4c73 MDL-75965 question_multichoice: Misalignment of feedback icons 2022-12-21 13:39:24 +07:00
Andrew Nicols c7dd76dadb MDL-76734 editor_tiny: Listen to TinyMCE submit events
jQuery submit events do not trigger the native submit event, and
therefore the TinyMCE submit listener is not called. This means that the
tinymce.triggerSave() function is not called, and the editor content is
not saved.

To work around this, if there is a form for the Node that the editor is
attached to, the jQuery submit event is listened to and the save event
called.

Unfortunately it is not possible to use a global jQuery submit listener
added to the document to save all editors on the page.
In some cases, this is too late because the bubbling process means that
a child node consumer may attempt to consume the data before the
delegated handler is called for the document.
2022-12-21 13:02:21 +08:00
Ilya Tregubov 72b9e745c3 Merge branch 'MDL-76727-master' of https://github.com/andrewnicols/moodle 2022-12-21 09:49:43 +07:00
Farhan Karmali bb82d29dd9 MDL-75667 admin: Fix cross db query issue for blocks 2022-12-20 17:29:13 +05:30
Paul Holden a70ad5036a Merge branch 'MDL-75279' of https://github.com/spvickers/moodle 2022-12-20 10:27:32 +00:00
Paul Holden 12d8884406 Merge branch 'MDL-76138-master' of https://github.com/Chocolate-lightning/moodle 2022-12-20 09:42:32 +00:00
Paul Holden 27ebde570f MDL-76153 blog: add comments to blogs custom report source. 2022-12-20 09:32:11 +00:00
Paul Holden 224b3ab51f MDL-76154 blog: add files/attachments to custom report source. 2022-12-20 09:31:29 +00:00
Mihail Geshoski ba93fe345a MDL-76138 gradereport_grader: Create basic action bar 2022-12-20 10:51:47 +08:00
Andrew Nicols 171149b2a2 MDL-76727 core: Allow phpcs configuration to be overridden locally
This change reduces the priority of the shipped phpcs configuration to
allow for local overrides.

This is beneficial in several situations:
- when users wish to apply stricter or additional standards
- when the integration team wishes to trial new rules
2022-12-20 09:34:47 +08:00
Stephen Vickers 073ba9ec63 MDL-75279 mod_lti: Add username to NRPS response 2022-12-19 17:13:42 +00:00
Paul Holden 5be3686da6 Merge branch 'MDL-72906' of https://github.com/tdjones/moodle 2022-12-19 10:23:03 +00:00
Alex Morris ab03eb210d MDL-76304 reportbuilder: Add pagesize parameter to get webservice 2022-12-19 16:59:27 +13:00
Ilya Tregubov e0a8a3bf52 Merge branch 'MDL-74779-master' of https://github.com/ssj365/moodle 2022-12-19 09:43:38 +07:00
Leon Stringer 199ce65ec0 MDL-75346 core_my: Handle missing blocks on reset
If the default dashboard contained a block that was missing from disk
then "Exception - Call to a member function instance_copy() on bool"
was shown to users.  This change only shows an error with debugging
enabled which now includes the name of the missing block.
2022-12-17 17:37:45 +00:00
AMOS bot 8a128e81c2 Automatically generated installer lang files 2022-12-16 21:03:08 +00:00
Paul Holden 2f29c6fa5e Merge branch 'MDL-75667-master' of https://github.com/farhan6318/moodle 2022-12-16 13:44:56 +00:00
Farhan Karmali b4e5e47a0f MDL-75667 admin: Avoid DB calls within loops on admin/blocks.php 2022-12-16 18:53:58 +05:30
Paul Holden 5185558105 MDL-76399 question: switch to appropriate Behat step for selects. 2022-12-16 13:08:56 +00:00
David Matamoros facc3322e4 MDL-76301 course: Add course overview files to courses datasource 2022-12-16 13:56:15 +01:00
Paul Holden 7d78fb0928 MDL-76399 behat: improvements to "should exist in" thrown exception. 2022-12-16 12:30:03 +00:00
Paul Holden 2d5b6d0e01 MDL-74145 reportbuilder: system report API for adding row checkboxes. 2022-12-16 12:09:28 +00:00
Paul Holden d73a92ca4a Merge branch 'MDL-76026' of https://github.com/AnupamaSarjoshi/moodle 2022-12-16 09:53:40 +00:00
Andrew Nicols 5019abfdd6 weekly release 4.2dev 2022-12-16 09:05:48 +08:00
Paul Holden 9fa7119da1 MDL-69071 core: retrieve full result from remote content.
Use the full result from download_file_content within the component
installer to ensure that spurious debugging is not emitted during
operation. Handle validation of the returned data consistently.
2022-12-15 17:19:22 +00:00
Andrew Nicols 793b0f0ed9 MDL-74923 quiz: Remove erroneous merge conflict line 2022-12-15 14:45:41 +08:00
Andrew Nicols ee48f4ab99 Merge branch 'MDL-74923' of https://github.com/timhunt/moodle 2022-12-15 07:35:46 +08:00
Tim Hunt 66c3c378a0 MDL-74923 quiz: tidy the report base classes 2022-12-14 22:38:11 +00:00
Tim Hunt 8cbc6acb17 MDL-74923 quiz: move report base classes to local folder 2022-12-14 22:38:11 +00:00
Paul Holden 698afd1708 MDL-76679 admin: correct password config field template.
The template changes were missed as part of 0795b579, update them
to match so that they continue to work with the unmask JS module.
2022-12-14 19:07:10 +00:00
Sara Arjona 78827384e4 Merge branch 'MDL-76674' of https://github.com/stronk7/moodle 2022-12-14 18:34:44 +01:00
Sara Arjona e0f6940bb2 Merge branch 'MDL-75805' of https://github.com/paulholden/moodle 2022-12-14 18:12:50 +01:00
Sara Arjona d98be6a34e Merge branch 'MDL-71096' of https://github.com/stronk7/moodle 2022-12-14 17:51:44 +01:00
Sara Arjona 63cbadb161 Merge branch 'MDL-75943' of https://github.com/roland04/moodle 2022-12-14 17:29:13 +01:00
Amaia Anabitarte 2d1883c92e MDL-76004 core_h5p: Ensure the browser is serving updated file 2022-12-14 16:02:44 +01:00
Eloy Lafuente (stronk7) 608d1ccc28 MDL-76674 core_lang: Add string for new America/Ciudad_Juarez 2022-12-14 15:49:23 +01:00
Paul Holden 5158be1b64 Merge branch 'MDL-76666' of https://github.com/stronk7/moodle 2022-12-14 13:22:01 +00:00
Mikel Martín 97be42d99b MDL-75943 reportbuilder: Refactor scss to support force card/table view 2022-12-14 13:52:44 +01:00
Mikel Martín 91cc98ed3d MDL-75943 reportbuilder: Add custom attributes to reports 2022-12-14 13:50:40 +01:00
Eloy Lafuente (stronk7) 9a6701c572 MDL-76666 local_langimport: Better handling of long locales
Under some linux versions, and depending of the configured
locale categories, it's possible to get a current locally
which length > 255 when calling to setlocale(LC_ALL, 0).

Later, if that long locale is tried to be restored, there
is a "setlocale(): Specified locale name is too long" warning
error.

When that happens we need to split the long locale into
individual chunks and set all the (six) locale categories
supported one by one.

Covered with tests, note that, in practice, this only
happens with linux because it supports 12 locale categories
@ OS level. Both BSD (6) and Windows (5) hardly can reach the limit.

No matter of that, the tests have been designed to ensure that
they pass on all OSs, just the new code only will be executed
on linux.
2022-12-14 12:24:15 +01:00
Paul Holden f550239e78 MDL-75177 reportbuilder: preload context data for column callback.
Improve performance/reduce query count by requesting all necessary
data as part of initial column SQL. See also dc60fe66.
2022-12-14 09:52:55 +00:00
Sara Arjona dd83fb0bba Merge branch 'MDL-75441-master' of https://github.com/aanabit/moodle 2022-12-14 09:57:03 +01:00
Anupama Sarjoshi 89287ec744 MDL-76026 Question bank: Fix errors related to categories renaming
This part of the code in 'question_category_object.php' 'update_category' method was used before Moodle 4.0 version for renaming
the random questions in an updated category. For Moodle 4.0 and later versions, it is unnecessary as the details of
random questions are no more stored in 'question' table but in 'question_set_references' table.
The method call move_question_set_references handles the same.
2022-12-13 18:16:52 +00:00
Amaia Anabitarte 31d84aaa2c MDL-75441 mod_forum: Show add new post button to guest users 2022-12-13 18:49:53 +01:00
Tim Hunt 9efec07f77 MDL-74923 quiz: move admin setting classes to mod_quiz\admin namespace 2022-12-13 16:24:58 +00:00
Tim Hunt 48ffa04076 MDL-74923 quiz: tidy qubaids classes
Including removing an almost duplicate task
2022-12-13 16:24:58 +00:00
Tim Hunt 066b7f33d7 MDL-74923 quiz: move qubaids_for_quiz & ..._user to classes folder 2022-12-13 16:24:57 +00:00
Tim Hunt 3e05d77874 MDL-74923 quiz: clean up the display_options class 2022-12-13 16:24:57 +00:00
Tim Hunt cefbf74d02 MDL-74923 quiz: move mod_quiz_display_options to classes folder 2022-12-13 16:24:57 +00:00
Sara Arjona 70c3a5a4ad Merge branch 'MDL-73503-master' of https://github.com/sh-csg/moodle 2022-12-13 15:34:22 +01:00
Paul Holden b67b4791b5 MDL-76667 forms: mark modal form as submitted upon success.
Ensure the form change checker module doesn't warn user about it.
2022-12-13 14:22:47 +00:00
Andrew Nicols c6e9959a40 Merge branch 'MDL-76235' of https://github.com/paulholden/moodle 2022-12-13 20:56:32 +08:00
Andrew Nicols 21e2972b38 Merge branch 'MDL-74874' of https://github.com/uzimike/moodle 2022-12-13 20:34:34 +08:00
Andrew Nicols c198147268 Merge branch 'MDL-76509-master' of https://github.com/safatshahin/moodle 2022-12-13 20:30:57 +08:00
Andrew Nicols 3218a8feda Merge branch 'MDL-76536' of https://github.com/paulholden/moodle 2022-12-13 11:38:06 +08:00
Andrew Nicols 983fadf268 MDL-76293 gradebook: Address coding violations
This includes a data provider which had the 'test_' prefix and was
therefore run as a test.
2022-12-13 11:05:36 +08:00
Andrew Nicols 3c12e4168e Merge branch 'MDL-76293' of https://github.com/mkassaei/moodle 2022-12-13 11:00:30 +08:00
Safat 307f832732 MDL-76509 core: Upgrade error resolve for slot tags 2022-12-13 12:45:32 +11:00
Shamiso.Jaravaza 05d5d089ee MDL-74779 mod_bigbluebuttonbn: Fix recording sort
AMOS BEGIN
 MOV [config_recordings_sortorder,mod_bigbluebuttonbn],[config_recordings_asc_sort,mod_bigbluebuttonbn]
 MOV [config_recordings_sortorder_description,mod_bigbluebuttonbn],[config_recordings_asc_sort_description,mod_bigbluebuttonbn]
AMOS END
2022-12-12 13:34:44 -07:00
Stefan Hanauska e6753b2e95 MDL-73503 report: Add filtering by section to report_progress 2022-12-12 21:12:02 +01:00
Sara Arjona b5e2829f66 Merge branch 'MDL-75594-master' of https://github.com/sh-csg/moodle 2022-12-12 17:58:30 +01:00
Sara Arjona 86218ccb3d Merge branch 'MDL-72451_master' of https://github.com/marxjohnson/moodle 2022-12-12 17:34:07 +01:00
Stefan Hanauska 6378a41995 MDL-75594 course: Add beforemod parameter 2022-12-12 14:39:53 +01:00
hieuvu 0f5c8f020d MDL-76106 qtype_ddmarker: fix the missing maker issue.
We will not calculate old maker position again and using old data.
This will make sure the position of makers is correct
when the background image is smaller than dropzone.
2022-12-12 20:32:43 +07:00
Andrew Nicols 82fe292772 Merge branch 'MDL-71261' of https://github.com/timhunt/moodle 2022-12-12 21:20:56 +08:00
Rex Lorenzo ebeaa4b3f2 MDL-71261 mod_quiz: Quiz user override should only get enrolled users
Also update similar code in mod_assign to use the improved APIs.

Co-Authored-By: Tim Hunt <T.J.Hunt@open.ac.uk>
2022-12-12 12:29:19 +00:00
Sara Arjona 346db64871 Merge branch 'MDL-75571' of https://github.com/jacdsouza/moodle 2022-12-12 11:23:12 +01:00
Khoa Nguyen Dang 315efa2db2 MDL-76308 Question\D&D: The draggable area is slim characters to select 2022-12-12 14:02:56 +07:00
Andrew Nicols 19d1fb336c Merge branch 'MDL-76398' of https://github.com/paulholden/moodle 2022-12-11 20:20:02 +08:00
Andrew Nicols a98bc10c57 Merge branch 'm42_MDL-72461_Moodle_JS_Files_Should_Be_Always_Served_By_JS_Handler' of https://github.com/scara/moodle 2022-12-11 20:08:09 +08:00
Jackson D'souza 4c5b4003c3 MDL-75571 tool_componentlibrary: Custom activity icon 2022-12-09 15:53:23 +00:00
Jackson D'souza aa3efc27ff MDL-75571 theme_boost: Activity icon
* Use Activity get_icon_url helper method to fetch icon.
2022-12-09 15:53:23 +00:00
Jackson D'souza 771b587a54 MDL-75571 block_timeline: Display custom activity icon if available. 2022-12-09 15:53:23 +00:00
Jackson D'souza 3d05ebca36 MDL-75571 calendar: Activity icon
* Use Activity get_icon_url helper method to fetch icon.
2022-12-09 15:53:23 +00:00
Sara Arjona 9d6eecb4ae Merge branch 'MDL-76274-master' of https://github.com/cameron1729/moodle 2022-12-09 16:18:00 +01:00
Matteo Scaramuccia 71883c2add MDL-72461 core: Required JS files in $PAGE served by the Moodle handler 2022-12-09 13:47:19 +01:00
Paul Holden 7bab1754c4 MDL-76536 enrol: prevent invalid role assignments in course creation.
Upgrade step to fixup existing bad data.
2022-12-09 11:38:41 +00:00
Paul Holden 253c041297 MDL-75805 admin: allow multiselect when editing site administrators. 2022-12-09 11:22:07 +00:00
Paul Holden 652b2e496a MDL-76235 core: compare email diversion exceptions case-insensitively.
Co-authored-by: Jan Kristoffer Roth <roth@dhbw-mosbach.de>
2022-12-09 11:19:18 +00:00
Eloy Lafuente (stronk7) 28937d4243 MDL-71096 core: Add meta information about APIs to core
Right now we have the information only in docs:
  - https://docs.moodle.org/dev/Core_APIs
  - https://moodledev.io/docs/apis

And, in fact, we are crawling those pages to get the information
from various tools (moodlecheck, CiBoT...). Obviously, that's far
from ideal, the source only has the current list of APIs, and
there isn't much information there but the names.

So we are moving the source of information to be in core, so it
can be modified between branches, and contains richer information:
 - The component the API belongs to, usually a subsystem or core.
 - If the API can be used as level 2 namespace.
 - If the API can be used as level 2 namespace out from its component.

Note that all that information has NO USES right now in core (and maybe
never will), but tools/checkers will benefit enormously by having that
information at hand, so we can check for namespaces, categories and
other bits way better.

Also, once we have this, the APIs dev documents linked above, surely
can be improved by being automatically generated and include all the
meta-information available.

It also includes a very basic json schema validating the basis. It can
be tried online @ https://www.jsonschemavalidator.net , or any other
tool. PHP requires extra libraries to be able to perform the validation.

Covered with unit tests, both api-related functions and structure validation.
2022-12-09 10:49:12 +01:00
Sara Arjona 40a89d8a9a weekly release 4.2dev 2022-12-09 08:56:53 +01:00
Jun Pataleta ae2a313c95 Merge branch 'MDL-76556-master' of https://github.com/andrewnicols/moodle 2022-12-08 10:07:52 +08:00
Andrew Nicols 6982caf746 Merge branch 'MDL-76491' of https://github.com/paulholden/moodle 2022-12-08 08:08:19 +08:00
Andrew Nicols 1e594c9777 Merge branch 'MDL-76550' of https://github.com/AnupamaSarjoshi/moodle 2022-12-08 07:53:09 +08:00
Andrew Nicols 7aeb1f68e9 Merge branch 'MDL-76074-master' of https://github.com/srobotta/moodle 2022-12-08 07:26:24 +08:00
Andrew Nicols bf5efe9d0b Merge branch 'MDL-76116-master' of https://github.com/meirzamoodle/moodle 2022-12-08 06:14:24 +08:00
Sara Arjona 81a7a50ff1 Merge branch 'MDL-75588-master' of https://github.com/HuongNV13/moodle 2022-12-07 19:31:04 +01:00
Sara Arjona ec3a401015 Merge branch 'MDL-76575-master' of https://github.com/HuongNV13/moodle 2022-12-07 18:32:13 +01:00
Sara Arjona d66ca7decc Merge branch 'MDL-76500' of https://github.com/paulholden/moodle 2022-12-07 18:27:46 +01:00
Trevor Jones c49806941c MDL-72906 Quiz: Prevent scrollbar on multichoice
Remove negative margin from the "clear my choice" anchor.
With the negative margin, when the containing box height is calculated
the anchor's hidden style overflows beyond the boundary and triggers
the overflow:auto to add a scroll bar.
2022-12-07 10:24:34 -07:00
Sara Arjona 315f1dafd8 Merge branch 'MDL-76193-master' of https://github.com/JBThong/moodle 2022-12-07 17:26:11 +01:00
Sara Arjona 592de63edb Merge branch 'MDL-76571' of https://github.com/timhunt/moodle 2022-12-07 17:17:23 +01:00
Tim Hunt 83c9a6d311 MDL-76571 quiz reports: should not show description items
... or anything else with length = 0. This got broken in MDL-71696.

The only way to fix this kind-of involves and API change to
quiz_report_get_significant_questions. However, it is only changing
the external API of this function back to how it was before the 4.0 release,
and the chnages in 4.0 were never documented, nor, I would guess, intended,
since they just broke things.
2022-12-07 14:54:40 +00:00
Jun Pataleta 5935cd22c1 Merge branch 'MDL-76559-master' of https://github.com/andrewnicols/moodle 2022-12-07 22:41:20 +08:00
Andrew Nicols 7ce68020b8 MDL-76559 core: validate_email does not take false either 2022-12-07 21:40:18 +08:00
Sara Arjona 1cfa7fc788 Merge branch 'MDL-76273' of https://github.com/paulholden/moodle 2022-12-07 12:51:08 +01:00
Huong Nguyen e1001e2f26 MDL-75588 assign: Reset completion status when resetting a submission 2022-12-07 16:15:30 +07:00
Huong Nguyen dd6349c39f MDL-76575 tiny_media: Remove unnecessary console log 2022-12-07 15:50:01 +07:00
Jun Pataleta 51d1448b06 Merge branch 'MDL-73017_add-environment-check-for-versions-not-supporting-php-8-1' of https://github.com/ziegenberg/moodle 2022-12-07 13:47:04 +08:00
Meirza 883c1becc5 MDL-76116 mnet: styling the delete key confirmation window properly 2022-12-07 11:14:05 +07:00
Jun Pataleta 5bc72f5176 Merge branch 'MDL-76559-master' of https://github.com/andrewnicols/moodle 2022-12-06 23:19:53 +08:00
Andrew Nicols f375cac31a MDL-76559 core: validate_email should not accept empty values 2022-12-06 20:53:30 +08:00
Jun Pataleta daa506a037 Merge branch 'MDL-76476' of https://github.com/paulholden/moodle 2022-12-06 19:34:40 +08:00
Jun Pataleta ab10635ef1 Merge branch 'MDL-75381' of https://github.com/paulholden/moodle 2022-12-06 19:24:41 +08:00
Ilya Tregubov e641428826 Merge branch 'MDL-76490' of https://github.com/paulholden/moodle 2022-12-06 13:09:21 +03:00
Paul Holden 7906f48c6f MDL-76500 grade: fix grade form when item cannot be overridden. 2022-12-06 09:20:09 +00:00
Ilya Tregubov aaa20901b2 Merge branch 'MDL-76446' of https://github.com/paulholden/moodle 2022-12-06 12:18:52 +03:00
Mahmoud Kassaei 20d2752f93 MDL-76293 Gradebook: PHPUnit fails when plugins are not expected 2022-12-06 08:34:50 +00:00
Cameron Ball 3c67e41d0e MDL-76274 assignfeedback_editpdf: Fix upgrade step for stale conversions 2022-12-06 16:00:26 +08:00
Ilya Tregubov ac60253859 Merge branch 'MDL-75516' of https://github.com/larsbonczek/moodle 2022-12-06 10:37:46 +03:00
Andrew Nicols c69902f846 Merge branch 'MDL-75446-master' of https://github.com/andelacruz/moodle 2022-12-06 15:15:48 +08:00
Andrew Nicols 425d4f2583 Merge branch 'MDL-75573' of https://github.com/paulholden/moodle 2022-12-06 13:54:26 +08:00
Andrew Nicols 3365e5a4e6 Merge branch 'MDL-76145-master' of https://github.com/meirzamoodle/moodle 2022-12-06 13:35:46 +08:00
Paul Holden 79bd94089f MDL-76273 core: multi-byte character filename support for TCPDF.
See: https://github.com/tecnickcom/TCPDF/pull/562
2022-12-05 15:03:15 +00:00
Paul Holden 23930c2516 MDL-76490 behat: use defined step for interaction with autocomplete. 2022-12-05 14:02:33 +00:00
Marina Glancy 8d86f30351 MDL-76490 behat: correct step for opening autocomplete in container. 2022-12-05 14:01:55 +00:00
Andrew Nicols aea298513e MDL-76569 editor_tiny: Set table row header style
Configure Tiny to use markup of:

table > thead > tr > th

For all table headers.
2022-12-05 20:49:17 +08:00
Sara Arjona 46114474e4 Merge branch 'MDL-75789' of https://github.com/paulholden/moodle 2022-12-05 12:53:36 +01:00
Anupama Sarjoshi 9e77d14a7b MDL-76550 Quiz and qbank: Fix display of Category and question names 2022-12-05 11:48:43 +00:00
Sara Arjona d5b3abde3c Merge branch 'MDL-76166-username-logging' of https://github.com/brendanheywood/moodle 2022-12-05 12:44:17 +01:00
Ilya Tregubov ff871829c5 Merge branch 'MDL-75788-master' of https://github.com/lameze/moodle 2022-12-05 14:31:16 +03:00
Sara Arjona 474f92910a Merge branch 'MDL-76482-master' of https://github.com/andrewnicols/moodle 2022-12-05 12:03:57 +01:00
Daniel Ziegenberg afe68a65cb MDL-73017 env: Moodle 3.9.x, 3.11.x and 4.0.x do not support PHP 8.1
This commit adds an additional environment check for the unsupported
PHP 8.1 version to Moodle 3.9.x, 3.11.x and 4.0.x.

It also updates the lang string for unsupported PHP version.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-12-05 11:39:14 +01:00
Angelia Dela Cruz 11caf95cb9 MDL-75446 behat: Workshop behat generators use UI
Replace steps that manually add Workshop instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2022-12-05 16:09:05 +08:00
Paul Holden aa1970ffa4 MDL-76479 reportbuilder: date filtering by hour. 2022-12-05 06:50:07 +00:00
Ilya Tregubov ea8710f2c9 Merge branch 'MDL-76330-master' of https://github.com/sh-csg/moodle 2022-12-05 09:21:09 +03:00
Jun Pataleta e07adad35f Merge branch 'MDL-76225-master' of https://github.com/ferranrecio/moodle 2022-12-05 13:47:44 +08:00
Thong Bui 79d1b45ba7 MDL-76193 Questions: Backup and Restore with tags fails 2022-12-05 10:00:37 +07:00
Andrew Nicols a8f63b26be MDL-76556 tool_log: Set the store property correctly 2022-12-03 11:47:53 +08:00
Lars Bonczek e875c6118c MDL-75516 core: Perform proper JSON encoding in mustache quote helper 2022-12-02 13:39:58 +01:00
Ilya Tregubov fb27e80566 Merge branch 'MDL-76495-master' of https://github.com/marinaglancy/moodle 2022-12-02 13:48:11 +03:00
Paul Holden 077a30b7ff MDL-76491 javascript: add missing core/notification imports. 2022-12-02 10:05:28 +00:00
Paul Holden bc034026ed MDL-76491 javascript: prevent eslint undefined Notification import. 2022-12-02 10:05:28 +00:00
Paul Holden cccddcd7c0 MDL-76398 reportbuilder: use improved action menu steps in Behat.
Improved steps for using actions menus were added in 232ebac3, so
make use of them here for consistency/reliability.
2022-12-02 09:54:49 +00:00
Paul Holden e2a2332cc0 MDL-76398 behat: broader action menu partial matching by element.
For action menu elements whose trigger element isn't plain text
(e.g. a pix icon), we should be able to match via the title of
that element.
2022-12-02 09:54:49 +00:00
hieuvu ff342087da MDL-76106 qtype_ddmarker: Improve loading consistency.
Wait for the image to load completely before running the js.
2022-12-02 16:14:23 +07:00
Ilya Tregubov 357a937790 Merge branch 'MDL-75951-master' of https://github.com/andrewnicols/moodle 2022-12-02 11:55:35 +03:00
Stephan Robotta ecc6b31176 MDL-76074 completion: fixed filter in reports with custom user fields
When the site uses custom user text fields that would show up in a
user list, the filter for firstname or lastname didnt work anymore.
If a filter was used, no result would show up. Users where shown only
when the course reports where used without filters.
2022-12-02 09:42:35 +01:00
Dani Palou 6ab826fb23 MDL-75788 behat: Use profile field generators in existing tests 2022-12-02 14:54:47 +08:00
Dani Palou 3923ef9408 MDL-75788 testing: Handle new lines in menu profile field generator 2022-12-02 14:54:46 +08:00
Andrew Nicols fad9666817 MDL-75951 core: Update box/spout to address PHP 8.1 deprecation
This change is a direct pull from an upstream fix:
https://github.com/openspout/openspout/commit/64a09a748d04992d63b38712599a9d8742bd77f7

This addresses the deprecation of auto_detect_line_endings in PHP 8.1.
2022-12-02 13:58:05 +08:00
Ilya Tregubov e925e2984a Merge branch 'MDL-76494-master' of https://github.com/marinaglancy/moodle 2022-12-02 08:40:57 +03:00
Andrew Nicols 8ddbc7b055 Merge branch 'MDL-76493-master' of https://github.com/marinaglancy/moodle 2022-12-02 12:15:20 +08:00
Paul Holden be83010d4f MDL-75573 backup: translate async operation type in messages. 2022-12-01 19:48:29 +00:00
Stefan Hanauska d602d936ac MDL-76330 enrol: Check permission to show edit icon 2022-12-01 20:07:15 +01:00
Sara Arjona 1d863c338a weekly on-sync release 4.2dev 2022-12-01 16:08:29 +01:00
Sara Arjona 7418832f75 NOBUG: Fixed file access permissions 2022-12-01 16:08:29 +01:00
Simey Lameze 1531541451 MDL-76507 behat: change step to use 'Recent and next 60 days' option
It was detected that 'This month' option may cause failures in builds in between months
so using the 'Recent and next 60 days' still fixes the weekend scenario and also the
in between months issue.
2022-12-01 08:50:58 +01:00
Andrew Nicols e5f97c07cc Merge branch 'MDL-75604-master' of https://github.com/ssj365/moodle 2022-12-01 08:56:15 +03:00
Andrew Nicols dc3c0bbec3 Merge branch 'MDL-75281-master' of https://github.com/call-learning/moodle 2022-12-01 08:56:15 +03:00
Ilya Tregubov 05535e38df Merge branch 'MDL-76497-master' of https://github.com/junpataleta/moodle 2022-12-01 08:56:09 +03:00
Sara Arjona 919302aa1a Merge branch 'MDL-76226' of https://github.com/paulholden/moodle 2022-12-01 08:55:34 +03:00
Sara Arjona 58e7efd8d7 Merge branch 'MDL-76507-401' of https://github.com/lameze/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta 17c5b5f232 Merge branch 'MDL-76250' of https://github.com/paulholden/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta 3947ad99c1 Merge branch 'MDL-76483-master' of https://github.com/andrewnicols/moodle 2022-12-01 08:55:34 +03:00
Ilya Tregubov 9ba9589f09 Merge branch 'MDL-74853-master' of https://github.com/marinaglancy/moodle 2022-12-01 08:55:34 +03:00
Ilya Tregubov ad2b1af12b Merge branch 'MDL-76487-master' of https://github.com/andrewnicols/moodle 2022-12-01 08:55:34 +03:00
Andrew Nicols 3a62d00b28 Merge branch 'MDL-75826-master' of https://github.com/meirzamoodle/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta bc0c11a191 Merge branch 'MDL-68981-master' of https://github.com/HuongNV13/moodle 2022-12-01 08:55:34 +03:00
Andrew Nicols 0646f7ea5a Merge branch 'MDL-76183-master' of https://github.com/davewoloszyn/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta 760e29e2de Merge branch 'MDL-76284' of https://github.com/paulholden/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta ef089741f4 Merge branch 'MDL-76429' of https://github.com/stronk7/moodle 2022-12-01 08:55:34 +03:00
Andrew Nicols cd723a9bc1 Merge branch 'MDL-76380' of https://github.com/paulholden/moodle 2022-12-01 08:55:34 +03:00
Andrew Nicols b1e77fe1f3 Merge branch 'MDL-76218-master' of https://github.com/sammarshallou/moodle 2022-12-01 08:55:34 +03:00
Jun Pataleta 85e8177eac Merge branch 'MDL-75977' of https://github.com/stronk7/moodle 2022-12-01 08:55:33 +03:00
Andrew Nicols a4ad23b855 Merge branch 'MDL-76127-master' of https://github.com/meirzamoodle/moodle 2022-12-01 08:55:33 +03:00
Ilya Tregubov 72145fc34d Merge branch 'MDL-72019-master' of https://github.com/meirzamoodle/moodle 2022-12-01 08:55:33 +03:00
Laurent David e9844e380c MDL-75281 mod_bigbluebuttonbn: Upgrade failure when table exists
* Fix several upgrade script issue when the recording table exists or plugin has been
downgraded prior to 4.x upgrade
2022-11-30 20:17:13 +01:00
Shamiso.Jaravaza 4d64f23395 MDL-75604 mod_bigbluebuttonbn: Fix welcome section
* Removed welcome message from General settings
* Cleaned settings.php file to remove hardcoded add($item) after adding conditional element
2022-11-30 11:42:28 -07:00
Ferran Recio 8cb0c44e17 MDL-76225 core_courseformat: fix section title id 2022-11-30 16:44:48 +01:00
Simey Lameze 4be0e3541e MDL-76507 behat: use 'This month' option when exporting
This is necessary because 'This week' option is conditionally
hidden on weekends making behat builds to fail on those days.

Also, the last two steps had to be split because Bennu library
adds days with leading zero and moodle removes it by default.
2022-11-30 19:57:35 +08:00
Marina Glancy 8bababa369 MDL-76494 libs: patch Box::Spout for PHP 8.1 - calling basename on null 2022-11-30 10:30:34 +01:00
Andrew Nicols 6ab3740eb4 MDL-76482 output: The javascript mustache helper should return a string 2022-11-30 12:18:32 +08:00
Huong Nguyen 45e3d815b0 MDL-68981 tool_recyclebin: Force necessary settings when restoring
Created code to force the necessary settings for restore_item in:
  + course_bin class
  + category_bin class
2022-11-30 10:16:53 +07:00
David Woloszyn 126028cc76 MDL-76183 lib: Update Github URLs 2022-11-30 14:01:31 +11:00
Meirza ed5db9e301 MDL-76145 course: Avoid long course names that exceed available space
Co-authored-by: Stephen Sharpe <stephen.sharpe@synergy-learning.com>
2022-11-30 09:45:47 +07:00
Brendan Heywood d3789541ab MDL-76166 calendar: Ensure user is in server access logs 2022-11-30 13:25:21 +11:00
Brendan Heywood 825d11ec50 MDL-76166 auth: Ensure user is in server access logs 2022-11-30 13:25:20 +11:00
Jonathan Champ a45c8120c9 MDL-76506 cache_application: Fix MDL_PERF and perfdebug checks 2022-11-29 13:27:31 -05:00
Paul Holden 347bb143e7 MDL-76446 user: correct logic for multiple keyword search.
When the keyword participant filter was used with multiple values
in conjunction with other participants filters, the boolean logic
was effectively:

 X AND Y OR Z

When what we actually wanted was:

 X AND (Y OR Z)
2022-11-29 16:30:35 +00:00
Paul Holden e82198daf9 MDL-76476 tiny_media: don't load image preview if none exists. 2022-11-29 16:27:38 +00:00
Ilya Tregubov 08fc4f9589 Merge branch 'MDL-75463-master' of https://github.com/kevpercy/moodle 2022-11-29 13:24:43 +03:00
Andrew Nicols 62b6e49143 Merge branch 'MDL-76355-master' of https://github.com/marinaglancy/moodle 2022-11-29 17:29:49 +08:00
Andrew Nicols 14d8b7cf82 Merge branch 'MDL-75960-master' of https://github.com/andelacruz/moodle 2022-11-29 17:04:31 +08:00
Paul Holden 33c1fb4445 MDL-75381 gradereport_grader: ensure valid paging preference value.
Set type of the report paging setting to integer, to ensure usage
of it is predictable. Unsupported operated type errors were thrown
on PHP8.0 when it's value contained a string or was empty.
2022-11-29 08:41:33 +00:00
Paul Holden e5c6575bbd MDL-75789 restore: multi-byte safe substring calculating course names.
Co-authored-by: Leon Stringer <leon.stringer@ntlworld.com>
2022-11-29 08:32:22 +00:00
Andrew Nicols 9e2051931f Merge branch 'MDL-74823_upgrade-html-purifier-to-4-14-0' of https://github.com/ziegenberg/moodle 2022-11-29 16:24:31 +08:00
Andrew Nicols f4053b291b Merge branch 'MDL-65939-master' of https://github.com/ewallah/moodle 2022-11-29 15:41:14 +08:00
Andrew Nicols ab44f00548 Merge branch 'MDL-76058-master' of https://github.com/lameze/moodle 2022-11-29 15:36:55 +08:00
Andrew Nicols 5609715e6e Merge branch 'MDL-76088-master' of https://github.com/marinaglancy/moodle 2022-11-29 15:09:27 +08:00
Andrew Nicols b4797f9959 Merge branch 'MDL-74454-master' of https://github.com/pabloamayab/moodle 2022-11-29 14:15:35 +08:00
Jun Pataleta f05944d660 Merge branch 'MDL-76496' of https://github.com/stronk7/moodle 2022-11-29 13:49:39 +08:00
Andrew Nicols 360e16fd8b MDL-76258 mod_lti: Codign style fixes 2022-11-29 12:28:35 +08:00
Andrew Nicols 392a0030a3 Merge branch 'MDL-76258-master' of https://github.com/sh-csg/moodle 2022-11-29 12:27:53 +08:00
Andrew Nicols 56303564c6 MDL-69570 assignfeedback_editpdf: Whitespace fix 2022-11-29 11:49:24 +08:00
Andrew Nicols ebd0cb2eb9 Merge branch 'MDL-69570-master' of https://github.com/abgreeve/moodle 2022-11-29 11:38:36 +08:00
Adrian Greeve c694b57b35 MDL-69570 assignfeedback_editpdf: Upgrade step to remove files.
This upgrade step removes all orphaned editpdf feedback files and
records.
2022-11-29 09:41:30 +08:00
Adrian Greeve a39d00389a MDL-69570 assignfeedback_editpdf: Remove temp pdf files
This adds a new method to the assignfeedback edit pdf library
to specify user data file areas that will return just the meaningful
annotated feedback pdf.

get_file_areas has been updated for this plugin to return all
file areas related to assignfeedback_editpdf, and should stop
producing orphaned files and records when a course reset is done.

Thanks to @toniginard who provided a base solution for me to work
off.
2022-11-29 09:35:51 +08:00
Jonathan Champ 33e3af1899 MDL-76506 core\lock: Fix MDL_PERF and perfdebug checks 2022-11-28 18:53:44 -05:00
Mark Holliday 3476cccf38 MDL-76376 scorm: fix PHP8 TypeError (null is not Countable) 2022-11-28 17:51:07 -05:00
Paul Holden e0d7ab9989 MDL-76380 tool_oauth2: remove double persistent load on update.
The method already loaded the validated persistent model data on the
previous line, there's no need to do it again (while also trying to
load unvalidated properties).
2022-11-28 19:38:47 +00:00
Paul Holden c2d26f8a7b MDL-76250 mod_assign: disable form change checker for grading options.
This was previously fixed in 8e9efe60, but seems to have regressed
somewhere along the way.
2022-11-28 16:06:55 +00:00
Paul Holden 23df60893a MDL-76226 admin: account for preset config checkboxes other than bool.
The assumption that the settings checkbox always stores boolean values
(e.g. 0/1) isn't correct. The `perfdebug` configuration instead uses
the values 7/15.
2022-11-28 16:04:08 +00:00
Marina Glancy a800e7e62f MDL-74853 various: add second parameter to htmlentities functions
Default value of the $flag argument changed in PHP 8.1 from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE
To ensure consistent behavior across different PHP version the second parameter is now required for the functions:
htmlspecialchars(), htmlentities(), htmlspecialchars_decode(), html_entity_decode() and get_html_translation_table()
2022-11-28 16:12:20 +01:00
Marina Glancy 2d0b8c9282 MDL-76495 libs: patch TCPDF for PHP 8.1 compatibility 2022-11-28 16:01:47 +01:00
Marina Glancy c1dec1d2f4 MDL-76494 libs: patch Box::Spout for PHP 8.1 compatibility 2022-11-28 15:56:35 +01:00
Paul Holden f8ef28f9a6 MDL-76284 webservice: early exit if no users for missing capabilities. 2022-11-28 11:52:45 +00:00
Andrew Nicols 3125eb732b MDL-76487 tiny_autosave: Clarify autosave store rejection message 2022-11-28 19:42:12 +08:00
Andrew Nicols d907d5ccb1 MDL-76487 tiny_autosave: Use navigator.sendBeacon instead of fetch
Firefox does not support the keepalive flag for fetch, despite every
other browser except IE supporting it.
2022-11-28 19:42:12 +08:00
Marina Glancy b99a931f7f MDL-76355 lib: apply a patch to googleapi for php 8.1 compatibility 2022-11-28 12:00:51 +01:00
Marina Glancy 130d371ccf MDL-76088 blocks: fixed incorrect use of static cache 2022-11-28 11:58:47 +01:00
Meirza 934d74a6ff MDL-75826 profile: Redirect to profile page if returnto is profile. 2022-11-28 16:13:14 +07:00
Jun Pataleta c6ab792ddf MDL-76497 upgrade: add the 4.1.0 separation line to all upgrade scripts 2022-11-28 14:43:04 +08:00
Huong Nguyen e4fde5a93e MDL-68981 tool_recyclebin: Extra PHPUnit with General restore config 2022-11-28 09:33:36 +07:00
Huong Nguyen d1fab0c619 MDL-68981 tool_recyclebin: Extra Behat test with General restore config
Including in this commit:
 - Convert existing Behat scenario to use Data generators
 - Convert existing Behat scenario to use Provider
 - Add new scenario for Include users setting in General restore page
2022-11-28 09:33:36 +07:00
Angelia Dela Cruz 7b8aa2c64e MDL-75960 behat: Survey behat generators use UI
Replace steps that manually add Survey instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2022-11-28 09:32:09 +08:00
Eloy Lafuente (stronk7) b2ffea4ac0 MDL-76496 backup: Bump release to 4.2 2022-11-26 23:56:08 +01:00
Marina Glancy 369bca652c MDL-76495 lib: test for qrcode in TCPDF 2022-11-26 19:18:29 +01:00
Marina Glancy d2e5bfe26f MDL-76494 core_reportbuilder: behat test for downloading report 2022-11-26 18:31:21 +01:00
Eloy Lafuente (stronk7) 9e58ce1182 MDL-76429 composer: Bump to phpwebdriver 1.2.1 for php81 compat
Note this comes with a bunch of other small updates, all them
pretty minor and should not be problematic. Better we get them
than keeping them apart.
2022-11-26 16:16:25 +01:00
Eloy Lafuente (stronk7) eeaaf131ac MDL-75977 xmldb: Avoid using null params on built-in DB functions
This changes a couple of cases, in postgres and oracle where we
were trying to calculate strlen() on null values (that causes a
PHP 8.1 warning).

Also, at the same time, fixing another case in xmldb_field, it
was detected that it had a bug around precision (being set to the
value of type), being used as object property, when it's not, so
it was also fixed by moving the code logic a little bit.

Note that the bug has been there since inception because there
isn't any code in Moodle using that ->precision property. It
was just detected thanks to PHP 8.2, but that's another story. :-)

Verified that with the patch:
- All DBs can be installed (phpunit install)
- Both DDL and DML pass without any ddl/dml warning (in all DBs).
2022-11-26 16:16:20 +01:00
Marina Glancy 6c30e11dbb MDL-76494 dataformat: tests for Excel and ODS writers 2022-11-26 15:21:52 +01:00
Stefan Hanauska b8a0ac4808 MDL-76258 mod_lti: Reset clientid after restore 2022-11-26 14:38:47 +01:00
Marina Glancy e5f862d0b1 MDL-76493 core: make sure format_string(null) works on PHP 8.1 2022-11-26 14:02:32 +01:00
Jun Pataleta 57c1e97bf1 weekly back-to-dev release 4.2dev 2022-11-26 17:35:00 +08:00
Jun Pataleta 0ea3d45e04 Moodle release 4.1 2022-11-26 17:23:04 +08:00
Jun Pataleta 4468b03cd5 NOBUG: Change travis.yml back to master 2022-11-26 17:23:04 +08:00
Jun Pataleta a3cee9a0ea NOBUG: Change travis.yml to MOODLE_401_STABLE 2022-11-26 17:23:04 +08:00
Andrew Nicols 6eccbc7af5 MDL-76483 core: Handle default value for get_docs_url() 2022-11-25 22:19:04 +08:00
Ilya Tregubov 15d4ea81e0 Moodle release 4.1rc3 2022-11-25 15:39:02 +03:00
Jun Pataleta 004f658e60 Merge branch 'MDL-75982-master-fix' of https://github.com/andrewnicols/moodle 2022-11-25 08:42:36 +08:00
Andrew Nicols b38e0e9db4 Merge branch 'MDL-76470-master' of https://github.com/marinaglancy/moodle 2022-11-25 08:06:11 +08:00
Andrew Nicols bd55e6a077 MDL-75982 tiny_h5p: Hold behat until the content is inserted 2022-11-25 07:43:37 +08:00
Marina Glancy 6fb9209405 MDL-76470 core: normalise locale for strftime substitution
Huge thanks to Eloy Lafuente for investigation
2022-11-24 16:21:43 +01:00
Víctor Déniz 4e95640030 Merge branch 'MDL-76467-master' of https://github.com/davewoloszyn/moodle 2022-11-24 15:08:13 +00:00
Víctor Déniz 1b92faceb6 Merge branch 'MDL-76466-master' of https://github.com/davewoloszyn/moodle 2022-11-24 12:10:27 +00:00
Ilya Tregubov b54f76f391 Merge branch 'MDL-75982-master-behat-fix' of https://github.com/lameze/moodle 2022-11-24 13:06:19 +03:00
Jun Pataleta 2dcb36153d Merge branch 'MDL-76468-master' of https://github.com/andrewnicols/moodle 2022-11-24 17:51:56 +08:00
Simey Lameze 3d0129ffc7 MDL-75982 editor_tiny: fix accessibility behat failures 2022-11-24 17:48:57 +08:00
David Woloszyn 0255bc7254 MDL-76467 gradereport: Next and previous arrows use language direction 2022-11-24 20:41:35 +11:00
David Woloszyn 177b1f5066 MDL-76466 gradereport_user: Accordion icon uses language direction 2022-11-24 20:38:59 +11:00
Ilya Tregubov ab606a00ec Merge branch 'MDL-76327-master' of https://github.com/andrewnicols/moodle 2022-11-24 12:24:59 +03:00
Andrew Nicols c3c3a1fe0f MDL-76468 output: Correct slasharg URL for theme stylesheet 2022-11-24 16:40:46 +08:00
Ilya Tregubov 3c36928805 Merge branch 'MDL-76291' of https://github.com/paulholden/moodle 2022-11-24 10:59:29 +03:00
Andrew Nicols 15eedeac4e MDL-76327 tiny_autosave: Use fetch + keepalive to reset autosave session
The autosave is reset on form submission, but if that form submission
happens at the same time as a page reload, the connection and/or server
is slow, then the connection may be aborted before the session is
removed.

This commit changes the autosave reset to use the fetch() API with a
keepalive flag.

Unfortunately we do not have a formal endpoint for this in Moodle JS so
this is a hackier approach than I would like. MDL-76463 has been opened
to investigate this.

This commit also fixes a situation where the autosave content is re-sent
when the user has typed in the editor and their next action is to click
on the submit button. This is now blocked for that editor instance.
2022-11-24 12:35:47 +08:00
Jun Pataleta 7c1761564e Merge branch 'MDL-76460-master' of https://github.com/andrewnicols/moodle 2022-11-24 12:18:39 +08:00
Shamim Rezaie 07ab2c0cfb Merge branch 'MDL-75982-master-latest' of https://github.com/andrewnicols/moodle 2022-11-24 13:36:11 +11:00
Andrew Nicols 08a19dbed8 Merge branch 'MDL-76403-master' of https://github.com/junpataleta/moodle 2022-11-24 10:18:22 +08:00
Andrew Nicols 688873c84b Merge branch 'MDL-76395-master-enfix' of https://github.com/vmdef/moodle 2022-11-24 10:16:39 +08:00
Simey Lameze cc93388082 MDL-75982 tiny_equation: add behat for equation editor 2022-11-24 09:05:46 +08:00
Simey Lameze a3bf958cc5 MDL-75982 tiny_autosave: add tests for autosave plugin 2022-11-24 09:05:46 +08:00
Simey Lameze 7e41864faa MDL-75982 tiny_media: add tests for media video plugin 2022-11-24 09:05:46 +08:00
Simey Lameze 63f9ec9b40 MDL-75982 tiny_accessibilitychecker: tests for accessibility checker 2022-11-24 09:05:46 +08:00
Andrew Nicols e82229eea6 MDL-75982 tiny_accessibilitychecker: Fall back to opaque white as top background 2022-11-24 09:05:46 +08:00
Simey Lameze 4024127ee0 MDL-75982 tiny_h5p: add tests for h5p plugin 2022-11-24 09:05:46 +08:00
Andrew Nicols c77f79d0ce MDL-75982 editor_tiny: Add behat tests
This commit starts to add Behat tests for the various features of
TinyMCE.

Please note that not all features are testable with Behat.
2022-11-24 09:05:46 +08:00
Andrew Nicols 305975a3e5 MDL-76460 tiny_recordrtc: Respect audio/video capabilities in editor 2022-11-24 08:26:08 +08:00
Víctor Déniz 39b7c4faf4 Merge branch 'MDL-76440-master' of https://github.com/andrewnicols/moodle 2022-11-23 17:55:10 +00:00
Víctor Déniz d4de7b630e MDL-76395 lang: Use fixed strings in tests 2022-11-23 17:03:58 +00:00
Helen Foster 74828e8149 MDL-76395 lang: Import fixed English strings (en_fix) 2022-11-23 17:03:58 +00:00
Víctor Déniz f7aebbcec5 Merge branch 'MDL-76324-master' of https://github.com/HuongNV13/moodle 2022-11-23 14:22:25 +00:00
Ilya Tregubov 00f66fad8f Merge branch 'MDL-73964-master' of https://github.com/mickhawkins/moodle 2022-11-23 14:35:02 +03:00
Paul Holden 3d5af37615 MDL-76291 mod_bigbluebuttonbn: tell Behat to wait while polling.
While fetching recording data, and updating room info. Should reduce
random scenario failures.
2022-11-23 10:15:32 +00:00
Paul Holden 9ff0f5cc85 Merge branch 'MDL-76302-master' of https://github.com/meirzamoodle/moodle 2022-11-23 09:13:59 +00:00
Jun Pataleta 0a01aa9d41 Merge branch 'MDL-76365-master' of https://github.com/HuongNV13/moodle 2022-11-23 14:51:56 +08:00
Andrew Nicols c99636e0a6 MDL-76440 editor_tiny: Reset text-align to initial
Bootstrap core's "reboot" sets a default text-align which is
incompatible with RTL languages.

Arguably this should be set in the Boost theme, but this is a fairly
large change which has potential to break things so I'm making it here
where we experience the issue for now.
2022-11-23 12:32:09 +08:00
Stevani Andolo e4da62b5f1 MDL-73964 core: Update support site/email usage to use supportemail
This ensures the correct link is provided (and not email address
itself), and honours the supportavailability setting.
2022-11-23 11:44:19 +08:00
Andrew Nicols 898e67ecb3 MDL-76440 editor_tiny: Add directionality plugins to toolbar 2022-11-23 11:11:47 +08:00
Huong Nguyen 24e7bff1b9 MDL-76324 webdav: Fix error for PHP 8.0 2022-11-23 09:11:42 +07:00
Jun Pataleta 6099cf161d MDL-76403 versions: main version bump 2022-11-23 09:47:32 +08:00
Jun Pataleta 00bae8b8a4 MDL-76403 versions: bump all versions and requires near release 2022-11-23 09:45:23 +08:00
Ilya Tregubov 422da2ed45 Moodle release 4.1rc2 2022-11-22 15:58:44 +03:00
Huong Nguyen 9e259e5399 MDL-76365 mod_data: Fix export with empty template
If the template is not created, we need to use the default template for the export
2022-11-22 12:07:57 +07:00
Meirza 6f829cd2ff MDL-76302 theme: handling TinyMCE menu overlapping with the top navbar 2022-11-22 10:42:45 +07:00
Jun Pataleta 86e159fae2 Merge branch 'MDL-76390' of https://github.com/stronk7/moodle 2022-11-22 11:20:12 +08:00
Jun Pataleta 60e275183a Merge branch 'MDL-76367-master' of https://github.com/andrewnicols/moodle 2022-11-22 11:08:37 +08:00
Jun Pataleta 18dda191fb Merge branch 'MDL-76388' of https://github.com/stronk7/moodle 2022-11-22 10:50:14 +08:00
Jun Pataleta 5fd3111f95 Merge branch 'MDL-76389' of https://github.com/stronk7/moodle 2022-11-22 09:49:53 +08:00
Jun Pataleta c92cb70346 MDL-75100 core: Add upgrade.txt note for core_date::strftime() 2022-11-22 09:42:19 +08:00
Jun Pataleta a1ed676d15 Merge branch 'MDL-75100-master' of https://github.com/marinaglancy/moodle 2022-11-22 09:14:04 +08:00
Ilya Tregubov c1de3c0cbc Merge branch 'MDL-76341-master' of https://github.com/stevandoMoodle/moodle 2022-11-21 16:53:11 +03:00
Marina Glancy 7bbb5434bf MDL-75100 core: replace function strftime deprecated in PHP 8.1 2022-11-21 11:41:12 +01:00
Ilya Tregubov 1273c295ac Merge branch 'MDL-76306-master' of https://github.com/andrewnicols/moodle 2022-11-21 11:14:55 +03:00
Meirza 409e1fc194 MDL-76127 Profiling: Make the breadcrumb of the profiling URL clickable
Boost has the behavior to remove the last item action.
To avoid that, we need to add an action item.
2022-11-21 14:06:07 +07:00
Stevani Andolo a2578defa8 MDL-76341 tool_lp: Fixed learning plan's header not containing user name 2022-11-21 14:33:46 +08:00
Eloy Lafuente (stronk7) ec75faf46c MDL-76390 tool_lp: Remove magic getter call
Since Moodle 3.3 (see MDL-57273), the magix getters and setters
for persistent classes are deprecated, instead get() and set()
must be used.
2022-11-20 14:50:46 +01:00
Eloy Lafuente (stronk7) 79a17a56bb MDL-76389 output: Ensure we don't try to iterate over null
Just convert nulls to empty array before trying to iterate it.
2022-11-20 11:33:37 +01:00
Eloy Lafuente (stronk7) d3ee90b158 MDL-76388 user: Switch from deprecated string in core_user to core one
This case was left not changed @ MDL-72509, and detected by the
Moodle 4.1 apache logs review @ MDL-76064.

Not much to say, just switch to the core lang string, the other
is deprecated for 4.1 and up.
2022-11-20 10:46:41 +01:00
Paul Holden 7c14a2239a Moodle release 4.1rc1 2022-11-18 11:45:35 +00:00
Paul Holden 6b0f7ab996 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-11-18 11:45:32 +00:00
Kevin Percy a1f4f514d4 MDL-75463 lib: Update Bennu version number to 0.2 2022-11-18 16:37:10 +08:00
Andrew Nicols 44d6b24d28 MDL-76367 core: Apply RTL transformations to editors too 2022-11-18 15:13:12 +08:00
Andrew Nicols 899397c0af MDL-76367 editor_tiny: Add missing lang direction string
TinyMCE uses a magic langstring only present in RTL languages which
makes it hard to automatically fetch from their strings.

Since it's the only magic string I can find a reference to (after
searching their codebase), I've elected to add this in the lang.php
serving layer. This allows us to use our own langstring instead of
re-declaring something that should be stored once across Moodle.
2022-11-18 14:31:35 +08:00
Jun Pataleta e9326dfcfb Merge branch 'MDL-76332-master' of https://github.com/call-learning/moodle 2022-11-18 11:58:18 +08:00
Andrew Nicols 2259edc6e2 Merge branch 'MDL-76102-master' of https://github.com/marinaglancy/moodle 2022-11-18 11:43:51 +08:00
Jun Pataleta a482fb4488 Merge branch 'MDL-75903' of https://github.com/paulholden/moodle 2022-11-18 11:28:31 +08:00
AMOS bot 9b539d4894 Automatically generated installer lang files 2022-11-18 00:07:42 +00:00
Daniel Ziegenberg 877ac800cd MDL-74823 lib: HTMLPurifier upgrade to 4.16.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-11-17 18:26:28 +01:00
Daniel Ziegenberg be7f6d4834 MDL-74823 lib: normalize line endings for HTMLPurifier
Prior to this change, all the line endings in the imported HTMLPurifier
library were using CRLF (\r\n aka Windows style), but the HTMLPurifier
source and also the downloadable artefacts use LF (\n aka Linux style)
as line endings. This has been the case since
510d190382 when with the commit
"MDL-38672 import HTML Purifier 4.5.0" all line endings were changed
from LF to CRLF. There was no comment in the commit on why this change
was done.

As the original source uses LF, this commit partly reverts
510d190382 and goes back to LF as line
endings.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-11-17 18:26:26 +01:00
Daniel Ziegenberg 90f8efa6b3 MDL-74823 lib: HTMLPurifier upgrade to 4.14.0
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-11-17 18:26:14 +01:00
Sara Arjona 2322d783dc Merge branch 'MDL-73620-master_grouperror' of https://github.com/alexmorrisnz/moodle 2022-11-17 18:00:21 +01:00
Sara Arjona 275162dd7a Merge branch 'MDL-74780' of https://github.com/paulholden/moodle 2022-11-17 17:40:09 +01:00
Paul Holden 1ad023bba6 Merge branch 'MDL-76105-master-enfix' of https://github.com/vmdef/moodle 2022-11-17 16:29:51 +00:00
Sara Arjona b47e0f8009 Merge branch 'MDL-70491-master_take2' of https://github.com/lucaboesch/moodle 2022-11-17 17:25:48 +01:00
Sara Arjona ae18f35f27 Merge branch 'MDL-75627_master_v2' of https://github.com/sbourget/moodle 2022-11-17 17:22:23 +01:00
Sara Arjona d52edc5c0d Merge branch 'MDL-75479-master' of https://github.com/junpataleta/moodle 2022-11-17 17:14:34 +01:00
info@eWallah.net 1f16e9b76f MDL-65939 phpunit: Maildigest tests can query a wrong adhoc task 2022-11-17 15:54:58 +01:00
Paul Holden 7c79ff41b0 Merge branch 'MDL-75569-master' of https://github.com/justusdieckmann/moodle 2022-11-17 14:35:01 +00:00
Paul Holden d47129d4a9 Merge branch 'MDL-76331-master' of https://github.com/andrewnicols/moodle 2022-11-17 14:19:39 +00:00
Jun Pataleta 9cf92be84d MDL-75479 auth_cas: Pass base service URL for the CAS client
Since phpCAS v1.6.0, a required base service URL parameterneeds to be
passed to phpCAS::client(). This is basically the protocol, hostname,
and port number (optional) of the site connecting to the CAS server
in order for it to perform service URL discovery.
2022-11-17 22:10:35 +08:00
Andrew Nicols 6ee0d6a979 MDL-76331 editor_tiny: Generate all langstrings
This change renames the generator and has it generate the language
strings for all available languages for easier import into AMOS.
2022-11-17 22:09:42 +08:00
Víctor Déniz b2e8646ee2 Merge branch 'MDL-76326-master' of https://github.com/HuongNV13/moodle 2022-11-17 13:19:58 +00:00
Sara Arjona 78a1791e24 Merge branch 'MDL-75567-master' of https://github.com/justusdieckmann/moodle 2022-11-17 13:06:28 +01:00
Víctor Déniz dd1c227c8d Merge branch 'MDL-73804-make-category-filter-context' of https://github.com/Peterburnett/moodle 2022-11-17 11:54:26 +00:00
Paul Holden 9f2e508ccb Merge branch 'MDL-75665_master' of https://github.com/tasosb/moodle 2022-11-17 11:41:54 +00:00
David Mudrák 5e2e7562b6 MDL-76105 lang: Use fixed strings in tests, too. 2022-11-17 10:37:45 +00:00
Helen Foster ae2f8cfa67 MDL-76105 lang: Import fixed English strings (en_fix) 2022-11-17 09:44:35 +00:00
Meirza 7760f1bf34 MDL-72019 user: Allows data to be formatted when exporting. 2022-11-17 16:28:09 +07:00
Jun Pataleta 0cdfceb0f7 MDL-75479 auth_cas: Bump thirdpartylibs version to 1.6.0 2022-11-17 17:16:55 +08:00
Jun Pataleta d2bcdfea0e MDL-75479 auth_cas: Update phpCAS to v1.6.0 2022-11-17 17:16:55 +08:00
Tomo Tsuyuki b3e046df7e MDL-72451 core: Stop keep regrading when there is an error
Set needsupdate to finish to avoid regrading each call.
Add error messages for regrading.
Display the error message on the quiz page.

Co-authored-by: Mark Johnson <mark.johnson@catalyst-eu.net>
2022-11-17 08:54:47 +00:00
David Woloszyn f1b39db4f0 MDL-75479 lib: Set Moodle files after phpCAS upgrade 2022-11-17 16:13:35 +08:00
David Woloszyn 86a3735220 MDL-75479 lib: Upgrade phpCAS to 1.5.0 2022-11-17 16:13:35 +08:00
Ilya Tregubov c5da3db0ae Merge branch 'MDL-76305-master' of https://github.com/junpataleta/moodle 2022-11-17 10:34:13 +03:00
Jun Pataleta 57aa434dd0 Merge branch 'MDL-76328' of https://github.com/paulholden/moodle 2022-11-17 15:32:10 +08:00
Jun Pataleta 8628484363 Merge branch 'MDL-76310' of https://github.com/paulholden/moodle 2022-11-17 14:39:51 +08:00
Bas Brands 1c56ccd89b MDL-70491 theme_boost: improve form autocomplete badge styles 2022-11-17 07:03:22 +01:00
Huong Nguyen ea4a582b3d MDL-76326 oauth2: Update Nextcloud logo to the new one 2022-11-17 11:31:16 +07:00
Andrew Nicols 205a6c157c MDL-76331 editor_tiny: Update language strings to use shorter ident
AMOS can only cope with string identifiers with a length < 100
characters. Our tooling for Tiny automatically generates string idents
based on the language string and these can end up longer.

This change modifies our generated idents to be capped at 90 characters.
2022-11-17 11:38:48 +08:00
Andrew Nicols 5a677592af Merge branch 'MDL-76333-master' of https://github.com/marinaglancy/moodle 2022-11-17 10:41:22 +08:00
Andrew Nicols a9d0a1d254 Merge branch 'MDL-76334-master' of https://github.com/marinaglancy/moodle 2022-11-17 10:08:49 +08:00
Andrew Nicols c2b1f446a1 Merge branch 'MDL-75651' of https://github.com/paulholden/moodle 2022-11-17 10:06:41 +08:00
Andrew Nicols 496ab5db7d Merge branch 'MDL-76083-master' of https://github.com/aanabit/moodle 2022-11-17 09:59:16 +08:00
Laurent David c233f2e2fa MDL-76332 mod_bigbluebuttonbn: Fix JS exception, recording only room
* The room updater should only run on room that have the join button
2022-11-16 18:09:04 +01:00
Paul Holden e7bec29c95 Merge branch 'MDL-73078-master' of https://github.com/lucaboesch/moodle 2022-11-16 16:36:56 +00:00
Paul Holden 5ef2063330 Merge branch 'MDL-76271-master' of https://github.com/davewoloszyn/moodle 2022-11-16 16:25:02 +00:00
Marina Glancy 0fc4914e40 MDL-76334 libraries: upgraded phpxmlrpc to 4.8.1 2022-11-16 17:02:42 +01:00
Marina Glancy 55b9fa4b32 MDL-76333 calendar: add test for calendar export 2022-11-16 16:51:19 +01:00
Marina Glancy 47d3e4217b MDL-76333 libraries: patch Bennu library for PHP 8.1 compatibility 2022-11-16 16:51:00 +01:00
Amaia Anabitarte 5f6d35e471 MDL-76083 mod_data: Fix preset importer to remove existing fields.
* We should delete fields that have not been marked as to preserve.

Co-authored by: Laurent David <laurent.david@moodle.com>
2022-11-16 16:23:42 +01:00
Sara Arjona 273e9a4447 Merge branch 'MDL-75380' of https://github.com/AnupamaSarjoshi/moodle 2022-11-16 16:23:39 +01:00
Sara Arjona 767cee2fd5 Merge branch 'MDL-76277-master' of https://github.com/andrewnicols/moodle 2022-11-16 15:53:30 +01:00
Kepa Urzelai eae00ca006 MDL-72563 theme_boost: rubric area style fix 2022-11-16 15:42:32 +01:00
Andrew Nicols a68d9d5410 MDL-76277 tiny_media: Limit image alignment to vertical align
Atto mixed vertical and horizontal alignment into a single selection,
which does not make any sense. It also used CSS classes in such a way
that those styles will break if/when Atto is removed.

This commit:
* removes the horizontal alignment from the dropdown - these are easily
  achieved using the existing Tiny UI
* addresses a bug where existing styles (like horizontal alignment) were
  not preserved when editing the image
* fixes a bug where the CSS selector was used instead of a CSS class
  name
* recognises legacy TinyMCE class names and replaces these
* switches from using random class names to using Bootstrap class
  utility classes for vertical alignment.
2022-11-16 21:54:33 +08:00
Paul Holden bf96c78a43 MDL-76328 course: ensure activity chooser search takes full height. 2022-11-16 11:33:55 +00:00
Víctor Déniz 7577776565 Merge branch 'MDL-76307-master' of https://github.com/HuongNV13/moodle 2022-11-16 11:00:12 +00:00
Paul Holden 3a20b1f91c Merge branch 'MDL-76276-master' of https://github.com/HuongNV13/moodle 2022-11-16 10:22:27 +00:00
Jun Pataleta 38fcf6acff Merge branch 'MDL-75415-master' of https://github.com/ssj365/moodle 2022-11-16 17:51:45 +08:00
Jun Pataleta 8db40f9d0d Merge branch 'MDL-74558-master' of https://github.com/ssj365/moodle 2022-11-16 17:51:24 +08:00
Sara Arjona 8e535a2346 Merge branch 'MDL-75492-master' of https://github.com/aanabit/moodle 2022-11-16 10:30:47 +01:00
Shamim Rezaie 8c4cf28dd4 Merge branch 'MDL-76322' of https://github.com/paulholden/moodle 2022-11-16 20:17:45 +11:00
Jake Dallimore 432b98c478 Merge branch 'MDL-76220-master' of https://github.com/ferranrecio/moodle 2022-11-16 16:33:38 +08:00
Amaia Anabitarte 1c968103b7 MDL-75492 mod_data: Remove redirection messages on preset apply process 2022-11-16 09:08:26 +01:00
Amaia Anabitarte 9b343752e2 MDL-75492 mod_data: Cosmetic changes on mapping page 2022-11-16 09:08:26 +01:00
Amaia Anabitarte 81b761bab0 MDL-75492 mod_data: Show mapping dialog 2022-11-16 09:08:26 +01:00
Amaia Anabitarte b755cfa544 MDL-75492 mod_data: Refactor code to get available importing information 2022-11-16 09:08:26 +01:00
Jake Dallimore b3e159b8bd Merge branch 'MDL-76280-master' of https://github.com/andrewnicols/moodle 2022-11-16 13:29:14 +08:00
Jun Pataleta 9a6df89f7c Merge branch 'MDL-75365-master' of https://github.com/andrewnicols/moodle 2022-11-16 12:38:14 +08:00
Paul Holden 6c5d2f0e54 MDL-76267 qbank_viewquestionname: access check for inplace editable. 2022-11-16 11:54:42 +08:00
michaelkotlyar a8c0258bfe MDL-74874 config: Removed comment "This is an experimental issue". 2022-11-16 16:31:26 +13:00
Huong Nguyen 3ff6aec217 MDL-76307 tiny_equation: Fix console error when using Tiny editor 2022-11-16 09:45:26 +07:00
Andrew Nicols 7e6d32d7c2 Merge branch 'MDL-76112-master' of https://github.com/marinaglancy/moodle 2022-11-16 10:07:49 +08:00
David Woloszyn dfa476e5a5 MDL-76271 dndupload: Corrected layout when uploading to course via dnd 2022-11-16 11:16:45 +11:00
Víctor Déniz 6a0c6a19ca Merge branch 'MDL-75781-master' of https://github.com/NashTechOpenUniversity/moodle 2022-11-15 22:30:31 +00:00
Paul Holden 104cc446d2 MDL-76322 mod_bigbluebuttonbn: fix template/JS logic around guests.
Only render template partials, and attempt to interact with the guest
access button if the feature is enabled.
2022-11-15 20:53:31 +00:00
Paul Holden 0ea04360ce Merge branch 'MDL-76279-master' of https://github.com/HuongNV13/moodle 2022-11-15 17:05:03 +00:00
Sara Arjona 91e66dbaed Merge branch 'MDL-76039' of https://github.com/paulholden/moodle 2022-11-15 17:57:07 +01:00
Paul Holden ff5ae53e9f Merge branch 'MDL-75410-master' of https://github.com/ferranrecio/moodle 2022-11-15 16:53:00 +00:00
Ilya Tregubov e45f7f691a on-demand release 4.1beta+ 2022-11-15 18:09:51 +03:00
Ilya Tregubov 101bf20c8b NOBUG: Fixed SVG browser compatibility 2022-11-15 18:09:49 +03:00
Andrew Nicols 3e3d9e0bab MDL-76280 editor_tiny: Disable tiny preview plugin
The Atto preview plugin does not support Moodle filters. This commit
disables it for now with the intent that in a future release we may
replace it with a Moodle version which applies our filters correctly.
2022-11-15 21:36:51 +08:00
Paul Holden bec6f3d8a5 MDL-76310 enrol_lti: fix consumer key upgrade steps for Oracle.
Avoids CLOB comparison exceptions, related to ORA-00932.
2022-11-15 11:48:16 +00:00
Paul Holden 53bc61b3e7 Merge branch 'MDL-75490-fix' of https://github.com/sarjona/moodle 2022-11-15 10:32:03 +00:00
Paul Holden 9509cb1442 Merge branch 'MDL-76261-master' of https://github.com/HuongNV13/moodle 2022-11-15 10:19:09 +00:00
Sara Arjona 71947fb012 MDL-75490 theme_classic: Update footer to pass accessibility tests 2022-11-15 11:12:29 +01:00
Jun Pataleta 2c098a7ec7 MDL-76305 core: Use dir separator when assigning $CFG->tempdir 2022-11-15 16:24:52 +08:00
Andrew Nicols a307f2d429 MDL-76306 editor_tiny: Enable Tiny by default on install 2022-11-15 13:15:09 +08:00
Peter Burnett ebd8e07cbc MDL-73804 category: Use system context for category name filtering 2022-11-15 14:49:30 +10:00
Jun Pataleta d76991321d Merge branch 'MDL-76290-master' of https://github.com/ilyatregubov/moodle 2022-11-15 11:58:19 +08:00
Jun Pataleta 3eec73963b Merge branch 'MDL-76230-master' of https://github.com/HuongNV13/moodle 2022-11-15 11:48:39 +08:00
Jun Pataleta c4ad566bbc Merge branch 'MDL-76196-master' of https://github.com/HuongNV13/moodle 2022-11-15 11:06:27 +08:00
Huong Nguyen eb33f57a76 MDL-76261 tiny_equation: Use the correct icon 2022-11-15 09:34:57 +07:00
Víctor Déniz 897d4233ac Merge branch 'MDL-76268-master' of https://github.com/aanabit/moodle 2022-11-15 00:11:19 +00:00
Víctor Déniz e31b25c82c Merge branch 'MDL-76297' of https://github.com/paulholden/moodle 2022-11-14 23:57:14 +00:00
Víctor Déniz 32fd6e60a4 Merge branch 'MDL-76229-master' of https://github.com/meirzamoodle/moodle 2022-11-14 22:56:13 +00:00
Víctor Déniz 46c1e2f910 Merge branch 'MDL-76192-master' of https://github.com/mihailges/moodle 2022-11-14 22:34:04 +00:00
Paul Holden 94818dd23f MDL-75903 output: increase precision of primary active node matching.
Co-authored-by: Mikel Martín <mikel@moodle.com>
2022-11-14 17:31:26 +00:00
Paul Holden 1d0fa45056 MDL-74780 grade: account for absence of course grade items on import. 2022-11-14 17:30:15 +00:00
Paul Holden f22c602436 MDL-75651 mod_feedback: remove duplicated activity heading. 2022-11-14 17:29:03 +00:00
Amaia Anabitarte 5a880405bf MDL-75492 mod_data: Removing duplicated behats 2022-11-14 17:23:30 +01:00
Sara Arjona 09f03e63ad Merge branch 'MDL-75490-master-axe_upgrade' of https://github.com/kevpercy/moodle 2022-11-14 16:37:01 +01:00
Sara Arjona c99a1c2dda Merge branch '75792-master-fix-grouping-sort-order' of https://github.com/DSI-Universite-Rennes2/moodle 2022-11-14 16:07:19 +01:00
Sara Arjona 5fd5650838 Merge branch 'MDL-75300' of https://github.com/paulholden/moodle 2022-11-14 16:04:06 +01:00
sam marshall 5f5f922fd8 MDL-76218 cachestore_redis: delete_many can fail with no keys
In some cases, we get an error message such as:

Wrong parameter count for Redis::zRem()

Within the delete_many function. This function requires at least one
key to be supplied, but if delete_many is called with an empty array,
we will call it with no keys.
2022-11-14 14:40:09 +00:00
Ilya Tregubov ddfb080786 MDL-76290 upgradelib: Set title ealier in upgrade_noncore.
Fixing regression by MDL-75751 where title was set
when body already existed
2022-11-14 17:36:55 +03:00
Paul Holden 7012900d08 MDL-76039 forms: account for null values in serialize util method.
Co-authored-by: Marina Glancy <marina@moodle.com>
2022-11-14 14:20:52 +00:00
Paul Holden 04fda4e848 MDL-76297 tiny_media: clarify wording of "Insert media" button. 2022-11-14 12:36:14 +00:00
Paul Holden bc7ce934b3 Merge branch 'MDL-76278-master' of https://github.com/andrewnicols/moodle 2022-11-14 12:12:38 +00:00
Julien Boulen 7321b16ecb MDL-75792 availability: sort groupings list by name 2022-11-14 13:08:04 +01:00
Jake Dallimore 8f221dd902 Merge branch 'MDL-75837-master-4' of https://github.com/mihailges/moodle 2022-11-14 17:15:31 +08:00
Huong Nguyen 5248111735 MDL-76276 tiny_h5p: Disable validation for Internal URL 2022-11-14 13:37:45 +07:00
Huong Nguyen 43718f7f7a MDL-76279 tiny_equation: Fix issue with multiple equations 2022-11-14 13:18:33 +07:00
Andrew Nicols 1a0c3290c7 MDL-76278 tiny_media: Correct template context 2022-11-14 13:34:41 +08:00
Jun Pataleta dc44a1b4f4 Merge branch 'MDL-76179-master' of https://github.com/aanabit/moodle 2022-11-14 13:22:25 +08:00
Mihail Geshoski f439a3fa9a MDL-75837 gradereport_user: Update zero state strings 2022-11-14 10:36:18 +08:00
Huong Nguyen 0bfa6e4fc1 MDL-76230 block_tag_flickr: Change User-agent value for API calls 2022-11-14 09:35:19 +07:00
Huong Nguyen 40c641eceb MDL-76230 block_tag_flickr: Extra Behat test for a specific tag 2022-11-14 09:35:19 +07:00
Mathew May 57e65480a3 MDL-75837 gradebook: accessibility improvements 2022-11-14 10:19:45 +08:00
Mihail Geshoski f589d592c9 MDL-75837 core_grades: Move the user selector template under core_grades 2022-11-14 10:11:43 +08:00
Mihail Geshoski 77a5f1aa11 MDL-75837 core_grades: Selector module for the search widget 2022-11-14 10:11:43 +08:00
Mihail Geshoski 8d3724c91e MDL-75837 behat: Update behat tests 2022-11-14 10:11:43 +08:00
Mihail Geshoski c501d1ac97 MDL-75837 core_grades: Modify the search widget behat step definitions 2022-11-14 10:11:43 +08:00
Mihail Geshoski 24d0beacc7 MDL-75837 gradereport_singleview: Grade item search within a dropdown
Modifications that will enable the grade item search widget to be
rendered within a dropdown element.
2022-11-14 10:11:43 +08:00
Mihail Geshoski 94b0fac776 MDL-75837 gradereport_singleview: User search widget within a dropdown
Modifications that will enable the user search widget to be rendered
within a dropdown element.
2022-11-14 10:11:42 +08:00
Mihail Geshoski 23640e81e8 MDL-75837 core_grades: Clear search support in the base search widget 2022-11-14 10:11:42 +08:00
Mihail Geshoski d272dcab1d MDL-75837 core_grades: Group search widget within a dropdown
Modifications that will enable the group search widget to be rendered
within a dropdown element.
2022-11-14 10:11:42 +08:00
Mihail Geshoski 64d746ec13 MDL-75837 gradereport_user: User search widget within a dropdown
Modifications that will enable the user search widget to be rendered
within a dropdown element.
2022-11-14 10:11:42 +08:00
Mihail Geshoski 09d0a20d45 MDL-75837 core_grades: Adapt the base search widget to support dropdowns 2022-11-14 10:11:42 +08:00
Meirza 82d491cafa MDL-76229 core_form: Show frozen text editor in a more accessible way. 2022-11-12 18:27:09 +07:00
Luca Bösch 235c7c361c MDL-73078 workshop: align 'Edit subm' 'Delete subm' 'Export this page' 2022-11-11 16:41:41 +01:00
Sara Arjona 7c3188b2ca Moodle release 4.1beta 2022-11-11 15:06:02 +01:00
Sara Arjona 3b7d1a2f23 NOBUG: Fixed SVG browser compatibility 2022-11-11 15:05:55 +01:00
Amaia Anabitarte f85521737a MDL-76179 mod_data: Don't use import value for action parameter 2022-11-11 13:30:49 +01:00
Paul Holden e1cf6fd82e Merge branch 'MDL-74638-master-fix' of https://github.com/junpataleta/moodle 2022-11-11 11:20:57 +00:00
Jun Pataleta 8228b800d9 MDL-74638 mod_bigbluebuttonbn: Fix unit tests
* Guest URL and passwords are not supposed to be included in the backup
file so they should be excluded in assert_bbb_activities_same.
* Removed redundant entry 'course' in the filter list as well.
2022-11-11 19:09:55 +08:00
Ferran Recio 151b0ba350 MDL-75410 mod_data: reset all templates feature 2022-11-11 10:48:42 +01:00
Jake Dallimore 06c1038cb2 Merge branch 'MDL-76213-master-fix' of https://github.com/junpataleta/moodle 2022-11-11 17:38:00 +08:00
David Woloszyn b0f872a528 MDL-76196 mod_folder: Display manual completion if inline display set 2022-11-11 15:49:14 +07:00
Jun Pataleta 9b85d7db7c MDL-76213 mod_assign: Pass correct parameters to override query 2022-11-11 16:09:02 +08:00
Jun Pataleta 934a72d138 Merge branch 'MDL-74996-behat' of https://github.com/HuongNV13/moodle 2022-11-11 15:26:04 +08:00
Huong Nguyen a5a80952de MDL-74996 tool_recyclebin: Fix Behat failure 2022-11-11 14:12:50 +07:00
Michael Hawkins 46a81cc8fc MDL-68550 mod_workshop: Update behat test to avoid incorrect selector 2022-11-11 07:25:50 +01:00
Jake Dallimore 96e9f7c03e Merge branch 'MDL-74638-master-test' of https://github.com/rezaies/moodle 2022-11-11 13:02:52 +08:00
Mathew May b867309051 MDL-71920 libraries: Migrate LTI lib away from pure curl 2022-11-11 12:53:24 +08:00
Mathew May fbe1ac8e13 MDL-71920 core: update filelib opt name definition 2022-11-11 12:53:24 +08:00
Shamim Rezaie 6225af4106 MDL-74638 mod_bigbluebuttonbn: Allow logged-in users to join as guest
Logged in users should also be able to join as guest. They may not
normally have access to the meeting maybe because not enrolled to the
course.
2022-11-11 15:27:26 +11:00
Adrian Greeve f865b326ca Merge branch 'MDL-76099-master' of https://github.com/stevandoMoodle/moodle 2022-11-11 12:26:12 +08:00
Mihail Geshoski 48d5d9e07f MDL-76192 mod_glossary: Export all entry aliases to the portfolio 2022-11-11 12:03:05 +08:00
Shamim Rezaie dcbf1deb20 MDL-74638 mod_bigbluebuttonbn: document ws change in upgrade.txt 2022-11-11 15:02:25 +11:00
Laurent David 315f4f2bd4 MDL-74638 mod_bigbluebuttonbn: Guest access for meetings
* Provide a way for external participants to be invited to a meeting by giving them an url/password
  for external users (not registered in Moodle)
* Add guest access page with username and password prompt
* Add form and modify API calls to take into account guest login
* Add a form modal to add guest users emails
* Allow copy of link and password in both popup form and module form
* The guest should be approved by default. It should be intentional to let them
in without checks.
* Guest access URL and password should not be copied when duplicating or backing
up the activity.
* The mod_bigbluebuttonbn_meeting_info web service function now
returns guestjoinurl and guestpassword only for moderators.
* Redirect if user already logged in

Note: this will allow guest to connect to an existing and running meeting. The moderator will then
be able to adjust the guest user's right. For security reasons we do not yet allow moderators
to join the meeting directly (or start a meeting)
2022-11-11 14:56:24 +11:00
Jake Dallimore db5b2d6ab0 Merge branch 'MDL-75423-master' of https://github.com/mihailges/moodle 2022-11-11 11:55:06 +08:00
Jake Dallimore e10ecfc434 Merge branch 'MDL-75872' of https://github.com/paulholden/moodle 2022-11-11 11:45:26 +08:00
Jun Pataleta 0b2cff48ed Merge branch 'master_MDL-72957-modifiedby-41' of https://github.com/catalyst/moodle-MDL-72752 2022-11-11 11:39:58 +08:00
Jun Pataleta f6e75e952d Merge branch 'MDL-76213' of https://github.com/Chocolate-lightning/moodle 2022-11-11 11:34:07 +08:00
Jake Dallimore c5c85cce43 Merge branch 'MDL-73853-master' of https://github.com/sarjona/moodle 2022-11-11 11:29:08 +08:00
Mathew May 1d23a15069 MDL-76213 mod_assign: Improve group override info for teachers 2022-11-11 11:18:50 +08:00
Kevin Percy d2266a491e MDL-75490 lib: Update footer to pass accessibility tests with axe 2022-11-11 11:02:51 +08:00
Kevin Percy 7f4ca89a79 MDL-75490 lib: Upgrade axe to v4.5.1 2022-11-11 11:02:32 +08:00
Mihail Geshoski cdb71d805b MDL-75423 gradereport_singleview: Styling fixes 2022-11-11 10:54:06 +08:00
Mihail Geshoski fc8d34865f MDL-75423 gradereport_singleview: Update zero state strings 2022-11-11 10:54:06 +08:00
Ilya Tregubov a08282a872 MDL-75455 gradereport_singleview: PR review fixes.
Part of: MDL-75423
2022-11-11 10:52:26 +08:00
Safat Shahin 8940b3ee65 MDL-72957 qbank_viewcreator: modified by column
This commit will implement modified by column for
the question bank instance.
2022-11-11 13:52:21 +11:00
Jun Pataleta da21308a7b Merge branch 'MDL-63037-master' of https://github.com/snake/moodle 2022-11-11 10:42:27 +08:00
Shamim Rezaie 535e997ac3 Merge branch 'MDL-75525-master-2' of https://github.com/marinaglancy/moodle 2022-11-11 12:48:22 +11:00
Amaia Anabitarte e1c14b251c MDL-76268 mod_data: Fix the border differences on Fields table 2022-11-11 00:22:43 +01:00
Sara Arjona e4789c87db Merge branch 'MDL-76253-master' of https://github.com/justusdieckmann/moodle 2022-11-10 17:17:45 +01:00
Sara Arjona 505cedef25 Merge branch 'MDL-76070-master' of https://github.com/meirzamoodle/moodle 2022-11-10 16:56:45 +01:00
Sara Arjona 5e73ae6f44 Merge branch 'MDL-71951-master' of https://github.com/stevandoMoodle/moodle 2022-11-10 16:37:23 +01:00
Paul Holden e0dfd947c7 Merge branch 'MDL-75890-master' of https://github.com/meirzamoodle/moodle 2022-11-10 15:30:08 +00:00
Sara Arjona 1aba368aa9 Merge branch 'master_MDL-75874' of https://github.com/matheusot/moodle 2022-11-10 16:22:11 +01:00
Jun Pataleta 76a942e8b0 Merge branch 'MDL-74996-master-1' of https://github.com/HuongNV13/moodle 2022-11-10 23:18:32 +08:00
Sara Arjona 0e7103dc6c Merge branch 'MDL-74606-master-support-multilang-group-names-in-mod_assign' of https://github.com/krostas1983/moodle 2022-11-10 16:04:33 +01:00
Ilya Tregubov 1022863674 MDL-75455 gradereport_singleview: CSS changes for edit fields.
Part of: MDL-75423
2022-11-10 22:43:14 +08:00
Ilya Tregubov afd45fd90e MDL-75455 gradereport_singleview: Readd Behat tests for bulk insert.
Part of: MDL-75423
2022-11-10 22:43:14 +08:00
Ilya Tregubov b837be1e3e MDL-75455 gradereport_singleview: Add Bulk actions menu.
Part of: MDL-75423
2022-11-10 22:43:14 +08:00
Ilya Tregubov 21c956273f MDL-75423 gradereport_singleview: Update zero state images. 2022-11-10 22:43:14 +08:00
Mihail Geshoski 04b13a0605 MDL-75423 gradereport_singleview: Fix attribution of 'reporttable' class
Fixes the inapropriate attribution of the 'reporttable' css class.
This class should be only attributed to the html output related to the
the report table.
2022-11-10 22:43:14 +08:00
Mihail Geshoski 90be074b72 MDL-75423 gradereport_singleview: Styling modifications to the table 2022-11-10 22:43:14 +08:00
Ilya Tregubov 8d81f8c0d7 MDL-75423 gradereport_singleview: Fix group navigation for grade mode
When we change a group page should redirect to a user selection.
2022-11-10 22:43:14 +08:00
Ilya Tregubov 6ae4e00d72 MDL-75423 gradereport_singleview: Next/previous user/item links
Added navigation links similar to user report page.
Removed top paging bar. Bottom paging bar and select per page
are moved on same level with next/previous links.
2022-11-10 22:43:14 +08:00
Ilya Tregubov 678a2bc29b MDL-75423 gradereport_singleview: Styling fixes. 2022-11-10 22:43:14 +08:00
Ilya Tregubov aa747024fc MDL-75423 gradereport_singleview: Remove Save button from view mode 2022-11-10 22:43:14 +08:00
Ilya Tregubov 102e39d26d MDL-75423 gradereport_singleview: Add back bulk insert menu.
This menu will be used in edit mode. So rather than removing
it, we make it hidden.
2022-11-10 22:43:14 +08:00
Shamim Rezaie fba91abe5e MDL-75423 core_grades: prevent multiple initialising of the group widget 2022-11-10 22:43:14 +08:00
Shamim Rezaie 3cfb7cf918 MDL-75423 gradereport_singleview: show edit mode button in classic 2022-11-10 22:43:14 +08:00
Shamim Rezaie 5a9bf7fbaf MDL-75423 gradereport_singleview: Temporary remove behat scenarios
These scenarios should be added back as part of MDL-75455
2022-11-10 22:43:14 +08:00
Shamim Rezaie c39cbf876d MDL-75423 gradereport_singleview: Update behat scenarios 2022-11-10 22:43:13 +08:00
Shamim Rezaie 219b3db5f6 MDL-75423 gradereport_singleview: dividers & bottom border in action bar 2022-11-10 22:43:13 +08:00
Ilya Tregubov d73ba4386a MDL-75423 gradereport_singleview: Remove override and exlude links
The override and exlude links are removed form the table header because
a new bulk actions menu will be used (see MDL-75455).

Co-authored-by: Shamim Rezaie <shamim@moodle.com>
2022-11-10 22:43:13 +08:00
Mihail Geshoski e21c415fa9 MDL-75423 gradereport_singleview: Styling fix for page toggle element 2022-11-10 22:43:13 +08:00
Mihail Geshoski 1c93256488 MDL-75423 gradereport_singleview: Zero state cleanup
Removes unnecessary components from the zero state pages.
2022-11-10 22:43:13 +08:00
Mihail Geshoski b16067d8f0 MDL-75423 gradereport_singleview: Update the actions bar
Creates a single action bar class to output the action elements in
the single view report. Also, enables the singleview report class
to set and return the appropriate item selector (in raw HTML)
based on the currently selected single view item type.
2022-11-10 22:43:13 +08:00
Mihail Geshoski e7e18d066a MDL-75423 gradereport_singleview: Trigger for the grade item selector
Creates a renderer method and a template for the element that would
trigger the grade item selector.
2022-11-10 22:43:13 +08:00
Mihail Geshoski b184296316 MDL-75423 gradereport_singleview: Trigger element for the user selector
Creates a renderer method and a template for the element that would
trigger the user selector.
2022-11-10 22:43:13 +08:00
Shamim Rezaie 809781c0cc MDL-75423 gradereport_singleview: Move show all grades into a menu 2022-11-10 22:43:13 +08:00
Shamim Rezaie 56a454149b MDL-75423 gradereport_singleview: switch to the new group selector 2022-11-10 22:43:13 +08:00
Shamim Rezaie e2d389c37e MDL-75423 gradereport_singleview: Show custom user header 2022-11-10 22:43:13 +08:00
Shamim Rezaie 36f6390692 MDL-75423 gradereport_singleview: Replace grade analysis icon with menu 2022-11-10 22:43:13 +08:00
Shamim Rezaie 2890172ee5 MDL-75423 gradereport_singleview: remove some redundant ui components 2022-11-10 22:43:13 +08:00
Shamim Rezaie 4e15e03404 MDL-75423 gradereport_singleview: Custom action bar for user view 2022-11-10 22:43:13 +08:00
Shamim Rezaie 3fd9af82b9 MDL-75423 gradereport_singleview: Custom action bar for gradeitem view 2022-11-10 22:43:13 +08:00
Shamim Rezaie 6d3872d06f MDL-75423 gradereport_singleview: Move action col to the right 2022-11-10 22:43:13 +08:00
Shamim Rezaie bdb16eee5a MDL-75423 gradereport_singleview: swap position of grade and range cols 2022-11-10 22:43:13 +08:00
Shamim Rezaie 3daabd6840 MDL-75423 gradereport_singleview: show editing mode if can edit grades
Users should be able to turn editing mode on on the single view report
if they have the capability to edit grades.
2022-11-10 22:43:13 +08:00
Shamim Rezaie 9dd8749ebd MDL-75423 gradereport_singleview: Add read-only support 2022-11-10 22:43:13 +08:00
Shamim Rezaie 49595ffa2f MDL-75423 output: select_menu label bug fix
- click on the label were not always focusing on the element
2022-11-10 22:43:13 +08:00
Jun Pataleta 8013961452 Merge branch 'master_MDL-75126-allow-multiple-bulk-action-41' of https://github.com/catalyst/moodle-MDL-72752 2022-11-10 22:09:12 +08:00
Matheus Rodrigues caf6b655e6 MDL-75874 aiken_html: correctly display HTML chars for Aiken questions
Updates the Aiken Format class to process answers correctly, enabling
support for special HTML characteres such as <, >, and &.

Co-authored-by: Leticia Luz <leticia.adrielli.luz@gmail.com>
2022-11-10 09:56:52 -03:00
Paul Holden 2dd0329ef1 Merge branch 'MDL-75966-master-fix' of https://github.com/junpataleta/moodle 2022-11-10 12:56:39 +00:00
Jun Pataleta 4f65a72ae7 MDL-75966 editor_tiny: Bump version to current date 2022-11-10 20:48:26 +08:00
Safat Shahin cf7d6131ad MDL-75126 core_question: Deprecate get_bulk_action_key
This commit will deprecate get_bulk_action_key and move
the implementation in the get_key method entirely by
making this an absract method.
2022-11-10 23:41:03 +11:00
Jun Pataleta c404193823 Merge branch 'MDL-75966-master' of https://github.com/andrewnicols/moodle 2022-11-10 20:28:14 +08:00
Sara Arjona 2ada61c243 Merge branch 'MDL-75448-master' of https://github.com/golenkovm/moodle 2022-11-10 13:19:38 +01:00
Paul Holden 76c68e2146 Merge branch 'MDL-68550-master' of https://github.com/rezaies/moodle 2022-11-10 11:59:35 +00:00
Andrew Nicols 126db9165c MDL-76025 editor_tiny: Adjust initial toolbar layout
Part of MDL-75966
2022-11-10 19:55:15 +08:00
Huong Nguyen 01d710bd88 MDL-76012 tiny_h5p: Improve URL validation
Part of MDL-75966
2022-11-10 19:54:33 +08:00
Simey Lameze a512ba0b3c MDL-75282 behat: Use more precise step definitions
Note: This should possibly be broken out into its own issue and applied
to stables.

Part of MDL-75966.
2022-11-10 19:54:31 +08:00
Andrew Nicols 66d1651023 MDL-75282 assign_onlineoption: Use correct step for checking editor content
Note: This should possibly be broken out into its own issue applied to
stables.

Part of MDL-75966.
2022-11-10 19:54:28 +08:00
Huong Nguyen bf54db8bac MDL-75269 tiny_equation: Create TinyMCE Equation editor plugin
AMOS BEGIN
 CPY [librarygroup1,atto_equation],[librarygroup1,tiny_equation]
 CPY [librarygroup1_desc,atto_equation],[librarygroup1_desc,tiny_equation]
 CPY [librarygroup2,atto_equation],[librarygroup2,tiny_equation]
 CPY [librarygroup2_desc,atto_equation],[librarygroup2_desc,tiny_equation]
 CPY [librarygroup3,atto_equation],[librarygroup3,tiny_equation]
 CPY [librarygroup3_desc,atto_equation],[librarygroup3_desc,tiny_equation]
 CPY [librarygroup4,atto_equation],[librarygroup4,tiny_equation]
 CPY [librarygroup4_desc,atto_equation],[librarygroup4_desc,tiny_equation]
AMOS END

Part of MDL-75966
2022-11-10 19:54:01 +08:00
Stevani Andolo b7f2bbb080 MDL-75262 tiny_accessibility: Implement Accessibility Checker
Co-authored by Andrew Lyons <andrew@nicols.co.uk>

Part of MDL-75966
2022-11-10 19:53:58 +08:00
Stevani Andolo 0cd3b75164 MDL-75259 tiny_recordrtc: Implement Record RTC plugin for TinyMCE
Part of MDL-75966

Co-authored by Andrew Lyons <andrew@nicols.co.uk>

AMOS BEGIN
  CPY [audioandvideo,atto_recordrtc],[audioandvideo,tiny_recordrtc]
  CPY [audiobitrate,atto_recordrtc],[audiobitrate,tiny_recordrtc]
  CPY [attachrecording,atto_recordrtc],[attachrecording,tiny_recordrtc]
  CPY [allowedtypes,atto_recordrtc],[allowedtypes,tiny_recordrtc]
  CPY [allowedtypes_desc,atto_recordrtc],[allowedtypes_desc,tiny_recordrtc]
  CPY [audiobitrate,atto_recordrtc],[audiobitrate,tiny_recordrtc]
  CPY [audiobitrate_desc,atto_recordrtc],[audiobitrate_desc,tiny_recordrtc]
  CPY [audiotimelimit,atto_recordrtc],[audiotimelimit,tiny_recordrtc]
  CPY [audiotimelimit_desc,atto_recordrtc],[audiotimelimit_desc,tiny_recordrtc]
  CPY [confirm_yes,atto_recordrtc],[yes,core]
  CPY [gumabort,atto_recordrtc],[gumabort,tiny_recordrtc]
  CPY [gumabort_title,atto_recordrtc],[gumabort_title,tiny_recordrtc]
  CPY [gumnotallowed,atto_recordrtc],[gumnotallowed,tiny_recordrtc]
  CPY [gumnotallowed_title,atto_recordrtc],[gumnotallowed_title,tiny_recordrtc]
  CPY [gumnotfound,atto_recordrtc],[gumnotfound,tiny_recordrtc]
  CPY [gumnotfound_title,atto_recordrtc],[gumnotfound_title,tiny_recordrtc]
  CPY [gumnotreadable,atto_recordrtc],[gumnotreadable,tiny_recordrtc]
  CPY [gumnotreadable_title,atto_recordrtc],[gumnotreadable_title,tiny_recordrtc]
  CPY [gumnotsupported,atto_recordrtc],[gumnotsupported,tiny_recordrtc]
  CPY [gumnotsupported_title,atto_recordrtc],[gumnotsupported_title,tiny_recordrtc]
  CPY [gumoverconstrained,atto_recordrtc],[gumoverconstrained,tiny_recordrtc]
  CPY [gumoverconstrained_title,atto_recordrtc],[gumoverconstrained_title,tiny_recordrtc]
  CPY [gumsecurity,atto_recordrtc],[gumsecurity,tiny_recordrtc]
  CPY [gumsecurity_title,atto_recordrtc],[gumsecurity_title,tiny_recordrtc]
  CPY [gumtype,atto_recordrtc],[gumtype,tiny_recordrtc]
  CPY [gumtype_title,atto_recordrtc],[gumtype_title,tiny_recordrtc]
  CPY [insecurealert,atto_recordrtc],[insecurealert,tiny_recordrtc]
  CPY [insecurealert_title,atto_recordrtc],[insecurealert_title,tiny_recordrtc]
  CPY [insecurealerttitle,atto_recordrtc],[insecurealerttitle,tiny_recordrtc]
  CPY [insecurealert,atto_recordrtc],[insecurealert,tiny_recordrtc]
  CPY [nearingmaxsize,atto_recordrtc],[maxfilesizehit,tiny_recordrtc]
  CPY [nearingmaxsize_title,atto_recordrtc],[maxfilesizehit_title,tiny_recordrtc]
  CPY [norecordingfound,atto_recordrtc],[norecordingfound,tiny_recordrtc]
  CPY [norecordingfound_title,atto_recordrtc],[norecordingfound_title,tiny_recordrtc]
  CPY [nowebrtc,atto_recordrtc],[nowebrtc,tiny_recordrtc]
  CPY [nowebrtc_title,atto_recordrtc],[nowebrtc_title,tiny_recordrtc]
  CPY [onlyaudio,atto_recordrtc],[onlyaudio,tiny_recordrtc]
  CPY [onlyvideo,atto_recordrtc],[onlyvideo,tiny_recordrtc]
  CPY [recordagain,atto_recordrtc],[recordagain,tiny_recordrtc]
  CPY [recordinguploaded,atto_recordrtc],[recordinguploaded,tiny_recordrtc]
  CPY [recordingfailed,atto_recordrtc],[recordingfailed,tiny_recordrtc]
  CPY [recordrtc:recordaudio,atto_recordrtc],[recordrtc:recordaudio,tiny_recordrtc]
  CPY [recordrtc:recordvideo,atto_recordrtc],[recordrtc:recordvideo,tiny_recordrtc]
  CPY [startrecording,atto_recordrtc],[startrecording,tiny_recordrtc]
  CPY [stoprecording,atto_recordrtc],[stoprecording,tiny_recordrtc]
  CPY [timelimitwarning,atto_recordrtc],[timelimitwarning,tiny_recordrtc]
  CPY [uploadaborted,atto_recordrtc],[uploadaborted,tiny_recordrtc]
  CPY [uploadprogress,atto_recordrtc],[uploadprogress,tiny_recordrtc]
  CPY [videobitrate,atto_recordrtc],[videobitrate,tiny_recordrtc]
  CPY [videobitrate_desc,atto_recordrtc],[videobitrate_desc,tiny_recordrtc]
  CPY [videobuttontitle,atto_recordrtc],[videobuttontitle,tiny_recordrtc]
  CPY [videotimelimit,atto_recordrtc],[videotimelimit,tiny_recordrtc]
  CPY [videotimelimit_desc,atto_recordrtc],[videotimelimit_desc,tiny_recordrtc]
AMOS END
2022-11-10 19:53:56 +08:00
Andrew Nicols 71046558b1 MDL-75260 tiny_media: Move uploader to editor_tiny
Part of MDL-75966
2022-11-10 19:53:54 +08:00
Andrew Nicols 92765e996b MDL-75260 tiny_media: Adjust Menu configuration
Part of MDL-75966
2022-11-10 19:53:52 +08:00
Andrew Nicols 75ebfb703b MDL-75259 tiny_media: Tidy up strings
Part of MDL-75966
2022-11-10 19:53:48 +08:00
Stevani Andolo 519e10e939 MDL-75260 tiny_media: Implement Media Manager plugin for TinyMCE
Part of MDL-75966
2022-11-10 19:53:46 +08:00
Andrew Nicols 3728eb2cb9 MDL-75260 tiny_media: Refactor media commands
Part of MDL-75966
2022-11-10 19:53:44 +08:00
Huong Nguyen e07acba336 MDL-75328 tiny_media: Implement Media Video/Audio for TinyMCE
Part of MDL-75966
2022-11-10 19:53:42 +08:00
Huong Nguyen 723b2f4129 MDL-75258 tiny_media: Implement Media Image for TinyMCE
Part of MDL-75966

AMOS BEGIN
 CPY [alignment,atto_image],[alignment,tiny_media]
 CPY [alignment_bottom,atto_image],[alignment_bottom,tiny_media]
 CPY [alignment_left,atto_image],[alignment_left,tiny_media]
 CPY [alignment_middle,atto_image],[alignment_middle,tiny_media]
 CPY [alignment_right,atto_image],[alignment_right,tiny_media]
 CPY [alignment_top,atto_image],[alignment_top,tiny_media]
 CPY [browserepositories,atto_image],[browserepositories,tiny_media]
 CPY [constrain,atto_image],[constrain,tiny_media]
 CPY [enteralt,atto_image],[enteralt,tiny_media]
 CPY [enterurl,atto_image],[enterurl,tiny_media]
 CPY [height,atto_image],[height,tiny_media]
 CPY [imageproperties,atto_image],[imageproperties,tiny_media]
 CPY [presentation,atto_image],[presentation,tiny_media]
 CPY [presentationoraltrequired,atto_image],[presentationoraltrequired,tiny_media]
 CPY [saveimage,atto_image],[saveimage,tiny_media]
 CPY [size,atto_image],[size,tiny_media]
 CPY [width,atto_image],[width,tiny_media]
AMOS END
2022-11-10 19:53:40 +08:00
Andrew Nicols cdbabe8ef8 MDL-75263 tiny_autosave: Implement Autosave for TinyMCE
Part of MDL-75966
2022-11-10 19:53:39 +08:00
Andrew Nicols a6032854bf MDL-75261 tiny_h5p: Add the Tiny H5P plugin
Part of MDL-75966

AMOS BEGIN
 CPY [browserepositories,atto_h5p],[browserepositories,tiny_h5p]
 CPY [copyrightbutton,atto_h5p],[bcopyrightbutton,tiny_h5p]
 CPY [downloadbutton,atto_h5p],[downloadbutton,tiny_h5p]
 CPY [embedbutton,atto_h5p],[embedbutton,tiny_h5p]
 CPY [h5p:addembed,atto_h5p],[h5p:addembed,tiny_h5p]
 CPY [h5pfile,atto_h5p],[h5pfile,tiny_h5p]
 CPY [h5pfileorurl,atto_h5p],[h5pfileorurl,tiny_h5p]
 CPY [h5poptions,atto_h5p],[h5poptions,tiny_h5p]
 CPY [h5purl,atto_h5p],[h5purl,tiny_h5p]
 CPY [invalidh5purl,atto_h5p],[invalidh5purl,tiny_h5p]
 CPY [instructions,atto_h5p],[instructions,tiny_h5p]
 CPY [noh5pcontent,atto_h5p],[noh5pcontent,tiny_h5p]
AMOS END
2022-11-10 19:53:36 +08:00
Andrew Nicols c4a0896134 MDL-75966 editor_tiny: Tidy up toolbar management 2022-11-10 19:53:31 +08:00
Andrew Nicols 9dd2921d7c MDL-75331 editor_tiny: Limit formatting options
This commit removes several contentious formatting options for now,
pending further consideration, in particular it removes:
- forecolor
- backcolor
- fontfamily
- styles

The two color plugins are written in such a way that the chosen colour
is embedded into a style tag in the generated content. This is not
ideal as it removes these decisions away from theme developers and upon
theme changes to a site, is likely to lead to inaccessible and/or broken
content.

We feel that a new colour plugin will be required which links to known
colour style classes within the theme to allow a subset of colours which
are guaranteed to work with the theme.

The fontfamily plugin is removed pending further administrator
configuration in a future release.

In the case of the 'styles' plugin, this duplicates large parts of the
Format menu into which it is placed but does so in a way that does
respect the configuration of other areas - for example the block_formats
tag is ignored in this menu.

Part of MDL-75966
2022-11-10 19:53:27 +08:00
Andrew Nicols 769cc95f92 MDL-75078 editor_tiny: Tidy up TinyMCE configuration
This change does not include any functional change, but
compartmentalises the existing configuration to make it easier to read.

Part of MDL-75966
2022-11-10 19:53:23 +08:00
Huong Nguyen 68b882e196 MDL-75269 editor_tiny: Create Administration setting page for Tiny MCE editor
Part of MDL-75966
2022-11-10 19:53:18 +08:00
Andrew Nicols 07b9f384a2 MDL-75940 editor_tiny: Allow administrators to disable Tiny branding
Part of MDL-75966
2022-11-10 19:53:13 +08:00
Andrew Nicols a809f82862 MDL-75078 editor_tiny: Disable Tiny template plugin
The template plugin is a part of Tiny, and requires us to create an
administrator UI to configure the templates.

This requires much more thought on workflows, intent, and so on so we'll
park it for later.

Part of MDL-75966.
2022-11-10 19:53:11 +08:00
Simey Lameze 1bd0ad6fa3 MDL-75282 editor_tiny: Add ability to set value regardless of the editor
This is a follow-on part to MDL-75887.

Part of MDL-75966.
2022-11-10 19:53:08 +08:00
Andrew Nicols ebc7d31232 MDL-75282 editor_tiny: Always use Tiny for @tiny tests
This is a subsequent part of MDL-75886 relating to the introduction of
TinyMCE.

Part of MDL-75966
2022-11-10 19:53:05 +08:00
Andrew Nicols b7ffcdb6ce MDL-75078 editor_tiny: Remove styles from standard modal
Part of MDL-75966
2022-11-10 19:53:03 +08:00
Andrew Nicols d9c1be6aa3 MDL-75078 editor_tiny: Add list plugins
Part of MDL-75966
2022-11-10 19:53:01 +08:00
Andrew Nicols 41952a03b6 MDL-75078 editor_tiny: Fix undestroyed editors
Part of MDL-75966
2022-11-10 19:52:58 +08:00
Andrew Nicols 417dee3a65 MDL-75078 editor_tiny: Add help link helper
Part of MDL-75966
2022-11-10 19:52:57 +08:00
Andrew Nicols c2428e2018 MDL-75078 editor_tiny: Disable quickbars entirely
Part of MDL-75966
2022-11-10 19:52:55 +08:00
Andrew Nicols 603c50e1be MDL-75078 editor_tiny: Improve configuration specification
Part of MDL-75966
2022-11-10 19:52:52 +08:00
Andrew Nicols 05000e3e8b MDL-75078 editor_tiny: Reduce z-index of fullscreen tiny to not cover Moodle dialogues
Part of MDL-75966
2022-11-10 19:52:33 +08:00
Andrew Nicols 90c40fba5d MDL-75271 editor_tiny: Add a cache-busting loader for TinyMCE
Part of MDL-75966

This commit adds a cache-busting loader API for use in the TinyMCE
plugin.

This is not for use in any TinyMCE subplugins at this time as we have no
use-case outside of AMD modules.

This loader ensures that only files within the js/tiny directory are
loaded, and it only supports either .js or .css files at this time.

The client-side of the loader makes use of the jsrevision as a
cache-buster, including for CSS files included with TinyMCE.

If the revision is negative, then files are not cached.
If the revision is positive, then the requested file is cached in a
candidate file and served using aggressive cache headers.
2022-11-10 19:52:15 +08:00
Andrew Nicols d8cf77a127 MDL-75246 editor_tiny: Add initial translation support
Part of MDL-75966

Add support for translation of the TinyMCE interface.

TinyMCE translates English language strings rather than keys, and a tool
to perform this translation is included.
2022-11-10 19:52:13 +08:00
Andrew Nicols 7e5c81e5a5 MDL-75078 editor_tinymce: Rename legacy tinymce pluginname
This commit renames the legacy editor to make it easier for users to
differentiate the two in the UI.

Part of MDL-75966
2022-11-10 19:52:10 +08:00
Andrew Nicols 71d30542ae MDL-75078 editor_tiny: Hola TinyMCE 6
Part of MDL-75966

This commit adds TinyMCE version 6.1 into Moodle core.

A basic editor implementation is included, along with Moodle loader, and
basic Plugin API for Moodle. The Plugin API will be extended and
improved in future changes.

A new subplugin is defined for this plugin.
2022-11-10 19:51:45 +08:00
Sara Arjona ac11386831 Merge branch 'MDL-75974' of https://github.com/paulholden/moodle 2022-11-10 12:51:24 +01:00
Paul Holden 8176a6c690 Merge branch 'MDL-76011-master' of https://github.com/abgreeve/moodle 2022-11-10 11:49:30 +00:00
Sara Arjona 0b9df38302 Merge branch 'MDL-75876-master' of https://github.com/praxisdigital/moodle 2022-11-10 12:47:10 +01:00
Sara Arjona 42c48c1103 Merge branch 'MDL-76167-master' of https://github.com/davewoloszyn/moodle 2022-11-10 12:42:14 +01:00
Paul Holden 38c83b53ee Merge branch 'MDL-76224-master' of https://github.com/justusdieckmann/moodle 2022-11-10 08:52:17 +00:00
Andrew Nicols 54181de5a3 MDL-75365 javascript: Support ES6 in all JS except YUI 2022-11-10 13:56:58 +08:00
Jun Pataleta 1c9856b527 Merge branch 'MDL-76252-master' of https://github.com/sarjona/moodle 2022-11-10 13:49:12 +08:00
Jake Dallimore 062b7f025a Merge branch 'MDL-72979' of https://github.com/stronk7/moodle 2022-11-10 10:54:31 +08:00
Paul Holden 8aaede0e7d MDL-75862 backup: omit sesskey for continue buttons using get method.
It's automatically added by the rendered single_button instance when
using post method, so no need to add it unconditionally.
2022-11-10 10:17:04 +08:00
Shamim Rezaie 178c51786c MDL-68550 tablelib: Use aria-role=button
Use the aria-role=button for:
 - show/hide links
 - sort links
 - reset table preferences link
2022-11-10 06:14:01 +11:00
Shamim Rezaie 8e31a72c05 MDL-68550 output: Improve accessibility of the initials bar
- The current item should be focusable otherwise the focus will be lost
  as soon as a user clicks on an item in the initials bar
- Modified behat tests to not mistakenly click on the 'All' link
- Use the nav tag because each item in the initials bar is a
  navigation link within the current document
- The currently selected item is specified by aria-current
- Useed aria-current=true rather than =page because the links of each
  item in the initials bar is missing the pagination information
2022-11-10 06:06:02 +11:00
Shamim Rezaie e29007d679 MDL-68550 output: Improve accessibility of the paging bar
The use of aria-current is based on the example at
https://design-system.w3.org/components/pagination.html
2022-11-10 06:06:02 +11:00
Shamim Rezaie 155ee75905 MDL-68550 theme: Not showing the gap in the initial bar
The gap issue was a regression from MDL-66670.
2022-11-10 06:06:02 +11:00
Paul Holden a7425a2255 MDL-75872 mod_lesson: allow unlimited attempts default value.
Related change in 252e85be added a similar value per activity, we
should also allow it to be chosen as a default for the site.
2022-11-09 18:53:54 +00:00
Laurent David 7de01c97c2 MDL-74638 mod_bigbluebutton: Multiple fixes to room layout
* In preparation for the guest access trigger button, move the join session
button to the right
* Fix id in the templates to be more consistent
* Fix issue with room refreshing process so it replaces the node instead of node content.
2022-11-09 16:31:00 +01:00
Sara Arjona 2d91d4bf9c Merge branch 'MDL-76239-master' of https://github.com/mihailges/moodle 2022-11-09 16:23:18 +01:00
Sara Arjona 1ba4e0100e Merge branch 'MDL-50935-master-2' of https://github.com/junpataleta/moodle 2022-11-09 16:01:12 +01:00
Meirza 8a4d06bcaa MDL-76131 core_user: encode social profile fields data. 2022-11-09 15:49:26 +01:00
Justus Dieckmann 31ef87de8c MDL-76253 calendar: Use activities monologo pix 2022-11-09 15:23:29 +01:00
Jun Pataleta 5548743ece Merge branch 'MDL-76185-master' of https://github.com/mihailges/moodle 2022-11-09 21:51:17 +08:00
Safat Shahin c3245f6f52 MDL-75126 core_question: Allow multiple bulk action from qbank plugins
This commit implements the bulk action api to allow multiple bulk
actions from the qbank plugins instead of one. Any qbank plugin
wants to implement bulk action can now define an array of bulk
actions as a plugin feature.
2022-11-10 00:34:48 +11:00
Jun Pataleta 9555637d64 Merge branch 'MDL-76053' of https://github.com/stronk7/moodle 2022-11-09 21:28:30 +08:00
Sara Arjona f23fe5195a MDL-73853 core_h5p: Improve behat tests, to avoid random errors
An improvement has been added to the H5P tests to avoid random errors
due to the fact that H5P content needs a while to be displayed.

Co-author: Ferran Recio <ferran@moodle.com>
2022-11-09 14:04:41 +01:00
Jun Pataleta b24902fcc7 Merge branch 'MDL-76054' of https://github.com/stronk7/moodle 2022-11-09 20:09:15 +08:00
Sara Arjona c04f0e298d MDL-76252 mod_data: Remove space at the end of datemodified 2022-11-09 12:56:59 +01:00
Sara Arjona a74782dcc3 Merge branch 'MDL-75889' of https://github.com/paulholden/moodle 2022-11-09 12:36:39 +01:00
Sara Arjona d1a0ee011f Merge branch 'MDL-76059' of https://github.com/paulholden/moodle 2022-11-09 12:31:31 +01:00
David Woloszyn 7bb44ef712 MDL-76091 lib: Add additional check to local URLs params 2022-11-09 19:28:49 +08:00
Sara Arjona a8019c43bf Merge branch 'MDL-76015' of https://github.com/stronk7/moodle 2022-11-09 12:23:59 +01:00
Paul Holden 8d90674cd4 Merge branch 'MDL-76084-master' of https://github.com/ferranrecio/moodle 2022-11-09 11:04:47 +00:00
Sara Arjona 89d7a73c2c Merge branch 'MDL-74201-master' of https://github.com/aanabit/moodle 2022-11-09 11:49:28 +01:00
Víctor Déniz db2b0edb6a Merge branch 'MDL-76000' of https://github.com/paulholden/moodle 2022-11-09 10:11:15 +00:00
Jun Pataleta 613fe49a7d Merge branch 'MDL-76170-master' of https://github.com/snake/moodle 2022-11-09 15:44:19 +08:00
Jake Dallimore 36a0c85187 MDL-76099 core_backup: set selected overflow node in restore and copy
These pages sit under the 'restore' and 'copy' menu items respectively
but the selected menu item isn't correct because the 'restore.php' and
'copyprogress.php' page URLs don't match the node action for their
respective 'restore' and 'copy' nodes. Force set the selected node in
each case to resolve this.
2022-11-09 15:15:50 +08:00
Stevani Andolo b554773b0a MDL-76099 core_navigation: allow setting selected course overflow node
Allow pages to choose which course reuse overflow node is selected, to
handle cases where the default selection (based on matching PAGE->url
to the node action URL) isn't possible (such as when several pages need
to exist under the same selected node).
2022-11-09 15:15:50 +08:00
Jake Dallimore 3e17cf68a4 MDL-76170 enrol_lti: fix missing secret in enrol_lti_users
If member sync runs before the user launches the tool, a partial record
is created, without consumer secret. Subsequent launches of the tool by
that member don't resolve this and this results in grade sync failing
for any affected users. This patch:
- data fixes the existing affected rows
- fixes the launch code, ensuring secret is recorded on launch,
irrespective of whether the user info record has been created already
or not.
2022-11-09 10:02:22 +08:00
Simey Lameze ff4292501c MDL-76058 behat: send message using data generator 2022-11-09 09:50:06 +08:00
Frédéric Massart 3345519b48 MDL-74201 backup: Restore reference to content bank files 2022-11-08 20:13:14 +01:00
Sara Arjona 288963e526 MDL-73853 core_h5p: Add core lib changes after upgrading it 2022-11-08 17:09:00 +01:00
Sara Arjona 7ea2b6bfa1 MDL-73853 core_h5p: Upgrade core lib to moodle-1.22.4 2022-11-08 17:09:00 +01:00
Sara Arjona d611cdff9d MDL-73853 core_h5p: Disable H5P hub
Although we're not currently supporting the H5P Hub, the hubIsEnabled
setting was set to true (probably by mistake).
It has been changed to false by default because the new version of
the H5P editor library is causing some errors otherwise.
2022-11-08 17:09:00 +01:00
Sara Arjona 7c4ede9280 MDL-73853 core_h5p: Add editor lib changes after upgrading it 2022-11-08 17:09:00 +01:00
Sara Arjona b9ed63b470 MDL-73853 core_h5p: Upgrade editor lib to moodle-1.22.4 2022-11-08 17:09:00 +01:00
Mihail Geshoski 1815bb3b3e MDL-76239 gradereport_user: Fix the styling of the the user report
Applies the appropriate styling to the user report generated by the
profile report callback.
2022-11-09 00:06:34 +08:00
Eloy Lafuente (stronk7) 56e5b69930 MDL-72979 general: Remove any reference to the git:// protocol
Trivial change, only point is that, for the h5p library it was
agreed that it's better to just remove the "sample" directory
completely when importing the library.
2022-11-08 16:49:26 +01:00
Eloy Lafuente (stronk7) 621d75dbce MDL-76053 admin: Remove various warnings related to MNet
This partially reverts MDL-73270, where some useful environmental
checks and notifications in the admin UI were added to inform
about different parts of Moodle relying on the "unsupported"
php-xmlrpc extension.

Since then, some changes have happened in core, only available
for Moodle 4.1 and up (see the MDL-70889 mini-epic). Namely:

  - MNet (SSO, roaming, auth, enrol and Mahara portfolio) are not
    using the php-xmlrpc extension anymore, but a pure php library.
  - The xmlrpc webservices protocol, has been move from core to
    the plugins directory, although it continues using the php-xmlrpc
    extension.

Because of that here we are removing all the checks and notifications
related with MNet (not using the extension anymore), but keeping the
webservice plugin ones (still using the extension). Surely if some day the
protocol stops using the extension, we'll be able to remove the
corresponding checks too. But that's future.

Note the associated lang strings have been also removed (not deprecated)
because they were highly specific and hardly reusable:
  - xmlrpcmaharaenabled
  - xmlrpcmnetauthenticationenabled
  - xmlrpcmnetenabled

And very same applies, because MNet doesn't contain anything deprecated
or not supported anymore, hence, straight deletion, to the function:
  - mnet_get_deprecation_notice()

Also, related tests using any of the removed stuff above have been deleted.

In the other side, the "check_xmlrpc_usage" continues existing and
being used both by environment checks and admin notifications but,
as commented above, now it only looks for the xmlrpc webservice
protocol now.
2022-11-08 16:49:18 +01:00
Eloy Lafuente (stronk7) c763d40704 MDL-76054 environment: Remove the php-xmlrpc extension check
For Moodle 4.1 and up, the php-xmlrpc is not needed anymore:
- All the MNet stuff has been moved to use php library (MDL-76055).
- The webservice/xmlrpc has been moved from core to contrib (MDL-76052).

So we just remove the check here. Starting with 4.1, it's not
needed for any core functionality.

Note that the string has been removed, and not deprecated, because it's
a non-generic string, not belonging to core/moodle main lang file, and
hardly reused ever. That fits with the allowed deletions, not requiring
any deprecation.

Of course, the lang removal only has been applied to master (4.1dev).
Older branches still keep it and will be used when checking < 4.1
upgradability.
2022-11-08 16:45:12 +01:00
Eloy Lafuente (stronk7) 50144cf589 MDL-76015 install: update the list of stale files for 4.1
Note that there aren't too many available this time, because
basically all correspond to plugins. So just 3 this time.
2022-11-08 16:41:10 +01:00
Víctor Déniz 5877ae306e on-demand release 4.1dev+ 2022-11-08 13:45:16 +00:00
Ferran Recio c8e73da314 MDL-76220 mod_wiki: fix extend_navigation
The wiki_extend_navigation is using $PAGE->url when it is not allowed
to. Extending navigation can be invoked in an Ajax request so it should
not use $PAGE global.
2022-11-08 14:37:54 +01:00
hieuvu 8d5e430461 MDL-75781 javascript: Centering when resize for dialog 2022-11-08 18:05:51 +07:00
Jake Dallimore d2dd970b19 MDL-63037 mnet: fix hostexists string usage 2022-11-08 17:01:40 +08:00
Jake Dallimore 30100103b3 Merge branch 'MDL-75941' of https://github.com/paulholden/moodle 2022-11-08 12:04:16 +08:00
Jun Pataleta cede2b1420 Merge branch 'MDL-76113-master' of https://github.com/snake/moodle 2022-11-08 12:02:00 +08:00
Jake Dallimore ad666b7b15 Merge branch 'MDL-76071-master' of https://github.com/laurentdavid/moodle 2022-11-08 11:44:01 +08:00
Jake Dallimore dd21b9971c Merge branch 'MDL-72882-master-3' of https://github.com/junpataleta/moodle 2022-11-08 11:31:30 +08:00
Paul Holden 4f3e8c9b39 MDL-75974 tool_customlang: check out language pack in CLI import. 2022-11-07 22:40:53 +00:00
Paul Holden c4c823c20e MDL-75889 core: compare domain names in a case-insensitive manner.
As per https://www.rfc-editor.org/rfc/rfc1035#section-3.1
2022-11-07 22:37:15 +00:00
Justus Dieckmann d0abf88ccd MDL-76224 Resource: Set correct page url in /mod/label/view.php 2022-11-07 18:45:27 +01:00
Marina Glancy 064eccd4fc MDL-75525 reportbuilder: specify initial sorting for datasources 2022-11-07 15:43:45 +01:00
Andrew Nicols 6fae54c10e Merge branch 'MDL-75880' of https://github.com/stronk7/moodle 2022-11-07 21:56:06 +08:00
Andrew Nicols 65ed414b60 Merge branch 'MDL-73624-master' of https://github.com/meirzamoodle/moodle 2022-11-07 21:51:58 +08:00
Andrew Nicols 3576fb2659 Merge branch 'MDL-75519-master' of https://github.com/marinaglancy/moodle 2022-11-07 21:41:02 +08:00
Víctor Déniz f23ed07e52 Merge branch 'm41_MDL-74912_Fix_RegExp_Word_Boundaries_On_MySQL8' of https://github.com/scara/moodle 2022-11-07 10:19:56 +00:00
Jun Pataleta 3f9a93b522 MDL-50935 atto_equation: Add upgrade step to fix existing sites 2022-11-07 15:12:23 +08:00
Jun Pataleta 3cb02787cf MDL-50935 atto_equation: Fix display of matrix template
Thanks to Geoffrey Rowland's fix suggestion.
2022-11-07 14:30:44 +08:00
Andrew Nicols a1cb96719a Merge branch 'MDL-75466_upgrade-php-mailer-to-6-6-4' of https://github.com/ziegenberg/moodle 2022-11-07 12:21:45 +08:00
Andrew Nicols 2f74405d6c MDL-74468 mod_bigbluebuttonbn: Coding style violation fix 2022-11-07 12:14:04 +08:00
Andrew Nicols dc2a6ea8f8 Merge branch 'MDL-74468-master' of https://github.com/call-learning/moodle 2022-11-07 12:14:00 +08:00
Jun Pataleta 15ac130ba8 Merge branch 'MDL-76052' of https://github.com/stronk7/moodle 2022-11-07 12:04:46 +08:00
Huong Nguyen 2a74b873d7 MDL-74996 Quiz: Convert submission confirmation to saveCancelPromise 2022-11-07 09:40:06 +07:00
Huong Nguyen c55d8aca6a MDL-74996 Quiz: Unanswered question warning for submission confirmations
Including in this commit:
 - New method called get_number_of_unanswered_questions() for getting the unanswered questions
 - PHPUnit and Behat tests for the new dialogue
2022-11-07 09:40:06 +07:00
Huong Nguyen d4d666cdf4 MDL-74996 Quiz: Change the submission confirmation dialogue content
- Changed the title from "Confirm" to "Submit all your answers and finish?"
 - Changed the content from "Once you submit, you will no longer be able to change your answers for this attempt."
   to "You will no longer be able to change your answers for this attempt."
 - Changed some Behat scenarios to match with the new dialogue content
2022-11-07 09:40:04 +07:00
Huong Nguyen 783a5c8ce7 MDL-74996 Quiz: Convert submission confirmation to core/modal_factory 2022-11-07 09:37:56 +07:00
Shamim Rezaie a803fa8ee4 Merge branch 'MDL-74545-master' of https://github.com/call-learning/moodle 2022-11-07 12:42:22 +11:00
Matteo Scaramuccia a4c3f4749d MDL-74912 dml: Fix PHP coding style problems 2022-11-05 10:07:27 +01:00
Matteo Scaramuccia 75123ed7fd MDL-74912 dml: Fix missing nullable marker 2022-11-05 10:07:26 +01:00
Matteo Scaramuccia b82c95a075 MDL-74912 mod_forum: Fix regexp word boundaries markers in MySQL 8 2022-11-05 10:07:26 +01:00
Eloy Lafuente (stronk7) d590b08dfa MDL-75880 phpunit: fix all @coversDefaultClass missing @covers
Because @coversDefaultClass doesn't indicate any coverage (it's
just an alias to avoid having to write the class name in @covers),
this commit fixes all the files that were using that annotation
and missing any @covers.

Basically, replacing one by the other and done.
2022-11-04 16:51:20 +01:00
Eloy Lafuente (stronk7) e7d3e042fc MDL-76052 webservice_xmlrpc: Annotate some wrong plugin uses
It has been detected that there are various uses of the plugins
breaking the inter-communication principles, with core_webservice
implementing functionality plugin-dependent that should belong
to the plugins.

Because of that, https://tracker.moodle.org/browse/MDL-76078 has
been created and we have added some TODO/@todo comments in core
pointing to that issue, for further analysis and fixes there.
2022-11-04 16:49:57 +01:00
Eloy Lafuente (stronk7) df227f3819 MDL-76052 webservice_xmlrpc: Remove it completely from core
Normal removal procedure:
  - Remove the plugin completely from core.
  - Document it in the webservices upgrade.txt file.
  - Add a core upgrade step to proceed to remove any configuration
    if the plugin has not been re-installed manually.

Plus:
  - Remove a few remaining uses in the hub/sites registration scripts,
    that were moved from xmlrpc to hand.made rest calls by MDL-31436
    (Moodle 3.4.1 and up) and never removed then.
  - Remove the php-xmlrpc extension as a recommendation in composer.
  - Remove "xmlrpc" from various comments, trivial cleanup.

Note:
  - While working on this MDL-76078 has been created about to
    fix a serious design problem detected (it does not affect
    functionality). That's out from this issue scope.
2022-11-04 16:49:52 +01:00
Víctor Déniz 077a5587d0 Merge branch 'MDL-76130-master' of https://github.com/meirzamoodle/moodle 2022-11-04 15:37:10 +00:00
Sara Arjona fee1b8ce5f on-demand release 4.1dev+ 2022-11-04 14:52:52 +01:00
Sara Arjona 0c762c7af5 NOBUG: Fixed SVG browser compatibility 2022-11-04 14:52:48 +01:00
Sara Arjona ce1e6a9961 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-11-04 14:52:47 +01:00
Daniel Ziegenberg ccda718623 MDL-75466 core: Upgrade PHPmailer to 6.6.5
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-11-04 13:38:23 +01:00
Sara Arjona 15ea80e12d Merge branch 'MDL-76169-master' of https://github.com/andrewnicols/moodle 2022-11-04 12:06:38 +03:00
Jun Pataleta 5339a96f45 Merge branch 'MDL-75481-master' of https://github.com/kevpercy/moodle 2022-11-04 12:06:38 +03:00
Andrew Nicols 723f33031b Merge branch 'MDL-74035-master' of https://github.com/andrewnicols/moodle 2022-11-04 12:06:38 +03:00
Jun Pataleta c603293f7a Merge branch 'MDL-76103-master' of https://github.com/junpataleta/moodle 2022-11-04 12:06:38 +03:00
Jake Dallimore 446a9e64f0 Merge branch 'MDL-76055' of https://github.com/stronk7/moodle 2022-11-04 12:06:38 +03:00
Jun Pataleta 05c5dc7f9c Merge branch 'MDL-76072-master' of https://github.com/lameze/moodle 2022-11-04 12:06:37 +03:00
Víctor Déniz 6cee9752b8 Merge branch 'MDL-70071-master' of https://github.com/Chocolate-lightning/moodle 2022-11-04 12:06:37 +03:00
Víctor Déniz d3e26c1a2a Merge branch 'MDL-76172-master' of https://github.com/sarjona/moodle 2022-11-04 12:06:37 +03:00
Eloy Lafuente (stronk7) c5f85eec0e Merge branch 'MDL-75289-int-fix' of https://github.com/sarjona/moodle 2022-11-04 12:06:37 +03:00
Sara Arjona add46e3112 Merge branch 'MDL-76169-master' of https://github.com/andrewnicols/moodle 2022-11-04 12:06:36 +03:00
Sara Arjona 34f43bce81 MDL-75289 mod_data: Fix JS error when importing 2022-11-04 12:06:36 +03:00
Sara Arjona 7d53813db7 Merge branch 'MDL-75349' of https://github.com/paulholden/moodle 2022-11-04 12:06:36 +03:00
Laurent David c4b37ea393 MDL-74468 mod_bigbluebuttonbn: Fix logger count method
* The logger::count_callback_events was confusing and needs clarification
and small refactoring.
2022-11-04 09:03:58 +01:00
Andrew Nicols 92d17a73b5 MDL-76169 question: Use correct action menu step 2022-11-04 15:51:22 +08:00
Meirza 4641b84e58 MDL-76130 install: make the button to the center position 2022-11-04 11:22:26 +07:00
Safat Shahin 8c13965658 MDL-74035 qbank_viewquestionname: In place editing
This commit will implement in place editing for the
qbank view where users with permission can edit the
title of the questions from the quesion bank view.
2022-11-04 12:03:42 +08:00
Marina Glancy 635e852564 MDL-76103 search: skip solr behat tests if solr is not installed 2022-11-04 11:21:35 +08:00
Sara Arjona caf139a47d Merge branch 'MDL-76177-master' of https://github.com/aanabit/moodle 2022-11-04 11:01:42 +08:00
Sara Arjona e9596c1fca Merge branch 'MDL-75759-master' of https://github.com/junpataleta/moodle 2022-11-04 11:01:41 +08:00
Sara Arjona b8ae747056 Merge branch 'MDL-75535' of https://github.com/paulholden/moodle 2022-11-04 11:01:41 +08:00
Andrew Nicols 6deafa7336 Merge branch 'MDL-75904' of https://github.com/paulholden/moodle 2022-11-04 11:01:41 +08:00
Andrew Nicols eb7a2efbf7 Merge branch 'MDL-75784-master' of https://github.com/JBThong/moodle 2022-11-04 11:01:41 +08:00
AMOS bot e3b2c21d3b Automatically generated installer lang files 2022-11-04 00:07:38 +00:00
David Woloszyn 2987bfab5f MDL-76167 installer: Corrected dockblock param types 2022-11-04 10:42:21 +11:00
Laurent David 0dcc799d8f MDL-74468 mod_bigbluebuttonbn: Remove getallheader
* getallheader is only fully compatible with Apache servers. Replace it
with a polyfill.
2022-11-03 22:16:15 +01:00
Shamiso.Jaravaza 16656917a7 MDL-74468 mod_bigbluebuttonbn: Fix custom completion for BBB
* BBB has specific completion indicator that need to be taken into account
* Fix mock requests so we can send participant id and then attach events to them
* Refactor slightly the broker to split meeting logic from request (decoding)
* Fix update completion state cron
2022-11-03 22:16:15 +01:00
Shamiso.Jaravaza 3bd76aea67 MDL-75415 mod_bigbluebuttonbn: Fix session times 2022-11-03 11:25:02 -06:00
Mihail Geshoski 7acc7cd0cc MDL-76185 mod_glossary: Remove separator in continuous display format 2022-11-03 23:53:36 +08:00
Andrew Nicols bcbdb8764a MDL-76169 question: General behat fixes
Whilst amending these tests I discovered some other minor fixes to be
made.
2022-11-03 21:39:15 +08:00
Andrew Nicols 8ffbaad330 MDL-76169 question: Use action menu steps consistently 2022-11-03 21:39:15 +08:00
Andrew Nicols 3d70f457cb MDL-76169 mod_quiz: Add quiz question bank behat resolver 2022-11-03 21:39:15 +08:00
Andrew Nicols 426ea50861 MDL-76169 behat: Normalise exception message in should (not) steps
These steps have accepted a NodeElement instance as an argument for some
time, but were trying to cast it to string when formulating exception
messages, making it harder to debug and, in the case of the 'should see'
step, not work at all.

This patch introduces a new function to produce a consistent naming for
them.
2022-11-03 21:39:15 +08:00
Andrew Nicols 232ebac338 MDL-76169 behat: Add improved steps for using action menus
This commit adds new steps related to action menus to support:
* Choosing an item in a named action menu
* Choosing an item in a named action menu within a container
* Confirming that an action menu item does or does not exist in a named
  action menu
* Confirming that an action menu item does or does not exist in a named
  action menu within a container

The existing action menu steps were insufficient as they assume that
there is only one action menu within he container, which is not
necessarily the case.

The existing action menu steps are not non-JS friendly and will error if
JS is disabled, without providing any fallback when one is easily
available.

Unfortunately these steps cannot be used to replace the existing steps
without manual intervention.
2022-11-03 21:39:15 +08:00
Jun Pataleta 8b12ca7d1b Merge branch 'MDL-75289-master' of https://github.com/andrewnicols/moodle 2022-11-03 12:44:40 +03:00
Jun Pataleta 486645f487 Merge branch 'MDL-75513-master-3' of https://github.com/mihailges/moodle 2022-11-03 12:44:40 +03:00
Ilya Tregubov 8874e05b82 Merge branch 'MDL-75751-master' of https://github.com/sammarshallou/moodle 2022-11-03 12:44:39 +03:00
Sara Arjona 35d2061018 Merge branch 'MDL-61880-master' of https://github.com/snake/moodle 2022-11-03 12:44:39 +03:00
Jun Pataleta f91261c9fa MDL-72882 tool_langimport: Set default language when deleting lang pack
* When the language pack being deleted is
  - the same as the site default language, we must set the site default
    language to 'en'.
  - fix the user's current language to the default site language.
2022-11-03 13:27:11 +08:00
Jun Pataleta 03f298a71c MDL-72882 core: Use default site lang when user lang no longer available
* Check that the lang attribute for the output HTML exists. If not,
use the default site language.
* Also fix the current language for the user.
2022-11-03 13:27:11 +08:00
Andrew Nicols eecbc3ce15 MDL-70071 forum: Convert post threshold warnings to info 2022-11-03 13:10:22 +08:00
Jun Pataleta a343faaa7d MDL-75759 courseformat: Link classes in PHPDocs with @see tags
- Linking classes/methods mentioned in PHPDoc with @see tags help devs
checking the PHPDoc to quickly navigate to the class/method mentioned
and also helps us ensure that it points to the correct class/method.
- Some typo/grammar fixes as well in existing PHPDoc descriptions.
- Fixed parameter type in execute()'s PHPDoc block.
2022-11-03 11:57:25 +08:00
Simey Lameze e43fef8fc9 MDL-75759 courseformat: fix documentation of stateupdates tests 2022-11-03 11:37:10 +08:00
Jun Pataleta dbf67c06bb MDL-75759 courseformat: Fix stateactions test
* Require lib/externallib.php in
\core_courseformat\output\local\state\cm::export_for_template()
* Point @coversDefaultClass to the proper class.
2022-11-03 11:35:42 +08:00
Simey Lameze ac8dcf13da MDL-76072 tool_lp: only init inlineGrader module if user can grade 2022-11-03 10:51:27 +08:00
Andrew Nicols 8f37e6ecff MDL-75289 mod_data: Make JS more resilient
This change makes the JS in for preset management more resilient.

Previously, if the button was not on the page then an error was thrown.

Instead this code changes the listener to listen to the document and
filters the clicked element based on the same selector. This is a much
safer approach as it will not error if the selector was not found on the
page.

In this case the behat test introduced elsewhere in this issue is
testing a scenario where the Save as preset button is not present
because there are no fields to store as a preset.
2022-11-03 10:02:23 +08:00
Laurent David 1077d473c4 MDL-74545 mod_bigbluebuttonbn: Allow changing the polling value
* The polling time on the BBB room page can be changed via the poll_interval
settings (general settings)
2022-11-02 20:30:07 +01:00
Paul Holden 6813fd4094 MDL-75300 mod_h5pactivity: check whether reviewer join matches rows.
Return original capability join if so, to prevent generating invalid
SQL.
2022-11-02 19:25:53 +00:00
Amaia Anabitarte 565aafccc6 MDL-76177 mod_data: Don't close a div that has not been opened 2022-11-02 18:39:54 +01:00
Eloy Lafuente (stronk7) 73bc677346 MDL-76055 mnet: Switch the keyswap to use the library
This service is different from the rest because it
doesn't run encrypted, but plain xmlrpc. Hence, we
cannot use the normal mnet_xmlrpc_client (that provides
on-the-fly encryption and signing).

So, instead, let's instantiate a custom client here
and use it for this pure xmlrpc request and response.

PS: It's curious that this exact sevice has support
for proxies but the mnet_xmlrpc_client one has not. I'm not
going to modify that here, but have left a comment
in the code about that.

PS: Some small style changes have been applied around
the modified code (spacing, &&, comments...)
2022-11-02 15:56:38 +01:00
Eloy Lafuente (stronk7) 478f423e2d MDL-76055 auth_mnet: Fix update_enrolments request
Basically this fixes MDL-70833 that was reproduced while
testing the update_enrolments requests. Summary:

- Fixes a typo in table name preventing it to be updated ever.
- Fix outer join that was missing records.
- Stop playing and mixing ids (local and remote).
- Better control which enrolments have to be kept (previously
  they were being deleted immediately after creating them).
- Improve the coding style of inserts.
- Modernise the deletions to use sql helper and to work with 0..n ids.
2022-11-02 15:56:38 +01:00
Eloy Lafuente (stronk7) 29873206b9 MDL-76055 mnet: Switch the mnet server to use the library 2022-11-02 15:56:38 +01:00
Eloy Lafuente (stronk7) 8c64ab98ee MDL-76055 mnet: Switch the mnet client to use library
Completely remove all uses if the xmlrpc php extension in
the client and replace them by the phpxmlrpc library.

Very noticeably, remove all the uses of the curl extension
and use phpxmlrpc own curl support.

Working ok for moodle-moodle/mahara sso and mahara portfolio export.
2022-11-02 15:56:38 +01:00
Eloy Lafuente (stronk7) a0d916bc86 MDL-76055 libraries: Autoload phpxmlrpc and verify it works
Also, we can now safely remove Autoloader.php, because
Moodle PSR-4 autoloader has taken control, so document
and test it too.
2022-11-02 15:56:38 +01:00
Eloy Lafuente (stronk7) c958bd7305 MDL-76055 libraries: Import phpxmlrpc 4.8.0 release 2022-11-02 15:56:38 +01:00
Sara Arjona ae63a2d16b MDL-76172 core: Fix error when userinfo is false
This patch should fix a regression introduced in MDL-75171, raised
while running the OBv2.1 certification.
The new method get_raw_userinfo() can return stdClass or false but
the second one was not taken into account from get_userid() (so an
error was thrown: "Argument 1 passed to
core\oauth2\client::map_userinfo_to_fields() must be an instance
of stdClass, bool given").
2022-11-02 12:28:19 +01:00
Mihail Geshoski 458c1c771b MDL-75513 core_grades: New method that returns the grade item string
Introduces a new method get_element_type_string() in grade/lib.php
which returns the appropriate string that describes the type of the
grade item element.
2022-11-02 17:47:02 +08:00
Mihail Geshoski 3d1bb8e863 MDL-75513 behat: Update existing behat tests 2022-11-02 17:45:52 +08:00
Mihail Geshoski e8caeb85e3 MDL-75513 gradereport_user: Add behat tests 2022-11-02 17:45:52 +08:00
Mihail Geshoski 3414a93268 MDL-75513 gradereport_user: Output the tertiary nav action in index.php
Outputs the relevant tertiary navigation actions based in index.php,
the prev/next user navigation and removes the old trigger buttons for
the group and user selector from the zero state page.
2022-11-02 17:45:52 +08:00
Mihail Geshoski 42c5109652 MDL-75513 gradereport_user: Create tertiary navigation actions 2022-11-02 17:45:52 +08:00
Mihail Geshoski be366c5b7c MDL-75513 core_grades: Renderer for the custom user header 2022-11-02 17:45:52 +08:00
Mihail Geshoski ee2d1f806d MDL-75513 message: Enable optional text display in the contact toggle 2022-11-02 17:45:52 +08:00
Mihail Geshoski df5e5c0f88 MDL-75513 gradereport_user: Trigger element for the view mode selector
Creates a renderer method and a template for the element that would
trigger the view mode selector in the grade user report.
2022-11-02 17:45:52 +08:00
Mihail Geshoski ba80b78119 MDL-75513 core_grades: Renderer for the prev/next user navigation 2022-11-02 17:45:52 +08:00
Mihail Geshoski 1046e06e83 MDL-75513 gradereport_user: Create trigger element for the user selector
Creates a renderer method and a template for the element that would
trigger the user selector.
2022-11-02 17:45:52 +08:00
Mihail Geshoski 8b2f9b0386 MDL-75513 core_grades: Create trigger element for the group selector
Creates a renderer method and a template for the element that would
trigger the group selector.
2022-11-02 17:45:52 +08:00
Mihail Geshoski c2851ed141 MDL-75513 gradereport_user: Update the grade user report
Updates the styling of the grade user reports and introduces
functionality which enables expanding and collapsing grade
categories.
2022-11-02 17:45:52 +08:00
Jake Dallimore 1b9ebba57b MDL-76113 enrol_lti: Fix secret on lti user for LTI 2.0 consumers
Fixes the enrol_lti_users.consumersecret field for LTI 2.0 users.
This field erroneously contained the tool secret and not the consumer
secret needed for service requests when used with LTI 2.0 consumers,
which resulted in complete grade sync failure for LTI 2.0 consumers.
This patch:
- adds an upgrade step to address existing incorrect secrets for LTI
2.0 launched users. It sets these to the correct consumer secret.
- fixes the way the secret is first set during a launch, ensuring
this->consumer->secret is used, which properly captures either the
tool secret (for 1.1 launches) or the consumer secret (for 2.0
launches).
2022-11-02 16:48:33 +08:00
Ferran Recio 4b32662da7 MDL-76084 theme_boost: add shadow to the sticky footer 2022-11-02 09:25:28 +01:00
Jun Pataleta 714f944a3e Merge branch 'MDL-75038' of https://github.com/paulholden/moodle 2022-11-02 13:39:27 +08:00
Jun Pataleta b2368a421b Merge branch 'MDL-75848' of https://github.com/paulholden/moodle 2022-11-02 13:20:12 +08:00
Jake Dallimore c48e83db0e MDL-61880 tool_oauth2: don't rely on discovery when editing issuers
Adjusts the testing scenarios so that we don't rely on endpoint
discovery being run during an issuer edit, which is no longer the case.
For scenarios that need a userinfo endpoint, set this manually.
2022-11-02 11:11:00 +08:00
Jake Dallimore b76ac53c9d MDL-61880 core: don't clear issuer fields not present in form data
In cases where we have an id, load the persistent and then set new data
before saving. This ensures we don't delete fields which are missing in
the form data.
2022-11-02 11:11:00 +08:00
Yannick Forget 52d523fa9c MDL-61880 core: Retain OAuth 2.0 user field mappings after issuer update 2022-11-02 11:10:36 +08:00
Shamim Rezaie d18a89fb0b Merge branch 'MDL-76142' of https://github.com/paulholden/moodle 2022-11-02 14:02:33 +11:00
Shamim Rezaie 8ddc2a5fed Merge branch 'master_MDL-75306-lastused-41' of https://github.com/catalyst/moodle-MDL-72752 2022-11-02 12:57:09 +11:00
Paul Holden 4b007efda5 MDL-75038 blog: link back to user only when one specified. 2022-11-01 21:27:03 +00:00
Paul Holden 429508a7b4 MDL-76142 cohort: cross DB support for description filter.
Specifically avoids Oracle exception ORA-00932.
2022-11-01 14:05:39 +00:00
Ilya Tregubov ea58a656c1 Merge branch 'MDL-75289-master' of https://github.com/sarjona/moodle 2022-11-01 15:38:56 +03:00
Ilya Tregubov 720bd60fc6 on-demand release 4.1dev+ 2022-11-01 15:00:21 +03:00
Jun Pataleta bd702e14a2 Merge branch 'MDL-74643-patch' of https://github.com/ilyatregubov/moodle 2022-11-01 14:06:13 +08:00
Ilya Tregubov 080e11e35a MDL-74643 core_user: Fix Behat test.
Stop using deprecated steps.
2022-11-01 08:59:51 +03:00
Andrew Nicols f50b622319 Merge branch 'mdl-75010' of https://github.com/danmarsden/moodle 2022-11-01 11:51:33 +08:00
Andrew Nicols 60bc475925 Merge branch 'MDL-75468' of https://github.com/paulholden/moodle 2022-11-01 11:17:27 +08:00
Andrew Nicols 624f68be78 Merge branch 'MDL-76076_master' of https://github.com/marxjohnson/moodle 2022-11-01 10:47:14 +08:00
Jun Pataleta 5e84f00acb Merge branch 'MDL-73141-master' of https://github.com/dravek/moodle 2022-11-01 09:25:34 +08:00
Jun Pataleta c0580bc013 Merge branch 'MDL-76120-master' of https://github.com/andrewnicols/moodle 2022-11-01 09:17:19 +08:00
Sara Arjona 217819a0de Merge branch 'MDL-75358-master' of https://github.com/junpataleta/moodle 2022-10-31 18:18:29 +01:00
Jun Pataleta 4caae7c835 MDL-75358 blog: Make attachment callback parameter nullable 2022-10-31 22:58:40 +08:00
Sara Arjona 61e8b806ec MDL-75289 mod_data: Implement prototyped tertiary nav
On the Database page:
- The List/single view is displayed in the right.
- The buttons Import entries, export entries and Export to portfolio
have been moved to the Actions menu.
- The List/Single view headings have been removed.
- The "Save settings" secondary button is hidden when advanced search
is enabled.
- The result (Found X out of Y entries, No records found) are not
displayed as notifications anymore.

On the Presets page:
- The buttons (Import, Export and Save as preset) have been moved to an
actions menu to the tertiary navigation. Some of these options have been
renamed.
- Remove the Action column heading from the table.

On the Presets preview page:
- Move the preset name to the heading in the tertiary navigation (Preview
of xxxxx), and remove the current preset name from the page.
- Align the List/single template to the right in the tertiary navigation.
- Make primary the "Use this preset" button.

On the Fields page:
- Remove the "Manage fields" menu.
- Remove the Export and Save as preset from the tertiary navigation.
- Align Create a field to the right in the tertiary navigation.
- Add a description at the top of the page.
- Remove the Action column heading from the table.
- Move field actions (Edit and Delete) to ellipsis.

On the Templates page:
- Move Export and Save as preset to the Actions menu.
- Move the templates list to a tertiary navigation selector and remove
the template heading.
- Reorder the templates list (Add entry template should be displayed
at the begining, instead of List template).
- Rename "Enable editor" to "Enable code editor".
2022-10-31 15:24:13 +01:00
Mark Johnson 67c7ed25e3 MDL-76076 cache: Add locking before write for parent caches 2022-10-31 13:55:54 +00:00
Sara Arjona aaca32f7e1 Merge branch 'MDL-75771-master' of https://github.com/PhMemmel/moodle 2022-10-31 13:39:43 +01:00
Ilya Tregubov 9a723c0e15 Merge branch 'MDL-74643-master' of https://github.com/mickhawkins/moodle 2022-10-31 14:52:47 +03:00
Michael Hawkins 336d8c5fab MDL-74643 tool_mobile: Update API to support supportavailability config
Co-authored-by: Juan Leyva <juanleyvadelgado@gmail.com>
2022-10-31 18:58:10 +08:00
Michael Hawkins e3b3ba90c8 MDL-74643 core_user: New admin setting for site support availability
This allows admins to configure whether contact site support is
available to everyone, authenticated users, or nobody.

The behat testing checks linked and direct access for each setting,
as well as adding testing that the support page override works as
expected.
2022-10-31 18:58:06 +08:00
Michael Hawkins ddc9a30fa1 MDL-74643 core_user: Added behat page resolver
Currently this supports resolving the Contact Site Support page.
2022-10-31 18:55:29 +08:00
Jun Pataleta fb302fe40f Merge branch 'MDL-75469-master' of https://github.com/kevpercy/moodle 2022-10-31 17:10:23 +08:00
Jun Pataleta 61146c9088 Merge branch 'MDL-76108-master' of https://github.com/aanabit/moodle 2022-10-31 16:49:25 +08:00
Jun Pataleta d54abc4079 Merge branch 'MDL-75487' of https://github.com/paulholden/moodle 2022-10-31 13:33:56 +08:00
Jake Dallimore 77a1212d41 Merge branch 'MDL-76041-master' of https://github.com/call-learning/moodle 2022-10-31 11:43:49 +08:00
Jun Pataleta 9bdfcc46d3 Merge branch 'MDL-75358-master' of https://github.com/marinaglancy/moodle 2022-10-31 10:10:16 +08:00
Dan Marsden a81c5593a5 MDL-75010 core: Prevent user last access update on user key login 2022-10-31 14:18:31 +13:00
David Matamoros b0802f49a6 MDL-73141 core_cohort: Convert cohort listing to Report Builder 2022-10-29 12:45:50 +02:00
Víctor Déniz 04d8fc6070 Merge branch 'MDL-68437-master' of https://github.com/mihailges/moodle 2022-10-28 17:44:50 +01:00
Amaia Anabitarte 3e96f16688 MDL-76108 mod_lesson: improving count call for PHP8.0 2022-10-28 18:16:32 +02:00
Philipp Memmel b4c292166a MDL-75771 core_courseformat: Add behat test for show_editor function 2022-10-28 17:24:37 +02:00
Philipp Memmel 4294acc5ab MDL-75771 core_courseformat: Fix capability for edit controls
course_format\base:show_editor now by default uses 'moodle/course:manageactivities', but also accepts other capabilities as param
2022-10-28 17:24:37 +02:00
Sara Arjona 53c4fc9af0 MDL-75289 mod_data: Reorder secondary nav tabs
The Presets tab should be displayed before Fields and Templates.
2022-10-28 15:30:26 +02:00
Andrew Nicols d396af9393 MDL-76120 behat: Swap click on select option to set field
Recent versions of Marionette do not like to click on the option
element so we must always use the set field option.
2022-10-28 20:53:22 +08:00
Sara Arjona fa7a55aa5d on-demand release 4.1dev+ 2022-10-28 14:09:39 +02:00
Sara Arjona fbfd60fef2 NOBUG: Fixed file access permissions 2022-10-28 14:09:38 +02:00
Sara Arjona 88622bf25b NOBUG: Fixed SVG browser compatibility 2022-10-28 14:09:34 +02:00
Marina Glancy a34b4ebdc3 MDL-76112 various: can not pss null as 3rd param to preg_split
This produces notices in PHP 8.1
2022-10-28 10:51:20 +02:00
Meirza 2b5bf7dbc0 MDL-76070 dataformat_json: Fix data loss in the exported file. 2022-10-28 13:08:15 +07:00
Jake Dallimore df90988239 Merge branch 'MDL-68943-master' of https://github.com/cameron1729/moodle 2022-10-28 11:49:42 +08:00
Jake Dallimore eba92e07de Merge branch 'MDL-76073-master' of https://github.com/marinaglancy/moodle 2022-10-28 11:05:41 +08:00
Cameron Ball 01074798e1 MDL-68943 assignfeedback_editpdf: Upgrade step for stale conversions 2022-10-28 11:03:29 +08:00
Cameron Ball 1e98c4ad27 MDL-68943 assignfeedback_editpdf: Reconvert updated files 2022-10-28 11:03:29 +08:00
Jake Dallimore fdef0eec44 Merge branch 'MDL-76069-master' of https://github.com/mihailges/moodle 2022-10-28 09:35:39 +08:00
Safat Shahin 9c89fba92a MDL-75306 qbank_usage: Last used column
This commit will implement Last used column
and filterable object.
2022-10-28 10:21:09 +11:00
Sara Arjona af17803658 Merge branch 'MDL-75188-master' of https://github.com/laurentdavid/moodle 2022-10-27 21:45:21 +02:00
Laurent David cf12af7519 MDL-75188 mod_data: Use cmid instead of id
* Based on previous changes, fix ids so they are consistent with other modules (in preparation for MDL-75255)
2022-10-27 18:34:45 +02:00
Laurent David d67fbbb80d MDL-75188 mod_data: Move import preset for to a modal
* Use a modal instead of a standard page to select the preset file
   and import it.
 * Change the zero state import button to a modal dialog so it uses the same
   workflow as on the preset page
2022-10-27 18:32:23 +02:00
Sara Arjona 4dc0505b2a Merge branch 'MDL-75471' of https://github.com/paulholden/moodle 2022-10-27 17:35:04 +02:00
Sara Arjona 9000fd3037 Merge branch 'MDL-75449' of https://github.com/paulholden/moodle 2022-10-27 17:24:11 +02:00
Víctor Déniz 8e57940fe7 Merge branch 'MDL-75467' of https://github.com/paulholden/moodle 2022-10-27 16:09:05 +01:00
Sara Arjona 8c12bc9ba7 Merge branch 'MDL-76023' of https://github.com/paulholden/moodle 2022-10-27 17:03:51 +02:00
Sara Arjona 0b03a3d41a Merge branch 'MDL-64231-master' of https://github.com/ferranrecio/moodle 2022-10-27 16:56:21 +02:00
Sara Arjona f0e2d12533 Merge branch 'MDL-75165' of https://github.com/paulholden/moodle 2022-10-27 16:50:09 +02:00
Víctor Déniz d76550da83 Merge branch 'MDL-75969-master' of https://github.com/andrewnicols/moodle 2022-10-27 15:29:40 +01:00
Mihail Geshoski 1057a1a625 MDL-76069 enrol_manual: Fix missing breadcrumbs 2022-10-27 21:56:18 +08:00
Meirza d49b78706e MDL-73624 lib_spout: encode output file name 2022-10-27 16:46:51 +07:00
Ferran Recio b9900c2b45 MDL-64231 mod_assign: download submissions with group folder 2022-10-27 11:11:12 +02:00
Jake Dallimore 5a9a6dd090 Merge branch 'MDL-75868-master' of https://github.com/ferranrecio/moodle 2022-10-27 16:41:08 +08:00
Sara Arjona e29d9fe89c Merge branch 'MDL-75166' of https://github.com/paulholden/moodle 2022-10-27 09:32:50 +02:00
Sara Arjona c122d3a7f5 Merge branch 'MDL-69275-submissionreview-resquashed' of https://github.com/cengage/moodle 2022-10-27 08:48:08 +02:00
Adrian Greeve 2b2b4e63a2 MDL-76011 lib: Updated the zip writer to retain the modified date. 2022-10-27 14:46:31 +08:00
Marina Glancy 4b99c6a795 MDL-76102 lib: PEAR - passing null to str functions is deprecated 2022-10-27 07:36:26 +02:00
Jun Pataleta de4566644f Merge branch 'MDL-75597-master' of https://github.com/ferranrecio/moodle 2022-10-27 11:56:35 +08:00
Andrew Nicols 6bc92b7f99 Merge branch 'MDL-76002-master' of https://github.com/snake/moodle 2022-10-27 11:31:57 +08:00
Claude Vervoort 12e207de9d MDL-69275 mod_lti: submission review (gradebook launch) 2022-10-26 15:03:41 -04:00
Jun Pataleta 9846fb83cc Merge branch 'MDL-75957-master-1' of https://github.com/mihailges/moodle 2022-10-26 21:13:25 +08:00
Frederik Milling Pytlick 08e71c5fd6 MDL-75876 core_calendar: Add raise_memory_limit call to export_execute
Added a call to raise_memory_limit in /calendar/export_execute.php as it can be very memory intensive.
2022-10-26 11:27:27 +02:00
Meirza 1574a39baf MDL-75890 block_myoverview: Added new wrapper element
Added a new element to wrap filter control in Course Overview,
so it will display well on desktop and mobile.

Co-authored-by: Huong Nguyen (huongnv13@gmail.com)
2022-10-26 16:18:34 +07:00
Thong Bui 5151cd6bd0 MDL-75784 Forms: Fix issues multi expand all/collapse buttons on a page 2022-10-26 14:06:54 +07:00
Jun Pataleta c6b1d79238 Merge branch 'MDL-75478-master' of https://github.com/stevandoMoodle/moodle 2022-10-26 14:15:05 +08:00
Jun Pataleta c76a2a05ba Merge branch 'MDL-72558' of https://github.com/NoelDeMartin/moodle 2022-10-26 13:37:45 +08:00
Amaia Anabitarte c1d6de60c4 MDL-76006 mod_data: Change zero state images 2022-10-25 17:50:27 +02:00
Sara Arjona fa655bb3a7 Merge branch 'MDL-75335-master' of https://github.com/aanabit/moodle 2022-10-25 17:47:44 +02:00
Amaia Anabitarte ab97d41644 MDL-75335 mod_data: Zero state for Fields and Templates 2022-10-25 16:35:58 +02:00
Amaia Anabitarte 32c8f75c0d MDL-75335 mod_data: Change Use a preset string 2022-10-25 16:05:24 +02:00
Marina Glancy c5fd214ccd MDL-75519 reportbuilder: set default sortorder for Users datasource 2022-10-25 11:19:36 +02:00
Jun Pataleta 35f39c45b7 on-demand release 4.1dev+ 2022-10-25 17:17:48 +08:00
Jun Pataleta ebda10c4e1 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-10-25 17:17:45 +08:00
Marina Glancy 5a9590dfad MDL-76073 badges: badge RB entity should have nullable callbacks 2022-10-25 10:49:06 +02:00
Laurent David 5a1e8156d7 MDL-76071 mod_choice: fix choice display on graphs
* The setting "Display mode" modifies the choices alignment of radio choice button
from horizontally to vertically. It should also display the list of choices in
the graph in the same directions.
2022-10-25 10:41:49 +02:00
Jake Dallimore 08f2f2dc72 Merge branch 'MDL-75727' of https://github.com/timhunt/moodle 2022-10-25 11:55:45 +08:00
Andrew Nicols 79952f5084 Merge branch 'MDL-76049' of https://github.com/timhunt/moodle 2022-10-25 11:49:25 +08:00
Jun Pataleta 6c0631b2d3 Merge branch 'MDL-75099-master' of https://github.com/rmady/moodle 2022-10-25 11:46:25 +08:00
Stevani Andolo ed71d74077 MDL-71951 calendar: Accessbility issue fix 2022-10-25 11:44:00 +08:00
Andrew Nicols 6d5c70a286 Merge branch 'master-MDL-74991' of https://github.com/golenkovm/moodle 2022-10-25 11:14:06 +08:00
Andrew Nicols d07cbb7641 Merge branch 'MDL-75763-master' of https://github.com/call-learning/moodle 2022-10-25 11:10:32 +08:00
Jake Dallimore c4d779fbb0 Merge branch 'MDL-74315-master' of https://github.com/roland04/moodle 2022-10-25 11:08:47 +08:00
Andrew Nicols 89b9f20229 Merge branch 'MDL-75760' of https://github.com/stronk7/moodle 2022-10-25 10:48:21 +08:00
Mihail Geshoski fce11bf6aa MDL-75957 core: Prevent repositioning dropdowns along the y-axis
Disables filipping the dropdowns up or dynamically repositioning
them along the y-axis to prevent them getting hidden behind the
navbar or them covering the trigger element.
2022-10-25 00:26:39 +08:00
Víctor Déniz f531f46d9e Merge branch 'MDL-75074-master' of https://github.com/sammarshallou/moodle 2022-10-24 16:43:08 +01:00
Víctor Déniz 9235ed5296 Merge branch 'MDL-75482-master' of https://github.com/stevandoMoodle/moodle 2022-10-24 16:36:26 +01:00
Sara Arjona 636e39e98b Merge branch 'MDL-75465-master' of https://github.com/stevandoMoodle/moodle 2022-10-24 17:30:12 +02:00
Víctor Déniz 3b4023122a Merge branch 'MDL-75483-master' of https://github.com/davewoloszyn/moodle 2022-10-24 16:00:46 +01:00
Sara Arjona 83aa6c2a13 Merge branch 'MDL-75474-master' of https://github.com/davewoloszyn/moodle 2022-10-24 16:54:40 +02:00
Víctor Déniz ed9d3ae84c Merge branch 'MDL-75352' of https://github.com/paulholden/moodle 2022-10-24 15:44:09 +01:00
Andrew Nicols f0be30af14 Merge branch 'MDL-74911-master' of https://github.com/matthewhilton/moodle 2022-10-24 22:22:28 +08:00
Sara Arjona 85385cd09f Merge branch 'MDL-75470-master' of https://github.com/davewoloszyn/moodle 2022-10-24 16:10:11 +02:00
Andrew Nicols bc5252d8bf Merge branch 'MDL-75684-master' of https://github.com/sarjona/moodle 2022-10-24 21:50:45 +08:00
Sara Arjona 4cf81fd3c2 Merge branch 'MDL-73030' of https://github.com/paulholden/moodle 2022-10-24 15:47:21 +02:00
Sara Arjona b0110cbed3 Merge branch 'MDL-75897' of https://github.com/paulholden/moodle 2022-10-24 15:35:12 +02:00
Sara Arjona b2816b93bf MDL-75684 mod_data: Display pending approval in resources
In MDL-75664, the approval status badge was re-added. However,
the resources list template was missing so this commit is for
fixing this.
2022-10-24 13:01:39 +02:00
Sara Arjona 16ba7cbe96 MDL-75684 mod_data: Add metadata to templates
Each template should display at the top the information about the
user who has created the entry, when it was created and modified.

Apart from that, this commit also includes:
- For the Journal preset, a link on each card entry title has been
added, to open the Single view.
- For the Resources preset, the Author field has been renamed to
"Author of resource" and the Description to "Content".
- For the Resources preset, the Author and Type fields will be
hidden in the List view for small devices.
2022-10-24 13:01:39 +02:00
Sara Arjona e80ec13230 MDL-75684 mod_data: Remove duplicated label 2022-10-24 13:01:39 +02:00
Sara Arjona 09a2c6a0e8 MDL-75684 mod_data: Add author name/lastname to adv search
Add the "First name" and "Last name" fields at the beginning of the
advanced search template for all the presets.
2022-10-24 13:01:39 +02:00
Sara Arjona a8452c9d25 MDL-75684 mod_data: Remove List/Single view headings
Apart from removing the "List view" and "Single view" h2 headings,
the presets and templates must be also reviewed to confirm no
heading is skipped (so h2 > h3 > h4 ...).

For the Journal preset, the "Reflections" heading has been removed
here too.
2022-10-24 13:01:39 +02:00
Sara Arjona 9fbc24898b MDL-75684 mod_data: Update action icons
The edit icon has been replaced from a cog to a pencil.
Besides, the actions icons will be displayed using black colour.
2022-10-24 13:01:39 +02:00
Jun Pataleta 10de18ce0c Merge branch 'MDL-75936-master' of https://github.com/andrewnicols/moodle 2022-10-24 15:58:14 +08:00
Andrew Nicols dc50ea7d3a MDL-75936 core_message: Migrate message_drawer_helper to ESM 2022-10-24 14:29:32 +08:00
Andrew Nicols 723d450c8c MDL-75936 core_message: Drawer must be ready before firing drawer events
This commit addresses a race condition when showing the message drawer
and opening the settings page from the Message preferences page.

In that situation, the message/edit.php page calls the
message_drawer_helper.showSettings function, which publishes a request
to show the drawer.

In some conditions (notably faster machines, or after MDL-66107) this
event is fired before the message_drawer.init has listened to it.

The solution here is to delay firing of the event until the drawer
announces itself as ready.

This ensures that the event is subscribed to before it is fired.
2022-10-24 14:29:32 +08:00
Jun Pataleta 5ca124e7a2 Merge branch 'MDL-76018-master' of https://github.com/sammarshallou/moodle 2022-10-24 13:16:24 +08:00
Matthew Hilton e02aa3ad9a MDL-74911 assignfeedback_editpdf: per-assignment conversion poll lock
The lock ensures that multiple conversions do not happen for the same
assignment submission.

Otherwise, subsequent conversions will fail when trying to save the
converted file.
2022-10-24 12:54:53 +10:00
Matthew Hilton 617a32f3f0 MDL-74911 assignfeedback_editpdf: unlock session when polling conversion
Polling conversions will run the document conversion immediately if the
conversion has not already been completed.

Releasing the session lock while doing this ensures large conversions
do not unnecessarily hold the users session.
2022-10-24 12:54:53 +10:00
AMOS bot 6366946547 Automatically generated installer lang files 2022-10-23 00:08:19 +00:00
Paul Holden 91c49cb836 MDL-75904 admin: ignore $CFG->allowcategorythemes during installation. 2022-10-21 22:32:12 +01:00
Paul Holden 3be5954500 MDL-76059 forms: graceful early exit for invalid button elements.
Ensure login form tries to capture guest button only if it exists.
2022-10-21 19:36:24 +01:00
Paul Holden 3bf355e37a MDL-75848 editor_atto: fix console error when clicking toolbar menu. 2022-10-21 18:46:07 +01:00
Eloy Lafuente (stronk7) 83eb19338e MDL-75760 database: Keep mysql driver working over all PHP versions
Before PHP 8.1, the mysqli extension had MYSQLI_REPORT_OFF as default setting.
With PHP 8.1, it has been changed to MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT
The native driver is not ready to work with this new reporting level,
see MDL-75761 about to considering to improve it.

So this change just ensures that we continue using MYSQLI_REPORT_OFF
with any PHP version.
2022-10-21 16:33:22 +02:00
Sara Arjona 963b7a4423 Merge branch 'MDL-72828-master' of https://github.com/davewoloszyn/moodle 2022-10-21 16:24:41 +02:00
Sara Arjona 5e9d99eeaf Merge branch 'MDL-61921-master' of https://github.com/HuongNV13/moodle 2022-10-21 16:22:44 +02:00
Ilya Tregubov 046e48c49c on-demand release 4.1dev+ 2022-10-21 15:34:10 +03:00
Ilya Tregubov 660b56eb50 Merge branch 'MDL-75362-refactor' of https://github.com/Chocolate-lightning/moodle 2022-10-21 09:56:19 +03:00
Jun Pataleta c809da03fd Merge branch 'MDL-68868-master' of https://github.com/davewoloszyn/moodle 2022-10-21 09:07:58 +03:00
Jun Pataleta 58a92364ed Merge branch 'MDL-70368-cache-image-metadata' of https://github.com/brendanheywood/moodle 2022-10-21 09:07:58 +03:00
Jun Pataleta 492662a333 Merge branch 'MDL-75157-master-1' of https://github.com/mihailges/moodle 2022-10-21 09:07:58 +03:00
Sara Arjona 31419c1f28 Merge branch 'MDL-75211-master' of https://github.com/ferranrecio/moodle 2022-10-21 09:07:58 +03:00
Sara Arjona ef3c37dd4c Merge branch 'MDL-75484-master' of https://github.com/davewoloszyn/moodle 2022-10-21 09:07:58 +03:00
Víctor Déniz c209719811 Merge branch 'MDL-67020_master' of https://github.com/marxjohnson/moodle 2022-10-21 09:07:58 +03:00
Sara Arjona 1ff87d2459 Merge branch 'MDL-75791-master' of https://github.com/marinaglancy/moodle 2022-10-21 09:07:58 +03:00
Sara Arjona e31c9d3f84 Merge branch 'MDL-75931' of https://github.com/paulholden/moodle 2022-10-21 09:07:58 +03:00
David Woloszyn bbe528c1ad MDL-72828 js: get_strings supports jquery objects 2022-10-21 13:47:34 +11:00
Huong Nguyen 986910d6ff MDL-61921 admin: Support XOAUTH2 for incoming mail 2022-10-21 09:34:53 +07:00
Huong Nguyen bc80531188 MDL-61921 admin: Support XOAUTH2 for outgoing mail 2022-10-21 09:33:48 +07:00
Tim Hunt 1944c03e7e MDL-76049 quiz generator: update calendar events for new overrides 2022-10-20 23:44:23 +01:00
Paul Holden 6cccd22567 MDL-75487 libraries: upgrade to version 2.0.3 of CFPropertyList. 2022-10-20 22:01:15 +01:00
Paul Holden 492a1c1624 MDL-75471 libraries: upgrade to version 1.8.0 of loglevel. 2022-10-20 22:00:13 +01:00
Anupama Sarjoshi 9df84d2ff8 MDL-75380 customfields: Fix incorrect links sent when enrolling users 2022-10-20 17:20:30 +01:00
Mathew May ee71eae12a MDL-75362 gradebook: add group selector into reports 2022-10-20 21:24:51 +08:00
Mathew May e84948c4a7 MDL-75362 gradereport_singleview: Roll in zero state 2022-10-20 21:24:51 +08:00
Mathew May e7c1c2841d MDL-75362 gradereport_user: Roll in zero state work for user report 2022-10-20 21:24:51 +08:00
Mathew May 7973d6b11c MDL-75362 gradereport_singleview: CiBot complaints 2022-10-20 21:24:51 +08:00
Mathew May 84d8c98d04 MDL-75362 gradereport_singleview: Typehinting and arrays 2022-10-20 21:24:51 +08:00
Mathew May 0b6d841806 MDL-75362 gradereport_singleview: Move classes 2022-10-20 21:24:51 +08:00
Mathew May 547bf73ea7 MDL-75362 gradereport_user: CiBot 2022-10-20 21:24:51 +08:00
Mathew May fdeda7f222 MDL-75362 gradereport_user: Comments and type hinting 2022-10-20 21:24:51 +08:00
Víctor Déniz 5f98e20a95 Merge branch 'MDL-76016' of https://github.com/stronk7/moodle 2022-10-20 13:54:57 +01:00
Ilya Tregubov 1a89fd6287 Merge branch 'MDL-72058' of https://github.com/paulholden/moodle 2022-10-20 15:43:02 +03:00
Paul Holden fdf2f8f31b MDL-75352 comment: implement comments datasource for custom reporting.
Create entity definition for a comment, join with user entity in new
report source to provide data for reportbuilder editor.
2022-10-20 13:37:56 +01:00
Paul Holden 6c9b4d1e24 MDL-75349 course: include groups entity data in participants report. 2022-10-20 12:33:17 +01:00
Paul Holden b10b89ec74 MDL-75349 group: implement groups datasource for custom reporting.
Create new entities for exposing report data on course groups and
groupings, joining to existing course/user entities to provide data
for the reportbuilder editor.
2022-10-20 12:30:06 +01:00
Mark Johnson 2f1e7982df MDL-67020 Cache: Refactor build_course_cache 2022-10-20 11:31:33 +01:00
Mark Johnson ea01fb2427 MDL-67020 Cache: Make local caching work for coursemodinfo 2022-10-20 11:31:33 +01:00
Mark Johnson 045ee091da MDL-67020 Cache: Make locking work for local file caches
* Add new requirelockingbeforewrite flag for cache definitions
* Implement native locking in cachestore_file (leveraging
file_lock_factory).
2022-10-20 11:31:33 +01:00
Jun Pataleta 80d4981d8d Merge branch 'MDL-75401-master-integration' of https://github.com/ferranrecio/moodle 2022-10-20 18:31:00 +08:00
Paul Holden d53b5879ca MDL-75897 output: safer checking of course reuse action nodes.
Also ensure that if course reuse contains only a single node (e.g.
reset), then it is still accessible from secondary navigation.

Co-authored-by: Meirza Arson <meirza.arson@moodle.com>
2022-10-20 11:08:22 +01:00
Jun Pataleta de11a92ed0 Merge branch 'MDL-75497-master4' of https://github.com/raortegar/moodle 2022-10-20 17:29:11 +08:00
Jun Pataleta b720790aec Merge branch 'MDL-75599-master' of https://github.com/laurentdavid/moodle 2022-10-20 17:26:08 +08:00
raortegar bf5cd9cf98 MDL-75497 mod_data: Review Check existence of field.class.php 2022-10-20 09:14:48 +02:00
Jun Pataleta d98380b272 Merge branch 'MDL-75894-master' of https://github.com/jleyva/moodle 2022-10-20 14:40:22 +08:00
Andrew Nicols 8f6835c6e8 Merge branch 'MDL-75834-master' of https://github.com/sammarshallou/moodle 2022-10-20 14:35:15 +08:00
Sara Arjona 2739a25ffb Merge branch 'MDL-75475-master' of https://github.com/davewoloszyn/moodle 2022-10-20 08:16:26 +02:00
Jun Pataleta 6875318513 Merge branch 'MDL-59458-master' of https://github.com/laurentdavid/moodle 2022-10-20 13:57:40 +08:00
Jun Pataleta a0e33d87ac Merge branch 'MDL-74910-master' of https://github.com/cameron1729/moodle 2022-10-20 13:57:40 +08:00
Cameron Ball 38c89c5343 MDL-74910 core_files: Remove unused query param 2022-10-20 13:57:39 +08:00
Kateryna Degtyariova 70bd5a2161 MDL-74910 core_files: Additional unit tests for get_conversions_for_file 2022-10-20 13:57:39 +08:00
Cameron Ball c9da36d731 MDL-74910 core_files: Return SQL to initial state
MDL-73727 aimed to improve the performance of the
get_conversions_for_file SQL. Unfortunately it also
changed the behvaiour of the SQL.

On further investigation, there is nothing wrong with
the SQL. This patch returns it back to its initial state.
2022-10-20 13:57:39 +08:00
Huong Nguyen 44ca802d4e MDL-61921 lib: Bring back OAuth for PHPMailer 2022-10-20 09:59:14 +07:00
Víctor Déniz 4b09e1bff4 Merge branch 'MDL-75962-master' of https://github.com/andrewnicols/moodle 2022-10-20 00:37:38 +01:00
Víctor Déniz 402066dac3 Merge branch 'MDL-75907-master' of https://github.com/golenkovm/moodle 2022-10-20 00:20:59 +01:00
Víctor Déniz fb74611571 Merge branch 'MDL-76033-master' of https://github.com/ilyatregubov/moodle 2022-10-20 00:07:53 +01:00
David Woloszyn 650694f18f MDL-75475 lib: Applied PHP CSS Parser patches 2022-10-20 09:32:47 +11:00
David Woloszyn c8ee3c9051 MDL-75475 lib: Upgraded PHP CSS Parser to 8.4.0 2022-10-20 09:32:47 +11:00
Paul Holden 27200f2c6e MDL-75941 theme_boost: don't auto grow breadcrumb items.
On mobile/small breakpoint, display breadcrumb items without
excess whitespace.
2022-10-19 21:49:06 +01:00
Paul Holden 225aab8f65 MDL-76000 theme_boost: reset form padding when in tertiary navigation. 2022-10-19 20:29:37 +01:00
David Mudrák 3c9ca9007b MDL-75534 Fix usermodified in very old forum discussions
Very early Moodle versions used to leave the field empty. Recent Moodle
versions expect that the value always links to an existing user account.
2022-10-19 20:36:31 +02:00
Paul Holden 06f013eec6 MDL-76023 course: fix access to custom data in notification task.
The message class `customdata` property is automatically JSON encoded
via magic setter method, so we can't append to it directly.
2022-10-19 18:49:04 +01:00
Laurent David 07735e1165 MDL-76041 mod_bigbluebuttonbn: Exception on Recording only page
* This fixes a the parameter provided to the get_recordings method of recording class
2022-10-19 19:47:41 +02:00
Ferran Recio f002af96b6 MDL-75597 mod_data: content max width 2022-10-19 17:07:14 +02:00
Ferran Recio ed4dcf6dff MDL-75211 mod_data: show batch select only if delcheck is present 2022-10-19 17:05:29 +02:00
Paul Holden 5d385d4bcb MDL-75535 files: implement files datasource for custom reporting.
Create file entity, joining to existing user entity to provide data
for the reportbuilder editor.
2022-10-19 15:04:09 +01:00
Paul Holden 8debad96ac MDL-75535 reportbuilder: reset cache upon generating default report.
This ensures any properties set during creation (e.g. condition values)
are immediately present in unit tests.
2022-10-19 15:04:09 +01:00
Paul Holden a82b83c2fb MDL-75166 blog: implement blogs datasource for custom reporting.
Create entity definition containing report elements for blog posts.
Add new report source joining the entity to existing user, course
and tag entities to provide data for the reportbuilder editor.
2022-10-19 14:53:08 +01:00
Paul Holden a641a8dfa2 MDL-75165 notes: implement notes datasource for custom reporting.
Create entity definition containing report elements for notes. Add
new report source joining the entity to the user/course entities to
provide data for the reportbuilder editor.
2022-10-19 14:46:21 +01:00
Paul Holden f1c3aca7ea MDL-75165 reportbuilder: entity method to override multiple aliases. 2022-10-19 14:46:21 +01:00
Jun Pataleta 3a5205dd0a Merge branch 'MDL-75985-master' of https://github.com/andrewnicols/moodle 2022-10-19 21:27:29 +08:00
Ilya Tregubov 85e0a299f3 Merge branch 'MDL-72606-master' of https://github.com/lucaboesch/moodle 2022-10-19 16:04:37 +03:00
Ferran Recio 8305c1c74d MDL-75401 mod_data: add sticky footers 2022-10-19 14:51:10 +02:00
Luca Bösch b56bdb094b MDL-72606 mod_feedback: Change "Answer the questions" button to primary. 2022-10-19 14:51:05 +02:00
Andrew Nicols 0ba4fa53c1 MDL-75985 behat: Return newline character for \n
Somehow part of this commit was lost during the push and/or squash.
2022-10-19 20:26:14 +08:00
Ilya Tregubov 79c81ab577 Merge branch 'MDL-75014-before-session' of https://github.com/brendanheywood/moodle 2022-10-19 15:20:52 +03:00
Ilya Tregubov 3f568024a1 MDL-76033 core: bump version in is_major_upgrade_required
MDL-58266 changes db structure. So upgrade must happen before
accessing any page.
2022-10-19 15:08:44 +03:00
Ferran Recio 3d483ac2ef MDL-75401 core: sticky footer component 2022-10-19 13:06:54 +02:00
Sara Arjona 2e48556e99 Merge branch 'MDL-76020-master' of https://github.com/mickhawkins/moodle 2022-10-19 13:00:54 +02:00
Sara Arjona 44dfaee450 Merge branch 'MDL-76010' of https://github.com/stronk7/moodle 2022-10-19 12:56:21 +02:00
Michael Hawkins 3df326695e MDL-76020 theme: Add missing support links to footer in Classic theme
The "Services and support" and "Contact site support" links were
missing from the footer in the Classic theme (which now has its own
footer template), so there was no way to navigate to the relevant links.
2022-10-19 17:52:13 +08:00
Mark Johnson dcc7d7b8df MDL-67020 Cache: Increment cacherev when purging course cache 2022-10-19 09:04:33 +01:00
Mark Johnson c06fc0648d MDL-67020 Cache: Release locks in cache_application::get_many() 2022-10-19 09:04:33 +01:00
Mark Johnson 9e7d9a0e9b MDL-67020 Cache: Prevent unnecessary coursemodinfo rebuild 2022-10-19 09:04:30 +01:00
Jun Pataleta 6ef7513b62 Merge branch 'MDL-75645' of https://github.com/stronk7/moodle 2022-10-19 15:36:42 +08:00
Ilya Tregubov 4f88b1bee7 Merge branch 'MDL-74654-master' of https://github.com/ssj365/moodle 2022-10-19 09:19:31 +03:00
Jun Pataleta e591f9da66 Merge branch 'MDL-75985-master' of https://github.com/andrewnicols/moodle 2022-10-19 10:56:14 +08:00
Shamiso.Jaravaza 74b2989f13 MDL-74654 mod_bigbluebuttonbn: Add role parameter 2022-10-18 08:27:15 -06:00
Mikel Martín a116529bb5 MDL-74315 reportbuilder: Fix report filters hidden under top navbar
- Add scrolling to big filter containers to avoid them to be hidden under header
- Remove custom reportbuilder scrollbar mixin and replace it with 'thin-scrolls'
  standard mixin
2022-10-18 15:32:33 +02:00
Eloy Lafuente (stronk7) 856b593796 MDL-75645 mnet: Stop caching OpenSSLAsymmetricKey keys
The mnet_environment->keypair array contains the following
elements (and more, just focussing on these):
- keypair_PEM : textual representation of the private key.
- certificate : textual representation of the public key.
- privatekey  : OpenSSLAsymmetricKey representation of the private key,
                generated from keypair_PEM. See get_private_key().
- publickey   : OpenSSLAsymmetricKey representation if the public key,
                generated from certificate. See get_public_key().

The last 2 elements in the array are only used as "caching", to avoid
having to call to openssl_pkey_get_private() and
openssl_pkey_get_public() to convert from the textual representation
to the OpenSSLAsymmetricKey representation that is the one required
by a number of openssl functions.

Problems arrive when, as part of the MNet protocol, the mnet_environment
is serialised, because, since PHP 8.0 those OpenSSLAsymmetricKey objects
aren't serialisable any more.

So, as far as they are only used for internal caching it's perfectly ok
to remove the caching bits and use the openssl_pkey_get_xxx() methods
to calculate them under demand.

The alternative to this would be to implement into the mnet_environment
some custom serialisation, skipping those OpenSSLAsymmetricKey
instances, using __sleep(), the Serializabla interface or __serialize(),
but that seems unnecessary because, as explained above, the uses are
really limited and easily replaceable.

That's what this patch does.
2022-10-18 14:30:50 +02:00
Eloy Lafuente (stronk7) 7af4f8b200 MDL-76010 behat: New scenario to verify that manual attempts work
This is basically the manual background that was removed in the
previous commit, with 4 attempts here. Note it includes the 2
waits that are REQUIRED to make it pass in too-quick environments.

If they are removed, they begin to fail because it seems that
the attempts need a minimum of separation between them.
2022-10-18 14:27:53 +02:00
Eloy Lafuente (stronk7) e349441130 MDL-76010 behat: Move feature to use attempts generator
This moves away from manual attempts and uses the activity
attempts generator instead. Quicker and not exposed to the
problems with clicks, refreshes and missing attempts.

Note that there is a small change in the attempt generator
so, now, when a new attempt is created, if the activity has
tracking enabled, the final result / grades are recalculated.

That's the real behaviour when the activity settings are
changes in the edition form and it's natural to get them
recalculated without having to visit the form. Specifically,
this allows the 1st scenario to pass, because in that scenario
no changes to the form are being performed.

Also, little detail, amend a dupe scenario name.
2022-10-18 14:27:53 +02:00
Eloy Lafuente (stronk7) 8f606d9299 MDL-76016 behat: Bump to goutte-driver 2.x
This automatically comes with Goutte client 4.x that is
the one we want to, also, update.

It should work 100% the same and comes with some php81
warnings cleaned.
2022-10-18 14:27:42 +02:00
Sara Arjona f8d28e4ca6 on-demand release 4.1dev+ 2022-10-18 13:10:13 +02:00
Ilya Tregubov 6237c41397 Merge branch 'MDL-75173-fix' of https://github.com/sarjona/moodle 2022-10-18 10:17:35 +03:00
Sara Arjona 552d687909 MDL-75173 completion: Remove ordering from PHPUnit
To avoid getting some random errors with Oracle, the order for the
students have been removed from the tests (to check they are there,
regardless the order they are returned, because in that case, the
order is not important).
2022-10-18 08:26:47 +02:00
Laurent David c85c8ebc6a MDL-75599 mod_data: Fix warning message
* Fix warning message when accessing advanced search page with a date field.
2022-10-18 07:45:32 +02:00
Jun Pataleta 7de314084c Merge branch 'MDL-75783-master' of https://github.com/andrewnicols/moodle 2022-10-18 10:06:29 +08:00
Andrew Nicols ffac002f0d MDL-75783 javascript: Add optional jsconfig configuration
This commit adds a new Grunt task which generates a jsconfig.json file.

This file is described at
https://code.visualstudio.com/docs/languages/jsconfig and can be used
to configure vscode and other similar editors to understand our module
loading.

This task is an optional task for Grunt and can be run with:

    npx grunt jsconfig

The file is git-ignored and will not affect normal usage.
2022-10-18 09:33:04 +08:00
Víctor Déniz 9ee852a67e Merge branch 'MDL-75983' of https://github.com/stronk7/moodle 2022-10-18 01:07:23 +01:00
Víctor Déniz 587deee8f5 Merge branch 'MDL-72722' of https://github.com/paulholden/moodle 2022-10-18 00:26:24 +01:00
Víctor Déniz 2d80945eba Merge branch 'master_MDL-73122' of https://github.com/marcghaly/moodle 2022-10-17 21:18:57 +01:00
Mihail Geshoski 48f39b09f8 MDL-75157 grade: Add divider and bottom border in gradebook tertiary nav 2022-10-18 00:42:45 +08:00
Mihail Geshoski c9af6ad02f MDL-75157 theme: Divider and custom bottom border in tertiary navigation 2022-10-18 00:42:45 +08:00
sam marshall c38eeae34e MDL-76018 core_navigation: Activity header warning if no module intro 2022-10-17 17:27:39 +01:00
Sara Arjona 2ee1ad4eb7 Merge branch 'MDL-75711-master' of https://github.com/ssj365/moodle 2022-10-17 16:55:52 +02:00
Sara Arjona 771c748a9e Merge branch 'MDL-72836-master' of https://github.com/mickhawkins/moodle 2022-10-17 16:39:49 +02:00
Sara Arjona 3c49d97f1c Merge branch 'MDL-75077' of https://github.com/paulholden/moodle 2022-10-17 16:32:29 +02:00
Sara Arjona b7ad4d8636 Merge branch 'MDL-74986-master' of https://github.com/call-learning/moodle 2022-10-17 16:16:48 +02:00
Sara Arjona 4aeb22cd26 Merge branch 'MDL-58266-patch2' of https://github.com/ilyatregubov/moodle 2022-10-17 15:45:26 +02:00
Ilya Tregubov 4272ccd65f MDL-58266 core_completion: Fix upgrade script.
Remove 0 default value for timecreated
in course_module_viewed table
2022-10-17 16:40:07 +03:00
Sara Arjona 8d6a2d68e6 Merge branch 'MDL-74814-master-1' of https://github.com/HuongNV13/moodle 2022-10-17 15:30:45 +02:00
Sara Arjona d66a4ffeb9 Merge branch 'MDL-75173-master' of https://github.com/ilyatregubov/moodle 2022-10-17 15:17:45 +02:00
Sara Arjona 481630e747 Merge branch 'MDL-75664-master' of https://github.com/laurentdavid/moodle 2022-10-17 15:14:32 +02:00
Jun Pataleta e7bf930aa1 Merge branch 'MDL-74958-master' of https://github.com/sammarshallou/moodle 2022-10-17 21:10:51 +08:00
Ilya Tregubov d5e9b5ba2b MDL-58266 core_completion: Fix incorrect version bump.
Version was bumped in previously merged issue
2022-10-17 14:49:22 +03:00
Ilya Tregubov 09de114dd2 MDL-58266 core_completion: fix db structure.
Make coursemoduleid, userid fields in new course_modules_viewed
to match those in course_modules_completion table.
2022-10-17 14:49:17 +03:00
sam marshall b5e805071a MDL-74958 core_navigation: Add renamed classes to renamedclasses.php
The renamed secondary navigation classes have been adeed to
renamedclasses.php files.
2022-10-17 10:54:24 +01:00
Ilya Tregubov 057f732bf1 Merge branch 'MDL-58266-master' of https://github.com/JBThong/moodle 2022-10-17 12:51:59 +03:00
Shamim Rezaie 9708ad500b Merge branch 'MDL-55580_master' of https://github.com/marxjohnson/moodle 2022-10-17 19:19:36 +11:00
Laurent David e861d7b0ad MDL-75664 mod_data: Approval status in database entries
* Add approval status in the default template.
* Change the language string for unapproved entries.
2022-10-17 09:55:11 +02:00
Ilya Tregubov b1ebbfe3ac Merge branch 'MDL-56567-master' of https://github.com/matthewhilton/moodle 2022-10-17 09:04:48 +03:00
Mathew May 8539da6af7 MDL-75362 gradereport_user: Class movement 2022-10-17 12:00:40 +08:00
Kevin Percy 25ad0a2cba MDL-75481 lib: Update MongoDB library references to 1.13.1 2022-10-17 11:58:05 +08:00
Huong Nguyen 0795b579fa MDL-74814 forms: Fix accessibility issue in edit profile page
- Fixed legend tag issue
 - Modified the passwordunmask Javascript hide/unhide the password field by CSS class
2022-10-17 09:31:53 +07:00
Matthew Hilton cfb643293c MDL-56567 competency: Course module competency option to override grade
Previously, if a course module had already been graded, course module
completion linked to the course module would not update. This
commit adds the option to enable overriding the grade at the course
module competency level.

This ensures that if enabled and a user completes a module associated
with a competency, that competency will be graded appropriately.
2022-10-17 08:00:20 +10:00
Claude Vervoort d48873536b MDL-69275 mod_lti: do not skip new win code lti 1.3 2022-10-14 12:35:30 -04:00
Andrew Nicols 872eef9c9a MDL-75969 behat: Allow the editor field to request a save
Some editors do not immediately store their content to the textarea they
represent and only do so when the form is submitted or they are
requested to.

This change adds to the existing API to allow an (optional)
`store_current_value` function to be defined for the editor type so that
it can use the JavaScript API to persist any current content to the
editor.
2022-10-14 23:46:25 +08:00
Andrew Nicols febd5d944c MDL-75985 behat: Standardise HTML output when comparing editor content
This commit adds a standardise_html function and updates the matches
function to compare normalised content.

This allows for a wider variety of valid editor output to be handled
using the standard value matching steps in Behat, thus supporting
editors other than Atto better.
2022-10-14 23:44:56 +08:00
Víctor Déniz ab764c0062 Merge branch 'MDL-75736-master' of https://github.com/sammarshallou/moodle 2022-10-14 16:09:01 +01:00
Paul Holden fd01461b7a MDL-75449 reportbuilder: add no tags/exclude tags filter operators.
Allow user to filter for elements that either contain no tags, plus
those that don't contain selected tags.
2022-10-14 16:04:37 +01:00
Shamiso.Jaravaza b047174996 MDL-74558 mod_bigbluebuttonbn: Fix deletion error 2022-10-14 08:59:09 -06:00
Eloy Lafuente (stronk7) 41a6551dfe MDL-75983 gha: Update used actions to be node16 compatible
Node12 is being deprecated in github for actions:

https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

So we need to ensure we are using node16 actions.
2022-10-14 13:27:20 +02:00
Sara Arjona 3bc792b9b8 on-demand release 4.1dev+ 2022-10-14 12:50:19 +02:00
Sara Arjona 8523faeabc NOBUG: Fixed SVG browser compatibility 2022-10-14 12:50:16 +02:00
Sara Arjona 10e4bd87d4 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-10-14 12:50:16 +02:00
Ilya Tregubov 7365000fce MDL-75173 core_completion: More unit tests and Behat. 2022-10-14 11:49:29 +03:00
Ilya Tregubov effd848744 MDL-75173 core_completion: Fixes after review.
Unit tests added. Used new steps in Behat. Code style fix for long line.
2022-10-14 11:49:29 +03:00
Ilya Tregubov 43f98f6336 MDL-75173 core_completion: Fix completion for different settings. 2022-10-14 11:49:29 +03:00
Ilya Tregubov 90b1e2cbab MDL-75173 core_completion: Inconsistent status check.
There is inconsistent status check for course completion block and
completion details page. Completion block was taking to account
pending statuses for completion criteria while completion details
page was ignoring those.
2022-10-14 11:49:29 +03:00
Ilya Tregubov d6fa50d175 MDL-75173 behat: Fix broken test.
Test was testing failing state when student didn't receive passing
grade. But it was expecting that completion criteria is completed
which was wrong.
2022-10-14 11:49:28 +03:00
Ilya Tregubov def5d29730 MDL-75173 core_completion: Fix course completion criteria marking.
SQL was fetching activities where completion state was 'completed,
but not passed reqyured grade'. For course completion such states
must be ignored.

Also fixed progress bar on my courses page. Same reasoning as above.
2022-10-14 11:49:28 +03:00
Jake Dallimore 552f31dc37 MDL-76002 enrol_lti: let http_client handle form_params option
The lib/lti1p3 library now passes $options['form_params'] instead of
$options['body'] when making access token requests. To maintain the
'application/x-www-form-urlencoded' content-type required by OAuth 2.0
(https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3), the client has
been changed to convert these array params into a body query string,
which matches the behaviour prior to the library upgrade and makes
the tool can continue to call tool platform services. Support for
$options['body'] remains, as this is still used during service calls.
2022-10-14 16:35:29 +08:00
David Woloszyn f2835a9850 MDL-75484 lib: Set Moodle files after PHPSpreadSheet upgrade 2022-10-14 17:22:38 +11:00
David Woloszyn efc63be039 MDL-75484 lib: PHPSpreadSheet upgraded to 1.25.2 2022-10-14 17:22:25 +11:00
Jake Dallimore 9a21b3772e MDL-76002 libraries: upgrade patched packback lti1p3 lib to 5.2.1 2022-10-14 13:33:41 +08:00
Jun Pataleta 4f3d774918 Merge branch 'MDL-75955' of https://github.com/paulholden/moodle 2022-10-14 11:55:29 +08:00
AMOS bot bfe4ea745a Automatically generated installer lang files 2022-10-14 00:07:39 +00:00
Víctor Déniz b17679e806 Merge branch 'MDL-75733' of https://github.com/paulholden/moodle 2022-10-13 22:52:28 +01:00
Víctor Déniz 2573bddc20 Merge branch 'MDL-72531-master' of https://github.com/sarjona/moodle 2022-10-13 22:17:38 +01:00
Víctor Déniz 5bfc28a5a0 Merge branch 'MDL-75734' of https://github.com/paulholden/moodle 2022-10-13 22:06:47 +01:00
Víctor Déniz 3637aa7ddb Merge branch 'MDL-74789-master' of https://github.com/lucaboesch/moodle 2022-10-13 21:11:07 +01:00
hieuvu c6e018e04e MDL-58266 core_completion: Add new view table. 2022-10-14 00:30:28 +07:00
Jun Pataleta 80b20781f0 Merge branch 'MDL-74887-master' of https://github.com/sh-csg/moodle 2022-10-14 00:28:27 +08:00
Sara Arjona 6eb67954f3 Merge branch 'MDL-75811' of https://github.com/paulholden/moodle 2022-10-13 16:25:40 +02:00
Sara Arjona c8cd544f21 Merge branch 'MDL-75883-master' of https://github.com/dravek/moodle 2022-10-13 16:14:41 +02:00
Sara Arjona 25f3d7da5d Merge branch 'MDL-75959-master' of https://github.com/andrewnicols/moodle 2022-10-13 16:03:28 +02:00
Sara Arjona 0b4de0c41f Merge branch 'MDL-75984-master-v1' of https://github.com/lameze/moodle 2022-10-13 15:55:09 +02:00
Laurent David 76e77b6385 MDL-74986 mod_bigbluebuttonbn: Outline display is a bit verbose
* Change language string to shorten the user outline display
2022-10-13 15:04:52 +02:00
Ilya Tregubov 3f6a102704 Merge branch 'MDL-75970' of https://github.com/paulholden/moodle 2022-10-13 14:08:35 +03:00
Stefan Hanauska 1a772e6906 MDL-74887 mod_label: Update visibility 2022-10-13 12:34:38 +02:00
Sara Arjona 613ed0880a MDL-72531 mod_label: Rename Label module to Text and media
Apart from renanimg the resource, the icon has been changed too.
2022-10-13 10:02:06 +02:00
Kevin Percy 8ab37cea82 MDL-75481 lib: Updated MongoDB files to 1.13.1 2022-10-13 15:22:01 +08:00
Simey Lameze e654b6dbd6 MDL-75984 admin_presets: split test into smaller ones 2022-10-13 15:20:35 +08:00
Noel De Martin 594a64348a MDL-72558 behat: Remove legacy mobile app code 2022-10-13 09:18:40 +02:00
Stevani Andolo 84ea6552f7 MDL-75465 lib: Set Moodle files after minify upgrade 2022-10-13 15:17:52 +08:00
Stevani Andolo 495516dbf1 MDL-75465 lib: Add custom Moodle patch to minify 2022-10-13 14:57:22 +08:00
Stevani Andolo 34a74ada7b MDL-75482 lib: Set Moodle files after codemirror upgrade 2022-10-13 14:15:00 +08:00
Stevani Andolo 5f12bcdc81 MDL-75482 lib: Upgrade codemirror to 5.65.9 2022-10-13 13:57:38 +08:00
Shamim Rezaie 3fa533a2de Merge branch 'MDL-75642-master' of https://github.com/BruceGoodGuy/moodle 2022-10-13 16:28:10 +11:00
Jun Pataleta f8cfc005a9 Merge branch 'MDL-69655_final-deprecation-of-admin_setting_managelicenses' of https://github.com/ziegenberg/moodle 2022-10-13 13:17:32 +08:00
Stevani Andolo 3339bdb8d4 MDL-75478 lib: Set Moodle files after PHP-JWT upgrade 2022-10-13 12:46:14 +08:00
Jun Pataleta 1b8583082f Merge branch 'MDL-75820-master' of https://github.com/lameze/moodle 2022-10-13 08:34:05 +08:00
Tim Hunt 06c63f7aa1 MDL-75727 question regrading: fix each attempt builds on last
This fixes a regression caused by MDL-74752. If you regraded
a subsequent quiz attempt in a quiz using the 'Each attempt
builds on last' option, then the student's response could get lost.
2022-10-12 11:10:55 +01:00
Paul Holden abeedec596 MDL-75970 tool_customlang: clarify CLI export target/filename. 2022-10-12 10:13:48 +01:00
Ilya Tregubov c3d7241ea3 Merge branch 'MDL-74956' of https://github.com/paulholden/moodle 2022-10-12 11:42:04 +03:00
Paul Holden 8822089877 MDL-74956 reportbuilder: external method for retrieving custom report. 2022-10-12 09:36:23 +01:00
Jun Pataleta 36e4ca71c6 Merge branch 'MDL-75034' of https://github.com/paulholden/moodle 2022-10-12 14:24:35 +08:00
David Woloszyn 8f5799109e MDL-75483 atto_html: Upgrade JS Beautify to 1.14.6 2022-10-12 16:29:44 +11:00
Jake Dallimore 9d9a825efe Merge branch 'MDL-75383-master' of https://github.com/call-learning/moodle 2022-10-12 13:14:30 +08:00
Jake Dallimore 8ead046ac3 Merge branch 'MDL-75176' of https://github.com/call-learning/moodle 2022-10-12 12:56:40 +08:00
Jake Dallimore 4576a34bec Merge branch 'MDL-73424-master' of https://github.com/marinaglancy/moodle 2022-10-12 11:51:40 +08:00
Stevani Andolo b2c095b16b MDL-75478 lib: Upgrade PHP-JWT to 6.3.0 2022-10-12 11:27:12 +08:00
Andrew Nicols 18a4241fee MDL-75962 js: Fix jsdoc violations 2022-10-12 10:06:40 +08:00
Jun Pataleta 8167e6e327 Merge branch 'MDL-75431' of https://github.com/AnupamaSarjoshi/moodle 2022-10-12 09:39:21 +08:00
Jun Pataleta de5cd36e92 Merge branch 'MDL-75140-master' of https://github.com/aanabit/moodle 2022-10-12 09:38:21 +08:00
Jun Pataleta be9a0c8f35 Merge branch 'MDL-75887-master' of https://github.com/andrewnicols/moodle 2022-10-12 09:23:32 +08:00
Simey Lameze baa1e52530 MDL-75887 behat: Add ability to set value regardless of the editor
Prior to this commit, the behat_form_editor integration was hard-coded
to use Atto.

This change allows other editors to be used to set editor values, and
breaks that hard bond. Following this change, any editor is able to
define a behat_editor_[name].php file defining a function which meets
the following signature:

  set_editor_value(string $editorid, string $value): void

Each editor is responsible for checking whether its own API is available
and calling any relevant functions to force the editor to set the
content.

Please note: Behat is unable to determine the current editor in use on
the page automatically.
2022-10-12 06:44:09 +08:00
Andrew Nicols 3286f9ba71 MDL-75959 customfield: Correct inappropriate class import
I suspect this was an incorrect tab completion import by an IDE which
was missed.
2022-10-12 06:39:38 +08:00
Paul Holden ffea18688c MDL-75955 gradereport_summary: ensure page context is always set.
Remove global course object, and pass via entity constructor.
2022-10-11 21:50:16 +01:00
sam marshall 18dc2a50ab MDL-75736 lib: Course cache can be rebuilt unnecessarily
This change puts back the behaviour that get_fast_modinfo will accept
a cached version of modinfo that is newer than expected (according to
the course cacherev).

Not accepting newer versions can lead to poor performance in cases
where multiple requests take place at once, or using a clustered
database.
2022-10-11 16:56:21 +01:00
Jun Pataleta e4c5a12a1c on-demand release 4.1dev+ 2022-10-11 23:17:05 +08:00
Jun Pataleta b2f9c22692 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-10-11 23:17:03 +08:00
Andrew Nicols 60a343fcfd Merge branch 'MDL-75156-master-fix' of https://github.com/junpataleta/moodle 2022-10-11 22:02:14 +08:00
Jun Pataleta f96a0feb6b MDL-75156 gradereport: Use large window size for aggregation tests 2022-10-11 21:08:25 +08:00
Luca Bösch eec8a50406 MDL-74789 course: category full width 2022-10-11 11:40:14 +02:00
Daniel Ziegenberg 5e57b0322b MDL-69655 tool_licenses: Final deprecation admin_setting_managelicenses
Following MDL-45184 this now finally deprecates and removes the class
\admin_setting_managelicenses. Please use \tool_licensemanager\manager
instead.

Following MDL-45184 this now finally deprecates and removes the
function license_manager::add(). Please use license_manager::save()
instead.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-10-11 11:09:51 +02:00
Amaia Anabitarte 80a627294a MDL-75140 mod_data: Tests to cover skipping mapping workflow 2022-10-11 11:00:26 +02:00
Amaia Anabitarte bc7caa3ac8 MDL-75140 mod_data: Skip mapping form if there is no field created 2022-10-11 11:00:26 +02:00
Laurent David bcc18e2439 MDL-55580 core: Process for deprecating a capability
* Add a $deprecatedcapabilities variable to deal with deprecated
capabilities

Change-Id: I14f44d331e8a1c4bd9abe9566c78d911c0205583
Co-authored-by: Mark Johnson <mark.johnson@catalyst-eu.net>
2022-10-11 08:48:17 +01:00
Jun Pataleta 4563dc24d5 Merge branch 'MDL-75156-fix' of https://github.com/ilyatregubov/moodle 2022-10-11 13:49:09 +08:00
Ilya Tregubov 10570acfde MDL-75156 gradebook: Fix grade handling. 2022-10-11 09:32:58 +04:00
Jun Pataleta 5ed4ea149a Merge branch 'MDL-74913' of https://github.com/lostrogit/moodle 2022-10-11 12:18:46 +08:00
David Woloszyn c65ae9ffd8 MDL-75470 lib: Upgraded PHP Markdown to version 2.0.0 2022-10-11 11:52:28 +11:00
Simey Lameze 5737ad319f MDL-75820 blocks: switch window size to large 2022-10-11 08:47:13 +08:00
AMOS bot db0b31a40a Automatically generated installer lang files 2022-10-11 00:07:36 +00:00
Alex Morris 43fd7457e3 MDL-73620 mod_forum: Fix issue with discussion permission check
Users with access to some groups but not all would receive an error
page when creating a discussion topic that was set to send to all
groups
2022-10-11 08:30:38 +13:00
Rodrigo Mady da Silva 9526610c64 MDL-75099 tool_mobile: Contact site support option in disabledfeatures 2022-10-10 16:25:48 -03:00
Paul Holden 045eb42c9d MDL-75931 reportbuilder: use datasource for custom report exporters.
Make the related data property of the custom report exporters expect
an actual custom report instance, rather than the root base type.
2022-10-10 17:41:00 +01:00
sam marshall d6b4506a8b MDL-75751 upgradelib: Improve upgrade/install performance logging
* Adds time logging (number of seconds for each success) on install,
  which was previously only shown in upgrades. Useful when installing
  a new plugin as part of an upgrade, or if anyone wants to optimise
  Moodle installation.

* In developer debug mode, upgrade savepoint time was already logged
  but now it also logs time for lots of 'details' of the process in
  case time is taken in other Moodle function calls.
2022-10-10 17:09:14 +01:00
sam marshall 2280ea18f6 MDL-75751 upgradelib: Refactor out duplicated component update code
There are many places (install/upgrade for core, modules, blocks,
and plugins) where we need to call the same, or very similar,
sequence of Moodle functions to ensure the item is updated properly.

This change moves that sequence into a function so that it can be
held consistently in one place.
2022-10-10 17:09:14 +01:00
sam marshall 8e35bb415d MDL-75834 lib: Focus lock JS bug when focus area removed 2022-10-10 16:24:30 +01:00
Juan Leyva afc85e6bd5 MDL-75894 bigbluebuttonbn: Return instance features info 2022-10-10 17:01:59 +02:00
Marina Glancy 44aac31980 MDL-73424 general: specify return type where possible 2022-10-10 16:46:26 +02:00
Marina Glancy 41b93bd7e5 MDL-73424 general: Internal methods must have same type as parent
Otherwise the error is thrown in PHP8.1
2022-10-10 16:46:13 +02:00
Sara Arjona fd14173a88 Merge branch 'MDL-75656' of https://github.com/paulholden/moodle 2022-10-10 16:16:20 +02:00
Stevani Andolo abaa38eebe MDL-75465 lib: Upgrade minify to 1.3.69 2022-10-10 19:41:24 +08:00
Jun Pataleta 00e28f5495 Merge branch 'MDL-75923-master' of https://github.com/andrewnicols/moodle 2022-10-10 18:24:06 +08:00
Jun Pataleta 99bb6d0bfe Merge branch 'MDL-75909-master' of https://github.com/andrewnicols/moodle 2022-10-10 18:08:31 +08:00
Anupama Sarjoshi 050853c9fe MDL-75431 qbank: fix tests with CodeRunner installed 2022-10-10 09:25:13 +01:00
Jun Pataleta 4576db179b Merge branch 'MDL-75922-master' of https://github.com/andrewnicols/moodle 2022-10-10 14:55:32 +08:00
Mikhail Golenkov 04e2e00976 MDL-74991 CLI: Add a script to delete courses 2022-10-10 14:40:23 +11:00
Jun Pataleta 6efeecd126 Merge branch 'MDL-75910-master' of https://github.com/andrewnicols/moodle 2022-10-10 11:07:27 +08:00
Simey Lameze 6c7f570e14 MDL-75923 tool_usertours: Update tour content to match formatted content
When an HTML content area contains invalid HTML, some editors will clean
and validate the content upon submission.

In this case the content was:

    <b>Test content</b>

But this should be wrapped in some form of container which accepts
phrasing content (such as a <p> tag).

Some editors, such as TinyMCE, will normalise the content and add the
wrapping paragraph tags to it.

Furthermore, the bold tag is purely stylistic and does not have semantic
meaning. As a result, the <strong> tag is favoured and some editors,
again such as TinyMCE, will replace bold tags with strong tags.

We should update the content here to be valid HTML (wrap the bold tag
in a para), and use a strong tag rather than bold. This allows this test
to pass both with Atto, and other stricter editors such as TinyMCE 6.
2022-10-10 09:09:54 +08:00
David Woloszyn 0bcd6e4e12 MDL-75474 lib: Upgrade mustache.js to 4.2.0 2022-10-10 11:49:53 +11:00
Shamim Rezaie ba4fb93377 Merge branch 'MDL-75156-master' of https://github.com/ilyatregubov/moodle 2022-10-10 11:15:44 +11:00
Simey Lameze a91499c9f1 MDL-75922 behat: Apply @editor_atto tag to tests requiring Atto
These steps are currently using Atto-specific UI features and must
therefore make use of the @editor_atto tag to ensure that they continue
to run using Atto.

A new issue will be raised to migrate each of these to be
editor-agnostic.
2022-10-09 20:26:01 +08:00
Andrew Nicols 222f9a4e15 Merge branch 'MDL-75480-master' of https://github.com/stevandoMoodle/moodle 2022-10-09 13:21:20 +08:00
Andrew Nicols 052c705b08 Merge branch 'MDL-75473-master' of https://github.com/davewoloszyn/moodle 2022-10-09 13:18:21 +08:00
Andrew Nicols 1e71671205 Merge branch 'MDL-61395' of https://github.com/paulholden/moodle 2022-10-09 13:13:03 +08:00
Justus Dieckmann 877474fb37 MDL-75567 core_course: Other hidden badges remain when adding new one 2022-10-08 23:01:29 +02:00
Stefan Hanauska c4523503d2 MDL-74887 course: Hide stealth mode without view page 2022-10-08 08:09:40 +02:00
AMOS bot 9f0c678486 Automatically generated installer lang files 2022-10-08 00:07:37 +00:00
Paul Holden b3828cebd2 MDL-75034 reportbuilder: move classes into consistent namespace.
Use `reportbuilder` level two namespace for report related classes
(entities, system reports, etc) within components and sub-systems.
2022-10-07 15:05:34 +01:00
Andrew Nicols fa41cb86a5 Merge branch 'MDL-75844-master' of https://github.com/NashTechOpenUniversity/moodle 2022-10-07 15:50:54 +08:00
Ilya Tregubov b3e05d0e4e MDL-75156 gradebook: Grade summary plugin (grade averages).
Also included updates for existing unit tests and navigation.
2022-10-07 11:31:41 +04:00
Ilya Tregubov c8d950bde7 MDL-75156 gradebook: Functions to calculate grade averages.
Also include unit tests.
2022-10-07 11:31:41 +04:00
David Matamoros 0e449ae6ee MDL-75883 reportbuilder: Don't reload content when filter is deleted
- When filter is deleted in editing mode content does not need
to be reloaded
2022-10-07 08:31:58 +02:00
Michael Hawkins 8a87641cb1 MDL-72836 core: Updated security.txt expiry and policy URL 2022-10-07 14:10:15 +08:00
Mikhail Golenkov 84eef00ed2 MDL-75907 core: Add index on temp table to optimise stats cron 2022-10-07 16:15:51 +11:00
Andrew Nicols cc4fec275f weekly release 4.1dev 2022-10-07 13:03:49 +08:00
Andrew Nicols f4abe5fa77 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-10-07 13:03:47 +08:00
Khoa Nguyen Dang c093cb3263 MDL-75642 quiz: Delete multiple (random) questions from quiz 2022-10-07 11:00:32 +07:00
Andrew Nicols 03b22319cf MDL-75909 mod_data: Make template editor use html editor
When the template editor is configured to use the HTML Editor, it should
indicate this to Behat by setting the `data-fieldtype` to "editor".

This indicates to the behat field manager that the editor is in use,
which ensures that the correct value setting can take place.

This is important in the context of MDL-75887.
2022-10-07 09:19:52 +08:00
AMOS bot 7404f881a7 Automatically generated installer lang files 2022-10-07 00:07:42 +00:00
Laurent David cc3fe310b3 MDL-75383 mod_bigbluebuttonbn: Warn user when cron is disabled
* Add a last update date for the recordings
* Check cron is running and if not show an error message
2022-10-06 18:59:58 +02:00
Simey Lameze f1be9b6544 MDL-75910 core_form: Allow editor field to set a hidden label
When an editor is used in a form as part of a group, it is missing its
label element.

This happens because there is no inline template for the editor, and
therefore it reverts to using the old `toHtml` function. The legacy
function does not cater to the editor being in a group, and therefore
does not add the hidden label.

In addition, the hiddenLabel attribute was missing from the editor
element. This is a semi-standard element but must be added to each
supporting element.

Both the missing inline template for the editor, and the hidden label
attribute must be present:
- If the hidden label attribute is not present, then the standard inline
  template will add a visible label within the group.
- If the inline editor template is missing, then the label is not shown
  at all.
2022-10-06 22:53:47 +08:00
Laurent David 059e2b91cf MDL-75176 mod_bigbluebuttonbn: Remove the lockonjoin settings
* Remove the setting "lock on join" and related settings
* Hard-code the lockSettingsLockOnJoin=true parameter on create when any of the lock settings is used.
2022-10-06 14:51:49 +02:00
Andrew Nicols 39241f20e0 MDL-71686 core_form: Include missing build 2022-10-06 14:43:55 +08:00
Andrew Nicols 5bf222af33 Merge branch 'MDL-75485-master' of https://github.com/davewoloszyn/moodle 2022-10-06 10:49:14 +08:00
Andrew Nicols 11df52d2d7 Merge branch 'MDL-75488-master' of https://github.com/stevandoMoodle/moodle 2022-10-06 10:40:38 +08:00
Andrew Nicols 59ae667bee Merge branch 'MDL-75476-master' of https://github.com/davewoloszyn/moodle 2022-10-06 10:34:01 +08:00
Andrew Nicols f075272e69 MDL-71686 core_form: Move form serializer to shared function 2022-10-06 10:21:01 +08:00
Andrew Nicols 2423c26749 Merge branch 'MDL-71686-master' of https://github.com/marinaglancy/moodle 2022-10-06 10:20:56 +08:00
Jun Pataleta 9b0f435569 Merge branch 'MDL-75818' of https://github.com/mkassaei/moodle 2022-10-06 10:14:07 +08:00
Andrew Nicols 3589299d82 Merge branch 'MDL-74955' of https://github.com/paulholden/moodle 2022-10-06 09:39:45 +08:00
Andrew Nicols 97fe092754 Merge branch 'MDL-75477' of https://github.com/paulholden/moodle 2022-10-06 09:28:57 +08:00
Shamim Rezaie d01c1a4a07 Merge branch 'MDL-75886-master' of https://github.com/andrewnicols/moodle 2022-10-06 12:24:07 +11:00
Andrew Nicols b90c862c25 MDL-75752 question: Bind contextid param in comment backup
In source_sql, unmapped values must be bound using the
backup_helper::is_sql_param() function.
2022-10-06 09:06:12 +08:00
Andrew Nicols 29e1f713b6 Merge branch 'MDL-75752' of https://github.com/timhunt/moodle 2022-10-06 09:02:07 +08:00
Víctor Déniz 3c10b0c2af Merge branch 'MDL-74569-master' of https://github.com/lucaboesch/moodle 2022-10-06 01:42:48 +01:00
Víctor Déniz aa0be15591 Merge branch 'MDL-75192' of https://github.com/paulholden/moodle 2022-10-06 01:08:37 +01:00
Víctor Déniz 4fcea7ad56 Merge branch 'MDL-75713-master' of https://github.com/davewoloszyn/moodle 2022-10-05 22:30:15 +01:00
Víctor Déniz 42e53489d7 Merge branch 'MDL-75729' of https://github.com/paulholden/moodle 2022-10-05 21:31:59 +01:00
Paul Holden dd0c545ec6 MDL-75077 output: prevent duplicate ID errors in custom menus.
Following on from 8e4a7c6b, we should apply a similar change to
custom menus to account for being collapsed into the "More" menu.
2022-10-05 18:29:17 +01:00
Mahmoud Kassaei 9ba4b5f306 MDL-75818 qtype_multichoice: site-wide default for showstandardinstruction 2022-10-05 17:04:22 +01:00
Jun Pataleta ced9afd781 Merge branch 'MDL-75276-fix' of https://github.com/sarjona/moodle 2022-10-05 19:43:04 +08:00
Thorsten Siegmund Bartel dad3555989 MDL-74606 mod_assign: Support multilanguage strings in group names. 2022-10-05 12:52:19 +02:00
Sara Arjona 9e7cc5103d MDL-75276 mod_data: Re-add ordering to get_field_records
In MDL-75146, the get_fields_record() method was added without any
ordering criteria.
In MDL-75276, this method is reused to get the fields. We need to
re-add the order to guarantee the field are always returned in the
same order (and avoid some Oracle ordering failures).
2022-10-05 12:45:51 +02:00
Pablo Amaya 8cf256648f MDL-74454 mod_scorm: Fixed problems in lateral navigation.
Fixed problems in lateral navigation and grading when
a SCORM has more than three levels

The SCORM module has problems with full screen display,
completion tracking and grading in SCORM.

Also resolves issues MDL-74992, MDL-73249, MDL-75407
2022-10-05 12:40:06 +02:00
Kevin Percy c53f9f2db8 MDL-75469 lib: Update jQuery to 3.6.1, jQuery UI to 1.13.2 2022-10-05 13:55:56 +08:00
Andrew Nicols 13cc3607de MDL-75886 atto: Always use Atto for @atto tests
This change, which should be easy to mimic for other editors.

This will ensure that the correct editor is used for tests relating to
that editor, or its subplugins.
2022-10-05 09:54:21 +08:00
Stevani Andolo 3c5423d8c0 MDL-75480 media_videojs: Upgrade videojs from 7.17.0 to 7.20.3 2022-10-04 21:51:11 +08:00
Jun Pataleta e2d606eba8 Merge branch 'MDL-75351' of https://github.com/timhunt/moodle 2022-10-04 20:36:17 +08:00
Paul Holden 8f72165233 MDL-75733 reportbuilder: re-use user field data table alias/joins.
Ensure that when a column/filter on the same user profile field is
used, they share a single join.
2022-10-04 11:46:01 +01:00
Jun Pataleta 28a4c55aea Merge branch 'MDL-73433-master' of https://github.com/marinaglancy/moodle 2022-10-04 17:53:27 +08:00
Jun Pataleta 2b6a955db4 Merge branch 'MDL-66955' of https://github.com/NeillM/moodle 2022-10-04 17:07:19 +08:00
David Woloszyn 7a9de2cb24 MDL-68868 core_user: Final deprecation of participants unified filter 2022-10-04 16:09:35 +11:00
Jun Pataleta 9299737cbd MDL-75234 mod_data: Remove duplicate code
* Remove duplicate use statements
* Remove duplicate get_template_content() declaration
2022-10-04 12:44:33 +08:00
Jun Pataleta ecb9a7e661 Merge branch 'MDL-75234-master' of https://github.com/ferranrecio/moodle 2022-10-04 11:59:57 +08:00
Jun Pataleta 389892ad75 Merge branch 'MDL-75276-master' of https://github.com/sarjona/moodle 2022-10-04 11:50:57 +08:00
AMOS bot 1ebb6b6fad Automatically generated installer lang files 2022-10-04 00:07:39 +00:00
Shamiso.Jaravaza f55cde3175 MDL-75711 mod_bigbluebuttonbn: Fix recent activity 2022-10-03 10:57:48 -06:00
Ferran Recio 37b9bd48b6 MDL-75234 mod_data: introduce manager get_renderer 2022-10-03 15:58:28 +02:00
Ferran Recio 64c07858b0 MDL-75234 mod_data: add default templates behats
Most behats access the templates page just to autocreate the default
templates. This is not needed anymore and most behats can be optimized.
2022-10-03 15:58:28 +02:00
Ferran Recio 2a0991113b MDL-75234 mod_data: load default templates when empty
The mod_data is forcing teachers to understand how to write templates
even if they want to use basic forms. With this patch the default
templates will be auto updated unless the user manually define the
templates.
2022-10-03 15:58:28 +02:00
Matt Porritt 1399974bac MDL-73122 Auth: Add test settings for Oauth2
Provide a test page in authentication settings
to allow administrators to test configured oAuth2
providers and to examine the data that is passed
back on a successful test user authentication.

Co-authored-by: Matt Porritt <mattp@catalyst-au.net>
2022-10-03 09:00:44 -04:00
Paul Holden 28cf1fa8a1 MDL-74955 reportbuilder: external method for listing custom reports. 2022-10-03 13:57:36 +01:00
Paul Holden 77018b7359 MDL-74955 reportbuilder: re-factor retrieving user reports to helper. 2022-10-03 13:22:10 +01:00
sam marshall f696590f0a MDL-75074 core_courseformat: Output classes are not inherited
If you have one course format that extends another one, any course
format output classes that are not defined in the child format will
now inherit from the parent (instead of from the base class as
before).
2022-10-03 11:22:35 +01:00
Ferran Recio a941eb3314 MDL-75868 core_courseformat: optional section badges
The current implementation conditions the highlight and hidden form
student badges to the present of the badges in the HTML. This way if a
format does not include those badges the code will continue working.
2022-10-03 12:17:45 +02:00
Paul Holden 65f9976478 MDL-73030 backup: case-insensitive detection of Moodle backups. 2022-10-03 09:32:17 +01:00
Paul Holden 5b353b73d6 MDL-72058 reportbuilder: replace custom dataformat export format.
The formatting of exported dataformat content is now always dependent
on whether the format supports HTML or not, so we no longer need our
custom export class for providing the same.
2022-10-03 09:16:06 +01:00
Paul Holden 703f0b2a03 MDL-72058 dataformat: remove HTML when export format lacks support. 2022-10-03 09:16:06 +01:00
Carlos Castillo a930def22b MDL-74913 core_reportbuilder: Add divider to the report action menu 2022-10-03 09:48:43 +02:00
Sara Arjona d6abd19e73 Merge branch 'MDL-65061-master_ims_unenrol' of https://github.com/sarahjcotton/moodle 2022-10-03 09:28:58 +02:00
Sara Arjona 6277853eb3 MDL-75276 mod_data: Update default templates
Apart from updating the default templates, to make them look better,
they have been also moved to mustache files, in order to make it easier
to edit them.
2022-10-03 09:09:45 +02:00
David Woloszyn b58fdd909b MDL-75473 lib: Updated Mustache to 2.14.2 2022-10-03 10:10:06 +11:00
Tim Hunt 9ab7828fe2 MDL-75351 question comments: don't hard-code system context id 2022-09-30 18:44:01 +02:00
Andrew Nicols d41a859d5a Merge branch 'MDL-75836' of https://github.com/jrchamp/moodle 2022-09-30 20:41:51 +08:00
Andrew Nicols 010ad8751a MDL-75614 dml: Unit tests must test something 2022-09-30 16:36:36 +08:00
Andrew Nicols 9911faf8be Merge branch 'MDL-75614-debugsqltrace' of https://github.com/brendanheywood/moodle 2022-09-30 16:36:10 +08:00
Jun Pataleta 2a4b3deaf6 Merge branch 'MDL-75170-master-add_order_by_method' of https://github.com/alexmorrisnz/moodle 2022-09-30 15:51:41 +08:00
Neill Magill 8029023ed5 MDL-66955 messages: Improve speed of message search
The OR conditions in the WHERE clause prevented the query from
effectively filtering the messages related to the user quickly, this
change helps gets around this by allowing the database to limit
the rows in the messages table it needs to scan significantly.
2022-09-30 08:29:08 +01:00
Mihail Geshoski de4d940d41 MDL-68437 forum: Support to show only active course users in grader
The following change adds support to show only active course users
in the forum grader and generally replicates the behaviour from the
assignment grader which relies on certain config settings, user
permissions and capabilities.
2022-09-30 12:01:08 +08:00
Jake Dallimore 24f97edd91 weekly release 4.1dev 2022-09-30 10:17:30 +08:00
Stevani Andolo 33285acbf1 MDL-75488 lib_zipstream: Upgrade ZipStream library from 2.1.0 to 2.2.0 2022-09-30 10:02:54 +08:00
hieuvu 94c2a52528 MDL-75844 moodle_page: add a modname to body tag. 2022-09-30 08:42:36 +07:00
Alex Morris fee755bbfa MDL-75170 tablelib: Use sql_order_by_null to sort columns 2022-09-30 11:29:27 +13:00
Alex Morris 70dfee9e23 MDL-75170 dml: add sql_order_by_null method
Standardises return patterns of null values across database types
to keep with sorting nullsto the top when ascending, and
to the bottom when descending
2022-09-30 11:27:26 +13:00
Marina Glancy 8ba4e5a3d2 MDL-73433 core: all methods in core_text can accept null argument 2022-09-29 21:06:22 +02:00
Mihail Geshoski 383e1893b2 MDL-68437 course: ws support to optionally fetch only active users
Modifies the 'core_course_get_enrolled_users_by_cmid' webservice and
the generic js methods that call this webservice and enables defining
whether the ws should only return the active users or all enrolled
users in the course.
2022-09-30 02:23:18 +08:00
Tim Hunt 57ee14cced MDL-75752 question comments: fix backup query so it uses the index
This should greatly improve the performance.
2022-09-29 10:51:28 +02:00
Andrew Nicols 46188420da Merge branch 'MDL-74922_master_fix_storage_wrapper_validate_cache' of https://github.com/gthomas2/moodle 2022-09-29 12:05:54 +08:00
Andrew Nicols f54d6b0144 Merge branch 'MDL-74883' of https://github.com/timhunt/moodle 2022-09-29 11:58:10 +08:00
Andrew Nicols 5ea6aa4f23 Merge branch 'MDL-75721' of https://github.com/paulholden/moodle 2022-09-29 11:57:38 +08:00
Jun Pataleta 590a695677 Merge branch 'MDL-75782-master' of https://github.com/andrewnicols/moodle 2022-09-29 11:54:09 +08:00
Andrew Nicols 0c7243af38 Merge branch 'MDL-75738-master' of https://github.com/sammarshallou/moodle 2022-09-29 11:39:31 +08:00
Jake Dallimore 1fddc9c221 Merge branch 'MDL-75845' of https://github.com/paulholden/moodle 2022-09-29 11:22:42 +08:00
Jun Pataleta 9441d5294e Merge branch 'MDL-75559-master' of https://github.com/andrewnicols/moodle 2022-09-29 10:54:20 +08:00
Jun Pataleta f680348048 Merge branch 'MDL-66902' of https://github.com/stronk7/moodle 2022-09-28 23:15:52 +08:00
Andrew Nicols d7df338d4e Merge branch 'MDL-75459-master' of https://github.com/davewoloszyn/moodle 2022-09-28 22:47:38 +08:00
Jun Pataleta 41bcf994f5 Merge branch 'MDL-75827' of https://github.com/paulholden/moodle 2022-09-28 20:36:14 +08:00
Paul Holden 382f62579b MDL-75845 reportbuilder: hide "value" field for "current" operator.
When using the date filter with the "Current" operator, the "Value"
field should not be present (because it has no meaning). This fixes
a small regression from 131a9740.
2022-09-28 12:44:50 +01:00
Paul Holden 610d2b0812 MDL-75192 reportbuilder: observe start day in current week filter.
Ensure we observe the site configuration/preference for calendar
first day of the week, in the current week date filter.
2022-09-28 12:09:08 +01:00
Jake Dallimore ad46fbf76c Merge branch 'mdl75668' of https://github.com/danmarsden/moodle 2022-09-28 16:34:12 +08:00
Jake Dallimore 04ff3a94fe Merge branch 'MDL-75841-master' of https://github.com/junpataleta/moodle 2022-09-28 13:32:56 +08:00
Andrew Nicols 346db7e294 MDL-75200 core: Whitespace fix 2022-09-28 12:44:57 +08:00
Jun Pataleta cd1b2e5eaf MDL-75841 core: Don't fetch favicon setting on install 2022-09-28 12:41:45 +08:00
Andrew Nicols c3f0e19d67 Merge branch 'MDL-75447' of https://github.com/paulholden/moodle 2022-09-28 12:41:02 +08:00
Andrew Nicols 461fb1b6f6 Merge branch 'MDL-75200-master' of https://github.com/marinaglancy/moodle 2022-09-28 12:35:42 +08:00
Jun Pataleta 53750e202a Merge branch 'MDL-72490-master' of https://github.com/sammarshallou/moodle 2022-09-28 11:55:24 +08:00
Jake Dallimore a74c2e66a9 Merge branch 'MDL-75790' of https://github.com/dravek/moodle 2022-09-28 09:24:44 +08:00
Jun Pataleta 762b05dc3c Merge branch 'MDL-75726' of https://github.com/stronk7/moodle 2022-09-28 08:11:45 +08:00
Jun Pataleta 83008c55ca Merge branch 'MDL-75776' of https://github.com/stronk7/moodle 2022-09-28 08:06:58 +08:00
Andrew Nicols 1c0b3337a3 Merge branch 'MDL-75168' of https://github.com/paulholden/moodle 2022-09-27 23:41:50 +08:00
Paul Holden fd583ac9f0 MDL-75168 tag: cleanup module tag instances upon course deletion. 2022-09-27 13:40:28 +01:00
Jun Pataleta 4483b085db Merge branch 'MDL-75800' of https://github.com/paulholden/moodle 2022-09-27 20:20:07 +08:00
Paul Holden ea0e463cc7 MDL-75467 libraries: upgrade to version 1.6.0 of SimplePie. 2022-09-27 12:41:39 +01:00
Paul Holden 5b38e187d9 MDL-75477 libraries: upgrade to version 1.11.0 of MaxMind. 2022-09-27 12:19:41 +01:00
Paul Holden 17e002d8f1 MDL-75468 libraries: upgrade to version 6.5.0 of TCPDF. 2022-09-27 11:39:13 +01:00
Andrew Nicols 182649d7d5 Merge branch 'MDL-73421-master' of https://github.com/marinaglancy/moodle 2022-09-27 17:06:51 +08:00
Andrew Nicols 8a8f0094c1 Merge branch 'MDL-27570' of https://github.com/timhunt/moodle 2022-09-27 16:41:17 +08:00
Jun Pataleta 45a44ec0f0 Merge branch 'MDL-71531-master' of https://github.com/andrewnicols/moodle 2022-09-27 16:30:23 +08:00
Jun Pataleta efde82e3f8 Merge branch 'MDL-72509-master' of https://github.com/junpataleta/moodle 2022-09-27 14:27:03 +08:00
Andrew Nicols d511681a3b Merge branch 'MDL-75460-master' of https://github.com/ssj365/moodle 2022-09-27 13:03:54 +08:00
Andrew Nicols 98ee21cd3f Merge branch 'MDL-74284' of https://github.com/paulholden/moodle 2022-09-27 12:47:49 +08:00
Andrew Nicols 392bf7d58a MDL-75744 qtype_gapselect: Remove unnecessary javascript tag 2022-09-27 12:46:01 +08:00
Andrew Nicols fc8fbb3f64 Merge branch 'MDL-75744-master' of https://github.com/NashTechOpenUniversity/moodle 2022-09-27 12:37:39 +08:00
Tomo Tsuyuki 68a5034b67 MDL-72509 core: De-couple participants filter from core_user to core
This implementation will de-couple the participant filter from
core user to core so its easily usable to any api in core or any
community plugin. This removes the dependency from the core_user
and creates a nice api where it can produce filterable objects.

Co-Authored-By: Safat Shahin <safatshahin@catalyst-au.net>
Co-Authored-By: Tomo Tsuyuki <tomotsuyuki@catalyst-au.net>

AMOS BEGIN
 MOV [addcondition,core_user], [addcondition,core]
 MOV [adverbfor_and,core_user], [operator_and,core]
 MOV [adverbfor_andnot,core_user], [operator_andnot,core]
 MOV [adverbfor_or,core_user], [operator_or,core]
 MOV [applyfilters,core_user], [applyfilters,core]
 MOV [clearfilterrow,core_user], [clearfilterrow,core]
 MOV [clearfilters,core_user], [clearfilters,core]
 MOV [filtersetmatchdescription,core_user], [filtersetmatchdescription,core]
 MOV [filterrowlegend,core_user], [filterrowlegend,core]
 MOV [filtertype,core_user], [filtertype,core]
 MOV [match,core_user], [match,core]
 MOV [matchofthefollowing,core_user], [matchofthefollowing,core]
 MOV [placeholdertypeorselect,core_user], [placeholdertypeorselect,core]
 MOV [selectfiltertype,core_user], [selectfiltertype,core]
AMOS END
2022-09-27 12:07:36 +08:00
Andrew Nicols 7bb3291e1c Merge branch 'MDL-75456-master' of https://github.com/lameze/moodle 2022-09-27 11:13:46 +08:00
Andrew Nicols 580afa46db Merge branch 'MDL-74960-master' of https://github.com/sammarshallou/moodle 2022-09-27 10:32:22 +08:00
Jonathan Champ cc9863576e MDL-75836 activities: preserve moodleform validation errors 2022-09-26 19:26:38 -04:00
Paul Holden 4398a3d920 MDL-75827 theme_boost: append table elements to popover whitelist.
This allows for their use within popover tooltips, such as those
used for showing help icon dialogues.
2022-09-26 16:00:17 +01:00
Eloy Lafuente (stronk7) 0ed53be9b2 MDL-66902 tests: Fix all incorrect namespaces
This issue just goes over all the currently incorrect
namespaces in test cases and:

1. Change the namespace to the correct one.
2. Move/rename it to correct location if needed (level 2 and down).
3. Remove not needed MOODLE_INTERNAL check when possible.
4. Remove file phpdoc when the file only has one class.
5. Make small adjustments in case the change of namespace requires it.
2022-09-26 14:12:16 +02:00
sam marshall 5afc441506 MDL-75738 tool_moodlenet: Upgrade clean user profile slow, pointless
There is an upgrade to clean the moodlenetprofile field which
performs very poorly, but it is also not needed because an upgrade
further down sets this field to empty string anyway.
2022-09-26 11:25:27 +01:00
sam marshall 81b4f04fb3 MDL-74960 core\lock: Performance info - display lock performance
Show performance information about locks (time taken to acquire lock,
time lock is held for) in the 'perfinfo' display.

Also show existing information (that was already calculated but not
shown before) about the session lock, which is not a 'core\lock' type
lock, but the information is similarly useful.
2022-09-26 11:24:10 +01:00
Hien Dinh 59cb744ead MDL-72490 availability: Show error if conflict in date restriction 2022-09-26 11:21:49 +01:00
Paul Holden a366cb4d5c MDL-61395 forms: style frozen tag element values. 2022-09-26 11:15:20 +01:00
Paul Holden fb0401f36b MDL-75811 reportbuilder: concatenate using list seperator lang config. 2022-09-26 11:07:00 +01:00
Paul Holden c63af9858b MDL-75734 reportbuilder: remove Oracle restrictions on text columns.
We can filter long text columns in Oracle with appropriate API, so
can remove previous restrictions. See also recent change in 208adcf3
for similar.
2022-09-26 11:04:26 +01:00
Paul Holden 9a24440386 MDL-72722 reportbuilder: Oracle support for distinct group concat.
Requirements for Oracle were increased to 19c for Moodle 4.1 - now
with support for DISTINCT keyword within the LISTAGG function:

https://livesql.oracle.com/apex/livesql/file/content_HT1O85E4BHSBWN93G1B3M8SI2.html
2022-09-26 11:03:33 +01:00
Paul Holden d2924e641b MDL-75656 tag: decode entities in tags element values. 2022-09-26 10:56:28 +01:00
Luca Bösch f8f44f9751 MDL-74569 theme_boost: remove unit from top: 0; 2022-09-22 23:37:33 +02:00
Eloy Lafuente (stronk7) 027bdbfae8 MDL-75726 ci: Bump GHA to Ubuntu 22.04
Have tried to also bump Travis to 22.04 (jammy) but it
was not working ok, with problems trying to find both
PHP and PostgreSQL versions.

Surely that's because 22.04 support is really new (Sep 9, 2022):

https://blog.travis-ci.com/22-9-9-ubuntujammy

So we'll have to wait a little more before being able to, also,
bump Travis to use 22.04
2022-09-22 17:45:04 +02:00
Eloy Lafuente (stronk7) ef63a08b73 MDL-75776 composer: Move to upstream mink-extension and updates
We were using our fork of the mink extension:

https://github.com/moodlehq/MinkExtension.git

Because they bumped requirements to PHP 7.4 too early for us. Now,
with Moodle 4.1, finally our requirements are also PHP 7.4, so we
can stop using the fork and switch to the upstream one:

https://github.com/FriendsOfBehat/MinkExtension

Note this only can be done in 4.1dev, because this is the first
version using PHP >= 7.4. Older branches will need to continue
using the fork. Also, note that we may need to go back to the
fork if there is any future trouble with the upstream library
not matching our supported PHP versions.

Apart from that, it's a good moment to bump other components to
current ones.

Of course, this has been generated following the instructions:

https://docs.moodle.org/dev/Composer

And using PHP 7.4 (always the min version supported) to generate
the lock file.
2022-09-22 17:44:33 +02:00
Eloy Lafuente (stronk7) 8f492a836a weekly release 4.1dev 2022-09-22 17:05:39 +02:00
Eloy Lafuente (stronk7) 9c9bae12cc NOBUG: Fixed SVG browser compatibility 2022-09-22 17:05:36 +02:00
Eloy Lafuente (stronk7) b208352ecf MDL-75153 behat: Add the skip_interim tag to a failing test
Note the failures are unrelated to this issue, but we needed
an ongoing issue to add the tag and this was picked.

The problem, only reproducible @ CI servers will be fixed here:

https://tracker.moodle.org/browse/MDL-75820
2022-09-22 15:32:35 +02:00
Tim Hunt dc3e9e1522 MDL-27570 quiz timing: add unit test and simplify top of process_attempt 2022-09-22 11:11:37 +01:00
Eloy Lafuente (stronk7) 9dcf7b0202 Merge branch 'MDL-74762-Master' of https://github.com/catalyst/moodle-MDL-72752 2022-09-21 14:26:01 +02:00
Philipp Imhof 58f3d8f191 MDL-27570 quiz: check if time is really up 2022-09-21 09:52:37 +01:00
Nathan Nguyen 5b8fa8ee72 MDL-74762 qbank_statistics: fix unit test failure with Oracle DB 2022-09-21 12:14:02 +10:00
Marina Glancy 4bb042c352 MDL-75358 reportbuilder: display nulls as empty cells in aggregation 2022-09-20 18:18:41 +02:00
Marina Glancy dcc44ae4c0 MDL-75358 reportbuilder: display nulls as empty cells for numeric/bool 2022-09-20 18:18:38 +02:00
Segun Babalola 73cb052158 MDL-65061 enrol: Add suspend and other behaviours to IMS enrol plugin
Change-Id: Ia169a8c1dae9c6132d40158ac2a3e346dc3f5e1e
Co-authored-by: Sarah Cotton <sarah.cotton@catalyst-eu.net>
Co-authored-by: Mark Johnson <mark.johnson@catalyst-eu.net>
2022-09-20 14:25:40 +01:00
Paul Holden 8faef06ea5 MDL-75800 enrol: correct instance deleted event name. 2022-09-20 14:08:40 +01:00
Paul Holden 3c3f6abd43 MDL-74284 cohort: set page title on upload tab.
Override active URL when viewing system/all cohorts for consistent
breadcrumb navigation.
2022-09-20 13:09:11 +01:00
Justus Dieckmann 05bb22d418 MDL-75569 course: fix non-functional search bar in course index page
For users who are not allowed to access course/management.php, the
normal course search is used instead.
2022-09-20 12:33:55 +02:00
Jun Pataleta 50fe735e5a Merge branch 'MDL-75777' of https://github.com/stronk7/moodle 2022-09-20 15:12:34 +08:00
Víctor Déniz 06ba397c1c Merge branch 'MDL-74941-master' of https://github.com/lucaboesch/moodle 2022-09-20 08:08:55 +01:00
Laurent David bfcb5446a2 MDL-75763 mod_bigbluebuttonbn: Fix get_server_not_available_url
* The redirection should go to xxx?section=modsettingbigbluebuttonbn in case of error
2022-09-20 08:36:49 +02:00
Steve Bader 0e18ad33a1 MDL-74941 qtype_calculated: Copy dataset from previous question version 2022-09-20 08:11:04 +02:00
Luca Bösch 27093b1893 MDL-74941 qtype_calculated: Fix for usage calculation
The patch for the helper functions is by Nathan Nguyen
<nathannguyen@catalyst-au.net> whom I wish to thank.
2022-09-20 08:10:55 +02:00
Ilya Tregubov e08cc53b37 Merge branch 'master-MDL-74993' of https://github.com/golenkovm/moodle 2022-09-20 09:06:05 +04:00
Ilya Tregubov 5ca555767e Merge branch 'MDL-75153-master-2' of https://github.com/mihailges/moodle 2022-09-20 09:01:42 +04:00
David Woloszyn 2efc12e104 MDL-75459 Collapsable Form Sections: Default state bug fix
In circumstances where all collapsible form sections were expanded on
page load, a check is now made to ensure the expand all/collapse all
button behaves as intended.
2022-09-20 14:44:53 +10:00
Mihail Geshoski 70f9e8bb23 MDL-75153 grade: Fix incorrect xpath in the behat step definitions 2022-09-20 00:17:56 +08:00
Mihail Geshoski 3001995be8 MDL-75153 grade: Update behat tests 2022-09-20 00:17:56 +08:00
Mihail Geshoski af74a5534b MDL-75153 grade: Deprecate select_in_gradebook_navigation_selector()
Deprecates the select_in_gradebook_navigation_selector() function in
behat_grade.php and removes all usages. The select menu field supports
the same functionality and this function can be simply replaced with
behat_forms::i_set_the_field_to().
2022-09-20 00:17:56 +08:00
Mihail Geshoski 0e1cdfde1d MDL-75153 grade: Update the general tertiary nav selector in gradebook
Updates the general tertiary nav selector in gradebook to use the new
structure that utilizes the existing select_menu output component.
2022-09-20 00:17:56 +08:00
Mihail Geshoski 2b99e648cb MDL-75153 theme: Add template and styling for the tertiary nav selector
Adds new template dedicated for the general tertiary navigation element
which utilizes the exising select_menu output component. Also, adds
custom styling to the tertiary navigation selector element.
2022-09-20 00:17:56 +08:00
Mihail Geshoski 460744a6a6 MDL-75153 form: Behat support for group structures in select menu field
Adds behat support for group structures in the select menu field. When
looking for a particular option you can further specify the group under
which this option should be located by using the '>' delimiter
(e.g. "Group name > Option name"). In addition to that, this commit
intorduces new step definition which can be used to check whether the
select menu field contains a particular option.
2022-09-20 00:17:55 +08:00
Mihail Geshoski 3aa5e2688a MDL-75153 output: Styling improvements in the select_menu component 2022-09-20 00:17:55 +08:00
Mihail Geshoski 3cf4dd206f MDL-75153 output: Fix the group option and label support in select_menu
The following commit fixes the current logic that is used to return the
selected option and take into account structures with group options.
Also, it adds a default value to the $labelattributes class property to
to fix the issues that occur then the label is not explicitely set by
set_label().
2022-09-20 00:17:55 +08:00
Marina Glancy 59b1a78367 MDL-75791 reportbuilder: set persistent for active conditions 2022-09-19 16:56:19 +02:00
David Matamoros e0e7516bfc MDL-75790 reportbuilder: Fix random error with user name 2022-09-19 16:20:19 +02:00
Ilya Tregubov b6425b9ce1 Merge branch 'MDL-75065-master' of https://github.com/devlionco/moodle 2022-09-19 14:00:49 +04:00
Eloy Lafuente (stronk7) 839c2e5c18 MDL-75777 phpunit: Move tests to use correct names and ns (take#6)
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
2022-09-19 11:01:21 +02:00
Jun Pataleta a4c97a7d7c Merge branch 'MDL-75757' of https://github.com/stronk7/moodle 2022-09-19 13:02:02 +08:00
Andrew Nicols a0afccfd5a MDL-75782 mod_quiz: Make TinyMCE autosave less fragile
This commit amends the quiz autosave feature to not assume the
components of the Tiny API as much, and add support for newer versions
of TinyMCE.
2022-09-19 12:55:10 +08:00
Jun Pataleta 359e7c7ca4 Merge branch 'MDL-75186-master' of https://github.com/sarjona/moodle 2022-09-19 12:01:53 +08:00
Brendan Heywood fe88783c0f MDL-70368 files: Cache image dimensions 2022-09-19 13:21:20 +10:00
David Woloszyn 5247ff3da0 MDL-75476 scssphp: Updated from 1.10.0 to 1.11.0 2022-09-19 10:50:02 +10:00
Eloy Lafuente (stronk7) 6be384ee8f MDL-75757 phpunit: Add some tolerance to a few failing assertions
Recently, PHPUnit (all versions) did some changes about how the
comparators worked and this has caused some float comparisons
to stop working.

We need to move them to assertEqualsWithDelta(), allowing a small
tolerance to workaround the floats comparison problem.

0.00001 has been decided. And applied to all the similar assertions
within the unittest function, so if more cases are added to them
better be copied with the agreed tolerance.
2022-09-18 15:55:36 +02:00
Brendan Heywood 519c932cd6 MDL-75014 core: Add xyz_before_session_start callback 2022-09-18 22:14:36 +10:00
Víctor Déniz 0c951c5948 Merge branch 'MDL-74762-Master' of https://github.com/catalyst/moodle-MDL-72752 2022-09-16 14:23:49 +01:00
Jun Pataleta 4654ee5785 Merge branch 'MDL-75295_master' of https://github.com/TomoTsuyuki/moodle 2022-09-16 21:16:58 +08:00
Marina Glancy 741b3572cc MDL-73421 core: Calling static method on trait deprecated in PHP8.1 2022-09-16 15:04:02 +02:00
Nathan Nguyen f02c16c445 MDL-74762 qbank_statistics: improve performance loading the data
This issue greatly improves the performance of displaying statistics in
the question bank.

1. The required quiz statistics are now pre-computed by a scheduled task.

2. Cached statistics in the database are now never cleaned up, so the
   pre-computed stats are always available.

3. The way the cached statistics are loaded for each question
   that is being displayed is now a bit more efficient.

4. Related to that, there is a new callback which activities can implement,
   if they want their question statistics to be included in the ones shown
   in the question bank.

Note, there is still further improvement possible to load the statistics
for all questions being displayed in bulk. However, that must wait for a
future issue, MDL-75576. The other improvements in this issue are
significant and we did not want to delay releasing them.

Co-authored-by: Jonathan Champ <jrchamp@ncsu.edu>
Co-authored-by: Tim Hunt <t.j.hunt@open.ac.uk>
2022-09-16 21:34:00 +10:00
Marina Glancy c2e18d7912 MDL-75200 core: function clean_param should work with null - php 8.1 2022-09-16 13:30:21 +02:00
Tomo Tsuyuki 260cc864cf MDL-75295 assignfeedback_editpdf: Convert PDF to png at once 2022-09-16 19:31:05 +10:00
Sara Arjona 16576b56c4 Merge branch 'MDL-75108-master' of https://github.com/sammarshallou/moodle 2022-09-16 11:23:14 +02:00
Sara Arjona 930c204953 Merge branch 'MDL-75149-master' of https://github.com/ferranrecio/moodle 2022-09-16 11:20:36 +02:00
Sara Arjona a66cdcd9a8 MDL-75186 mod_data: Export saved presets 2022-09-16 11:12:14 +02:00
David Woloszyn 98c782162b MDL-75713 Calendar: enrol_get_users_courses to sort by course shortname 2022-09-16 14:47:07 +10:00
Jun Pataleta 4f8106e6cb Merge branch 'MDL-73933-master' of https://github.com/ferranrecio/moodle 2022-09-16 10:49:23 +08:00
David Woloszyn e63357e57a MDL-75485 Emoji Data: updated from 7.0.2 to 14.0.1 2022-09-16 09:36:31 +10:00
Paul Holden 959cdefa40 MDL-75721 reportbuilder: select from main table in absence of columns.
Ensure any joins added to the report itself are also present.
2022-09-15 17:07:29 +01:00
Ferran Recio 8777705827 MDL-73933 core_courseformat: hide and show reactive action
Hide, show and stealth actions were still using the old YUI
module. Now they are using the new course editor
2022-09-15 16:39:29 +02:00
Sara Arjona b077af7e89 weekly release 4.1dev 2022-09-15 16:11:47 +02:00
Sara Arjona 979b41f508 NOBUG: Fixed file access permissions 2022-09-15 16:11:47 +02:00
Sara Arjona 3a9b299ce7 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-09-15 16:11:45 +02:00
hieuvu aee466c0fc MDL-75744 gapselect: remove empty choices option. 2022-09-15 15:43:57 +07:00
Jun Pataleta 95e2214283 Merge branch 'MDL-75398-master' of https://github.com/junpataleta/moodle 2022-09-15 11:34:56 +08:00
Ferran Recio f69b48865a MDL-75398 core_courseformat: deprecate 4th cmname construct param 2022-09-15 11:28:55 +08:00
Andrew Nicols d51d901215 MDL-71531 cachestore_file: Stop locking cache files to read
The cache file is only ever written to in the `write_file` function,
where it does so by writing to a temp file and performing an atomic
rename of that file. When writing, the target file is never locked.

The cache file is only ever read in the `get` function, and there is no
need for an exclusive lock in that situation.

There is therefore no need to obtain any lock, shared or exclusive, to
read the cache file. Doing so only affects performance of the file sytem
as file locks must be needlessly obtained and written to disk for a read
operation which does not benefit from them.
2022-09-15 10:13:32 +08:00
Jun Pataleta 8900c4a820 Merge branch 'MDL-75716' of https://github.com/stronk7/moodle 2022-09-15 09:55:55 +08:00
Jun Pataleta 46849455be Merge branch 'MDL-75714' of https://github.com/stronk7/moodle 2022-09-15 09:24:50 +08:00
Eloy Lafuente (stronk7) d1bf45ec18 MDL-75714 navigation: Cover a couple of situations with behat
- Guest user attempting to access to single-activity course.
- Not enrolled user attempt to access to single-activity course.

Both should, by default, land to the "cannot access/enrol" page.
2022-09-14 23:35:19 +02:00
Stefan Hanauska 8e371f138a MDL-75714 navigation: Check if node is false 2022-09-14 23:35:15 +02:00
Víctor Déniz db13ed76ff Merge branch 'MDL-75558-master' of https://github.com/ssj365/moodle 2022-09-14 22:30:33 +01:00
Víctor Déniz 9c1f55ae58 Merge branch 'MDL-75723' of https://github.com/paulholden/moodle 2022-09-14 20:30:37 +01:00
Víctor Déniz edb09c61d5 Merge branch 'MDL-74965-master' of https://github.com/ssj365/moodle 2022-09-14 20:23:44 +01:00
Víctor Déniz 63f31ccc7b Merge branch 'MDL-75625-master' of https://github.com/ferranrecio/moodle 2022-09-14 20:00:06 +01:00
Víctor Déniz e6fd69fae9 Merge branch 'MDL-75369-master' of https://github.com/sammarshallou/moodle 2022-09-14 19:50:56 +01:00
Víctor Déniz 5378c89521 Merge branch 'MDL-74140' of https://github.com/paulholden/moodle 2022-09-14 19:36:45 +01:00
Víctor Déniz e672e4f6dd Merge branch 'MDL-75639-master' of https://github.com/dravek/moodle 2022-09-14 19:13:01 +01:00
Sara Arjona c739cc14af Merge branch 'MDL-75413-master' of https://github.com/sarjona/moodle 2022-09-14 18:04:51 +02:00
Marina Glancy 653433a289 MDL-71686 forms: allow arrays in dynamic forms args 2022-09-14 17:58:02 +02:00
Shamiso.Jaravaza 8e37c9f24d MDL-74965 mod_bigbluebuttonbn: Fix error in role 2022-09-14 09:10:41 -06:00
Sara Arjona aa020451c7 MDL-75413 mod_data: Add resources preset 2022-09-14 13:12:41 +02:00
Ferran Recio 2b48b29c86 MDL-75149 mod_data: add preview to presets 2022-09-14 12:30:13 +02:00
Sara Arjona 33277f99f1 Merge branch 'MDL-74010' of https://github.com/paulholden/moodle 2022-09-14 11:41:42 +02:00
Paul Holden 71a7537edd MDL-75729 reportbuilder: improve handling of card toggle button. 2022-09-14 10:18:52 +01:00
Jun Pataleta a4fb12a1a3 Merge branch 'MDL-69888-user-fully-setup-cache' of https://github.com/brendanheywood/moodle 2022-09-14 11:33:47 +08:00
Jun Pataleta 49d3d44462 Merge branch 'MDL-71129-master' of https://github.com/aanabit/moodle 2022-09-14 05:54:36 +08:00
Jun Pataleta 402136ef80 Merge branch 'MDL-75308' of https://github.com/paulholden/moodle 2022-09-14 05:33:09 +08:00
Jun Pataleta b420ce7d27 Merge branch 'MDL-75637' of https://github.com/paulholden/moodle 2022-09-13 20:25:57 +08:00
sam marshall 4ab9f08ce0 MDL-75369 Redis: Remove unnecessary ping after connect
The Redis cache store and session handler both do a 'ping()' after
connecting to Redis. This is unnecessary because the connect() call
has just checked the network connection and it's hardly likely that
the server has gone down since then.

According to my profiling, both connect() and ping() take
measurable time when talking to a separate server, i.e. a few
milliseconds. So it's not the case that connect() doesn't really
talk to the server, as I initially wondered.

If using Redis on a separate (non-localhost) server for both session
and cache store, removing these ping calls can save a millisecond
or two per request.
2022-09-13 10:45:00 +01:00
Eloy Lafuente (stronk7) 81f05b3239 MDL-75716 phpunit: Move tests to use correct names and ns (take#5)
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- In lib/tests/blocklib_test.php 2 helper classes have been
  moved to tests/fixtures, because they needed to be namespace-free.
2022-09-12 19:29:34 +02:00
Sara Arjona c6bac74c2f Merge branch 'MDL-74635' of https://github.com/paulholden/moodle 2022-09-12 14:56:02 +02:00
Paul Holden cc59c2d4c3 MDL-75723 reportbuilder: show loading icon when toggling edit mode. 2022-09-12 12:24:40 +01:00
Sara Arjona 130227d3e6 Merge branch 'MDL-75051' of https://github.com/mkassaei/moodle 2022-09-12 12:30:23 +02:00
Paul Holden 31cccc6058 MDL-74635 tag: add select all/none tags for bulk actions. 2022-09-12 11:19:17 +01:00
anisa kusumadewi 6330c482bd MDL-71129 core_h5p: Added index for pathnamehash to h5p table 2022-09-12 11:41:06 +02:00
Paul Holden 8a657e6d23 MDL-74140 reportbuilder: debugging panel while editing reports. 2022-09-12 10:36:48 +01:00
Andrew Nicols 5412ddbf97 MDL-75559 behat: Sort behat_hooks to top of context list 2022-09-12 12:32:35 +08:00
Mikhail Golenkov db04ed91ae MDL-74993 course: Output cm id when throwing Invalid course module id 2022-09-12 14:17:25 +10:00
AMOS bot 0f85fcc2a1 Automatically generated installer lang files 2022-09-11 00:08:02 +00:00
Eloy Lafuente (stronk7) c6211a68b4 weekly release 4.1dev 2022-09-10 10:00:40 +02:00
Jun Pataleta 1e28be65a4 Merge branch 'MDL-75708' of https://github.com/paulholden/moodle 2022-09-09 20:49:12 +08:00
Paul Holden da42ba79d6 MDL-75637 core: add journal database preset to standard plugin list. 2022-09-09 12:32:03 +01:00
Paul Holden b40d438fbf MDL-75708 reportbuilder: consider stress tests as requiring longtest.
We should respect the value of the PHPUNIT_LONGTEST constant in the
report source stress tests, as it was discovered after 165e26fa that
the default configuration of some CIs (GHA) was not sufficient to run
them.

Hence, use the PHPUNIT_LONGTEST to determine whether to execute said
tests. Note this constant is enabled on internal CI.
2022-09-09 11:11:39 +01:00
Mahmoud Kassaei 1edb5f7581 MDL-75051 Questions: Selecting idnumber in the question bank,
the copy/pasting, includes extraneous text in Chrome
2022-09-09 10:11:45 +01:00
David Matamoros 131a97406b MDL-75639 reportbuilder: Add new option to date filter
- In the past: to filter by all dates in the past
- In the future: to filter by all dates in the future
2022-09-09 10:15:28 +02:00
Jun Pataleta 4a0b0c8286 weekly release 4.1dev 2022-09-09 08:36:43 +08:00
Jun Pataleta 0f9916e1ec Merge branch 'MDL-74435-master' of https://github.com/lameze/moodle 2022-09-08 10:08:55 +08:00
Jun Pataleta d0f5778391 Merge branch 'MDL-75227' of https://github.com/call-learning/moodle 2022-09-08 09:40:10 +08:00
Simey Lameze 9efb61d321 MDL-74435 core_user: behat test polish and fixes 2022-09-08 09:32:36 +08:00
Peter Burnett 94aa2c78bd MDL-74435 user: Trim whitespace from user search fields 2022-09-08 09:12:09 +08:00
Jun Pataleta 27222f3faf Merge branch 'MDL-74081-master' of https://github.com/call-learning/moodle 2022-09-08 09:05:05 +08:00
Michael Hawkins c43123adde MDL-68066 output: Apply disable lambda rendering to Mustache renderer 2022-09-07 23:54:24 +08:00
Lars Bonczek fcbb645671 MDL-68066 output: Mustache - Add option to disable lambda rendering
This commit is based on an outstanding pull request to the Mustache repo
2022-09-07 23:54:24 +08:00
Laurent David 0f1c59747e MDL-75227 mod_bigbluebuttonbn: Optimize User logs retrieval
* When loading a course with the Recent Activity block the bigbluebuttonbn_print_recent_activity
takes too much time to load the logs. Using the courseid (index of log table) improves the
time taken by the query.
2022-09-07 17:38:32 +02:00
Laurent David 38b9319580 MDL-74081 mod_bigbluebuttonbn: Fix codechecker related issues
* Opening braces should be on the same line
* Unwanted MOODLE_INTERNAL
* Behat edit_instance.feature should use "activity editing" page locator
* Coverage indication
2022-09-07 17:26:27 +02:00
Paul Holden 0393514612 MDL-72012 mod_h5pactivity: respect user access when getting report. 2022-09-07 22:10:15 +08:00
Jun Pataleta 5e3707417d MDL-75283 core: Fetch proper column mapping for sort
Calling \core_user\fields::get_sql() incerements a static uniqueid
variable. This should be called only once and not make a separate call
for the sort mapping data as it doing so will result to an incorrect
table alias for the sort mapping data.
2022-09-07 17:07:32 +04:00
Ilya Tregubov 7bf964c94e Merge branch 'MDL-75555-master' of https://github.com/justusdieckmann/moodle 2022-09-07 16:36:58 +04:00
Ilya Tregubov 295e6fee8f Merge branch 'MDL-74782-master' of https://github.com/ssj365/moodle 2022-09-07 15:48:56 +04:00
Sara Arjona fdc4576f9f Merge branch 'MDL-74866-master' of https://github.com/HuongNV13/moodle 2022-09-07 13:10:05 +02:00
Jun Pataleta 1e72b15971 Merge branch 'MDL-75411-master' of https://github.com/sarjona/moodle 2022-09-07 13:51:42 +08:00
Jun Pataleta 7608cd28a6 Merge branch 'MDL-75252-master' of https://github.com/sarjona/moodle 2022-09-07 13:28:35 +08:00
stevando 3f81b85e7d MDL-75283 admin: Update admin user fetching to use sort helper 2022-09-07 13:16:17 +08:00
Jun Pataleta adba94a873 Merge branch 'MDL-75553-master' of https://github.com/junpataleta/moodle 2022-09-07 12:59:42 +08:00
Jun Pataleta e08c186ba3 MDL-75553 mod_data: Fix wording of data fields in Behat tests 2022-09-07 12:55:33 +08:00
Huong Nguyen fd475bf7e8 MDL-74866 bennu: Fix parameter parsing
Some parameter values are wrapped by DQUOTE character.
We need to go through and get the actual value inside the quoted string.
2022-09-07 11:15:01 +07:00
Stephen Bourget 32f170c4b2 MDL-75627 Calendar: Fix calendar imports from Office 365 2022-09-06 22:18:53 -04:00
Dan Marsden ddcd4de74d MDL-75668 backup: Save context mapping of duplicate blocks. 2022-09-07 12:38:56 +12:00
Paul Holden 3e2a97a9ed MDL-75405 block_html: safer unserialize during old block conversion. 2022-09-07 00:54:16 +02:00
Jun Pataleta c0fa734e3a Merge branch 'MDL-74749-master' of https://github.com/junpataleta/moodle 2022-09-07 06:40:58 +08:00
Jun Pataleta 5d4d716023 MDL-74749 mod_bigbluebuttonbn: Run import button check scenario in nonJS 2022-09-07 06:38:55 +08:00
David Mudrák aa49eb24fb MDL-75553 lang: Fix Behat regressions in scenario files 2022-09-06 21:47:18 +02:00
Anastasios Bithas 779e4ecb15 MDL-75665 gradereport_overview: Format strings in grade report overview 2022-09-06 21:37:44 +03:00
Shamiso.Jaravaza 6b6803d46a MDL-74749 mod_bigbluebuttonbn: Fix import button 2022-09-06 12:17:09 -06:00
Jun Pataleta abcba4d1b4 Merge branch 'MDL-75311' of https://github.com/lostrogit/moodle 2022-09-07 00:19:28 +08:00
Jun Pataleta 7b410fbe2b Merge branch 'MDL-75231-master' of https://github.com/lameze/moodle 2022-09-06 23:49:34 +08:00
Sara Arjona f8c63f1dc6 MDL-75252 mod_data: Improve the Image gallery templates 2022-09-06 17:13:28 +02:00
Sara Arjona 63bdc84719 MDL-75411 mod_data: Add proposals preset
Co-author: Laurent David <laurent.david@moodle.com>
2022-09-06 17:04:41 +02:00
Jun Pataleta 9bc847b64c Merge branch 'MDL-75040' of https://github.com/paulholden/moodle 2022-09-06 21:49:35 +08:00
Ilya Tregubov c9a108973e Merge branch 'MDL-75155-master' of https://github.com/rezaies/moodle 2022-09-06 15:44:09 +04:00
Shamim Rezaie 3505cb0fd2 MDL-75155 grades: Removed $exportactiveurl and $importactiveurl
The parameters $exportactiveurl and $importactiveurl are removed from
export_action_bar and import_action_bar classes. Not only passing them
were redundant and it was possible to generate them by having
$activeplugin (also passed to the mentioned class constructors), but
also we had a bug there. The value of $PAGE->url was passed as those
parameters, but $PAGE->url can sometimes include additional parameters
and as a result, its value may not match any of the available
export/import plugins.
2022-09-06 21:41:04 +10:00
Ilya Tregubov d3a7f73f50 Merge branch 'MDL-73938' of https://github.com/paulholden/moodle 2022-09-06 14:28:53 +04:00
Sara Arjona d79098e342 Merge branch 'MDL-73097-master' of https://github.com/lameze/moodle 2022-09-06 06:42:44 +02:00
Sara Arjona d235080a03 Merge branch 'MDL-75187-master' of https://github.com/sarjona/moodle 2022-09-06 06:39:58 +02:00
Shamim Rezaie fa59f35ca4 MDL-75155 grades: Use the select_menu widget 2022-09-06 13:38:28 +10:00
Shamim Rezaie 5d33ef3c21 MDL-75155 behat: Add select_menu field type
This commit introduces a new partial selector for select_menu fields,
and teaching the field manager how to recognise these, then introducing
a new field type which can handle setting values for this field.
2022-09-06 13:38:28 +10:00
Shamim Rezaie 2702885257 MDL-75155 output: A single-select combobox widget output component 2022-09-06 13:38:28 +10:00
Simey Lameze 2b07a23709 MDL-73097 calendar: add behat coverage for manageentries capability 2022-09-06 11:20:34 +08:00
stevando 73bc430e17 MDL-73097 Calendar: Hide event type if user cannot change it 2022-09-06 09:53:38 +08:00
Sara Arjona eef0a430be Merge branch 'MDL-75548' of https://github.com/timhunt/moodle 2022-09-05 13:09:09 +02:00
Paul Holden 208adcf3d1 MDL-73938 reportbuilder: better Oracle support of long text columns.
Specifically during column grouping/aggregation, we need to avoid CLOB
datatype inconsistencies (ORA-00932).
2022-09-05 12:08:54 +01:00
Paul Holden 165e26fad9 MDL-73938 reportbuilder: helper methods for automating report tests.
Implement stress tester methods for iterating over report columns,
aggregation and conditions. Assert that each works correctly in
isolation, and when used in conjunction with other columns.
2022-09-05 12:07:17 +01:00
Sara Arjona 8349ce5811 Merge branch 'MDL-75608-master' of https://github.com/sammarshallou/moodle 2022-09-05 12:24:58 +02:00
Paul Holden 4f94e42b5f MDL-73938 reportbuilder: add filters API to support stress testing.
Filter types can now define sample values, to be used in forthcoming
stress test helpers, in order for them to become active in a report.
2022-09-05 11:17:24 +01:00
Ilya Tregubov 59123f7373 Merge branch 'mdl-60666-one-user-per-transaction' of https://github.com/petersistrom/moodle 2022-09-05 14:16:44 +04:00
Ilya Tregubov e79b771a9b Merge branch 'MDL-75171_master' of https://github.com/TomoTsuyuki/moodle 2022-09-05 12:26:24 +04:00
Sara Arjona a2debf15a9 Merge branch 'MDL-75550-master' of https://github.com/mickhawkins/moodle 2022-09-05 08:57:26 +02:00
Jun Pataleta 09f4774aec Merge branch 'MDL-75223' of https://github.com/stronk7/moodle 2022-09-05 14:46:23 +08:00
Sara Arjona 29dbef64c0 Merge branch 'MDL-75199-master' of https://github.com/call-learning/moodle 2022-09-05 08:43:47 +02:00
Jun Pataleta 0afbfc7124 Merge branch 'MDL-75641' of https://github.com/stronk7/moodle 2022-09-05 14:37:31 +08:00
Jun Pataleta 2e67835f17 Merge branch 'MDL-75430-master' of https://github.com/raortegar/moodle 2022-09-05 09:37:13 +08:00
Helen Foster 7d2fada8b0 MDL-75553 lang: Import fixed English strings (en_fix) 2022-09-04 20:44:10 +02:00
Eloy Lafuente (stronk7) b5c7390477 MDL-75641 core_lang: Add string for new Europe/Kyiv timezone
With IANA TZDB (timezone database) release 2022b, Europe/Kiev
has been renamed to Europe/Kyiv. So we need to add this string
to our list to keep tests passing.

Note that the old Europe/Kiev continues working (is an alias) and,
also, there are places in core where we are using it. Just we cannot
remove/replace those uses in core until we ensure that everybody is
using PHP 8.0.23 (TZDB 2022b) or more recent versions. Hence,
not changing those uses now.
2022-09-04 10:11:59 +02:00
Amaia Anabitarte ae5dc809ec MDL-75187 mod_data: Move delete preset to a modal
Co-author: Ferran Recio <ferran@moodle.com>
2022-09-02 16:01:38 +02:00
Eloy Lafuente (stronk7) 6b3e655891 MDL-75223 tool_httpsreplace: Increase allowed timeout
Oracle 21 performs worse than previous versions and this
is causing some tool_httpsreplace jobs to, near consistently,
fail with timeouts.

This can be workaround in a number of ways:

1) Hacking tool_httpsreplace to detect when it's running a
   behat test and avoid running it completely. We did something
   like that for tool_customlang in the past. Ugly exception.
2) For Oracle jobs, set BEHAT_INCREASE_TIMEOUT to 2 or higher, that
   will allow the whole behat run to have more time. Maybe too much
   if only the tool_httpsreplace scenarios are affected. And requires
   special configuration in sites running the tests.
3) Improve Oracle 21 performance. There are some remaining tests to
   perform to achieve that, but it's extremely slow process, so it
   won't happen soon.
4) Give more time to the failing tests using the step: "I mark this
   test as slow setting a timeout factor of X". It applies to all
   databases, but we are already using it, so no big problem. It's the
   same than solution 2) but from within the tests instead of affecting
   to the whole run.

From all the alternatives above, this patch implements 4), doubling
(from current 2 to 4), to give each test up to two minutes
(30 secs * 4 = 120 secs) with the new allowed timeout-factor.
2022-09-02 14:44:58 +02:00
Paul Holden ff717ac87f MDL-75447 reportbuilder: return only valid audience instances. 2022-09-02 12:33:54 +01:00
Ilya Tregubov a7514f231d weekly release 4.1dev 2022-09-02 08:49:13 +04:00
Brendan Heywood 11efc67eb5 MDL-75614 dml: Fixed debugsqltrace with anon classes bug 2022-09-02 11:42:04 +10:00
Sara Arjona 0ffc0b228e Merge branch 'MDL-73376-master-fix' of https://github.com/junpataleta/moodle 2022-09-01 14:04:50 +02:00
Ferran Recio 188d304a4b MDL-75625 core_courseformat: fix MDL-71979 comments 2022-09-01 12:41:55 +02:00
Jun Pataleta 1138811649 MDL-73376 qbank: Remove uniqueidentifier fragment argument
The uniqueidentifier argument is only needed by the version selector and
can be set within the output fragment function using it. There's no need
for it to be a parameter when calling the output fragment function.
2022-09-01 14:56:20 +08:00
Jun Pataleta 0524084300 Merge branch 'MDL-74770' of https://github.com/paulholden/moodle 2022-09-01 11:32:15 +08:00
Jun Pataleta 9d97935e25 Merge branch 'MDL-75092-master' of https://github.com/PhMemmel/moodle 2022-09-01 11:05:36 +08:00
Jun Pataleta eb59bca8ce Merge branch 'MDL-73228' of https://github.com/call-learning/moodle 2022-09-01 10:56:33 +08:00
Jun Pataleta 86f07a84ce Merge branch 'master_MDL-73376-version-selection' of https://github.com/catalyst/moodle-MDL-72752 2022-09-01 10:52:54 +08:00
Safat Shahin 497a644b48 MDL-73376 qbank_comment: Version selection in modal
This commit implements version selection in the comment
modal to allow users to change the version of question
using that dropdown.
2022-09-01 11:43:55 +10:00
Laurent David b705218b88 MDL-75199 mod_bigbluebuttonbn: Add CLI command to migrate recordings
* Sometimes recordings are not migrated when upgrating from pre-4.0 release
version. The additional script will allow to launch the migration once again
either for specific courses or activities.
2022-08-31 17:40:29 +02:00
Laurent David cb7d2bf2f1 MDL-73228 mod_bigbluebuttonbn: Close all meetings when deleting
* When a BigblueButtonBN activity is deleted, we need to also close all
running meetings (including group meetings)
2022-08-31 17:19:41 +02:00
Jun Pataleta ba5550ac3b Merge branch 'MDL-75111' of https://github.com/stronk7/moodle 2022-08-31 23:06:05 +08:00
Sara Arjona c726705f6b Merge branch 'MDL-12643' of https://github.com/paulholden/moodle 2022-08-31 16:36:37 +02:00
Sara Arjona 3a6db56555 Merge branch 'MDL-75521-master' of https://github.com/aanabit/moodle 2022-08-31 15:48:33 +02:00
Sara Arjona afd6f23ab3 Merge branch 'MDL-73076-master' of https://github.com/lameze/moodle 2022-08-31 15:45:30 +02:00
Jun Pataleta 83a7fde2c0 Merge branch 'MDL-75019-master' of https://github.com/andelacruz/moodle 2022-08-31 20:25:37 +08:00
Ilya Tregubov 2dffdc276f Merge branch 'MDL-74901-master' of https://github.com/snake/moodle 2022-08-31 16:00:50 +04:00
Sara Arjona 4a5a79b7db Merge branch 'MDL-74714' of https://github.com/paulholden/moodle 2022-08-31 13:25:31 +02:00
Sara Arjona 29b0bfd90d Merge branch 'MDL-74862-master' of https://github.com/jleyva/moodle 2022-08-31 13:13:25 +02:00
Sara Arjona 471d4a10a8 Merge branch 'MDL-74969-master' of https://github.com/marinaglancy/moodle 2022-08-31 12:29:11 +02:00
Sara Arjona f2aafd12c0 Merge branch 'MDL-75412-master' of https://github.com/sarjona/moodle 2022-08-31 12:00:54 +02:00
Sara Arjona 8aa571c9e4 Merge branch 'MDL-75191-fix' of https://github.com/paulholden/moodle 2022-08-31 11:48:57 +02:00
Ilya Tregubov f5388a05f0 Merge branch 'MDL-72830-master' of https://github.com/dthies/moodle 2022-08-31 12:57:05 +04:00
Paul Holden 9eed0bf85f MDL-75040 block_completionstatus: correct current course navigation. 2022-08-31 09:56:40 +01:00
Sara Arjona 5bf3b5078e Merge branch 'MDL-75333' of https://github.com/paulholden/moodle 2022-08-31 10:34:08 +02:00
Paul Holden 62d22c6626 MDL-75191 task: cross DB support for task output filter.
Specifically avoids Oracle exception ORA-00932.
2022-08-31 09:16:06 +01:00
Ilya Tregubov 157bbce05d Merge branch 'MDL-74861-master' of https://github.com/andelacruz/moodle 2022-08-31 11:53:15 +04:00
Jun Pataleta 3b02aff511 Merge branch 'MDL-74669' of https://github.com/call-learning/moodle 2022-08-31 15:44:51 +08:00
Michael Hawkins f85af51dcc MDL-75550 lib: Update Mustache const to reflect correct version
Mustache version 2.14.1 is already included, but the VERSION const
incorrectly listed 2.14.0 in the tagged Mustache release. A later
upstream commit corrected this in the library, which this now matches.
2022-08-31 15:28:59 +08:00
Sara Arjona 9608890556 Merge branch 'MDL-72489-master-take2' of https://github.com/lucaboesch/moodle 2022-08-31 08:27:30 +02:00
Jun Pataleta 95808527b1 Merge branch 'MDL-72188-master_seb_js_integration-with-message' of https://github.com/catalyst/moodle 2022-08-31 13:52:30 +08:00
Luca Bösch a1cec84e62 MDL-72489 core_search: searchareas page table sort. 2022-08-31 07:35:46 +02:00
Andrew Madden d1863734d4 MDL-72188 quizaccess_seb: Implement Safe Exam Browser JS API
* Replaces checking header for SEB config keys to assess quiz access.
* Adds new web service accessible via Ajax
* Forces the use of the new API where available
* Stores access in Moodle SESSION for quiz instead of checking every
page.
2022-08-31 13:10:28 +10:00
Paul Holden a75829829d MDL-75333 reportbuilder: report audience type for site admins. 2022-08-30 16:08:40 +01:00
Sara Arjona 8cbc603ec9 Merge branch 'MDL-74873-master' of https://github.com/dthies/moodle 2022-08-30 16:10:08 +02:00
Sara Arjona 3c04c065c6 Merge branch 'MDL-68717-master' of https://github.com/laurentdavid/moodle 2022-08-30 16:04:59 +02:00
Paul Holden 91ae2c25b4 MDL-75308 task: explicit check for tasks of disabled plugins.
The enabled state of a plugin is a tri-state value (boolean or
null). We should be consistent with elsewhere by only considering
boolean false as an actually disabled plugin.

See also cdcb53a1 for similar change in task management.
2022-08-30 13:04:06 +01:00
Ilya Tregubov 96dbcc0840 Merge branch 'MDL-75245' of https://github.com/paulholden/moodle 2022-08-30 14:59:50 +04:00
Víctor Déniz 45a61beced Merge branch 'MDL-75360' of https://github.com/paulholden/moodle 2022-08-30 11:42:46 +01:00
Sara Arjona 4d62410091 Merge branch 'MOODLE_master_MDL-75218-favicon' of https://github.com/danielneis/moodle 2022-08-30 12:17:23 +02:00
sam marshall 49b4ff0f3e MDL-75608 Behat: Expand all fieldsets step fails with single fieldset 2022-08-30 11:16:55 +01:00
Eloy Lafuente (stronk7) bb6f9bcf0f Merge branch 'MDL-75191-fix' of https://github.com/sarjona/moodle 2022-08-30 10:59:41 +02:00
Sara Arjona e2421df68e MDL-75191 phpunit: add core_admin to phpunit.xml.dist 2022-08-30 10:16:16 +02:00
Víctor Déniz 22fd3c5786 Merge branch 'MDL-70480-master' of https://github.com/chanqihui/moodle 2022-08-30 09:12:03 +01:00
Sara Arjona 87db68a0ce Merge branch 'MDL-75191' of https://github.com/paulholden/moodle 2022-08-30 09:48:29 +02:00
Sara Arjona 3ea96df0e1 Merge branch 'MDL-75564-master' of https://github.com/aanabit/moodle 2022-08-30 07:02:42 +02:00
Ilya Tregubov 1e94b9f148 Merge branch 'MDL-71662' of https://github.com/paulholden/moodle 2022-08-30 07:59:19 +04:00
Daniel Neis Araujo 7adac1fefb MDL-75218 theme: Add a Favicon setting 2022-08-29 09:35:54 -03:00
Jun Pataleta 0e80be483f Merge branch 'MDL-73685-admin-role-bug' of https://github.com/brendanheywood/moodle 2022-08-29 15:47:57 +08:00
Jun Pataleta b58b121d0b Merge branch 'MDL-72592-master' of https://github.com/lameze/moodle 2022-08-29 13:12:18 +08:00
Jun Pataleta 4f03f60804 Merge branch 'MDL-75353-master' of https://github.com/sarjona/moodle 2022-08-29 13:10:20 +08:00
Shamim Rezaie ce2c78251f Merge branch 'MDL-75275-master' of https://github.com/sarjona/moodle 2022-08-28 23:39:47 +10:00
Eloy Lafuente (stronk7) 83b490a594 MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- The following task tests have been moved within the level2 directory:
  - \core\adhoc_task_test => \core\task\adhoc_task_test
  - \core\scheduled_task_test => \core\task\scheduled_task_test
  - \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
  - \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
  - \core\task_database_logger_test => \core\task\database_logger_test
  - \core\task_logging_test => \core\task\logging_test

- The following event tests have been moved within level2 directory:
  - \core\event_context_locked_test => \core\event\context_locked_test
  - \core\event_deprecated_test => \core\event\deprecated_test
  - \core\event_grade_deleted_test => \core\event\grade_deleted_test
  - \core\event_profile_field_test => \core\event\profile_field_test
  - \core\event_unknown_logged_test => \core\event\unknown_logged_test
  - \core\event_user_graded_test => \core\event\user_graded_test
  - \core\event_user_password_updated_test => \core\event\user_password_updated_test

- The following output tests have been moved within level2 directory:
  - \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
  - \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
  - \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test

- The following tests have been moved to their correct tests directories:
  - lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php

- All the classes and tests under lib/filebrowser and lib/filestorage
  belong to core, not to core_files. Some day we should move
  them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
  to core_grades. Some day we should move them to their correct
  subsystem.
- The core_grades_external class and its \core\grades_external_test
  unit test should belong to the grades subsystem or, alternatively,
  to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
  unit test should belong to the grading subsystem or, alternatively,
  to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
  classes, and their associated tests should go to the core_message
  subsystem.
- The core_user class, and its associated tests should go to the
  core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
  and needs action 1) create it or 2) move elsewhere.
2022-08-26 16:34:20 +02:00
Amaia Anabitarte 7d7c2ce8f2 MDL-75564 mod_data: Remove underconstruction_title string 2022-08-26 15:56:05 +02:00
Shamim Rezaie 952d9e9f18 weekly release 4.1dev 2022-08-26 21:07:34 +10:00
Justus Dieckmann b3e97db59c MDL-75555 core_courseformat: Remove duplicate section collapse requests
Previously, by simulating a click, the section toggle listener
was invoked again. Instead, it now uses the bootstrap collapse
function directly.
2022-08-25 23:20:06 +02:00
Sara Arjona 89eed9e368 MDL-75412 mod_data: Add journal preset 2022-08-25 08:24:02 +02:00
Jake Dallimore 01f72edd49 Merge branch 'MDL-75247-master' of https://github.com/cameron1729/moodle 2022-08-25 10:08:19 +08:00
Simey Lameze 4a8589bc0e MDL-72592 block_myprofile: behat and other code fixes
This commit fixes few things:
- Fix correct language string order.
- Change the code in myprofile.php to be consistent with other checks.
- Update provided test to fix behat failure.
2022-08-25 08:44:25 +08:00
Amaia Anabitarte 9eee0f7dac MDL-75521 mod_data: Use moodle_url on mod/data/view.php for baseurl 2022-08-24 18:21:35 +02:00
Shamiso.Jaravaza 5aeb8a0319 MDL-75558 mod_bigbluebuttonbn: Fix alert banner 2022-08-23 17:17:26 -06:00
Víctor Déniz b7f1e6df5b Merge branch 'MDL-75143-master' of https://github.com/sarjona/moodle 2022-08-23 18:15:18 +01:00
Víctor Déniz 05c05d5002 Merge branch 'MDL-71000-SQL_QUERY_AUX_READONLY' of https://github.com/catalyst/moodle 2022-08-23 17:16:19 +01:00
Víctor Déniz 48fb133523 Merge branch 'MDL-75537' of https://github.com/paulholden/moodle 2022-08-23 12:49:15 +01:00
Víctor Déniz e1c4d1644b Merge branch 'MDL-75290' of https://github.com/paulholden/moodle 2022-08-23 09:02:19 +01:00
Cameron Ball 43a3a7f324 MDL-75247 assignfeedback_editpdf: Requeue conversion task for polling 2022-08-23 11:41:16 +08:00
Srdjan 5248067884 MDL-71000 lib/dml: New query type SQL_QUERY_AUX_READONLY
For SQL_QUERY_AUX queries that can go to readonly, conditions permitting.
2022-08-23 10:39:43 +10:00
Tim Hunt 797b9fbd62 MDL-75548 misc: final Required parameter follows optional notices 2022-08-22 15:20:13 +01:00
Víctor Déniz cf150f859a Merge branch 'MDL-75031' of https://github.com/paulholden/moodle 2022-08-22 14:16:02 +01:00
Sara Arjona 680bff5f40 MDL-75143 mod_data: Use standard notification for Save as preset
Apart from using the standard notification, the message has been
replaced to the one suggested by the Product UX team.
2022-08-22 12:46:11 +02:00
Sara Arjona 757759a879 MDL-75143 mod_data: Edit presets 2022-08-22 12:46:11 +02:00
Sara Arjona beb305198d MDL-75143 mod_data: Add user support to preset behat generator
The 'user' parameter has been added to the 'mod_data > presets'
generator, to let define the author of the preset.
When it's not defined, admin is used as the author.
2022-08-22 11:07:28 +02:00
Simey Lameze 8f078a2911 MDL-75231 files: make bucket calculations more precise
This commit changes changes the unit test calculations to
keep track of the time the bucket starts/finishes bursting
and use milliseconds instead of seconds to have a precise
time to sleep.
2022-08-22 13:51:07 +08:00
Carsten Nielsen d5c144c14a MDL-72592 block_myprofile: Add lastlogin date to myprofile block 2022-08-22 09:05:59 +08:00
Philipp Memmel 9a8e108655 MDL-75092 backup: Fix selector for adding select all/none link 2022-08-19 17:17:29 +02:00
Paul Holden 70950f89b2 MDL-75537 reportbuilder: add entity joins to user:auth filter. 2022-08-19 13:25:32 +01:00
Tomo Tsuyuki a6a7b16846 MDL-75171 Auth: extend user logged in event
Co-authored-by: Heena Agheda <heenaagheda@catalyst-au.net>
2022-08-19 18:38:59 +10:00
Sara Arjona cb4b6f125b MDL-75353 mod_data: always return str in data_generate_default_template
From now on, the data_generate_default_template method will always return
a string with the template content or an empty string when there is no
content available (for instance, when the database has no fields).
This method won't return a boolean anymore.
2022-08-19 08:42:15 +02:00
Sara Arjona 2acda39537 MDL-75275 mod_data: Add ##actionsmenu## action tag 2022-08-19 08:38:33 +02:00
Sara Arjona fd1b874449 MDL-75275 mod_data: Add user support to entry behat generator
The 'user' parameter has been added to the 'mod_data > entries'
generator, to let define the author of the entry.
When it's not defined, admin is used as the author.
2022-08-19 08:38:32 +02:00
Mikhail Golenkov 7614482029 MDL-75448 assignfeedback_editpdf: Fix conversion for rotated images 2022-08-19 15:39:06 +10:00
Mikhail Golenkov aeda4b9a87 MDL-75448 stored_file: Cover rotate_image() method with unit tests 2022-08-19 15:39:06 +10:00
Paul Holden 30427e91c2 MDL-75191 task: implement task logs datasource for custom reporting.
Update existing entity to define remaining report elements. Add new
report source joining the entity to the user entity to provide data
for the reportbuilder editor.
2022-08-18 17:12:39 +01:00
Paul Holden 4b8f076560 MDL-75191 reportbuilder: use column callbacks in avg/sum aggregation.
When aggregating a column using either method, for numeric types we
should execute column callbacks to ensure consistent formatting.
2022-08-18 17:04:33 +01:00
Paul Holden 0304508926 MDL-75245 reportbuilder: re-factor current tag elements to new entity.
Update previous implementation of tags (9ebd801c) in report sources to
use equivalent tag entity columns and filters.
2022-08-18 17:01:21 +01:00
Paul Holden 065b38f68d MDL-75245 tag: implement tags datasource for custom reporting.
Create entity definitions for collections, tags and instances for
new report source to provide data for the reportbuilder editor.
2022-08-18 16:54:54 +01:00
Paul Holden ab89e3caae MDL-74770 gradereport_grader: allow sorting by all user fields. 2022-08-18 15:58:11 +01:00
Sara Arjona 17ee072693 weekly release 4.1dev 2022-08-18 14:54:11 +02:00
Ilya Tregubov 9a177c253d Merge branch 'MDL-75214-fix' of https://github.com/sarjona/moodle 2022-08-18 12:44:05 +04:00
Sara Arjona 74a100ff75 MDL-75214 behat: Export grades fix
This issue has started causing some errors with behat. It seems the
"Save changes" button is not clickable, so changing the window size
will do the magic.
2022-08-18 09:26:15 +02:00
Laurent David 025e0297b6 MDL-75210 mod_quiz: fix sequential quiz access
* As a student I should only be able to access the next question or the current question
* The API should not show more than the current question
* Once the quiz is previewed we can see the question in any order (existing behaviour)
* Related to ticket MDL-71728

Co-authored-by: Rajneel Totaram <rjnlfj@yahoo.com>
Co-authored-by: Tim Hunt <t.j.hunt@open.ac.uk>
2022-08-18 08:07:38 +04:00
Brendan Heywood 68626c0c1f MDL-73685 admin: Fix regression from MDL-69498 2022-08-18 13:55:46 +10:00
Andrew Nicols d0f6744d66 Merge branch 'MDL-75029' of https://github.com/paulholden/moodle 2022-08-18 11:17:19 +08:00
Andrew Nicols 903f04a320 Merge branch 'MDL-74608' of https://github.com/timhunt/moodle 2022-08-18 10:52:02 +08:00
Brendan Heywood f0d91ec708 MDL-69888 core: Cache user fully setup status 2022-08-18 10:29:44 +10:00
Shamiso.Jaravaza c261317912 MDL-75460 mod_bigbluebuttonbn: Fix lock on start 2022-08-17 14:06:54 -06:00
David Matamoros e6c1284a93 MDL-74364 course: Fix for deleted users SQL condition 2022-08-17 17:51:34 +02:00
Sara Arjona 5a3b4ac828 Merge branch 'MDL-75390-master' of https://github.com/sarjona/moodle 2022-08-17 17:08:17 +02:00
Sara Arjona 3da9c364c7 Merge branch 'MDL-75063-master' of https://github.com/andelacruz/moodle 2022-08-17 16:52:13 +02:00
Ilya Tregubov c3d74f6991 Merge branch 'MDL-74364-master' of https://github.com/dravek/moodle 2022-08-17 14:53:50 +04:00
David Matamoros 0a66ba0188 MDL-74364 course: Add course participants datasource
- New Report Builder source for course participants
- New course completion entity
- New course enrolment entity
- New course last access entity
2022-08-17 12:40:34 +02:00
Sara Arjona 996b5c7d75 Merge branch 'MDL-75312' of https://github.com/paulholden/moodle 2022-08-17 12:26:38 +02:00
Ilya Tregubov 2b1511fadd Merge branch 'MDL-75214-master' of https://github.com/rezaies/moodle 2022-08-17 11:53:57 +04:00
Sara Arjona 123b5495bf Merge branch 'MDL-49795-master-test' of https://github.com/rezaies/moodle 2022-08-17 08:58:35 +02:00
Ilya Tregubov e6590c6045 Merge branch 'MOODLE_master_MDL-73119' of https://github.com/danielneis/moodle 2022-08-17 08:24:56 +04:00
Ilya Tregubov 369134dade Merge branch 'MDL-61401-master' of https://github.com/BruceGoodGuy/moodle 2022-08-17 08:15:59 +04:00
Shamim Rezaie c5ea7a1fab Merge branch 'MDL-75386-master' of https://github.com/andrewnicols/moodle 2022-08-17 13:29:05 +10:00
Daniel Neis Araujo 3f83f35a5c MDL-73119 contentbank: Add pluginfile callback to content type plugins 2022-08-16 14:23:33 -03:00
Shamim Rezaie 70b2afde62 MDL-49795 core: Fixed missing index (competencyid) for upgrades 2022-08-17 03:07:10 +10:00
Shamim Rezaie 93044268bc Merge branch 'MDL-49795-add-missing-keys-indexes-to-core-tables' of https://github.com/keevan/moodle into MDL-49795-master-test 2022-08-17 03:02:40 +10:00
Shamim Rezaie cad62440e3 Merge branch 'MDL-73876-master' of https://github.com/ilyatregubov/moodle 2022-08-17 02:32:00 +10:00
Shamim Rezaie e07a3fecec Merge branch 'MDL-75414-master' of https://github.com/sarjona/moodle 2022-08-17 02:24:00 +10:00
Shamim Rezaie 14ff458b3d Merge branch 'MDL-49795-add-missing-keys-indexes-to-core-tables' of https://github.com/keevan/moodle 2022-08-17 02:17:52 +10:00
Shamim Rezaie 40f6f35463 Merge branch 'MDL-67685_Master' of https://github.com/tuanngocnguyen/moodle 2022-08-17 01:52:07 +10:00
Sara Arjona 31e05de8fc Merge branch 'MDL-72178-master' of https://github.com/NoelDeMartin/moodle 2022-08-16 16:58:28 +02:00
Sara Arjona e550cb5bba Merge branch 'MDL-75137-master' of https://github.com/aanabit/moodle 2022-08-16 16:50:33 +02:00
hieuvu 98942df0c4 MDL-61401 workshop: Ability for tutors to search for students. 2022-08-16 20:22:19 +07:00
Tim Hunt 8babdbd396 MDL-74608 activities: a new option to force the activity language
For a long time, Moodle has had the feature to force the language
for a whole course. This change adds the same feature at activity
level.

The course-level feature was controlled by a capability
moodle/course:setforcedlanguage, and I decided to use the same
capability to control this feature. I think a new capability would be
overkill.
2022-08-15 22:15:52 +01:00
Laurent David 01c94bcb64 MDL-59458 mod_data: Fix sorting data query
* When activating sorting on a different field than the original field
the list of records is empty
2022-08-15 17:08:14 +02:00
Simey Lameze 7abd77f565 MDL-75456 behat: final deprecation of get_node_type() and get_field() 2022-08-15 12:58:05 +08:00
Amaia Anabitarte e08458cc23 MDL-75137 mod_data: Fix and improve behat tests 2022-08-12 15:46:44 +02:00
Amaia Anabitarte 8768a7adb9 MDL-75137 mod_data: Redesign zero state page
Co-authored-by: Ferran Recio <ferran@moodle.com>
2022-08-12 15:46:44 +02:00
Amaia Anabitarte cb01747608 MDL-75137 mod_data: Add entry throws an exception if there is no field 2022-08-12 15:46:08 +02:00
Simey Lameze 2afa4488cd MDL-73076 completion: split criteria duration test into two tests 2022-08-12 17:11:15 +08:00
Mark Johnson b014bb9985 MDL-75388 lib: Update mustache to 2.14.1
MDL-67114 and MDL-73586 local changes removed as they are now available
upstream.
2022-08-12 04:14:18 +02:00
Petr Skoda a50c80b52a MDL-75237 core: improve PARAM_SAFEPATH docs 2022-08-12 04:14:18 +02:00
Petr Skoda 2f70b320bb MDL-75237 qformat_blackboard_six: sanitise blackboard import file paths 2022-08-12 04:14:18 +02:00
Petr Skoda 5ed64ce150 MDL-75237 core: Revert MDL-72029
This reverts commit d585f902fc.
2022-08-12 04:14:18 +02:00
Petr Skoda 3e61730463 MDL-75237 qformat_blackboard_six: Revert MDL-72029
This reverts commit 3cafb305de.
2022-08-12 04:14:18 +02:00
Paul Holden b40ab6987d MDL-75326 h5p: require sesskey to toggle library enabled state. 2022-08-12 04:14:18 +02:00
Shamim Rezaie 896e126a66 weekly release 4.1dev 2022-08-12 11:52:47 +10:00
Shamim Rezaie af7239bbbe Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-08-12 11:52:45 +10:00
AMOS bot 2d3065719a Automatically generated installer lang files 2022-08-12 00:08:19 +00:00
Daniel Thies 3aa3b664ab MDL-72830 repository_contentbank: Use content specific icons 2022-08-11 12:34:27 -05:00
Daniel Thies 9a349468cc MDL-74873 core_message: Disable notification preferences controls 2022-08-11 12:32:45 -05:00
raortegar 21a8787e50 MDL-75430 mod_data: Fix picture size for list view
We were missing the templatename in get_template method of manager.php
2022-08-11 18:09:25 +02:00
Noel De Martin 9f38b1c389 MDL-72178 feedback: Implement behat generators
Based on Andrew's WIP from https://github.com/andrewnicols/moodle/commit/b3d40cb20d1f0edf0bf21077c8f94bce5dec56db

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2022-08-11 10:30:27 +02:00
Sara Arjona 9acdb178c7 MDL-75414 mod_data: Fix error when displaying fields in single view
This is a regression from MDL-75146, when the manager class was created.
The field class was not found in the Single view, because the field.class.php
file was not included (so the base class was used in all the cases for this
view). That's why the image field was displaying only the image name instead
of building the <img element or the URLs were displaying only the text, instead
of creating a link for them.
2022-08-10 12:52:59 +02:00
Anton 5e27f3a7b2 MDL-75065 qbank_editquestion: fix creating simple calculated question 2022-08-10 09:44:27 +03:00
Peter Sistrom 1a06546ea3 MDL-60666 auth_ldap: One transaction per user 2022-08-10 13:49:20 +10:00
Jun Pataleta a3187a2231 Merge branch 'MDL-75375-master' of https://github.com/junpataleta/moodle 2022-08-10 00:26:26 +08:00
Brendan Heywood 7f63314383 MDL-75375 cache: Fix file store path cleaning 2022-08-09 23:50:51 +08:00
Jun Pataleta a8575c24bd Merge branch 'MDL-74636' of https://github.com/timhunt/moodle 2022-08-09 11:11:19 +08:00
Jun Pataleta 5d90181c6e Merge branch 'MDL-74800-master' of https://github.com/ferranrecio/moodle 2022-08-08 22:30:01 +08:00
Jun Pataleta 87e513e439 MDL-74800 core: block actions fix suggestion 2022-08-08 14:46:42 +02:00
Jun Pataleta 950d617aec MDL-74800 core: action menu role fix
The action menu could have a role button or menubar depending on the
number of options available.
2022-08-08 14:46:42 +02:00
Ferran Recio dc63d643b8 MDL-74800 core_courseformat: fix accessibility checks 2022-08-08 14:46:42 +02:00
Ferran Recio 39af611f82 MDL-74800 output: fix edit button accessibility 2022-08-08 14:46:42 +02:00
Ferran Recio 2493b4f01a MDL-74800 message: fix invalid aria-label attributes 2022-08-08 14:46:42 +02:00
Laurent David 3ae6a87d7a MDL-68717 core_calendar: Hide completed event
* "expectcompletionon" type of event should be hidden if the related
activity is completed
2022-08-08 07:17:54 +02:00
Jun Pataleta aea05af894 Merge branch 'MDL-75142-master' of https://github.com/sarjona/moodle 2022-08-08 11:17:12 +08:00
Jun Pataleta 2d60043c5b Merge branch 'MDL-74211-master' of https://github.com/lameze/moodle 2022-08-08 11:14:44 +08:00
Angelia Dela Cruz 2a50790048 MDL-74861 behat: H5P behat generators use UI
Replace steps that manually add H5Pactivity instances via the UI
and use Behat generators. This improves the speed of the Behat test
runs.

Co-authored-by: Simey Lameze <simey@moodle.com>
2022-08-08 11:08:40 +08:00
Shamiso.Jaravaza 6236be46e1 MDL-74782 mod_bigbluebuttonbn: Fix only imported
* When Show imported links only is enabled in activity or config, only imported recordings will appear
* Logic for activity/default overrides implemented
2022-08-05 10:20:42 -06:00
Laurent David 1df1e02820 MDL-74669 mod_bigbluebuttonbn: align language with user's preference
* Pick BBB UI language from Moodle user profile language instead of
preferred browser language
2022-08-05 17:00:27 +02:00
Sara Arjona 70d520e1a6 MDL-75390 mod_data: Fix regression when portfolios is enabled
This patch fixes a regression that is causing some errors when
portfolios advanced feature is enabled but no portfolio is
enabled.
2022-08-05 16:54:49 +02:00
Sara Arjona aecb87f53e MDL-75142 mod_data: Add description to presets
This commit adds support to description field for presets:
- For plugin presets, description will be stored in the module_help
string in lang files.
- For saved presets, a new element, <description>, has been added
to the preset.xml file, to include this information.

A new field has been added to the "Save as preset" modal, to let users
define description (which is empty by default, to support pre-existing
presets that won't have it).

Apart from that, the "Save as preset" workflow has been slightly improved,
following the Product UX/UX suggestions to hide the checkbox to overwrite
the preset by default and show it only if the user tries to save a preset
with an existing name.
2022-08-05 14:51:49 +02:00
Paul Holden a65476d590 MDL-74010 core: check defined MDL_PERF* values in conditionals. 2022-08-05 11:02:54 +01:00
Paul Holden 411269b529 MDL-74714 reportbuilder: clarify optional properties of exporters.
The custom report exporter should define its own editable element
properties (conditions, filters, etc) as optional, rather than each
of those element exporters defining their properties as optional.
2022-08-05 10:25:06 +01:00
Angelia Dela Cruz 2ccb0f11f8 MDL-75063 behat: BigBlueButton behat generators use UI
Replace steps that manually add BigBlueButton instances via the UI
and use Behat generators. This improves the speed of the Behat test
runs.

Co-authored-by: Simey Lameze <simey@moodle.com>
2022-08-05 17:22:50 +08:00
Ilya Tregubov a6e24e30ff Merge branch 'MDL-74475-master' of https://github.com/aanabit/moodle 2022-08-05 12:25:48 +04:00
Andrew Nicols 64be603879 MDL-75386 theme: Include CSS from editor subplugins in editor style
Editor stylesheets are kept separately to standard plugin stylesheets so
that they can be provided to style individual iframes where loading the
standard Moodle stylesheets would be incorrect.

Unfortunately the editor stylesheet system does not consider that
subplugins may want to add small individual styling to the editor but
this is required in some situations.
2022-08-05 14:18:26 +08:00
Angelia Dela Cruz d31dfdc6e2 MDL-75019 behat: Folder behat generators use UI
Replace steps that manually add Folder instances via the UI and
use Behat generators. This improves the speed of the Behat test
runs.
2022-08-05 13:59:00 +08:00
Ilya Tregubov 35b993b694 weekly release 4.1dev 2022-08-05 08:29:14 +04:00
Andrew Lyons 019c633bd9 MDL-73876 behat: Show exceptions stack trace 2022-08-04 16:50:59 +04:00
Paul Holden e15444e1ec MDL-75029 block_news_items: indicate posts made by deleted users. 2022-08-04 09:43:30 +01:00
Qihui Chan a0508fbb2b MDL-70480 mod_assign: fix user and group submission and update database 2022-08-04 17:45:30 +10:00
Jun Pataleta 29d804b302 Merge branch 'MDL-74895' of https://github.com/paulholden/moodle 2022-08-04 11:35:47 +08:00
Jun Pataleta da9aec83a6 Merge branch 'MDL-69251-master' of https://github.com/snake/moodle 2022-08-04 11:16:22 +08:00
Andrew Nicols 17ab13467f Merge branch 'MDL-56923-master' of https://github.com/rezaies/moodle 2022-08-04 11:12:32 +08:00
Andrew Nicols 73eb4edbdf Merge branch 'MDL-74502-master' of https://github.com/marinaglancy/moodle 2022-08-04 11:08:44 +08:00
Jake Dallimore 9231714b50 Merge branch 'MDL-74766-master' of https://github.com/JBThong/moodle 2022-08-04 10:55:03 +08:00
Andrew Nicols 0ad58524c9 Merge branch 'MDL-75080-master' of https://github.com/andelacruz/moodle 2022-08-04 10:17:02 +08:00
Andrew Nicols 9c6b60bd38 Merge branch 'MDL-74655-master' of https://github.com/NoelDeMartin/moodle 2022-08-04 10:07:09 +08:00
Andrew Nicols c500af1c90 MDL-74492 editor_atto: Comment the regex change 2022-08-04 10:04:15 +08:00
Andrew Nicols 78bf2a203a Merge branch 'MDL-74492-Atto_UL_fix' of https://github.com/PhilippImhof/moodle 2022-08-04 09:59:58 +08:00
Simey Lameze 032468d269 MDL-74211 behat: convert few more steps to use new data generators 2022-08-04 09:21:33 +08:00
Paul Holden 43bf6c8f00 MDL-71662 mod_h5pactivity: add group filter to attempts report. 2022-08-03 15:30:51 +01:00
Ilya Tregubov 2764133fb7 Merge branch 'MDL-75185' of https://github.com/paulholden/moodle 2022-08-03 16:26:55 +04:00
Jun Pataleta 41f3f4730f Merge branch 'MDL-75285-master' of https://github.com/marinaglancy/moodle 2022-08-03 18:04:14 +08:00
Jun Pataleta 4b233aa8e8 Merge branch 'MDL-74740-master-1' of https://github.com/mihailges/moodle 2022-08-03 17:03:40 +08:00
Jun Pataleta 94ea7cd81c Merge branch 'MDL-62959-master' of https://github.com/snake/moodle 2022-08-03 16:52:36 +08:00
Noel De Martin 275dc3f8d4 MDL-74655 competency: Implement behat generators 2022-08-03 10:48:01 +02:00
Amaia Anabitarte 205d990c2e MDL-74475 core_badges: Behat test using new step 2022-08-03 10:34:36 +02:00
Amaia Anabitarte f039c865f7 MDL-74475 behat: Option to jump to course edit page 2022-08-03 10:34:36 +02:00
Jake Dallimore d95071b537 Merge branch 'MDL-74721' of https://github.com/lostrogit/moodle 2022-08-03 15:47:38 +08:00
Kevin Pham 027b6f73d6 MDL-49795 file: Add missing metadata providers for file_conversion 2022-08-03 15:17:05 +10:00
Kevin Pham c0e329a781 MDL-49795 tool_privacy: Add missing metadata providers for purpose table 2022-08-03 15:17:05 +10:00
Kevin Pham 1495c10c26 MDL-49795 analytics: Add missing metadata providers for analytics tables
Affected tables:
- analytics_models
- analytics_models_log
2022-08-03 15:17:05 +10:00
Kevin Pham aeea0b1502 MDL-49795 auth_oauth2: Add missing metadata providers for oauth2 tables 2022-08-03 15:17:05 +10:00
Kevin Pham 5ab70be182 MDL-49795 mod_data: Add userid foreign key to data_records 2022-08-03 15:17:05 +10:00
Kevin Pham 1499f83cad MDL-49795 mod_feedback: Add courseid foreign key to feedback_completed 2022-08-03 15:17:05 +10:00
Kevin Pham c67bc6c10a MDL-49795 mod_forum: Add usermodified foreign key to forum_discussions 2022-08-03 15:17:04 +10:00
Kevin Pham 5f50d978df MDL-49795 mod_chat: Add course foreign key to chat_users table 2022-08-03 15:17:04 +10:00
Kevin Pham c2167257c9 MDL-49795 mod_book: Add foreign key for course 2022-08-03 15:17:04 +10:00
Kevin Pham af71e4f412 MDL-49795 core: Add foreign keys to core tables in lib
- Includes changes to tables like course, enrol, stage, etc
2022-08-03 15:17:04 +10:00
Kevin Pham a35f0b01c0 MDL-49795 tool_dataprivacy: Add foreign keys to tool_dataprivacy_purpose 2022-08-03 15:17:04 +10:00
Kevin Pham 08564004ec MDL-49795 tool_monitor: Add foreign keys to tool_monitor_events 2022-08-03 15:17:04 +10:00
Kevin Pham 2157cc74a4 MDL-49795 logstore_standard: add foreign keys for userids & courseid
Fields affected: userid, realuserid, courseid & relateduserid
2022-08-03 15:15:29 +10:00
Andrew Nicols 9c4c5f1fbe Merge branch 'MDL-72430-master' of https://github.com/HuongNV13/moodle 2022-08-03 12:48:36 +08:00
Andrew Nicols babfdf8af2 Merge branch 'MDL-74592-master' of https://github.com/cameron1729/moodle 2022-08-03 11:11:25 +08:00
Paul Holden ae369574b8 MDL-75360 user: relax initial parameter types of external method.
Defer cleaning of supplied text to inside the method, so we don't
throw confusing exceptions if a user enters "unsafe" characters in
the form input.
2022-08-02 20:55:34 +01:00
Jun Pataleta 8f892428a6 Merge branch 'MDL-75205' of https://github.com/paulholden/moodle 2022-08-02 23:18:32 +08:00
Paul Holden 905b394176 MDL-75205 reportbuilder: include report parameters on filters reset.
When resetting report filters, we need to include the original report
parameters in the external method call to ensure all those that are
required during validation are present (e.g. when determining if user
can view the current system report).
2022-08-02 12:43:52 +01:00
Nathan Nguyen 7c3e78ca3c MDL-67685 core_admin: use autocomplete filter in task log 2022-08-02 18:21:37 +07:00
Nathan Nguyen f32913dc65 MDL-67685 core_reportbuilder: Add autocomplete filter 2022-08-02 18:21:37 +07:00
Ilya Tregubov 5c1df4aebc Merge branch 'MDL-75148-master' of https://github.com/sarjona/moodle 2022-08-02 10:28:16 +04:00
Jun Pataleta 3dff2b614f Merge branch 'MDL-74947-master' of https://github.com/snake/moodle 2022-08-02 10:00:56 +08:00
Sara Arjona 599aca679b MDL-75148 mod_data: Improve presets list page
- Add a new help text.
- Add captions to table columns.
- Move action icons to action menu, and fix code to display the remove
action only for presets created by users.
- CSS improvements to fit the prototype.

In order to achive the previous points, the renderer has been improved,
to return the data and let the mustache to print it properly (instead of
returning the formatted HTML table).
2022-08-01 12:08:16 +02:00
Sara Arjona 06b86fdfc3 MDL-75148 mod_data: Enable Use preset button when one is selected
The 'Use preset' button will be enabled only when a preset is selected.
2022-08-01 12:08:16 +02:00
Sara Arjona 7d88bc0754 MDL-75148 mod_data: Move Import button to right
This commit moves the Import button from the tertiary navigation to
the right.
2022-08-01 12:08:16 +02:00
Sara Arjona ad0595b4b4 MDL-75148 mod_data: Implement preset behat generator 2022-08-01 12:08:16 +02:00
Sara Arjona 13264c7107 MDL-75148 mod_data: Add create_preset to generator 2022-08-01 12:08:16 +02:00
Sara Arjona 9d10f7d19e MDL-75148 mod_data: Add isplugin info to presets
This activity currently supports two different preset types:
- Datapreset plugins, that can be installed copying them to the
mod/data/preset folder.
- Presets saved manually by users.

This commit adds an attribute to the presets to mark them, in order
to identify them later (because, for instance, the plugins can't be
removed).

Apart from that, the methods in lib.php, involved with this issue, have
been deprecated. New methods have been implemented in the manager class,
covering them with PHPUnit tests.
2022-08-01 12:08:16 +02:00
Sara Arjona abeae6acb2 MDL-75148 mod_data: Add missing template (adv search)
While covering is_directory_a_preset() with PHPUnit tests, it has been
identified that there was a missing file in the Image gallery preset.
The template will be reviewed in the future (in a separate issue) but,
for now, I'm going to add the default template for advanced search.
2022-08-01 11:34:24 +02:00
Cameron Ball 2e44102904 MDL-74592 tool_uploaduser: Add option to match on email 2022-08-01 13:45:27 +08:00
Shamim Rezaie 17e01f6d7f Merge branch 'MDL-74957' of https://github.com/paulholden/moodle 2022-08-01 12:32:49 +10:00
Paul Holden 637e3a7c88 MDL-74957 reportbuilder: external method for triggering report view. 2022-07-29 14:11:34 +01:00
Marina Glancy 24072f69e9 MDL-75285 core_reportbuilder: allow left joins on category entity 2022-07-29 12:48:30 +02:00
Tim Hunt 9468fe3c8c MDL-74636 behat: step to skip this scenario if a plugin isn't installed 2022-07-29 09:45:09 +01:00
Jun Pataleta 41b805c1ba Merge branch 'MDL-75244-master' of https://github.com/andrewnicols/moodle 2022-07-29 15:30:44 +08:00
Jun Pataleta 0fb9cdedbb Merge branch 'MDL-75235' of https://github.com/paulholden/moodle 2022-07-29 14:32:37 +08:00
Philipp Imhof 0ef6473fff MDL-74492 editor_atto: <line> tags should not be confused with <li> tags 2022-07-29 08:32:18 +02:00
Simey Lameze b522d7652d MDL-74211 behat: replace steps to use new categories page type 2022-07-29 13:02:16 +08:00
Simey Lameze e5ee04d4b9 MDL-74211 behat: add course question categories page type 2022-07-29 13:02:16 +08:00
Simey Lameze 8b4f423c05 MDL-74211 quiz: make use of question data generators 2022-07-29 13:02:16 +08:00
Andrew Nicols b47fcbb204 Merge branch 'MDL-72349_update_strip_double_headers_function' of https://github.com/christina-roperto/moodle 2022-07-29 12:11:22 +08:00
Jun Pataleta 417d1b918b weekly release 4.1dev 2022-07-29 10:56:38 +08:00
Angelia Dela Cruz 35e5d39d48 MDL-75080 behat: Chat behat generators use UI
Replace steps that manually add Chat instances via the UI and use
Behat generators. This improves the speed of the Behat test runs.
2022-07-29 09:52:52 +08:00
Paul Holden 0d1aadc361 MDL-75290 reportbuilder: show user identity data on access tab.
Observe configured user identity for the site to determine additional
columns and filters to display on custom report access tab.
2022-07-28 20:35:34 +01:00
Paul Holden 5b91dabaac MDL-75235 reportbuilder: external method to set report filter values. 2022-07-28 10:47:42 +01:00
Andrew Nicols c48c431374 MDL-75244 form: Change checker should check existence of tinyMCE API
The window.tinyMCE.editors API was present in version 3 of TinyMCE, but
is not present in later versions. As a result, this check tries to loop
over a variable which does not exist and throws an error in the process.

We should check that window.tinyMCE *and* window.tinyMCE.editors both
exist before attempting to loop over them.
2022-07-28 16:09:21 +08:00
Jun Pataleta 72410a4ca1 Merge branch 'MDL-75256' of https://github.com/paulholden/moodle 2022-07-28 10:10:13 +08:00
Carlos Castillo 335e097125 MDL-75311 reportbuilder: Fix error when send report schedule 2022-07-27 08:49:38 -05:00
Jun Pataleta dc5d5e3da7 Merge branch 'MDL-74964-master' of https://github.com/lameze/moodle 2022-07-27 17:13:07 +08:00
Jun Pataleta 202ce9173b Merge branch 'MDL-74656-fix' of https://github.com/paulholden/moodle 2022-07-27 16:37:03 +08:00
Simey Lameze b5bf5f82be MDL-62959 calendar: add behat to test event type changing 2022-07-27 15:44:37 +08:00
Paul Holden 85544709d0 MDL-74656 reportbuilder: cast fields to char on mssql during concat. 2022-07-27 08:12:34 +01:00
Jun Pataleta 75001189d0 Merge branch 'MDL-74697-master' of https://github.com/sarjona/moodle 2022-07-27 14:29:22 +08:00
Jun Pataleta b8d7a5e39b Merge branch 'MDL-74808-master' of https://github.com/lameze/moodle 2022-07-27 13:21:55 +08:00
Ilya Tregubov 9009949de6 Merge branch 'MDL-75135' of https://github.com/lostrogit/moodle 2022-07-27 08:42:28 +04:00
Marina Glancy 8add66b810 MDL-74964 core_enrol: enrolment page UI fixes 2022-07-27 08:10:43 +08:00
Paul Holden 3971b69bb4 MDL-75312 question: predictable ordering of available questions.
This solves sporadic test failure that tried to assert their order.
2022-07-26 17:12:48 +01:00
Jun Pataleta 5b634ef13e Merge branch 'MDL-74656' of https://github.com/paulholden/moodle 2022-07-26 20:03:39 +08:00
Ilya Tregubov cfc6ec6973 Merge branch 'MDL-75146-master' of https://github.com/sarjona/moodle 2022-07-26 15:08:37 +04:00
Simey Lameze 8cc79b1c87 MDL-62959 calendar: fix event data mapping for group id 2022-07-26 17:09:38 +08:00
Huong Nguyen 4139046a9a MDL-72430 Calendar: Fix admin cannot edit course event 2022-07-26 11:48:58 +07:00
Andrew Nicols b32b4865c0 Merge branch 'MDL-73788-master' of https://github.com/andelacruz/moodle 2022-07-26 11:37:51 +08:00
Jun Pataleta af25a9c4d9 Merge branch 'MDL-74057-master' of https://github.com/andelacruz/moodle 2022-07-26 11:02:30 +08:00
hieuvu a6836d1a39 MDL-61401 Workshop: fixed indentations and coding style 2022-07-26 09:10:40 +07:00
Paul Holden 426f533c07 MDL-74895 h5p: more resilient error handling during content fetching.
On new installs, the task for downloading new H5P content types would
throw exceptions and exit when encountering unexpected and/or missing
data.
2022-07-25 20:03:12 +01:00
Angelia Dela Cruz a18d8c59f4 MDL-74057 behat: SCORM behat generators use UI
Replace steps that manually add SCORM instances via the UI and use
Behat generators. This improves the speed of Behat test runs.
2022-07-25 19:36:40 +08:00
Paul Holden a65549d0b3 MDL-75031 output: swap order of buttons in confirmation prompts.
As per ff6e5cc7, the primary button "Continue" should be displayed
on the right hand site of the confirmation prompt.
2022-07-25 11:56:29 +01:00
Ilya Tregubov a63695971c Merge branch 'MDL-75083-master' of https://github.com/rzhtwberlin/moodle 2022-07-25 14:54:57 +04:00
Ilya Tregubov 07a1b6e27b Merge branch 'MDL-71708' of https://github.com/lostrogit/moodle 2022-07-25 11:17:54 +04:00
Jake Dallimore c3aae36612 MDL-74901 core_navigation: support callbacks in frontpage secondary nav
Fixes the site home secondary nav, so that nodes added by plugins
implementing the PLUGIN_extend_navigation_frontpage callback can be
displayed for users who don't have the 'course:update' capability.
This change comprises:
- Removed course:update capability checks from site home (index.php)
and from the secondary nav view. This isn't needed since the nav is
capability aware.
- Fixed the initialisation of the secondary nav for the frontpage
course, removing erroneous duplicate 'home' nodes. The nav is now only
shown if there are nodes to display.
2022-07-25 15:06:14 +08:00
Paul Holden d16ea57405 MDL-75235 reportbuilder: allow default filter form to be disabled.
This allows for custom filter forms to be implemented, rather than
using the default one for system reports.
2022-07-22 09:17:48 +01:00
Paul Holden d0b5241786 MDL-75256 task: move abstract get_name method to base class.
Allow adhoc tasks to implement this method, so they too can have
descriptive names for themselves. Default implementation added to
return the class name itself.
2022-07-22 09:13:53 +01:00
Andrew Nicols 547cae0a02 MDL-74697 libraries: Update all third-party libraries with more metadata 2022-07-22 07:28:47 +02:00
Sara Arjona bc9b915a32 MDL-75146 mod_data: Fix comments raised during int-review 2022-07-22 07:27:40 +02:00
Ferran Recio 776e48748f MDL-75146 mod_data: refactor template parser 2022-07-22 07:27:40 +02:00
Ferran Recio e2da14bbb8 MDL-75146 mod_data: migrate templates editor to mustache 2022-07-22 07:27:40 +02:00
Ferran Recio c6db008496 MDL-75146 mod_data: add a manager class 2022-07-22 07:27:40 +02:00
Thong Bui b8e1d17814 MDL-74766 html_editor: Fix form is submitted as an empty string 2022-07-22 10:15:24 +07:00
Carlos Castillo 7cb8552597 MDL-75135 reportbuilder: Add 'Category name with link' column
Add 'Category name with link' column to course_category entity
2022-07-21 14:13:01 -05:00
Ilya Tregubov 4ce642e8ba weekly release 4.1dev 2022-07-21 21:29:47 +04:00
Ilya Tregubov 3250e59ba5 NOBUG: Fixed SVG browser compatibility 2022-07-21 21:29:45 +04:00
Ilya Tregubov 49c449d4ed Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-07-21 21:29:44 +04:00
Jun Pataleta 0e9d8123ae Merge branch 'MDL-75181-master' of https://github.com/call-learning/moodle 2022-07-21 11:59:09 +08:00
Jun Pataleta c5e19c2ba6 Merge branch 'MDL-75208' of https://github.com/stronk7/moodle 2022-07-21 11:26:52 +08:00
Víctor Déniz ad3ba9d0b7 Merge branch 'MDL-74827-master' of https://github.com/rmady/moodle 2022-07-21 00:12:23 +01:00
Carlos Castillo 562041adda MDL-71708 libraries: Upgrade chartjs to latest version
Changes in chart config file and the process to import library.

Co-authored-by: Andrew Lyons <andrew.lyons@moodle.com>
2022-07-20 15:42:02 -05:00
Víctor Déniz fc3bb1dc50 Merge branch 'MDL-74857-dev' of https://github.com/izendegi/moodle 2022-07-20 21:03:24 +01:00
Víctor Déniz 7fcc10933f Merge branch 'MDL-73332-master' of https://github.com/martygilbert/moodle 2022-07-20 19:49:46 +01:00
Laurent David ea22e495cf MDL-75181 mod_bigbluebuttonbn: Fix activity completion exception
* Fix exception raised in core completion module due to the absence of
completionview in get_sort_order
2022-07-20 13:56:14 -04:00
Ilya Tregubov 0adad2081e Merge branch 'MDL-73867' of https://github.com/paulholden/moodle 2022-07-20 08:14:47 +04:00
Jun Pataleta 0643d3acbb Merge branch 'MDL-73481' of https://github.com/paulholden/moodle 2022-07-20 11:31:05 +08:00
Paul Holden f9bb9797c2 MDL-73481 qtype_truefalse: optional standard instructions for output.
AMOS BEGIN
 CPY [privacy:preference:showstandardinstruction,qtype_multichoice],[privacy:preference:showstandardinstruction,qtype_truefalse]
 CPY [showstandardinstruction,qtype_multichoice],[showstandardinstruction,qtype_truefalse]
AMOS END
2022-07-19 16:57:02 +01:00
Jun Pataleta 301db762d6 Merge branch 'MDL-75182-master' of https://github.com/snake/moodle 2022-07-19 22:47:25 +08:00
Jun Pataleta 155ef8aece Merge branch 'MDL-68011-master' of https://github.com/mihailges/moodle 2022-07-19 20:52:36 +08:00
Víctor Déniz 5087f56905 Merge branch 'MDL-75119' of https://github.com/paulholden/moodle 2022-07-19 13:48:58 +01:00
Christina Thee Roperto de07d85f23 MDL-72349 filelib: update strip_double_headers function 2022-07-19 19:19:46 +10:00
Eloy Lafuente (stronk7) ca7890f2fc MDL-75208 oracle: Amend a couple of queries to make Oracle happy
The changes introduced here are completely safe, just we stop
binding SITEID and, instead, embed it in the SQL.

Why? Because Oracle 21 has started to return non-sense results
when SITEID is bound.

After lots of tests, attempts, debugging... we have been unable
to find any logic to the need of this change and also, have been
unable to reproduce the problem with a standalone script that
pretty much runs the same queries that the ones changed here.

I'm sure that there is something, somewhere, but have failed
to find it, grrr.

Please read MDL-75208 and linked issues to find more information
about this problem, that is one of the biggest mysteries I've
seen recently. Maybe at the end there is a tiny detail that
explains it all, but it's really well hidden.
2022-07-19 09:48:33 +02:00
Paul Holden 5582bc2ded MDL-74656 reportbuilder: ensure nulls preserved in column callbacks.
When concatenating column fields in order to perform aggregation on
them (e.g. group concatenation), we need to preserve all null values
in the data passed to each column callback.

Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
2022-07-19 08:23:54 +01:00
Paul Holden 0b616158cb MDL-74656 badges: add test generator class for creating badges. 2022-07-19 08:23:50 +01:00
Mihail Geshoski 49693c6629 MDL-68011 coourse: Final deprecation of course_modchooser() 2022-07-19 14:33:39 +08:00
Mihail Geshoski 6a122984da MDL-68011 course: Final deprecation of the callback get_shortcuts()
Removal of the callback get_shortcuts() and its plugin implementations.
The private methods in the content_item_readonly_repository class
which were only used by the callback hook logic are also removed.
2022-07-19 14:13:36 +08:00
Mihail Geshoski 2ca262a5e3 MDL-68011 core: Final deprecation of get_module_metadata() 2022-07-19 14:13:36 +08:00
Paul Holden c7d7c83abc MDL-12643 course: fix capabilities used for bulk participant actions.
Previously the `moodle/course:bulkmessaging` capability controlled
access to the entire bulk actions menu for course participants,
rather than just those actions related to messaging.
2022-07-18 15:10:37 +01:00
Ilya Tregubov 068eda3e2c Merge branch 'MDL-68843-master' of https://github.com/snake/moodle 2022-07-18 14:16:14 +04:00
Angelia Dela Cruz 2b28996a2e MDL-73788 behat: URL behat generators use UI
Replace steps that manually add URL instances via the UI and use
Behat generators. This improves the speed of Behat test runs.
2022-07-18 17:40:22 +08:00
Iñigo Zendegi 919ea1dde1 MDL-74857 language: Start using the 'statusok' string for status 2022-07-18 10:55:47 +02:00
Jun Pataleta 1294048575 Merge branch 'MDL-74825-master' of https://github.com/rmady/moodle 2022-07-18 16:47:13 +08:00
Ilya Tregubov 31badf8221 Merge branch 'MDL-72905-master' of https://github.com/golenkovm/moodle 2022-07-18 12:41:50 +04:00
Jun Pataleta a3b8eb0969 Merge branch 'MDL-74925-master' of https://github.com/lameze/moodle 2022-07-18 16:25:58 +08:00
Jake Dallimore 273d9d561d MDL-68843 enrol_lti: add tests covering disabled instances in tasks
Verify the expected behaviour of the sync_members and sync_grades tasks
when enrolment instances are disabled, whether as a byproduct of module
deletion, or as status change made by the user.
2022-07-18 16:13:48 +08:00
Jake Dallimore 3387e63736 MDL-68843 enrol_lti: auto disable orphaned enrolment instances
- pre_course_module_deletion hook to disable on mod delete
- upgrade step dealing with legacy orphaned records
2022-07-18 16:08:18 +08:00
Jake Dallimore 44508bfe93 MDL-68843 enrol_lti: add deleted activity warning to published tools
Adds a warning to the 'name' column of the tables, letting teachers know
that the activity exposed by the method has been deleted and what their
options are.
2022-07-18 16:08:18 +08:00
Simey Lameze 5294f81c27 MDL-74925 core_course: initial deprecation of '_delete' methods 2022-07-18 15:09:05 +08:00
Simey Lameze 45dfb5ac84 MDL-74925 course: use the correct 'remove' action 2022-07-18 15:00:15 +08:00
Simey Lameze e2cd526456 MDL-74925 phpunit: add missing course/format test suite 2022-07-18 15:00:15 +08:00
Jun Pataleta 3e67cccbcd Merge branch 'master_MDL-74768-bulkmove-question-after-affects' of https://github.com/catalyst/moodle-MDL-72752 2022-07-18 13:49:44 +08:00
Shamim Rezaie 031eac1b34 Merge branch 'MDL-74826-master' of https://github.com/rmady/moodle 2022-07-18 12:19:05 +10:00
AMOS bot 86f2dde3ed Automatically generated installer lang files 2022-07-16 00:08:10 +00:00
Paul Holden f1a800bb7c MDL-73867 reportbuilder: improve performance of the editable classes.
When instantiating classes that extend `inplace_editable` we can
improve performance by passing persistent instances we already have,
rather than re-requesting them.

Add test coverage to relevant classes.
2022-07-15 08:44:55 +01:00
Denis Brat 9f7eafbf7b MDL-69251 enrol_lti: fix sync_members task inconsistent internal state 2022-07-15 12:17:08 +08:00
Marty 7760c5de07 MDL-73332 mustache: Fix shortentext helper
In the docs, it claims you can provide length to
the shortentext template helper as a context variable.
In reality, that is not the case.
2022-07-14 09:36:14 -04:00
Víctor Déniz d9632ca8b2 weekly release 4.1dev 2022-07-14 12:06:01 +01:00
Víctor Déniz 6975557187 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-07-14 12:05:58 +01:00
Shamim Rezaie b853f04227 MDL-75214 theme_boost: secondary nav bar styling updates
This commit removes the top border of the secondary nav bar and makes
its bottom border full-width.
2022-07-14 17:47:07 +10:00
Safat Shahin 0fcea11234 MDL-74768 core_question: Fix for question category movement 2022-07-14 11:11:54 +10:00
Víctor Déniz 29a380afeb Merge branch 'MDL-74171-master' of https://github.com/lucaboesch/moodle 2022-07-14 02:02:01 +01:00
Víctor Déniz 0b039070f4 Merge branch 'MDL-74671' of https://github.com/paulholden/moodle 2022-07-14 01:43:54 +01:00
Víctor Déniz e5eafa38d6 Merge branch 'MDL-73568' of https://github.com/paulholden/moodle 2022-07-14 00:51:15 +01:00
Jun Pataleta c599533958 Merge branch 'MDL-74988' of https://github.com/paulholden/moodle 2022-07-13 13:22:15 +08:00
Jun Pataleta 50598298ba Merge branch 'MDL-75152' of https://github.com/paulholden/moodle 2022-07-13 13:02:07 +08:00
Jun Pataleta 3c6fdb1993 Merge branch 'MDL-71062-master' of https://github.com/sharidas/moodle 2022-07-13 11:39:08 +08:00
Sujith Haridasan 73d604369d MDL-71062 core: Step 1 deprecation of print_error function 2022-07-13 08:20:54 +05:30
Jun Pataleta 0e3929a102 Merge branch 'MDL-74513-master' of https://github.com/lucaboesch/moodle 2022-07-12 23:23:03 +08:00
Víctor Déniz 782a3fba23 Merge branch 'MDL-74681-written_time_in_query_end' of https://github.com/catalyst/moodle 2022-07-12 11:53:54 +01:00
Jun Pataleta c09f96c8ef Merge branch 'MDL-67347-master' of https://github.com/mihailges/moodle 2022-07-12 17:17:08 +08:00
Jun Pataleta 15f678194c Merge branch 'MDL-74736-master' of https://github.com/golenkovm/moodle 2022-07-12 14:30:51 +08:00
Jun Pataleta 1ee5ef3271 Merge branch 'MDL-74595' of https://github.com/paulholden/moodle 2022-07-12 11:44:00 +08:00
Jun Pataleta f283906423 Merge branch 'MDL-71747' of https://github.com/stronk7/moodle 2022-07-12 10:50:22 +08:00
AMOS bot 4faede9849 Automatically generated installer lang files 2022-07-12 00:08:06 +00:00
Jun Pataleta 0cb0516211 Merge branch 'MDL-74282' of https://github.com/paulholden/moodle 2022-07-11 20:35:18 +08:00
Jun Pataleta 6ba6c432be Merge branch 'MDL-73215-undef-plagiarismlinks' of https://github.com/leonstr/moodle 2022-07-11 17:02:14 +08:00
Jun Pataleta 399a922f0d Merge branch 'MDL-74784-master' of https://github.com/sarjona/moodle 2022-07-11 16:54:22 +08:00
Jun Pataleta df2276aee6 Merge branch 'MDL-74061-master' of https://github.com/ntdat1904/datnguyen_moodle 2022-07-11 16:51:03 +08:00
Jake Dallimore b152dba74e MDL-74947 mod_lti: remove text validation from password field
This is a password field so should not be cleaned.
2022-07-11 13:25:40 +08:00
Jake Dallimore cb525f3575 Merge branch 'MDL-74777' of https://github.com/paulholden/moodle 2022-07-11 11:02:30 +08:00
Jake Dallimore a5d99d7d8d Merge branch 'MDL-74314' of https://github.com/paulholden/moodle 2022-07-11 10:51:58 +08:00
Carlos Castillo ac7713b7b0 MDL-74721 reportbuilder: Disabling live editing in custom reports 2022-07-10 16:52:25 -05:00
Eloy Lafuente (stronk7) caa738b5b0 MDL-71747 environment: Ensure that check_xmlrpc_usage is in >=39
This is a partial backport of MDL-73270 to ensure that the
check_xmlrpc_usage custom check is present in all the supported
branches and it's applied to all branches able to run php80:

- MOODLE_311_STABLE
- MOODLE_400_STABLE
- master (aka, 4.1 and up)

Note that the whole patch has not been backported, only the
environmental check (xml file and check implementation).
2022-07-09 11:45:10 +02:00
Eloy Lafuente (stronk7) 61d091013b MDL-71747 ci: travis and gha, raise to agreed requirements
Basically, we only need to change:
- PHP 7.4
- PostgreSQL 12

Also, moving up to focal as dev environment, removing NVM_VERSION
because nvm automatically detects .nvmrc and switching to
socketed connection for PostgreSQL (little improvements).
2022-07-09 11:45:00 +02:00
Johannes Burk 5ce4efa27b MDL-75083 login: prevent double submission
Apply core_form/submit JavaScript code to prevent double submission of login form and guest login button.
Add ID to guest login button to make it addressable.
2022-07-08 16:27:06 +02:00
Paul Holden 7ee1dc421f MDL-74282 grade: omit outcomes report if outcomes aren't enabled. 2022-07-08 10:43:38 +01:00
Paul Holden c2c7fc9825 MDL-75185 reportbuilder: order report source listing alphabetically. 2022-07-08 09:59:09 +01:00
Simey Lameze 6b0bf2cd38 MDL-74808 lib: replace type summary span by a div 2022-07-08 14:35:24 +08:00
Simey Lameze e7d988c85c MDL-74808 question: remove span element from label 2022-07-08 14:35:24 +08:00
Simey Lameze d1a0105b6d MDL-74808 question: only add title attr if tooltip is set 2022-07-08 14:35:24 +08:00
Simey Lameze 7c57a9749a MDL-74808 question: use the correct attr for checked checkboxes 2022-07-08 13:01:54 +08:00
Srdjan bab70a42a0 MDL-74681 lib/dml: moodle_read_slave_trait: written table timestamping
Moved written table timestamping from query_start() to query_end():
We are adjusting table last written times at the end of transaction.
That does not apply to immediate database writes that are not performed
within transaction. This change is to set last written time after the query
has finished for such writes, rather than before it started. That way
long write operations cannot spill over the latency parameter.
2022-07-08 12:27:33 +10:00
Jake Dallimore dc20ae685f MDL-75182 enrol_lti: remove installed lang assumptions from unit tests
Don't assume 'fr' isn't installed, or that 'en' is. Use known
non-existent languages and known installed languages for the relevant
test cases.
2022-07-08 10:05:41 +08:00
Eloy Lafuente (stronk7) b12b4c10a4 MDL-71747 upgrade: remove adhoc tasks not used anymore
This code was used only by deleted upgrade steps so it's safe
to proceed with straight deletion, considering it internal.
Deletion has been documented in corresponding upgrade.txt files:

  - \mod_forum\task\refresh_forum_post_counts adhoc task

And these is the list of code that has NOT been removed
because it may be needed in the future:

  - \core_search\manager::clean_up_non_existing_area(), used by
  - adhoc task: \core\task\clean_up_deleted_search_area_task adhoc task
2022-07-07 20:30:11 +02:00
Eloy Lafuente (stronk7) 012ae934be MDL-71747 upgrade: remove functions not used anymore
This code was used only by deleted upgrade steps so it's safe
to proceed with straight deletion, considering it internal.
Deletion has been documented in corresponding upgrade.txt files:

  - upgrade_analytics_fix_contextids_defaults()
  - upgrade_convert_hub_config_site_param_names()
  - upgrade_rename_prediction_actions_useful_incorrectly_flagged()
2022-07-07 19:16:37 +02:00
Eloy Lafuente (stronk7) 58b56e2395 MDL-71747 upgrade: remove all the < 3.9.0 upgrade steps
This just deletes all the upgrade steps previous to 3.9.0. Some
small adjustments, like tweaking globals can also be applied
when needed.

Also includes an upgrade step to prevent upgrading from any
version < 2020061500 (v3.9.0) as anti-cheating measure.

The next commits will proceed to deprecate / remove functions
that were exclusively (usually belonging to upgradelib) being
used by those, now removed, upgrade steps. This is the list
of code to remove and document in upgrade.txt files:

  - upgrade_analytics_fix_contextids_defaults()
  - upgrade_convert_hub_config_site_param_names()
  - upgrade_rename_prediction_actions_useful_incorrectly_flagged()
  - \mod_forum\task\refresh_forum_post_counts adhoc task.

And these is the code that has NOT been removed
because it may be needed later (no matter there aren't uses now):

  - \core_search\manager::clean_up_non_existing_area(), used by
  - \core\task\clean_up_deleted_search_area_task adhoc task
2022-07-07 19:16:37 +02:00
Eloy Lafuente (stronk7) 1a25935d28 MDL-71747 environment: Apply agreed changes
- PHP 7.4 required.
- Moodle 3.9 required.
- MariaDB 10.4 required.
- PostgreSQL 12 required.
- Oracle 19c required.
2022-07-07 19:16:37 +02:00
Eloy Lafuente (stronk7) 61bdc1e36b MDL-71747 environment: 4.1 base information
This is a direct copy of the 4.0 information, to
have the changes under control in the next commit.
2022-07-07 19:16:37 +02:00
Eloy Lafuente (stronk7) f678a20463 MDL-71747 composer: Regenerate with php74 and requirements raised
Now that the required PHP version has been raised to php74, set
it in the composer.json file and regenerate everything, following
the instructions @ https://docs.moodle.org/dev/Composer, also
with php74.

That's the only change (raised php version) as far as no change
has been performed to extension.
2022-07-07 19:16:37 +02:00
Luca Bösch 84f5903114 MDL-74513 block_recentlyaccesseditems: display objects like timeline. 2022-07-07 16:40:02 +02:00
Luca Bösch 102c93edb5 MDL-74171 core_question: qbank_plugins page table sort. 2022-07-07 16:39:56 +02:00
Jun Pataleta a23f0bff3e weekly release 4.1dev 2022-07-07 21:32:59 +08:00
Jun Pataleta 55b9ff4f36 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-07-07 21:32:58 +08:00
Shamim Rezaie 696aa3ea40 MDL-56923 gradingform_guide: Fix icon positioning in RTL 2022-07-07 16:01:18 +10:00
Jun Pataleta f9af45eff5 Merge branch 'MDL-75058-master' of https://github.com/jleyva/moodle 2022-07-07 12:07:55 +08:00
Jake Dallimore 4afcb0dce8 Merge branch 'MDL-69400-master' of https://github.com/abgreeve/moodle 2022-07-07 11:48:29 +08:00
Jun Pataleta 2857a3219c Merge branch 'MDL-75054' of https://github.com/paulholden/moodle 2022-07-07 11:05:11 +08:00
Jun Pataleta 23f63f8e17 Merge branch 'MDL-74885' of https://github.com/dravek/moodle 2022-07-07 11:01:40 +08:00
Jun Pataleta 0bf9eea6d2 Merge branch 'MDL-75028-master' of https://github.com/rezaies/moodle 2022-07-07 10:59:18 +08:00
Jun Pataleta 972ea1a41d Merge branch 'MDL-75116' of https://github.com/aolley/moodle 2022-07-07 10:47:28 +08:00
Víctor Déniz ee325b4bf8 Merge branch 'MDL-74981-master' of https://github.com/stevandoMoodle/moodle 2022-07-07 00:49:18 +01:00
Víctor Déniz 715fd4cf3c Merge branch 'MDL-74835_update-nodejs-version-in-travis-integration-to-lts-gallium' of https://github.com/ziegenberg/moodle 2022-07-06 12:18:01 +01:00
Jun Pataleta ce043a452e Merge branch 'MDL-74741-master' of https://github.com/rezaies/moodle 2022-07-06 16:46:05 +08:00
stevando 014f2f5d5f MDL-72171 tool_mobile: Ensure auto login URL is always local 2022-07-06 14:25:07 +08:00
David Matamoros ecb95114e9 MDL-74885 reportbuilder: format value using percents from lang pack 2022-07-06 08:17:20 +02:00
Mihail Geshoski 2ccd1e773c MDL-71921 scorm: Sanitize element names before outputting track details 2022-07-06 05:24:15 +02:00
Alex Morris aebd3576a6 MDL-75044 assignfeedback_editpdf: Add SAFER option to GS command
Adds the SAFER option to the Ghostscript command to limit interaction
with IO and OS commands
2022-07-06 05:24:15 +02:00
Huong Nguyen 3cafb305de MDL-72029 Lesson: Prevent arbitrary file read when importing lesson questions in blackboard format 2022-07-06 05:24:15 +02:00
Huong Nguyen d585f902fc MDL-72029 lib: Prevent path traversal for clean_param with PARAM_SAFEPATH 2022-07-06 05:24:15 +02:00
Laurent David 579c15842a MDL-74473 core_analytics: Upgrade ML Backend to 3.0.5 2022-07-06 05:24:15 +02:00
Jake Dallimore 805d92152e MDL-72299 mod_lti: fix html escaping when reposting cross site posts 2022-07-06 05:24:15 +02:00
Andrew Nicols b71b2311f3 Merge branch 'MDL-73305_master' of https://github.com/tasosb/moodle 2022-07-06 11:15:51 +08:00
Andrew Nicols 9783c54df1 Merge branch 'MDL-74408' of https://github.com/paulholden/moodle 2022-07-06 11:02:15 +08:00
Andrew Nicols 319e14e6cf Merge branch 'MDL-74972-master' of https://github.com/marinaglancy/moodle 2022-07-06 10:58:03 +08:00
Jun Pataleta f739d61ae2 Merge branch 'MDL-74596-master' of https://github.com/marinaglancy/moodle 2022-07-06 10:57:14 +08:00
Jun Pataleta 6d99ad85db Merge branch 'MDL-74813-master' of https://github.com/mihailges/moodle 2022-07-06 10:53:01 +08:00
Mihail Geshoski ca1fe2afa3 MDL-74813 filepicker: Replace the dnd gif animation with a static icon 2022-07-06 10:17:04 +08:00
Paul Holden ec452a4e88 MDL-75152 reportbuilder: unique default tag aliases across entities. 2022-07-05 21:45:23 +01:00
Jun Pataleta 1a74206dbc Merge branch 'MDL-74821-master' of https://github.com/junpataleta/moodle 2022-07-05 22:14:00 +08:00
Laurent David 629bb7f54d MDL-74821 mod_feedback: Fix HTML validator error
* Remove align attribute on table elements
* Fix dangling tr/td on multichoice rated
* Remove colspan as it is not used
2022-07-05 21:24:23 +08:00
Jun Pataleta d3565b60f3 Merge branch 'MDL-74505-master' of https://github.com/JBThong/moodle 2022-07-05 21:15:37 +08:00
Marina Glancy b2565dd580 MDL-74596 core_admin: option to hide search input on admin pages 2022-07-05 12:28:21 +03:00
Jake Dallimore 10c837f157 Merge branch 'MDL-74815-master' of https://github.com/junpataleta/moodle 2022-07-05 14:52:04 +08:00
Thong Bui def8753d52 MDL-74505 Question bank: Improve behat steps 2022-07-05 13:28:28 +07:00
Thong Bui 035b55252d MDL-74505 Question bank: Update validation editing question form. 2022-07-05 13:28:24 +07:00
Adrian Greeve 7d0c60eecf MDL-69400 mod_forum: Added calender event refreshing. 2022-07-05 13:25:56 +08:00
Jake Dallimore 8e5a19b6cb Merge branch 'master_mdl-73498' of https://github.com/daniil-berg/moodle 2022-07-05 12:00:43 +08:00
AMOS bot e1139b9bdd Automatically generated installer lang files 2022-07-05 00:08:26 +00:00
Adam Olley c0c1653b52 MDL-75116 mod_feedback: Check array values exist before using them
Without this, the @list will emit a PHP warning under php8.0+ when the array
doesn't have a second element to assign.
2022-07-05 09:17:03 +09:30
Jun Pataleta 27b5573e51 Merge branch 'MDL-74516' of https://github.com/stronk7/moodle 2022-07-04 23:17:20 +08:00
Jun Pataleta 986e9a2777 Merge branch 'MDL-75008-master-enfix' of https://github.com/mudrd8mz/moodle 2022-07-04 22:18:39 +08:00
Paul Holden dc60fe6662 MDL-75119 reportbuilder: preload context data for column callbacks.
This prevents additional requests for context instances in the
callback methods, by preloading all required data in the initial
field select.
2022-07-04 13:07:02 +01:00
Jun Pataleta d323559965 MDL-74815 pix: Convert PNG version of darkened SVG icons
* Conversion was done using rsvg-convert from librsvg
2022-07-04 14:03:39 +08:00
Mikhail Golenkov 7725abc4a8 MDL-72905 course: Add new callback for timeline classification 2022-07-04 14:47:07 +10:00
Jun Pataleta 12ee00bdf6 MDL-74815 pix: Darken colour of grey icons
* Change the fill colour of grey icons from #999 to #888.
2022-07-04 11:29:47 +08:00
sam marshall f83782af74 MDL-75108 block_html: Search tries to index directory entries
Search attach_files function should only attach indexable files,
not directory entries which are 0 bytes and cannot be indexed.
2022-07-01 14:10:17 +01:00
Eloy Lafuente (stronk7) 64bf0e9165 MDL-74516 workshop: Better handling of floats for gradepass fields
This re-applies the same fix that was used for the central mod form
to the workshop activity. This is needed because the completion
support for this module is custom (there are 2 grade items), hence
the validations are also custom.

For more information, read the previous commit and MDL-74516

Unfortunately, because of a related bug with assessment completion
(see MDL-69690) we cannot provide automated testing for this
activity. Manual instructions will be provided instead.
2022-07-01 13:55:51 +02:00
Eloy Lafuente (stronk7) b3b1006201 MDL-74516 activities: Better handling of floats for gradepass fields
Current code was relying on grade_floatval() that is not a validation
function. Instead, the gradepass field must be defined as proper float
and then perform the needed validations using unformat_float().

Note that the float element form has some particularities, see
MDL-73994 for more information and that makes us to have to check
for some values (null, zero) manually. Once that form element type
gets its behaviour fixed, the code will need to be revisited, hence
we have annotated it as comments for easier finding it in the future
(the same changes already were applied to other gradebook forms).

Also, remove an unreachable line of code (comparing with empty string)
within the grade_floatval() function because it's not possible anymore
to pass any string to it, as far as it's "?float" typed.

Covered as many cases with quiz completion as have been able to imagine.
2022-07-01 13:55:51 +02:00
Víctor Déniz 9ccda59e00 weekly release 4.1dev 2022-07-01 11:28:36 +01:00
Marina Glancy 3dde885ec7 MDL-74502 behat: when setting a field value it may not be visible
for example in case of editor field, the textarea element is hidden by wysiwyg widget but we still need to be able to set it
2022-07-01 10:30:02 +02:00
Marina Glancy 33f81c73c3 MDL-74969 core_form: same style for headers without shortforms 2022-07-01 10:19:16 +02:00
Andrew Nicols aee73d839a Merge branch 'MDL-74841-master-fix' of https://github.com/andelacruz/moodle 2022-07-01 11:57:22 +08:00
Angelia Dela Cruz 1648b28977 MDL-74841 behat: Label behat generators use UI
Replace steps that manually add Label instances via the UI and use
Behat generators. This improves the speed of Behat test runs. Fix
for failing test.
2022-07-01 10:40:38 +08:00
David Mudrák 0c1d4b219a MDL-75008 lang: Use the fixed strings in Behat scenario files 2022-06-30 20:48:16 +02:00
Helen Foster e73756abdd MDL-75008 lang: Import fixed English strings (en_fix) 2022-06-30 20:31:27 +02:00
Mihail Geshoski 29c77d97a3 MDL-74740 boost: Display the skip links from the blocks drawer
Due to fixed positioning of the block drawer and the navbar, the
z-index css property on the skip link elements from the drawer
is not respected. This ultimately results in the skip links being
stacked behind the navbar. As a workaround, an absolute positioning
will be temporary applied to the block drawer once the current
focus is on an element within the drawer which will stack the
skip links infront of the navbar.
2022-07-01 01:16:13 +08:00
Shamim Rezaie d380bec38e Merge branch 'MDL-74812-master' of https://github.com/junpataleta/moodle 2022-06-30 13:34:17 +10:00
Jun Pataleta 028cbda036 Merge branch 'MDL-75048-master' of https://github.com/jleyva/moodle 2022-06-30 11:30:30 +08:00
Shamim Rezaie 3af7eee03d Merge branch 'MDL-75072-master' of https://github.com/junpataleta/moodle 2022-06-30 13:27:28 +10:00
Shamim Rezaie 718cb293b1 Merge branch 'MDL-75055-master' of https://github.com/junpataleta/moodle 2022-06-30 13:20:02 +10:00
Andrew Nicols 81ba0563ce Merge branch 'MDL-75084-master' of https://github.com/NoelDeMartin/moodle 2022-06-30 11:12:45 +08:00
Andrew Nicols 6d46332a94 Merge branch 'MDL-74613-master' of https://github.com/NoelDeMartin/moodle 2022-06-30 11:02:41 +08:00
Andrew Nicols 956bb8eb18 Merge branch 'MDL-74220-master' of https://github.com/NoelDeMartin/moodle 2022-06-30 10:58:12 +08:00
Andrew Nicols 68cc906825 Merge branch 'MDL-74744-master' of https://github.com/andelacruz/moodle 2022-06-30 10:51:22 +08:00
Andrew Nicols eb7131f091 Merge branch 'MDL-74522-master' of https://github.com/devlionco/moodle 2022-06-30 10:47:34 +08:00
Andrew Nicols 31f23e2a9f Merge branch 'MDL-74841-master' of https://github.com/andelacruz/moodle 2022-06-30 10:43:34 +08:00
Andrew Nicols ce7eee8e77 Merge branch 'MDL-72292-master' of https://github.com/lameze/moodle 2022-06-30 10:38:55 +08:00
Andrew Nicols 694ef721b6 MDL-74379 core: Update date_format_string to use x-os functions 2022-06-30 10:35:19 +08:00
Andrew Nicols 09858c06d7 Merge branch 'MDL-74379_master' of https://github.com/aya-saad1/moodle 2022-06-30 10:34:58 +08:00
Andrew Nicols 3b072f0b59 Merge branch 'MDL-74287' of https://github.com/paulholden/moodle 2022-06-30 10:01:46 +08:00
Víctor Déniz bc398c2605 Merge branch 'MDL-63594_final-deprecation-of-cron_run_single_task-function' of https://github.com/ziegenberg/moodle 2022-06-29 23:58:42 +01:00
Víctor Déniz 32a995faf2 Merge branch 'MDL-72885-master-2' of https://github.com/junpataleta/moodle 2022-06-29 19:03:00 +01:00
Jun Pataleta fc87543d52 Merge branch 'MDL74387_master' of https://github.com/Amrita1991/moodle 2022-06-29 23:20:33 +08:00
Jun Pataleta 453c3ac47d MDL-75055 templates: Apply the .alert-dismissible class
- Apply the .alert-dismissible class for notification alerts with
close button to fix its positioning. As an added bonus, the
.alert-dismissible class also enlarges the clickable area of the
close button which is great for accessibility.
- Improve example context for the notification alerts templates.
2022-06-29 22:04:58 +08:00
Jun Pataleta 3ce2cde773 MDL-75055 theme_boost: Darken close button colour in notification alerts
This is in order for the close button to have a good contrast against
the alert background and meet the minimum Level AA contrast ratio of 3:1
2022-06-29 22:04:58 +08:00
Ilya Tregubov 4e55e7be86 Merge branch 'MDL-74548-master' of https://github.com/cameron1729/moodle 2022-06-29 16:16:59 +04:00
Jun Pataleta f419e44d12 Merge branch 'MDL-74632-master' of https://github.com/HuongNV13/moodle 2022-06-29 18:07:00 +08:00
Jun Pataleta a8de333107 Merge branch 'MDL-74886-master' of https://github.com/lameze/moodle 2022-06-29 17:46:52 +08:00
Anastasios Bithas 53682b209b MDL-73305 mod_folder: Download Folder in a mlang formated folder 2022-06-29 12:46:44 +03:00
Jake Dallimore 6a55fb96ec Merge branch 'MDL-74674-master' of https://github.com/alfonso-salces/moodle 2022-06-29 16:44:23 +08:00
Alfonso Salces db7178edca MDL-74674 core: create notification generators 2022-06-29 10:31:40 +02:00
Víctor Déniz fc5c6b9233 Merge branch 'MDL-74742-master' of https://github.com/junpataleta/moodle 2022-06-29 09:30:03 +01:00
Noel De Martin 2a4ebd1277 MDL-75084 payment: Fix typo 2022-06-29 09:39:39 +02:00
Noel De Martin 2944abad29 MDL-75084 blog: Implement behat generators 2022-06-29 09:39:39 +02:00
Jake Dallimore f1ecddd709 Merge branch 'MDL-74864-master' of https://github.com/dpalou/moodle 2022-06-29 13:40:29 +08:00
Jun Pataleta b7a1693e24 Merge branch 'MDL-74967-master' of https://github.com/lameze/moodle 2022-06-29 12:58:47 +08:00
Cameron Ball 2ac93db399 MDL-74548 backup: Deprecate get/set copy from base controller 2022-06-29 09:14:02 +08:00
Cameron Ball 07e5f432a0 MDL-74548 backup: Deprecate core_backup\copy\copy 2022-06-29 09:14:02 +08:00
Cameron Ball bc9c536335 MDL-74548 backup: Unit tests for course copy refactor 2022-06-29 09:13:29 +08:00
Cameron Ball 29df52af19 MDL-74548 backup: Refactor course copies
This patch modifies the way copy data is shared in order to mitigate potential race conditions
and ensure that the serialised controller stored in the DB is always in a valid state.

The restore controller is now considered the "source of truth" for all information about the
copy operation. Backup controllers can no longer contain information about course copies.

As copy creation is not atomic, it is still possible for copy controllers to become orphaned or
exist in an invalid state. To mitigate this the backup cleanup task has been modified to call
a new helper method copy_helper::cleanup_orphaned_copy_controllers.

Summary of changes in this patch:

    - Copy data must now be passed through the restore controller's constructor
    - base_controller::get_copy has been deprecated in favour of restore_controller::get_copy
    - base_controller::set_copy has been deprecated without replacement
    - core_backup\copy\copy has been deprecated, use copy_helper.class.php's copy_helper instead
    - backup_cleanup_task will now clean up orphaned controllers from copy operations that went awry

Thanks to Peter Burnett for assiting with testing this patch.
2022-06-29 09:13:29 +08:00
Simey Lameze c85b88c1b6 MDL-74967 core: deprecate groupmember hack from USER object 2022-06-29 04:55:42 +08:00
Jun Pataleta 9a6d3bb3ba Merge branch 'MDL-74701-master' of https://github.com/HuongNV13/moodle 2022-06-28 23:51:17 +08:00
Jun Pataleta 81faa8184e Merge branch 'MDL-74906-master' of https://github.com/snake/moodle 2022-06-28 23:33:04 +08:00
Jun Pataleta a60a2ad04b Merge branch 'MDL-29717-master' of https://github.com/marinaglancy/moodle 2022-06-28 22:24:59 +08:00
Juan Leyva 6969d2834b MDL-74862 tool_mobile: Allow to disable QR login IP checks 2022-06-28 12:18:58 +02:00
Shamim Rezaie 34d55890f3 Merge branch 'MDL-73121' of https://github.com/paulholden/moodle 2022-06-28 16:08:30 +10:00
Dani Palou 341039b13b MDL-74864 forum: Allow specifying group in discussions generator 2022-06-28 06:59:39 +02:00
Jun Pataleta 6dbfb3bd36 Merge branch 'MDL-68867-master' of https://github.com/lameze/moodle 2022-06-28 11:24:11 +08:00
Jun Pataleta b2bc76e0f7 Merge branch 'MDL-74929-master' of https://github.com/bmbrands/moodle 2022-06-28 11:07:48 +08:00
Jun Pataleta 15608738d9 Merge branch 'MDL-74781_master' of https://github.com/aya-saad1/moodle 2022-06-28 10:44:47 +08:00
Jun Pataleta 4ff322db08 Merge branch 'MDL-69905-master' of https://github.com/lameze/moodle 2022-06-27 22:41:01 +08:00
Juan Leyva 51c9c709a9 MDL-75058 course: Fix support for dates on WebServices 2022-06-27 15:29:36 +02:00
Jun Pataleta d4fe1b3065 MDL-75072 mod_forum: Drop usecoursefullname forum setting 2022-06-27 17:48:59 +08:00
Jun Pataleta 564d0d73f4 MDL-75072 mod_forum: Revert the patch for MDL-74623
This reverts commit bd6fdd70d6.
2022-06-27 17:39:13 +08:00
Paul Holden 2d6139242c MDL-74671 phpunit: remove file/directory coverage duplicates. 2022-06-27 10:16:14 +01:00
Ilya Tregubov 37020ba162 Merge branch 'MDL-74691-master' of https://github.com/snake/moodle 2022-06-27 08:30:18 +04:00
Aya Saad 165d983214 MDL-74781 search: Fix heading repetition in global search page 2022-06-26 10:38:22 +02:00
Aya Saad 8be0dfc928 MDL-74379 language: injecting am/pm in date string
patching the date_format_string() function in moodlelib to add am/pm for languages that don't suuport it.
2022-06-26 10:36:52 +02:00
Paul Holden 721f7a01e8 MDL-74777 reportbuilder: report filter by category/sub-categories.
AMOS BEGIN
 CPY [choosecategory,core_grades],[categoryselect,core_reportbuilder]
AMOS END
2022-06-24 11:44:50 +01:00
Paul Holden 1dba7152d0 MDL-74595 calendar: consistent breadcrumbs navigating site calendar.
Take #3, see also 7a529cc8 and 81b0d053.
2022-06-24 10:14:49 +01:00
Paul Holden 52992d993c MDL-73568 admin: show accepted types for stored file config settings.
Re-factor existing code to make use of file manager class that renders
these details for us by default.

Co-authored-by: Simey Lameze <simey@moodle.com>
2022-06-24 10:13:09 +01:00
Shamim Rezaie 1657669d98 MDL-74741 javascript: Set the role of d&d links to button 2022-06-24 14:24:18 +10:00
Shamim Rezaie 584468c6b0 MDL-74741 javascript: A11y fix for dialogues visible from beginning 2022-06-24 14:24:17 +10:00
Jun Pataleta ceb41588d2 weekly release 4.1dev 2022-06-24 11:59:02 +08:00
Jun Pataleta 9c61045945 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-06-24 11:58:59 +08:00
Yan Kudriavtsev 18dcdd7763 MDL-69905 block: order of activities in the block Recent Activity
The order of actions in the "Recent Actions" block has been changed to
descending
2022-06-24 11:30:23 +08:00
Rodrigo Mady da Silva 892047d3c8 MDL-74827 core_webservice: Add enablecustomreports in WS get_site_info 2022-06-23 12:00:43 -03:00
Rodrigo Mady da Silva fad1926b98 MDL-74825 tool_mobile: Add customusermenuitems in mobile WS get_config 2022-06-23 08:47:15 -03:00
stevando 05dcc9eb12 MDL-74981 mod_quiz: set limited width on overrides pages 2022-06-23 18:01:56 +08:00
stevando d04d70bb60 MDL-74981 mod_assign: set limited width on overrides pages 2022-06-23 18:01:39 +08:00
Jun Pataleta fc76c284b1 Merge branch 'MDL-74623_master_v2' of https://github.com/TomoTsuyuki/moodle 2022-06-23 11:55:30 +08:00
Jun Pataleta 24b826f38d Merge branch 'MDL-69939' of https://github.com/paulholden/moodle 2022-06-23 09:53:44 +08:00
Jun Pataleta 79b54a59a4 Merge branch 'MDL-74713' of https://github.com/paulholden/moodle 2022-06-23 09:51:50 +08:00
Jun Pataleta 626d0fe77f Merge branch 'MDL-73156-master' of https://github.com/michael-milette/moodle 2022-06-23 09:50:41 +08:00
Jun Pataleta 271c69fd84 Merge branch 'MDL-74785' of https://github.com/danmarsden/moodle 2022-06-23 09:48:47 +08:00
Paul Holden eb44a074fb MDL-75054 reportbuilder: fix docblock for adding column callback.
Parameter type is now preserved, since ea45aefe.
2022-06-22 23:57:26 +01:00
Juan Leyva a3201673be MDL-75048 mod_quiz: Use new way to check if subcats are included 2022-06-22 18:14:05 +02:00
Jun Pataleta 8ff58878e7 Merge branch 'MDL-72948' of https://github.com/NeillM/moodle 2022-06-22 23:16:16 +08:00
Neill Magill 6fb4a3b56e MDL-72948 messaging: Minimise fields used in query
Most of the fields in the query are not needed and are discarded
soon after visibility checks are made.
2022-06-22 10:11:18 +01:00
Shamim Rezaie 1296d39194 Merge branch 'master-MDL-71468-v4' of https://github.com/golenkovm/moodle 2022-06-22 14:54:01 +10:00
Mikhail Golenkov 9e074f2436 MDL-74736 task: Log adhoc task id and its custom data 2022-06-22 10:33:25 +10:00
Simey Lameze 24cd968683 MDL-68867 calendar: remove dependency on USER->groupmember hack 2022-06-22 07:56:41 +08:00
Víctor Déniz ed249020ea Merge branch 'MDL-72486-unproxied-logging' of https://github.com/brendanheywood/moodle 2022-06-21 19:23:06 +01:00
Jun Pataleta 8059552597 Merge branch 'MDL-73212' of https://github.com/stronk7/moodle 2022-06-21 23:50:51 +08:00
Eloy Lafuente (stronk7) b4a86ff674 MDL-73212 gha: Allow parameters to be passed via secret
We are disabling the -v (verbose) option, used by default. Still,
now we support a secret (that can be added to everyone's repository)
to accept any PHPUnit's command line options and run the tests with
them.

Some examples:

phpunit_options = -v (to keep the verbose option enabled)
phpunit_options = --testdox (to print information about every test...)

... (basically anything supported by the CLI).

Also, we are raising here the environment from Ubuntu 18.04 to 20.04

(self tested by GHA, heh)
2022-06-21 16:54:13 +02:00
Rodrigo Mady da Silva 62bee73724 MDL-74826 tool_mobile: Add reportbuilder option in disabledfeatures 2022-06-21 11:30:49 -03:00
Shamim Rezaie 3d5ad1c391 MDL-75028 theme_boost: fix the inline edit tooltip for RTL 2022-06-21 17:30:26 +10:00
Jun Pataleta 767a1e74be MDL-74812 gradingform_rubric: Add radiogroup role properly
Do not add the radiogroup role to the rubric criterion when the rubric
table is being displayed on edit or preview modes.
2022-06-21 12:24:42 +08:00
Jun Pataleta 0999f65f71 Merge branch 'MDL-74630-master' of https://github.com/aanabit/moodle 2022-06-21 10:12:33 +08:00
Tomo Tsuyuki bd6fdd70d6 MDL-74623 mod_forum: Add course full name option for notification 2022-06-21 11:28:44 +10:00
AMOS bot 0e57e16eba Automatically generated installer lang files 2022-06-21 00:09:45 +00:00
Jun Pataleta cf77cd6665 MDL-74812 gradingform_rubric: Fix text overlap in rubric levels 2022-06-21 00:23:29 +08:00
Jun Pataleta b912f84d5f MDL-74812 gradingform_rubric: Do not use deprecated width attribute
Use inline CSS style to define level width instead.
2022-06-20 22:53:30 +08:00
Jun Pataleta 4ff4ce32e2 MDL-74812 mod_assign: Remove duplicate ID intro 2022-06-20 22:53:30 +08:00
Jun Pataleta 09410d2f91 Merge branch 'MDL-74715' of https://github.com/paulholden/moodle 2022-06-20 21:57:39 +08:00
Daniil Fajnberg 11dbde1294 MDL-73498 mod_lti: iframe allowed domain fixed 2022-06-20 15:53:45 +02:00
Paul Holden f961443652 MDL-74715 reportbuilder: switch event for adding filters/conditions.
Switch the select element event listener to that provided by custom
events helper, for adding report filters and conditions. This improves
cross-platform support.
2022-06-20 09:09:10 +01:00
Jun Pataleta 240d7f6054 Merge branch 'MDL-74358' of https://github.com/stronk7/moodle 2022-06-20 14:40:07 +08:00
Jun Pataleta 9182cb11c7 Merge branch 'MDL-74716-master' of https://github.com/aanabit/moodle 2022-06-20 10:25:20 +08:00
Brendan Heywood 9fa26ed911 MDL-72486 core: Add unsafe log and fix options to proxy settings 2022-06-20 11:18:42 +10:00
Jun Pataleta a966a04e3b MDL-74812 gradingform_rubric: Fix contrast issues in rubric table
* Darken the score value using the green theme colour
* Use a light green theme colour for selection backgrounds
* Unify rubric styles related to background and text colour within the
  criteria.
2022-06-18 00:56:44 +08:00
Ilya Tregubov 70fb867346 Merge branch 'MDL-74694' of https://github.com/paulholden/moodle 2022-06-17 15:07:04 +04:00
Paul Holden 3eeaf49c8c MDL-69939 webservice: correct AJAX bool value in services definition. 2022-06-17 11:03:47 +01:00
Paul Holden e9135d6708 MDL-74314 grade: use repeatable form elements for grade letters. 2022-06-17 10:48:26 +01:00
Eloy Lafuente (stronk7) ed0913d45b MDL-74358 availability: Avoid php8 problem with array_values(null) 2022-06-17 11:09:46 +02:00
Ilya Tregubov be63f1c2ed Merge branch 'MDL-74296-master' of https://github.com/call-learning/moodle 2022-06-17 12:54:38 +04:00
Mikhail Golenkov e4784db136 MDL-71468 assignfeedback_editpdf: Convert submissions via adhoc tasks 2022-06-17 18:04:17 +10:00
Jun Pataleta b81fb00f25 weekly release 4.1dev 2022-06-17 15:30:26 +08:00
Eloy Lafuente (stronk7) 2231b73953 Merge branch 'MDL-72324-master-fix' of https://github.com/junpataleta/moodle 2022-06-17 08:38:30 +02:00
Jun Pataleta fb0d963562 MDL-72324 core: Add upgrade.txt note about $plugin->incompatible 2022-06-17 10:33:49 +08:00
Jun Pataleta 19c6eccf47 Merge branch 'MDL-74529' of https://github.com/paulholden/moodle 2022-06-17 10:17:12 +08:00
Jun Pataleta 8f947b8ebd Merge branch 'MDL-74533-master' of https://github.com/BruceGoodGuy/moodle 2022-06-17 10:17:12 +08:00
Jun Pataleta efbb07aeb6 Merge branch 'MDL-72555-master' of https://github.com/laurentdavid/moodle 2022-06-17 10:17:11 +08:00
Simey Lameze b20cca2690 MDL-72292 core: add param type and polishing 2022-06-17 09:50:38 +08:00
Alexander Bias 8583feb724 MDL-72292 core: Check if fulldir is set when loading renamed classes 2022-06-17 09:41:07 +08:00
Ferran Recio 31b4535695 MDL-74716 core_my: Fix My course user tour for admins 2022-06-16 19:10:33 +02:00
Paul Holden 53c8802545 MDL-74988 core: reset times for entire filearea in upgrade test.
The previous code was resetting timestamps for only the file itself,
which could lead to it having an earlier time than the root entry of
it's filearea.

This caused sporadic test failures when the current time ticked over
by a second during execution.
2022-06-16 10:50:06 +01:00
Paul Holden 240085fd1d MDL-74287 forms: request changesmade string as required.
Unconditionally requesting the string was triggering exceptions
during installation, before the required external functions had
been populated.
2022-06-16 08:07:51 +01:00
Paul Holden 5388f91fe2 MDL-74287 media_videojs: skip dynamic loader during install/upgrade. 2022-06-16 08:07:51 +01:00
Jake Dallimore 0d6759dad0 MDL-74691 enrol_lti: add coverage of lti-ags claim variations to service
This test verifies how the service handles changes in the lti-ags claim
sent over several launches - ensuring the claim data is updated each
time.
2022-06-16 14:55:09 +08:00
Jun Pataleta ed2e6a9fa8 MDL-74742 course: Use primary colour for Add button labels
Use the primary colour for the text inside the "Add a block" and
"Add an activity or resource" buttons.
2022-06-16 14:24:54 +08:00
Jake Dallimore f714c61b82 MDL-74691 enrol_lti: allow omission of lineitems property in ags claim
The claim is valid with either or both of the URLs, so long as there's
at least one.
2022-06-16 12:50:42 +08:00
Michael Milette 416527fd73 MDL-73156 user: Custom user profile field names now filtered. 2022-06-15 11:48:50 -04:00
Jun Pataleta 5b6d6ffc36 Merge branch 'MDL-74565' of https://github.com/paulholden/moodle 2022-06-15 23:21:52 +08:00
Jun Pataleta b184248c47 Merge branch 'MDL-72324-incompatible-check' of https://github.com/Peterburnett/moodle 2022-06-15 23:04:30 +08:00
Jun Pataleta b0da5072f6 Merge branch 'MDL-72699' of https://github.com/paulholden/moodle 2022-06-15 22:53:22 +08:00
Ilya Tregubov 85463a83f6 Merge branch 'MDL-73726' of https://github.com/paulholden/moodle 2022-06-15 14:36:16 +04:00
Jun Pataleta dfca2aad61 Merge branch 'MDL-73966' of https://github.com/paulholden/moodle 2022-06-15 18:06:30 +08:00
Paul Holden b6f4ec679f MDL-72699 course: link to profile of user who requested course. 2022-06-15 10:57:50 +01:00
Jun Pataleta c6d752bb83 Merge branch 'MDL-74871' of https://github.com/paulholden/moodle 2022-06-15 17:16:57 +08:00
Mihail Geshoski 4ef7fc3895 MDL-67347 lang: Final removal of deprecated strings in 3.9 2022-06-15 16:46:16 +08:00
Jun Pataleta c3d4845de2 Merge branch 'MDL-74634' of https://github.com/paulholden/moodle 2022-06-15 16:42:21 +08:00
Jun Pataleta 985fd305c6 Merge branch 'MDL-73293-patch' of https://github.com/ilyatregubov/moodle 2022-06-15 15:48:59 +08:00
Ilya Tregubov 41cf7a58f1 MDL-73293 core_task: patch for undefined propety. 2022-06-15 11:31:31 +04:00
Bas Brands dde7d102e9 MDL-74929 mod_assign: remove incorrect closing </div> 2022-06-15 09:00:31 +02:00
Jun Pataleta 1776903721 Merge branch 'MDL-73110' of https://github.com/paulholden/moodle 2022-06-15 14:36:36 +08:00
Jun Pataleta 86676d6811 Merge branch 'MDL-72184' of https://github.com/paulholden/moodle 2022-06-15 10:27:56 +08:00
Jun Pataleta 9eafcc2b41 Merge branch 'MDL-73236-M41v2' of https://github.com/sbourget/moodle 2022-06-15 10:23:57 +08:00
Stephen Bourget 407c950573 MDL-73236 block_myprofile: add idnumber support 2022-06-14 15:36:19 -04:00
Paul Holden e0b0908ba9 MDL-74713 admin: format custom profile fields in identify config. 2022-06-14 17:19:39 +01:00
Jun Pataleta 21cb1ff330 Merge branch 'MDL-74790' of https://github.com/paulholden/moodle 2022-06-14 22:54:08 +08:00
Amaia Anabitarte 2c010bbd7b MDL-74716 course: Add Request a course link to My courses 2022-06-14 16:53:38 +02:00
Jun Pataleta 9343c046bd Merge branch 'MDL-74573-master' of https://github.com/aya-saad1/moodle 2022-06-14 22:37:08 +08:00
Jun Pataleta cf4b1e169a Merge branch 'MDL-74649' of https://github.com/paulholden/moodle 2022-06-14 22:27:16 +08:00
Sara Arjona 87226f0ff7 Merge branch 'master-MDL-74234-v2' of https://github.com/golenkovm/moodle 2022-06-14 15:38:56 +02:00
Sara Arjona fe08655918 Merge branch 'MDL-73842' of https://github.com/paulholden/moodle 2022-06-14 15:19:55 +02:00
Marina Glancy d6540ddfda MDL-74972 core_form: frozen autocomplete element does not display values 2022-06-14 13:27:01 +02:00
Víctor Déniz d7f6af48d4 Merge branch 'MDL-74526-master' of https://github.com/devlionco/moodle 2022-06-14 10:12:19 +01:00
Mikhail Golenkov 6684ca3da7 MDL-74234 assign: Fix grading page for filtered out users 2022-06-14 19:04:06 +10:00
Víctor Déniz 5481e7999c Merge branch 'MDL-74449' of https://github.com/stronk7/moodle 2022-06-14 10:03:22 +01:00
Laurent David 34fc0fa049 MDL-72555 block_site_main_menu: Fix activity chooser issue
* When adding the block_site_main_menu on every page, the activity chooser generated
for this entire page is set with courseid = 1. So any activity is then added to the
home page instead of a course.
2022-06-14 10:06:34 +02:00
Jun Pataleta 10cbe48350 Merge branch 'MDL-74816-master' of https://github.com/dpalou/moodle 2022-06-14 14:03:51 +08:00
Jun Pataleta 586f79f15b Merge branch 'MDL-74597' of https://github.com/paulholden/moodle 2022-06-14 12:55:03 +08:00
Paul Holden e1fefe2e14 MDL-74597 themes: remove pix icon references from custom menu items.
Support for them was removed in 8c336899, however existing config
remained that would lead to bogus URLs in custom user menu items.
2022-06-13 21:43:28 +01:00
Ilya Tregubov 6b1122b0ae Merge branch 'MDL-74453-master' of https://github.com/dravek/moodle 2022-06-13 15:03:42 +04:00
Jun Pataleta 0e853ae535 Merge branch 'MDL-74455' of https://github.com/paulholden/moodle 2022-06-13 17:20:39 +08:00
Ilya Tregubov 7512a808e1 Merge branch 'MDL-74628' of https://github.com/paulholden/moodle 2022-06-13 10:55:34 +04:00
Ilya Tregubov 9932acd6b3 Merge branch 'MDL-73293-master' of https://github.com/cameron1729/moodle 2022-06-13 09:50:13 +04:00
Jake Dallimore 49cb3cbbef Merge branch 'MDL_74310_master' of https://github.com/cengage/moodle 2022-06-13 11:45:55 +08:00
Jake Dallimore ce691018db Merge branch 'MDL69756_master' of https://github.com/Amrita1991/moodle 2022-06-13 11:12:16 +08:00
Jake Dallimore b76dbf7d73 Merge branch 'MDL-74718-master' of https://github.com/sharidas/moodle 2022-06-13 10:53:03 +08:00
Huong Nguyen 47c6c30178 MDL-74701 core: Fix popover elements are focusable even when hidden 2022-06-13 09:44:55 +07:00
Paul Holden f70fc89217 MDL-74565 gradereport_grader: define capability required for editing. 2022-06-12 20:04:28 +01:00
Paul Holden 47d119945d MDL-74634 theme_boost: remove old drawer-open-nav user preference. 2022-06-12 20:01:23 +01:00
Paul Holden 9ebd801c07 MDL-73842 reportbuilder: add tags elements to course/user entities.
Both entities define columns and filters for related tags (referred
to as "interests" for users).

Create new generic tags filter type to facilitate this, which can be
re-used by any entities for components which support tagging.
2022-06-12 19:53:24 +01:00
Paul Holden a1ba5c5f53 MDL-74694 reportbuilder: unit test coverage of external exporters. 2022-06-12 19:46:39 +01:00
Paul Holden 07d4be70f8 MDL-74694 reportbuilder: standardize report exporter boolean values.
Specify boolean properties as such, avoid direct interpolation into
templates.
2022-06-12 19:46:39 +01:00
Paul Holden f9b4611156 MDL-72184 reportbuilder: make use of new methods moved to drivers. 2022-06-12 19:31:34 +01:00
Paul Holden 27f9929b52 MDL-72184 dml: implement driver methods for casting to char. 2022-06-12 19:31:34 +01:00
Ilya Dymshits 68121af5c6 MDL-74526 theme: remove icon from empty categories in RTL languages 2022-06-12 10:40:29 +03:00
Eloy Lafuente (stronk7) e0d79c8e71 MDL-74449 gradebook: Protect flatten_dependencies_array() a little bit
It has been detected that the flatten_dependencies_array() was fragile
and leading to wrong results when some incorrect data was passed to it.

This includes:

- Missing elements.
- Null dependencies.
- Non array dependencies.

While the existing behaviour (testing-wise) has been preserved, now the
situations above are better controlled and the function ignores all
those incorrect cases that shouldn't happen ever.

That implies that a good number of notices/warnings/errors aren't
happening anymore. That was impacting both results (when the problems
were  only notices and warnings) and execution (when the problems
were errors).

Covered with tests.
2022-06-10 18:17:53 +02:00
Laurent David 48d5ef1c93 MDL-74296 mod_bigbluebuttonbn: Fix completion indicator
* Completion view should work out of the box
* Patch the _user_outline and _user_complete so it works with completion view, while
implementing something better in MDL-74468
2022-06-10 18:05:27 +02:00
Sara Arjona ca583bddaf weekly release 4.1dev 2022-06-10 17:08:15 +02:00
Sara Arjona 331aa38101 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-06-10 17:08:11 +02:00
Amrita a3226cf290 MDL-74387 url: exception for php to correct icon 2022-06-10 15:53:10 +02:00
Jun Pataleta 4bcd61f618 MDL-74802 core: Remove tooltip on the notification close button
Reverting the addition of a Boostrap tooltip on the alert notification's
close button. It introduced a bug where the tooltip remains after
dismissing the notification alert. We can manually toggle the state of
the tooltip via JS, but I don't think it's worth the effort. The tooltip
is meant as an added bonus for sighted users to see what the close
button is about.
2022-06-10 13:12:35 +02:00
Jun Pataleta bfa2c03191 MDL-74802 core_user: Use button label to close notification alert
With the notification alert's close button now properly labelled, it is
better for Behat to interact on it using its label.
2022-06-10 13:12:35 +02:00
Shamim Rezaie 0d61bf1b87 Merge branch 'MDL-73693' of https://github.com/paulholden/moodle 2022-06-10 13:12:35 +02:00
Andrew Nicols 5aae67880d MDL-73013 filelib: Fix code lint 2022-06-10 13:12:35 +02:00
Andrew Nicols 0b305d9330 MDL-73013 filelib: Address coding style violations 2022-06-10 13:12:35 +02:00
Andrew Nicols 90fb816444 Merge branch 'MDL-73013' of https://github.com/paulholden/moodle 2022-06-10 13:12:35 +02:00
Jake Dallimore 77b8c72bed Merge branch 'MDL-72377' of https://github.com/paulholden/moodle 2022-06-10 13:12:34 +02:00
Shamim Rezaie dea18d2f47 Merge branch 'MDL-73916-master' of https://github.com/dravek/moodle 2022-06-10 13:12:33 +02:00
Shamim Rezaie 34a78332ca Merge branch 'MDL-74495-feedback-on-manual-grading' of https://github.com/PhilippImhof/moodle 2022-06-10 13:12:12 +02:00
Andrew Nicols efb5c089c6 Merge branch 'MDL-73466' of https://github.com/paulholden/moodle 2022-06-10 13:12:12 +02:00
Andrew Nicols 4a6966dd45 Merge branch 'MDL-74553-master' of https://github.com/marinaglancy/moodle 2022-06-10 13:12:12 +02:00
Andrew Nicols 14655fdc74 Merge branch 'MDL-74764-master' of https://github.com/BruceGoodGuy/moodle 2022-06-10 13:12:11 +02:00
Víctor Déniz bff506ef6b Merge branch 'MDL-69970_master' of https://github.com/aya-saad1/moodle 2022-06-10 13:12:11 +02:00
Sara Arjona c46ab4ef04 Merge branch 'MDL-74095_upgrade-adobb-to-5-22' of https://github.com/ziegenberg/moodle 2022-06-10 13:12:11 +02:00
Sara Arjona bb5831c623 Merge branch 'MDL-74733-master' of https://github.com/sammarshallou/moodle 2022-06-10 13:12:10 +02:00
Sara Arjona 9acbbe11d1 Merge branch 'MDL-74802-master-2' of https://github.com/junpataleta/moodle 2022-06-10 13:11:52 +02:00
Sara Arjona ef9368967f Merge branch 'MDL-74577-master' of https://github.com/sharidas/moodle 2022-06-10 13:11:52 +02:00
Sara Arjona 67237e7d94 Merge branch 'MDL-74327' of https://github.com/paulholden/moodle 2022-06-10 13:11:52 +02:00
Ilya Tregubov bdd9ff353b Merge branch 'MDL-74192' of https://github.com/paulholden/moodle 2022-06-10 13:11:50 +02:00
Ilya Tregubov d5c8f25470 Merge branch 'MDL-74147' of https://github.com/paulholden/moodle 2022-06-10 13:11:25 +02:00
Jun Pataleta 545d848064 Merge branch 'MDL-72193' of https://github.com/paulholden/moodle 2022-06-10 13:11:25 +02:00
Angelia Dela Cruz 9bdbfeb44f MDL-74841 behat: Label behat generators use UI
Replace steps that manually add Label instances via the UI and use
Behat generators. This improves the speed of Behat test runs.
2022-06-10 13:01:03 +08:00
Paul Holden 3d7c732b36 MDL-74649 course: render scale information using page popup layout. 2022-06-09 12:18:45 +01:00
Jake Dallimore a611b8d296 MDL-74906 mod_lti: fix form selector in multi-item content item post
Use #region-main-box and not .mform in the selector, otherwise it may
return the wrong mform, such as global search, if enabled. This is the
same way the form is selected in showMultipleSummaryAndHideForm().
2022-06-09 16:52:36 +08:00
Paul Holden d91df53d63 MDL-74408 core: exclude empty patterns in divert email config. 2022-06-09 09:39:17 +01:00
Sujith Haridasan 3ad2833dd9 MDL-74718 webdav: correct the loop when reading chunks
Adjusted the condition while reading the streams
in chunks. Read till the end to make sure we have got all
the data. Else we might not get all the data to show
in file picker.
2022-06-09 12:02:34 +05:30
Cameron Ball cd1a7291ea MDL-73293 core_task: Cleanup stale adhoc task metadata 2022-06-09 14:15:37 +08:00
Paul Holden 3642b6d65d MDL-73466 forumreport_summary: use formatted course module name. 2022-06-08 21:37:05 +01:00
Paul Holden 1cd65d696f MDL-74455 filter_multilang: add text labels for plugin settings.
AMOS BEGIN
 MOV [multilangforceold,core_admin],[forceoldsyntax_desc,filter_multilang]
AMOS END
2022-06-08 18:52:12 +01:00
Daniel Ziegenberg bfe70c09f9 MDL-74095 lib: Upgrade ADODB to 5.22.2
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-06-08 18:18:47 +02:00
sam marshall 96e2caeaa2 MDL-74733 core_navigation: Secondary nav in plugins, change namespace
Secondary nav previously had to be in my_plugin\local\views\secondary; this
location continues to work but is deprecated. The new location is
my_plugin\navigation\views\secondary.
2022-06-08 15:40:44 +01:00
Paul Holden 432fbbc81a MDL-74327 calendar: format event location property if it's a URL. 2022-06-08 10:44:39 +01:00
Víctor Déniz 90f2c3fe50 Merge branch 'MDL-73774-master' of https://github.com/HuongNV13/moodle 2022-06-08 10:14:31 +01:00
Víctor Déniz fb578bb59c Merge branch 'MDL-74726-master' of https://github.com/ssj365/moodle 2022-06-08 09:59:07 +01:00
Daniel Ziegenberg e2d788f617 MDL-63594 core: Final deprecation of CLI script from admin/tool/task/cli
Following MDL-63580 this now finally deprecates and removes the class
\tool_task\run_from_cli, please use \core\task\manager.

Following MDL-63580 this now finally deprecates and removes
 - admin/tool/task/cli/schedule_task.php, use admin/cli/scheduled_task.php
 - admin/tool/task/cli/adhoc_task.php, use admin/cli/adhoc_task.php

Also mentions and references to the old CLI scripts are updated to
point to the new counterparts.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-06-08 10:55:30 +02:00
Daniel Ziegenberg 1b28ca2520 MDL-63594 core: Final deprecation and removal of cron_run_single_task()
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-06-08 10:54:46 +02:00
Sara Arjona 0249e4046f Merge branch 'MDL-74182-master' of https://github.com/ericmerrill/moodle 2022-06-08 10:41:48 +02:00
gthomas2 7d8fef801a MDL-74922 javascript: storragewrapper validateCache fix 2022-06-08 09:34:53 +01:00
Adam Olley 3fc9e345d0 MDL-74886 core_admin: Add unit test
Simple unit test to verify we don't get the TypeError anymore.
2022-06-08 10:06:23 +08:00
Simey Lameze 91acfa2b50 MDL-74886 core_admin: cast value and unit to integer 2022-06-08 10:06:22 +08:00
Peter Burnett 3a33d05710 MDL-72324 upgrade: Fix incompatible check in upgrade to match docs 2022-06-08 10:49:37 +10:00
AMOS bot 5c2a0288d2 Automatically generated installer lang files 2022-06-08 00:08:20 +00:00
Sara Arjona c6cca5f1fe Merge branch 'MDL-74605' of https://github.com/paulholden/moodle 2022-06-07 17:20:41 +02:00
Sara Arjona 47097ae519 Merge branch 'MDL-74678' of https://github.com/lostrogit/moodle 2022-06-07 17:01:18 +02:00
Sara Arjona 52c88dc744 Merge branch 'MDL-74344' of https://github.com/paulholden/moodle 2022-06-07 16:51:46 +02:00
Sara Arjona d0f6f52b68 Merge branch 'MDL-74710-master' of https://github.com/ilyatregubov/moodle 2022-06-07 16:25:26 +02:00
Sara Arjona 8967de58b5 Merge branch 'MDL-72983' of https://github.com/paulholden/moodle 2022-06-07 16:08:08 +02:00
Alexey 25b5125187 MDL-74522 lib/classes/navigation fix Navbar My courses data-key value 2022-06-07 16:29:31 +03:00
Ilya Tregubov 2666976929 Merge branch 'MDL-74760' of https://github.com/timhunt/moodle 2022-06-07 16:34:26 +04:00
Tim Hunt 6c161f3b99 MDL-74760 activity web services: refactor duplicate code 2022-06-07 12:53:34 +01:00
Paul Holden 81474399b1 MDL-74628 forumreport_summary: remove left margin of filter popover. 2022-06-07 11:08:44 +01:00
Paul Holden 6caee96d21 MDL-74529 theme_boost: accessible autolink styles from filters.
The `autolink` class is used by various filter types to create
hyperlinks within text. Extend existing `aalink` class so they
behave in the same way.
2022-06-07 10:58:03 +01:00
Huong Nguyen e29cbbc715 MDL-73774 timeline: Prevent ID duplication 2022-06-07 11:47:49 +07:00
Shamim Rezaie 8621fd2d67 Merge branch 'MDL-74720' of https://github.com/lostrogit/moodle 2022-06-07 14:30:19 +10:00
Jun Pataleta e0d799b2d7 Merge branch 'MDL-70223_master' of https://github.com/aya-saad1/moodle 2022-06-07 10:29:55 +08:00
AMOS bot 6f50af18cf Automatically generated installer lang files 2022-06-07 00:08:16 +00:00
Paul Holden 9394d5618d MDL-74871 user: account for absense of identity fields during export. 2022-06-06 21:10:42 +01:00
Paul Holden 0a9d31e988 MDL-72983 tool_dataprivacy: respect capability to export own data. 2022-06-06 20:50:32 +01:00
Paul Holden 3596fc1fe6 MDL-72377 grade: fix category form hidden/until fields.
Ensure the saved values for the hidden and hidden until fields are
populated when editing a grade category. Fix behaviour on enabling
the hidden until field.

Re-enable tests commented out in eba1d32c.
2022-06-06 15:31:03 +01:00
Paul Holden 67b15496c3 MDL-72377 grade: increase size of category hidden fields.
As well as storing 1/0 to indicate hidden state, they are also used
to store a timestamp indicating hidden until date. Increasing field
size allows these values to be stored without triggering exceptions.
2022-06-06 15:31:02 +01:00
Paul Holden 47f9106c42 MDL-73121 atto_managefiles: match used files enclosed by quotes. 2022-06-06 15:17:20 +01:00
Carlos Castillo 04f0152a91 MDL-74720 reportbuilder: Limiting the number of custom reports 2022-06-06 08:57:13 -05:00
Ilya Tregubov a1f60915d4 Merge branch 'MDL-74599' of https://github.com/paulholden/moodle 2022-06-06 15:48:21 +06:00
Paul Holden 72286f9296 MDL-73726 reportbuilder: restrict schedule formats to enabled types. 2022-06-06 09:32:36 +01:00
Paul Holden 473ac1285e MDL-73726 dataformat: obey sort order when returning enabled plugins. 2022-06-06 09:32:36 +01:00
Paul Holden 9ec385a533 MDL-73693 reportbuilder: report filter by specific user. 2022-06-06 09:12:56 +01:00
Ilya Tregubov 3a9b097f5c Merge branch 'MDL-74600' of https://github.com/paulholden/moodle 2022-06-06 12:52:16 +06:00
Ilya Tregubov 07c145cb53 Merge branch 'MDL-69951-remove_drop-font-tags' of https://github.com/leonstr/moodle 2022-06-06 11:11:07 +06:00
Dat Nguyen d49d3cbb75 MDL-74061 blocks_completion: Adding time in completion progress details 2022-06-06 05:33:23 +01:00
aya.saad fd79cbe849 MDL-74573 mod_assign: convert view other attempt link to a button 2022-06-05 09:22:21 +02:00
aya.saad ec1e17a73b MDL-70223 h5p: fix invalid id when adding h5p activity 2022-06-05 09:20:16 +02:00
aya.saad 8636718cee MDL-69970 icons: flip help icon direction in RTL languages 2022-06-05 09:18:26 +02:00
Marina Glancy e3bd0f7348 MDL-29717 core_webservice: Display deprecated badge in API docs 2022-06-03 16:17:47 +02:00
Shamim Rezaie 3b72e759ab Merge branch 'MDL-74250-master' of https://github.com/adpe/moodle 2022-06-03 18:42:13 +10:00
David Matamoros c6777c9cbf MDL-73916 reportbuilder: Allow to set default condition values
- Changes on datasource class to allow to set default condition values
- Added default condition 'suspended' set to 'no' on users datasource
2022-06-03 08:43:46 +02:00
David Matamoros 669e71b956 MDL-74453 reportbuilder: Add authentication method filter
- Add authentication method filter to the user entity
2022-06-03 08:40:06 +02:00
Andrew Nicols 70c7443d80 Merge branch 'MDL-73302-master' of https://github.com/dravek/moodle 2022-06-03 13:34:32 +08:00
Andrew Nicols 15e7c8d1b3 Merge branch 'MDL-73898' of https://github.com/paulholden/moodle 2022-06-03 13:30:50 +08:00
Shamim Rezaie a239d8e182 Merge branch 'MDL-74699-master' of https://github.com/snake/moodle 2022-06-03 14:45:30 +10:00
Andrew Nicols 5500d143f4 weekly release 4.1dev 2022-06-03 11:03:56 +08:00
Andrew Nicols e48e95f298 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-06-03 11:03:53 +08:00
AMOS bot d7d1c27df0 Automatically generated installer lang files 2022-06-03 00:08:12 +00:00
Jun Pataleta 7038d731eb Merge branch 'MDL-66453-fix' of https://github.com/sarjona/moodle 2022-06-02 22:39:20 +08:00
Sara Arjona cbf878cce4 MDL-66453 uploadusers: Fix behat with classic
This patch fixes the behat failures with classic for the scenario
"Upload users enrolling them on courses and assign category roles".

There is a "Participants" link hidden in the "Site pages" which is
causing these failures.
Apart from this, there was another issue because it was not possible
to navigation with classic (I've added one extra step to visit homepage).
2022-06-02 16:24:05 +02:00
Jun Pataleta 7a87871c25 MDL-70870 search_simpledb: Sort search queries via doc ID 2022-06-02 20:26:23 +08:00
Jun Pataleta e0eef1245d Merge branch 'MDL-74631-invalid-tag' of https://github.com/leonstr/moodle 2022-06-02 12:20:16 +08:00
Jun Pataleta 3c69b2a7a6 Merge branch 'MDL-57065-master' of https://github.com/ferranrecio/moodle 2022-06-02 12:03:10 +08:00
Jun Pataleta 913db0ba05 Merge branch 'MDL-71301-master' of https://github.com/junpataleta/moodle 2022-06-02 11:23:22 +08:00
Issam Taboubi 5ff0eb05b6 MDL-71301 qtype_gapselect: Make blank answer box labels more meaningful 2022-06-02 10:46:23 +08:00
Jun Pataleta 584ea5b075 Merge branch 'MDL-67966-master' of https://github.com/junpataleta/moodle 2022-06-02 10:29:43 +08:00
Joshua Ebarvia d5059795c9 MDL-67966 mod_workshop: Use condition to verify form is using editor
This adds a condition to check if Online text is used
for the submission. The functions file_postupdate_standard_editor
and file_postupdate_standard_filemanager needs the property
content_editor of the formdata.
2022-06-02 10:27:41 +08:00
Andrew Nicols fd376582ac Merge branch 'MDL-66453' of https://github.com/dmitriim/moodle 2022-06-02 08:45:03 +08:00
Dmitrii Metelkin 4e353e4812 MDL-66453 uploaduser: Bulk assign roles in course categories 2022-06-02 09:42:17 +10:00
Sara Arjona 27ae31da6a Merge branch 'MDL-71276' of https://github.com/paulholden/moodle 2022-06-01 18:37:43 +02:00
Andrew Nicols 270f466ef5 Merge branch 'MDL-72458' of https://github.com/paulholden/moodle 2022-06-01 23:54:44 +08:00
Sara Arjona 91cc136f3d Merge branch 'MDL-74752' of https://github.com/timhunt/moodle 2022-06-01 17:05:11 +02:00
Tim Hunt aed6de5238 MDL-74752 qtype_match: fix regrading logic - take 2 2022-06-01 14:23:29 +01:00
Sara Arjona df71afbfe9 Merge branch 'MDL-73727-master' of https://github.com/keevan/moodle 2022-06-01 08:41:36 +02:00
Jun Pataleta 468de2da07 Merge branch 'MDL-73767-master_clever_oauth2' of https://github.com/rnathuji/moodle 2022-06-01 11:43:00 +08:00
Ripal Nathuji 79ae21c23f MDL-73767 oauth2: Add clever oauth2 client 2022-05-31 17:17:20 -05:00
Noel De Martin bbaf83322f MDL-74613 grade: Add missing generators 2022-05-31 17:59:52 +02:00
Sara Arjona 3e0b340873 Merge branch 'MDL-74752' of https://github.com/timhunt/moodle 2022-05-31 17:39:03 +02:00
Sara Arjona 7d317cdc5d Merge branch 'MDL-73988' of https://github.com/paulholden/moodle 2022-05-31 17:04:23 +02:00
Tim Hunt 314b90d1f5 MDL-74752 qtype_multianswer: implement regrading hooks 2022-05-31 09:22:22 +01:00
Tim Hunt 8ca7e3b74c MDL-74752 qtypes gapselect & ddwtos: implement regrading hooks 2022-05-31 09:22:22 +01:00
Tim Hunt 823b5bb740 MDL-74752 qtype_match: implement regrading hooks
As much as they can be before MDL-5560 is addressed.
2022-05-31 09:22:22 +01:00
Tim Hunt e230bfa47f MDL-74752 qtype_multichoice: fix regrading logic
The implements the new regrade-related hooks, and also has
tests for the changes to the core system, now that we have a question
type we can use for them.
2022-05-31 09:22:22 +01:00
Tim Hunt 39abc01197 MDL-74752 question regrading: implement the required hooks
This commit implements the necessary core hooks to ensure we only
allow a regrade of a quetion attempt to take place if the new and old
versions of the question are sufficiently similar.

It will be followed by commits to each question type where the
new method needs to be implemented.

Automated tests will be included in the first of those (mulitple choice)
becuse we need a question type that implements the hooks to test
the core changes.
2022-05-31 09:22:22 +01:00
Jun Pataleta 36fdc00e71 Merge branch 'MDL-70870_master' of https://github.com/cbluesprl/moodle 2022-05-31 15:18:02 +08:00
Jun Pataleta f0b6e8ecd8 Merge branch 'MDL-73654-master' of https://github.com/HuongNV13/moodle 2022-05-31 13:34:35 +08:00
Shamim Rezaie 39ea22ece3 Merge branch 'MDL-74675' of https://github.com/paulholden/moodle 2022-05-31 14:12:32 +10:00
Huong Nguyen 4342e774d8 MDL-73654 timeline: Improve search for course name and activity name 2022-05-31 11:05:44 +07:00
Shamim Rezaie bd8dbf4c21 Merge branch 'MDL-72723-select-exists-not-count' of https://github.com/keevan/moodle 2022-05-31 12:57:16 +10:00
AMOS bot 39140fe80a Automatically generated installer lang files 2022-05-31 00:08:14 +00:00
Tim Hunt 2069c8d480 MDL-74883 question: fix question_attempt_step_subquestion_adapter typos
During the late stages of developing MDL-20636, some key concepts
in the code got renamed. However, at the time, this class was not
updated properly so updating it now.
2022-05-30 16:10:03 +01:00
Jun Pataleta cebc4c8855 Merge branch 'MDL-73431-master-v2' of https://github.com/dmitriim/moodle 2022-05-30 16:25:10 +08:00
Renaud Lemaire 1ecce127be MDL-70870 core_search: db indexes optimization 2022-05-30 09:09:59 +02:00
Dmitrii Metelkin a6cad23b1a MDL-73431 enrol: Introduce a sync interval 2022-05-30 15:58:22 +10:00
Kevin Pham f984566b15 MDL-73727 core_files: Add subquery to avoid a seq scan on larger sites
- Formatted the query to meet SQL coding styles
- Add index on {files} to prevent performance regression
- Fork the SQL query based on DB family based on support
2022-05-30 13:38:45 +10:00
Huong Nguyen bb5365b6dd MDL-74632 atto_link: Fix cannot create a link for an image 2022-05-30 10:23:47 +07:00
Nathan Mares 1da1152baa MDL-72723 logs: Add get_events_select_exists to the sql_reader interface
- Updates to log stores and backup helper to improve performance when
  checking if a course has been modified.
- This is a breaking change as it adds a new function on the sql_reader
  interface.

Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
2022-05-30 10:42:47 +10:00
AMOS bot 3bbe71bdb3 Automatically generated installer lang files 2022-05-30 00:08:09 +00:00
AMOS bot 3dca099b3d Automatically generated installer lang files 2022-05-28 00:08:19 +00:00
Jun Pataleta 67da548b48 MDL-72885 output: Add lang attribute for language menu items 2022-05-27 23:39:08 +08:00
Amrita 33e5db9043 MDL-69756 nextcloud: copy-overwrite handling 2022-05-27 14:57:27 +02:00
Jun Pataleta 326d502c5c MDL-72885 output: Add lang attribute for language custom menu items 2022-05-27 19:38:54 +08:00
Jun Pataleta d4ba0359cf MDL-72885 core: Use get_html_lang_attribute_value()
Use get_html_lang_attribute_value() for formatting language codes
for the HTML lang attribute.
2022-05-27 19:38:54 +08:00
Jun Pataleta 92e080465e MDL-72885 core: New weblib function get_html_lang_attribute_value()
Converts a language code to hyphen-separated format in accordance to the
BCP47 syntax appropriate for the HTML lang attribute.

See
https://datatracker.ietf.org/doc/html/rfc5646#section-2.1
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang
2022-05-27 19:38:54 +08:00
Jun Pataleta 3bdd840e63 MDL-72885 output: Allow additional attributes for custom menu items
* Plus don't render the link title if it's the same as the link text.
2022-05-27 19:38:54 +08:00
Ilya Tregubov 0460147cb5 Merge branch 'MDL-67648-master' of https://github.com/cameron1729/moodle 2022-05-27 15:41:29 +06:00
Leon Stringer 0cd4eadb35 MDL-73215 assign: Undefined var: plagiarismlinks
Fix: $plagiarismlinks is concatenated in return but may not have been
initialised.
2022-05-27 08:56:31 +01:00
Philipp Imhof 1c9c6c4139 MDL-74495 quiz override mark: do not hide_all_feedback 2022-05-27 08:47:25 +02:00
David Matamoros c15e04193a MDL-73302 task: Add type filter to task logs system report
Adding 'type' filter to be able to filter between Ad hoc and Scheduled
tasks
2022-05-27 08:39:35 +02:00
Adrian Perez 43847787e0 MDL-74250 core: Improve indicator that link opens in new window 2022-05-27 07:21:54 +02:00
Khoa Nguyen Dang 3987f2cb37 MDL-74764 core_course: Activity is not in alphabetical order. 2022-05-27 10:20:14 +07:00
Jake Dallimore 117b24013b weekly release 4.1dev 2022-05-27 10:02:05 +08:00
Noel De Martin df9f610d1d MDL-74220 data: Implement behat generators 2022-05-26 10:38:11 +02:00
Jake Dallimore be4352bd3e Merge branch 'MDL-73801' of https://github.com/paulholden/moodle 2022-05-26 12:10:18 +08:00
Jake Dallimore aef7c3357d Merge branch 'MDL-73386-master' of https://github.com/junpataleta/moodle 2022-05-26 11:46:59 +08:00
Jun Pataleta 9b6ad142af Merge branch 'MDL-73047_user_timecreated' of https://github.com/davosmith/moodle 2022-05-26 10:27:48 +08:00
Jun Pataleta 2814436c44 Merge branch 'MDL-71198-master' of https://github.com/junpataleta/moodle 2022-05-26 10:23:27 +08:00
Jun Pataleta dac4af8e4c Merge branch 'MDL-73183-master' of https://github.com/andrewnicols/moodle 2022-05-26 10:09:46 +08:00
Jun Pataleta e60e8bc629 Merge branch 'MDL-73423-master' of https://github.com/marinaglancy/moodle 2022-05-26 00:18:35 +08:00
Peter Burnett 3801662e97 MDL-71198 backup: Change times on restore file duplication 2022-05-25 22:18:36 +08:00
Dani Palou f6520aa4b0 MDL-74816 mod_resource: Allow specify default file name in generator 2022-05-25 10:41:03 +02:00
Jake Dallimore 0839152f03 Merge branch 'MDL-73435-master' of https://github.com/marinaglancy/moodle 2022-05-25 11:31:52 +08:00
Cameron Ball f284e446b9 MDL-67648 tasks: Add unit tests 2022-05-25 09:38:41 +08:00
Cameron Ball 8154aa2e03 MDL-67648 tasks: Fair-share scheduling with resource management
This patch changes the way adhoc tasks are chosen to run. It now calculates
how many runners each type of adhoc task should be allowed to use. In the
case that not all the runners are utilised, it attempts to infer which
tasks do not take a long time to run, and gives those to the vacant runners.

Thanks to Brendan Heywood for guidance and SQL help.
2022-05-25 09:38:41 +08:00
Paul Holden 4f644c3f39 MDL-74790 mod_resource: better detection of empty module intro. 2022-05-24 21:17:17 +01:00
Angelia Dela Cruz 8db6d451d7 MDL-74744 behat: Quiz behat generators use UI
Replace steps that manually add Quiz instances via the UI and use
Behat generators. This improves the speed of Behat test runs.
2022-05-24 10:54:26 +08:00
Jun Pataleta de177cc564 Merge branch 'MDL-72283_allow-customisation-of-redis-session-handler-errors' of https://github.com/ziegenberg/moodle 2022-05-24 10:13:04 +08:00
Daniel Ziegenberg 01309248d8 MDL-72283 caching: internationalize redis session handler error
The 'unable to obtain session lock'-exception raised by the Redis
session handler is hardcoded in English and not all that useful
to the end user.

This change adds the error message to the lang/error.php and gives
the user further hints why the error might have occured and how it
could be fixed.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-05-23 16:42:33 +02:00
Amaia Anabitarte fc4e3ee695 MDL-74630 core_contenbank: Add contextid to URL parameters 2022-05-23 12:09:14 +02:00
hieuvu 5cfaa18cad MDL-74533 core_completion: Update using new grade pass for completion 2022-05-23 15:14:12 +07:00
Jun Pataleta 69a3c6f80a Merge branch 'MDL-68668-extra-redis-debugging' of https://github.com/brendanheywood/moodle 2022-05-23 13:18:32 +08:00
Jun Pataleta 8310b2014e MDL-74802 core: Improve the accessibility of alert notifications
* Make the ordering of the message and the close button logical on
  the DOM.
* Hide the times HTML entity
* Add sr-only label on the close button for non-sighted users
* Add tooltip on the close button sighted users
* With all the notification templates being the same except for the
  class, I created a base notification template (core/notification_base)
  that alert notifications just override. This avoids code duplication
  and can make maintenance simpler.
2022-05-23 12:54:55 +08:00
Daniel Ziegenberg 46b8aecfa8 MDL-74835 ci: Update nodejs version in travis integration to lts/gallium
In MDL-73915 the nodejs version was switched to lts/gallium but the
travis integration was not updated.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2022-05-22 23:46:11 +02:00
Jun Pataleta 60fcabfa6d MDL-73386 mod_quiz: Use plain text for quiz navigation fake block title
* No need to enclose the title of the quiz navigation fake block in
a span tag. The block title also gets appended to the skip link which
means that a block title with a span tag assigned with an identifier
can cause duplicate ID errors on the DOM.
2022-05-21 00:32:38 +08:00
Brendan Heywood e032ac9303 MDL-68668 redis: Add session lock acquire warning 2022-05-20 22:41:38 +10:00
Ilya Tregubov 653011e1a0 Merge branch 'MDL-73225-master' of https://github.com/call-learning/moodle 2022-05-20 17:56:16 +06:00
Laurent David bad2e0bb54 MDL-73225 mod_bigbluebuttonbn: Improve error message when joining
Display more friendly messages when:
    * When displaying activity and the server is not available
    * When we join a meeting and the server is not available or an error is detected
2022-05-20 13:07:14 +02:00
Paul Holden c82ca19eb7 MDL-73110 report_completion: support custom user identity fields. 2022-05-20 11:24:51 +01:00
Sujith Haridasan 9812b4bbaa MDL-74577 core: Reset login_failed_count_since_success after login
When the user is logged in successfully then reset the value
of login_failed_count_since_success to zero, if the value of
login_failed_count_since_success is greater than zero.
2022-05-20 10:12:42 +05:30
Paul Holden 5274ee5a25 MDL-73988 badges: implement badges datasource for custom reporting.
Create two entities exposing reportable data on badges and their
recipients, via column and filter definitions.

Create report source bringing them together along with the user and
course entities to provide data for the reportbuilder editor.
2022-05-19 16:43:28 +01:00
Paul Holden 40c574cd74 MDL-73988 reportbuilder: support for getting entity joins in reports.
This allow reports using multiple entities to more easily define the
relationship between them, specifically when they share common joined
tables.
2022-05-19 16:35:09 +01:00
Paul Holden 03bfea07ca MDL-74599 reportbuilder: use context of current report when present. 2022-05-19 16:24:56 +01:00
Paul Holden ea45aefe62 MDL-74675 reportbuilder: preserve column type during aggregation.
When applying callbacks during the group concatenation aggregation
types, ensure the column type is preserved for it's default value.
2022-05-19 16:04:37 +01:00
Paul Holden 1e2dd85346 MDL-74600 reportbuilder: re-factor menu helper methods into exporters.
Encapsulate generation of column/audience menu card data, used in the
editor, from helper class methods to specific exporter classes.
2022-05-19 15:56:37 +01:00
Paul Holden 6d5c0190e2 MDL-74192 core: add strictness to persistent get_record method.
Allow developer to specify the given record MUST_EXIST, and the
method to throw the underlying database exception.
2022-05-19 15:21:39 +01:00
Ilya Tregubov 6c114e2a80 weekly release 4.1dev 2022-05-19 19:24:25 +06:00
Ilya Tregubov f628b178e1 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-05-19 19:24:23 +06:00
Paul Holden cf57505ce7 MDL-73801 backup: set predictably ordered backup next start time.
Prior to this change, the testcase would assert ordering based on
identical fields which could lead to random failures. Set distinct
next start time of course backup, and also remove random ordering
by sorting on defined course order (all other fields being equal).
2022-05-19 08:18:06 +01:00
Jun Pataleta b0b3b13032 Merge branch 'MDL-73163-master' of https://github.com/lameze/moodle 2022-05-19 10:11:48 +08:00
Ilya Tregubov 64d7392566 Merge branch 'MDL-74480' of https://github.com/paulholden/moodle 2022-05-19 08:05:42 +06:00
Ilya Tregubov 938e8cf5d5 Merge branch 'MDL-74165' of https://github.com/paulholden/moodle 2022-05-19 08:02:17 +06:00
Jun Pataleta 7cda6e3641 Merge branch 'MDL-74416-master' of https://github.com/lameze/moodle 2022-05-19 09:59:54 +08:00
Jun Pataleta 94e803b663 Merge branch 'MDL-73478-improve-set-config' of https://github.com/keevan/moodle 2022-05-18 23:11:06 +08:00
Jun Pataleta b83a64b466 Merge branch 'MDL-74497-fixup' of https://github.com/dravek/moodle 2022-05-18 22:04:47 +08:00
Jun Pataleta 75e1514666 Merge branch 'MDL-74377' of https://github.com/roland04/moodle 2022-05-18 21:47:54 +08:00
Mikel Martín e71b737e16 MDL-74377 reportbuilder: Fix dimmed text for dropdown items
To show inactive/unavailable rows '.dimmed_text' class usages have been replaced with '.text-muted'.
2022-05-18 13:41:40 +02:00
David Matamoros 63088862b4 MDL-74497 reportbuilder: Ensure entity report element order is kept 2022-05-18 13:19:34 +02:00
Dan Marsden b95d2b94a5 MDL-74785 mod_scorm: Add scorm content filearea to global search. 2022-05-18 19:47:44 +12:00
Ilya Tregubov 7a635606e0 MDL-72256 enrol_fee: Fix indentaion for Behat. 2022-05-18 13:13:02 +06:00
Ilya Tregubov 0829ee7a77 Merge branch 'MDL-72256' of https://github.com/danmarsden/moodle 2022-05-18 13:04:11 +06:00
Dan Marsden b51d8d9a7a MDL-72256 enrol_fee: add payment information to course/info.php 2022-05-18 18:55:29 +12:00
Jun Pataleta fa48ab35f7 Merge branch 'MDL-74497-master' of https://github.com/dravek/moodle 2022-05-18 14:36:17 +08:00
Sara Arjona 1cedbd1e19 MDL-74784 core_badges: Fix exception with related badges
System badges with related badges were displaying an error before this patch,
because the is_guest($context) function expects a context_course.
2022-05-18 08:18:33 +02:00
Jun Pataleta c3f2753df7 Merge branch 'MDL22570_master' of https://github.com/tasosb/moodle 2022-05-17 23:30:23 +08:00
Paul Holden 7d693114d1 MDL-73966 grade: fetch required user name fields of unenrolled users. 2022-05-17 16:03:01 +01:00
Jun Pataleta 216b504ff4 Merge branch 'MDL-73184' of https://github.com/roland04/moodle 2022-05-17 19:39:44 +08:00
Jun Pataleta c238370ba7 Merge branch 'MDL-74150' of https://github.com/lostrogit/moodle 2022-05-17 11:54:57 +08:00
AMOS bot afd912865f Automatically generated installer lang files 2022-05-17 00:07:42 +00:00
Carlos Castillo 3236a41c3a MDL-74150 tool_componentlibrary: Add title attribute to core/toggle 2022-05-16 11:43:55 -05:00
Paul Holden 6b6a040084 MDL-73184 reportbuilder: preserve pagesize property between requests.
Given that custom reports can now have defined pagesize properties, we
need to preserve that value in the table filterset so that it's always
available after AJAX requests.
2022-05-16 17:49:41 +02:00
Mikel Martín 0908a1bdeb MDL-73184 reportbuilder: Add default page size setting 2022-05-16 17:49:35 +02:00
Ferran Recio bfc713c37e MDL-57065 theme_boost: fix debug messages
The first debug message is covered by the top navbar header. This patch
will move the body's first debug message down below the navbar.
2022-05-16 11:19:19 +02:00
Paul Holden 28e95ef63c MDL-71276 message_email: include alternate email in privacy export. 2022-05-16 09:41:32 +01:00
Carlos Castillo 0b82e9e9b3 MDL-74678 reportbuilder: Allow null in category description callback
Since category description is a nullable column, we need to allow null
value in category description column callback in category entity
2022-05-13 08:08:37 -05:00
Paul Holden 53d6b18237 MDL-74344 comment: consistent capability check for accessing report.
Co-authored-by: David Wipperfurth <dwipperfurth@webcourseworks.com>
2022-05-13 10:31:16 +01:00
David Matamoros 5e68da7868 MDL-74497 reportbuilder: Use new methods in existing datasources
- Replace all individual calls to add all columns, filters and
conditions on the cohorts datasource with the new
method add_all_from_entities().

- Replace all individual calls to add all columns, filters and
conditions on the courses datasource with the new
method add_all_from_entities().

- Replace all individual calls to add all columns, filters and
conditions on the users datasource with the new
method add_all_from_entity().
2022-05-13 08:36:31 +02:00
David Matamoros 9a8091d550 MDL-74497 reportbuilder: Add all columns/filters/conditions at once 2022-05-13 08:36:31 +02:00
AMOS bot 9353ebdae9 Automatically generated installer lang files 2022-05-13 00:07:44 +00:00
Paul Holden 5215a02444 MDL-73013 calendar: fix serving of files added to category events. 2022-05-12 16:12:15 +01:00
Jun Pataleta 5e5e12e063 weekly release 4.1dev 2022-05-12 22:16:01 +08:00
Leon Stringer 57aabee4e8 MDL-69951 filter_tidy: Replace drop-font-tags
The option drop-font-tags was removed in HTML Tidy version 5.5.14.  It
had been deprecated since 5.1.25, the docs said "Use the clean option
instead" which is what this commit does (see
https://api.html-tidy.org/tidy/quickref_5.1.25.html#drop-font-tags).
2022-05-12 11:42:05 +01:00
Jun Pataleta eae7ec37ca Merge branch 'MDL-74413' of https://github.com/stronk7/moodle 2022-05-12 12:09:05 +08:00
Jun Pataleta aa88375db5 Merge branch 'MDL-73971' of https://github.com/stronk7/moodle 2022-05-12 11:54:43 +08:00
Jun Pataleta 9cb0f7c510 Merge branch 'MDL-73172-master' of https://github.com/NashTechOpenUniversity/moodle 2022-05-12 11:45:05 +08:00
Jake Dallimore 4b93776f4b MDL-74699 enrol_lti: fix clientid retrieval from aud during launches 2022-05-12 09:20:02 +08:00
Shamiso.Jaravaza 41f40c7d7a MDL-74726 mod_bigbluebuttonbn: Fix muteonstart
Added missing muteonstart_editable in mod_form  block condition
2022-05-11 08:29:16 -06:00
Marina Glancy ecd569f942 MDL-74553 blocks: do not refer to form fields by id
This is not compatible with the dynamic forms and random ids
2022-05-11 16:16:58 +02:00
Jun Pataleta c7ddee0890 Merge branch 'MDL-70568-cron-debugging-patch' of https://github.com/macgirvin/moodle 2022-05-11 10:43:19 +08:00
Anastasios Bithas 3df0908e72 MDL-22570 group: Export groups/groupings to ods/xls/txt
A new feature that enables teachers to export groups and
groupings through the groups overview page, making use of the dataformat api.
2022-05-11 03:00:36 +03:00
Paul Holden a95f637cfb MDL-73898 user: exclude guest user from participants table. 2022-05-10 17:21:01 +01:00
Paul Holden f8790390d0 MDL-72458 user: add timezone to user profile page. 2022-05-10 13:17:06 +01:00
Jun Pataleta 817db2b7f3 Merge branch 'MDL-74041' of https://github.com/timhunt/moodle 2022-05-10 17:59:45 +08:00
Ilya Tregubov 8de866dc3f MDL-74710 mod_bigbluebuttonbn: Fix settings url. 2022-05-10 11:11:51 +06:00
Jun Pataleta e368edfb5c Merge branch 'MDL-71202-master' of https://github.com/junpataleta/moodle 2022-05-10 12:39:27 +08:00
Pete Whelpton bc6041158c MDL-71202 webservice: Add index on external_tokens.sid
Without this index, a full table scan / table level locking occurs when
logging out of Moodle.  This can result in slow performance in a busy
Moodle site.
2022-05-10 12:31:25 +08:00
Petr Skoda d91cd20d64 MDL-74416 phpunit: fix generator counters reset 2022-05-10 07:47:46 +08:00
Kordan 84735e806d MDL-73163 behat: Changed most to must 2022-05-09 19:29:19 +08:00
Paul Holden 9085f5e28a MDL-74147 admin: support custom user profile fields selecting admins. 2022-05-09 10:14:16 +01:00
Eloy Lafuente (stronk7) caf55abf17 MDL-74413 phpunit: Move more tests to use correct names and namespaces
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- Moved to the level2 "privacy" namespace:
  - \mod_assign\privacy\feedback_legacy_polyfill_test
  - \mod_assign\privacy\submission_legacy_polyfill_test

- Moved to the level2 "task" namespace:
  - \core_message\task\migrate_message_data_test
  - \ltiservice_gradebookservices\task\cleanup_test
  - \message_email\task\send_email_test
  - \mod_lti\task\clean_access_tokens_test
  - \mod_workshop\task\cron_task_test

- Moved to the level2 "event" namespace:
  - \core_h5p\event\deleted_test
  - \core_h5p\event\viewed_test

- Renamed to a better name:
  - backup_forum_activity_task_test.php (missing "task")
2022-05-07 20:32:30 +02:00
Eloy Lafuente (stronk7) 9f53b0e965 MDL-73971 phpunit: Move more tests to use correct names and namespaces
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- Some fixtures, initially defined in the test files have been
  moved to new files in fixtures subdirectory, leaving the unit
  test files clearer:
  - moodle2_course_format_test.php
- Rename wrong named test:
  - baseoptiogroup_test = baseoptigroup_test
2022-05-06 18:29:11 +02:00
Eloy Lafuente (stronk7) 941a29925e weekly release 4.1dev 2022-05-06 15:58:24 +02:00
Jake Dallimore d84738eb08 MDL-74602 mod_assign: fix js error with assign grader on classic 2022-05-06 16:46:58 +08:00
Davo Smith 55f08ad6eb MDL-73047 reportbuilder: add 'timecreated' to user reports 2022-05-06 08:08:31 +01:00
Jun Pataleta 48cab7f948 Merge branch 'MDL-74584-master-v1' of https://github.com/mihailges/moodle 2022-05-06 14:47:04 +08:00
Mihail Geshoski 154dbce845 MDL-74584 mod_bigbluebuttonbn: Update behat tests 2022-05-06 14:39:06 +08:00
Mihail Geshoski 75d9476420 MDL-74584 mod_bigbluebuttonbn: Update unit tests 2022-05-06 14:39:06 +08:00
Mihail Geshoski 90f517cf1f MDL-74584 course: New optional parameter in get_module_types_names()
Adds new parameter in get_module_types_names() to optionally reset
the $modnames static cache.
2022-05-06 14:39:06 +08:00
Mihail Geshoski c23b67be46 MDL-74584 mod_bigbluebuttonbn: Add install script and new upgrade step
Adds a new install script for the BBB module and a new upgrade step.
The BBB module now will be disabled by default for new installations
and also it will be disabled for the existing sites that use the
default BBB server configuration. Admistrators will be required to
confirm the acceptance of the related DPA prior to (re)enabling the
plugin once again.
2022-05-06 14:39:06 +08:00
Mihail Geshoski b9b9ec82d4 MDL-74584 mod_bigbluebuttonbn: Add DPA info in the general setting page
Adds a note in the BBB general settings page to raise awareness about
the legal obligations related to the data processing agreement with the
service provider which is currently configured.
2022-05-06 13:36:53 +08:00
Mihail Geshoski 6588baec97 MDL-74584 mod_bigbluebuttonbn: Implement 'pre_enable_plugin_actions'
Implements a function for the 'pre_enable_plugin_actions' callback.
When the default BBB server settings are used while the administrator
attempts to enable the BBB plugin, the function will prevent this
action and trigger a dynamic form requesting the admin to conifrm
their acceptance of the related data processing agreement. The process
of enabling the plugin will continue as usual in cases where the
admin has already confirmed the acceptance of the dpa or a different
BBB server configuration is used other than the default.
2022-05-06 13:36:53 +08:00
Mihail Geshoski 4a55d6eb02 MDL-74584 admin: Add callback executed prior to enabling a module
Adds a callback xxx_pre_enable_plugin_actions in admin/modules.php
which plugins can use to force additional actions before enabling the
plugin. The return value (bool) from the plugin callback method
specifies whether the process of enabling the plugin should continue
after the added actions or not.
2022-05-06 13:36:53 +08:00
Jun Pataleta 7aa68e3393 Merge branch 'MDL-74511-master' of https://github.com/andrewnicols/moodle 2022-05-06 11:57:42 +08:00
Andrew Nicols 1b18a4c142 MDL-74511 core: Add phpcs default config 2022-05-06 11:39:10 +08:00
Ilya Tregubov 6442615878 Merge branch 'participants_per_page_MDL-41498' of https://github.com/rschrenk/moodle 2022-05-06 07:59:43 +06:00
Víctor Déniz 9746b8a6e2 Merge branch 'MDL-74612' of https://github.com/paulholden/moodle 2022-05-05 13:20:20 +01:00
Víctor Déniz 78154ce598 Merge branch 'MDL-74128' of https://github.com/paulholden/moodle 2022-05-05 12:09:33 +01:00
Víctor Déniz 89fbe47289 Merge branch 'MDL-74567' of https://github.com/paulholden/moodle 2022-05-05 09:37:28 +01:00
Hien Dinh 00dcb18999 MDL-73172 course: COMPLETE_PASS status cannot enhance in custom theme 2022-05-05 09:35:36 +07:00
Jun Pataleta a1c0b98c1d MDL-74317 blocks: Revert checking of block usage against page format 2022-05-05 10:02:29 +08:00
Jun Pataleta 53ad985457 Merge branch 'MDL-74576-master' of https://github.com/snake/moodle 2022-05-05 09:55:37 +08:00
Jun Pataleta 4182721677 Merge branch 'MDL-73981-master' of https://github.com/ilyatregubov/moodle 2022-05-05 09:48:59 +08:00
Ilya Tregubov 93e96e0aa2 Merge branch 'MDL-74602-master' of https://github.com/snake/moodle 2022-05-05 07:46:33 +06:00
Jun Pataleta 96ffb21ca6 Merge branch 'MDL-74546-master' of https://github.com/snake/moodle 2022-05-05 09:41:28 +08:00
Ilya Tregubov 82e3a9ce40 MDL-73981 tool_uploadcourse: Validate enrolment role from csv. 2022-05-05 07:38:47 +06:00
Jun Pataleta 0cdc33f19e Merge branch 'MDL-74511-master' of https://github.com/andrewnicols/moodle 2022-05-05 09:37:26 +08:00
Paul Holden 03e49fb1a1 MDL-74480 reportbuilder: new user entity description column/filter. 2022-05-04 13:10:13 +01:00
Paul Holden bc206fdec3 MDL-74165 reportbuilder: helpers to create multiple params/aliases. 2022-05-04 13:08:55 +01:00
Tim Hunt aac5b47cea MDL-74041 quiz: use own size for paging the question bank 2022-05-04 11:01:44 +01:00
Tim Hunt 10e8ffe312 MDL-74041 question bank: page size should be 100 2022-05-04 10:34:34 +01:00
Jake Dallimore 59b5858da2 MDL-73736 core_auth: Fix concurrency issue in login_attempt_failed()
This patch wraps the login_failed_count logic in a resource lock and
forces a user preferences cache reload. Each thread must wait for the
lock and must fetch the current count before incrementing it. This
ensures that login_failed_count is correct across threads and that the
lockout threshold is correctly honoured.

Co-Authored-By: Sujith Haridasan <sujith@moodle.com>
2022-05-04 14:44:42 +06:00
Michael Hawkins a0f47c8bc4 MDL-74333 badges: Check profile criteria valid when reviewing 2022-05-04 12:57:38 +08:00
Ilya Tregubov 9478dc6b07 Merge branch 'MDL-74563' of https://github.com/paulholden/moodle 2022-05-04 09:25:08 +06:00
Ferran Recio 4f2eac208d MDL-71623 core_search: fix user document visibility 2022-05-04 04:04:15 +02:00
Amaia Anabitarte 670268900c MDL-74318 core_user: Description field as hidden on profile 2022-05-04 04:04:15 +02:00
Paul Holden 6abe964bba MDL-74204 mod_assign: escape identity fields in allocate marker form. 2022-05-04 04:04:15 +02:00
Jun Pataleta 11b2cc4cb5 Merge branch 'MDL-73878-master' of https://github.com/aanabit/moodle 2022-05-04 09:42:30 +08:00
Leon Stringer b460ea470f MDL-74631 mod_lti: Remove </img>
Remove illegal HTML tag.

Added example context to pass CI checks.
2022-05-03 17:27:13 +01:00
Amaia Anabitarte ffc655b181 MDL-73878 core_user: Creating a new category for social fields 2022-05-03 17:52:11 +02:00
Amaia Anabitarte d2fb057b7e MDL-73878 core_user: Fixing social fields upgrading issue 2022-05-03 17:32:20 +02:00
Jun Pataleta b625dabb83 Merge branch 'MDL-74543' of https://github.com/timhunt/moodle 2022-05-03 22:22:39 +08:00
Tim Hunt 7d3eaf892d MDL-74543 quiz attemptlib: covert string comparison to ===
Where obviously safe.
2022-05-03 13:45:39 +01:00
Tim Hunt 52b8962dbd MDL-74543 quiz: correctly record time when overdue attempt submitted 2022-05-03 13:41:45 +01:00
Víctor Déniz 9943699604 Merge branch 'MDL-74611' of https://github.com/timhunt/moodle 2022-05-03 13:00:23 +01:00
Ilya Tregubov df86854461 Merge branch 'mdl65478-fix-master' of https://github.com/matthewhilton/moodle 2022-05-03 15:43:53 +06:00
Jake Dallimore 9e70147e05 Merge branch 'MDL-74441-master' of https://github.com/cameron1729/moodle 2022-05-03 16:54:35 +08:00
Ilya Tregubov c2a950237f Merge branch 'MDL-74598-master' of https://github.com/roland04/moodle 2022-05-03 11:55:47 +06:00
Jason den Dulk ba53ec733a MDL-65478 backup, course format: Handle editor elements in course format
Modified course format options reading and writing to be able to handle Editor elements by enabling them to split array values into
multiple values before inserting into database, and combining multiple values into an array when reading from the database.
Modified backup and restore code to use backup_nested_elements, and to interact directly with the database.

Co-authored-by: Jason den Dulk <jasondendulk@catalyst-au.net>
Co-authored-by: Matthew Hilton <matthewhilton@catalyst-au.net>
2022-05-03 14:23:37 +10:00
Ilya Tregubov 719bb845d9 Merge branch 'MDL-74450-master' of https://github.com/mihailges/moodle 2022-05-03 09:47:29 +06:00
Jake Dallimore db933339fa MDL-74602 mod_wiki: disable activity header in wiki print view 2022-05-03 09:58:01 +08:00
Jake Dallimore a8fcf50e55 MDL-74602 mod_chat: disable activity header in ajax chat interface 2022-05-03 09:57:19 +08:00
Jake Dallimore edf2c5ea2f MDL-74602 mod_book: disable activity header on book print page 2022-05-03 09:56:56 +08:00
Jake Dallimore 0402dfdc95 MDL-74602 mod_assign: disable activity header on embedded grader page 2022-05-03 09:55:22 +08:00
Jake Dallimore cc94ab171d MDL-74602 theme_boost: fix missing activity header in embedded layout
The activity header, which includes things like dates and completion
information, was moved out of the page $OUTPUT and into a separate
template context variable in 4.0, meaning it was missing from any layout
which didn't actively add it back to the page output. This fixes this
problem for the embedded layout only by adding support for the activity
header in the embedded template.
2022-05-03 09:53:57 +08:00
Jun Pataleta a9d219fe66 Merge branch 'MDL-74317-2' of https://github.com/dravek/moodle 2022-05-02 17:24:29 +08:00
David Matamoros e1da77a685 MDL-74317 blocks: Blocks can be added to profile pages
- Fixed method user_can_addto to take into account that
blocks can also be added to user profile pages
2022-05-02 10:45:30 +02:00
David Matamoros b1a142eab4 MDL-74317 output: Remove capability checks in edit mode WS
- Removed validation on the change edit mode WS. Permission should
be handled where the edit button is rendered in order to show or not
the button.
2022-05-02 10:45:30 +02:00
Jun Pataleta f9a3ccb1e2 Merge branch 'MDL-74436' of https://github.com/paulholden/moodle 2022-05-02 16:30:00 +08:00
Jake Dallimore 8f59d0b937 MDL-74576 enrol_lti: allow unsupported scopes in ags_info
Instead of hard blocking launches with extension scopes, just ignore
the unsupported scopes and continue.
2022-05-02 15:37:52 +08:00
Paul Holden bc05916cbf MDL-74128 reportbuilder: Behat helper for navigating to view page. 2022-04-29 17:14:23 +01:00
Paul Holden 2fede32518 MDL-74612 cohort: use data generator for populating cohort members. 2022-04-29 16:09:35 +01:00
Marina Glancy ac7c952b84 MDL-73435 mod_wiki: htmlspecialchars changed default in PHP8.1 2022-04-29 16:22:43 +02:00
Marina Glancy a0398fdde8 MDL-73423 core_privacy: Calling reset() on objects deprecated PHP8.1 2022-04-29 16:16:07 +02:00
Paul Holden 9ff112ea3d MDL-74567 core: re-factor flickr libraries to use shared user-agent. 2022-04-29 13:31:55 +01:00
Tim Hunt b6b0d8b848 MDL-74611 course settigns: re-order Common module settings
All the group-related settings should be next to each other.
2022-04-29 13:23:41 +01:00
Paul Holden 2972e66008 MDL-74567 repository_flickr: replace user-agent value for API calls.
Flickr doesn't like user agent that looks like a bot. Effectively the
same reasoning/fix as b8ee31a0.
2022-04-29 13:08:36 +01:00
Paul Holden c44dc41a9f MDL-74605 media_videojs: move player options to data setup.
Fixes the `playbackRates` functionality that was lost in library
upgrade (9ea8fa37).
2022-04-29 11:36:16 +01:00
Ilya Tregubov 1a744030d6 weekly release 4.1dev 2022-04-29 07:55:26 +06:00
Ilya Tregubov debcef0903 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2022-04-29 07:55:23 +06:00
Mikel Martín f35d43b633 MDL-74598 reportbuilder: Fix action menus alignment to the right 2022-04-28 16:29:48 +02:00
Cameron Ball 34c3392f49 MDL-74441 mod_forum: Fix overflow in unified grader 2022-04-28 15:55:18 +08:00
Jun Pataleta c62fc00125 Merge branch 'MDL-74478-master' of https://github.com/mihailges/moodle 2022-04-28 12:54:33 +08:00
Peter Dias d27e7e1950 MDL-74478 badges: Check completion_fail when awarding badge
Bring the award_criteria_activity checks in line with the observer checks
2022-04-28 12:14:45 +08:00
Jun Pataleta 44d39bf232 Merge branch 'MDL-74461-master' of https://github.com/HuongNV13/moodle 2022-04-28 11:40:07 +08:00
Ilya Tregubov 4a60e9733d Merge branch 'master-MDL-74427-v4' of https://github.com/golenkovm/moodle 2022-04-28 08:09:37 +06:00
Jun Pataleta c0466920b3 Merge branch 'MDL-74537-master-enfix' of https://github.com/vmdef/moodle 2022-04-27 15:56:00 +06:00
Ilya Tregubov af8155036f Merge branch 'MDL-74510' of https://github.com/stronk7/moodle 2022-04-27 15:56:00 +06:00
Ilya Tregubov 9f91cd1ca2 Merge branch 'MDL-74479' of https://github.com/paulholden/moodle 2022-04-27 15:56:00 +06:00
Víctor Déniz 57b300e27f Merge branch 'MDL-74320' of https://github.com/stronk7/moodle 2022-04-27 15:56:00 +06:00
Víctor Déniz b7a06ebb68 Merge branch 'MDL-74514' of https://github.com/call-learning/moodle 2022-04-27 15:56:00 +06:00
Ilya Tregubov 03c237525c Merge branch 'MDL-74481-LTI13-InstructorRole' of https://github.com/cengage/moodle 2022-04-27 15:56:00 +06:00
Mikhail Golenkov 6a19223290 MDL-74427 question: Re-use get_real_question_ids_in_category() 2022-04-27 12:32:54 +10:00
Mikhail Golenkov b0e09b34ae MDL-74427 question: Implement get_real_question_ids_in_category() 2022-04-27 12:32:54 +10:00
AMOS bot bf529d7346 Automatically generated installer lang files 2022-04-27 00:07:42 +00:00
Helen Foster a1699a58f4 MDL-74537 lang: Import fixed English strings (en_fix) 2022-04-26 11:21:12 +01:00
Mihail Geshoski dfae9e18d7 MDL-74450 admin: Use the context from admin_settingpage as page context
The defined context in admin_settingpage does not always relate to the
system context. One example is the 'frontpagesettings' admin setting
page which specifies front page as it's default context. Therefore, the
page context in admin/settings.php should be consisent with the defined
context in the related admin_settingpage object to make sure that the
expected navigation menus are being displayed and properly highlighted.
Additionally, the code in admin/settings.php related to the breadcrumb
structure specific to 'frontpagesettings' has been removed as it is no
longer relevant.
2022-04-26 12:50:59 +08:00
Paul Holden 9bf4e5c910 MDL-74563 reportbuilder: cast operator parameter in number filter.
Add missing form labels, too.
2022-04-25 21:41:41 +01:00
Paul Holden 14422572b9 MDL-72193 enrol_manual: support custom user profile fields. 2022-04-25 18:18:00 +01:00
Paul Holden 2255c598a5 MDL-74436 calendar: validate course/category field during import. 2022-04-25 18:01:13 +01:00
Huong Nguyen 646a7973b0 MDL-74461 Navigation: Add section anchor to activity breadcrumb 2022-04-25 21:17:30 +07:00
Ilya Tregubov c6fc13345c Merge branch 'MDL-74477' of https://github.com/paulholden/moodle 2022-04-25 13:38:25 +06:00
Ilya Tregubov a35ed851ae Merge branch 'MDL-74509' of https://github.com/stronk7/moodle 2022-04-25 09:03:31 +06:00
AMOS bot 6537e014dd Automatically generated installer lang files 2022-04-25 00:07:44 +00:00
Eloy Lafuente (stronk7) 76f5445451 MDL-74510 upgrade: add the 4.0.0 separation line to all upgrade scripts 2022-04-22 18:45:10 +02:00
Eloy Lafuente (stronk7) 3d709bb968 MDL-74509 backup: Bump release to 4.1 2022-04-22 18:45:05 +02:00
Eloy Lafuente (stronk7) b952441d22 MDL-74320 lesson: Remove tested elsewhere parts of the scenario
The scenario has not only grades related completion conditions
but also timing conditions or reach the end conditions that
shouldn't be tested by a grades feature.

More yet, those completion conditions are already tested by
other feature files, namely:
- reach the end: completion_condition_end_reached.feature
- visit and timing: lesson_activity_completion.feature

So we have removed all those parts that are being tested
by other features.

Specially the visit and timing ones, because they lead to
random failures in slow environments and they have been
fixed in the lesson_activity_completion.feature scenarios
by MDL-72698.
2022-04-22 18:45:00 +02:00
Eloy Lafuente (stronk7) 998c632b5d weekly on-sync release 4.1dev 2022-04-22 18:04:09 +02:00
Jake Dallimore 3b4ef7b71d MDL-74546 enrol_lti: add missing d-flex to table to fix safari layout 2022-04-22 10:17:13 +08:00
Ilya Tregubov 427de94fa5 Merge branch 'MDL-74394' of https://github.com/aolley/moodle 2022-04-22 08:00:30 +06:00
Laurent David 7c0b2d4f90 MDL-74514 mod_bigbluebuttonbn: BBB server is polled too often
* Fix issue with the roomupdater that should not force the updatecache flag
for get_meeting_info API
* Fix issue when meeting is not started (and does not exist) and bigbluebutton_proxy::get_meeting_info
throws an exception, skipping the cache and then polling the server every second.
2022-04-21 20:22:16 +02:00
Víctor Déniz b359ba8562 Merge branch 'MDL-74312-master' of https://github.com/snake/moodle 2022-04-21 16:31:22 +01:00
Jake Dallimore 9343f94131 MDL-74312 enrol_lti: fix copytoclipboard trigger element
This should be a button given it's an action, and making it a button
means it can be activated using either the space or enter keys, instead
of just enter.
2022-04-20 09:31:48 +08:00
Sara Arjona 4714ee36ff Merge branch 'MDL-74512' of https://github.com/stronk7/moodle 2022-04-19 12:55:21 +02:00
Andrew Nicols 38fff2d83f MDL-74511 core: Add phpcs config generator 2022-04-18 15:38:14 +08:00
Eloy Lafuente (stronk7) 95c8cb7582 MDL-74512 behat: Skip tests requiring lang install/upgrade
By adding the step:

Given remote langimport tests are enabled

We make the execution of scenarios requiring to install /
upgrade lang packs optional, based in the existence of the constant:

TOOL_LANGIMPORT_REMOTE_TESTS

That way, when we are skipping language upgrades with the CFG var:

$CFG->skiplangupgrade = true

We can decide not not execute those tests.

With other words, putting something like this in the config.php
file we will be controlling when to execute or no the behat tests:

    // Disable lang updates on upgrade.
    $CFG->skiplangupgrade = true;
    if (empty($CFG->skiplangupgrade)) {
        // Define it only if we aren't skipping lang upgrades.
        define('TOOL_LANGIMPORT_REMOTE_TESTS', true);
    }
2022-04-17 20:27:57 +02:00
Jun Pataleta e161f1d774 weekly back-to-dev release 4.1dev 2022-04-17 15:14:27 +08:00
Jun Pataleta 21cfd8b216 NOBUG: Change travis.yml back to master 2022-04-17 14:59:55 +08:00
Claude Vervoort 696eace98d MDL-74481 mod_lti: fix role lookup for LTI 1.3 2022-04-13 12:57:58 -04:00
Paul Holden 271688ab79 MDL-74479 reportbuilder: account for custom field context in output. 2022-04-12 11:05:13 +01:00
Paul Holden d0d749289d MDL-74477 reportbuilder: sortable custom user profile field columns. 2022-04-11 14:58:30 +01:00
Adam Olley c24922fb40 MDL-74394 mnet: Better check for openssl_get_publickey() failure
In PHP8, this func now returns an object of type OpenSSLAsymmetricKey, not a
resource.

Reference:
https://www.php.net/manual/en/function.openssl-pkey-get-public.php
2022-04-01 14:32:50 +10:30
Robert Schrenk ecd1b8d6db MDL-41498 course: courses participant page 2022-03-30 10:03:16 +02:00
Mike Macgirvin 6770481c63 MDL-70568 cron: Temporarily increase debug level on task failure 2022-03-25 13:35:56 +11:00
Claude Vervoort 15e8003631 MDL-74310 mod_lti: fix ltilinkid on lineitems import 2022-03-24 14:14:56 -04:00
Eric Merrill 5d7509392d MDL-74182 core_task: Obey CFG debug settings 2022-03-13 23:57:13 -04:00
Andrew Nicols 5d66721655 MDL-73183 js: Stop supporting debug mode for amd
This option was used to return the source files, but we do not support
this any more because we use source maps instead and require babel
transformation to support ES2015.

It does not make sense to support this code path any longer.
2022-02-08 12:05:31 +08:00
Kevin Pham c94f6b953f MDL-73478 core: Refactor set_config, redirect nulls to unset_config
- There is now a single point for the configuration to be updated or
  inserted into the DB.
- De-nestifying the code does make it longer to scroll through but you
  can now edit areas of interest with more confidence, and should make
  it easier to grok places of interest.
- Updated DB check from get_field to get_record as it's better in the
  case of an update - using the id.
- Updates will happen on the ID field, which should be the primary key
  for the table.
- Cache won't be invalidated if no changes were made.
- Property does not need to be checked for behat test if you are just
  inserting a new value to an array using the arr[] = value syntax as it
  should just work.
- Opted to replace array_key_exists with isset which is a faster check
  due to it being a language construct and the fact that it should NOT
  contain null values (as a null value would be removed) should mean
  this is a safe change.
- Cleanup function param defaults.
- Prefer [] arrays instead of array() declarations.
2022-01-05 10:04:41 +11:00
13050 changed files with 656421 additions and 402810 deletions
+9 -5
View File
@@ -6,6 +6,10 @@
],
'env': {
'browser': true,
// Enable ES6+ features by default.
// See http://eslint.org/docs/user-guide/configuring#specifying-environments
// Note: The YUI override must exactly match this when disabling the ES6+ version because those features are not supported by Shifter.
'es2020': true,
'amd': true
},
'globals': {
@@ -83,6 +87,7 @@
'no-octal-escape': 'error',
'no-proto': 'error',
'no-redeclare': 'warn',
'no-restricted-globals': ['error', { 'name': 'Notification' }],
'no-return-assign': 'error',
'no-script-url': 'error',
'no-self-assign': 'error',
@@ -196,6 +201,10 @@
overrides: [
{
files: ["**/yui/src/**/*.js"],
'env': {
// Disable ES6+ for YUI files.
'es2020': false,
},
// Disable some rules which we can't safely define for YUI rollups.
rules: {
'no-undef': 'off',
@@ -221,10 +230,6 @@
},
{
files: ["**/amd/src/*.js", "**/amd/src/**/*.js", "Gruntfile.js", ".grunt/*.js", ".grunt/tasks/*.js", "jsdoc.conf.js"],
// We support es6 now. Woot!
env: {
es6: true
},
// We're using babel transpiling so use their parser
// for linting.
parser: '@babel/eslint-parser',
@@ -299,7 +304,6 @@
],
},
parserOptions: {
'ecmaVersion': 9,
'sourceType': 'module',
'requireConfigFile': false,
}
+19 -15
View File
@@ -9,18 +9,18 @@ on:
- v[0-9]+.[0-9]+.[0-9]+*
env:
php: 8.0
php: 8.1
jobs:
Grunt:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- name: Checking out code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Configuring node & npm
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
@@ -54,38 +54,41 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-18.04
php: 7.3
# MySQL builds always run with the lowest PHP supported version.
- os: ubuntu-22.04
php: 8.0
extensions:
db: mysqli
- os: ubuntu-18.04
php: 8.0
# PostgreSQL builds always run with the highest PHP supported version.
- os: ubuntu-22.04
php: 8.1
db: pgsql
extensions: xmlrpc-beta
steps:
- name: Setting up DB mysql
if: ${{ matrix.db == 'mysqli' }}
uses: johanmeiring/mysql-action@tmpfs-patch
uses: moodlehq/mysql-action@v1
with:
collation server: utf8mb4_bin
mysql version: 5.7
mysql version: 8.0
mysql database: test
mysql user: test
mysql password: test
use tmpfs: true
tmpfs size: '1024M'
extra conf: --skip-log-bin
- name: Setting up DB pgsql
if: ${{ matrix.db == 'pgsql' }}
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 10
postgresql version: 13
postgresql db: test
postgresql user: test
postgresql password: test
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v3.x
uses: rlespinasse/github-slug-action@v4
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
@@ -96,7 +99,7 @@ jobs:
coverage: none
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setting up PHPUnit
env:
@@ -111,4 +114,5 @@ jobs:
- name: Running PHPUnit tests
env:
dbtype: ${{ matrix.db }}
run: vendor/bin/phpunit -v
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options
+144
View File
@@ -0,0 +1,144 @@
name: Windows Testing
on:
workflow_dispatch
env:
php: 8.1
jobs:
Grunt:
runs-on: windows-latest
steps:
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checking out code
uses: actions/checkout@v3
- name: Configuring node & npm
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Installing node stuff
run: npm ci
- name: Running grunt
run: npx grunt
- name: Looking for uncommitted changes
# Add all files to the git index and then run diff --cached to see all changes.
# This ensures that we get the status of all files, including new files.
# We ignore npm-shrinkwrap.json to make the tasks immune to npm changes.
run: |
git add .
git reset -- npm-shrinkwrap.json
git diff --cached --exit-code
PHPUnit:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
php: 8.1
# Ideally we should use mysql/mariadb, but they are 4x slower without tweaks and configuration
# so let's run only postgres (1.5h vs 6h) only, If some day we want to improve the mysql runs,
# this is the place to enable them.
# db: mysqli
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium
- os: windows-latest
php: 8.0
db: pgsql
extensions: exif, fileinfo, gd, intl, pgsql, mysql, redis, soap, sodium
steps:
- name: Setting up DB mysql
if: ${{ matrix.db == 'mysqli' }}
uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: 8.0
user: test
password: test
- name: Creating DB mysql
if: ${{ matrix.db == 'mysqli' }}
run: mysql --host 127.0.0.1 -utest -ptest -e 'CREATE DATABASE IF NOT EXISTS test COLLATE = utf8mb4_bin;';
- name: Setting up DB pgsql
if: ${{ matrix.db == 'pgsql' }}
run: |
# TODO: Remove these conf. modifications when php74 or php80 are lowest.
# Change to old md5 auth, because php73 does not support it.
# #password_encryption = scram-sha-256
(Get-Content "$env:PGDATA\postgresql.conf"). `
replace('#password_encryption = scram-sha-256', 'password_encryption = md5') | `
Set-Content "$env:PGDATA\postgresql.conf"
(Get-Content "$env:PGDATA\pg_hba.conf"). `
replace('scram-sha-256', 'md5') | `
Set-Content "$env:PGDATA\pg_hba.conf"
$pgService = Get-Service -Name postgresql*
Set-Service -InputObject $pgService -Status running -StartupType automatic
Start-Process -FilePath "$env:PGBIN\pg_isready" -Wait -PassThru
& $env:PGBIN\psql --command="CREATE USER test PASSWORD 'test'" --command="\du"
- name: Creating DB pgsql
if: ${{ matrix.db == 'pgsql' }}
run: |
& $env:PGBIN\createdb --owner=test test
$env:PGPASSWORD = 'test'
& $env:PGBIN\psql --username=test --host=localhost --list test
- name: Configuring git vars
uses: rlespinasse/github-slug-action@v4
- name: Setting up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=5000
coverage: none
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checking out code from ${{ env.GITHUB_REF_SLUG }}
uses: actions/checkout@v3
# Needs to be done after php is available, git configured and Moodle checkout has happened.
- name: Setting up moodle-exttests service
run: |
git clone https://github.com/moodlehq/moodle-exttests.git
nssm install php-built-in C:\tools\php\php.exe -S localhost:8080 -t D:\a\moodle\moodle\moodle-exttests
nssm start php-built-in
- name: Setting up redis service
run: |
choco install redis-64 --version 3.0.503 --no-progress
nssm install redis redis-server
nssm start redis
- name: Setting up PHPUnit
env:
dbtype: ${{ matrix.db }}
shell: bash
run: |
echo "pathtophp=$(which php)" >> $GITHUB_ENV # Inject installed pathtophp to env. The template config needs it.
cp .github/workflows/config-template.php config.php
mkdir ../moodledata
php admin/tool/phpunit/cli/init.php --no-composer-self-update
- name: Running PHPUnit tests
env:
dbtype: ${{ matrix.db }}
phpunit_options: ${{ secrets.phpunit_options }}
run: vendor/bin/phpunit $phpunit_options
+2 -1
View File
@@ -20,7 +20,6 @@
*~
#
/config.php
/lib/editor/tinymce/extra/tools/temp/
/tags
/TAGS
/cscope.*
@@ -54,3 +53,5 @@ moodle-plugin-ci.phar
/admin/tool/componentlibrary/docs
/admin/tool/componentlibrary/hugo/site/data/my-index.json
.hugo_build.lock
phpcs.xml
jsconfig.json
+152 -1
View File
@@ -156,7 +156,7 @@ const getThirdPartyLibsList = relativeTo => {
* @returns {array}
*/
const getThirdPartyPaths = () => {
const DOMParser = require('xmldom').DOMParser;
const DOMParser = require('@xmldom/xmldom').DOMParser;
const fs = require('fs');
const path = require('path');
const xpath = require('xpath');
@@ -232,7 +232,157 @@ const getOwningComponentDirectory = checkPath => {
return null;
};
/**
* Get the latest tag in a remote GitHub repository.
*
* @param {string} url The remote repository.
* @returns {Array}
*/
const getRepositoryTags = async(url) => {
const gtr = require('git-tags-remote');
try {
const tags = await gtr.get(url);
if (tags !== undefined) {
return tags;
}
} catch (error) {
return [];
}
return [];
};
/**
* Get the list of thirdparty libraries that could be upgraded.
*
* @returns {Array}
*/
const getThirdPartyLibsUpgradable = async() => {
const libraries = getThirdPartyLibsData().filter((library) => !!library.repository);
const upgradableLibraries = [];
const versionCompare = (a, b) => {
if (a === b) {
return 0;
}
const aParts = a.split('.');
const bParts = b.split('.');
for (let i = 0; i < Math.min(aParts.length, bParts.length); i++) {
const aPart = parseInt(aParts[i], 10);
const bPart = parseInt(bParts[i], 10);
if (aPart > bPart) {
// 1.1.0 > 1.0.9
return 1;
} else if (aPart < bPart) {
// 1.0.9 < 1.1.0
return -1;
} else {
// Same version.
continue;
}
}
if (aParts.length > bParts.length) {
// 1.0.1 > 1.0
return 1;
}
// 1.0 < 1.0.1
return -1;
};
for (let library of libraries) {
upgradableLibraries.push(
getRepositoryTags(library.repository).then((tagMap) => {
library.version = library.version.replace(/^v/, '');
const currentVersion = library.version.replace(/moodle-/, '');
const currentMajorVersion = library.version.split('.')[0];
const tags = [...tagMap]
.map((tagData) => tagData[0])
.filter((tag) => !tag.match(/(alpha|beta|rc)/))
.map((tag) => tag.replace(/^v/, ''))
.sort((a, b) => versionCompare(b, a));
if (!tags.length) {
library.warning = "Unable to find any comparable tags.";
return library;
}
library.latestVersion = tags[0];
tags.some((tag) => {
if (!tag) {
return false;
}
// See if the version part matches.
const majorVersion = tag.split('.')[0];
if (majorVersion === currentMajorVersion) {
library.latestSameMajorVersion = tag;
return true;
}
return false;
});
if (versionCompare(currentVersion, library.latestVersion) > 0) {
// Moodle somehow has a newer version than the latest version.
library.warning = `Newer version found: ${currentVersion} > ${library.latestVersion} for ${library.name}`;
return library;
}
if (library.version !== library.latestVersion) {
// Delete version and add it again at the end of the array. That way, current and new will stay closer.
delete library.version;
library.version = currentVersion;
return library;
}
return null;
})
);
}
return (await Promise.all(upgradableLibraries)).filter((library) => !!library);
};
/**
* Get the list of thirdparty libraries.
*
* @returns {Array}
*/
const getThirdPartyLibsData = () => {
const DOMParser = require('@xmldom/xmldom').DOMParser;
const fs = require('fs');
const xpath = require('xpath');
const path = require('path');
const libraryList = [];
const libraryFields = [
'location',
'name',
'version',
'repository',
];
const thirdpartyfiles = getThirdPartyLibsList(fs.realpathSync('./'));
thirdpartyfiles.forEach(function(libraryPath) {
const xmlContent = fs.readFileSync(libraryPath, 'utf8');
const doc = new DOMParser().parseFromString(xmlContent);
const libraries = xpath.select("/libraries/library", doc);
for (const library of libraries) {
const libraryData = [];
for (const field of libraryFields) {
libraryData[field] = xpath.select(`${field}/text()`, library)?.toString();
}
libraryData.location = path.join(path.dirname(libraryPath), libraryData.location);
libraryList.push(libraryData);
}
});
return libraryList.sort((a, b) => a.location.localeCompare(b.location));
};
module.exports = {
fetchComponentData,
getAmdSrcGlobList,
getComponentFromPath,
getComponentPaths,
@@ -240,4 +390,5 @@ module.exports = {
getYuiSrcGlobList,
getThirdPartyLibsList,
getThirdPartyPaths,
getThirdPartyLibsUpgradable,
};
+8 -6
View File
@@ -45,6 +45,7 @@ module.exports = grunt => {
grunt.log.write(result);
if (error) {
grunt.log.error(result.stdout);
process.exit(code);
}
done();
@@ -56,7 +57,7 @@ module.exports = grunt => {
* @param {array} args
* @returns {object}
*/
const spawnNodeCall = args => grunt.util.spawn({
const spawnNodeCall = (args) => grunt.util.spawn({
cmd: 'node',
args,
}, getSpawnHandler(grunt.task.current.async()));
@@ -91,13 +92,14 @@ module.exports = grunt => {
* @returns {Object} Reference to the spawned task
*/
const cssBuild = () => spawnNodeCall([
'node_modules/node-sass/bin/node-sass',
'--output-style', 'expanded',
'--source-map', true,
'--source-map-contents', true,
'node_modules/sass/sass.js',
'--style', 'expanded',
'--source-map',
'--embed-sources',
'--precision', 6,
'--load-path', process.cwd(),
getCLPath('hugo/scss/docs.scss'),
'-o', getCLPath('hugo/dist/css/'),
getCLPath('hugo/dist/css/docs.css'),
]);
// Register the various component library tasks.
+39
View File
@@ -21,6 +21,43 @@
*/
module.exports = grunt => {
/**
* Generate the PHPCS configuration.
*
* @param {Object} thirdPartyPaths
*/
const phpcsIgnore = (thirdPartyPaths) => {
const {toXML} = require('jstoxml');
const config = {
_name: 'ruleset',
_attrs: {
name: "MoodleCore",
},
_content: [
{
rule: {
_attrs: {
ref: './phpcs.xml.dist',
},
},
},
],
};
thirdPartyPaths.forEach(library => {
config._content.push({
'exclude-pattern': library,
});
});
grunt.file.write('phpcs.xml', toXML(config, {
header: true,
indent: ' ',
}) + "\n");
};
/**
* Generate ignore files (utilising thirdpartylibs.xml data)
*/
@@ -53,6 +90,8 @@ module.exports = grunt => {
'admin/tool/componentlibrary/hugo/dist/css/docs.css',
].concat(thirdPartyPaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n');
phpcsIgnore(thirdPartyPaths);
};
grunt.registerTask('ignorefiles', 'Generate ignore files for linters', handler);
+5 -3
View File
@@ -30,10 +30,9 @@
* @param {String} srcPath the matched src path
* @return {String} The rewritten destination path.
*/
const babelRename = function(destPath, srcPath) {
destPath = srcPath.replace('src', 'build');
destPath = destPath.replace('.js', '.min.js');
destPath = srcPath.replace(`amd/src`, `amd/build`);
destPath = destPath.replace(/\.js$/, '.min.js');
return destPath;
};
@@ -47,6 +46,9 @@ module.exports = grunt => {
// Load ESLint.
require('./eslint')(grunt);
// Load jsconfig.
require('./jsconfig')(grunt);
// Load JSDoc.
require('./jsdoc')(grunt);
+53
View File
@@ -0,0 +1,53 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2022 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
const configuration = {
compilerOptions: {
baseUrl: ".",
paths: {
},
target: "es2015",
allowSyntheticDefaultImports: false,
},
exclude: [
"node_modules",
],
include: [],
};
module.exports = (grunt) => {
const handler = () => {
const jsconfigData = Object.assign({}, configuration);
const path = require('path');
const {fetchComponentData} = require(path.join(process.cwd(), '.grunt', 'components.js'));
const componentData = fetchComponentData().components;
for (const [thisPath, component] of Object.entries(componentData)) {
jsconfigData.compilerOptions.paths[`${component}/*`] = [`${thisPath}/amd/src/*`];
jsconfigData.include.push(`${thisPath}/amd/src/**/*`);
}
grunt.file.write('jsconfig.json', JSON.stringify(jsconfigData, null, " ") + "\n");
};
grunt.registerTask('jsconfig', 'Generate a jsconfig configuration compatible with the LSP', handler);
};
+1 -1
View File
@@ -32,7 +32,7 @@ module.exports = grunt => {
}
},
options: {
implementation: require('node-sass'),
implementation: require('sass'),
includePaths: ["theme/boost/scss/", "theme/classic/scss/"]
}
},
+42
View File
@@ -0,0 +1,42 @@
// 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/>.
/* jshint node: true, browser: false */
/* eslint-env node */
/**
* @copyright 2023 Sara Arjona <sara@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
module.exports = grunt => {
/**
* Generate upgradable third-party libraries (utilising thirdpartylibs.xml data)
*/
grunt.registerTask('upgradablelibs', 'Generate upgradable third-party libraries', async function() {
const done = this.async();
const path = require('path');
const ComponentList = require(path.join(process.cwd(), '.grunt', 'components.js'));
// An array of third party libraries that have a newer version in their repositories.
const thirdPartyLibs = await ComponentList.getThirdPartyLibsUpgradable({progress: true});
for (let library of thirdPartyLibs) {
grunt.log.ok(JSON.stringify(Object.assign({}, library), null, 4));
}
done();
});
};
-266
View File
@@ -1,266 +0,0 @@
# PLEASE NOTE: Travis is not currently utilised by the Moodle core integration
# process (which uses our internal CI system) this file is here for the benefit
# of community developers git clones - see MDL-51458.
notifications:
email:
if: env(MOODLE_EMAIL) != no
language: php
os: linux
dist: bionic
services:
- mysql
- docker
addons:
postgresql: "10"
branches:
except:
- master
- /MOODLE_[0-9]+_STABLE/
- /^v[0-9]+\.[0-9]+\.[0-9]+.*/
jobs:
# Enable fast finish.
# This will fail the build if a single job fails (except those in allow_failures).
# It will not stop the jobs from running.
fast_finish: true
include:
# First all the lowest php ones (7.3)
- php: 7.3
env: DB=none TASK=CITEST
- php: 7.3
env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon'
- if: env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present
php: 7.3
env: DB=pgsql TASK=PHPUNIT
- if: env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all"
php: 7.3
env: DB=mysqli TASK=PHPUNIT
# Then, conditionally, all the highest php ones (8.0)
- if: env(MOODLE_PHP) = "all"
php: 8.0
env: DB=none TASK=CITEST
- if: env(MOODLE_PHP) = "all"
php: 8.0
env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon'
- if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present)
php: 8.0
env: DB=pgsql TASK=PHPUNIT
- if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all")
php: 8.0
env: DB=mysqli TASK=PHPUNIT
cache:
directories:
- $HOME/.composer/cache
- $HOME/.npm
before_install:
- docker run -d -p 127.0.0.1:8080:80 --name exttests moodlehq/moodle-exttests
# Avoid IPv6 default binding as service (causes redis not to start).
- sudo service redis-server start --bind 127.0.0.1
install:
- >
if [ "$DB" = 'mysqli' ];
then
sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=1024m tmpfs /mnt/ramdisk
sudo service mysql stop
sudo mv /var/lib/mysql /mnt/ramdisk
sudo ln -s /mnt/ramdisk/mysql /var/lib/mysql
sudo service mysql restart
fi
- >
if [ "$DB" = 'pgsql' ];
then
sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=1024m tmpfs /mnt/ramdisk
sudo service postgresql stop
sudo mv /var/lib/postgresql /mnt/ramdisk
sudo ln -s /mnt/ramdisk/postgresql /var/lib/postgresql
sudo service postgresql start 9.6
fi
- >
if [ "$TASK" = 'PHPUNIT' ];
then
if [ -n "$GITHUB_APITOKEN" ]; then
composer config github-oauth.github.com $GITHUB_APITOKEN;
echo 'auth.json' >> .git/info/exclude
fi
echo 'extension="redis.so"' > /tmp/redis.ini
phpenv config-add /tmp/redis.ini
# Install composer dependencies.
# We need --no-interaction in case we hit API limits for composer. This causes it to fall back to a standard clone.
# Typically it should be able to use the Composer cache if any other job has already completed before we started here.
travis_retry composer install --prefer-dist --no-interaction;
fi
- >
if [ "$TASK" = 'GRUNT' ];
then
nvm install $NVM_VERSION ;
nvm use $NVM_VERSION ;
fi
before_script:
- if [[ ${TRAVIS_PHP_VERSION:0:1} -gt 7 ]]; then pecl install xmlrpc-beta; fi
- echo 'max_input_vars=5000' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- phpenv config-rm xdebug.ini
- >
if [ "$TASK" = 'PHPUNIT' ];
then
# Copy generic configuration in place.
cp config-dist.php config.php ;
# Create the moodledata directory.
mkdir -p "$HOME"/roots/base
# The database name and password.
sed -i \
-e "s%= 'moodle'%= 'travis_ci_test'%" \
-e "s%= 'password'%= ''%" \
config.php ;
# The wwwroot and dataroot.
sed -i \
-e "s%http://example.com/moodle%https://localhost%" \
-e "s%/home/example/moodledata%/home/travis/roots/base%" \
config.php ;
if [ "$DB" = 'pgsql' ];
then
# Postgres-specific setup.
sed -i \
-e "s%= 'username'%= 'postgres'%" \
config.php ;
psql -c 'CREATE DATABASE travis_ci_test;' -U postgres;
fi
if [ "$DB" = 'mysqli' ];
then
# MySQL-specific setup.
sed -i \
-e "s%= 'pgsql'%= 'mysqli'%" \
-e "s%= 'username'%= 'travis'%" \
-e "s%=> 'utf8mb4_unicode_ci'%=> 'utf8mb4_bin'%" \
config.php;
mysql -u root -e 'SET GLOBAL innodb_file_format=barracuda;' ;
mysql -u root -e 'SET GLOBAL innodb_file_per_table=ON;' ;
mysql -u root -e 'SET GLOBAL innodb_large_prefix=ON;' ;
mysql -e 'CREATE DATABASE travis_ci_test DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_bin;' ;
fi
fi
- >
if [ "$TASK" = 'PHPUNIT' ];
then
# Create a directory for the phpunit dataroot.
mkdir -p "$HOME"/roots/phpunit
# The phpunit dataroot and prefix..
sed -i \
-e "/require_once/i \\\$CFG->phpunit_dataroot = '\/home\/travis\/roots\/phpunit';" \
-e "/require_once/i \\\$CFG->phpunit_prefix = 'p_';" \
config.php ;
# Enable test external resources
sed -i \
-e "/require_once/i \\define('TEST_EXTERNAL_FILES_HTTP_URL', 'http://127.0.0.1:8080');" \
-e "/require_once/i \\define('TEST_EXTERNAL_FILES_HTTPS_URL', 'http://127.0.0.1:8080');" \
config.php ;
# Redis cache store tests
sed -i \
-e "/require_once/i \\define('TEST_CACHESTORE_REDIS_TESTSERVERS', '127.0.0.1');" \
config.php ;
# Redis session tests
sed -i \
-e "/require_once/i \\define('TEST_SESSION_REDIS_HOST', '127.0.0.1');" \
config.php ;
# Initialise PHPUnit for Moodle.
php admin/tool/phpunit/cli/init.php
fi
- >
if [ "$TASK" = 'GRUNT' ];
then
npm install --no-spin;
npm install --no-spin -g grunt ;
fi
########################################################################
# CI Tests
########################################################################
- >
if [ "$TASK" = 'CITEST' ];
then
# Note - this is deliberately placed in the script section as we
# should not add any code until after phpunit has run.
# The following repositories are required.
# The local_ci repository does the actual checking.
git clone https://github.com/moodlehq/moodle-local_ci.git local/ci
# We need the official upstream for comparison
git remote add upstream https://github.com/moodle/moodle.git;
git fetch upstream MOODLE_400_STABLE;
export GIT_PREVIOUS_COMMIT="`git merge-base FETCH_HEAD $TRAVIS_COMMIT`";
export GIT_COMMIT="$TRAVIS_COMMIT";
export UPSTREAM_FETCH_HEAD=`git rev-parse FETCH_HEAD`
# Variables required by our linter.
export gitcmd=`which git`;
export gitdir="$TRAVIS_BUILD_DIR";
export phpcmd=`which php`;
fi
script:
- >
if [ "$TASK" = 'PHPUNIT' ];
then
vendor/bin/phpunit --fail-on-risky --disallow-test-output --verbose;
fi
- >
if [ "$TASK" = 'CITEST' ];
then
bash local/ci/php_lint/php_lint.sh;
fi
- >
if [ "$TASK" = 'GRUNT' ];
then
grunt ;
# Add all files to the git index and then run diff --cached to see all changes.
# This ensures that we get the status of all files, including new files.
# We ignore npm-shrinkwrap.json to make the tasks immune to npm changes.
git add . ;
git reset -- npm-shrinkwrap.json ;
git diff --cached --exit-code ;
fi
after_script:
- >
if [ "$TASK" = 'PHPUNIT' ];
then
EXTTESTS_HITS=$(docker logs exttests 2>&1 | grep -Fv -e 'AH00558' -e '[pid 1]' | wc -l)
echo -e "\nTest local resources number of hits: ${EXTTESTS_HITS}.\n"
fi
+2
View File
@@ -260,6 +260,8 @@ module.exports = function(grunt) {
addTask('watch', grunt);
addTask('startup', grunt);
addTask('upgradablelibs', grunt);
// Register the default task.
grunt.registerTask('default', ['startup']);
};
+53 -35
View File
@@ -1,48 +1,66 @@
MOODLE TRADEMARKS POLICY
========================
The word "Moodle" is trademarked in many countries around the world. The word
was originally coined as an acronym: Modular Object-Oriented Dynamic Learning
Environment. The trademark is owned by Martin Dougiamas, Founder and Director
of Moodle.
The Moodle Trademark
--------------------
The law obligates trademark owners to police their marks and prevent the use of
confusingly similar names by third parties. Through this policy wed like to
make it clear how Moodle-related projects, organisations, and people can use
the Moodle trademark. Wed also like to be clear about how use of the word is
restricted when used to promote commercial Moodle services. We do this to
protect the very business model that allows us to continue developing Moodle
for you.
The brand and word "Moodle" has trade mark protection in many countries around
the world. Various Moodle™ trade marks are owned by either Moodle Pty Ltd or
one of its associated entities. The law obligates trade mark owners to police
their trade marks and prevent the use of confusingly similar names by
third parties.
Allowed uses
------------
We have created a more concise and thorough set of Trademark Guidelines
(https://moodle.com/wp-content/uploads/2023/02/Moodle-Trademark-Guidelines-2023-4.pdf)
to help you understand how to comply with Moodle's trade mark requirements.
The Trademark Guidelines will also assist our Moodle Certified Partners and the
community to understand some of the principles that inform Moodle's stance
whenever potential infringement has been detected by us or our community.
The following uses dont require any permission at all:
We need to be clear about use of the word "Moodle" and how we restrict its use
when promoting commercial Moodle™ branded services. The proper use of
trade marks reliably assures consumers about the quality of the associated
products or services and where they have been derived from. Because the
Moodle LMS is made available under the open source GNU General Public License'
that permits you to modify the copyrighted software, the distribution of such
modified software in combination with Moodle trade marks can potentially
mislead others in the community. To be clear, the GNU GPL does not include an
implied right or licence to use Moodle's trade marks.
* Referring to the software or the Moodle project.
* Describing your own Moodle implementation (including within corporate
settings).
We do all this to protect the very business model that allows us to continue
developing various Moodle software solutions for you.
Allowed uses of "Moodle"
------------------------
The following uses don't require any permission at all:
* Referring to the software or the Moodle project as the "Moodle™ software"
or the "Moodle™ project"
* Describing your own implementation of the Moodle™ software platform
(including within corporate settings).
* Describing a Moodle-based community hub.
* Describing some software youve made that integrates with Moodle
(eg a Moodle integration feature on another system).
* Describing certain software you've made that integrates with Moodle
branded software (e.g. a Moodle integration feature on another system).
Restricted uses
---------------
Restricted uses of "Moodle"
---------------------------
The following uses are generally prohibited without explicit and direct
permission being granted to you by Moodle Pty Ltd. We do this to protect the
Moodle project from software and sites which could confuse people. Please
contact us to ask for permission in writing.
Moodle project from software and sites which could confuse people. If in
doubt, reach out for clarification at <trademarks@moodle.com>
* You cant use "Moodle" in the name of your software (including Mobile apps)
* You cant use "Moodle" in your company name
* You cant use "Moodle" in your domain name
* You cant use "Moodle" in advertising-related keywords (such as Adsense)
* You cant use "Moodle" to describe services around Moodle (such as hosting,
training, support, consulting, course creation services, theme development,
customisation, installation, integration and certification). This applies
even if you do not charge for the services. Note that usually only Moodle
Partners have this permission.
For information about the Moodle Partner Certification Mark as well as for how
to contact us, please see <https://moodle.com/trademarks/>.
* You can't use the word "Moodle" or any Moodle logos for commercial purposes
without prior written permission from Moodle HQ.
* You can't use "Moodle" in the name of your software (including Mobile apps).
* You can't use "Moodle" in your company name.
* You can't use "Moodle" in your domain name.
* You can't use "Moodle" in advertising-related keywords (such as Adsense).
* You can't use "Moodle" to describe services around Moodle
(such as hosting, training, support, consulting, course creation services,
theme development, customisation, installation, integration, analytics
and certification) that cause consumers to be confused that you are
associated with Moodle HQ if you are not.
This applies even if you do not charge for the services.
Note that usually only Moodle Partners have this permission.
+3
View File
@@ -0,0 +1,3 @@
define("core_admin/block_management_table",["exports","./plugin_management_table","core_table/dynamic","core/ajax","core/pending","core/notification"],(function(_exports,_plugin_management_table,_dynamic,_ajax,_pending,_notification){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_plugin_management_table=_interopRequireDefault(_plugin_management_table),_pending=_interopRequireDefault(_pending);class _default extends _plugin_management_table.default{constructor(){super(),this.addClickHandler(this.handleBlockProtectToggle)}setBlockProtectState(plugin,state){return(0,_ajax.call)([{methodname:"core_admin_set_block_protection",args:{plugin:plugin,state:state}}])[0]}async handleBlockProtectToggle(tableRoot,e){const stateToggle=e.target.closest('[data-action="toggleprotectstate"]');if(stateToggle){e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:processAction");await this.setBlockProtectState(stateToggle.dataset.plugin,"1"===stateToggle.dataset.targetState?1:0);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]);updatedRoot.querySelector('[data-action="toggleprotectstate"][data-plugin="'.concat(stateToggle.dataset.plugin,'"]')).focus(),pendingPromise.resolve()}}}return _exports.default=_default,_exports.default}));
//# sourceMappingURL=block_management_table.min.js.map
@@ -0,0 +1 @@
{"version":3,"file":"block_management_table.min.js","sources":["../src/block_management_table.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\nimport PluginManagementTable from './plugin_management_table';\nimport {refreshTableContent} from 'core_table/dynamic';\nimport {call as fetchMany} from 'core/ajax';\nimport Pending from 'core/pending';\nimport {fetchNotifications} from 'core/notification';\n\nexport default class extends PluginManagementTable {\n constructor() {\n super();\n this.addClickHandler(this.handleBlockProtectToggle);\n }\n\n /**\n * Set the block protection state.\n *\n * @param {string} plugin\n * @param {number} state\n * @returns {Promise}\n */\n setBlockProtectState(plugin, state) {\n return fetchMany([{\n methodname: 'core_admin_set_block_protection',\n args: {\n plugin,\n state,\n },\n }])[0];\n }\n\n /**\n * Handle toggling of block protection.\n *\n * @param {HTMLElement} tableRoot\n * @param {Event} e\n */\n async handleBlockProtectToggle(tableRoot, e) {\n const stateToggle = e.target.closest('[data-action=\"toggleprotectstate\"]');\n if (stateToggle) {\n e.preventDefault();\n const pendingPromise = new Pending('core_table/dynamic:processAction');\n\n await this.setBlockProtectState(\n stateToggle.dataset.plugin,\n stateToggle.dataset.targetState === '1' ? 1 : 0\n );\n\n const [updatedRoot] = await Promise.all([\n refreshTableContent(tableRoot),\n fetchNotifications(),\n ]);\n\n // Refocus on the link that as pressed in the first place.\n updatedRoot.querySelector(`[data-action=\"toggleprotectstate\"][data-plugin=\"${stateToggle.dataset.plugin}\"]`).focus();\n pendingPromise.resolve();\n }\n }\n}\n"],"names":["PluginManagementTable","constructor","addClickHandler","this","handleBlockProtectToggle","setBlockProtectState","plugin","state","methodname","args","tableRoot","e","stateToggle","target","closest","preventDefault","pendingPromise","Pending","dataset","targetState","updatedRoot","Promise","all","querySelector","focus","resolve"],"mappings":"uhBAqB6BA,iCACzBC,2BAESC,gBAAgBC,KAAKC,0BAU9BC,qBAAqBC,OAAQC,cAClB,cAAU,CAAC,CACdC,WAAY,kCACZC,KAAM,CACFH,OAAAA,OACAC,MAAAA,UAEJ,kCASuBG,UAAWC,SAChCC,YAAcD,EAAEE,OAAOC,QAAQ,yCACjCF,YAAa,CACbD,EAAEI,uBACIC,eAAiB,IAAIC,iBAAQ,0CAE7Bd,KAAKE,qBACPO,YAAYM,QAAQZ,OACgB,MAApCM,YAAYM,QAAQC,YAAsB,EAAI,SAG3CC,mBAAqBC,QAAQC,IAAI,EACpC,gCAAoBZ,YACpB,wCAIJU,YAAYG,wEAAiEX,YAAYM,QAAQZ,cAAYkB,QAC7GR,eAAeS"}
+3
View File
@@ -0,0 +1,3 @@
define("core_admin/plugin_management_table",["exports","core_table/dynamic","core_table/local/dynamic/selectors","core/ajax","core/pending","core/notification"],(function(_exports,_dynamic,Selectors,_ajax,_pending,_notification){var obj;function _getRequireWildcardCache(nodeInterop){if("function"!=typeof WeakMap)return null;var cacheBabelInterop=new WeakMap,cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Selectors=function(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(null===obj||"object"!=typeof obj&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if("default"!==key&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}(Selectors),_pending=(obj=_pending)&&obj.__esModule?obj:{default:obj};let watching=!1;return _exports.default=class{constructor(){!function(obj,key,value){key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value}(this,"clickHandlers",[]),this.addClickHandler(this.handleStateToggle),this.addClickHandler(this.handleMoveUpDown),this.registerEventListeners()}static init(){watching||(watching=!0,new this)}addClickHandler(handler){this.clickHandlers.push(handler.bind(this))}registerEventListeners(){document.addEventListener("click",function(e){const tableRoot=this.getTableRoot(e);tableRoot&&this.clickHandlers.forEach((handler=>handler(tableRoot,e)))}.bind(this))}getTableRoot(e){const tableRoot=e.target.closest(Selectors.main.region);return tableRoot||!1}setPluginState(methodname,plugin,state){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,state:state}}])[0]}setPluginOrder(methodname,plugin,direction){return(0,_ajax.call)([{methodname:methodname,args:{plugin:plugin,direction:direction}}])[0]}async handleStateToggle(tableRoot,e){const stateToggle=e.target.closest('[data-action="togglestate"][data-toggle-method]');if(stateToggle){e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:togglestate");await this.setPluginState(stateToggle.dataset.toggleMethod,stateToggle.dataset.plugin,"1"===stateToggle.dataset.state?0:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]);updatedRoot.querySelector('[data-action="togglestate"][data-plugin="'.concat(stateToggle.dataset.plugin,'"]')).focus(),pendingPromise.resolve()}}async handleMoveUpDown(tableRoot,e){const actionLink=e.target.closest('[data-action="move"][data-method][data-direction]');if(!actionLink)return;e.preventDefault();const pendingPromise=new _pending.default("core_table/dynamic:processAction");await this.setPluginOrder(actionLink.dataset.method,actionLink.dataset.plugin,"up"===actionLink.dataset.direction?-1:1);const[updatedRoot]=await Promise.all([(0,_dynamic.refreshTableContent)(tableRoot),(0,_notification.fetchNotifications)()]),exactMatch=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"][data-direction="').concat(actionLink.dataset.direction,'"]'));var _updatedRoot$querySel;exactMatch?exactMatch.focus():null===(_updatedRoot$querySel=updatedRoot.querySelector('[data-action="move"][data-plugin="'.concat(actionLink.dataset.plugin,'"]')))||void 0===_updatedRoot$querySel||_updatedRoot$querySel.focus();pendingPromise.resolve()}},_exports.default}));
//# sourceMappingURL=plugin_management_table.min.js.map
File diff suppressed because one or more lines are too long
+72
View File
@@ -0,0 +1,72 @@
// 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/>.
import PluginManagementTable from './plugin_management_table';
import {refreshTableContent} from 'core_table/dynamic';
import {call as fetchMany} from 'core/ajax';
import Pending from 'core/pending';
import {fetchNotifications} from 'core/notification';
export default class extends PluginManagementTable {
constructor() {
super();
this.addClickHandler(this.handleBlockProtectToggle);
}
/**
* Set the block protection state.
*
* @param {string} plugin
* @param {number} state
* @returns {Promise}
*/
setBlockProtectState(plugin, state) {
return fetchMany([{
methodname: 'core_admin_set_block_protection',
args: {
plugin,
state,
},
}])[0];
}
/**
* Handle toggling of block protection.
*
* @param {HTMLElement} tableRoot
* @param {Event} e
*/
async handleBlockProtectToggle(tableRoot, e) {
const stateToggle = e.target.closest('[data-action="toggleprotectstate"]');
if (stateToggle) {
e.preventDefault();
const pendingPromise = new Pending('core_table/dynamic:processAction');
await this.setBlockProtectState(
stateToggle.dataset.plugin,
stateToggle.dataset.targetState === '1' ? 1 : 0
);
const [updatedRoot] = await Promise.all([
refreshTableContent(tableRoot),
fetchNotifications(),
]);
// Refocus on the link that as pressed in the first place.
updatedRoot.querySelector(`[data-action="toggleprotectstate"][data-plugin="${stateToggle.dataset.plugin}"]`).focus();
pendingPromise.resolve();
}
}
}
+179
View File
@@ -0,0 +1,179 @@
// 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/>.
import {refreshTableContent} from 'core_table/dynamic';
import * as Selectors from 'core_table/local/dynamic/selectors';
import {call as fetchMany} from 'core/ajax';
import Pending from 'core/pending';
import {fetchNotifications} from 'core/notification';
let watching = false;
export default class {
/**
* @property {function[]} clickHandlers a list of handlers to call on click.
*/
clickHandlers = [];
constructor() {
this.addClickHandler(this.handleStateToggle);
this.addClickHandler(this.handleMoveUpDown);
this.registerEventListeners();
}
/**
* Initialise an instance of the class.
*
* This is just a way of making it easier to initialise an instance of the class from PHP.
*/
static init() {
if (watching) {
return;
}
watching = true;
new this();
}
/**
* Add a click handler to the list of handlers.
*
* @param {Function} handler A handler to call on a click event
*/
addClickHandler(handler) {
this.clickHandlers.push(handler.bind(this));
}
/**
* Register the event listeners for this instance.
*/
registerEventListeners() {
document.addEventListener('click', function(e) {
const tableRoot = this.getTableRoot(e);
if (!tableRoot) {
return;
}
this.clickHandlers.forEach((handler) => handler(tableRoot, e));
}.bind(this));
}
/**
* Get the table root from an event.
*
* @param {Event} e
* @returns {HTMLElement|bool}
*/
getTableRoot(e) {
const tableRoot = e.target.closest(Selectors.main.region);
if (!tableRoot) {
return false;
}
return tableRoot;
}
/**
* Set the plugin state (enabled or disabled)
*
* @param {string} methodname The web service to call
* @param {string} plugin The name of the plugin to set the state for
* @param {number} state The state to set
* @returns {Promise}
*/
setPluginState(methodname, plugin, state) {
return fetchMany([{
methodname,
args: {
plugin,
state,
},
}])[0];
}
setPluginOrder(methodname, plugin, direction) {
return fetchMany([{
methodname,
args: {
plugin,
direction,
},
}])[0];
}
/**
* Handle state toggling.
*
* @param {HTMLElement} tableRoot
* @param {Event} e
*/
async handleStateToggle(tableRoot, e) {
const stateToggle = e.target.closest('[data-action="togglestate"][data-toggle-method]');
if (stateToggle) {
e.preventDefault();
const pendingPromise = new Pending('core_table/dynamic:togglestate');
await this.setPluginState(
stateToggle.dataset.toggleMethod,
stateToggle.dataset.plugin,
stateToggle.dataset.state === '1' ? 0 : 1
);
const [updatedRoot] = await Promise.all([
refreshTableContent(tableRoot),
fetchNotifications(),
]);
// Refocus on the link that as pressed in the first place.
updatedRoot.querySelector(`[data-action="togglestate"][data-plugin="${stateToggle.dataset.plugin}"]`).focus();
pendingPromise.resolve();
}
}
async handleMoveUpDown(tableRoot, e) {
const actionLink = e.target.closest('[data-action="move"][data-method][data-direction]');
if (!actionLink) {
return;
}
e.preventDefault();
const pendingPromise = new Pending('core_table/dynamic:processAction');
await this.setPluginOrder(
actionLink.dataset.method,
actionLink.dataset.plugin,
actionLink.dataset.direction === 'up' ? -1 : 1,
);
const [updatedRoot] = await Promise.all([
refreshTableContent(tableRoot),
fetchNotifications(),
]);
// Refocus on the link that as pressed in the first place.
const exactMatch = updatedRoot.querySelector(
`[data-action="move"][data-plugin="${actionLink.dataset.plugin}"][data-direction="${actionLink.dataset.direction}"]`
);
if (exactMatch) {
exactMatch.focus();
} else {
// The move link is not present anymore, so we need to focus on the other one.
updatedRoot.querySelector(`[data-action="move"][data-plugin="${actionLink.dataset.plugin}"]`)?.focus();
}
pendingPromise.resolve();
}
}
+3 -3
View File
@@ -28,7 +28,7 @@ if (empty($CFG->auth)) {
}
if (!empty($auth) and !exists_auth_plugin($auth)) {
print_error('pluginnotinstalled', 'auth', $returnurl, $auth);
throw new \moodle_exception('pluginnotinstalled', 'auth', $returnurl, $auth);
}
////////////////////////////////////////////////////////////////////////////////
@@ -55,7 +55,7 @@ switch ($action) {
$key = array_search($auth, $authsenabled);
// check auth plugin is valid
if ($key === false) {
print_error('pluginnotenabled', 'auth', $returnurl, $auth);
throw new \moodle_exception('pluginnotenabled', 'auth', $returnurl, $auth);
}
// move down the list
if ($key < (count($authsenabled) - 1)) {
@@ -72,7 +72,7 @@ switch ($action) {
$key = array_search($auth, $authsenabled);
// check auth is valid
if ($key === false) {
print_error('pluginnotenabled', 'auth', $returnurl, $auth);
throw new \moodle_exception('pluginnotenabled', 'auth', $returnurl, $auth);
}
// move up the list
if ($key >= 1) {
-210
View File
@@ -1,210 +0,0 @@
<?php
/**
* Edit configuration for an individual auth plugin
*/
require_once '../config.php';
require_once $CFG->libdir.'/adminlib.php';
$auth = required_param('auth', PARAM_PLUGIN);
$PAGE->set_pagetype('admin-auth-' . $auth);
admin_externalpage_setup('authsetting'.$auth);
$authplugin = get_auth_plugin($auth);
$err = array();
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageauths";
debugging("Use of config.html files in authentication plugins have been deprecated. " .
" Please migrate your plugin to use the admin settings API", DEBUG_DEVELOPER);
// save configuration changes
if ($frm = data_submitted() and confirm_sesskey()) {
$authplugin->validate_form($frm, $err);
if (count($err) == 0) {
// save plugin config
if ($authplugin->process_config($frm)) {
// save field lock configuration
foreach ($frm as $name => $value) {
if (preg_match('/^lockconfig_(.+?)$/', $name, $matches)) {
$plugin = "auth/$auth";
$name = $matches[1];
set_config($name, $value, $plugin);
}
}
redirect($returnurl);
exit;
}
} else {
foreach ($err as $key => $value) {
$focus = "form.$key";
}
}
} else {
$frmlegacystyle = get_config('auth/'.$auth);
$frmnewstyle = get_config('auth_'.$auth);
$frm = (object)array_merge((array)$frmlegacystyle, (array)$frmnewstyle);
}
$user_fields = $authplugin->userfields;
//$user_fields = array("firstname", "lastname", "email", "phone1", "phone2", "institution", "department", "address", "city", "country", "description", "idnumber", "lang");
/// Get the auth title (from core or own auth lang files)
$authtitle = $authplugin->get_title();
/// Get the auth descriptions (from core or own auth lang files)
$authdescription = $authplugin->get_description();
// output configuration form
echo $OUTPUT->header();
// choose an authentication method
echo "<form id=\"authmenu\" method=\"post\" action=\"auth_config.php\">\n";
echo "<div>\n";
echo "<input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\" />\n";
echo "<input type=\"hidden\" name=\"auth\" value=\"".$auth."\" />\n";
// auth plugin description
echo $OUTPUT->box_start();
echo $OUTPUT->heading($authtitle);
echo $OUTPUT->box_start('informationbox');
echo $authdescription;
echo $OUTPUT->box_end();
echo "<hr />\n";
$authplugin->config_form($frm, $err, $user_fields);
echo $OUTPUT->box_end();
echo '<p style="text-align: center"><input type="submit" value="' . get_string("savechanges") . "\" /></p>\n";
echo "</div>\n";
echo "</form>\n";
$PAGE->requires->string_for_js('unmaskpassword', 'core_form');
$PAGE->requires->yui_module('moodle-auth-passwordunmask', 'M.auth.passwordunmask');
echo $OUTPUT->footer();
exit;
/// Functions /////////////////////////////////////////////////////////////////
/**
* auth field locking
* Good enough for most auth plugins
* but some may want a custom one if they are offering
* other options
* Note: lockconfig_ fields have special handling.
*
* @param string $auth authentication plugin shortname
* @param array $user_fields user profile fields
* @param string $helptext help text to be displayed at top of form
* @param boolean $retrieveopts Map fields or lock only.
* @param boolean $updateopts Allow remote updates
* @param array $customfields list of custom profile fields
* @deprecated since Moodle 3.3
*/
function print_auth_lock_options($auth, $user_fields, $helptext, $retrieveopts, $updateopts, $customfields = array()) {
global $DB, $OUTPUT;
debugging("The function 'print_auth_lock_options' has been deprecated, " .
"Please migrate your code to use the admin settings API and use the function 'display_auth_lock_options' instead. ",
DEBUG_DEVELOPER);
echo '<tr><td colspan="3">';
if ($retrieveopts) {
echo $OUTPUT->heading(get_string('auth_data_mapping', 'auth'));
} else {
echo $OUTPUT->heading(get_string('auth_fieldlocks', 'auth'));
}
echo '</td></tr>';
$lockoptions = array ('unlocked' => get_string('unlocked', 'auth'),
'unlockedifempty' => get_string('unlockedifempty', 'auth'),
'locked' => get_string('locked', 'auth'));
$updatelocaloptions = array('oncreate' => get_string('update_oncreate', 'auth'),
'onlogin' => get_string('update_onlogin', 'auth'));
$updateextoptions = array('0' => get_string('update_never', 'auth'),
'1' => get_string('update_onupdate', 'auth'));
$pluginconfig = get_config("auth/$auth");
// Helptext is on a field with rowspan.
if (empty($helptext)) {
$helptext = '&nbsp;';
}
// If we have custom fields then merge them with user fields.
if (!empty($customfields)) {
$user_fields = array_merge($user_fields, $customfields);
}
if (!empty($customfields)) {
$customfieldname = $DB->get_records('user_info_field', null, '', 'shortname, name');
}
foreach ($user_fields as $field) {
// Define some vars we'll work with.
if (!isset($pluginconfig->{"field_map_$field"})) {
$pluginconfig->{"field_map_$field"} = '';
}
if (!isset($pluginconfig->{"field_updatelocal_$field"})) {
$pluginconfig->{"field_updatelocal_$field"} = '';
}
if (!isset($pluginconfig->{"field_updateremote_$field"})) {
$pluginconfig->{"field_updateremote_$field"} = '';
}
if (!isset($pluginconfig->{"field_lock_$field"})) {
$pluginconfig->{"field_lock_$field"} = '';
}
// Define the fieldname we display to the user.
$fieldname = $field;
if ($fieldname === 'lang') {
$fieldname = get_string('language');
} elseif (!empty($customfields) && in_array($field, $customfields)) {
// If custom field then pick name from database.
$fieldshortname = str_replace('profile_field_', '', $fieldname);
$fieldname = $customfieldname[$fieldshortname]->name;
if (core_text::strlen($fieldshortname) > 67) {
// If custom profile field name is longer than 67 characters we will not be able to store the setting
// such as 'field_updateremote_profile_field_NOTSOSHORTSHORTNAME' in the database because the character
// limit for the setting name is 100.
continue;
}
} else {
$fieldname = get_string($fieldname);
}
if ($retrieveopts) {
$varname = 'field_map_' . $field;
echo '<tr valign="top"><td align="right">';
echo '<label for="lockconfig_'.$varname.'">'.$fieldname.'</label>';
echo '</td><td>';
echo "<input id=\"lockconfig_{$varname}\" name=\"lockconfig_{$varname}\" type=\"text\" size=\"30\" value=\"{$pluginconfig->$varname}\" />";
echo '<div style="text-align: right">';
echo '<label for="menulockconfig_field_updatelocal_'.$field.'">'.get_string('auth_updatelocal', 'auth') . '</label>&nbsp;';
echo html_writer::select($updatelocaloptions, "lockconfig_field_updatelocal_{$field}", $pluginconfig->{"field_updatelocal_$field"}, false);
echo '<br />';
if ($updateopts) {
echo '<label for="menulockconfig_field_updateremote_'.$field.'">'.get_string('auth_updateremote', 'auth') . '</label>&nbsp;';
echo html_writer::select($updateextoptions, "lockconfig_field_updateremote_{$field}", $pluginconfig->{"field_updateremote_$field"}, false);
echo '<br />';
}
echo '<label for="menulockconfig_field_lock_'.$field.'">'.get_string('auth_fieldlock', 'auth') . '</label>&nbsp;';
echo html_writer::select($lockoptions, "lockconfig_field_lock_{$field}", $pluginconfig->{"field_lock_$field"}, false);
echo '</div>';
} else {
echo '<tr valign="top"><td align="right">';
echo '<label for="menulockconfig_field_lock_'.$field.'">'.$fieldname.'</label>';
echo '</td><td>';
echo html_writer::select($lockoptions, "lockconfig_field_lock_{$field}", $pluginconfig->{"field_lock_$field"}, false);
}
echo '</td>';
if (!empty($helptext)) {
echo '<td rowspan="' . count($user_fields) . '">' . $helptext . '</td>';
$helptext = '';
}
echo '</tr>';
}
}
+79 -224
View File
@@ -1,239 +1,94 @@
<?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/>.
// Allows the admin to configure blocks (hide/show, uninstall and configure)
/**
* Allows the admin to configure blocks (hide/show, uninstall and configure)
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/blocklib.php');
require_once($CFG->libdir.'/tablelib.php');
require_once('../config.php');
require_once("{$CFG->libdir}/adminlib.php");
require_once("{$CFG->libdir}/blocklib.php");
require_once("{$CFG->libdir}/tablelib.php");
admin_externalpage_setup('manageblocks');
admin_externalpage_setup('manageblocks');
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$hide = optional_param('hide', 0, PARAM_INT);
$show = optional_param('show', 0, PARAM_INT);
$unprotect = optional_param('unprotect', 0, PARAM_INT);
$protect = optional_param('protect', 0, PARAM_INT);
$plugin = optional_param('plugin', '', PARAM_PLUGIN);
$action = optional_param('action', '', PARAM_ALPHA);
$unprotect = optional_param('unprotect', 0, PARAM_PLUGIN);
$protect = optional_param('protect', 0, PARAM_PLUGIN);
/// Print headings
$strmanageblocks = get_string('manageblocks');
$strmanageblocks = get_string('manageblocks');
$struninstall = get_string('uninstallplugin', 'core_admin');
$strversion = get_string('version');
$strhide = get_string('hide');
$strshow = get_string('show');
$strsettings = get_string('settings');
$strcourses = get_string('blockinstances', 'admin');
$strname = get_string('name');
$strshowblockcourse = get_string('showblockcourse');
$strprotecthdr = get_string('blockprotect', 'admin'). $OUTPUT->help_icon('blockprotect','admin');
$strprotect = get_string('blockprotect', 'admin');
$strunprotect = get_string('blockunprotect', 'admin');
// If data submitted, then process and store.
if (!empty($plugin) && !empty($action) && confirm_sesskey()) {
$manager = \core_plugin_manager::resolve_plugininfo_class('block');
$pluginname = get_string('pluginname', "block_{$plugin}");
// If data submitted, then process and store.
if (!empty($hide) && confirm_sesskey()) {
if (!$block = $DB->get_record('block', ['id' => $hide])) {
throw new \moodle_exception('blockdoesnotexist', 'error');
}
$class = \core_plugin_manager::resolve_plugininfo_class('block');
$class::enable_plugin($block->name, false);
// Settings not required - only pages.
admin_get_root(true, false);
}
if (!empty($show) && confirm_sesskey() ) {
if (!$block = $DB->get_record('block', ['id' => $show])) {
throw new \moodle_exception('blockdoesnotexist', 'error');
}
$class = \core_plugin_manager::resolve_plugininfo_class('block');
$class::enable_plugin($block->name, true);
// Settings not required - only pages.
admin_get_root(true, false);
}
if (!empty($protect) && confirm_sesskey()) {
block_manager::protect_block((int)$protect);
admin_get_root(true, false); // settings not required - only pages
}
if (!empty($unprotect) && confirm_sesskey()) {
block_manager::unprotect_block((int)$unprotect);
admin_get_root(true, false); // settings not required - only pages
}
$undeletableblocktypes = block_manager::get_undeletable_block_types();
echo $OUTPUT->header();
echo $OUTPUT->heading($strmanageblocks);
echo $OUTPUT->notification(get_string('noteunneededblocks', 'admin'), 'info');
/// Main display starts here
/// Get and sort the existing blocks
if (!$blocks = $DB->get_records('block', array(), 'name ASC')) {
print_error('noblocks', 'error'); // Should never happen
}
$incompatible = array();
/// Print the table of all blocks
$table = new flexible_table('admin-blocks-compatible');
$table->define_columns(array('name', 'instances', 'version', 'hideshow', 'undeletable', 'settings', 'uninstall'));
$table->define_headers(array($strname, $strcourses, $strversion, $strhide.'/'.$strshow, $strprotecthdr, $strsettings, $struninstall));
$table->define_baseurl($CFG->wwwroot.'/'.$CFG->admin.'/blocks.php');
$table->set_attribute('class', 'admintable blockstable generaltable');
$table->set_attribute('id', 'compatibleblockstable');
$table->setup();
$tablerows = array();
// Sort blocks using current locale.
$blocknames = array();
foreach ($blocks as $blockid=>$block) {
$blockname = $block->name;
if (file_exists("$CFG->dirroot/blocks/$blockname/block_$blockname.php")) {
$blocknames[$blockid] = get_string('pluginname', 'block_'.$blockname);
} else {
$blocknames[$blockid] = $blockname;
}
}
core_collator::asort($blocknames);
foreach ($blocknames as $blockid=>$strblockname) {
$block = $blocks[$blockid];
$blockname = $block->name;
$dbversion = get_config('block_'.$block->name, 'version');
if (!file_exists("$CFG->dirroot/blocks/$blockname/block_$blockname.php")) {
$blockobject = false;
$strblockname = '<span class="notifyproblem">'.$strblockname.' ('.get_string('missingfromdisk').')</span>';
$plugin = new stdClass();
$plugin->version = $dbversion;
} else {
$plugin = new stdClass();
$plugin->version = '???';
if (file_exists("$CFG->dirroot/blocks/$blockname/version.php")) {
include("$CFG->dirroot/blocks/$blockname/version.php");
}
if (!$blockobject = block_instance($block->name)) {
$incompatible[] = $block;
continue;
}
}
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('block_'.$blockname, 'manage')) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
} else {
$uninstall = '';
}
$settings = ''; // By default, no configuration
if ($blockobject and $blockobject->has_config()) {
$blocksettings = admin_get_root()->locate('blocksetting' . $block->name);
if ($blocksettings instanceof admin_externalpage) {
$settings = '<a href="' . $blocksettings->url . '">' . get_string('settings') . '</a>';
} else if ($blocksettings instanceof admin_settingpage) {
$settings = '<a href="'.$CFG->wwwroot.'/'.$CFG->admin.'/settings.php?section=blocksetting'.$block->name.'">'.$strsettings.'</a>';
} else if (!file_exists($CFG->dirroot.'/blocks/'.$block->name.'/settings.php')) {
// If the block's settings node was not found, we check that the block really provides the settings.php file.
// Note that blocks can inject their settings to other nodes in the admin tree without using the default locations.
// This can be done by assigning null to $setting in settings.php and it is a valid case.
debugging('Warning: block_'.$block->name.' returns true in has_config() but does not provide a settings.php file',
DEBUG_DEVELOPER);
}
}
// MDL-11167, blocks can be placed on mymoodle, or the blogs page
// and it should not show up on course search page
$totalcount = $DB->count_records('block_instances', array('blockname'=>$blockname));
$count = $DB->count_records('block_instances', array('blockname'=>$blockname, 'pagetypepattern'=>'course-view-*'));
if ($count>0) {
$blocklist = "<a href=\"{$CFG->wwwroot}/course/search.php?blocklist=$blockid&amp;sesskey=".sesskey()."\" ";
$blocklist .= "title=\"$strshowblockcourse\" >$totalcount</a>";
}
else {
$blocklist = "$totalcount";
}
$class = ''; // Nothing fancy, by default
if (!$blockobject) {
// ignore
$visible = '';
} else if ($blocks[$blockid]->visible) {
$visible = '<a href="blocks.php?hide='.$blockid.'&amp;sesskey='.sesskey().'" title="'.$strhide.'">'.
$OUTPUT->pix_icon('t/hide', $strhide) . '</a>';
} else {
$visible = '<a href="blocks.php?show='.$blockid.'&amp;sesskey='.sesskey().'" title="'.$strshow.'">'.
$OUTPUT->pix_icon('t/show', $strshow) . '</a>';
$class = 'dimmed_text';
}
if ($dbversion == $plugin->version) {
$version = $dbversion;
} else {
$version = "$dbversion ($plugin->version)";
}
if (!$blockobject) {
// ignore
$undeletable = '';
} else if (in_array($blockname, $undeletableblocktypes)) {
$undeletable = '<a href="blocks.php?unprotect='.$blockid.'&amp;sesskey='.sesskey().'" title="'.$strunprotect.'">'.
$OUTPUT->pix_icon('t/unlock', $strunprotect) . '</a>';
} else {
$undeletable = '<a href="blocks.php?protect='.$blockid.'&amp;sesskey='.sesskey().'" title="'.$strprotect.'">'.
$OUTPUT->pix_icon('t/lock', $strprotect) . '</a>';
}
$row = array(
$strblockname,
$blocklist,
$version,
$visible,
$undeletable,
$settings,
$uninstall,
if ($action === 'disable' && $manager::enable_plugin($plugin, 0)) {
\core\notification::add(
get_string('plugin_disabled', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
$table->add_data($row, $class);
// Settings not required - only pages.
admin_get_root(true, false);
} else if ($action === 'enable' && $manager::enable_plugin($plugin, 1)) {
\core\notification::add(
get_string('plugin_enabled', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
// Settings not required - only pages.
admin_get_root(true, false);
}
$table->print_html();
// Redirect back to the page with out any params.
redirect(new moodle_url('/admin/blocks.php'));
}
if (!empty($incompatible)) {
echo $OUTPUT->heading(get_string('incompatibleblocks', 'blockstable', 'admin'));
if (!empty($protect) && confirm_sesskey()) {
block_manager::protect_block($protect);
$pluginname = get_string('pluginname', "block_{$protect}");
\core\notification::add(
get_string('blockprotected', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
// Settings not required - only pages.
admin_get_root(true, false);
}
$table = new flexible_table('admin-blocks-incompatible');
if (!empty($unprotect) && confirm_sesskey()) {
block_manager::unprotect_block($unprotect);
$pluginname = get_string('pluginname', "block_{$unprotect}");
\core\notification::add(
get_string('blockunprotected', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
// Settings not required - only pages.
admin_get_root(true, false);
}
$table->define_columns(array('block', 'uninstall'));
$table->define_headers(array($strname, $struninstall));
$table->define_baseurl($CFG->wwwroot.'/'.$CFG->admin.'/blocks.php');
echo $OUTPUT->header();
echo $OUTPUT->heading($strmanageblocks);
echo $OUTPUT->notification(get_string('noteunneededblocks', 'admin'), 'info', false);
$table->set_attribute('class', 'incompatibleblockstable generaltable');
$table->setup();
foreach ($incompatible as $block) {
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('block_'.$block->name, 'manage')) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
} else {
$uninstall = '';
}
$table->add_data(array(
$block->name,
$uninstall,
));
}
$table->print_html();
}
echo $OUTPUT->footer();
// Print the table of all blocks.
$table = new \core_admin\table\block_management_table();
$table->out();
echo $OUTPUT->footer();
+2 -2
View File
@@ -41,11 +41,11 @@ $adminroot = admin_get_root(); // need all settings
$settingspage = $adminroot->locate($category, true);
if (empty($settingspage) or !($settingspage instanceof admin_category)) {
print_error('categoryerror', 'admin', "$CFG->wwwroot/$CFG->admin/");
throw new \moodle_exception('categoryerror', 'error', "$CFG->wwwroot/$CFG->admin/");
}
if (!($settingspage->check_access())) {
print_error('accessdenied', 'admin');
throw new \moodle_exception('accessdenied', 'admin');
}
$hassiteconfig = has_capability('moodle/site:config', $PAGE->context);
@@ -0,0 +1,127 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\admin;
use admin_setting;
use core_plugin_manager;
use core_text;
/**
* Admin setting plugin manager.
*
* @package core_admin
* @subpackage admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class admin_setting_plugin_manager extends admin_setting {
/** @var core_plugin_manager The plugin manager instance */
protected core_plugin_manager $pluginmanager;
/** @var string The plugintype that this manager covers */
protected string $plugintype;
/** @var string The class of the management table to use */
protected string $tableclass;
public function __construct(
string $plugintype,
string $tableclass,
string $name,
string $visiblename,
string $description = '',
string $defaultsetting = '',
) {
$this->nosave = true;
$this->pluginmanager = core_plugin_manager::instance();
$this->plugintype = $plugintype;
$this->tableclass = $tableclass;
parent::__construct($name, $visiblename, $description, $defaultsetting);
}
/**
* Always returns true, does nothing
*
* @return true
*/
public function get_setting(): bool {
return true;
}
/**
* Always returns true, does nothing
*
* @return true
*/
public function get_defaultsetting(): bool {
return true;
}
/**
* Always returns '', does not write anything
*
* @return string Always returns ''
*/
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
public function write_setting($data): string {
// Do not write any setting.
return '';
}
/**
* Checks if $query is one of the available editors
*
* @param string $query The string to search for
* @return bool Returns true if found, false if not
*/
public function is_related($query) {
if (parent::is_related($query)) {
return true;
}
$plugins = $this->pluginmanager->get_installed_plugins($this->plugintype);
foreach (array_keys($plugins) as $plugin) {
$plugin = "{$this->plugintype}_{$plugin}";
if (str_contains($plugin, $query)) {
return true;
}
$pluginname = get_string('pluginname', $plugin);
if (strpos(core_text::strtolower($pluginname), $query) !== false) {
return true;
}
}
return false;
}
/**
* Builds the XHTML to display the control
*
* @param string $data Unused
* @param string $query
* @return string
*/
public function output_html($data, $query = ''): string {
$table = new $this->tableclass();
if (!($table instanceof \core_admin\table\plugin_management_table)) {
throw new \coding_exception("{$this->tableclass} must be an instance of \\core_admin\\table\\plugin_management_table");
}
return highlight($query, $table->get_content());
}
}
+97
View File
@@ -0,0 +1,97 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\external;
use block_manager;
use core_external\external_api;
use core_external\external_function_parameters;
use core_external\external_single_structure;
use core_external\external_value;
/**
* Web Service to control the state of a plugin.
*
* @package core_admin
* @category external
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_block_protection extends external_api {
/**
* Returns description of method parameters
*
* @return external_function_parameters
*/
public static function execute_parameters(): external_function_parameters {
return new external_function_parameters([
'plugin' => new external_value(PARAM_PLUGIN, 'The name of the plugin', VALUE_REQUIRED),
'state' => new external_value(PARAM_INT, 'The target state', VALUE_REQUIRED),
]);
}
/**
* Set the block protection state.
*
* @param string $plugin The name of the plugin
* @param int $state The target state
* @return null
*/
public static function execute(
string $plugin,
int $state,
): array {
[
'plugin' => $plugin,
'state' => $state,
] = self::validate_parameters(self::execute_parameters(), [
'plugin' => $plugin,
'state' => $state,
]);
$context = \context_system::instance();
self::validate_context($context);
require_capability('moodle/site:config', $context);
[, $pluginname] = explode('_', \core_component::normalize_componentname($plugin), 2);
$displayname = get_string('pluginname', $plugin);
if ($state) {
block_manager::protect_block($pluginname);
\core\notification::add(
get_string('blockprotected', 'core_admin', $displayname),
\core\notification::SUCCESS
);
} else {
block_manager::unprotect_block($pluginname);
\core\notification::add(
get_string('blockunprotected', 'core_admin', $displayname),
\core\notification::SUCCESS
);
}
return [];
}
/**
* Describe the return structure of the external service.
*
* @return external_single_structure
*/
public static function execute_returns(): external_single_structure {
return new external_single_structure([]);
}
}
+84
View File
@@ -0,0 +1,84 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\external;
use core_external\external_api;
use core_external\external_function_parameters;
use core_external\external_single_structure;
use core_external\external_value;
/**
* Web Service to control the order of a plugin.
*
* @package core_admin
* @category external
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_order extends external_api {
/**
* Returns description of method parameters
*
* @return external_function_parameters
*/
public static function execute_parameters(): external_function_parameters {
return new external_function_parameters([
'plugin' => new external_value(PARAM_PLUGIN, 'The name of the plugin', VALUE_REQUIRED),
'direction' => new external_value(PARAM_INT, 'The direction to move', VALUE_REQUIRED),
]);
}
/**
* Set the plugin state.
*
* @param string $plugin The name of the plugin
* @param int $direction The direction to move the plugin
* @return array
*/
public static function execute(
string $plugin,
int $direction,
): array {
[
'plugin' => $plugin,
'direction' => $direction,
] = self::validate_parameters(self::execute_parameters(), [
'plugin' => $plugin,
'direction' => $direction,
]);
$context = \context_system::instance();
self::validate_context($context);
require_capability('moodle/site:config', $context);
[$plugintype, $pluginname] = explode('_', \core_component::normalize_componentname($plugin), 2);
$manager = \core_plugin_manager::resolve_plugininfo_class($plugintype);
$manager::change_plugin_order($pluginname, $direction);
return [];
}
/**
* Describe the return structure of the external service.
*
* @return external_single_structure
*/
public static function execute_returns(): external_single_structure {
return new external_single_structure([]);
}
}
+98
View File
@@ -0,0 +1,98 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\external;
use core_external\external_api;
use core_external\external_function_parameters;
use core_external\external_single_structure;
use core_external\external_value;
/**
* Web Service to control the state of a plugin.
*
* @package core_admin
* @category external
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_state extends external_api {
/**
* Returns description of method parameters
*
* @return external_function_parameters
*/
public static function execute_parameters(): external_function_parameters {
return new external_function_parameters([
'plugin' => new external_value(PARAM_PLUGIN, 'The name of the plugin', VALUE_REQUIRED),
'state' => new external_value(PARAM_INT, 'The target state', VALUE_REQUIRED),
]);
}
/**
* Set the plugin state.
*
* @param string $plugin The name of the plugin
* @param int $state The target state
* @return null
*/
public static function execute(
string $plugin,
int $state,
): array {
[
'plugin' => $plugin,
'state' => $state,
] = self::validate_parameters(self::execute_parameters(), [
'plugin' => $plugin,
'state' => $state,
]);
$context = \context_system::instance();
self::validate_context($context);
require_capability('moodle/site:config', $context);
[$plugintype, $pluginname] = explode('_', \core_component::normalize_componentname($plugin), 2);
$manager = \core_plugin_manager::resolve_plugininfo_class($plugintype);
$displayname = get_string('pluginname', $plugin);
if ($manager::enable_plugin($pluginname, $state)) {
if (!empty($state)) {
\core\notification::add(
get_string('plugin_enabled', 'core_admin', $displayname),
\core\notification::SUCCESS
);
} else {
\core\notification::add(
get_string('plugin_disabled', 'core_admin', $displayname),
\core\notification::SUCCESS
);
}
}
return [];
}
/**
* Describe the return structure of the external service.
*
* @return external_single_structure
*/
public static function execute_returns(): external_single_structure {
return new external_single_structure([]);
}
}
-304
View File
@@ -1,304 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\local\entities;
use core_reportbuilder\local\filters\date;
use core_reportbuilder\local\filters\duration;
use core_reportbuilder\local\filters\select;
use core_reportbuilder\local\filters\text;
use core_reportbuilder\local\helpers\format;
use lang_string;
use core_reportbuilder\local\entities\base;
use core_reportbuilder\local\report\column;
use core_reportbuilder\local\report\filter;
use stdClass;
/**
* Task log entity class implementation
*
* @package core_admin
* @copyright 2021 David Matamoros <davidmc@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_log extends base {
/** @var int Result success */
protected const SUCCESS = 0;
/** @var int Result failed */
protected const FAILED = 1;
/**
* Database tables that this entity uses and their default aliases
*
* @return array
*/
protected function get_default_table_aliases(): array {
return ['task_log' => 'tl'];
}
/**
* The default title for this entity in the list of columns/conditions/filters in the report builder
*
* @return lang_string
*/
protected function get_default_entity_title(): lang_string {
return new lang_string('entitytasklog', 'admin');
}
/**
* The default machine-readable name for this entity that will be used in the internal names of the columns/filters
*
* @return string
*/
protected function get_default_entity_name(): string {
return 'task_log';
}
/**
* Initialise the entity
*
* @return base
*/
public function initialise(): base {
$columns = $this->get_all_columns();
foreach ($columns as $column) {
$this->add_column($column);
}
$filters = $this->get_all_filters();
foreach ($filters as $filter) {
$this->add_filter($filter);
}
return $this;
}
/**
* Returns list of all available columns
*
* @return column[]
*/
protected function get_all_columns(): array {
$tablealias = $this->get_table_alias('task_log');
// Name column.
$columns[] = (new column(
'name',
new lang_string('name'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("$tablealias.classname")
->set_is_sortable(true)
->add_callback(static function(string $value): string {
$output = '';
if (class_exists($value)) {
$task = new $value;
if ($task instanceof \core\task\scheduled_task) {
$output = $task->get_name();
}
}
$output .= \html_writer::tag('div', "\\{$value}", [
'class' => 'task-class',
]);
return $output;
});
// Type column.
$columns[] = (new column(
'type',
new lang_string('tasktype', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("{$tablealias}.type")
->set_is_sortable(true)
->add_callback(static function(int $value): string {
if (\core\task\database_logger::TYPE_SCHEDULED === $value) {
return get_string('task_type:scheduled', 'admin');
}
return get_string('task_type:adhoc', 'admin');
});
// Start time column.
$columns[] = (new column(
'starttime',
new lang_string('task_starttime', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TIMESTAMP)
->add_field("{$tablealias}.timestart")
->set_is_sortable(true)
->add_callback([format::class, 'userdate'], get_string('strftimedatetimeshortaccurate', 'core_langconfig'));
// Duration column.
$columns[] = (new column(
'duration',
new lang_string('task_duration', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_FLOAT)
->add_field("{$tablealias}.timeend - {$tablealias}.timestart", 'duration')
->set_is_sortable(true)
->add_callback(static function(float $value): string {
$duration = round($value, 2);
if (empty($duration)) {
// The format_time function returns 'now' when the difference is exactly 0.
// Note: format_time performs concatenation in exactly this fashion so we should do this for consistency.
return '0 ' . get_string('secs', 'moodle');
}
return format_time($duration);
});
// Hostname column.
$columns[] = (new column(
'hostname',
new lang_string('hostname', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("$tablealias.hostname")
->set_is_sortable(true);
// PID column.
$columns[] = (new column(
'pid',
new lang_string('pid', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("{$tablealias}.pid")
->set_is_sortable(true);
// Database column.
$columns[] = (new column(
'database',
new lang_string('task_dbstats', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_fields("{$tablealias}.dbreads, {$tablealias}.dbwrites")
->set_is_sortable(true)
->add_callback(static function(int $value, stdClass $row): string {
$output = '';
$output .= \html_writer::div(get_string('task_stats:dbreads', 'admin', $row->dbreads));
$output .= \html_writer::div(get_string('task_stats:dbwrites', 'admin', $row->dbwrites));
return $output;
});
// Result column.
$columns[] = (new column(
'result',
new lang_string('task_result', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("$tablealias.result")
->set_is_sortable(true)
->add_callback(static function(int $value): string {
if ($value) {
return get_string('task_result:failed', 'admin');
}
return get_string('success');
});
return $columns;
}
/**
* Return list of all available filters
*
* @return filter[]
*/
protected function get_all_filters(): array {
$filters = [];
$tablealias = $this->get_table_alias('task_log');
// Name filter (Filter by classname).
$filters[] = (new filter(
text::class,
'name',
new lang_string('classname', 'tool_task'),
$this->get_entity_name(),
"{$tablealias}.classname"
))
->add_joins($this->get_joins());
// Output filter (Filter by task output).
$filters[] = (new filter(
text::class,
'output',
new lang_string('task_logoutput', 'admin'),
$this->get_entity_name(),
"{$tablealias}.output"
))
->add_joins($this->get_joins());
// Result filter.
$filters[] = (new filter(
select::class,
'result',
new lang_string('task_result', 'admin'),
$this->get_entity_name(),
"{$tablealias}.result"
))
->add_joins($this->get_joins())
->set_options([
self::SUCCESS => get_string('success'),
self::FAILED => get_string('task_result:failed', 'admin'),
]);
// Start time filter.
$filters[] = (new filter(
date::class,
'timestart',
new lang_string('task_starttime', 'admin'),
$this->get_entity_name(),
"{$tablealias}.timestart"
))
->add_joins($this->get_joins())
->set_limited_operators([
date::DATE_ANY,
date::DATE_RANGE,
date::DATE_PREVIOUS,
date::DATE_CURRENT,
]);
// Duration filter.
$filters[] = (new filter(
duration::class,
'duration',
new lang_string('task_duration', 'admin'),
$this->get_entity_name(),
"${tablealias}.timeend - {$tablealias}.timestart"
))
->add_joins($this->get_joins());
return $filters;
}
}
@@ -1,158 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\local\systemreports;
use context_system;
use core_admin\local\entities\task_log;
use core_reportbuilder\local\entities\user;
use core_reportbuilder\local\report\action;
use lang_string;
use moodle_url;
use pix_icon;
use core_reportbuilder\system_report;
/**
* Task logs system report class implementation
*
* @package core_admin
* @copyright 2021 David Matamoros <davidmc@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_logs extends system_report {
/**
* Initialise report, we need to set the main table, load our entities and set columns/filters
*/
protected function initialise(): void {
// Our main entity, it contains all of the column definitions that we need.
$entitymain = new task_log();
$entitymainalias = $entitymain->get_table_alias('task_log');
$this->set_main_table('task_log', $entitymainalias);
$this->add_entity($entitymain);
// Any columns required by actions should be defined here to ensure they're always available.
$this->add_base_fields("{$entitymainalias}.id");
// We can join the "user" entity to our "main" entity and use the fullname column from the user entity.
$entityuser = new user();
$entituseralias = $entityuser->get_table_alias('user');
$this->add_entity($entityuser->add_join(
"LEFT JOIN {user} {$entituseralias} ON {$entituseralias}.id = {$entitymainalias}.userid"
));
// Now we can call our helper methods to add the content we want to include in the report.
$this->add_columns();
$this->add_filters();
$this->add_actions();
// Set if report can be downloaded.
$this->set_downloadable(true, get_string('tasklogs', 'admin'));
}
/**
* Validates access to view this report
*
* @return bool
*/
protected function can_view(): bool {
return has_capability('moodle/site:config', context_system::instance());
}
/**
* Get the visible name of the report
*
* @return string
*/
public static function get_name(): string {
return get_string('entitytasklog', 'admin');
}
/**
* Adds the columns we want to display in the report
*
* They are all provided by the entities we previously added in the {@see initialise} method, referencing each by their
* unique identifier
*/
public function add_columns(): void {
$columns = [
'task_log:name',
'task_log:type',
'user:fullname',
'task_log:starttime',
'task_log:duration',
'task_log:hostname',
'task_log:pid',
'task_log:database',
'task_log:result',
];
$this->add_columns_from_entities($columns);
// It's possible to override the display name of a column, if you don't want to use the value provided by the entity.
if ($column = $this->get_column('user:fullname')) {
$column->set_title(new lang_string('user', 'admin'));
}
// It's possible to set a default initial sort direction for one column.
$this->set_initial_sort_column('task_log:starttime', SORT_DESC);
}
/**
* Adds the filters we want to display in the report
*
* They are all provided by the entities we previously added in the {@see initialise} method, referencing each by their
* unique identifier
*/
protected function add_filters(): void {
$filters = [
'task_log:name',
'task_log:output',
'task_log:result',
'task_log:timestart',
'task_log:duration',
];
$this->add_filters_from_entities($filters);
}
/**
* Add the system report actions. An extra column will be appended to each row, containing all actions added here
*
* Note the use of ":id" placeholder which will be substituted according to actual values in the row
*/
protected function add_actions(): void {
// Action to view individual task log on a popup window.
$this->add_action((new action(
new moodle_url('/admin/tasklogs.php', ['logid' => ':id']),
new pix_icon('e/search', ''),
[],
true,
new lang_string('view'),
)));
// Action to download individual task log.
$this->add_action((new action(
new moodle_url('/admin/tasklogs.php', ['logid' => ':id', 'download' => true]),
new pix_icon('t/download', ''),
[],
false,
new lang_string('download'),
)));
}
}
@@ -0,0 +1,117 @@
<?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/>.
declare(strict_types=1);
namespace core_admin\reportbuilder\datasource;
use core_admin\reportbuilder\local\entities\task_log;
use core_reportbuilder\datasource;
use core_reportbuilder\local\entities\user;
use core_reportbuilder\local\filters\select;
/**
* Task logs datasource
*
* @package core_admin
* @copyright 2022 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_logs extends datasource {
/**
* Return user friendly name of the report source
*
* @return string
*/
public static function get_name(): string {
return get_string('tasklogs', 'core_admin');
}
/**
* Initialise report
*/
protected function initialise(): void {
$tasklogentity = new task_log();
$tasklogalias = $tasklogentity->get_table_alias('task_log');
$this->set_main_table('task_log', $tasklogalias);
$this->add_entity($tasklogentity);
// Join the user entity to represent the associated user.
$userentity = new user();
$useralias = $userentity->get_table_alias('user');
$this->add_entity($userentity->add_join("
LEFT JOIN {user} {$useralias}
ON {$useralias}.id = {$tasklogalias}.userid")
);
// Add report elements from each of the entities we added to the report.
$this->add_all_from_entities();
}
/**
* Return the columns that will be added to the report upon creation
*
* @return string[]
*/
public function get_default_columns(): array {
return [
'task_log:name',
'task_log:starttime',
'task_log:duration',
'task_log:result',
];
}
/**
* Return the filters that will be added to the report upon creation
*
* @return string[]
*/
public function get_default_filters(): array {
return [
'task_log:timestart',
'task_log:result',
];
}
/**
* Return the conditions that will be added to the report upon creation
*
* @return string[]
*/
public function get_default_conditions(): array {
return [
'task_log:type',
'task_log:timestart',
'task_log:result',
];
}
/**
* Return the condition values that will be set for the report upon creation
*
* @return array
*/
public function get_default_condition_values(): array {
return [
'task_log:type_operator' => select::EQUAL_TO,
'task_log:type_value' => \core\task\database_logger::TYPE_SCHEDULED,
];
}
}
@@ -0,0 +1,427 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\reportbuilder\local\entities;
use core_reportbuilder\local\filters\date;
use core_reportbuilder\local\filters\duration;
use core_reportbuilder\local\filters\number;
use core_reportbuilder\local\filters\select;
use core_reportbuilder\local\filters\text;
use core_reportbuilder\local\filters\autocomplete;
use core_reportbuilder\local\helpers\format;
use lang_string;
use core_reportbuilder\local\entities\base;
use core_reportbuilder\local\report\column;
use core_reportbuilder\local\report\filter;
use stdClass;
use core_collator;
/**
* Task log entity class implementation
*
* @package core_admin
* @copyright 2021 David Matamoros <davidmc@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_log extends base {
/** @var int Result success */
protected const SUCCESS = 0;
/** @var int Result failed */
protected const FAILED = 1;
/**
* Database tables that this entity uses and their default aliases
*
* @return array
*/
protected function get_default_table_aliases(): array {
return ['task_log' => 'tl'];
}
/**
* The default title for this entity in the list of columns/conditions/filters in the report builder
*
* @return lang_string
*/
protected function get_default_entity_title(): lang_string {
return new lang_string('entitytasklog', 'admin');
}
/**
* Initialise the entity
*
* @return base
*/
public function initialise(): base {
$columns = $this->get_all_columns();
foreach ($columns as $column) {
$this->add_column($column);
}
// All the filters defined by the entity can also be used as conditions.
$filters = $this->get_all_filters();
foreach ($filters as $filter) {
$this
->add_filter($filter)
->add_condition($filter);
}
return $this;
}
/**
* Returns list of all available columns
*
* @return column[]
*/
protected function get_all_columns(): array {
global $DB;
$tablealias = $this->get_table_alias('task_log');
// Name column.
$columns[] = (new column(
'name',
new lang_string('name'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("$tablealias.classname")
->set_is_sortable(true)
->add_callback(static function(string $classname): string {
$output = '';
if (class_exists($classname)) {
$task = new $classname;
if ($task instanceof \core\task\task_base) {
$output = $task->get_name();
}
}
$output .= \html_writer::tag('div', "\\{$classname}", [
'class' => 'small text-muted',
]);
return $output;
});
// Component column.
$columns[] = (new column(
'component',
new lang_string('plugin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("{$tablealias}.component")
->set_is_sortable(true);
// Type column.
$columns[] = (new column(
'type',
new lang_string('tasktype', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("{$tablealias}.type")
->set_is_sortable(true)
->add_callback(static function($value): string {
if (\core\task\database_logger::TYPE_SCHEDULED === (int) $value) {
return get_string('task_type:scheduled', 'admin');
}
return get_string('task_type:adhoc', 'admin');
});
// Start time column.
$columns[] = (new column(
'starttime',
new lang_string('task_starttime', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TIMESTAMP)
->add_field("{$tablealias}.timestart")
->set_is_sortable(true)
->add_callback([format::class, 'userdate'], get_string('strftimedatetimeshortaccurate', 'core_langconfig'));
// End time column.
$columns[] = (new column(
'endtime',
new lang_string('task_endtime', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TIMESTAMP)
->add_field("{$tablealias}.timeend")
->set_is_sortable(true)
->add_callback([format::class, 'userdate'], get_string('strftimedatetimeshortaccurate', 'core_langconfig'));
// Duration column.
$columns[] = (new column(
'duration',
new lang_string('task_duration', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_FLOAT)
->add_field("{$tablealias}.timeend - {$tablealias}.timestart", 'duration')
->set_is_sortable(true)
->add_callback(static function(float $value): string {
$duration = round($value, 2);
if (empty($duration)) {
// The format_time function returns 'now' when the difference is exactly 0.
// Note: format_time performs concatenation in exactly this fashion so we should do this for consistency.
return '0 ' . get_string('secs', 'moodle');
}
return format_time($duration);
});
// Hostname column.
$columns[] = (new column(
'hostname',
new lang_string('hostname', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_TEXT)
->add_field("$tablealias.hostname")
->set_is_sortable(true);
// PID column.
$columns[] = (new column(
'pid',
new lang_string('pid', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_field("{$tablealias}.pid")
->set_is_sortable(true)
// Although this is an integer column, it doesn't make sense to perform numeric aggregation on it.
->set_disabled_aggregation(['avg', 'count', 'countdistinct', 'max', 'min', 'sum']);
// Database column.
$columns[] = (new column(
'database',
new lang_string('task_dbstats', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_fields("{$tablealias}.dbreads, {$tablealias}.dbwrites")
->set_is_sortable(true, ["{$tablealias}.dbreads", "{$tablealias}.dbwrites"])
->add_callback(static function(int $value, stdClass $row): string {
$output = '';
$output .= \html_writer::div(get_string('task_stats:dbreads', 'admin', $row->dbreads));
$output .= \html_writer::div(get_string('task_stats:dbwrites', 'admin', $row->dbwrites));
return $output;
})
// Although this is an integer column, it doesn't make sense to perform numeric aggregation on it.
->set_disabled_aggregation(['avg', 'count', 'countdistinct', 'max', 'min', 'sum']);
// Database reads column.
$columns[] = (new column(
'dbreads',
new lang_string('task_dbreads', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_fields("{$tablealias}.dbreads")
->set_is_sortable(true);
// Database writes column.
$columns[] = (new column(
'dbwrites',
new lang_string('task_dbwrites', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_INTEGER)
->add_fields("{$tablealias}.dbwrites")
->set_is_sortable(true);
// Result column.
$columns[] = (new column(
'result',
new lang_string('task_result', 'admin'),
$this->get_entity_name()
))
->add_joins($this->get_joins())
->set_type(column::TYPE_BOOLEAN)
// For accurate aggregation, we need to return boolean success = true by xor'ing the field value.
->add_field($DB->sql_bitxor("{$tablealias}.result", 1), 'success')
->set_is_sortable(true)
->add_callback(static function(bool $success): string {
if (!$success) {
return get_string('task_result:failed', 'admin');
}
return get_string('success');
});
return $columns;
}
/**
* Return list of all available filters
*
* @return filter[]
*/
protected function get_all_filters(): array {
global $DB;
$tablealias = $this->get_table_alias('task_log');
// Name filter (Filter by classname).
$filters[] = (new filter(
autocomplete::class,
'name',
new lang_string('classname', 'tool_task'),
$this->get_entity_name(),
"{$tablealias}.classname"
))
->add_joins($this->get_joins())
->set_options_callback(static function(): array {
global $DB;
$classnames = $DB->get_fieldset_sql('SELECT DISTINCT classname FROM {task_log} ORDER BY classname ASC');
$options = [];
foreach ($classnames as $classname) {
if (class_exists($classname)) {
$task = new $classname;
$options[$classname] = $task->get_name();
}
}
core_collator::asort($options);
return $options;
});
// Component filter.
$filters[] = (new filter(
text::class,
'component',
new lang_string('plugin'),
$this->get_entity_name(),
"{$tablealias}.component"
))
->add_joins($this->get_joins());
// Type filter.
$filters[] = (new filter(
select::class,
'type',
new lang_string('tasktype', 'admin'),
$this->get_entity_name(),
"{$tablealias}.type"
))
->add_joins($this->get_joins())
->set_options([
\core\task\database_logger::TYPE_ADHOC => new lang_string('task_type:adhoc', 'admin'),
\core\task\database_logger::TYPE_SCHEDULED => new lang_string('task_type:scheduled', 'admin'),
]);
// Output filter (Filter by task output).
$filters[] = (new filter(
text::class,
'output',
new lang_string('task_logoutput', 'admin'),
$this->get_entity_name(),
$DB->sql_cast_to_char("{$tablealias}.output")
))
->add_joins($this->get_joins());
// Start time filter.
$filters[] = (new filter(
date::class,
'timestart',
new lang_string('task_starttime', 'admin'),
$this->get_entity_name(),
"{$tablealias}.timestart"
))
->add_joins($this->get_joins())
->set_limited_operators([
date::DATE_ANY,
date::DATE_RANGE,
date::DATE_PREVIOUS,
date::DATE_CURRENT,
]);
// End time.
$filters[] = (new filter(
date::class,
'timeend',
new lang_string('task_endtime', 'admin'),
$this->get_entity_name(),
"{$tablealias}.timeend"
))
->add_joins($this->get_joins())
->set_limited_operators([
date::DATE_ANY,
date::DATE_RANGE,
date::DATE_PREVIOUS,
date::DATE_CURRENT,
]);
// Duration filter.
$filters[] = (new filter(
duration::class,
'duration',
new lang_string('task_duration', 'admin'),
$this->get_entity_name(),
"{$tablealias}.timeend - {$tablealias}.timestart"
))
->add_joins($this->get_joins());
// Database reads.
$filters[] = (new filter(
number::class,
'dbreads',
new lang_string('task_dbreads', 'admin'),
$this->get_entity_name(),
"{$tablealias}.dbreads"
))
->add_joins($this->get_joins());
// Database writes.
$filters[] = (new filter(
number::class,
'dbwrites',
new lang_string('task_dbwrites', 'admin'),
$this->get_entity_name(),
"{$tablealias}.dbwrites"
))
->add_joins($this->get_joins());
// Result filter.
$filters[] = (new filter(
select::class,
'result',
new lang_string('task_result', 'admin'),
$this->get_entity_name(),
"{$tablealias}.result"
))
->add_joins($this->get_joins())
->set_options([
self::SUCCESS => get_string('success'),
self::FAILED => get_string('task_result:failed', 'admin'),
]);
return $filters;
}
}
@@ -0,0 +1,159 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\reportbuilder\local\systemreports;
use context_system;
use core_admin\reportbuilder\local\entities\task_log;
use core_reportbuilder\local\entities\user;
use core_reportbuilder\local\report\action;
use lang_string;
use moodle_url;
use pix_icon;
use core_reportbuilder\system_report;
/**
* Task logs system report class implementation
*
* @package core_admin
* @copyright 2021 David Matamoros <davidmc@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_logs extends system_report {
/**
* Initialise report, we need to set the main table, load our entities and set columns/filters
*/
protected function initialise(): void {
// Our main entity, it contains all of the column definitions that we need.
$entitymain = new task_log();
$entitymainalias = $entitymain->get_table_alias('task_log');
$this->set_main_table('task_log', $entitymainalias);
$this->add_entity($entitymain);
// Any columns required by actions should be defined here to ensure they're always available.
$this->add_base_fields("{$entitymainalias}.id");
// We can join the "user" entity to our "main" entity and use the fullname column from the user entity.
$entityuser = new user();
$entituseralias = $entityuser->get_table_alias('user');
$this->add_entity($entityuser->add_join(
"LEFT JOIN {user} {$entituseralias} ON {$entituseralias}.id = {$entitymainalias}.userid"
));
// Now we can call our helper methods to add the content we want to include in the report.
$this->add_columns();
$this->add_filters();
$this->add_actions();
// Set if report can be downloaded.
$this->set_downloadable(true, get_string('tasklogs', 'admin'));
}
/**
* Validates access to view this report
*
* @return bool
*/
protected function can_view(): bool {
return has_capability('moodle/site:config', context_system::instance());
}
/**
* Get the visible name of the report
*
* @return string
*/
public static function get_name(): string {
return get_string('entitytasklog', 'admin');
}
/**
* Adds the columns we want to display in the report
*
* They are all provided by the entities we previously added in the {@see initialise} method, referencing each by their
* unique identifier
*/
public function add_columns(): void {
$columns = [
'task_log:name',
'task_log:type',
'user:fullname',
'task_log:starttime',
'task_log:duration',
'task_log:hostname',
'task_log:pid',
'task_log:database',
'task_log:result',
];
$this->add_columns_from_entities($columns);
// It's possible to override the display name of a column, if you don't want to use the value provided by the entity.
if ($column = $this->get_column('user:fullname')) {
$column->set_title(new lang_string('user', 'admin'));
}
// It's possible to set a default initial sort direction for one column.
$this->set_initial_sort_column('task_log:starttime', SORT_DESC);
}
/**
* Adds the filters we want to display in the report
*
* They are all provided by the entities we previously added in the {@see initialise} method, referencing each by their
* unique identifier
*/
protected function add_filters(): void {
$filters = [
'task_log:name',
'task_log:type',
'task_log:output',
'task_log:result',
'task_log:timestart',
'task_log:duration',
];
$this->add_filters_from_entities($filters);
}
/**
* Add the system report actions. An extra column will be appended to each row, containing all actions added here
*
* Note the use of ":id" placeholder which will be substituted according to actual values in the row
*/
protected function add_actions(): void {
// Action to view individual task log on a popup window.
$this->add_action((new action(
new moodle_url('/admin/tasklogs.php', ['logid' => ':id']),
new pix_icon('e/search', ''),
[],
true,
new lang_string('view'),
)));
// Action to download individual task log.
$this->add_action((new action(
new moodle_url('/admin/tasklogs.php', ['logid' => ':id', 'download' => true]),
new pix_icon('t/download', ''),
[],
false,
new lang_string('download'),
)));
}
}
@@ -0,0 +1,118 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use core_plugin_manager;
use dml_exception;
use html_writer;
use moodle_url;
use stdClass;
/**
* Activity Module admin settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class activity_management_table extends plugin_management_table {
public function setup() {
$this->set_attribute('id', 'modules');
$this->set_attribute('class', 'admintable generaltable');
parent::setup();
}
protected function get_table_id(): string {
return 'module-administration-table';
}
protected function get_plugintype(): string {
return 'mod';
}
public function guess_base_url(): void {
$this->define_baseurl(
new moodle_url('/admin/modules.php')
);
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/modules.php', $params);
}
protected function get_column_list(): array {
$columns = parent::get_column_list();
return array_merge(
array_slice($columns, 0, 1, true),
['activities' => get_string('activities')],
array_slice($columns, 1, null, true),
);
}
protected function col_name(stdClass $row): string {
global $OUTPUT;
$status = $row->plugininfo->get_status();
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
return html_writer::span(
get_string('pluginmissingfromdisk', 'core', $row->plugininfo),
'notifyproblem'
);
}
return html_writer::span(
html_writer::img(
$OUTPUT->image_url('monologo', $row->plugininfo->name),
'',
[
'class' => 'icon',
],
) . get_string('modulename', $row->plugininfo->name)
);
}
/**
* Show the number of activities present, with a link to courses containing activity if relevant.
*
* @param mixed $row
* @return string
*/
protected function col_activities(stdClass $row): string {
global $DB, $OUTPUT;
try {
$count = $DB->count_records_select($row->plugininfo->name, "course <> 0");
} catch (dml_exception $e) {
$count = -1;
}
if ($count > 0) {
return $OUTPUT->action_link(
new moodle_url('/course/search.php', [
'modulelist' => $row->plugininfo->name,
]),
$count,
null,
['title' => get_string('showmodulecourse')]
);
} else if ($count < 0) {
return get_string('error');
} else {
return $count;
}
}
}
@@ -0,0 +1,153 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use html_writer;
use moodle_url;
use stdClass;
/**
* Tiny admin settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_management_table extends \core_admin\table\plugin_management_table {
/** @var plugininfo[] A list of blocks which cannot be deleted */
protected array $undeletableblocktypes;
/** @var stdClass[] A list of basic block data */
protected array $blockdata;
/** @var array<string,int> A list of course counts */
protected array $courseblocks;
public function __construct() {
global $DB;
parent::__construct();
$this->undeletableblocktypes = \block_manager::get_undeletable_block_types();
$sql = 'SELECT b.name,
b.id,
COUNT(DISTINCT binst.id) as totalcount
FROM {block} b
LEFT JOIN {block_instances} binst ON binst.blockname = b.name
GROUP BY b.id,
b.name
ORDER BY b.name ASC';
$this->blockdata = $DB->get_records_sql($sql);
$sql = "SELECT blockname
FROM {block_instances}
WHERE pagetypepattern = 'course-view-*'
GROUP BY blockname";
$this->courseblocks = $DB->get_records_sql($sql);
}
protected function get_plugintype(): string {
return 'block';
}
public function guess_base_url(): void {
$this->define_baseurl(
new moodle_url('/admin/blocks.php')
);
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/blocks.php', $params);
}
protected function get_table_js_module(): string {
return 'core_admin/block_management_table';
}
protected function get_column_list(): array {
$columns = parent::get_column_list();
return array_merge(
array_slice($columns, 0, 1, true),
['instances' => get_string('blockinstances', 'admin')],
array_slice($columns, 1, 2, true),
['protect' => get_string('blockprotect', 'admin')],
array_slice($columns, 3, null, true),
);
}
protected function get_columns_with_help(): array {
return [
'protect' => new \help_icon('blockprotect', 'admin'),
];
}
/**
* Render the instances column
* @param stdClass $row
* @return string
*/
protected function col_instances(stdClass $row): string {
$blockdata = $this->blockdata[$row->plugininfo->name];
if (array_key_exists($blockdata->name, $this->courseblocks)) {
return html_writer::link(
new moodle_url('/course/search.php', [
'blocklist' => $blockdata->id,
]),
$blockdata->totalcount,
);
}
return $blockdata->totalcount;
}
/**
* Render the protect column.
*
* @param stdClass $row
* @return string
*/
protected function col_protect(stdClass $row): string {
global $OUTPUT;
$params = [
'sesskey' => sesskey(),
];
$protected = in_array($row->plugininfo->name, $this->undeletableblocktypes);
$pluginname = $row->plugininfo->displayname;
if ($protected) {
$params['unprotect'] = $row->plugininfo->name;
$icon = $OUTPUT->pix_icon('t/unlock', get_string('blockunprotectblock', 'admin', $pluginname));
} else {
$params['protect'] = $row->plugininfo->name;
$icon = $OUTPUT->pix_icon('t/lock', get_string('blockprotectblock', 'admin', $pluginname));
}
return html_writer::link(
$this->get_action_url($params),
$icon,
[
'data-action' => 'toggleprotectstate',
'data-plugin' => $row->plugin,
'data-target-state' => $protected ? 0 : 1,
],
);
return '';
}
}
@@ -0,0 +1,63 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use moodle_url;
/**
* Tiny admin settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class editor_management_table extends \core_admin\table\plugin_management_table {
protected function get_plugintype(): string {
return 'editor';
}
public function guess_base_url(): void {
$this->define_baseurl(
new moodle_url('/admin/settings.php', ['section' => 'manageeditors'])
);
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/editors.php', $params);
}
protected function order_plugins(array $plugins): array {
global $CFG;
// The Editor list is stored in an ordered string.
$activeeditors = explode(',', $CFG->texteditors);
$sortedplugins = [];
foreach ($activeeditors as $editor) {
if (isset($plugins[$editor])) {
$sortedplugins[$editor] = $plugins[$editor];
unset($plugins[$editor]);
}
}
$otherplugins = parent::order_plugins($plugins);
return array_merge(
$sortedplugins,
$otherplugins
);
}
}
@@ -0,0 +1,71 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use moodle_url;
use stdClass;
/**
* Media plugin admin settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class media_management_table extends \core_admin\table\plugin_management_table {
/** @var array The list of used extensions */
protected array $usedextensions = [];
protected function get_plugintype(): string {
return 'media';
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/media.php', $params);
}
protected function get_column_list(): array {
$columns = parent::get_column_list();
return array_merge(
array_slice($columns, 0, 1, true),
['supports' => get_string('supports', 'core_media')],
array_slice($columns, 1, null, true),
);
}
protected function col_name(stdClass $row): string {
global $OUTPUT, $PAGE;
$name = $row->plugininfo->name;
if ($PAGE->theme->resolve_image_location('icon', 'media_' . $name, false)) {
$icon = $OUTPUT->pix_icon('icon', '', "media_{$name}", ['class' => 'icon pluginicon']);
} else {
$icon = $OUTPUT->pix_icon('spacer', '', 'moodle', ['class' => 'icon pluginicon noicon']);
}
$help = '';
if (get_string_manager()->string_exists('pluginname_help', 'media_' . $name)) {
$help = '&nbsp;' . $OUTPUT->help_icon('pluginname', 'media_' . $name);
}
return $icon . $row->plugininfo->displayname . $help;
}
protected function col_supports(stdClass $row): string {
return $row->plugininfo->supports($this->usedextensions);
}
}
@@ -0,0 +1,503 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use context_system;
use core_plugin_manager;
use core_table\dynamic as dynamic_table;
use flexible_table;
use html_writer;
use moodle_url;
use stdClass;
defined('MOODLE_INTERNAL') || die();
require_once("{$CFG->libdir}/tablelib.php");
/**
* Plugin Management table.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
abstract class plugin_management_table extends flexible_table implements dynamic_table {
/** @var \core\plugininfo\base[] The plugin list */
protected array $plugins = [];
/** @var int The number of enabled plugins of this type */
protected int $enabledplugincount = 0;
/** @var core_plugin_manager */
protected core_plugin_manager $pluginmanager;
/** @var string The plugininfo class for this plugintype */
protected string $plugininfoclass;
public function __construct() {
global $CFG;
parent::__construct($this->get_table_id());
require_once($CFG->libdir . '/adminlib.php');
// Fetch the plugininfo class.
$this->pluginmanager = core_plugin_manager::instance();
$this->plugininfoclass = $this->pluginmanager::resolve_plugininfo_class($this->get_plugintype());
$this->guess_base_url();
$this->plugins = $this->get_sorted_plugins();
$this->enabledplugincount = count(array_filter($this->plugins, function ($plugin) {
return $plugin->is_enabled();
}));
$this->setup_column_configuration();
$this->set_filterset(new plugin_management_table_filterset());
$this->setup();
}
/**
* Get the list of sorted plugins.
*
* @return \core\plugininfo\base[]
*/
protected function get_sorted_plugins(): array {
if ($this->plugininfoclass::plugintype_supports_ordering()) {
return $this->plugininfoclass::get_sorted_plugins();
} else {
$plugins = $this->pluginmanager->get_plugins_of_type($this->get_plugintype());
return self::sort_plugins($plugins);
}
}
/**
* Sort the plugins list.
*
* Note: This only applies to plugins which do not support ordering.
*
* @param \core\plugininfo\base[] $plugins
* @return \core\plugininfo\base[]
*/
protected function sort_plugins(array $plugins): array {
// The asort functions work by reference.
\core_collator::asort_objects_by_property($plugins, 'displayname');
return $plugins;
}
/**
* Set up the column configuration for this table.
*/
protected function setup_column_configuration(): void {
$columnlist = $this->get_column_list();
$this->define_columns(array_keys($columnlist));
$this->define_headers(array_values($columnlist));
$columnswithhelp = $this->get_columns_with_help();
$columnhelp = array_map(function (string $column) use ($columnswithhelp): ?\renderable {
if (array_key_exists($column, $columnswithhelp)) {
return $columnswithhelp[$column];
}
return null;
}, array_keys($columnlist));
$this->define_help_for_headers($columnhelp);
}
/**
* Set the standard order of the plugins.
*
* @param array $plugins
* @return array
*/
protected function order_plugins(array $plugins): array {
uasort($plugins, function ($a, $b) {
if ($a->is_enabled() && !$b->is_enabled()) {
return -1;
} else if (!$a->is_enabled() && $b->is_enabled()) {
return 1;
}
return strnatcasecmp($a->name, $b->name);
});
return $plugins;
}
/**
* Get the plugintype for this table.
*
* @return string
*/
abstract protected function get_plugintype(): string;
/**
* Get the action URL for this table.
*
* The action URL is used to perform all actions when JS is not available.
*
* @param array $params
* @return moodle_url
*/
abstract protected function get_action_url(array $params = []): moodle_url;
/**
* Provide a default implementation for guessing the base URL from the action URL.
*/
public function guess_base_url(): void {
$this->define_baseurl($this->get_action_url());
}
/**
* Get the web service method used to toggle state.
*
* @return null|string
*/
protected function get_toggle_service(): ?string {
return 'core_admin_set_plugin_state';
}
/**
* Get the web service method used to order plugins.
*
* @return null|string
*/
protected function get_sortorder_service(): ?string {
return 'core_admin_set_plugin_order';
}
/**
* Get the ID of the table.
*
* @return string
*/
protected function get_table_id(): string {
return 'plugin_management_table-' . $this->get_plugintype();
}
/**
* Get a list of the column titles
* @return string[]
*/
protected function get_column_list(): array {
$columns = [
'name' => get_string('name', 'core'),
'version' => get_string('version', 'core'),
];
if ($this->supports_disabling()) {
$columns['enabled'] = get_string('pluginenabled', 'core_plugin');
}
if ($this->supports_ordering()) {
$columns['order'] = get_string('order', 'core');
}
$columns['settings'] = get_string('settings', 'core');
$columns['uninstall'] = get_string('uninstallplugin', 'core_admin');
return $columns;
}
protected function get_columns_with_help(): array {
return [];
}
/**
* Get the context for this table.
*
* @return context_system
*/
public function get_context(): context_system {
return context_system::instance();
}
/**
* Get the table content.
*/
public function get_content(): string {
ob_start();
$this->out();
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/**
* Print the table.
*/
public function out(): void {
$plugintype = $this->get_plugintype();
foreach ($this->plugins as $plugininfo) {
$plugin = "{$plugintype}_{$plugininfo->name}";
$rowdata = (object) [
'plugin' => $plugin,
'plugininfo' => $plugininfo,
'name' => $plugininfo->displayname,
'version' => $plugininfo->versiondb,
];
$this->add_data_keyed(
$this->format_row($rowdata),
$this->get_row_class($rowdata)
);
}
$this->finish_output(false);
}
/**
* This table is not downloadable.
* @param bool $downloadable
* @return bool
*/
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
public function is_downloadable($downloadable = null): bool {
return false;
}
/**
* Show the name column content.
*
* @param stdClass $row
* @return string
*/
protected function col_name(stdClass $row): string {
$status = $row->plugininfo->get_status();
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
return html_writer::span(
get_string('pluginmissingfromdisk', 'core', $row->plugininfo),
'notifyproblem'
);
}
if ($row->plugininfo->is_installed_and_upgraded()) {
return $row->plugininfo->displayname;
}
return html_writer::span(
$row->plugininfo->displayname,
'notifyproblem'
);
}
/**
* Show the enable/disable column content.
*
* @param stdClass $row
* @return string
*/
protected function col_enabled(stdClass $row): string {
global $OUTPUT;
$enabled = $row->plugininfo->is_enabled();
$params = [
'sesskey' => sesskey(),
'plugin' => $row->plugininfo->name,
'action' => $enabled ? 'disable' : 'enable',
];
if ($enabled) {
$icon = $OUTPUT->pix_icon('t/hide', get_string('disableplugin', 'core_admin', $row->plugininfo->displayname));
} else {
$icon = $OUTPUT->pix_icon('t/show', get_string('enableplugin', 'core_admin', $row->plugininfo->displayname));
}
return html_writer::link(
$this->get_action_url($params),
$icon,
[
'data-toggle-method' => $this->get_toggle_service(),
'data-action' => 'togglestate',
'data-plugin' => $row->plugin,
'data-state' => $enabled ? 1 : 0,
],
);
}
protected function col_order(stdClass $row): string {
global $OUTPUT;
if (!$this->supports_ordering()) {
return '';
}
if (!$row->plugininfo->is_enabled()) {
return '';
}
if ($this->enabledplugincount <= 1) {
// There is only one row.
return '';
}
$hasup = true;
$hasdown = true;
if (empty($this->currentrow)) {
// This is the top row.
$hasup = false;
}
if ($this->currentrow === ($this->enabledplugincount - 1)) {
// This is the last row.
$hasdown = false;
}
if ($this->supports_ordering()) {
$dataattributes = [
'data-method' => $this->get_sortorder_service(),
'data-action' => 'move',
'data-plugin' => $row->plugin,
];
} else {
$dataattributes = [];
}
if ($hasup) {
$upicon = html_writer::link(
$this->get_action_url([
'sesskey' => sesskey(),
'action' => 'up',
'plugin' => $row->plugininfo->name,
]),
$OUTPUT->pix_icon('t/up', get_string('moveup')),
array_merge($dataattributes, ['data-direction' => 'up']),
);
} else {
$upicon = $OUTPUT->spacer();
}
if ($hasdown) {
$downicon = html_writer::link(
$this->get_action_url([
'sesskey' => sesskey(),
'action' => 'down',
'plugin' => $row->plugininfo->name,
]),
$OUTPUT->pix_icon('t/down', get_string('movedown')),
array_merge($dataattributes, ['data-direction' => 'down']),
);
} else {
$downicon = $OUTPUT->spacer();
}
// For now just add the up/down icons.
return html_writer::span($upicon . $downicon);
}
/**
* Show the settings column content.
*
* @param stdClass $row
* @return string
*/
protected function col_settings(stdClass $row): string {
if ($settingsurl = $row->plugininfo->get_settings_url()) {
return html_writer::link($settingsurl, get_string('settings'));
}
return '';
}
/**
* Show the Uninstall column content.
*
* @param stdClass $row
* @return string
*/
protected function col_uninstall(stdClass $row): string {
$status = $row->plugininfo->get_status();
if ($status === core_plugin_manager::PLUGIN_STATUS_NEW) {
return get_string('status_new', 'core_plugin');
}
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
$uninstall = get_string('status_missing', 'core_plugin') . '<br/>';
} else {
$uninstall = '';
}
if ($uninstallurl = $this->pluginmanager->get_uninstall_url($row->plugin)) {
$uninstall .= html_writer::link($uninstallurl, get_string('uninstallplugin', 'core_admin'));
}
return $uninstall;
}
/**
* Get the JS module used to manage this table.
*
* This should be a class which extends 'core_admin/plugin_management_table'.
*
* @return string
*/
protected function get_table_js_module(): string {
return 'core_admin/plugin_management_table';
}
/**
* Add JS specific to this implementation.
*
* @return string
*/
protected function get_dynamic_table_html_end(): string {
global $PAGE;
$PAGE->requires->js_call_amd($this->get_table_js_module(), 'init');
return parent::get_dynamic_table_html_end();
}
/**
* Get any class to add to the row.
*
* @param mixed $row
* @return string
*/
protected function get_row_class($row): string {
$plugininfo = $row->plugininfo;
if ($plugininfo->get_status() === core_plugin_manager::PLUGIN_STATUS_MISSING) {
return '';
}
if (!$plugininfo->is_enabled()) {
return 'dimmed_text';
}
return '';
}
public static function get_filterset_class(): string {
return self::class . '_filterset';
}
/**
* Whether this plugin type supports the disabling of plugins.
*
* @return bool
*/
protected function supports_disabling(): bool {
return $this->plugininfoclass::plugintype_supports_disabling();
}
/**
* Whether this table should show ordering fields.
*
* @return bool
*/
protected function supports_ordering(): bool {
return $this->plugininfoclass::plugintype_supports_ordering();
}
}
@@ -0,0 +1,27 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
/**
* This file contains the dynamic interface.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class plugin_management_table_filterset extends \core_table\local\filter\filterset {
}
@@ -0,0 +1,50 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_admin\table;
use moodle_url;
/**
* Tiny admin settings.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_plugin_management_table extends \core_admin\table\plugin_management_table {
protected function get_plugintype(): string {
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();
unset($columns['settings']);
return $columns;
}
protected function get_action_url(array $params = []): moodle_url {
return new moodle_url('/admin/tool.php', $params);
}
}
+72 -29
View File
@@ -27,23 +27,28 @@ define('CLI_SCRIPT', true);
require(__DIR__ . '/../../config.php');
require_once("{$CFG->libdir}/clilib.php");
require_once("{$CFG->libdir}/cronlib.php");
list($options, $unrecognized) = cli_get_params(
[
'execute' => false,
'help' => false,
'keep-alive' => 0,
'showsql' => false,
'showdebugging' => false,
'execute' => false,
'keep-alive' => 0,
'ignorelimits' => false,
'force' => false,
'id' => null,
'classname' => null,
'taskslimit' => null,
'failed' => false,
], [
'h' => 'help',
'e' => 'execute',
'k' => 'keep-alive',
'i' => 'ignorelimits',
'f' => 'force',
'c' => 'classname',
'l' => 'taskslimit',
]
);
@@ -52,8 +57,7 @@ if ($unrecognized) {
cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
if ($options['help'] or empty($options['execute'])) {
$help = <<<EOT
$help = <<<EOT
Ad hoc cron tasks.
Options:
@@ -64,22 +68,32 @@ Options:
-k, --keep-alive=N Keep this script alive for N seconds and poll for new adhoc tasks
-i --ignorelimits Ignore task_adhoc_concurrency_limit and task_adhoc_max_runtime limits
-f, --force Run even if cron is disabled
--id Run (failed) task with id
-c, --classname Run tasks with a certain classname (FQN)
-l, --taskslimit=N Run at most N tasks
--failed Run only tasks that failed, ie those with a fail delay
Example:
Run all queued tasks:
\$sudo -u www-data /usr/bin/php admin/cli/adhoc_task.php --execute
Run all queued tasks of specific class:
\$sudo -u www-data /usr/bin/php admin/cli/adhoc_task.php --classname=\\\\core_course\\\\task\\\\course_delete_modules
Double backslash for the shell escape reasons.
Run a specific task:
\$sudo -u www-data /usr/bin/php admin/cli/adhoc_task.php --id=123456
Run a specific task with debugging:
\$sudo -u www-data /usr/bin/php admin/cli/adhoc_task.php --id=123456 --showsql --showdebugging
To profile a long running task:
\$sudo -u www-data /usr/bin/php admin/cli/adhoc_task.php --taskslimit=1 --classname='\\some\\class\\name' --ignorelimits
EOT;
if ($options['help']) {
echo $help;
die;
}
if ($options['showdebugging']) {
set_debugging(DEBUG_DEVELOPER, true);
}
if ($options['showsql']) {
$DB->set_debug(true);
exit(0);
}
if (CLI_MAINTENANCE) {
@@ -92,17 +106,18 @@ if (moodle_needs_upgrading()) {
exit(1);
}
if (empty($options['execute'])) {
exit(0);
}
if (!get_config('core', 'cron_enabled') && !$options['force']) {
mtrace('Cron is disabled. Use --force to override.');
exit(1);
}
if (empty($options['keep-alive'])) {
$options['keep-alive'] = 0;
// Common debugging options.
if ($options['showdebugging']) {
set_debugging(DEBUG_DEVELOPER, true);
}
if ($options['showsql']) {
$DB->set_debug(true);
}
if (!empty($CFG->showcronsql)) {
@@ -112,20 +127,48 @@ if (!empty($CFG->showcrondebugging)) {
set_debugging(DEBUG_DEVELOPER, true);
}
$checklimits = empty($options['ignorelimits']);
// Process params.
core_php_time_limit::raise();
// Increase memory limit.
raise_memory_limit(MEMORY_EXTRA);
// Emulate normal session - we use admin account by default.
cron_setup_user();
$humantimenow = date('r', time());
$keepalive = (int)$options['keep-alive'];
\core\cron::setup_user();
\core\local\cli\shutdown::script_supports_graceful_exit();
$humantimenow = date('r', time());
mtrace("Server Time: {$humantimenow}\n");
cron_run_adhoc_tasks(time(), $keepalive, $checklimits);
$classname = $options['classname'];
// Run a single adhoc task only, if requested.
if (!empty($options['id'])) {
$taskid = (int) $options['id'];
\core\cron::run_adhoc_task($taskid);
exit(0);
}
// Run all failed tasks.
if (!empty($options['failed'])) {
\core\cron::run_failed_adhoc_tasks($classname);
exit(0);
}
// Examine params and determine if we should run.
$execute = (bool) $options['execute'];
$keepalive = empty($options['keep-alive']) ? 0 : (int) $options['keep-alive'];
$taskslimit = empty($options['taskslimit']) ? null : (int) $options['taskslimit'];
$checklimits = empty($options['ignorelimits']);
if ($classname || $keepalive || $taskslimit) {
$execute = true;
}
// Output the help text if no criteria for running the adhoc tasks are given.
if (!$execute) {
echo $help;
exit(0);
}
\core\cron::run_adhoc_tasks(time(), $keepalive, $checklimits, null, $taskslimit, $classname);
+4 -5
View File
@@ -30,7 +30,6 @@ define('CLI_SCRIPT', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php'); // cli only functions
require_once($CFG->libdir.'/cronlib.php');
// now get cli options
list($options, $unrecognized) = cli_get_params(array('help'=>false),
@@ -80,10 +79,10 @@ if (!empty($CFG->showcrondebugging)) {
$starttime = microtime();
/// emulate normal session
cron_setup_user();
// Emulate normal session.
\core\cron::setup_user();
/// Start output log
// Start output log.
$timenow = time();
mtrace("Server Time: ".date('r',$timenow)."\n\n");
@@ -96,4 +95,4 @@ backup_cron_automated_helper::run_automated_backup(backup_cron_automated_helper:
mtrace("Automated cron backups completed correctly");
$difftime = microtime_diff($starttime, microtime());
mtrace("Execution took ".$difftime." seconds");
mtrace("Execution took ".$difftime." seconds");
+21 -13
View File
@@ -1,5 +1,4 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -30,12 +29,11 @@
define('CLI_SCRIPT', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php'); // cli only functions
require_once($CFG->libdir.'/cronlib.php');
require(__DIR__ . '/../../config.php');
require_once($CFG->libdir . '/clilib.php');
// now get cli options
list($options, $unrecognized) = cli_get_params(
// Now get cli option.
[$options, $unrecognized] = cli_get_params(
[
'help' => false,
'stop' => false,
@@ -44,7 +42,9 @@ list($options, $unrecognized) = cli_get_params(
'enable' => false,
'disable' => false,
'disable-wait' => false,
], [
'keep-alive' => null,
],
[
'h' => 'help',
's' => 'stop',
'l' => 'list',
@@ -52,6 +52,7 @@ list($options, $unrecognized) = cli_get_params(
'e' => 'enable',
'd' => 'disable',
'w' => 'disable-wait',
'k' => 'keep-alive',
]
);
@@ -62,7 +63,7 @@ if ($unrecognized) {
if ($options['help']) {
$help =
"Execute periodic cron actions.
"Execute periodic cron actions.
Options:
-h, --help Print out this help
@@ -72,6 +73,9 @@ Options:
-e, --enable Enable cron
-d, --disable Disable cron
-w, --disable-wait=600 Disable cron and wait until all tasks finished or fail after N seconds (optional param)
-k, --keep-alive=N Keep this script alive for N seconds and poll for new tasks
The default value can be set by administrators in:
Site administration > Server > Tasks > Task processing > Keep alive time
Example:
\$sudo -u www-data /usr/bin/php admin/cli/cron.php
@@ -105,7 +109,8 @@ if ($options['list']) {
$tasks = \core\task\manager::get_running_tasks();
mtrace('The list of currently running tasks:');
$format = "%7s %-12s %-9s %-20s %-52s\n";
printf ($format,
printf(
$format,
'PID',
'HOST',
'TYPE',
@@ -113,7 +118,8 @@ if ($options['list']) {
'CLASSNAME'
);
foreach ($tasks as $task) {
printf ($format,
printf(
$format,
$task->pid,
substr($task->hostname, 0, 12),
$task->type,
@@ -137,7 +143,7 @@ if ($wait = $options['disable-wait']) {
set_config('cron_enabled', 0);
\core\task\manager::clear_static_caches();
mtrace('Cron has been disabled for the site.');
mtrace('Allocating '. format_time($waitsec) . ' for the tasks to finish.');
mtrace('Allocating ' . format_time($waitsec) . ' for the tasks to finish.');
$lastcount = 0;
while ($wait) {
@@ -151,7 +157,7 @@ if ($wait = $options['disable-wait']) {
if (time() - $started >= $waitsec) {
mtrace('');
mtrace('Wait time ('. format_time($waitsec) . ') elapsed, but ' . count($tasks) . ' task(s) still running.');
mtrace('Wait time (' . format_time($waitsec) . ') elapsed, but ' . count($tasks) . ' task(s) still running.');
mtrace('Exiting with code 1.');
exit(1);
}
@@ -175,4 +181,6 @@ if (!get_config('core', 'cron_enabled') && !$options['force']) {
\core\local\cli\shutdown::script_supports_graceful_exit();
cron_run();
$keepalive = $options['keep-alive'];
\core\cron::run_main_process($keepalive);
+123
View File
@@ -0,0 +1,123 @@
<?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/>.
/**
* CLI script to delete a course.
*
* @package core
* @subpackage cli
* @author Mikhail Golenkov <mikhailgolenkov@catalyst-au.net>
* @copyright 2022 Catalyst IT
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(__DIR__ . '/../../config.php');
require_once($CFG->libdir . '/clilib.php');
list($options, $unrecognized) = cli_get_params(
[
'courseid' => false,
'help' => false,
'showsql' => false,
'showdebugging' => false,
'disablerecyclebin' => false,
'non-interactive' => false,
], [
'c' => 'courseid',
'h' => 'help',
]
);
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
if ($options['help'] || empty($options['courseid'])) {
$help = <<<EOT
CLI script to delete a course.
Options:
-h, --help Print out this help
--showsql Show sql queries before they are executed
--showdebugging Show developer level debugging information
--disablerecyclebin Skip backing up the course
--non-interactive No interactive questions or confirmations
-c, --courseid Course id to be deleted
Example:
\$sudo -u www-data /usr/bin/php admin/cli/delete_course.php --courseid=123456
\$sudo -u www-data /usr/bin/php admin/cli/delete_course.php --courseid=123456 --showdebugging
\$sudo -u www-data /usr/bin/php admin/cli/delete_course.php --courseid=123456 --disablerecyclebin
EOT;
echo $help;
die;
}
$interactive = empty($options['non-interactive']);
if ($options['showdebugging']) {
mtrace('Enabling debugging...');
set_debugging(DEBUG_DEVELOPER, true);
}
if ($options['showsql']) {
mtrace('Enabling SQL debugging...');
$DB->set_debug(true);
}
if (CLI_MAINTENANCE) {
cli_error('CLI maintenance mode active, CLI execution suspended');
}
if (moodle_needs_upgrading()) {
cli_error('Moodle upgrade pending, CLI execution suspended');
}
$course = $DB->get_record('course', array('id' => $options['courseid']));
if (empty($course)) {
cli_error('Course not found');
}
mtrace('Deleting course id ' . $course->id);
mtrace('Course name: ' . $course->fullname);
mtrace('Short name: ' . $course->shortname);
if ($interactive) {
mtrace('');
$input = cli_input('Are you sure you wish to delete this course? (y/N)', 'N', ['y', 'Y', 'n', 'N']);
if (strtolower($input) != 'y') {
exit(0);
}
}
if ($options['disablerecyclebin']) {
mtrace('Disabling recycle bin...');
$overrideconfig = ['tool_recyclebin' => ['coursebinenable' => false, 'categorybinenable' => false]];
$CFG->forced_plugin_settings = array_merge($CFG->forced_plugin_settings, $overrideconfig);
}
core_php_time_limit::raise();
delete_course($course);
mtrace('Updating course count in categories...');
fix_course_sortorder();
mtrace('Done!');
+209
View File
@@ -0,0 +1,209 @@
<?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/>.
/**
* This script allows you to view and change the emailstop flag of any user.
*
* @package core
* @subpackage cli
* @copyright 2023 Stephan Robotta (stephan.robotta@bfh.ch)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php');
// Define the input options.
$longparams = [
'email' => '',
'help' => false,
'id' => '',
'quiet' => false,
'stop' => '',
'username' => '',
];
$shortparams = [
'e' => 'email',
'h' => 'help',
'i' => 'id',
'q' => 'quiet',
's' => 'stop',
'u' => 'username',
];
// Define exit codes.
$exitsuccess = 0;
$exitunknownoption = 1;
$exitmissinguserarg = 2;
$exittoomanyuserarg = 3;
$exitnosearchargs = 4;
$exitnousersfound = 5;
$exitinvalidstopflag = 6;
$exiterrordb = 7;
// Now get cli options that are set by the caller.
list($options, $unrecognized) = cli_get_params($longparams, $shortparams);
$verbose = empty($options['quiet']);
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
if ($verbose) {
cli_error(get_string('cliunknowoption', 'admin', $unrecognized), $exitunknownoption);
}
exit($exitunknownoption);
}
if ($options['help']) {
$help =
"Set/unset or show status of emailstop flag for a user, identified by username or email.
There are no security checks here because anybody who is able to
execute this file may execute any PHP too.
Options:
-h, --help Print out this help
-e, --email=email Specify user by email, separate many users by comma
-i, --id=id Specify user by id, separate many users by comma
-q, --quiet No output to stdout
-s, --stop=0|1|off|on Set new value for emailstop flag
-u, --username=username Specify user by username, separate many users by comma
Example:
\$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --email=student1@example.com --stop=1
\$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --email=student1@example.com,student2@example.com
\$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --u=student1,student2 -s=on
";
echo $help;
exit($exitsuccess);
}
$cntempty = 0;
$cntfilled = 0;
$searchargs = [];
// Try to find out which option is used to fetch the users from. Also do sanitize etc.
foreach (['email', 'username', 'id'] as $option) {
if (empty($options[$option])) {
$cntempty++;
} else {
$cntfilled++;
$argname = $option;
// The search args must be: split by the comma, trimmed, and empty elements filtered out.
$searchargs = array_flip(array_filter(
array_map(
function ($item) {
return trim($item);
},
explode(',', $options[$option])
),
function ($item) {
return $item !== '';
}
));
}
}
if ($cntempty === 3) {
if ($verbose) {
cli_error('One of username, email, or id must be set.', $exitmissinguserarg);
}
exit($exitmissinguserarg);
}
if ($cntfilled > 1) {
if ($verbose) {
cli_error('Only one of email, username, or id can be set to identify a user.', $exittoomanyuserarg);
}
exit($exittoomanyuserarg);
}
if (empty($searchargs)) {
if ($verbose) {
cli_error('No values are provided for users.', $exitnosearchargs);
}
exit($exitnosearchargs);
}
try {
$users = $DB->get_records_list('user', $argname, array_keys($searchargs));
} catch (Exception $e) {
if ($verbose) {
cli_error("Could not fetch data from db by {$argname}: '{$options[$argname]}'.", $exiterrordb);
}
exit($exiterrordb);
}
if (empty($users)) {
if ($verbose) {
cli_error("Can not find any user by {$argname}: '{$options[$argname]}'.", $exitnousersfound);
}
exit($exitnousersfound);
}
// No stop flag set, then just print the user and the current emailstop flag state.
if ($options['stop'] === '') {
foreach ($users as $user) {
if ($verbose) {
echo 'user=' . $user->{$argname} . ' - emailstop=' . (int)$user->emailstop . PHP_EOL;
unset($searchargs[$user->{$argname}]);
}
}
if ($verbose) {
foreach (array_keys($searchargs) as $arg) {
echo 'user=' . $arg . ' - not found' . PHP_EOL;
}
}
exit($exitsuccess);
}
// Allowed values for the stop flag enabled are 1 and on, for disabled are 0 and off.
$validvalues = ['0', '1', 'off', 'on'];
$stopflag = strtolower($options['stop']);
if (!in_array($stopflag, $validvalues)) {
if ($verbose) {
cli_error('Value for the emailstop flag must be one of: ' . implode(', ', $validvalues) . '.', $exitinvalidstopflag);
}
exit($exitinvalidstopflag);
}
foreach ($validvalues as $value) {
if ($value === $stopflag) {
$stopflag = ($value === '1' || $value === 'on') ? 1 : 0;
break;
}
}
// Update each user with the stop flag to be set if it is necessary.
foreach ($users as $user) {
$line = 'Update user ' . $user->{$argname} . ($argname !== 'id' ? ' (' . $user->id . ')' : '') . ' - ';
if ((int)$user->emailstop !== $stopflag) {
$DB->set_field('user', 'emailstop', $stopflag, ['id' => $user->id]);
$line .= 'ok';
} else {
$line .= 'already done';
}
if ($verbose) {
echo $line . PHP_EOL;
unset($searchargs[$user->{$argname}]);
}
}
if ($verbose) {
foreach (array_keys($searchargs) as $arg) {
echo 'user=' . $arg . ' - not found' . PHP_EOL;
}
}
exit($exitsuccess);
+11
View File
@@ -57,6 +57,7 @@ Options:
--fullname=STRING Name of the site
--shortname=STRING Name of the site
--summary=STRING The summary to be displayed on the front page
--supportemail=STRING Email address for support and help.
-h, --help Print out this help
Example:
@@ -98,6 +99,7 @@ list($options, $unrecognized) = cli_get_params(
'fullname' => '',
'shortname' => '',
'summary' => '',
'supportemail' => '',
'agree-license' => false,
'help' => false
),
@@ -136,6 +138,15 @@ if (!empty($options['adminemail']) && !validate_email($options['adminemail'])) {
cli_error(get_string('cliincorrectvalueerror', 'admin', $a));
}
// Validate that the supportemail provided was an e-mail address.
if (!empty($options['supportemail']) && !validate_email($options['supportemail'])) {
$a = (object) [
'option' => 'supportemail',
'value' => $options['supportemail']
];
cli_error(get_string('cliincorrectvalueerror', 'admin', $a));
}
$options['lang'] = clean_param($options['lang'], PARAM_SAFEDIR);
if (!file_exists($CFG->dirroot.'/install/lang/'.$options['lang'])) {
$options['lang'] = 'en';
+4 -4
View File
@@ -69,15 +69,15 @@ if ($options['showdebugging']) {
}
if (!$admin = get_admin()) {
print_error('noadmins');
throw new \moodle_exception('noadmins');
}
if (!file_exists($options['file'])) {
print_error('filenotfound');
throw new \moodle_exception('filenotfound');
}
if (!$category = $DB->get_record('course_categories', ['id' => $options['categoryid']], 'id')) {
print_error('invalidcategoryid');
throw new \moodle_exception('invalidcategoryid');
}
$backupdir = "restore_" . uniqid();
@@ -102,7 +102,7 @@ try {
} catch (Exception $e) {
cli_heading(get_string('cleaningtempdata'));
fulldelete($path);
print_error('generalexceptionmessage', 'error', '', $e->getMessage());
throw new \moodle_exception('generalexceptionmessage', 'error', '', $e->getMessage());
}
cli_heading(get_string('restoredcourseid', 'backup', $courseid));
+4 -5
View File
@@ -27,7 +27,6 @@ define('CLI_SCRIPT', true);
require(__DIR__ . '/../../config.php');
require_once("$CFG->libdir/clilib.php");
require_once("$CFG->libdir/cronlib.php");
list($options, $unrecognized) = cli_get_params(
[
@@ -69,11 +68,11 @@ if ($options['help'] or (!$options['list'] and !$options['execute'])) {
die;
}
if ($options['showdebugging']) {
if ($options['showdebugging'] || !empty($CFG->showcrondebugging)) {
set_debugging(DEBUG_DEVELOPER, true);
}
if ($options['showsql']) {
if ($options['showsql'] || !empty($CFG->showcronsql)) {
$DB->set_debug(true);
}
if ($options['list']) {
@@ -142,7 +141,7 @@ if ($execute = $options['execute']) {
raise_memory_limit(MEMORY_EXTRA);
// Emulate normal session - we use admin account by default.
cron_setup_user();
\core\cron::setup_user();
// Execute the task.
\core\local\cli\shutdown::script_supports_graceful_exit();
@@ -164,5 +163,5 @@ if ($execute = $options['execute']) {
$task->set_cron_lock($cronlock);
}
cron_run_inner_scheduled_task($task);
\core\cron::run_inner_scheduled_task($task);
}
+114 -28
View File
@@ -48,12 +48,16 @@ require_once($CFG->libdir.'/environmentlib.php');
$lang = isset($SESSION->lang) ? $SESSION->lang : $CFG->lang;
list($options, $unrecognized) = cli_get_params(
array(
'non-interactive' => false,
'allow-unstable' => false,
'help' => false,
'lang' => $lang,
'verbose-settings' => false,
'is-pending' => false,
'allow-unstable' => false,
'help' => false,
'is-maintenance-required' => false,
'is-pending' => false,
'lang' => $lang,
'maintenance' => true,
'non-interactive' => false,
'set-ui-upgrade-lock' => false,
'unset-ui-upgrade-lock' => false,
'verbose-settings' => false,
),
array(
'h' => 'help'
@@ -79,19 +83,35 @@ Please note you must execute this script with the same uid as apache!
Site defaults may be changed via local/defaults.php.
Options:
--non-interactive No interactive questions or confirmations
--allow-unstable Upgrade even if the version is not marked as stable yet,
required in non-interactive mode.
--lang=CODE Set preferred language for CLI output. Defaults to the
site language if not set. Defaults to 'en' if the lang
parameter is invalid or if the language pack is not
installed.
--verbose-settings Show new settings values. By default only the name of
new core or plugin settings are displayed. This option
outputs the new values as well as the setting name.
--is-pending If an upgrade is needed it exits with an error code of
2 so it distinct from other types of errors.
-h, --help Print out this help
--allow-unstable Upgrade even if the version is not marked as stable yet,
required in non-interactive mode.
-h, --help Print out this help.
--is-maintenance-required Returns exit code 2 if the upgrade requires maintenance mode.
Returns exit code 3 if no maintenance is required for the upgrade.
--is-pending Exit with error code 2 if an upgrade is required.
--lang=CODE Set preferred language for CLI output. Defaults to the
site language if not set. Defaults to 'en' if the lang
parameter is invalid or if the language pack is not
installed.
--maintenance Sets whether this upgrade will use maintenance mode.
If not possible, the upgrade will not happen and the script will exit.
WARNING: Caches (except theme) will be STALE and MUST be purged after upgrading.
DO NOT USE if the upgrade contains known breaking changes to the way data
and the database interact.
RECOMMENDED for lightweight deployments, to allow for a graceful purge and
rebuild of the cache.
--non-interactive No interactive questions or confirmations.
--set-ui-upgrade-lock Sets the upgrade to CLI only and unable to be triggered from the frontend.
If called with --maintenance=false, the lock WILL NOT be released when the
upgrade finishes, and MUST be manually removed.
If called with --is-maintenance-required before an upgrade,
The lock WILL be released when the upgrade finishes.
--unset-ui-upgrade-lock Removes the frontend upgrade lock, if the lock exists.
Useful when an error during the upgrade leaves the upgrade locked,
or there is need to control the time where the unlock happens.
--verbose-settings Show new settings values. By default only the name of
new core or plugin settings are displayed. This option
outputs the new values as well as the setting name.
Example:
\$sudo -u www-data /usr/bin/php admin/cli/upgrade.php
@@ -115,12 +135,58 @@ if ($version < $CFG->version) {
$oldversion = "$CFG->release ($CFG->version)";
$newversion = "$release ($version)";
if (!moodle_needs_upgrading()) {
if ($options['unset-ui-upgrade-lock']) {
// Unconditionally unset this config if requested.
set_config('outagelessupgrade', false);
cli_writeln(get_string('cliupgradeunsetlock', 'admin'));
}
$allhash = core_component::get_all_component_hash();
// Initialise allcomponent hash if not set. It will be correctly set after upgrade.
$CFG->allcomponenthash = $CFG->allcomponenthash ?? '';
if (!$options['maintenance']) {
if ($allhash !== $CFG->allcomponenthash) {
// Throw an error here, we can't proceed, this needs to set maintenance.
cli_error(get_string('cliupgrademaintenancerequired', 'core_admin'), 2);
}
// Set a constant to stop any upgrade var from being set during processing.
// This protects against the upgrade setting timeouts and maintenance during the upgrade.
define('CLI_UPGRADE_RUNNING', true);
// This database control is the control to block the GUI from doing upgrade related actions.
set_config('outagelessupgrade', true);
}
// We should ignore all upgrade locks here.
if (!moodle_needs_upgrading(false)) {
cli_error(get_string('cliupgradenoneed', 'core_admin', $newversion), 0);
}
if ($options['is-pending']) {
cli_error(get_string('cliupgradepending', 'core_admin'), 2);
// Handle exit based options for outputting upgrade state.
if ($options['is-pending'] || $options['is-maintenance-required']) {
// If we aren't doing a maintenance check, plain pending check.
if (!$options['is-maintenance-required']) {
cli_error(get_string('cliupgradepending', 'core_admin'), 2);
}
// Can we do this safely with no maintenance/outage? Detect if there is a schema or other application state change.
if ($allhash !== $CFG->allcomponenthash) {
// State change here, we need to do this in maintenance.
cli_writeln(get_string('cliupgradepending', 'core_admin'));
cli_error(get_string('cliupgrademaintenancerequired', 'core_admin'), 2);
}
// If requested, we should always set the upgrade lock here, so this cannot be run from frontend.
if ($options['set-ui-upgrade-lock']) {
set_config('outagelessupgrade', true);
cli_writeln(get_string('cliupgradesetlock', 'admin'));
}
// We can do an upgrade without maintenance!
cli_writeln(get_string('cliupgradepending', 'core_admin'));
cli_error(get_string('cliupgrademaintenancenotrequired', 'core_admin'), 3);
}
// Test environment first.
@@ -187,12 +253,18 @@ if ($interactive) {
}
if ($version > $CFG->version) {
// We purge all of MUC's caches here.
// Caches are disabled for upgrade by CACHE_DISABLE_ALL so we must set the first arg to true.
// This ensures a real config object is loaded and the stores will be purged.
// This is the only way we can purge custom caches such as memcache or APC.
// Note: all other calls to caches will still used the disabled API.
cache_helper::purge_all(true);
// Only purge caches if this is a plain upgrade.
// In the case of a no-outage upgrade, we will gracefully roll caches after upgrade.
if ($options['maintenance']) {
// We purge all of MUC's caches here.
// Caches are disabled for upgrade by CACHE_DISABLE_ALL so we must set the first arg to true.
// This ensures a real config object is loaded and the stores will be purged.
// This is the only way we can purge custom caches such as memcache or APC.
// Note: all other calls to caches will still used the disabled API.
cache_helper::purge_all(true);
}
upgrade_core($version, true);
}
set_config('release', $release);
@@ -230,4 +302,18 @@ foreach ($settingsoutput as $setting => $value) {
upgrade_themes();
echo get_string('cliupgradefinished', 'admin', $a)."\n";
if (!$options['maintenance']) {
cli_writeln(get_string('cliupgradecompletenomaintenanceupgrade', 'admin'));
// Here we check if upgrade lock has not been specifically set during this upgrade run.
// This supports wider server orchestration actions happening, which should call with no-maintenance AND set-ui-upgrade-lock,
// such as a new docker container deployment, of which the moodle upgrade is only a component.
if (!$options['set-ui-upgrade-lock']) {
// In this case we should release the lock now, as the upgrade is finished.
// We weren't told to keep the lock with set-ui-upgrade-lock, so release.
set_config('outagelessupgrade', false);
}
}
exit(0); // 0 means success
+1 -1
View File
@@ -42,7 +42,7 @@ $plugins = core_plugin_manager::instance()->get_plugins_of_type('contenttype');
$sortorder = array_flip(array_keys($plugins));
if (!isset($plugins[$name])) {
print_error('contenttypenotfound', 'error', $return, $name);
throw new \moodle_exception('contenttypenotfound', 'error', $return, $name);
}
switch ($action) {
+79
View File
@@ -0,0 +1,79 @@
<?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/>.
/**
* Reset course indentation
*
* @copyright 2023 Amaia Anabitarte <amaia@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('../../config.php');
require_admin();
$format = required_param('format', PARAM_PLUGIN);
$confirm = optional_param('confirm', false, PARAM_BOOL);
$backurl = new moodle_url('/admin/settings.php', ['section' => 'formatsetting'.$format]);
$PAGE->set_url('/admin/course/resetindentation.php', ['format' => $format]);
$PAGE->set_context(context_system::instance());
if ($confirm) {
require_sesskey();
$courses = $DB->get_records('course', ['format' => $format], 'id', 'id');
if (!empty($courses)) {
$courseids = array_keys($courses);
list($courseinsql, $courseparams) = $DB->get_in_or_equal($courseids, SQL_PARAMS_NAMED, 'course');
$DB->set_field_select('course_modules', 'indent', '0', "course $courseinsql AND indent <> 0", $courseparams);
rebuild_course_cache(0, true);
}
redirect(
$backurl,
get_string('resetindentationsuccess', 'admin'),
null,
\core\output\notification::NOTIFY_SUCCESS
);
}
$strtitle = get_string('resetindentation', 'admin');
$PAGE->set_title($strtitle);
$PAGE->set_heading($strtitle);
navigation_node::override_active_url(new moodle_url(
'/admin/course/resetindentation.php',
['action' => 'confirm', 'format' => $format]
));
echo $OUTPUT->header();
$displayoptions = ['confirmtitle' => get_string('resetindentation_title', 'admin')];
$confirmbutton = new single_button(
new moodle_url('/admin/course/resetindentation.php', ['confirm' => 1, 'format' => $format, 'sesskey' => sesskey()]),
get_string('resetindentation', 'admin'),
'post',
single_button::BUTTON_DANGER
);
$cancelbutton = new single_button($backurl, get_string('cancel'));
echo $OUTPUT->confirm(
get_string('resetindentation_help', 'admin', ['format' => get_string('pluginname', 'format_'.$format)]),
$confirmbutton,
$cancelbutton,
$displayoptions
);
echo $OUTPUT->footer();
+1 -1
View File
@@ -41,7 +41,7 @@ $formatplugins = core_plugin_manager::instance()->get_plugins_of_type('format');
$sortorder = array_flip(array_keys($formatplugins));
if (!isset($formatplugins[$formatname])) {
print_error('courseformatnotfound', 'error', $return, $formatname);
throw new \moodle_exception('courseformatnotfound', 'error', $return, $formatname);
}
switch ($action) {
+8 -9
View File
@@ -1,5 +1,4 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -36,6 +35,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// phpcs:ignoreFile moodle.Files.MoodleInternal.MoodleInternalGlobalState
if (defined('STDIN')) {
fwrite(STDERR, "ERROR: This script no longer supports CLI, please use admin/cli/cron.php instead\n");
@@ -49,8 +49,7 @@ define('WEB_CRON_EMULATED_CLI', 'defined'); // ugly ugly hack, do not use elsewh
define('NO_OUTPUT_BUFFERING', true);
require('../config.php');
require_once($CFG->libdir.'/clilib.php');
require_once($CFG->libdir.'/cronlib.php');
require_once($CFG->libdir . '/clilib.php');
// extra safety
\core\session\manager::write_close();
@@ -58,7 +57,7 @@ require_once($CFG->libdir.'/cronlib.php');
// check if execution allowed
if (!empty($CFG->cronclionly)) {
// This script can only be run via the cli.
print_error('cronerrorclionly', 'admin');
throw new \moodle_exception('cronerrorclionly', 'admin');
exit;
}
// This script is being called via the web, so check the password if there is one.
@@ -66,16 +65,16 @@ if (!empty($CFG->cronremotepassword)) {
$pass = optional_param('password', '', PARAM_RAW);
if ($pass != $CFG->cronremotepassword) {
// wrong password.
print_error('cronerrorpassword', 'admin');
throw new \moodle_exception('cronerrorpassword', 'admin');
exit;
}
}
// send mime type and encoding
// Send mime type and encoding.
@header('Content-Type: text/plain; charset=utf-8');
// we do not want html markup in emulated CLI
// We do not want html markup in emulated CLI.
@ini_set('html_errors', 'off');
// execute the cron
cron_run();
// Execute the cron, disabling keepalive.
\core\cron::run_main_process(0);
+1 -1
View File
@@ -41,7 +41,7 @@ $customfieldplugins = core_plugin_manager::instance()->get_plugins_of_type('cust
$sortorder = array_flip(array_keys($customfieldplugins));
if (!isset($customfieldplugins[$customfieldname])) {
print_error('customfieldnotfound', 'error', $return, $customfieldname);
throw new \moodle_exception('customfieldnotfound', 'error', $return, $customfieldname);
}
switch ($action) {
+1 -1
View File
@@ -42,7 +42,7 @@ $plugins = core_plugin_manager::instance()->get_plugins_of_type('dataformat');
$sortorder = array_flip(array_keys($plugins));
if (!isset($plugins[$name])) {
print_error('courseformatnotfound', 'error', $return, $name);
throw new \moodle_exception('courseformatnotfound', 'error', $return, $name);
}
switch ($action) {
+55 -49
View File
@@ -1,87 +1,95 @@
<?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/>.
/**
* Allows admin to configure editors.
* A page to manage editor plugins.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/tablelib.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/tablelib.php');
$action = required_param('action', PARAM_ALPHANUMEXT);
$editor = required_param('editor', PARAM_PLUGIN);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$action = required_param('action', PARAM_ALPHANUMEXT);
$plugin = required_param('plugin', PARAM_PLUGIN);
$PAGE->set_url('/admin/editors.php', array('action'=>$action, 'editor'=>$editor));
$PAGE->set_url('/admin/editors.php', ['action' => $action, 'editor' => $plugin]);
$PAGE->set_context(context_system::instance());
require_admin();
require_sesskey();
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageeditors";
$returnurl = new moodle_url('/admin/settings.php', ['section' => 'manageeditors']);
// get currently installed and enabled auth plugins
$available_editors = editors_get_available();
if (!empty($editor) and empty($available_editors[$editor])) {
redirect ($returnurl);
}
$active_editors = explode(',', $CFG->texteditors);
foreach ($active_editors as $key=>$active) {
if (empty($available_editors[$active])) {
unset($active_editors[$key]);
}
}
////////////////////////////////////////////////////////////////////////////////
// process actions
if (!confirm_sesskey()) {
// Get currently installed and enabled auth plugins.
$availableeditors = editors_get_available();
if (!empty($plugin) && empty($availableeditors[$plugin])) {
redirect($returnurl);
}
$return = true;
$activeeditors = explode(',', $CFG->texteditors);
foreach ($activeeditors as $key => $active) {
if (empty($availableeditors[$active])) {
unset($activeeditors[$key]);
}
}
switch ($action) {
case 'disable':
// Remove from enabled list.
$class = \core_plugin_manager::resolve_plugininfo_class('editor');
$class::enable_plugin($editor, false);
$class::enable_plugin($plugin, false);
break;
case 'enable':
// Add to enabled list.
if (!in_array($editor, $active_editors)) {
if (!in_array($plugin, $activeeditors)) {
$class = \core_plugin_manager::resolve_plugininfo_class('editor');
$class::enable_plugin($editor, true);
$class::enable_plugin($plugin, true);
}
break;
case 'down':
$key = array_search($editor, $active_editors);
// check auth plugin is valid
$key = array_search($plugin, $activeeditors);
if ($key !== false) {
// move down the list
if ($key < (count($active_editors) - 1)) {
$fsave = $active_editors[$key];
$active_editors[$key] = $active_editors[$key + 1];
$active_editors[$key + 1] = $fsave;
add_to_config_log('editor_position', $key, $key + 1, $editor);
set_config('texteditors', implode(',', $active_editors));
// Move down the list.
if ($key < (count($activeeditors) - 1)) {
$fsave = $activeeditors[$key];
$activeeditors[$key] = $activeeditors[$key + 1];
$activeeditors[$key + 1] = $fsave;
add_to_config_log('editor_position', $key, $key + 1, $plugin);
set_config('texteditors', implode(',', $activeeditors));
core_plugin_manager::reset_caches();
}
}
break;
case 'up':
$key = array_search($editor, $active_editors);
// check auth is valid
$key = array_search($plugin, $activeeditors);
if ($key !== false) {
// move up the list
// Move up the list.
if ($key >= 1) {
$fsave = $active_editors[$key];
$active_editors[$key] = $active_editors[$key - 1];
$active_editors[$key - 1] = $fsave;
add_to_config_log('editor_position', $key, $key - 1, $editor);
set_config('texteditors', implode(',', $active_editors));
$fsave = $activeeditors[$key];
$activeeditors[$key] = $activeeditors[$key - 1];
$activeeditors[$key - 1] = $fsave;
add_to_config_log('editor_position', $key, $key - 1, $plugin);
set_config('texteditors', implode(',', $activeeditors));
core_plugin_manager::reset_caches();
}
}
@@ -91,6 +99,4 @@ switch ($action) {
break;
}
if ($return) {
redirect ($returnurl);
}
redirect($returnurl);
+2 -2
View File
@@ -55,11 +55,11 @@ if ($action == 'updatecomponent' && confirm_sesskey()) {
$a = new stdClass();
$a->url = 'https://download.moodle.org/environment/environment.zip';
$a->dest = $CFG->dataroot . '/';
print_error($cd->get_error(), 'error', $PAGE->url, $a);
throw new \moodle_exception($cd->get_error(), 'error', $PAGE->url, $a);
die();
} else {
print_error($cd->get_error(), 'error', $PAGE->url);
throw new \moodle_exception($cd->get_error(), 'error', $PAGE->url);
die();
}
+570
View File
@@ -3371,6 +3371,7 @@
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.3.0" level="required">
<RESTRICT function="restrict_php_version_81" message="unsupportedphpversion81" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -3539,6 +3540,8 @@
</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_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.0" requires="3.6">
@@ -3555,6 +3558,7 @@
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.3.0" level="required">
<RESTRICT function="restrict_php_version_81" message="unsupportedphpversion81" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -3733,4 +3737,570 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="4.1" requires="3.9">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.4" />
<VENDOR name="mysql" version="5.7" />
<VENDOR name="postgres" version="12" />
<VENDOR name="mssql" version="14.0" />
<VENDOR name="oracle" version="19" />
</DATABASE>
<PHP version="7.4.0" level="required">
<RESTRICT function="restrict_php_version_82" message="unsupportedphpversion82" />
</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="optional"/>
<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="optional">
<FEEDBACK>
<ON_CHECK message="sixtyfourbitswarning" />
</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_CHECKS>
</MOODLE>
<MOODLE version="4.2" requires="3.11.8">
<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.0.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_CHECKS>
</MOODLE>
<MOODLE version="4.3" requires="3.11.8">
<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.0.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_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+339 -330
View File
@@ -174,15 +174,17 @@ $documentationlink = '<a href="http://docs.moodle.org/en/Installation">Installat
// Check some PHP server settings
if (ini_get_bool('session.auto_start')) {
print_error('phpvaroff', 'debug', '', (object)array('name'=>'session.auto_start', 'link'=>$documentationlink));
throw new \moodle_exception('phpvaroff', 'debug', '',
(object)array('name' => 'session.auto_start', 'link' => $documentationlink));
}
if (!ini_get_bool('file_uploads')) {
print_error('phpvaron', 'debug', '', (object)array('name'=>'file_uploads', 'link'=>$documentationlink));
throw new \moodle_exception('phpvaron', 'debug', '',
(object)array('name' => 'file_uploads', 'link' => $documentationlink));
}
if (is_float_problem()) {
print_error('phpfloatproblem', 'admin', '', $documentationlink);
throw new \moodle_exception('phpfloatproblem', 'admin', '', $documentationlink);
}
// Set some necessary variables during set-up to avoid PHP warnings later on this page
@@ -203,7 +205,7 @@ require("$CFG->dirroot/version.php"); // defines $version, $release, $bran
$CFG->target_release = $release; // used during installation and upgrades
if (!$version or !$release) {
print_error('withoutversion', 'debug'); // without version, stop
throw new \moodle_exception('withoutversion', 'debug'); // Without version, stop.
}
if (!core_tables_exist()) {
@@ -275,7 +277,7 @@ if (!core_tables_exist()) {
if (!$DB->setup_is_unicodedb()) {
if (!$DB->change_db_encoding()) {
// If could not convert successfully, throw error, and prevent installation
print_error('unicoderequired', 'admin');
throw new \moodle_exception('unicoderequired', 'admin');
}
}
@@ -297,265 +299,80 @@ $stradministration = get_string('administration');
$PAGE->set_context(context_system::instance());
if (empty($CFG->version)) {
print_error('missingconfigversion', 'debug');
throw new \moodle_exception('missingconfigversion', 'debug');
}
// Detect config cache inconsistency, this happens when you switch branches on dev servers.
if ($CFG->version != $DB->get_field('config', 'value', array('name'=>'version'))) {
purge_all_caches();
redirect(new moodle_url($PAGE->url), 'Config cache inconsistency detected, resetting caches...');
}
if (!$cache and $version > $CFG->version) { // upgrade
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmupgrade' => $confirmupgrade,
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
check_upgrade_key($upgradekeyhash);
// Warning about upgrading a test site.
$testsite = false;
if (defined('BEHAT_SITE_RUNNING')) {
$testsite = 'behat';
// If an upgrade is running, an admin page starting a frontend upgrade could corrupt the
// DB if the upgrade collided with an already running upgrade process at the wrong time.
// Pull the value direct from the DB, this needs to *always* be correct.
$outagelessupgrade = !empty($DB->get_field('config', 'value', ['name' => 'outagelessupgrade']));
if (!$outagelessupgrade) {
// Detect config cache inconsistency, this happens when you switch branches on dev servers.
if ($CFG->version != $DB->get_field('config', 'value', array('name' => 'version'))) {
purge_all_caches();
redirect(new moodle_url($PAGE->url), 'Config cache inconsistency detected, resetting caches...');
}
if (isset($CFG->themerev)) {
// Store the themerev to restore after purging caches.
$themerev = $CFG->themerev;
}
if (!$cache && $version > $CFG->version && !$outagelessupgrade) { // Upgrade.
// We purge all of MUC's caches here.
// Caches are disabled for upgrade by CACHE_DISABLE_ALL so we must set the first arg to true.
// This ensures a real config object is loaded and the stores will be purged.
// This is the only way we can purge custom caches such as memcache or APC.
// Note: all other calls to caches will still used the disabled API.
cache_helper::purge_all(true);
// We then purge the regular caches.
purge_all_caches();
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmupgrade' => $confirmupgrade,
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
if (isset($themerev)) {
// Restore the themerev
set_config('themerev', $themerev);
}
check_upgrade_key($upgradekeyhash);
$output = $PAGE->get_renderer('core', 'admin');
if (upgrade_stale_php_files_present()) {
$PAGE->set_title($stradministration);
$PAGE->set_cacheable(false);
echo $output->upgrade_stale_php_files_page();
die();
}
if (empty($confirmupgrade)) {
$a = new stdClass();
$a->oldversion = "$CFG->release (".sprintf('%.2f', $CFG->version).")";
$a->newversion = "$release (".sprintf('%.2f', $version).")";
$strdatabasechecking = get_string('databasechecking', '', $a);
$PAGE->set_title($stradministration);
$PAGE->set_heading($strdatabasechecking);
$PAGE->set_cacheable(false);
echo $output->upgrade_confirm_page($a->newversion, $maturity, $testsite);
die();
} else if (empty($confirmrelease)) {
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
$PAGE->set_title($strcurrentrelease);
$PAGE->set_heading($strcurrentrelease);
$PAGE->set_cacheable(false);
echo $output->upgrade_environment_page($release, $envstatus, $environmentresults);
die();
} else if (empty($confirmplugins)) {
$strplugincheck = get_string('plugincheck');
$PAGE->navbar->add($strplugincheck);
$PAGE->set_title($strplugincheck);
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
$pluginman = core_plugin_manager::instance();
// Check for available updates.
if ($fetchupdates) {
// No sesskey support guaranteed here, because sessions might not work yet.
$updateschecker = \core\update\checker::instance();
if ($updateschecker->enabled()) {
$updateschecker->fetch();
}
redirect($PAGE->url);
// Warning about upgrading a test site.
$testsite = false;
if (defined('BEHAT_SITE_RUNNING')) {
$testsite = 'behat';
}
// Cancel all plugin installations.
if ($abortinstallx) {
// No sesskey support guaranteed here, because sessions might not work yet.
$abortables = $pluginman->list_cancellable_installations();
if ($abortables) {
if ($confirmabortinstall) {
foreach ($abortables as $plugin) {
$pluginman->cancel_plugin_installation($plugin->component);
}
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstallx' => $abortinstallx, 'confirmabortinstall' => 1));
echo $output->upgrade_confirm_abort_install_page($abortables, $continue);
die();
}
}
redirect($PAGE->url);
if (isset($CFG->themerev)) {
// Store the themerev to restore after purging caches.
$themerev = $CFG->themerev;
}
// Cancel single plugin installation.
if ($abortinstall) {
// No sesskey support guaranteed here, because sessions might not work yet.
if ($confirmabortinstall) {
$pluginman->cancel_plugin_installation($abortinstall);
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstall' => $abortinstall, 'confirmabortinstall' => 1));
$abortable = $pluginman->get_plugin_info($abortinstall);
if ($pluginman->can_cancel_plugin_installation($abortable)) {
echo $output->upgrade_confirm_abort_install_page(array($abortable), $continue);
die();
}
redirect($PAGE->url);
}
// We purge all of MUC's caches here.
// Caches are disabled for upgrade by CACHE_DISABLE_ALL so we must set the first arg to true.
// This ensures a real config object is loaded and the stores will be purged.
// This is the only way we can purge custom caches such as memcache or APC.
// Note: all other calls to caches will still used the disabled API.
cache_helper::purge_all(true);
// We then purge the regular caches.
purge_all_caches();
if (isset($themerev)) {
// Restore the themerev.
set_config('themerev', $themerev);
}
// Cancel all plugins upgrades (that is, restore archived versions).
if ($abortupgradex) {
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if ($restorable) {
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgradex' => 1, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Cancel single plugin upgrade (that is, install the archived version).
if ($abortupgrade) {
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if (isset($restorable[$abortupgrade])) {
$restorable = array($restorable[$abortupgrade]);
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgrade' => $abortupgrade, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Install all available missing dependencies.
if ($installdepx) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdepx' => 1, 'confirminstalldep' => 1))
);
}
// Install single available missing dependency.
if ($installdep) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
if (!empty($installable[$installdep])) {
$installable = array($installable[$installdep]);
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdep' => $installdep, 'confirminstalldep' => 1))
);
}
}
// Install all available updates.
if ($installupdatex) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdatex' => 1, 'confirminstallupdate' => 1))
);
}
// Install single available update.
if ($installupdate and $installupdateversion) {
// No sesskey support guaranteed here, because sessions might not work yet.
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdate' => $installupdate,
'installupdateversion' => $installupdateversion, 'confirminstallupdate' => 1)
)
);
}
}
echo $output->upgrade_plugin_check_page(core_plugin_manager::instance(), \core\update\checker::instance(),
$version, $showallplugins, $PAGE->url, new moodle_url($PAGE->url, array('confirmplugincheck' => 1)));
die();
} else {
// Always verify plugin dependencies!
$failed = array();
if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed, $CFG->branch)) {
echo $output->unsatisfied_dependencies_page($version, $failed, new moodle_url($PAGE->url,
array('confirmplugincheck' => 0)));
die();
}
unset($failed);
// Launch main upgrade.
upgrade_core($version, true);
}
} else if ($version < $CFG->version) {
// better stop here, we can not continue with plugin upgrades or anything else
throw new moodle_exception('downgradedcore', 'error', new moodle_url('/admin/'));
}
// Updated human-readable release version if necessary
if (!$cache and $release <> $CFG->release) { // Update the release version
set_config('release', $release);
}
if (!$cache and $branch <> $CFG->branch) { // Update the branch
set_config('branch', $branch);
}
if (!$cache and moodle_needs_upgrading()) {
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
check_upgrade_key($upgradekeyhash);
if (!$PAGE->headerprinted) {
// means core upgrade or installation was not already done
$pluginman = core_plugin_manager::instance();
$output = $PAGE->get_renderer('core', 'admin');
if (empty($confirmrelease)) {
require_once($CFG->libdir . '/environmentlib.php');
if (upgrade_stale_php_files_present()) {
$PAGE->set_title($stradministration);
$PAGE->set_cacheable(false);
echo $output->upgrade_stale_php_files_page();
die();
}
if (empty($confirmupgrade)) {
$a = new stdClass();
$a->oldversion = "$CFG->release (".sprintf('%.2f', $CFG->version).")";
$a->newversion = "$release (".sprintf('%.2f', $version).")";
$strdatabasechecking = get_string('databasechecking', '', $a);
$PAGE->set_title($stradministration);
$PAGE->set_heading($strdatabasechecking);
$PAGE->set_cacheable(false);
echo $output->upgrade_confirm_page($a->newversion, $maturity, $testsite);
die();
} else if (empty($confirmrelease)) {
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
@@ -567,7 +384,7 @@ if (!$cache and moodle_needs_upgrading()) {
echo $output->upgrade_environment_page($release, $envstatus, $environmentresults);
die();
} else if (!$confirmplugins) {
} else if (empty($confirmplugins)) {
$strplugincheck = get_string('plugincheck');
$PAGE->navbar->add($strplugincheck);
@@ -575,9 +392,11 @@ if (!$cache and moodle_needs_upgrading()) {
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
$pluginman = core_plugin_manager::instance();
// Check for available updates.
if ($fetchupdates) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$updateschecker = \core\update\checker::instance();
if ($updateschecker->enabled()) {
$updateschecker->fetch();
@@ -587,7 +406,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Cancel all plugin installations.
if ($abortinstallx) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$abortables = $pluginman->list_cancellable_installations();
if ($abortables) {
if ($confirmabortinstall) {
@@ -596,8 +415,7 @@ if (!$cache and moodle_needs_upgrading()) {
}
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstallx' => $abortinstallx,
'confirmabortinstall' => 1));
$continue = new moodle_url($PAGE->url, ['abortinstallx' => $abortinstallx, 'confirmabortinstall' => 1]);
echo $output->upgrade_confirm_abort_install_page($abortables, $continue);
die();
}
@@ -607,7 +425,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Cancel single plugin installation.
if ($abortinstall) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
if ($confirmabortinstall) {
$pluginman->cancel_plugin_installation($abortinstall);
redirect($PAGE->url);
@@ -624,7 +442,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Cancel all plugins upgrades (that is, restore archived versions).
if ($abortupgradex) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if ($restorable) {
upgrade_install_plugins($restorable, $confirmabortupgrade,
@@ -637,7 +455,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Cancel single plugin upgrade (that is, install the archived version).
if ($abortupgrade) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if (isset($restorable[$abortupgrade])) {
$restorable = array($restorable[$abortupgrade]);
@@ -651,7 +469,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Install all available missing dependencies.
if ($installdepx) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
@@ -661,7 +479,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Install single available missing dependency.
if ($installdep) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
if (!empty($installable[$installdep])) {
$installable = array($installable[$installdep]);
@@ -674,7 +492,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Install all available updates.
if ($installupdatex) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
@@ -684,7 +502,7 @@ if (!$cache and moodle_needs_upgrading()) {
// Install single available update.
if ($installupdate and $installupdateversion) {
require_sesskey();
// No sesskey support guaranteed here, because sessions might not work yet.
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
@@ -696,89 +514,280 @@ if (!$cache and moodle_needs_upgrading()) {
}
}
// Show plugins info.
echo $output->upgrade_plugin_check_page($pluginman, \core\update\checker::instance(),
$version, $showallplugins,
new moodle_url($PAGE->url),
new moodle_url($PAGE->url, array('confirmplugincheck' => 1, 'cache' => 0)));
echo $output->upgrade_plugin_check_page(core_plugin_manager::instance(), \core\update\checker::instance(),
$version, $showallplugins, $PAGE->url, new moodle_url($PAGE->url, array('confirmplugincheck' => 1)));
die();
}
// Make sure plugin dependencies are always checked.
$failed = array();
if (!$pluginman->all_plugins_ok($version, $failed, $CFG->branch)) {
$output = $PAGE->get_renderer('core', 'admin');
echo $output->unsatisfied_dependencies_page($version, $failed, new moodle_url($PAGE->url,
array('confirmplugincheck' => 0)));
die();
}
unset($failed);
}
// install/upgrade all plugins and other parts
upgrade_noncore(true);
}
// If this is the first install, indicate that this site is fully configured
// except the admin password
if (during_initial_install()) {
set_config('rolesactive', 1); // after this, during_initial_install will return false.
set_config('adminsetuppending', 1);
set_config('registrationpending', 1); // Remind to register site after all other setup is finished.
// Apply default preset, if it is defined in $CFG and has a valid value.
if (!empty($CFG->setsitepresetduringinstall)) {
\core_adminpresets\helper::change_default_preset($CFG->setsitepresetduringinstall);
}
// we need this redirect to setup proper session
upgrade_finished("index.php?sessionstarted=1&amp;lang=$CFG->lang");
}
// make sure admin user is created - this is the last step because we need
// session to be working properly in order to edit admin account
if (!empty($CFG->adminsetuppending)) {
$sessionstarted = optional_param('sessionstarted', 0, PARAM_BOOL);
if (!$sessionstarted) {
redirect("index.php?sessionstarted=1&lang=$CFG->lang");
} else {
$sessionverify = optional_param('sessionverify', 0, PARAM_BOOL);
if (!$sessionverify) {
$SESSION->sessionverify = 1;
redirect("index.php?sessionstarted=1&sessionverify=1&lang=$CFG->lang");
} else {
if (empty($SESSION->sessionverify)) {
print_error('installsessionerror', 'admin', "index.php?sessionstarted=1&lang=$CFG->lang");
// Always verify plugin dependencies!
$failed = array();
if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed, $CFG->branch)) {
echo $output->unsatisfied_dependencies_page($version, $failed, new moodle_url($PAGE->url,
array('confirmplugincheck' => 0)));
die();
}
unset($SESSION->sessionverify);
unset($failed);
// Launch main upgrade.
upgrade_core($version, true);
}
} else if ($version < $CFG->version) {
// Better stop here, we can not continue with plugin upgrades or anything else.
throw new moodle_exception('downgradedcore', 'error', new moodle_url('/admin/'));
}
// Cleanup SESSION to make sure other code does not complain in the future.
unset($SESSION->has_timed_out);
unset($SESSION->wantsurl);
// Updated human-readable release version if necessary.
if (!$cache && $release <> $CFG->release ) { // Update the release version.
set_config('release', $release);
}
// at this stage there can be only one admin unless more were added by install - users may change username, so do not rely on that
$adminids = explode(',', $CFG->siteadmins);
$adminuser = get_complete_user_data('id', reset($adminids));
if (!$cache && $branch <> $CFG->branch) { // Update the branch.
set_config('branch', $branch);
}
if ($adminuser->password === 'adminsetuppending') {
// prevent installation hijacking
if ($adminuser->lastip !== getremoteaddr()) {
print_error('installhijacked', 'admin');
if (!$cache && moodle_needs_upgrading()) {
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
check_upgrade_key($upgradekeyhash);
if (!$PAGE->headerprinted) {
// Means core upgrade or installation was not already done.
$pluginman = core_plugin_manager::instance();
$output = $PAGE->get_renderer('core', 'admin');
if (empty($confirmrelease)) {
require_once($CFG->libdir . '/environmentlib.php');
list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
$PAGE->set_title($strcurrentrelease);
$PAGE->set_heading($strcurrentrelease);
$PAGE->set_cacheable(false);
echo $output->upgrade_environment_page($release, $envstatus, $environmentresults);
die();
} else if (!$confirmplugins) {
$strplugincheck = get_string('plugincheck');
$PAGE->navbar->add($strplugincheck);
$PAGE->set_title($strplugincheck);
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
// Check for available updates.
if ($fetchupdates) {
require_sesskey();
$updateschecker = \core\update\checker::instance();
if ($updateschecker->enabled()) {
$updateschecker->fetch();
}
redirect($PAGE->url);
}
// Cancel all plugin installations.
if ($abortinstallx) {
require_sesskey();
$abortables = $pluginman->list_cancellable_installations();
if ($abortables) {
if ($confirmabortinstall) {
foreach ($abortables as $plugin) {
$pluginman->cancel_plugin_installation($plugin->component);
}
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstallx' => $abortinstallx,
'confirmabortinstall' => 1));
echo $output->upgrade_confirm_abort_install_page($abortables, $continue);
die();
}
}
redirect($PAGE->url);
}
// Cancel single plugin installation.
if ($abortinstall) {
require_sesskey();
if ($confirmabortinstall) {
$pluginman->cancel_plugin_installation($abortinstall);
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstall' => $abortinstall, 'confirmabortinstall' => 1));
$abortable = $pluginman->get_plugin_info($abortinstall);
if ($pluginman->can_cancel_plugin_installation($abortable)) {
echo $output->upgrade_confirm_abort_install_page(array($abortable), $continue);
die();
}
redirect($PAGE->url);
}
}
// Cancel all plugins upgrades (that is, restore archived versions).
if ($abortupgradex) {
require_sesskey();
$restorable = $pluginman->list_restorable_archives();
if ($restorable) {
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgradex' => 1, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Cancel single plugin upgrade (that is, install the archived version).
if ($abortupgrade) {
require_sesskey();
$restorable = $pluginman->list_restorable_archives();
if (isset($restorable[$abortupgrade])) {
$restorable = array($restorable[$abortupgrade]);
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgrade' => $abortupgrade, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Install all available missing dependencies.
if ($installdepx) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdepx' => 1, 'confirminstalldep' => 1))
);
}
// Install single available missing dependency.
if ($installdep) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
if (!empty($installable[$installdep])) {
$installable = array($installable[$installdep]);
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdep' => $installdep, 'confirminstalldep' => 1))
);
}
}
// Install all available updates.
if ($installupdatex) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdatex' => 1, 'confirminstallupdate' => 1))
);
}
// Install single available update.
if ($installupdate && $installupdateversion) {
require_sesskey();
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdate' => $installupdate,
'installupdateversion' => $installupdateversion, 'confirminstallupdate' => 1)
)
);
}
}
// Show plugins info.
echo $output->upgrade_plugin_check_page($pluginman, \core\update\checker::instance(),
$version, $showallplugins,
new moodle_url($PAGE->url),
new moodle_url($PAGE->url, array('confirmplugincheck' => 1, 'cache' => 0)));
die();
}
// Make sure plugin dependencies are always checked.
$failed = array();
if (!$pluginman->all_plugins_ok($version, $failed, $CFG->branch)) {
$output = $PAGE->get_renderer('core', 'admin');
echo $output->unsatisfied_dependencies_page($version, $failed, new moodle_url($PAGE->url,
array('confirmplugincheck' => 0)));
die();
}
unset($failed);
}
// Install/upgrade all plugins and other parts.
upgrade_noncore(true);
}
// If this is the first install, indicate that this site is fully configured,
// Except the admin password.
if (during_initial_install()) {
set_config('rolesactive', 1); // After this, during_initial_install will return false.
set_config('adminsetuppending', 1);
set_config('registrationpending', 1); // Remind to register site after all other setup is finished.
// Apply default preset, if it is defined in $CFG and has a valid value.
if (!empty($CFG->setsitepresetduringinstall)) {
\core_adminpresets\helper::change_default_preset($CFG->setsitepresetduringinstall);
}
// We need this redirect to setup proper session.
upgrade_finished("index.php?sessionstarted=1&amp;lang=$CFG->lang");
}
// Make sure admin user is created - this is the last step,
// We need session to be working properly in order to edit admin account.
if (!empty($CFG->adminsetuppending)) {
$sessionstarted = optional_param('sessionstarted', 0, PARAM_BOOL);
if (!$sessionstarted) {
redirect("index.php?sessionstarted=1&lang=$CFG->lang");
} else {
$sessionverify = optional_param('sessionverify', 0, PARAM_BOOL);
if (!$sessionverify) {
$SESSION->sessionverify = 1;
redirect("index.php?sessionstarted=1&sessionverify=1&lang=$CFG->lang");
} else {
if (empty($SESSION->sessionverify)) {
throw new \moodle_exception('installsessionerror', 'admin', "index.php?sessionstarted=1&lang=$CFG->lang");
}
unset($SESSION->sessionverify);
}
}
// Cleanup SESSION to make sure other code does not complain in the future.
unset($SESSION->has_timed_out);
unset($SESSION->wantsurl);
// At this stage there can be only one admin unless more were added by install,
// Users may change username, so do not rely on that.
$adminids = explode(',', $CFG->siteadmins);
$adminuser = get_complete_user_data('id', reset($adminids));
if ($adminuser->password === 'adminsetuppending') {
// Prevent installation hijacking.
if ($adminuser->lastip !== getremoteaddr()) {
throw new \moodle_exception('installhijacked', 'admin');
}
// Login user and let him set password and admin details.
$adminuser->newadminuser = 1;
complete_user_login($adminuser);
redirect("$CFG->wwwroot/user/editadvanced.php?id=$adminuser->id"); // Edit thyself.
} else {
unset_config('adminsetuppending');
}
// login user and let him set password and admin details
$adminuser->newadminuser = 1;
complete_user_login($adminuser);
redirect("$CFG->wwwroot/user/editadvanced.php?id=$adminuser->id"); // Edit thyself
} else {
unset_config('adminsetuppending');
// Just make sure upgrade logging is properly terminated.
upgrade_finished('upgradesettings.php');
}
} else {
// just make sure upgrade logging is properly terminated
upgrade_finished('upgradesettings.php');
}
if (has_capability('moodle/site:config', context_system::instance())) {
+5 -9
View File
@@ -55,7 +55,7 @@ function admin_page_type_list($pagetype, $parentcontext, $currentcontext) {
function core_admin_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload, array $options = array()) {
global $CFG;
if (in_array($filearea, ['logo', 'logocompact'])) {
if (in_array($filearea, ['logo', 'logocompact', 'favicon'])) {
$size = array_shift($args); // The path hides the size.
$itemid = clean_param(array_shift($args), PARAM_INT);
$filename = clean_param(array_shift($args), PARAM_FILE);
@@ -96,20 +96,16 @@ function core_admin_pluginfile($course, $cm, $context, $filearea, $args, $forced
send_file_not_found();
}
// No need for resizing, but if the file should be cached we save it so we can serve it fast next time.
if (empty($maxwidth) && empty($maxheight)) {
// Check whether width/height are specified, and we can resize the image (some types such as ICO cannot be resized).
if (($maxwidth === 0 && $maxheight === 0) ||
!$filedata = $file->resize_image($maxwidth, $maxheight)) {
if ($lifetime) {
file_safe_save_content($file->get_content(), $candidate);
}
send_stored_file($file, $lifetime, 0, false, $options);
}
// Proceed with the resizing.
$filedata = $file->resize_image($maxwidth, $maxheight);
if (!$filedata) {
send_file_not_found();
}
// If we don't want to cached the file, serve now and quit.
if (!$lifetime) {
send_content_uncached($filedata, $filename);
+1 -1
View File
@@ -45,7 +45,7 @@ if (isset($_ENV['TMPDIR']) && is_dir($_ENV['TMPDIR'])) {
$tmpfile = $tmpdir . '/moodle-mailout.log';
$fh = fopen($tmpfile, 'a+', false)
or mdie("Error openning $tmpfile on append\n");
fwrite($fh, "==== ".strftime("%a %b %e %H:%M:%S %Y", time())." ====\n");
fwrite($fh, "==== ".date("D M d H:i:s Y", time())." ====\n");
fwrite($fh, "==== Commandline: " . implode(' ',$argv) . "\n");
$stdin = fopen('php://stdin', 'r');
+21 -28
View File
@@ -23,14 +23,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('NO_OUTPUT_BUFFERING', true);
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once("{$CFG->libdir}/adminlib.php");
$action = required_param('action', PARAM_ALPHANUMEXT);
$media = required_param('media', PARAM_PLUGIN);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$action = required_param('action', PARAM_ALPHANUMEXT);
$plugin = required_param('plugin', PARAM_PLUGIN);
$PAGE->set_url('/admin/media.php');
$PAGE->set_context(context_system::instance());
@@ -38,42 +35,38 @@ $PAGE->set_context(context_system::instance());
require_admin();
require_sesskey();
$plugins = core_plugin_manager::instance()->get_plugins_of_type('media');
$sortorder = array_values(\core\plugininfo\media::get_enabled_plugins());
$return = new moodle_url('/admin/settings.php', array('section' => 'managemediaplayers'));
if (!array_key_exists($media, $plugins)) {
redirect($return);
}
$return = new moodle_url('/admin/settings.php', [
'section' => 'managemediaplayers',
]);
$displayname = get_string('pluginname', "media_{$plugin}");
switch ($action) {
case 'disable':
$class = \core_plugin_manager::resolve_plugininfo_class('media');
$class::enable_plugin($media, false);
if ($class::enable_plugin($plugin, false)) {
\core\notification::add(
get_string('plugin_disabled', 'core_admin', $displayname),
\core\notification::SUCCESS
);
}
break;
case 'enable':
$class = \core_plugin_manager::resolve_plugininfo_class('media');
$class::enable_plugin($media, true);
if ($class::enable_plugin($plugin, true)) {
\core\notification::add(
get_string('plugin_enabled', 'core_admin', $displayname),
\core\notification::SUCCESS
);
}
break;
case 'up':
if (($pos = array_search($media, $sortorder)) > 0) {
$tmp = $sortorder[$pos - 1];
$sortorder[$pos - 1] = $sortorder[$pos];
$sortorder[$pos] = $tmp;
\core\plugininfo\media::set_enabled_plugins($sortorder);
}
$class::change_plugin_order($plugin, $class::MOVE_UP);
break;
case 'down':
if ((($pos = array_search($media, $sortorder)) !== false) && ($pos < count($sortorder) - 1)) {
$tmp = $sortorder[$pos + 1];
$sortorder[$pos + 1] = $sortorder[$pos];
$sortorder[$pos] = $tmp;
\core\plugininfo\media::set_enabled_plugins($sortorder);
}
$class::change_plugin_order($plugin, $class::MOVE_DOWN);
break;
}
+16 -9
View File
@@ -6,7 +6,7 @@ require_once(__DIR__ . '/../../config.php');
require_once($CFG->libdir.'/adminlib.php');
include_once($CFG->dirroot.'/mnet/lib.php');
$sort = optional_param('sort', 'username', PARAM_ALPHA);
$sort = optional_param('sort', 'username', PARAM_ALPHAEXT);
$dir = optional_param('dir', 'ASC', PARAM_ALPHA);
$page = optional_param('page', 0, PARAM_INT);
$perpage = optional_param('perpage', 30, PARAM_INT);
@@ -15,7 +15,7 @@ $action = trim(strtolower(optional_param('action', '', PARAM_ALPHA)));
admin_externalpage_setup('ssoaccesscontrol');
if (!extension_loaded('openssl')) {
print_error('requiresopenssl', 'mnet');
throw new \moodle_exception('requiresopenssl', 'mnet');
}
$sitecontext = context_system::instance();
@@ -35,13 +35,13 @@ if (!empty($action) and confirm_sesskey()) {
// boot if insufficient permission
if (!has_capability('moodle/user:delete', $sitecontext)) {
print_error('nomodifyacl','mnet');
throw new \moodle_exception('nomodifyacl', 'mnet');
}
// fetch the record in question
$id = required_param('id', PARAM_INT);
if (!$idrec = $DB->get_record('mnet_sso_access_control', array('id'=>$id))) {
print_error('recordnoexists','mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
throw new \moodle_exception('recordnoexists', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
}
switch ($action) {
@@ -56,7 +56,7 @@ if (!empty($action) and confirm_sesskey()) {
// require the access parameter, and it must be 'allow' or 'deny'
$accessctrl = trim(strtolower(required_param('accessctrl', PARAM_ALPHA)));
if ($accessctrl != 'allow' and $accessctrl != 'deny') {
print_error('invalidaccessparam', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
throw new \moodle_exception('invalidaccessparam', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
}
if (mnet_update_sso_access_control($idrec->username, $idrec->mnet_host_id, $accessctrl)) {
@@ -71,7 +71,7 @@ if (!empty($action) and confirm_sesskey()) {
break;
default:
print_error('invalidactionparam', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
throw new \moodle_exception('invalidactionparam', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
}
}
@@ -82,7 +82,7 @@ if ($form = data_submitted() and confirm_sesskey()) {
// check permissions and verify form input
if (!has_capability('moodle/user:delete', $sitecontext)) {
print_error('nomodifyacl','mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
throw new \moodle_exception('nomodifyacl', 'mnet', "$CFG->wwwroot/$CFG->admin/mnet/access_control.php");
}
if (empty($form->username)) {
$formerror['username'] = get_string('enterausername','mnet');
@@ -117,7 +117,6 @@ if ($form = data_submitted() and confirm_sesskey()) {
}
echo $OUTPUT->header();
echo $OUTPUT->render(mnet_get_deprecation_notice());
// Explain
echo $OUTPUT->box(get_string('ssoacldescr','mnet'));
@@ -154,7 +153,15 @@ foreach ($columns as $column) {
$headings[$column] = "<a href=\"?sort=$column&amp;dir=$columndir&amp;\">".$string[$column]."</a>$columnicon";
}
$headings['delete'] = '';
$acl = $DB->get_records('mnet_sso_access_control', null, "$sort $dir", '*'); //, $page * $perpage, $perpage);
$sortorder = get_safe_orderby([
'username' => 'username',
'mnet_host_id' => 'mnet_host_id',
'access' => 'accessctrl',
'default' => 'username',
], $sort, $dir, false);
$acl = $DB->get_records('mnet_sso_access_control', null, $sortorder);
$aclcount = $DB->count_records('mnet_sso_access_control');
if (!$acl) {
+22 -8
View File
@@ -17,13 +17,13 @@
if (!extension_loaded('openssl')) {
echo $OUTPUT->header();
set_config('mnet_dispatcher_mode', 'off');
print_error('requiresopenssl', 'mnet');
throw new \moodle_exception('requiresopenssl', 'mnet');
}
if (!function_exists('curl_init') ) {
echo $OUTPUT->header();
set_config('mnet_dispatcher_mode', 'off');
print_error('nocurl', 'mnet');
throw new \moodle_exception('nocurl', 'mnet');
}
if (!isset($CFG->mnet_dispatcher_mode)) {
@@ -37,7 +37,7 @@
if (set_config('mnet_dispatcher_mode', $form->mode)) {
redirect('index.php', get_string('changessaved'));
} else {
print_error('invalidaction', '', 'index.php');
throw new \moodle_exception('invalidaction', '', 'index.php');
}
}
} elseif (!empty($form->submit) && $form->submit == get_string('delete')) {
@@ -46,11 +46,23 @@
$formcontinue = new single_button(new moodle_url('index.php', array('confirm' => md5($mnet->public_key))), get_string('yes'));
$formcancel = new single_button(new moodle_url('index.php', array()), get_string('no'));
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string("deletekeycheck", "mnet"), $formcontinue, $formcancel);
echo $OUTPUT->footer();
exit;
} else {
// We're deleting
// If no/cancel then redirect back to the network setting page.
if (!isset($form->confirm)) {
redirect(
new moodle_url('/admin/mnet/index.php'),
get_string('keydeletedcancelled', 'mnet'),
null,
\core\output\notification::NOTIFY_SUCCESS
);
}
if (!isset($SESSION->mnet_confirm_delete_key)) {
// fail - you're being attacked?
@@ -63,25 +75,27 @@
if($time < time() - 60) {
// fail - you're out of time.
print_error ('deleteoutoftime', 'mnet', 'index.php');
exit;
redirect(
new moodle_url('/admin/mnet/index.php'),
get_string('deleteoutoftime', 'mnet'),
null,
\core\output\notification::NOTIFY_WARNING
);
}
if ($key != md5(sha1($mnet->keypair['keypair_PEM']))) {
// fail - you're being attacked?
print_error ('deletewrongkeyvalue', 'mnet', 'index.php');
throw new \moodle_exception ('deletewrongkeyvalue', 'mnet', 'index.php');
exit;
}
$mnet->replace_keys();
redirect('index.php', get_string('keydeleted','mnet'));
exit;
}
}
$hosts = $DB->get_records_select('mnet_host', "id <> ? AND deleted = 0", array($CFG->mnet_localhost_id), 'wwwroot ASC');
echo $OUTPUT->header();
echo $OUTPUT->render(mnet_get_deprecation_notice());
?>
<form method="post" action="index.php">
<table align="center" width="635" class="generaltable" border="0" cellpadding="5" cellspacing="0">
+2 -3
View File
@@ -59,9 +59,8 @@ class mnet_simple_host_form extends moodleform {
$wwwroot = 'http://'.$wwwroot;
}
if ($host = $DB->get_record('mnet_host', array('wwwroot' => $wwwroot))) {
global $CFG;
return array('wwwroot' => get_string('hostexists', 'mnet',
new moodle_url('/admin/mnet/peers.php', array('hostid' => $host->id))));
$str = get_string('hostexists', 'mnet', (new moodle_url('/admin/mnet/peers.php', ['hostid' => $host->id]))->out());
return array('wwwroot' => $str);
}
return array();
}
+3 -14
View File
@@ -51,18 +51,12 @@ if ($hostid && $DB->get_field('mnet_host', 'deleted', array('id' => $hostid)) !=
$PAGE->set_url('/admin/mnet/peers.php');
admin_externalpage_setup($adminsection);
$deprecatenotify = mnet_get_deprecation_notice();
if (!extension_loaded('openssl')) {
print_error('requiresopenssl', 'mnet');
throw new \moodle_exception('requiresopenssl', 'mnet');
}
if (!function_exists('curl_init') ) {
print_error('nocurl', 'mnet');
}
if (!function_exists('xmlrpc_encode_request')) {
print_error('xmlrpc-missing', 'mnet');
throw new \moodle_exception('nocurl', 'mnet');
}
if (!isset($CFG->mnet_dispatcher_mode)) {
@@ -89,10 +83,8 @@ if ($formdata = $simpleform->get_data()) {
$mnet_peer->bootstrap($formdata->wwwroot, null, $application);
// bootstrap the second form straight with the data from the first form
$reviewform = new mnet_review_host_form(null, array('peer' => $mnet_peer)); // the second step (also the edit host form)
$formdata->oldpublickey = $mnet_peer->public_key; // set this so we can confirm on form post without having to recreate the mnet_peer object
$reviewform->set_data($mnet_peer);
echo $OUTPUT->header();
echo $OUTPUT->render($deprecatenotify);
echo $OUTPUT->box_start();
$reviewform->display();
echo $OUTPUT->box_end();
@@ -122,7 +114,6 @@ if (!empty($hostid)) {
}
$credentials = $mnet_peer->check_credentials($mnet_peer->public_key);
$reviewform = new mnet_review_host_form(null, array('peer' => $mnet_peer)); // the second step (also the edit host form)
$mnet_peer->oldpublickey = $mnet_peer->public_key; // set this so we can confirm on form post without having to recreate the mnet_peer object
$reviewform->set_data((object)$mnet_peer);
echo $OUTPUT->box_start();
$reviewform->display();
@@ -176,11 +167,10 @@ if ($formdata = $reviewform->get_data()) {
if ($mnet_peer->commit()) {
redirect(new moodle_url('/admin/mnet/peers.php', array('hostid' => $mnet_peer->id)), get_string('changessaved'));
} else {
print_error('invalidaction', 'error', 'index.php');
throw new \moodle_exception('invalidaction', 'error', 'index.php');
}
} else if ($reviewform->is_submitted()) { // submitted, but errors
echo $OUTPUT->header();
echo $OUTPUT->render($deprecatenotify);
echo $OUTPUT->box_start();
$reviewform->display();
echo $OUTPUT->box_end();
@@ -191,7 +181,6 @@ if ($formdata = $reviewform->get_data()) {
// normal flow - just display all hosts with links
echo $OUTPUT->header();
echo $OUTPUT->render($deprecatenotify);
$hosts = mnet_get_hosts(true);
// print the table to display the register all hosts setting
-1
View File
@@ -44,5 +44,4 @@ if (isset($mnet_peer->id) && $mnet_peer->id > 0) {
} else {
$tabs[] = new tabobject('mnetdetails', '#', $strmnetedithost, $strmnetedithost, false);
}
echo $OUTPUT->render(mnet_get_deprecation_notice());
print_tabs(array($tabs), $currenttab);
+2 -2
View File
@@ -18,7 +18,7 @@ require_once($CFG->libdir.'/adminlib.php');
include_once($CFG->dirroot.'/mnet/lib.php');
if ($CFG->mnet_dispatcher_mode === 'off') {
print_error('mnetdisabled', 'mnet');
throw new \moodle_exception('mnetdisabled', 'mnet');
}
admin_externalpage_setup('mnettestclient');
@@ -27,7 +27,7 @@ error_reporting(DEBUG_ALL);
echo $OUTPUT->header();
if (!extension_loaded('openssl')) {
print_error('requiresopenssl', 'mnet', '', NULL, true);
throw new \moodle_exception('requiresopenssl', 'mnet', '', null, true);
}
// optional drilling down parameters
-1
View File
@@ -1,6 +1,5 @@
<?php
echo $OUTPUT->header();
echo $OUTPUT->render(mnet_get_deprecation_notice());
?>
<div id="trustedhosts"><!-- See theme/standard/styles_layout.css #trustedhosts .generaltable for rules -->
<table cellspacing="0" cellpadding="5" class="generaltable generalbox" >
+1 -1
View File
@@ -10,7 +10,7 @@
if (!extension_loaded('openssl')) {
echo $OUTPUT->header();
print_error('requiresopenssl', 'mnet', '', NULL, true);
throw new \moodle_exception('requiresopenssl', 'mnet', '', null, true);
}
$site = get_site();
+55 -128
View File
@@ -1,140 +1,67 @@
<?php
// Allows the admin to manage activity modules
// 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/>.
require_once('../config.php');
require_once('../course/lib.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/tablelib.php');
/**
* A page to manage activity modules.
*
* @package core_admin
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// defines
define('MODULE_TABLE','module_administration_table');
require_once('../config.php');
require_once('../course/lib.php');
require_once("{$CFG->libdir}/adminlib.php");
require_once("{$CFG->libdir}/tablelib.php");
admin_externalpage_setup('managemodules');
define('MODULE_TABLE', 'module_administration_table');
$show = optional_param('show', '', PARAM_PLUGIN);
$hide = optional_param('hide', '', PARAM_PLUGIN);
admin_externalpage_setup('managemodules');
$plugin = optional_param('plugin', '', PARAM_PLUGIN);
$action = optional_param('action', '', PARAM_ALPHA);
/// Print headings
// If data submitted, then process and store.
if (!empty($action) && !empty($plugin) && confirm_sesskey()) {
$manager = \core_plugin_manager::resolve_plugininfo_class('mod');
$pluginname = get_string('pluginname', $plugin);
$stractivities = get_string("activities");
$struninstall = get_string('uninstallplugin', 'core_admin');
$strversion = get_string("version");
$strhide = get_string("hide");
$strshow = get_string("show");
$strsettings = get_string("settings");
$stractivities = get_string("activities");
$stractivitymodule = get_string("activitymodule");
$strshowmodulecourse = get_string('showmodulecourse');
if ($action === 'disable' && $manager::enable_plugin($plugin, 0)) {
\core\notification::add(
get_string('plugin_disabled', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
// Settings not required - only pages.
admin_get_root(true, false);
} else if ($action === 'enable' && $manager::enable_plugin($plugin, 1)) {
\core\notification::add(
get_string('plugin_enabled', 'core_admin', $pluginname),
\core\notification::SUCCESS
);
/// If data submitted, then process and store.
if (!empty($hide) and confirm_sesskey()) {
$class = \core_plugin_manager::resolve_plugininfo_class('mod');
$class::enable_plugin($hide, false);
admin_get_root(true, false); // settings not required - only pages
redirect(new moodle_url('/admin/modules.php'));
// Settings not required - only pages.
admin_get_root(true, false);
}
if (!empty($show) and confirm_sesskey()) {
$class = \core_plugin_manager::resolve_plugininfo_class('mod');
$class::enable_plugin($show, true);
// Redirect back to the modules page with out any params.
redirect(new moodle_url('/admin/modules.php'));
}
admin_get_root(true, false); // settings not required - only pages
redirect(new moodle_url('/admin/modules.php'));
}
echo $OUTPUT->header();
echo $OUTPUT->heading($stractivities);
/// Get and sort the existing modules
if (!$modules = $DB->get_records('modules', array(), 'name ASC')) {
print_error('moduledoesnotexist', 'error');
}
/// Print the table of all modules
// construct the flexible table ready to display
$table = new flexible_table(MODULE_TABLE);
$table->define_columns(array('name', 'instances', 'version', 'hideshow', 'uninstall', 'settings'));
$table->define_headers(array($stractivitymodule, $stractivities, $strversion, "$strhide/$strshow", $strsettings, $struninstall));
$table->define_baseurl($CFG->wwwroot.'/'.$CFG->admin.'/modules.php');
$table->set_attribute('id', 'modules');
$table->set_attribute('class', 'admintable generaltable');
$table->setup();
$pluginmanager = core_plugin_manager::instance();
foreach ($modules as $module) {
$plugininfo = $pluginmanager->get_plugin_info('mod_'.$module->name);
$status = $plugininfo->get_status();
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
$strmodulename = '<span class="notifyproblem">'.$module->name.' ('.get_string('missingfromdisk').')</span>';
$missing = true;
} else {
// took out hspace="\10\", because it does not validate. don't know what to replace with.
$icon = "<img src=\"" . $OUTPUT->image_url('monologo', $module->name) . "\" class=\"icon\" alt=\"\" />";
$strmodulename = $icon.' '.get_string('modulename', $module->name);
$missing = false;
}
$uninstall = '';
if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('mod_'.$module->name, 'manage')) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
}
if (file_exists("$CFG->dirroot/mod/$module->name/settings.php") ||
file_exists("$CFG->dirroot/mod/$module->name/settingstree.php")) {
$settings = "<a href=\"settings.php?section=modsetting$module->name\">$strsettings</a>";
} else {
$settings = "";
}
try {
$count = $DB->count_records_select($module->name, "course<>0");
} catch (dml_exception $e) {
$count = -1;
}
if ($count>0) {
$countlink = $OUTPUT->action_link(new moodle_url('/course/search.php', ['modulelist' => $module->name]),
$count, null, ['title' => $strshowmodulecourse]);
} else if ($count < 0) {
$countlink = get_string('error');
} else {
$countlink = "$count";
}
if ($missing) {
$visible = '';
$class = '';
} else if ($module->visible) {
$visible = "<a href=\"modules.php?hide=$module->name&amp;sesskey=".sesskey()."\" title=\"$strhide\">".
$OUTPUT->pix_icon('t/hide', $strhide) . '</a>';
$class = '';
} else {
$visible = "<a href=\"modules.php?show=$module->name&amp;sesskey=".sesskey()."\" title=\"$strshow\">".
$OUTPUT->pix_icon('t/show', $strshow) . '</a>';
$class = 'dimmed_text';
}
if ($module->name == "forum") {
$uninstall = "";
$visible = "";
$class = "";
}
$version = get_config('mod_'.$module->name, 'version');
$table->add_data(array(
$strmodulename,
$countlink,
$version,
$visible,
$settings,
$uninstall,
), $class);
}
$table->print_html();
echo $OUTPUT->footer();
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string("activities"));
$table = new \core_admin\table\activity_management_table();
$table->out();
echo $OUTPUT->footer();
+57
View File
@@ -0,0 +1,57 @@
<?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/>.
/**
* MoodleNet callback.
*
* @package core
* @copyright 2023 Huong Nguyen <huongnv13@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use core\moodlenet\moodlenet_client;
use core\oauth2\api;
require_once(__DIR__ . '/../config.php');
require_login();
// Parameters.
$issuerid = required_param('issuerid', PARAM_INT);
$error = optional_param('error', '', PARAM_RAW);
$message = optional_param('error_description', null, PARAM_RAW);
// Headers to make it not cacheable.
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
$PAGE->set_context(context_system::instance());
$PAGE->set_url('/admin/moodlenet_oauth2_callback.php');
$PAGE->set_pagelayout('popup');
// Wait as long as it takes for this script to finish.
core_php_time_limit::raise();
$issuer = api::get_issuer($issuerid);
$returnurl = new moodle_url('/admin/moodlenet_oauth2_callback.php');
$returnurl->param('issuerid', $issuerid);
$returnurl->param('callback', 'yes');
$returnurl->param('sesskey', sesskey());
$oauthclient = api::get_user_oauth_client($issuer, $returnurl, moodlenet_client::API_SCOPE_CREATE_RESOURCE, true);
$oauthclient->is_logged_in(); // Will upgrade the auth code to a token.
echo $OUTPUT->header();
$PAGE->requires->js_call_amd('core/moodlenet/oauth2callback', 'init', [$error, $message]);
echo $OUTPUT->footer();
+23 -12
View File
@@ -30,25 +30,36 @@
require_once(__DIR__ . '/../config.php');
// The state parameter we've given (used in moodle as a redirect url).
// Per https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2.1, state is required, even during error responses.
$state = required_param('state', PARAM_LOCALURL);
$redirecturl = new moodle_url($state);
$params = $redirecturl->params();
$error = optional_param('error', '', PARAM_RAW);
if ($error) {
$message = optional_param('error_description', '', PARAM_RAW);
if ($message) {
$SESSION->loginerrormsg = $message;
redirect(new moodle_url(get_login_url()));
} else {
$SESSION->loginerrormsg = $error;
redirect(new moodle_url(get_login_url()));
$message = optional_param('error_description', null, PARAM_RAW);
// Errors can occur for authenticated users, such as when a user denies authorization for some internal service call.
// In such cases, propagate the error to the component redirect URI.
if (isloggedin()) {
if (isset($params['sesskey']) && confirm_sesskey($params['sesskey'])) {
$redirecturl->param('error', $error);
if ($message) {
$redirecturl->param('error_description', $message);
}
redirect($redirecturl);
}
}
// Not logged in or the sesskey verification failed, redirect to login + show errors.
$SESSION->loginerrormsg = $message ?? $error;
redirect(new moodle_url(get_login_url()));
}
// The authorization code generated by the authorization server.
$code = required_param('code', PARAM_RAW);
// The state parameter we've given (used in moodle as a redirect url).
$state = required_param('state', PARAM_LOCALURL);
$redirecturl = new moodle_url($state);
$params = $redirecturl->params();
if (isset($params['sesskey']) and confirm_sesskey($params['sesskey'])) {
$redirecturl->param('oauth2code', $code);
+2 -2
View File
@@ -116,13 +116,13 @@ if (($action == 'edit') || ($action == 'new')) {
$instance = portfolio_instance($portfolio);
if ($sure) {
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', '', $baseurl);
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
if ($instance->delete()) {
$deletedstr = get_string('instancedeleted', 'portfolio');
redirect($baseurl, $deletedstr, 1);
} else {
print_error('instancenotdeleted', 'portfolio', $baseurl);
throw new \moodle_exception('instancenotdeleted', 'portfolio', $baseurl);
}
exit;
} else {
+4 -10
View File
@@ -190,8 +190,8 @@ class helper {
static::add_item($presetid, 'showdataretentionsummary', '0', 'tool_dataprivacy');
static::add_item($presetid, 'forum_maxattachments', '3');
static::add_item($presetid, 'guestloginbutton', '0');
// Set Activity chooser tabs to "Starred, All, Recommended".
static::add_item($presetid, 'activitychoosertabmode', '1');
// Set Activity chooser tabs to "Starred, Recommended, All".
static::add_item($presetid, 'activitychoosertabmode', '4');
// Modules: Hide chat, database, external tool (lti), IMS content package (imscp), lesson, SCORM, survey, wiki, workshop.
static::add_plugin($presetid, 'mod', 'chat', false);
@@ -278,9 +278,6 @@ class helper {
static::add_plugin($presetid, 'repository', 'url', false);
static::add_plugin($presetid, 'repository', 'wikimedia', false);
// Text editors: Disable TinyMCE HTML editor.
static::add_plugin($presetid, 'editor', 'tinymce', false);
// Create the "Full" site admin preset.
$data = [
'name' => get_string('fullpreset', 'core_adminpresets'),
@@ -301,8 +298,8 @@ class helper {
static::add_item($presetid, 'showdataretentionsummary', '1', 'tool_dataprivacy');
static::add_item($presetid, 'forum_maxattachments', '9');
static::add_item($presetid, 'guestloginbutton', '1');
// Set Activity chooser tabs to the default value ("Starred, All, Activities, Resources, Recommended").
static::add_item($presetid, 'activitychoosertabmode', '0');
// Set Activity chooser tabs to the default value ("Starred, Recommended, All, Activities, Resources").
static::add_item($presetid, 'activitychoosertabmode', '3');
// Modules: Enable chat, database, external tool (lti), IMS content package (imscp), lesson, SCORM, survey, wiki, workshop.
static::add_plugin($presetid, 'mod', 'chat', true);
@@ -383,8 +380,5 @@ class helper {
static::add_plugin($presetid, 'repository', 'local', true);
static::add_plugin($presetid, 'repository', 'url', true);
static::add_plugin($presetid, 'repository', 'wikimedia', true);
// Text editors: Enable TinyMCE HTML editor.
static::add_plugin($presetid, 'editor', 'tinymce', true);
}
}
@@ -16,6 +16,8 @@
namespace core_adminpresets\local\setting;
use admin_setting_configcheckbox;
/**
* Checkbox setting.
*
@@ -26,15 +28,15 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_configcheckbox extends adminpresets_setting {
protected function set_value($value) {
$this->value = clean_param($value, PARAM_BOOL);
$this->set_visiblevalue();
return true;
}
/**
* Sets the visible name for the setting selected value
*/
protected function set_visiblevalue() {
if ($this->value) {
/** @var admin_setting_configcheckbox $settingdata */
$settingdata = $this->get_settingdata();
// We need to compare the "yes" value of the inner checkbox, which isn't necessarily boolean.
if ($this->value == $settingdata->yes) {
$str = get_string('yes');
} else {
$str = get_string('no');
@@ -26,6 +26,9 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_configmultiselect extends adminpresets_setting {
/** @var \admin_setting_configmultiselect $settingdata */
protected $settingdata;
/**
* Ensure that the $value values are setting choices.
*
@@ -26,6 +26,9 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_configselect extends adminpresets_setting {
/** @var \admin_setting_configselect $settingdata */
protected $settingdata;
/**
* Sets the setting value cleaning it.
*
@@ -34,7 +37,7 @@ class adminpresets_admin_setting_configselect extends adminpresets_setting {
*/
protected function set_value($value) {
// When we intantiate the class we need the choices.
if (empty($this->settindata->choices) && method_exists($this->settingdata, 'load_choices')) {
if (empty($this->settingdata->choices) && method_exists($this->settingdata, 'load_choices')) {
$this->settingdata->load_choices();
}
@@ -26,6 +26,9 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_configtime extends adminpresets_setting {
/** @var \admin_setting_configtime $settingdata */
protected $settingdata;
/**
* To check that the value is one of the options
*
@@ -28,6 +28,9 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_special_backupdays extends adminpresets_setting {
/** @var \admin_setting_special_backupdays $settingdata */
protected $settingdata;
protected function set_value($value) {
$this->value = clean_param($value, PARAM_SEQUENCE);
$this->set_visiblevalue();
@@ -26,6 +26,9 @@ namespace core_adminpresets\local\setting;
*/
class adminpresets_admin_setting_users_with_capability extends adminpresets_admin_setting_configmultiselect {
/** @var \admin_setting_configmultiselect $settingdata */
protected $settingdata;
protected function set_behaviors() {
$this->behaviors['loadchoices'] = &$this->settingdata;
}
@@ -68,6 +68,9 @@ class adminpresets_setting {
*/
protected $attributesvalues;
/** @var array To store the behaviors. */
protected array $behaviors = [];
/**
* Stores the setting data and the selected value
*
@@ -167,7 +170,7 @@ class adminpresets_setting {
/**
* Saves the setting attributes values
*
* @return array Array of inserted ids (in config_log)
* @return array|false Array of inserted ids (in config_log) or false if nothing was inserted
*/
public function save_attributes_values() {
// Plugin name or null.
@@ -206,8 +209,6 @@ class adminpresets_setting {
* @param bool $name Setting name to store.
* @param mixed $value Setting value to store.
* @return int|false config_log inserted id or false whenever the new value is the same as old value.
* @throws dml_exception
* @throws moodle_exception
*/
public function save_value($name = false, $value = null) {
// Object values if no arguments.
+11 -5
View File
@@ -105,7 +105,6 @@ class manager {
'adminpresets_auth_shibboleth_admin_setting_special_idp_configtextarea' => 'adminpresets_admin_setting_configtext',
'adminpresets_auth_shibboleth_admin_setting_special_wayf_select' => 'adminpresets_admin_setting_configselect',
'adminpresets_editor_atto_toolbar_setting' => 'adminpresets_admin_setting_configtext',
'adminpresets_editor_tinymce_json_setting_textarea' => 'adminpresets_admin_setting_configtext',
'adminpresets_enrol_database_admin_setting_category' => 'adminpresets_admin_setting_configselect',
'adminpresets_enrol_flatfile_role_setting' => 'adminpresets_admin_setting_configtext',
'adminpresets_enrol_ldap_admin_setting_category' => 'adminpresets_admin_setting_configselect',
@@ -184,7 +183,8 @@ class manager {
* @param boolean $sitedbvalues Indicates if $dbsettings comes from the site db or not
* @param array $settings Array format $array['plugin']['settingname'] = settings_types child class
* @param array|false $children Array of admin_category children or false
* @return array Array format $array['plugin']['settingname'] = settings_types child class
* @return \core_adminpresets\local\setting\adminpresets_setting[][] Array format
* $array['plugin']['settingname'] = adminpresets_setting child class
*/
public function get_settings(array $dbsettings, bool $sitedbvalues = false, array $settings = [], $children = false): array {
global $DB;
@@ -309,11 +309,17 @@ class manager {
$classname = null;
// Getting the appropiate class to get the correct setting value.
// Getting the appropriate class to get the correct setting value.
$settingtype = get_class($settingdata);
// Check if it is a setting from a plugin.
$plugindata = explode('_', $settingtype);
$namespacedata = explode('\\', $settingtype);
if (count($namespacedata) > 1) {
$plugindata = explode('_', $namespacedata[0]);
$settingtype = end($namespacedata);
} else {
$plugindata = explode('_', $settingtype, 2);
}
$types = \core_component::get_plugin_types();
if (array_key_exists($plugindata[0], $types)) {
$plugins = \core_component::get_plugin_list($plugindata[0]);
+1 -1
View File
@@ -99,7 +99,7 @@ class provider implements
/**
* Delete all data for all users in the specified context.
*
* @param context $context The specific context to delete data for.
* @param \context $context The specific context to delete data for.
*/
public static function delete_data_for_all_users_in_context(\context $context) {
// None of the the data from these tables should be deleted.
+2 -2
View File
@@ -133,8 +133,8 @@ class manager_test extends \advanced_testcase {
$settingpage = $adminroot->locate('modsettingquiz');
$settingdata = $settingpage->settings->quizbrowsersecurity;;
$result = $manager->get_setting($settingdata, '');
$this->assertInstanceOf('\mod_quiz\adminpresets\adminpresets_mod_quiz_admin_setting_browsersecurity', $result);
$this->assertNotEquals('core_adminpresets\local\setting\adminpresets_setting', get_class($result));
$this->assertInstanceOf(\mod_quiz\adminpresets\adminpresets_browser_security_setting::class, $result);
$this->assertNotEquals(\core_adminpresets\local\setting\adminpresets_setting::class, get_class($result));
// Check the adminpresets_setting class is returned when no specific class exists.
$settingpage = $adminroot->locate('managecustomfields');
+5 -5
View File
@@ -84,7 +84,7 @@ if (!empty($config->disabledbehaviours)) {
// Disable.
if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($behaviours[$disable])) {
print_error('unknownbehaviour', 'question', $thispageurl, $disable);
throw new \moodle_exception('unknownbehaviour', 'question', $thispageurl, $disable);
}
if (array_search($disable, $disabledbehaviours) === false) {
@@ -97,11 +97,11 @@ if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey(
// Enable.
if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($behaviours[$enable])) {
print_error('unknownbehaviour', 'question', $thispageurl, $enable);
throw new \moodle_exception('unknownbehaviour', 'question', $thispageurl, $enable);
}
if (!$archetypal[$enable]) {
print_error('cannotenablebehaviour', 'question', $thispageurl, $enable);
throw new \moodle_exception('cannotenablebehaviour', 'question', $thispageurl, $enable);
}
if (($key = array_search($enable, $disabledbehaviours)) !== false) {
@@ -114,7 +114,7 @@ if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey())
// Move up in order.
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($behaviours[$up])) {
print_error('unknownbehaviour', 'question', $thispageurl, $up);
throw new \moodle_exception('unknownbehaviour', 'question', $thispageurl, $up);
}
// This function works fine for behaviours, as well as qtypes.
@@ -126,7 +126,7 @@ if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($behaviours[$down])) {
print_error('unknownbehaviour', 'question', $thispageurl, $down);
throw new \moodle_exception('unknownbehaviour', 'question', $thispageurl, $down);
}
// This function works fine for behaviours, as well as qtypes.
+22 -34
View File
@@ -24,6 +24,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use core_question\local\bank\question_version_status;
require_once(__DIR__ . '/../config.php');
require_once($CFG->libdir . '/questionlib.php');
@@ -42,36 +43,23 @@ $qtypes = question_bank::get_all_qtypes();
$pluginmanager = core_plugin_manager::instance();
// Get some data we will need - question counts and which types are needed.
$hiddenstatus = \core_question\local\bank\question_version_status::QUESTION_STATUS_HIDDEN;
$draftstatus = \core_question\local\bank\question_version_status::QUESTION_STATUS_DRAFT;
// The second JOIN on question_versions (qv2) is to get the latest version of each question. 
// (Using this sort of JOIN is a known trick for doing this in the fastest possible way.)
$counts = $DB->get_records_sql("
SELECT q.qtype,
COUNT(qv.id) AS numquestions,
SUM(CASE WHEN qv.status = :hiddenstatus THEN 1 ELSE 0 END) AS numhidden,
SUM(CASE WHEN qv.status = :draftstatus THEN 1 ELSE 0 END) AS numdraft
FROM {question} q
JOIN {question_versions} qv ON q.id = qv.questionid
LEFT JOIN {question_versions} qv2 ON qv.questionbankentryid = qv2.questionbankentryid AND qv.version < qv2.version
WHERE qv2.questionbankentryid IS NULL
GROUP BY q.qtype
", [
'hiddenstatus' => question_version_status::QUESTION_STATUS_HIDDEN,
'draftstatus' => question_version_status::QUESTION_STATUS_DRAFT,
]);
$sql = "SELECT result.qtype,
SUM(result.numquestions) AS numquestions,
SUM(result.numhidden) AS numhidden,
SUM(result.numdraft) AS numdraft
FROM (SELECT data.qtype,
data.versionid,
COUNT(data.numquestions) AS numquestions,
(SELECT COUNT(qv.id)
FROM {question_versions} qv
WHERE qv.id = data.versionid
AND qv.status = :hiddenstatus) AS numhidden,
(SELECT COUNT(qv.id)
FROM {question_versions} qv
WHERE qv.id = data.versionid
AND qv.status = :draftstatus) AS numdraft
FROM (SELECT q.qtype, qv.id AS versionid, 1 AS numquestions
FROM {question} q
JOIN {question_versions} qv ON qv.questionid = q.id
JOIN {question_bank_entries} qbe ON qbe.id = qv.questionbankentryid
AND qv.version = (SELECT MAX(v.version)
FROM {question_versions} v
JOIN {question_bank_entries} be ON be.id = v.questionbankentryid
WHERE be.id = qbe.id)) data
GROUP BY data.qtype, data.versionid) result
GROUP BY result.qtype";
$counts = $DB->get_records_sql($sql, ['hiddenstatus' => $hiddenstatus, 'draftstatus' => $draftstatus]);
$needed = [];
foreach ($qtypes as $qtypename => $qtype) {
if (!isset($counts[$qtypename])) {
@@ -106,7 +94,7 @@ $sortedqtypes = question_bank::sort_qtype_array($sortedqtypes, $config);
// Disable.
if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($qtypes[$disable])) {
print_error('unknownquestiontype', 'question', $thispageurl, $disable);
throw new \moodle_exception('unknownquestiontype', 'question', $thispageurl, $disable);
}
$class = \core_plugin_manager::resolve_plugininfo_class('qtype');
@@ -117,11 +105,11 @@ if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey(
// Enable.
if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($qtypes[$enable])) {
print_error('unknownquestiontype', 'question', $thispageurl, $enable);
throw new \moodle_exception('unknownquestiontype', 'question', $thispageurl, $enable);
}
if (!$qtypes[$enable]->menu_name()) {
print_error('cannotenable', 'question', $thispageurl, $enable);
throw new \moodle_exception('cannotenable', 'question', $thispageurl, $enable);
}
$class = \core_plugin_manager::resolve_plugininfo_class('qtype');
@@ -132,7 +120,7 @@ if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey())
// Move up in order.
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($qtypes[$up])) {
print_error('unknownquestiontype', 'question', $thispageurl, $up);
throw new \moodle_exception('unknownquestiontype', 'question', $thispageurl, $up);
}
$neworder = question_reorder_qtypes($sortedqtypes, $up, -1);
@@ -143,7 +131,7 @@ if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (!isset($qtypes[$down])) {
print_error('unknownquestiontype', 'question', $thispageurl, $down);
throw new \moodle_exception('unknownquestiontype', 'question', $thispageurl, $down);
}
$neworder = question_reorder_qtypes($sortedqtypes, $down, +1);
+1 -1
View File
@@ -39,7 +39,7 @@ if ($publickey !== false) {
// Encrypt data.
$message = $CFG->release;
$success = openssl_public_encrypt(utf8_encode($message), $encrypteddata, $publickeystr);
$success = openssl_public_encrypt(\core_text::convert($message, 'ISO-8859-1', 'UTF-8'), $encrypteddata, $publickeystr);
if ($success) {
echo base64_encode($encrypteddata);
+2 -18
View File
@@ -213,7 +213,7 @@ class core_admin_renderer extends plugin_renderer_base {
$output .= $this->container_end();
}
$button = new single_button($continueurl, get_string('upgradestart', 'admin'), 'get', true);
$button = new single_button($continueurl, get_string('upgradestart', 'admin'), 'get', single_button::BUTTON_PRIMARY);
$button->class = 'continuebutton';
$output .= $this->render($button);
$output .= $this->footer();
@@ -296,7 +296,6 @@ class core_admin_renderer extends plugin_renderer_base {
$output .= $this->header();
$output .= $this->output->heading(get_string('notifications', 'admin'));
$output .= $this->maturity_info($maturity);
$output .= $this->legacy_log_store_writing_error();
$output .= empty($CFG->disableupdatenotifications) ? $this->available_updates($availableupdates, $availableupdatesfetch) : '';
$output .= $this->insecure_dataroot_warning($insecuredataroot);
$output .= $this->development_libs_directories_warning($devlibdir);
@@ -2080,7 +2079,7 @@ class core_admin_renderer extends plugin_renderer_base {
$errorline = true;
} else {
if ($status) { //Handle ok result (ok)
$status = get_string('ok');
$status = get_string('statusok');
} else {
if ($environment_result->getLevel() == 'optional') {//Handle check result (warning)
$status = get_string('check');
@@ -2192,21 +2191,6 @@ class core_admin_renderer extends plugin_renderer_base {
return $output;
}
/**
* Check to see if writing to the deprecated legacy log store is enabled.
*
* @return string An error message if writing to the legacy log store is enabled.
*/
protected function legacy_log_store_writing_error() {
$enabled = get_config('logstore_legacy', 'loglegacy');
$plugins = explode(',', get_config('tool_log', 'enabled_stores'));
$enabled = $enabled && in_array('logstore_legacy', $plugins);
if ($enabled) {
return $this->warning(get_string('legacylogginginuse'));
}
}
/**
* Display message about the benefits of registering on Moodle.org
*
+5 -5
View File
@@ -152,7 +152,7 @@ if (($action == 'edit') || ($action == 'new')) {
core_plugin_manager::reset_caches();
redirect($baseurl);
} else {
print_error('instancenotsaved', 'repository', $baseurl);
throw new \moodle_exception('instancenotsaved', 'repository', $baseurl);
}
exit;
} else {
@@ -183,14 +183,14 @@ if (($action == 'edit') || ($action == 'new')) {
}
} else if ($action == 'show') {
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', '', $baseurl);
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
$class = \core_plugin_manager::resolve_plugininfo_class('repository');
$class::enable_plugin($repository, 1);
$return = true;
} else if ($action == 'hide') {
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', '', $baseurl);
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
$class = \core_plugin_manager::resolve_plugininfo_class('repository');
$class::enable_plugin($repository, 0);
@@ -200,7 +200,7 @@ if (($action == 'edit') || ($action == 'new')) {
if ($sure) {
$PAGE->set_pagetype('admin-repository-' . $repository);
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', '', $baseurl);
throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
}
if ($repositorytype->delete($downloadcontents)) {
@@ -209,7 +209,7 @@ if (($action == 'edit') || ($action == 'new')) {
core_plugin_manager::reset_caches();
redirect($baseurl);
} else {
print_error('instancenotdeleted', 'repository', $baseurl);
throw new \moodle_exception('instancenotdeleted', 'repository', $baseurl);
}
exit;
} else {
+2 -2
View File
@@ -104,7 +104,7 @@ if (!empty($edit) || !empty($new)) {
core_plugin_manager::reset_caches();
redirect($parenturl);
} else {
print_error('instancenotsaved', 'repository', $parenturl);
throw new \moodle_exception('instancenotsaved', 'repository', $parenturl);
}
exit;
} else {
@@ -134,7 +134,7 @@ if (!empty($edit) || !empty($new)) {
core_plugin_manager::reset_caches();
redirect($parenturl, $deletedstr, 3);
} else {
print_error('instancenotdeleted', 'repository', $parenturl);
throw new \moodle_exception('instancenotdeleted', 'repository', $parenturl);
}
exit;
}
+43 -20
View File
@@ -25,8 +25,10 @@
require_once(__DIR__ . '/../../config.php');
require_once($CFG->libdir.'/adminlib.php');
$confirmadd = optional_param('confirmadd', 0, PARAM_INT);
$confirmdel = optional_param('confirmdel', 0, PARAM_INT);
$addusersaction = optional_param('add', false, PARAM_BOOL);
$addusers = optional_param('addusers', '', PARAM_SEQUENCE);
$removeusersaction = optional_param('remove', false, PARAM_BOOL);
$removeusers = optional_param('removeusers', '', PARAM_SEQUENCE);
$PAGE->set_url('/admin/roles/admins.php');
@@ -38,33 +40,47 @@ if (!is_siteadmin()) {
$admisselector = new core_role_admins_existing_selector();
$potentialadmisselector = new core_role_admins_potential_selector();
if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
if ($addusersaction) {
if ($userstoadd = $potentialadmisselector->get_selected_users()) {
$user = reset($userstoadd);
$username = $potentialadmisselector->output_user($user);
$usernames = array_map(static function(stdClass $user) use ($potentialadmisselector): string {
return $potentialadmisselector->output_user($user);
}, $userstoadd);
$userids = implode(',', array_keys($usernames));
echo $OUTPUT->header();
$yesurl = new moodle_url('/admin/roles/admins.php', array('confirmadd'=>$user->id, 'sesskey'=>sesskey()));
echo $OUTPUT->confirm(get_string('confirmaddadmin', 'core_role', $username), $yesurl, $PAGE->url);
echo $OUTPUT->confirm(get_string('confirmaddadmins', 'core_role') . html_writer::alist($usernames),
new moodle_url('/admin/roles/admins.php', ['addusers' => $userids, 'sesskey' => sesskey()]), $PAGE->url);
echo $OUTPUT->footer();
die;
}
} else if (optional_param('remove', false, PARAM_BOOL) and confirm_sesskey()) {
} else if ($removeusersaction) {
if ($userstoremove = $admisselector->get_selected_users()) {
$user = reset($userstoremove);
if ($USER->id == $user->id) {
// Can not remove self.
} else {
$username = $admisselector->output_user($user);
// Can not remove self.
$userstoremove = array_filter($userstoremove, static function(int $userid): bool {
global $USER;
return $userid != $USER->id;
}, ARRAY_FILTER_USE_KEY);
if ($userstoremove) {
$usernames = array_map(static function(stdClass $user) use ($admisselector): string {
return $admisselector->output_user($user);
}, $userstoremove);
$userids = implode(',', array_keys($usernames));
echo $OUTPUT->header();
$yesurl = new moodle_url('/admin/roles/admins.php', array('confirmdel'=>$user->id, 'sesskey'=>sesskey()));
echo $OUTPUT->confirm(get_string('confirmdeladmin', 'core_role', $username), $yesurl, $PAGE->url);
echo $OUTPUT->confirm(get_string('confirmremoveadmins', 'core_role') . html_writer::alist($usernames),
new moodle_url('/admin/roles/admins.php', ['removeusers' => $userids, 'sesskey' => sesskey()]), $PAGE->url);
echo $OUTPUT->footer();
die;
}
}
} else if (optional_param('main', false, PARAM_BOOL) and confirm_sesskey()) {
} else if (optional_param('main', false, PARAM_BOOL) && confirm_sesskey()) {
// Setting main administrator will choose the first selected user in the case of multiple selections.
if ($newmain = $admisselector->get_selected_users()) {
$newmain = reset($newmain);
$newmain = $newmain->id;
@@ -91,7 +107,7 @@ if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
}
}
} else if ($confirmadd and confirm_sesskey()) {
} else if ($addusers && confirm_sesskey()) {
$admins = array();
foreach (explode(',', $CFG->siteadmins) as $admin) {
$admin = (int)$admin;
@@ -102,7 +118,9 @@ if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
$logstringold = implode(', ', $admins);
$admins[$confirmadd] = $confirmadd;
foreach (explode(',', $addusers) as $userid) {
$admins[$userid] = $userid;
}
$logstringnew = implode(', ', $admins);
@@ -111,7 +129,7 @@ if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
redirect($PAGE->url);
} else if ($confirmdel and confirm_sesskey() and $confirmdel != $USER->id) {
} else if ($removeusers && confirm_sesskey()) {
$admins = array();
foreach (explode(',', $CFG->siteadmins) as $admin) {
$admin = (int)$admin;
@@ -122,7 +140,12 @@ if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
$logstringold = implode(', ', $admins);
unset($admins[$confirmdel]);
// Can not remove self.
foreach (explode(',', $removeusers) as $userid) {
if ($userid != $USER->id) {
unset($admins[$userid]);
}
}
$logstringnew = implode(', ', $admins);
+1 -1
View File
@@ -33,7 +33,7 @@ $classformode = array(
'view' => 'core_role_allow_view_page'
);
if (!isset($classformode[$mode])) {
print_error('invalidmode', '', '', $mode);
throw new \moodle_exception('invalidmode', '', '', $mode);
}
$baseurl = new moodle_url('/admin/roles/allow.php', array('mode'=>$mode));
+1 -1
View File
@@ -75,7 +75,7 @@ if ($roleid && !isset($assignableroles[$roleid])) {
$a = new stdClass;
$a->roleid = $roleid;
$a->context = $contextname;
print_error('cannotassignrolehere', '', $context->get_url(), $a);
throw new \moodle_exception('cannotassignrolehere', '', $context->get_url(), $a);
}
// Work out an appropriate page title.
+1 -1
View File
@@ -48,7 +48,7 @@ if ($course) {
// Security first.
require_login($course, false, $cm);
if (!has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:manage'), $context)) {
print_error('nopermissions', 'error', '', get_string('checkpermissions', 'core_role'));
throw new \moodle_exception('nopermissions', 'error', '', get_string('checkpermissions', 'core_role'));
}
navigation_node::override_active_url($url);
@@ -37,25 +37,28 @@ class core_role_admins_existing_selector extends user_selector_base {
if (is_null($name)) {
$name = 'removeselect';
}
$options['multiselect'] = false;
$options['includecustomfields'] = true;
parent::__construct($name, $options);
}
public function find_users($search) {
global $DB, $CFG;
list($wherecondition, $params) = $this->search_sql($search, '');
$fields = 'SELECT ' . $this->required_fields_sql('');
[$wherecondition, $params] = $this->search_sql($search, 'u');
$params = array_merge($params, $this->userfieldsparams);
$fields = 'SELECT u.id, ' . $this->userfieldsselects;
if ($wherecondition) {
$wherecondition = "$wherecondition AND id IN ($CFG->siteadmins)";
$wherecondition = "$wherecondition AND u.id IN ($CFG->siteadmins)";
} else {
$wherecondition = "id IN ($CFG->siteadmins)";
$wherecondition = "u.id IN ($CFG->siteadmins)";
}
$sql = " FROM {user}
$sql = " FROM {user} u
$this->userfieldsjoin
WHERE $wherecondition";
list($sort, $sortparams) = users_order_by_sql('', $search, $this->accesscontext);
[$sort, $sortparams] = users_order_by_sql('u', $search, $this->accesscontext, $this->userfieldsmappings);
$params = array_merge($params, $sortparams);
// Sort first by email domain and then by normal name order.
@@ -87,8 +90,12 @@ class core_role_admins_existing_selector extends user_selector_base {
} else {
$groupnameprefix = get_string('extusers', 'core_role');
foreach ($availableusers as $user) {
$domain = substr($user->email, strpos($user->email, '@'));
$groupname = "$groupnameprefix $domain";
if (isset($user->email)) {
$domain = substr($user->email, strpos($user->email, '@'));
$groupname = "$groupnameprefix $domain";
} else {
$groupname = $groupnameprefix;
}
$result[$groupname][] = $user;
}
}
@@ -38,25 +38,28 @@ class core_role_admins_potential_selector extends user_selector_base {
if (is_null($name)) {
$name = 'addselect';
}
$options['multiselect'] = false;
$options['includecustomfields'] = true;
$options['exclude'] = explode(',', $CFG->siteadmins);
parent::__construct($name, $options);
}
public function find_users($search) {
global $CFG, $DB;
list($wherecondition, $params) = $this->search_sql($search, '');
$fields = 'SELECT ' . $this->required_fields_sql('');
[$wherecondition, $params] = $this->search_sql($search, 'u');
$params = array_merge($params, $this->userfieldsparams);
$fields = 'SELECT u.id, ' . $this->userfieldsselects;
$countfields = 'SELECT COUNT(1)';
$sql = " FROM {user}
$sql = " FROM {user} u
$this->userfieldsjoin
WHERE $wherecondition AND mnethostid = :localmnet";
// It could be dangerous to make remote users admins and also this could lead to other problems.
$params['localmnet'] = $CFG->mnet_localhost_id;
list($sort, $sortparams) = users_order_by_sql('', $search, $this->accesscontext);
[$sort, $sortparams] = users_order_by_sql('u', $search, $this->accesscontext, $this->userfieldsmappings);
$order = ' ORDER BY ' . $sort;
// Check to see if there are too many to show sensibly.
-1
View File
@@ -141,7 +141,6 @@ abstract class core_role_allow_role_page {
$table->cellspacing = 0;
$table->width = '90%';
$table->align = array('left');
$table->rotateheaders = true;
$table->head = array('&#xa0;');
$table->colclasses = array('');
+2 -3
View File
@@ -54,10 +54,9 @@ class core_role_allow_view_page extends core_role_allow_role_page {
/**
* Get tool tip for cell.
* @param string $fromrole
* @param string $targetrole
* @param stdClass $fromrole
* @param stdClass $targetrole
* @return string
* @throws \coding_exception
*/
protected function get_cell_tooltip($fromrole, $targetrole) {
$a = new stdClass;
@@ -533,7 +533,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
protected function get_description_field($id) {
return '<textarea class="form-textarea form-control" id="'. s($id) .'" name="description" rows="10" cols="50">' .
htmlspecialchars($this->role->description) .
htmlspecialchars($this->role->description, ENT_COMPAT) .
'</textarea>';
}

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