Compare commits

...

1748 Commits

Author SHA1 Message Date
Jun Pataleta f6e37fe195 Moodle release 3.7.8 2020-09-11 10:41:50 +08:00
Sara Arjona b7a2955827 weekly release 3.7.7+ 2020-09-10 08:52:16 +02:00
Michael Hawkins 18e85de97f MDL-69340 tag: Correct the filter input HTML in the tag manager 2020-09-03 17:17:41 +02:00
Mihail Geshoski afe7dff644 MDL-69048 book: Sanitize previous chapter value in add new chapter page 2020-09-03 17:17:41 +02:00
Andrew Nicols 7b3fdc47b2 MDL-68974 calendar: Use page context for block check 2020-09-03 17:17:41 +02:00
Andrew Nicols e0b4a480d1 MDL-68974 blocks: Check permission before generating content 2020-09-03 17:17:41 +02:00
Mihail Geshoski b1157ac005 MDL-65115 repository: Prevent unzipping if it will exceed allowed quota 2020-09-03 17:17:41 +02:00
Mihail Geshoski 7e2020be12 MDL-65115 core_files: Add get_total_content_size() in stored_file class
New function get_total_content_size() is introduced in the stored_file
class. The puprose of this function is to calculate and return the
total size (in bytes) of the content of an archive file.
2020-09-03 17:17:41 +02:00
Andrew Nicols 4b20cc2226 MDL-68974 admin: Unit tests for context parent/child test 2020-09-03 17:17:41 +02:00
Andrew Nicols 8f6eaceba6 MDL-68974 admin: Unit tests for loginas 2020-09-03 17:17:41 +02:00
Andrew Nicols 18f46fb5bd MDL-68974 admin: Prevent login as outside of the desired context 2020-09-03 17:17:41 +02:00
Sara Arjona 2704b00da2 weekly release 3.7.7+ 2020-09-03 17:09:35 +02:00
Andrew Nicols 8f3bc4ffed Merge branch 'MDL-69360-37' of git://github.com/NoelDeMartin/moodle into MOODLE_37_STABLE 2020-09-03 10:52:40 +08:00
Noel De Martin ad8c864c47 MDL-69360 behat: Fix js ready checks for non-moodle sites 2020-09-02 10:21:27 +02:00
Sara Arjona 539edb15d3 weekly release 3.7.7+ 2020-08-27 17:36:42 +02:00
Sara Arjona 6eb8296209 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-08-27 17:36:40 +02:00
AMOS bot a494390972 Automatically generated installer lang files 2020-08-27 00:07:19 +00:00
Adrian Greeve 2ad9e68222 Merge branch 'MDL-69419-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-08-27 08:05:38 +08:00
Andrew Nicols 32a4a98b71 MDL-69419 core: Task reset tests cannot use random test times
If a scheduled task which uses a 'R' field is picked, then the reset of
updated task times will not necessarily be correctly determined as the
randomisation is picked during reset.

This can lead to some random test failures.

Actively specifying a test which does not make use of the 'R' random
field time addresses this issue.
2020-08-26 09:59:01 +08:00
AMOS bot 7755a09fe4 Automatically generated installer lang files 2020-08-26 00:07:38 +00:00
AMOS bot 006269aef3 Automatically generated installer lang files 2020-08-22 00:08:05 +00:00
Eloy Lafuente (stronk7) a67a0c2900 weekly release 3.7.7+ 2020-08-21 20:43:10 +02:00
Andrew Nicols 39bc7a84fd Merge branch 'MDL-67415_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-08-20 08:32:08 +08:00
Andrew Nicols 90bd99dc73 Merge branch 'MDL-69271_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-08-20 07:37:06 +08:00
Eloy Lafuente (stronk7) 793a86aef9 Merge branch 'MDL-69273-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-08-18 11:00:02 +02:00
Andrew Nicols 6d8999eb13 MDL-69273 travis: Use exttests for https too 2020-08-18 07:50:48 +08:00
Andrew Nicols 4f36e9dd4c MDL-69273 travis: Move exttests check to after_script
The result of the final command `script` phase determines the build
result.

The cleanup belongs in the `after_script` phase.
2020-08-18 07:40:14 +08:00
Eloy Lafuente (stronk7) 4000d27650 MDL-69271 auth_ldap: Don't assume any ordering, just verify matches
Both ldap or the DB can return information in a non-consistent
ordering leading to events to be generated in different order.

And current tests are, right now, assuming a given order.

Note this is a rare random, but it's happening, so better
fix it, see the issue for some more details.

So we just do the tests ordering immune, verifying that all the
expected events have been triggered and done. Irrespectively of their order.
2020-08-14 13:40:16 +02:00
Andrew Nicols 76c1d96592 weekly release 3.7.7+ 2020-08-14 14:42:25 +08:00
Andrew Nicols 63630ffcc8 Merge branch 'MDL-69421-37' of git://github.com/noeldemartin/moodle into MOODLE_37_STABLE 2020-08-13 09:36:35 +08:00
Eloy Lafuente (stronk7) 4d77f72c1d MDL-67415 environment: change requirements
- mysql requirement up to 5.7
- postgres requirement up to 9.6
2020-08-13 01:30:55 +02:00
Eloy Lafuente (stronk7) a1f8dfefab MDL-67415 environment: 3.10 base information
This is a direct copy of the 3.9 branch to have
changes under control easier for next commits.
2020-08-13 01:30:54 +02:00
Noel De Martin 3d8e0c0d19 MDL-69421 behat: Revert app behat navigation to call session visit 2020-08-06 12:25:50 +02:00
Victor Deniz Falcon 59541a9635 weekly release 3.7.7+ 2020-07-30 12:53:57 +01:00
Eloy Lafuente (stronk7) 87a907b1ec Merge branch 'MDL-69319-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2020-07-29 01:22:47 +02:00
Eloy Lafuente (stronk7) 32b7cd8e47 weekly release 3.7.7+ 2020-07-29 01:05:14 +02:00
Eloy Lafuente (stronk7) df876c1c6a Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-07-29 01:05:12 +02:00
AMOS bot b7b1ac5b07 Automatically generated installer lang files 2020-07-27 00:07:44 +00:00
AMOS bot 13b390428b Automatically generated installer lang files 2020-07-27 00:07:43 +00:00
AMOS bot 9ca0ab9812 Automatically generated installer lang files 2020-07-25 00:08:09 +00:00
AMOS bot 014e2b48eb Automatically generated installer lang files 2020-07-23 00:08:03 +00:00
Andrew Nicols 5d3dece47f MDL-69138 behat: Update session->visit() to use visit step 2020-07-22 16:50:55 +08:00
Andrew Nicols 97abfe31cc MDL-69138 behat: Add "I visit :localurl" step 2020-07-22 16:50:55 +08:00
Eloy Lafuente (stronk7) d1c2a39f16 Merge branch 'MDL-69160-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-21 23:29:58 +02:00
Adrian Greeve 242a321edd Merge branch 'MDL-67657-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-21 14:50:08 +08:00
Jake Dallimore 661f51493c MDL-69319 mod_lti: style and docs changes in external tests 2020-07-20 15:07:42 +08:00
Jake Dallimore 54748014f7 MDL-69319 mod_lti: replace try/catch with expectException in ext tests 2020-07-20 15:07:41 +08:00
Jake Dallimore 6baabaf790 MDL-69319 mod_lti: remove unused vars from externallib_test 2020-07-20 15:07:40 +08:00
Jake Dallimore fb0b9f8c33 MDL-69319 mod_lti: move test data generation out of common setup 2020-07-20 15:07:39 +08:00
Jake Dallimore 5ddf2ae179 MDL-69319 mod_lti: call clean_returnvalue in external tests 2020-07-20 15:07:38 +08:00
Eloy Lafuente (stronk7) 6778871f87 Merge branch 'MDL-69278-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-18 11:56:33 +02:00
Sara Arjona 6e19a4fa78 weekly release 3.7.7+ 2020-07-16 21:28:25 +02:00
Andrew Nicols 34e1460651 MDL-67657 behat: Open course with editing using URL
This is a huge performance improvement for behat.

The current set of steps loads the page
It then looks for the Classic/Clean version of the settings menu
If it fails to find it looks for the Boost Cog
Then it clicks the "Turn editing on" button

This can take a substantial period.

We do not actually need to run these steps as we are able to jump
straight to the URL. We already have access to the sesskey value
required to do this.

There is not loss in testing functionality because the actual testing of
the Turn editing functionality is tested in other places sufficiently.
2020-07-16 11:06:43 +08:00
Andrew Nicols b08c0ded45 MDL-67657 behat: Convert existing uses of executeScript 2020-07-16 11:06:31 +08:00
Andrew Nicols 7760f0c847 MDL-67657 behat: Add wrapper for JS execution 2020-07-16 11:05:32 +08:00
Andrew Nicols 12a2903b6f MDL-69278 behat: Correct variable name 2020-07-16 08:30:29 +08:00
Andrew Nicols df3048f55c MDL-69278 behat: Mark tests as failed when unable to start Session 2020-07-16 08:30:28 +08:00
Charles Fulton 61bf4f7c18 MDL-69074 admin: ensure consistent default for getremoteaddrconf 2020-07-15 19:06:17 +02:00
Sara Arjona 9a9ea3f8fc Merge branch 'MDL-69068-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-15 12:20:48 +02:00
Andrew Nicols f7ac933d2a MDL-69068 behat: Allow singular, pivotted data generators 2020-07-15 15:27:31 +08:00
Andrew Nicols f3936438ca MDL-69068 behat: New step to support singular generators 2020-07-15 15:25:27 +08:00
Andrew Nicols 4068dd161d MDL-69160 workshop: Ensure steps are chained 2020-07-13 14:22:31 +08:00
Andrew Nicols 352c921492 MDL-69160 behat: Add form field setter step 2020-07-13 14:22:31 +08:00
Eloy Lafuente (stronk7) 952a894a97 Moodle release 3.7.7 2020-07-12 12:12:45 +02:00
AMOS bot 058e70e9a2 Automatically generated installer lang files 2020-07-10 19:53:04 +00:00
Eloy Lafuente (stronk7) 4144ba4ee6 weekly release 3.7.6+ 2020-07-10 20:22:04 +02:00
Eloy Lafuente (stronk7) 9a37320726 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-07-10 20:21:59 +02:00
Jake Dallimore 647b675ee6 Merge branch 'MDL-69232-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-10 15:11:54 +08:00
Andrew Nicols eec91baff9 MDL-69232 behat: Simplify hooks
The behat hooks were needlessly complicated which made them much harder
to read, and understand, leading to bugs during development.

These have been significantly simplified to favour clarity over
overloading.
2020-07-10 08:40:30 +08:00
Andrew Nicols 775b9a363e MDL-69232 behat: Make selenium start more fault tolerant
The session was previously only started once, but has now been moved to
restart between each test. Because of this the `$session->start()` is
now called more frequently which exposes a pre-existing issue whereby
Selenium will periodically fail to start.

When the session was only started at the beginning of the test, and at
occasional other times, it made sense to always stop the test runner
because it signified an issue with obtaining the session at all.

Since the session is restarted more frequently, and now between every
test, it no longer makes sense to do this. The test should only be
_stopped_ if the first attempt to obtain the Session fails. Once a
Session has been retrieved at least once it no longer makes sense to
assume that the failure was a configuration failure, but a connection
failure. Therefore subsequent tests should be attempted.
2020-07-10 08:40:30 +08:00
Jake Dallimore 87f67eccef Merge branch 'MDL-69135-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-09 10:39:23 +08:00
Michael Hawkins 0442cf991c MDL-68426 theme: Set a limit on paths length in yui_combo
The maximum paths length is now consistent with the YUI loader.
This fix also removes any duplicate paths, so each file is only ever
fetched once.
2020-07-09 10:24:10 +08:00
Andrew Nicols f216c901e1 MDL-69232 behat: Add debugging information to Selenium fails 2020-07-09 09:47:15 +08:00
Andrew Nicols cc3e741801 MDL-69232 behat: Move suite tests to BeforeSuite hook 2020-07-09 09:47:15 +08:00
Eloy Lafuente (stronk7) 8d44fd1950 Merge branch 'MDL-69134-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-08 20:53:41 +02:00
Andrew Nicols 84388a2e30 Merge branch 'm37_MDL-66322_Travis_Run_Using_Docker_ExtTests' of https://github.com/scara/moodle into MOODLE_37_STABLE 2020-07-08 12:22:37 +08:00
Andrew Nicols 23a8270d36 MDL-69134 competencies: Behat fails randomly opening dialogues 2020-07-08 09:22:09 +08:00
Matteo Scaramuccia a4d4a0b280 MDL-66322 travis: Configure a local copy of 'exttests' 2020-07-07 21:59:58 +02:00
Eloy Lafuente (stronk7) 07ade46473 Merge branch 'MDL-69086-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-07 19:17:38 +02:00
Víctor Déniz Falcón 19fa09219f MDL-69093 enrol_manual: added check for allowed roles a user can assign 2020-07-06 04:47:34 +02:00
Jake Dallimore cb51c8aeea Merge branch 'MDL-69136-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-06 10:45:17 +08:00
Michael Hawkins 9c882617dd MDL-69128 admin: Convert HTML entities when populating tasklogs filter 2020-07-06 10:05:14 +08:00
AMOS bot a9140d703a Automatically generated installer lang files 2020-07-06 00:08:44 +00:00
Eloy Lafuente (stronk7) 118a1e784e weekly release 3.7.6+ 2020-07-03 18:41:21 +02:00
Eloy Lafuente (stronk7) 30983313d5 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-07-03 18:41:15 +02:00
Jake Dallimore e92d72531d Merge branch 'MDL-69149-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-02 11:57:51 +08:00
AMOS bot 31ea6dee4b Automatically generated installer lang files 2020-07-02 00:08:23 +00:00
Eloy Lafuente (stronk7) 83e9f358ec Merge branch 'MDL-69072-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-07-01 23:24:34 +02:00
Andrew Nicols ea5dfe6569 MDL-69136 behat: Improve reliability of navigation steps 2020-06-29 11:36:36 +08:00
Andrew Nicols 1dd4007796 MDL-69136 behat: Support find on a NodeElement 2020-06-29 11:36:30 +08:00
Andrew Nicols 6032981688 MDL-69072 behat: Remove restart_browser_after feature
This is no longer required as the Mink session is restarted after every
test regardless.
2020-06-29 11:05:53 +08:00
Andrew Nicols f39dc20d43 MDL-69072 mod_scorm: Stop mink reset after tests
This is now done for all scenarios. It is no longer necessary to do so
specifically for mod_scorm.
2020-06-26 21:17:23 +08:00
Andrew Nicols 462e37413f MDL-69072 behat: Relaunch browser session between scenarios 2020-06-26 21:17:22 +08:00
Andrew Nicols 3fe3913c54 MDL-69149 core_grade: Correct xpath attribute selector 2020-06-26 19:59:56 +08:00
Andrew Nicols be58ae7572 MDL-69135 core_calendar: PendingJS for event filtering 2020-06-26 07:58:36 +08:00
Eloy Lafuente (stronk7) 67753d625e weekly release 3.7.6+ 2020-06-25 18:06:18 +02:00
Eloy Lafuente (stronk7) bb05910a30 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-06-25 18:06:13 +02:00
Eloy Lafuente (stronk7) 7ff28ff941 Merge branch 'MDL-66568-37-2' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-06-23 17:57:46 +02:00
AMOS bot da736374e9 Automatically generated installer lang files 2020-06-21 00:07:35 +00:00
Andrew Nicols c2724bce31 MDL-69086 theme_boost: Improve pendingJs checks for bootstrap
Where an element, like an `alert`, is closed it is removed from the DOM
before the event fires (this is a correct behaviour).

This means that the final event confirming that the action happened
(i.e. close => closed) fires, but does not bubble up the DOM to the
document.body.

This change moves the end event listener to only be added after a start
event has been fired, and to attach directly to the HTMLElement where it
will be fired. This means that the Event handler will still be called,
even though it has been removed from the DOM, because it does not need
to bubble up to the body.
2020-06-19 08:17:45 +08:00
Sara Arjona 4762e10fb0 weekly release 3.7.6+ 2020-06-18 14:13:51 +02:00
Sara Arjona 334bee3de7 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-06-18 14:13:48 +02:00
Andrew Nicols c11fbc518c MDL-66568 behat: Reset theme CSS between scenarios 2020-06-17 07:52:24 +08:00
Andrew Nicols 42197e952d MDL-66568 behat: Support building of themes for behat 2020-06-17 07:52:23 +08:00
Andrew Nicols 65adf66a24 MDL-66568 core_output: Return built theme CSS 2020-06-17 07:52:23 +08:00
Víctor Déniz Falcón bb3d73727f Merge branch 'MDL-69049-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-06-16 17:49:04 +01:00
Jun Pataleta 3ab30c7f20 MDL-69049 tool_dataprivacy: Add possibly missing comment format columns
The earlier CONTRIB plugin versions of the tool (<33.2.0, <34.2.0) were
missing the following columns in the data requests table:
* commentsformat
* dpocommentformat
And the upgrade scripts for the merged tool failed in
Moodle 3.3.8+/3.3.0+ failed to add these columns.
So a site which uses the CONTRIB plugin and eventually upgrading to 3.9
will encounter an error during upgrade because of the missing
dpocommentformat column.
2020-06-15 23:41:19 +08:00
AMOS bot 56c40e0b40 Automatically generated installer lang files 2020-06-14 00:07:33 +00:00
Sara Arjona 980ae98809 weekly release 3.7.6+ 2020-06-11 18:04:06 +02:00
Sara Arjona 2d6f00d381 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-06-11 18:04:02 +02:00
Andrew Nicols ebdf85d638 Merge branch 'MDL-69002-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2020-06-11 11:27:09 +08:00
Sara Arjona 048d7eec36 MDL-69002 core_badges: move backpack validation to a separate page
Instead of running the site backpack validation every time badges/backpacks.php
page is loaded, an action button has been added to the backpacks with OB set
to 2.0 to let admins running manually this verification when needed.
2020-06-10 13:09:53 +02:00
Sara Arjona fa1eab6447 MDL-69002 core_badges: add methods to support backpack validation
A more generic method has been added to the API to validate the
backpack connection (for now, there was only one method for
validating current backpack).
Besides, a renderer has been added to display this information
depending on the backpackid.
2020-06-10 13:09:52 +02:00
Sara Arjona 657f0381d8 MDL-69002 core_badges: remove site backpack verification from settings
This site backpack verification is not required so, instead of
running it always here, it will be moved to a separate page to let
admins decide when to check it.
2020-06-10 13:09:51 +02:00
Jun Pataleta 617df25335 Merge branch 'MDL-68864-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-06-10 11:26:33 +08:00
Bas Brands 5611585eec MDL-68864 qtype_multichoice: clearchoice
- Reverted changes from MDL-67901
2020-06-09 10:50:36 +02:00
AMOS bot 5df5711bd0 Automatically generated installer lang files 2020-06-06 00:07:34 +00:00
AMOS bot 7a82a0e426 Automatically generated installer lang files 2020-05-30 00:07:30 +00:00
Sara Arjona 868f9fa5bd weekly release 3.7.6+ 2020-05-29 12:52:40 +02:00
Sara Arjona 894d847d9d Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-29 12:52:37 +02:00
AMOS bot 304fa6defe Automatically generated installer lang files 2020-05-29 00:07:57 +00:00
Adrian Greeve 22665452a3 Merge branch 'MDL-68847-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2020-05-28 16:31:43 +08:00
Jake Dallimore 7ca59eba57 MDL-68847 mod_url: fix bug when using dnd to handle urls
This generates a notice, which wasn't seen because the feature works
asynchronously.
2020-05-28 15:53:07 +08:00
Jun Pataleta ad06a6f7df Merge branch 'MDL-68750-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-05-27 11:24:44 +08:00
Andrew Nicols f2fcb75384 MDL-68750 tool_dataprivacy: Correct behat test modal checks 2020-05-27 10:40:30 +08:00
Eloy Lafuente (stronk7) 3d1f43126e weekly release 3.7.6+ 2020-05-26 22:52:16 +02:00
Andrew Nicols ddd2f21247 MDL-68750 core_tag: Add missing confirmation dialogue title 2020-05-26 12:57:02 +08:00
Andrew Nicols bf2f4704c9 MDL-68750 behat: Correct dialogue selector 2020-05-26 12:57:02 +08:00
Andrew Nicols bff7ea0435 Merge branch 'MDL-68658_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-05-25 15:49:58 +08:00
Eloy Lafuente (stronk7) 267c26d6d7 MDL-68658 phpunit: Ensure that the configured proxy is applied always
Previously, if the RSS feed (extests) was being served locally,
CFG->proxybypass was applied and causing the test to fail (proxy
ignored).

In that exact test we need the configured proxy to be applied
always, because the test is exaclty about detecting the problem
when a wrong proxy is used.
2020-05-22 17:07:14 +02:00
Victor Deniz Falcon 591c98d71c weekly release 3.7.6+ 2020-05-22 14:22:15 +01:00
Victor Deniz Falcon c9a94cbc9a Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-22 14:22:11 +01:00
Adrian Greeve 392741bd32 Merge branch 'MDL-68733_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-05-21 08:34:49 +08:00
AMOS bot 97f2f72902 Automatically generated installer lang files 2020-05-21 00:07:30 +00:00
AMOS bot 065c5a1c2f Automatically generated installer lang files 2020-05-20 00:07:39 +00:00
Sara Arjona f6e0e09f20 weekly release 3.7.6+ 2020-05-19 17:54:43 +02:00
Sara Arjona 3c3e5a5f71 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-19 17:54:40 +02:00
Tim Hunt 82258882da MDL-68733 quiz editing: behat test for altering random question tags 2020-05-19 11:17:32 +01:00
Bence Molnar 3d9e7a3071 MDL-68733 quiz editing: be more careful deleting random question tags 2020-05-19 11:17:32 +01:00
Tim Hunt db233ce7e2 MDL-68733 question behat: question tag generator and use in quiz test 2020-05-19 11:17:28 +01:00
AMOS bot 6e7fdac8f0 Automatically generated installer lang files 2020-05-19 00:07:32 +00:00
Sara Arjona 0393dc3357 Merge branch 'MDL-68760_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-05-18 20:33:31 +02:00
Sara Arjona 727ba5d9c0 Merge branch 'MDL-68728-37-2' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-05-18 20:23:32 +02:00
Tim Hunt 045d650ae3 MDL-68760 timezones: add string for new timezone America/Nuuk 2020-05-18 17:32:29 +01:00
Tim Hunt 890e60c709 MDL-68760 string tests: make test_timezone_lang_strings message helpful 2020-05-18 17:32:29 +01:00
Andrew Nicols 7738116fd5 Merge branch 'MDL-68503_37_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_37_STABLE 2020-05-18 20:33:30 +08:00
Andrew Nicols 183b8f556b MDL-68728 calendar: Pending promises for event summary 2020-05-18 13:38:28 +08:00
AMOS bot c696b5e6b4 Automatically generated installer lang files 2020-05-18 00:07:54 +00:00
AMOS bot 22c276dd00 Automatically generated installer lang files 2020-05-17 00:07:24 +00:00
Eloy Lafuente (stronk7) ae1f2982ff weekly release 3.7.6+ 2020-05-15 11:06:52 +02:00
Andrew Nicols 4e2dd1a3a8 Merge branch 'MDL-66917-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-05-15 10:55:22 +08:00
Eloy Lafuente (stronk7) bce5596ff8 Merge branch 'MDL-68084-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-05-15 01:31:05 +02:00
Jake Dallimore ce6735fb29 Merge branch 'MDL-68631_37' of https://github.com/jonof/moodle into MOODLE_37_STABLE 2020-05-13 09:31:34 +08:00
Paul Holden f77412b119 MDL-68084 blocks: check capability before getting content.
Some blocks (e.g. Calendar) load additional JS modules when returning
content. We need to make sure they aren't asked to generate content
unless the user can actually view the block, or the expected content
required by the JS will not exist in the DOM and can cause exceptions.
2020-05-12 19:21:43 +01:00
Sara Arjona ed69fa429f weekly release 3.7.6+ 2020-05-12 14:16:57 +02:00
Jun Pataleta 99f889d2af Merge branch 'MDL-66109-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-05-12 00:03:03 +08:00
Andrew Nicols ef8de2333b MDL-66109 js: Built file changes from new Node version 2020-05-11 10:54:05 +08:00
Andrew Nicols 7a2a464728 MDL-66109 js: Fix circular dependency in Shifter dependency
Shifter is using an ancient and no-longer supported of Istanbul. That
version contains a circular dependency whereby it fetches the version
from the index that included the file in the first place.  This throws a
warning on newer versions of Node.

The fix here is simple and intended to be the bare minimum to remove
these warnings anad resolve the issue.

We have forked the istanbul project and created a v0.1.37_moodle branch
at the root version of the Istanbul version that Shifter uses (v0.1.37
tag). The circular dependency is then addressed and a new tag created.

I have then forked Shifter, pointing its package.json at the tar.gz
download of that new tag and pushed a new branch and tag for that fix.

Following this our own package.json is updated to point to the tar.gz
version of the new Shifter tag.
2020-05-11 10:54:05 +08:00
Andrew Nicols a3e94bc0e8 MDL-66109 js: Upgrade to latest stable version of NodeJS
Version 14.0.0 has just been released as stable, and will make its way
to an LTS release which will be supported until 30th April 2023.

At time of writing it is the "Current stable" release and will remain in
this phase until 20th October 2020, at whciih point it will transition
to LTS status.
2020-05-11 10:54:05 +08:00
Eloy Lafuente (stronk7) cf687f4357 Moodle release 3.7.6 2020-05-09 20:05:35 +02:00
Eloy Lafuente (stronk7) e32ae38439 weekly release 3.7.5+ 2020-05-08 13:29:56 +02:00
Eloy Lafuente (stronk7) 4e09dc64b7 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-08 13:29:53 +02:00
Jake Dallimore fcefa38092 Merge branch 'MDL-51694-37' of https://github.com/MartinGauk/moodle into MOODLE_37_STABLE 2020-05-08 11:23:23 +08:00
Eloy Lafuente (stronk7) 61f218ae47 Merge branch 'MDL-68443-xmldb-path-validation-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2020-05-07 19:17:11 +02:00
Paul Holden 6bafc320c0 MDL-68415 core: test attachments in email_to_user from allowed paths. 2020-05-07 18:41:18 +02:00
fujiwara a22a46a689 MDL-68415 email: Fix attachment in email_to_user() 2020-05-07 18:41:12 +02:00
Jake Dallimore 9e6f90f1cf Merge branch 'MDL-62403-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2020-05-07 14:20:12 +08:00
Simey Lameze 62ed52fdc4 MDL-62403 portfolio: add upgrade notes for google docs 2020-05-07 13:05:44 +08:00
Ryan Wyllie ad45df4dc2 MDL-62403 portfolio: create directories for google drive export
I've modified the Google Drive portfolio export so that it creates a
root directory in Drive for all of the files in the export. This allows
each export to be contained from each other to help with clashing file
names.

Additionally, the paths for the exported files will now be created in
Drive so that exported files are in the correct directory structure.
This is important for forum posts exports which assume a certain
directory structure in the export.
2020-05-07 12:43:15 +08:00
Jonathon Fowler 1d8729004a MDL-68631 cron: ensure the cron user is reset between scheduled tasks 2020-05-07 13:30:50 +10:00
Andrew Nicols c65e8a5900 Merge branch 'MDL-68556-37-pluginscheckcss' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-05-07 09:17:03 +08:00
Paul Holden 796a7ea458 MDL-68410 mod_scorm: safer status operator comparison. 2020-05-07 09:03:24 +08:00
Ferran Recio 3c5d8d6602 MDL-68430 filter_mathjaxloader: update default CDN to 2.7.8 2020-05-06 11:13:42 +02:00
Jun Pataleta 2ad366c869 Merge branch 'MDL-68402_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-05-06 17:04:44 +08:00
Tim Hunt 55ba3eece2 MDL-68402 accesslib: fix coding style of loops 2020-05-06 09:58:54 +01:00
Tim Hunt fb990d26d4 MDL-68402 accesslib: Modernise coding style in the functions changed 2020-05-06 09:58:54 +01:00
Tim Hunt 96dbdc2ad9 MDL-68402 accesslib: fix get_with_capability_join logic
In fact, rather than fix the old logic, I noticed that the correct
logic was already implemented in get_users_by_capability. So, I
refactored to extract the working version into a function, which it
turns out can have exactly the same API as get_with_capability_join,
which was convenient.
2020-05-06 09:58:53 +01:00
Jake Dallimore d976ae38f5 Merge branch 'MDL-68293-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2020-05-06 12:54:08 +08:00
Jun Pataleta 675c0451f9 Merge branch 'MDL-68301-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-05-06 10:33:01 +08:00
Andrew Nicols f5e8e0b08a Merge branch 'MDL-63609-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-05-06 08:52:19 +08:00
AMOS bot c9da87aa50 Automatically generated installer lang files 2020-05-06 00:13:21 +00:00
Eloy Lafuente (stronk7) c070acd2eb weekly release 3.7.5+ 2020-05-05 19:05:35 +02:00
Eloy Lafuente (stronk7) 647aa0625f Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-05 19:05:33 +02:00
Bas Brands a4e65c3276 MDL-68266 core_message: disable custom switches for behat testing 2020-05-05 14:23:53 +02:00
Jun Pataleta 225e176962 Merge branch 'MDL-68266-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-05-05 09:26:18 +08:00
Bas Brands 75b5301c9a MDL-68266 theme_boost: behat enable custom switches 2020-05-05 09:12:50 +08:00
AMOS bot 6d780ff6d5 Automatically generated installer lang files 2020-05-05 00:11:41 +00:00
Eloy Lafuente (stronk7) 5ed7751049 Merge branch 'MDL-52904-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-05-04 22:32:25 +02:00
Martin Gauk 8d21ca65d4 MDL-51694 core_grades: use transactions when deleting 2020-05-04 12:47:39 +00:00
Jun Pataleta 20644f8c6a Merge branch 'MDL-68266-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-05-04 17:24:43 +08:00
Bas Brands 22c36cd1b6 MDL-68266 core_course: accessibility improvements for course management
- added commit of Moodle 3.7 hardcoding the highlight border width
that was not calculated because of a scssphp bug
2020-05-04 10:57:57 +02:00
Sara Arjona 014fd48298 Merge branch 'MDL-68315-MOODLE_37_STABLE' of https://github.com/kabalin/moodle into MOODLE_37_STABLE 2020-05-04 10:37:36 +02:00
Andrew Nicols 6006347f62 Merge branch 'MDL-68266-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-05-04 15:33:49 +08:00
Bas Brands fc1d54365e MDL-68266 core_course: accessibility improvements for course managent
colour contrast improvements
use custom checkboxes
use accessible colour for text-muted
2020-05-04 09:12:22 +02:00
David Saylor 41536c1586 MDL-52904 completion: reference context in cron query
Co-authored-by: Barbara Lawrence <blawrence@harlow-college.ac.uk>
2020-05-04 09:58:16 +08:00
Jun Pataleta 5b52f17db3 MDL-52904 completion: Unit tests for daily completion task 2020-05-04 09:58:16 +08:00
Andrew Nicols a44b5cbd84 Merge branch 'MDL-68509-37' of https://github.com/Dagefoerde/moodle into MOODLE_37_STABLE 2020-05-03 19:56:25 +08:00
Eloy Lafuente (stronk7) 3eca8fedf0 weekly release 3.7.5+ 2020-05-02 16:36:34 +02:00
Eloy Lafuente (stronk7) 6136ba0221 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-05-02 16:36:32 +02:00
Andrew Nicols 9a6874fee7 Merge branch 'MDL-68492-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2020-05-01 12:08:02 +08:00
Andrew Nicols d5483a9d21 Merge branch 'MOODLE_37_MDL-67540' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-05-01 11:21:39 +08:00
Andrew Nicols e4079005ef Merge branch 'MDL-57680_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-05-01 11:07:39 +08:00
Eloy Lafuente (stronk7) 9c077351e5 Merge branch 'MDL-68427-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-04-30 23:35:42 +02:00
Jun Pataleta abe082493e Merge branch 'MDL-68404-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-04-30 13:32:43 +08:00
Jun Pataleta 5ea56fd371 Merge branch 'MDL-68309-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2020-04-30 09:56:30 +08:00
AMOS bot 2cd1ef8c97 Automatically generated installer lang files 2020-04-30 00:12:04 +00:00
Eloy Lafuente (stronk7) 35cf368176 Merge branch 'MDL-68434-37-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-04-29 22:53:01 +02:00
David Mudrák ed3a03b439 MDL-68434 lang: Use the updated terminology in the tests 2020-04-29 17:48:28 +02:00
David Mudrák 0b7412e092 MDL-68556 admin: Fix some minor styling issues on the plugins check page
The patch fixes missing space around elements and some other minor
visual issues detected. This was a good opportunity to get rid of custom
CSS rules and use the native bootstrap classes and utilities.
2020-04-29 14:53:15 +02:00
Helen Foster 3f19c3cfb4 MDL-68434 lang: Import fixed English strings (en_fix)
Significant string changes:

* pluginnamesummary,qtype_ddimageortext and
  pluginnamesummary,qtype_ddmarker - Note about the question type not
  being accessible to visually impaired users
2020-04-28 15:52:21 +02:00
Andrew Nicols 2c2232ce23 Merge branch 'MDL66035' of https://github.com/jwalits/moodle into MOODLE_37_STABLE 2020-04-28 20:04:56 +08:00
Luca Bösch 1bd4817843 MDL-68404 gradingform_rubric: Style "Add level" button. 2020-04-28 14:01:45 +02:00
Andrew Nicols 5673b3b48a Merge branch 'MDL-68445_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-04-28 18:31:34 +08:00
Eloy Lafuente (stronk7) 686468bae6 weekly release 3.7.5+ 2020-04-28 11:15:24 +02:00
Eloy Lafuente (stronk7) 30d3dad3bb Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-04-28 11:15:22 +02:00
Andrew Nicols 4fa12efce0 Merge branch 'MDL-68525-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-04-28 10:23:51 +02:00
Eloy Lafuente (stronk7) 38f595a0df MDL-68525 behat: chrome/switches caps not allowed in Chrome > 81
Now we need to use extra_capabilities/chromeOptions/args instead

The former was deprecated long ago, it seems that Chrome 81 has
stopped accepting it. The later seems to be working at very least
since Chrome 76 (haven't gone further back).
2020-04-28 12:32:18 +08:00
Eloy Lafuente (stronk7) cdaae17f19 Merge branch 'MDL-68393-37-availableupdateui' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-04-27 18:09:59 +02:00
Eloy Lafuente (stronk7) 6a0f3a8736 Merge branch 'MDL-65967-37' of https://github.com/danielneis/moodle into MOODLE_37_STABLE 2020-04-27 17:31:38 +02:00
AMOS bot 201946c82c Automatically generated installer lang files 2020-04-27 00:11:37 +00:00
Jwalit Shah 9950de034a MDL-66035 message: Restore missing message preferences files 2020-04-27 09:49:06 +10:00
Tim Hunt e43a539e10 MDL-57680 form autocomplete: extend Behat tests 2020-04-26 15:12:12 +01:00
Tim Hunt 80474ee9e8 MDL-57680 form autocomplete: fix triggering change event 2020-04-26 14:33:55 +01:00
Tim Hunt cce1fe41a6 MDL-57680 form autocomplete: let singleselects be cleared.
This was already working after ajax had refreshed the choices, it was just
broken on first page load.
2020-04-26 14:30:19 +01:00
Mikhail Golenkov ae0d7f7089 MDL-67540 quiz: Start transaction before selecting existing slots.
Co-authored-by: Conn <conn@cmrwarwicker.com>
2020-04-26 10:56:03 +10:00
Thiagolivramento 77d5634729 MDL-65967 tool_recyclebin: add recycle bin link to category edit menu 2020-04-24 17:09:12 -03:00
Eloy Lafuente (stronk7) f2d2912241 MDL-68445 behat: Bump to 3.6.x
composer.lock generated with PHP 7.1, following:

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

Also, ensure Symfony/Process > 4.0 compatibility
(needed for parallel runs)
2020-04-24 15:57:17 +02:00
sam marshall 28de453200 MDL-68492 Behat: Use faster direct link steps in lib/tests/behat 2020-04-24 12:07:15 +01:00
sam marshall d571624920 MDL-68492 Behat: Direct URL links for courses, activities 2020-04-24 12:07:15 +01:00
Shamim Rezaie 12659cd7f1 MDL-68509 core_ddl: Keep databasemeta cache after dropping temptables
Backport of MDL-58584 (934c2ee + 94e2509)
2020-04-24 11:06:37 +02:00
Jun Pataleta 84e737e3dd weekly release 3.7.5+ 2020-04-24 09:41:07 +08:00
Jun Pataleta 64f54e0dc4 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-04-24 09:41:05 +08:00
Mark Johnson e6568e5a31 MDL-68503 user profile: Make sortorders relative to existing records 2020-04-23 15:57:21 +01:00
Eloy Lafuente (stronk7) 06188c7eb6 Merge branch 'MDL-67886_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-04-23 16:06:35 +02:00
Eloy Lafuente (stronk7) c40fde2eae MDL-67886 phpunit: Make tests cross-db
The suggested SQL in some of the assertions was not cross-db
but db-dependent. Now we just keep that part out from the
assertions, because it's not important to verify the
errors that are being asserted.
2020-04-23 12:35:30 +02:00
AMOS bot 22ec8c83b5 Automatically generated installer lang files 2020-04-23 00:14:44 +00:00
Eloy Lafuente (stronk7) b2507972df Merge branch 'MDL-67886_37' of git://github.com/mdjnelson/moodle into MOODLE_37_STABLE 2020-04-23 01:37:35 +02:00
Mark Nelson f524ec2aaa MDL-67886 core: check_database_schema() checks for missing indexes 2020-04-22 23:20:18 +02:00
Jun Pataleta 050cede6d8 Merge branch 'MDL-68392_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-04-22 11:09:20 +08:00
Paul Holden ac1fc5575a MDL-63609 media_videojs: support Youtube URL start time. 2020-04-21 14:45:37 +01:00
Paul Holden 536c771a3f MDL-66917 admin: validate uploaded plugin version.
Prevent overwriting current plugins with older versions of themselves.
2020-04-21 14:36:26 +01:00
Jun Pataleta 3870922e61 Merge branch 'MDL-68339_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-04-20 21:52:40 +08:00
AMOS bot 9673018068 Automatically generated installer lang files 2020-04-19 00:13:25 +00:00
Brendan Heywood f98f08c00a MDL-68443 xmldb: Improve path validation on view_xml action 2020-04-18 20:51:56 +10:00
Eloy Lafuente (stronk7) 22120a505a MDL-68339 message: move array_key_exists() to property_exists()
Towards PHP 7.4 compliance:

array_key_exists(): Using array_key_exists() on objects is
deprecated. Use isset() or property_exists() instead
2020-04-16 20:28:37 +02:00
Eloy Lafuente (stronk7) 5466990ffc weekly release 3.7.5+ 2020-04-16 19:34:19 +02:00
Eloy Lafuente (stronk7) ae77ba7af5 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-04-16 19:34:13 +02:00
Juan Leyva 3291f83c81 MDL-68293 mobile: Update language strings to mention new app plans
We need to update different language strings to let our site admins know about the new app restrictions
(for both features and user devices able to receive notifications)
2020-04-16 12:54:11 +02:00
Andrew Nicols 5963365517 MDL-68427 core: Correct previous/next page in paging bar 2020-04-16 14:41:59 +08:00
Adrian Greeve 3f7b3abaa9 Merge branch 'MDL-68196-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-04-16 10:58:06 +08:00
Shamim Rezaie a1d6d0ceb2 MDL-68196 core: not expand autocomplete elements too soon on IE 2020-04-16 12:23:49 +10:00
Eloy Lafuente (stronk7) 78f3ac2a67 Merge branch 'MDL-66849-M37' of https://github.com/ised-isde-canada/moodle into MOODLE_37_STABLE 2020-04-16 01:03:02 +02:00
Eloy Lafuente (stronk7) 9ff01f7cb5 Merge branch 'MDL-68323-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2020-04-16 00:54:07 +02:00
Eloy Lafuente (stronk7) a4c62ac8c1 Merge branch 'MDL-68279-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-04-16 00:33:32 +02:00
Eloy Lafuente (stronk7) fa07a148ef Merge branch 'MDL-68189-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2020-04-16 00:19:04 +02:00
Eloy Lafuente (stronk7) 4c94e4947a Merge branch 'MDL-68280-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-04-16 00:10:56 +02:00
Sara Arjona 8484ab9ec9 Merge branch 'MDL-67751-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-04-15 17:57:23 +02:00
Jun Pataleta 56e572a73e Merge branch 'MDL-66200-MOODLE_37_STABLE_gradebook_csv_import' of https://github.com/jwalits/moodle into MOODLE_37_STABLE 2020-04-15 23:18:09 +08:00
Paul Holden 94de68f9b8 MDL-67751 course: include inline folders in list of resources. 2020-04-15 13:59:36 +01:00
Eloy Lafuente (stronk7) 89d61861a6 Merge branch 'MDL-67499-37' of git://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-04-15 12:49:57 +02:00
Bas Brands f8f1a2dd86 MDL-68301 theme_boost: move course format css
this reduces duplication of css in format_topic
and format_weeks
2020-04-15 09:53:14 +02:00
Michael Milette 8039c06800 MDL-66849 output: Remove custom menu title when not specified 2020-04-14 22:20:48 -04:00
Jun Pataleta b59c6dbd51 Merge branch 'MDL-68405-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-04-14 16:08:58 +08:00
Andrew Nicols 7ab1221629 MDL-68405 js: Ensure correct exit code for gherkinlint 2020-04-14 15:09:48 +08:00
AMOS bot 9818289b15 Automatically generated installer lang files 2020-04-11 00:12:01 +00:00
AMOS bot 274e050ab4 Automatically generated installer lang files 2020-04-11 00:12:01 +00:00
David Mudrák f9aa942b2c MDL-68393 admin: Fix some minor styling issues on the notifications page
The patch makes the available update information elements more
distinguishable, the Download button more prominent, and the Check for
available update button better aligned. It reduces the space between
multiple available Moodle updates, too.
2020-04-10 14:41:36 +02:00
Eloy Lafuente (stronk7) d4b9e6613f Merge branch 'MDL-67919-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2020-04-10 11:58:49 +02:00
Eloy Lafuente (stronk7) 7098d7cb9f Merge branch 'MDL-67910-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2020-04-10 11:46:18 +02:00
Luca Bösch 945469f0e1 MDL-68392 travis: Fix validation warnings and infos
Can verify that this file passes the validation @
https://config.travis-ci.com/explore
2020-04-10 00:14:47 +02:00
Jwalit Shah 0470c9cc4e MDL-66200 gradebook: check selected feedback option when importing data 2020-04-09 10:59:46 +10:00
Sara Arjona 1ea8b348dd weekly release 3.7.5+ 2020-04-08 16:24:43 +02:00
Sara Arjona a65a5570a3 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-04-08 16:24:40 +02:00
Andrew Nicols da15ac0233 Merge branch 'MDL-68148-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-04-08 11:24:29 +08:00
Shamim Rezaie 07091e866d MDL-68148 user: remove the noscript tag
The submit button remains deactive if js is disabled. So having a
noscript tag to output a submit button here does not make sense.
2020-04-08 11:55:11 +10:00
Shamim Rezaie 37d34c2aa4 MDL-68148 user: fixed stray end tag (input) 2020-04-08 11:44:46 +10:00
Shamim Rezaie 4934b00dca MDL-68148 core_user: avoid multiple enrol buttons with the same id 2020-04-08 11:44:45 +10:00
Shamim Rezaie 0f4e00f527 MDL-68148 core_user: set the fullname column as the header column
ref: https://www.w3.org/WAI/tutorials/tables/
2020-04-08 11:44:45 +10:00
Shamim Rezaie d8ba1a5db5 MDL-68148 output: type attribute is unnecessary for javascript resources 2020-04-08 11:44:44 +10:00
Shamim Rezaie 1a5c2aea69 MDL-68148 core: remove cellspacing
The cellspacing attribute of <table> is not supported in HTML5.
So the removed line did not have any effect since ages ago.
2020-04-08 11:44:43 +10:00
AMOS bot e2df259a6a Automatically generated installer lang files 2020-04-08 00:11:20 +00:00
AMOS bot c7c4882929 Automatically generated installer lang files 2020-04-08 00:11:19 +00:00
Sara Arjona bd3600a28e Merge branch 'MDL-40081-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-04-07 15:10:25 +02:00
Sara Arjona 88955a1984 Merge branch 'MOODLE_37_MDL-68223' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-04-07 13:43:17 +02:00
Sara Arjona 795069eb94 Merge branch 'MOODLE_37_MDL-65700' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-04-07 13:34:35 +02:00
Mikhail Golenkov e061d00010 MDL-65700 javascript: Add MDN and URL polyfills. 2020-04-07 20:57:46 +10:00
Sara Arjona b6e8c88f0b Merge branch 'MDL-65539-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2020-04-06 16:42:24 +02:00
Paul Holden c96e66a40a MDL-40081 completion: clean up criteria records for deleted courses. 2020-04-06 12:22:03 +01:00
Paul Holden 23e71ce7a5 MDL-67499 restore: account for deleted user truncated email/username. 2020-04-06 12:10:00 +01:00
Eloy Lafuente (stronk7) a7c8680ec3 MDL-67499 restore: add 100% cov. to restore_dbops::precheck_user()
Supports multiple mails to be tested.

So we can perform changes to it and also some related stuff,
like delete_user() with confidence.
2020-04-06 11:48:44 +01:00
Paul Holden 2c6df5b7f0 MDL-67499 user: truncate long username/email during user deletion. 2020-04-06 11:48:44 +01:00
Paul Holden 316575d3b3 MDL-68280 user: fix PHP notice for unknown user invalid login token. 2020-04-06 11:46:26 +01:00
Paul Holden 9a856f83fe MDL-68279 admin: filter site fullname when sending test email. 2020-04-06 11:41:34 +01:00
Sara Arjona c7c98440cf Merge branch 'MDL-68239-37' of https://github.com/NinaHerrmann/moodle into MOODLE_37_STABLE 2020-04-06 10:19:32 +02:00
Jake Dallimore 1674e5f87c MDL-68309 overrides: clarify inactive overrides help string 2020-04-06 07:41:36 +08:00
Sara Arjona 98af061024 MDL-67919 dataprivacy: Fix behat error when contacting DPO 2020-04-03 19:49:00 +02:00
Ruslan Kabalin b71d42cfb4 MDL-68315 formslib: Fix completion attribute in course form element.
This fixes 'onlywithcompletion' attribute in course form element.
2020-04-03 16:12:44 +01:00
n_herr03 337d0eb9e8 MDL-68239 mod_data: make required icon in multimenu visible 2020-04-03 12:20:24 +02:00
Neill Magill 316d6c9de5 MDL-65539 dragdrop: Ignore drag proxy in keyboard menu
Before this change the node that is displayed during a the last mouse
drag and drop would be listed in a keyboard drag and drop if it was
the container node of one of the types of node being moved in this action.

If a node is inside a node with the .yui3-dd-proxy class then it is
one of the proxy elements used to display the dragged content during
mouse drag and drop so we will start ignoring it.
2020-04-03 08:39:31 +01:00
Neill Magill 3e32822706 MDL-65539 dragdrop: Allow sections and blocks to move to the top
Before this change sections and blocks could not be moved to be the
top item when using keyboard drag and drop.

They can now be moved to the top in one action.

The way they move using keyboard drag and drop has changed when they
are below the item they are dropped on, not instead of appearing
below it they will be placed above it.
2020-04-03 08:39:31 +01:00
Neill Magill 8314f2e9a2 MDL-65539 dragdrop: Allow direction detection when using keyboard
Before this change keyboard drag and drop could not detect the
direction of movement, this meant that an item would only be placed
below an item or at the top of a container item.

This change means that extending modules can declare
detectkeyboarddirection to true. This will mean that when an item is
moved it's position will be determined by the direction of travel as
it would be when dragging using the mouse.

If detectkeyboarddirection is true then:

* If you move an item upwards it will be placed before the item
  selected in the drop menu
* If you move a item downwards it will be placed after the item
  selected in the drop menu
* The item above the one being dragged will now be displayed on
  the drop menu

If detectkeyboarddirection is false there will be no change in
behaviour.
2020-04-03 08:39:31 +01:00
Neill Magill ffe5f336d3 MDL-65539 course: Keyboad drag and drop should not break page
Before this change keyboard drag and drop of sections would alter
the structure of the page.

This occured because in this case the dragnode was the original node
2020-04-03 08:39:30 +01:00
Neill Magill 1c45c9200a MDL-65539 formats: Section labels not updated during move
Before this change when moving a section via drag and drop the
aria-label for the section was not being updated neither was the
title on the drag handle.

The result was the the drop menu on keyboard drag and drop displayed
the wrong information after a section was moved.
2020-04-03 08:39:30 +01:00
Neill Magill 6c8328eb4e MDL-68189 course: Section name change should display in DD menu
Before this patch if a section was renamed inline the old name was
still displayed in the keyboard drag and drop menu until the page
was refreshed.

This change ensures that the two places that section names were not
updated in get changed after an inline update to the name.
2020-04-03 08:38:51 +01:00
Sara Arjona 08a62243c5 weekly release 3.7.5+ 2020-04-02 16:51:11 +02:00
Sara Arjona 4feb95d263 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-04-02 16:51:09 +02:00
Marina Glancy e3e5bdfbe4 MDL-68323 core: add --max-lint-warnings option to grunt 2020-04-02 13:56:25 +02:00
Luca Bösch c074850dc4 MDL-67672 user: Display name in user menu as elsewhere. 2020-04-02 00:17:57 +02:00
Eloy Lafuente (stronk7) 5bfbbb34be Merge branch 'MDL-68265-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-04-01 23:29:31 +02:00
Eloy Lafuente (stronk7) da231a51e0 Merge branch 'MDL-68193_37' of git://github.com/mdjnelson/moodle into MOODLE_37_STABLE 2020-04-01 23:22:43 +02:00
Mark Nelson 47fe981b8e MDL-68193 core: added new database_text_field_content_replaced event 2020-04-01 20:44:33 +02:00
Eloy Lafuente (stronk7) a4087a6cab Merge branch 'MDL-67995-37' of git://github.com/cescobedo/moodle into MOODLE_37_STABLE 2020-04-01 19:11:58 +02:00
Jake Dallimore 965a8fdfc4 Merge branch 'MDL-67672-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-04-01 16:43:52 +08:00
Sara Arjona ac3c2ec5ba Merge branch 'MDL-68281_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-04-01 09:25:38 +02:00
Sara Arjona 68a72085f2 Merge branch 'MDL-68277_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-04-01 09:14:57 +02:00
Luca Bösch 1131d828f2 MDL-67672 user: Display name in user menu as elsewhere. 2020-04-01 09:03:30 +02:00
Sara Arjona a7b6456475 Merge branch 'MDL-58964-37' of git://github.com/abias/moodle into MOODLE_37_STABLE 2020-03-31 19:14:05 +02:00
Eloy Lafuente (stronk7) b9a527603d Merge branch 'MDL-64494-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-03-31 18:59:40 +02:00
Bas Brands 1e66dd6de0 MDL-64494 theme_boost: accessible theme colours 2020-03-31 18:55:08 +02:00
Sara Arjona 74b8e6a751 Merge branch 'MDL-66245-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-03-31 15:09:22 +02:00
Sara Arjona c137a7d306 MDL-67910 behat: PendingJS improvements for deleteevent modal 2020-03-31 08:43:20 +02:00
Jake Dallimore 7051341ba6 Merge branch 'MDL-68144-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-03-31 13:59:59 +08:00
Luca Bösch 1db8e1bab4 MDL-68144 mod_folder: make top margins less dominant for folder content 2020-03-31 07:39:17 +02:00
Eloy Lafuente (stronk7) 1da6538756 Merge branch 'MDL-68269-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-30 22:54:26 +02:00
Eloy Lafuente (stronk7) 5d580ac95c Merge branch 'MDL-68049-37' of https://github.com/spvickers/moodle into MOODLE_37_STABLE 2020-03-30 16:24:15 +02:00
Andrew Nicols f76355db90 Merge branch 'MDL-52319-37-environmentxml' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-03-30 16:55:01 +08:00
Shamim Rezaie 1cdf348ac5 MDL-68269 form: fieldset in group elements should be full width 2020-03-30 18:34:35 +11:00
cescobedo 91e4d8f3d8 MDL-67995 format_singleactivity: Fix dropwdown type of activity 2020-03-30 08:27:10 +02:00
Mikhail Golenkov f8c7167b5d MDL-68223 assign: Fix selection of comment text. 2020-03-30 15:00:36 +11:00
Andrew Nicols 94ec80ae18 MDL-68265 core_question: Switch question import to request dir 2020-03-30 08:14:46 +08:00
Andrew Nicols 6e1a330c81 MDL-68265 mod_lesson: Switch question import to request dir 2020-03-30 08:14:46 +08:00
AMOS bot 752bd12fd4 Automatically generated installer lang files 2020-03-29 00:11:53 +00:00
Eloy Lafuente (stronk7) 6d7e1cfecb MDL-68281 unit test: Include required class
Also, add missing line break, that I did not see 1 week ago.
2020-03-28 16:27:48 +01:00
AMOS bot daa86448e9 Automatically generated installer lang files 2020-03-28 00:11:46 +00:00
Tim Hunt 6536a3ff9b MDL-68277 qtype_essay: answer area in reviews should be right size
The answer box size is set by teachers and provides a useful
visual cue how long a response was expected. Therefore, it is
useful to keep the space at least that size in quiz reviews, etc.
2020-03-27 14:11:45 +00:00
Jake Dallimore 604b2a3b58 weekly release 3.7.5+ 2020-03-27 09:18:33 +08:00
Jake Dallimore 4e3837eda1 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-03-27 09:18:32 +08:00
Eloy Lafuente (stronk7) 3b7037656e Merge branch 'MDL-64429-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-03-26 18:38:57 +01:00
Paul Holden fb6cdb3a9f MDL-64429 tool_usertours: upgrade step to fix existing tours sortorder. 2020-03-26 16:48:51 +00:00
Eloy Lafuente (stronk7) 3e718aff10 Merge branch 'MDL-68183-37-mysqlpwdresetsql' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-03-26 01:18:34 +01:00
Eloy Lafuente (stronk7) 95fce73f16 Merge branch 'MDL-63865-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-03-26 00:32:15 +01:00
Eloy Lafuente (stronk7) 07dbce000c Merge branch 'MDL-67442_37' of https://github.com/jonof/moodle into MOODLE_37_STABLE 2020-03-26 00:08:10 +01:00
Jun Pataleta 9b82b174d0 Merge branch 'MDL-68149_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-03-26 00:09:28 +08:00
Jun Pataleta 5d117508d8 Merge branch 'MDL-67024-37' of git://github.com/farhan6318/moodle into MOODLE_37_STABLE 2020-03-25 08:34:12 +08:00
Eloy Lafuente (stronk7) 02d491fe99 Merge branch 'MDL-67731-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-03-25 00:06:22 +01:00
Jake Dallimore 72c744dd22 Merge branch 'MDL-68135-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-24 12:11:13 +08:00
AMOS bot 58fe4d2cbd Automatically generated installer lang files 2020-03-24 00:11:12 +00:00
Alexander Bias 49361f9a24 MDL-58964 navigation: Reindex array when element is removed 2020-03-23 21:37:00 +01:00
David Mudrák 129c9d4093 MDL-52319 upgrade: Better report the environment checks in CLI scripts
Before we did not display the source of the environment check failure
(whether it was a core check or a plugin) and there was a missing space
before the "Error" status.
2020-03-23 11:27:38 +01:00
Tim Hunt 8475b74d0c MDL-52319 install: Fix some coding style issues 2020-03-23 11:27:38 +01:00
Tim Hunt f246d30831 MDL-52319 upgrade: Also run environment checks if plugins need upgrades
Also perform the environment checks if a plugin triggers the upgrade.
Core upgrade and CLI upgrade was doing this already.
2020-03-23 11:27:38 +01:00
AMOS bot 50f32f791b Automatically generated installer lang files 2020-03-23 00:12:19 +00:00
Paul Holden 88779cc689 MDL-64429 tool_usertours: ensure tour sortorder can't move out of range. 2020-03-22 20:04:08 +00:00
Paul Holden f8f3286267 MDL-63865 tool_dataprivacy: unit test for plugin privacy provider. 2020-03-22 20:00:00 +00:00
Paul Holden b167974308 MDL-67731 backup: fix async restores in progress table listing. 2020-03-22 19:57:46 +00:00
Farhan Karmali 20ecbc885f MDL-67024 Lib: Check if user->mnethostid is set before using it 2020-03-20 11:59:29 +05:30
Adrian Greeve 4980533b75 weekly release 3.7.5+ 2020-03-20 13:35:46 +08:00
Alexander Bias b6d5a6c619 MDL-58964 navigation: Add class attributes to Boost flat navigation 2020-03-19 20:49:45 +01:00
Stephen Vickers 50e3ae359b MDL-68049 mod_lti: Fix link-level memberships service
Fix cause of 404 error
Ensure personal name and email fields are included
Add ext_user_username field when being passed in LTI messages
2020-03-19 11:26:06 +00:00
Adrian Greeve cf65056e46 Merge branch 'MDL-68081-MOODLE_37_STABLE' of https://github.com/kritisingh1/moodle into MOODLE_37_STABLE 2020-03-19 11:29:03 +08:00
Adrian Greeve 6c47187329 Merge branch 'MDL-68014-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2020-03-19 11:06:09 +08:00
Jun Pataleta a471a106c4 Merge branch 'MDL-68108-37' of git://github.com/crazyserver/moodle into MOODLE_37_STABLE 2020-03-18 22:59:34 +08:00
Pau Ferrer Ocaña 5ce5abcd67 MDL-68108 formslib: Add element password inline template 2020-03-18 08:46:04 +01:00
Adrian Greeve 73aac2ea23 Merge branch 'MDL-67901-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-03-18 10:01:16 +08:00
David Mudrák e8ae8a8a76 MDL-68183 auth: Fix the performance of get_complete_user_data search
When searching for the user by a case-insensitive field (email address
is the only one supported now), the performance may be very poor as the
DB cannot use the index due to the LOWER() operation and the full
sequential scan of all the user records is performed. On some DBs such
as MySQL, this can be significantly improved by pre-filtering the users
with accent-insensitive search.

So we first perform accent-insensitive search for potential candidates
in a subselect, which can use the index. Only then we perform the
additional accent-sensitive search on this limited set or records.
2020-03-17 14:52:25 +01:00
David Mudrák 39901e1577 MDL-68183 auth: Fix the performance of signup_validate_data search query
When searching for other users with the same email address, we perform
the case-insensitive and accent-sensitive search. That may be expensive
as some DBs such as MySQL cannot use the index in that case. Instead,
sequential scan of all the user records is performed and the comparison
uses the LOWER function to filter the matching records. This leads to
significant performance heavy queries which in turn represent a surface
for DoS attacks.

For that reason, we first perform accent-insensitive search for
potential candidates in a subselect, which can use the index. Only then
we perform the additional accent-sensitive search on this limited set or
records.
2020-03-17 14:52:25 +01:00
David Mudrák 7a87e8a911 MDL-68183 auth: Fix the performance of forgotten password user search
When searching for the user matching the given email address, we perform
the case-insensitive and accent-sensitive search. That may be expensive
as some DBs such as MySQL cannot use the index in that case. Instead,
sequential scan of all the user records is performed and the comparison
uses the LOWER function to filter the matching records. This leads to
significant performance heavy queries which in turn represent a surface
for DoS attacks.

For that reason, we first perform accent-insensitive search for
potential candidates, which can use the index. Only then we perform the
additional accent-sensitive search on this limited set or records.
2020-03-17 14:52:24 +01:00
Adrian Greeve 5fd324e17e Merge branch 'MDL-67970-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-17 15:26:10 +08:00
Shamim Rezaie 50889d5519 MDL-67970 output: use fieldset in core/chooser instead of label 2020-03-17 18:20:43 +11:00
Shamim Rezaie 1cc8177b73 MDL-67970 core: remove unnecessary roles
- The navigation role is unnecessary for element nav
- The textbox role is unnecessary for element textarea
2020-03-17 18:20:43 +11:00
Shamim Rezaie 8b33494324 MDL-67970 output: replace new-sections attribute with data-new-sections
new-sections is not a valid attribute name for the a element.
Replaced that with data-new-sections
2020-03-17 18:20:43 +11:00
Shamim Rezaie 8e2494b4b2 MDL-67970 output: fixed duplicate id attribute
action_menu::export_for_template generates the id attributes and send it
to core/action_menu_trigger template as part of the attributes variable.
2020-03-17 18:20:43 +11:00
Shamim Rezaie 941a4c10cd MDL-67970 search: fixed stray end tag (input) 2020-03-17 18:20:43 +11:00
Adrian Greeve 853fc48867 Merge branch 'MDL-67981_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-03-17 11:33:40 +08:00
Jonathon Fowler 4ca4651f20 MDL-67442 assign: expand/contract text works in all browsers now 2020-03-16 08:59:49 +10:00
kritisingh1 36223fbee8 MDL-68081 Groups: Fixes string error in member removal function 2020-03-14 23:19:53 +05:30
Victor Deniz Falcon 9d08ae36e9 weekly release 3.7.5+ 2020-03-12 14:22:14 +00:00
Victor Deniz Falcon ed34ac0a7c Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-03-12 14:22:09 +00:00
Eloy Lafuente (stronk7) ea02bf99d7 Merge branch 'MDL-66607-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-03-12 10:10:58 +01:00
Eloy Lafuente (stronk7) 52491c6cc7 Merge branch 'MDL-68125-regression-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2020-03-12 01:19:51 +01:00
Brendan Heywood 5c39f8969d MDL-68125 core: Fixed $CFG->reverseproxyignore install regression 2020-03-12 09:54:35 +11:00
Eloy Lafuente (stronk7) c86fa207a2 Merge branch 'MDL-68061-37' of git://github.com/mickhawkins/moodle into MOODLE_37_STABLE 2020-03-11 22:56:39 +01:00
Tim Hunt 631b1f77f0 MDL-68149 qtype_match: correctly distinguish 0 and 0.0 answers
Also added a test for backup & restore (which was working).
2020-03-11 13:45:15 +00:00
Tim Hunt ec67d8b676 MDL-68149 qtype_match: Updatey tests to follow make_question() pattern 2020-03-11 13:45:13 +00:00
Andrew Nicols 9ceb49dca0 MDL-66607 message: Add pendingJS checks 2020-03-11 20:46:00 +08:00
Andrew Nicols 147087cdd2 MDL-66607 message: Resolve race conditions in message deletion process
This commit makes several changes:
1) Explicitly stop polling for messages when a conversation is deleted;
2) Check for deleted conversations when displaying new messages;
3) Do not add a new empty conversation; and
4) Introduce pendingJS checks to ensure that Behat waits for messags to finish rendering.
2020-03-11 20:43:25 +08:00
Andrew Nicols 9800e5ca6f Merge branch 'MDL-68146_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-03-11 11:52:26 +08:00
Eloy Lafuente (stronk7) ab0f20b63b MDL-68146 forms: remove duped help and advanced icons in checkboxes
They are exceptionally shown later, after the checkbox text already.

This is a fix for the regression introduced by MDL-63424.
2020-03-10 23:04:50 +01:00
Eloy Lafuente (stronk7) 739a18df53 Merge branch 'MDL-65724-37-3' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2020-03-10 13:51:36 +01:00
Eloy Lafuente (stronk7) bb66bd562f Merge branch 'MDL-67189-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-03-10 11:30:49 +01:00
Shamim Rezaie 3aba5ed0ce MDL-68135 output: remove the presentation role from user pic
"presentation" is not a valid role for the img element.
Moreover, it doesn't make sense to have both role="presentation" and
aria-hidden="true" for an element at the same time.
For more info please see:
https://timwright.org/blog/2016/11/19/difference-rolepresentation-aria-hiddentrue/
2020-03-10 19:06:18 +11:00
Dani Palou 3ec126df58 MDL-67189 external: Add test to catch PHP exceptions 2020-03-10 08:32:24 +01:00
Dani Palou 59964c5c95 MDL-67189 external: Catch Throwable in call_external_function 2020-03-10 08:32:24 +01:00
Eloy Lafuente (stronk7) 61e4180191 Merge branch 'MDL-67827-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-03-09 20:36:29 +01:00
Sara Arjona 23739a476a Merge branch 'MDL-66671-m37-master' of https://github.com/dthies/moodle into MOODLE_37_STABLE 2020-03-09 18:49:25 +01:00
Sara Arjona 8f39f26b9e Merge branch 'MDL-67968-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-09 18:17:14 +01:00
Sara Arjona 012dde7fe7 Merge branch 'MDL-67902-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-09 15:06:58 +01:00
Andrew Nicols 1d77fbd497 MDL-67827 behat: Pending JS improvements for dialogues 2020-03-09 08:31:21 +08:00
Andrew Nicols d3ce732601 MDL-67827 behat: Add missing exception use 2020-03-09 08:31:21 +08:00
AMOS bot 838193097d Automatically generated installer lang files 2020-03-09 00:12:02 +00:00
Tim Hunt 0c90bc8cd3 MDL-67981 questions: avoid errors deleting contextless questions 2020-03-06 18:05:33 +00:00
Shamim Rezaie 80011bdf57 MDL-67968 calendar: use aria-label instead of the abbr tag 2020-03-07 04:19:54 +11:00
Shamim Rezaie 17c23edcd1 MDL-67968 calendar: explain weekday abbreviations 2020-03-07 04:19:09 +11:00
Shamim Rezaie 6f0b92e97c MDL-67968 form: not to put empty label when no label is available 2020-03-07 04:19:09 +11:00
Shamim Rezaie e0f6182508 MDL-67968 question: do not display sr-only legends
.accesshide was removed because:
 1. It was only kept in case it's still used somewhere, in a custom form
 field for instance.
 2. It was broken since 3.5 where we integrated
 https://github.com/bmbrands/moodle/compare/ab65b87f3d...MDL-62419-master
 So it's been ages that the reason mentioned on point 1 was not being
 satisfied
2020-03-07 04:19:09 +11:00
Shamim Rezaie d1084b4c26 MDL-67968 form: grouped element label fix 2020-03-07 04:19:09 +11:00
Sara Arjona 805361d871 Moodle release 3.7.5 2020-03-06 12:34:06 +01:00
Peter 2e3d05e591 MDL-65724 core: Force restore to use the settings from the plan
When importing use the import settings.
2020-03-06 14:20:43 +08:00
AMOS bot 8d68b0b251 Automatically generated installer lang files 2020-03-06 00:10:59 +00:00
Peter Dias 5b8b45410c MDL-68014 lti: Remove alt text for image 2020-03-06 07:56:55 +08:00
Sara Arjona efc431ba0d weekly release 3.7.4+ 2020-03-05 17:31:24 +01:00
Sara Arjona 9df4aa7210 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-03-05 17:31:20 +01:00
Michael Hawkins 8481609ba4 MDL-67861 core: Fix getremoteaddr unit test to match new proxy setup 2020-03-05 14:39:55 +08:00
Brendan Heywood 194406e923 MDL-67861 core: Added $CFG->reverseproxyignore IP subnet list
If your server is behind multiple reverse proxies that append to the
X-Forwarded-For header then you will need to specify a comma separated
list of ip addresses or subnets of the reverse proxies to be ignored
in order to find the users correct IP address.
2020-03-05 01:27:48 +01:00
Brendan Heywood c4665bcf95 MDL-67861 libraries: Refactor is_ip_in_subnet_list in ip_utils 2020-03-05 01:27:48 +01:00
Brendan Heywood c70d7d0386 MDL-67861 admin: Default $CFG->getremoteaddrconf to only use REMOTE_ADDR 2020-03-05 01:27:48 +01:00
Brendan Heywood 4a3a673d1e MDL-67861 core: Use last ip in X-Forwarded-For list 2020-03-05 01:27:48 +01:00
Andrew Nicols 31260f8667 MDL-65106 theme_classic: Remove unused variable 2020-03-05 08:17:03 +08:00
Andrew Nicols cb3deb89c1 Merge branch 'MDL-65106-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-03-05 08:16:45 +08:00
Eloy Lafuente (stronk7) b21aad0837 Merge branch 'MDL-62768-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-03-04 18:37:28 +01:00
Bas Brands 43b11cfc9e MDL-67901 type_multichoice: clear my choice accessibility
Improve the accessibility for the clear my choice option. The
extra radio input controlling the reset feature was removed and
resetting the choice is now controlled by JavaScript.
This fixes the missing label reported in Accessibility audit and W3C
validation of the reset link

By this change this issue also fixes MDL-67280
2020-03-04 17:04:18 +01:00
Sara Arjona 8ba10c6666 Merge branch 'MDL-67767-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-03-04 15:05:07 +01:00
Dani Palou b7b45f8c0b MDL-67767 tool_mobile: Allow using more characters in forcedurlscheme 2020-03-04 14:25:25 +01:00
Sara Arjona a2ff87ba44 Merge branch 'MDL-67863-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-03-04 14:06:34 +01:00
Sara Arjona 53a3991927 Merge branch 'MDL-67969-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-03-04 12:58:27 +01:00
Marina Glancy 6b502fbc2b MDL-56287 gradereport_history: Separate groups queries improved 2020-03-04 11:47:33 +01:00
Jun Pataleta 8509f1feb4 MDL-56287 gradereport_history: Show users from groups that can be viewed 2020-03-04 11:47:33 +01:00
Eloy Lafuente (stronk7) b692832347 Merge branch 'MDL-67641-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-03-04 10:48:05 +01:00
Sara Arjona a5a6a9c91c Merge branch 'MDL-68008-37' of git://github.com/ferranrecio/moodle into MOODLE_37_STABLE 2020-03-04 08:41:43 +01:00
Dani Palou 25c09b1b1d MDL-67641 auth: Fix shortname type in get_signup_settings WS 2020-03-04 08:12:13 +01:00
AMOS bot f00ddea3fc Automatically generated installer lang files 2020-03-04 00:11:19 +00:00
Eloy Lafuente (stronk7) 4caf331102 Merge branch 'MDL-67728-37' of git://github.com/crazyserver/moodle into MOODLE_37_STABLE 2020-03-03 19:50:26 +01:00
Eloy Lafuente (stronk7) 0705bb0c07 Merge branch 'MDL-67971-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2020-03-03 19:02:38 +01:00
Sara Arjona 4748f89945 Merge branch 'MDL-67993-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2020-03-03 18:06:50 +01:00
Ferran Recio f0abaec208 MDL-68008 tool_capability: shows multiple contexts when overrides exists 2020-03-03 17:54:26 +01:00
Sara Arjona 2933c4e061 Merge branch 'MDL-68048-37-behatnotfound' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-03-03 17:02:11 +01:00
Sara Arjona b808efac50 Merge branch 'MDL-68060-37-huburlcompare' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-03-03 13:10:24 +01:00
Sara Arjona 0df30e445f Merge branch 'MDL-67891-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-03-03 12:48:35 +01:00
Bas Brands d4f03eb0b1 MDL-65106 theme_classic: set custom navigationitem icon 2020-03-03 11:53:48 +01:00
Sara Arjona 635b4db751 Merge branch 'MDL-63316-37' of https://github.com/azito122/moodle into MOODLE_37_STABLE 2020-03-03 11:11:05 +01:00
Sara Arjona 1821997b7c Merge branch 'MDL-67945-37' of git://github.com/ferranrecio/moodle into MOODLE_37_STABLE 2020-03-03 10:10:58 +01:00
Sara Arjona a97fde462d Merge branch 'MDL-67749-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-03-03 09:30:50 +01:00
Adrian Hutchinson 9bcfb74256 MDL-67988 mod_lti: remove padding from JWS base64url encoding 2020-03-02 14:01:36 +01:00
Paul Holden c0fdc91ea3 MDL-67891 tool_cohortroles: move upgrade step inside plugin.
The step added in MDL-67458 was added to core, which broke the upgrade
process if this plugin had been uninstalled prior.
2020-03-02 08:50:27 +00:00
Sara Arjona da1d1af843 MDL-67971 core_badges: review issuer URL 2020-03-02 08:02:40 +01:00
Andrew Zito 85d5216840 MDL-63316 participants: lastname sort for participants table 2020-02-28 14:33:27 -05:00
Daniel Thies 2337123e89 MDL-66671 enrol_lti: Skip grade sync when cm deleted 2020-02-28 09:29:32 -06:00
Eloy Lafuente (stronk7) 95eb7d8343 weekly release 3.7.4+ 2020-02-28 12:22:35 +01:00
Bas Brands 720a26266a MDL-67863 theme_boost: change keyboard tab order
Move navdrawer up in the dom for a more logical tab order
Hide navdrawer links for tab / screenreader when navdrawer is closed
2020-02-27 17:12:47 +01:00
Michael Hawkins 1187f828b7 MDL-68061 gradereport_history: Restrict per page config value to int 2020-02-27 15:44:49 +08:00
Eloy Lafuente (stronk7) 37906d63f9 Merge branch 'MDL-67865-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-02-26 23:37:10 +01:00
Eloy Lafuente (stronk7) 870e202546 Merge branch 'MDL-64686-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-02-26 23:27:44 +01:00
Eloy Lafuente (stronk7) 50a72fbcd6 Merge branch 'MDL-67758-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-02-26 17:36:07 +01:00
Claude Vervoort b3172cc0fd MDL-67132 mod_lti: document new param
(amended to move the upgrade.txt info to correct 3.7.5)
2020-02-26 17:29:21 +01:00
Claude Vervoort dc39cee4f9 MDL-67132 mod_lti: call grade api to trigger course total computation 2020-02-26 17:27:33 +01:00
Eloy Lafuente (stronk7) f05ff7a66d Merge branch 'MDL-67979-37-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-02-26 17:13:47 +01:00
Anthony Forth cb2a49009c MDL-67945 enrol: missing $DB in edit_instance_form 2020-02-26 16:37:14 +01:00
David Mudrák b541ee20fb MDL-68060 registration: Improve the sites directory location check
This allows to define the custom HUB_MOODLEORGHUBURL with HTTP Basic
Auth credentials so that the registration features can be tested against
our staging site.
2020-02-26 10:59:27 +01:00
Jun Pataleta c975694cf5 Merge branch 'MOODLE_37_MDL-67980' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-02-26 14:30:30 +08:00
Shamim Rezaie 8c39267d92 MDL-67969 lib: Fix duplicate blockinstanceid for fake blocks 2020-02-26 16:38:52 +11:00
Shamim Rezaie 45f1ddae59 MDL-67902 calendar: keyboard users should be able to toggle day popover 2020-02-26 16:35:59 +11:00
Shamim Rezaie a45fa24362 MDL-67902 calendar: informative aria label for event days in mini cals 2020-02-26 16:35:59 +11:00
Shamim Rezaie e127e819e6 MDL-67902 calendar: informative aria label for event days in calendar 2020-02-26 16:35:59 +11:00
Shamim Rezaie ce5337c902 MDL-67902 calendar: Fix label of the course filter in calendar 2020-02-26 16:35:59 +11:00
David Balch b74030550e MDL-67993 roles: Fix pix_icon() calls. 2020-02-26 12:15:42 +08:00
Eloy Lafuente (stronk7) 2cfcae67a0 Merge branch 'MDL-67644-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-02-26 00:10:24 +01:00
Eloy Lafuente (stronk7) dbb784d1ab Merge branch 'MDL-67806-37' of git://github.com/dpalou/moodle into MOODLE_37_STABLE 2020-02-25 23:58:17 +01:00
Paul Holden be941e5a05 MDL-62768 tool_policy: add page title & breadcrumb navigation. 2020-02-25 22:06:04 +00:00
Paul Holden 87080161e0 MDL-62768 tool_dataprivacy: add page breadcrumbs to navigation. 2020-02-25 21:36:46 +00:00
Helen Foster 62931543fb MDL-67979 lang: Import fixed English strings (en_fix)
Significant string changes:

* configcustommenuitems,core_admin - corrected example
* custommenuitems_desc,tool_mobile - fallback behaviour of custom menu
  items in the app
2020-02-25 12:24:44 +01:00
Eloy Lafuente (stronk7) 3cb6a5a3b2 Merge branch 'MDL-67862-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-02-25 12:09:58 +01:00
Eloy Lafuente (stronk7) 765aef276c Merge branch 'MDL-67364-37' of git://github.com/mickhawkins/moodle into MOODLE_37_STABLE 2020-02-25 12:05:57 +01:00
David Mudrák 2da65dae97 MDL-68048 behat: Fix the ElementNotFoundException message wording
The exception class itself adds the "not found" to the error message.
2020-02-25 11:55:59 +01:00
Mikhail Golenkov 4be6148785 MDL-67980 tasks: Sort ad-hoc tasks by nextruntime. 2020-02-24 09:36:57 +11:00
Pau Ferrer Ocaña 5e4ffd0559 MDL-67728 behat: Increase app start timeout 2020-02-21 12:45:58 +01:00
Pau Ferrer Ocaña 99d5aff09b MDL-67728 behat: Improve behat app selectors 2020-02-21 12:45:58 +01:00
Luca Bösch ae31e9dfa8 MDL-64686 theme: align course search form for small screens sizes. 2020-02-21 06:35:11 +01:00
Jun Pataleta d077ffd3a5 weekly release 3.7.4+ 2020-02-21 11:03:08 +08:00
Jun Pataleta c61f9a4484 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-02-21 11:02:29 +08:00
Eloy Lafuente (stronk7) 37ef74572d Merge branch 'MDL-67727-37' of git://github.com/crazyserver/moodle into MOODLE_37_STABLE 2020-02-20 16:13:02 +01:00
Luke Tucker d08e7b7e8a MDL-50455: tool_capability: Use static cache when loading context data 2020-02-20 00:30:16 +01:00
Eloy Lafuente (stronk7) 4441cfe9ce Merge branch 'MDL-67942-37' of https://github.com/HuongNV13/moodle into MOODLE_37_STABLE 2020-02-19 19:18:58 +01:00
Eloy Lafuente (stronk7) 9dd7ac3bc3 Merge branch 'MDL-67947_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-02-19 17:48:50 +01:00
Tim Hunt 2a912052bc MDL-67947 questions: questions_in_use should ask all components
Previously it was only checking mods.
2020-02-19 11:56:31 +00:00
Dani Palou addc07be5a MDL-67749 ws: Set private token when reset or manual create token 2020-02-19 12:05:05 +01:00
Huong Nguyen 6aaa78f044 MDL-67942 Quiz: Quiz attempt report delete_selected_attempts issue 2020-02-19 15:36:38 +07:00
Eloy Lafuente (stronk7) 6ffe3ecc9f Merge branch 'MDL-67471_37' of https://github.com/t-schroeder/moodle into MOODLE_37_STABLE 2020-02-18 23:54:55 +01:00
Eloy Lafuente (stronk7) c4b472700b Merge branch 'MDL-61390-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-02-18 19:06:39 +01:00
Eloy Lafuente (stronk7) 414a461e41 Merge branch 'MDL-67953-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-02-18 18:07:45 +01:00
Shamim Rezaie 952d572921 MDL-67865 output: Fix id of the dropdown trigger 2020-02-18 16:20:15 +11:00
Andrew Nicols fc01f863d3 MDL-67953 grunt: Spawn new process for gherkinlint
Gherkinlint stores the list of processed features for duplicate
detection in an Object which is statically defined.
This causes it to bleed between runs.

To alleviate this we must spawn a new process.

Prior to this patchset we were calling a new Gherkinlint process which
had the same effect anyway.
2020-02-18 08:24:13 +08:00
Eloy Lafuente (stronk7) 1b43f6b06d Merge branch 'MDL-61389-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-02-17 23:30:17 +01:00
Eloy Lafuente (stronk7) 86f297c7c2 Merge branch 'MDL-67817-m37-master' of https://github.com/dthies/moodle into MOODLE_37_STABLE 2020-02-17 22:09:39 +01:00
Tim Schroeder 21bac71bef MDL-67471 message: fixed mark_notification_read with messaging disabled 2020-02-17 09:16:57 +01:00
Jun Pataleta b400040cff MDL-61390 mod_forum: Create template for forum search results 2020-02-17 15:58:16 +08:00
Jun Pataleta 0846b4af08 MDL-61389 mod_forum: Descriptive aria-label for "Discuss this topic" 2020-02-17 15:52:20 +08:00
AMOS bot d927703799 Automatically generated installer lang files 2020-02-16 00:11:18 +00:00
Daniel Thies 8fedcb49a5 MDL-67817 core_date: Add test for timezone localization strings 2020-02-14 11:54:55 -06:00
Daniel Thies 0c9fe38643 MDL-67817 core_lang: Update timezone strings 2020-02-14 11:54:55 -06:00
Sara Arjona 5c7966eacf weekly release 3.7.4+ 2020-02-14 12:12:07 +01:00
Sara Arjona 0ee03dd15a Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-02-14 12:12:05 +01:00
Jun Pataleta 6dbf1dee71 Merge branch 'MDL-67965-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-02-14 13:25:01 +08:00
Andrew Nicols a884eea913 MDL-67965 behat: Get theme-specific context classes correctly 2020-02-14 10:15:49 +08:00
Michael Hawkins b41b74aacb MDL-67364 output: Add unit testing for editor_scss_to_css 2020-02-13 22:53:31 +08:00
Michael Hawkins fa0e63f9da MDL-67364 output: Allow child themes to use parent editor_scss config
This still allows child themes to override editor_scss, but will fall
back to what the parent is using if they do not specify it. This
negates the need for every child them to have the config duplicated
in order to utilise it.
2020-02-13 22:53:31 +08:00
Pau Ferrer Ocaña 306eaa606f MDL-67727 behat: Reset ionic app properly 2020-02-13 08:37:22 +01:00
Andrew Nicols 9ff79ab562 MDL-67953 grunt: Work around spawn length limits 2020-02-13 14:21:49 +08:00
Eloy Lafuente (stronk7) 4011bfc71f Merge branch 'MDL-67876_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-02-12 15:49:47 +01:00
Dani Palou dedb1592cb MDL-67644 tool_mobile: Add OAuth 2 providers in disabled features 2020-02-12 14:13:19 +01:00
Tim Hunt 603e31b820 MDL-67876 forms: not all field types need validation JS 2020-02-12 10:04:20 +00:00
Eloy Lafuente (stronk7) 3dab17b872 Merge branch 'MDL-67532-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-02-11 23:08:18 +01:00
Sara Arjona e81b6194e6 Merge branch 'MDL-59303-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-02-11 13:52:41 +01:00
Sara Arjona b54c18392f Merge branch 'MDL-66847-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-02-11 12:28:56 +01:00
Sara Arjona 7960af6567 Merge branch 'MDL-66834-MOODLE_37_STABLE' of https://github.com/kepeter/moodle into MOODLE_37_STABLE 2020-02-11 11:54:31 +01:00
Sara Arjona f24cc998f0 Merge branch 'mdl67142-moodle37' of https://github.com/AngadSethi/moodle into MOODLE_37_STABLE 2020-02-11 10:19:10 +01:00
Sara Arjona 07265da01c Merge branch 'MDL-67894-37' of https://github.com/grabs/moodle into MOODLE_37_STABLE 2020-02-11 08:20:49 +01:00
Dani Palou 6b2bbcbb0e MDL-67758 airnotifier: Send wwwroot to airnotifier 2020-02-10 11:55:52 +01:00
Dani Palou c1bc5df576 MDL-67806 tool_mobile: Add Dark mode option in disabled features
We must allow site admins to remotely disable that feature in the app
2020-02-10 11:53:52 +01:00
Jun Pataleta 750218868a MDL-66245 privacy: Encode each part of the data URL instead of the whole 2020-02-10 16:57:10 +08:00
Jun Pataleta 18aabbd5d5 MDL-67862 message: Render dialogue header only when necessary 2020-02-10 13:16:19 +08:00
Angad Sethi 4f5e2fc266 MDL-67142 quiz: fixed error when deleting saved questions long-name-quiz
An error was showing up while deleting questions
(in the question_save_from_deletion method) which had been saved
and which belonged to a quiz with a super long name, not exceeding 255
characters, as the 'name' field in 'question_categories' table had a
max size of 255 characters. The shorten_text function was used to
shorten the string to 255 characters and a unit test was added with
the name test_question_save_from_deletion_quiz_with_long_name to test
the patch.
2020-02-08 19:49:57 +05:30
AMOS bot ba801e68d7 Automatically generated installer lang files 2020-02-08 00:12:03 +00:00
Andreas Grabs fbd65fabb2 MDL-67894 mod_feedback: database error on show responses 2020-02-07 18:48:24 +01:00
Paul Holden ee0f61cde4 MDL-59303 auth_shibboleth: consistent readme URL. 2020-02-07 14:25:35 +00:00
Luca Bösch 5779862ee7 MDL-66847 webservice: Correct breadcrumb + title for ws documentation. 2020-02-07 14:38:35 +01:00
Paul Holden 9a49f51b15 MDL-67532 badges: better default for new badge language. 2020-02-07 09:47:13 +00:00
Sara Arjona 59f947667a weekly release 3.7.4+ 2020-02-07 09:44:52 +01:00
Sara Arjona 6733f41ed1 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-02-07 09:44:49 +01:00
Brendan Heywood 867d9497f3 MDL-67726 tool_phpunit: add missing input escaping 2020-02-06 19:45:50 +01:00
Andrew Nicols a9895627a4 Merge branch 'MDL-67175-37' of git://github.com/ferranrecio/moodle into MOODLE_37_STABLE 2020-02-06 10:21:33 +08:00
Eloy Lafuente (stronk7) 1a75be0645 Merge branch 'MDL-67832_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE
(fixed a couple of typos in the merge commit)
2020-02-06 00:03:16 +01:00
Eloy Lafuente (stronk7) 53c3b1bacc Merge branch 'MDL-67732-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-02-05 20:05:58 +01:00
Eloy Lafuente (stronk7) 730714bc78 Merge branch 'MDL-67830_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-02-05 19:08:25 +01:00
Tim Hunt 4a0abc17d4 MDL-67876 forms: scroll to any invalid element if form cannot submit 2020-02-05 12:22:12 +00:00
Andrew Nicols 7eaadb4bdb Merge branch 'MDL-49103-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2020-02-05 13:52:36 +08:00
Eloy Lafuente (stronk7) 2f88edd0c9 Merge branch 'MDL-67842_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-02-04 22:46:37 +01:00
Eloy Lafuente (stronk7) 03721f06fb Merge branch 'MDL-63424-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-02-04 19:28:53 +01:00
Eloy Lafuente (stronk7) c0b25af986 Merge branch 'MDL-66875-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-02-04 19:02:41 +01:00
Sara Arjona d869324747 MDL-49103 badges: bake badges with iTXt chunk instead of tEXt
The final OB 1.0 specification changed the baking badges method
from tEXt to iTXt. Besides, the iTXt chunk should be a signed
assertion or the raw JSON (instead of the assertion URL).
This has been changed in order to make Moodle OB compliant.

Yuliya Bozhko, thanks for the patch! :-)
2020-02-04 18:49:55 +01:00
Ferran Recio 1b1cf1b950 MDL-67175 mod_scorm: fixing js eslint errors 2020-02-04 12:37:31 +01:00
Sam Hemelryk d66d85a4d7 MDL-67175 mod_scorm: sync XHR requests use sendBeacon when available
Totara reference TL-22621 (original code by Sam Hemelryk)
https://github.com/moodle/moodle/commit/2add402f8183c50bc1238ef2da5ea9cd06cb1dd9
2020-02-04 12:37:31 +01:00
Brendan Cox 67d4f4ea65 MDL-67175 session: set SameSite=None for Chrome 78 and above
Totara reference TL-22311 (original code by Brendan Cox and Sam Hemelryk)
https://github.com/moodle/moodle/commit/a3f4de2b7efe66de6617a67ce7c87f2862e76ac6
2020-02-04 12:37:15 +01:00
Andrew Nicols fe1b4bee20 Merge branch 'MDL-60126-37-3' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2020-02-04 14:40:48 +08:00
Peter 6292c6299b MDL-60126 competency: Unit tests 2020-02-04 08:55:51 +08:00
Simey Lameze 22177c5c3e MDL-60126 core: upgrade step to clean user comp 2020-02-04 08:55:42 +08:00
Simey Lameze 9f2e264fd8 MDL-60126 competency: delete content upon user delete 2020-02-04 08:40:31 +08:00
AMOS bot e1b1a447b5 Automatically generated installer lang files 2020-02-04 00:11:23 +00:00
Peter Eliyahu Kornfeld eaf2d6a809 MDL-66834 Questions: add transaction, move trigger 2020-02-03 12:26:36 +02:00
Tim Hunt a8e2b5cea1 MDL-67842 questions: Cannot remove the idnumber from a question 2020-02-03 09:49:50 +00:00
Tim Hunt 7fda2e9bac MDL-67832 quiz: fix lots of PHPdoc in attemptlib.php 2020-01-31 19:09:44 +00:00
Paul Holden ea01c38f2c MDL-67732 group: observe viewfullnames capability.
Backport from MDL-67245.
2020-01-31 16:48:15 +00:00
Eloy Lafuente (stronk7) ee0a8161dd weekly release 3.7.4+ 2020-01-30 16:11:20 +01:00
Eloy Lafuente (stronk7) 8adff28414 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-01-30 16:11:17 +01:00
Jun Pataleta 020810aea0 Merge branch 'MDL-67353_reset_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-01-30 12:35:00 +08:00
Eloy Lafuente (stronk7) 56930d1d67 MDL-67353 course: move form tearDown() to reset_all_data()
We are already cleaning all sort of caches, statics, singletons
there and it's better to ensure they are always reset to avoid
myterious failures @ distance.
2020-01-30 00:02:03 +01:00
Michelle Melton 2ec76277dc MDL-64169 course: fix padding when display on one section per page
(amended to keep the $o.= consistent with surrounding code)
2020-01-29 22:36:16 +01:00
Tim Hunt bfff57b297 MDL-67830 quiz: notice in grade details redirect script 2020-01-29 18:35:17 +00:00
Jun Pataleta 5e7c5b9cec Merge branch 'MDL-67626_37' of git://github.com/adpe/moodle into MOODLE_37_STABLE 2020-01-29 21:36:41 +08:00
Adrian Greeve caa236c415 Merge branch 'MDL-67768-37-componentdirs' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-01-29 10:04:13 +08:00
Eloy Lafuente (stronk7) 52a77683aa Merge branch 'MDL-67472-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-01-28 22:59:36 +01:00
Eloy Lafuente (stronk7) 6afb3736f8 Merge branch 'MDL-52189_37' of https://github.com/jonof/moodle into MOODLE_37_STABLE 2020-01-28 22:45:34 +01:00
Eloy Lafuente (stronk7) 96582b63db Merge branch 'MDL-67447-37-autocomplete' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-01-28 22:24:43 +01:00
Eloy Lafuente (stronk7) a5e149a1b7 Merge branch 'MDL-67722-37' of git://github.com/mickhawkins/moodle into MOODLE_37_STABLE 2020-01-28 20:13:52 +01:00
Eloy Lafuente (stronk7) 7cf3a406ff Merge branch 'MDL-57755_37' of https://github.com/t-schroeder/moodle into MOODLE_37_STABLE 2020-01-28 10:35:07 +01:00
David Mudrák 25d1533b27 MDL-67768 core: Add some common dirs to core_component::$ignoreddirs
The core_component::$ignoreddirs lists all directories that are reserved
and cannot be used as valid plugin names. This is particularly important
for some plugin types such as 'webservice' that share the same root
location as the core subsystem of the same name.
2020-01-28 10:34:38 +01:00
Adrian Greeve 462c6e9e2c Merge branch 'MDL-67740-37-behatstepsfilter' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-01-28 15:08:59 +08:00
Adrian Greeve 1db5a1205e Merge branch 'MOODLE_37_MDL-67746' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-01-28 13:14:55 +08:00
AMOS bot c3c7b02867 Automatically generated installer lang files 2020-01-28 00:11:49 +00:00
Adrian Greeve 7d1af3ec1d Merge branch 'MDL-67691_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-01-28 07:54:31 +08:00
Eloy Lafuente (stronk7) 5efefd458e Merge branch 'MDL-64531-37-questiondeletejson' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-01-27 17:08:20 +01:00
Eloy Lafuente (stronk7) ebc198cfb8 Merge branch 'MDL-67577-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-01-27 16:20:26 +01:00
Eloy Lafuente (stronk7) 1c348b2e8d Merge branch 'm37_MDL-67414_Add_PostgreSQL_12x_Support' of https://github.com/scara/moodle into MOODLE_37_STABLE 2020-01-27 12:16:27 +01:00
Bas Brands f18444a5d1 MDL-67577 core_message: navbar_output order
* moved the logic from core_message_popup_render_navbar_output to
message_popup_render_navbar_output in message/output/popup/lib.php

* using float: left instead of float: right in theme
2020-01-27 12:15:26 +01:00
Tim Schroeder 6fd48eff30 MDL-57755 message: fix notificaiton read status when messaging disabled 2020-01-27 09:17:31 +01:00
Matteo Scaramuccia 68082ac364 MDL-67414 adodb: Backport upstream fix for PostgreSQL 12.x
Upstream: https://github.com/ADOdb/ADOdb/commit/a4876f100602c2ce4760bb72d3050f73387adcca
          pgsql: stop using obsolete pg_attrdef.adsrc column
2020-01-26 09:42:24 +01:00
Matteo Scaramuccia 9edebd4951 MDL-67414 database: Fixed PostgreSQL 12.x support 2020-01-26 09:42:24 +01:00
David Mudrák adfe298af8 MDL-67447 form: Fix the duplicate autocomplete selection node
When the autocomplete selection is updated, the content of the selection
wrapper is replaced with the new list of selected items. We must replace
only the content of the selection wrapper and not to nest it into
itself.
2020-01-25 05:45:39 +01:00
AMOS bot cd6c7e0068 Automatically generated installer lang files 2020-01-25 00:11:49 +00:00
Luca Bösch d11806d957 MDL-66875 calendar: allow the use of day, mon and year again. 2020-01-25 01:01:45 +01:00
Luca Bösch 6a5c1ab6f8 MDL-63424 form: allow checkboxes to have req icon. 2020-01-24 17:38:11 +01:00
Eloy Lafuente (stronk7) e453665f7d MDL-67353 filters: fix filterlib tests
- move resetAfterTest() to test units.
- remove setUp(), moving code to remove_all_filters_from_config().
- remove class properties, moving to return values of own setup_xxx() methods.
2020-01-24 11:27:05 +01:00
Eloy Lafuente (stronk7) 3f73b4f487 MDL-67353 favourites: Random DB id matching solved
Depending on the tests executed it was possible to arrive
to favourites tests with 2 "concepts" (say userid and contextid,
or userid and itemid) having the same ID.

Then, the array_diff() operations used by some mock stuff in the
tests wrongly was returning matches by value, ultimately causing
the test to fail.

Now, the matching is performed using array_diff_assoc() that takes
keys into considation when performing the match.
2020-01-24 11:27:05 +01:00
Andrew Nicols 4dbc8e7655 MDL-67353 course: Fix more broken unit tests 2020-01-24 11:27:05 +01:00
Andrew Nicols 1fb38c5cf6 MDL-67353 course: Fix broken unit test 2020-01-24 11:27:05 +01:00
David Mudrák 71b452912a MDL-67740 behat: Show info as collapsed at the acceptance testing page
The static information with the links to Behat documentation is quite
long an irrelevant for experienced developers returning to this page. No
need to waste the prominent screen place with it - better to offer it
only when needed via collapsible form section.
2020-01-24 10:44:40 +01:00
David Mudrák 1c9edf3920 MDL-67740 behat: Improve the layout of the acceptance testing page
- The CSS contains more specific selectors.
- Make use of the whole screen width for the list of found steps.
- Visually distinguish found steps from each other.
- Make it look less like a unicorn rainbow.
2020-01-24 10:44:39 +01:00
David Mudrák c4f7a4bc62 MDL-67740 behat: Fix the name of the class in the inline documentation
The said class is provided by the moodlehq/behat-extension composer
package and was renamed as a part of upgrade to Behat 3.0.x (MDL-46891).
2020-01-24 10:44:39 +01:00
David Mudrák 9d72d1a9e6 MDL-67740 behat: Allow multiple words filter at acceptance testing page
Because of the too strict input param type, the form did not allow to
search for Behat steps containing the given phrase. The patch sets the
param type to match the one in the form definition, and makes sure that
the submitted value can be safely used as a CLI script argument.
2020-01-24 10:44:38 +01:00
Mikhail Golenkov 198b653bf7 MDL-67746 Tasks: Cleanup task logs in chunks. 2020-01-24 13:59:04 +11:00
Adrian Greeve 77a359ca7b weekly release 3.7.4+ 2020-01-24 10:17:27 +08:00
Adrian Greeve bf1e44117b Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-01-24 10:17:18 +08:00
Eloy Lafuente (stronk7) f8df624e37 Merge branch 'MDL-51225-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-23 11:14:27 +01:00
Jun Pataleta 704c30b1fb MDL-51225 mod_forum: Revert @javascript tag removal
Put back the removed  @javascript tag to prevent random goutte
fails.
2020-01-23 15:32:59 +08:00
Jun Pataleta a178e09bfb Merge branch 'MDL-65952_m37' of https://github.com/fabiendallet/moodle into MOODLE_37_STABLE 2020-01-23 10:43:32 +08:00
Jun Pataleta 48096011e3 Merge branch 'MDL-66897-37-1' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2020-01-22 23:16:56 +08:00
Mihail Geshoski 7ef572d39e MDL-66897 mod_assign: Properly display error messages in quick grading 2020-01-22 13:52:08 +08:00
Adrian Greeve 75ab679716 Merge branch 'MDL-67653_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2020-01-22 11:05:17 +08:00
Adrian Greeve 2dc1afe547 Merge branch 'MDL-67660-37-v2' of https://github.com/TobiGa/moodle into MOODLE_37_STABLE 2020-01-22 10:43:24 +08:00
Jun Pataleta 115f4461ce Merge branch 'MDL-67684-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-01-22 10:37:34 +08:00
Colin Campbell c0cf6abf34 MDL-52189 file: skip deleting temp files that appear during cleanup 2020-01-22 12:07:57 +10:00
Adrian Greeve ff6ea1e369 Merge branch 'MDL-67656-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-01-22 09:47:01 +08:00
Eloy Lafuente (stronk7) c5c42e96d2 Merge branch 'MDL-66858_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2020-01-22 01:57:39 +01:00
Michael Milette 39fd21e4ff MDL-66858 master: Enable <header> tags in Atto editor.
(amended to add the src/editor/js/clean.js
file that was originally missing)
2020-01-22 00:12:55 +01:00
Eloy Lafuente (stronk7) 49f70858e9 Merge branch 'MDL-51225-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-21 23:40:32 +01:00
Adrian Greeve 64d75c9a1a Merge branch 'MDL-66237-37' of git://github.com/mickhawkins/moodle into MOODLE_37_STABLE 2020-01-21 11:24:01 +08:00
Jun Pataleta 695499c681 Merge branch 'MDL-66108-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-01-21 09:50:47 +08:00
Eloy Lafuente (stronk7) d8c3b7e662 Merge branch 'MDL-66024-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-01-20 22:48:42 +01:00
Eloy Lafuente (stronk7) 6adc5e89b0 Merge branch 'MDL-66220-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-20 22:34:34 +01:00
Eloy Lafuente (stronk7) c9eeb1a7c1 Merge branch 'MDL-66712-37-selfautounenrol' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2020-01-20 22:29:11 +01:00
Eloy Lafuente (stronk7) 68e4a7dac8 Merge branch 'MDL-65884-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-01-20 20:37:00 +01:00
David Mudrák 73bbb3e7a8 MDL-64531 course: Add Behat test for deleting a quiz with own questions
Teachers can delete Quiz activities that have a question in their own
context via AJAX request with the course recycle bin disabled. This used
to lead to "Unexpected token < in JSON" because of the extra HTML in the
output.
2020-01-20 18:19:45 +01:00
Tim Hunt d00045e8f5 MDL-64531 course: course_delete_module shouldn't output during AJAX
Committer's note: This change was originally part of a bigger patchset
submitted by the author. This is a stripped-down version that does not
use phpunit tests for the new behaviour.
2020-01-20 18:07:25 +01:00
Eloy Lafuente (stronk7) 7a8b3702e3 Merge branch 'MDL-67724-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-20 10:53:37 +01:00
Sara Arjona 887f9c3fc6 Merge branch 'MDL-67312-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2020-01-20 08:05:16 +01:00
Adrian Greeve 28b0d9256f Merge branch 'MDL-67583-37' of https://github.com/KietChan/moodle into MOODLE_37_STABLE 2020-01-20 13:40:27 +08:00
Simey Lameze 2e6729e923 MDL-67312 core_user: clean subs events on user deletion 2020-01-20 08:54:32 +08:00
Simey Lameze d3a2788437 MDL-67312 calendar: upgrade step to delete orphaned events 2020-01-20 08:54:30 +08:00
Simey Lameze c04559ccb6 MDL-67312 core: change db upgrade step to use get_fieldset_sql 2020-01-20 08:52:59 +08:00
Eloy Lafuente (stronk7) a6e4fbe122 MDL-67691 behat: inform about the_following_exist() removal
behat_data_generators::the_following_exist() has been removed, please use
behat_data_generators::the_following_entities_exist() instead.

See MDL-67691 for more info.
2020-01-20 00:13:01 +01:00
Adrian Perez c1ed11df7a MDL-67626 assign: fix view full/view summary control in IE 2020-01-18 14:16:30 +01:00
AMOS bot 1edd36e905 Automatically generated installer lang files 2020-01-18 00:10:56 +00:00
fdallet 91aee9939b MDL-65952 mod_scorm: Fix unwanted changes to require status 2020-01-17 17:25:03 +01:00
Paul Holden a585ee9432 MDL-66108 course: fix false positives when bulk moving categories. 2020-01-17 16:19:26 +00:00
Jun Pataleta bb0acb3e9c MDL-67724 mod_glossary: Improve Behat test
Improve the "Glossary entries are not always editable" scenario by:
* No need to use the @javascript tag
* The maxediting time can be set to a lower value to
reduce the overall wait time.
2020-01-17 17:48:06 +08:00
Tobias Garske 02f08b16c5 MDL-67660 core_message: Messages search change input focus 2020-01-17 09:39:11 +01:00
Michael Hawkins e206c3b8f2 MDL-67722 mod_forum: Reduce wait time on time limit expires behat test 2020-01-17 15:46:56 +08:00
Jun Pataleta 3246d41cb2 MDL-51225 mod_forum: Use can_view_post to determine whether to show post
Use \mod_forum\local\managers\capability::can_view_post() to
consistently determine whether a forum post will be rendered in the
recent activity block.
This helps the recent activity block to provide a more consistent
behaviour with the forum's discussion view itself.
2020-01-17 14:51:47 +08:00
Jun Pataleta 8594f5e8ae MDL-51225 mod_forum: Create behat tests for forum recent activity 2020-01-17 14:45:36 +08:00
Jun Pataleta c0842ca500 MDL-51225 mod_forum: New behat step for creating question discussion 2020-01-17 14:45:36 +08:00
AMOS bot c670210a1d Automatically generated installer lang files 2020-01-17 00:12:28 +00:00
Sara Arjona fd908d09fd weekly release 3.7.4+ 2020-01-16 17:19:15 +01:00
Sara Arjona d859e8774c Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-01-16 17:19:13 +01:00
David Mudrák a86318bd92 MDL-66712 enrol: Fix the reported days of inactivity on unenrolment
There were two problems here. Firstly, the $days was not correctly
calculated due to missing parentheses. Secondly, the sentence had
grammar issues.
2020-01-16 13:44:31 +01:00
Jun Pataleta 77b19b828b MDL-66220 mod_forum: Prevent from replying to a post the user can't see 2020-01-16 15:06:25 +08:00
Jun Pataleta d046109d4d MDL-66220 mod_forum: Cache result of forum_user_can_see_post()
* Cache the result of this function to avoid doing multiple DB calls
for the same post when loading posts in a discussion.
2020-01-16 15:06:25 +08:00
Jun Pataleta bc8d03c68d MDL-66220 mod_forum: Additional unit test for can_reply_to_post 2020-01-16 15:06:25 +08:00
Andrew Nicols f394d9efae Merge branch 'wip-MDL-66918-37stable' of https://github.com/Beedell/moodle into MOODLE_37_STABLE 2020-01-16 11:44:38 +08:00
Eloy Lafuente (stronk7) b67c73c86b Merge branch 'MDL-67625-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-01-16 00:27:06 +01:00
Sara Arjona 9941fbdae4 Merge branch 'MDL-67617-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2020-01-15 12:43:19 +01:00
Sara Arjona aa23048889 Merge branch 'MDL-67638-37' of https://github.com/nguyenphuctien/moodle into MOODLE_37_STABLE 2020-01-15 12:20:00 +01:00
Andrew Nicols c4b8e4ca14 Merge branch 'MDL-67486-swap-cron-lock-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2020-01-15 13:54:26 +08:00
Mark Johnson e5ec4988b6 MDL-67674 Cache: Lock rebuilding of the course category tree cache 2020-01-15 00:02:22 +01:00
Sara Arjona 35ce17025a Merge branch 'MDL-65573-37-2' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2020-01-14 12:20:59 +01:00
Andrew Nicols fc1ddb3289 Merge branch 'MDL-66721-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2020-01-14 14:10:39 +08:00
Andrew Nicols 85b9cf9ce4 MDL-67684 core: Add missing li tag 2020-01-14 08:47:20 +08:00
Andrew Nicols 05bb501b4f Merge branch 'MDL-35971-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-14 08:33:48 +08:00
AMOS bot 116d41cdfd Automatically generated installer lang files 2020-01-14 00:10:31 +00:00
Peter a5cff8a55b MDL-65573 mod_forum: Set userid properly after split
* Set the discussion's userid properly when splitting a discussion.
* Update step to correct existing incorrect records.
2020-01-14 07:42:19 +08:00
Eloy Lafuente (stronk7) 06e0263936 Merge branch 'MDL-65649-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-01-13 18:57:02 +01:00
Eloy Lafuente (stronk7) de98c397f3 Merge branch 'MDL-65987-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-01-13 18:42:26 +01:00
Sara Arjona f091f67f81 Merge branch 'MDL-59817-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-01-13 14:27:01 +01:00
Kiet Chan 7cfbdd0422 MDL-67583 themes: Popover placement should react to scroll event 2020-01-13 17:27:31 +07:00
Bas Brands 089100fdb3 MDL-67472 theme_boost: configurable sass variable for drawer bgcolour 2020-01-13 09:16:44 +01:00
Tien Nguyen Phuc 68e85534a8 MDL-67638 Course: update course timemodified on bulk category move 2020-01-13 10:41:36 +07:00
Andrew Nicols 0f41a0280d Merge branch 'MDL-67204-37' of https://github.com/mwehr/moodle into MOODLE_37_STABLE 2020-01-13 08:54:46 +08:00
Brendan Heywood fd9466fceb MDL-67486 cron: Improve throughput by holding cron lock for less time 2020-01-12 00:48:25 +11:00
Tim Hunt 6cb1f99459 MDL-67653 questions: prevent the flag flickering as the page loads 2020-01-10 14:28:34 +00:00
Andrew Nicols 8bc3576bb3 MDL-59817 atto_accessibilitychecker: Handle transparency properly
Some browsers, notably Firefox, do not return the computed style for
background colour in a computed RGB format. Instead they return the RGBA
where the alpha channel is set to fully transparent.

To solve this we need to work up the hierarchy and compute the
background colour for each parent node until we reach full alpha (1).

We can use a standard calculation to approximate the value for the
resultant element background by multiplying the alpha of the current
transparent (or semi-transparent) node with the R, G, or B channel in
question, and that of the parent node's background colour.

There are cases where this will not be 100% accurate - notably where
there is some additional content in addition to the parent background,
but this gives us a reasoable approximation for the majority of cases.
Additionally the code has never considered the full set of node content
when calculating this information.
2020-01-10 15:26:51 +08:00
Andrew Nicols 4158b39809 MDL-67656 behat: Removed nested spin 2020-01-10 13:40:32 +08:00
Andrew Nicols c7afe02401 MDL-67656 behat: Fix usleep call in spin 2020-01-10 13:40:31 +08:00
Andrew Nicols 86a19e4910 Moodle release 3.7.4 2020-01-10 13:03:39 +08:00
Andrew Nicols a9534a6ba7 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-01-10 13:03:37 +08:00
AMOS bot 1ba12b9b57 Automatically generated installer lang files 2020-01-10 00:12:21 +00:00
Luca Bösch 37524fa1e6 MDL-67625 quiz: only section titles should be large when editing. 2020-01-09 17:23:02 +01:00
Luca Bösch 44c7386d16 MDL-67617 gradereport_singleview: Style the form element with bs classes 2020-01-09 17:22:09 +01:00
Mario Wehr c3f4abed6f MDL-67204 assign task: Use lastruntime from task_scheduled 2020-01-09 17:12:34 +01:00
John Beedell 2acb24d84e MDL-66918 behat: Behat app step failing 2020-01-09 15:59:25 +00:00
Sara Arjona bcc1f8154f weekly release 3.7.3+ 2020-01-09 15:42:49 +01:00
Jun Pataleta 59a4c1dfbc MDL-67544 mod_forum: Remove unnecessary 'scope' in <td> 2020-01-09 16:35:48 +08:00
Andrew Nicols 709e07dd58 MDL-67544 mod_forum: Add missing label for discussion move 2020-01-09 16:32:15 +08:00
Andrew Nicols 7653711479 Merge branch 'MOODLE_37_MDL-67485' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2020-01-09 12:40:40 +08:00
Mikhail Golenkov b3e0d3edec MDL-67485 task: Release the task runner lock before throwing exception. 2020-01-09 15:09:33 +11:00
Andrew Nicols b570a8012b Merge branch 'MDL-67596-cron-ramp-up-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2020-01-09 09:33:08 +08:00
Brendan Heywood e9ce085117 MDL-67596 cron: Allow runners to ramp up instantly 2020-01-09 11:04:18 +11:00
Eloy Lafuente (stronk7) 3484f61505 Merge branch 'MDL-67544-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2020-01-08 16:33:52 +01:00
Eloy Lafuente (stronk7) b8c1bd07ef Merge branch 'MDL-65920_37' of https://github.com/dvdcastro/moodle into MOODLE_37_STABLE 2020-01-08 10:20:13 +01:00
Jun Pataleta 6783597dc0 MDL-35971 mod_forum: Add proper discussion list table description 2020-01-08 15:45:47 +08:00
Sara Arjona 23f9fc2c08 Merge branch 'MDL-67417-37' of https://github.com/KietChan/moodle into MOODLE_37_STABLE 2020-01-08 08:26:55 +01:00
Sara Arjona 552a926d9e Merge branch 'MDL-67510-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-08 08:11:09 +01:00
Andrew Nicols feeb49d71d MDL-67544 form: Ensure that form errors have a unique id 2020-01-08 11:17:47 +08:00
Andrew Nicols 2f08c6d636 MDL-67544 mod_forum: Add missing menuitem roles 2020-01-08 11:17:47 +08:00
Andrew Nicols 7eb2fadd0a MDL-67544 mod_forum: Correct aria-labelledby node 2020-01-08 11:17:47 +08:00
Andrew Nicols 472aac0cec MDL-67544 core: Ensure unique IDs for YUI dialogues 2020-01-08 11:17:47 +08:00
Andrew Nicols 67eb2cbae4 MDL-67544 theme: Ensure that search box is in valid li 2020-01-08 11:17:46 +08:00
Andrew Nicols 3f416dde23 MDL-67544 mod_forum: Add default role for favourite toggle 2020-01-08 11:17:46 +08:00
Andrew Nicols b395834704 MDL-67544 mod_forum: Add missing aria label for discussion actions 2020-01-08 11:17:46 +08:00
Andrew Nicols f342750a6f Merge branch 'MDL-64764-37' of git://github.com/paulholden/moodle into MOODLE_37_STABLE 2020-01-08 08:31:30 +08:00
Eloy Lafuente (stronk7) 9f056a5684 Merge branch 'MDL-67469-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2020-01-07 23:00:04 +01:00
Marina Glancy 9b157ea0e6 MDL-64764 core_admin: allow to submit empty list of allowed roles.
Co-authored-by: Paul Holden <paulh@moodle.com>
2020-01-07 10:01:39 +00:00
Andrew Nicols 8dc5eab31e Merge branch 'MDL-65849-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2020-01-07 13:27:30 +08:00
Andrew Nicols 515ebc9727 Merge branch 'MDL-66938-37' of https://github.com/grabs/moodle into MOODLE_37_STABLE 2020-01-07 12:49:59 +08:00
Paul Holden 8c3f81aa69 MDL-66237 message_popup: Get redirecturl from notification contexturl 2020-01-07 11:24:37 +08:00
Andrew Nicols 0b71664990 Merge branch 'MDL-66871-37-v2' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2020-01-07 08:54:57 +08:00
Bas Brands 3dd509b06b MDL-66721 core_chooser: height correction for chooser modal 2020-01-06 10:13:19 +01:00
Jun Pataleta 63078beeed MDL-67510 tool_dataprivacy: Fix the reply-to name of the privacy officer 2020-01-06 11:37:02 +08:00
Simey Lameze 72e7743c2f MDL-66871 calendar: fix deprecated parameter in the phpDoc 2020-01-06 10:42:34 +08:00
Simey Lameze 197be84cc7 MDL-66871 calendar: add unit test coverage for ics importing 2020-01-06 10:42:33 +08:00
Simey Lameze 546c737981 MDL-66871 calendar: fix ics importing logic 2020-01-06 10:42:33 +08:00
Luca Bösch da1a4189e1 MDL-65987 mod_forum: Add string 'Advanced' for the advanced editor.
AMOS BEGIN
    CPY [advanced,moodle],[showadvancededitor,moodle]
   AMOS END
2020-01-06 09:41:23 +08:00
Jake Dallimore c520f8a8c5 Merge branch 'MDL-67336-37' of https://github.com/roland04/moodle into MOODLE_37_STABLE 2020-01-06 09:37:10 +08:00
Andreas Grabs c32c55b482 MDL-66938 mod_feedback: Export includes unwanted html in field names 2020-01-05 19:33:20 +01:00
Jake Dallimore b2c0237ae8 weekly release 3.7.3+ 2020-01-03 11:25:02 +08:00
Jake Dallimore 0b16f6e9d8 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2020-01-03 11:24:59 +08:00
AMOS bot c2b9324c95 Automatically generated installer lang files 2020-01-03 00:12:18 +00:00
Adrian Greeve 3ca4f0705b Merge branch 'MDL-67599-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2020-01-02 15:17:11 +08:00
Jake Dallimore dc238e45bb MDL-67599 behat: fix behat tests assuming Jan 2020 is a future date 2020-01-02 13:52:55 +08:00
AMOS bot 1120aefa6a Automatically generated installer lang files 2020-01-02 00:10:30 +00:00
Eloy Lafuente (stronk7) 188dddc077 Merge branch 'MDL-67593-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-12-31 10:51:09 +01:00
Jake Dallimore b257dc6a1c MDL-67593 core_iplookup: update lang string describing download process
Let users know they need to register on maxmind before granted download
access.
2019-12-31 15:57:11 +08:00
Jake Dallimore 079cab5158 MDL-67593 core_iplookup: use MaxMind test database in unit tests
Instead of downloading a live database (now not available publicly)
use a local test database.
2019-12-31 15:57:03 +08:00
Jun Pataleta d3c0160f3b Merge branch 'MDL-63996-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-12-31 15:18:57 +08:00
Jun Pataleta 6b6874b4b0 Merge branch 'MDL-67487-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-12-31 11:55:48 +08:00
Jun Pataleta e330c9e4df Merge branch 'MDL-67470-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-12-31 11:29:45 +08:00
Bas Brands 4e14f91bfa MDL-67470 theme_boost: settings_menu_proxy correct background
the .region_main_settings_proxy was introduced in MDL-56582 using the
wrong bootstrap variable for the background color
2019-12-31 10:00:03 +08:00
Adrian Greeve fc48d5e39e Merge branch 'MDL-67233-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-12-30 12:58:07 +08:00
Jun Pataleta aadb383458 Merge branch 'MDL-67491-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-12-30 12:40:53 +08:00
Didier 'OdyX' Raboud b7540acee3 MDL-67491 core_message: Primary'fy the contact request counts 2019-12-30 11:47:47 +08:00
Eloy Lafuente (stronk7) aa5d6d1075 Merge branch 'MDL-67527-37-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-12-29 23:27:22 +01:00
Adrian Greeve c671e56277 Merge branch 'MDL-63107-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-12-27 16:35:14 +08:00
Adrian Greeve d30ee1def7 Merge branch 'MDL-65809-37-onlyenv' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2019-12-24 14:56:16 +08:00
Adrian Greeve fc7a699cef Merge branch 'MOODLE_37_STABLE-MDL-67524' of https://github.com/yao9394/moodle into MOODLE_37_STABLE 2019-12-23 10:31:32 +08:00
John Yao b0f9bb4a2c MDL-67524 book: fixing view hidden chapter issue
* Users who have permission should be able to view hidden chapters after turning editing off
2019-12-23 09:38:07 +11:00
AMOS bot 5ca8ff038b Automatically generated installer lang files 2019-12-21 00:11:05 +00:00
Luca Bösch 129e5848e0 MDL-67487 forms: align "Custom" checkbox for course section name. 2019-12-20 13:47:09 +01:00
Eloy Lafuente (stronk7) 6e8eb9c0b2 weekly release 3.7.3+ 2019-12-20 11:02:03 +01:00
Eloy Lafuente (stronk7) 8628068fd0 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-12-20 11:02:00 +01:00
Eloy Lafuente (stronk7) 310f5f818b Merge branch 'MDL-67151-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-12-19 23:01:45 +01:00
Shamim Rezaie 550af41514 MDL-67151 qtype_numerical: convert the tolerance to string before saving
Fix the sqlserver issue when saving a number into a text field
2019-12-20 01:22:36 +11:00
Jun Pataleta 6a5e6dbbee Merge branch 'MOODLE_37_STABLE_MDL-63795_core_setting_defaults' of https://github.com/mattporritt/moodle into MOODLE_37_STABLE 2019-12-19 11:17:31 +08:00
Matt Porritt 83aae3d6b3 MDL-63795 Administration: CLI upgrade apply all settings
This patch fixes a regression caused by MDL-62777.  MDL-62777 added output to inform
administrators of new default settings.  However, the recursion in the code did not
handle new settings made available as the result of the defaults of other settings
being set.
This patch fixes the issue, now all defaults are correctly set, even those exposed
after other defaults are set.
2019-12-19 12:20:19 +11:00
Eloy Lafuente (stronk7) 55d62d8983 Merge branch 'MDL-67151-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-12-18 23:06:42 +01:00
Eloy Lafuente (stronk7) 150f94c8a1 Merge branch 'MDL-64695-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-12-18 19:56:26 +01:00
David Mudrák 9ef1745639 MDL-67527 lang: Propagate the string fixes to Behat and other places 2019-12-18 09:29:16 +01:00
Helen Foster b42864b044 MDL-67527 lang: Import fixed English strings (en_fix) 2019-12-18 09:28:45 +01:00
Andrew Nicols 93a4ff940c MDL-63996 core/tags: Pending JS for all tag code 2019-12-18 12:02:40 +08:00
Eloy Lafuente (stronk7) 6bc6e9fb4f Merge branch 'MDL-67185-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-12-17 23:07:44 +01:00
Mikel Martín 094a5cddd6 MDL-67336 mod_forum: Fixing forum inline reply filtering before saving 2019-12-17 16:51:22 +01:00
Jake Dallimore 02fcc52917 Merge branch 'MDL-65735-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-12-17 13:25:43 +08:00
Eloy Lafuente (stronk7) 73f5b11a3d Merge branch 'MDL-67522-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-12-17 00:22:50 +01:00
Eloy Lafuente (stronk7) 78923a9379 Merge branch 'MDL-67410-37' of https://github.com/felicemcc/moodle into MOODLE_37_STABLE 2019-12-16 19:18:51 +01:00
Bas Brands 362134292e MDL-63107 mod_book: rewrite styles for book chapter block
* using flexbox to position titles
* fix for title overlap on edit mode
* show correct bullets, number or indent
2019-12-16 13:30:36 +01:00
Andrew Nicols 72d4e3141c MDL-63996 behat: Fix multi-tag autocomplete usage 2019-12-16 14:00:53 +08:00
Jake Dallimore ed06e68a2b Merge branch 'MDL-66503-37' of git://github.com/abgreeve/moodle into MOODLE_37_STABLE 2019-12-16 09:11:47 +08:00
Marina Glancy 4b45a0fb43 MDL-67522 core_lock: fix mistype in config-dist 2019-12-14 19:31:17 +01:00
AMOS bot 97f2efaf90 Automatically generated installer lang files 2019-12-14 00:11:00 +00:00
Jun Pataleta bfde26e64c MDL-67469 tool_dataprivacy: Put back missing test code
This patch simply brings back the missing test code for
\tool_dataprivacy_api_testcase::test_approve_data_request_non_dpo_user()
2019-12-13 10:05:12 +08:00
AMOS bot 9213c261eb Automatically generated installer lang files 2019-12-13 00:11:17 +00:00
Felice Candilio ad27019f63 MDL-67410 Enrolments: Cast the perpage parameter to integer in JS
The parameter called "perpage" on the call is treated as a string,
therefore, It could have a value 15001 resulting from a "+" operation
of the "1500" string and the number 1. That big number makes
the AJAX call extremely slow.

The proposed solution is to parse the number as an integer
when performing the addition.
2019-12-12 22:28:17 +01:00
Paul Holden 73242585f4 MDL-65735 report_progress: reset URL start parameter in initials bars. 2019-12-12 18:24:21 +00:00
Paul Holden bc25db6a64 MDL-64695 tool_dataprivacy: filter site fullname in outgoing messages. 2019-12-12 18:20:35 +00:00
Paul Holden 8b6d7e876d MDL-64695 privacy: filter site fullname in data export. 2019-12-12 18:20:35 +00:00
Eloy Lafuente (stronk7) 85e21dd300 weekly release 3.7.3+ 2019-12-12 13:26:23 +01:00
Eloy Lafuente (stronk7) 1c4af632f9 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-12-12 13:26:20 +01:00
Jake Dallimore 8223ff7c7e Merge branch 'MDL-67154-37' of git://github.com/ferranrecio/moodle into MOODLE_37_STABLE 2019-12-12 09:05:28 +08:00
Ferran Recio 190216f8a9 MDL-67154 theme_classic: fixing firefox printing 2019-12-11 16:56:57 +01:00
AMOS bot f48346ab9d Automatically generated installer lang files 2019-12-11 13:50:16 +00:00
Kiet.Chan 7473f63a3d MDL-67417 theme_boost: Tooltip icon stop working after closing using ESC 2019-12-11 14:55:32 +07:00
Andrew Nicols c0e6d385c7 Merge branch 'MDL-67458-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-12-11 10:27:41 +08:00
Adrian Greeve 50dd06be9f MDL-66503 themes: Set the embed page to display block. 2019-12-11 09:39:01 +08:00
Jake Dallimore 2e9dd5864e MDL-67458 core: removing stale cohortroles and role assignments 2019-12-11 09:38:59 +08:00
Jake Dallimore c309ace4a9 MDL-67458 tool_cohortroles: remove role mapping for deleted roles
Before syncing anything, clean up records pointing to deleted roles.
2019-12-11 09:38:38 +08:00
Jake Dallimore cf6f67c615 Merge branch 'MDL-66936-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-12-10 15:28:18 +08:00
Jake Dallimore 32312d16a4 Merge branch 'MDL-67154-37' of git://github.com/ferranrecio/moodle into MOODLE_37_STABLE 2019-12-10 11:58:07 +08:00
Jake Dallimore acd644b49b Merge branch 'MDL-67451-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2019-12-10 10:37:31 +08:00
Jake Dallimore e57486369f Merge branch 'MDL-66708-MOODLE_37_KeyGenCache' of https://github.com/Cengage/moodle into MOODLE_37_STABLE 2019-12-10 09:14:49 +08:00
Paul Holden 213abaaf97 MDL-65649 backup: ensure valid course URL for async mode. 2019-12-09 23:34:37 +00:00
Sara Arjona 5d69fd7796 MDL-67451 badges: use the site OB version as default 2019-12-09 08:21:50 +01:00
Andrew Nicols f77bddbe41 Merge branch 'MDL-60975-37' of https://github.com/Kathrin84/moodle into MOODLE_37_STABLE 2019-12-09 13:10:44 +08:00
AMOS bot 6245343fee Automatically generated installer lang files 2019-12-06 00:09:50 +00:00
Paul Holden 9e9c0912e3 MDL-66024 tool_uploadcourse: validate shortname/fullname field length. 2019-12-05 23:11:14 +00:00
Kathrin Osswald c7083ccfab MDL-60975 behat tests: Added search for admin setting filepickers 2019-12-05 14:59:32 +01:00
Sara Arjona 7bda7e786b MDL-65809 environment: mbstring extension required 2019-12-05 14:01:54 +01:00
Sara Arjona 0334ede088 MDL-65809 environment: PHP 7.2 required 2019-12-05 14:01:54 +01:00
Sara Arjona c81c6c7062 MDL-65809 environment: postgres requirement up to 9.5 2019-12-05 14:01:54 +01:00
Sara Arjona c13e90b418 MDL-65809 environment: mariadb requirement up to 10.2 2019-12-05 14:01:54 +01:00
Sara Arjona 34edb73d59 MDL-65809 environment: 3.5 (LTS) required 2019-12-05 14:01:54 +01:00
Sara Arjona 0bdb308dad MDL-65809 environment: 3.9 base information
This is a direct copy of the 3.8 branch to have changes
under control easier in next commits.
2019-12-05 14:01:54 +01:00
Eloy Lafuente (stronk7) fcc93935be weekly release 3.7.3+ 2019-12-05 13:24:09 +01:00
Adrian Greeve 66860a607c Merge branch 'MDL-65620-37' of git://github.com/aanabit/moodle into MOODLE_37_STABLE 2019-12-05 09:27:51 +08:00
Amaia Anabitarte a4af12139e MDL-65620 core_message: User preference generator 2019-12-04 11:03:14 +01:00
Amaia Anabitarte 610fde313f MDL-65620 core_message: Notification preferences behat tests 2019-12-04 11:03:14 +01:00
Amaia Anabitarte ba2599ce05 MDL-65620 core_message: Default notification preferences 2019-12-04 10:56:04 +01:00
Ferran Recio 91ff19fc50 MDL-67154 theme_boost: fixing firefox printing 2019-12-04 10:41:50 +01:00
Adrian Greeve a9acc2ee16 Merge branch 'MDL-40360-37' of git://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-12-04 11:52:21 +08:00
Claude Vervoort 7a81ee607f MDL-66708 lti adv: fix check for key in config 2019-12-03 09:44:05 -05:00
Marina Glancy 07ab601ced MDL-66936 mod_url: revert MDL-65024 adding fullurl to modinfo
This reverts commit cc56e409c3, reversing
changes made to 01cdf16c0e.
2019-12-03 12:25:40 +01:00
Jonathon Fowler 6b822a40e0 MDL-66936 url: fix error when modinfo cache is rebuilt non-interactively 2019-12-03 12:25:39 +01:00
Adrian Perez 5b5b171b75 MDL-67185 progressbar: use bootstrap component to fix invert colors 2019-12-03 11:26:15 +01:00
Shamim Rezaie c683b6465d MDL-67151 qtype_calculatedsimple: Support for the scientific format 2019-12-03 16:59:23 +11:00
Shamim Rezaie 98f8cc5c57 MDL-67151 qtype_calculated: Support for the scientific format 2019-12-03 16:59:23 +11:00
Shamim Rezaie ff7d589d0c MDL-67151 qtype_numerical: Support for the scientific format 2019-12-03 16:59:22 +11:00
Shamim Rezaie 01f880752e MDL-67151 core_question: Support scientific format at question preview 2019-12-03 16:59:22 +11:00
Shamim Rezaie f24f82e202 MDL-67151 forms: Support for the scientific format in the float element 2019-12-03 16:59:21 +11:00
Shamim Rezaie 9726641b87 MDL-67151 core: format_float can auto detect number of decimal points 2019-12-03 16:59:17 +11:00
Sara Arjona 13b6be4cda Merge branch 'wip-MDL-67339-37stable' of https://github.com/Beedell/moodle into MOODLE_37_STABLE 2019-12-02 18:06:38 +01:00
John Beedell 54eb7cecbb MDL-67339 behat: Enhance Behat exception message 2019-12-02 09:57:18 +00:00
Jake Dallimore ee03a07837 Merge branch 'MDL-66581-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-12-02 16:13:10 +08:00
Jun Pataleta 2fff16d0dd MDL-66581 auth: Properly assign the link attribute 2019-12-02 15:29:13 +08:00
Iñigo Zendegi ba011cd3a3 MDL-66581 auth: Do string concatenation for the password change URL
This reverts the change introduced by MDL-59298 where the password
change URL data is being assigned with a moodle_url object instead
of concatenating it.
2019-12-02 15:29:13 +08:00
Jake Dallimore 3e88752969 Merge branch 'MDL-66877-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-12-02 10:04:37 +08:00
Luca Bösch cd47a90307 MDL-40360 gradingform_rubric: remove unused class 'label' for a label. 2019-11-30 10:06:00 +01:00
Shamim Rezaie 43536c4490 MDL-65849 mod_forum: Add course param to the author's profile url 2019-11-29 21:02:04 +11:00
Eloy Lafuente (stronk7) 26a1bee863 weekly release 3.7.3+ 2019-11-29 00:45:47 +01:00
Juan Leyva 0d588f2275 MDL-66877 mod: Fix unfiltered activity names in page headings 2019-11-28 17:19:33 +01:00
Juan Leyva a44b2f35d0 MDL-66877 mod: Fix WebServices returning unfiltered activity names 2019-11-28 17:19:33 +01:00
Eloy Lafuente (stronk7) 7ed4575962 Merge branch 'MDL-67300-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE
(fix trailing whitespace case)
2019-11-26 22:28:54 +01:00
Jun Pataleta 42717369cb Merge branch 'MOODLE_37_MDL-56886' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2019-11-26 22:32:30 +08:00
Luca Bösch 6c4fda0250 MDL-67210 tool_uploadcourse: Allow only 0 and 1 for visible value. 2019-11-26 08:30:55 +01:00
Peter 6acdb674c5 MDL-67233 mod_timeline: Allow events with only open dates in the future 2019-11-26 11:29:04 +08:00
Mikhail Golenkov 0b40ec7c6c MDL-56886 navigation: Allow local plugins to modify navigation via AJAX. 2019-11-26 13:20:25 +11:00
Jake Dallimore 5f0db00a75 Merge branch 'MDL-67222-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-11-26 10:13:26 +08:00
Bas Brands 1fd190f06f MDL-67222 tool_lp: update css classes for Bootstrap 4.3 2019-11-25 15:00:09 +01:00
Jun Pataleta d7e5e56e1e Merge branch 'MDL-67217_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-11-25 16:14:02 +08:00
Sara Arjona 6bc8d857b9 Merge branch 'MDL-67168-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-11-25 08:56:59 +01:00
Jun Pataleta 2f4b206ac0 Merge branch 'MDL-65956-37-1' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-11-25 14:22:43 +08:00
Mihail Geshoski d522d06f07 MDL-65956 mod_assign: Add behat tests 2019-11-25 10:50:32 +08:00
Mihail Geshoski 49953fd4ca MDL-65956 mod_assign: Add proper capability checks and error handling 2019-11-25 10:50:32 +08:00
David Monllaó 2adc0dbe96 MDL-67217 unittest: usleep and windows don't get along well 2019-11-22 07:42:24 +08:00
Eloy Lafuente (stronk7) 52eb2da844 weekly release 3.7.3+ 2019-11-22 00:17:10 +01:00
sam marshall 0ce15c819d MDL-67300 Calendar: Inconsistent behaviour of managegroupentries
When calling the calendar_get_allowed_event_types function with
no course id, it is supposed to return true if you have the
relevant permissions in any course.

For users who have the managegroupentries permission, this was not
the case - even though it works correctly if you call the function
with a supplied course id.

This change makes behaviour with and without a supplied course id
consistent.
2019-11-21 10:53:03 +00:00
Andrew Nicols b530dd8136 MDL-67168 forum: Correct behaviour of viewfullnames 2019-11-21 15:43:12 +08:00
Tim Hunt 265296a26e MDL-48024 behat: allow plugins to have data generators
This extends the step
Given the following "users" exist:
to also support things like
Given the following "mod_quiz > user overrides" exist:

Instructions are on the behat_data_generators and
behat_generator_base classes.
2019-11-21 09:35:39 +08:00
Jake Dallimore cb14826719 Merge branch 'MDL-67274-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-11-19 10:51:50 +08:00
Eloy Lafuente (stronk7) 219d5e9c1d Merge branch 'MDL-65913_37' of https://github.com/jonof/moodle into MOODLE_37_STABLE 2019-11-18 23:19:53 +01:00
Jun Pataleta 23865aefdd MDL-67148 tool_mobile: Set auth_cas|auth_name config value in unit test
Thanks to Renaat Debleu for the fix suggestion!
2019-11-18 18:54:30 +01:00
Jun Pataleta 8a6a3bd633 Merge branch 'MDL-67073-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-11-18 16:03:08 +08:00
sam marshall 7eb02fed62 MDL-67274 Tasks: Log display fails with memory errors 2019-11-15 13:56:56 +00:00
Eloy Lafuente (stronk7) 87b11eb4a0 weekly release 3.7.3+ 2019-11-15 12:30:25 +01:00
Jun Pataleta b6a6a6740f Merge branch 'MDL-67218-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-11-13 11:00:12 +08:00
Andrew Nicols 61f4facb74 MDL-67218 form: Do not clear grade when rescaling not enabled 2019-11-12 13:18:44 +08:00
Eloy Lafuente (stronk7) 25c9c6336b Moodle release 3.7.3 2019-11-09 11:57:47 +01:00
Sara Arjona a88baa553a weekly release 3.7.2+ 2019-11-08 15:39:46 +01:00
Sara Arjona 2b0e7a4ea9 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-11-08 15:39:43 +01:00
Adrian Greeve 46cb3afcfe Merge branch 'MDL-67169_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-11-08 10:44:19 +08:00
Jake Dallimore b7bb837d2b Merge branch 'MDL-67016-37-user-profile-see-own-courses' of https://github.com/danowar2k/moodle into MOODLE_37_STABLE 2019-11-08 10:22:26 +08:00
Andrew Nicols bf1e1b917f Merge branch 'MDL-67149-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-11-08 10:10:36 +08:00
Sara Arjona 35c54f8ea8 Merge branch 'MDL-66683-37' of git://github.com/cescobedo/moodle into MOODLE_37_STABLE 2019-11-07 17:41:30 +01:00
cescobedo ffc5dc3245 MDL-66683 core: Revert MDL-66181 because created regressions
This reverts commit ed080a580f.
This issue reverts the behaviour modified in MDL-66181, as that change
negatively impacted course-creation workflows. As this appears to be
the intended functionality, the Security team has agreed to revert
this change.
2019-11-07 17:30:19 +01:00
Jake Dallimore 64f1c9d901 MDL-66257 tool_cohortroles: unit test for users in multiple cohorts 2019-11-07 23:47:33 +08:00
cescobedo b7ee5cb2ea MDL-66257 tool_cohortroles: Unassign the role on removal cohortroles. 2019-11-07 23:47:33 +08:00
Eloy Lafuente (stronk7) 0581a99241 MDL-67169 phpunit: fix clear flaw in unit test provider
Basically the provider is ignoring the CRLF to LF normalization
results and loading the original file again.

This doesn't have any impact normally, because all moodle
files are LF ones and people using other systems have their
git configurations set to work that way (not modify or force LF).

But there may be checkouts out there (for example travis) where
the git configuration by defult is to convert to the OS, causing
windows runs to fail badly there. See the issue for more info
and links.
2019-11-07 13:43:46 +01:00
Jun Pataleta d084e4194c Merge branch 'MDL-67084-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-11-07 19:37:48 +08:00
Marina Glancy 56f3b3f412 MDL-67084 core_form: duration element should export arrays 2019-11-07 19:22:05 +08:00
Jun Pataleta 0ecc1a8eab MDL-66598 auth_oauth2: OAuth2 upgrade step
This basically does two things:
1. Updates all non-Facebook/Google/Microsoft issuers and sets their
'requireconfirmation' field to 1 so that future OAuth2 logins on these
issuers will always have an email confirmation sent to them.
2. Deletes the linked logins of users with non-Facebook/Google/Microsoft
OAuth2 issuers.
2019-11-07 18:43:30 +08:00
Jun Pataleta 6cb4bd65d3 MDL-66598 auth_oauth2: Add warning messages in confirm emails 2019-11-07 18:43:30 +08:00
Jun Pataleta 034729a5ce MDL-66598 tool_oauth2: Make account confirmation required by default
* Only Facebook, Google, and Microsoft issuers can optionally offer to
require account confirmation via email. We will require email
confirmation for the rest of the issuers.
2019-11-07 18:43:30 +08:00
Mihail Geshoski 4676d5ad35 MDL-66762 tool_dataprivacy: Sanitize the extra fields in the webservice 2019-11-07 09:02:35 +08:00
Paul Holden a722b44a09 MDL-66762 user: escape extra/email user fields. 2019-11-07 09:02:35 +08:00
Paul Holden 8d111d5136 MDL-66762 user: stricter email validation. 2019-11-07 09:02:34 +08:00
Eloy Lafuente (stronk7) a423038589 Merge branch 'MDL-42638-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-11-06 22:47:29 +01:00
sam marshall cff7de72ed MDL-67149 Accessibility: Help popups fail WCAG 1.4.13 (Dismissable)
It must be possible to dismiss the help popups (popovers) with the
Escape key, without changing focus.
2019-11-06 16:27:17 +00:00
Sara Arjona 18b60b3d2b Merge branch 'MDL-66984-change_password_url-with-user-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2019-11-06 08:30:55 +01:00
AMOS bot fb9553cac0 Automatically generated installer lang files 2019-11-06 00:16:32 +00:00
Luca Bösch 2b746fc34a MDL-42638 filters: Have emoticons respect <pre>. 2019-11-05 16:09:20 +01:00
Michael Hawkins 87c1819e2f MDL-66161 output: Escaping fatal error message and URL strings 2019-11-05 13:47:43 +01:00
Juan Leyva 2e4684f51c MDL-66377 user: Only allow active users to retrieve files via tokenpluginfile.php 2019-11-05 13:47:43 +01:00
Paul Holden f68e327afa MDL-66228 mod_lesson: ensure return URL parameters are always local. 2019-11-05 13:47:43 +01:00
Eloy Lafuente (stronk7) 7471e92601 weekly release 3.7.2+ 2019-11-05 13:34:30 +01:00
Eloy Lafuente (stronk7) 5dbf43b0de Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-11-05 13:34:27 +01:00
Jake Dallimore 98c155a433 Merge branch 'MDL-66455-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-11-05 11:43:06 +08:00
AMOS bot 7c2d448bf8 Automatically generated installer lang files 2019-11-05 00:10:27 +00:00
Brendan Heywood fb5ed6a5ca MDL-66984 auth: Allow $USER to be used in change_password_url 2019-11-05 10:24:48 +11:00
Jun Pataleta beed18a8e9 Merge branch 'MDL-66582-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-11-04 19:35:33 +08:00
Jake Dallimore 79d23bb46b Merge branch 'MDL-67093-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-11-04 15:40:30 +08:00
Adrian Greeve 145c57f2f9 Merge branch 'MDL-43189-37' of git://github.com/snake/moodle into MOODLE_37_STABLE 2019-11-04 09:24:13 +08:00
Eloy Lafuente (stronk7) 385e7e0c26 Merge branch 'MDL-66990-37-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-11-03 23:15:18 +01:00
AMOS bot e848d21f9e Automatically generated installer lang files 2019-11-02 00:09:30 +00:00
Helen Foster e8014f4833 MDL-66990 lang: Import fixed English strings (en_fix)
Significant string changes:

* hidegrader_help,mod_assign - note about setting having no effect on
  comments box
* configenablecompletion,core_completion - including reason for setting
  activity completion conditions
* setuplink_desc,tool_mobile - including where the app download page
  link is displayed and leaving the setting empty
2019-11-01 11:22:19 +01:00
Shamim Rezaie 66b2dcd7be MDL-43189 core: improve validating db settings during cli install 2019-11-01 15:41:36 +08:00
Shamim Rezaie f41a30229e MDL-43189 core: Validate db prefix during installation 2019-11-01 15:41:36 +08:00
Jonathon Fowler 61016f21df MDL-65913 block_recentlyaccessedcourses: add category | name separator 2019-11-01 16:42:14 +10:00
Daniel Poggenpohl d8a7f2aeb7 MDL-67016 profile: current user should see his own courses 2019-10-31 14:36:43 +01:00
Juan Leyva e7cdd0e77c MDL-66582 tool_mobile: Clean URLs from auth plugins
In order to avoid the WebService to break we must double check that URLs coming from auth plugins are valid.
2019-10-31 14:22:51 +01:00
Johan Dobbelstein cf889e4fbd MDL-66582 auth: Fix empty auth_logo in CAS/Shibboleth auth plugins
* set $idp['iconurl'] = null if no auth_logo
* lib/templates/loginform.mustache will skip NULL iconurls
* lib/ajax/service?info=tool_mobile_get_public_config will validate the NULL values
2019-10-31 14:22:51 +01:00
Eloy Lafuente (stronk7) bb519b05b1 weekly release 3.7.2+ 2019-10-31 13:33:21 +01:00
Simey Lameze ad796334cb MDL-66455 calendar: add coverage for event types in subscription page 2019-10-31 18:48:05 +08:00
Simey Lameze 0e903c3f7f MDL-66455 calendar: show site level subscriptions 2019-10-31 18:48:04 +08:00
Adrian Greeve 63c0acc5e9 Merge branch 'MDL-66247-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-10-31 14:38:29 +08:00
Andrew Nicols 307600962c MDL-67093 grading: Fetch cm with get_fast_modinfo 2019-10-31 13:28:56 +08:00
Andrew Nicols d0cf886bf8 Merge branch 'MDL-67088-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-10-31 11:08:20 +08:00
Marina Glancy 0c8ad6a113 MDL-67088 mod_assign: compare time without case for MacOS compat 2019-10-30 19:20:02 +01:00
Marina Glancy ff55f6b21d MDL-67073 core_course: fix capability context 2019-10-30 18:42:02 +01:00
Andrew Nicols bff4d30a79 MDL-66247 accessibility: Correct notification alert role support 2019-10-30 09:01:18 +08:00
Eloy Lafuente (stronk7) 3d9b0a9b1b weekly release 3.7.2+ 2019-10-29 21:01:50 +01:00
Eloy Lafuente (stronk7) 5570436ef3 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-29 21:01:44 +01:00
Jake Dallimore 96d6f625f3 Merge branch 'MDL-66945_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-10-29 14:56:13 +08:00
Andrew Nicols 9c8a6c45f9 Merge branch 'MDL-67027-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-29 09:35:42 +08:00
Andrew Nicols be328441a2 MDL-66945 composer: Update behat extension
(using php71 for this branch)

This uses a new version of the moodlehq-behat-extension which ensures
that a node is visible and in the view port before it is clicked on.

This resolves an issue with Firefox on Ubuntu 18.04 whereby the node is
only brought into the viewport instead of clicked on.
2019-10-28 13:18:30 +01:00
Jun Pataleta e282b1f1fc Merge branch 'm37_MDL-65811_Fix_Incorrect_ORDER_BY_Search' of https://github.com/scara/moodle into MOODLE_37_STABLE 2019-10-28 11:30:40 +08:00
AMOS bot 28ccb81e87 Automatically generated installer lang files 2019-10-28 00:09:18 +00:00
AMOS bot bf84c3f075 Automatically generated installer lang files 2019-10-27 00:09:15 +00:00
Matteo Scaramuccia 429de834fa MDL-65811 database: Fix subsetting in MSSQL 2019-10-25 23:04:02 +02:00
Paul Holden 77c0308e74 MDL-67027 calendar: fix event update form validation. 2019-10-25 17:36:41 +01:00
Eloy Lafuente (stronk7) 991ac49b61 weekly release 3.7.2+ 2019-10-25 15:29:45 +02:00
Eloy Lafuente (stronk7) 56a0e6ed87 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-25 15:29:42 +02:00
Jake Dallimore 710bfa00e7 Merge branch 'MOODLE_37_MDL-66973' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2019-10-25 11:10:18 +08:00
Jun Pataleta 5d70a8d5ad Merge branch 'MDL-66543-37' of git://github.com/tobiasreischmann/moodle into MOODLE_37_STABLE 2019-10-24 23:08:36 +08:00
Tobias Reischmann 39a390f1f5 MDL-66543 forms: Make (hard) frozen textareas readonly (or disabled) 2019-10-24 13:44:22 +02:00
Eloy Lafuente (stronk7) 978ed33fb1 Merge branch 'MDL-66935-lock-clashes-MOODLE_37_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2019-10-24 10:03:46 +02:00
Adrian Greeve 666d420194 Merge branch 'MDL-66876-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-10-24 15:16:21 +08:00
Jun Pataleta bdf64b7eec Merge branch 'MDL-66927-run-new-adhoc-37' of https://github.com/brendanheywood/moodle into MOODLE_37_STABLE 2019-10-24 13:46:12 +08:00
Brendan Heywood 413b321344 MDL-66935 core_lock: Fix resource key clashes in db and postgres locks 2019-10-24 15:09:16 +11:00
AMOS bot 4497ed3938 Automatically generated installer lang files 2019-10-24 00:09:26 +00:00
Eloy Lafuente (stronk7) fc992c94af Merge branch 'MDL-64298-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-10-23 22:21:49 +02:00
Eloy Lafuente (stronk7) 7b04b19e06 Merge branch 'MDL-67001-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-10-23 22:17:34 +02:00
Sara Arjona 7dfa4d625b Merge branch 'MOODLE_37_STABLE_MDL-66225_async_backup_state' of https://github.com/mattporritt/moodle into MOODLE_37_STABLE 2019-10-23 17:39:22 +02:00
Juan Leyva 648ec6857b MDL-64298 gradereport_user: Fix WS returned parameter description
feedbackformat must be optional always
2019-10-23 17:16:24 +02:00
Juan Leyva f6f931728a MDL-66876 core_filter: Fix context in Web Service warning 2019-10-23 17:07:41 +02:00
Luca Bösch de254adfd3 MDL-67001 question: alignment and form spaces. 2019-10-23 11:00:11 +02:00
Matt Porritt bf0a0ed189 MDL-66225 Backup: fix irrecoverable state
Fix condition where if an asynchronous backup
completes via the UI and the user refreshes the
page a new backup was created with a mismatched
backup id.
This caused a permanently failing ad-hoc task
and blocked further backups for that course.
2019-10-23 04:18:42 +00:00
Adrian Greeve 76ebea9add Merge branch 'MDL-63125-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-23 11:07:10 +08:00
Sara Arjona 4fef7d1c87 weekly release 3.7.2+ 2019-10-22 14:48:08 +02:00
Sara Arjona 582a3baf70 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-22 14:48:05 +02:00
Paul Holden 9961411a12 MDL-63125 forms: Behat test for form autocomplete element. 2019-10-21 23:25:28 +01:00
Eloy Lafuente (stronk7) ace0fcf5b4 Merge branch 'MDL-66980_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-21 20:26:49 +02:00
Sara Arjona d3750e40ae Merge branch 'MDL-61121-37-5' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-10-21 14:46:29 +02:00
Tim Hunt 8e506aa53c MDL-66980 question bank: fix load_many_for_cache missing record check 2019-10-21 11:18:46 +01:00
Jun Pataleta 687e3b53c0 Merge branch 'MDL-66009-37' of https://github.com/grabs/moodle into MOODLE_37_STABLE 2019-10-21 16:15:13 +08:00
Jake Dallimore 285bc3e242 Merge branch 'MDL-66915-37' of https://github.com/MartinGauk/moodle into MOODLE_37_STABLE 2019-10-21 15:56:06 +08:00
Mikhail Golenkov 8dc826354d MDL-66973 search: Reset Content writer after test. 2019-10-21 17:48:45 +11:00
Andrew Nicols d5409002be Merge branch 'MDL-66962-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-10-21 14:23:27 +08:00
Luca Bösch 3e1e159efa MDL-66962 questions: Question bank table T title non breaking. 2019-10-21 08:17:15 +02:00
Andrew Nicols a4ed555b2f Merge branch 'MDL-66944_37' of https://github.com/t-schroeder/moodle into MOODLE_37_STABLE 2019-10-21 13:48:41 +08:00
Andrew Nicols 07b3e80ed1 Merge branch 'MDL-66946_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-21 12:56:54 +08:00
Jake Dallimore 023ebdb1af Merge branch 'MDL-66930-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-10-21 11:55:39 +08:00
Jake Dallimore b09d19d5bd Merge branch 'MDL-66960-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-10-21 10:41:44 +08:00
AMOS bot 3acc7fba61 Automatically generated installer lang files 2019-10-19 00:09:18 +00:00
Tim Schroeder 66039dbc91 MDL-66944 course: fixed copy-paste-error in comment 2019-10-18 22:47:11 +02:00
Tim Hunt 90766fb12b MDL-66946 quiz reports: incorrectly show teachers sometimes 2019-10-18 17:40:37 +01:00
Luca Bösch 3984d03fda MDL-66960 questions: Top align all question bank titles exc "select all" 2019-10-18 16:35:38 +02:00
Luca Bösch 0a9eae8b7a MDL-66930 quiz: Question type icon size/alignment in Boost and Classic. 2019-10-18 13:53:02 +02:00
Eloy Lafuente (stronk7) aac11a3c4b weekly release 3.7.2+ 2019-10-18 10:31:33 +02:00
Mihail Geshoski 84801cd656 MDL-61121 assign: Declare variables in the local scope 2019-10-18 13:59:58 +08:00
Mihail Geshoski 542e7b52f2 MDL-61121 assign: Improve accessibility in quick grading page tables 2019-10-18 13:59:58 +08:00
Mihail Geshoski cbc680eb33 MDL-61121 assign: Improve accessibility - view full/view summary control 2019-10-18 13:59:58 +08:00
Jun Pataleta 9a9542a238 Merge branch 'MDL-66806_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-10-18 09:36:43 +08:00
Andrew Nicols 5b3308939d Merge branch 'MDL-66919_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-10-18 08:27:52 +08:00
Eloy Lafuente (stronk7) da348e315a Merge branch 'MDL-64064-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2019-10-17 23:09:10 +02:00
Andreas Grabs ba8bc23906 MDL-66009 mod_feedback: Nested dependency fails again 2019-10-17 09:19:49 +02:00
Brendan Heywood 9c1f81775e MDL-66927 cron: Process new adhoc tasks immediately 2019-10-16 20:29:45 +11:00
Eloy Lafuente (stronk7) c6e6c935af MDL-66919 behat: fix typo in error message
Also fix a couple of phpdocs that were incorrect.
2019-10-16 00:48:55 +02:00
Eloy Lafuente (stronk7) 474159da70 weekly release 3.7.2+ 2019-10-15 23:00:02 +02:00
Martin Gauk 9ccc9ec175 MDL-66915 assign: Notify only if grade was updated in past 24 hours
Send notifications only if a grade was updated in the past 24 hours,
whether marking workflow is enabled or not.
2019-10-15 17:03:33 +02:00
Tim Hunt 2903b1ae22 MDL-66796 question bank: fix more bugs with category editing 2019-10-15 10:55:19 +08:00
Jun Pataleta 5316b73d41 Merge branch 'MDL-66821_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-15 07:36:58 +08:00
Andrew Nicols 2669dd7963 Merge branch 'MDL-66335_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-10-15 07:31:17 +08:00
Eloy Lafuente (stronk7) 4705bff0e1 MDL-66335 behat: Avoid double processing the page type
resolve_page_instance_helper() already processes the type, returning
the correct context that should be processing the navigation URL.

With that extra call to parse_page_name() the 2nd call always returns
"core", ultimately leading to tons of behat failures because "core" is
not aware of those (plugin, quiz for now) pages typology.
2019-10-15 00:02:41 +02:00
Eloy Lafuente (stronk7) 19bd02eabd Merge branch 'MDL-66335_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-14 18:55:37 +02:00
Paul Holden 0701f2f08c MDL-63125 forms: allow item removal from single-select autocomplete. 2019-10-14 17:07:54 +01:00
Eloy Lafuente (stronk7) d18f809ec4 Merge branch 'MDL-66559-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-10-14 16:37:30 +02:00
Tim Hunt 87252eae2c MDL-66335 quiz behat: using the new generic navigation steps
This converts all the navigation to quiz pages when that is not
the thing under test. Also, I decided that the Quiz settings form
belonged to the course, so did not do that here.
2019-10-14 13:13:03 +01:00
Tim Hunt df143c2923 MDL-66335 behat: new step to log in and go straight to a particular page
I did not think thought through if this new URL parameter would be a
potential security hole. The simple cop-out option is to make it only
work on Behat sites for now.
2019-10-14 13:13:01 +01:00
Tim Hunt 621e8888e5 MDL-66335 behat: generic step for navigating direct to specific pages 2019-10-14 13:12:59 +01:00
Tim Hunt ff76a9d590 MDL-66821 question behat: new step for acting on questions in the bank
There is a proposed change MDL-66816 which will change the question
bank UI. This will break any Behat tests which uses low-level steps
like

    When I click on "Duplicate" "link" in the "Test question" "table_row"

to perform an action on a question in the question bank. This commit
introduces a new step:

    When I choose "Duplicate" action for "Test question" in the question bank

This commit also converts all core Behat tests to use the new step.
2019-10-14 11:55:56 +01:00
Sara Arjona a9a9fd455a Merge branch 'MDL-66836-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-10-14 12:27:10 +02:00
Jake Dallimore 81bbf95756 Merge branch 'MDL-66659-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-14 15:33:38 +08:00
Andrew Nicols 30702cc0bd MDL-66559 behat: Register component selectors earlier 2019-10-14 14:24:05 +08:00
Andrew Nicols 5eb80c4af6 MDL-66559 behat: Update running suite 2019-10-14 14:17:47 +08:00
Jun Pataleta 1f19dc8237 Merge branch 'MDL-66796-37-fix' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-10-14 13:48:24 +08:00
Jake Dallimore ca42dbc0dd MDL-66796 mod_quiz: only update the id number if changed
If the idnumber is present in the DB, it's set to null. In this case,
don't update the value.
2019-10-14 13:40:05 +08:00
Jake Dallimore 04ed69e387 Merge branch 'MDL-66559-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-10-14 11:10:19 +08:00
Jake Dallimore b30c16ec86 Merge branch 'MDL-66796_37' of git://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-14 07:41:48 +08:00
Eloy Lafuente (stronk7) 532b7c9462 Merge branch 'MDL-66792-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-13 17:10:27 +02:00
Eloy Lafuente (stronk7) d09616d194 Merge branch 'MDL-66851-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-10-13 16:49:48 +02:00
Eloy Lafuente (stronk7) 6c06678c34 Merge branch 'MDL-65243-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-10-13 16:31:27 +02:00
Eloy Lafuente (stronk7) b089becae9 Merge branch 'MDL-65515-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-10-13 16:13:07 +02:00
Eloy Lafuente (stronk7) 703d8c2784 Merge branch 'MDL-66779-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-10-13 02:12:50 +02:00
Eloy Lafuente (stronk7) 2a7ae663c5 Merge branch 'MOODLE_37_MDL-66864' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2019-10-13 02:08:44 +02:00
Eloy Lafuente (stronk7) b303604bf1 Merge branch 'MDL-65584-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-13 01:49:47 +02:00
Eloy Lafuente (stronk7) 9f0a5cf2f5 weekly release 3.7.2+ 2019-10-11 22:43:54 +02:00
Eloy Lafuente (stronk7) 75232c7d34 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-11 22:43:42 +02:00
Neill Magill 0e57a3dede MDL-64064 block_timeline: Confusing when event is not in this year
If an event is not in the current year it can be confusing as the
months and days may appear to be in the wrong order.

This change adds the year to the displayed date to make the reason
for the order clear.
2019-10-11 08:38:29 +01:00
Tim Hunt d9dc216897 MDL-66559 behat: Documentation for component selectors 2019-10-11 12:58:16 +08:00
Andrew Nicols 814f15a05d MDL-66559 message: Move behat selectors to message subsystem 2019-10-11 12:58:16 +08:00
Andrew Nicols 50cd119caa MDL-66559 behat: Allow per-component selectors and replacements 2019-10-11 12:58:16 +08:00
Jake Dallimore caaf2427a7 Merge branch 'MDL-66804-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-10-11 09:58:16 +08:00
AMOS bot 88c69c2dcf Automatically generated installer lang files 2019-10-11 00:11:35 +00:00
Eloy Lafuente (stronk7) 4398cdace0 Merge branch 'MDL-66815_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-11 00:50:42 +02:00
David Monllaó 519142291c MDL-66806 analytics: No predictions for hidden courses 2019-10-10 10:09:28 +08:00
AMOS bot 20b96798d7 Automatically generated installer lang files 2019-10-10 00:09:26 +00:00
sam marshall 3816bd8776 MDL-66836 Behat: Reset unknown config variables between scenarios
In the Behat CLI run (not in the individual web requests), if you
modified an existing $CFG variable then this would be reset at the
start of the next scenario. However, if you added a completely new
one, it would not be reset. This change removes those variables.
2019-10-09 17:49:24 +01:00
Jun Pataleta 760ffcd6bf Merge branch 'MDL-66835_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-09 20:44:36 +08:00
Jun Pataleta 76bd81c69c Merge branch 'MDL-66450-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-10-09 20:39:59 +08:00
Bas Brands 4a8e6db894 MDL-66450 themes: form autocomplete truncate listitems 2019-10-09 14:27:08 +02:00
Tim Hunt f5fbfb4d6b MDL-66835 behat: steps for setting/checking fields in containers 2019-10-09 13:24:56 +01:00
Sara Arjona 621f04de6a Merge branch 'MDL-66852-37' of github.com:lucaboesch/moodle into MOODLE_37_STABLE 2019-10-09 12:58:07 +02:00
Damyon Wiese 93d309cce2 MDL-65243 badges: Use real time api
Never add or subtract timestamps - use the time api to do it correctly.
2019-10-09 11:55:22 +08:00
Mihail Geshoski 53cc513636 MDL-65515 badges: Split install/upgrade
Use badges/upgradelib.php for functions that only affect install/upgrade.

All credit goes to Damyon Wiese.
2019-10-09 11:43:43 +08:00
Adrian Greeve bf4f5df33e Merge branch 'MDL-66011-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-10-09 10:51:29 +08:00
Andrew Nicols d784d3751c MDL-66779 phpunit: Correct component name for core_grades 2019-10-09 09:35:27 +08:00
Andrew Nicols 7ef7de84a2 Merge branch 'MDL-66118-37-byebyemoodlenet' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-10-09 08:51:21 +08:00
Luca Bösch 259bbd1960 MDL-66852 quiz: Style "Try another question like this one" button. 2019-10-08 11:27:22 +02:00
Eloy Lafuente (stronk7) 765579d021 weekly release 3.7.2+ 2019-10-08 10:43:35 +02:00
Eloy Lafuente (stronk7) a7e0f274f5 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-08 10:43:28 +02:00
Mihail Geshoski bdef5416c3 MDL-66851 block_starredcourses: Hide 'hidden' courses from students
Thanks to Mark Sharp for the bug report and fix suggestion.
2019-10-08 09:54:15 +08:00
AMOS bot ad35c1ca2f Automatically generated installer lang files 2019-10-08 00:10:05 +00:00
Paul Holden 958b331ada MDL-65584 blog: safer deletion of associations in privacy provider.
It's possible that the given context list contains no posts, which caused
an exception to be thrown when passing an empty array to get_in_or_equal.
2019-10-08 00:23:40 +01:00
Eloy Lafuente (stronk7) 470ba08790 Merge branch 'MDL-66801_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-08 01:16:36 +02:00
Eloy Lafuente (stronk7) 7ac967501b Merge branch 'MDL-66734-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-10-07 23:04:10 +02:00
Eloy Lafuente (stronk7) 4bb12ff74d Merge branch 'MDL-66764_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-07 22:51:11 +02:00
Eloy Lafuente (stronk7) 0ffb67352b Merge branch 'MDL-66750_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-10-07 22:00:13 +02:00
Adrian Greeve 713a5cdb97 Merge branch 'MOODLE_37-MDL-66794' of https://github.com/golenkovm/moodle into MOODLE_37_STABLE 2019-10-07 14:30:53 +08:00
Mikhail Golenkov bf61d3f2b7 MDL-66864 upgrade: Delete non-mutual contacts in chunks. 2019-10-07 16:28:16 +11:00
Marina Glancy f7ea6feec7 MDL-65187 core_hub: truncate registration request, use post 2019-10-07 11:46:31 +08:00
Marina Glancy b46eb4266d MDL-65187 core_hub: send more important info first to moodle.net
Rumor has it that some browsers may truncate the GET request to 2000 characters,
make sure that all important info is sent first
Everything else will be updated on the first registration update request.
2019-10-07 11:46:20 +08:00
David Mudrák e8bc91383d MDL-66118 hub: Remove the mentions of moodle.net
This is an update of the site registration admin page and some relevant
backend code to remove the mentions of moodle.net.

AMOS BEGIN
 CPY [registerwithmoodleorg,core_admin],[registerwithmoodleorg,core_hub]
AMOS END
2019-10-04 21:38:07 +02:00
David Mudrák 75bb4372ca MDL-66118 hub: Stop using the hub URL as the setting name suffix
Site indicators shared with the registration hub used to have the hub
URL in the relevant setting names - such as site_name_httpsmoodlenet.
This upgrade step converts all such settings and drops the URL suffix
because we do not support alternative hubs any more.

Additionally the upgrade step renames the official hub and updates its
URL so that existing registrations with https://moodle.net are still
valid.
2019-10-04 21:38:07 +02:00
David Mudrák 1d0dc3102a MDL-66118 hub: Define the new sites directory URL
The Moodle sites now register with stats.moodle.org so use that as a new
official hub's URL. Beside that, allow for the alternative value be
provided in config.php for development and testing purposes.
2019-10-04 21:34:53 +02:00
Eloy Lafuente (stronk7) 8b89ab5798 weekly release 3.7.2+ 2019-10-04 16:01:45 +02:00
Eloy Lafuente (stronk7) 67ccb85794 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-10-04 16:01:39 +02:00
Jun Pataleta 60e2e906f1 Merge branch 'MDL-65315-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-10-04 10:25:07 +08:00
Andrew Nicols aeccf1b188 MDL-66011 test: remove magic @covers lines 2019-10-04 09:40:50 +08:00
Andrew Nicols 512320cd6c MDL-66011 tests: Stop forcing coverage annoation 2019-10-04 09:40:50 +08:00
AMOS bot aefc7f7f70 Automatically generated installer lang files 2019-10-04 00:11:51 +00:00
Eloy Lafuente (stronk7) 2ab788bcf8 Merge branch 'MDL-56649-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-10-03 19:37:24 +02:00
Jun Pataleta 2ecdf811f3 Merge branch 'MDL-61450-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-10-03 15:42:08 +08:00
Jun Pataleta 8a6d5c8c88 MDL-61450 calendar: Unit test for calendar_view_event_allowed()
* Unit test for calendar_view_event_allowed() when dealing with course
events.
2019-10-03 15:39:17 +08:00
Simey Lameze 765ef31f00 MDL-61450 calendar: fix course event type permissions 2019-10-03 15:39:17 +08:00
Eloy Lafuente (stronk7) e011fc3dfb Merge branch 'MDL-66774-37-macedonia' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-10-03 00:58:25 +02:00
Eloy Lafuente (stronk7) b08e192757 Merge branch 'MDL-66197-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-10-03 00:45:42 +02:00
Eloy Lafuente (stronk7) a4ec901a4d Merge branch 'MDL-65957-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-10-02 16:49:39 +02:00
Mihail Geshoski a99105cc33 MDL-65957 repository_upload: Throw exception if @_file_upload is missing 2019-10-02 09:27:32 +08:00
Eloy Lafuente (stronk7) 8278f79219 Merge branch 'MDL-65335_37_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_37_STABLE 2019-10-01 23:22:32 +02:00
Tim Hunt 5fa3dccf4b MDL-66815 behat: question category generator must find right parent id
This is implemented in a bit of a hacky way, because the only other
alternative would be a large rewrite of the whole class, which is
not feasible for me right now. Note that many other types of thing
that can be generated suffer from the same issue. (E.g. if you ever
wanted to generate two groups with the same name in two different
courses and then add group memebers.)

It is worth doing a special-case fix for question categories, because
way Moodle works, it is inevitable that we end up with many categories
called 'top' in the database.
2019-10-01 16:48:15 +01:00
Eloy Lafuente (stronk7) b306a159de Merge branch 'MDL-65522-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2019-10-01 16:10:34 +02:00
Eloy Lafuente (stronk7) 14d1be23c1 Merge branch 'MDL-66542_37' of https://github.com/t-schroeder/moodle into MOODLE_37_STABLE 2019-10-01 15:58:20 +02:00
Paul Holden 3f4935dfda MDL-66659 core: observe viewfullnames capability in flexible_table. 2019-10-01 10:15:15 +01:00
Jake Dallimore 3958f4a302 MDL-66734 core_comment: fix get_comment ordering when timestamps match
Include id in the sorting, to be sure that we always get the correct
record in cases where the comment timestamps are the same.
2019-10-01 09:18:56 +08:00
Paul Holden 3c7f5e8472 MDL-66792 tool_dataprivacy: correct fa classes in privacy registry. 2019-09-30 23:54:52 +01:00
Paul Holden 7db4bf3b34 MDL-66804 user: consistent user access times in privacy export. 2019-09-30 23:14:55 +01:00
Eloy Lafuente (stronk7) baa5130e0a Merge branch 'MDL-65876-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-10-01 00:07:41 +02:00
Tim Hunt 01d1ae9a5b MDL-66801 questions: XML import/export should include category idnumbers 2019-09-30 19:00:20 +01:00
Tim Hunt 1fa5fe2104 MDL-66796 question bank: 0 is a valid question category idnumber 2019-09-30 14:19:37 +01:00
Tim Schroeder c91312545d MDL-66542 lib: Fix quote escaping in JS quote helper 2019-09-30 10:17:59 +02:00
Neill Magill 68e8070295 MDL-65522 block_social_activities: Improve behat steps documentation
The documentation for these steps was not helpful in the Acceptance
testing admin tool page.
2019-09-30 08:58:51 +01:00
Mikhail Golenkov c2ba01fe9e MDL-66794 core_customfield: Reset Course handler after unit tests run. 2019-09-30 11:12:33 +10:00
Luca Bösch 6714c137c8 MDL-65876 forum: same arrows forum/activity navigation 2019-09-27 14:20:09 +02:00
Jun Pataleta 31f8f75672 weekly release 3.7.2+ 2019-09-27 11:12:23 +08:00
Jun Pataleta 8d268a8d04 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-09-27 11:12:22 +08:00
David Mudrák ac210ad583 MDL-66774 lang: Update the list of countries as per ISO 3166-1
Source: https://www.iso.org/obp/ui/

Two significant changes are:

* North Macedonia
* Eswatini

All other changes are formal, such as changing the letter case of the
"And" (the current ISO uses the lower case "and").  Our own existing
modifications of the list (such as having just "United States" and
"United Kingdom" instead of the full long name) were kept.
2019-09-26 10:44:56 +02:00
Jun Pataleta 29d555ab48 Merge branch 'MDL-66262_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-09-26 11:34:39 +08:00
Eloy Lafuente (stronk7) 86fa1ca83d Merge branch 'MDL-66106-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-09-26 00:54:25 +02:00
Jake Dallimore 8a5783c2be MDL-66169 admin: properly set debugsmtp, which is a config.php only var
This may not be set, so care must be taken to conditionally reinstate
the value, once the test email has been sent.
2019-09-26 00:48:30 +02:00
Eloy Lafuente (stronk7) fc71bf1e4a Merge branch 'MDL-51327-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-09-26 00:04:53 +02:00
Eloy Lafuente (stronk7) 0845113531 Merge branch 'MDL-66685_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-09-25 23:57:55 +02:00
Eloy Lafuente (stronk7) c131927ae5 Merge branch 'MDL-66675-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-25 20:06:11 +02:00
Marina Glancy f1b71b0199 MDL-66197 core: correct get parent language 2019-09-25 17:41:53 +02:00
Bas Brands 952b0caf57 MDL-56649 themes: filepicker file exists buttons spacing 2019-09-25 12:20:39 +02:00
Tim Hunt 2366f12757 MDL-66764 quiz: redo question should not repeat random questions
Before this fix, it was only considering questions seen in previous attempts.

It should avoid the questions in the current attmept too.
2019-09-25 11:05:13 +01:00
Jun Pataleta 3135b6f694 Merge branch 'MDL-66354-37' of http://github.com/dravek/moodle into MOODLE_37_STABLE 2019-09-25 16:42:59 +08:00
David Matamoros 4be324b42a MDL-66354 core_calendar: Notices in error.log on calendar events 2019-09-25 09:11:32 +02:00
Jun Pataleta 2d887636e6 Merge branch 'MDL-66644-37-versionrequires' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-09-25 14:53:44 +08:00
Adrian Greeve 4e0b890955 Merge branch 'wip_MDL-66656_m37' of git://github.com/gjb2048/moodle into MOODLE_37_STABLE 2019-09-25 11:41:18 +08:00
Eloy Lafuente (stronk7) ee1fac1fd8 Merge branch 'MDL-65621-dimmed-courses-MOODLE_3.7' of https://github.com/stopfstedt/moodle into MOODLE_37_STABLE 2019-09-24 19:08:37 +02:00
David Monllaó 0a397e3fd2 MDL-66394 analytics: Extra GC during analysis
(backport of MDL-66234)
2019-09-24 14:08:24 +02:00
Mihail Geshoski f4397e3098 MDL-51327 core_course: Allow subdirs in edit section form 2019-09-24 09:08:54 +08:00
AMOS bot cc2932aefa Automatically generated installer lang files 2019-09-24 00:09:34 +00:00
Peter ce20bd7a73 MDL-65315 badges: Update the class and issuer OBv2.0 url 2019-09-24 07:59:18 +08:00
Tim Hunt f5f5bfbdf7 MDL-66750 formslib selects: handle size attribute properly 2019-09-23 12:15:08 +01:00
AMOS bot e3e8ee312b Automatically generated installer lang files 2019-09-22 00:09:19 +00:00
Gareth Barnard 5f2dd1bd50 MDL-66656 format_social: Edit Summary Icon leads to 'File not found'. 2019-09-20 21:46:43 +01:00
Sara Arjona 26c79027ff Merge branch 'MDL-46978-MOODLE_37_STABLE' of github.com:tuanngocnguyen/moodle into MOODLE_37_STABLE 2019-09-20 13:07:39 +02:00
Sara Arjona cfbcdc97e5 Merge branch 'MDL-66090_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-09-20 12:46:24 +02:00
Mark Johnson 6bdfddc463 MDL-65335 auth: Make oauth2 enabled check more efficient 2019-09-20 08:55:32 +01:00
Jake Dallimore 481d6f6387 Merge branch 'MDL-65970-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-20 14:28:36 +08:00
Jake Dallimore a174ed3736 MDL-66106 core_form: fix client side validation bug caused by MDL-65217
Forms with randomised ids need to support client side validation.
2019-09-20 09:04:37 +08:00
Sara Arjona eb77088991 weekly release 3.7.2+ 2019-09-19 21:19:19 +02:00
Stefan Topfstedt a9c3e2f95e MDL-66433 block_myoverview: tag courses as "hidden from students"
This is intended to visually separate hidden course from open courses in the course overview block
by applying a "Hidden from students" tag to the various views in this block.
To achive this, the course summary exporter's output must be augmented with a "visiblity" attribute,
carrying the given course's corresponding visibility setting.
Since the exporter now expects this data point as part of its input, the output of the course_get_recent_courses()
function had to also be augmented with the course visibility setting to provide this value.
2019-09-19 10:11:03 -07:00
Nathan Nguyen 9cab0bb465 MDL-46978 core_grades: preserve category total visibility 2019-09-19 14:11:16 +10:00
Andrew Nicols 53c04bafc2 MDL-66675 behat: Fix typo in step function name 2019-09-19 07:31:07 +08:00
Andrew Nicols 409b3bbd81 MDL-66675 behat: Add option to pause on behat failures 2019-09-19 07:31:06 +08:00
Andrew Nicols fcad36339a MDL-66675 CLI: Add ANSI formatting options 2019-09-19 07:31:06 +08:00
Eloy Lafuente (stronk7) 10892d50d2 Merge branch 'MDL-66548-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-09-19 01:01:46 +02:00
Eloy Lafuente (stronk7) 69aca65995 Merge branch 'MDL-66641_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-09-18 20:30:04 +02:00
Eloy Lafuente (stronk7) ec5aca167c Merge branch 'MDL-65878-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-09-18 20:07:59 +02:00
Luca Bösch 59cf70e977 MDL-65878 core_output: Move button not sticky to select field. 2019-09-18 19:11:37 +02:00
Eloy Lafuente (stronk7) 1c8d4b0bce Merge branch 'MDL-63895-37' of git://github.com/vmdef/moodle into MOODLE_37_STABLE 2019-09-18 17:33:26 +02:00
Sara Arjona ed401f9445 Merge branch 'MDL-66614_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-09-18 17:11:07 +02:00
Eloy Lafuente (stronk7) a80c888892 Merge branch 'MDL-66091_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-09-18 16:47:09 +02:00
Sara Arjona 6354c24aed Merge branch 'MDL-63293-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-09-18 13:40:01 +02:00
Sara Arjona 5d21bf1b16 Merge branch 'MDL-66156-37' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-09-18 12:25:48 +02:00
David Monllaó 4a3f3ee3e4 MDL-66091 report_insights: Unify contextwithinsights cache sets 2019-09-18 13:00:26 +08:00
David Monllaó b2d9aaa126 MDL-66091 analytics: Targets choose if there should be a report or not 2019-09-18 13:00:25 +08:00
David Monllaó 5e17f2faeb MDL-66091 report_insights: Usability improvements
- More feedback provided for the user once they click on useful/notuseful from the email.
- Replace the indicator calculations table headers for the table caption and
  replace the text by just "Indicators"
- Replace "System" for the site name for insights generated at system
  level
- Replace "$modelname prediction" for "$modelname" in report/insights/prediction.php
  heading

MDL-66091
2019-09-18 13:00:25 +08:00
Eloy Lafuente (stronk7) 92e745c293 Merge branch 'MDL-65026-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-18 01:01:42 +02:00
Juan Leyva f4670d9e85 MDL-65970 airnotifier: Set lower timeout for Push curl requests 2019-09-17 16:51:06 +02:00
Eloy Lafuente (stronk7) cc1968a042 Merge branch 'MDL-62915-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-09-17 16:21:57 +02:00
Sara Arjona 7e107b3a98 Merge branch 'MDL-66113-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-17 12:03:53 +02:00
David Monllaó 6c15dc2f3c MDL-66090 analytics: Support user for notifications 2019-09-17 07:54:22 +08:00
Eloy Lafuente (stronk7) 072c1ad68e Merge branch 'MDL-65025-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-17 00:06:03 +02:00
Paul Holden 0590e71eeb MDL-62915 tool_dataprivacy: don't let primary admin delete themselves. 2019-09-16 22:31:40 +01:00
Eloy Lafuente (stronk7) 3536e97dc8 Merge branch 'MDL-66293-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-09-16 20:37:08 +02:00
Bas Brands f5cb0ec042 MDL-66548 theme_classic: secure layout block position fixes
- the secure layout for theme classic used an icorrect layout for blocks
and content. A fix has been submitted by G J Barnard.
2019-09-16 16:03:50 +02:00
Tim Hunt 40ed8aa97a MDL-66685 questions: should able to save an empty question usage 2019-09-16 14:36:47 +01:00
Juan Leyva 309550be69 MDL-65026 course: Fix modules intro formatting in WS
The Web Service seems to be doing excessive text cleaning.
2019-09-16 13:04:06 +02:00
Juan Leyva 535caf12c6 MDL-66113 assign: Apply user overrides in get_submission_status WS 2019-09-16 12:06:18 +02:00
Paul Holden e4bb1b0d75 MDL-63293 enrol_manual: observe user paging config in enrol dialog. 2019-09-15 21:48:13 +01:00
Eloy Lafuente (stronk7) bd3ce90c13 MDL-66262 env: Moodle 3.6.x and 3.7.x do not support PHP 7.4 2019-09-13 17:43:52 +02:00
Jake Dallimore 1542213b00 weekly release 3.7.2+ 2019-09-13 11:30:20 +08:00
Jake Dallimore 6a838cd4a0 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-09-13 11:30:19 +08:00
Eloy Lafuente (stronk7) c0858f7068 Merge branch 'MDL-66550-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-12 15:31:44 +02:00
Andrew Nicols 1128545ebf MDL-66550 admin: The execute wrapper MUST be used in behat 2019-09-12 20:58:10 +08:00
Andrew Nicols 484606eb08 MDL-66550 theme: Wrap JS calls in pendingJS 2019-09-12 20:58:10 +08:00
Víctor Déniz Falcón 2d28f15a3a MDL-63895 user: Hide suspended enrolments to user without capability
Users without course:viewsuspendedusers capability should not view
suspended users on the participant list
2019-09-12 11:46:41 +01:00
Shamim Rezaie e6f2757f3c MDL-66293 javascript: set maximum paging bar size to 10 2019-09-12 14:22:13 +10:00
Shamim Rezaie f525ed2bdc MDL-66293 javascript: Added support to set bar size for paging bars 2019-09-12 14:22:13 +10:00
Jake Dallimore df991a4d53 MDL-66156 block_myoverview: remove orphaned course favourite records 2019-09-12 12:09:49 +08:00
Jake Dallimore d72a6fc04c MDL-66156 block_myoverview: purge course favourites on course deletion. 2019-09-12 11:47:50 +08:00
Andrew Nicols 83ecf18e34 Merge branch 'MDL-66498_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-09-12 11:16:44 +08:00
Jake Dallimore 49b92a4a70 Merge branch 'MDL-64917-MOODLE_37_STABLE' of https://github.com/tuanngocnguyen/moodle into MOODLE_37_STABLE 2019-09-12 09:28:13 +08:00
Nathan Nguyen d540a0ae0b MDL-64917 filepicker: change event dispatch 2019-09-12 11:01:19 +10:00
AMOS bot a2f1de61a0 Automatically generated installer lang files 2019-09-12 00:09:22 +00:00
Andrew Nicols ae89df663a Merge branch 'MDL-66489-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-09-12 07:06:43 +08:00
Shamim Rezaie ee8d64f6ef MDL-66489 enrol: Send all form data to WS and do all busines logic there
It is discouraged to use JS Date functions. We should pass all raw data to PHP.
2019-09-11 20:31:56 +10:00
Andrew Nicols 11ac4acdb1 Merge branch 'MDL-65429-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-09-11 14:22:46 +08:00
Jake Dallimore c3fbb0278b Merge branch 'MDL-65493-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-11 13:45:40 +08:00
David Monllaó 375c1b8e20 MDL-66498 analytics: get_samples() with no params limit 2019-09-11 12:44:38 +08:00
David Monllaó 868cd1eacb MDL-66498 analytics: Avoid get_in_or_equal for big arrays
Also, join directly with context table.
2019-09-11 12:44:38 +08:00
David Monllao 4996652352 MDL-66498 analytics: SQL IN in chunks 2019-09-11 12:44:38 +08:00
Andrew Nicols 3857644a5c Merge branch 'MDL-66328_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-09-11 12:21:33 +08:00
Jake Dallimore eb8ecb04b6 Merge branch 'MDL-66550-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-11 10:39:57 +08:00
Eloy Lafuente (stronk7) 8e6fdc1cdb Merge branch 'MDL-66436-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-09-11 01:21:49 +02:00
Eloy Lafuente (stronk7) 733a5b75e9 Merge branch 'MDL-65310-37' of https://github.com/tsmilan/moodle into MOODLE_37_STABLE 2019-09-11 00:44:39 +02:00
David Mudrák af58905893 MDL-66644 admin: Display required moodle version only when declared
The minimum required Moodle version specified in the plugin's
version.php file is not a mandatory field. If it is not declared, do not
display "Moodle {$a}".
2019-09-10 17:40:07 +02:00
Andrew Nicols af0fd8128f MDL-66550 forum: Target fields in a fieldset for behat test 2019-09-10 21:29:03 +08:00
Andrew Nicols b559117706 MDL-66550 behat: Transform fields to search in a fieldset 2019-09-10 21:29:03 +08:00
Andrew Nicols 4e6831d51c MDL-66550 behat: Standardise finding in core functionality 2019-09-10 21:29:03 +08:00
Andrew Nicols e60183e163 MDL-66550 behat: Add ability to transform a specific selector 2019-09-10 21:29:00 +08:00
Andrew Nicols 59b30e3dae MDL-66550 behat: Normalise selectors better 2019-09-10 21:28:47 +08:00
Tim Hunt 87cc8008f4 MDL-66641 quiz stats: discriminativeefficiency is already out of 100 2019-09-10 12:12:00 +01:00
Jake Dallimore 35a8f83e2c Merge branch 'MDL-66409-edit-numerical/moodle37' of https://github.com/RaAstons/moodle into MOODLE_37_STABLE 2019-09-10 13:35:00 +08:00
Andrew Nicols a31372df3f Merge branch 'MDL-63250-37' of https://github.com/Kathrin84/moodle into MOODLE_37_STABLE 2019-09-10 12:40:41 +08:00
Jake Dallimore 252cc45466 Merge branch 'MDL-66599_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-09-10 10:47:00 +08:00
Tim Hunt b652d2afc7 MDL-66328 groups: overview page can require lots of memory 2019-09-09 11:20:00 +01:00
Raphaël Santos 070453243b MDL-66409 mod_lesson: Fix editing of numerical pages
This avoids using the "magic" `isset` function implemented
within the lesson_base class (which returns the `empty` function).
In the case of the answer beeing `0`, the test fails and the answer
is considered to be deleted.
2019-09-09 09:43:32 +02:00
David Monllaó 991a4c0fd1 MDL-66599 analytics: New index for analytics_used_analysables 2019-09-09 08:32:51 +08:00
Jake Dallimore 6a30269d98 Moodle release 3.7.2 2019-09-06 11:50:45 +08:00
Trisha Milan 8faaa5da65 MDL-65310 block_timeline: Hide activities without due date 2019-09-06 13:48:24 +10:00
Andrew Nicols f6dd23d9a2 MDL-65493 core: Add pendingJS around pubsub.publish 2019-09-06 08:40:56 +08:00
Andrew Nicols b82faf7eda MDL-65493 message: The execute wrapper MUST be used 2019-09-06 08:40:56 +08:00
Andrew Nicols 191c5c293a MDL-65493 message: JS fixes for random behat fails 2019-09-06 08:40:56 +08:00
Luca Bösch 8d2bae85ed MDL-66436 glossary: Edit and delete categories form styles. 2019-09-05 18:02:28 +02:00
Eloy Lafuente (stronk7) e064cef324 weekly release 3.7.1+ 2019-09-05 17:14:43 +02:00
Eloy Lafuente (stronk7) eca36ffd7c Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-09-05 17:14:41 +02:00
Andrew Nicols 4f32de51a9 MDL-66614 pgsql DML: Update get_records_sql to consume less memory
This is a backport of MDL-66327.

It's more memory efficient to use `pg_fetch_assoc` for each row than to
call `pg_fetch_all` and release memory immediately. This is because we
can treat the assoc fetch like an iterator and it only fetches the
current record into memory one at a time, whilst the all fetch fetches
all records and never unsets them. Attempting to unset them is extremely
time consuming.
2019-09-05 16:01:44 +01:00
Jake Dallimore 5f115af823 Merge branch 'MDL-56223-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-09-05 17:20:28 +08:00
Simey Lameze 474a338a97 MDL-56223 calendar: fix wrong create_calendar_events WS phpdoc 2019-09-05 17:16:06 +08:00
Simey Lameze 7bbc73ce0c MDL-56223 calendar: show the number of deleted events 2019-09-05 17:16:05 +08:00
Simey Lameze cb5145334d MDL-56223 calendar: skip events updating if nothing has changed 2019-09-05 17:16:05 +08:00
Jake Dallimore 5a552ad6f3 Merge branch 'MDL-66551-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-09-05 11:15:16 +08:00
Simey Lameze 5c1115ba0b MDL-66551 core_user: remove orphaned calendar subscriptions 2019-09-05 11:07:47 +08:00
Simey Lameze 7ec6835728 MDL-66551 core_user: delete_user() should remove users calendar subs 2019-09-05 10:52:10 +08:00
Andrew Nicols e567e64d12 Merge branch 'MDL-66391-37' of https://bitbucket.org/isprynt/moodle into MOODLE_37_STABLE 2019-09-05 09:59:28 +08:00
Eloy Lafuente (stronk7) bade4a18e5 Merge branch 'MDL-66072-37-2' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-09-05 02:48:17 +02:00
Eloy Lafuente (stronk7) 49ab08f771 Merge branch 'MDL-66560-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-09-05 02:17:37 +02:00
AMOS bot 3923a219bd Automatically generated installer lang files 2019-09-05 00:11:58 +00:00
Segun Babalola 750ec445bd MDL-66391 core_course: Fix to send correct Ajax parameter for userid 2019-09-04 12:26:11 +01:00
Andrew Nicols 1dfd080f54 Merge branch 'MDL-66137-37_mod_assign_marking_workflow_incorrect_grade_display' of https://github.com/tomdickman/moodle into MOODLE_37_STABLE 2019-09-04 13:47:50 +08:00
Tom Dickman 3c239a6a11 MDL-66137 mod_assign: fixed marking workflow incorrect grade display
Aligned logic between quick grading changes and set marking workflow state changes to accurately
finalise or remove final grade from the gradebook, depending on the marking workflow state if
being used.
2019-09-04 15:23:09 +10:00
Andrew Nicols 4da24e858c Merge branch 'MDL-66554-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-04 12:39:29 +08:00
Andrew Nicols 4d4a8423b0 Merge branch 'MDL-66500-37-unoconvwarning' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-09-04 12:14:23 +08:00
Ryan Wyllie b937159eed MDL-62284 javascript: prevent nested JS mustache handler calls
Prevent the JS mustache helper from being executed from within
the render call of another mustache helper because it can allow
users to inject JS into the page.
2019-09-04 11:23:35 +08:00
Ryan Wyllie 0c4d9eff86 MDL-62284 output: prevent nested JS mustache handler calls
Prevent the JS mustache helper from being executed from within
the render call of another mustache helper because it can allow
users to inject JS into the page.
2019-09-04 11:23:35 +08:00
Jake Dallimore 25f23432f3 Merge branch 'MDL-66265-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-04 11:06:42 +08:00
Andrew Nicols 3a0efca438 MDL-66265 javascript: More specific overrides in eslintrc 2019-09-04 10:48:57 +08:00
Eloy Lafuente (stronk7) 1124ceea9a Merge branch 'MDL-66265-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-04 02:12:52 +02:00
AMOS bot e5cddc8c7e Automatically generated installer lang files 2019-09-04 00:11:10 +00:00
Eloy Lafuente (stronk7) 1f6ca1e497 Merge branch 'MDL-66532-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-04 02:01:15 +02:00
Peter 332da1d527 MDL-66072 core: Remove ancillary sharing functions and code 2019-09-04 07:34:06 +08:00
Peter 645beae25f MDL-66072 core: Remove course sharing and related capabilities 2019-09-04 07:33:33 +08:00
Andrew Nicols 1831e2b2fc MDL-66265 javascript: Add jshint ignore for ES6 files in root dir 2019-09-04 06:52:07 +08:00
Andrew Nicols ca88210f3f MDL-66265 javascript: Add basic jshint ignores 2019-09-04 06:50:55 +08:00
Andrew Nicols 05582654f2 MDL-66265 javascript: Bump jshint version 2019-09-04 06:50:55 +08:00
Andrew Nicols c5f693dede MDL-66532 javascript: Lock NPM version for NVM 2019-09-04 06:50:55 +08:00
Andrew Nicols 7f9d364fd2 MDL-66532 javascript: Lock NPM version for NVM 2019-09-04 06:45:51 +08:00
Eloy Lafuente (stronk7) b1f0f049d0 Merge branch 'MDL-63315-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-09-04 00:15:07 +02:00
Eloy Lafuente (stronk7) 0ac06b7216 Merge branch 'MDL-66120-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-09-03 12:13:36 +02:00
Andrew Nicols 499dfeff2a Merge branch 'MDL-66434-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-09-03 12:41:11 +08:00
Andrew Nicols 59d7f7f2cb Merge branch 'MDL-62161-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-09-03 11:50:17 +08:00
Andrew Nicols 57e38ad969 Merge branch 'MDL-65042-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-09-03 09:29:24 +08:00
AMOS bot 54a8fef92f Automatically generated installer lang files 2019-09-03 00:11:33 +00:00
Eloy Lafuente (stronk7) cdbe521e62 Merge branch 'MDL-66457-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-09-03 00:54:54 +02:00
sam marshall 8571a061e7 MDL-63315 DB: Postgres - Clear cursors in persistent connection
If there is a PHP fatal error and destructors do not run (this can
happen in out-of-memory errors, and maybe if there is an error in a
previous destructor) then Postgres cursors may be left open.

Usually this does not cause a problem because the connection is
closed anyway, but if using persistent connections, a future
request may reuse the connection with a cursor open. It then gets
errors when it tries to create a new cursor with the same name.

This change closes all cursors at the start of a persistent
connection.
2019-09-02 14:10:05 +01:00
Peter 19069c7f28 MDL-66120 block_community: Disable community block and related caps
Disable community block access
2019-09-02 15:51:52 +08:00
Juan Leyva 18b42d9835 MDL-66501 tool_mobile: Prevent URLs in custom scheme 2019-09-02 15:29:27 +08:00
Jun Pataleta ebd3da32b5 MDL-66187 format_singleactivity: Make sure available types is not empty 2019-09-02 05:07:37 +02:00
Andrew Nicols b70e27f531 MDL-66187 course: Respect :addinstance in single activity format 2019-09-02 05:07:37 +02:00
Simey Lameze bd7217b3d8 MDL-65749 lib: fix phpmailer file handling 2019-09-02 05:07:37 +02:00
Andrew Nicols d99d036b44 MDL-66181 course: Only assign roles that the user is allowed to assign 2019-09-02 05:07:37 +02:00
Andrew Nicols 858f188c0f MDL-66181 behat: You check checkboxes, not click them 2019-09-02 05:07:37 +02:00
Michael Hawkins d31f12bcbd MDL-55451 mod_forum: Limit subscription redirect to internal URLs 2019-09-02 05:07:37 +02:00
David Monllaó b7f8d08706 MDL-66069 mlbackend_python: Bump to a new version of the package 2019-09-02 05:07:37 +02:00
Andrew Nicols ee4a93267f Merge branch 'MDL-66472-37' of https://github.com/Dagefoerde/moodle into MOODLE_37_STABLE 2019-09-02 11:03:00 +08:00
Andrew Nicols da7d965e01 Merge branch 'MDL-33087-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-09-02 10:48:05 +08:00
David Mudrák 5e52542b1e MDL-66504 lang: Use the new strings in the Behat scenario 2019-09-01 12:34:53 +02:00
Helen Foster 767b4df9c3 MDL-66504 lang: Import fixed English strings (en_fix)
Significant string changes:

- mobilenotificationsdisabledwarning,tool_mobile - location corrected
- statsreport14,core - 'views/posts' corrected to 'posts/views'
- err_nousers,core_completion - explanation of who completion
- information is displayed for errorcourselisting,block_community - note
  about sunsetting moodle.net
2019-09-01 12:34:25 +02:00
Paul Holden 10539bfad8 MDL-62161 user: preserve all selected users between searches. 2019-08-30 14:37:20 +01:00
Paul Holden 69f5ad8f36 MDL-33087 tool_capability: correct role override link. 2019-08-30 14:34:34 +01:00
Luca Bösch 8d650c02c4 MDL-66560 import: Format course search UI elements. 2019-08-30 11:32:16 +02:00
Andrew Nicols e971f11251 MDL-66457 behat: simplify selector search 2019-08-30 15:13:07 +08:00
Luca Bösch 1ca2f014bb MDL-66434 mod_data: Align 'Field description' field as all other fields. 2019-08-30 07:57:30 +02:00
Jake Dallimore f3c2624fbc weekly release 3.7.1+ 2019-08-30 13:12:12 +08:00
Jake Dallimore 543191e0dc Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-08-30 13:12:11 +08:00
Peter 341c68c779 MDL-65429 mod_forum: Indicate subs fetch completion with no subs
Unit tests updated to make sure only a single query is executed after
multiple reads
2019-08-30 09:08:29 +08:00
Juan Leyva ecf1a221dc MDL-66554 mod_scorm: Set module viewed in WS 2019-08-29 20:46:11 +01:00
Jake Dallimore 2a1ef8b3a7 Merge branch 'MDL-66139_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-08-29 11:51:42 +08:00
Netica Informática 77399dd147 MDL-66139 cachestore_redis: Fix connection problems when port is not set
Due to some changes in Redis 5 php extension Moodle fails to connect via TCP when
no port is set. It's fixed upstream in phpredis repo (version 5.0.0, 5.0.1 and
5.0.2 affected so far), but with this patch we'll send the right port anyway.
2019-08-28 20:58:46 +02:00
Eloy Lafuente (stronk7) 48aad65284 Merge branch 'MOODLE_37_STABLE_MDL-65116' of https://github.com/yao9394/moodle into MOODLE_37_STABLE 2019-08-28 16:40:08 +02:00
Adrian Greeve a5eac2bf95 Merge branch 'MDL-66230-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-08-28 14:55:55 +08:00
Pau Ferrer Ocaña 15ebf11b5e MDL-66458 forum: Fix noviewdiscussionspermission string 2019-08-28 11:27:01 +08:00
Adrian Greeve f0c559d33b Merge branch 'MDL-66461-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-08-28 11:17:09 +08:00
Adrian Greeve 8da3995f30 Merge branch 'MDL-66468-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-08-28 08:56:30 +08:00
AMOS bot 903f4721c9 Automatically generated installer lang files 2019-08-28 00:10:47 +00:00
Adrian Greeve 810e115d6f Merge branch 'MDL-65653-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-08-27 15:09:07 +08:00
Eloy Lafuente (stronk7) 3b7968954c MDL-66184 core: Update composer to apply for php 7.1.0 as min
With behat extension v3.37.2 we started requiring php 7.1.0
(same requirement than core 3.7.x). This bumps all the components
in the lock file to suit that requirement.

Generated with php 7.1.x.
2019-08-27 00:37:45 +02:00
David Mudrák 15847cecbf MDL-66500 lang: Do not mark unoconvwarning as deprecated
It has been deprecated by mistake.
2019-08-26 21:29:16 +02:00
Eloy Lafuente (stronk7) 4e41fc8b18 Merge branch 'MDL-66309-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-08-26 20:23:13 +02:00
Eloy Lafuente (stronk7) c4e65af6f3 Merge branch 'MDL-66312-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-26 19:40:27 +02:00
Jan Dageförde 5ab6beeb50 MDL-66472 forms: Fix regression autocomplete not closing 2019-08-26 17:58:05 +02:00
Eloy Lafuente (stronk7) 684d142401 weekly release 3.7.1+ 2019-08-23 19:16:34 +02:00
Jun Pataleta 78d57d0ae7 Merge branch 'MDL-66483_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-08-23 20:15:16 +08:00
sam marshall df8633b8d0 MDL-66309 block_recentlyaccesseditems: Improve upgrade performance 2019-08-23 11:35:35 +01:00
Eloy Lafuente (stronk7) a22c821033 MDL-66483 lib: remove recent xmlize dep on setuplib/CFG
This removes the dependency added by MDL-66110 (aiming to fix
a CI job). So we keep things as they were and will fix the
CI job separately.
2019-08-23 11:30:50 +02:00
Adrian Greeve e3bd18d3d7 weekly release 3.7.1+ 2019-08-23 12:55:36 +08:00
Adrian Greeve 9856202e71 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-08-23 12:55:28 +08:00
John Yao c5892e5e37 MDL-65116 mod_assign : Assignment due date does not update for groups
This commit fixes the assignment due date not showing correctly according to groups selected by users who can view grades
2019-08-23 13:11:36 +10:00
Jun Pataleta 9c0aa6e6d0 Merge branch 'MDL-66110-37-fix' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-08-23 10:21:25 +08:00
Jun Pataleta 97a6abc12f MDL-66110 core: Require setuplib.php once as it's required by xmlize.php 2019-08-23 10:16:08 +08:00
Juan Leyva 7cea622409 MDL-66468 file: Return text content when using IGNORE_FILE_MERGE 2019-08-22 13:11:58 +01:00
Jun Pataleta 085d6e79e1 Merge branch 'MDL-66110-37-fix' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-08-22 16:26:07 +08:00
Jun Pataleta ddc3699107 MDL-66110 dml: Undo table name fix when table name's used as parameter 2019-08-22 16:17:55 +08:00
Ryan Wyllie a0d8aefacf MDL-66110 dml: use fix_table_name for all mysql table names
Changed all of the places that were manually prefixing the table
name to instead fix the table name with the fix_table_name
function.
2019-08-22 16:17:55 +08:00
Adrian Greeve 3017d2bab8 Merge branch 'MDL-66378-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-22 09:29:33 +08:00
Andrew Nicols 93c5807711 MDL-66378 behat: Increase window size for rubric tests 2019-08-22 07:55:59 +08:00
Andrew Nicols 5bc2cb3c0e MDL-66378 behat: Change screen size to small to work around UI bugs 2019-08-22 07:55:59 +08:00
Jun Pataleta caca47f50a Merge branch 'MDL-66336_37_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_37_STABLE 2019-08-21 22:41:30 +08:00
Juan Leyva cf24975d2e MDL-66461 forum: Use correct component for forum strings 2019-08-21 13:22:08 +01:00
Juan Leyva da048e60db MDL-66461 forum: Use correct notification class 2019-08-21 13:22:08 +01:00
Jun Pataleta fc0bb48542 Merge branch 'MDL-66241_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-08-21 19:51:56 +08:00
Jun Pataleta 9234d79fd1 Merge branch 'MDL-66210_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-08-21 19:48:00 +08:00
Jun Pataleta 7971d7270c Merge branch 'MDL-65993_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-08-21 19:31:54 +08:00
Adrian Greeve 5ca6cce026 Merge branch 'MDL-65443-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2019-08-21 16:38:49 +08:00
Neill Magill 8b0bf17160 MDL-65443 core: Improve class descriptions for locking events 2019-08-21 09:03:25 +01:00
Jun Pataleta e65777fd22 Merge branch 'MDL-66110-37' of https://github.com/ryanwyllie/moodle into MOODLE_37_STABLE 2019-08-21 09:57:33 +08:00
Adrian Greeve f6735cb3e0 Merge branch 'MDL-66378-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-21 09:01:21 +08:00
Andrew Nicols 3c3a806f6b MDL-66378 behat: Correct grammar of resize step 2019-08-21 08:39:51 +08:00
Andrew Nicols bf52d11f1e MDL-66378 grade: Set window size to large for rubric tests 2019-08-21 08:39:28 +08:00
Andrew Nicols 1a11bf4706 MDL-66378 behat: All args are required for document.evaluate 2019-08-21 08:24:08 +08:00
AMOS bot da428650cd Automatically generated installer lang files 2019-08-21 00:11:16 +00:00
Adrian Greeve de186ff27f Merge branch 'MDL-65972-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-08-20 16:51:13 +08:00
Neill Magill 3aa7b0df78 MDL-65443 core: Log when a context is locked or unlocked 2019-08-20 08:57:04 +01:00
Jun Pataleta d329ada4b9 Merge branch 'MDL-64437-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-08-20 14:19:27 +08:00
Adrian Greeve 77d0435c3e Merge branch 'MDL-66378-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-20 14:07:42 +08:00
Jun Pataleta d64f8235fe Merge branch 'MDL-65507-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-08-20 11:57:20 +08:00
Adrian Greeve 3ebe724736 Merge branch 'MDL-65083-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-08-20 10:04:56 +08:00
Adrian Greeve 4f41f8407d Merge branch 'MDL-65561-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-08-20 09:37:18 +08:00
AMOS bot a95b434f3e Automatically generated installer lang files 2019-08-20 00:10:43 +00:00
Adrian Greeve 827473833d Merge branch 'MDL-65604-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-19 16:28:04 +08:00
Bas Brands 84720307c3 MDL-65972 course: add a bigger margin above the activity navigation
* this will help making it easier to distinguish between form and
activity navigation
2019-08-19 08:29:01 +02:00
Bas Brands d70fb8fefe MDL-65561 themes: user date filters display fixes 2019-08-19 08:24:38 +02:00
Bas Brands 559b686e5b MDL-65083 theme_boost: update uses of pull-xs-right 2019-08-19 08:19:49 +02:00
Adrian Greeve dda635074d Merge branch 'MDL-65886-MOODLE-37' of https://github.com/kristian-94/moodle into MOODLE_37_STABLE 2019-08-19 14:18:29 +08:00
Mihail Geshoski 0ada61fdcf MDL-64437 assignment: Fix element overlaping in low screen resolution 2019-08-19 13:31:29 +08:00
Mihail Geshoski dbc5a45cc6 MDL-65507 mod_data: Remove unnecessary record created event 2019-08-19 13:27:14 +08:00
Andrew Nicols 8356ee9462 MDL-66378 competency: Add pending promises to competency chooser 2019-08-19 08:16:41 +08:00
Andrew Nicols 710ec0e546 MDL-66378 behat: JS does not work with newlines in an xpath 2019-08-19 08:16:40 +08:00
Andrew Nicols 3c3f5965d3 MDL-66378 behat: Fix use of before/after selectors 2019-08-19 08:16:40 +08:00
Andrew Nicols 6f2760071c MDL-66378 behat: Backport expand autocomplete step 2019-08-17 16:19:48 +08:00
Andrew Nicols 9c3d4683a4 MDL-66378 behat: Add partial named selector for whole autocomplete field 2019-08-17 11:44:48 +08:00
Andrew Nicols dcb7cfd384 MDL-66378 behat: Before/after detection should be constrainable
The default before/after detection checks the entire body. Any match of
the text will therefore be found.

Add support for specification of a container for the nodes.
2019-08-17 11:44:48 +08:00
Andrew Nicols 0fbabd85c6 MDL-66378 behat: Add non-JS fallback for before/after 2019-08-17 11:44:48 +08:00
sam marshall 96482ded5e MDL-66378 Behat: Speed up 'before/after' step in Chrome
On some Chrome versions the xpath used for before/after is slow
and (sometimes) uses a lot of memory. This change uses pure
JavaScript to do the before/after calculation, which should always
be fast.
2019-08-17 11:44:48 +08:00
Andrew Nicols 1cb4d36126 MDL-66378 behat: Correct invalid uses of selection from dropdown 2019-08-17 11:44:48 +08:00
Andrew Nicols 7ae0f78bf2 MDL-66378 report_participation: Correct label for target 2019-08-17 11:44:48 +08:00
Andrew Nicols f214adb270 MDL-66378 gradereport_singleview: Add missing label for dropdown 2019-08-17 11:44:48 +08:00
Juan Leyva 613e3038f8 MDL-65042 rating: Fix incorrect image generated for user in rating 2019-08-16 15:41:44 +01:00
Juan Leyva d2154bafdb MDL-65025 forum: Fix text formatting (check messagetrust) in WS 2019-08-16 12:59:05 +01:00
Mark Johnson 7f45491d4d MDL-66336 courses: Show an error when no course categories are visible 2019-08-16 08:25:42 +01:00
Kristian Ringer 2f39bfc7d8 MDL-65886 assign: Reset numfiles to 0 when removing a file submission 2019-08-16 15:03:59 +10:00
Andrew Nicols 09979fde33 MDL-66378 behat: Update screen sizes to Y2K standards 2019-08-16 11:43:57 +08:00
Andrew Nicols 4fbeed480a MDL-66378 behat: Update dependencies for chrome webdriver fix 2019-08-16 11:43:01 +08:00
Andrew Nicols 39f22c5f7d MDL-66312 js: Autocomplete promises were inside out
The pending promise should nott be resolved until the changes are
complete.
Previously the resolution of the pendingPromise was triggering the other
changes.
2019-08-16 11:40:15 +08:00
Andrew Nicols 5a0c850e50 weekly release 3.7.1+ 2019-08-16 11:07:05 +08:00
Andrew Nicols a408e168cc Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-08-16 11:07:02 +08:00
Juan Leyva bb5b12d936 MDL-65653 book: Display hidden chapters in the structure content 2019-08-15 14:02:30 +01:00
Mihail Geshoski 091faeeb09 MDL-65653 book: Update unit tests 2019-08-15 14:02:30 +01:00
Mihail Geshoski 6c00f683db MDL-65653 book: Display hidden chapters in WS when user has capability 2019-08-15 14:02:30 +01:00
Andrew Nicols 30f719c44c Merge branch 'MDL-35939-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-08-15 12:03:48 +08:00
Jun Pataleta 1893b39bfc Merge branch 'm37_MDL-66140_Mitigate_PECL_Solr_issue_Ref_72740' of https://github.com/scara/moodle into MOODLE_37_STABLE 2019-08-15 11:17:40 +08:00
Shamim Rezaie 102579cf75 MDL-35939 mod_quiz: use descriptive titles for pages 2019-08-15 12:23:03 +10:00
Shamim Rezaie 38629d7f32 MDL-35939 mod_quiz: phpdoc fix 2019-08-15 12:23:03 +10:00
Shamim Rezaie df5bca4acc MDL-35939 mod_quiz: new functions to generate title for attempt pages 2019-08-15 12:22:58 +10:00
AMOS bot 7db7c8e953 Automatically generated installer lang files 2019-08-15 00:12:53 +00:00
Jun Pataleta a77c92bb9c Merge branch 'MDL-65925-grade-page-broken-for-deleted-submission-MOODLE_37_STABLE' of https://github.com/ilya-catalyst/moodle into MOODLE_37_STABLE 2019-08-14 15:28:01 +08:00
David Monllaó 2850311ace MDL-66210 analytics: Unit test for reuseprevanalysed 2019-08-14 14:31:59 +08:00
David Monllaó 8e09ae50b0 MDL-66210 analytics: Update references to ->options 2019-08-14 14:31:59 +08:00
David Monllaó 6ac4aa49aa MDL-65993 analytics: Fix --filter option for by_course models 2019-08-14 14:30:25 +08:00
David Monllaó a639cddc39 MDL-66241 analytics: Verify that activities_due works on at-risk 2019-08-14 14:29:20 +08:00
David Monllaó 4f910adaea MDL-66241 analytics: activities_due compatible with at-risk models 2019-08-14 14:29:20 +08:00
Andrew Nicols 9cb87ef480 Merge branch 'patch-2' of https://github.com/aspark21/moodle into MOODLE_37_STABLE 2019-08-14 11:37:09 +08:00
Adrian Greeve 7cdba7e644 Merge branch 'MDL-52849-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-08-14 09:07:24 +08:00
Jun Pataleta 5e0c8cfd32 Merge branch 'MDL-62034-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-13 14:20:35 +08:00
Andrew Nicols 0566565254 MDL-62034 assign: Add hint for user tour reset 2019-08-13 14:12:56 +08:00
Ryan Wyllie 5068a6ccef MDL-66110 dml: Fix MySQL v8 compatibility with groups table
MySQL v8 has added "groups" to the reserved word list. That is used
as a table name in Moodle so we have to quote it with backticks in the
SQL so that MySQL knows it's being used as an identifier.
2019-08-13 11:15:38 +08:00
Jun Pataleta c98cd8ccc8 Merge branch 'MDL-66104_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-08-12 14:51:52 +08:00
Peter 21010ab799 MDL-52849 core: Focus reader onto popup with ajax errors 2019-08-12 10:52:31 +08:00
Ilya Tregubov 91c036db6f MDL-65925 assign: Grade page broken if submission was deleted. 2019-08-12 09:28:12 +10:00
Matteo Scaramuccia e3d9c87993 MDL-66140 search: Mitigate PECL solr extension regression
Refs:
- https://bugs.php.net/bug.php?id=72740
- https://bugs.php.net/bug.php?id=75631
- https://github.com/php/pecl-search_engine-solr/pull/16
2019-08-11 20:06:01 +02:00
Andrew Nicols 02afdd58e8 MDL-65604 repository: Kill off missing param errors
The file picker template included an img with a src of "#". When the
template was loaded into the modal, the browser fetches the img src, but
it's immediately removed as that section is only used as an in-place
template. The src tag does not need to be present.
2019-08-11 14:52:55 +08:00
AMOS bot 59d22708dc Automatically generated installer lang files 2019-08-10 00:11:18 +00:00
Jun Pataleta 79bd60bff7 weekly release 3.7.1+ 2019-08-09 16:24:07 +08:00
Jun Pataleta 03667bad20 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-08-09 16:24:05 +08:00
Jun Pataleta d92b3f2abb Merge branch 'MDL-65679-37-fix' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-08-09 11:39:24 +08:00
Andrew Nicols d798b75928 MDL-65679 assignfeedback_editpdf: Adjust z-indexes for editpdf 2019-08-09 08:34:15 +08:00
Victor Deniz Falcon 1e364a4f9a MDL-66272 core_renderer: fix favicon method PHPDoc 2019-08-08 12:44:55 +08:00
Amaia Anabitarte f3732b7838 MDL-60636 behat: Fixing modified xpath 2019-08-08 11:58:10 +08:00
Andrew Nicols 5d85b4a272 Merge branch 'MDL-65595-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-08-08 10:28:30 +08:00
Jun Pataleta 12bd0d77d1 Merge branch 'MDL-57239_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-08-08 08:48:55 +08:00
Andrew Nicols 01f6eaed9b Merge branch 'MDL-66039-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-08-07 15:32:54 +08:00
Jun Pataleta 87fa24daaf Merge branch 'MDL-56789-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-08-07 14:01:25 +08:00
Shamim Rezaie db51a593bb MDL-56789 core: Improve unit tests 2019-08-07 15:32:34 +10:00
Shamim Rezaie 3ba7f31c15 MDL-56789 core: Recycle bin warn only if a grade item is being deleted 2019-08-07 15:30:05 +10:00
Sara Arjona 2666fb1069 Merge branch 'MDL-63198-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-08-07 11:08:01 +08:00
Sara Arjona d3ca2c25e5 Merge branch 'MDL-60636-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-08-07 10:00:55 +08:00
Alistair Spark 4b530e5af8 MDL-66071 user: username is required with non-internal auth method 2019-08-07 01:01:27 +02:00
Sara Arjona e3bf98b8ed Merge branch 'MDL-64598-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-08-06 15:30:08 +08:00
Sara Arjona c316d854e9 Merge branch 'MDL-65786-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-08-06 14:19:33 +08:00
Andrew Nicols ea72ffc95c Merge branch 'MDL-65679-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-08-06 13:17:57 +08:00
Andrew Nicols b0d81fce7b Merge branch 'MDL-65651-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-08-06 11:58:20 +08:00
Andrew Nicols 2fb82c256c Merge branch 'MDL-65992-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-08-06 09:13:36 +08:00
Eloy Lafuente (stronk7) d62afa7ae7 Merge branch 'MDL-64757-37_core_output_nested_template_block_string_language' of https://github.com/tomdickman/moodle into MOODLE_37_STABLE 2019-08-05 13:15:08 +02:00
Andrew Nicols 2bf3ee078b Merge branch 'MDL-33884_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-08-05 14:33:55 +08:00
Sara Arjona b0781430e4 Merge branch 'MDL-66281-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-08-05 13:41:16 +08:00
Andrew Nicols 87eb1e7205 Merge branch 'MDL-66279-37' of git://git.cameron1729.xyz/moodle into MOODLE_37_STABLE 2019-08-05 11:51:35 +08:00
Shamim Rezaie ff03600ad0 MDL-63198 forms: click on scrollbar should not close the suggestions box 2019-08-05 13:16:41 +10:00
Tim Hunt 8d4f41b473 MDL-57239 qbehaviour_interactive: fix Try again button when reviewing 2019-08-02 11:46:17 +01:00
Luca Bösch ee5b530ae6 MDL-65651 forum: Middle align last post column entries. 2019-08-02 12:01:49 +02:00
Luca Bösch 0853ab5730 MDL-64598 pix: Adding width/height information to emoji SVG images. 2019-08-02 11:54:59 +02:00
AMOS bot 23e8249b36 Automatically generated installer lang files 2019-08-02 00:11:23 +00:00
AMOS bot 3876b68dd0 Automatically generated installer lang files 2019-08-02 00:11:23 +00:00
Mihail Geshoski 4935c347cf MDL-65679 assign: Collapsing comments
The comments should appear above everything else when expanded, and expanding/collapsing comments
should not affect the position of anything else in the page.

All credit goes to Damyon Wiese.
2019-08-02 07:39:03 +08:00
Eloy Lafuente (stronk7) cd1a80769f MDL-66104 output: HTMLPurifier to allow <nolink> tags everywhere
Before the patch, HTMLPurifier was instructed to handle <nolink>
tags in block mode. That implies that any block tag enclosing it
had to be closed for HTML compliance.

But <noscript> tags are not part of the final output (they are
removed) but just internally used to skip filtering certain areas.

So they can be virtually everywhere, HTMLPurifier just should allow
them without any change, both to parent or children tags.
2019-08-01 17:52:57 +02:00
Eloy Lafuente (stronk7) 0f13016a50 weekly release 3.7.1+ 2019-08-01 17:07:09 +02:00
Eloy Lafuente (stronk7) 141d8cbe64 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-08-01 17:07:06 +02:00
Shamim Rezaie ec564a7b32 MDL-56789 core: Added unit test for course_modules_pending_deletion 2019-08-01 18:58:28 +10:00
Sara Arjona 90528c757d Merge branch 'MDL-42451-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-08-01 09:53:28 +08:00
Eloy Lafuente (stronk7) c76f2e8095 Merge branch 'MDL-50472-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-08-01 00:28:40 +02:00
Eloy Lafuente (stronk7) 4999558ed4 Merge branch 'MDL-57342-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-07-31 18:52:37 +02:00
Tim Hunt 0101cefdca MDL-33884 question export: raise memory limit
Question exports can be quite big, just like imports can. Therefore, we
should raise memory limits in the same way.

(Of course, eventually we should change the API, so that it writes one
questoin at a time, rather than building the whole export file contents
in RAM first, but that would be a much bigger change, and we need a
quick fix now.)
2019-07-31 16:35:36 +01:00
Mathew May 0a39c68105 MDL-65992 travis: Migrate to Xenial distro and default MySQL service 2019-07-31 13:02:19 +08:00
Jun Pataleta 5f9afeb734 Merge branch 'MDL-65831-37' of git://github.com/aanabit/moodle into MOODLE_37_STABLE 2019-07-31 10:55:49 +08:00
Amaia Anabitarte a193f2a1e3 MDL-65831 behat: New steps to switch offline mode for moodle app behats 2019-07-31 10:44:57 +08:00
Peter 148d163013 MDL-65595 core: Remove the nowrap from the form's radio template 2019-07-31 08:15:35 +08:00
AMOS bot c8c11974f2 Automatically generated installer lang files 2019-07-31 00:09:15 +00:00
Paul Holden ecc9069384 MDL-66230 tool_usertours: account for deleted tours in privacy export. 2019-07-30 09:56:48 +01:00
Cameron Ball 0960745ecb MDL-66279 task: Test if logger is_a database_logger 2019-07-30 14:52:35 +08:00
Jun Pataleta c5437625e1 MDL-66281 tool_dataprivacy: Set sensitive data processing default value 2019-07-30 13:59:14 +08:00
Sara Arjona 941b5cc782 Merge branch 'MDL-63458_37' of https://github.com/rlorenzo/moodle into MOODLE_37_STABLE 2019-07-30 11:59:28 +08:00
Adrian Greeve 02bcfb3631 Merge branch 'MDL-66174-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-07-29 14:40:02 +08:00
Mathew May a02b319727 MDL-42451 installation: Allow enter key to proceed 2019-07-29 10:58:49 +08:00
Mathew May 328f918372 MDL-50472 auth: Add maintenance message to the login page. 2019-07-29 10:48:54 +08:00
Jake Dallimore 2f980fec47 Merge branch 'MDL-65219-37' of https://github.com/ryanwyllie/moodle into MOODLE_37_STABLE 2019-07-26 15:21:15 +08:00
Tom Dickman ad5c8a8954 MDL-64757 core_output: fixed incorrect string language mustache blocks
Mustache blocks nested in parent templates were incorrectly rendering the default language Moodle.
This fix correctly passes the current language preference to all nested mustache templates such as blocks
which are children of another template.
2019-07-26 16:02:59 +10:00
Jake Dallimore ebe574ff58 Merge branch 'MDL-65918-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-07-26 10:57:48 +08:00
Eloy Lafuente (stronk7) 1a89704b05 weekly release 3.7.1+ 2019-07-25 13:45:00 +02:00
Jake Dallimore f082899085 Merge branch 'MDL-65858_37' of git://github.com/markn86/moodle into MOODLE_37_STABLE 2019-07-24 14:31:06 +08:00
Adrian Greeve 0fbdc6705a Merge branch 'MDL-65078-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-07-24 09:52:18 +08:00
Mathew May f4da3acc61 MDL-57342 admin: confightml will check if returned data is empty 2019-07-23 13:31:58 +08:00
Jun Pataleta ef24084985 MDL-65918 auth_oauth2: Require profile library once
Thanks to Jason Grimes for the bug report and fix suggestion!
2019-07-23 10:11:59 +08:00
Adrian Greeve 8b44b91c15 Merge branch 'MDL-66021-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-07-23 09:13:45 +08:00
Eloy Lafuente (stronk7) bfdc0244a1 Merge branch 'MDL-65788-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-07-22 21:34:12 +02:00
Eloy Lafuente (stronk7) f7ade2220a Merge branch 'MDL-66132-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-07-22 20:56:11 +02:00
Adrian Greeve 5aa0106bc1 Merge branch 'MDL-66136-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-07-22 10:42:01 +08:00
Eloy Lafuente (stronk7) 2b4ff27983 Merge branch 'MDL-50733_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-07-20 00:24:45 +02:00
Mathew May 78ade565c6 MDL-50733 core: Update composer to updated behat-extension 2019-07-19 16:13:51 +02:00
Eloy Lafuente (stronk7) e222b1ed8d weekly release 3.7.1+ 2019-07-18 17:11:45 +02:00
Eloy Lafuente (stronk7) 9bfa3e8f56 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-07-18 17:11:43 +02:00
Kathrin Osswald bed95cdef1 MDL-63250 mediaplugin: Fixed video player size in specific tables 2019-07-18 13:53:22 +02:00
Matt Porritt 1c97c77cb9 MDL-65858 backup: Improve behaviour of ajax calls
When a backup (or restore) is in progress and the user
has another tab open that is taking time to generate and
holding the session lock, a condition arises where
multiple ajax calls are "queued" because the long page
is holding the session lock. When this lock is released,
the queued ajax requests complete.  However, as the ajax
requests also lock this can block other requests until they
complete. This patch decreases the frequency of ajax calls
and stops them from holding the session lock.
2019-07-18 14:12:51 +08:00
Peter 0c73410e6c MDL-66174 mod_assign: Remove the strict widths on the annotation menu 2019-07-18 12:56:19 +08:00
Mathew May ebe8a6726a MDL-65788 tool_policy: Move accept_policy JS call into an array 2019-07-18 10:48:00 +08:00
Andrew Nicols cb9494ddcc Merge branch 'MDL-59911-conv_cleanup_check-37' of git://github.com/leonstr/moodle into MOODLE_37_STABLE 2019-07-18 08:25:34 +08:00
AMOS bot 8ac0f287ee Automatically generated installer lang files 2019-07-18 00:09:04 +00:00
Andrew Nicols 6fad97a975 Merge branch 'MDL-66163-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-07-18 07:45:38 +08:00
Eloy Lafuente (stronk7) 07b75d56ed Merge branch 'MDL-66115_37' of https://github.com/dvdcastro/moodle into MOODLE_37_STABLE 2019-07-17 23:09:39 +02:00
Bas Brands d959768051 MDL-60636 themes: form autocomplete chevron down on mobile 2019-07-17 13:33:31 +02:00
Peter 62566af752 MDL-66021 restore: Additional restore unit tests with async mode 2019-07-17 10:56:45 +08:00
Peter f910e87c12 MDL-66021 backup: Clear course if required before restore 2019-07-17 10:56:45 +08:00
Andrew Nicols 8960fa5c1f Merge branch 'MDL-65538-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2019-07-17 10:56:13 +08:00
Bas Brands 5eb95aca21 MDL-65357 themes: position enrolment icons in course listing 2019-07-17 09:40:29 +08:00
Eloy Lafuente (stronk7) f417dab602 Merge branch 'MDL-66032-MOODLE_37_STABLE_awarded_badges_criteria' of https://github.com/andrewmadden/moodle into MOODLE_37_STABLE 2019-07-17 01:31:54 +02:00
Eloy Lafuente (stronk7) 334e44fb2c Merge branch 'MDL-65908-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-07-17 01:18:27 +02:00
Marina Glancy ccc7e00cc0 MDL-66163 mod_forum: Add component to unittest sql queries
files from other components may exist in the files table
2019-07-16 20:37:15 +03:00
Leon Stringer c4e1a1518c MDL-59911 fileconverter_unoconv: Fix: test PDF fails after upgrade
When generating the PDF of unoconv_test.docx this file's previous conversions
are removed from mdl_file_conversion.  But these may also be removed by
\core_files\task\conversion_cleanup_task in which case an error occurs as
delete() is invoked with a NULL id.  Added check for non-NULL id prior to
invoking delete().
2019-07-16 17:25:23 +01:00
Eloy Lafuente (stronk7) 12f7d66baf Merge branch 'MDL-65555_MOODLE_37_STABLE' of https://github.com/tuanngocnguyen/moodle into MOODLE_37_STABLE 2019-07-16 12:35:08 +02:00
Andrew Nicols 0d7ff46e11 Merge branch 'MDL-65954-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-07-16 15:15:31 +08:00
Andrew Nicols 91a59718cd Merge branch 'MOODLE_37_STABLE_MDL_65517' of https://github.com/yao9394/moodle into MOODLE_37_STABLE 2019-07-16 12:22:05 +08:00
Andrew Nicols bd5f26b20b Merge branch 'MDL-65409-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-07-16 11:36:42 +08:00
Nathan Nguyen 4ffedd3797 MDL-65555 mod_lesson: fix group override backup and restore 2019-07-16 13:01:27 +10:00
Nathan Nguyen c923621ec0 MDL-65555 mod_quiz: fix group override backup and restore 2019-07-16 13:00:51 +10:00
Ryan Wyllie efc45c2976 MDL-65219 message: add message/pendingcontactrequests.php page back
We previously had this page when contact requests were first introduced
and unfortunately we created a bunch of notifications that reference
this URL directly which now won't work because the page has been removed.

I've added it back but set it to redirect to the message/index.php page
and load the contact requests page there.
2019-07-16 09:51:42 +08:00
Damyon Wiese 916c50484c MDL-65078 competencies: fix webservice
The webservice list_course_module_competencies calls a function that does not exist.

Thanks to Marie-Eve Lévesque for reporting this issue.
2019-07-16 09:43:23 +08:00
Andrew Madden 191bcca9e2 MDL-66032 badges: Prevent empty awarded badges criteria being created.
When creating or editing the awarded badges criteria, the select element should be
required to prevent empty criteria from being created. In addition, if there are
already badges created with the empty criteria, there should be not be an exception
thrown when assessing whether the criteria has been completed.
2019-07-16 09:47:37 +10:00
Sara Arjona 4afc6a5711 MDL-65538 competency: fix behat errors with firefox
There is a random behat error when executing the "Go to the competency
course competencies page." scenario: "Moodle exception: A required parameter
(courseid) was missing More information about this error".
It happens because sometimes the form is sent before the JS and it hasn't
the needed parameters defined. So they have been added as hidden to the
form to avoid the error (which I couldn't reproduce manually).
2019-07-15 14:09:04 +02:00
Eloy Lafuente (stronk7) b32637b7e2 Merge branch 'MDL-58026-37' of https://github.com/MartinGauk/moodle into MOODLE_37_STABLE 2019-07-15 13:38:55 +02:00
David Monllaó 6d6322985d MDL-66026 analytics: No notification if not necessary 2019-07-15 14:24:33 +08:00
Mihail Geshoski a84e91d7f3 MDL-66136 assign: Verify presence of resources in online text submission 2019-07-15 12:03:58 +08:00
Mihail Geshoski 629741d93f MDL-66136 assignfeedback_comments: Extend testcase 2019-07-15 12:03:58 +08:00
Jun Pataleta 727a0a97fe MDL-65954 dataformat_pdf: Convert object records to array
* count() doesn't work quite as expected when the record being written
to the PDF is an object. So make sure to convert the record to an array.
* In addition, instead of comparing the total vs the current cell
counter, it would be more reliable to determine whether we're at the
last element of the array by getting the key for the last element and
comparing it with the key for the element that's currently being
processed.
2019-07-15 10:30:29 +08:00
Peter 8340f83ddc MDL-65908 mod_assign: Remove scroll repositioning.
Absolute positioned elements do not require repositioning on scroll as long as
their immediate parent is relatively positioned.
2019-07-15 08:36:54 +08:00
Peter 8a3a133319 MDL-65908 assign: Overflow and positioning updates
Draw all annotation within the drawing canvas instead of the region
2019-07-15 08:36:54 +08:00
Peter e9822e8851 MDL-65908 assign: Revert overflow scroll fix
Revert "MDL-65484 assign: Scrolling overflow CSS"

This reverts commit 5bda066caa.
2019-07-15 08:36:54 +08:00
Mathew May 559a99c793 MDL-65788 tool_policy: Prevent two modals rendering for guests.
With the Guest registration calling policyactions.js the [data-action="view"]
was having two click handlers set on the inital policy modal trgger.
With this commit we state what we want the click event to be set on.
2019-07-14 18:53:35 +08:00
AMOS bot bcdb7e3031 Automatically generated installer lang files 2019-07-14 00:08:50 +00:00
David Castro 7f0d1164f5 MDL-66115 qtype_ddimageortext: Fixing choice deletion.
Summarising responses fails when question choices have been removed.

AMOS BEGIN
CPY [deletedchoice,qtype_match],[deletedchoice,qtype_ddimageortext]
AMOS END

(cherry picked from commit f0265e6db16caa6d13f8bce291e7da91b0eabb53)
2019-07-12 14:35:54 -05:00
sam marshall aa01e0e574 MDL-66132 Search: Behat tests should use simpledb, fix mock count
When searching using mock results (the 'global search expects the
query' step), the result count is not correctly set. As a result, the
page incorrectly reports that there are no results and doesn't
correctly show the first page of multi-page results.

Additionally, some of the core Behat tests can now be moved to use
real searching with the simpledb engine, rather than using mock
results at all. This gives better tests.

Unfortunately it was not possible to move all of the core Behat tests
and deprecate the mock step, because some of the tests are related to
the UI for 'special' features searching by user or group, neither of
which are supported by the simpledb engine.
2019-07-12 17:41:17 +01:00
Damyon Wiese 8070c74ebc MDL-65409 files: Allow location header
Allow incorrect capitals in location header response.
2019-07-12 08:44:54 +08:00
John Yao 93ade38caa MDL-65517 block_timeline: Hide completed course modules in Timeline
When some activities are manually completed by students, some are still showing in students' timeline.
This commit fix that for module assign,chat,choice,feedback,lesson,quiz,scorm and workshop.
2019-07-12 09:17:33 +10:00
Eloy Lafuente (stronk7) 39ef515a64 weekly release 3.7.1+ 2019-07-11 23:33:54 +02:00
Eloy Lafuente (stronk7) 65462b439d NOBUG: Fixed file access permissions 2019-07-11 23:33:54 +02:00
Eloy Lafuente (stronk7) 481b001f25 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-07-11 23:33:52 +02:00
Jun Pataleta 3098122ac1 Merge branch 'MDL-65926-MOODLE_37_STABLE_lowercase_username_sql_query' of https://github.com/andrewmadden/moodle into MOODLE_37_STABLE 2019-07-11 20:58:47 +02:00
Bas Brands f7a92e6a98 MDL-66039 themes: remove duplicate css
* removed duplicate #page { margin-top: 50px };
2019-07-11 14:54:28 +02:00
AMOS bot 00906c109e Automatically generated installer lang files 2019-07-11 00:09:03 +00:00
Eloy Lafuente (stronk7) 177f92e74b Merge branch 'MDL-66114-37-fix' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-07-10 12:45:30 +02:00
Andrew Madden ae464fd7b2 MDL-65926 moodlelib: Convert username to lowercase prior to SQL query
Within a very large project, it was found that searching for a user with their username in the user table using a case insensitive
search was inefficient. Instead it is proposed that the username input is made to be lowercase prior to executing a database query
as the username for each user in the database must be lowercase. This allows for a case sensitive query to find the user data.
Essentially we are moving a case insensitive search for a user from SQL into PHP to increase performance.
2019-07-10 19:55:46 +10:00
Marina Glancy 909d02196f MDL-66114 core_calendar: normalise categoryid value 2019-07-10 11:29:00 +02:00
Andrew Nicols 56d381cba3 Merge branch 'MDL-66114-37-2' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-07-10 14:29:41 +08:00
Jun Pataleta 49c2095b74 Merge branch 'MDL-66012-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-07-10 12:16:49 +08:00
Simey Lameze 64b39b7f60 MDL-66012 calendar: fix no event message on calendar views
Ahhh Jun. Thanks legend :)
2019-07-10 11:32:53 +08:00
Eloy Lafuente (stronk7) b0e82e7359 Merge branch 'MDL-56835_37-coursetimecreated' of git://github.com/markn86/moodle into MOODLE_37_STABLE 2019-07-10 00:14:59 +02:00
Marina Glancy 520d73b0d6 MDL-66114 core_calendar: events without category 2019-07-09 18:05:29 +02:00
Jun Pataleta 56b3bec2ff Merge branch 'MDL-66081-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-07-09 17:11:05 +08:00
Andrew Nicols f87569ac6a Merge branch 'MDL-64258-37' of https://github.com/HuongNV13/moodle into MOODLE_37_STABLE 2019-07-09 14:50:44 +08:00
Andrew Nicols 7804b75021 Merge branch 'MDL-65965-37-fix' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-07-09 11:00:30 +08:00
Jun Pataleta 571d588002 MDL-65965 behat: Do not fetch grouping IDs for empty grouping idnumbers 2019-07-09 10:49:10 +08:00
Mark Nelson c5fb5d69b1 MDL-56835 report_participation: remove unreachable if condition 2019-07-09 09:14:55 +08:00
Andrew Nicols 54b4d6726b Merge branch 'MDL-65772-37' of git://github.com/vmdef/moodle into MOODLE_37_STABLE 2019-07-09 08:56:33 +08:00
Mark Nelson af281ecdd6 MDL-56835 report_participation: initialise action variables 2019-07-09 08:30:41 +08:00
Mark Nelson d92119979c MDL-56835 report_participation: use course timecreated as minlog 2019-07-09 08:30:38 +08:00
Matt Porritt d6301a6dd3 MDL-56835 report_participation: release session lock 2019-07-09 08:28:50 +08:00
Eloy Lafuente (stronk7) 2308148e23 Merge branch 'MDL-66054-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-07-09 00:57:23 +02:00
Eloy Lafuente (stronk7) 41fc9f1937 Merge branch 'MDL-65965-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-07-09 00:55:09 +02:00
Martin Gauk 96c24a1912 MDL-58026 question: fix regrading in progress attempt
Do not convert autosave steps to true steps when regrading.

Thanks Eric Merrill for providing the unit test code.
2019-07-08 09:35:51 +00:00
AMOS bot f14bcafc5a Automatically generated installer lang files 2019-07-08 00:10:08 +00:00
AMOS bot fdd756f779 Automatically generated installer lang files 2019-07-07 00:08:55 +00:00
David Castro 41eb6e8372 MDL-65920 adodb: PHP 7.2 fixes for adodb library. 2019-07-05 09:52:50 -05:00
Sara Arjona b198428e41 Moodle release 3.7.1 2019-07-05 12:27:23 +02:00
Simey Lameze b9cd69b372 MDL-66081 calendar: fix typo in attribute description 2019-07-05 17:07:58 +08:00
AMOS bot a5f09bca98 Automatically generated installer lang files 2019-07-05 00:09:46 +00:00
Eloy Lafuente (stronk7) 22124a36ca weekly release 3.7+ 2019-07-04 16:51:08 +02:00
Eloy Lafuente (stronk7) 50794f5278 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-07-04 16:51:03 +02:00
Víctor Déniz Falcón 6d4e4bb8ef MDL-65772 cachestore_mongodb: fix the version number of the library 2019-07-04 12:46:04 +01:00
AMOS bot e1cad3f07b Automatically generated installer lang files 2019-07-04 00:08:39 +00:00
Shamim Rezaie 2e4856a81f MDL-61114 mod_assign: Check if the teacher can access the override 2019-07-03 18:05:19 +02:00
Shamim Rezaie 211f6809b9 MDL-61114 mod_assign: assignment overrides to observe group membership 2019-07-03 18:05:19 +02:00
Shamim Rezaie ad75599c7b MDL-61115: mod_lesson: Check if the teacher can access the override 2019-07-03 17:49:58 +02:00
Shamim Rezaie ca908dd42c MDL-61115 mod_lesson: Lesson overrides to observe group membership 2019-07-03 17:49:58 +02:00
Sara Arjona 76129617e5 Merge branch 'MDL-65105-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-07-03 15:05:42 +02:00
Sara Arjona 56f92fa069 Merge branch 'MDL-65958-37-v3' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-07-03 14:53:28 +02:00
Simey Lameze d7815b0a79 MDL-65958 calendar: cover students default event type visibility 2019-07-03 20:41:04 +08:00
Simey Lameze 376a2f64f2 MDL-65958 calendar: students should not see course event type 2019-07-03 20:41:04 +08:00
Simey Lameze 634da01c65 MDL-65958 calendar: add behat to test calendar_adminseesall behaviour 2019-07-03 20:41:04 +08:00
Simey Lameze 8b0bb2389c MDL-65958 calendar: fix adminseesall logic in the event form 2019-07-03 20:41:03 +08:00
Sara Arjona 83b311dcb3 Merge branch 'MDL-64794_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-07-03 11:15:42 +02:00
Huong Nguyen 79ec71c87b MDL-64258 Group: Performance problem on the enrol group members page 2019-07-03 15:29:00 +07:00
Huong Nguyen 79a6ef4c9b MDL-64258 Group: Unit Test for find_users function 2019-07-03 15:28:52 +07:00
Eloy Lafuente (stronk7) 299cdee4bf Merge branch 'MDL-65845_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-07-03 02:25:39 +02:00
Eloy Lafuente (stronk7) 34b451dac4 Merge branch 'MDL-65656-37-2' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-07-03 02:16:54 +02:00
AMOS bot e2ac9903d9 Automatically generated installer lang files 2019-07-03 00:08:46 +00:00
AMOS bot ee22b6faba Automatically generated installer lang files 2019-07-03 00:08:46 +00:00
Eloy Lafuente (stronk7) a6c6690e79 Merge branch 'MDL-63268-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-07-03 00:13:15 +02:00
Sara Arjona acb0617d1b Merge branch 'MDL-64614_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-07-02 21:21:29 +02:00
Luca Bösch 370c8c4a06 MDL-63268 tool_uploadcourse: Keep source course section number. 2019-07-02 19:49:08 +02:00
Eloy Lafuente (stronk7) 4782bf39af Merge branch 'MDL-65707-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-07-02 16:39:49 +02:00
Sara Arjona 39f9832ce5 Merge branch 'MDL-66062_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-07-02 15:16:02 +02:00
Sara Arjona ef0d79745f Merge branch 'MDL-65101_37' of git://github.com/markn86/moodle into MOODLE_37_STABLE 2019-07-02 14:50:22 +02:00
Eloy Lafuente (stronk7) e1b1217749 MDL-66062 travis: Force PHP 7.1.30 to avoid some unit test failures
Make this sticky because current default version (7.1.11)
has a bug with redis-extension outputting information and breaking
tests.
2019-07-02 13:00:41 +02:00
Eloy Lafuente (stronk7) 57886390a6 Merge branch 'MDL-65728-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-07-02 12:14:05 +02:00
Sara Arjona 2a6ee587d3 Merge branch 'MDL-65839_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-07-02 10:42:10 +02:00
Eloy Lafuente (stronk7) 43ab5e777d Merge branch 'MDL-65853_m37' of git://github.com/gjb2048/moodle into MOODLE_37_STABLE 2019-07-02 10:25:36 +02:00
Shamim Rezaie 3f96ad977e MDL-34411 mod_quiz: Check if the teacher can access the override 2019-07-02 08:37:48 +02:00
Shamim Rezaie de068eb91a MDL-34411 groups: copy/paste error in test_groups_user_groups_visible 2019-07-02 08:37:48 +02:00
Shamim Rezaie e6539e7139 MDL-34411 mod_quiz: quiz overrides to observe group membership 2019-07-02 08:37:48 +02:00
Damyon Wiese 9a6c86b23f MDL-64623 glossary: Check the entry id
The entry must match the glossary before you can do any action on it.
2019-07-02 08:37:48 +02:00
Damyon Wiese ec2f7c0fe9 MDL-53689 xmldb: Require a sesskey to load xml
Loading and unloading xml files is not protected from XSS with a sesskey.
2019-07-02 08:37:48 +02:00
Sara Arjona 2077354356 Merge branch 'MDL-66049-37-workshopnamespace' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-07-02 08:29:00 +02:00
Sara Arjona a3bce19260 Merge branch 'MDL-65901-37' of https://github.com/lucaboesch/moodle into MOODLE_37_STABLE 2019-07-02 08:10:27 +02:00
AMOS bot 08943d8121 Automatically generated installer lang files 2019-07-02 00:09:26 +00:00
Eloy Lafuente (stronk7) b053efae5d Merge branch 'MDL-64935-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-07-02 00:06:59 +02:00
Shamim Rezaie 8bb3a1d295 MDL-66054 behat: typo fix 2019-07-02 04:05:39 +10:00
Eloy Lafuente (stronk7) b3bd9df0fd Merge branch 'MDL-64511-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-07-01 18:52:21 +02:00
Sara Arjona 1d5341843f Merge branch 'MDL-65297-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-07-01 18:34:52 +02:00
Sara Arjona 5da74261d3 Merge branch 'MDL-65892-37-inlinereply' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-07-01 15:50:02 +02:00
David Mudrák ee3b7666f2 MDL-66049 workshop: Fix the fully qualified class name
Because of the missing slash, the class 'workshop' was not found in the
current namespace and the cron failed to work.
2019-07-01 14:49:34 +02:00
Sara Arjona 9c96a6fcf7 Merge branch 'MDL-65973-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-07-01 13:13:34 +02:00
Dan Marsden 6ab4eaf7f2 MDL-60347 core: debugsmtp should be a developer only setting. 2019-07-01 12:16:22 +02:00
Sara Arjona 46c4afbeaf Merge branch 'MDL-57884_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-07-01 09:57:48 +02:00
Eloy Lafuente (stronk7) e0e75192e8 MDL-64614 environment: mssql requirement up to 2012 (11.0) 2019-06-30 11:58:04 +02:00
Eloy Lafuente (stronk7) c0078c08df MDL-64614 environment: 3.8 base information
This is a direct copy of the 3.7 branch to have
changes under control easier for next commits.
2019-06-30 11:58:04 +02:00
AMOS bot e2c4f9d374 Automatically generated installer lang files 2019-06-30 00:09:17 +00:00
AMOS bot 1b26a3db64 Automatically generated installer lang files 2019-06-30 00:09:16 +00:00
AMOS bot fa5aa45de4 Automatically generated installer lang files 2019-06-29 00:09:17 +00:00
AMOS bot 9c9ac43919 Automatically generated installer lang files 2019-06-29 00:09:17 +00:00
David Monllaó b214024bda MDL-65845 mod_lesson: Fix wrong pointer to an object
We should be pointing to the array of timecreated values instead.
2019-06-28 21:06:22 +02:00
David Monllaó cd59d03500 MDL-65839 core_analytics: New indicator instances for each analysable 2019-06-28 21:00:25 +02:00
Paul Holden 0db181f9a9 MDL-64511 privacy: encode data URL when loading content.
Previously paths that included ? or # characters would break loading.
2019-06-28 13:16:55 +01:00
Paul Holden 868c037261 MDL-65297 atto_managefiles: improve filename decoding.
Filenames containing # character would previously be missed.
2019-06-28 13:13:49 +01:00
Sara Arjona a1714472d3 Merge branch 'MDL-65506-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-06-28 12:16:29 +02:00
Mark Nelson 7883551c72 MDL-65101 core_message: add Behat test 2019-06-28 18:14:30 +08:00
Mark Nelson bc11df440e MDL-65101 core_message: 'canmessage' should trump 'requirescontract' 2019-06-28 15:38:20 +08:00
AMOS bot 4efaec0a53 Automatically generated installer lang files 2019-06-28 00:09:47 +00:00
Gareth Barnard 0ded67ffd7 MDL-65853 format_base: Labels counted in section activity summary. 2019-06-27 23:36:06 +01:00
Luca Bösch 61923d3bdd MDL-65901 forum: Style advanced search form properly. 2019-06-27 21:58:19 +02:00
Eloy Lafuente (stronk7) 035d608c59 weekly release 3.7+ 2019-06-27 18:54:40 +02:00
Eloy Lafuente (stronk7) d49a5c7826 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-06-27 18:54:38 +02:00
Andrew Nicols 7305ed72ec Merge branch 'MDL-53778_37' of https://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-06-27 08:36:55 +08:00
Eloy Lafuente (stronk7) 7ab8ebf5b1 MDL-53778 quiz: ensure completion deps are fulfilled by behat
Behat backgrounds and scenarios must observe the new
interdependencies between quiz completion settings.

This commits just applies that to the tests missing it.
2019-06-27 01:12:44 +02:00
Eloy Lafuente (stronk7) c4b9758766 MDL-53778 quiz: ensure completion deps are fulfilled by generator uses
There are some mod_quiz generator issues where the new chain
of dependencies between completion settings was not being observed.

This patch just ensures that the now 3 chained settings are
enabled together (or new quiz options logic will proceed to
disable them).
2019-06-27 01:12:44 +02:00
Eloy Lafuente (stronk7) 679d2d1129 Merge branch 'MDL-66003-37-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-06-26 23:04:27 +02:00
Nicolas Dunand 5cad3e5d46 MDL-63458 core_user: Remove send message if messaging is disabled 2019-06-26 11:30:40 -07:00
Sara Arjona 4faf9ff6c6 Merge branch 'MDL-60088-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-06-26 18:11:17 +02:00
Eloy Lafuente (stronk7) 0a77242e3c Merge branch 'MDL-53778_37' of https://github.com/anieminen/moodle into MOODLE_37_STABLE 2019-06-26 17:50:32 +02:00
Shamim Rezaie 1453ce1208 MDL-65506 forms: get the correct value for advcheckbox fields in js 2019-06-26 20:57:47 +10:00
Eloy Lafuente (stronk7) 798dc31ada Merge branch 'MDL-65249-37-fix' of https://github.com/snake/moodle into MOODLE_37_STABLE 2019-06-26 10:28:36 +02:00
Jake Dallimore 4a2a533fe1 MDL-65249 session: use redis host constant in unit tests 2019-06-26 16:11:05 +08:00
Ilya Tregubov 61373c843d MDL-65249 Session: Throw exception if number of attempts exceeded. 2019-06-26 14:49:23 +08:00
Jake Dallimore 2937760c27 Merge branch 'MDL-60978-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-06-26 13:17:04 +08:00
AMOS bot 03989cb776 Automatically generated installer lang files 2019-06-26 00:09:24 +00:00
Eloy Lafuente (stronk7) a4f78b52f6 Merge branch 'MDL-65181-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-06-26 00:43:50 +02:00
David Mudrák ecc1bd1c73 MDL-66003 lang: Use the updated strings in the tests 2019-06-25 21:30:27 +02:00
Helen Foster 694f33c2f6 MDL-66003 lang: Import fixed English strings (en_fix)
Significant string changes:

* moodleorghubname,core_admin and
  sitemustberegistered,message_airnotifier - 'Moodle.net' changed to
  'Moodle'

* registration_help,core_admin and registermoochtips,core_hub - removed
  erroneous 'access to Moodle.net our course sharing platform'

* trackingtype_help,mod_forum and formnotavailable,core_grading and
  showgrades_help,core and rolewarning_help,core_rating -
  'Administration block' changed to 'Actions menu or admin block',
  'navigation block' changed to 'navigation drawer or block'
2019-06-25 21:30:27 +02:00
David Mudrák d93cdd955b MDL-65892 forum: Fix styling of the inline reply textarea 2019-06-25 14:49:12 +02:00
Arto Nieminen d80d0b4142 MDL-53778 quiz settings: Ensure that disabled checkboxes have value 0 2019-06-25 13:26:29 +03:00
Simey Lameze b73ab4bf04 MDL-65707 calendar: behat scenario to test default event type 2019-06-25 10:23:34 +08:00
Simey Lameze a398df5381 MDL-65707 calendar: set the correct event type on site calendar 2019-06-25 10:23:34 +08:00
AMOS bot b0ff1a1600 Automatically generated installer lang files 2019-06-25 00:09:19 +00:00
Eloy Lafuente (stronk7) 98070f7020 Merge branch 'MDL-64340-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-06-25 00:54:00 +02:00
Bas Brands 40271e858d MDL-64935 theme: prevent activitynavigation link overflowing container 2019-06-24 14:48:53 +02:00
Bas Brands f839aff2b5 MDL-65105 theme_classic: use $dark variable for navbar-dark 2019-06-24 11:43:21 +02:00
Shamim Rezaie 0096c60d46 MDL-65728 tool_customlang: Escape html on the original translation field 2019-06-24 18:27:20 +10:00
Jake Dallimore 65424cea97 Merge branch 'MDL-65893-37' of https://github.com/nicoroeser/moodle into MOODLE_37_STABLE 2019-06-24 11:42:05 +08:00
AMOS bot 863b9081f5 Automatically generated installer lang files 2019-06-24 00:08:17 +00:00
Mathew May 44c178ec4f MDL-60088 travis: add dist:trusty to travis
We are doing this because travis changed its default release to xenial.
So this is a stop gap and we will add xenial support moving forward.
2019-06-23 23:58:51 +08:00
Jun Pataleta e6e99db401 MDL-65965 behat: Map grouping for activity data generator 2019-06-21 15:41:23 +08:00
Jun Pataleta 74c783924f MDL-65965 availability: Behat test for activity grouping restriction 2019-06-21 15:41:23 +08:00
Andrew Nicols 0703eeca7c MDL-60978 travis: Re-enable Redis session tests 2019-06-21 14:36:13 +08:00
Andrew Nicols 866f014372 MDL-60978 session: Run redis tests in isolation 2019-06-21 14:36:13 +08:00
Andrew Nicols 22ad84cb00 MDL-60978 testing: Support ability to run phpunit in isolated process 2019-06-21 14:36:13 +08:00
Shamim Rezaie d56311006a MDL-64340 mod_quiz: not display "add random question" when no permission 2019-06-21 08:53:47 +10:00
Eloy Lafuente (stronk7) 30d4327769 weekly release 3.7+ 2019-06-20 17:43:09 +02:00
Eloy Lafuente (stronk7) d987202dff Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-06-20 17:43:05 +02:00
Juan Leyva 25d288d297 MDL-65973 calendar: Avoid sesskey checks in WS
External function submit_create_update_form should avoid any sesskey checks.
2019-06-20 15:07:43 +02:00
Jake Dallimore aa6b0c6d03 Merge branch 'MDL-65084-m37' of https://github.com/NeillM/moodle into MOODLE_37_STABLE 2019-06-20 09:40:26 +08:00
Jake Dallimore 6f3819a805 Merge branch 'MDL-65883-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-06-20 09:13:02 +08:00
Andrew Nicols 2641b5e31e Merge branch 'MDL-61319-37' of git://github.com/bmbrands/moodle into MOODLE_37_STABLE 2019-06-20 08:10:10 +08:00
Eloy Lafuente (stronk7) 35db491a6d Merge branch 'MDL-64975-37' of https://github.com/nicoroeser/moodle into MOODLE_37_STABLE 2019-06-20 00:17:55 +02:00
Eloy Lafuente (stronk7) 27deb31ded Merge branch 'MDL-65910-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-06-19 20:54:36 +02:00
Eloy Lafuente (stronk7) 511e5c933a Merge branch 'MDL-65665-37-2' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-06-19 20:29:38 +02:00
Eloy Lafuente (stronk7) 5574d3431b Merge branch 'MDL-65666-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-06-19 18:38:26 +02:00
Eloy Lafuente (stronk7) ee8c5098c9 Merge branch 'MDL-65806-m37' of https://github.com/sammarshallou/moodle into MOODLE_37_STABLE 2019-06-19 18:27:19 +02:00
Eloy Lafuente (stronk7) 480396103b Merge branch 'MDL-65864_37' of git://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-06-19 18:09:28 +02:00
Eloy Lafuente (stronk7) 4e5ebf89ba Merge branch 'MDL-55821-37' of git://github.com/damyon/moodle into MOODLE_37_STABLE 2019-06-19 18:05:20 +02:00
Neill Magill 015607040a MDL-65084 recent items: Handle deleted courses
The method should not cause errors when a course with activities
that the user has visited no longer exists.

Ensuring that we only get records for courses still in the database
will stop any course not found erros from get_fast_modinfo()

(cherry picked from commit f1d4c355fb25321756cfbed3b38afbe6e91ccdf9)
2019-06-19 09:04:33 +01:00
Neill Magill c58a1e9067 MDL-65084 recent items: Test handling of deleted courses 2019-06-19 09:04:31 +01:00
Simey Lameze eecc04f29c MDL-65883 mod_quiz: replace all hardcoded urls to proper params 2019-06-19 15:27:22 +08:00
Simey Lameze f237e35755 MDL-65883 mod_quiz: change attemptlib_test to use data generators 2019-06-19 15:27:22 +08:00
Simey Lameze bee606d3b1 MDL-65883 mod_quiz: fix quiz navigation buttons href 2019-06-19 15:27:22 +08:00
Jake Dallimore 38b5816722 Merge branch 'MDL-65904-37' of git://github.com/merrill-oakland/moodle into MOODLE_37_STABLE 2019-06-19 14:59:06 +08:00
Tim Hunt 6e5e4cc208 MDL-57884 quiz: autosave should not send the value of submit buttons 2019-06-18 17:47:48 +01:00
Bas Brands 4af9077f26 MDL-61319 themes: prevent using @extend rules for complex classes
* the settings and navigation blocks scss extended .fa which caused
issues with native fontawesome classes like fa-pull-left.
2019-06-18 13:49:37 +02:00
M Kassaei 0b2c17a183 MDL-65840 qtype_ddmarker: coordinates of cirle shape
The coordinates of a circle shape are not allowed to be smaller than its radius.
By default, set the coordinates to be the same as the radius.
2019-06-18 09:45:37 +08:00
Andrew Nicols 2a55bff8f6 Merge branch 'MDL-65469-37_2' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-18 09:16:53 +08:00
Eloy Lafuente (stronk7) e235ef7bd9 MDL-65469 mod_forum: Check for existence before operating 2019-06-18 08:50:32 +08:00
Peter 47dd7dd840 MDL-65469 core: Backported updates from master 2019-06-18 08:40:21 +08:00
AMOS bot 70c75a7a47 Automatically generated installer lang files 2019-06-18 00:08:37 +00:00
Eloy Lafuente (stronk7) a7367b6cf3 Merge branch 'MDL-65869-37' of git://github.com/aanabit/moodle into MOODLE_37_STABLE 2019-06-18 00:14:18 +02:00
Eloy Lafuente (stronk7) ae8dfad361 Merge branch 'MDL-64383-37' of git://github.com/damyon/moodle into MOODLE_37_STABLE 2019-06-17 23:02:53 +02:00
Andrew Nicols a0bdd53e21 Merge branch 'MDL-65469-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-17 15:19:35 +08:00
Andrew Nicols c615b3e96b Merge branch 'MDL-65888-37' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-06-17 10:52:48 +08:00
AMOS bot e3475fd088 Automatically generated installer lang files 2019-06-15 00:08:13 +00:00
Nicolas Roeser e934a351e9 MDL-64975 moodlelib: fix float formatting if decsep is ~ (tilde)
Commit 637da99edb has introduced changes
for removing trailing zeroes from the output of function format_float.
Due to a small omission, the function causes a PHP warning when the
string decsep is set to a tilde character ('~'). This is rarely the
case.

The bug lies in using PHP function preg_replace with a string that
contains external input (in this case, including decsep), but without
escaping it for PCRE processing.

This commit fixes the function to also support a tilde character in
string decsep. It also adds tests for having tilde as decimal separator.

Thanks-To:  Jake Dallimore <jake@moodle.com>
2019-06-14 13:04:37 +02:00
Paul Holden 564753102d MDL-65181 mod_data: show required field indicator for textarea fields. 2019-06-14 09:58:18 +01:00
Nicolas Roeser 91916adde5 MDL-65893 webservice: format site name (handle language tags etc.)
Allow web service clients (like the Moodle App) to benefit from a
formatted (filtered) site name. Select the filtered (localized etc.)
string on server side, before it is sent to the web service client.

For example, this translates a site name which uses language tags in
curly braces when using the filter_multilang2 plugin.

Thanks-To: Juan Leyva <juan@moodle.com>
Thanks-To: Kathrin Osswald <kathrin.osswald@uni-ulm.de>
2019-06-14 10:38:32 +02:00
Amaia Anabitarte 7af3ae4834 MDL-65869 behat: Moving @app behat tests from core to moodlemobileapp
As described in MDL-65869 we are moving @app behat tests to
https://github.com/moodlehq/moodle-local_moodlemobileapp to be easier to maintain
and be sure are working with different mobile versions.
So we are not deprecating tests from core, just removing them because will be
in a different location.
2019-06-14 10:17:17 +02:00
Jun Pataleta fdfd266454 MDL-65910 report_stats: Add stattype query condition for consistency 2019-06-14 13:01:32 +08:00
Mihail Geshoski f3e11eef99 MDL-65665 forum: WS does not respect subscribe on reply user preference 2019-06-14 08:45:59 +08:00
Mihail Geshoski 94c5e0ade7 MDL-65665 forum: Add unit test 2019-06-14 08:45:59 +08:00
Tim Hunt 55929d8a49 MDL-65864 question engine: fix re-saving a new usage
Before this fix, test_repeated_usage_saving_new_usage was failing but
test_repeated_usage_saving_existing_usage was passing. Now the
behaviour is consistent and they both pass.
2019-06-13 18:01:54 +01:00
Eloy Lafuente (stronk7) d0b1204d8e weekly release 3.7+ 2019-06-13 18:15:48 +02:00
Eloy Lafuente (stronk7) 81a3d127b1 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-06-13 18:15:46 +02:00
Shamim Rezaie 4f7eaa8b46 MDL-65666 mod_forum: Highlight unread posts count in the discussion list 2019-06-14 01:26:36 +10:00
Shamim Rezaie 9b6a5a9b24 MDL-65786 mod_forum: mark posts as read when they are read 2019-06-13 23:34:03 +10:00
Shamim Rezaie c3c8dfeb51 MDL-65786 mod_forum: re-adding the unread count to the social format 2019-06-13 23:34:03 +10:00
Shamim Rezaie 07f8abfb30 MDL-65786 mod_forum: pass parameter to str helper when loading strings
We should not concatenate strings. We should make use of the {$a}placeholder instead.
2019-06-13 23:34:03 +10:00
Andrew Nicols 54c6679153 Merge branch 'MDL-65814-37' of git://github.com/junpataleta/moodle into MOODLE_37_STABLE 2019-06-13 11:44:15 +08:00
Jun Pataleta 089fbd15cc MDL-65814 block_timeline: Bring back item counts for action events 2019-06-13 11:32:03 +08:00
Jun Pataleta 7132749e18 Merge branch 'MDL-55997-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-13 10:28:56 +08:00
Peter 9ca2c8dc52 MDL-55997 core_reports: modify user stats query to fix duplicate rows 2019-06-13 07:46:22 +08:00
Eloy Lafuente (stronk7) f55a4c094e Merge branch 'MDL-64484-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-06-12 20:08:12 +02:00
Eric Merrill 3a3a212405 MDL-65904 theme: Compile fallback css in the correct order 2019-06-12 13:08:54 -04:00
Paul Holden ad7d0f05de MDL-65884 filters: update exclusive separator characters for tags.
The previous characters mangled the output of filtered text, exhibited
in the activity names filter for activities named '-' (single hyphen).
2019-06-12 17:10:21 +01:00
Paul Holden 0998cf8010 MDL-64484 user: cross-DB compatible profile field ordering. 2019-06-12 17:02:32 +01:00
Jun Pataleta 3766be85b2 Merge branch 'MDL-65803-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-12 13:58:45 +08:00
Andrew Nicols 83273d25b9 Merge branch 'MDL-65703-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-06-12 12:39:05 +08:00
Peter b798b05411 MDL-65803 recentlyaccesseditems: Restrict response to valid courses.
* Additional hooks to cleanup data when a course or module is deleted
* Augmented unit tests to cover the situation when a course is deleted
* Upgrade step to cleanup existing data
2019-06-12 12:16:22 +08:00
Andrew Nicols 7eb50a3753 Merge branch 'MDL-65829_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-06-12 10:33:03 +08:00
Andrew Nicols 4a4b4e28a4 Merge branch 'MDL-64484-37' of https://github.com/paulholden/moodle into MOODLE_37_STABLE 2019-06-12 09:01:21 +08:00
sam marshall 42c31d53c8 MDL-65806 Search: Solr does not find words in italic 2019-06-11 16:42:20 +01:00
Paul Holden ea770fe8c8 MDL-64484 user: show full profile field name in filter element. 2019-06-11 14:25:19 +01:00
David Mudrák 434a580558 MDL-65888 forum: Do not send notifications to unconfirmed users
Under certain conditions, users marked as not confirmed yet may be
returned as forum notification recipients. Such users are considered as
inactive though and the delivery adhoc task cannot be run as these
users, throwing an exception.

The solution is to make sure that fetch_subscribed_users() does not
include unconfirmed users, similarly to what was done for suspended
users and nologin users.

The added unit test also checks for deleted users. But these should
never be returned as subscribed because we consider enrolled users only
and deleted users are filtered out implicitly.
2019-06-11 09:49:59 +02:00
Andrew Nicols 9a7a447722 Merge branch 'MDL-65779-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-11 12:07:58 +08:00
Andrew Nicols 1bf28ecb43 Merge branch 'MDL-65817_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-06-11 11:06:13 +08:00
Andrew Nicols 9c99a5da5c Merge branch 'MDL-65183-MOODLE-37' of https://github.com/kristian-94/moodle into MOODLE_37_STABLE 2019-06-11 11:02:06 +08:00
Jun Pataleta 95008df6d9 Merge branch 'MDL-65336-37' of git://github.com/aanabit/moodle into MOODLE_37_STABLE 2019-06-10 19:37:15 +08:00
Jun Pataleta f499fa90f1 Merge branch 'MDL-55592-37' of git://github.com/damyon/moodle into MOODLE_37_STABLE 2019-06-10 15:25:05 +08:00
Andrew Nicols 015b617739 Merge branch 'm37_MDL-61038_Fix_uuid_extensions_usage_v2' of https://github.com/scara/moodle into MOODLE_37_STABLE 2019-06-10 14:11:07 +08:00
Matteo Scaramuccia 423c1d6c50 MDL-61038 setuplib: Fixed PECL UUID extension support 2019-06-08 22:35:37 +02:00
Amaia Anabitarte c4bee8e510 MDL-65336 core_message: New muted conversation generator and selectors 2019-06-07 10:41:08 +02:00
Amaia Anabitarte 023ea98fc1 MDL-65336 core_message: Behat tests for mute/unmute conversations 2019-06-07 10:41:08 +02:00
Peter f1e0128a43 MDL-65469 mod_forum: Use the formchange checker initializer 2019-06-07 08:49:10 +08:00
Peter 167b85e60c MDL-65469 core: Expose formchecker to initialize current form state 2019-06-07 08:49:10 +08:00
AMOS bot 4b6e850e68 Automatically generated installer lang files 2019-06-07 00:09:47 +00:00
Kristian Ringer e48dd422f9 MDL-65183 block_timeline: escape newline characters 2019-06-07 09:36:24 +10:00
Eloy Lafuente (stronk7) dc8b92e0b2 MDL-65817 behat: switch to forked repo towards php73 compatibility
It seems that https://github.com/instaclick/php-webdriver/pull/91
is being ignored (in fact the repository itself doesn't show much
activity). So we have decided to fork it and apply any fix able
to keep our (non-marionette) runs working.

Hopefully, soon, the new W3C drivers will be supported by our
behat->mink stack... and we'll be able to move to it (from current
JSonwire drivers). So all this will be hostory.
2019-06-06 19:50:44 +02:00
David Monllaó 840d6ba543 MDL-65829 analytics: Accept enrol start time after analysis time 2019-06-06 19:05:51 +02:00
Eloy Lafuente (stronk7) 078699a1a5 weekly release 3.7+ 2019-06-06 16:46:52 +02:00
Eloy Lafuente (stronk7) c0266bdaf6 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-06-06 16:46:50 +02:00
Damyon Wiese 46f7f67db1 MDL-55821 assign: Show assign grade
When marking workflow is enabled and the grade is not released yet,
it would be helpful to show the assignment grade in the grading form.
2019-06-06 14:27:01 +08:00
Damyon Wiese e8b50bbe34 MDL-64383 user: Make username required
Username is a required field, we should indicate this even if it has a help icon.
2019-06-06 13:28:29 +08:00
AMOS bot 33113481b5 Automatically generated installer lang files 2019-06-06 00:08:17 +00:00
Jun Pataleta 8f11f7741a Merge branch 'MDL-65787-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2019-06-05 17:24:18 +08:00
Sara Arjona b31ec4dfbf MDL-65787 badges: fix warning count() with PHP 7.2 2019-06-05 11:03:11 +02:00
Sara Arjona 2b63da7763 Merge branch 'MDL-65777-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-06-05 09:01:00 +02:00
Mihail Geshoski 24bc58278f MDL-65777 assignment: Respect user full name in downloaded submissions 2019-06-05 11:14:51 +08:00
Adrian Greeve b59f56c259 Merge branch 'MDL-65731_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE 2019-06-05 10:40:41 +08:00
AMOS bot 29e40f3c13 Automatically generated installer lang files 2019-06-05 00:08:19 +00:00
Eloy Lafuente (stronk7) d2707c2d28 Merge branch 'MDL-65689-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-06-04 23:32:20 +02:00
Eloy Lafuente (stronk7) 898befb275 Merge branch 'MDL-65578-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-04 23:30:36 +02:00
Eloy Lafuente (stronk7) 938267b43a Merge branch 'MDL-65576-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-06-04 21:40:00 +02:00
Eloy Lafuente (stronk7) f9f5f5ddc8 Merge branch 'm37_MDL-65686_Fix_Incorrect_Function_Call' of https://github.com/scara/moodle into MOODLE_37_STABLE 2019-06-04 20:04:55 +02:00
Simey Lameze ca66ad24c8 MDL-65703 calendar: do not add course param for site calendar 2019-06-04 19:37:35 +08:00
Andreas Grabs e1f4756dfb MDL-65703 core_calendar: fix user event type filtering logic 2019-06-04 19:37:34 +08:00
Mathew May 12e04336a0 MDL-65658 mod_forum: Update the group image titles 2019-06-04 11:50:37 +02:00
Jun Pataleta 266aa66267 Merge branch 'MDL-65696-MOODLE-37' of https://github.com/kristian-94/moodle into MOODLE_37_STABLE 2019-06-04 16:54:52 +08:00
Peter af098adec2 MDL-65779 mod_forum: Add privatereplies to the backup process 2019-06-04 12:21:15 +08:00
Andrew Nicols 202cfa2987 MDL-65656 analytics: Stop covering memory-intensive tests 2019-06-04 11:18:49 +08:00
Andrew Nicols bafa907941 MDL-65656 core: Update composer.json for new PHPUnit version 2019-06-04 11:18:49 +08:00
AMOS bot f5131809c8 Automatically generated installer lang files 2019-06-04 00:08:14 +00:00
Eloy Lafuente (stronk7) 37c30f2249 Merge branch 'MDL-63240-37' of https://github.com/Kathrin84/moodle into MOODLE_37_STABLE 2019-06-03 17:57:49 +02:00
Eloy Lafuente (stronk7) 110a3639c3 Merge branch 'MDL-65660-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-06-03 17:51:43 +02:00
Eloy Lafuente (stronk7) 7631b43d33 Merge branch 'MDL-65675-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-06-03 17:37:21 +02:00
Sara Arjona a51f9bd003 Merge branch 'MDL-65658' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-06-03 12:33:28 +02:00
AMOS bot e998b14686 Automatically generated installer lang files 2019-06-03 00:08:17 +00:00
Kristian Ringer 5ed8d694ee MDL-65696 assign: Fix width of editpdf comments 2019-06-03 09:29:28 +10:00
Andrew Nicols f0782cc57b MDL-65578 forum: Hide action menu where no actions exist 2019-05-31 12:43:52 +08:00
Mathew May 33b74df149 MDL-65658 mod_forum: Group images links and titles groups
After a change in Moodle 3.6 some links & titles went missing.
Here I am adding them back & incresing the output image to 100x100px
2019-05-31 08:17:59 +08:00
Andrew Nicols 24e0b238d3 MDL-65576 behat: Reset Selenium driver between scorm scenarios 2019-05-31 08:09:00 +08:00
Peter dfddaa8ab6 MDL-65660 mod_forum: Allow guest users to view post buttons and links
For a self enrolment enabled course allow guest users to see the add
discussion and reply buttons
2019-05-31 07:07:13 +08:00
Eloy Lafuente (stronk7) 57b83a4f41 MDL-64794 tcpdf: Bump to tcpdf 6.2.26 2019-05-30 23:48:14 +02:00
Matteo Scaramuccia c9be953f05 MDL-65686 setuplib: Fix missing round brackets 2019-05-30 22:42:21 +02:00
Eloy Lafuente (stronk7) 794391b978 weekly release 3.7+ 2019-05-30 12:18:38 +02:00
Eloy Lafuente (stronk7) a7df733250 Merge branch 'install_37_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_37_STABLE 2019-05-30 12:18:36 +02:00
Tim Hunt 15d5c9a276 MDL-65731 quiz manual grading: fix ambiguous order by idnumber 2019-05-29 16:55:01 +01:00
Kathrin Osswald ec60f63f59 MDL-63240 theme Boost: Removed z-indexes for border styling in navdrawer 2019-05-29 17:52:36 +02:00
Marina Glancy a024a024e8 MDL-65726 core_roles: allow to create roles in install.php 2019-05-29 10:47:36 +02:00
Damyon Wiese 09304bcbff MDL-55592 lti: Forget the key and secret
When the "Enter your consumer key and shared secret" form is displayed,
it should not contain the same values it had the last time it was opened.
2019-05-29 13:59:38 +08:00
Adrian Greeve 53ef327e54 Merge branch 'MDL-57729-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE 2019-05-29 11:40:48 +08:00
Adrian Greeve 685a71917b Merge branch 'MDL-65726-37' of git://github.com/marinaglancy/moodle into MOODLE_37_STABLE 2019-05-29 11:07:42 +08:00
Mihail Geshoski 04288af505 MDL-57729 enrol_lti: Escape the property values of the xpath elements 2019-05-29 09:56:52 +08:00
Jake Dallimore 4ac6149680 Merge branch 'MDL-65326-MOODLE_37_STABLE' of https://github.com/dmitriim/moodle into MOODLE_37_STABLE 2019-05-29 09:29:44 +08:00
AMOS bot 308046f1bc Automatically generated installer lang files 2019-05-29 00:09:19 +00:00
Marina Glancy d6c2bf620c MDL-65726 role: do not fail unittest if plugins create their roles 2019-05-28 19:08:29 +02:00
Adrian Greeve 8869cf8cd9 Merge branch 'MDL-65705-37' of git://github.com/sarjona/moodle into MOODLE_37_STABLE 2019-05-28 16:28:50 +08:00
Sara Arjona b32974f12a MDL-65705 badges: fix issued date for external badges
The preg_match('~^[1-9][0-9]*$~', x) calls have been replaced to
is_numeric(x).
2019-05-28 09:26:00 +02:00
Ryan Wyllie 48b3e4e9b2 MDL-65657 message: reduce message poll timer for behat tests 2019-05-28 14:06:05 +08:00
Jun Pataleta 4996f75a3b Merge branch 'MDL-65697-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-05-28 13:31:21 +08:00
Jake Dallimore bf2cecc440 Merge branch 'MDL-65692-37' of git://github.com/abgreeve/moodle into MOODLE_37_STABLE 2019-05-28 13:27:01 +08:00
Dmitrii Metelkin ec920f7901 MDL-65326 backup: check caps exist before assigning 2019-05-28 11:17:24 +10:00
Jun Pataleta 1131af4409 Merge branch 'MDL-65606-37' of https://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-05-27 16:27:30 +08:00
Jake Dallimore 46d8ffcefa Merge branch 'MDL-64330-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-05-27 15:22:57 +08:00
Andrew Nicols e2ea9b4c09 MDL-64330 course: Correct course test assumptions 2019-05-27 15:08:25 +08:00
Adrian Greeve 523efc4cd0 Merge branch 'MDL-65699-37' of http://github.com/dravek/moodle into MOODLE_37_STABLE 2019-05-27 14:53:36 +08:00
Andrew Nicols 3f853115e9 Merge branch 'MDL-65708-37' of git://github.com/Chocolate-lightning/moodle into MOODLE_37_STABLE 2019-05-27 14:46:09 +08:00
Mathew May 8a8a02c903 MDL-65606 mod_data: Add approvalstatusclass to template 2019-05-27 13:39:36 +08:00
Ryan Wyllie 946533c623 MDL-65657 message: revert polling timeout back to old algorithm 2019-05-27 13:29:02 +08:00
Mathew May 1f686d7fdf MDL-65708 output: Get a base config from Boost
As a part of the removal of bootstrapbase & clean
I removed some logic that got the base config of bootstrapbase,
this should of been changed to get boosts config.
See: e00f1c663c
2019-05-27 13:21:24 +08:00
Andrew Nicols 4e9e994da4 MDL-65675 forum: Remove duplicate Re in subjects 2019-05-27 12:22:16 +08:00
Adrian Greeve 3ce4575dc0 Merge branch 'MDL-64523-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-05-27 10:49:22 +08:00
David Monllaó 88dfc54de9 MDL-65680 analytics: Fix random failure on slow test environments 2019-05-27 09:42:41 +08:00
AMOS bot d855dcd29e Automatically generated installer lang files 2019-05-25 00:08:34 +00:00
AMOS bot 5d4bf77a16 Automatically generated installer lang files 2019-05-25 00:08:33 +00:00
Shamim Rezaie fc00a6641c MDL-65689 task: fix typo in help string 2019-05-25 05:19:40 +10:00
Shamim Rezaie cee73270c7 MDL-64523 core_access: replace .delegate with .on
As of jQuery 3.0, .delegate() has been deprecated. It was superseded by
the .on() method since jQuery 1.7, so its use was already discouraged.
2019-05-25 04:27:54 +10:00
Shamim Rezaie 245de290f7 MDL-64523 core_access: Fix js racing issue when overriding permissions 2019-05-25 04:27:53 +10:00
Shamim Rezaie 1a6160df3c MDL-64523 core_access: Improve the title of the delete role links 2019-05-25 04:27:53 +10:00
Sara Arjona 2a3df3d55c Merge branch 'MDL-65060-37' of git://github.com/aanabit/moodle into MOODLE_37_STABLE 2019-05-24 12:35:25 +02:00
David Matamoros c227fc61f1 MDL-65699 core_calendar: Check string exists for event types 2019-05-24 12:20:59 +02:00
Amaia Anabitarte 38a9ba9bcd MDL-65060 core_message: Delete messages behat test 2019-05-24 12:15:44 +02:00
Simey Lameze a4e309709d MDL-65697 qtype_missingtype: include missing class 2019-05-24 07:02:10 +08:00
Eloy Lafuente (stronk7) e39f3b7db2 weekly release 3.7+ 2019-05-23 20:35:31 +02:00
Amaia Anabitarte 2a64720ac8 MDL-65060 core_message: Group message data generator 2019-05-23 15:31:19 +02:00
Eloy Lafuente (stronk7) cf0307a529 Merge branch 'MDL-65695-37' of git://github.com/andrewnicols/moodle into MOODLE_37_STABLE 2019-05-23 10:50:36 +02:00
Eloy Lafuente (stronk7) c4758ab813 Merge branch 'MDL-65694-37-gradeclassnotfound' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-05-23 10:33:26 +02:00
Andrew Nicols d2c91281db MDL-65695 forum: Bump digest time to next day if in past 2019-05-23 15:06:23 +08:00
Adrian Greeve 9a88b8ec35 MDL-65692 backup: Default settings set on install and upgrade.
Asynchronous backup settings are now filled out with the defaults
on installation and upgrade.
2019-05-23 14:54:19 +08:00
David Mudrák 7a2beab44e MDL-65694 grade: Fix missing gradelib library
In the be8f453b74 the gradelib loading was removed by mistake. So
the library may not be loaded and executing the task may end with
the exception - class 'grade_grade' not found.
2019-05-23 07:48:54 +02:00
Tim Hunt a586240cc0 MDL-55197 filter_multilang: handle 'en' as parent lang better 2019-05-23 11:58:58 +08:00
Tim Hunt d2680dbb27 MDL-55197 filter_multilang: move preg_callback fn into class 2019-05-23 11:58:58 +08:00
Andrew Nicols c5b884bd51 Merge branch 'MDL-59650-37' of git://github.com/lameze/moodle into MOODLE_37_STABLE 2019-05-23 10:29:00 +08:00
Adrian Greeve 5d5313537b Merge branch 'MDL-65549_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-05-23 10:10:25 +08:00
Adrian Greeve 5e6bc1b0f3 Merge branch 'MDL-65634_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-05-23 09:54:47 +08:00
Andrew Nicols 65d4f096db Merge branch 'MDL-65654-37' of https://github.com/danielneis/moodle into MOODLE_37_STABLE 2019-05-23 09:49:20 +08:00
Adrian Greeve cb69e26b15 Merge branch 'MDL-64530_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-05-23 09:23:01 +08:00
Simey Lameze f25a7d2ac7 MDL-59650 core_calendar: remove limit from calendar UI 2019-05-23 08:40:00 +08:00
Simey Lameze de760475cf MDL-59650 core_calendar: remove limit from event exporter 2019-05-23 08:40:00 +08:00
Amaia Anabitarte a3824e559b MDL-65060 core_message: Group_message_message_content selector 2019-05-22 18:56:27 +02:00
Ryan Wyllie 67b64f85e9 MDL-65060 core_message: add render buffer to conversations
Change the conversation logic to render using a buffer so that we can
immediately save state. The render patches are based on the state so
the UI will always reach eventual consistency with the state since the
patches are processed in order.
2019-05-22 18:56:27 +02:00
Sara Arjona ac11f60853 Merge branch 'MDL-65661-37' of git://github.com/peterRd/moodle into MOODLE_37_STABLE 2019-05-22 14:57:56 +02:00
Tim Hunt 09558248e8 MDL-65636 filter_multilang: add some basic unit tests
This commit includes suggestions from Jun Pataleta on how to improve the
unit tests.
2019-05-22 19:36:55 +08:00
Peter d186ba2f81 MDL-65661 block_myoverview: Truncate category name 2019-05-22 19:34:54 +08:00
Peter 7ee550a943 MDL-65661 core_course: Truncate long course names 2019-05-22 19:34:54 +08:00
David Monllaó e260354fc9 MDL-65067 tool_analytics: Limit update_end_date to format_weeks 2019-05-22 16:31:03 +08:00
Didier 'OdyX' Raboud cd9c54c93c MDL-65067 analytics: Strengthen format_weeks detection
The public function get_section_dates($section, $startdate = false) is
only defined in format_weeks, not in format_base.

As other formats can (and format_topcoll has) declare a different
get_section_dates public method, merely checking that it exists is not
sufficient to guarantee that it can be called with just a section object.

Check that the format either is, or is a subclass of format_weeks.
2019-05-22 16:30:52 +08:00
Paul Holden 2cd4e5f8dc MDL-64784 core: update tablelib tests for explicit sort direction. 2019-05-22 14:49:41 +08:00
Paul Holden 8978731b82 MDL-64784 core: consistent column sort direction in flexible_table. 2019-05-22 14:49:28 +08:00
Andrew Nicols 5c06a1935b Merge branch 'MDL-65590-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-05-22 13:52:34 +08:00
Jun Pataleta c04e89b086 Merge branch 'MDL-65591-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-05-22 11:06:39 +08:00
Andrew Nicols 4909257b07 Merge branch 'MDL-65630-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-05-22 09:42:38 +08:00
Daniel Neis Araujo 695675483f MDL-65654 tool_uploaduser: Fix undefined variable warning 2019-05-21 14:02:03 -03:00
David Monllaó c3217a6b0d MDL-65549 tool_analytics: Reduce the context name length in models_view 2019-05-21 17:29:23 +02:00
David Monllaó 21527bf096 MDL-65634 analytics: Discard late and early student enrolments 2019-05-21 17:24:17 +02:00
Sara Arjona 8178cf1bb9 Merge branch 'MDL-65605-37' of git://github.com/rezaies/moodle into MOODLE_37_STABLE 2019-05-21 13:47:39 +02:00
Jun Pataleta bc4f56abc3 Merge branch 'MDL-65274-37' of git://github.com/jleyva/moodle into MOODLE_37_STABLE 2019-05-21 18:49:25 +08:00
Víctor Déniz Falcón 0864ebc14c MDL-60407 report_insights: Fix redirect when action on last prediction
When an actions is taken on the last prediction, the predictions
list page is reloaded.
2019-05-21 18:45:42 +08:00
Adrian Greeve 31354cc381 Merge branch 'MDL-65572-37' of git://github.com/damyon/moodle into MOODLE_37_STABLE 2019-05-21 15:20:30 +08:00
Andrew Nicols 422a34a6f5 Merge branch 'MDL-65644_37' of git://github.com/stronk7/moodle into MOODLE_37_STABLE 2019-05-21 12:51:49 +08:00
Shamim Rezaie d16540aa88 MDL-65590 tool_customlang: Escape html on the standard text field 2019-05-21 14:21:04 +10:00
Adrian Greeve d3a76147e0 Merge branch 'MDL-65655-37-forumcroninactiveusers' of git://github.com/mudrd8mz/moodle into MOODLE_37_STABLE 2019-05-21 11:39:58 +08:00
Eloy Lafuente (stronk7) c48f2c90cc MDL-64530 travis: Enabble PHP 7.3 and redis cache
This commit performs a number of changes:

- Enables PHP 7.3, replacing PHP 7.2 (max/min approach).
- Enables back the redis service
- Configures redis cache store tests to be run.
- Disables redis session tests for PHP 7.2 and up (MDL-60978)
2019-05-21 01:28:23 +02:00
Eloy Lafuente (stronk7) 1f2cde345a MDL-65644 upgrade: add 3.7.0 separation line to all upgrade scripts 2019-05-20 19:36:01 +02:00
Shamim Rezaie 171a83f79b MDL-65591 tool_customlang: Re-adding the save buttons at the bottom 2019-05-21 02:21:24 +10:00
Juan Leyva a137762fec MDL-65274 mod_quiz: Do not return a translated string
We should be returning proper error codes and the translated string can be part of the debug information.
2019-05-20 15:55:18 +02:00
Shamim Rezaie b52ceb2972 MDL-65630 mod_quiz: Allow redo within an attempt with random questions 2019-05-20 23:50:21 +10:00
Shamim Rezaie 400239c7c5 MDL-65630 mod_quiz: Move logging in to the start of tests
The background is for set up, the scenario is for the test. Logging in
to start the test is the start of the test and the end of the background
itself.
2019-05-20 23:50:20 +10:00
Shamim Rezaie 159f904af5 MDL-65605 core_question: Fix the issue when get_draft_files returns nul 2019-05-20 23:49:13 +10:00
Shamim Rezaie a01edef5be MDL-65605 mod_lesson: Fix the issue when get_draft_files returns null 2019-05-20 23:49:13 +10:00
Damyon Wiese cfa7d2653c MDL-65572 messaging: Loginas upgrade check
When using login as, we also need to check if there are legacy messages that
need updating and set the user preference if required.
2019-05-20 09:15:13 +08:00
1489 changed files with 32064 additions and 11948 deletions
+1
View File
@@ -65,6 +65,7 @@ lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
lib/php-jwt/
lib/mdn-polyfills/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
+1 -1
View File
@@ -203,7 +203,7 @@
}
},
{
files: ["**/amd/src/*.js"],
files: ["**/amd/src/*.js", "Gruntfile.js"],
// Check AMD with some slightly stricter rules.
rules: {
'no-unused-vars': 'error',
+2
View File
@@ -0,0 +1,2 @@
**/amd/**
/*.js
+1
View File
@@ -0,0 +1 @@
v14.0.0
+1
View File
@@ -66,6 +66,7 @@ lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
lib/php-jwt/
lib/mdn-polyfills/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
+46 -31
View File
@@ -2,8 +2,6 @@
# process (which uses our internal CI system) this file is here for the benefit
# of community developers git clones - see MDL-51458.
sudo: required
# We currently disable Travis notifications entirely until https://github.com/travis-ci/travis-ci/issues/4976
# is fixed.
notifications:
@@ -11,21 +9,21 @@ notifications:
language: php
os: linux
dist: xenial
services:
- mysql
- docker
php:
# We only run the highest and lowest supported versions to reduce the load on travis-ci.org.
- 7.2
- 7.1
- 7.3
- 7.1.30 # Make this sticky because current default version (7.1.11) has a bug with redis-extension output (MDL-66062)
addons:
postgresql: "9.6"
packages:
- mysql-server-5.6
- mysql-client-core-5.6
- mysql-client-5.6
# Redis tests are currently failing on php 7.2 due to https://bugs.php.net/bug.php?id=75628
# services:
# - redis-server
env:
# Although we want to run these jobs and see failures as quickly as possible, we also want to get the slowest job to
@@ -35,9 +33,6 @@ env:
# CI Tests should be second-highest in priority as these only take <= 60 seconds to run under normal circumstances.
# Postgres is significantly is pretty reasonable in its run-time.
# Run unit tests on MySQL
- DB=mysqli TASK=PHPUNIT
# Run CI Tests without running PHPUnit.
- DB=none TASK=CITEST
@@ -47,39 +42,40 @@ env:
# Perform an upgrade test too.
- DB=pgsql TASK=UPGRADE
matrix:
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:
# Run mysql only on 7.3 - it's just too slow
- php: 7.3
env: DB=mysqli TASK=PHPUNIT
# Run grunt/npm install on highest version ('node' is an alias for the latest node.js version.)
- php: 7.2
env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon'
exclude:
# MySQL - it's just too slow.
# Exclude it on all versions except for 7.2
- env: DB=mysqli TASK=PHPUNIT
php: 7.1
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 stop mysql
sudo service mysql stop
sudo mv /var/lib/mysql /mnt/ramdisk
sudo ln -s /mnt/ramdisk/mysql /var/lib/mysql
sudo start mysql
sudo service mysql restart
fi
- >
if [ "$DB" = 'pgsql' ];
@@ -99,10 +95,8 @@ install:
echo 'auth.json' >> .git/info/exclude
fi
# Enable Redis.
# Redis tests are currently failing on php 7.2 due to https://bugs.php.net/bug.php?id=75628
# echo 'extension="redis.so"' > /tmp/redis.ini
# phpenv config-add /tmp/redis.ini
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.
@@ -173,12 +167,25 @@ before_script:
mkdir -p "$HOME"/roots/phpunit
# The phpunit dataroot and prefix..
# Redis tests are currently failing on php 7.2 due to https://bugs.php.net/bug.php?id=75628
# -e "/require_once/i \\define('TEST_SESSION_REDIS_HOST', '127.0.0.1');" \
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, but not for PHP 7.2 and up. See MDL-60978 for more info.
redissession="define('TEST_SESSION_REDIS_HOST', '127.0.0.1');"
sed -i \
-e "/require_once/i \\${redissession}" \
config.php ;
# Initialise PHPUnit for Moodle.
php admin/tool/phpunit/cli/init.php
@@ -285,3 +292,11 @@ script:
exit 1 ;
fi
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
+31 -13
View File
@@ -24,6 +24,7 @@
* Grunt configuration
*/
/* eslint-env node */
module.exports = function(grunt) {
var path = require('path'),
tasks = {},
@@ -111,7 +112,13 @@ module.exports = function(grunt) {
eslint: {
// Even though warnings dont stop the build we don't display warnings by default because
// at this moment we've got too many core warnings.
options: {quiet: !grunt.option('show-lint-warnings')},
// To display warnings call: grunt eslint --show-lint-warnings
// To fail on warnings call: grunt eslint --max-lint-warnings=0
// Also --max-lint-warnings=-1 can be used to display warnings but not fail.
options: {
quiet: (!grunt.option('show-lint-warnings')) && (typeof grunt.option('max-lint-warnings') === 'undefined'),
maxWarnings: ((typeof grunt.option('max-lint-warnings') !== 'undefined') ? grunt.option('max-lint-warnings') : -1)
},
amd: {src: amdSrc},
// Check YUI module source files.
yui: {src: ['**/yui/src/**/*.js', '!*/**/yui/src/*/meta/*.js']}
@@ -150,6 +157,9 @@ module.exports = function(grunt) {
tasks: ['yui']
},
gherkinlint: {
options: {
nospawn: false,
},
files: ['**/tests/behat/*.feature'],
tasks: ['gherkinlint']
}
@@ -292,19 +302,27 @@ module.exports = function(grunt) {
};
tasks.gherkinlint = function() {
var done = this.async(),
options = grunt.config('gherkinlint.options');
const done = this.async();
const options = grunt.config('gherkinlint.options');
var args = grunt.file.expand(options.files);
args.unshift(path.normalize(__dirname + '/node_modules/.bin/gherkin-lint'));
grunt.util.spawn({
cmd: 'node',
args: args,
opts: {stdio: 'inherit', env: process.env}
}, function(error, result, code) {
// Propagate the exit code.
done(code === 0);
});
// Grab the gherkin-lint linter and required scaffolding.
const linter = require('gherkin-lint/src/linter.js');
const featureFinder = require('gherkin-lint/src/feature-finder.js');
const configParser = require('gherkin-lint/src/config-parser.js');
const formatter = require('gherkin-lint/src/formatters/stylish.js');
// Run the linter.
const results = linter.lint(
featureFinder.getFeatureFiles(grunt.file.expand(options.files)),
configParser.getConfiguration(configParser.defaultConfigFileName)
);
// Print the results out uncondtionally.
formatter.printResults(results);
// Report on the results.
// The done function takes a bool whereby a falsey statement causes the task to fail.
done(results.every(result => result.errors.length === 0));
};
tasks.startup = function() {
+2 -1
View File
@@ -131,7 +131,8 @@ class task_log_table extends \table_sql {
}
$sql = "SELECT
tl.*,
tl.id, tl.type, tl.component, tl.classname, tl.userid, tl.timestart, tl.timeend,
tl.dbreads, tl.dbwrites, tl.result,
tl.dbreads + tl.dbwrites AS db,
tl.timeend - tl.timestart AS duration,
{$userfields}
+97 -88
View File
@@ -514,100 +514,105 @@ if ($interactive) {
$database = $databases[$CFG->dbtype];
// ask for db host
if ($interactive) {
cli_separator();
cli_heading(get_string('databasehost', 'install'));
if ($options['dbhost'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbhost']);
// We cannot do any validation until all DB connection data is provided.
$hintdatabase = '';
do {
echo $hintdatabase;
// Ask for db host.
if ($interactive) {
cli_separator();
cli_heading(get_string('databasehost', 'install'));
if ($options['dbhost'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbhost']);
} else {
$prompt = get_string('clitypevalue', 'admin');
}
$CFG->dbhost = cli_input($prompt, $options['dbhost']);
} else {
$prompt = get_string('clitypevalue', 'admin');
$CFG->dbhost = $options['dbhost'];
}
$CFG->dbhost = cli_input($prompt, $options['dbhost']);
} else {
$CFG->dbhost = $options['dbhost'];
}
// Ask for db name.
if ($interactive) {
cli_separator();
cli_heading(get_string('databasename', 'install'));
if ($options['dbname'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbname']);
} else {
$prompt = get_string('clitypevalue', 'admin');
}
$CFG->dbname = cli_input($prompt, $options['dbname']);
// ask for db name
if ($interactive) {
cli_separator();
cli_heading(get_string('databasename', 'install'));
if ($options['dbname'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbname']);
} else {
$prompt = get_string('clitypevalue', 'admin');
$CFG->dbname = $options['dbname'];
}
$CFG->dbname = cli_input($prompt, $options['dbname']);
} else {
$CFG->dbname = $options['dbname'];
}
// Ask for db prefix.
if ($interactive) {
cli_separator();
cli_heading(get_string('dbprefix', 'install'));
//TODO: solve somehow the prefix trouble for oci.
if ($options['prefix'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['prefix']);
} else {
$prompt = get_string('clitypevalue', 'admin');
}
$CFG->prefix = cli_input($prompt, $options['prefix']);
// ask for db prefix
if ($interactive) {
cli_separator();
cli_heading(get_string('dbprefix', 'install'));
//TODO: solve somehow the prefix trouble for oci
if ($options['prefix'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['prefix']);
} else {
$prompt = get_string('clitypevalue', 'admin');
$CFG->prefix = $options['prefix'];
}
$CFG->prefix = cli_input($prompt, $options['prefix']);
} else {
$CFG->prefix = $options['prefix'];
}
// Ask for db port.
if ($interactive) {
cli_separator();
cli_heading(get_string('databaseport', 'install'));
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbport']);
$CFG->dboptions['dbport'] = (int) cli_input($prompt, $options['dbport']);
// ask for db port
if ($interactive) {
cli_separator();
cli_heading(get_string('databaseport', 'install'));
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbport']);
$CFG->dboptions['dbport'] = (int)cli_input($prompt, $options['dbport']);
} else {
$CFG->dboptions['dbport'] = (int)$options['dbport'];
}
if ($CFG->dboptions['dbport'] <= 0) {
$CFG->dboptions['dbport'] = '';
}
// ask for db socket
if ($CFG->ostype === 'WINDOWS') {
$CFG->dboptions['dbsocket'] = '';
} else if ($interactive and empty($CFG->dboptions['dbport'])) {
cli_separator();
cli_heading(get_string('databasesocket', 'install'));
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbsocket']);
$CFG->dboptions['dbsocket'] = cli_input($prompt, $options['dbsocket']);
} else {
$CFG->dboptions['dbsocket'] = $options['dbsocket'];
}
// ask for db user
if ($interactive) {
cli_separator();
cli_heading(get_string('databaseuser', 'install'));
if ($options['dbuser'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbuser']);
} else {
$prompt = get_string('clitypevalue', 'admin');
$CFG->dboptions['dbport'] = (int) $options['dbport'];
}
if ($CFG->dboptions['dbport'] <= 0) {
$CFG->dboptions['dbport'] = '';
}
$CFG->dbuser = cli_input($prompt, $options['dbuser']);
} else {
$CFG->dbuser = $options['dbuser'];
}
// Ask for db socket.
if ($CFG->ostype === 'WINDOWS') {
$CFG->dboptions['dbsocket'] = '';
} else if ($interactive and empty($CFG->dboptions['dbport'])) {
cli_separator();
cli_heading(get_string('databasesocket', 'install'));
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbsocket']);
$CFG->dboptions['dbsocket'] = cli_input($prompt, $options['dbsocket']);
} else {
$CFG->dboptions['dbsocket'] = $options['dbsocket'];
}
// Ask for db user.
if ($interactive) {
cli_separator();
cli_heading(get_string('databaseuser', 'install'));
if ($options['dbuser'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbuser']);
} else {
$prompt = get_string('clitypevalue', 'admin');
}
$CFG->dbuser = cli_input($prompt, $options['dbuser']);
} else {
$CFG->dbuser = $options['dbuser'];
}
// Ask for db password.
if ($interactive) {
cli_separator();
cli_heading(get_string('databasepass', 'install'));
// ask for db password
if ($interactive) {
cli_separator();
cli_heading(get_string('databasepass', 'install'));
do {
if ($options['dbpass'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbpass']);
} else {
@@ -615,19 +620,23 @@ if ($interactive) {
}
$CFG->dbpass = cli_input($prompt, $options['dbpass']);
if (function_exists('distro_pre_create_db')) { // Hook for distros needing to do something before DB creation
$distro = distro_pre_create_db($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']), $distro);
if (function_exists('distro_pre_create_db')) { // Hook for distros needing to do something before DB creation.
$distro = distro_pre_create_db($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']),
$distro);
}
$hint_database = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']));
} while ($hint_database !== '');
$hintdatabase = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']));
} else {
$CFG->dbpass = $options['dbpass'];
$hint_database = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']));
if ($hint_database !== '') {
cli_error(get_string('dbconnectionerror', 'install'));
} else {
$CFG->dbpass = $options['dbpass'];
$hintdatabase = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']));
if ($hintdatabase !== '') {
cli_error(get_string('dbconnectionerror', 'install'));
}
}
}
} while ($hintdatabase !== '');
// ask for fullname
if ($interactive) {
+545
View File
@@ -2451,6 +2451,7 @@
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.0.0" level="required">
<RESTRICT function="restrict_php_version_74" message="unsupportedphpversion74" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -2632,6 +2633,7 @@
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.1.0" level="required">
<RESTRICT function="restrict_php_version_74" message="unsupportedphpversion74" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -2799,4 +2801,547 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="3.8" requires="3.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="5.5.31" />
<VENDOR name="mysql" version="5.6" />
<VENDOR name="postgres" version="9.4" />
<VENDOR name="mssql" version="11.0" />
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.1.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</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="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</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_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_CHECKS>
</MOODLE>
<MOODLE version="3.9" requires="3.5">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.2.29" />
<VENDOR name="mysql" version="5.6" />
<VENDOR name="postgres" version="9.5" />
<VENDOR name="mssql" version="11.0" />
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</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_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_CHECKS>
</MOODLE>
<MOODLE version="3.10" requires="3.5">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.2.29" />
<VENDOR name="mysql" version="5.7" />
<VENDOR name="postgres" version="9.6" />
<VENDOR name="mssql" version="11.0" />
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</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_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_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+25 -8
View File
@@ -226,7 +226,7 @@ if (!core_tables_exist()) {
}
if (empty($confirmrelease)) {
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
list($envstatus, $environmentresults) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
@@ -235,7 +235,7 @@ if (!core_tables_exist()) {
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->install_environment_page($maturity, $envstatus, $environment_results, $release);
echo $output->install_environment_page($maturity, $envstatus, $environmentresults, $release);
die();
}
@@ -358,9 +358,9 @@ if (!$cache and $version > $CFG->version) { // upgrade
echo $output->upgrade_confirm_page($a->newversion, $maturity, $testsite);
die();
} else if (empty($confirmrelease)){
} else if (empty($confirmrelease)) {
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment($release, ENV_SELECT_RELEASE);
list($envstatus, $environmentresults) = check_moodle_environment($release, ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
@@ -368,7 +368,7 @@ if (!$cache and $version > $CFG->version) { // upgrade
$PAGE->set_heading($strcurrentrelease);
$PAGE->set_cacheable(false);
echo $output->upgrade_environment_page($release, $envstatus, $environment_results);
echo $output->upgrade_environment_page($release, $envstatus, $environmentresults);
die();
} else if (empty($confirmplugins)) {
@@ -533,7 +533,10 @@ if (!$cache and $branch <> $CFG->branch) { // Update the branch
if (!$cache and moodle_needs_upgrading()) {
$PAGE->set_url(new moodle_url($PAGE->url, array('confirmplugincheck' => $confirmplugins)));
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
check_upgrade_key($upgradekeyhash);
@@ -543,7 +546,21 @@ if (!$cache and moodle_needs_upgrading()) {
$pluginman = core_plugin_manager::instance();
$output = $PAGE->get_renderer('core', 'admin');
if (!$confirmplugins) {
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);
@@ -802,7 +819,7 @@ $SESSION->admin_critical_warning = ($insecuredataroot==INSECURE_DATAROOT_ERROR);
$adminroot = admin_get_root();
// Check if there are any new admin settings which have still yet to be set
if (any_new_admin_settings($adminroot)){
if (any_new_admin_settings($adminroot)) {
redirect('upgradesettings.php');
}
+31 -11
View File
@@ -33,13 +33,17 @@ $allprocessors = get_message_processors();
$processors = array_filter($allprocessors, function($processor) {
return $processor->enabled;
});
$disabledprocessors = array_filter($allprocessors, function($processor) {
return !$processor->enabled;
});
// Fetch message providers.
$providers = get_message_providers();
// Fetch the manage message outputs interface.
$preferences = get_message_output_default_preferences();
if (($form = data_submitted()) && confirm_sesskey()) {
$preferences = array();
$newpreferences = array();
// Prepare default message outputs settings.
foreach ($providers as $provider) {
$componentproviderbase = $provider->component.'_'.$provider->name;
@@ -47,9 +51,9 @@ if (($form = data_submitted()) && confirm_sesskey()) {
$providerdisabled = false;
if (!isset($form->$disableprovidersetting)) {
$providerdisabled = true;
$preferences[$disableprovidersetting] = 1;
$newpreferences[$disableprovidersetting] = 1;
} else {
$preferences[$disableprovidersetting] = 0;
$newpreferences[$disableprovidersetting] = 0;
}
foreach (array('permitted', 'loggedin', 'loggedoff') as $setting) {
@@ -75,20 +79,36 @@ if (($form = data_submitted()) && confirm_sesskey()) {
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 1;
}
// Record the site preference.
$preferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
$newpreferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
}
} else if (array_key_exists($componentprovidersetting, $form)) {
// We must be processing loggedin or loggedoff checkboxes. Store
// defained comma-separated processors as setting value.
// Using array_filter eliminates elements set to 0 above.
$value = join(',', array_keys(array_filter($form->{$componentprovidersetting})));
} else {
$newsettings = array();
if (property_exists($form, $componentprovidersetting)) {
// We must be processing loggedin or loggedoff checkboxes.
// Store defained comma-separated processors as setting value.
// Using array_filter eliminates elements set to 0 above.
$newsettings = array_keys(array_filter($form->{$componentprovidersetting}));
}
// Let's join existing setting values for disabled processors.
$property = 'message_provider_'.$componentprovidersetting;
if (property_exists($preferences, $property)) {
$existingsetting = $preferences->$property;
foreach ($disabledprocessors as $disable) {
if (strpos($existingsetting, $disable->name) > -1) {
$newsettings[] = $disable->name;
}
}
}
$value = join(',', $newsettings);
if (empty($value)) {
$value = null;
}
}
if ($setting != 'permitted') {
// We have already recoded site preferences for 'permitted' type.
$preferences['message_provider_'.$componentprovidersetting] = $value;
$newpreferences['message_provider_'.$componentprovidersetting] = $value;
}
}
}
@@ -102,7 +122,7 @@ if (($form = data_submitted()) && confirm_sesskey()) {
\core_message\api::update_processor_status($processor, $enabled);
}
foreach ($preferences as $name => $value) {
foreach ($newpreferences as $name => $value) {
set_config($name, $value, 'message');
}
$transaction->allow_commit();
+2 -2
View File
@@ -45,8 +45,8 @@ $error = optional_param('error', '', PARAM_ALPHANUM);
admin_externalpage_setup('registrationmoodleorg');
if ($url !== HUB_MOODLEORGHUBURL) {
// Allow other plugins to confirm registration on hubs other than moodle.net . Plugins implementing this
if (parse_url($url, PHP_URL_HOST) !== parse_url(HUB_MOODLEORGHUBURL, PHP_URL_HOST)) {
// Allow other plugins to confirm registration on custom hubs. Plugins implementing this
// callback need to redirect or exit. See https://docs.moodle.org/en/Hub_registration .
$callbacks = get_plugins_with_function('hub_registration');
foreach ($callbacks as $plugintype => $plugins) {
+1 -2
View File
@@ -32,5 +32,4 @@
defined('MOODLE_INTERNAL') || die();
debugging('Support for alternative hubs has been removed from Moodle in 3.4. For communication with moodle.net ' .
'see lib/classes/hub/ .', DEBUG_DEVELOPER);
debugging('Support for alternative hubs has been removed from Moodle in 3.4.', DEBUG_DEVELOPER);
+6 -6
View File
@@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com
*
* This page displays the site registration form for Moodle.net.
* This page displays the site registration form.
* It handles redirection to the hub to continue the registration workflow process.
* It also handles update operation by web service.
*/
@@ -48,7 +48,7 @@ if ($unregistration && \core\hub\registration::is_registered()) {
}
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('unregisterfrom', 'hub', 'Moodle.net'), 3, 'main');
echo $OUTPUT->heading(get_string('registerwithmoodleorgremove', 'core_hub'), 3, 'main');
$siteunregistrationform->display();
echo $OUTPUT->footer();
exit;
@@ -82,7 +82,7 @@ if ($fromform = $siteregistrationform->get_data()) {
echo $OUTPUT->header();
// Current status of registration on Moodle.net.
// Current status of registration.
$notificationtype = \core\output\notification::NOTIFY_ERROR;
if (\core\hub\registration::is_registered()) {
@@ -104,11 +104,11 @@ if (\core\hub\registration::is_registered()) {
// Heading.
if (\core\hub\registration::is_registered()) {
echo $OUTPUT->heading(get_string('updatesite', 'hub', 'Moodle.net'));
echo $OUTPUT->heading(get_string('registerwithmoodleorgupdate', 'core_hub'));
} else if ($isinitialregistration) {
echo $OUTPUT->heading(get_string('completeregistration', 'hub'));
echo $OUTPUT->heading(get_string('registerwithmoodleorgcomplete', 'core_hub'));
} else {
echo $OUTPUT->heading(get_string('registerwithmoodleorg', 'admin'));
echo $OUTPUT->heading(get_string('registerwithmoodleorg', 'core_hub'));
}
$renderer = $PAGE->get_renderer('core', 'admin');
+3 -3
View File
@@ -39,8 +39,8 @@ $token = optional_param('token', '', PARAM_TEXT);
admin_externalpage_setup('registrationmoodleorg');
if ($url !== HUB_MOODLEORGHUBURL) {
// Allow other plugins to renew registration on hubs other than moodle.net . Plugins implementing this
if (parse_url($url, PHP_URL_HOST) !== parse_url(HUB_MOODLEORGHUBURL, PHP_URL_HOST)) {
// Allow other plugins to renew registration on custom hubs. Plugins implementing this
// callback need to redirect or exit. See https://docs.moodle.org/en/Hub_registration .
$callbacks = get_plugins_with_function('hub_registration');
foreach ($callbacks as $plugintype => $plugins) {
@@ -56,7 +56,7 @@ if ($url !== HUB_MOODLEORGHUBURL) {
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('renewregistration', 'hub'), 3, 'main');
$hublink = html_writer::tag('a', 'Moodle.net', array('href' => HUB_MOODLEORGHUBURL));
$hublink = html_writer::tag('a', HUB_MOODLEORGHUBURL, array('href' => HUB_MOODLEORGHUBURL));
$deletedregmsg = get_string('previousregistrationdeleted', 'hub', $hublink);
+76 -44
View File
@@ -361,14 +361,15 @@ class core_admin_renderer extends plugin_renderer_base {
$output = '';
if ($checker->enabled()) {
$output .= $this->container_start('checkforupdates');
$output .= $this->container_start('checkforupdates mb-4');
$output .= $this->single_button(
new moodle_url($reloadurl, array('fetchupdates' => 1)),
get_string('checkforupdates', 'core_plugin')
);
if ($timefetched = $checker->get_last_timefetched()) {
$timefetched = userdate($timefetched, get_string('strftimedatetime', 'core_langconfig'));
$output .= $this->container(get_string('checkforupdateslast', 'core_plugin', $timefetched), 'lasttimefetched');
$output .= $this->container(get_string('checkforupdateslast', 'core_plugin', $timefetched),
'lasttimefetched small text-muted mt-1');
}
$output .= $this->container_end();
}
@@ -823,7 +824,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$updateinfo .= $this->container_start('checkforupdates');
$updateinfo .= $this->container_start('checkforupdates mt-1');
$fetchurl = new moodle_url('/admin/index.php', array('fetchupdates' => 1, 'sesskey' => sesskey(), 'cache' => 0));
$updateinfo .= $this->single_button($fetchurl, get_string('checkforupdates', 'core_plugin'));
if ($fetch) {
@@ -912,7 +913,7 @@ class core_admin_renderer extends plugin_renderer_base {
*/
protected function moodle_available_update_info(\core\update\info $updateinfo) {
$boxclasses = 'moodleupdateinfo';
$boxclasses = 'moodleupdateinfo mb-2';
$info = array();
if (isset($updateinfo->release)) {
@@ -932,7 +933,8 @@ class core_admin_renderer extends plugin_renderer_base {
}
if (isset($updateinfo->download)) {
$info[] = html_writer::link($updateinfo->download, get_string('download'), array('class' => 'info download'));
$info[] = html_writer::link($updateinfo->download, get_string('download'),
array('class' => 'info download btn btn-secondary'));
}
if (isset($updateinfo->url)) {
@@ -940,9 +942,9 @@ class core_admin_renderer extends plugin_renderer_base {
array('class' => 'info more'));
}
$box = $this->output->box_start($boxclasses);
$box .= $this->output->box(implode(html_writer::tag('span', ' ', array('class' => 'separator')), $info), '');
$box .= $this->output->box_end();
$box = $this->output->container_start($boxclasses);
$box .= $this->output->container(implode(html_writer::tag('span', ' | ', array('class' => 'separator')), $info), '');
$box .= $this->output->container_end();
return $box;
}
@@ -1054,7 +1056,7 @@ class core_admin_renderer extends plugin_renderer_base {
$displayname = new html_table_cell(
$icon.
html_writer::span($plugin->displayname, 'pluginname').
html_writer::div($plugin->get_dir(), 'plugindir')
html_writer::div($plugin->get_dir(), 'plugindir text-muted small')
);
$versiondb = new html_table_cell($plugin->versiondb);
@@ -1089,7 +1091,7 @@ class core_admin_renderer extends plugin_renderer_base {
break;
case core_plugin_manager::PLUGIN_STATUS_NODB:
case core_plugin_manager::PLUGIN_STATUS_UPTODATE:
$statusclass .= $dependenciesok ? '' : 'badge-warning';
$statusclass .= $dependenciesok ? 'badge-light' : 'badge-warning';
break;
}
$status = html_writer::span(get_string('status_' . $statuscode, 'core_plugin'), $statusclass);
@@ -1099,7 +1101,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortinstall' => $plugin->component)),
get_string('cancelinstallone', 'core_plugin'),
'post',
array('class' => 'actionbutton cancelinstallone')
array('class' => 'actionbutton cancelinstallone d-block mt-1')
);
}
@@ -1108,7 +1110,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortupgrade' => $plugin->component)),
get_string('cancelupgradeone', 'core_plugin'),
'post',
array('class' => 'actionbutton cancelupgradeone')
array('class' => 'actionbutton cancelupgradeone d-block mt-1')
);
}
@@ -1178,7 +1180,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$out .= $this->output->container_start('actions');
$out .= $this->output->container_start('actions mb-2');
$installableupdates = $pluginman->filter_installable($pluginman->available_updates());
if ($installableupdates) {
@@ -1186,7 +1188,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installupdatex' => 1)),
get_string('updateavailableinstallall', 'core_admin', count($installableupdates)),
'post',
array('class' => 'singlebutton updateavailableinstallall')
array('class' => 'singlebutton updateavailableinstallall mr-1')
);
}
@@ -1195,7 +1197,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortinstallx' => 1)),
get_string('cancelinstallall', 'core_plugin', count($installabortable)),
'post',
array('class' => 'singlebutton cancelinstallall')
array('class' => 'singlebutton cancelinstallall mr-1')
);
}
@@ -1204,15 +1206,17 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortupgradex' => 1)),
get_string('cancelupgradeall', 'core_plugin', count($upgradeabortable)),
'post',
array('class' => 'singlebutton cancelupgradeall')
array('class' => 'singlebutton cancelupgradeall mr-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 0)),
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge'));
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge badge-light'),
'btn btn-link mr-1');
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 1)),
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge'));
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge badge-light'),
'btn btn-link mr-1');
$out .= $this->output->container_end(); // End of .actions container.
$out .= $this->output->container_end(); // End of #plugins-check-info container.
@@ -1280,12 +1284,13 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$out = $this->output->container_start('plugins-check-dependencies');
$out = $this->output->container_start('plugins-check-dependencies mb-4');
if ($unavailable or $unknown) {
$out .= $this->output->heading(get_string('misdepsunavail', 'core_plugin'));
if ($unknown) {
$out .= $this->output->notification(get_string('misdepsunknownlist', 'core_plugin', implode($unknown, ', ')));
$out .= $this->output->render((new \core\output\notification(get_string('misdepsunknownlist', 'core_plugin',
implode(', ', $unknown))))->set_show_closebutton(false));
}
if ($unavailable) {
$unavailablelist = array();
@@ -1299,18 +1304,18 @@ class core_admin_renderer extends plugin_renderer_base {
}
$unavailablelist[] = $unavailablelistitem;
}
$out .= $this->output->notification(get_string('misdepsunavaillist', 'core_plugin',
implode($unavailablelist, ', ')));
$out .= $this->output->render((new \core\output\notification(get_string('misdepsunavaillist', 'core_plugin',
implode(', ', $unavailablelist))))->set_show_closebutton(false));
}
$out .= $this->output->container_start('plugins-check-dependencies-actions');
$out .= $this->output->container_start('plugins-check-dependencies-actions mb-4');
$out .= ' '.html_writer::link(new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin'));
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-secondary'));
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
}
if ($available) {
$out .= $this->output->heading(get_string('misdepsavail', 'core_plugin'));
$out .= $this->output->container_start('plugins-check-dependencies-actions');
$out .= $this->output->container_start('plugins-check-dependencies-actions mb-2');
$installable = $pluginman->filter_installable($available);
if ($installable) {
@@ -1318,12 +1323,13 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installdepx' => 1)),
get_string('dependencyinstallmissing', 'core_plugin', count($installable)),
'post',
array('class' => 'singlebutton dependencyinstallmissing')
array('class' => 'singlebutton dependencyinstallmissing d-inline-block mr-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin')), 'dependencyuploadmissing');
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-link')),
'dependencyuploadmissing d-inline-block mr-1');
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
@@ -1364,7 +1370,7 @@ class core_admin_renderer extends plugin_renderer_base {
if ($CFG->branch == str_replace('.', '', $moodle->release)) {
$supportedmoodles[] = html_writer::span($moodle->release, 'badge badge-success');
} else {
$supportedmoodles[] = html_writer::span($moodle->release, 'label');
$supportedmoodles[] = html_writer::span($moodle->release, 'badge badge-light');
}
}
@@ -1378,7 +1384,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
$info = html_writer::div(
get_string('requiredby', 'core_plugin', implode(', ', $requriedby)),
'requiredby'
'requiredby mb-1'
);
} else {
$info = '';
@@ -1389,35 +1395,36 @@ class core_admin_renderer extends plugin_renderer_base {
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/view.php?plugin='.$plugin->component,
get_string('misdepinfoplugin', 'core_plugin')),
'misdepinfoplugin'
'misdepinfoplugin d-inline-block mr-3 mb-1'
);
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/pluginversion.php?id='.$plugin->version->id,
get_string('misdepinfoversion', 'core_plugin')),
'misdepinfoversion'
'misdepinfoversion d-inline-block mr-3 mb-1'
);
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')), 'misdepdownload');
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')),
'misdepdownload d-inline-block mr-3 mb-1');
if ($pluginman->is_remote_plugin_installable($plugin->component, $plugin->version->version, $reason)) {
$info .= $this->output->single_button(
new moodle_url($this->page->url, array('installdep' => $plugin->component)),
get_string('dependencyinstall', 'core_plugin'),
'post',
array('class' => 'singlebutton dependencyinstall')
array('class' => 'singlebutton dependencyinstall mr-3 mb-1')
);
} else {
$reasonhelp = $this->info_remote_plugin_not_installable($reason);
if ($reasonhelp) {
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall');
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall d-inline-block mr-3 mb-1');
}
}
$info .= $this->output->container_end(); // End of .actions container.
$table->data[] = array(
html_writer::div($plugin->name, 'name').' '.html_writer::div($plugin->component, 'component'),
html_writer::div($plugin->name, 'name').' '.html_writer::div($plugin->component, 'component text-muted small'),
$plugin->version->release,
$plugin->version->version,
implode($supportedmoodles, ' '),
@@ -1463,22 +1470,24 @@ class core_admin_renderer extends plugin_renderer_base {
foreach ($pluginman->resolve_requirements($plugin, $version) as $reqname => $reqinfo) {
if ($reqname === 'core') {
if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_OK) {
$class = 'requires-ok';
$class = 'requires-ok text-muted';
$label = '';
} else {
$class = 'requires-failed';
$label = html_writer::span(get_string('dependencyfails', 'core_plugin'), 'badge badge-danger');
}
$requires[] = html_writer::tag('li',
html_writer::span(get_string('moodleversion', 'core_plugin', $plugin->versionrequires), 'dep dep-core').
' '.$label, array('class' => $class));
if ($reqinfo->reqver != ANY_VERSION) {
$requires[] = html_writer::tag('li',
html_writer::span(get_string('moodleversion', 'core_plugin', $plugin->versionrequires), 'dep dep-core').
' '.$label, array('class' => $class));
}
} else {
$actions = array();
if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_OK) {
$label = '';
$class = 'requires-ok';
$class = 'requires-ok text-muted';
} else if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_MISSING) {
if ($reqinfo->availability == $pluginman::REQUIREMENT_AVAILABLE) {
@@ -1532,13 +1541,14 @@ class core_admin_renderer extends plugin_renderer_base {
return '';
}
$out = html_writer::tag('ul', implode("\n", $requires));
$out = html_writer::tag('ul', implode("\n", $requires), array('class' => 'm-0'));
if ($displayuploadlink) {
$out .= html_writer::div(
html_writer::link(
new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin')
get_string('dependencyuploadmissing', 'core_plugin'),
array('class' => 'btn btn-secondary btn-sm m-1')
),
'dependencyuploadmissing'
);
@@ -1548,7 +1558,8 @@ class core_admin_renderer extends plugin_renderer_base {
$out .= html_writer::div(
html_writer::link(
new moodle_url($this->page->url, array('sesskey' => sesskey(), 'fetchupdates' => 1)),
get_string('checkforupdates', 'core_plugin')
get_string('checkforupdates', 'core_plugin'),
array('class' => 'btn btn-secondary btn-sm m-1')
),
'checkforupdates'
);
@@ -2110,6 +2121,27 @@ class core_admin_renderer extends plugin_renderer_base {
* @return string
*/
public function moodleorg_registration_message() {
return format_text(get_string('registermoodlenet', 'admin'), FORMAT_HTML, ['noclean' => true]);
$out = format_text(get_string('registerwithmoodleorginfo', 'core_hub'), FORMAT_MARKDOWN);
$out .= html_writer::link(
new moodle_url('/admin/settings.php', ['section' => 'moodleservices']),
$this->output->pix_icon('i/info', '').' '.get_string('registerwithmoodleorginfoapp', 'core_hub'),
['class' => 'btn btn-link', 'role' => 'opener', 'target' => '_href']
);
$out .= html_writer::link(
HUB_MOODLEORGHUBURL,
$this->output->pix_icon('i/stats', '').' '.get_string('registerwithmoodleorginfostats', 'core_hub'),
['class' => 'btn btn-link', 'role' => 'opener', 'target' => '_href']
);
$out .= html_writer::link(
HUB_MOODLEORGHUBURL.'/sites',
$this->output->pix_icon('i/location', '').' '.get_string('registerwithmoodleorginfosites', 'core_hub'),
['class' => 'btn btn-link', 'role' => 'opener', 'target' => '_href']
);
return $this->output->box($out);
}
}
+2 -5
View File
@@ -36,15 +36,12 @@ if (!is_siteadmin()) {
}
$admisselector = new core_role_admins_existing_selector();
$admisselector->set_extra_fields(array('username', 'email'));
$potentialadmisselector = new core_role_admins_potential_selector();
$potentialadmisselector->set_extra_fields(array('username', 'email'));
if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
if ($userstoadd = $potentialadmisselector->get_selected_users()) {
$user = reset($userstoadd);
$username = fullname($user) . " ($user->username, $user->email)";
$username = $potentialadmisselector->output_user($user);
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);
@@ -58,7 +55,7 @@ if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
if ($USER->id == $user->id) {
// Can not remove self.
} else {
$username = fullname($user) . " ($user->username, $user->email)";
$username = $admisselector->output_user($user);
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);
@@ -157,19 +157,19 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
// Allowed roles.
$allow = optional_param_array('allowassign', null, PARAM_INT);
if (!is_null($allow)) {
$this->allowassign = $allow;
$this->allowassign = array_filter($allow);
}
$allow = optional_param_array('allowoverride', null, PARAM_INT);
if (!is_null($allow)) {
$this->allowoverride = $allow;
$this->allowoverride = array_filter($allow);
}
$allow = optional_param_array('allowswitch', null, PARAM_INT);
if (!is_null($allow)) {
$this->allowswitch = $allow;
$this->allowswitch = array_filter($allow);
}
$allow = optional_param_array('allowview', null, PARAM_INT);
if (!is_null($allow)) {
$this->allowview = $allow;
$this->allowview = array_filter($allow);
}
// Now read the permissions for each capability.
@@ -589,7 +589,9 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if ($this->roleid == 0) {
$options[-1] = get_string('thisnewrole', 'core_role');
}
return html_writer::select($options, 'allow'.$type.'[]', $selected, false, array('multiple' => 'multiple',
return
html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'allow'.$type.'[]', 'value' => "")) .
html_writer::select($options, 'allow'.$type.'[]', $selected, false, array('multiple' => 'multiple',
'size' => 10, 'class' => 'form-control'));
}
@@ -623,7 +625,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
echo "</label>\n";
}
if ($helpicon) {
echo '<span class="pull-xs-right text-nowrap">'.$helpicon.'</span>';
echo '<span class="float-sm-right text-nowrap">'.$helpicon.'</span>';
}
echo '</div>';
if (isset($this->errors[$name])) {
+2 -2
View File
@@ -96,7 +96,7 @@ class core_role_permissions_table extends core_role_capability_table_base {
"linkclass" => "preventlink", "adminurl" => $adminurl->out(), "icon" => "", "iconalt" => "");
if (isset($overridableroles[$id]) and ($allowoverrides or ($allowsafeoverrides and is_safe_capability($capability)))) {
$templatecontext['icon'] = 't/delete';
$templatecontext['iconalt'] = get_string('delete');
$templatecontext['iconalt'] = get_string('deletexrole', 'core_role', $name);
}
$neededroles[$id] = $renderer->render_from_template('core/permissionmanager_role', $templatecontext);
}
@@ -109,7 +109,7 @@ class core_role_permissions_table extends core_role_capability_table_base {
"icon" => "", "iconalt" => "");
if (isset($overridableroles[$id]) and prohibit_is_removable($id, $context, $capability->name)) {
$templatecontext['icon'] = 't/delete';
$templatecontext['iconalt'] = get_string('delete');
$templatecontext['iconalt'] = get_string('deletexrole', 'core_role', $name);
}
$forbiddenroles[$id] = $renderer->render_from_template('core/permissionmanager_role', $templatecontext);
}
+1 -1
View File
@@ -213,7 +213,7 @@ $arguments = array('contextid' => $contextid,
$PAGE->requires->strings_for_js(
array('roleprohibitinfo', 'roleprohibitheader', 'roleallowinfo', 'roleallowheader',
'confirmunassigntitle', 'confirmroleunprohibit', 'confirmroleprevent', 'confirmunassignyes',
'confirmunassignno'), 'core_role');
'confirmunassignno', 'deletexrole'), 'core_role');
$PAGE->requires->js_call_amd('core/permissionmanager', 'initialize', array($arguments));
$table = new core_role_permissions_table($context, $contextname, $allowoverrides, $allowsafeoverrides, $overridableroles);
echo $OUTPUT->box_start('generalbox capbox');
-7
View File
@@ -105,13 +105,6 @@ if (($hassiteconfig || has_any_capability(array(
new lang_string('sitebackpack_help', 'badges'),
1, $choices));
$warning = badges_verify_site_backpack();
if (!empty($warning)) {
$backpacksettings->add(new admin_setting_description('badges_site_backpack_verify',
new lang_string('sitebackpackverify', 'badges'),
$warning));
}
$ADMIN->add('badges', $backpacksettings);
$ADMIN->add('badges',
+22 -18
View File
@@ -459,27 +459,31 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$ADMIN->add('backups', $temp);
// Create a page for asynchronous backup and restore configuration and defaults.
if (!empty($CFG->enableasyncbackup)) { // Only add settings if async mode is enable at site level.
$temp = new admin_settingpage('asyncgeneralsettings', new lang_string('asyncgeneralsettings', 'backup'));
$temp = new admin_settingpage('asyncgeneralsettings', new lang_string('asyncgeneralsettings', 'backup'));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_async_message_users',
new lang_string('asyncemailenable', 'backup'),
new lang_string('asyncemailenabledetail', 'backup'), 0));
$temp->add(new admin_setting_configcheckbox('enableasyncbackup', new lang_string('enableasyncbackup', 'backup'),
new lang_string('enableasyncbackup_help', 'backup'), 0, 1, 0));
$temp->add(new admin_setting_configtext(
'backup/backup_async_message_subject',
new lang_string('asyncmessagesubject', 'backup'),
new lang_string('asyncmessagesubjectdetail', 'backup'),
new lang_string('asyncmessagesubjectdefault', 'backup')));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_async_message_users',
new lang_string('asyncemailenable', 'backup'),
new lang_string('asyncemailenabledetail', 'backup'), 0));
$temp->hide_if('backup/backup_async_message_users', 'enableasyncbackup');
$temp->add(new admin_setting_confightmleditor(
'backup/backup_async_message',
new lang_string('asyncmessagebody', 'backup'),
new lang_string('asyncmessagebodydetail', 'backup'),
new lang_string('asyncmessagebodydefault', 'backup')));
$temp->add(new admin_setting_configtext(
'backup/backup_async_message_subject',
new lang_string('asyncmessagesubject', 'backup'),
new lang_string('asyncmessagesubjectdetail', 'backup'),
new lang_string('asyncmessagesubjectdefault', 'backup')));
$temp->hide_if('backup/backup_async_message_subject', 'backup/backup_async_message_users');
$ADMIN->add('backups', $temp);
}
$temp->add(new admin_setting_confightmleditor(
'backup/backup_async_message',
new lang_string('asyncmessagebody', 'backup'),
new lang_string('asyncmessagebodydetail', 'backup'),
new lang_string('asyncmessagebodydefault', 'backup')));
$temp->hide_if('backup/backup_async_message', 'backup/backup_async_message_users');
$ADMIN->add('backups', $temp);
}
+4 -1
View File
@@ -97,7 +97,10 @@ $options = array(
GETREMOTEADDR_SKIP_HTTP_CLIENT_IP => 'HTTP_X_FORWARDED_FOR, REMOTE_ADDR',
GETREMOTEADDR_SKIP_HTTP_X_FORWARDED_FOR => 'HTTP_CLIENT, REMOTE_ADDR',
GETREMOTEADDR_SKIP_HTTP_X_FORWARDED_FOR|GETREMOTEADDR_SKIP_HTTP_CLIENT_IP => 'REMOTE_ADDR');
$temp->add(new admin_setting_configselect('getremoteaddrconf', new lang_string('getremoteaddrconf', 'admin'), new lang_string('configgetremoteaddrconf', 'admin'), 0, $options));
$temp->add(new admin_setting_configselect('getremoteaddrconf', new lang_string('getremoteaddrconf', 'admin'),
new lang_string('configgetremoteaddrconf', 'admin'),
GETREMOTEADDR_SKIP_DEFAULT, $options));
$temp->add(new admin_setting_configtext('reverseproxyignore', new lang_string('reverseproxyignore', 'admin'), new lang_string('configreverseproxyignore', 'admin'), ''));
$temp->add(new admin_setting_heading('webproxy', new lang_string('webproxy', 'admin'), new lang_string('webproxyinfo', 'admin')));
$temp->add(new admin_setting_configtext('proxyhost', new lang_string('proxyhost', 'admin'), new lang_string('configproxyhost', 'admin'), '', PARAM_HOST));
-6
View File
@@ -48,10 +48,4 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$optionalsubsystems->add(new admin_setting_configcheckbox('allowstealth', new lang_string('allowstealthmodules'),
new lang_string('allowstealthmodules_help'), 0, 1, 0));
$optionalsubsystems->add(new admin_setting_configcheckbox('enablecoursepublishing',
new lang_string('enablecoursepublishing', 'hub'), new lang_string('enablecoursepublishing_help', 'hub'), 0));
$optionalsubsystems->add(new admin_setting_configcheckbox('enableasyncbackup', new lang_string('enableasyncbackup', 'backup'),
new lang_string('enableasyncbackup_help', 'backup'), 0, 1, 0));
}
+3 -1
View File
@@ -49,6 +49,8 @@ $logid = optional_param('logid', null, PARAM_INT);
$download = optional_param('download', false, PARAM_BOOL);
if (null !== $logid) {
// Raise memory limit in case the log is large.
raise_memory_limit(MEMORY_HUGE);
$log = $DB->get_record('task_log', ['id' => $logid], '*', MUST_EXIST);
if ($download) {
@@ -65,7 +67,7 @@ $renderer = $PAGE->get_renderer('tool_task');
echo $OUTPUT->header();
echo $OUTPUT->render_from_template('core_admin/tasklogs', (object) [
'action' => $pageurl->out(),
'filter' => $filter,
'filter' => htmlentities($filter),
'resultfilteroptions' => [
(object) [
'value' => -1,
+9 -3
View File
@@ -46,13 +46,14 @@ if ($data) {
$emailuser->email = $data->recipient;
$emailuser->id = -99;
$subject = get_string('testoutgoingmailconf_subject', 'admin', $SITE->fullname);
$subject = get_string('testoutgoingmailconf_subject', 'admin',
format_string($SITE->fullname, true, ['context' => context_system::instance()]));
$messagetext = get_string('testoutgoingmailconf_message', 'admin');
// Manage Moodle debugging options.
$debuglevel = $CFG->debug;
$debugdisplay = $CFG->debugdisplay;
$debugsmtp = $CFG->debugsmtp;
$debugsmtp = $CFG->debugsmtp ?? null; // This might not be set as it's optional.
$CFG->debugdisplay = true;
$CFG->debugsmtp = true;
$CFG->debug = 15;
@@ -66,7 +67,12 @@ if ($data) {
// Restore Moodle debugging options.
$CFG->debug = $debuglevel;
$CFG->debugdisplay = $debugdisplay;
$CFG->debugsmtp = $debugsmtp;
// Restore the debugsmtp config, if it was set originally.
unset($CFG->debugsmtp);
if (!is_null($debugsmtp)) {
$CFG->debugsmtp = $debugsmtp;
}
if ($success) {
$msgparams = new stdClass();
+2 -25
View File
@@ -48,13 +48,11 @@ class behat_admin extends behat_base {
* @param TableNode $table
*/
public function i_set_the_following_administration_settings_values(TableNode $table) {
if (!$data = $table->getRowsHash()) {
return;
}
foreach ($data as $label => $value) {
$this->execute('behat_navigation::i_select_from_flat_navigation_drawer', [get_string('administrationsite')]);
// Search by label.
@@ -76,38 +74,17 @@ class behat_admin extends behat_base {
"@id=//span[contains(normalize-space(.), $label)]/preceding-sibling::label[1]/@for]";
$fieldnode = $this->find('xpath', $fieldxpath, $exception);
$formfieldtypenode = $this->find('xpath', $fieldxpath .
"/ancestor::div[contains(concat(' ', @class, ' '), ' form-setting ')]" .
"/child::div[contains(concat(' ', @class, ' '), ' form-')]/child::*/parent::div");
} catch (ElementNotFoundException $e) {
// Multi element settings, interacting only the first one.
$fieldxpath = "//*[label[contains(., $label)]|span[contains(., $label)]]" .
"/ancestor::div[contains(concat(' ', normalize-space(@class), ' '), ' form-item ')]" .
"/descendant::div[contains(concat(' ', @class, ' '), ' form-group ')]" .
"/descendant::*[self::input | self::textarea | self::select]" .
"[not(./@type = 'submit' or ./@type = 'image' or ./@type = 'hidden')]";
$fieldnode = $this->find('xpath', $fieldxpath);
// It is the same one that contains the type.
$formfieldtypenode = $fieldnode;
}
// Getting the class which contains the field type.
$classes = explode(' ', $formfieldtypenode->getAttribute('class'));
$type = false;
foreach ($classes as $class) {
if (substr($class, 0, 5) == 'form-') {
$type = substr($class, 5);
}
}
// Instantiating the appropiate field type.
$field = behat_field_manager::get_field_instance($type, $fieldnode, $this->getSession());
$field->set_value($value);
$this->find_button(get_string('savechanges'))->press();
$this->execute('behat_forms::i_set_the_field_with_xpath_to', [$fieldxpath, $value]);
$this->execute("behat_general::i_click_on", [get_string('savechanges'), 'button']);
}
}
+1
View File
@@ -9,6 +9,7 @@ Feature: Manage tokens
| username | password | firstname | lastname |
| testuser | testuser | Joe | Bloggs |
| testuser2 | testuser2 | TestFirstname | TestLastname |
And I change window size to "small"
And I log in as "admin"
And I am on site homepage
@@ -181,7 +181,7 @@ class models_list implements \renderable, \templatable {
if ($contextid == SYSCONTEXTID) {
$contextname = get_string('allpredictions', 'tool_analytics');
} else {
$contextname = shorten_text($context->get_context_name(true, true), 90);
$contextname = shorten_text($context->get_context_name(false, true), 40);
}
$predictioncontexts[$contextid] = $contextname;
}
@@ -59,6 +59,9 @@ class predict_models extends \core\task\scheduled_task {
}
foreach ($models as $model) {
$renderer = $PAGE->get_renderer('tool_analytics');
$result = $model->predict();
// Reset the page as some indicators may call external functions that overwrite the page context.
@@ -66,7 +69,6 @@ class predict_models extends \core\task\scheduled_task {
if ($result) {
echo $OUTPUT->heading(get_string('modelresults', 'tool_analytics', $model->get_name()));
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_get_predictions_results(false, array(), $result, $model->get_analyser()->get_logs());
}
}
@@ -70,6 +70,8 @@ class train_models extends \core\task\scheduled_task {
continue;
}
$renderer = $PAGE->get_renderer('tool_analytics');
$result = $model->train();
// Reset the page as some indicators may call external functions that overwrite the page context.
@@ -77,8 +79,6 @@ class train_models extends \core\task\scheduled_task {
if ($result) {
echo $OUTPUT->heading(get_string('modelresults', 'tool_analytics', $model->get_name()));
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_get_predictions_results($result, $model->get_analyser()->get_logs());
}
}
+2 -1
View File
@@ -102,6 +102,8 @@ if ($options['reuse-prev-analysed']) {
mtrace(get_string('evaluationinbatches', 'tool_analytics'));
}
$renderer = $PAGE->get_renderer('tool_analytics');
$analyseroptions = array(
'filter' => $options['filter'],
'timesplitting' => $options['timesplitting'],
@@ -114,7 +116,6 @@ $results = $model->evaluate($analyseroptions);
// Reset the page as some indicators may call external functions that overwrite the page context.
\tool_analytics\output\helper::reset_page();
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_evaluate_results($results, $model->get_analyser()->get_logs());
// Check that we have, at leasa,t 1 valid dataset (not necessarily good) to use.
@@ -173,7 +173,8 @@ function tool_analytics_calculate_course_dates($course, $options) {
$formatoptions = $format->get_format_options();
// Change this for a course formats API level call in MDL-60702.
if (method_exists($format, 'update_end_date') && $formatoptions['automaticenddate']) {
if ((get_class($format) == 'format_weeks' || is_subclass_of($format, 'format_weeks')) &&
method_exists($format, 'update_end_date') && $formatoptions['automaticenddate']) {
// Special treatment for weeks-based formats with automatic end date.
if ($options['update']) {
+6
View File
@@ -164,6 +164,8 @@ if ($options['install']) {
mtrace("Acceptance tests site installed");
}
// Note: Do not build the themes here. This is done during the 'enable' stage.
} else if ($options['drop']) {
// Ensure no tests are running.
test_lock::acquire('behat');
@@ -182,6 +184,10 @@ if ($options['install']) {
// Enable test mode.
behat_util::start_test_mode($options['add-core-features-to-theme'], $options['optimize-runs'], $parallel, $run);
// Themes are only built in the 'enable' command.
behat_util::build_themes();
mtrace("Testing environment themes built");
// This is only displayed once for parallel install.
if (empty($run)) {
// Notify user that 2.5 profile has been converted to 3.5.
+1 -1
View File
@@ -32,7 +32,7 @@ require_once($CFG->libdir . '/behat/classes/behat_config_manager.php');
// systems, but let's allow room for expansion.
core_php_time_limit::raise(300);
$filter = optional_param('filter', '', PARAM_ALPHANUMEXT);
$filter = optional_param('filter', '', PARAM_NOTAGS);
$type = optional_param('type', false, PARAM_ALPHAEXT);
$component = optional_param('component', '', PARAM_ALPHAEXT);
+1 -1
View File
@@ -31,7 +31,7 @@ $string['errordataroot'] = '$CFG->behat_dataroot is not set or is invalid.';
$string['errorsetconfig'] = '$CFG->behat_dataroot, $CFG->behat_prefix and $CFG->behat_wwwroot need to be set in config.php.';
$string['erroruniqueconfig'] = '$CFG->behat_dataroot, $CFG->behat_prefix and $CFG->behat_wwwroot values need to be different than $CFG->dataroot, $CFG->prefix, $CFG->wwwroot, $CFG->phpunit_dataroot and $CFG->phpunit_prefix values.';
$string['fieldvalueargument'] = 'Field value arguments';
$string['fieldvalueargument_help'] = 'This argument should be completed by a field value. There are many field types, including simple ones like checkboxes, selects or textareas, or complex ones like date selectors. See the dev documentation <a href="http://docs.moodle.org/dev/Acceptance_testing" target="_blank">Acceptance_testing</a> for details of expected field values.';
$string['fieldvalueargument_help'] = 'This argument should be completed by a field value. There are many field types, including simple ones like checkboxes, selects or textareas, or complex ones like date selectors. See the dev documentation <a href="https://docs.moodle.org/dev/Acceptance_testing" target="_blank">Acceptance_testing</a> for details of expected field values.';
$string['giveninfo'] = 'Given. Processes to set up the environment';
$string['infoheading'] = 'Info';
$string['installinfo'] = 'Read {$a} for installation and tests execution info';
+2 -2
View File
@@ -55,13 +55,13 @@ class tool_behat {
// The loaded steps depends on the component specified.
behat_config_manager::update_config_file($component, false);
// The Moodle\BehatExtension\HelpPrinter\MoodleDefinitionsPrinter will parse this search format.
// The Moodle\BehatExtension\Definition\Printer\ConsoleDefinitionInformationPrinter will parse this search format.
if ($type) {
$filter .= '&&' . $type;
}
if ($filter) {
$filteroption = ' -d "' . $filter . '"';
$filteroption = ' -d ' . escapeshellarg($filter);
} else {
$filteroption = ' -di';
}
+8 -17
View File
@@ -44,13 +44,9 @@ class tool_behat_renderer extends plugin_renderer_base {
global $CFG;
require_once($CFG->libdir . '/behat/classes/behat_selectors.php');
$html = $this->generic_info();
// Form.
ob_start();
$form->display();
$html .= ob_get_contents();
ob_end_clean();
$html = $this->output->header();
$html .= $this->output->heading(get_string('pluginname', 'tool_behat'));
$html .= $form->render();
if (empty($stepsdefinitions)) {
$stepsdefinitions = get_string('nostepsdefinitions', 'tool_behat');
@@ -128,7 +124,9 @@ class tool_behat_renderer extends plugin_renderer_base {
*/
public function render_error($msg) {
$html = $this->generic_info();
$html = $this->output->header();
$html .= $this->output->heading(get_string('pluginname', 'tool_behat'));
$html .= $this->generic_info();
$a = new stdClass();
$a->errormsg = $msg;
@@ -153,13 +151,7 @@ class tool_behat_renderer extends plugin_renderer_base {
*
* @return string
*/
protected function generic_info() {
$title = get_string('pluginname', 'tool_behat');
// Header.
$html = $this->output->header();
$html .= $this->output->heading($title);
public function generic_info() {
// Info.
$installurl = behat_command::DOCS_URL;
@@ -175,8 +167,7 @@ class tool_behat_renderer extends plugin_renderer_base {
);
// List of steps.
$html .= $this->output->box_start();
$html .= html_writer::tag('h3', get_string('infoheading', 'tool_behat'));
$html = $this->output->box_start();
$html .= html_writer::tag('div', get_string('aim', 'tool_behat'));
$html .= html_writer::start_tag('div');
$html .= html_writer::start_tag('ul');
@@ -40,8 +40,14 @@ class steps_definitions_form extends moodleform {
* @return void
*/
public function definition() {
global $PAGE;
$mform = $this->_form;
$output = $PAGE->get_renderer('tool_behat');
$mform->addElement('header', 'info', get_string('infoheading', 'tool_behat'));
$mform->setExpanded('info', false);
$mform->addElement('html', $output->generic_info());
$mform->addElement('header', 'filters', get_string('stepsdefinitionsfilters', 'tool_behat'));
+20 -14
View File
@@ -1,25 +1,31 @@
.steps-definitions {
border-style: solid;
border-width: 1px;
border-color: #bbb;
padding: 5px;
margin: auto;
width: 50%;
#page-admin-tool-behat-index .steps-definitions {
margin: 1rem auto;
}
.steps-definitions .step {
margin: 10px 0 10px 0;
#page-admin-tool-behat-index .steps-definitions .step {
margin: 1rem 0 0 0;
border: 1px solid #eee;
padding: 1rem;
}
.steps-definitions .stepdescription {
color: #bf8c12;
#page-admin-tool-behat-index .steps-definitions .stepdescription {
font-style: italic;
}
.steps-definitions .steptype {
#page-admin-tool-behat-index .steps-definitions .stepcontent {
margin: 1rem 0;
}
#page-admin-tool-behat-index .steps-definitions .steptype {
color: #1467a6;
margin-right: 5px;
margin-right: 1ex;
}
.steps-definitions .stepregex {
#page-admin-tool-behat-index .steps-definitions .stepapipath {
font-family: monospace;
font-size: smaller;
}
#page-admin-tool-behat-index .steps-definitions .stepregex {
color: #060;
}
@@ -20,12 +20,12 @@ Feature: Edit capabilities
And I set the following system permissions of "Teacher" role:
| capability | permission |
| block/mnet_hosts:myaddinstance | Allow |
| moodle/community:add | Inherit |
| moodle/site:messageanyuser | Inherit |
| moodle/grade:managesharedforms | Prevent |
| moodle/course:request | Prohibit |
When I follow "Edit Teacher role"
Then "block/mnet_hosts:myaddinstance" capability has "Allow" permission
And "moodle/community:add" capability has "Not set" permission
And "moodle/site:messageanyuser" capability has "Not set" permission
And "moodle/grade:managesharedforms" capability has "Prevent" permission
And "moodle/course:request" capability has "Prohibit" permission
@@ -0,0 +1,27 @@
@tool_behat
Feature: Behat steps for interacting with form work
In order to test my Moodle code
As a developer
I need the Behat steps for form elements to work reliably
@javascript
Scenario: Test fields in containers
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
When I log in as "admin"
And I am on "Course 1" course homepage
# Just get to any form.
And I navigate to "Edit settings" in current page administration
And I set the field "Course full name" in the "General" "fieldset" to "Frog"
And I set the following fields in the "Appearance" "fieldset" to these values:
| Show activity reports | Yes |
| Number of announcements | 1 |
Then the field "Show activity reports" in the "Appearance" "fieldset" matches value "Yes"
And the field "Show activity reports" in the "Appearance" "fieldset" does not match value "No"
And the following fields in the "region-main" "region" match these values:
| Course full name | Frog |
| Number of announcements | 1 |
And the following fields in the "region-main" "region" do not match these values:
| Course full name | Course 1 |
| Number of announcements | 5 |
@@ -26,3 +26,11 @@ Feature: List the system steps definitions
Given I set the field "Contains" to "homepage"
When I press "Filter"
Then I should see "Opens Moodle homepage."
@javascript
Scenario: Filtering by the multiple words pattern
Given I set the field "Contains" to "should exist"
When I press "Filter"
Then I should not see "There aren't steps definitions matching this filter"
And I should see "Checks the provided element and selector type exists in the current page."
And I should see "Checks that an element and selector type exists in another element and selector type on the current page."
+25 -13
View File
@@ -75,6 +75,7 @@ class tool_capability_renderer extends plugin_renderer_base {
* @return string
*/
public function capability_comparison_table(array $capabilities, $contextid, array $roles) {
static $capabilitycontexts = array();
$strpermissions = $this->get_permission_strings();
$permissionclasses = $this->get_permission_classes();
@@ -92,8 +93,13 @@ class tool_capability_renderer extends plugin_renderer_base {
}
$table->data = array();
$childcontextsids = [];
foreach ($capabilities as $capability) {
$contexts = tool_capability_calculate_role_data($capability, $roles);
if (empty($capabilitycontexts[$capability])) {
$capabilitycontexts[$capability] = tool_capability_calculate_role_data($capability, $roles);
}
$contexts = $capabilitycontexts[$capability];
$captitle = new html_table_cell(get_capability_string($capability) . html_writer::span($capability));
$captitle->header = true;
@@ -111,26 +117,32 @@ class tool_capability_renderer extends plugin_renderer_base {
}
$table->data[] = $row;
if (!empty($contexts[$contextid]->children)) {
$childcontextsids = array_merge($childcontextsids, $contexts[$contextid]->children);
$childcontextsids = array_unique($childcontextsids);
}
}
// Start the list item, and print the context name as a link to the place to make changes.
if ($contextid == context_system::instance()->id) {
$url = new moodle_url('/admin/roles/manage.php');
$title = get_string('changeroles', 'tool_capability');
} else {
$url = new moodle_url('/admin/roles/override.php', array('contextid' => $contextid));
$title = get_string('changeoverrides', 'tool_capability');
}
$context = context::instance_by_id($contextid);
$html = $this->output->heading(html_writer::link($url, $context->get_context_name(), array('title' => $title)), 3);
if ($context instanceof context_system) {
$url = new moodle_url('/admin/roles/manage.php');
} else {
$url = new moodle_url('/admin/roles/permissions.php', ['contextid' => $contextid]);
}
$title = get_string('permissionsincontext', 'core_role', $context->get_context_name());
$html = $this->output->heading(html_writer::link($url, $context->get_context_name(), ['title' => $title]), 3);
$html .= html_writer::table($table);
// If there are any child contexts, print them recursively.
if (!empty($contexts[$contextid]->children)) {
foreach ($contexts[$contextid]->children as $childcontextid) {
$html .= $this->capability_comparison_table($capabilities, $childcontextid, $roles, true);
if (!empty($childcontextsids)) {
foreach ($childcontextsids as $childcontextid) {
$html .= $this->capability_comparison_table($capabilities, $childcontextid, $roles);
}
}
return $html;
}
}
}
@@ -0,0 +1,97 @@
@tool @tool_capability
Feature: Show capabilities for multiple contexts
In order to check roles capabilities
As an admin
I need to be able to see capability overrides on several contexts
Background:
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
| Course 2 | C2 | 0 |
And the following "permission overrides" exist:
| capability | permission | role | contextlevel | reference |
| enrol/category:config | Allow | student | Course | C1 |
| enrol/cohort:unenrol | Allow | student | Course | C2 |
And I log in as "admin"
And I navigate to "Users > Permissions > Capability overview" in site administration
Scenario: Show capabilities table with one capability with overrides
When I set the following fields to these values:
| Capability: | enrol/category:config |
| Roles: | Student |
And I click on "Get the overview" "button"
Then I should see "System"
And I should see "Category: Miscellaneous"
And I should see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with one capability without overrides
When I set the following fields to these values:
| Capability: | enrol/cohort:config |
| Roles: | Student |
And I click on "Get the overview" "button"
Then I should see "System"
And I should not see "Category: Miscellaneous"
And I should not see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with two capabilities, 1st without overrides and 2nd with
When I set the following fields to these values:
| Capability: | enrol/category:synchronised, enrol/category:config |
| Roles: | Student |
And I click on "Get the overview" "button"
Then I should see "System"
And I should see "Category: Miscellaneous"
And I should see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with two capabilities, 1st with overrides and 2nd without
When I set the following fields to these values:
| Capability: | enrol/category:config, enrol/cohort:config |
| Roles: | Student |
And I click on "Get the overview" "button"
Then I should see "System"
And I should see "Category: Miscellaneous"
And I should see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with two capabilities, none with overrides
When I set the following fields to these values:
| Capability: | enrol/category:synchronised, enrol/cohort:config |
| Roles: | Student |
And I click on "Get the overview" "button"
Then I should see "System"
And I should not see "Category: Miscellaneous"
And I should not see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with capability with override and no role selected
When I set the following fields to these values:
| Capability: | enrol/category:config |
| Roles: | |
And I click on "Get the overview" "button"
Then I should see "System"
And I should see "Category: Miscellaneous"
And I should see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with capability without override and no role selected
When I set the following fields to these values:
| Capability: | enrol/cohort:config |
| Roles: | |
And I click on "Get the overview" "button"
Then I should see "System"
And I should not see "Category: Miscellaneous"
And I should not see "Course: Course 1"
And I should not see "Course: Course 2"
Scenario: Show capabilities table with capability with two overrides on different contexts
When I set the following fields to these values:
| Capability: | enrol/category:config, enrol/cohort:unenrol |
| Roles: | |
And I click on "Get the overview" "button"
Then I should see "System"
And I should see "Category: Miscellaneous"
And I should see "Course: Course 1"
And I should see "Course: Course 2"
+46
View File
@@ -144,6 +144,10 @@ class api {
$rolesadded = array();
$rolesremoved = array();
// Remove any cohort role mappings for roles which have been deleted.
// The role assignments are not a consideration because these will have been removed when the role was.
$DB->delete_records_select('tool_cohortroles', "roleid NOT IN (SELECT id FROM {role})");
// Get all cohort role assignments and group them by user and role.
$all = cohort_role_assignment::get_records(array(), 'userid, roleid');
// We build an better structure to loop on.
@@ -222,6 +226,48 @@ class api {
}
}
// Clean the legacy role assignments which are stale.
$paramsclean['usercontext'] = CONTEXT_USER;
$paramsclean['component'] = 'tool_cohortroles';
$sql = 'SELECT DISTINCT(ra.id), ra.roleid, ra.userid, ra.contextid, ctx.instanceid
FROM {role_assignments} ra
JOIN {context} ctx ON ctx.id = ra.contextid AND ctx.contextlevel = :usercontext
JOIN {cohort_members} cm ON cm.userid = ctx.instanceid
LEFT JOIN {tool_cohortroles} tc ON tc.cohortid = cm.cohortid
AND tc.userid = ra.userid
AND tc.roleid = ra.roleid
WHERE ra.component = :component
AND tc.id is null';
if ($candidatelegacyassignments = $DB->get_records_sql($sql, $paramsclean)) {
$sql = 'SELECT DISTINCT(ra.id)
FROM {role_assignments} ra
JOIN {context} ctx ON ctx.id = ra.contextid AND ctx.contextlevel = :usercontext
JOIN {cohort_members} cm ON cm.userid = ctx.instanceid
JOIN {tool_cohortroles} tc ON tc.cohortid = cm.cohortid AND tc.userid = ra.userid
WHERE ra.component = :component';
if ($currentvalidroleassignments = $DB->get_records_sql($sql, $paramsclean)) {
foreach ($candidatelegacyassignments as $candidate) {
if (!array_key_exists($candidate->id, $currentvalidroleassignments)) {
role_unassign($candidate->roleid, $candidate->userid, $candidate->contextid, 'tool_cohortroles');
$rolesremoved[] = array(
'useridassignedto' => $candidate->userid,
'useridassignedover' => $candidate->instanceid,
'roleid' => $candidate->roleid
);
}
}
} else {
foreach ($candidatelegacyassignments as $candidate) {
role_unassign($candidate->roleid, $candidate->userid, $candidate->contextid, 'tool_cohortroles');
$rolesremoved[] = array(
'useridassignedto' => $candidate->userid,
'useridassignedover' => $candidate->instanceid,
'roleid' => $candidate->roleid
);
}
}
}
return array('rolesadded' => $rolesadded, 'rolesremoved' => $rolesremoved);
}
@@ -103,5 +103,4 @@ class cohort_role_assignment extends persistent {
return true;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?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/>.
/**
* Plugin upgrade code
*
* @package tool_cohortroles
* @copyright 2020 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Function to upgrade tool_cohortroles.
*
* @param int $oldversion the version we are upgrading from
* @return bool result
*/
function xmldb_tool_cohortroles_upgrade($oldversion) {
global $DB;
if ($oldversion < 2019052001) {
// Delete any tool_cohortroles mappings for roles which no longer exist.
$DB->delete_records_select('tool_cohortroles', 'roleid NOT IN (SELECT id FROM {role})');
// Cohortroles savepoint reached.
upgrade_plugin_savepoint(true, 2019052001, 'tool', 'cohortroles');
}
return true;
}
+82 -7
View File
@@ -50,8 +50,6 @@ class tool_cohortroles_api_testcase extends advanced_testcase {
* Setup function- we will create a course and add an assign instance to it.
*/
protected function setUp() {
global $DB;
$this->resetAfterTest(true);
// Create some users.
@@ -133,14 +131,91 @@ class tool_cohortroles_api_testcase extends advanced_testcase {
public function test_delete_cohort_role_assignment() {
$this->setAdminUser();
$params = (object) array(
// Create a cohort role assigment.
$params = (object) [
'userid' => $this->userassignto->id,
'roleid' => $this->roleid,
'cohortid' => $this->cohort->id
);
$result = api::create_cohort_role_assignment($params);
$worked = api::delete_cohort_role_assignment($result->get('id'));
$this->assertTrue($worked);
];
$cohortroleassignment = api::create_cohort_role_assignment($params);
$sync = api::sync_all_cohort_roles();
$rolesadded = [
[
'useridassignedto' => $this->userassignto->id,
'useridassignedover' => $this->userassignover->id,
'roleid' => $this->roleid
]
];
$expected = [
'rolesadded' => $rolesadded,
'rolesremoved' => []
];
$this->assertEquals($sync, $expected);
// Delete the cohort role assigment and confirm the roles are removed.
$result = api::delete_cohort_role_assignment($cohortroleassignment->get('id'));
$this->assertTrue($result);
$sync = api::sync_all_cohort_roles();
$expected = [
'rolesadded' => [],
'rolesremoved' => $rolesadded
];
$this->assertEquals($expected, $sync);
}
/**
* Test case verifying that syncing won't remove role assignments if they are valid for another cohort role assignment.
*/
public function test_delete_cohort_role_assignment_cohorts_having_same_members() {
$this->setAdminUser();
// Create 2 cohorts, with a 1 user (user1) present in both,
// and user2 and user3 members of 1 cohort each.
$cohort1 = $this->getDataGenerator()->create_cohort();
$cohort2 = $this->getDataGenerator()->create_cohort();
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$user3 = $this->getDataGenerator()->create_user();
cohort_add_member($cohort1->id, $user1->id);
cohort_add_member($cohort1->id, $user2->id);
cohort_add_member($cohort2->id, $user1->id);
cohort_add_member($cohort2->id, $user3->id);
// And a role and a user to assign that role to.
$user4 = $this->getDataGenerator()->create_user(); // A cohort manager, for example.
$roleid = create_role('Role 1', 'myrole', 'test');
// Assign the role for user4 in both cohorts.
$params = (object) [
'userid' => $user4->id,
'roleid' => $roleid,
'cohortid' => $cohort1->id
];
$cohort1roleassignment = api::create_cohort_role_assignment($params);
$params->cohortid = $cohort2->id;
$cohort2roleassignment = api::create_cohort_role_assignment($params);
$sync = api::sync_all_cohort_roles();
// There is no guarantee about the order of roles assigned.
// so confirm we have 3 role assignments, and they are for the users 1, 2 and 3.
$this->assertCount(3, $sync['rolesadded']);
$addedusers = array_column($sync['rolesadded'], 'useridassignedover');
$this->assertContains($user1->id, $addedusers);
$this->assertContains($user2->id, $addedusers);
$this->assertContains($user3->id, $addedusers);
// Remove the role assignment for user4/cohort1.
// Verify only 1 role is unassigned as the others are still valid for the other cohort role assignment.
$result = api::delete_cohort_role_assignment($cohort1roleassignment->get('id'));
$this->assertTrue($result);
$sync = api::sync_all_cohort_roles();
$this->assertCount(0, $sync['rolesadded']);
$this->assertCount(1, $sync['rolesremoved']);
$removedusers = array_column($sync['rolesremoved'], 'useridassignedover');
$this->assertContains($user2->id, $removedusers);
}
public function test_list_cohort_role_assignments() {
+1 -1
View File
@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
$plugin->version = 2019052001; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2019051100; // Requires this Moodle version.
$plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
+3
View File
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -113,14 +113,14 @@
<div class="d-md-none">
<strong>{{#str}}headingstandard, tool_customlang{{/str}}</strong>
</div>
{{{ master }}}
{{ master }}
<div class="info">
{{{ placeholderhelp }}}
{{{ outdatedhelp}}}
</div>
{{#showoriginalvsmaster}}
<div class="alert-secondary mt-3 mt-1">
{{{ original }}}
{{ original }}
</div>
{{/showoriginalvsmaster}}
</div>
@@ -146,5 +146,14 @@
</div>
{{/strings}}
</div>
<fieldset class="m-a-1 m-3">
<button type="submit" name="savecontinue" class="btn btn-secondary">
{{#str}}savecontinue, tool_customlang{{/str}}
</button>
<button type="submit" name="savecheckin" class="btn btn-secondary">
{{#str}}savecheckin, tool_customlang{{/str}}
</button>
</fieldset>
</form>
{{/hasstrings}}
+1 -1
View File
@@ -1 +1 @@
define(["jquery","core/url","core/str"],function(a,b,c){var d=a('<img alt="" src="'+b.imageUrl("t/expanded")+'"/>'),e=a('<img alt="" src="'+b.imageUrl("t/collapsed")+'"/>');return{expandCollapse:function(a,b){a.hasClass("hide")?(a.removeClass("hide"),a.addClass("visible"),a.attr("aria-expanded",!0),b.find(":header i.fa").removeClass("fa-plus-square"),b.find(":header i.fa").addClass("fa-minus-square"),b.find(":header img.icon").attr("src",d.attr("src"))):(a.removeClass("visible"),a.addClass("hide"),a.attr("aria-expanded",!1),b.find(":header i.fa").removeClass("fa-minus-square"),b.find(":header i.fa").addClass("fa-plus-square"),b.find(":header img.icon").attr("src",e.attr("src")))},expandCollapseAll:function(b){var f="visible"==b?"hide":"visible",g="visible"==b,h="visible"==b?"fa-plus-square":"fa-minus-square",i="visible"==b?"fa-minus-square":"fa-plus-square",j="visible"==b?d.attr("src"):e.attr("src");a("."+f).each(function(){a(this).removeClass(f),a(this).addClass(b),a(this).attr("aria-expanded",g)}),a(".tool_dataprivacy-expand-all").data("visibilityState",f),c.get_string(f,"tool_dataprivacy").then(function(b){a(".tool_dataprivacy-expand-all").html(b)})["catch"](Notification.exception),a(":header i.fa").each(function(){a(this).removeClass(h),a(this).addClass(i)}),a(":header img.icon").each(function(){a(this).attr("src",j)})}}});
define(["jquery","core/url","core/str"],function(a,b,c){var d=a('<img alt="" src="'+b.imageUrl("t/expanded")+'"/>'),e=a('<img alt="" src="'+b.imageUrl("t/collapsed")+'"/>'),f={EXPAND:"fa-caret-right",COLLAPSE:"fa-caret-down"};return{expandCollapse:function(a,b){a.hasClass("hide")?(a.removeClass("hide"),a.addClass("visible"),a.attr("aria-expanded",!0),b.find(":header i.fa").removeClass(f.EXPAND),b.find(":header i.fa").addClass(f.COLLAPSE),b.find(":header img.icon").attr("src",d.attr("src"))):(a.removeClass("visible"),a.addClass("hide"),a.attr("aria-expanded",!1),b.find(":header i.fa").removeClass(f.COLLAPSE),b.find(":header i.fa").addClass(f.EXPAND),b.find(":header img.icon").attr("src",e.attr("src")))},expandCollapseAll:function(b){var g="visible"==b?"hide":"visible",h="visible"==b,i="visible"==b?f.EXPAND:f.COLLAPSE,j="visible"==b?f.COLLAPSE:f.EXPAND,k="visible"==b?d.attr("src"):e.attr("src");a("."+g).each(function(){a(this).removeClass(g),a(this).addClass(b),a(this).attr("aria-expanded",h)}),a(".tool_dataprivacy-expand-all").data("visibilityState",g),c.get_string(g,"tool_dataprivacy").then(function(b){a(".tool_dataprivacy-expand-all").html(b)})["catch"](Notification.exception),a(":header i.fa").each(function(){a(this).removeClass(i),a(this).addClass(j)}),a(":header img.icon").each(function(){a(this).attr("src",k)})}}});
+1 -1
View File
@@ -1 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events","core/templates"],function(a,b,c,d,e,f,g){function h(a){var e={methodname:"tool_dataprivacy_contact_dpo",args:{message:a}},f="success";b.call([e])[0].then(function(a){return a.result?d.get_string("requestsubmitted","tool_dataprivacy"):(f="error",a.warnings.join("<br>"))}).done(function(a){c.addNotification({message:a,type:f})}).fail(c.exception)}var i={CANCEL_REQUEST:'[data-action="cancel"]',CONTACT_DPO:'[data-action="contactdpo"]'},j=function(){this.registerEvents()};return j.prototype.registerEvents=function(){a(i.CANCEL_REQUEST).click(function(g){g.preventDefault();var h=a(this).data("requestid"),i=[{key:"cancelrequest",component:"tool_dataprivacy"},{key:"cancelrequestconfirmation",component:"tool_dataprivacy"}];d.get_strings(i).then(function(a){var d=a[0],g=a[1];return e.create({title:d,body:g,type:e.types.SAVE_CANCEL}).then(function(a){return a.setSaveButtonText(d),a.getRoot().on(f.save,function(){var a={requestid:h},d={methodname:"tool_dataprivacy_cancel_data_request",args:a};b.call([d])[0].done(function(a){a.result?window.location.reload():c.addNotification({message:a.warnings[0].message,type:"error"})}).fail(c.exception)}),a.getRoot().on(f.hidden,function(){a.destroy()}),a})}).done(function(a){a.show()}).fail(c.exception)}),a(i.CONTACT_DPO).click(function(b){b.preventDefault();var i=a(this).data("replytoemail"),j=[{key:"contactdataprotectionofficer",component:"tool_dataprivacy"},{key:"send",component:"tool_dataprivacy"}],k="";d.get_strings(j).then(function(a){var b=a[0];k=a[1];var c={replytoemail:i};return e.create({title:b,body:g.render("tool_dataprivacy/contact_dpo",c),type:e.types.SAVE_CANCEL,large:!0})}).done(function(b){b.setSaveButtonText(k),b.getRoot().on(f.save,function(b){var c=a("#message").val().trim();0===c.length?(b.preventDefault(),a('[data-region="messageinput"]').addClass("has-danger notifyproblem"),a("#id_error_message").removeAttr("hidden")):h(c)}),b.getRoot().on(f.hidden,function(){b.destroy()}),b.show()}).fail(c.exception)})},{init:function(){return new j}}});
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events","core/templates","core/pending"],function(a,b,c,d,e,f,g,h){function i(a){var e={methodname:"tool_dataprivacy_contact_dpo",args:{message:a}},f="success";b.call([e])[0].then(function(a){return a.result?d.get_string("requestsubmitted","tool_dataprivacy"):(f="error",a.warnings.join("<br>"))}).done(function(a){c.addNotification({message:a,type:f})}).fail(c.exception)}var j={CANCEL_REQUEST:'[data-action="cancel"]',CONTACT_DPO:'[data-action="contactdpo"]'},k=function(){this.registerEvents()};return k.prototype.registerEvents=function(){a(j.CANCEL_REQUEST).click(function(g){g.preventDefault();var h=a(this).data("requestid"),i=[{key:"cancelrequest",component:"tool_dataprivacy"},{key:"cancelrequestconfirmation",component:"tool_dataprivacy"}];d.get_strings(i).then(function(a){var d=a[0],g=a[1];return e.create({title:d,body:g,type:e.types.SAVE_CANCEL}).then(function(a){return a.setSaveButtonText(d),a.getRoot().on(f.save,function(){var a={requestid:h},d={methodname:"tool_dataprivacy_cancel_data_request",args:a};b.call([d])[0].done(function(a){a.result?window.location.reload():c.addNotification({message:a.warnings[0].message,type:"error"})}).fail(c.exception)}),a.getRoot().on(f.hidden,function(){a.destroy()}),a})}).done(function(a){a.show()}).fail(c.exception)}),a(j.CONTACT_DPO).click(function(b){var j=new h("dataprivacy/crud:initModal:contactdpo");b.preventDefault();var k=a(this).data("replytoemail"),l=[{key:"contactdataprotectionofficer",component:"tool_dataprivacy"},{key:"send",component:"tool_dataprivacy"}],m="";d.get_strings(l).then(function(a){var b=a[0];m=a[1];var c={replytoemail:k};return e.create({title:b,body:g.render("tool_dataprivacy/contact_dpo",c),type:e.types.SAVE_CANCEL,large:!0})}).then(function(b){b.setSaveButtonText(m),b.show(),b.getRoot().on(f.save,function(b){var c=a("#message").val().trim();0===c.length?(b.preventDefault(),a('[data-region="messageinput"]').addClass("has-danger notifyproblem"),a("#id_error_message").removeAttr("hidden")):i(c)}),b.getRoot().on(f.hidden,function(){b.destroy()})}).then(j.resolve)["catch"](c.exception)})},{init:function(){return new k}}});
@@ -28,6 +28,14 @@ define(['jquery', 'core/url', 'core/str'], function($, url, str) {
var expandedImage = $('<img alt="" src="' + url.imageUrl('t/expanded') + '"/>');
var collapsedImage = $('<img alt="" src="' + url.imageUrl('t/collapsed') + '"/>');
/*
* Class names to apply when expanding/collapsing nodes.
*/
var CLASSES = {
EXPAND: 'fa-caret-right',
COLLAPSE: 'fa-caret-down'
};
return /** @alias module:tool_dataprivacy/expand-collapse */ {
/**
* Expand or collapse a selected node.
@@ -40,15 +48,15 @@ define(['jquery', 'core/url', 'core/str'], function($, url, str) {
targetnode.removeClass('hide');
targetnode.addClass('visible');
targetnode.attr('aria-expanded', true);
thisnode.find(':header i.fa').removeClass('fa-plus-square');
thisnode.find(':header i.fa').addClass('fa-minus-square');
thisnode.find(':header i.fa').removeClass(CLASSES.EXPAND);
thisnode.find(':header i.fa').addClass(CLASSES.COLLAPSE);
thisnode.find(':header img.icon').attr('src', expandedImage.attr('src'));
} else {
targetnode.removeClass('visible');
targetnode.addClass('hide');
targetnode.attr('aria-expanded', false);
thisnode.find(':header i.fa').removeClass('fa-minus-square');
thisnode.find(':header i.fa').addClass('fa-plus-square');
thisnode.find(':header i.fa').removeClass(CLASSES.COLLAPSE);
thisnode.find(':header i.fa').addClass(CLASSES.EXPAND);
thisnode.find(':header img.icon').attr('src', collapsedImage.attr('src'));
}
},
@@ -61,8 +69,8 @@ define(['jquery', 'core/url', 'core/str'], function($, url, str) {
expandCollapseAll: function(nextstate) {
var currentstate = (nextstate == 'visible') ? 'hide' : 'visible';
var ariaexpandedstate = (nextstate == 'visible') ? true : false;
var iconclassnow = (nextstate == 'visible') ? 'fa-plus-square' : 'fa-minus-square';
var iconclassnext = (nextstate == 'visible') ? 'fa-minus-square' : 'fa-plus-square';
var iconclassnow = (nextstate == 'visible') ? CLASSES.EXPAND : CLASSES.COLLAPSE;
var iconclassnext = (nextstate == 'visible') ? CLASSES.COLLAPSE : CLASSES.EXPAND;
var imagenow = (nextstate == 'visible') ? expandedImage.attr('src') : collapsedImage.attr('src');
$('.' + currentstate).each(function() {
$(this).removeClass(currentstate);
@@ -28,8 +28,9 @@ define([
'core/str',
'core/modal_factory',
'core/modal_events',
'core/templates'],
function($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates) {
'core/templates',
'core/pending'],
function($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates, Pending) {
/**
* List of action selectors.
@@ -118,6 +119,7 @@ function($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates) {
});
$(ACTIONS.CONTACT_DPO).click(function(e) {
var pendingPromise = new Pending('dataprivacy/crud:initModal:contactdpo');
e.preventDefault();
var replyToEmail = $(this).data('replytoemail');
@@ -146,9 +148,12 @@ function($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates) {
type: ModalFactory.types.SAVE_CANCEL,
large: true
});
}).done(function(modal) {
}).then(function(modal) {
modal.setSaveButtonText(sendButtonText);
// Show the modal!
modal.show();
// Handle send event.
modal.getRoot().on(ModalEvents.save, function(e) {
var message = $('#message').val().trim();
@@ -169,9 +174,9 @@ function($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates) {
modal.destroy();
});
// Show the modal!
modal.show();
}).fail(Notification.exception);
return;
}).then(pendingPromise.resolve)
.catch(Notification.exception);
});
};
+4 -3
View File
@@ -712,7 +712,7 @@ class api {
'requestedby' => $requestedby->fullname,
'requesttype' => $typetext,
'requestdate' => userdate($requestdata->timecreated),
'requestorigin' => $SITE->fullname,
'requestorigin' => format_string($SITE->fullname, true, ['context' => context_system::instance()]),
'requestoriginurl' => new moodle_url('/'),
'requestcomments' => $requestdata->messagehtml,
'datarequestsurl' => $datarequestsurl
@@ -774,7 +774,8 @@ class api {
public static function can_create_data_deletion_request_for_self(int $userid = null): bool {
global $USER;
$userid = $userid ?: $USER->id;
return has_capability('tool/dataprivacy:requestdelete', \context_user::instance($userid), $userid);
return has_capability('tool/dataprivacy:requestdelete', \context_user::instance($userid), $userid)
&& !is_primary_admin($userid);
}
/**
@@ -803,7 +804,7 @@ class api {
global $USER;
$requesterid = $requesterid ?: $USER->id;
return has_capability('tool/dataprivacy:makedatadeletionrequestsforchildren', \context_user::instance($userid),
$requesterid);
$requesterid) && !is_primary_admin($userid);
}
/**
+2 -2
View File
@@ -713,7 +713,6 @@ class external extends external_api {
list($sql, $params) = users_search_sql($query, '', false, $extrafields, $excludedusers);
$users = $DB->get_records_select('user', $sql, $params, $sort, $fields, 0, 30);
$useroptions = [];
foreach ($users as $user) {
$useroption = (object)[
@@ -722,9 +721,10 @@ class external extends external_api {
];
$useroption->extrafields = [];
foreach ($extrafields as $extrafield) {
// Sanitize the extra fields to prevent potential XSS exploit.
$useroption->extrafields[] = (object)[
'name' => $extrafield,
'value' => $user->$extrafield
'value' => s($user->$extrafield)
];
}
$useroptions[$user->id] = $useroption;
@@ -440,6 +440,9 @@ class purpose extends persistent {
}
if (!empty($data->sensitivedatareasons) && is_array($data->sensitivedatareasons)) {
$data->sensitivedatareasons = implode(',', $data->sensitivedatareasons);
} else {
// Nothing selected. Set default value of null.
$data->sensitivedatareasons = null;
}
// A single value.
@@ -26,6 +26,7 @@ namespace tool_dataprivacy\task;
use action_link;
use coding_exception;
use context_system;
use core\message\message;
use core\task\adhoc_task;
use core_user;
@@ -127,13 +128,17 @@ class process_data_request_task extends adhoc_task {
$thing = $fs->create_file_from_pathname($filerecord, $exportedcontent);
$completestatus = api::DATAREQUEST_STATUS_DOWNLOAD_READY;
} else if ($request->type == api::DATAREQUEST_TYPE_DELETE) {
// Delete the data.
$manager = new \core_privacy\manager();
$manager->set_observer(new \tool_dataprivacy\manager_observer());
// Delete the data for users other than the primary admin, which is rejected.
if (is_primary_admin($foruser->id)) {
$completestatus = api::DATAREQUEST_STATUS_REJECTED;
} else {
$manager = new \core_privacy\manager();
$manager->set_observer(new \tool_dataprivacy\manager_observer());
$manager->delete_data_for_user($approvedclcollection);
$completestatus = api::DATAREQUEST_STATUS_DELETED;
$deleteuser = !$foruser->deleted;
$manager->delete_data_for_user($approvedclcollection);
$completestatus = api::DATAREQUEST_STATUS_DELETED;
$deleteuser = !$foruser->deleted;
}
}
// When the preparation of the metadata finishes, update the request status to awaiting approval.
@@ -148,7 +153,7 @@ class process_data_request_task extends adhoc_task {
$message->name = 'datarequestprocessingresults';
$message->userfrom = $dpo;
$message->replyto = $dpo->email;
$message->replytoname = fullname($dpo->email);
$message->replytoname = fullname($dpo);
$typetext = null;
// Prepare the context data for the email message body.
@@ -176,7 +181,8 @@ class process_data_request_task extends adhoc_task {
$message->contexturl = $datarequestsurl;
$message->contexturlname = get_string('datarequests', 'tool_dataprivacy');
// Message to the recipient.
$messagetextdata['message'] = get_string('resultdownloadready', 'tool_dataprivacy', $SITE->fullname);
$messagetextdata['message'] = get_string('resultdownloadready', 'tool_dataprivacy',
format_string($SITE->fullname, true, ['context' => context_system::instance()]));
// Prepare download link.
$downloadurl = moodle_url::make_pluginfile_url($usercontext->id, 'tool_dataprivacy', 'export', $thing->get_itemid(),
$thing->get_filepath(), $thing->get_filename(), true);
@@ -188,7 +194,8 @@ class process_data_request_task extends adhoc_task {
// No point notifying a deleted user in Moodle.
$message->notification = 0;
// Message to the recipient.
$messagetextdata['message'] = get_string('resultdeleted', 'tool_dataprivacy', $SITE->fullname);
$messagetextdata['message'] = get_string('resultdeleted', 'tool_dataprivacy',
format_string($SITE->fullname, true, ['context' => context_system::instance()]));
// Message will be sent to the deleted user via email only.
$emailonly = true;
break;
+9 -1
View File
@@ -45,13 +45,22 @@ if ($manage) {
$context = context_system::instance();
// Make sure the user has the proper capability.
require_capability('tool/dataprivacy:managedatarequests', $context);
navigation_node::override_active_url($returnurl);
} else {
// For the case where a user makes request for themselves (or for their children if they are the parent).
$returnurl = new moodle_url($CFG->wwwroot . '/admin/tool/dataprivacy/mydatarequests.php');
$context = context_user::instance($USER->id);
}
$PAGE->set_context($context);
if (!$manage && $profilenode = $PAGE->settingsnav->find('myprofile', null)) {
$profilenode->make_active();
}
$title = get_string('createnewdatarequest', 'tool_dataprivacy');
$PAGE->navbar->add($title);
// If contactdataprotectionofficer is disabled, send the user back to the profile page, or the privacy policy page.
// That is, unless you have sufficient capabilities to perform this on behalf of a user.
if (!$manage && !\tool_dataprivacy\api::can_contact_dpo()) {
@@ -100,7 +109,6 @@ if ($data = $mform->get_data()) {
redirect($returnurl, $redirectmessage);
}
$title = get_string('createnewdatarequest', 'tool_dataprivacy');
$PAGE->set_heading($SITE->fullname);
$PAGE->set_title($title);
echo $OUTPUT->header();
+26
View File
@@ -316,5 +316,31 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) {
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2019052001) {
// Define field commentsformat to be added to tool_dataprivacy_request.
$table = new xmldb_table('tool_dataprivacy_request');
$field = new xmldb_field('commentsformat', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'comments');
// Conditionally launch add field commentsformat.
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
// Define field dpocommentformat to be added to tool_dataprivacy_request.
$field = new xmldb_field('dpocommentformat', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'dpocomment');
// Conditionally launch add field dpocommentformat.
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
// Dataprivacy savepoint reached.
upgrade_plugin_savepoint(true, 2019052001, 'tool', 'dataprivacy');
}
return true;
}
+7 -1
View File
@@ -42,6 +42,13 @@ if (isguestuser()) {
$usercontext = context_user::instance($USER->id);
$PAGE->set_context($usercontext);
if ($profilenode = $PAGE->settingsnav->find('myprofile', null)) {
$profilenode->make_active();
}
$title = get_string('datarequests', 'tool_dataprivacy');
$PAGE->navbar->add($title);
// Return URL.
$params = ['id' => $USER->id];
if ($courseid) {
@@ -49,7 +56,6 @@ if ($courseid) {
}
$returnurl = new moodle_url('/user/profile.php', $params);
$title = get_string('datarequests', 'tool_dataprivacy');
$PAGE->set_heading($title);
$PAGE->set_title($title);
echo $OUTPUT->header();
+3 -9
View File
@@ -27,12 +27,10 @@ require_once('../../../config.php');
$requestid = required_param('requestid', PARAM_INT);
$confirm = optional_param('confirm', null, PARAM_INT);
$PAGE->set_url(new moodle_url('/admin/tool/dataprivacy/resubmitrequest.php', ['requestid' => $requestid]));
$url = new moodle_url('/admin/tool/dataprivacy/resubmitrequest.php', ['requestid' => $requestid]);
$title = get_string('resubmitrequestasnew', 'tool_dataprivacy');
require_login();
$PAGE->set_context(\context_system::instance());
require_capability('tool/dataprivacy:managedatarequests', $PAGE->context);
\tool_dataprivacy\page_helper::setup($url, $title, 'datarequests', 'tool/dataprivacy:managedatarequests');
$manageurl = new moodle_url('/admin/tool/dataprivacy/datarequests.php');
@@ -53,10 +51,6 @@ if (null !== $confirm && confirm_sesskey()) {
redirect($manageurl, get_string('resubmittedrequest', 'tool_dataprivacy', $stringparams));
}
$heading = get_string('resubmitrequest', 'tool_dataprivacy', $stringparams);
$PAGE->set_title($heading);
$PAGE->set_heading($heading);
echo $OUTPUT->header();
$confirmstring = get_string('confirmrequestresubmit', 'tool_dataprivacy', $stringparams);
+7
View File
@@ -34,6 +34,13 @@ $PAGE->set_context($context);
$PAGE->set_title($title);
$PAGE->set_heading($SITE->fullname);
// If user is logged in, then use profile navigation in breadcrumbs.
if ($profilenode = $PAGE->settingsnav->find('myprofile', null)) {
$profilenode->make_active();
}
$PAGE->navbar->add($title);
$output = $PAGE->get_renderer('tool_dataprivacy');
echo $output->header();
$summarypage = new \tool_dataprivacy\output\summary_page();
@@ -47,6 +47,6 @@
<span>
<span>{{fullname}}</span>
{{#extrafields}}
<span><small>{{value}}</small></span>
<span><small>{{{value}}}</small></span>
{{/extrafields}}
</span>
+61 -1
View File
@@ -301,6 +301,34 @@ class tool_dataprivacy_api_testcase extends advanced_testcase {
$datarequest = api::create_data_request($student->id, api::DATAREQUEST_TYPE_EXPORT);
$requestid = $datarequest->get('id');
// Login as a user without DPO role.
$this->setUser($teacher);
$this->expectException(required_capability_exception::class);
api::approve_data_request($requestid);
}
/**
* Test that deletion requests for the primary admin are rejected
*/
public function test_reject_data_deletion_request_primary_admin() {
$this->resetAfterTest();
$this->setAdminUser();
$datarequest = api::create_data_request(get_admin()->id, api::DATAREQUEST_TYPE_DELETE);
// Approve the request and execute the ad-hoc process task.
ob_start();
api::approve_data_request($datarequest->get('id'));
$this->runAdhocTasks('\tool_dataprivacy\task\process_data_request_task');
ob_end_clean();
$request = api::get_request($datarequest->get('id'));
$this->assertEquals(api::DATAREQUEST_STATUS_REJECTED, $request->get('status'));
// Confirm they weren't deleted.
$user = core_user::get_user($request->get('userid'));
core_user::require_active_user($user);
}
/**
@@ -2126,6 +2154,33 @@ class tool_dataprivacy_api_testcase extends advanced_testcase {
$this->assertFalse(api::can_create_data_deletion_request_for_self());
}
/**
* Test primary admin cannot create data deletion request for themselves
*/
public function test_can_create_data_deletion_request_for_self_primary_admin() {
$this->resetAfterTest();
$this->setAdminUser();
$this->assertFalse(api::can_create_data_deletion_request_for_self());
}
/**
* Test secondary admin can create data deletion request for themselves
*/
public function test_can_create_data_deletion_request_for_self_secondary_admin() {
$this->resetAfterTest();
$admin1 = $this->getDataGenerator()->create_user();
$admin2 = $this->getDataGenerator()->create_user();
// The primary admin is the one listed first in the 'siteadmins' config.
set_config('siteadmins', implode(',', [$admin1->id, $admin2->id]));
// Set the current user as the second admin (non-primary).
$this->setUser($admin2);
$this->assertTrue(api::can_create_data_deletion_request_for_self());
}
/**
* Test user can create data deletion request for themselves if they have
* "tool/dataprivacy:requestdelete" capability.
@@ -2171,7 +2226,8 @@ class tool_dataprivacy_api_testcase extends advanced_testcase {
}
/**
* Check parents can create data deletion request for their children but not others.
* Check parents can create data deletion request for their children (unless the child is the primary admin),
* but not other users.
*
* @throws coding_exception
* @throws dml_exception
@@ -2194,5 +2250,9 @@ class tool_dataprivacy_api_testcase extends advanced_testcase {
$this->setUser($parent);
$this->assertTrue(api::can_create_data_deletion_request_for_children($child->id));
$this->assertFalse(api::can_create_data_deletion_request_for_children($otheruser->id));
// Now make child the primary admin, confirm parent can't make deletion request.
set_config('siteadmins', $child->id);
$this->assertFalse(api::can_create_data_deletion_request_for_children($child->id));
}
}
@@ -189,6 +189,12 @@ Feature: Data delete from the privacy API
And I follow "Profile" in the user menu
Then I should not see "Delete my account"
@javascript
Scenario: As a primary admin, the link to create a data deletion request should not be shown.
Given I log in as "admin"
When I follow "Profile" in the user menu
Then I should not see "Delete my account"
@javascript
Scenario: As a Privacy Officer, I cannot Approve to Deny deletion data request without permission.
Given the following "permission overrides" exist:
@@ -12,7 +12,7 @@ Feature: Manage data categories
And I press "Add category"
And I set the field "Name" to "Category 1"
And I set the field "Description" to "Category 1 description"
When I click on "Save" "button" in the "Delete category" "dialogue"
When I click on "Save" "button" in the "Add category" "dialogue"
Then I should see "Category 1" in the "List of data categories" "table"
And I should see "Category 1 description" in the "Category 1" "table_row"
@@ -30,5 +30,5 @@ Feature: Manage data categories
And I choose "Delete" in the open action menu
And I should see "Delete category"
And I should see "Are you sure you want to delete the category 'Category 1'?"
When I click on "Delete" "button" in the "Confirm" "dialogue"
When I click on "Delete" "button" in the "Delete category" "dialogue"
Then I should not see "Category 1" in the "List of data categories" "table"
@@ -52,5 +52,5 @@ Feature: Manage data storage purposes
And I choose "Delete" in the open action menu
And I should see "Delete purpose"
And I should see "Are you sure you want to delete the purpose 'Purpose 1'?"
When I click on "Delete" "button" in the "Confirm" "dialogue"
When I click on "Delete" "button" in the "Delete purpose" "dialogue"
Then I should not see "Purpose 1" in the "List of data purposes" "table"
@@ -0,0 +1,187 @@
<?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/>.
/**
* Tests for the plugin privacy provider
*
* @package tool_dataprivacy
* @copyright 2020 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use core_privacy\local\request\userlist;
use core_privacy\local\request\writer;
use core_privacy\tests\provider_testcase;
use tool_dataprivacy\api;
use tool_dataprivacy\local\helper;
use tool_dataprivacy\privacy\provider;
/**
* Privacy provider tests
*
* @package tool_dataprivacy
* @copyright 2020 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_dataprivacy_privacy_provider_testcase extends provider_testcase {
/**
* Test provider get_contexts_for_userid method
*
* @return void
*/
public function test_get_contexts_for_userid() {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
$context = context_user::instance($user->id);
// Returned context list should contain a single item.
$contextlist = $this->get_contexts_for_userid($user->id, 'tool_dataprivacy');
$this->assertCount(1, $contextlist);
// We should have the user context of our test user.
$this->assertSame($context, $contextlist->current());
}
/**
* Test provider get_users_in_context method
*
* @return void
*/
public function test_get_users_in_context() {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
$context = context_user::instance($user->id);
$userlist = new userlist($context, 'tool_dataprivacy');
provider::get_users_in_context($userlist);
$this->assertEquals([$user->id], $userlist->get_userids());
}
/**
* Test provider get_users_in_context method for a non-user context
*
* @return void
*/
public function test_get_users_in_context_non_user_context() {
$context = context_system::instance();
$userlist = new userlist($context, 'tool_dataprivacy');
provider::get_users_in_context($userlist);
$this->assertEmpty($userlist);
}
/**
* Test provider export_user_data method
*
* @return void
*/
public function test_export_user_data() {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
$context = context_user::instance($user->id);
$this->setUser($user);
// Create an export request, approve it.
$requestexport = api::create_data_request($user->id, api::DATAREQUEST_TYPE_EXPORT,
'Please export my stuff');
api::update_request_status($requestexport->get('id'), api::DATAREQUEST_STATUS_APPROVED);
// Create a deletion request, reject it.
$requestdelete = api::create_data_request($user->id, api::DATAREQUEST_TYPE_DELETE);
api::update_request_status($requestdelete->get('id'), api::DATAREQUEST_STATUS_REJECTED, 0, 'Nope');
$this->export_context_data_for_user($user->id, $context, 'tool_dataprivacy');
/** @var \core_privacy\tests\request\content_writer $writer */
$writer = writer::with_context($context);
$this->assertTrue($writer->has_any_data());
/** @var stdClass[] $data */
$data = (array) $writer->get_data([
get_string('privacyandpolicies', 'admin'),
get_string('datarequests', 'tool_dataprivacy'),
]);
$this->assertCount(2, $data);
$strs = get_strings(['requesttypeexportshort', 'requesttypedeleteshort',
'statusapproved', 'statusrejected', 'creationmanual'], 'tool_dataprivacy');
// First item is the approved export request.
$this->assertEquals($strs->requesttypeexportshort, $data[0]->type);
$this->assertEquals($strs->statusapproved, $data[0]->status);
$this->assertEquals($strs->creationmanual, $data[0]->creationmethod);
$this->assertEquals($requestexport->get('comments'), $data[0]->comments);
$this->assertEmpty($data[0]->dpocomment);
$this->assertNotEmpty($data[0]->timecreated);
// Next is the rejected deletion request.
$this->assertEquals($strs->requesttypedeleteshort, $data[1]->type);
$this->assertEquals($strs->statusrejected, $data[1]->status);
$this->assertEquals($strs->creationmanual, $data[1]->creationmethod);
$this->assertEmpty($data[1]->comments);
$this->assertContains('Nope', $data[1]->dpocomment);
$this->assertNotEmpty($data[1]->timecreated);
}
/**
* Test class export_user_preferences method
*
* @return void
*/
public function test_export_user_preferences() {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
// Set filters preference.
$filters = [
helper::FILTER_TYPE . ':' . api::DATAREQUEST_TYPE_EXPORT,
helper::FILTER_STATUS . ':' . api::DATAREQUEST_STATUS_PENDING,
];
set_user_preference(helper::PREF_REQUEST_FILTERS, json_encode($filters), $user);
// Set paging preference.
set_user_preference(helper::PREF_REQUEST_PERPAGE, 6, $user);
provider::export_user_preferences($user->id);
/** @var \core_privacy\tests\request\content_writer $writer */
$writer = writer::with_context(context_system::instance());
$this->assertTrue($writer->has_any_data());
/** @var stdClass[] $preferences */
$preferences = (array) $writer->get_user_preferences('tool_dataprivacy');
$this->assertCount(2, $preferences);
$this->assertEquals((object) [
'value' => '1:1, 2:0',
'description' => 'Type: Export, Status: Pending',
], $preferences[helper::PREF_REQUEST_FILTERS]);
$this->assertEquals(6, $preferences[helper::PREF_REQUEST_PERPAGE]->value);
}
}
+1 -1
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die;
$plugin->version = 2019052000;
$plugin->version = 2019052001;
$plugin->requires = 2019051100; // Moodle 3.5dev (Build 2018031600) and upwards.
$plugin->component = 'tool_dataprivacy';
+3
View File
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -24,7 +24,7 @@
$string['actlogshdr'] = 'Available log stores';
$string['configlogplugins'] = 'Please enable all required plugins and arrange them in appropriate order.';
$string['exportlog'] = 'Include logs when exporting.';
$string['exportlog'] = 'Include logs when exporting';
$string['exportlogdetail'] = 'Include logs that relate to the user when exporting.';
$string['logging'] = 'Logging';
$string['managelogging'] = 'Manage log stores';
@@ -46,5 +46,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2019032800, 'logstore', 'database');
}
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -46,5 +46,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2019032800, 'logstore', 'standard');
}
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
define(["jquery","core/notification","tool_lp/dialogue","core/str","core/ajax","core/templates"],function(a,b,c,d,e,f){var g=function(b){a(b).on("click",this.configureSettings.bind(this))};return g.prototype._dialogue=null,g.prototype.configureSettings=function(e){var g=a(e.target).closest("a").data("courseid"),h=a(e.target).closest("a").data("pushratingstouserplans"),i={courseid:g,settings:{pushratingstouserplans:h}};e.preventDefault(),f.render("tool_lp/course_competency_settings",i).done(function(a){d.get_string("configurecoursecompetencysettings","tool_lp").done(function(b){this._dialogue=new c(b,a,this.addListeners.bind(this))}.bind(this)).fail(b.exception)}.bind(this)).fail(b.exception)},g.prototype.addListeners=function(){var a=this._find('[data-action="save"]');a.on("click",this.saveSettings.bind(this));var b=this._find('[data-action="cancel"]');b.on("click",this.cancelChanges.bind(this))},g.prototype.cancelChanges=function(a){a.preventDefault(),this._dialogue.close()},g.prototype._find=function(b){return a('[data-region="coursecompetencysettings"]').find(b)},g.prototype.saveSettings=function(a){a.preventDefault();var c=this._find('input[name="pushratingstouserplans"]:checked').val(),d=this._find('input[name="courseid"]').val(),f={pushratingstouserplans:c};e.call([{methodname:"core_competency_update_course_competency_settings",args:{courseid:d,settings:f}}])[0].done(function(){this.refreshCourseCompetenciesPage()}.bind(this)).fail(b.exception)},g.prototype.refreshCourseCompetenciesPage=function(){var c=this._find('input[name="courseid"]').val();e.call([{methodname:"tool_lp_data_for_course_competencies_page",args:{courseid:c,moduleid:0}}])[0].done(function(c){f.render("tool_lp/course_competencies_page",c).done(function(b,c){a('[data-region="coursecompetenciespage"]').replaceWith(b),f.runTemplateJS(c),this._dialogue.close()}.bind(this)).fail(b.exception)}.bind(this)).fail(b.exception)},g});
define(["jquery","core/notification","tool_lp/dialogue","core/str","core/ajax","core/templates","core/pending"],function(a,b,c,d,e,f,g){var h=function(b){a(b).on("click",this.configureSettings.bind(this))};return h.prototype._dialogue=null,h.prototype.configureSettings=function(e){var h=new g,i=a(e.target).closest("a").data("courseid"),j=a(e.target).closest("a").data("pushratingstouserplans"),k={courseid:i,settings:{pushratingstouserplans:j}};e.preventDefault(),a.when(d.get_string("configurecoursecompetencysettings","tool_lp"),f.render("tool_lp/course_competency_settings",k)).then(function(a,b){return this._dialogue=new c(a,b[0],this.addListeners.bind(this)),this._dialogue}.bind(this)).then(h.resolve)["catch"](b.exception)},h.prototype.addListeners=function(){var a=this._find('[data-action="save"]');a.on("click",this.saveSettings.bind(this));var b=this._find('[data-action="cancel"]');b.on("click",this.cancelChanges.bind(this))},h.prototype.cancelChanges=function(a){a.preventDefault(),this._dialogue.close()},h.prototype._find=function(b){return a('[data-region="coursecompetencysettings"]').find(b)},h.prototype.saveSettings=function(a){var c=new g;a.preventDefault();var d=this._find('input[name="pushratingstouserplans"]:checked').val(),f=this._find('input[name="courseid"]').val(),h={pushratingstouserplans:d};e.call([{methodname:"core_competency_update_course_competency_settings",args:{courseid:f,settings:h}}])[0].then(function(){return this.refreshCourseCompetenciesPage()}.bind(this)).then(c.resolve)["catch"](b.exception)},h.prototype.refreshCourseCompetenciesPage=function(){var c=this._find('input[name="courseid"]').val(),d=new g;e.call([{methodname:"tool_lp_data_for_course_competencies_page",args:{courseid:c,moduleid:0}}])[0].then(function(a){return f.render("tool_lp/course_competencies_page",a)}).then(function(b,c){f.replaceNode(a('[data-region="coursecompetenciespage"]'),b,c),this._dialogue.close()}.bind(this)).then(d.resolve)["catch"](b.exception)},h});
+1 -1
View File
@@ -1 +1 @@
define(["core/yui"],function(a){var b=function(b,c,d,e,f){this.yuiDialogue=null;var g=this;"undefined"==typeof f&&(f=!1),a.use("moodle-core-notification","timers",function(){var h="480px";f&&(h="800px"),g.yuiDialogue=new M.core.dialogue({headerContent:b,bodyContent:c,draggable:!0,visible:!1,center:!0,modal:!0,width:h}),g.yuiDialogue.after("visibleChange",function(b){b.newVal?"undefined"!=typeof d&&a.soon(function(){d(g),g.yuiDialogue.centerDialogue()}):"undefined"!=typeof e&&a.soon(function(){e(g)})}),g.yuiDialogue.show()})};return b.prototype.close=function(){this.yuiDialogue.hide(),this.yuiDialogue.destroy()},b.prototype.getContent=function(){return this.yuiDialogue.bodyNode.getDOMNode()},b});
define(["core/yui"],function(a){var b=function(b,c,d,e,f){M.util.js_pending("tool_lp/dialogue:dialogue"),this.yuiDialogue=null;var g=this;"undefined"==typeof f&&(f=!1),a.use("moodle-core-notification","timers",function(){var h="480px";f&&(h="800px"),g.yuiDialogue=new M.core.dialogue({headerContent:b,bodyContent:c,draggable:!0,visible:!1,center:!0,modal:!0,width:h}),g.yuiDialogue.before("visibleChange",function(){M.util.js_pending("tool_lp/dialogue:before:visibleChange")}),g.yuiDialogue.after("visibleChange",function(b){b.newVal?"undefined"!=typeof d?a.soon(function(){d(g),g.yuiDialogue.centerDialogue(),M.util.js_complete("tool_lp/dialogue:before:visibleChange")}):M.util.js_complete("tool_lp/dialogue:before:visibleChange"):"undefined"!=typeof e?a.soon(function(){e(g),M.util.js_complete("tool_lp/dialogue:before:visibleChange")}):M.util.js_complete("tool_lp/dialogue:before:visibleChange")}),g.yuiDialogue.show(),M.util.js_complete("tool_lp/dialogue:dialogue")})};return b.prototype.close=function(){this.yuiDialogue.hide(),this.yuiDialogue.destroy()},b.prototype.getContent=function(){return this.yuiDialogue.bodyNode.getDOMNode()},b});
+1 -1
View File
@@ -1 +1 @@
define(["jquery","core/notification","core/templates","tool_lp/dialogue","tool_lp/event_base","core/str"],function(a,b,c,d,e,f){var g=function(a){e.prototype.constructor.apply(this,[]),this._ratingOptions=a};return g.prototype=Object.create(e.prototype),g.prototype._popup=null,g.prototype._ratingOptions=null,g.prototype._afterRender=function(){var b=this._find('[data-action="rate"]'),c=this._find('[name="rating"]'),d=this._find('[name="comment"]');this._find('[data-action="cancel"]').click(function(a){a.preventDefault(),this._trigger("cancelled"),this.close()}.bind(this)),c.change(function(){var c=a(this);c.val()?b.prop("disabled",!1):b.prop("disabled",!0)}).change(),b.click(function(a){a.preventDefault();var b=c.val();b&&(this._trigger("rated",{rating:b,note:d.val()}),this.close())}.bind(this))},g.prototype.close=function(){this._popup.close(),this._popup=null},g.prototype.display=function(){return this._render().then(function(a){return f.get_string("rate","tool_lp").then(function(b){this._popup=new d(b,a,this._afterRender.bind(this))}.bind(this))}.bind(this)).fail(b.exception)},g.prototype._find=function(b){return a(this._popup.getContent()).find(b)},g.prototype._render=function(){var a={cangrade:this._canGrade,ratings:this._ratingOptions};return c.render("tool_lp/competency_grader",a)},g});
define(["jquery","core/notification","core/templates","tool_lp/dialogue","tool_lp/event_base","core/str"],function(a,b,c,d,e,f){var g=function(a){e.prototype.constructor.apply(this,[]),this._ratingOptions=a};return g.prototype=Object.create(e.prototype),g.prototype._popup=null,g.prototype._ratingOptions=null,g.prototype._afterRender=function(){var b=this._find('[data-action="rate"]'),c=this._find('[name="rating"]'),d=this._find('[name="comment"]');this._find('[data-action="cancel"]').click(function(a){a.preventDefault(),this._trigger("cancelled"),this.close()}.bind(this)),c.change(function(){var c=a(this);c.val()?b.prop("disabled",!1):b.prop("disabled",!0)}).change(),b.click(function(a){a.preventDefault();var b=c.val();b&&(this._trigger("rated",{rating:b,note:d.val()}),this.close())}.bind(this))},g.prototype.close=function(){this._popup.close(),this._popup=null},g.prototype.display=function(){return M.util.js_pending("tool_lp/grade_dialogue:display"),a.when(f.get_string("rate","tool_lp"),this._render()).then(function(a,b){return this._popup=new d(a,b[0],function(){this._afterRender(),M.util.js_complete("tool_lp/grade_dialogue:display")}.bind(this)),this._popup}.bind(this))["catch"](b.exception)},g.prototype._find=function(b){return a(this._popup.getContent()).find(b)},g.prototype._render=function(){var a={cangrade:this._canGrade,ratings:this._ratingOptions};return c.render("tool_lp/competency_grader",a)},g});
@@ -1 +1 @@
define(["jquery","core/notification","core/ajax","core/log","tool_lp/grade_dialogue","tool_lp/event_base","tool_lp/scalevalues"],function(a,b,c,d,e,f,g){var h=function(b,c,d,e,g,h,i){f.prototype.constructor.apply(this,[]);var j=a(b);if(!j.length)throw new Error("Could not find the trigger");this._scaleId=c,this._competencyId=d,this._userId=e,this._planId=g,this._courseId=h,this._chooseStr=i,this._setUp(),j.click(function(a){a.preventDefault(),this._dialogue.display()}.bind(this)),this._planId?(this._methodName="core_competency_grade_competency_in_plan",this._args={competencyid:this._competencyId,planid:this._planId}):this._courseId?(this._methodName="core_competency_grade_competency_in_course",this._args={competencyid:this._competencyId,courseid:this._courseId,userid:this._userId}):(this._methodName="core_competency_grade_competency",this._args={userid:this._userId,competencyid:this._competencyId})};return h.prototype=Object.create(f.prototype),h.prototype._setUp=function(){var a=[],d=this,f=g.get_values(d._scaleId);f.done(function(f){a.push({value:"",name:d._chooseStr});for(var g=0;g<f.length;g++){var h=f[g];a.push({value:h.id,name:h.name})}d._dialogue=new e(a),d._dialogue.on("rated",function(a,e){var f=d._args;f.grade=e.rating,f.note=e.note,c.call([{methodname:d._methodName,args:f,done:function(a){d._trigger("competencyupdated",{args:f,evidence:a})},fail:b.exception}])})}).fail(b.exception)},h.prototype._scaleId=null,h.prototype._competencyId=null,h.prototype._userId=null,h.prototype._planId=null,h.prototype._courseId=null,h.prototype._chooseStr=null,h.prototype._dialogue=null,h});
define(["jquery","core/notification","core/ajax","core/log","tool_lp/grade_dialogue","tool_lp/event_base","tool_lp/scalevalues"],function(a,b,c,d,e,f,g){var h=function(b,c,d,e,g,h,i){f.prototype.constructor.apply(this,[]);var j=a(b);if(!j.length)throw new Error("Could not find the trigger");this._scaleId=c,this._competencyId=d,this._userId=e,this._planId=g,this._courseId=h,this._chooseStr=i,this._setUp(),j.click(function(a){a.preventDefault(),this._dialogue.display()}.bind(this)),this._planId?(this._methodName="core_competency_grade_competency_in_plan",this._args={competencyid:this._competencyId,planid:this._planId}):this._courseId?(this._methodName="core_competency_grade_competency_in_course",this._args={competencyid:this._competencyId,courseid:this._courseId,userid:this._userId}):(this._methodName="core_competency_grade_competency",this._args={userid:this._userId,competencyid:this._competencyId})};return h.prototype=Object.create(f.prototype),h.prototype._setUp=function(){var a=[],d=this;M.util.js_pending("tool_lp/grade_user_competency_inline:_setUp");var f=g.get_values(d._scaleId);f.then(function(b){a.push({value:"",name:d._chooseStr});for(var c=0;c<b.length;c++){var e=b[c];a.push({value:e.id,name:e.name})}return a}).then(function(a){return new e(a)}).then(function(a){return a.on("rated",function(a,e){var f=d._args;f.grade=e.rating,f.note=e.note,c.call([{methodname:d._methodName,args:f,done:function(a){d._trigger("competencyupdated",{args:f,evidence:a})},fail:b.exception}])}),a}).then(function(a){d._dialogue=a,M.util.js_complete("tool_lp/grade_user_competency_inline:_setUp")}).fail(b.exception)},h.prototype._scaleId=null,h.prototype._competencyId=null,h.prototype._userId=null,h.prototype._planId=null,h.prototype._courseId=null,h.prototype._chooseStr=null,h.prototype._dialogue=null,h});
+28 -15
View File
@@ -27,8 +27,9 @@ define(['jquery',
'core/templates',
'core/str',
'tool_lp/competencypicker',
'tool_lp/dragdrop-reorder'],
function($, notification, ajax, templates, str, Picker, dragdrop) {
'tool_lp/dragdrop-reorder',
'core/pending'],
function($, notification, ajax, templates, str, Picker, dragdrop, Pending) {
/**
* Constructor
@@ -117,6 +118,7 @@ define(['jquery',
* Pick a competency
*
* @method pickCompetency
* @return {Promise}
*/
competencies.prototype.pickCompetency = function() {
var self = this;
@@ -132,6 +134,7 @@ define(['jquery',
self.pickerInstance = new Picker(self.pageContextId, false, pageContextIncludes);
self.pickerInstance.on('save', function(e, data) {
var compIds = data.competencyIds;
var pendingPromise = new Pending();
if (self.itemtype === "course") {
requests = [];
@@ -181,17 +184,20 @@ define(['jquery',
pagerender = 'tool_lp/plan_page';
pageregion = 'plan-page';
}
ajax.call(requests)[requests.length - 1].then(function(context) {
ajax.call(requests)[requests.length - 1]
.then(function(context) {
return templates.render(pagerender, context);
}).then(function(html, js) {
$('[data-region="' + pageregion + '"]').replaceWith(html);
templates.runTemplateJS(js);
})
.then(function(html, js) {
templates.replaceNode($('[data-region="' + pageregion + '"]'), html, js);
return;
}).catch(notification.exception);
})
.then(pendingPromise.resolve)
.catch(notification.exception);
});
}
self.pickerInstance.display();
return self.pickerInstance.display();
};
/**
@@ -302,6 +308,7 @@ define(['jquery',
if (localthis.itemtype == 'course') {
// Course completion rule handling.
$('[data-region="coursecompetenciespage"]').on('change', 'select[data-field="ruleoutcome"]', function(e) {
var pendingPromise = new Pending();
var requests = [];
var pagerender = 'tool_lp/course_competencies_page';
var pageregion = 'coursecompetenciespage';
@@ -314,18 +321,24 @@ define(['jquery',
args: {courseid: localthis.itemid, moduleid: 0}}
]);
requests[1].done(function(context) {
templates.render(pagerender, context).done(function(html, js) {
$('[data-region="' + pageregion + '"]').replaceWith(html);
templates.runTemplateJS(js);
}).fail(notification.exception);
}).fail(notification.exception);
requests[1].then(function(context) {
return templates.render(pagerender, context);
})
.then(function(html, js) {
return templates.replaceNode($('[data-region="' + pageregion + '"]'), html, js);
})
.then(pendingPromise.resolve)
.catch(notification.exception);
});
}
$('[data-region="actions"] button').click(function(e) {
var pendingPromise = new Pending();
e.preventDefault();
localthis.pickCompetency();
localthis.pickCompetency()
.then(pendingPromise.resolve)
.catch();
});
$('[data-action="delete-competency-link"]').click(function(e) {
e.preventDefault();
+10 -3
View File
@@ -33,8 +33,12 @@ define(['jquery',
'tool_lp/menubar',
'tool_lp/competencypicker',
'tool_lp/competency_outcomes',
'tool_lp/competencyruleconfig'],
function($, url, templates, notification, str, ajax, dragdrop, Ariatree, Dialogue, menubar, Picker, Outcomes, RuleConfig) {
'tool_lp/competencyruleconfig',
'core/pending',
],
function(
$, url, templates, notification, str, ajax, dragdrop, Ariatree, Dialogue, menubar, Picker, Outcomes, RuleConfig, Pending
) {
// Private variables and functions.
/** @var {Object} treeModel - This is an object representing the nodes in the tree. */
@@ -412,6 +416,7 @@ define(['jquery',
if (!pickerInstance) {
pickerInstance = new Picker(pageContextId, relatedTarget.competencyframeworkid);
pickerInstance.on('save', function(e, data) {
var pendingPromise = new Pending();
var compIds = data.competencyIds;
var calls = [];
@@ -436,7 +441,9 @@ define(['jquery',
templates.runTemplateJS(js);
updatedRelatedCompetencies();
return;
}).catch(notification.exception);
})
.then(pendingPromise.resolve)
.catch(notification.exception);
});
}
+8 -2
View File
@@ -31,8 +31,10 @@ define(['jquery',
'core/templates',
'tool_lp/dialogue',
'core/str',
'tool_lp/tree'],
function($, Notification, Ajax, Templates, Dialogue, Str, Tree) {
'tool_lp/tree',
'core/pending'
],
function($, Notification, Ajax, Templates, Dialogue, Str, Tree, Pending) {
/**
* Competency picker class.
@@ -157,6 +159,7 @@ define(['jquery',
// Add listener for add.
self._find('[data-region="competencylinktree"] [data-action="add"]').click(function(e) {
e.preventDefault();
var pendingPromise = new Pending();
if (!self._selectedCompetencies.length) {
return;
}
@@ -168,7 +171,10 @@ define(['jquery',
self._trigger('save', {competencyId: self._selectedCompetencies[0]});
}
// The dialogue here is a YUI dialogue and doesn't support Promises at all.
// However, it is typically synchronous so this shoudl suffice.
self.close();
pendingPromise.resolve();
});
// The list of selected competencies will be modified while looping (because of the listeners above).
@@ -26,8 +26,10 @@ define(['jquery',
'tool_lp/dialogue',
'core/str',
'core/ajax',
'core/templates'],
function($, notification, Dialogue, str, ajax, templates) {
'core/templates',
'core/pending'
],
function($, notification, Dialogue, str, ajax, templates, Pending) {
/**
* Constructor
@@ -48,6 +50,7 @@ define(['jquery',
* @method configureSettings
*/
settingsMod.prototype.configureSettings = function(e) {
var pendingPromise = new Pending();
var courseid = $(e.target).closest('a').data('courseid');
var currentValue = $(e.target).closest('a').data('pushratingstouserplans');
var context = {
@@ -56,16 +59,21 @@ define(['jquery',
};
e.preventDefault();
templates.render('tool_lp/course_competency_settings', context).done(function(html) {
str.get_string('configurecoursecompetencysettings', 'tool_lp').done(function(title) {
this._dialogue = new Dialogue(
title,
html,
this.addListeners.bind(this)
);
}.bind(this)).fail(notification.exception);
}.bind(this)).fail(notification.exception);
$.when(
str.get_string('configurecoursecompetencysettings', 'tool_lp'),
templates.render('tool_lp/course_competency_settings', context)
)
.then(function(title, templateResult) {
this._dialogue = new Dialogue(
title,
templateResult[0],
this.addListeners.bind(this)
);
return this._dialogue;
}.bind(this))
.then(pendingPromise.resolve)
.catch(notification.exception);
};
/**
@@ -108,6 +116,7 @@ define(['jquery',
* @method saveSettings
*/
settingsMod.prototype.saveSettings = function(e) {
var pendingPromise = new Pending();
e.preventDefault();
var newValue = this._find('input[name="pushratingstouserplans"]:checked').val();
@@ -117,9 +126,12 @@ define(['jquery',
ajax.call([
{methodname: 'core_competency_update_course_competency_settings',
args: {courseid: courseId, settings: settings}}
])[0].done(function() {
this.refreshCourseCompetenciesPage();
}.bind(this)).fail(notification.exception);
])[0]
.then(function() {
return this.refreshCourseCompetenciesPage();
}.bind(this))
.then(pendingPromise.resolve)
.catch(notification.exception);
};
@@ -131,18 +143,23 @@ define(['jquery',
*/
settingsMod.prototype.refreshCourseCompetenciesPage = function() {
var courseId = this._find('input[name="courseid"]').val();
var pendingPromise = new Pending();
ajax.call([
{methodname: 'tool_lp_data_for_course_competencies_page',
args: {courseid: courseId, moduleid: 0}}
])[0].done(function(context) {
templates.render('tool_lp/course_competencies_page', context).done(function(html, js) {
$('[data-region="coursecompetenciespage"]').replaceWith(html);
templates.runTemplateJS(js);
this._dialogue.close();
}.bind(this)).fail(notification.exception);
}.bind(this)).fail(notification.exception);
])[0]
.then(function(context) {
return templates.render('tool_lp/course_competencies_page', context);
})
.then(function(html, js) {
templates.replaceNode($('[data-region="coursecompetenciespage"]'), html, js);
this._dialogue.close();
return;
}.bind(this))
.then(pendingPromise.resolve)
.catch(notification.exception);
};
return /** @alias module:tool_lp/configurecoursecompetencysettings */ settingsMod;
+13
View File
@@ -35,6 +35,8 @@ define(['core/yui'], function(Y) {
* @param {Boolean} wide Specify we want an extra wide dialogue (the size is standard, but wider than the default).
*/
var dialogue = function(title, content, afterShow, afterHide, wide) {
M.util.js_pending('tool_lp/dialogue:dialogue');
this.yuiDialogue = null;
var parent = this;
@@ -59,6 +61,10 @@ define(['core/yui'], function(Y) {
width: width
});
parent.yuiDialogue.before('visibleChange', function() {
M.util.js_pending('tool_lp/dialogue:before:visibleChange');
});
parent.yuiDialogue.after('visibleChange', function(e) {
if (e.newVal) {
// Delay the callback call to the next tick, otherwise it can happen that it is
@@ -67,18 +73,25 @@ define(['core/yui'], function(Y) {
Y.soon(function() {
afterShow(parent);
parent.yuiDialogue.centerDialogue();
M.util.js_complete('tool_lp/dialogue:before:visibleChange');
});
} else {
M.util.js_complete('tool_lp/dialogue:before:visibleChange');
}
} else {
if ((typeof afterHide !== 'undefined')) {
Y.soon(function() {
afterHide(parent);
M.util.js_complete('tool_lp/dialogue:before:visibleChange');
});
} else {
M.util.js_complete('tool_lp/dialogue:before:visibleChange');
}
}
});
parent.yuiDialogue.show();
M.util.js_complete('tool_lp/dialogue:dialogue');
});
};
+18 -9
View File
@@ -102,15 +102,24 @@ define(['jquery',
* @return {Promise}
*/
Grade.prototype.display = function() {
return this._render().then(function(html) {
return Str.get_string('rate', 'tool_lp').then(function(title) {
this._popup = new Dialogue(
title,
html,
this._afterRender.bind(this)
);
}.bind(this));
}.bind(this)).fail(Notification.exception);
M.util.js_pending('tool_lp/grade_dialogue:display');
return $.when(
Str.get_string('rate', 'tool_lp'),
this._render()
)
.then(function(title, templateResult) {
this._popup = new Dialogue(
title,
templateResult[0],
function() {
this._afterRender();
M.util.js_complete('tool_lp/grade_dialogue:display');
}.bind(this)
);
return this._popup;
}.bind(this))
.catch(Notification.exception);
};
/**
@@ -94,8 +94,9 @@ define(['jquery',
var options = [],
self = this;
M.util.js_pending('tool_lp/grade_user_competency_inline:_setUp');
var promise = ScaleValues.get_values(self._scaleId);
promise.done(function(scalevalues) {
promise.then(function(scalevalues) {
options.push({
value: '',
name: self._chooseStr
@@ -109,8 +110,13 @@ define(['jquery',
});
}
self._dialogue = new GradeDialogue(options);
self._dialogue.on('rated', function(e, data) {
return options;
})
.then(function(options) {
return new GradeDialogue(options);
})
.then(function(dialogue) {
dialogue.on('rated', function(e, data) {
var args = self._args;
args.grade = data.rating;
args.note = data.note;
@@ -123,7 +129,16 @@ define(['jquery',
fail: notification.exception
}]);
});
}).fail(notification.exception);
return dialogue;
})
.then(function(dialogue) {
self._dialogue = dialogue;
M.util.js_complete('tool_lp/grade_user_competency_inline:_setUp');
return;
})
.fail(notification.exception);
};
/** @type {Number} The scale id for this competency. */
@@ -75,7 +75,7 @@ class manage_competency_frameworks_page implements renderable, templatable {
);
$this->navigation[] = $addpage;
$competenciesrepository = new single_button(
new moodle_url('https://moodle.net/competencies'),
new moodle_url('https://archive.moodle.net/competencies'),
get_string('competencyframeworksrepository', 'tool_lp'),
'get'
);
@@ -32,7 +32,7 @@
// No example context because the JS is connected to webservices
}}
<div class="float-sm-right card card-block">
<div class="float-sm-right border p-2 mb-2">
{{#hascompetencies}}
<span>
<label for="competency-nav-{{uniqid}}" class="accesshide">{{#str}}jumptocompetency, tool_lp{{/str}}</label>
@@ -82,7 +82,7 @@
{{/comppath}}
{{#usercompetencycourse}}
{{#grade}}
<span class="badge {{^proficiency}}badge-danger{{/proficiency}}">{{gradename}}</span>
<span class="badge {{#proficiency}}badge-success{{/proficiency}}{{^proficiency}}badge-danger{{/proficiency}}">{{gradename}}</span>
{{/grade}}
{{/usercompetencycourse}}
{{#canmanagecoursecompetencies}}
@@ -49,7 +49,7 @@
Template statistics template.
}}
{{#competencycount}}
<div data-region="coursecompetencystatistics" class="card">
<div data-region="coursecompetencystatistics" class="border p-2 mb-2">
{{#canbegradedincourse}}
{{< tool_lp/progress_bar}}
{{$progresstext}}
@@ -44,7 +44,7 @@
"id": 1
}
}}
<div class="card well-small evidence" data-region="evidence" data-id="{{id}}">
<div class="border p-2 mb-2 evidence" data-region="evidence" data-id="{{id}}">
{{#candelete}}
<div class="float-sm-right">
<a href="#" data-action="delete-evidence">{{#pix}}t/delete{{/pix}}</a>
@@ -50,10 +50,12 @@
<div class="col-lg-6">
<p>
<form data-region="filtercompetencies" data-frameworkid="{{framework.id}}" class="form-inline">
<div class="form-group">
<div class="input-group mb-3">
<label class="accesshide" for="filter{{uniqid}}">{{#str}}search, tool_lp{{/str}}</label>
<input class="form-control" type="text" id="filter{{uniqid}}" placeholder="{{#str}}search, tool_lp{{/str}}" value="{{search}}">
<button class="btn btn-secondary">{{#pix}}a/search, , {{#str}}search{{/str}}{{/pix}}</button>
<div class="input-group-append">
<button class="btn btn-secondary">{{#pix}}a/search, , {{#str}}search{{/str}}{{/pix}}</button>
</div>
</div>
</form>
</p>
@@ -62,8 +64,8 @@
</ul>
</div>
<div class="card col-lg-6">
<div class="card-block card-body">
<div class="col-lg-6">
<div class="border p-2 mb-2">
<div class="card-title">
<h4 data-region="selected-competency">{{#str}}selectedcompetency, tool_lp{{/str}}</h4>
<span data-region="competencyactionsmenu" class="float-sm-right">
@@ -28,8 +28,10 @@
// No example context because the JS is connected to webservices
}}
<div class="float-right card p-2">
<div class="float-right border mb-2 p-2">
<form class="user-competency-course-navigation">
<input type="hidden" name="courseid" value="{{courseid}}"/>
<input type="hidden" name="mod" value="{{moduleid}}"/>
{{#hasmodules}}
<span>
<label for="module-nav-{{uniqid}}" class="accesshide">{{#str}}filterbyactivity, tool_lp{{/str}}</label>
@@ -26,10 +26,8 @@
</h2>
<div>{{{template.description}}}</div>
{{#canmanagetemplatecompetencies}}
<div data-region="actions" class="clearfix">
<div class="float-left">
<button disabled class="btn btn-secondary">{{#str}}addtemplatecompetencies, tool_lp{{/str}}</button>
</div>
<div data-region="actions" class="my-4">
<button disabled class="btn btn-secondary">{{#str}}addtemplatecompetencies, tool_lp{{/str}}</button>
</div>
{{/canmanagetemplatecompetencies}}
<h3 class="mt-1">{{#str}}templatecompetencies, tool_lp{{/str}}</h3>
@@ -41,7 +39,7 @@
<div class="drag-parentnode">
{{#competencies}}
<div class="drag-samenode" data-id="{{competency.id}}">
<div class="card">
<div class="border p-2 mb-2">
{{#canmanagetemplatecompetencies}}
<span class="drag-handlecontainer float-left"></span>
<div class="float-sm-right">
@@ -45,8 +45,7 @@
Template statistics template.
}}
{{#competencycount}}
<div data-region="templatestatistics" class="card">
<div class="card-block">
<div data-region="templatestatistics" class="border p-2 mb-2">
{{< tool_lp/progress_bar}}
{{$progresstext}}
{{#str}}xcompetencieslinkedoutofy, tool_lp, { "x": "{{linkedcompetencycount}}", "y": "{{competencycount}}" } {{/str}}
@@ -90,6 +89,5 @@
</div>
</div>
{{/leastproficientcount}}
</div>
</div>
{{/competencycount}}

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