Compare commits

...

2639 Commits

Author SHA1 Message Date
Sara Arjona 9ce2442ea9 Moodle release 3.8.2 2020-03-06 12:34:11 +01:00
AMOS bot 9044d294a2 Automatically generated installer lang files 2020-03-06 00:10:50 +00:00
Sara Arjona cd9828dadf weekly release 3.8.1+ 2020-03-05 17:31:32 +01:00
Sara Arjona 28f2858004 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-03-05 17:31:28 +01:00
Michael Hawkins 941507e78a MDL-67861 core: Fix getremoteaddr unit test to match new proxy setup 2020-03-05 14:39:34 +08:00
Brendan Heywood 1954482cc5 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:57 +01:00
Brendan Heywood 7d8096eb18 MDL-67861 libraries: Refactor is_ip_in_subnet_list in ip_utils 2020-03-05 01:27:57 +01:00
Brendan Heywood 1cf6629ba2 MDL-67861 admin: Default $CFG->getremoteaddrconf to only use REMOTE_ADDR 2020-03-05 01:27:57 +01:00
Brendan Heywood d403416579 MDL-67861 core: Use last ip in X-Forwarded-For list 2020-03-05 01:27:57 +01:00
Andrew Nicols 9d23ee9003 MDL-65106 theme_classic: Remove unused variable 2020-03-05 08:15:54 +08:00
Andrew Nicols c706dd09a3 Merge branch 'MDL-65106-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2020-03-05 08:15:48 +08:00
Eloy Lafuente (stronk7) 563931d924 Merge branch 'MDL-62768-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-03-04 18:37:17 +01:00
Sara Arjona a552c30018 Merge branch 'MDL-67696-MOODLE_38_STABLE_count_warning' of https://github.com/JayChurchward/moodle into MOODLE_38_STABLE 2020-03-04 17:55:48 +01:00
Sara Arjona 2f7e2ff457 Merge branch 'MDL-67767-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-03-04 15:04:58 +01:00
Dani Palou 714a816050 MDL-67767 tool_mobile: Allow using more characters in forcedurlscheme 2020-03-04 14:22:54 +01:00
Sara Arjona e490f86d57 Merge branch 'MDL-67863-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2020-03-04 14:05:29 +01:00
Sara Arjona eccde3bc19 Merge branch 'MDL-67969-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-03-04 12:58:17 +01:00
Marina Glancy 4c16eba0b5 MDL-56287 gradereport_history: Separate groups queries improved 2020-03-04 11:47:19 +01:00
Jun Pataleta ec7ce8f204 MDL-56287 gradereport_history: Show users from groups that can be viewed 2020-03-04 11:47:19 +01:00
Eloy Lafuente (stronk7) 47f96d5e9f Merge branch 'MDL-67641-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-03-04 10:47:55 +01:00
Sara Arjona be47691d79 Merge branch 'MDL-68008-38' of git://github.com/ferranrecio/moodle into MOODLE_38_STABLE 2020-03-04 08:41:30 +01:00
Dani Palou 235f139992 MDL-67641 auth: Fix shortname type in get_signup_settings WS 2020-03-04 08:12:04 +01:00
AMOS bot e10cf2368a Automatically generated installer lang files 2020-03-04 00:11:12 +00:00
Eloy Lafuente (stronk7) 7bda43ee60 Merge branch 'MDL-67728-38' of git://github.com/crazyserver/moodle into MOODLE_38_STABLE 2020-03-03 19:50:17 +01:00
Eloy Lafuente (stronk7) 28298a6fe9 Merge branch 'MDL-68038-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2020-03-03 19:45:15 +01:00
Eloy Lafuente (stronk7) ddaee0c87d Merge branch 'MDL-67971-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2020-03-03 19:02:30 +01:00
Sara Arjona 9515f40ced Merge branch 'MDL-67993-38' of git://github.com/lameze/moodle into MOODLE_38_STABLE 2020-03-03 18:06:37 +01:00
Ferran Recio 7949aaceae MDL-68008 tool_capability: shows multiple contexts when overrides exists 2020-03-03 17:51:27 +01:00
Sara Arjona 305807d27b Merge branch 'MDL-68048-38-behatnotfound' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-03-03 17:01:44 +01:00
Sara Arjona 845c943d7f Merge branch 'MDL-68060-38-huburlcompare' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-03-03 13:10:13 +01:00
Sara Arjona 007ab3cf17 Merge branch 'MDL-67891-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-03-03 12:48:24 +01:00
Bas Brands 8540968781 MDL-65106 theme_classic: set custom navigationitem icon 2020-03-03 11:53:41 +01:00
Sara Arjona 8bf66cf2d3 Merge branch 'MDL-63316-38' of https://github.com/azito122/moodle into MOODLE_38_STABLE 2020-03-03 11:10:46 +01:00
Sara Arjona e0ba5fb608 Merge branch 'MDL-67945-38' of git://github.com/ferranrecio/moodle into MOODLE_38_STABLE 2020-03-03 10:10:45 +01:00
Sara Arjona 3687eb52a0 Merge branch 'MDL-67749-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-03-03 09:30:21 +01:00
Adrian Hutchinson 80f4ad43b8 MDL-67988 mod_lti: remove padding from JWS base64url encoding 2020-03-02 14:01:05 +01:00
Paul Holden 9da23023af 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:35 +00:00
Sara Arjona caf37336d2 MDL-67971 core_badges: review issuer URL 2020-03-02 08:02:31 +01:00
Sara Arjona b3eb933a40 MDL-68038 core_h5p: rename can_update_library test 2020-03-02 08:00:54 +01:00
Andrew Zito b7fe18eb8b MDL-63316 participants: lastname sort for participants table 2020-02-28 14:34:01 -05:00
Eloy Lafuente (stronk7) b4a13e9a65 weekly release 3.8.1+ 2020-02-28 12:22:42 +01:00
Bas Brands 324d931ed0 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:11:45 +01:00
Eloy Lafuente (stronk7) c2a1fb945e Merge branch 'MDL-67865-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-02-26 23:37:00 +01:00
Eloy Lafuente (stronk7) 9adfd8ccd5 Merge branch 'MDL-64686-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-02-26 23:27:29 +01:00
Eloy Lafuente (stronk7) 779f58b227 Merge branch 'MDL-67758-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-02-26 17:35:55 +01:00
Eloy Lafuente (stronk7) a4a667ab06 Merge branch 'MDL-67132-MOODLE_38' of https://github.com/cengage/moodle into MOODLE_38_STABLE
(amended to move the upgrade.txt info to correct 3.8.2)
2020-02-26 17:18:15 +01:00
Eloy Lafuente (stronk7) fc7e263912 Merge branch 'MDL-67979-38-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-02-26 17:13:37 +01:00
Anthony Forth c47d17b93b MDL-67945 enrol: missing $DB in edit_instance_form 2020-02-26 16:34:38 +01:00
David Mudrák 5aea4d98cb 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:56:05 +01:00
Jun Pataleta b6970abb18 Merge branch 'MDL-67921-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2020-02-26 16:51:12 +08:00
Jun Pataleta d2b37ff747 Merge branch 'MOODLE_38_MDL-67980' of https://github.com/golenkovm/moodle into MOODLE_38_STABLE 2020-02-26 14:30:40 +08:00
David Balch 75d4b0f949 MDL-67993 roles: Fix pix_icon() calls. 2020-02-26 12:15:31 +08:00
Claude Vervoort d2c96c5be9 MDL-67132 mod_lti: document new param 2020-02-25 21:24:36 -05:00
Eloy Lafuente (stronk7) 80509c0cdd Merge branch 'MDL-67644-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-02-26 00:10:13 +01:00
Eloy Lafuente (stronk7) 2de3eefda5 Merge branch 'MDL-67806-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-02-25 23:57:55 +01:00
Eloy Lafuente (stronk7) 5d83769d27 Merge branch 'MDL-67237-38' of git://github.com/dpalou/moodle into MOODLE_38_STABLE 2020-02-25 23:53:28 +01:00
Eloy Lafuente (stronk7) 341a509763 Merge branch 'MDL-67920-38' of git://github.com/aanabit/moodle into MOODLE_38_STABLE 2020-02-25 23:33:39 +01:00
Paul Holden 0111c671e4 MDL-62768 tool_policy: add page title & breadcrumb navigation. 2020-02-25 22:05:56 +00:00
Paul Holden a8df356e33 MDL-62768 tool_dataprivacy: add page breadcrumbs to navigation. 2020-02-25 21:37:56 +00:00
Helen Foster 69935b2021 MDL-67979 lang: Import fixed English strings (en_fix)
* configcustommenuitems,core_admin - corrected example
* custommenuitems_desc,tool_mobile - fallback behaviour of custom menu
  items in the app
2020-02-25 12:23:36 +01:00
Eloy Lafuente (stronk7) b424d7956e Merge branch 'MDL-67862-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-02-25 12:09:48 +01:00
Eloy Lafuente (stronk7) 34a98290d2 Merge branch 'MDL-67364-38' of git://github.com/mickhawkins/moodle into MOODLE_38_STABLE 2020-02-25 12:05:48 +01:00
David Mudrák 706e99c6d4 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:57 +01:00
Mikhail Golenkov 3d20910e88 MDL-67980 tasks: Sort ad-hoc tasks by nextruntime. 2020-02-24 09:32:37 +11:00
Pau Ferrer Ocaña 7d623c4a45 MDL-67728 behat: Increase app start timeout 2020-02-21 12:46:04 +01:00
Pau Ferrer Ocaña 1c447dcc44 MDL-67728 behat: Improve behat app selectors 2020-02-21 12:46:04 +01:00
Sara Arjona ae778f4193 MDL-67921 core_h5p: re-implement framework->getOption
The implementation done for getOption was not correct because it
was only taking into account the displayoptions for download and
embed.
Besides, setOption implementation has been added.
2020-02-21 09:29:29 +01:00
Amaia Anabitarte c1fbab8a81 MDL-67920 core_h5p: Move upload button into form and fix title
Minor bugs in Site administration > H5P > Manage H5P content types admin page'
2020-02-21 09:00:16 +01:00
Luca Bösch 26143b5d62 MDL-64686 theme: align course search form for small screens sizes. 2020-02-21 06:36:40 +01:00
Jun Pataleta 7b37466710 weekly release 3.8.1+ 2020-02-21 11:04:05 +08:00
Jun Pataleta 09f6b75f70 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-02-21 11:03:25 +08:00
Eloy Lafuente (stronk7) cd0e753519 Merge branch 'MDL-67727-38' of git://github.com/crazyserver/moodle into MOODLE_38_STABLE 2020-02-20 16:12:48 +01:00
Eloy Lafuente (stronk7) 4d951d4bac Merge branch 'MDL-67899-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-02-20 00:41:29 +01:00
Luke Tucker 421537407d MDL-50455: tool_capability: Use static cache when loading context data 2020-02-20 00:29:32 +01:00
Eloy Lafuente (stronk7) 61f6f15177 Merge branch 'MDL-67942-38' of https://github.com/HuongNV13/moodle into MOODLE_38_STABLE 2020-02-19 19:18:44 +01:00
Eloy Lafuente (stronk7) 11a4df56f8 Merge branch 'MDL-67947_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE 2020-02-19 17:48:26 +01:00
Tim Hunt 7bde84a705 MDL-67947 questions: questions_in_use should ask all components
Previously it was only checking mods.
2020-02-19 11:58:12 +00:00
Dani Palou 4d4b22da05 MDL-67749 ws: Set private token when reset or manual create token 2020-02-19 12:04:57 +01:00
Shamim Rezaie 85a43994ca MDL-67969 lib: Fix duplicate blockinstanceid for fake blocks 2020-02-19 21:25:47 +11:00
Huong Nguyen fcf3d8b748 MDL-67942 Quiz: Quiz attempt report delete_selected_attempts issue 2020-02-19 15:35:55 +07:00
Eloy Lafuente (stronk7) 663cdc54fe Merge branch 'MDL-67471_38' of https://github.com/t-schroeder/moodle into MOODLE_38_STABLE 2020-02-18 23:54:44 +01:00
Eloy Lafuente (stronk7) 4eeb89d0a7 Merge branch 'MDL-61390-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-02-18 19:06:51 +01:00
Eloy Lafuente (stronk7) b6aae0fc5b Merge branch 'MDL-67953-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-02-18 17:18:58 +01:00
Shamim Rezaie 68a3863961 MDL-67865 output: Fix id of the dropdown trigger 2020-02-18 16:19:17 +11:00
Eloy Lafuente (stronk7) 7e17a2a4fc Merge branch 'MDL-61389-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-02-17 23:30:08 +01:00
Eloy Lafuente (stronk7) bb6281a5c9 Merge branch 'MDL-67817-m38-master' of https://github.com/dthies/moodle into MOODLE_38_STABLE 2020-02-17 22:09:05 +01:00
Tim Schroeder 4745203bc0 MDL-67471 message: fixed mark_notification_read with messaging disabled 2020-02-17 09:16:13 +01:00
Jun Pataleta f1dd21a3c7 MDL-61390 mod_forum: Create template for forum search results 2020-02-17 15:58:04 +08:00
Jun Pataleta 4d90df63d2 MDL-61389 mod_forum: Descriptive aria-label for "Discuss this topic" 2020-02-17 15:52:06 +08:00
AMOS bot 37397ed119 Automatically generated installer lang files 2020-02-16 00:11:11 +00:00
Daniel Thies b9792633c9 MDL-67817 core_date: Add test for timezone localization strings 2020-02-14 11:56:33 -06:00
Daniel Thies f5677dadeb MDL-67817 core_lang: Update timezone strings 2020-02-14 11:56:33 -06:00
Sara Arjona 199ff6cc6b weekly release 3.8.1+ 2020-02-14 12:12:12 +01:00
Sara Arjona 462002f1ec Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-02-14 12:12:10 +01:00
Jun Pataleta 7fdcd5cb4d Merge branch 'MDL-67965-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-02-14 13:25:10 +08:00
Andrew Nicols ca63a87509 MDL-67965 behat: Get theme-specific context classes correctly 2020-02-14 10:15:49 +08:00
Claude Vervoort 1fde9dea67 MDL-67132 mod_lti: call grade api to trigger course total computation 2020-02-13 18:45:05 -05:00
Michael Hawkins 2359ec14f7 MDL-67364 output: Add unit testing for editor_scss_to_css 2020-02-13 22:53:19 +08:00
Michael Hawkins 999bb6578b 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:19 +08:00
Pau Ferrer Ocaña 71f62ad8ce MDL-67727 behat: Reset ionic app properly 2020-02-13 08:37:28 +01:00
Andrew Nicols 8ccb773f9b MDL-67953 grunt: Work around spawn length limits 2020-02-13 13:34:03 +08:00
Eloy Lafuente (stronk7) 84a6421857 Merge branch 'MDL-67876_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE 2020-02-12 15:51:17 +01:00
Dani Palou c3fc5fca65 MDL-67644 tool_mobile: Add OAuth 2 providers in disabled features 2020-02-12 14:13:17 +01:00
Tim Hunt bb9176eee4 MDL-67876 forms: not all field types need validation JS 2020-02-12 10:02:27 +00:00
Tim Hunt 5048dbbf06 MDL-67876 forms: scroll to any invalid element if form cannot submit 2020-02-12 10:01:24 +00:00
Shamim Rezaie a2d619941f MDL-67899 message: Add aria-label to the emoji picker button 2020-02-12 15:40:45 +11:00
Eloy Lafuente (stronk7) 5df69d28ad Merge branch 'MDL-67532-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-02-11 23:08:07 +01:00
Eloy Lafuente (stronk7) 95ecaf2d1e Merge branch 'MDL-67675-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-02-11 22:56:17 +01:00
Eloy Lafuente (stronk7) 13caf292eb Merge branch 'MDL-67690-38' of git://github.com/merrill-oakland/moodle into MOODLE_38_STABLE 2020-02-11 22:45:27 +01:00
Sara Arjona 1fae040842 Merge branch 'MDL-59303-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-02-11 13:52:29 +01:00
Sara Arjona 659795e8e8 Merge branch 'MDL-66847-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-02-11 12:28:46 +01:00
Sara Arjona 5e3aad0090 Merge branch 'MDL-66834-MOODLE_38_STABLE' of https://github.com/kepeter/moodle into MOODLE_38_STABLE 2020-02-11 11:54:22 +01:00
Sara Arjona 934e913a97 Merge branch 'mdl67142-moodle38' of https://github.com/AngadSethi/moodle into MOODLE_38_STABLE 2020-02-11 10:18:59 +01:00
Sara Arjona a10e70cf56 Merge branch 'MDL-67894-38' of https://github.com/grabs/moodle into MOODLE_38_STABLE 2020-02-11 08:20:38 +01:00
Dani Palou c618f24c70 MDL-67758 airnotifier: Send wwwroot to airnotifier 2020-02-10 11:55:51 +01:00
Jun Pataleta 90a3ce934e MDL-67862 message: Render dialogue header only when necessary 2020-02-10 13:12:35 +08:00
Angad Sethi 9dd517653c 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:46:59 +05:30
AMOS bot 68b1fa37d5 Automatically generated installer lang files 2020-02-08 00:11:54 +00:00
Andreas Grabs df55da0a4b MDL-67894 mod_feedback: database error on show responses 2020-02-07 18:47:37 +01:00
Paul Holden f179253ab7 MDL-59303 auth_shibboleth: consistent readme URL. 2020-02-07 14:26:06 +00:00
Luca Bösch 82fa8144a5 MDL-66847 webservice: Correct breadcrumb + title for ws documentation. 2020-02-07 14:40:10 +01:00
Paul Holden 103c623b83 MDL-67532 badges: better default for new badge language. 2020-02-07 09:47:03 +00:00
Sara Arjona 9691980198 weekly release 3.8.1+ 2020-02-07 09:44:56 +01:00
Sara Arjona 3ae5f9ce0c Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-02-07 09:44:54 +01:00
Brendan Heywood 8973440f1f MDL-67726 tool_phpunit: add missing input escaping 2020-02-06 19:43:32 +01:00
Dani Palou 71b91e606b MDL-67237 tool_mobile: Add H5P offline option in disabled features 2020-02-06 11:34:10 +01:00
Andrew Nicols b079a267b4 Merge branch 'MDL-67175-38' of git://github.com/ferranrecio/moodle into MOODLE_38_STABLE 2020-02-06 10:20:54 +08:00
Eloy Lafuente (stronk7) 5016b08fcc Merge branch 'MDL-67832_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE
(fixed a couple of typos in the merge commit)
2020-02-06 00:02:25 +01:00
Eloy Lafuente (stronk7) c58d4d4591 Merge branch 'MDL-67732-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-02-05 20:05:41 +01:00
Eloy Lafuente (stronk7) ff3b9e1afa Merge branch 'MDL-67830_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE 2020-02-05 19:08:05 +01:00
Andrew Nicols 0d3c0e4377 Merge branch 'MDL-49103-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2020-02-05 13:51:15 +08:00
Eloy Lafuente (stronk7) 7005e1c999 Merge branch 'MDL-67842_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE 2020-02-04 22:46:24 +01:00
Eloy Lafuente (stronk7) bed550541b Merge branch 'MDL-63424-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-02-04 19:28:44 +01:00
Eloy Lafuente (stronk7) ca9ff05eba Merge branch 'MDL-66875-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-02-04 19:02:33 +01:00
Sara Arjona 2ff1e5d1fa 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:50:01 +01:00
Ferran Recio 5bd9eaaef0 MDL-67175 mod_scorm: fixing js eslint errors 2020-02-04 12:37:31 +01:00
Sam Hemelryk ede71aea73 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 ab1939e5e6 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 045d69a61d Merge branch 'MDL-60126-38-3' of git://github.com/mihailges/moodle into MOODLE_38_STABLE 2020-02-04 14:40:20 +08:00
Peter c6e2821be1 MDL-60126 competency: Unit tests 2020-02-04 08:51:50 +08:00
Simey Lameze 75c21efdea MDL-60126 core: upgrade step to clean user comp 2020-02-04 08:51:45 +08:00
Simey Lameze c852a0d308 MDL-60126 competency: delete content upon user delete 2020-02-04 08:40:25 +08:00
AMOS bot f722f3ef15 Automatically generated installer lang files 2020-02-04 00:11:15 +00:00
Sara Arjona e47f0220a6 Merge branch 'MDL-67721-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-02-03 14:52:30 +01:00
Sara Arjona 94e2bc3cac Merge branch 'MDL-67511-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-02-03 14:10:30 +01:00
Peter Eliyahu Kornfeld 90ae31ecb1 MDL-66834 Questions: add transaction, move trigger 2020-02-03 12:28:19 +02:00
Andrew Nicols feb32ff597 MDL-67511 core: Adjust spacing at top of toast-wrapper 2020-02-03 07:38:06 +08:00
Tim Hunt e5c2879063 MDL-67832 quiz: fix lots of PHPdoc in attemptlib.php 2020-01-31 19:09:28 +00:00
Paul Holden c3496f8599 MDL-67732 group: observe viewfullnames capability.
Backport from MDL-67245.
2020-01-31 16:48:08 +00:00
JayChurchward 7476acd514 MDL-67696 mod_forum: Changed invalid count() to loop counter. 2020-01-30 15:01:24 -05:00
Tim Hunt 8ad3593d0c MDL-67842 questions: Cannot remove the idnumber from a question 2020-01-30 17:29:23 +00:00
Eloy Lafuente (stronk7) 7f697f7a44 weekly release 3.8.1+ 2020-01-30 16:11:27 +01:00
Eloy Lafuente (stronk7) efcc2a7ac5 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-01-30 16:11:24 +01:00
Jun Pataleta d2ba630385 Merge branch 'MDL-67353-38' of https://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-30 12:41:22 +08:00
Eloy Lafuente (stronk7) b2dfaa5d3a 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 12:41:04 +08:00
Eloy Lafuente (stronk7) ccb5136b94 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-30 12:41:04 +08:00
Eloy Lafuente (stronk7) 89a4d27f34 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-30 12:41:04 +08:00
Andrew Nicols b2e08b7caa MDL-67353 course: Fix more broken unit tests 2020-01-30 12:41:04 +08:00
Andrew Nicols a946a9aac6 MDL-67353 course: Fix broken unit test 2020-01-30 12:41:04 +08:00
Michelle Melton ad5a2c9b07 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:35:49 +01:00
Tim Hunt 54908ae907 MDL-67830 quiz: notice in grade details redirect script 2020-01-29 18:35:28 +00:00
Jun Pataleta 36d2a83aa6 Merge branch 'MDL-67626_38' of git://github.com/adpe/moodle into MOODLE_38_STABLE 2020-01-29 21:37:08 +08:00
Adrian Greeve e02fbba097 Merge branch 'MDL-67768-38-componentdirs' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-01-29 10:02:58 +08:00
Eloy Lafuente (stronk7) d18b6693ad Merge branch 'MDL-67472-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2020-01-28 22:57:37 +01:00
Eloy Lafuente (stronk7) 9b1e5ee508 Merge branch 'MDL-52189_38' of https://github.com/jonof/moodle into MOODLE_38_STABLE 2020-01-28 22:45:14 +01:00
Eloy Lafuente (stronk7) c11ad45a99 Merge branch 'MDL-67447-38-autocomplete' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-01-28 22:24:31 +01:00
Eloy Lafuente (stronk7) c1ad1072da Merge branch 'MDL-67722-38' of git://github.com/mickhawkins/moodle into MOODLE_38_STABLE 2020-01-28 20:13:37 +01:00
David Mudrák 572c8c74cc 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-28 19:52:29 +01:00
Shamim Rezaie 4a87ffb336 MDL-67675 atto_h5p: No need to manually clear the H5P placeholder 2020-01-28 22:30:37 +11:00
Eloy Lafuente (stronk7) 0419687a7f Merge branch 'MDL-57755_38' of https://github.com/t-schroeder/moodle into MOODLE_38_STABLE 2020-01-28 10:34:56 +01:00
David Mudrák d8cc1761f1 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:33:37 +01:00
Adrian Greeve 1ff0018969 Merge branch 'MDL-67740-38-behatstepsfilter' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-01-28 15:07:56 +08:00
Adrian Greeve 557a351daf Merge branch 'MOODLE_38_MDL-67746' of https://github.com/golenkovm/moodle into MOODLE_38_STABLE 2020-01-28 13:13:45 +08:00
AMOS bot 916130a390 Automatically generated installer lang files 2020-01-28 00:11:42 +00:00
Adrian Greeve c3c3d12462 Merge branch 'MDL-67691_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-28 07:53:31 +08:00
Shamim Rezaie c385803441 MDL-67721 mod_forum: See 'view grade' button on single discussion forums 2020-01-28 05:03:12 +11:00
Eloy Lafuente (stronk7) 912ba0f5d0 Merge branch 'MDL-64531-38-questiondeletejson' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-01-27 17:08:07 +01:00
Eloy Lafuente (stronk7) b25bd34adf Merge branch 'MDL-67577-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2020-01-27 16:19:49 +01:00
Eloy Lafuente (stronk7) 7163df9a93 Merge branch 'm38_MDL-67414_Add_PostgreSQL_12x_Support' of https://github.com/scara/moodle into MOODLE_38_STABLE 2020-01-27 12:16:17 +01:00
Bas Brands 1719110c23 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:18 +01:00
Dani Palou bb0a08a7b4 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-01-27 11:33:04 +01:00
Tim Schroeder c2f2919cf8 MDL-57755 message: fix notificaiton read status when messaging disabled 2020-01-27 09:18:28 +01:00
Matteo Scaramuccia ec2ea6c725 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:40:22 +01:00
Matteo Scaramuccia 05a89b9b45 MDL-67414 database: Fixed PostgreSQL 12.x support 2020-01-26 09:40:21 +01:00
AMOS bot 5b90fa9f73 Automatically generated installer lang files 2020-01-25 00:11:41 +00:00
Luca Bösch a2841e3af6 MDL-66875 calendar: allow the use of day, mon and year again. 2020-01-25 01:01:54 +01:00
Luca Bösch de9c260296 MDL-63424 form: allow checkboxes to have req icon. 2020-01-24 17:38:20 +01:00
David Mudrák 2648ab76be 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:37 +01:00
David Mudrák aa9f7001da 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:37 +01:00
David Mudrák 5013ed92a2 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:37 +01:00
David Mudrák c538c5a1a3 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:37 +01:00
Mikhail Golenkov 2cb5e23006 MDL-67746 Tasks: Cleanup task logs in chunks. 2020-01-24 14:03:48 +11:00
Adrian Greeve 85a035b1c5 weekly release 3.8.1+ 2020-01-24 10:17:40 +08:00
Adrian Greeve 1f3bc3164e Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-01-24 10:17:30 +08:00
Eric Merrill 7bfcb01b81 MDL-67690 block_myoverview: Clean usage of starred vs favourites
The block accidentally mixes usage of starred vs favourites, but core
requires favourites. This fixes the issue of user settings remembering
the correct value without a more major work.
2020-01-23 15:22:02 -05:00
Eloy Lafuente (stronk7) 2abbcb4761 Merge branch 'MDL-51225-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-23 11:14:12 +01:00
Jun Pataleta 9afa3fc326 MDL-51225 mod_forum: Revert @javascript tag removal
Put back the removed  @javascript tag to prevent random goutte
fails.
2020-01-23 15:30:36 +08:00
Jun Pataleta b4466151b0 Merge branch 'MDL-67118_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-23 12:55:28 +08:00
Jun Pataleta e4ae433b3b Merge branch 'MDL-67115_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-23 11:40:57 +08:00
Jun Pataleta 7c7932aaa5 Merge branch 'MDL-65952_m38' of https://github.com/fabiendallet/moodle into MOODLE_38_STABLE 2020-01-23 10:43:41 +08:00
Eloy Lafuente (stronk7) 5977f2fc3d Merge branch 'MDL-67296-38' of git://github.com/vmdef/moodle into MOODLE_38_STABLE 2020-01-22 23:46:18 +01:00
Víctor Déniz Falcón f7355ebc2c MDL-67296 core_h5p: tests modified to use exttests 2020-01-22 20:41:23 +00:00
Víctor Déniz Falcón b80d4a6b26 MDL-67296 core_h5p: minor changes
core.php-Avoid to use the factory for each content type
h5p_get_content_types_task-new method to simplify test execution
framework.php-returns error if you get a 404 response after requesting a file
2020-01-22 18:56:38 +00:00
Jun Pataleta c4e6d74577 Merge branch 'MDL-66897-38-1' of git://github.com/mihailges/moodle into MOODLE_38_STABLE 2020-01-22 23:17:05 +08:00
Mihail Geshoski ac32e20ada MDL-66897 mod_assign: Properly display error messages in quick grading 2020-01-22 14:02:59 +08:00
Adrian Greeve 37821e0918 Merge branch 'MDL-67424-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-01-22 13:57:53 +08:00
Adrian Greeve b1e2c36330 Merge branch 'MDL-67653_38' of https://github.com/timhunt/moodle into MOODLE_38_STABLE 2020-01-22 11:04:09 +08:00
Adrian Greeve 4ea5ab220a Merge branch 'MDL-67660-38-v2' of https://github.com/TobiGa/moodle into MOODLE_38_STABLE 2020-01-22 10:42:24 +08:00
Jun Pataleta f2955fae89 Merge branch 'MDL-67684-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-22 10:38:02 +08:00
Adrian Greeve 0206502461 Merge branch 'MDL-67680-38' of git://github.com/marinaglancy/moodle into MOODLE_38_STABLE 2020-01-22 10:30:05 +08:00
Colin Campbell b4779307a2 MDL-52189 file: skip deleting temp files that appear during cleanup 2020-01-22 12:09:50 +10:00
Adrian Greeve 4ff40b48e7 Merge branch 'MDL-67656-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-22 09:45:58 +08:00
Eloy Lafuente (stronk7) 830ef192ad Merge branch 'MDL-66858_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-22 01:57:28 +01:00
Michael Milette 8b466d2803 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:06:14 +01:00
Eloy Lafuente (stronk7) bd290493b1 Merge branch 'MDL-51225-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-21 23:40:16 +01:00
Adrian Greeve 6e6b973f0a Merge branch 'MDL-66237-38' of git://github.com/mickhawkins/moodle into MOODLE_38_STABLE 2020-01-21 11:20:32 +08:00
Jun Pataleta 43b39b0ce9 Merge branch 'MDL-66108-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-01-21 09:50:56 +08:00
Eloy Lafuente (stronk7) 7523e0c352 Merge branch 'MDL-66024-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-01-20 22:48:27 +01:00
Eloy Lafuente (stronk7) 77234ad1ef Merge branch 'MDL-66220-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-20 22:34:17 +01:00
Eloy Lafuente (stronk7) 132809e8ff Merge branch 'MDL-66712-38-selfautounenrol' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2020-01-20 22:29:00 +01:00
Paul Holden e53dadd3a1 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).
2020-01-20 20:55:34 +01:00
David Mudrák 7b6f691f3d 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:20:27 +01:00
Tim Hunt 596cbeb955 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:17 +01:00
Eloy Lafuente (stronk7) 4a617ad4c6 Merge branch 'MDL-67724-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-20 10:53:28 +01:00
Sara Arjona 9ef53aba3a Merge branch 'MDL-67312-38' of git://github.com/lameze/moodle into MOODLE_38_STABLE 2020-01-20 08:03:52 +01:00
Adrian Greeve 288d4fc575 Merge branch 'MDL-66761-38' of git://github.com/mickhawkins/moodle into MOODLE_38_STABLE 2020-01-20 14:47:30 +08:00
Adrian Greeve 68fd5cfaf4 Merge branch 'MDL-67583-38' of https://github.com/KietChan/moodle into MOODLE_38_STABLE 2020-01-20 13:38:14 +08:00
Simey Lameze df6160f8a1 MDL-67312 core_user: clean subs events on user deletion 2020-01-20 08:50:55 +08:00
Simey Lameze 7434f3abf3 MDL-67312 calendar: upgrade step to delete orphaned events 2020-01-20 08:50:51 +08:00
Simey Lameze abaf1375c1 MDL-67312 core: change db upgrade step to use get_fieldset_sql 2020-01-20 08:47:34 +08:00
Eloy Lafuente (stronk7) 646e72349d 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:11:57 +01:00
Eloy Lafuente (stronk7) 7781e1e2bf MDL-67115 google: php74 params order for implode()
Passing parameters to implode() in reverse order is deprecated, use
implode($glue, $parts) instead of implode($parts, $glue).

This commit corresponds to general search of wrong cases.
2020-01-19 18:49:24 +01:00
Eloy Lafuente (stronk7) 41f06cfc92 MDL-67115 htmlpurifier: php74 params order for implode()
Passing parameters to implode() in reverse order is deprecated, use
implode($glue, $parts) instead of implode($parts, $glue).

This commit corresponds to general search of wrong cases.
2020-01-19 18:49:24 +01:00
Eloy Lafuente (stronk7) 903428a532 MDL-67115 minify: php74 params order for implode()/join()
Passing parameters to implode() in reverse order is deprecated, use
implode($glue, $parts) instead of implode($parts, $glue).

This commit corresponds to phpunit detections, minify library.
2020-01-19 18:49:23 +01:00
Eloy Lafuente (stronk7) 20c78476a3 MDL-67115 core: php74 params order for implode()/join()
Passing parameters to implode() in reverse order is deprecated, use
implode($glue, $parts) instead of implode($parts, $glue).

This commit corresponds to phpunit and manual detections, core files.
2020-01-19 18:49:23 +01:00
Adrian Perez 63b7cd9927 MDL-67626 assign: fix view full/view summary control in IE 2020-01-18 14:16:07 +01:00
AMOS bot dc89ea0e88 Automatically generated installer lang files 2020-01-18 00:10:49 +00:00
fdallet 52136af780 MDL-65952 mod_scorm: Fix unwanted changes to require status 2020-01-17 17:29:36 +01:00
Paul Holden 7b0a8e09c0 MDL-66108 course: fix false positives when bulk moving categories. 2020-01-17 16:19:17 +00:00
Jun Pataleta 13a34d0aa7 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:50:11 +08:00
Tobias Garske a6a79e25f4 MDL-67660 core_message: Messages search change input focus 2020-01-17 09:40:18 +01:00
Michael Hawkins 511dc1cd96 MDL-67722 mod_forum: Reduce wait time on time limit expires behat test 2020-01-17 15:46:45 +08:00
Jun Pataleta df7cacee50 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:45:50 +08:00
Jun Pataleta 994ec1690d MDL-51225 mod_forum: Create behat tests for forum recent activity 2020-01-17 14:45:50 +08:00
Jun Pataleta b92880fd4a MDL-51225 mod_forum: New behat step for creating question discussion 2020-01-17 14:45:50 +08:00
Michael Hawkins 27557f1a55 MDL-66761 forumreport_summary: Added groups filter behat testing 2020-01-17 10:35:37 +08:00
Michael Hawkins 58c1af595e MDL-66761 mod_forum: Behat support group ID in bulk discussion adding 2020-01-17 10:35:37 +08:00
AMOS bot 4c495c2aa3 Automatically generated installer lang files 2020-01-17 00:12:19 +00:00
Eloy Lafuente (stronk7) 86362a7fb2 MDL-67118 enrol_ldap: add pagesize/subcontexts provider
With that provider we'll be explicitly checking that any
pagesize and subcontexts search is returning results consistently
so the internal paging/servercontrols work as expected.
2020-01-16 19:16:21 +01:00
Eloy Lafuente (stronk7) f8b9cc01c3 MDL-67118 enrol_ldap: paged results functions deprecated php74 and up
Starting with php74 the following functions are deprecated:
- ldap_control_paged_result()
- ldap_control_paged_result_response()

Starting with php73, ldap servercontrols were included. One of those
servercontrols, LDAP_CONTROL_PAGEDRESULTS, is the one in charge of
controlling paged results.

So, we are going to add some conditional code here:

1) if php < 7.3, use old paged result functions.
2) if php >= 7.3, switch to LDAP_CONTROL_PAGEDRESULTS servercontrol.

With a TODO about removing 1) in Moodle 4.1, once php73 becomes required.
2020-01-16 19:16:21 +01:00
Eloy Lafuente (stronk7) 19e3cdbad9 MDL-67118 auth_ldap: add pagesize/subcontexts test provider
With that provider we'll be explicitly covering that any
pagesize and subcontexts search is returning results consistently
so the internal paging/servercontrols work as expected.
2020-01-16 19:16:21 +01:00
Eloy Lafuente (stronk7) bcf7349371 MDL-67118 auth_ldap: paged results functions deprecated php74 and up
Starting with php74 the following functions are deprecated:
- ldap_control_paged_result()
- ldap_control_paged_result_response()

Starting with php73, ldap servercontrols were included. One of those
servercontrols, LDAP_CONTROL_PAGEDRESULTS, is the one in charge of
controlling paged results.

So, we are going to add some conditional code here:

1) if php < 7.3, use old paged result functions.
2) if php >= 7.3, switch to LDAP_CONTROL_PAGEDRESULTS servercontrol.

With a TODO about removing 1) in Moodle 4.1, once php73 becomes required.
2020-01-16 19:16:21 +01:00
Sara Arjona 36984d4d1d weekly release 3.8.1+ 2020-01-16 17:19:21 +01:00
Sara Arjona bcb56b9071 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-01-16 17:19:19 +01:00
David Mudrák 82505a878b 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:22 +01:00
Jun Pataleta 8e45839933 MDL-66220 mod_forum: Prevent from replying to a post the user can't see 2020-01-16 15:06:11 +08:00
Jun Pataleta e1eea0cf36 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:11 +08:00
Jun Pataleta cf32c9116b MDL-66220 mod_forum: Additional unit test for can_reply_to_post 2020-01-16 15:06:11 +08:00
Andrew Nicols cdf31c3d57 Merge branch 'wip-MDL-66918-38stable' of https://github.com/Beedell/moodle into MOODLE_38_STABLE 2020-01-16 11:43:18 +08:00
Eloy Lafuente (stronk7) 0c01f98410 Merge branch 'MDL-67625-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-01-16 00:26:57 +01:00
Sara Arjona e7721e50c6 Merge branch 'MDL-67379-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-01-15 22:12:41 +01:00
Eloy Lafuente (stronk7) 8f112b1064 Merge branch 'MDL-67622_38' of git://github.com/dmonllao/moodle into MOODLE_38_STABLE 2020-01-15 18:55:55 +01:00
Shamim Rezaie 65fcabe132 MDL-67424 mod_forum: error on complete report when no rating or grade 2020-01-16 03:17:52 +11:00
Shamim Rezaie 2c76c1893f MDL-67424 report_outline: behat user report with a no-grade forum 2020-01-16 03:17:52 +11:00
Shamim Rezaie e27ac65f3d MDL-67379 libraries: Upgrade scssphp to 1.0.6 2020-01-16 00:26:47 +11:00
Sara Arjona 3d8f92e4be Merge branch 'MDL-67617-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2020-01-15 12:43:10 +01:00
Sara Arjona 35fd550dc9 Merge branch 'MDL-67638-38' of https://github.com/nguyenphuctien/moodle into MOODLE_38_STABLE 2020-01-15 12:19:44 +01:00
Andrew Nicols 712b21c6e7 Merge branch 'MDL-67486-swap-cron-lock-MOODLE_38_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_38_STABLE 2020-01-15 13:53:56 +08:00
Mark Johnson b5410980aa MDL-67674 Cache: Lock rebuilding of the course category tree cache 2020-01-15 00:02:06 +01:00
Sara Arjona b2c6ab2d0a Merge branch 'MDL-65573-38-2' of git://github.com/peterRd/moodle into MOODLE_38_STABLE 2020-01-14 12:20:09 +01:00
Andrew Nicols 4fb25b5b6c Merge branch 'MDL-66721-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2020-01-14 14:09:42 +08:00
Andrew Nicols 3467ce09c8 MDL-67684 core: Add missing li tag 2020-01-14 08:47:08 +08:00
Andrew Nicols 83d4daee8d Merge branch 'MDL-35971-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-14 08:32:14 +08:00
AMOS bot e653281d4a Automatically generated installer lang files 2020-01-14 00:10:24 +00:00
Peter 03b372b804 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:37:41 +08:00
Eloy Lafuente (stronk7) c1724722c8 Merge branch 'MDL-65649-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-01-13 18:56:52 +01:00
Eloy Lafuente (stronk7) d1b3b4af95 Merge branch 'MDL-65987-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-13 18:37:30 +01:00
Marina Glancy f9a80888bc MDL-67680 core: Catch PHP exceptions in the after_config callback 2020-01-13 17:01:27 +01:00
Sara Arjona 0ebf9b16ea Merge branch 'MDL-59817-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-13 14:26:49 +01:00
Kiet.Chan 01fd8ac565 MDL-67583 themes: Popover placement should react to scroll event 2020-01-13 17:29:46 +07:00
Bas Brands 80a5640ed2 MDL-67472 theme_boost: configurable sass variable for drawer bgcolour 2020-01-13 09:16:36 +01:00
Tien Nguyen Phuc decf6b62ae MDL-67638 Course: update course timemodified on bulk category move 2020-01-13 10:42:06 +07:00
Andrew Nicols 5b31655420 Merge branch 'MDL-67204-38' of https://github.com/mwehr/moodle into MOODLE_38_STABLE 2020-01-13 08:53:56 +08:00
Brendan Heywood 8e725dd819 MDL-67486 cron: Improve throughput by holding cron lock for less time 2020-01-12 00:45:02 +11:00
Tim Hunt d0c48cd693 MDL-67653 questions: prevent the flag flickering as the page loads 2020-01-10 14:28:16 +00:00
Andrew Nicols b2f13181ec 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 fcdc318982 MDL-67656 behat: Removed nested spin 2020-01-10 13:37:43 +08:00
Andrew Nicols c89d25a046 MDL-67656 behat: Fix usleep call in spin 2020-01-10 13:37:36 +08:00
Andrew Nicols 77be1e3fe3 Moodle release 3.8.1 2020-01-10 13:03:44 +08:00
Andrew Nicols de7b3e37b3 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-01-10 13:03:42 +08:00
AMOS bot ffd8dfcf27 Automatically generated installer lang files 2020-01-10 00:12:13 +00:00
Luca Bösch b116f84589 MDL-67625 quiz: only section titles should be large when editing. 2020-01-09 17:23:11 +01:00
Luca Bösch 36e70e664b MDL-67617 gradereport_singleview: Style the form element with bs classes 2020-01-09 17:22:18 +01:00
Mario Wehr 0debc8f826 MDL-67204 assign task: Use lastruntime from task_scheduled 2020-01-09 17:11:20 +01:00
John Beedell 81801a0685 MDL-66918 behat: Behat app step failing 2020-01-09 15:57:27 +00:00
Sara Arjona 8a82f51043 weekly release 3.8+ 2020-01-09 15:42:53 +01:00
Jun Pataleta 68cab31dba Merge branch 'MDL-67544-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-09 15:22:35 +08:00
Andrew Nicols 3f50c24fc3 MDL-67544f= mod_forum: Correct "for" attribute on private checkbox 2020-01-09 14:55:52 +08:00
Andrew Nicols 9973646ca7 MDL-67544 mod_forum: Ensure post actions menu id is unique 2020-01-09 14:09:21 +08:00
Andrew Nicols f14420c739 Merge branch 'MOODLE_38_MDL-67485' of https://github.com/golenkovm/moodle into MOODLE_38_STABLE 2020-01-09 12:40:19 +08:00
Mikhail Golenkov 70868d8648 MDL-67485 task: Release the task runner lock before throwing exception. 2020-01-09 14:49:38 +11:00
Andrew Nicols 8f45c9b6a5 Merge branch 'MDL-67596-cron-ramp-up-MOODLE_38_STABLE' of https://github.com/brendanheywood/moodle into MOODLE_38_STABLE 2020-01-09 09:32:49 +08:00
Brendan Heywood 1f5c6c6b7a MDL-67596 cron: Allow runners to ramp up instantly 2020-01-09 11:07:19 +11:00
Eloy Lafuente (stronk7) 26999dda23 Merge branch 'MDL-67544-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2020-01-08 16:35:32 +01:00
Eloy Lafuente (stronk7) 022206f2fe Merge branch 'MDL-67533-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-08 16:31:18 +01:00
Jake Dallimore f9e0f61467 MDL-67637 core_message: only preview lastmessage text if safe to do so
If any html/script tags are found in the text() value, don't display it.
2020-01-08 12:31:17 +01:00
Jun Pataleta c07bc83480 MDL-67533 mod_forum: Remove duplicate Re in experimental view subject 2020-01-08 16:29:43 +08:00
Jun Pataleta de2238985d MDL-35971 mod_forum: Add proper discussion list table description 2020-01-08 16:04:20 +08:00
Sara Arjona 7d7d3520a7 Merge branch 'MDL-67417-38' of https://github.com/KietChan/moodle into MOODLE_38_STABLE 2020-01-08 08:26:44 +01:00
Andrew Nicols f34f8131ba MDL-67544 mod_forum: Ensure that private reply checkbox has unique id 2020-01-08 15:26:03 +08:00
Sara Arjona 85ba5d1d88 Merge branch 'MDL-67510-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-08 08:11:01 +01:00
Andrew Nicols e0b8a3b17a Merge branch 'MDL-64764-38' of git://github.com/paulholden/moodle into MOODLE_38_STABLE 2020-01-08 08:30:33 +08:00
Eloy Lafuente (stronk7) 5577e472e5 Merge branch 'MDL-67469-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2020-01-07 22:59:51 +01:00
Marina Glancy 571f508d4e 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:33 +00:00
Andrew Nicols 764ec8d7fb Merge branch 'MDL-65849-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2020-01-07 13:26:56 +08:00
Andrew Nicols eb04dc8792 Merge branch 'MDL-66938-38' of https://github.com/grabs/moodle into MOODLE_38_STABLE 2020-01-07 12:49:42 +08:00
Paul Holden 2f19ac90c6 MDL-66237 message_popup: Get redirecturl from notification contexturl 2020-01-07 11:18:24 +08:00
Andrew Nicols 6fefb88819 MDL-67114 mod_wiki: Whitespace fix 2020-01-07 11:05:02 +08:00
Andrew Nicols 1b2a8dad89 Merge branch 'MDL-67114_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-07 11:04:55 +08:00
Andrew Nicols ec63d3eab4 Merge branch 'MDL-66871-38-v2' of git://github.com/lameze/moodle into MOODLE_38_STABLE 2020-01-07 08:54:44 +08:00
Bas Brands 63052bffb0 MDL-66721 core_chooser: height correction for chooser modal 2020-01-06 10:13:12 +01:00
Andrew Nicols 5f4250dc43 MDL-67544 form: Ensure that form errors have a unique id 2020-01-06 15:01:07 +08:00
Andrew Nicols b024306e5c MDL-67544 mod_forum: Add missing label for discussion move 2020-01-06 15:01:07 +08:00
Andrew Nicols 0d285e9334 MDL-67544 mod_forum: Add missing menuitem roles 2020-01-06 15:01:07 +08:00
Andrew Nicols bed212f61b MDL-67544 mod_forum: Correct aria-labelledby node 2020-01-06 15:01:07 +08:00
Andrew Nicols 14d58697a3 MDL-67544 mod_forum: Correct aria-controls to point to valid node 2020-01-06 15:01:07 +08:00
Andrew Nicols e98103354d MDL-67544 mod_forum: Add missing aria label for grade search 2020-01-06 15:01:07 +08:00
Andrew Nicols d8dfb98417 MDL-67544 core: Ensure unique IDs for YUI dialogues 2020-01-06 15:01:07 +08:00
Andrew Nicols 3684d9e03c MDL-67544 theme: Ensure that search box is in valid li 2020-01-06 15:01:06 +08:00
Andrew Nicols 629ef7772f MDL-67544 mod_forum: Add default role for favourite toggle 2020-01-06 15:01:06 +08:00
Andrew Nicols 9e57c09d7b MDL-67544 mod_forum: Add missing aria label for discussion actions 2020-01-06 15:01:06 +08:00
Andrew Nicols 949d3f1c02 MDL-67544 mod_forum: Correct aria-role => aria-live 2020-01-06 15:01:06 +08:00
Andrew Nicols 11524653b0 MDL-67544 mod_forum: Correct aria-role => role 2020-01-06 15:01:06 +08:00
David Monllaó 74299cd64b MDL-67622 mlbackend_python: Fix f1score calculation 2020-01-06 13:16:38 +08:00
Jun Pataleta f9b2f6634d MDL-67510 tool_dataprivacy: Fix the reply-to name of the privacy officer 2020-01-06 11:36:49 +08:00
Simey Lameze dafe4c5a78 MDL-66871 calendar: fix deprecated parameter in the phpDoc 2020-01-06 10:42:22 +08:00
Simey Lameze 550c4e1c42 MDL-66871 calendar: add unit test coverage for ics importing 2020-01-06 10:42:22 +08:00
Simey Lameze 0287928c4b MDL-66871 calendar: fix ics importing logic 2020-01-06 10:42:22 +08:00
Luca Bösch 50bcb24e09 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:51 +08:00
Jake Dallimore 701d27e5d9 Merge branch 'MDL-67336-38' of https://github.com/roland04/moodle into MOODLE_38_STABLE 2020-01-06 09:36:53 +08:00
Andreas Grabs 13d5d3edb1 MDL-66938 mod_feedback: Export includes unwanted html in field names 2020-01-05 19:33:27 +01:00
Eloy Lafuente (stronk7) abc8f149ce MDL-67114 core: php74 fix. Fix use of scalar as array in core
There are various places where it's not guaranteed that the
variable being used is array, and instead, can be null, bool, int...

We need to check that because php74 warns about it.

Where possible we have used the coalesce operator as
replacement for isset() ternary operations.
2020-01-03 11:33:23 +01:00
Eloy Lafuente (stronk7) c3a6437220 MDL-67114 scssphp: php74 compatibility local fixes
Note they are already available upstream, versions 1.0.4 and up so,
in next upgrade they will be fixed.
2020-01-03 11:33:23 +01:00
Eloy Lafuente (stronk7) c910982c49 MDL-67114 mustache: php74 fix. Fix use of scalar as array
Trying to use values of type null, bool, int, float or resource as an
array (such as $null["key"]) will now generate a notice. This does not
affect array accesses performed by list().

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
2020-01-03 11:33:23 +01:00
Jake Dallimore 4d5849b0e4 weekly release 3.8+ 2020-01-03 11:25:08 +08:00
Jake Dallimore cc0b18ec0e Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2020-01-03 11:25:05 +08:00
AMOS bot 3c7ebda9a5 Automatically generated installer lang files 2020-01-03 00:12:10 +00:00
Adrian Greeve 19401adbdd Merge branch 'MDL-67599-38' of https://github.com/snake/moodle into MOODLE_38_STABLE 2020-01-02 15:16:18 +08:00
Jake Dallimore a7fb29a8ff MDL-67599 behat: fix behat tests assuming Jan 2020 is a future date 2020-01-02 13:52:24 +08:00
Jake Dallimore c53861fd66 Merge branch 'MDL-67598_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2020-01-02 10:19:30 +08:00
AMOS bot 88d4a01089 Automatically generated installer lang files 2020-01-02 00:10:23 +00:00
Eloy Lafuente (stronk7) b71e7b79e8 MDL-67598 unit tests: Pass day of month without leading zero
Note this fixes the unit tests. Still the calendar API itself
should be able to manage this cases, both casting (int) or
being stricter about what's allowed there (param hinting).

But that falls out from this issue and the code that introduced
the failures, so the pure unit-test fix has been applied.
2020-01-02 00:10:16 +01:00
Eloy Lafuente (stronk7) 6c7199a426 Merge branch 'MDL-67593-38' of https://github.com/snake/moodle into MOODLE_38_STABLE 2019-12-31 10:50:41 +01:00
Jake Dallimore 827f3cd471 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:54:33 +08:00
Jake Dallimore 0260074ba1 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:54:27 +08:00
Jun Pataleta edab811944 Merge branch 'MDL-63996-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2019-12-31 15:19:17 +08:00
Jun Pataleta 348ceb4631 Merge branch 'MDL-67487-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2019-12-31 11:55:55 +08:00
Jun Pataleta 5544dc1cc7 Merge branch 'MDL-67470-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2019-12-31 11:29:52 +08:00
Bas Brands c02d168cd7 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 09:59:51 +08:00
Adrian Greeve 53fde6278a Merge branch 'MDL-67233-38' of git://github.com/peterRd/moodle into MOODLE_38_STABLE 2019-12-30 12:56:59 +08:00
Jun Pataleta 25221f73a6 Merge branch 'MDL-67491-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2019-12-30 12:41:40 +08:00
Didier 'OdyX' Raboud b901252f6d MDL-67491 core_message: Primary'fy the contact request counts 2019-12-30 11:47:36 +08:00
Eloy Lafuente (stronk7) be73a0ed4e Merge branch 'MDL-67523-38' of git://github.com/marinaglancy/moodle into MOODLE_38_STABLE 2019-12-29 23:32:07 +01:00
Eloy Lafuente (stronk7) e654258446 Merge branch 'MDL-67527-38-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2019-12-29 23:27:13 +01:00
Adrian Greeve 8c14984028 Merge branch 'MDL-63107-38' of git://github.com/bmbrands/moodle into MOODLE_38_STABLE 2019-12-27 16:34:10 +08:00
Adrian Greeve dd6bbf3962 Merge branch 'MDL-65809-38-onlyenv' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2019-12-24 14:54:57 +08:00
Adrian Greeve 01e84ac720 Merge branch 'MOODLE_38_STABLE-MDL-67524' of https://github.com/yao9394/moodle into MOODLE_38_STABLE 2019-12-23 10:30:23 +08:00
John Yao b423c5ad38 MDL-67524 book: fixing view hidden chapter issue
* Users who has permission should be able to view after turning editing off
2019-12-23 09:48:31 +11:00
AMOS bot f70cc95a13 Automatically generated installer lang files 2019-12-21 00:10:57 +00:00
Luca Bösch d9887f7350 MDL-67487 forms: align "Custom" checkbox for course section name. 2019-12-20 13:48:48 +01:00
Eloy Lafuente (stronk7) f2db42f921 weekly release 3.8+ 2019-12-20 11:02:10 +01:00
Eloy Lafuente (stronk7) b85896f7bc NOBUG: Fixed SVG browser compatibility 2019-12-20 11:02:08 +01:00
Eloy Lafuente (stronk7) 6350a758d7 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2019-12-20 11:02:07 +01:00
Eloy Lafuente (stronk7) a3ea0db227 Merge branch 'MDL-67151-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2019-12-19 23:01:23 +01:00
Shamim Rezaie cd62c520e2 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:20:12 +11:00
Marina Glancy 86d4aca10d MDL-67523 core_admin: do not require admin to view category
Revert changes from MDL-58439 (in this file only)
2019-12-19 10:15:10 +01:00
Jun Pataleta 40ba9d9cfa Merge branch 'MOODLE_38_STABLE_MDL-63795_core_setting_defaults' of https://github.com/mattporritt/moodle into MOODLE_38_STABLE 2019-12-19 11:17:41 +08:00
Matt Porritt 5c510b92e2 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:22:01 +11:00
Eloy Lafuente (stronk7) 754ecb5768 Merge branch 'MDL-67151-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2019-12-18 23:05:56 +01:00
David Mudrák e7a122bba9 MDL-67527 lang: Propagate the string fixes to Behat and other places 2019-12-18 21:22:15 +01:00
Helen Foster 13edb4f9f9 MDL-67527 lang: Import fixed English strings (en_fix) 2019-12-18 21:22:15 +01:00
Eloy Lafuente (stronk7) db394d5b08 Merge branch 'MDL-64695-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2019-12-18 19:56:10 +01:00
Eloy Lafuente (stronk7) d18802eb2f Merge branch 'MDL-67464-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2019-12-17 19:37:00 +01:00
Mikel Martín ead3a41240 MDL-67336 mod_forum: Fixing forum inline reply filtering before saving 2019-12-17 11:59:02 +01:00
Jake Dallimore ae7b1be0b6 Merge branch 'MDL-67304_38' of git://github.com/dmonllao/moodle into MOODLE_38_STABLE 2019-12-17 13:47:11 +08:00
Jake Dallimore cca393d2f6 Merge branch 'MDL-65735-38' of https://github.com/paulholden/moodle into MOODLE_38_STABLE 2019-12-17 13:25:24 +08:00
Eloy Lafuente (stronk7) 69430157a3 Merge branch 'MDL-67522-38' of git://github.com/marinaglancy/moodle into MOODLE_38_STABLE 2019-12-17 00:22:33 +01:00
Eloy Lafuente (stronk7) f077d9fbea Merge branch 'MDL-67410-38' of https://github.com/felicemcc/moodle into MOODLE_38_STABLE 2019-12-16 19:18:31 +01:00
Bas Brands 8c20e76d43 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:28 +01:00
Jake Dallimore a0ac535549 Merge branch 'MDL-67327-38' of git://github.com/andrewnicols/moodle into MOODLE_38_STABLE 2019-12-16 15:12:35 +08:00
Andrew Nicols 11260d5f3f MDL-63996 core/tags: Pending JS for all tag code 2019-12-16 14:03:46 +08:00
Andrew Nicols 67fc9943b9 MDL-63996 behat: Fix multi-tag autocomplete usage 2019-12-16 14:00:04 +08:00
Jake Dallimore 29a5f6eaa2 Merge branch 'MDL-66503-38' of git://github.com/abgreeve/moodle into MOODLE_38_STABLE 2019-12-16 09:11:33 +08:00
Marina Glancy a6fd7ada34 MDL-67522 core_lock: fix mistype in config-dist 2019-12-14 19:29:40 +01:00
AMOS bot c86c872db3 Automatically generated installer lang files 2019-12-14 00:10:53 +00:00
Jun Pataleta 7b4848ca80 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:24 +08:00
AMOS bot d9e3c11834 Automatically generated installer lang files 2019-12-13 00:11:09 +00:00
Felice Candilio 1437e35d2d 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:25:55 +01:00
Paul Holden 914d5ab82d MDL-65735 report_progress: reset URL start parameter in initials bars. 2019-12-12 18:24:12 +00:00
Paul Holden fbf0c8810b MDL-64695 tool_dataprivacy: filter site fullname in outgoing messages. 2019-12-12 18:20:22 +00:00
Paul Holden 25da0b49ea MDL-64695 privacy: filter site fullname in data export. 2019-12-12 18:20:22 +00:00
Sara Arjona 70e47fdc2a MDL-67464 core_h5p: use h5p.com URLs in behat tests
The H5P content used in behat for validating external URLs
behaviour shouldn't point h5p.org because it may stop working
(it's not for real content). These content have been moved to
moodle.h5p.com (payment account).
Besides, the scenarios loading content from external URLs
have been labelel with @external.
2019-12-12 16:07:17 +01:00
Eloy Lafuente (stronk7) 3bfdc05d3a weekly release 3.8+ 2019-12-12 13:26:31 +01:00
Eloy Lafuente (stronk7) d64a94713e NOBUG: Fixed SVG browser compatibility 2019-12-12 13:26:29 +01:00
Eloy Lafuente (stronk7) 8d7f1fd428 Merge branch 'install_38_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_38_STABLE 2019-12-12 13:26:28 +01:00
Andrew Nicols a7268b4f8a MDL-67327 js: Make requirejs.php more fault tolerant 2019-12-12 16:37:08 +08:00
Jake Dallimore 4792cc508e Merge branch 'MDL-67154-38' of git://github.com/ferranrecio/moodle into MOODLE_38_STABLE 2019-12-12 09:05:11 +08:00
Ferran Recio 7bc625d846 MDL-67154 theme_classic: fixing firefox printing 2019-12-11 16:57:36 +01:00
AMOS bot 6dc25cc165 Automatically generated installer lang files 2019-12-11 13:50:07 +00:00
AMOS bot 747000a2fe Automatically generated installer lang files 2019-12-11 13:50:07 +00:00
Kiet.Chan bec0808b18 MDL-67417 theme_boost: Tooltip icon stop working after closing using ESC 2019-12-11 15:00:14 +07:00
Andrew Nicols 7f40272535 Merge branch 'MDL-67458-38' of https://github.com/snake/moodle into MOODLE_38_STABLE 2019-12-11 10:27:19 +08:00
Jake Dallimore f9735bbde7 MDL-67458 core: removing stale cohortroles and role assignments 2019-12-11 09:36:54 +08:00
Jake Dallimore 4dc1413cc7 MDL-67458 tool_cohortroles: remove role mapping for deleted roles
Before syncing anything, clean up records pointing to deleted roles.
2019-12-11 09:36:15 +08:00
Adrian Greeve 79b6a4acac MDL-66503 themes: Set the embed page to display block. 2019-12-11 09:32:54 +08:00
Andrew Nicols cf50c5f1cb Merge branch 'MDL-67434-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2019-12-10 17:29:02 +08:00
Marina Glancy fc74a6e6d2 MDL-66936 mod_url: revert MDL-65024 adding fullurl to modinfo
This reverts commit cc56e409c3, reversing
changes made to 01cdf16c0e.
2019-12-10 15:27:59 +08:00
Jonathon Fowler a48bd1c4e3 MDL-66936 url: fix error when modinfo cache is rebuilt non-interactively 2019-12-10 15:27:52 +08:00
Jake Dallimore ee215ddd43 Merge branch 'MDL-67179-38' of git://github.com/Chocolate-lightning/moodle into MOODLE_38_STABLE 2019-12-10 15:03:24 +08:00
Mathew May f3e7533b9d MDL-67179 core: Add missing grading pix 2019-12-10 14:38:55 +08:00
Andrew Nicols 921469db8f Merge branch 'MDL-67277-38-strongtopics' of git://github.com/mudrd8mz/moodle into MOODLE_38_STABLE 2019-12-10 12:49:18 +08:00
Jake Dallimore b99f2bce77 Merge branch 'MDL-67154-38' of git://github.com/ferranrecio/moodle into MOODLE_38_STABLE 2019-12-10 11:53:56 +08:00
Jake Dallimore 7df9eb36cd Merge branch 'MDL-67451-38' of git://github.com/sarjona/moodle into MOODLE_38_STABLE 2019-12-10 10:37:15 +08:00
Jake Dallimore aee09a6357 Merge branch 'MDL-66708-MOODLE_38_KeyGenCache' of https://github.com/Cengage/moodle into MOODLE_38_STABLE 2019-12-10 09:12:13 +08:00
David Monllaó 8ae7a4ad68 MDL-67304 analytics: Add missing png svg incorrect icon
Credit to jaked for the icons and the testing instructions
2019-12-10 09:01:43 +08:00
Andrew Nicols d911548cf4 Merge branch 'MDL-67152-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2019-12-10 08:21:20 +08:00
Paul Holden 7a4b6df0fe MDL-65649 backup: ensure valid course URL for async mode. 2019-12-09 23:34:30 +00:00
Shamim Rezaie c8435454a7 MDL-67152 calendar: The day view should start from the current day 2019-12-10 06:58:18 +11:00
Jake Dallimore df2bda2f00 Merge branch 'MDL-67392-38' of git://github.com/rezaies/moodle into MOODLE_38_STABLE 2019-12-09 14:46:56 +08:00
Andrew Nicols bf52b2a3bc Merge branch 'MDL-60975-38' of https://github.com/Kathrin84/moodle into MOODLE_38_STABLE 2019-12-09 13:12:59 +08:00
Frédéric Massart f130c810f9 MDL-67434 javascript: Use static get_string after recycling promise 2019-12-09 10:12:43 +08:00
Paul Holden f0a2800a3a MDL-66024 tool_uploadcourse: validate shortname/fullname field length. 2019-12-05 23:11:19 +00:00
Kathrin Osswald d294483e9c MDL-60975 behat tests: Added search for admin setting filepickers 2019-12-05 14:59:18 +01:00
Sara Arjona ca89aca702 MDL-65809 environment: mbstring extension required 2019-12-05 14:00:16 +01:00
Sara Arjona 7e561cc4a8 MDL-65809 environment: PHP 7.2 required 2019-12-05 14:00:16 +01:00
Sara Arjona 57d601bc23 MDL-65809 environment: postgres requirement up to 9.5 2019-12-05 14:00:16 +01:00
Sara Arjona 7cdc332930 MDL-65809 environment: mariadb requirement up to 10.2 2019-12-05 14:00:16 +01:00
Sara Arjona 484eab15e3 MDL-65809 environment: 3.5 (LTS) required 2019-12-05 14:00:16 +01:00
Sara Arjona 0a0d55a3e1 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:00:16 +01:00
Eloy Lafuente (stronk7) 773b1f738f weekly release 3.8+ 2019-12-05 13:24:15 +01:00
Eloy Lafuente (stronk7) 96475f49de NOBUG: Fixed SVG browser compatibility 2019-12-05 13:24:13 +01:00
Adrian Greeve 9a64cc2b0b Merge branch 'MDL-65620-38' of git://github.com/aanabit/moodle into MOODLE_38_STABLE 2019-12-05 09:26:43 +08:00
Sara Arjona 56c570f68a MDL-67451 badges: use the site OB version as default 2019-12-04 21:27:16 +01:00
Sara Arjona ab2bb07f2e Merge branch 'MDL-67404_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2019-12-04 11:24:56 +01:00
Amaia Anabitarte d0aa6bf098 MDL-65620 core_message: Notification preferences behat tests 2019-12-04 11:03:49 +01:00
Ferran Recio 132e638209 MDL-67154 theme_boost: fixing firefox printing 2019-12-04 10:53:53 +01:00
Amaia Anabitarte 6713912510 MDL-65620 core_message: User preference generator 2019-12-04 10:03:34 +01:00
Amaia Anabitarte 96c48a5058 MDL-65620 core_message: Default notification preferences 2019-12-04 10:03:34 +01:00
Adrian Greeve d3de95f446 Merge branch 'MDL-40360-38' of git://github.com/lucaboesch/moodle into MOODLE_38_STABLE 2019-12-04 11:50:48 +08:00
Andrew Nicols 6d98038c8f Merge branch 'MDL-67359-38' of git://github.com/Chocolate-lightning/moodle_forum-project into MOODLE_38_STABLE 2019-12-04 10:38:12 +08:00
David Mudrák 83e5983a88 MDL-67277 forum: Replace the HTML comments with Mustache comments
It does not seem necessary to have the actual HTML sent to browsers full
of these developer-focused comments.
2019-12-03 20:16:53 +01:00
David Mudrák 0ddd9c54bc MDL-67277 forum: Remove the pinned class from the first cell
There should be no need to have it, and the name is confusing here.
2019-12-03 20:16:53 +01:00
David Mudrák 39bd01c11a MDL-67277 forum: Do not display discussion topics in bold
The topics are now inside a table header cell, which shows them in bold
by default.
2019-12-03 20:15:50 +01:00
David Mudrák 1e58e180d4 MDL-67277 forum: Apply CSS class describing the discussion status
This is to allow the themes to style pinned, favourited, subscribed and
discussions with unread replies.
2019-12-03 20:15:08 +01:00
Shamim Rezaie 163bff4a18 MDL-67151 qtype_calculatedsimple: Support for the scientific format 2019-12-03 16:57:41 +11:00
Shamim Rezaie 910c2ab7b4 MDL-67151 qtype_calculated: Support for the scientific format 2019-12-03 16:57:41 +11:00
Shamim Rezaie fcf199b0ec MDL-67151 qtype_numerical: Support for the scientific format 2019-12-03 16:57:41 +11:00
Shamim Rezaie bb511f30d6 MDL-67151 core_question: Support scientific format at question preview 2019-12-03 16:57:41 +11:00
Shamim Rezaie 481ad40e0e MDL-67151 forms: Support for the scientific format in the float element 2019-12-03 16:57:41 +11:00
Shamim Rezaie 031f3a1d4b MDL-67151 core: format_float can auto detect number of decimal points 2019-12-03 16:57:36 +11:00
Mathew May 5548689ead MDL-67359 mod_forum: Relocate notification templates to reallign it 2019-12-03 12:57:41 +08:00
Sara Arjona f751a8edbe Merge branch 'wip-MDL-67339-38stable' of https://github.com/Beedell/moodle into MOODLE_38_STABLE 2019-12-02 18:06:31 +01:00
John Beedell 0de719024c MDL-67339 behat: Enhance Behat exception message 2019-12-02 09:53:35 +00:00
Shamim Rezaie ac084982cf MDL-67392 mod_forum: Fix unescaped quotes issue in template 2019-12-02 20:50:40 +11:00
Jake Dallimore d3158895a8 Merge branch 'MDL-66581-38' of git://github.com/junpataleta/moodle into MOODLE_38_STABLE 2019-12-02 16:12:47 +08:00
Jun Pataleta 0e58303ea3 MDL-66581 auth: Properly assign the link attribute 2019-12-02 15:30:39 +08:00
Iñigo Zendegi f0d380703a 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:30:39 +08:00
Jake Dallimore baf264ebc8 Merge branch 'MDL-66877-38' of git://github.com/jleyva/moodle into MOODLE_38_STABLE 2019-12-02 10:02:34 +08:00
Luca Bösch e61f7ba324 MDL-40360 gradingform_rubric: remove unused class 'label' for a label. 2019-11-30 10:28:22 +01:00
Shamim Rezaie afda296526 MDL-65849 mod_forum: Add course param to the author's profile url 2019-11-29 20:58:37 +11:00
Eloy Lafuente (stronk7) 6d6b14e8a4 weekly release 3.8+ 2019-11-29 00:45:52 +01:00
Juan Leyva 27d6bd5de1 MDL-66877 mod: Fix unfiltered activity names in page headings 2019-11-28 17:24:31 +01:00
Juan Leyva 907db7f06b MDL-66877 mod: Fix WebServices returning unfiltered activity names 2019-11-28 17:24:31 +01:00
Eloy Lafuente (stronk7) 33bfd161cd MDL-67404 composer: update to newer versions
(using php71 for this branch)

Without changing any requirement, just an update
to get latest versions onboard, some fixing known
php 7.4 issues.
2019-11-28 13:12:23 +01:00
Andrew Nicols f88b4e9f81 MDL-67348 theme: Return CSS from localcache if available 2019-11-27 10:38:52 +08:00
Eloy Lafuente (stronk7) 114f0b612f Merge branch 'MDL-67300-m38' of https://github.com/sammarshallou/moodle into MOODLE_38_STABLE
(fix trailing whitespace case)
2019-11-26 22:29:37 +01:00
Jun Pataleta a5f1dd6cb1 Merge branch 'MOODLE_38_MDL-56886' of https://github.com/golenkovm/moodle into MOODLE_38_STABLE 2019-11-26 22:32:41 +08:00
Luca Bösch 283cd6db67 MDL-67210 tool_uploadcourse: Allow only 0 and 1 for visible value. 2019-11-26 08:30:34 +01:00
Eloy Lafuente (stronk7) 3eac4851e3 MDL-67307 core: Fix onject creation from empty value cases
The "creating default object from empty value" warning is now consistently
thrown if a falsy value is promoted into an stdClass object. Previously some
cases like `$null->prop[0] = $val` missed this warning.
2019-11-26 14:15:06 +08:00
Sara Arjona 006ec3c96f MDL-67042 customfield: Add behat tests to check hidden fields
Fields with the visibility different to Everyone should
be never displayed in the available filters custom field.
2019-11-26 11:59:41 +08:00
Sara Arjona cabc1dafa9 MDL-67042 customfield: Display only fields visible to everybody
When defining the available filters for the Dashboard, only the
fields visible to everyone should be displayed in the Custom field
filter.
2019-11-26 11:59:36 +08:00
Eloy Lafuente (stronk7) 1b4c878f48 MDL-66966 tcpdf: Update readme to point to manual commits to review
Apart from the main import of the library, there are a couple of
commits (with corresponding PRs upstream) that have been added to
provide php74 compatibility.

This commit addes them to the instructions, to ensure that they
will be reviewed on next import.
2019-11-26 11:43:34 +08:00
Eloy Lafuente (stronk7) 91286bb138 MDL-66966 tcpdf: Silence non-existing K_PATH_CACHE
I was fixing this adding a extra dir_exists() check that
is better than the silence operator but that was that already
there was a PR using @. So went to it.

This is https://git.io/JeKft
2019-11-26 11:43:25 +08:00
Eloy Lafuente (stronk7) 71af7accff MDL-66966 tcpdf: Some more curly braces to fix
This is https://git.io/JeKfT
2019-11-26 11:43:18 +08:00
Eloy Lafuente (stronk7) ce97501b2b MDL-66966 tcpdf: PHP 7.4 - cannot use array offset on integers
This is https://git.io/JeKfU
2019-11-26 11:43:10 +08:00
Eloy Lafuente (stronk7) dadb3cb372 MDL-66966 tcpdf: Bump to tcpdf 6.3.2
Bug fixes and php74 support.
2019-11-26 11:43:00 +08:00
Peter 5cb05d8b77 MDL-67233 mod_timeline: Allow events with only open dates in the future 2019-11-26 11:27:01 +08:00
Bas Brands e29b355121 MDL-67222 tool_lp: update css classes for Bootstrap 4.3 2019-11-26 10:12:46 +08:00
Mikhail Golenkov 95ca6f656e MDL-56886 navigation: Allow local plugins to modify navigation via AJAX. 2019-11-26 13:01:14 +11:00
Claude Vervoort fbd1829594 MDL-66708 lti adv: fix check for key in config 2019-11-25 14:17:08 -05:00
Marina Glancy 0c91305856 MDL-67342 theme_boost: Do not hardcode tooltip container 2019-11-25 15:59:25 +01:00
Sara Arjona c42b488aaf Merge branch 'MDL-66627-38' of git://github.com/mickhawkins/moodle into MOODLE_38_STABLE 2019-11-25 15:42:02 +01:00
David Monllaó 5bde4eb35e MDL-67217 unittest: usleep and windows don't get along well 2019-11-25 16:13:39 +08:00
Andrew Nicols 1943c03bbb MDL-67168 forum: Correct behaviour of viewfullnames 2019-11-25 08:56:37 +01:00
Jun Pataleta 0da427c800 Merge branch 'MDL-65956-38-1' of git://github.com/mihailges/moodle into MOODLE_38_STABLE 2019-11-25 14:23:11 +08:00
Mihail Geshoski 7045a22f3a MDL-65956 mod_assign: Add behat tests 2019-11-25 10:50:22 +08:00
Mihail Geshoski c7f9c7ae0f MDL-65956 mod_assign: Add proper capability checks and error handling 2019-11-25 10:50:22 +08:00
Andrew Nicols 751e4964b1 MDL-67285 core: YUI dialogues must use focuslock
YUI Dialogues were using an older method for locking focus to modals,
but this way conflicts with the way in which we lock focus for AMD
modules.

As a result, when an AMD dialogue launches a YUI dialogue the focus is
not correctly locked and it is not possible to focus on anything in the
YUI dialogue.

This includes a minor changes to the focuslock AMD module to ensure that
it is possible to loop the focus in both directions. Many of our older
YUI dialogues are themselves focusable. As a result we need to include
the lock region in the calculation when calculating the possible
descendants.
If we do not do so then the reverse looping does not work.
2019-11-25 10:35:08 +08:00
Eloy Lafuente (stronk7) 5a108a3064 MDL-67049 grading: options are array, ensure json_decode() knows it
By default json_decode() returns object for associative arrays. That
was not a problem till now becuause array_key_exists() worked with
objects too. But in php74 that emits a warning.

So we need to ensure that the information arriving to it is
an array, allowing everything to continue working ok.
2019-11-25 09:34:22 +08:00
Eloy Lafuente (stronk7) 417ff4f035 weekly release 3.8+ 2019-11-22 00:17:15 +01:00
sam marshall d3a5df14f7 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:54:08 +00:00
Eloy Lafuente (stronk7) 82853489ca MDL-67035 tags: fix nested ternary operators to be php74 compliant
Nesting ternary operators without explicit parentheses is deprecated:

    // Code like
    $a ? $b : $c ? $d : $e
    // should be replaced by (current interpretation)
    ($a ? $b : $c) ? $d : $e
    // or (likely intended interpretation)
    $a ? $b : ($c ? $d : $e)
2019-11-21 11:55:27 +08:00
Eloy Lafuente (stronk7) 9eaea6a7bf MDL-66964 markdown: add details to readme
The commit to apply, from upstream repo, is:

https://github.com/michelf/php-markdown/commit/a35858f0409e5f01474f5cd562d17289fe8e5435

But it doesn't apply clean to our current 1.8.0 version.

So we have ended a slightly different version in core reproducing the same changes.
2019-11-21 11:37:50 +08:00
Eloy Lafuente (stronk7) f11b82df7c MDL-66964 markdown: php74 fixup for markdown lib 1.8.0
Note this is different from the upstream commit:

https://github.com/michelf/php-markdown/commit/a35858f0409e5f01474f5cd562d17289fe8e5435

because it was conflicting so only the cases corresponding
to our current 1.8.0 version have been modified.

This commit is trivial, just a pure curly to square replacement.
2019-11-21 11:37:50 +08:00
Tim Hunt 5d2f8bd98d 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:33:48 +08:00
Eloy Lafuente (stronk7) 023109f1b1 MDL-67030 htmlpurifier: add details to readme 2019-11-21 08:19:17 +08:00
Eloy Lafuente (stronk7) 51bedcee13 MDL-67030 htmlpurifier: php74 fixup for htmlpurifier v4.10.0
This simply applies this pull request:

https://github.com/ezyang/htmlpurifier/pull/224

straight to our library. Once there is some new htmlpurifier
release available (>v4.11.0) we'll be back upstream because
the fix will be included.
2019-11-21 08:19:11 +08:00
Eloy Lafuente (stronk7) 7cec76396f MDL-67031 s3: php74 fixup for class S3 v0.5.1 2019-11-20 16:22:07 +08:00
Eloy Lafuente (stronk7) daed88e656 MDL-67077 h5p: php74 fix (curly braces) for the H5P lib
This has been sent also upstream @ https://github.com/h5p/h5p-php-library/pull/69
2019-11-20 16:11:55 +08:00
Michael Hawkins 212595bbd0 MDL-66627 forumreport_summary: Added content access behat tests 2019-11-20 14:58:22 +08:00
Eloy Lafuente (stronk7) 6cff678c08 MDL-67034 lti_provider: php74 fix (curly braces) for LTI Provider lib 2019-11-20 13:17:09 +08:00
Eloy Lafuente (stronk7) 980193f55b MDL-67034 google: php74 fix (curly braces) for the Google-Client lib 2019-11-20 13:17:02 +08:00
Eloy Lafuente (stronk7) b4f9c2e906 MDL-67034 adodb: php74 fix (curly braces) for the AdoDB lib 2019-11-20 13:16:55 +08:00
Eloy Lafuente (stronk7) 93ed2a597c MDL-67034 horde: php74 fix (curly braces) for the Horde lib 2019-11-20 13:16:49 +08:00
Eloy Lafuente (stronk7) a2c6a69070 MDL-67029 bennu: add details to readme 2019-11-20 11:46:18 +08:00
Eloy Lafuente (stronk7) 7a68a37fda MDL-67029 bennu: php74 fixup for bennu lib 0.1-custom 2019-11-20 11:46:13 +08:00
Eloy Lafuente (stronk7) 3c1b6ed7bd MDL-67017 typo3: add details to readme 2019-11-20 10:01:13 +08:00
Eloy Lafuente (stronk7) 8ff55e3b1b MDL-67017 typo3: php74 fixup for typo3 lib 4.7.19
We are using a really outdated Typo3 library (2014) already patched
for php73 support. Plus, probably, we'll be soon removing it from core.

So we have decided to, instead of upgrade, apply the needed php74 fixes.
2019-11-20 10:01:02 +08:00
sam marshall 7d05f78363 MDL-67274 Tasks: Log display fails with memory errors 2019-11-19 10:51:22 +08:00
Jun Pataleta d0a9211f51 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:50:11 +01:00
Marina Glancy e2a0a42003 MDL-67073 core_course: fix capability context 2019-11-18 16:02:46 +08:00
Jake Dallimore 7e24491f2c Merge branch 'MDL-67284_38' of https://github.com/stronk7/moodle into MOODLE_38_STABLE 2019-11-18 11:29:29 +08:00
Eloy Lafuente (stronk7) 4619c8a7e3 MDL-67284 mod_feedback: Add missing file phpdoc block 2019-11-17 12:47:05 +01:00
Eloy Lafuente (stronk7) 2aff0046c1 MDL-67284 upgrade: add 3.8.0 separation line to all upgrade scripts 2019-11-17 11:43:41 +01:00
Eloy Lafuente (stronk7) f968cd44e8 Moodle release 3.8 2019-11-16 17:54:08 +01:00
Eloy Lafuente (stronk7) 4da834dcdc NOBUG: Change travis.yml to MOODLE_38_STABLE 2019-11-16 17:54:08 +01:00
Jun Pataleta dc51037136 Merge branch 'MDL-67281' of https://github.com/stronk7/moodle 2019-11-16 17:44:05 +08:00
Eloy Lafuente (stronk7) 12f310e545 MDL-67281 forum: don't show discussion creation time twice
The discussion creation time (or first post) is being shown
both in the "started by" and "last post" columns in forum
discussions list.

Just let's change the former to show the discussion modification
time (or last post) instead.
2019-11-15 19:11:34 +01:00
Eloy Lafuente (stronk7) 52d3d6f540 Moodle release 3.8rc1 2019-11-15 12:30:52 +01:00
Jun Pataleta e716c1ea9e Merge branch 'MDL-67269-master' of git://github.com/andrewnicols/moodle 2019-11-15 12:38:54 +08:00
Andrew Nicols fb803f8854 Merge branch 'MDL-67268-master' of git://github.com/mihailges/moodle 2019-11-15 12:08:33 +08:00
Mihail Geshoski c7cb3b297b MDL-67268 mod_forum: Group and label radio buttons in forum grader 2019-11-15 12:05:59 +08:00
Andrew Nicols 630a1b0e01 MDL-67269 mod_forum: Capture form submission in grading panel 2019-11-15 11:47:37 +08:00
Andrew Nicols f45a2860e5 Merge branch 'MDL-67265' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-15 10:35:00 +08:00
Mathew May 4e796e2205 MDL-67265 core: Set max-height on toast wrapper 2019-11-15 09:21:06 +08:00
Jake Dallimore 891e027cf1 Merge branch 'MDL-67241-master' of git://github.com/lameze/moodle 2019-11-14 16:34:28 +08:00
Jake Dallimore 324258e5f5 Merge branch 'MDL-67144-integration' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-14 15:17:24 +08:00
Mathew May fc741e030e MDL-67144 mod_forum: If no users exist do not show the grading interface 2019-11-14 15:00:30 +08:00
Jun Pataleta ff175fce22 Merge branch 'MDL-67246-master' of git://github.com/jleyva/moodle 2019-11-14 14:34:17 +08:00
Jake Dallimore 0460d21b28 Merge branch 'MDL-67207-master' of git://github.com/andrewnicols/moodle 2019-11-14 14:27:42 +08:00
Jun Pataleta e9f63f3fc0 Merge branch 'MDL-67116-master' of git://github.com/andrewnicols/moodle 2019-11-14 12:37:22 +08:00
Andrew Nicols c3777543a6 MDL-67116 course: Restore removed line
This line was inadvertently removed in a previous commit.
2019-11-14 11:43:37 +08:00
Andrew Nicols 8a0b9b1830 Merge branch 'MDL-67250-master-httpswwwroot' of git://github.com/mudrd8mz/moodle 2019-11-14 10:54:14 +08:00
Simey Lameze 0e287a0e7b MDL-67241 mod_forum: raise memory limit when exporting 2019-11-14 10:12:15 +08:00
Adrian Greeve b6343156f9 Merge branch 'MDL-67116-master' of git://github.com/andrewnicols/moodle 2019-11-14 09:03:31 +08:00
Andrew Nicols 0a5a2ca89b MDL-67116 course: Strict empty string check required
In PHP the following are true:

    assert('' == '');
    assert(0 == '');
    assert(null == '');

The options in the course completion settings are now:

    ''    => none selected
    [int] => itemnumber of activity course completion item.

In the case where the itemnumber was 0  this was being incorrectly
evaluated as an empty string due to the implicit cast to int of the
empty string:

    (int) '' === 0

As a result, the non-strict comparison means that the following are
identical:

    assert(0 == '');
    assert(0 == (int) '');
    assert(0 == '0');

Changing the comparison to a strict comparison is correct because it
ensures the type consitency between the empty string value, and the int
of itemnumber 0. It is safe because the value always comes from the
form, where an int is always returned, and not the DB, where a string is
returned.
2019-11-14 08:59:56 +08:00
Eloy Lafuente (stronk7) ccd5f606c3 Merge branch 'MDL-67248-master' of git://github.com/cescobedo/moodle 2019-11-14 01:12:01 +01:00
David Mudrák 469d4b7f35 MDL-67250 setup: Revert removal of the httpswwwroot setting
It is still used widely in the plugins that would stop working suddenly
without being warned via a debugging message. We must keep it forever as
an alias for the wwwroot.
2019-11-13 19:58:10 +01:00
cescobedo f12d708e61 MDL-67248 filter_displayh5p: Add new description on filter 2019-11-13 18:36:09 +01:00
Juan Leyva 666de97917 MDL-67246 admin: Return course color settings for external clients 2019-11-13 15:33:20 +01:00
Jun Pataleta f136aa1933 Merge branch 'MDL-67231-master' of git://github.com/andrewnicols/moodle 2019-11-13 16:00:16 +08:00
Jun Pataleta 289c9e14c4 Merge branch 'MDL-67116-master' of git://github.com/andrewnicols/moodle 2019-11-13 15:31:03 +08:00
Andrew Nicols 799418ad12 MDL-67207 forum: Reset focus after closing grade viewer 2019-11-13 14:30:54 +08:00
Andrew Nicols 21900f035e MDL-67207 forum: Return focus when closing expanded discussion 2019-11-13 14:30:54 +08:00
Andrew Nicols c50bc1bf7c MDL-67207 core: Use focus lock manager in modals 2019-11-13 14:30:54 +08:00
Andrew Nicols 4395ef464d MDL-67207 forum: Reset focus after closing grader 2019-11-13 14:30:54 +08:00
Andrew Nicols 7ede47b738 MDL-67207 forum: Lock focus in grader 2019-11-13 14:30:48 +08:00
Andrew Nicols dcdcc12cb2 MDL-67207 core: Add new ARIA focus locker
This is based on code and examples provided in the ARIA specification
https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/dialog.html
2019-11-13 14:30:32 +08:00
Adrian Greeve 23ac81e396 Merge branch 'MDL-67178' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-13 14:30:06 +08:00
Andrew Nicols 8bd3e49cc9 MDL-67231 h5p: Correct naming of h5p unit test files 2019-11-13 14:24:28 +08:00
Jun Pataleta 783897e56f Merge branch 'MDL-67232-master' of git://github.com/lameze/moodle 2019-11-13 13:49:22 +08:00
Mathew May 2cac67a016 MDL-67178 mod_forum: Allow users to backup forum grades 2019-11-13 13:25:54 +08:00
Andrew Nicols c035141971 MDL-67116 course: Fix completion disabled for gradable items
The default value is an empty string (""), which in PHP evaluates to 0 when
cast to a string in our DML layer.

The fix is to forcibly make it null which is not cast to string in DML
for optional strings.
2019-11-13 12:49:59 +08:00
Jun Pataleta 2e08e15065 Merge branch 'MDL-67199' of https://github.com/stronk7/moodle 2019-11-13 11:20:02 +08:00
Jun Pataleta ec99ffd352 Merge branch 'MDL-67218-master' of git://github.com/andrewnicols/moodle 2019-11-13 11:00:22 +08:00
Simey Lameze e28388735c MDL-67232 mod_forum: remove initialuserid data attr from template 2019-11-13 10:33:55 +08:00
Jake Dallimore df8fff9f34 Merge branch 'MDL-66812-master' of git://github.com/bmbrands/moodle 2019-11-13 10:25:42 +08:00
Adrian Greeve c3044a19b9 Merge branch 'MDL-67215-master' of git://github.com/peterRd/moodle 2019-11-13 10:18:59 +08:00
Andrew Nicols fe795b59e4 MDL-67116 form: Require grade in multi-grade-item activities
AMOS BEGIN
  CPY [rating,rating],[grade_rating_name,rating]
AMOS END
2019-11-13 10:14:37 +08:00
Ryan Wyllie a492f69caf MDL-67116 course: allow grading completion for non ratings grade item 2019-11-13 10:11:44 +08:00
Andrew Nicols d21ba3f6a8 MDL-67218 form: Do not clear grade when rescaling not enabled 2019-11-13 10:11:44 +08:00
Andrew Nicols 09ab002746 Merge branch 'MDL-67194-master' of git://github.com/vmdef/moodle 2019-11-13 08:38:34 +08:00
Andrew Nicols 003c856a7e Merge branch 'wip_MDL-67205_master' of git://github.com/gjb2048/moodle 2019-11-13 08:31:25 +08:00
Eloy Lafuente (stronk7) adc5449399 MDL-67199 versions: main version bump 2019-11-12 17:58:42 +01:00
Eloy Lafuente (stronk7) d5be859063 MDL-67199 versions: bump all versions and requires near release
version = 2019111800 release version
requires= 2019111200 current beta (week7roll1) version
2019-11-12 17:57:08 +01:00
Eloy Lafuente (stronk7) 1633a6035d Moodle release 3.8beta 2019-11-12 16:50:55 +01:00
Jun Pataleta bbb7cb2173 Merge branch 'MDL-66906-master-fix' of git://github.com/andrewnicols/moodle 2019-11-12 22:01:37 +08:00
Andrew Nicols 49d5920ac6 MDL-66906 gradingform_rubric: Add back missing field 2019-11-12 21:04:54 +08:00
Jun Pataleta 134f11e15a Merge branch 'MDL-66906-integration-3' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-12 16:38:58 +08:00
Mathew May 07d8669dbf MDL-66906 mod_forum: Show learners their grades in a Modal 2019-11-12 16:17:04 +08:00
Jun Pataleta fb99cef5f1 Merge branch 'MDL-66360-master-fix' of git://github.com/andrewnicols/moodle 2019-11-12 16:10:38 +08:00
Andrew Nicols 0e32b5ae41 MDL-66360 grading: Validate notifyuser 2019-11-12 16:00:50 +08:00
Andrew Nicols 656f2e5a38 MDL-66360 grade: Correct argument order in params 2019-11-12 15:59:53 +08:00
Andrew Nicols 3c150de283 MDL-67218 form: Do not clear grade when rescaling not enabled 2019-11-12 11:29:34 +08:00
Andrew Nicols 237ddb313f Merge branch 'MDL-66360-master-fix' of git://github.com/lameze/moodle 2019-11-12 10:16:12 +08:00
Simey Lameze 254fc008a7 MDL-66360 forum: rename sendstudentnotifications_forum to forum_grade_notify 2019-11-12 10:15:41 +08:00
Peter 5c137f610b MDL-67215 core: Revert update from lib upgrade 2019-11-12 09:55:18 +08:00
Víctor Déniz Falcón b7c307f33d MDL-67194 core_h5p: save core API version that content types require 2019-11-11 21:09:50 +00:00
Jun Pataleta 5f1307ef9a Merge branch 'MDL-67187_master' of git://github.com/dmonllao/moodle 2019-11-11 22:22:08 +08:00
Bas Brands f2ace4d45a MDL-66812 core_message: update custom checkbox for message dialogue 2019-11-11 15:06:47 +01:00
Gareth Barnard 6097e14b0f MDL-67205 themes: Incorrect information in theme/upgrade.txt. 2019-11-11 12:55:17 +00:00
Eloy Lafuente (stronk7) 25878b786a Merge branch 'MDL-66405-master-fix' of https://github.com/sarjona/moodle 2019-11-11 12:11:41 +01:00
Sara Arjona 9bb296deb0 MDL-66405 core_h5p: Fix behat tests 2019-11-11 12:01:47 +01:00
Eloy Lafuente (stronk7) 6b69013461 MDL-66360 grade: whitespace fix 2019-11-11 10:49:31 +01:00
Andrew Nicols 9359533972 MDL-66360 forum: Fix unit tests in integration 2019-11-11 17:38:02 +08:00
Andrew Nicols c2dc453f07 MDL-66360 forum: Add missing var from merge conflict 2019-11-11 17:27:35 +08:00
Andrew Nicols 63e3409bc2 Merge branch 'MDL-66360-master' of git://github.com/lameze/moodle 2019-11-11 17:16:48 +08:00
Simey Lameze c189319e9c MDL-66360 mod_forum: fix cibot issues 2019-11-11 16:08:08 +08:00
Simey Lameze d543b01b1f MDL-66360 mod_forum: change notifyuser parameter order 2019-11-11 16:08:07 +08:00
Simey Lameze 3f609c8a44 MDL-66360 grade: add missing gradenotifications defaults 2019-11-11 15:39:28 +08:00
Simey Lameze 6143a75136 MDL-66360 grade: fix unit tests failures and errors 2019-11-11 15:39:28 +08:00
Simey Lameze 86ea1d8375 MDL-66360 lang: fix typo on gradenotificationsubjects string 2019-11-11 15:39:28 +08:00
Simey Lameze 91946f8c7d MDL-66360 mod_forum: add missing notifyuser to doc block 2019-11-11 15:39:28 +08:00
Simey Lameze 66216aa052 MDL-66360 mod_forum: remove debug code from template 2019-11-11 15:37:19 +08:00
Simey Lameze 175fd687b4 MDL-66360 grade: fix user grade notification sending errors 2019-11-11 15:37:19 +08:00
Shamim Rezaie c67a54e619 MDL-66360 mod_forum: Notify the student when the marker choose to notify 2019-11-11 15:37:19 +08:00
Shamim Rezaie fff089e80d MDL-66360 gradingform_rubric: support sending grading notifications 2019-11-11 15:34:43 +08:00
Shamim Rezaie 62df27d2d5 MDL-66360 gradingform_guide: Support sending grading notifications 2019-11-11 15:30:27 +08:00
Shamim Rezaie f0744fa0ff MDL-66360 core_grade: grade notifications for scale-based marking 2019-11-11 15:27:05 +08:00
Shamim Rezaie 4fe3ce8f64 MDL-66360 core_grade: grade notifications for simple direct grading 2019-11-11 15:24:16 +08:00
Shamim Rezaie 9672c8aa08 MDL-66360 core_grade: New method to send grade notifications to students 2019-11-11 15:16:19 +08:00
Shamim Rezaie 9666372644 MDL-66360 core_grade: New message handler for grade notifications 2019-11-11 15:16:19 +08:00
Shamim Rezaie b6bf1e8e2a MDL-66360 mod_forum: display notification option pre-set to default 2019-11-11 15:16:19 +08:00
Shamim Rezaie aa73424c66 MDL-66360 mod_forum: Save the sendstudentnotifications setting 2019-11-11 15:12:33 +08:00
Shamim Rezaie de3e28635e MDL-66360 mod_forum: phpdoc fixes 2019-11-11 15:12:33 +08:00
Shamim Rezaie 77580567a3 MDL-66360 mod_forum: added settings for send notifications default val
AMOS BEGIN
 CPY [sendstudentnotifications, mod_assign],[sendstudentnotifications, mod_forum]
 CPY [sendstudentnotifications_help, mod_assign],[sendstudentnotifications_help, mod_forum]
AMOS END
2019-11-11 15:12:33 +08:00
Jake Dallimore 3ab419ad5a Merge branch 'MDL-67137-master' of git://github.com/andrewnicols/moodle 2019-11-11 14:56:52 +08:00
Andrew Nicols 1c997df371 Merge branch 'MDL-66958' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-11 11:26:08 +08:00
Mathew May 8827e573db MDL-66958 core_grade: Add hasgrade to all external fetch webservices 2019-11-11 11:25:17 +08:00
Mathew May 63cd8d45db MDL-66958 core_grade: Add grade status abstract
Also implement the new abstract in Forum
2019-11-11 11:25:17 +08:00
Mathew May 8b04be120b MDL-66958 core_grade: Only save scale on form change 2019-11-11 11:25:17 +08:00
Mathew May 08f11b07b4 MDL-66958 core_grade: Only save point on form change 2019-11-11 11:25:17 +08:00
Mathew May e659dc651e MDL-66958 gradingform_guide: Only save on form change 2019-11-11 11:25:17 +08:00
Mathew May 9769ba08b3 MDL-66958 gradingform_rubric: Only save on form change 2019-11-11 11:25:17 +08:00
David Monllaó a461d36010 MDL-67187 analytics: Fix broken text comparison 2019-11-11 11:00:28 +08:00
Andrew Nicols 13965d30fe Merge branch 'MDL-66447' of https://github.com/Chocolate-lightning/moodle_forum-project 2019-11-11 10:55:46 +08:00
Michael Hawkins a25f9cc357 MDL-66447 forumreport_summary: Added event logging 2019-11-11 10:49:09 +08:00
Mathew May f418c08c31 MDL-66958 core_grade: Add comparison js for grade saves 2019-11-11 10:44:09 +08:00
Mathew May 80dcc83400 MDL-66958 core_grade: Correct documentation in normalise js 2019-11-11 09:57:53 +08:00
Adrian Greeve 65d053ec0d Merge branch 'MDL-67129-master-2' of git://github.com/bmbrands/moodle 2019-11-11 08:07:03 +08:00
Eloy Lafuente (stronk7) 9367922f09 MDL-66405 filter_h5p: fix trailing-lines gherkinlint problem 2019-11-11 00:58:03 +01:00
Eloy Lafuente (stronk7) a1e0f47fe9 Merge branch 'MDL-66405-master' of git://github.com/aanabit/moodle 2019-11-11 00:33:16 +01:00
Sara Arjona c9f0abc25a Merge branch 'MDL-67184-master' of git://github.com/cescobedo/moodle 2019-11-10 21:48:48 +01:00
cescobedo 64e97710a3 MDL-67184 filter_displayh5p: Move upper than urltolink & activityname 2019-11-10 21:40:25 +01:00
Sara Arjona f529720e07 Merge branch 'MDL-67196' of https://github.com/stronk7/moodle 2019-11-09 20:06:11 +01:00
Sara Arjona 1cb3493ab1 Merge branch 'MDL-67156-master' of git://github.com/vmdef/moodle 2019-11-09 19:53:27 +01:00
Sara Arjona 5e7d8b42ce Merge branch 'MDL-67158-master' of git://github.com/mihailges/moodle 2019-11-09 19:23:39 +01:00
Mihail Geshoski d68be5b209 MDL-67158 core_h5p: Unit test fixes 2019-11-10 01:37:44 +08:00
Eloy Lafuente (stronk7) 8585294d5c Merge branch 'MDL-67098-master' of git://github.com/junpataleta/moodle 2019-11-09 16:14:45 +01:00
Eloy Lafuente (stronk7) acfbb4bf44 Merge branch 'MDL-67146-master-enfix-2' of git://github.com/mudrd8mz/moodle 2019-11-09 16:11:39 +01:00
Sara Arjona b80c1e015a Merge branch 'MDL-67061-master' of https://github.com/aanabit/moodle 2019-11-09 13:22:03 +01:00
Amaia Anabitarte 2c679b6ea8 MDL-67061 core_h5p: Behat tests for H5P content-types admin settings 2019-11-09 11:11:07 +01:00
Bas Brands c43f99ca47 MDL-67061 core_h5p: List installed contenttypes/libraries 2019-11-09 11:11:07 +01:00
Sara Arjona 76b6e6ca08 Merge branch 'MDL-67174' of https://github.com/paulholden/moodle 2019-11-09 08:59:41 +01:00
Sara Arjona 3b381bd2da Merge branch 'MDL-67173-master' of git://github.com/cescobedo/moodle 2019-11-09 08:55:47 +01:00
Sara Arjona 75bf9a3ab8 Merge branch 'MDL-67167-master' of git://github.com/jleyva/moodle 2019-11-09 08:50:15 +01:00
David Mudrák cf36114501 MDL-67146 lang: Update behat scenario files with the new string wording 2019-11-09 06:36:25 +01:00
Helen Foster fda41f4588 MDL-67146 lang: Import fixed English strings (en_fix)
Significant string changes:

* configallowemojipicker,core_admin - including emoji picker button in
  Atto
* viewconversation,mod_forum - 'conversation' changed to 'discussion'
2019-11-09 06:35:22 +01:00
Eloy Lafuente (stronk7) 544f8625ba MDL-67196 behat: Increase allowed max report size 2019-11-09 01:11:14 +01:00
Víctor Déniz Falcón 47627abe9d MDL-67156 core_h5p: change DIRECTORY_SEPARATOR by slashes
In Windows, the value of DIRECTORY_SEPARATOR is "\", causing failures in
the tests when compared to the path strings that use "/".
2019-11-08 22:18:11 +00:00
Amaia Anabitarte ba70ec2666 MDL-66405 filter_h5p: Behat tests for H5P filter 2019-11-08 17:08:58 +01:00
Amaia Anabitarte 7d8af94f86 MDL-66405 atto_h5p: Behat tests for H5P atto button 2019-11-08 17:08:57 +01:00
Amaia Anabitarte 0d97e6103f MDL-66405 core_h5p: New behat steps and selectors for H5P tools 2019-11-08 17:08:57 +01:00
Sara Arjona f9db5892ec weekly release 3.8dev+ 2019-11-08 15:39:36 +01:00
Sara Arjona 7347347e84 NOBUG: Fixed SVG browser compatibility 2019-11-08 15:39:33 +01:00
Sara Arjona 71528112b9 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-11-08 15:39:33 +01:00
Andrew Nicols fc0ded848c MDL-67058 h5p: Correct PHPUNIT_LONGTEST usage 2019-11-08 15:48:58 +08:00
Andrew Nicols fd9333ca93 MDL-67058 h5p: Content fetch should use save_h5p API 2019-11-08 15:48:58 +08:00
Jun Pataleta 6846ba70a2 MDL-67098 forumreport_summary: Drop temp table at the end of processing 2019-11-08 15:28:23 +08:00
Andrew Nicols ab8f1c3b8c MDL-67058 h5p: System user has permission 2019-11-08 15:20:17 +08:00
Jun Pataleta 2e809ec27c Merge branch 'MDL-66893-master-3' of https://github.com/ryanwyllie/moodle 2019-11-08 11:59:44 +08:00
Andrew Nicols 8948ebb7ac Merge branch 'MDL-66297-master' of git://github.com/mickhawkins/moodle 2019-11-08 11:17:38 +08:00
Michael Hawkins d3ae8d42ea MDL-66297 mod_forum: Added word/char count column headings to export 2019-11-08 11:13:37 +08:00
Michael Hawkins 64da1d093a MDL-66297 forumreport_summary: Added filter data to forum export links
From/to date filter timestamps, as well as discussion IDs of any
filtered groups.
2019-11-08 11:13:36 +08:00
Michael Hawkins 2e7a16b954 MDL-66297 mod_forum: Prepared export to handle URL filters
Added the ability for discussion IDs and from/to timestamps to be
passed in via URL (to match filters available in the summary report,
which will link to the export). Also fixed a bug where "all users"
would fail as an optional array param.
2019-11-08 11:13:36 +08:00
Shamim Rezaie 1743d4a3e9 MDL-66297 forumreport_summary: add export links to the report 2019-11-08 11:13:36 +08:00
Shamim Rezaie 84ed2320dd MDL-66297 mod_forum: The export form can take params from URL 2019-11-08 11:13:36 +08:00
Adrian Greeve fee88f39c5 Merge branch 'MDL-67169' of https://github.com/stronk7/moodle 2019-11-08 10:43:05 +08:00
Jake Dallimore 9560facb35 Merge branch 'MDL-67016-master-user-profile-see-own-courses' of https://github.com/danowar2k/moodle 2019-11-08 10:22:02 +08:00
Andrew Nicols a50e27c7bd Merge branch 'MDL-67149-master' of https://github.com/sammarshallou/moodle 2019-11-08 10:09:58 +08:00
Jun Pataleta e2ba123d1c Merge branch 'MDL-67122-master' of https://github.com/mickhawkins/moodle 2019-11-08 09:57:20 +08:00
Andrew Nicols 1e96159444 Merge branch 'MDL-66404-master' of git://github.com/cescobedo/moodle 2019-11-08 09:24:10 +08:00
Andrew Nicols 284af93b5e MDL-67043 h5p: Whitespace fix 2019-11-08 08:27:13 +08:00
Andrew Nicols 6f1b145ea8 Merge branch 'MDL-67043-master' of git://github.com/cescobedo/moodle 2019-11-08 08:25:14 +08:00
Eloy Lafuente (stronk7) ed2fb5710f Merge branch 'MDL-67048_master' of https://github.com/adpe/moodle 2019-11-08 00:45:05 +01:00
Eloy Lafuente (stronk7) f34c8e86e7 Merge branch 'MDL-67058-master' of git://github.com/vmdef/moodle 2019-11-08 00:30:08 +01:00
cescobedo 3b85322940 MDL-67173 core_h5p: Translate non-localURL in WS to invalidurl
The WebService should return invalidurl when the coding error is
"Coding error detected, it must be fixed by a programmer: out_al_local_url called on a non-local URL"
So, we translate the error to be used by Mobile App.
2019-11-07 23:05:41 +01:00
Eloy Lafuente (stronk7) 9eda724470 Merge branch 'MDL-67153' of https://github.com/timhunt/moodle 2019-11-07 19:49:42 +01:00
Paul Holden afaf64b334 MDL-67174 core: update standard plugins list.
Add Forum summary report and Atto emoji picker.
2019-11-07 16:45:50 +00:00
Sara Arjona 3a9c515057 Merge branch 'MDL-66683-master' of git://github.com/cescobedo/moodle 2019-11-07 17:41:22 +01:00
cescobedo 5d69038bb6 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:29:30 +01:00
Michael Hawkins 209cfe64fb MDL-67122 forumreport_summary: Fix template context eg and line length
The template context needed updating now it populates a single select
and the summary_table constructor params should be broken over 2 lines
2019-11-08 00:15:48 +08:00
Jake Dallimore 78d65acd54 MDL-66257 tool_cohortroles: unit test for users in multiple cohorts 2019-11-07 23:47:18 +08:00
cescobedo 7b5f4a62c1 MDL-66257 tool_cohortroles: Unassign the role on removal cohortroles. 2019-11-07 23:47:17 +08:00
Michael Hawkins 30fc34761b MDL-67122 forumreport_summary: Apply filters to report download 2019-11-07 23:42:34 +08:00
Sara Arjona 830eab425c Merge branch 'MDL-67166-master' of git://github.com/bmbrands/moodle 2019-11-07 16:30:18 +01:00
Bas Brands fda23bf7cd MDL-67129 atto_h5p: uneditable .h5p-placeholder container 2019-11-07 14:06:38 +01:00
Eloy Lafuente (stronk7) a5cd14e4d8 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:44:06 +01:00
Juan Leyva ff490afbff MDL-67167 block: Force returned configuration values to be JSON encoded
Contributed plugins may set non-scalar values as valid instance configuration values (the core RSS client block does the same)
2019-11-07 13:29:52 +01:00
Jun Pataleta af9a491478 Merge branch 'MDL-67084-master' of git://github.com/junpataleta/moodle 2019-11-07 19:40:55 +08:00
Marina Glancy 9f2c665999 MDL-67084 core_form: duration element should export arrays 2019-11-07 19:21:16 +08:00
Jun Pataleta c4e1c9d167 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:42:07 +08:00
Jun Pataleta 8a3316bd9b MDL-66598 auth_oauth2: Add warning messages in confirm emails 2019-11-07 18:42:07 +08:00
Jun Pataleta df6092d65c 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:42:07 +08:00
Bas Brands 5092133b8f MDL-67166 theme_classic: H5P embedded styles 2019-11-07 10:57:39 +01:00
cescobedo 0477e526e4 MDL-66404 core_h5p: Add new h5p_deleted event 2019-11-07 10:43:20 +01:00
cescobedo fba5bba829 MDL-66404 core_h5p: Add new h5p_viewed event 2019-11-07 10:43:13 +01:00
Amaia Anabitarte 21cb97560a MDL-67110 filter_h5p: Removing wildcard characters 2019-11-07 10:27:53 +01:00
Amaia Anabitarte b57e1c9590 MDL-67059 core_h5p: UI to manually upload H5P content type libraries
Co-authored by: Mihail Geshoski <mihail@moodle.com>
2019-11-07 16:54:28 +08:00
cescobedo 65ae2441f3 MDL-67043 core_h5p: Add new ws to get the H5P trusted file 2019-11-07 08:47:25 +01:00
Jun Pataleta cf29a4857a Merge branch 'MDL-66701_master' of git://github.com/dmonllao/moodle 2019-11-07 15:41:45 +08:00
David Monllaó d7d52aae15 MDL-66701 report_insights: Target's extra info on the insights report 2019-11-07 15:09:15 +08:00
emdalton 05b0e3158c MDL-66701 analytics: Insights report descriptions 2019-11-07 15:09:14 +08:00
Ryan Wyllie 2667acf121 MDL-66893 mod_forum: move grade button into region main 2019-11-07 14:53:38 +08:00
Ryan Wyllie 69848e719b MDL-66893 mod_forum: add nested v2 support to grader 2019-11-07 14:53:38 +08:00
Ryan Wyllie 8404c2b101 MDL-66893 mod_forum: update grader search 2019-11-07 14:53:38 +08:00
Ryan Wyllie 8a09616bc2 MDL-66893 mod_forum: add grader status to grader UI 2019-11-07 14:53:37 +08:00
Ryan Wyllie def5f14939 MDL-66893 mod_forum: update user picker in grader UI 2019-11-07 14:53:37 +08:00
Ryan Wyllie 035bd996cb MDL-66893 mod_forum: show expand conversation in nested view 2019-11-07 14:53:37 +08:00
Ryan Wyllie d9fedf3dc8 MDL-66893 mod_forum: update user content region in grader UI 2019-11-07 14:53:37 +08:00
Ryan Wyllie 4c98e56c96 MDL-66893 mod_forum: update navigation bar in grader UI 2019-11-07 14:53:37 +08:00
Ryan Wyllie 46d51c8ca9 MDL-66893 mod_forum: update grading panel UI in grader 2019-11-07 14:53:37 +08:00
Jun Pataleta ae05752048 Merge branch 'MDL-66372' of https://github.com/Chocolate-lightning/moodle_forum-project 2019-11-07 13:22:32 +08:00
Michael Hawkins cf8393be4b MDL-66372 forumreport_summary: Tidy up per page and bulk ops handling 2019-11-07 12:58:02 +08:00
Michael Hawkins 20b064beb0 MDL-66372 forumreport_summary: Added ability to select pagination size
This also includes some refactoring of the bulk actions menu, so both
elements are correctly position within the page, as well as fixing the
alignment of the bulk dropdown with the download dropdown.
2019-11-07 12:58:02 +08:00
Michael Hawkins d418bda8c7 MDL-66372 forumreport_summary: Improved generate with filters override
Previously this override simply appended any GET params from the
action it was overriding to the final action URL, now it can handle
overriding param values, so that they are updated or added as needed
2019-11-07 12:58:02 +08:00
Michael Hawkins 0d8cd4af31 MDL-66372 forumreport_summary: Report template cleanup 2019-11-07 12:58:02 +08:00
Adrian Greeve d5e303f8e3 Merge branch 'MDL-67057-master' of git://github.com/andrewnicols/moodle 2019-11-07 11:59:00 +08:00
Andrew Nicols 1c66ef98ed MDL-67057 h5p: Set framework file when saving package 2019-11-07 11:56:12 +08:00
Andrew Nicols 5730749f5d Merge branch 'MDL-66359-master' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-07 10:48:33 +08:00
Mathew May 546bf3c68e MDL-66359 mod_forum: Restrict grader by groups 2019-11-07 10:47:45 +08:00
Mathew May e3bb3da406 MDL-66359 core_course: Modify get_enrolled_users_by_cmid
We need to also provide a user's group along with the current information
2019-11-07 10:47:45 +08:00
Jun Pataleta a65873c37d Merge branch 'MDL-66592_master' of git://github.com/dmonllao/moodle 2019-11-07 10:35:21 +08:00
Adrian Greeve 634485c56f Merge branch 'MDL-66890-master' of https://github.com/Chocolate-lightning/moodle_forum-project 2019-11-07 10:08:54 +08:00
Andrew Nicols 6f44f09495 Merge branch 'MDL-67076-master' of git://github.com/sarjona/moodle 2019-11-07 09:44:35 +08:00
Andrew Nicols 7edf0138fb MDL-67057 h5p: Language string fix 2019-11-07 09:37:27 +08:00
Andrew Nicols 884ba60a50 Merge branch 'MDL-67057-master' of git://github.com/andrewnicols/moodle 2019-11-07 09:20:27 +08:00
Andrew Nicols 021c180c83 MDL-67057 h5p: Remove unreachable code 2019-11-07 09:13:25 +08:00
Mihail Geshoski 6ac0f57073 MDL-66762 tool_dataprivacy: Sanitize the extra fields in the webservice 2019-11-07 09:00:19 +08:00
Paul Holden 7455b741c9 MDL-66762 user: escape extra/email user fields. 2019-11-07 09:00:19 +08:00
Paul Holden eb9f830604 MDL-66762 user: stricter email validation. 2019-11-07 09:00:19 +08:00
David Monllaó 9846b5f8c5 MDL-66592 analytics: Split text and link 2019-11-07 08:25:35 +08:00
David Monllaó 279f370b3f MDL-66592 report_insights: Help icon for indicator calculations desc 2019-11-07 08:25:35 +08:00
Sara Arjona c07f31ae2c MDL-67057 core_h5p: Add capability to update content-type libraries 2019-11-07 07:19:59 +08:00
Sara Arjona 7a0d9bd5e4 MDL-67057 core_h5p: New method to get latest library version 2019-11-07 07:19:59 +08:00
Sara Arjona 285976f1bd MDL-67057 core_h5p: Improve displaying errors 2019-11-07 07:19:59 +08:00
Sara Arjona 5a266a579c MDL-67057 core_h5p: Add helper class 2019-11-07 07:19:58 +08:00
Eloy Lafuente (stronk7) d6c704bf8e Merge branch 'MDL-42638-master' of https://github.com/lucaboesch/moodle 2019-11-06 22:32:56 +01:00
Eloy Lafuente (stronk7) c1f5154a10 Merge branch 'MDL-67127-master' of git://github.com/ferranrecio/moodle 2019-11-06 22:31:15 +01:00
Tim Hunt c9491626ab MDL-67153 question bank: let qtype add actions to the edit menu 2019-11-06 19:32:15 +00:00
Victor Deniz Falcon 5315acb47c MDL-67058 core_h5p: task to get latest content types version from H5P 2019-11-06 18:17:34 +00:00
Sara Arjona 56f6e1d970 Merge branch 'MDL-67140' of https://github.com/paulholden/moodle 2019-11-06 18:53:22 +01:00
sam marshall 81305c3bbe 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:24:30 +00:00
Michael Hawkins 46fbfb98fe MDL-66890 forumreport_summary: Improved filter close keyboard response 2019-11-06 17:10:09 +08:00
Jun Pataleta 42001cdb91 Merge branch 'MDL-67097-master-2' of https://github.com/snake/moodle 2019-11-06 16:12:46 +08:00
Sara Arjona 43c584a7cc Merge branch 'MDL-66984-change_password_url-with-user' of https://github.com/brendanheywood/moodle 2019-11-06 08:30:41 +01:00
Michael Hawkins b2aa354d30 MDL-66890 forumreport_summary: Added the ability to close filters
Previously, filters could only be closed by saving/submitting them.
Now, you are able to close and reopen them by opening another filter,
using the escape key, or clicking outside of the filter.
As per UX recommendations, filters retain any changes until the page
is reloaded (either via refresh or by saving a different filter).
2019-11-06 15:27:51 +08:00
Ryan Wyllie 4e53672929 MDL-66893 grade: update rubric template for grader 2019-11-06 13:29:52 +08:00
Ryan Wyllie bf7018b6bd MDL-66893 grade: update marking guide template for grader 2019-11-06 13:29:52 +08:00
cescobedo c0c489bb06 MDL-67082 core_h5p: Add new contexts to check h5p file permissions 2019-11-06 12:51:04 +08:00
cescobedo 3f6c7446ff MDL-67082 core_h5p: Check component_callback called for right context 2019-11-06 12:51:04 +08:00
Jake Dallimore 827735ef26 Merge branch 'MDL-67074-master' of git://github.com/andrewnicols/moodle 2019-11-06 11:48:21 +08:00
Jake Dallimore b63cb5b496 MDL-67097 libraries: add unit test verifying rtl directive failure case
When a closing comment is used, such as when we wrap css with the
rtl:begin:ignore and rtl:end:ignore (the latter being the closing),
it is ignored in the following case:
- If the closing comment is the last item in a csslist like:
div {/*rtl:begin:ignore*/left:20px; text-align:left/*rtl:end:ignore*/}
in which case there is no css rule following the comment for it to be
associated with. It is therefore not seen and registered, meaning we
continue ignoring rtl (a bug).
In such cases, we should either:
- ensure the comment is not the final element in the css list
- use self-closing (/*rtl:ignore*/) comments for each rule instead.
- use a self-closing comment on the entire css list, if applicable.
2019-11-06 08:57:27 +08:00
Jake Dallimore e968eb1e8c MDL-67097 libraries: update upgrade notes for sabberworm/php-css-parser
Until the upstream patch is accepted, we need to patch this locally.
2019-11-06 08:57:27 +08:00
Jake Dallimore 88267b1c68 MDL-67097 libraries: fix comment parsing in php-css-parser library
This fixes a bug when parsing the following rule-level and list-level
comments.

div {/*rtl:ignore*/left:10px;/*rtl:ignore*/ display:inline;}
/*rtl:ignore*/div {left:10px;} /*rtl:ignore*/ a {left:10px}

The latter rtl directive was being swallowed by the parser in these
cases and was not being properly allocated as a property of the rule
or csslist.

This restores the correct behaviour of the rtlcss library, which depends
on php-css-parser.
2019-11-06 08:57:27 +08:00
Jake Dallimore 5aa7d19615 MDL-67097 libraries: add unit tests for the core_rtlcss class
The core_rtlcss class extends the \MoodleHQ\RTLCSS\RTLCSS class. This
upstream library had tests, but these were not included in core. This
change uses those test cases to test core_rtlcss, to make sure future
lib changes don't break the css parsing.
2019-11-06 08:57:26 +08:00
AMOS bot d6c1c81752 Automatically generated installer lang files 2019-11-06 00:16:18 +00:00
Adrian Perez a40cb785b0 MDL-67048 progressbar: use bootstrap component to fix invert colors 2019-11-05 22:33:27 +01:00
Paul Holden dcab750551 MDL-67140 calendar: fix selector switching between days. 2019-11-05 16:41:12 +00:00
Luca Bösch c8f78f7106 MDL-42638 filters: Have emoticons respect <pre>. 2019-11-05 16:06:46 +01:00
Michael Hawkins aa86441b87 MDL-66161 output: Escaping fatal error message and URL strings 2019-11-05 13:44:37 +01:00
Juan Leyva 6d51e13f72 MDL-66377 user: Only allow active users to retrieve files via tokenpluginfile.php 2019-11-05 13:44:37 +01:00
Paul Holden 6330d48813 MDL-66228 mod_lesson: ensure return URL parameters are always local. 2019-11-05 13:44:37 +01:00
Eloy Lafuente (stronk7) 01aa126848 on-demand release 3.8dev+ 2019-11-05 13:34:51 +01:00
Eloy Lafuente (stronk7) d01d18cad8 NOBUG: Fixed SVG browser compatibility 2019-11-05 13:34:50 +01:00
Eloy Lafuente (stronk7) a42fec7739 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-11-05 13:34:49 +01:00
Ferran Recio fb2775c429 MDL-67127 mimetypes: add H5P to the default mime types list 2019-11-05 13:25:59 +01:00
Sara Arjona 40ea02e3ce Merge branch 'MDL-66399-master-fix' of git://github.com/andrewnicols/moodle 2019-11-05 11:06:14 +01:00
Andrew Nicols 2665f35cf0 MDL-67137 javascript: Add missing polyfills 2019-11-05 15:26:14 +08:00
Andrew Nicols 408eb5e0d9 MDL-66399 editor: Only set h5p settings if user can deploy 2019-11-05 14:19:08 +08:00
Adrian Greeve 2907f45106 Merge branch 'MDL-67047-master' of git://github.com/jleyva/moodle 2019-11-05 13:09:06 +08:00
Andrew Nicols b655690b04 MDL-67074 forum: Add a new toast region when in full screen mode 2019-11-05 12:10:51 +08:00
Andrew Nicols e943e7d56f Merge branch 'MDL-66381-master' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-11-05 11:58:56 +08:00
Mathew May bdcf8908ae MDL-66381 mod_forum: User search and dropdown 2019-11-05 11:58:28 +08:00
Jake Dallimore 7296c718a1 Merge branch 'MDL-66455-master' of git://github.com/lameze/moodle 2019-11-05 11:42:48 +08:00
AMOS bot 3f59f2693b Automatically generated installer lang files 2019-11-05 00:10:17 +00:00
Eloy Lafuente (stronk7) ea07527210 Merge branch 'MDL-67117-master-2' of git://github.com/marinaglancy/moodle 2019-11-05 01:03:58 +01:00
Jun Pataleta 08636b8524 Merge branch 'MDL-66582-master' of git://github.com/jleyva/moodle 2019-11-04 19:39:24 +08:00
Adrian Greeve f025022d62 Merge branch 'MDL-66679-master' of https://github.com/sammarshallou/moodle 2019-11-04 19:21:42 +08:00
Jake Dallimore f33ea855bf Merge branch 'MDL-67093-master' of git://github.com/andrewnicols/moodle 2019-11-04 19:21:41 +08:00
Adrian Greeve b00b51aab6 Merge branch 'MDL-66770-master-2' of https://github.com/ryanwyllie/moodle 2019-11-04 19:21:41 +08:00
Jun Pataleta fd8c021447 Merge branch 'MDL-67039_master' of git://github.com/dmonllao/moodle 2019-11-04 19:21:41 +08:00
Jun Pataleta fcc1facdca Merge branch 'MDL-66373-master-2' of https://github.com/Chocolate-lightning/moodle_forum-project 2019-11-04 19:21:40 +08:00
Adrian Greeve 385d07f6af Merge branch 'MDL-43189-master' of git://github.com/snake/moodle 2019-11-04 19:21:40 +08:00
Eloy Lafuente (stronk7) fa6c694baf Merge branch 'MDL-66990-master-enfix' of git://github.com/mudrd8mz/moodle 2019-11-04 19:21:40 +08:00
Adrian Greeve 69ff7df008 Merge branch 'MDL-46779-master' of https://github.com/ryanwyllie/moodle 2019-11-04 19:21:40 +08:00
Adrian Greeve f87a2e6fa0 Merge branch 'MDL-46779-master' of https://github.com/ryanwyllie/moodle 2019-11-04 19:21:39 +08:00
Adrian Greeve 0de5da02eb Merge branch 'MDL-66770-master-2' of https://github.com/ryanwyllie/moodle 2019-11-04 19:21:39 +08:00
Andrew Nicols 691c570776 Merge branch 'MDL-67087-master' of git://github.com/marinaglancy/moodle 2019-11-04 19:21:39 +08:00
Ryan Wyllie 9cec5dcaae MDL-66770 mod_forum: fix subscription behat tests 2019-11-04 11:29:29 +08:00
Michael Hawkins a949653167 MDL-66373 forumreport_summary: Introduced dates filter
Added the dates data filter, and refactored summaryreport_table to
handle passing filter content into the base SQL. Previously it was only
possible to add filter content into a separate part of the query.
2019-11-04 10:04:57 +08:00
Michael Hawkins 23affd76c2 MDL-66373 calendar: Added datetimes to timestamps conversion web service 2019-11-04 10:04:57 +08:00
Elizabeth Dalton 7229c5e6b5 MDL-66592 analytics: Descriptions for indicator calculations 2019-11-04 09:49:59 +08:00
David Monllaó b92c764872 MDL-67039 analytics: Unit tests for unidimensional arrays 2019-11-04 09:33:50 +08:00
David Monllaó 47b506e2f7 MDL-67039 analytics: Unidimensional array if no predictions 2019-11-04 09:32:05 +08:00
Marina Glancy 553b17a2c0 MDL-67117 filter_mathjaxloader: do not position to hash 2019-11-03 14:48:23 +01:00
AMOS bot a1d18d0218 Automatically generated installer lang files 2019-11-02 00:09:21 +00:00
Helen Foster 7ac4c9c1f6 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
* configdefaultrequestcategory, configenablecourserequests,
  configlockrequestcategory, lockrequestcategory, core_admin - clearer
  explanation
* configenablecompletion,core_completion - including reason for setting
  activity completion conditions
* emailstop,core - clearer wording
* setuplink_desc,tool_mobile - including where the app download page
  link is displayed and leaving the setting empty
2019-11-01 11:16:10 +01:00
Shamim Rezaie fffb043eae MDL-43189 core: improve validating db settings during cli install 2019-11-01 15:44:40 +08:00
Shamim Rezaie 6def9cd253 MDL-43189 core: Validate db prefix during installation 2019-11-01 15:44:40 +08:00
Ryan Wyllie ef2afe4c3d MDL-46779 editor: fix case of emoji picker lang string 2019-11-01 14:34:14 +08:00
Ryan Wyllie 667e5fd93f MDL-66770 mod_forum: put nested v2 display mode behind user preference 2019-11-01 13:17:24 +08:00
Ryan Wyllie 2602c7bfb5 MDL-66770 mod_forum: rename modern display mode to nested v2 2019-11-01 13:17:24 +08:00
Ryan Wyllie 787762b17a MDL-66770 mod_forum: move view selector out of settings drawer 2019-11-01 13:17:24 +08:00
Ryan Wyllie 1aac58b280 MDL-66770 mod_forum: move permalink into menu in modern display 2019-11-01 13:17:24 +08:00
Ryan Wyllie 1dced2a410 MDL-66770 theme: change switch styling from iOS to Material Design 2019-11-01 13:17:24 +08:00
Ryan Wyllie 9aa3a11d0e MDL-66770 mod_forum: change columns in discussion list table
Show the last post user, remove discussion author image, and fix
column widths to the size of the content.
2019-11-01 13:17:24 +08:00
Ryan Wyllie 454d76f689 MDL-66770 mod_forum: move subscription from menu into toggle 2019-11-01 13:17:24 +08:00
Ryan Wyllie 11786e6688 MDL-46779 editor: add emoji picker atto plugin 2019-11-01 12:43:34 +08:00
Mathew May 9d752481fc MDL-66381 core_course: Modify get_enrolled_users_by_cmid
We need to also provide a user's picture along with the current information
2019-11-01 11:46:37 +08:00
Andrew Nicols f18ab990f2 Merge branch 'MDL-67100-master' of git://github.com/sarjona/moodle 2019-11-01 11:07:40 +08:00
Andrew Nicols 760a745afc Merge branch 'MDL-66399-master-6' of git://github.com/bmbrands/moodle 2019-11-01 10:45:22 +08:00
Andrew Nicols cd0a9144b4 Merge branch 'MDL-66398-master' of git://github.com/aanabit/moodle 2019-11-01 10:39:08 +08:00
Jun Pataleta eb13152579 Merge branch 'MDL-67067-master' of git://github.com/mihailges/moodle 2019-11-01 10:07:13 +08:00
Ryan Wyllie 7a2d4f546f MDL-66770 mod_forum: general UI tweaks 2019-11-01 09:59:11 +08:00
Andrew Nicols f2a901173e MDL-67093 grading: Fetch cm with get_fast_modinfo 2019-11-01 08:49:12 +08:00
Eloy Lafuente (stronk7) 6e4cee745b Merge branch 'MDL-66807_master' of git://github.com/dmonllao/moodle 2019-11-01 00:08:16 +01:00
Daniel Poggenpohl a009aad404 MDL-67016 profile: current user should see his own courses 2019-10-31 14:35:56 +01:00
Juan Leyva 52e0935691 MDL-67047 block_myoverview: Return custom fields selector values 2019-10-31 14:24:25 +01:00
Eloy Lafuente (stronk7) e04a73ccc0 on-demand release 3.8dev+ 2019-10-31 13:35:27 +01:00
Eloy Lafuente (stronk7) c3f2976047 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-31 13:35:20 +01:00
Juan Leyva 62a08b1df8 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 12:03:39 +01:00
Johan Dobbelstein 5b39bf184d 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 12:03:39 +01:00
Simey Lameze 65137025ff MDL-66455 calendar: add coverage for event types in subscription page 2019-10-31 18:44:14 +08:00
Simey Lameze 19bea57b90 MDL-66455 calendar: show site level subscriptions 2019-10-31 18:44:14 +08:00
Jake Dallimore 817dee3337 MDL-67086 css: Reverting MDL-66982, causing global RTL problems
Revert "Merge branch 'MDL-66982_master' of https://github.com/nadavkav/moodle"

This reverts commit 7ddf5ab75e, reversing
changes made to 32b625b6de.
2019-10-31 11:13:30 +01:00
Sara Arjona ca7de4b6d7 MDL-67100 core_h5p: Add autoloader to the h5p_file_storage_test 2019-10-31 11:07:16 +01:00
Bas Brands 59e87e6274 MDL-66399 atto_h5p: allow h5p file uploads in atto 2019-10-31 10:58:37 +01:00
Adrian Greeve fcad5ca254 Merge branch 'MDL-66074-OCT28' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-10-31 15:33:37 +08:00
Mathew May b1909eebed MDL-66074 mod_forum: Correct 0 length styles 2019-10-31 15:30:48 +08:00
Adrian Greeve be153c65d9 Merge branch 'MDL-66247-master' of git://github.com/andrewnicols/moodle 2019-10-31 14:34:52 +08:00
Adrian Greeve d0d78c36f8 Merge branch 'MDL-66074-OCT28' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-10-31 13:38:49 +08:00
Mathew May fdf26fea78 MDL-66074 tool_dataprivacy: Raise the expected download file size 2019-10-31 12:55:55 +08:00
David Monllaó 87e5342a5b MDL-66807 analytics: Fix templates for gmail 2019-10-31 11:41:53 +08:00
Andrew Nicols 9bacc49d78 Merge branch 'MDL-67088-master' of git://github.com/marinaglancy/moodle 2019-10-31 11:07:56 +08:00
Andrew Nicols d1529dc66d MDL-66247 accessibility: Correct notification alert role support 2019-10-31 07:29:58 +08:00
Eloy Lafuente (stronk7) 61bf77ff9a Merge branch 'MDL-67038_master' of git://github.com/dmonllao/moodle 2019-10-31 00:28:45 +01:00
Marina Glancy 02282f8c49 MDL-67088 mod_assign: compare time without case for MacOS compat 2019-10-30 19:23:38 +01:00
Eloy Lafuente (stronk7) 54b3ffa0f5 MDL-66074 mod_forum: fix SQL whitespace causing oracle to fail 2019-10-30 19:19:12 +01:00
Marina Glancy bcfa5e248c MDL-67087 cachestore_redis: fix warning in phpunit 2019-10-30 18:52:22 +01:00
sam marshall 225eb7b27e MDL-66679 Forms: Submit button remains disabled after file download
When you download a file directly from a Moodle form submit button,
the submit button disables when you click it, but you remain on that
page so we need to re-enable the button.

This commit causes it to re-enable once the file download finishes,
setting a temporary cookie to indicate this to the JavaScript code.

It also adds a method to disable the system on a given form by
setting data-double-submit-protection="off".
2019-10-30 16:36:28 +00:00
Amaia Anabitarte acae15c710 MDL-66398 filter_displayh5p: Enabled by default. Fixing Unit tests 2019-10-30 12:14:27 +01:00
Amaia Anabitarte 6d2c5025b2 MDL-66398 filter_h5p: Improve H5P filter to allow internal file URLs 2019-10-30 12:14:27 +01:00
Eloy Lafuente (stronk7) 9554d68ddf Merge branch 'MDL-66593-master' of git://github.com/cescobedo/moodle 2019-10-30 11:19:40 +01:00
Sara Arjona 743462111f MDL-67076 core_h5p: Add preventredirect parameter to embed 2019-10-30 10:04:26 +01:00
Mihail Geshoski ab02687e30 MDL-67067 core_h5p: Fix coding style issues and undocumented functions 2019-10-30 15:22:40 +08:00
Mihail Geshoski b54ab19093 MDL-67067 core_h5p: Remove unused method in framework implementation 2019-10-30 15:22:25 +08:00
Mihail Geshoski abf6d1c395 MDL-67067 core_h5p: Load cached assets by default 2019-10-30 15:21:57 +08:00
Jake Dallimore f3b08d9994 Merge branch 'MDL-64254-master' of git://github.com/jleyva/moodle 2019-10-30 14:35:42 +08:00
cescobedo e24f4a2ecd MDL-66593 core_backup: Replace h5p/embed.php url for H5PEMBED@$ 2019-10-30 06:46:35 +01:00
Adrian Greeve 51cc5e1789 Merge branch 'MDL-66074-OCT28' of git://github.com/Chocolate-lightning/moodle_forum-project 2019-10-30 13:44:59 +08:00
Mathew May c38eb13585 MDL-66074 mod_forum: Forum grading GDPR provider 2019-10-30 13:03:59 +08:00
Mathew May a62c68fb5f MDL-66074 mod_forum: Mustache and PHP documentation for grading 2019-10-30 13:03:59 +08:00
Mathew May 61d508be0a MDL-66074 mod_forum: Add sorting in WS for discussion fetching 2019-10-30 13:03:59 +08:00
Mathew May a3a3a4f80c MDL-66074 mod_forum: Grader module documentation 2019-10-30 13:03:59 +08:00
Mathew May cc1a7689cd MDL-66074 mod_forum: Grader interface documentation 2019-10-30 13:03:59 +08:00
Mathew May 046ebd3ac3 MDL-66074 mod_forum: Grader documentation 2019-10-30 13:03:59 +08:00
Mathew May 4ab14bbb00 MDL-66074 mod_forum: Documentation and hiding conversation elements 2019-10-30 13:03:59 +08:00
Mathew May e0bc21946a MDL-66074 core_toast: Documentation 2019-10-30 13:03:59 +08:00
Mathew May 072ee7f750 MDL-66074 core_form: Foce point value to always be 100 2019-10-30 13:03:59 +08:00
Mathew May 9f1195fa66 MDL-66074 core_grade: Documentation 2019-10-30 13:03:59 +08:00
Mathew May 47919bbe78 MDL-66074 gradingform_rubric: Documentation and selectors 2019-10-30 13:03:59 +08:00
David Monllaó ef05f29267 MDL-67038 analytics: Remove null strings from the DB 2019-10-30 12:40:32 +08:00
Jun Pataleta 0a0dfc4475 Merge branch 'MDL-67054' of https://github.com/stronk7/moodle 2019-10-30 10:38:20 +08:00
Mathew May 9c2c79f5fb MDL-66074 gradingform_guide: Documentation and selectors 2019-10-30 10:23:41 +08:00
Mathew May dc0145b19e MDL-66074 core_course: Correct documentation 2019-10-30 10:23:41 +08:00
Mathew May eb9df053eb MDL-66697 gradingform_rubric: Support new grading panel
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols ce1c470167 MDL-66841 forum: Display grade update errors to user
Part of MDL-66074

This change modifies the return val for all of the grading functions to
allow them to add additional information.
This means that a grading service can suppress a Grade saved message if
there were no changes, for example.

This also adds a distinction between:
- Errored (Exception thrown in the WS call)
- Failed (Warning in the output of the WS call)
- Success (Grade actually saved)
- None of the above (No save, no fail, no change)
2019-10-30 10:23:41 +08:00
Mathew May 18dd283a0e MDL-66074 mod_forum: Implement spinner for user change 2019-10-30 10:23:41 +08:00
Mathew May 1d709d7678 MDL-66074 mod_forum: Relocate the grader button
Also adding capability checks to the button.
2019-10-30 10:23:41 +08:00
Andrew Nicols aa04b722f3 MDL-66074 mod_forum: Make initial user id optional 2019-10-30 10:23:41 +08:00
Andrew Nicols eaee64778b MDL-66845 mod_forum: Hook up save button
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols 45c0584c55 MDL-66845 mod_forum: Convert user picker to class
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols c72f5e33c5 MDL-66845 core: YUI Dialogues should have the same zIndex as bootstrap
Part of MDL-66074

This change allows YUI Modals to sit in the same space above the
fullscreen modal and other such elements.
2019-10-30 10:23:41 +08:00
Mathew May 3d58c1be3d MDL-66365 mod_forum: Add a modal to show a selected post in context
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols 77ee8778a8 MDL-66828 mod_forum: Display notification on grade save
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols 224ea04e68 MDL-66828 core: Add toast-style notifications
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols b253a4f21d MDL-66809 core_grades: Implement scale-based marking
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols 38f3bd93af MDL-66700 gradingform_guide: Support new grading panel
Part of MDL-66074
2019-10-30 10:23:41 +08:00
Andrew Nicols 57732a1c8e MDL-66700 theme: Add form inset capabiity
Part of MDL-66074

This allows a button to be insert into the left or right of a form
element.
2019-10-30 10:23:40 +08:00
Simey Lameze d3b890f85e MDL-66362 mod_forum: Add forum name to the grading panel breadcrumb
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols f281c61642 MDL-66722 mod_forum: Pull grader into UI
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 09f92d6644 MDL-66722 forum: Add the grading component information
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 9adedccd2b MDL-66722 core_grades: Add simple direct grading to gradingpanel
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols f8da1b9353 MDL-66722 forum: Add gradeitem storage handler
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 65903bd414 MDL-66722 grade: Add coverage files
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 94d5227916 MDL-66696 forum: Add forum_grades table
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 92b229c5f4 MDL-66079 mod_forum: Add forum grade support
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols dc86a0f1c6 MDL-66079 mod_forum: Add field to support whole forum grading
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 629726dd3f MDL-66079 assign: Switch to new gradeitem API
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols 1adda7ada6 MDL-66079 workshop: Switch to new gradeitem API
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Andrew Nicols fcc88fddba MDL-66079 core_grades: Add support for multiple grade items in an activity
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Mathew May bae674695f MDL-66077 mod_forum: Basic forum grader implementation
Part of MDL-66074
2019-10-30 10:23:40 +08:00
Mathew May 34e6dd2475 MDL-66078 mod_forum: Add webservice to pull discussion data for user
Part of MDL-66074
2019-10-30 10:23:40 +08:00
AMOS bot 5b9b24dfee Automatically generated installer lang files 2019-10-30 00:10:46 +00:00
Eloy Lafuente (stronk7) 25676441b3 MDL-67054 upgrade: prevent potential PHP notice
In some sites $CFG->requestcategoryselection may be not defined.

So this just wraps the use within empty, keeping the spirit intact,
aka, invert whatever the precious setting was storing.

null, 0, false, '0' => 1
1, true, '1' => 0
2019-10-29 23:27:26 +01:00
Eloy Lafuente (stronk7) d7699706da on-demand release 3.8dev+ 2019-10-29 21:03:47 +01:00
Eloy Lafuente (stronk7) 9eebe2c0bd NOBUG: Fixed file access permissions 2019-10-29 21:03:47 +01:00
Eloy Lafuente (stronk7) 229ce2a754 NOBUG: Fixed SVG browser compatibility 2019-10-29 21:03:41 +01:00
Eloy Lafuente (stronk7) 2474ed002c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-29 21:03:40 +01:00
Juan Leyva 0a063e6dea MDL-64254 mod_forum: New WS mod_forum_update_discussion_post 2019-10-29 13:52:07 +01:00
Juan Leyva 131bfaa8cd MDL-64254 mod_forum: New WS mod_forum_prepare_draft_area_for_post 2019-10-29 12:13:23 +01:00
Juan Leyva 9a023ef3b4 MDL-64254 mod_forum: New WS mod_forum_get_discussion_post 2019-10-29 12:13:20 +01:00
Jake Dallimore 82ed166c1f Merge branch 'MDL-66945' of git://github.com/stronk7/moodle 2019-10-29 14:55:43 +08:00
Jake Dallimore 72a5ab2130 Merge branch 'MDL-66965' of https://github.com/stronk7/moodle 2019-10-29 14:13:00 +08:00
Andrew Nicols b57c47ce2e MDL-66609 core_h5p: Trailing whitespace fix 2019-10-29 11:27:44 +08:00
Andrew Nicols 884670687f MDL-66609 core_h5p: Whitespacep fix 2019-10-29 11:23:07 +08:00
Andrew Nicols 6850374bf5 MDL-66609 core: Version bump for h5p 2019-10-29 10:45:55 +08:00
Andrew Nicols 08460f270f Merge branch 'MDL-66609-master' of git://github.com/andrewnicols/moodle 2019-10-29 10:44:31 +08:00
Sara Arjona 8fda136dc8 MDL-66609 core_h5p: Add capability to deploy H5P content 2019-10-29 10:22:44 +08:00
Amaia Anabitarte a3cdaa8dd9 MDL-66609 core_h5p: Autoload for H5P third party library classes 2019-10-29 10:22:44 +08:00
Mihail Geshoski df74cd4aea MDL-66609 core_h5p: Use factory methods instead of framework::instance() 2019-10-29 10:22:44 +08:00
Sara Arjona 5da7a7fc31 MDL-66609 core_h5p: Change core files when upgrading lib
This commit contains the changes required when upgrading the H5P
PHP library.
2019-10-29 10:22:44 +08:00
Sara Arjona 6415316646 MDL-66609 core_h5p: Upgrade H5P library to 1.24 2019-10-29 10:22:43 +08:00
Sara Arjona 810d7a3d2e MDL-66609: core_h5p: Add <component>_get_path_from_pluginfile method
This method has been added to all the components having some exceptions
with the way they treat the itemid in the pluginfile paths.
2019-10-29 10:22:43 +08:00
Andrew Nicols 9e67f5e366 MDL-66609 core_h5p: Make use of upstream change for getting itemid 2019-10-29 10:22:43 +08:00
Andrew Nicols 6faafc0c8e MDL-66609 core_h5p: Add getDependencyPath to H5P library 2019-10-29 10:22:43 +08:00
Amaia Anabitarte e96569cc1e MDL-66609 core_h5p: Unit test coverage 2019-10-29 10:22:43 +08:00
Sara Arjona f41a75f6f0 MDL-66609 core_h5p: Update the h5p-resizer.js in the filter 2019-10-29 10:22:43 +08:00
Sara Arjona 01923a07aa MDL-66609 core_h5p: Add new strings 2019-10-29 10:22:43 +08:00
Sara Arjona 35221a2e15 MDL-66609 core_h5p: Add some H5P styles to themes 2019-10-29 10:22:43 +08:00
Sara Arjona 360755cc56 MDL-66609 core_h5p: New capability h5p:setdisplayoptions 2019-10-29 10:22:43 +08:00
Sara Arjona 60bd7a8021 MDL-66609 core_h5p: Update phpunit.xml.dist 2019-10-29 10:22:43 +08:00
Sara Arjona b6fb5f0362 MDL-66609 core_h5p: Update the h5p-resizer.js reference in Atto 2019-10-29 10:22:43 +08:00
Mihail Geshoski 27fa4ba3d4 MDL-66609 core_h5p: Unit test framework interface implementation 2019-10-29 10:22:43 +08:00
Mihail Geshoski 09d8143d84 MDL-66609 core_h5p: Framework interface implementation 2019-10-29 10:22:43 +08:00
Sara Arjona 35b62d00b8 MDL-66609 core_h5p: Player and embed.php implementation 2019-10-29 10:22:43 +08:00
Adrian Greeve 9ea303e773 MDL-66609 core_h5p: Unit tests for file_storage. 2019-10-29 10:22:43 +08:00
Adrian Greeve e55cc513f4 MDL-66609 core_h5p: Implement the file_storage interface. 2019-10-29 10:22:43 +08:00
Amaia Anabitarte bb4f59f80f MDL-66609 core_h5p: Creating new H5P tables 2019-10-29 10:22:43 +08:00
Amaia Anabitarte 45899564b3 MDL-66609 core_h5p: New core_h5p subsystem
New H5P libraries have been added to Moodle core_h5p in /lib/h5p.
2019-10-29 10:22:43 +08:00
Andrew Nicols 501c568e3e Merge branch 'MDL-67027' of https://github.com/paulholden/moodle 2019-10-29 08:43:12 +08:00
Eloy Lafuente (stronk7) 7ddf5ab75e Merge branch 'MDL-66982_master' of https://github.com/nadavkav/moodle 2019-10-28 20:12:20 +01:00
Eloy Lafuente (stronk7) 32b625b6de Merge branch 'MDL-66956' of https://github.com/timhunt/moodle 2019-10-28 19:41:58 +01:00
Eloy Lafuente (stronk7) 9cc98e2af1 Merge branch 'MDL-66989-master' of git://github.com/mihailges/moodle 2019-10-28 19:34:56 +01:00
Andrew Nicols 7e50ca7645 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:14:27 +01:00
Andrew Nicols 5123b5c9d7 MDL-66722 forum: Add grade capability
Part of MDL-66074
2019-10-28 13:55:50 +08:00
Andrew Nicols 1e8184f022 MDL-66370 mod_forum: Make a full screen layout
Part of MDL-66074
2019-10-28 13:55:13 +08:00
Mathew May 06e50afd5e MDL-66077 course: Add WS to get list of users in a cmid
Part of MDL-66074
2019-10-28 13:55:12 +08:00
Andrew Nicols af9ca2a658 MDL-66077 core: Loadingicon needs jQuery nodes
Part of MDL-66074
2019-10-28 13:55:12 +08:00
Andrew Nicols 373d43aef1 MDL-66074 core: Add a renderForPromise function
Promises only take a single argument so this makes it easier to chain
promises and use them with await.
2019-10-28 13:55:12 +08:00
Jun Pataleta 46f1284768 Merge branch 'm38_MDL-65811_Fix_Incorrect_ORDER_BY_Search' of https://github.com/scara/moodle 2019-10-28 11:37:27 +08:00
AMOS bot 1a96f38ad0 Automatically generated installer lang files 2019-10-28 00:09:09 +00:00
AMOS bot 4cd736ceec Automatically generated installer lang files 2019-10-27 00:09:06 +00:00
Matteo Scaramuccia aa0a602b10 MDL-65811 database: Fix subsetting in MSSQL 2019-10-25 23:00:32 +02:00
Paul Holden c0c9cf32f2 MDL-67027 calendar: fix event update form validation. 2019-10-25 17:30:47 +01:00
Eloy Lafuente (stronk7) 88d29a1bb8 MDL-66965 core: php74 curly 2 square braces changes
Note this only modified core files, still there are a lot
of curly brace uses but all them are within 3rd part
libraries and will be handled apart.
2019-10-25 17:41:10 +02:00
Eloy Lafuente (stronk7) 50a1d9372f on-demand release 3.8dev+ 2019-10-25 15:30:04 +02:00
Eloy Lafuente (stronk7) 5306a066d0 NOBUG: Fixed SVG browser compatibility 2019-10-25 15:30:02 +02:00
Eloy Lafuente (stronk7) db105a5fe6 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-25 15:30:01 +02:00
Mihail Geshoski 8cc2a8c780 MDL-66989 tool_uploaduser: Fix incorrect 'More help' link in help popup 2019-10-25 11:49:03 +08:00
Jake Dallimore 6cc1190638 Merge branch 'master_MDL-66973' of https://github.com/golenkovm/moodle 2019-10-25 11:09:49 +08:00
Jun Pataleta c23313f6e8 Merge branch 'MDL-66968' of https://github.com/stronk7/moodle 2019-10-25 10:20:05 +08:00
Adrian Greeve 7067db2847 Merge branch 'MDL-62485' of https://github.com/willianmano/moodle 2019-10-25 09:32:22 +08:00
Adrian Greeve b3e6241737 Merge branch 'MDL-65017-master-fix' of git://github.com/junpataleta/moodle 2019-10-25 08:58:48 +08:00
Jun Pataleta acdce3a0e4 MDL-65017 mod_forum: Test based on event type and not objectid
* Plus fix warning about \test_capability_manager::can_delete_post()
2019-10-25 08:39:32 +08:00
Jake Dallimore c5d333efe8 Merge branch 'MDL-66493-readstring_accel' of https://github.com/brendanheywood/moodle 2019-10-25 08:25:41 +08:00
Eloy Lafuente (stronk7) f4feabb83f MDL-66968 php74: array_key_exists() for objects is deprecated
Replace it for correct property_exists() when the element
being inspected is a property of object/class.

Amended and squased changes:
- keep mongo unmodified. The information is array, hence correct.
- fix a couple of messaging phpdocs that were incorrect.

Amended take#2:
- As far as mongo resturns BSONDocument that is ArrayObject, aka
implements ArrayAccess, we have decided to explicitly cast results
to array so existing array_key_exists() and other accesses will
continue working the same.
2019-10-25 00:49:04 +02:00
Willian Mano 7a27c90102 MDL-62485 enrol: Success message after enroll/unenroll user in a course 2019-10-24 13:43:27 -03:00
Jun Pataleta 9f1af3771d Merge branch 'MDL-66543-master' of git://github.com/tobiasreischmann/moodle 2019-10-24 23:08:43 +08:00
Tobias Reischmann 556c4f3309 MDL-66543 forms: Make (hard) frozen textareas readonly (or disabled) 2019-10-24 13:44:15 +02:00
Brendan Heywood d6f5fbb720 MDL-66493 filelib: readstring_accel should never use xsendfile 2019-10-24 21:30:46 +11:00
Eloy Lafuente (stronk7) 2ffdd72618 Merge branch 'MDL-66935-lock-clashes' of https://github.com/brendanheywood/moodle 2019-10-24 09:59:19 +02:00
Adrian Greeve 4c4413922f Merge branch 'MDL-66876-master' of git://github.com/jleyva/moodle 2019-10-24 15:14:45 +08:00
Adrian Greeve e1aebcfdd8 Merge branch 'MDL-65017-master' of git://github.com/jleyva/moodle 2019-10-24 13:53:01 +08:00
Jun Pataleta ff7cf74d6d Merge branch 'MDL-66927-run-new-adhoc' of https://github.com/brendanheywood/moodle 2019-10-24 13:45:27 +08:00
Brendan Heywood 7e086935e3 MDL-66935 core_lock: Fix resource key clashes in db and postgres locks 2019-10-24 15:04:56 +11:00
Jun Pataleta 68a65b0039 Merge branch 'MDL-65896-int-fix-1' of https://github.com/ryanwyllie/moodle 2019-10-24 12:00:45 +08:00
Ryan Wyllie 7b8d852929 MDL-65896 core: more IE11 fixes for emoji picker 2019-10-24 10:41:52 +08:00
Jake Dallimore ebca610a44 Merge branch 'MDL-65400-master' of git://github.com/jleyva/moodle 2019-10-24 09:28:31 +08:00
AMOS bot bf36f7defb Automatically generated installer lang files 2019-10-24 00:09:17 +00:00
Eloy Lafuente (stronk7) e0ad4189a5 Merge branch 'MDL-64298-master' of git://github.com/jleyva/moodle 2019-10-23 22:21:39 +02:00
Eloy Lafuente (stronk7) aedd166c67 Merge branch 'MDL-67001-master' of https://github.com/lucaboesch/moodle 2019-10-23 22:16:22 +02:00
Eloy Lafuente (stronk7) 2a724095bd Merge branch 'MDL-67004-master' of git://github.com/dpalou/moodle 2019-10-23 19:50:38 +02:00
Eloy Lafuente (stronk7) d020e1b779 Merge branch 'MDL-65349-profile-match-greedy' of https://github.com/brendanheywood/moodle 2019-10-23 18:35:46 +02:00
Juan Leyva 016cffb936 MDL-64298 gradereport_user: Fix WS returned parameter description
feedbackformat must be optional always
2019-10-23 17:56:09 +02:00
Sara Arjona 8321ecbfcd Merge branch 'master_MDL-66225_async_backup_state' of https://github.com/mattporritt/moodle 2019-10-23 17:39:10 +02:00
Juan Leyva e613b1ff43 MDL-66876 core_filter: Fix context in Web Service warning 2019-10-23 17:06:56 +02:00
Juan Leyva bc72a54cb1 MDL-65400 block: Support returning settings for core blocks 2019-10-23 15:33:56 +02:00
Juan Leyva c9acdfb6dc MDL-65400 block: Support getting block settings via WS 2019-10-23 15:33:56 +02:00
Dani Palou 187b11f40d MDL-67004 enrol: Include core_enrol_search_users in the mobile service 2019-10-23 12:59:34 +02:00
Sara Arjona 344bb67df3 Merge branch 'MDL-66676_master' of https://github.com/nadavkav/moodle 2019-10-23 12:07:24 +02:00
Luca Bösch f68616d750 MDL-67001 question: alignment and form spaces. 2019-10-23 10:59:24 +02:00
Ryan Wyllie 628b4ca262 MDL-65896 core: fix emoji picker IE11 support 2019-10-23 15:25:27 +08:00
Jun Pataleta b9b10b900d MDL-65896 admin: Fix checking for full unicode support
Instead of checking whether the charset is set to 'utf8' when
determining full unicode support, it should be checking whether the
charset is set to 'utf8mb4'.
2019-10-23 15:25:27 +08:00
Jun Pataleta b412069977 Merge branch 'MDL-66971-master' of git://github.com/peterRd/moodle 2019-10-23 14:55:46 +08:00
Matt Porritt 698222f6cb 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:20:00 +00:00
Jun Pataleta b6fcec009e Merge branch 'MDL-65896-master' of https://github.com/ryanwyllie/moodle 2019-10-23 11:13:27 +08:00
Adrian Greeve 3a8b78b19f Merge branch 'MDL-63125' of https://github.com/paulholden/moodle 2019-10-23 11:00:40 +08:00
Ryan Wyllie e0d798477a MDL-65896 core: add emoji data to thirdpartylibs 2019-10-23 10:59:59 +08:00
Ryan Wyllie 4060fcc662 MDL-65896 admin: add admin setting to show emoji picker
Added an admin setting to show/hide the emoji picker in messaging
because some versions of MySQL don't have full unicode support so
emojis won't save in the dabase.

If we detect that the site is running an unsupported version of MySQL
then the setting can not be enabled. Instead the admin will see a
message explaining that they will need to upgrade their database
before they can enable the emoji picker.
2019-10-23 10:59:59 +08:00
Ryan Wyllie 9f536ec696 MDL-65896 message: add emoji auto complete to message app 2019-10-23 10:59:59 +08:00
Ryan Wyllie 75962db917 MDL-65896 core: create emoji auto complete 2019-10-23 10:59:59 +08:00
Ryan Wyllie 8f80d18766 MDL-65896 message: add emoji picker to message app 2019-10-23 10:59:58 +08:00
Ryan Wyllie db65ba4564 MDL-65896 core: create emoji picker 2019-10-23 10:59:58 +08:00
Brendan Heywood 60dc024201 MDL-65349 xhprof: Removed greedy matching from wildcard parsing 2019-10-23 11:08:27 +11:00
Nadav Kavalerchik 96964edf0b MDL-66982 media_videojs: Fix RTL display issues (progress bar) 2019-10-23 01:34:24 +03:00
Sara Arjona 9f997f9bd7 on-demand release 3.8dev+ 2019-10-22 14:49:05 +02:00
Sara Arjona c6a11a31cf NOBUG: Fixed SVG browser compatibility 2019-10-22 14:49:03 +02:00
Sara Arjona 631aaad19f Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-22 14:49:03 +02:00
Jake Dallimore 6de90c84f4 Merge branch 'MDL-64739_master-fix' of git://github.com/dmonllao/moodle 2019-10-22 11:13:43 +08:00
David Monllaó 5da60daa1a MDL-64739 analytics: No need for a fully set model on edit 2019-10-22 10:48:29 +08:00
Brendan Heywood 319577dbbb MDL-66984 auth: Allow $USER to be used in change_password_url 2019-10-22 13:39:25 +11:00
Peter 0320040469 MDL-66971 core: Update the convenience date grade getter to allow nulls 2019-10-22 10:30:17 +08:00
Paul Holden d25223a5c4 MDL-63125 forms: Behat test for form autocomplete element. 2019-10-21 23:24:30 +01:00
Eloy Lafuente (stronk7) a188424bb4 Merge branch 'MDL-66970_master' of git://github.com/dmonllao/moodle 2019-10-21 23:59:18 +02:00
Eloy Lafuente (stronk7) 4019ae73f9 MDL-66954 filter_displayh5p: add it to the list of standard plugins 2019-10-21 23:34:19 +02:00
Eloy Lafuente (stronk7) be3d6c3f5f Merge branch 'MDL-66954-master' of git://github.com/aanabit/moodle 2019-10-21 23:31:37 +02:00
David Monllaó b4bb8688a5 MDL-66970 analytics: Extra testing for active enrolments
I sneaked in an unrelated change to enrol-partly-active-ends-afterwards
test case as the endtime and enrolment timestart values were swapped.
The case when the enrolment start is after the analysis end is already
tested in enrol-after-end test case.
2019-10-22 05:13:26 +08:00
David Monllaó b00d35a6fc MDL-66970 analytics: Fix incorrect use of ?? 2019-10-22 05:13:26 +08:00
Nadav Kavalerchik 22ae1807a5 MDL-66676 theme/boost: Fix form select element icon in RTL mode 2019-10-21 21:34:05 +03:00
Eloy Lafuente (stronk7) 3c75bfa457 Merge branch 'MDL-66980' of https://github.com/timhunt/moodle 2019-10-21 20:26:34 +02:00
Sara Arjona f3281837b8 Merge branch 'MDL-61121-master-5' of git://github.com/mihailges/moodle 2019-10-21 14:46:17 +02:00
Eloy Lafuente (stronk7) 7ba9c635c5 Merge branch 'MDL-64739_master' of git://github.com/dmonllao/moodle 2019-10-21 13:31:12 +02:00
Juan Leyva 56444a606c MDL-65017 forum: New WS mod_forum_delete_post 2019-10-21 13:09:56 +02:00
Juan Leyva b12dbcd4d5 MDL-65017 forum: Initial API refactor 2019-10-21 13:09:56 +02:00
Sara Arjona 78ee7b9a65 Merge branch 'MDL-66631-master-test' of git://github.com/rezaies/moodle 2019-10-21 12:18:19 +02:00
Tim Hunt 471c39b361 MDL-66980 question bank: fix load_many_for_cache missing record check 2019-10-21 11:18:12 +01:00
Eloy Lafuente (stronk7) 6b0374e510 Merge branch 'MDL-65774-master2' of git://github.com/peterRd/moodle 2019-10-21 10:48:12 +02:00
Eloy Lafuente (stronk7) 325a451018 Merge branch 'MDL-66808-master' of git://github.com/rezaies/moodle 2019-10-21 10:32:23 +02:00
Jun Pataleta 7769168f38 Merge branch 'MDL-66912-master' of https://github.com/snake/moodle 2019-10-21 16:26:28 +08:00
Jun Pataleta a5b431455a Merge branch 'MDL-66009-master' of https://github.com/grabs/moodle 2019-10-21 16:15:20 +08:00
Jake Dallimore c3f726a0e5 Merge branch 'MDL-66612-master' of git://github.com/crazyserver/moodle 2019-10-21 16:06:50 +08:00
Jake Dallimore d501428ff8 Merge branch 'MDL-66915-master' of https://github.com/MartinGauk/moodle 2019-10-21 15:54:12 +08:00
David Monllaó 06579b18cc MDL-64739 analytics: Contexts autocomplete with ajax 2019-10-21 15:33:29 +08:00
Pau Ferrer Ocaña 375d82cafc MDL-66612 calendar: Change global events to site events
AMOS BEGIN
 CPY [category,moodle],[category,calendar]
 CPY [site,notes],[eventtypesite,calendar]
 CPY [site,moodle],[site,calendar]
 MOV [typesite,moodle],[siteevent,calendar]
AMOS END
2019-10-21 09:33:01 +02:00
Mikhail Golenkov 17fed0d1cc MDL-66973 search: Reset Content writer after test. 2019-10-21 17:55:30 +11:00
Andrew Nicols 80cb0f6a1f Merge branch 'MDL-66962-master' of https://github.com/lucaboesch/moodle 2019-10-21 14:22:57 +08:00
Luca Bösch 19b1afd146 MDL-66962 questions: Question bank table T title non breaking. 2019-10-21 08:16:05 +02:00
Andrew Nicols 8edb6d15f1 Merge branch 'MDL-66944_master' of https://github.com/t-schroeder/moodle 2019-10-21 13:47:42 +08:00
Andrew Nicols 532b240244 Merge branch 'MDL-66946' of https://github.com/timhunt/moodle 2019-10-21 12:54:06 +08:00
Jake Dallimore d2982a1c11 Merge branch 'MDL-66930-master' of https://github.com/lucaboesch/moodle 2019-10-21 11:55:00 +08:00
Jake Dallimore 95852a343d Merge branch 'MDL-66960-master' of https://github.com/lucaboesch/moodle 2019-10-21 10:41:10 +08:00
David Monllaó 76b5ee4545 MDL-64739 tool_analytics: Restrict models to specific contexts 2019-10-21 09:54:39 +08:00
Mitxel Moriana c345aa721c MDL-64739 core_analytics: New db field for model contexts 2019-10-21 09:54:39 +08:00
David Monllaó 86a092b61d MDL-64739 tool_analytics: Remove filter option from evaluate CLI script
It can be considered that we replaced it with the new contexts field.
2019-10-21 09:54:39 +08:00
David Monllaó c22fb4bd4b MDL-64739 core_analytics: Contexts param for get_analysables_iterator 2019-10-21 09:54:34 +08:00
Jake Dallimore d76c433b3d Merge branch 'MDL-66816' of https://github.com/timhunt/moodle 2019-10-21 09:36:19 +08:00
AMOS bot ae5ee23622 Automatically generated installer lang files 2019-10-19 00:09:08 +00:00
Tim Hunt 4d32558974 MDL-66946 quiz reports: incorrectly show teachers sometimes 2019-10-18 17:37:49 +01:00
Luca Bösch 55c75f91e9 MDL-66960 questions: Top align all question bank titles exc "select all" 2019-10-18 16:32:43 +02:00
Amaia Anabitarte 826e76edc9 MDL-66954 filter_displayh5p: Rename filter_h5p to filter_displayh5p
We are renaming existing h5p_filter in 3.8dev to h5p_displayh5p to avoid collisions with filter_h5p plugin
in Moodle plugin directory.
Everybody having a 3.8dev installation with filter_h5p plugin should drop the old filter or re-install from scratch.
2019-10-18 15:35:15 +02:00
Tim Hunt c11c88928e MDL-66956 question bank: move edit menu to improve usability 2019-10-18 14:27:51 +01:00
Tim Hunt 701ae1eb4b MDL-66816 question bank: replace row of edit icons with an Edit menu 2019-10-18 14:27:50 +01:00
Sara Arjona 5d657c410b MDL-65774 mod_assign: Update FPDI class to inherit pdf 2019-10-18 20:34:23 +08:00
Luca Bösch 87174e0a92 MDL-66930 quiz: Question type icon size/alignment in Boost and Classic. 2019-10-18 13:54:29 +02:00
Eloy Lafuente (stronk7) aaff6692a1 on-demand release 3.8dev+ 2019-10-18 10:31:55 +02:00
Mihail Geshoski 6ddcb2122c MDL-61121 assign: Declare variables in the local scope 2019-10-18 13:57:56 +08:00
Mihail Geshoski 70b10bcd8c MDL-61121 assign: Improve accessibility in quick grading page tables 2019-10-18 13:57:56 +08:00
Mihail Geshoski d53a80d5e9 MDL-61121 assign: Improve accessibility - view full/view summary control 2019-10-18 13:57:56 +08:00
Andrew Nicols 2265397db6 Merge branch 'MDL-66767' of https://github.com/Chocolate-lightning/moodle_forum-project 2019-10-18 12:37:50 +08:00
Michael Hawkins a575ab1516 MDL-66767 forumreport_summary: Improved groups only SQL 2019-10-18 12:35:53 +08:00
Michael Hawkins 2970b8fa2e MDL-66767 forumreport_summary: Control groups filter content
Control the groups filter options based on forum groups mode and groups
visible to the user viewing the report.
2019-10-18 12:23:49 +08:00
Michael Hawkins 5e43937c7f MDL-66767 forumreport_summary: Updated groups filter to apply to data
Previously, the groups filter was only filtering by user, it now
filters the data by group, as well as limiting the users displayed
to those with access to the relevant combination.
2019-10-18 12:23:49 +08:00
Adrian Greeve 6d98de3fc1 Merge branch 'MDL-66740-master' of git://github.com/marinaglancy/moodle 2019-10-18 11:06:55 +08:00
Simey Lameze 8074b23f56 MDL-66631 mod_forum: unit tests for date filters 2019-10-18 12:37:58 +11:00
Simey Lameze 77c01b42c6 MDL-66631 mod_forum: unit tests refactoring 2019-10-18 12:37:58 +11:00
Simey Lameze 6e23f294b8 MDL-66631 mod_forum: make get_from_discussion_ids use new fn 2019-10-18 12:37:58 +11:00
Simey Lameze 718d7a43b9 MDL-66631 mod_forum: add date filters to export 2019-10-18 12:37:58 +11:00
Jun Pataleta 95946a3294 Merge branch 'MDL-66806_master' of git://github.com/dmonllao/moodle 2019-10-18 09:36:51 +08:00
Andrew Nicols b9da7233a1 Merge branch 'MDL-66919' of https://github.com/stronk7/moodle 2019-10-18 08:26:38 +08:00
Eloy Lafuente (stronk7) e0fa8a5140 Merge branch 'mdl-66173' of https://github.com/Peterburnett/moodle 2019-10-18 01:49:31 +02:00
Jun Pataleta 36a8ae571a Merge branch 'MDL-66625-master' of git://github.com/rezaies/moodle 2019-10-18 06:39:01 +08:00
Jun Pataleta 52f1b2ebfa Merge branch 'MDL-56549-master' of https://github.com/kabalin/moodle 2019-10-18 06:27:21 +08:00
Ruslan Kabalin d5d3c27ad1 MDL-56549 test: Add tests covering core_media_player_native 2019-10-17 22:15:48 +01:00
Ruslan Kabalin 5bc03f13db MDL-56549 medialib_test: Move fixture to dedicated subdir. 2019-10-17 22:15:48 +01:00
Ruslan Kabalin 12ce73a1a2 MDL-56549 media_html5video: Add test for native extensions support.
This is to verify that all files of html_video mime type extensions are
passing list_supported_urls method correctly.
2019-10-17 22:15:47 +01:00
Ruslan Kabalin 4d8b88fd63 MDL-56549 media_html5audio: Add test for native extensions support.
This is to verify that all files of html_audio mime type extensions are
passing list_supported_urls method correctly.
2019-10-17 22:15:47 +01:00
Ruslan Kabalin 043ba1b221 MDL-56549 lib: Add flac audio extension to html5 support list.
This is now supported by most browsers:
https://en.wikipedia.org/wiki/HTML5_audio
https://caniuse.com/#feat=flac
2019-10-17 22:15:46 +01:00
Eloy Lafuente (stronk7) 7d21639465 Merge branch 'MDL-64064' of https://github.com/NeillM/moodle 2019-10-17 23:08:58 +02:00
Shamim Rezaie f54cb5a708 MDL-66625 forumreport_summary: Adding behat 2019-10-18 05:46:39 +11:00
Tim Schroeder d9d041e867 MDL-66944 course: fixed copy-paste-error in comment 2019-10-17 18:15:08 +02:00
Jun Pataleta 8b2b47f733 Merge branch 'MDL-66694-master' of git://github.com/junpataleta/moodle 2019-10-17 22:48:16 +08:00
Jun Pataleta 10cc5e8100 MDL-66694 mod_forum: Fix unit test
* Set $forum1's displaywordcount to true in
  test_mod_forum_get_discussion_posts() so that the word and char counts
  will be returned.
* Use count_words() and count_letters() instead of hard coding the
  expected values for the word and char counts.
2019-10-17 22:39:36 +08:00
Michael Hawkins 97aeba56ba MDL-66694 mod_forum: Refactored post counts scheduled task 2019-10-17 17:07:05 +08:00
Pau Ferrer Ocaña e75b4e41b1 MDL-66612 calendar: Fix calendar icons 2019-10-17 10:34:34 +02:00
Michael Hawkins d21d6baac6 MDL-66694 mod_forum: Word/char count tidy ups & add task config option
The chunk size used by the existing post word/char count calculation
ad-hoc task can now be set as a $CFG parameter. Also improved the way
the ad-hoc task is re-queued and tidied up some redundant code.
2019-10-17 16:13:23 +08:00
Andreas Grabs ea100476d7 MDL-66009 mod_feedback: Nested dependency fails again 2019-10-17 09:19:55 +02:00
Michael Hawkins 3c36cdb150 MDL-66694 mod_forum: Updated adhoc task to requeue until completion
The adhoc task run during upgrade will now be requeued until no more
word/char counts require updating. Previously it was only run once,
so only the first 5000 posts would be updated.
2019-10-17 15:05:57 +08:00
David Monllaó 7d8f604b3c MDL-66694 mod_forum: Upgrade forum post word and char counts 2019-10-17 15:05:57 +08:00
Michael Hawkins 3eb0a82fef MDL-66694 mod_forum: Word & char count update consistency fixes
Charcount logic is now consistent with wordcount in the post exporter.
Counts update now called in forum_udpate_instance since it is updating
the data.
2019-10-17 15:05:57 +08:00
David Monllaó 591dd68790 MDL-66694 mod_forum: Update word & char counts on db save 2019-10-17 15:05:57 +08:00
Michael Hawkins 68f2d677ae MDL-66694 forumreport_summary: String update and method tidy up
Replaced 'Char' with full word 'Character' in the charcount string.
Also tidied up show_word_char_counts code and set to protected instead
of private.
2019-10-17 15:05:57 +08:00
David Monllaó 74f94dfc26 MDL-66694 mod_forum: Word count and char count columns 2019-10-17 15:05:57 +08:00
Ryan Wyllie a81651afa1 MDL-65896 javascript: add throttle and debounce util functions 2019-10-17 13:51:05 +08:00
Andrew Nicols bcce0270fe MDL-66496 mod_data: Fixes during integration 2019-10-17 12:20:54 +08:00
Andrew Nicols a7139f7600 Merge branch 'MDL-66496-master' of git://github.com/tobiasreischmann/moodle 2019-10-17 11:05:34 +08:00
Shamim Rezaie bfe6cfc9ab MDL-66808 mod_forum: set the format col to FORMAT_PLAIN when it is plain 2019-10-17 13:21:05 +11:00
Shamim Rezaie c98f448866 MDL-66808 mod_forum: Added export options 2019-10-17 12:47:11 +11:00
Brendan Heywood 4e7dcd01a8 MDL-66927 cron: Process new adhoc tasks immediately 2019-10-16 20:25:02 +11:00
[Peter Burnett] dc25b71d8b MDL-66173 login: Added form injection, validation and post action hooks 2019-10-16 15:01:56 +10:00
Shamim Rezaie 354cbf48b8 MDL-66625 forumreport_summary: Handling private replies 2019-10-16 12:00:51 +11:00
Jake Dallimore 7591d8c498 Merge branch 'MDL-66020-master' of git://github.com/marinaglancy/moodle 2019-10-16 08:37:07 +08:00
Eloy Lafuente (stronk7) d1729ce196 Merge branch 'MDL-66790-master' of git://github.com/junpataleta/moodle 2019-10-16 00:55:48 +02:00
Eloy Lafuente (stronk7) ab74c7ad56 Merge branch 'MDL-66705-master' of git://github.com/abgreeve/moodle 2019-10-16 00:52:52 +02:00
Eloy Lafuente (stronk7) f8038edd3a MDL-66919 behat: fix typo in error message
Also fix a couple of phpdocs that were incorrect.
2019-10-16 00:48:35 +02:00
Eloy Lafuente (stronk7) c77052fb2b on-demand release 3.8dev+ 2019-10-15 23:01:00 +02:00
Eloy Lafuente (stronk7) df089ac562 NOBUG: Fixed SVG browser compatibility 2019-10-15 23:00:54 +02:00
Martin Gauk 8d5b7fc6cd 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:06:03 +02:00
Eloy Lafuente (stronk7) e7fad4ac6a Merge branch 'MDL-66553-master-fix' of git://github.com/junpataleta/moodle 2019-10-15 16:42:15 +02:00
Jun Pataleta 0aa17f2631 MDL-66553 question: Behat fixes
1. Fix sortable key for the qname/idnumber/tags column
2. Fix the default sort
3. Fix Behat test for sorting by idnumber. Added ID numbers for both
question A and question C in order for us to get consistent sorting
across DBs.
2019-10-15 20:22:12 +08:00
Jun Pataleta 80d7651534 MDL-66790 quizreport: Prevent sorting for checkbox column 2019-10-15 17:25:16 +08:00
Jake Dallimore 3f7382aa73 MDL-66912 core_message: improve media matching js for content previews
Rather than matching 'src' string, use a dummy node and check for a src
attribute.
2019-10-15 14:37:51 +08:00
Jun Pataleta c2e4e6d588 Merge branch 'MDL-66226-master-2' of https://github.com/snake/moodle 2019-10-15 11:56:05 +08:00
Adrian Greeve 56ad15fc06 MDL-66705 tool_uploaduser: Add an example csv file. 2019-10-15 10:56:29 +08:00
Jake Dallimore 164e879156 Merge branch 'MDL-66796' of git://github.com/timhunt/moodle 2019-10-15 10:52:45 +08:00
Jun Pataleta d75eb57daa Merge branch 'MDL-66821' of https://github.com/timhunt/moodle 2019-10-15 07:35:36 +08:00
Andrew Nicols f124a49259 Merge branch 'MDL-66335' of https://github.com/stronk7/moodle 2019-10-15 07:21:52 +08:00
Eloy Lafuente (stronk7) c461c96d25 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-14 23:52:28 +02:00
Eloy Lafuente (stronk7) 82d71a5c83 Merge branch 'MDL-66335' of https://github.com/timhunt/moodle 2019-10-14 18:53:44 +02:00
Paul Holden 9cbeaec26f MDL-63125 forms: allow item removal from single-select autocomplete. 2019-10-14 17:07:59 +01:00
Eloy Lafuente (stronk7) 1b8a7f86d5 Merge branch 'MDL-66559-master' of git://github.com/andrewnicols/moodle 2019-10-14 16:33:46 +02:00
Tim Hunt 468d7ead0a MDL-66796 question bank: fix more bugs with category editing 2019-10-14 15:29:53 +01:00
Tim Hunt 9c4f0fa746 MDL-66796 question bank: 0 is a valid question category idnumber 2019-10-14 14:33:36 +01:00
Sara Arjona 5b91deed2c Merge branch 'MDL-63349-Master' of github.com:tuanngocnguyen/moodle 2019-10-14 13:58:09 +02:00
Tim Hunt 9c14b28d0b 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:36:12 +01:00
Sara Arjona ef2f26b8b1 Merge branch 'MDL-66836-master' of https://github.com/sammarshallou/moodle 2019-10-14 12:26:49 +02:00
Marina Glancy 959e4f0e97 MDL-66740 core_course: change defaults for course request settings 2019-10-14 12:22:16 +02:00
Tim Hunt 4e1ebf8cde 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 11:21:22 +01:00
Tim Hunt 9bcc357107 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 11:21:22 +01:00
Tim Hunt 4024556b98 MDL-66335 behat: generic step for navigating direct to specific pages 2019-10-14 11:19:13 +01:00
Marina Glancy 3e15abe500 MDL-66740 core_course: Add context to capabilities to request course 2019-10-14 11:38:13 +02:00
Eloy Lafuente (stronk7) 25494613f4 Merge branch 'MDL-66304' of https://github.com/golenkovm/moodle 2019-10-14 10:53:24 +02:00
Eloy Lafuente (stronk7) 70d33bc399 Merge branch 'MDL-66874-master' of git://github.com/junpataleta/moodle 2019-10-14 10:05:27 +02:00
Jake Dallimore 050f048e26 Merge branch 'MDL-66659' of https://github.com/paulholden/moodle 2019-10-14 15:33:10 +08:00
Andrew Nicols e99a3cca93 MDL-66559 behat: Register component selectors earlier 2019-10-14 14:24:05 +08:00
Andrew Nicols cd5382b298 MDL-66559 behat: Update running suite 2019-10-14 14:17:47 +08:00
Jun Pataleta 8da83f6c51 Merge branch 'MDL-66796-master-fix' of https://github.com/snake/moodle 2019-10-14 13:48:34 +08:00
Jake Dallimore f79a974435 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:38:20 +08:00
Jun Pataleta 5a85b7fc13 MDL-66874 mod_feedback: Use correct option attribute 'classes' 2019-10-14 11:27:19 +08:00
Jun Pataleta 4f71255e61 MDL-66874 mod_data: Explicitly add btn-secondary class to select all
* Plus use correct option attribute 'classes' for the slave
  checkboxes
2019-10-14 11:27:19 +08:00
Jun Pataleta bc003428bc MDL-66874 mod_choice: Explicitly add btn-secondary class to select all 2019-10-14 11:27:19 +08:00
Jun Pataleta 0b0527cced MDL-66874 core: Allow master button checkbox toggle to be customisable
* Plus, add labelclasses data for template context in master and slave
checkbox templates.
2019-10-14 11:26:47 +08:00
Jake Dallimore e7ac8db8a1 Merge branch 'MDL-66768-master' of git://github.com/rezaies/moodle 2019-10-14 11:21:03 +08:00
Jake Dallimore 7f518ce451 Merge branch 'MDL-66559-master' of git://github.com/andrewnicols/moodle 2019-10-14 11:09:44 +08:00
Shamim Rezaie bf2e1bec4e MDL-66768 forumreport_summary: remove the select column when downloading 2019-10-14 13:07:17 +11:00
Shamim Rezaie a90b8056ba MDL-66768 forumreport_summary: move back bulk action menu to the bottom 2019-10-14 13:07:16 +11:00
Simey Lameze 850ce97425 MDL-66768 forumreport_summary: add ability to download report 2019-10-14 13:05:04 +11:00
Jun Pataleta 75c49ad291 Merge branch 'MDL-66553' of https://github.com/timhunt/moodle 2019-10-14 09:42:03 +08:00
Jake Dallimore df09316ebd Merge branch 'MDL-66796' of git://github.com/timhunt/moodle 2019-10-14 07:41:19 +08:00
Eloy Lafuente (stronk7) 88e0d75b93 Merge branch 'MDL-66792' of https://github.com/paulholden/moodle 2019-10-13 17:08:31 +02:00
Eloy Lafuente (stronk7) 847848909e Merge branch 'MDL-66851-master' of git://github.com/mihailges/moodle 2019-10-13 16:34:50 +02:00
Eloy Lafuente (stronk7) 4e202d91e7 Merge branch 'MDL-65243-master' of git://github.com/mihailges/moodle 2019-10-13 16:31:14 +02:00
Eloy Lafuente (stronk7) 1069a44975 Merge branch 'MDL-65515-master' of git://github.com/mihailges/moodle 2019-10-13 16:12:47 +02:00
Eloy Lafuente (stronk7) 1eb34211f7 Merge branch 'MDL-66779-master' of git://github.com/andrewnicols/moodle 2019-10-13 02:11:38 +02:00
Eloy Lafuente (stronk7) 0b30d47973 Merge branch 'master_MDL-66864' of https://github.com/golenkovm/moodle 2019-10-13 02:08:10 +02:00
Eloy Lafuente (stronk7) 266591de00 Merge branch 'MDL-65584' of https://github.com/paulholden/moodle 2019-10-13 01:49:19 +02:00
Eloy Lafuente (stronk7) 8111abc331 on-demand release 3.8dev+ 2019-10-11 22:44:39 +02:00
Eloy Lafuente (stronk7) 0a23dd8c57 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-11 22:44:24 +02:00
Tim Hunt 5aacd5e70e MDL-66553 questions: add $CFG->questionbankcolumns to config-dist.php 2019-10-11 13:59:26 +01:00
Tim Hunt c2200bd5dc MDL-66553 quiz/questions: show idnumber and tags when adding from qbank 2019-10-11 13:59:26 +01:00
Tim Hunt 61cc1e6494 MDL-66553 question bank: show tags and idnumbers in question list 2019-10-11 13:59:26 +01:00
Tim Hunt d4b47c5442 MDL-66553 question bank: show idnumbers on the edit categories screen 2019-10-11 13:59:26 +01:00
Tim Hunt a3f42f998c MDL-66553 question bank: show idnumbers in category drop-down 2019-10-11 13:59:26 +01:00
Neill Magill af9a834d74 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:37:31 +01:00
Tim Hunt 33da028c27 MDL-66559 behat: Documentation for component selectors 2019-10-11 12:58:16 +08:00
Andrew Nicols 5c783f140e MDL-66559 message: Move behat selectors to message subsystem 2019-10-11 12:58:16 +08:00
Andrew Nicols 61832faefd MDL-66559 behat: Allow per-component selectors and replacements 2019-10-11 12:58:16 +08:00
Nathan Nguyen 4a6edc5767 MDL-63349 assignfeedback_editpdf: Rotate submitted image automatically 2019-10-11 15:26:53 +11:00
Jun Pataleta ad01d8bed5 Merge branch 'MDL-66076-master-2' of git://github.com/junpataleta/moodle 2019-10-11 11:16:37 +08:00
Jake Dallimore b663c71560 Merge branch 'MDL-66804' of https://github.com/paulholden/moodle 2019-10-11 11:16:17 +08:00
Jun Pataleta ce8a2d11d8 MDL-66076 forumreport_summary: filter JS and template optimisations 2019-10-11 11:09:50 +08:00
Michael Hawkins fb599f32d6 MDL-66076 message: Add copy of template plus JS comment fix 2019-10-11 11:09:50 +08:00
Michael Hawkins aa4b62baac MDL-66076 forumreport_summary: Filter styles update 2019-10-11 11:09:50 +08:00
Michael Hawkins 9523f0e040 MDL-66076 forumreport_summary: Added missing SQL group by fields
Also removed a redundant variable declaration.
2019-10-11 11:09:50 +08:00
Michael Hawkins d4d9b8c67c MDL-66076 forumreport_summary: Template example context fixes 2019-10-11 11:09:50 +08:00
Michael Hawkins b9669dd319 MDL-66076 forumreport_summary: Always show viewcount column
Previously this was hidden if filtering by groups, but will now be
visible, along with a disclaimer that the data is not filtered
(since the groups cannot be determined from the logs used).
2019-10-11 11:09:50 +08:00
Michael Hawkins cc15134c7b MDL-66076 forumreport_summary: Groups filter made accessible 2019-10-11 11:09:50 +08:00
Shamim Rezaie 14f92164f1 MDL-66076 forumreport_summary: Minor cleanup of report code
Removed some unnecessary code and added the current page to breadcrumbs
2019-10-11 11:09:50 +08:00
Shamim Rezaie 0942e58c91 MDL-66298 forumreport_summary: Added ability to bulk message users
Part of MDL-66076.
2019-10-11 11:09:50 +08:00
Shamim Rezaie cc97038258 MDL-66298 forumreport_summary: Moved table generation out of renderer
Part of MDL-66076.
2019-10-11 11:09:50 +08:00
Shamim Rezaie 8ffe06b9aa MDL-66298 javascript: Introduced new core AMD for sending bulk messages
Part of MDL-66076.
2019-10-11 11:09:50 +08:00
Shamim Rezaie 806d634359 MDL-66298 forumreport_summary: Display full names consistently
Part of MDL-66076. Display full names and profile links consistent
with other areas of Moodle.
2019-10-11 11:09:50 +08:00
Michael Hawkins 9eebd58aa2 MDL-66695 forumreport_summary: Added handling for all groups view count
Part of MDL-66076.
2019-10-11 11:10:41 +08:00
David Monllaó 235a6db7fb MDL-66695 forumreport_summary: New viewcount column
Part of MDL-66076.
2019-10-11 11:10:33 +08:00
Michael Hawkins b29de56dd7 MDL-66268 forumreport_summary: Add filters handling incl groups filter
Part of MDL-66076.
2019-10-11 11:10:27 +08:00
Michael Hawkins 90f2b0a905 MDL-66268 forumreport_summary: Introduce filter scss
Part of MDL-66076.
2019-10-11 11:10:17 +08:00
Michael Hawkins 382168a0aa MDL-66594 forumreport_summary: Added first/last post date columns
Part of MDL-66076.
2019-10-11 11:10:14 +08:00
Michael Hawkins d0e125cfc7 MDL-66299 forumreport_summary: Added attachments count column
Part of MDL-66076.
2019-10-11 11:10:10 +08:00
Michael Hawkins 90107b6f38 MDL-66299 mod_forum: Created new behat steps for bulk post creation
New behat steps created for adding bulk discussions and
replies in forums. Also includes private methods to prepare the
required information.

Part of MDL-66076.
2019-10-11 11:10:06 +08:00
Michael Hawkins 6388b6572c MDL-66153 mod_forum: Introduced summary report sub-plugin
Part of MDL-66076.
2019-10-11 11:09:50 +08:00
AMOS bot 7eb95ad2e5 Automatically generated installer lang files 2019-10-11 00:11:27 +00:00
Eloy Lafuente (stronk7) 212764c4af Merge branch 'master-MDL-66805-search' of https://github.com/kristian-94/moodle 2019-10-11 00:55:36 +02:00
Eloy Lafuente (stronk7) d58331eaaf Merge branch 'MDL-66815' of https://github.com/timhunt/moodle 2019-10-11 00:50:31 +02:00
Davo Smith 629699355c MDL-66017 block_myoverview: Oracle compatibility fix 2019-10-11 00:09:56 +02:00
Sara Arjona b968900509 Merge branch 'MDL-66017_course_filter_rebase' of git://github.com/davosmith/moodle 2019-10-10 08:33:07 +02:00
Jake Dallimore d979e33acc Merge branch 'MDL-65585_master' of git://github.com/dmonllao/moodle 2019-10-10 10:20:09 +08:00
David Monllaó f589788af1 MDL-66806 analytics: No predictions for hidden courses 2019-10-10 10:09:10 +08:00
David Monllaó bf25fb166c MDL-65585 analytics: Global on/off switch 2019-10-10 10:06:31 +08:00
AMOS bot 9edb97268c Automatically generated installer lang files 2019-10-10 00:09:17 +00:00
sam marshall cb0656a5ff 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:48:36 +01:00
Davo Smith 8d166d7745 MDL-66017 block_myoverview: filter by custom course field 2019-10-09 14:25:52 +01:00
Jun Pataleta 108bc23b70 Merge branch 'MDL-66835' of https://github.com/timhunt/moodle 2019-10-09 20:44:45 +08:00
Jun Pataleta c628e6021a Merge branch 'MDL-66450-master' of git://github.com/bmbrands/moodle 2019-10-09 20:40:28 +08:00
Tim Hunt 7ba73d16a0 MDL-66553 tags: option to accesshide label when displaying a taglist 2019-10-09 13:26:12 +01:00
Bas Brands 86ea9e6392 MDL-66450 themes: form autocomplete truncate listitems 2019-10-09 14:26:12 +02:00
Tim Hunt d30c6cdc17 MDL-66553 question bank: fix lots of phpdoc and other warnings 2019-10-09 13:26:12 +01:00
Tim Hunt 920a3500dc MDL-66835 behat: steps for setting/checking fields in containers 2019-10-09 13:26:05 +01:00
Sara Arjona 137befc2bd Merge branch 'MDL-66852-master' of github.com:lucaboesch/moodle 2019-10-09 12:58:00 +02:00
Jake Dallimore 2cee7e2dfc Merge branch 'MDL-64745-master-1' of git://github.com/mihailges/moodle 2019-10-09 15:58:50 +08:00
Jake Dallimore 9b0cf01d47 Merge branch 'MDL-66371-master' of git://github.com/rezaies/moodle 2019-10-09 13:33:17 +08:00
Shamim Rezaie 4f3d1266e3 MDL-66371 mod_forum: Improving behat tests 2019-10-09 15:19:11 +11:00
Andrew Nicols d31b5c431d Merge branch 'MDL-66753-master' of git://github.com/abias/moodle 2019-10-09 12:00:57 +08:00
Damyon Wiese b0213770d2 MDL-65243 badges: Use real time api
Never add or subtract timestamps - use the time api to do it correctly.
2019-10-09 11:51:45 +08:00
Simey Lameze 3222469ca8 MDL-66371 mod_forum: add behat coverage for export
Part of MDL-66075.
2019-10-09 14:46:56 +11:00
Mihail Geshoski 9ad5cff41f 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:15:28 +08:00
Andrew Nicols 5dc69b9bbe Merge branch 'MDL-66166' of https://github.com/brendanheywood/moodle 2019-10-09 11:14:09 +08:00
Adrian Greeve d50978de2c Merge branch 'MDL-66011-master' of git://github.com/andrewnicols/moodle 2019-10-09 10:40:02 +08:00
Jun Pataleta fa278f052b Merge branch 'MDL-66725-master' of https://github.com/snake/moodle 2019-10-09 10:31:18 +08:00
Andrew Nicols bfdeae2afd MDL-66779 phpunit: Correct component name for core_grades 2019-10-09 09:34:47 +08:00
Andrew Nicols 13ef95e3de Merge branch 'MDL-66118-master-byebyemoodlenet' of git://github.com/mudrd8mz/moodle 2019-10-09 07:43:33 +08:00
Eloy Lafuente (stronk7) c35f47d8ed Merge branch 'MDL-66428_master' of git://github.com/markn86/moodle 2019-10-09 00:28:30 +02:00
Eloy Lafuente (stronk7) d693378bf9 Merge branch 'MDL-63127_master' of git://github.com/markn86/moodle 2019-10-08 23:50:14 +02:00
Alexander Bias 8471a0db42 MDL-61804 admin: Add setting for course visibility sorting 2019-10-08 11:58:39 +02:00
Luca Bösch 57987d7088 MDL-66852 quiz: Style "Try another question like this one" button. 2019-10-08 11:28:39 +02:00
Eloy Lafuente (stronk7) a31719f91a on-demand release 3.8dev+ 2019-10-08 10:43:51 +02:00
Eloy Lafuente (stronk7) 796db6cbc8 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-10-08 10:43:45 +02:00
Mihail Geshoski 0b802432ca MDL-66851 block_starredcourses: Hide 'hidden' courses from students
Thanks to Mark Sharp for the bug report and fix suggestion.
2019-10-08 09:52:37 +08:00
AMOS bot d63e8ee703 Automatically generated installer lang files 2019-10-08 00:09:56 +00:00
Eloy Lafuente (stronk7) 38417fa421 Merge branch 'MDL-66801' of https://github.com/timhunt/moodle 2019-10-08 01:16:46 +02:00
Paul Holden d95812cb39 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:12:32 +01:00
Eloy Lafuente (stronk7) af59994f4f Merge branch 'MDL-66628_master' of git://github.com/dmonllao/moodle 2019-10-08 00:54:03 +02:00
Eloy Lafuente (stronk7) 10ab0770ab Merge branch 'MDL-66764' of https://github.com/timhunt/moodle 2019-10-07 22:50:57 +02:00
Eloy Lafuente (stronk7) 9c5796a3f0 Merge branch 'MDL-66754' of https://github.com/timhunt/moodle 2019-10-07 22:33:02 +02:00
Eloy Lafuente (stronk7) c29715f3d7 Merge branch 'MDL-66743' of https://github.com/timhunt/moodle 2019-10-07 22:26:53 +02:00
Eloy Lafuente (stronk7) ec829c6070 Merge branch 'MDL-66709' of https://github.com/timhunt/moodle 2019-10-07 22:25:12 +02:00
Eloy Lafuente (stronk7) f3bb36720b Merge branch 'MDL-66749-master' of git://github.com/bmbrands/moodle 2019-10-07 22:03:08 +02:00
Eloy Lafuente (stronk7) d4f52fc831 Merge branch 'MDL-66750' of https://github.com/timhunt/moodle 2019-10-07 21:55:32 +02:00
Mark Nelson de0b6d938c MDL-66428 cachestore_redis: add Zstd compression support 2019-10-07 19:03:43 +01:00
Mark Nelson 493295e326 MDL-63127 cachestore_redis: dont use compression unless specified 2019-10-07 18:23:10 +01:00
Eloy Lafuente (stronk7) f232409e13 MDL-63127 cachestore_redis: cover combinations without compressor
To verify that, internally, everything is stored as expected
and there aren't hidden regressions
2019-10-07 18:23:10 +01:00
Sara Arjona 9ee83d1d98 Merge branch 'MDL-66775-master' of git://github.com/jleyva/moodle 2019-10-07 16:14:43 +02:00
Mark Nelson 182a0698e1 MDL-63127 cachestore_redis: clean up compressor_test.php 2019-10-07 12:12:48 +01:00
Mark Nelson 4ccbb67474 MDL-63127 cachestore_redis: do not return early without unserialisation 2019-10-07 12:12:48 +01:00
Mark Nelson 3ad56eee9f MDL-63127 cachestore_redis: add check before using igbinary_serialize
Redis::SERIALIZER_IGBINARY is undefined if redis is not compiled
with this option.
2019-10-07 12:12:48 +01:00
Mark Nelson 54a659a5bd MDL-63127 cachestore_redis: delegate functionality to specific areas
These functions should not have to worry about compression logic.
2019-10-07 12:12:48 +01:00
Mark Nelson ac19c888b0 MDL-63127 cachestore_redis: set pair value correctly 2019-10-07 12:12:48 +01:00
Daniel Thee Roperto cda3e431ca MDL-63127 cachestore_redis: Implemented compression 2019-10-07 12:12:48 +01:00
Alexander Bias 1ce19cc3ed MDL-66753 blocks: Remove references in core to block_participants 2019-10-07 08:34:20 +02:00
Alexander Bias 7ce941a455 MDL-66753 blocks: Remove block_participants from core 2019-10-07 08:34:20 +02:00
Adrian Greeve 1b70f4c1d5 Merge branch 'master-MDL-66794' of https://github.com/golenkovm/moodle 2019-10-07 14:28:59 +08:00
Mikhail Golenkov 9c7a5526ba MDL-66864 upgrade: Delete non-mutual contacts in chunks. 2019-10-07 16:32:20 +11:00
Adrian Greeve 3ae7d678fa Merge branch 'MDL-65187-master' of git://github.com/marinaglancy/moodle 2019-10-07 11:12:21 +08:00
Mihail Geshoski 0a9150c009 MDL-64745 block_online_users: Add behat tests 2019-10-07 09:00:33 +08:00
Mihail Geshoski e94de2d6d3 MDL-64745 block_online_users: Add unit tests 2019-10-07 09:00:33 +08:00
Mihail Geshoski e1fb8e4aec MDL-64745 block_online_users: Option to disable users to set visibility 2019-10-07 09:00:33 +08:00
David Mudrák 254b579375 MDL-66118 hub: Replace the unregister form with a confirmation
Now that unpublishalladvertisedcourses and unpublishalluploadedcourses
became irrelevant, there is no reason for an empty form.
2019-10-04 21:23:11 +02:00
David Mudrák 3d2aa2ebef 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:23:11 +02:00
David Mudrák ecc9960ead 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:23:11 +02:00
David Mudrák ffecbefb06 MDL-66118 hub: Drop support for the hub's display_homepage callback
There should never be any exceptional hacks like this for any particular
plugin. The hub sites can make use of a wide range of other and cleaner
mechanisms - such as a custom theme or the customfrontpageinclude
directive - to implement a customized front page.

Plus, we've dropped support for alternative hubs anyway.
2019-10-04 21:17:06 +02:00
David Mudrák 6d015e29cc 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:17:06 +02:00
David Mudrák a08c238f9e MDL-66118 hub: Remove legacy constants, not relevant any more
Both the following constants are no longer needed as Moodle does not
support multiple hubs any more.

* HUB_HUBDIRECTORYURL is no longer valid as Moodle no longer supports
  the listing of community hubs.
* HUB_OLDMOODLEORGHUBURL was used in the past for the transition
  purposes.
2019-10-04 21:17:06 +02:00
Tobias Reischmann d9b8e3554b MDL-66496 mod_data: Add tests for import functionality 2019-10-04 19:35:18 +02:00
Tobias Reischmann 8bb0d5fb5f MDL-66496 mod_data: Make import functionality testable 2019-10-04 19:34:53 +02:00
Justus Dieckmann ba2fc8bd94 MDL-66496 mod_data: Import author information on csv import 2019-10-04 19:33:54 +02:00
Eloy Lafuente (stronk7) 6ec1078469 on-demand release 3.8dev+ 2019-10-04 16:02:03 +02:00
Eloy Lafuente (stronk7) f7b87e1a79 NOBUG: Fixed file access permissions 2019-10-04 16:02:02 +02:00
Eloy Lafuente (stronk7) 2aa5e7e892 NOBUG: Fixed SVG browser compatibility 2019-10-04 16:01:57 +02:00
Ryan Wyllie 7754fa54d6 MDL-66226 core_message: convert formatMessagePreview to async function
Uses the nicer syntax of sync/await, removing some of the promises
clutter.
2019-10-04 16:50:30 +08:00
Jake Dallimore f11b8ec5a0 MDL-66226 core: add fallback pixicons for the messagecontent fa icons
If $THEME->iconsystem is not set to font awesome, we need to fall back
to either svg or png images.
2019-10-04 16:49:48 +08:00
Jake Dallimore c11baac4b4 MDL-66226 core_message: wrap promise chains in pending for behat
Fixes random failures by forcing behat to wait for the pane to render.
2019-10-04 14:37:25 +08:00
Jake Dallimore 545e8988c3 MDL-66226 core_message: don't display html as text in overview section
Instead of displaying the source code, as text, display a content
indicator which tells the user what sort of content the message might
contain.
2019-10-04 14:34:19 +08:00
Ryan Wyllie f9d76e4905 MDL-66477 core: only render region main settings if no settings block
We added a change to allow the region main settings menu to be
rendered in the header rather that the top of the body however
this also meant that the settings were shown on themes (e.g. Classic)
that didn't otherwise show the region main settings.

The simplest solution seems to be to not render the region main
settings in the header if the settings block is on the page.
2019-10-04 11:31:14 +08:00
Jun Pataleta e5277f0a7f Merge branch 'MDL-65315-master' of git://github.com/peterRd/moodle 2019-10-04 10:25:16 +08:00
Andrew Nicols fe0944987e MDL-66011 test: remove magic @covers lines 2019-10-04 09:40:34 +08:00
Andrew Nicols 8847ec4791 MDL-66011 tests: Stop forcing coverage annoation 2019-10-04 09:39:50 +08:00
Eloy Lafuente (stronk7) c41f4e56d3 Merge branch 'MDL-66476_master' of git://github.com/dmonllao/moodle 2019-10-04 01:59:14 +02:00
Eloy Lafuente (stronk7) 04c0050dcc Merge branch 'MDL-66397-master-embed' of git://github.com/vmdef/moodle 2019-10-03 23:25:21 +02:00
David Monllaó f5c65ba37f MDL-66476 mlbackend: Use F1 as the main accuracy metric 2019-10-04 05:20:49 +08:00
David Monllaó ebec727cd3 MDL-66004 mlbackend_python: Purge testing output dirs properly 2019-10-04 05:19:45 +08:00
Eloy Lafuente (stronk7) ef7aded996 Merge branch 'MDL-56649-master' of git://github.com/bmbrands/moodle 2019-10-03 19:37:05 +02:00
Eloy Lafuente (stronk7) 40763810d9 Merge branch 'MDL-65327_master' of https://github.com/marxjohnson/moodle 2019-10-03 19:27:49 +02:00
Eloy Lafuente (stronk7) 0036173459 Merge branch 'MDL-66004_master-delete_fix' of git://github.com/dmonllao/moodle 2019-10-03 18:41:36 +02:00
Adrian Greeve 8515fbfbaa Merge branch 'MDL-65919-master' of git://github.com/marinaglancy/moodle 2019-10-03 15:59:03 +08:00
Jun Pataleta 27c648a095 Merge branch 'MDL-61450-master' of git://github.com/lameze/moodle 2019-10-03 15:42:19 +08:00
Jun Pataleta ec720611d5 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:38:43 +08:00
Juan Leyva 12a289c7a4 MDL-66775 tool_mobile: Return additional app data
We need this information for creating a link to the app store listing for updating.
2019-10-03 09:29:38 +02:00
Juan Leyva 4bf08f5b4d MDL-66775 tool_mobile: New force minimum app version setting 2019-10-03 09:29:38 +02:00
Simey Lameze ec482557a8 MDL-61450 calendar: fix course event type permissions 2019-10-03 13:20:33 +08:00
David Monllaó 63c15f6c58 MDL-66004 mlbackend_python: Purge testing output dirs properly 2019-10-03 09:45:57 +08:00
Peter 8c95b7d9bb MDL-65774 mod_assign: Updated pdf to include FPDI upgrades 2019-10-03 07:47:11 +08:00
Peter 68713f585f MDL-65774 mod_assign: Update fpdi library to 2.2.0 2019-10-03 07:47:11 +08:00
Eloy Lafuente (stronk7) aab2b2103e Merge branch 'MDL-66774-master-macedonia' of git://github.com/mudrd8mz/moodle 2019-10-03 00:57:21 +02:00
Eloy Lafuente (stronk7) 846521d817 Merge branch 'MDL-63453-38_media_videojs_upgrade' of https://github.com/mattporritt/moodle 2019-10-03 00:48:56 +02:00
Eloy Lafuente (stronk7) 5260feb506 Merge branch 'MDL-66197-master' of git://github.com/marinaglancy/moodle 2019-10-03 00:45:31 +02:00
Eloy Lafuente (stronk7) 20502fa30c Merge branch 'MDL-66004_master' of git://github.com/dmonllao/moodle 2019-10-02 20:53:24 +02:00
Eloy Lafuente (stronk7) 35da660ab0 Merge branch 'MDL-66254_master' of git://github.com/dmonllao/moodle 2019-10-02 17:00:39 +02:00
Eloy Lafuente (stronk7) d25ece5ed9 Merge branch 'MDL-65957-master' of git://github.com/mihailges/moodle 2019-10-02 16:49:30 +02:00
Eloy Lafuente (stronk7) 637707bcb0 Merge branch 'MDL-64588-master-2' of git://github.com/snake/moodle 2019-10-02 16:39:44 +02:00
Jun Pataleta 31b4ff1db3 Merge branch 'MDL-62191_master' of git://github.com/dmonllao/moodle 2019-10-02 16:35:50 +08:00
Adrian Greeve 8fec1626d0 Merge branch 'MDL-66477-master' of git://github.com/junpataleta/moodle 2019-10-02 16:15:13 +08:00
Jun Pataleta 83e1b0e7f1 MDL-66477 mod_forum: Enclose setting switch in div 2019-10-02 16:12:44 +08:00
Jake Dallimore 0c3eaf9ee6 MDL-64588 core_comment: fix unnecessary type check in add_comments
We should rely on the return type, else an exception with be thrown.
2019-10-02 09:23:43 +08:00
Jake Dallimore 93ea6612bd MDL-64588 core_comment: make external test code use helper method
Instead of using setUp to create testing objects, use a helper.
2019-10-02 09:23:43 +08:00
Jake Dallimore ae94d477a6 MDL-64588 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-02 09:23:43 +08:00
Jake Dallimore 6cd3d398a9 MDL-64588 core_comment: use comment structure in external get_comments
Other minor changes include:
- added the since tag to newly added external functions
- Changed 'web service' to 'external function' in comment/upgrade.txt
2019-10-02 09:23:33 +08:00
David Monllaó 463b63db2a MDL-66004 analytics: mlbackend_python tested just once
Either running locally from the web server or using a server if
TEST_MLBACKEND_* vars are set. The tests will still be skipped if
the python backend is not available in the web server.
2019-10-02 08:41:14 +08:00
David Monllaó fea66a0854 MDL-66004 mlbackend_python: Bump the required python package version 2019-10-02 08:41:14 +08:00
David Monllaó aa5b705607 MDL-66004 mlbackend_python: Package installed on a separate server 2019-10-02 08:41:14 +08:00
David Monllaó 7bde26ed9f MDL-66254 analytics: Requires active enrolments for most of analysis 2019-10-02 08:12:56 +08:00
David Monllaó ea30943119 MDL-66254 course: Unit tests for the new restrictions 2019-10-02 08:12:56 +08:00
Eloy Lafuente (stronk7) 5e58b43ca7 Merge branch 'MDL-65096-m' of https://github.com/micaherne/moodle 2019-10-02 00:01:37 +02:00
Eloy Lafuente (stronk7) 7dbc1041b3 Merge branch 'MDL-65335_master' of https://github.com/marxjohnson/moodle 2019-10-01 23:21:51 +02:00
Tim Hunt 6e73157a3c 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:43:25 +01:00
Eloy Lafuente (stronk7) ba9110e1c8 Merge branch 'MDL-65522' of https://github.com/NeillM/moodle 2019-10-01 16:09:57 +02:00
Eloy Lafuente (stronk7) 13b85c61c6 Merge branch 'MDL-66542_master' of https://github.com/t-schroeder/moodle 2019-10-01 15:56:08 +02:00
Marina Glancy 57876874c3 MDL-66020 core_form: add date selector js only when rendered 2019-10-01 12:20:24 +02:00
Paul Holden d99bbd8e80 MDL-66659 core: observe viewfullnames capability in flexible_table. 2019-10-01 10:07:29 +01:00
Jake Dallimore 9a820e0af9 MDL-66725 core: fix language in str.js
When ommitted from the get_string() or get_strings() calls, it should be
inferring from the page language.
2019-10-01 13:53:59 +08:00
Kristian Ringer 5bd72dd661 MDL-66805 search: Close session early during searches 2019-10-01 12:30:13 +10:00
Mihail Geshoski e8edca25b8 MDL-65957 repository_upload: Throw exception if @_file_upload is missing 2019-10-01 09:35:53 +08:00
Mihail Geshoski 56932a19b4 MDL-65957 mod_imscp: Add required @file_upload tag in behat scenarios 2019-10-01 09:35:53 +08:00
Juan Leyva 09899abc55 MDL-64588 comment: New WebService core_comment_delete_comment 2019-10-01 09:26:01 +08:00
Juan Leyva 8e4a9ed854 MDL-64588 comment: New WebService core_comment_add_comment 2019-10-01 09:26:01 +08:00
Juan Leyva 2234b6c9dc MDL-64588 comment: Return whether the user can post in a comments area 2019-10-01 09:25:36 +08:00
Paul Holden aa5e150172 MDL-66792 tool_dataprivacy: correct fa classes in privacy registry. 2019-09-30 23:49:14 +01:00
Eloy Lafuente (stronk7) 12c377bbb6 Merge branch 'MDL-65876-master' of https://github.com/lucaboesch/moodle 2019-10-01 00:07:30 +02:00
Paul Holden 8208292f65 MDL-66804 user: consistent user access times in privacy export. 2019-09-30 23:02:50 +01:00
Tim Hunt e247068d72 MDL-66801 questions: XML import/export should include category idnumbers 2019-09-30 18:59:23 +01:00
Brendan Heywood 3bc082dd07 MDL-66166 core_useragent: Update MoodleBot UA and treat as web crawler 2019-09-30 23:30:20 +10:00
Tim Hunt e740085116 MDL-66796 question bank: 0 is a valid question category idnumber 2019-09-30 14:18:35 +01:00
Marina Glancy ec8453c122 MDL-65187 core_hub: truncate registration request, use post 2019-09-30 13:05:19 +02:00
Marina Glancy 04645f4e9b 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-09-30 13:05:19 +02:00
Marina Glancy b51bfaf594 MDL-65919 core: add test for table download 2019-09-30 12:00:37 +02:00
Alberto Lara Hernández 40a6b502ae MDL-65919 core: Skip send headers during phpunit exec in dataformats 2019-09-30 12:00:33 +02:00
Tim Schroeder f8f04b773d MDL-66542 lib: Fix quote escaping in JS quote helper 2019-09-30 10:09:07 +02:00
Neill Magill b3a0f15444 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:56:31 +01:00
Mikhail Golenkov 15136147ba MDL-66794 core_customfield: Reset Course handler after unit tests run. 2019-09-30 10:56:04 +10:00
Mikhail Golenkov 1a15925240 MDL-66304 files: Allow xsendfile support in alternative file system. 2019-09-30 09:00:57 +10:00
Luca Bösch b284ab6935 MDL-65876 forum: same arrows forum/activity navigation 2019-09-27 14:20:17 +02:00
Victor Deniz Falcon e83fd27717 MDL-66397 filter_h5p: converts H5P URLs to embed code 2019-09-27 11:01:12 +01:00
Ryan Wyllie 49f5b16c61 MDL-66477 mod_forum: remove duplicate listeners in settings drawer 2019-09-27 15:50:03 +08:00
Ryan Wyllie b53f15b111 MDL-66477 theme: add some core styling
Add a generic colour-inherit class and fix styling for icon
buttons and reset-style class.
2019-09-27 15:46:15 +08:00
Ryan Wyllie b17bb71e88 MDL-66477 javascript: add toggle functionality to drawer 2019-09-27 15:46:15 +08:00
Ryan Wyllie 6d9c93560b MDL-66477 core: remove snakeCase block regions from drawer.mustache 2019-09-27 15:46:15 +08:00
Jun Pataleta 959b996c50 MDL-66477 mod_forum: Create the discussion settings drawer 2019-09-27 15:46:13 +08:00
Ryan Wyllie c77d1ae40f MDL-66477 mod_forum: move region main settings menu to header
Add a generic way to render actions in the page content header
and then moved the region main settings menu there for the forum.
2019-09-27 15:38:54 +08:00
Jun Pataleta 8aca1807ae MDL-66477 message: Use the generic drawer for the message drawer 2019-09-27 15:38:54 +08:00
Jun Pataleta a2517225dc MDL-66477 core: Create a generic drawer template 2019-09-27 15:38:54 +08:00
David Monllaó 386d109172 MDL-62191 analytics: Support for bulk actions 2019-09-27 14:13:52 +08:00
David Monllaó af29098a2e MDL-62191 course: Remove predictiondetails leftover
The no_teaching model initially had just 1 indicator, the removed
code was deleting the action using an unexisting key.
2019-09-27 14:12:48 +08:00
David Monllaó 95fcf8769b MDL-62191 output: No secondary buttons trigger if no buttons 2019-09-27 14:12:48 +08:00
David Monllaó ca81e906e0 MDL-62191 output: New extra attributes for single_button
Useful for data- attributes.
2019-09-27 14:12:48 +08:00
David Monllaó 4463a4ae92 MDL-66628 tool_analytics: Effectiveness report to insights report 2019-09-27 14:05:36 +08:00
Jun Pataleta 9528b1ff5b weekly release 3.8dev 2019-09-27 11:12:09 +08:00
Jun Pataleta 46a8d27028 NOBUG: Fixed SVG browser compatibility 2019-09-27 11:12:09 +08:00
Jun Pataleta 725151ad4c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-09-27 11:12:08 +08:00
Jun Pataleta 2e72a52145 Merge branch 'MDL-66075-master-fix' of https://github.com/snake/moodle 2019-09-27 10:11:44 +08:00
Jake Dallimore f5e6bcf026 MDL-66075 mod_forum: reduce DB reads in forum settings generation
Instead of fetching the DB record AND then fetching it again (as
part of the vault->get_from_id() call, just use the legacy data
mapper and remove the DB call.
2019-09-27 09:50:23 +08:00
Jake Dallimore d310bf92b2 Merge branch 'MDL-64821' of https://github.com/stronk7/moodle 2019-09-27 09:40:23 +08:00
Ruslan Kabalin a742b03d8c MDL-63453 media_videojs: Use media_source mimetype group in the player. 2019-09-27 00:13:29 +00:00
Ruslan Kabalin 037124bf1c MDL-63453 filetypes: Introduce media_source mimetype group.
This is required to group together media streaming techniques that are
handled by Media Source Extensions (MSE) in the browser.

https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API
2019-09-27 00:13:09 +00:00
Eloy Lafuente (stronk7) cc28bff60e MDL-64821 mod_forum: increase data privacy export expected size
Some new styles added have caused the resulting zip
file to go beyond that accepted limit of 135000. So
increasing to 140000.
2019-09-26 19:35:54 +02:00
Eloy Lafuente (stronk7) c2c1cbd40a Merge branch 'MDL-66570-master' of git://github.com/andrewnicols/moodle 2019-09-26 15:56:38 +02:00
David Mudrák f5155c7526 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 09:49:16 +02:00
Jake Dallimore 57054fc66b Merge branch 'MDL-66481-master-6' of git://github.com/junpataleta/moodle 2019-09-26 11:57:51 +08:00
Jun Pataleta 8dc1505374 Merge branch 'MDL-66262' of git://github.com/stronk7/moodle 2019-09-26 11:34:45 +08:00
Jun Pataleta 0f3e5a9b8d MDL-66481 forum: Show notification on toggled subscription
For usability, after selecting the subscription toggle action menu item,
a notification message will be shown to the user.
2019-09-26 10:47:05 +08:00
Jun Pataleta 5132de054c MDL-66481 forum: Remove the YUI subscribe link
* Remove the subscribe link that's powered by YUI and
  subscribe_ajax.php. This will be replaced by the subscribe action
  menu item which utilises the subscription toggle template
  and calls the proper WS function for toggling discussion subscription.
* Nuke YUI module for toggling subscription and subscribe_ajax.php
  (about time!)
2019-09-26 10:47:05 +08:00
Jun Pataleta 2b8e4f2e4b MDL-66481 mod_forum: Peer review fixes 2019-09-26 10:47:05 +08:00
Jun Pataleta dff565b32c MDL-66481 mod_forum: Move "Mark as read" into the discussion menu 2019-09-26 10:47:05 +08:00
Jun Pataleta bc23cbaf54 MDL-66481 mod_forum: Implement additional column sorting
Implement sorting for the following columns:
* Discussion name
* Discussion starter name
* Group
2019-09-26 10:47:05 +08:00
Jun Pataleta a78070aa1b MDL-66481 mod_forum: Move timed discussion indicator
* Move it under the discussion column.
* Change it to look like a label
* Plus limit the group name to 15 characters
* Plus some accessibility fixes:
  - Add labels to column headings.
  - Set discussion name as a row heading.
2019-09-26 10:47:05 +08:00
Jun Pataleta 1a9e5cb230 MDL-66481 mod_forum: Update discussion list UI
* Remove striped table row style
* Move subscribe icon to the action menu
* Update the action menu icon
* Remove the Last post column
* Removed the "Created" column and moved the date under "Started by"
* Added "Locked" and "Subscribed" indicators under discussion names.
* Added group name with the group picture. For groups without pictures,
  a default placeholder picture is now shown.
2019-09-26 10:47:05 +08:00
Jun Pataleta 5bfde48125 MDL-66481 mod_forum: Switch action menu trigger to <a> tag
* This is how the usual moodle action menu is built.
* Removed the 'type="button"' attribute as it is not necessary.
* Added template context so it renders in the template library.
2019-09-26 10:47:05 +08:00
Jun Pataleta 0aba625a9c MDL-66481 lang: Add additional date display formats
* Day, abbreviated month, and year (e.g. 28 Aug 2019)
* Day and abbreviated month (e.g. 28 Aug)
2019-09-26 10:47:05 +08:00
Jake Dallimore c3122dfcf5 Merge branch 'MDL-64821-master-2' of https://github.com/ryanwyllie/moodle 2019-09-26 10:45:44 +08:00
Eloy Lafuente (stronk7) 07fd11f488 Merge branch 'MDL-66106-master' of https://github.com/snake/moodle 2019-09-26 00:54:36 +02:00
Eloy Lafuente (stronk7) e8a2d532fa Merge branch 'MDL-66169-master' of https://github.com/snake/moodle 2019-09-26 00:47:23 +02:00
Eloy Lafuente (stronk7) 31b822ee2f Merge branch 'MDL-66653-master' of git://github.com/andrewnicols/moodle 2019-09-26 00:29:07 +02:00
Eloy Lafuente (stronk7) dd52ef0b64 Merge branch 'MDL-51327-master' of git://github.com/mihailges/moodle 2019-09-26 00:04:33 +02:00
Eloy Lafuente (stronk7) d910c26e69 Merge branch 'MDL-66685' of https://github.com/timhunt/moodle 2019-09-25 23:57:42 +02:00
Eloy Lafuente (stronk7) b57e984398 Merge branch 'MDL-66675-master' of git://github.com/andrewnicols/moodle 2019-09-25 20:05:21 +02:00
Marina Glancy 54f2d0c49e MDL-66197 core: correct get parent language 2019-09-25 16:49:11 +02:00
Bas Brands 736faf86c5 MDL-66749 core_message: remove background from notifications 2019-09-25 12:46:32 +02:00
Tim Hunt b04b6ae1ab 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:04:38 +01:00
Bas Brands 61085ebfda MDL-56649 themes: filepicker file exists buttons spacing 2019-09-25 12:03:37 +02:00
Jun Pataleta ba623918f6 Merge branch 'MDL-66354-master' of http://github.com/dravek/moodle 2019-09-25 16:43:15 +08:00
Ryan Wyllie 15ecfac435 MDL-64821 mod_forum: fix modern view in single discussion forum 2019-09-25 15:36:51 +08:00
Ryan Wyllie a5f88ccca2 MDL-64821 theme_classic: disable some boost general page styling
Disable the reset and fixed width content styling from the Boost
theme for the classic theme because it doesn't work well with
blocks.
2019-09-25 15:36:51 +08:00
Ryan Wyllie 23e0ceca16 MDL-64821 mod_forum: don't show name of deleted user
When a user account is deleted don't render the user's name in
the forum. Instead we render "Deleted user".
2019-09-25 15:36:51 +08:00
Ryan Wyllie b97622a01c MDL-64821 mod_forum: fix keyboard nav for discussion 2019-09-25 15:36:51 +08:00
Ryan Wyllie 7902e4dc55 MDL-64821 mod_forum: add show/hide reply toggle for modern view 2019-09-25 15:36:51 +08:00
David Matamoros 21ad9531d0 MDL-66354 core_calendar: Notices in error.log on calendar events 2019-09-25 09:08:41 +02:00
Jun Pataleta 84e66f0932 Merge branch 'MDL-66644-master-versionrequires' of git://github.com/mudrd8mz/moodle 2019-09-25 14:54:29 +08:00
Jun Pataleta e5e95d913f Merge branch 'MDL-66710-master' of git://github.com/abgreeve/moodle 2019-09-25 14:38:23 +08:00
Ryan Wyllie 38d96b6540 MDL-64821 mod_forum: add in page reply to modern display mode 2019-09-25 14:35:59 +08:00
Matt Porritt 411bbe6ba0 MDL-63453 media_videojs: Upgrade Video.JS to 7.6.5.
Upgrade videojs media player to version 7.6.5 as well
as a general update this adds MPEG-DASH and HLS playlist
support to the Video.JS media player.
2019-09-25 05:52:38 +00:00
Ryan Wyllie fe8e8ad4c4 MDL-64821 mod_forum: render new forum display mode when selected 2019-09-25 13:12:53 +08:00
Adrian Greeve 91577e2d54 Merge branch 'wip_MDL-66656_master' of git://github.com/gjb2048/moodle 2019-09-25 11:39:57 +08:00
Adrian Greeve 0417f5429c Merge branch 'MDL-65406-master_navmenu_list_accessibility' of https://github.com/andrewmadden/moodle 2019-09-25 11:22:50 +08:00
Adrian Greeve 1b84061049 Merge branch 'MDL-66388-master-2' of git://github.com/bmbrands/moodle 2019-09-25 11:08:50 +08:00
Ryan Wyllie 7255378b0a MDL-64821 mod_forum: add templates for modern display mode 2019-09-25 10:47:56 +08:00
Ryan Wyllie b7c27c2158 MDL-64821 mod_forum: add modern display mode option
Add the "modern" display mode option to the view selector.
2019-09-25 10:42:19 +08:00
Ryan Wyllie 4dd2570dd7 MDL-64821 output: add wrapping class for ratings label
Add a span tag with a class that wraps the ratings label and popup
link so that it can be styled.
2019-09-25 10:42:19 +08:00
Ryan Wyllie e81be9a8b1 MDL-64821 files: increase icon image size for stored file exporter
The default size for the stored file icon was only 16px by 16px which
wasn't suitable for display in the new forum layout. I've increased
the default size to 128px by 128px so that it looks better scaled up.
2019-09-25 10:42:19 +08:00
Ryan Wyllie 060da692b6 MDL-64821 theme_boost: enable bootstrap tooltips 2019-09-25 10:42:19 +08:00
Ryan Wyllie 5ca0958d2f MDL-64821 theme_boost: add general core styling
Added some classes to reset the content styling to a flatter
look and fix the content width.

Also fixed up the toggle styling which was previously broken.
2019-09-25 10:42:19 +08:00
Eloy Lafuente (stronk7) 4544d9dc46 Merge branch 'MDL-66748-master' of git://github.com/andrewnicols/moodle 2019-09-24 23:26:51 +02:00
Andrew Nicols 14d8cdcc35 MDL-66748 core_grading: Use new gradingform data providers 2019-09-24 21:04:14 +08:00
Andrew Nicols d6576ca229 MDL-66748 gradingform_rubric: Add data generators 2019-09-24 21:04:14 +08:00
Andrew Nicols c71d5bbbba MDL-66748 gradingform_guide: Add data generators 2019-09-24 21:04:14 +08:00
Tim Hunt 824d1f8f52 MDL-66754 question engine: fix lots of PHPdoc errors
This fixes essentially all the things PHPstorm was warning about in
question/engine/datalib.php and question/engine/questionusage.php.
2019-09-24 10:25:29 +01:00
Andrew Madden 1ea3940c62 MDL-65406 theme_boost: Add list markup to nav drawer for accessibility
To take advantage of native accessibility features of lists such as counting
the number of items in the list for screen readers, the nav menu should
wrap it's links in unordered list markup.
2019-09-24 14:46:21 +10:00
Jun Pataleta 844d27b2cd Merge branch 'MDL-65968-master' of git://github.com/jleyva/moodle 2019-09-24 12:01:10 +08:00
Andrew Nicols 62b45c66ad MDL-66748 core_grading: Add generator 2019-09-24 11:26:41 +08:00
Mihail Geshoski efe8c3c663 MDL-51327 core_course: Allow subdirs in edit section form 2019-09-24 09:08:14 +08:00
Peter e6445c5bd9 MDL-65315 badges: Update the class and issuer OBv2.0 url 2019-09-24 07:33:13 +08:00
Eloy Lafuente (stronk7) ef6a958dfb Merge branch 'MDL-66733-master' of git://github.com/andrewnicols/moodle 2019-09-23 23:35:42 +02:00
Eloy Lafuente (stronk7) 08a6375507 Merge branch 'MDL-65588_master' of git://github.com/dmonllao/moodle 2019-09-23 22:51:10 +02:00
Tim Hunt c7a6488fad MDL-66743 backup: reports should be able to backup module-level data 2019-09-23 19:24:33 +01:00
Tim Hunt e05d99b94f MDL-66709 backup: move question attempt data helpers to a trait
This lets plugins other than activity modules backup and restore
question attempt data.

The old backup_questions_activity_structure_step and
restore_questions_activity_structure_step base classes still exist
and work exactly the same way they did before (because they use the
trait) so this change is completely backwards compatible.

To make this work fully, a few other things in the code had to be tweaked:

* Adding restore path elements had to consider the possibility of grouped
  parents in more places.

* I needed to add protected get_task() to the restore_plugin class.
  I don't think that is a problem.

* In the restore trait, the process_question_... methods needed to be
  changed to public for some reasons to do with PHP traits that I don't
  fully understand. However, I don't think this change is a problem.

* The way question_usage restore got the new contextid had to be changed
  (or it did not work in activity contexts), but the new code looks like
  a better way to do it anyway so that is good.
2019-09-23 19:24:32 +01:00
Tim Hunt 118d62a266 MDL-66709 quiz: add a Behat test for backup/restore of quiz attempts 2019-09-23 19:21:36 +01:00
Tim Hunt a6a4034b38 MDL-66709 backup: improve some PHPdoc type hints
I hope these are right. They seem to be, and made the autocomplete
better in some backup/restore code I was writing.
2019-09-23 19:21:09 +01:00
Tim Hunt 7b1b478761 MDL-66754 question engine: make $slots argument optional
Sometimes there is not a fixed list of slots, and you just want all data.
2019-09-23 18:03:23 +01:00
Bas Brands 297f7e411c MDL-66388 h5p: add h5p atto button 2019-09-23 16:32:23 +02:00
Tim Hunt 36f90f3ef0 MDL-66750 formslib selects: handle size attribute properly 2019-09-23 12:14:11 +01:00
Jake Dallimore 74e9aeca79 Merge branch 'MDL-66075-master' of git://github.com/lameze/moodle 2019-09-23 14:14:55 +08:00
Simey Lameze 0d2b3212d6 MDL-66075 mod_forum: unit tests for get_from_discussion_ids_and_user_ids 2019-09-23 13:48:48 +08:00
Simey Lameze 6d76fc107a MDL-66075 enrol: add unit tests for search_users webservice 2019-09-23 13:07:40 +08:00
Simey Lameze 1de4baf1f1 MDL-66075 core: various fixes & code polishing
* Removes unnecessary comment in search_users() WS.
* Replaces DB call by get_course() in search_users() WS.
* Fix discussionids handling on export.php.
* Coding style fix in test_search_users unit test.
* Add missing version bump.
* phpDOc fixes in post vault.
* Fix in the dataformat callback to handle different data types.
2019-09-23 13:07:30 +08:00
Jun Pataleta 8b09690540 Merge branch 'MDL-66645' of git://github.com/stronk7/moodle 2019-09-23 11:58:43 +08:00
AMOS bot f58b8a0162 Automatically generated installer lang files 2019-09-22 00:09:11 +00:00
Gareth Barnard f254cef989 MDL-66656 format_social: Edit Summary Icon leads to 'File not found'. 2019-09-20 21:44:33 +01:00
Eloy Lafuente (stronk7) d1e051d0c7 MDL-66645 install: update the list of stale files for 3.8 2019-09-20 16:16:31 +02:00
Sara Arjona c2b4ebe9cf Merge branch 'MDL-46978-Master' of github.com:tuanngocnguyen/moodle 2019-09-20 13:07:27 +02:00
Sara Arjona 1445f82315 Merge branch 'MDL-66090_master' of git://github.com/dmonllao/moodle 2019-09-20 12:46:16 +02:00
Mark Johnson d91aa1e760 MDL-65327 performance: Lazy-load module name strings 2019-09-20 08:59:34 +01:00
Mark Johnson f3c9599e1f MDL-65335 auth: Make oauth2 enabled check more efficient 2019-09-20 08:54:40 +01:00
Jake Dallimore 564a6e8650 Merge branch 'MDL-65970-master' of git://github.com/jleyva/moodle 2019-09-20 14:27:57 +08:00
Jake Dallimore 24ddc6dc64 MDL-66075 mod_forum: add more coverage of get_from_discussion_ids
Specifically, this is now testing the $canseeprivatereplies param for
different users and over a more complete range of cases.
2019-09-20 12:16:18 +08:00
Andrew Nicols 4bb39eabc7 MDL-66733 grade: Add helper to get correct user date for grade 2019-09-20 09:50:17 +08:00
Tom Dickman 4487612c4a MDL-63453 media_videojs: Upgrade Video.JS to 7.5.5.
Upgrade Video.JS to 7.5.5
Upgrade videojs-youtube plugin to 2.6.0
Upgrade videojs-flash plugin to 2.2.2

Added additional AMD modules for bootstrapping the DOM
window and document objects to Video.JS in line with the
updates made to Video.JS.
2019-09-20 01:29:19 +00:00
Jake Dallimore 5120087808 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:03:25 +08:00
Jake Dallimore cddbdb20b2 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-20 09:01:13 +08:00
Simey Lameze babc6bf707 MDL-66075 mod_forum: coverage for ordering in test_get_from_discussion_ids 2019-09-20 08:29:47 +08:00
Simey Lameze d72d47c115 MDL-66443 mod_forum: fix error when exporting in pdf format
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Simey Lameze 30eeb2a528 MDL-66604 mod_forum: add missing exportforum lang string
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 90093eecc1 MDL-66269 mod_forum: filter export based on user and discussion ids
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie ff0c5bbed9 MDL-66269 mod_forum: added get_from_discussion_ids_and_user_ids
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 1ff734a47d MDL-66269 mod_forum: refactor post vault class to remove duplications
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie e61a41b425 MDL-66269 mod_forum: added filters to the export form
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 32e4c582f0 MDL-66269 mod_forum: AMD module to fetch and format users
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 0f308fcda7 MDL-66269 enrol: A new webservice to search course participants
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 151ef39cd8 MDL-66269 enrol: added search_users method to course_enrolment_manager
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie c3ac38129d MDL-66269 mod_forum: removed the unnecessary hidden element
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie 078ac3aa3c MDL-66269 mod_forum: Cancelling the export should take us back to forum
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Shamim Rezaie a0185ef7b3 MDL-66269 mod_forum: the export form to use automatic class loading
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Simey Lameze fbdef95112 MDL-66314 mod_forum: fix error when exporting forum in HTML table
Part of MDL-66075.
2019-09-20 08:19:01 +08:00
Simey Lameze 75af28c73f MDL-9469 mod_forum: add exportforum capability and checks
Part of MDL-66075
2019-09-20 08:19:01 +08:00
Simey Lameze f7b7f4e679 MDL-9469 mod_forum: create basic forum export structure
Part of MDL-66075
2019-09-20 08:19:01 +08:00
Simey Lameze 357d74fda9 MDL-9469 mod_forum: add export node to settings menu
Part of MDL-66075
2019-09-20 08:19:01 +08:00
David Monllaó 2d9280e0df MDL-65588 analytics: New models for student accesses 2019-09-20 08:14:13 +08:00
David Monllaó 7d8ed90757 MDL-65588 analytics: Unit tests for any_course_access 2019-09-20 08:14:13 +08:00
David Monllaó 7b8a5bfd50 MDL-65588 tool_analytics: Alternative method to pass data to JS
The more time-splitting methods we have in core the more data we pass to
the amd module as an argument. There is a limit of 1024 characters and
a debugging message is triggered by js_call_amd if we surpass it.
2019-09-20 08:14:13 +08:00
Sara Arjona 6735197cc2 weekly release 3.8dev 2019-09-19 21:19:12 +02:00
Huong Nguyen 0fd6032ce8 MDL-66633 Quiz: Improve preview user checking 2019-09-19 16:20:42 +02:00
Nathan Nguyen 2aaac3f670 MDL-46978 core_grades: preserve category total visibility 2019-09-19 14:05:01 +10:00
Adrian Greeve f05c426357 MDL-66710 privacy: Update to template to reference js file right. 2019-09-19 10:42:48 +08:00
Andrew Nicols 1162e2c958 MDL-66675 behat: Fix typo in step function name 2019-09-19 07:30:15 +08:00
Andrew Nicols 0b07ea423b MDL-66675 behat: Add option to pause on behat failures 2019-09-19 07:30:15 +08:00
Eloy Lafuente (stronk7) 5a14a1c422 Merge branch 'MDL-66548-master' of git://github.com/bmbrands/moodle 2019-09-19 01:00:59 +02:00
Eloy Lafuente (stronk7) 0059a5e52e Merge branch 'MDL-40669' of https://github.com/paulholden/moodle 2019-09-18 23:15:13 +02:00
Paul Holden 51539ba383 MDL-40669 tool_uploaduser: set emailstop during upload Behat test. 2019-09-18 21:41:28 +01:00
Eloy Lafuente (stronk7) 502639bd3c Merge branch 'MDL-66641' of https://github.com/timhunt/moodle 2019-09-18 20:29:53 +02:00
Eloy Lafuente (stronk7) 699a12eeca Merge branch 'MDL-65878-master' of https://github.com/lucaboesch/moodle 2019-09-18 20:07:48 +02:00
Huong Nguyen 8dc015050e MDL-66633 quiz: allow to create attempts for different users
By adding a new optional param to quiz_prepare_and_start_new_attempt()
it can be used by the surrounding code to create an attempt for anybody
else (different from current $USER)

quiz attempt API should let you create an attempt for a different user
2019-09-18 19:52:09 +02:00
Eloy Lafuente (stronk7) 74241346c0 Merge branch 'MDL-65323-master' of https://github.com/snake/moodle 2019-09-18 18:15:19 +02:00
Eloy Lafuente (stronk7) 6f278d21b9 Merge branch 'MDL-63895-master' of git://github.com/vmdef/moodle 2019-09-18 17:33:17 +02:00
Eloy Lafuente (stronk7) 0fd2fd7442 Merge branch 'MDL-66536_master' of git://github.com/dmonllao/moodle 2019-09-18 16:51:40 +02:00
Eloy Lafuente (stronk7) 402966c77c Merge branch 'MDL-66091_master' of git://github.com/dmonllao/moodle 2019-09-18 16:46:51 +02:00
Sara Arjona d62447ee91 Merge branch 'MDL-63293' of https://github.com/paulholden/moodle 2019-09-18 13:39:55 +02:00
Eloy Lafuente (stronk7) 0709dfcf8b Merge branch 'MDL-40669' of https://github.com/paulholden/moodle 2019-09-18 13:13:15 +02:00
Sara Arjona 84d613deee Merge branch 'MDL-64438-master-4' of git://github.com/mihailges/moodle 2019-09-18 12:52:12 +02:00
Sara Arjona 286f876114 Merge branch 'MDL-66156-master' of https://github.com/snake/moodle 2019-09-18 12:25:36 +02:00
Mihail Geshoski 60983cc2a6 MDL-64438 block_starredcourses: Optionally show course category
AMOS BEGIN
CPY [displaycategories,block_myoverview],[displaycategories,block_starredcourses]
AMOS END
2019-09-18 17:58:24 +08:00
Mihail Geshoski d0b237b306 MDL-64438 block_recentlyaccessedcourses: Optionally show course category
AMOS BEGIN
CPY [displaycategories,block_myoverview],[displaycategories,block_recentlyaccessedcourses]
AMOS END
2019-09-18 17:57:47 +08:00
Mihail Geshoski 93ad530e8f MDL-64438 block_myoverview: Optionally display course category 2019-09-18 17:55:46 +08:00
Mihail Geshoski 704f93f46f MDL-64438 core_course: Optionally display course category 2019-09-18 17:52:20 +08:00
Jake Dallimore 61de432241 MDL-66156 block_myoverview: remove orphaned course favourite records 2019-09-18 14:33:06 +08:00
Jake Dallimore 2ab6f8a87e MDL-66156 block_myoverview: purge course favourites on course deletion. 2019-09-18 14:30:54 +08:00
David Monllaó 3581813348 MDL-66536 course: No teaching model renamed 2019-09-18 13:07:21 +08:00
David Monllaó 41db25935c MDL-66536 course: Custom message for students at risk
AMOS BEGIN
    MOV [insightinfomessage,analytics],[insightinfomessageplain,analytics]
AMOS END
2019-09-18 13:07:21 +08:00
David Monllaó 16cb4f32a0 MDL-66536 analytics: Indicators can add extra data for targets 2019-09-18 13:07:21 +08:00
David Monllaó b024720499 MDL-66536 analytics: Bulk-fetch samples data
For one_sample_per_analysable models.
2019-09-18 13:04:30 +08:00
David Monllaó 93e71c712d MDL-66091 report_insights: Unify contextwithinsights cache sets 2019-09-18 13:00:06 +08:00
Eloy Lafuente (stronk7) 1b22fec64f Merge branch 'MDL-65026-master' of git://github.com/jleyva/moodle 2019-09-18 00:49:21 +02:00
Juan Leyva 57e4faa094 MDL-65970 airnotifier: Set lower timeout for Push curl requests 2019-09-17 16:50:53 +02:00
Juan Leyva dcadc8c54c MDL-65968 notifications: Use f1 size avatars for Push notifications 2019-09-17 16:29:02 +02:00
Eloy Lafuente (stronk7) facf2f80b0 Merge branch 'MDL-62915' of https://github.com/paulholden/moodle 2019-09-17 16:21:41 +02:00
Sara Arjona 2bad312ada Merge branch 'MDL-66113-master' of git://github.com/jleyva/moodle 2019-09-17 12:03:42 +02:00
Andrew Nicols 3b4717ea4b MDL-66675 CLI: Add ANSI formatting options 2019-09-17 14:38:32 +08:00
Andrew Nicols e044c3debe MDL-66570 admin: Add setting to hide captured cron log output 2019-09-17 14:03:31 +08:00
David Monllaó 486e797c5f MDL-66091 analytics: Targets choose if there should be a report or not 2019-09-17 13:58:55 +08:00
David Monllaó 21202090f7 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-17 13:57:36 +08:00
David Monllaó d3d1615eee MDL-66090 analytics: Support user for notifications 2019-09-17 07:54:01 +08:00
Eloy Lafuente (stronk7) 37b017af3d Merge branch 'MDL-65025-master' of git://github.com/jleyva/moodle 2019-09-17 00:01:51 +02:00
Eloy Lafuente (stronk7) 164597248c Merge branch 'MDL-66293-master' of git://github.com/rezaies/moodle 2019-09-16 20:34:23 +02:00
Bas Brands 3c336f516c 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:02:30 +02:00
Tim Hunt a3624fdf0f MDL-66685 questions: should able to save an empty question usage 2019-09-16 14:35:18 +01:00
Juan Leyva dfd4881589 MDL-65026 course: Fix modules intro formatting in WS
The Web Service seems to be doing excessive text cleaning.
2019-09-16 13:04:26 +02:00
Juan Leyva 0b9f2215d0 MDL-66113 assign: Apply user overrides in get_submission_status WS 2019-09-16 12:05:55 +02:00
Paul Holden b15bb419ba MDL-63293 enrol_manual: observe user paging config in enrol dialog. 2019-09-15 21:48:03 +01:00
Paul Holden c4e79fc604 MDL-40669 tool_uploaduser: allow emailstop to be set during upload. 2019-09-15 21:43:55 +01:00
Paul Holden 3903a26896 MDL-62915 tool_dataprivacy: don't let primary admin delete themselves. 2019-09-15 21:36:07 +01:00
Eloy Lafuente (stronk7) c2617a2878 MDL-66262 env: Moodle 3.6.x and 3.7.x do not support PHP 7.4 2019-09-13 17:41:53 +02:00
Luca Bösch 7b525dd73d MDL-65878 core_output: Move button not sticky to select field. 2019-09-13 17:21:43 +02:00
Jake Dallimore 1c3efe48f8 weekly release 3.8dev 2019-09-13 11:30:09 +08:00
Jake Dallimore c83656a6fd Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-09-13 11:30:08 +08:00
Jake Dallimore 35500af896 MDL-65323 core_favourites: replace use of deprecated phpunit methods 2019-09-13 10:21:06 +08:00
Eloy Lafuente (stronk7) ecfac20187 Merge branch 'MDL-66550-master' of git://github.com/andrewnicols/moodle 2019-09-12 15:28:06 +02:00
Andrew Nicols 419b269c9e MDL-66550 admin: The execute wrapper MUST be used in behat 2019-09-12 20:58:10 +08:00
Andrew Nicols 5034f0a12b MDL-66550 theme: Wrap JS calls in pendingJS 2019-09-12 20:58:10 +08:00
Víctor Déniz Falcón a98192b8c0 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 12:04:43 +01:00
Shamim Rezaie 74051d3b4b MDL-66293 javascript: set maximum paging bar size to 10 2019-09-12 14:23:56 +10:00
Shamim Rezaie ffa329986c MDL-66293 javascript: Added support to set bar size for paging bars 2019-09-12 14:23:56 +10:00
Andrew Nicols 82704b0d2e Merge branch 'MDL-66498_master' of git://github.com/dmonllao/moodle 2019-09-12 11:15:21 +08:00
Jake Dallimore b75e563777 Merge branch 'MDL-64917-Master' of https://github.com/tuanngocnguyen/moodle 2019-09-12 09:27:45 +08:00
Nathan Nguyen 5b54a1c726 MDL-64917 filepicker: change event dispatch 2019-09-12 10:57:21 +10:00
AMOS bot 2bf9f55af2 Automatically generated installer lang files 2019-09-12 00:09:11 +00:00
Andrew Nicols dd3e427d88 Merge branch 'MDL-66489-master' of git://github.com/rezaies/moodle 2019-09-12 07:05:50 +08:00
Eloy Lafuente (stronk7) 99c0463c0c MDL-55751 themes: document the removal of the css chunker in upgrade.txt 2019-09-11 23:25:56 +02:00
Eloy Lafuente (stronk7) 6cbc3be766 Merge branch 'MDL-55751-master' of git://github.com/bmbrands/moodle 2019-09-11 23:16:51 +02:00
Eloy Lafuente (stronk7) 61e82de3ee Merge branch 'MDL-65205-master' of git://github.com/bmbrands/moodle 2019-09-11 22:55:01 +02:00
Eloy Lafuente (stronk7) 3e9a7db3bd Merge branch 'MDL-66563' of https://github.com/timhunt/moodle 2019-09-11 20:10:33 +02:00
Andrew Nicols 76e0b6315a Merge branch 'MDL-66552-master' of https://github.com/snake/moodle 2019-09-11 21:19:51 +08:00
Shamim Rezaie 3919150d37 MDL-66489 enrol: prevent warning when the duration field is disabled 2019-09-11 20:18:43 +10:00
Shamim Rezaie 2d4ce64dde 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:18:26 +10:00
Andrew Nicols 15f13cb74c Merge branch 'MDL-65429-master' of git://github.com/peterRd/moodle 2019-09-11 14:21:42 +08:00
Andrew Nicols 78b0a0c201 MDL-66653 javascript: Support ES6 dynamic imports 2019-09-11 14:06:32 +08:00
Jake Dallimore 6739739100 Merge branch 'MDL-65493-master' of git://github.com/andrewnicols/moodle 2019-09-11 13:45:19 +08:00
David Monllaó abc745fbd0 MDL-66498 analytics: get_samples() with no params limit 2019-09-11 12:44:55 +08:00
David Monllaó 4fd74fba6f MDL-66498 analytics: Avoid get_in_or_equal for big arrays
Also, join directly with context table.
2019-09-11 12:44:55 +08:00
David Monllao 500111c5d3 MDL-66498 analytics: SQL IN in chunks 2019-09-11 12:44:55 +08:00
Andrew Nicols 5f6ac2017a Merge branch 'MDL-66328' of https://github.com/timhunt/moodle 2019-09-11 12:21:14 +08:00
Andrew Nicols 20cc24e684 Merge branch 'MDL-65935-master' of git://github.com/junpataleta/moodle 2019-09-11 12:16:57 +08:00
Jake Dallimore 28be82a6a6 Merge branch 'MDL-66550-master' of git://github.com/andrewnicols/moodle 2019-09-11 10:39:17 +08:00
Eloy Lafuente (stronk7) 3c96a88cb4 Merge branch 'MDL-66436-master' of https://github.com/lucaboesch/moodle 2019-09-11 01:21:16 +02:00
Eloy Lafuente (stronk7) 6511a64fa5 Merge branch 'MDL-65310-master' of https://github.com/tsmilan/moodle 2019-09-11 00:41:22 +02:00
David Mudrák ac0a4b568b 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 18:11:09 +02:00
Andrew Nicols bb6315f281 MDL-66550 forum: Target fields in a fieldset for behat test 2019-09-10 21:29:03 +08:00
Andrew Nicols 2920155a31 MDL-66550 behat: Transform fields to search in a fieldset 2019-09-10 21:29:03 +08:00
Andrew Nicols d10ed4d240 MDL-66550 behat: Standardise finding in core functionality 2019-09-10 21:29:03 +08:00
Andrew Nicols b983ae4ab8 MDL-66550 behat: Add ability to transform a specific selector 2019-09-10 21:29:00 +08:00
Andrew Nicols 700682dc40 MDL-66550 behat: Normalise selectors better 2019-09-10 21:28:47 +08:00
Tim Hunt 287134e1dd MDL-66641 quiz stats: discriminativeefficiency is already out of 100 2019-09-10 12:11:27 +01:00
Jake Dallimore dd68a81958 Merge branch 'MDL-64094' of https://github.com/NeillM/moodle 2019-09-10 14:42:58 +08:00
Jake Dallimore 42bce7a965 Merge branch 'MDL-58992_master' of git://github.com/dmonllao/moodle 2019-09-10 13:40:23 +08:00
Jake Dallimore 527595f3f8 Merge branch 'MDL-66409-edit-numerical/master' of https://github.com/RaAstons/moodle 2019-09-10 13:34:36 +08:00
Andrew Nicols add66da52d Merge branch 'MDL-63250-master' of https://github.com/Kathrin84/moodle 2019-09-10 12:33:20 +08:00
Andrew Nicols 158df6275e Merge branch 'MDL-66537-master' of git://github.com/peterRd/moodle 2019-09-10 12:18:16 +08:00
Jake Dallimore e524921353 Merge branch 'MDL-66599_master' of git://github.com/dmonllao/moodle 2019-09-10 10:46:28 +08:00
Peter 44ad3e5171 MDL-66537 assign: Force rotate buttons to keep positioning in RTL langs 2019-09-10 10:23:13 +08:00
Andrew Nicols 95d3a87dd4 Merge branch 'MDL-66502-master' of git://github.com/junpataleta/moodle 2019-09-10 09:35:08 +08:00
Tim Hunt f1f3101b4e MDL-66328 groups: overview page can require lots of memory 2019-09-09 11:18:23 +01:00
Bas Brands 8ea1e39f4c MDL-55751 themes: remove the css chunker
The css chunker is a workaround a browser bug for old IE versions
2019-09-09 11:18:05 +02:00
Frédéric Massart f3847964b6 MDL-66502 javascript: Remove extension from AMD module names 2019-09-09 16:25:17 +08:00
Raphaël Santos 21d6123fbd 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:39:34 +02:00
Andrew Nicols 259467d283 Merge branch 'MDL-66488' of https://github.com/willob99/moodle 2019-09-09 09:07:07 +08:00
Vlad Apetrei 8cb90066d4 MDL-58992 analytics: add multi-classification to predictors
Adds multi-class capabilities to prediction processors
as well as multi-classification unit tests
2019-09-09 08:49:56 +08:00
David Monllaó f5583e9718 MDL-66599 analytics: New index for analytics_used_analysables 2019-09-09 08:30:50 +08:00
Jun Pataleta 0aa833de2e MDL-65935 mod_feedback: Use new core/checkbox_toggleall
Plus:
* Add labels for each nonrespondent's checkbox to improve
accessibility.
* Remove the now-unused mod/feedback/feedback.js
2019-09-08 10:01:05 +08:00
Will O'Brien 163750f3e5 MDL-66488 mod_assign: make submission comments textarea expandable
Allow submission comments textarea on assignment "View all submissions"
page to expand both ways, rather than just vertically.
2019-09-06 23:15:52 +01:00
Neill Magill d2262ecea5 MDL-64094 dashboard: Remove unnecesary behat steps
We do not need to explicitly log out at the end of a behat test, the
browser session is killed automatically during the scenario teardown.
2019-09-06 08:59:18 +01:00
Neill Magill 74d7ab50fd MDL-64094 dashboard: Improve the nomenclature
The use of hidden for the course tiles on the course overview is
causing some users to confuse it with course visibility to students
this change aims to make it clear that the functionality only affects
the user's own instance of the block.
2019-09-06 08:59:18 +01:00
Trisha Milan ff649d7bd4 MDL-65310 block_timeline: Hide activities without due date 2019-09-06 13:46:19 +10:00
Andrew Nicols 05abf2cf2f MDL-65493 core: Add pendingJS around pubsub.publish 2019-09-06 08:40:56 +08:00
Andrew Nicols 2cd63188aa MDL-65493 message: The execute wrapper MUST be used 2019-09-06 08:40:56 +08:00
Andrew Nicols 11970d0a7f MDL-65493 message: JS fixes for random behat fails 2019-09-06 08:40:56 +08:00
Luca Bösch fd5903ef8d MDL-66436 glossary: Edit and delete categories form styles. 2019-09-05 18:03:52 +02:00
Eloy Lafuente (stronk7) a672f021ea weekly release 3.8dev 2019-09-05 17:14:21 +02:00
Eloy Lafuente (stronk7) 245cc67078 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-09-05 17:14:18 +02:00
Jake Dallimore a7e33b03a4 Merge branch 'MDL-56223-master' of git://github.com/lameze/moodle 2019-09-05 17:20:03 +08:00
Simey Lameze 1db417c2f2 MDL-56223 calendar: fix wrong create_calendar_events WS phpdoc 2019-09-05 17:15:17 +08:00
Simey Lameze 2d132fda75 MDL-56223 calendar: show the number of deleted events 2019-09-05 17:15:14 +08:00
Bas Brands a4ae06306d MDL-65205 themes: message interface message styles
* change shadow for hovering over messages
* remove dependancy on the sass secondary color
2019-09-05 10:47:43 +02:00
Simey Lameze d5727ed3ba MDL-56223 calendar: skip events updating if nothing has changed 2019-09-05 16:18:37 +08:00
Andrew Nicols 413172521a Merge branch 'MDL-65550-master' of git://github.com/jleyva/moodle 2019-09-05 11:38:36 +08:00
Jake Dallimore cd1bdc7946 Merge branch 'MDL-66551-master' of git://github.com/lameze/moodle 2019-09-05 11:12:35 +08:00
Andrew Nicols 506a0f4bc0 MDL-66340 setup; Whitepace fix 2019-09-05 10:50:25 +08:00
Andrew Nicols bca45d08fd Merge branch 'MDL-66340' of https://github.com/brendanheywood/moodle 2019-09-05 10:45:55 +08:00
Simey Lameze 8c07d7d760 MDL-66551 core_user: remove orphaned calendar subscriptions 2019-09-05 10:21:05 +08:00
Andrew Nicols 3af598c75c Merge branch 'MDL-66391-master' of https://bitbucket.org/isprynt/moodle 2019-09-05 09:59:01 +08:00
Jake Dallimore 2796356278 Merge branch 'MDL-66367_master' of git://github.com/markn86/moodle 2019-09-05 09:26:28 +08:00
Eloy Lafuente (stronk7) 9533156775 Merge branch 'MDL-66072-master-3' of git://github.com/peterRd/moodle 2019-09-05 02:48:00 +02:00
Eloy Lafuente (stronk7) 1e248a654e Merge branch 'MDL-66560-master' of https://github.com/lucaboesch/moodle 2019-09-05 02:15:15 +02:00
AMOS bot cf39122c79 Automatically generated installer lang files 2019-09-05 00:11:50 +00:00
Mahmoud.Kassaei 1d89daf329 MDL-66563 Questions: Drag and Drop qtypes in high-contrast 2019-09-04 15:32:16 +01:00
Segun Babalola 85d142f56a MDL-66391 core_course: Fix to send correct Ajax parameter for userid 2019-09-04 12:10:53 +01:00
Mark Nelson af8a70756f MDL-66367 core: don't cache templates if templaterev is invalid 2019-09-04 12:54:02 +02:00
Mark Nelson 9e5edc7f68 MDL-66367 core: use templaterev as the cache key when getting templates 2019-09-04 12:54:02 +02:00
Mark Nelson 988482f077 MDL-66367 core: make templaterev available in JS 2019-09-04 12:54:02 +02:00
Mark Nelson e63395bbed MDL-66367 core: added templaterev variable 2019-09-04 12:54:02 +02:00
Mark Nelson 5beb388516 MDL-66367 core: added new cachetemplates setting 2019-09-04 12:54:02 +02:00
Andrew Nicols eb70a00163 Merge branch 'MDL-66137-38_mod_assign_marking_workflow_incorrect_grade_display' of https://github.com/tomdickman/moodle 2019-09-04 13:44:49 +08:00
Tom Dickman 028c5ed5f9 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 14:29:30 +10:00
Andrew Nicols f37035cb04 Merge branch 'MDL-66554-master' of git://github.com/jleyva/moodle 2019-09-04 12:24:02 +08:00
Andrew Nicols 38d2c992e4 Merge branch 'MDL-66500-master-unoconvwarning' of git://github.com/mudrd8mz/moodle 2019-09-04 12:14:00 +08:00
Ryan Wyllie 3fb0cbd4bb 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:22:51 +08:00
Ryan Wyllie f9664b0c19 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:22:51 +08:00
Jake Dallimore 52a74c46ba Merge branch 'MDL-66265-master' of git://github.com/andrewnicols/moodle 2019-09-04 11:02:27 +08:00
Andrew Nicols 324f76308d MDL-66265 javascript: More specific overrides in eslintrc 2019-09-04 10:47:21 +08:00
AMOS bot 8fca8c140c Automatically generated installer lang files 2019-09-04 00:10:59 +00:00
Eloy Lafuente (stronk7) 9483886459 Merge branch 'MDL-66265-master' of git://github.com/andrewnicols/moodle 2019-09-04 02:07:42 +02:00
Eloy Lafuente (stronk7) 700e5ca69c Merge branch 'MDL-66532-master' of git://github.com/andrewnicols/moodle 2019-09-04 01:46:11 +02:00
Peter 14db737452 MDL-66072 core: Remove ancillary sharing functions and code 2019-09-04 07:09:43 +08:00
Peter 020bad738a MDL-66072 core: Remove course sharing and related capabilities 2019-09-04 07:09:05 +08:00
Andrew Nicols 9ec0cbe9ee MDL-66265 javascript: Ignore camelcase in Gruntfile 2019-09-04 06:48:11 +08:00
Andrew Nicols f59ac4166c MDL-66265 javascript: Add jshint ignore for ES6 files in root dir 2019-09-04 06:48:11 +08:00
Andrew Nicols b5fbca8f4a MDL-66265 javascript: Add basic jshint ignores 2019-09-04 06:48:11 +08:00
Andrew Nicols ad2574f770 MDL-66265 javascript: Bump jshint version 2019-09-04 06:48:11 +08:00
Andrew Nicols d2c0f54cea MDL-66532 javascript: Lock NPM version for NVM 2019-09-04 06:45:51 +08:00
Eloy Lafuente (stronk7) 3085a5843a Merge branch 'MDL-63315-master' of https://github.com/sammarshallou/moodle 2019-09-04 00:14:53 +02:00
Eloy Lafuente (stronk7) 3213963f96 MDL-66120 block_community: make upgrade steps match current version 2019-09-03 12:32:13 +02:00
Eloy Lafuente (stronk7) ea1283ddca Merge branch 'MDL-66120-master' of git://github.com/peterRd/moodle 2019-09-03 12:27:34 +02:00
Andrew Nicols 9bb085dd1a Merge branch 'MDL-66434-master' of https://github.com/lucaboesch/moodle 2019-09-03 12:40:38 +08:00
Andrew Nicols fce4664899 Merge branch 'MDL-62161' of https://github.com/paulholden/moodle 2019-09-03 11:26:19 +08:00
Jake Dallimore 3f64863d22 Merge branch 'MDL-38555-master' of https://github.com/sammarshallou/moodle 2019-09-03 11:07:10 +08:00
Peter 1d6f041a2e MDL-66120 block_community: Remove community block and related caps
With the sunsetting of moodle.net, the community block will no longer
be functional, so removing the block and related caps
2019-09-03 09:30:50 +08:00
Andrew Nicols ebd30140dc Merge branch 'MDL-65042-master' of git://github.com/jleyva/moodle 2019-09-03 09:29:00 +08:00
AMOS bot b453627935 Automatically generated installer lang files 2019-09-03 00:11:24 +00:00
AMOS bot ecf1234950 Automatically generated installer lang files 2019-09-03 00:11:23 +00:00
Andrew Nicols 76b5fd3e11 Merge branch 'MDL-66504' of git://github.com/stronk7/moodle 2019-09-03 07:04:18 +08:00
Andrew Nicols 932d89250d Merge branch 'MDL-66229-master' of git://github.com/jleyva/moodle 2019-09-03 07:02:40 +08:00
Eloy Lafuente (stronk7) 5795785472 Merge branch 'MDL-66457-master' of git://github.com/andrewnicols/moodle 2019-09-03 00:54:42 +02:00
Eloy Lafuente (stronk7) 1bf2b6d52a MDL-66504 lang: Apply cantblockuser changes to behat tests 2019-09-02 19:00:28 +02:00
Juan Leyva d4985a7739 MDL-66501 tool_mobile: Prevent URLs in custom scheme 2019-09-02 17:04:35 +02:00
Jun Pataleta b4c92fb75b MDL-66187 format_singleactivity: Make sure available types is not empty 2019-09-02 17:04:35 +02:00
Andrew Nicols 208397c120 MDL-66187 course: Respect :addinstance in single activity format 2019-09-02 17:04:35 +02:00
Andrew Nicols ed080a580f MDL-66181 course: Only assign roles that the user is allowed to assign 2019-09-02 17:04:35 +02:00
Andrew Nicols 8cb4578de8 MDL-66181 behat: You check checkboxes, not click them 2019-09-02 17:04:35 +02:00
Michael Hawkins 32e2e06a87 MDL-55451 mod_forum: Limit subscription redirect to internal URLs 2019-09-02 17:04:35 +02:00
David Monllaó d3253b73c4 MDL-66069 mlbackend_python: Bump to a new version of the package 2019-09-02 17:04:35 +02:00
sam marshall 46875866c6 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:08:57 +01:00
sam marshall 109c77d37d MDL-38555 Forms: Prevent multiple clicking of submit button 2019-09-02 11:46:12 +01:00
Jake Dallimore b9679e69ec MDL-66552 core: move and rename relativedatestimediffformat string
AMOS BEGIN
    MOV [relativedatestimediffformat,moodle],[dateintervaldayshoursmins,langconfig]
AMOS END
2019-09-02 10:55:37 +08:00
Simey Lameze 5a1fd6e854 MDL-66551 core_user: delete_user() should remove users calendar subs 2019-09-02 10:24:06 +08:00
Eloy Lafuente (stronk7) 563888202e Merge branch 'MDL-66575-master' of https://github.com/snake/moodle 2019-09-01 16:52:34 +02:00
Jake Dallimore d2c09e8ffd MDL-66575 mod_assign: fix first day of current month behat edge case
What we really want to test in this behat test is the 2 extremes:
the user who started a long time ago and doesn't have access any more
and the user who started recently, who does have access. To fix all
problems with datetime clashes, it's probably better to just use
'yesterday' for the current student's enrolment start time.
2019-09-02 13:11:49 +08:00
Andrew Nicols 867dc0b4a2 Merge branch 'MDL-33087' of https://github.com/paulholden/moodle 2019-09-02 10:47:42 +08:00
Jake Dallimore 726a8284af Merge branch 'MDL-66376-master' of git://github.com/jleyva/moodle 2019-09-02 10:32:28 +08:00
David Mudrák da0dbeeb99 MDL-66504 lang: Use the new strings in the Behat scenario 2019-09-01 12:33:24 +02:00
Helen Foster 7ee90659ee MDL-66504 lang: Import fixed English strings (en_fix)
Significant string changes:

- configgeneralfiles,core_backup - includes explanation of implications
  of settings
- 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:31:15 +02:00
Paul Holden d19a7b2794 MDL-62161 user: preserve all selected users between searches. 2019-08-30 14:37:11 +01:00
Paul Holden 580ed1a252 MDL-33087 tool_capability: correct role override link. 2019-08-30 14:34:25 +01:00
Luca Bösch 5b48fefa56 MDL-66560 import: Format course search UI elements. 2019-08-30 11:25:17 +02:00
Andrew Nicols 605550a2d8 MDL-66457 behat: simplify selector search 2019-08-30 15:13:07 +08:00
Luca Bösch 20f166cf55 MDL-66434 mod_data: Align 'Field description' field as all other fields. 2019-08-30 07:58:52 +02:00
Jake Dallimore 310d6901f9 weekly release 3.8dev 2019-08-30 13:12:04 +08:00
Adrian Greeve f69543d741 Merge branch 'MDL-66558-master' of https://github.com/snake/moodle 2019-08-30 10:41:45 +08:00
Jake Dallimore cb14d4d811 MDL-66558 core_course: fix edge case in relative dates behat feature 2019-08-30 10:19:42 +08:00
Peter 474a96d707 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:07:22 +08:00
Eloy Lafuente (stronk7) 78168d7c9b MDL-66326 Global search: Unit test fix for Oracle 2019-08-30 00:17:12 +02:00
Juan Leyva 7a30377dc0 MDL-66554 mod_scorm: Set module viewed in WS 2019-08-29 20:45:43 +01:00
Juan Leyva cd43240d77 MDL-66376 webservice: Return user private access key for fetching files 2019-08-29 20:02:48 +01:00
Jake Dallimore 9e93b2f20e Merge branch 'MDL-66139' of https://github.com/stronk7/moodle 2019-08-29 11:51:06 +08:00
Adrian Greeve 5872c4d43e Merge branch 'MDL-65969-master' of git://github.com/jleyva/moodle 2019-08-29 11:14:07 +08:00
Netica Informática d17bf23e8a 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:57:40 +02:00
Eloy Lafuente (stronk7) 998f605d5c Merge branch 'MDL-66133-master' of git://github.com/abias/moodle 2019-08-28 17:38:25 +02:00
Eloy Lafuente (stronk7) fd3e11a6de Merge branch 'MDL-66326-master' of https://github.com/sammarshallou/moodle 2019-08-28 17:24:35 +02:00
Eloy Lafuente (stronk7) e15f301404 Merge branch 'master_MDL-65116' of https://github.com/yao9394/moodle 2019-08-28 16:39:49 +02:00
Eloy Lafuente (stronk7) 84c2a4ec54 Merge branch 'MDL-60341_master' of git://github.com/markn86/moodle 2019-08-28 15:46:09 +02:00
Jake Dallimore abe72d078e Merge branch 'MDL-66244-master' of git://github.com/jleyva/moodle 2019-08-28 17:42:07 +08:00
Juan Leyva 47138d9157 MDL-66244 message: Include group sender images in payload
Android 9 notifications now displays two image icons in conversations.
The group and the sender.
2019-08-28 10:33:59 +01:00
Adrian Greeve 34859ec08e Merge branch 'MDL-66230' of https://github.com/paulholden/moodle 2019-08-28 14:54:36 +08:00
Mark Nelson 8e86a8d2db MDL-60341 core_cache: show cache definitions that can use local store 2019-08-28 14:00:38 +08:00
Adrian Greeve 06888cfef9 Merge branch 'MDL-66374-master' of git://github.com/jleyva/moodle 2019-08-28 13:54:03 +08:00
Adrian Greeve db0fb28b4a Merge branch 'MDL-66375-master' of git://github.com/jleyva/moodle 2019-08-28 13:33:05 +08:00
Adrian Greeve ed06cb4ecf Merge branch 'MDL-66458-master' of git://github.com/crazyserver/moodle 2019-08-28 11:25:16 +08:00
Adrian Greeve 1e9040f239 Merge branch 'MDL-66461-master' of git://github.com/jleyva/moodle 2019-08-28 11:15:28 +08:00
Adrian Greeve ef848e0aa8 Merge branch 'MDL-66468-master' of git://github.com/jleyva/moodle 2019-08-28 08:54:26 +08:00
Eloy Lafuente (stronk7) 1f1c48047f Merge branch 'MDL-66446-master' of git://github.com/junpataleta/moodle 2019-08-28 00:24:51 +02:00
Adrian Greeve a08fb2388c Merge branch 'MDL-65653-master' of git://github.com/jleyva/moodle 2019-08-27 15:07:50 +08:00
Brendan Heywood 4ed105a9fd MDL-66340 setup: Add after_config for after setup.php is loaded 2019-08-27 13:24:15 +10:00
Adrian Greeve 1084baf811 Merge branch 'MDL-66016-master' of git://github.com/abias/moodle 2019-08-27 09:32:42 +08:00
Eloy Lafuente (stronk7) 0b5990ab60 MDL-66184 core: Update composer to apply for php 7.1.0 as min
With behat extension v3.38.2 we started requiring php 7.1.0
(same requirement than core 3.8.x). This bumps all the components
in the lock file to suit that requirement.

Generated with php 7.1.x.
2019-08-27 00:42:30 +02:00
David Mudrák b49bf4299c MDL-66500 lang: Add the unoconvwarning string back
It has been deprecated and removed by mistake.
2019-08-26 21:26:38 +02:00
Eloy Lafuente (stronk7) 40e0d6c4a7 Merge branch 'MDL-66309-master' of https://github.com/sammarshallou/moodle 2019-08-26 20:15:11 +02:00
Eloy Lafuente (stronk7) 6d6431fa23 Merge branch 'MDL-66312-master' of git://github.com/andrewnicols/moodle 2019-08-26 19:38:45 +02:00
Eloy Lafuente (stronk7) 4ae788399e Merge branch 'MDL-66061-master' of git://github.com/jleyva/moodle 2019-08-26 16:29:16 +02:00
Alexander Bias 8196aa4437 MDL-66016 block_myoverview: Improve settings page 2019-08-23 20:44:19 +02:00
Alexander Bias 2276614cd8 MDL-66016 block_myoverview: Make course filter options configurable 2019-08-23 20:44:19 +02:00
Alexander Bias cd4abbc740 MDL-66016 block_myoverview: Add 'All' course filter 2019-08-23 20:44:19 +02:00
Alexander Bias ee47c8fd96 MDL-66016 block_myoverview: Add missing template example context items 2019-08-23 20:44:19 +02:00
Alexander Bias 535cec788e MDL-66016 block_myoverview: Rename 'all courses except hidden' in AMOS
AMOS BEGIN
 MOV [allexcepthidden,block_myoverview],[all,block_myoverview]
 MOV [aria:allcoursesexcepthidden,block_myoverview],[aria:allcourses,block_myoverview]
AMOS END
2019-08-23 20:44:19 +02:00
Alexander Bias 5345004301 MDL-66016 block_myoverview: Rename unused 'all courses' in AMOS
AMOS BEGIN
 MOV [all,block_myoverview],[allincludinghidden,block_myoverview]
 MOV [aria:allcourses,block_myoverview],[aria:allcoursesincludinghidden,block_myoverview]
AMOS END
2019-08-23 20:44:19 +02:00
Alexander Bias 7e00bfd9f1 MDL-66133 user: Fix code style for existing comments 2019-08-23 20:43:27 +02:00
Alexander Bias a292ed5472 MDL-66133 user: Add setting to configure user filters 2019-08-23 20:43:26 +02:00
Eloy Lafuente (stronk7) 0dca957716 weekly release 3.8dev 2019-08-23 19:16:21 +02:00
Jun Pataleta d602fc0de1 Merge branch 'MDL-66483' of git://github.com/stronk7/moodle 2019-08-23 20:15:45 +08:00
sam marshall 7ba2a20166 MDL-66326 Global search: Delete from index when courses are deleted
Adds new API support within search engines for optional methods to
delete data for courses and contexts, and implements this for the
two core search plugins (simpledb and solr).

The new API is automatically called when courses or contexts are
deleted. When a whole course is deleted, it only sends the course
delete rather than sending 1,000 separate context deletions as
each activity/block is deleted.
2019-08-23 11:51:50 +01:00
sam marshall b174e5d03b MDL-66309 block_recentlyaccesseditems: Improve upgrade performance 2019-08-23 11:34:32 +01:00
Eloy Lafuente (stronk7) 9900a6dd47 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:21:28 +02:00
Jun Pataleta 50987d04ea MDL-66446 course: Make sure tags are on when logging updated settings 2019-08-23 15:57:52 +08:00
Pau Ferrer Ocaña 2ddbc651df MDL-66458 forum: Fix noviewdiscussionspermission string 2019-08-23 08:31:11 +02:00
Adrian Greeve 9e4178a465 weekly release 3.8dev 2019-08-23 12:55:05 +08:00
Adrian Greeve ebbf41f9f8 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-08-23 12:54:56 +08:00
John Yao 62f1640df2 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:08:53 +10:00
Jun Pataleta 6e40de2d46 Merge branch 'MDL-66110-master-fix' of git://github.com/junpataleta/moodle 2019-08-23 10:21:17 +08:00
Jun Pataleta 343ffc1000 MDL-66110 core: Require setuplib.php once as it's required by xmlize.php 2019-08-23 10:14:38 +08:00
Juan Leyva 418a86c660 MDL-66468 file: Return text content when using IGNORE_FILE_MERGE 2019-08-22 13:10:39 +01:00
Jun Pataleta 191d4bc191 Merge branch 'MDL-66110-master-fix' of git://github.com/junpataleta/moodle 2019-08-22 16:24:10 +08:00
Jun Pataleta 669de78352 MDL-66110 dml: Undo table name fix when table name's used as parameter 2019-08-22 16:16:08 +08:00
Ryan Wyllie f12c591807 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:03:33 +08:00
Adrian Greeve 2c0d8377a6 Merge branch 'MDL-66378-master' of git://github.com/andrewnicols/moodle 2019-08-22 09:27:57 +08:00
Andrew Nicols 519e17a763 MDL-66378 behat: Increase window size for rubric tests 2019-08-22 07:56:19 +08:00
Andrew Nicols dbcbee4133 MDL-66378 behat: Change screen size to small to work around UI bugs 2019-08-22 07:56:19 +08:00
Jun Pataleta ad534481f8 Merge branch 'MDL-66336_master' of https://github.com/marxjohnson/moodle 2019-08-21 22:41:41 +08:00
Juan Leyva 10b1b82911 MDL-66461 forum: Use correct component for forum strings 2019-08-21 13:21:32 +01:00
Jun Pataleta 74a9ee3277 Merge branch 'MDL-66241_master' of git://github.com/dmonllao/moodle 2019-08-21 19:52:03 +08:00
Juan Leyva b0c785e271 MDL-66461 forum: Use correct notification class 2019-08-21 12:50:30 +01:00
Jun Pataleta 7c50f31dad Merge branch 'MDL-66210_master' of git://github.com/dmonllao/moodle 2019-08-21 19:48:10 +08:00
Jun Pataleta 2b29298f92 Merge branch 'MDL-65993_master' of git://github.com/dmonllao/moodle 2019-08-21 19:32:03 +08:00
Juan Leyva 20570e5d9f MDL-65550 webservice: Return in get_site_info WS if user is admin 2019-08-21 12:31:49 +01:00
Adrian Greeve 0052d1b666 Merge branch 'MDL-65443' of https://github.com/NeillM/moodle 2019-08-21 16:35:34 +08:00
Neill Magill 1f445d1625 MDL-65443 core: Improve class descriptions for locking events 2019-08-21 09:02:03 +01:00
Adrian Greeve 6f35cc69a0 Merge branch 'MDL-66369-master' of git://github.com/aanabit/moodle 2019-08-21 13:53:15 +08:00
Adrian Greeve 4ca1664c9f Merge branch 'MDL-66384-master' of git://github.com/andrewnicols/moodle 2019-08-21 13:25:35 +08:00
Jun Pataleta ff6a7345f7 Merge branch 'MDL-66110-master' of https://github.com/ryanwyllie/moodle 2019-08-21 09:57:49 +08:00
Adrian Greeve 148620381c Merge branch 'MDL-66311-master' of git://github.com/vmdef/moodle 2019-08-21 09:47:44 +08:00
Adrian Greeve 700adfb9cf Merge branch 'MDL-66378-master' of git://github.com/andrewnicols/moodle 2019-08-21 08:54:34 +08:00
Andrew Nicols 6fd975cc07 MDL-66378 behat: Correct grammar of resize step 2019-08-21 08:39:51 +08:00
Andrew Nicols 8a0d0cb4b1 MDL-66378 grade: Set window size to large for rubric tests 2019-08-21 08:39:28 +08:00
Andrew Nicols a6df6800d4 MDL-66378 behat: All args are required for document.evaluate 2019-08-21 08:24:08 +08:00
AMOS bot e36a1d4bdd Automatically generated installer lang files 2019-08-21 00:11:07 +00:00
Víctor Déniz Falcón 93c539d220 MDL-66311 core_analytics: better handling of action menus in behat tests 2019-08-20 22:58:33 +01:00
Jun Pataleta 089d387a31 Merge branch 'MDL-66148-master' of https://github.com/ryanwyllie/moodle 2019-08-20 17:07:59 +08:00
Adrian Greeve aabd022d2a Merge branch 'MDL-65972-master' of git://github.com/bmbrands/moodle 2019-08-20 16:49:34 +08:00
Neill Magill e3ec42093a MDL-65443 core: Log when a context is locked or unlocked 2019-08-20 08:52:35 +01:00
Jun Pataleta d9c910a76f Merge branch 'MDL-64437-master' of git://github.com/mihailges/moodle 2019-08-20 14:19:34 +08:00
Adrian Greeve 5074882e13 Merge branch 'MDL-66378-master' of git://github.com/andrewnicols/moodle 2019-08-20 13:43:11 +08:00
Jun Pataleta fa8be3f4fb Merge branch 'MDL-65507-master' of git://github.com/mihailges/moodle 2019-08-20 11:57:30 +08:00
Adrian Greeve f9faab7779 MDL-65404 core_user: Removal of additional empty line. 2019-08-20 10:27:02 +08:00
Adrian Greeve 0ee9c67dfb Merge branch 'MDL-65404-master' of https://github.com/aanabit/moodle 2019-08-20 10:13:31 +08:00
Adrian Greeve 98d1ac3caf Merge branch 'MDL-65083-master' of git://github.com/bmbrands/moodle 2019-08-20 10:03:25 +08:00
Amaia Anabitarte 6ba44c5f49 MDL-65404 tool_uploaduser: Changing When and Then steps 2019-08-20 10:01:44 +08:00
Adrian Greeve 6e6cfab790 Merge branch 'MDL-65561-master' of git://github.com/bmbrands/moodle 2019-08-20 09:36:11 +08:00
AMOS bot 10194bb830 Automatically generated installer lang files 2019-08-20 00:10:35 +00:00
François Moreau 6ab44bdbc6 MDL-65404 tool_uploaduser: Add a column for enrolment time start. 2019-08-19 14:25:24 -04:00
Jun Pataleta 11b05b07c9 Merge branch 'MDL-46317-master' of git://github.com/rezaies/moodle 2019-08-19 23:32:41 +08:00
Juan Leyva 48f5ca7bee MDL-66061 comments: Support pagination and sorting in get_comments WS 2019-08-19 10:42:25 +01:00
Adrian Greeve d9ae0fdd96 Merge branch 'MDL-65604-master' of git://github.com/andrewnicols/moodle 2019-08-19 16:26:34 +08:00
Bas Brands b14d92a844 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:28:04 +02:00
Bas Brands 549a45808d MDL-65561 themes: user date filters display fixes 2019-08-19 08:24:04 +02:00
Bas Brands d470c68b1f MDL-65083 theme_boost: update uses of pull-xs-right 2019-08-19 08:16:47 +02:00
Adrian Greeve 52070868a8 Merge branch 'MDL-65886-MOODLE-master' of https://github.com/kristian-94/moodle 2019-08-19 14:13:45 +08:00
Mihail Geshoski 5efafb8d2d MDL-64437 assignment: Fix element overlaping in low screen resolution 2019-08-19 13:31:01 +08:00
Mihail Geshoski c8a14cb8ba MDL-65507 mod_data: Remove unnecessary record created event 2019-08-19 13:26:36 +08:00
Adrian Greeve ee8f44db8c Merge branch 'MDL-66327-master' of git://github.com/andrewnicols/moodle 2019-08-19 10:32:39 +08:00
Andrew Nicols dafa2c6aa5 MDL-66378 competency: Add pending promises to competency chooser 2019-08-19 08:16:41 +08:00
Andrew Nicols 460a0a74c4 MDL-66378 behat: JS does not work with newlines in an xpath 2019-08-19 08:16:40 +08:00
Andrew Nicols 221bfed37b MDL-66378 behat: Fix use of before/after selectors 2019-08-19 08:16:40 +08:00
Andrew Nicols 989f380089 MDL-66378 behat: Add partial named selector for whole autocomplete field 2019-08-17 11:44:48 +08:00
Andrew Nicols 7d6d23294f 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 17a7dc9da5 MDL-66378 behat: Add non-JS fallback for before/after 2019-08-17 11:44:48 +08:00
sam marshall 5298a6bc11 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 44de5278a5 MDL-66378 behat: Correct invalid uses of selection from dropdown 2019-08-17 11:44:48 +08:00
Andrew Nicols beae3feb54 MDL-66378 report_participation: Correct label for target 2019-08-17 11:44:48 +08:00
Andrew Nicols db89a31d2e MDL-66378 gradereport_singleview: Add missing label for dropdown 2019-08-17 11:44:48 +08:00
Juan Leyva a927fcdc7b MDL-65042 rating: Fix incorrect image generated for user in rating 2019-08-16 15:41:21 +01:00
Juan Leyva 29cc69f3c0 MDL-65025 forum: Fix text formatting (check messagetrust) in WS 2019-08-16 12:58:47 +01:00
Mark Johnson 3b75d14315 MDL-66336 courses: Show an error when no course categories are visible 2019-08-16 08:24:48 +01:00
Kristian Ringer 8aaa2b5de7 MDL-65886 assign: Reset numfiles to 0 when removing a file submission 2019-08-16 15:04:42 +10:00
Amaia Anabitarte c0375ba73f MDL-66369 libraries: Remove [modname]_scale_used functions
These functions were only used by the deprecated function
which was deprecated in 3.1, and removed in 3.6.
2019-08-16 11:56:17 +08:00
Andrew Nicols 3d18e5cfd6 MDL-66378 behat: Update screen sizes to Y2K standards 2019-08-16 11:42:45 +08:00
Andrew Nicols 5a44daadf9 MDL-66378 behat: Update dependencies for chrome webdriver fix 2019-08-16 11:42:45 +08:00
Andrew Nicols 6654ac1151 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:16 +08:00
Andrew Nicols 7e16c70b52 weekly release 3.8dev 2019-08-16 11:06:51 +08:00
Andrew Nicols 4cb6508adb Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-08-16 11:06:49 +08:00
Juan Leyva 62b40d2743 MDL-65969 course: Indicate when the module is not linking to a new page 2019-08-15 20:33:08 +01:00
Juan Leyva d0342c8ec9 MDL-65653 book: Display hidden chapters in the structure content 2019-08-15 14:01:27 +01:00
Mihail Geshoski 89d8dec35f MDL-65653 book: Update unit tests 2019-08-15 13:39:54 +01:00
Mihail Geshoski 794604db6d MDL-65653 book: Display hidden chapters in WS when user has capability 2019-08-15 13:39:36 +01:00
Juan Leyva 77cfbb626e MDL-66229 tool_mobile: New return field "disabled" in get_content WS 2019-08-15 13:29:16 +01:00
Juan Leyva 88932e49df MDL-66375 tool_mobile: Add new option in the disabled features selector
We must allow site admins to remotely disable that feature in the mobile app
2019-08-15 12:08:43 +01:00
Juan Leyva 578586703f MDL-66374 group: Add existing WS to the mobile service 2019-08-15 11:55:57 +01:00
Andrew Nicols 3d46346094 Merge branch 'MDL-35939-master' of git://github.com/rezaies/moodle 2019-08-15 12:02:11 +08:00
Jun Pataleta 5611d0cb1a Merge branch 'm38_MDL-66140_Mitigate_PECL_Solr_issue_Ref_72740' of https://github.com/scara/moodle 2019-08-15 10:59:29 +08:00
Shamim Rezaie c7a5ffc483 MDL-35939 mod_quiz: deprecate unused strings 2019-08-15 12:07:38 +10:00
Shamim Rezaie eaa1d6aad7 MDL-35939 mod_quiz: use descriptive titles for pages 2019-08-15 12:07:38 +10:00
Shamim Rezaie 5641b98133 MDL-35939 mod_quiz: phpdoc fix 2019-08-15 12:07:38 +10:00
Shamim Rezaie 41bfed56fc MDL-35939 mod_quiz: new functions to generate title for attempt pages 2019-08-15 12:07:34 +10:00
AMOS bot bbd1409821 Automatically generated installer lang files 2019-08-15 00:12:44 +00:00
Jun Pataleta 4d56b58787 Merge branch 'MDL-65129-master-2' of git://github.com/peterRd/moodle 2019-08-14 15:31:07 +08:00
Jun Pataleta 7da3ab8359 Merge branch 'MDL-65925-grade-page-broken-for-deleted-submission-master' of https://github.com/ilya-catalyst/moodle 2019-08-14 15:28:14 +08:00
Peter 87c71d18de MDL-65129 mod_forum: Behat test for favourited search 2019-08-14 14:59:35 +08:00
Peter dd223096b8 MDL-65129 mod_forum: Ability to search based on favourite status 2019-08-14 14:59:30 +08:00
Adrian Greeve 523e51ff4d Merge branch 'MDL-65621-dimmed-courses' of https://github.com/stopfstedt/moodle 2019-08-14 14:56:07 +08:00
David Monllaó 2bbe76bf06 MDL-66210 analytics: Unit test for reuseprevanalysed 2019-08-14 14:31:54 +08:00
David Monllaó ca61e4d4f0 MDL-66210 analytics: Update references to ->options 2019-08-14 14:31:54 +08:00
David Monllaó d1af71c35d MDL-65993 analytics: Fix --filter option for by_course models 2019-08-14 14:30:20 +08:00
David Monllaó 6981d823a2 MDL-66241 analytics: Verify that activities_due works on at-risk 2019-08-14 14:29:16 +08:00
David Monllaó d7ef852c83 MDL-66241 analytics: activities_due compatible with at-risk models 2019-08-14 14:29:16 +08:00
Andrew Nicols 9311a83b45 Merge branch 'patch-1' of https://github.com/aspark21/moodle 2019-08-14 11:33:57 +08:00
Ryan Wyllie c872ec0cbd MDL-66148 mod_assign: update override page for relative dates mode 2019-08-14 10:40:55 +08:00
Andrew Nicols 59008247db Merge branch 'MDL-60916-master_replace_course_search_wth_global_search' of https://github.com/gmrsagar/moodle 2019-08-14 10:35:22 +08:00
Andrew Nicols d120bbcef6 Merge branch 'MDL-65950-master' of git://github.com/junpataleta/moodle 2019-08-14 10:17:00 +08:00
Adrian Greeve 0a28a2f074 Merge branch 'MDL-52849-master' of git://github.com/peterRd/moodle 2019-08-14 09:03:37 +08:00
Jun Pataleta 1648b5ac6e Merge branch 'MDL-66147-master' of https://github.com/snake/moodle 2019-08-13 16:34:34 +08:00
Jun Pataleta 1cac0870b8 MDL-65950 core_user: Add hidden labels for the user checkboxes
* And update Behat tests accordingly and nuke the steps that are using
xpath.
2019-08-13 16:02:02 +08:00
Jun Pataleta df92be9d67 MDL-65950 core_user: Use new core/checkbox-toggleall 2019-08-13 15:21:34 +08:00
Jake Dallimore 9ce55a8668 MDL-66147 mod_assign: behat test covering relative due date field
Tests that each student has a fixed amount of time, relative to their
course start date, in which to submit the assignment, and that teachers
are shown the dates relative to each student when grading.
2019-08-13 15:09:13 +08:00
Jake Dallimore d0cff2367a MDL-66147 mod_assign: external get_participant supports relative dates 2019-08-13 15:09:13 +08:00
Jake Dallimore c0bb682756 MDL-66147 mod_assign: grading table duedate column updates
Couple of changes:
- The duedate, cutoffdate and allowsubmissionsfromdate are now always
shown for relative dates courses.
- When relative dates mode is enabled, calculate and apply the enrolment
start offset to the due date in SQL. No changes to col_duedate needed.
Sorting is supported.
2019-08-13 15:09:13 +08:00
Jake Dallimore 9bf91ea832 MDL-66147 mod_assign: grading table status col shows relative dates
The 'Status' column is sorted using 'status ASC/DESC, userid ASC',
where status does not contain the due date. Overdue assignments
have additional information displayed, but this is unrelated to
the sort, meaning we don't need to change anything with sorting.
2019-08-13 15:09:13 +08:00
Jake Dallimore 9e719b81d4 MDL-66147 mod_assign: submissions overview page shows time interval
Use get_time_interval_string() on the teacher only page, to show how
long after the course start the assignment is due for each user.
2019-08-13 15:09:11 +08:00
Andrew Nicols 9abc0ed875 Merge branch 'MDL-65949-master' of git://github.com/junpataleta/moodle 2019-08-13 14:39:48 +08:00
Adrian Greeve 2217ca91ee Merge branch 'MDL-57623' of git://github.com/Chocolate-lightning/moodle 2019-08-13 14:27:30 +08:00
Mathew May 09dedee2e1 MDL-57623 behat: Remove deprecated step from 3.3 2019-08-13 14:24:34 +08:00
Jun Pataleta 29c5579db9 Merge branch 'MDL-62034-master' of git://github.com/andrewnicols/moodle 2019-08-13 14:20:42 +08:00
Andrew Nicols 24d2a49e21 MDL-62034 assign: Add hint for user tour reset 2019-08-13 14:12:29 +08:00
Andrew Nicols c188ddfe93 Merge branch 'MDL-59524-master' of git://github.com/cescobedo/moodle 2019-08-13 12:56:32 +08:00
Andrew Nicols 0bbdef98ea MDL-66384 core: Limit explode to allow subdirs in template names 2019-08-13 11:29:40 +08:00
Adrian Greeve 5918473134 Merge branch 'MDL-66008-master-fix' of https://github.com/lameze/moodle 2019-08-13 10:27:31 +08:00
Simey Lameze 4d98566939 MDL-66008 core_calendar: fix behat failures 2019-08-13 09:50:48 +08:00
Ryan Wyllie 30d2b9cd31 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 09:35:19 +08:00
Jun Pataleta 1946261fb3 Merge branch 'MDL-66288-master' of git://github.com/lameze/moodle 2019-08-12 15:15:14 +08:00
Andrew Nicols 92afad61ae Merge branch 'MDL-65937-master' of git://github.com/junpataleta/moodle 2019-08-12 14:54:20 +08:00
Jun Pataleta a7faa3f1c5 Merge branch 'MDL-66104' of git://github.com/stronk7/moodle 2019-08-12 14:51:59 +08:00
Simey Lameze bcd0583e68 MDL-66008 calendar: Remove duplicated call to library funciton
A duplicated call to calendar_get_allowed_event_types has
been removed.
2019-08-12 14:49:40 +08:00
Shamim Rezaie 9175a97822 MDL-46317 admin: minor coding style fixes 2019-08-12 14:44:12 +10:00
Shamim Rezaie 7a8dd5664f MDL-46317 admin: deprecating configuserquota,core_admin lang string 2019-08-12 14:44:12 +10:00
Shamim Rezaie e945b883fa MDL-46317 admin: convert userquota config from text to filesize widget 2019-08-12 14:44:10 +10:00
Shamim Rezaie e2d97a4659 MDL-46317 admin: Added admin\local\settings\filesize class 2019-08-12 13:22:24 +10:00
Peter d439fac53c MDL-52849 core: Focus reader onto popup with ajax errors 2019-08-12 10:45:08 +08:00
Jake Dallimore 612b210d76 MDL-66147 core: add get_time_interval_string()
Returns a formatted string representation of the difference between two
timestamps, defaulting to 'Xd Xh Xm' format, but supporting custom
format strings containing any chars from:
https://www.php.net/manual/en/dateinterval.format.php.
2019-08-12 09:35:51 +08:00
Jake Dallimore db381d5c87 MDL-66147 mod_assign: Change assign to return calculated instance data
Changes include:
- Added a private method calculate_properties(), which calculates
per-user instance properties and stores them in an instance var.
- get_instance() now takes a userid param, and calls the
calculate_properties() method, allowing per-user instances to be
returned.
- Added a public method get_default_instance(), which returns the
non-augmented instance data (no per-user properties), so we can
still get back the raw instance data when needed.
- The get_course method has been changed to make sure we always have an
object property, not a string - which happened in some cases (when
commenting on the assign submission page, for example).
2019-08-12 09:35:51 +08:00
Simey Lameze e4b1c14a37 MDL-66288 dataformat: prettify exported JSON data 2019-08-12 07:29:31 +08:00
Ilya Tregubov 64ce596f8c MDL-65925 assign: Grade page broken if submission was deleted. 2019-08-12 09:28:50 +10:00
cescobedo 0504254f1d MDL-59524 general: Remove strings deprecated in 3.4 2019-08-12 00:13:08 +02:00
Matteo Scaramuccia 463421144f 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:03:25 +02:00
Andrew Nicols f75cb25c86 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:51:18 +08:00
AMOS bot 3d9aa96892 Automatically generated installer lang files 2019-08-10 00:11:06 +00:00
AMOS bot ad52b7de3f Automatically generated installer lang files 2019-08-10 00:11:05 +00:00
Jun Pataleta 8e9e9a5f7e weekly release 3.8dev 2019-08-09 16:23:53 +08:00
Jun Pataleta e2e7fdb4df Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-08-09 16:23:51 +08:00
Jun Pataleta a6489fabbf Merge branch 'MDL-65679-master-fix' of git://github.com/andrewnicols/moodle 2019-08-09 11:38:59 +08:00
Andrew Nicols 7be52eb255 MDL-65679 assignfeedback_editpdf: Adjust z-indexes for editpdf 2019-08-09 08:34:29 +08:00
Andrew Nicols 66fa73d84e MDL-66327 pgsql DML: Update get_records_sql to consume less memory
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-08-08 15:48:12 +08:00
Jun Pataleta 7f18f22fac Merge branch 'MDL-66272-master' of git://github.com/vmdef/moodle 2019-08-08 12:43:51 +08:00
Amaia Anabitarte 82ca410f23 MDL-60636 behat: Fixing modified xpath 2019-08-08 11:58:03 +08:00
Andrew Nicols 419a67aad3 Merge branch 'MDL-65933-master' of git://github.com/junpataleta/moodle 2019-08-08 11:41:50 +08:00
Jun Pataleta d3455c0da1 Merge branch 'MDL-59470' of https://github.com/Chocolate-lightning/moodle 2019-08-08 10:40:51 +08:00
Mathew May 7456bf413b MDL-59470 admin: Add Behat test for duplicating a tour 2019-08-08 10:30:12 +08:00
Andrew Nicols 9f0cf3e855 Merge branch 'MDL-65595-master' of git://github.com/peterRd/moodle 2019-08-08 10:28:15 +08:00
Jun Pataleta 07d00f0548 Merge branch 'MDL-64032-master-fix' of https://github.com/andrewnicols/moodle 2019-08-08 10:23:10 +08:00
Andrew Nicols b6a226f96f MDL-64032 user: Comment out failing behat tests
These are failing because of an unrelated issue which is possibly quite
an edge case.
2019-08-08 09:31:00 +08:00
Mathew May 71fd7b1139 MDL-59470 behat: Add a element comtains x occurrences step 2019-08-08 09:16:19 +08:00
Mathew May c48fbb6c9b MDL-59470 admin: A user tour can now be duplicated 2019-08-08 09:16:17 +08:00
Jun Pataleta 7fda7cf71b Merge branch 'MDL-57239' of https://github.com/timhunt/moodle 2019-08-08 08:49:56 +08:00
Jun Pataleta 30c8bf169e Merge branch 'MDL-50346-master' of git://github.com/andrewnicols/moodle 2019-08-07 17:11:31 +08:00
Andrew Nicols 08bec34297 Merge branch 'MDL-66039-master' of git://github.com/bmbrands/moodle 2019-08-07 15:31:43 +08:00
Brendan Heywood 32f805e079 MDL-66278 core: Add callback to show other password checks on signup 2019-08-07 14:12:04 +08:00
Jun Pataleta 9897d03d95 Merge branch 'MDL-56789-master' of git://github.com/rezaies/moodle 2019-08-07 14:01:39 +08:00
Sara Arjona 96d497204f Merge branch 'MDL-61649-master' of git://github.com/aanabit/moodle 2019-08-07 13:33:04 +08:00
Shamim Rezaie f73b22a3ac MDL-56789 core: Improve unit tests 2019-08-07 15:25:16 +10:00
Shamim Rezaie 36272110ba MDL-56789 core: Recycle bin warn only if a grade item is being deleted 2019-08-07 15:25:11 +10:00
Shamim Rezaie 6cdf0207ff MDL-56789 core: Added unit test for course_modules_pending_deletion 2019-08-07 14:18:11 +10:00
Andrew Nicols 0261d1effa MDL-50346 core: Allow sub-directories in template names 2019-08-07 11:44:49 +08:00
Jun Pataleta cb6e7dc70c Merge branch 'MDL-59639-master' of git://github.com/bmbrands/moodle 2019-08-07 11:29:32 +08:00
Amaia Anabitarte c7f88457cd MDL-61649 email: Send plain/html format emails based on user preference 2019-08-07 11:20:02 +08:00
Sara Arjona ab1fa2dbac Merge branch 'MDL-63198-master' of git://github.com/rezaies/moodle 2019-08-07 11:07:50 +08:00
Andrew Nicols 638097810d Merge branch 'mdl-66280' of https://github.com/Peterburnett/moodle 2019-08-07 10:22:04 +08:00
Sara Arjona 600d8df255 Merge branch 'MDL-60636-master' of git://github.com/bmbrands/moodle 2019-08-07 10:00:44 +08:00
Alistair Spark fa3f8625e1 MDL-66071 user: username is required with non-internal auth method 2019-08-07 00:55:10 +02:00
Andrew Nicols 91d50e2eda Merge branch 'MDL-57618-master' of git://github.com/cescobedo/moodle 2019-08-06 15:56:07 +08:00
Sara Arjona a12718673a Merge branch 'MDL-64598-master' of https://github.com/lucaboesch/moodle 2019-08-06 15:29:52 +08:00
Bas Brands fbd99bbb00 MDL-59639 theme_boost: remember last visited tab 2019-08-06 08:54:23 +02:00
Andrew Nicols c0535be52a Merge branch 'MDL-66234_master' of git://github.com/dmonllao/moodle 2019-08-06 14:25:20 +08:00
Sara Arjona e9fc5a7381 Merge branch 'MDL-65786-master' of git://github.com/rezaies/moodle 2019-08-06 14:19:17 +08:00
Jun Pataleta 9744897d27 Merge branch 'MDL-66306-master' of git://github.com/lameze/moodle 2019-08-06 14:03:17 +08:00
Simey Lameze 02523182f9 MDL-66306 lib: upgrade moodle lib docs 2019-08-06 13:59:37 +08:00
Simey Lameze f0f88f7f2b MDL-66306 lib: update phpmailer to 6.0.7 2019-08-06 13:48:28 +08:00
Andrew Nicols c79835aef9 Merge branch 'MDL-64953' of https://github.com/Chocolate-lightning/moodle 2019-08-06 13:20:54 +08:00
Andrew Nicols f6666a7064 Merge branch 'MDL-65679-master' of git://github.com/mihailges/moodle 2019-08-06 13:17:43 +08:00
Andrew Nicols 9a74e4008a Merge branch 'MDL-65651-master' of https://github.com/lucaboesch/moodle 2019-08-06 11:57:56 +08:00
Mathew May 28cbff4a2d MDL-64953 templates: Add example contexts & documentation
This is a follow up from CiBot warnings from MDL-58428
2019-08-06 10:56:16 +08:00
Andrew Nicols 1108ccba62 Merge branch 'MDL-66034-master' of git://github.com/lameze/moodle 2019-08-06 09:30:14 +08:00
Andrew Nicols f8c927a25b Merge branch 'MDL-66178' of https://github.com/paulholden/moodle 2019-08-06 09:17:29 +08:00
Andrew Nicols 8b6e767094 Merge branch 'MDL-65992' of git://github.com/Chocolate-lightning/moodle 2019-08-06 09:13:15 +08:00
Eloy Lafuente (stronk7) 0e5f6317c1 Merge branch 'MDL-66307' of https://github.com/timhunt/moodle 2019-08-05 13:30:46 +02:00
Eloy Lafuente (stronk7) 09287bf893 Merge branch 'MDL-64757-38_core_output_nested_template_block_string_language' of https://github.com/tomdickman/moodle 2019-08-05 13:13:33 +02:00
Andrew Nicols 6bfdb36e0b Merge branch 'MDL-33884' of https://github.com/timhunt/moodle 2019-08-05 14:33:11 +08:00
Sagar Ghimire 36667548b5 MDL-60916 core_course: Replace course search with global search 2019-08-05 16:05:10 +10:00
Sara Arjona 1c49217088 Merge branch 'MDL-66281-master' of git://github.com/junpataleta/moodle 2019-08-05 13:41:12 +08:00
Simey Lameze 2d526dcb33 MDL-66034 core_role: improve role events php unit coverage 2019-08-05 13:09:19 +08:00
Simey Lameze 3a18032dbf MDL-66034 core: delete role_capabilities_updated event triggers 2019-08-05 13:09:19 +08:00
Simey Lameze e9b88bcb73 MDL-66034 core: deprecate role_capabilities_updated event 2019-08-05 13:09:19 +08:00
Simey Lameze 32306e8390 MDL-66034 core_role: add more detail to role allow event classes 2019-08-05 13:09:19 +08:00
Simey Lameze de4dc81b24 MDL-66034 core_role: implement role updated event 2019-08-05 13:09:19 +08:00
Simey Lameze a98bafa163 MDL-66034 core_role: implement capability unassigned event 2019-08-05 13:09:18 +08:00
Simey Lameze 7b0afca816 MDL-66034 core_role: implement capability assigned event 2019-08-05 13:09:18 +08:00
Andrew Nicols 6047801767 Merge branch 'MDL-64032-master' of https://github.com/HuongNV13/moodle 2019-08-05 12:55:35 +08:00
Andrew Nicols 0fdef2d2cf Merge branch 'MDL-66279-master' of git://git.cameron1729.xyz/moodle 2019-08-05 11:48:13 +08:00
Shamim Rezaie e75bf41538 MDL-63198 forms: click on scrollbar should not close the suggestions box 2019-08-05 13:13:45 +10:00
Paul Holden 90ce66a9ce MDL-66178 user: filter course participants for users with no roles. 2019-08-02 16:42:10 +01:00
Tim Hunt 1f60ddcebc MDL-57239 qbehaviour_interactive: fix Try again button when reviewing 2019-08-02 11:44:51 +01:00
Luca Bösch 766bb9a563 MDL-65651 forum: Middle align last post column entries. 2019-08-02 12:01:57 +02:00
Luca Bösch 41432a2d30 MDL-64598 pix: Adding width/height information to emoji SVG images. 2019-08-02 11:56:14 +02:00
cescobedo 959457c392 MDL-57618 general: Remove strings deprecated in 3.3 2019-08-02 11:06:32 +02:00
Jun Pataleta e274f1b29e MDL-65933 mod_data: Use new core/checkbox_toggleall 2019-08-02 16:30:39 +08:00
Jun Pataleta e773533258 MDL-65949 report_participation: Use new core/checkbox-toggleall 2019-08-02 16:30:26 +08:00
Jun Pataleta 32c7889212 MDL-65937 mod_lesson: Replace concatenated strings with lang strings 2019-08-02 16:24:56 +08:00
Jun Pataleta ae612a5334 MDL-65937 mod_lesson: Use new core/checkbox_toggleall
Plus some refactoring on the cell of the attempts column.
2019-08-02 16:24:56 +08:00
[Peter Burnett] d82b6004bf MDL-66280 core: Added unit tests for print_password_policy 2019-08-02 11:34:23 +10:00
[Peter Burnett] e40ea418f4 MDL-66280 core: Added checks for empty password minimum length 2019-08-02 11:34:23 +10:00
AMOS bot 009206154d Automatically generated installer lang files 2019-08-02 00:11:13 +00:00
AMOS bot 749062fad1 Automatically generated installer lang files 2019-08-02 00:11:13 +00:00
Mihail Geshoski bda31461db 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:27 +08:00
Eloy Lafuente (stronk7) 764167136f 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:33 +02:00
Eloy Lafuente (stronk7) 414eca8923 weekly release 3.8dev 2019-08-01 17:06:55 +02:00
Eloy Lafuente (stronk7) adcad4ead2 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-08-01 17:06:51 +02:00
Tim Hunt ac1a91bf47 MDL-66307 js: fix path handling on Windows 2019-08-01 14:54:05 +01:00
Andrew Nicols 2c28ba8888 MDL-66307 js: Add missing plugintypes structure in subplugin read 2019-08-01 20:52:02 +08:00
Adrian Greeve 4e569b1b98 Merge branch 'MDL-65093' of git://github.com/stronk7/moodle 2019-08-01 16:07:26 +08:00
Sara Arjona c5f3e92498 MDL-66123 core: update upgrade.txt with check_password_policy changes 2019-08-01 10:08:03 +08:00
Sara Arjona 117d2fd56e Merge branch 'mdl_66123' of https://github.com/Peterburnett/moodle 2019-08-01 09:59:08 +08:00
Sara Arjona ac7505be43 Merge branch 'MDL-42451' of git://github.com/Chocolate-lightning/moodle 2019-08-01 09:53:05 +08:00
Adrian Greeve f1cb94488e Merge branch 'MDL-58974-master' of git://github.com/vmdef/moodle 2019-08-01 09:02:52 +08:00
Eloy Lafuente (stronk7) b119595510 Merge branch 'MDL-50472' of git://github.com/Chocolate-lightning/moodle 2019-08-01 00:27:31 +02:00
Eloy Lafuente (stronk7) 1ccc9461aa Merge branch 'MDL-66192-master' of git://github.com/andrewnicols/moodle 2019-08-01 00:22:14 +02:00
Eloy Lafuente (stronk7) d8b3c365ab Merge branch 'MDL-57342' of git://github.com/Chocolate-lightning/moodle 2019-07-31 18:49:21 +02:00
Eloy Lafuente (stronk7) 22c95e393a Merge branch 'MDL-65766-master' of git://github.com/mihailges/moodle 2019-07-31 18:38:39 +02:00
Tim Hunt b65db96d8c 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:18:16 +01:00
Victor Deniz Falcon a9e58c14f9 MDL-58974 core_analytics: Add behat tests
Behat testing to cover model management and predictions generation
and visualization.
2019-07-31 11:13:05 +01:00
Mathew May 65fd840be8 MDL-42451 installation: Allow enter key to proceed 2019-07-31 14:22:42 +08:00
Mathew May e0f0f76344 MDL-65992 travis: Migrate to Xenial distro and default MySQL service 2019-07-31 12:56:39 +08:00
Jun Pataleta 3c84d36f94 Merge branch 'MDL-65831-master' of git://github.com/aanabit/moodle 2019-07-31 10:55:58 +08:00
Sara Arjona 408689d5ae Merge branch 'MDL-57208' of https://github.com/paulholden/moodle 2019-07-31 10:25:04 +08:00
Peter 02754b5165 MDL-65595 core: Remove the nowrap from the form's radio template 2019-07-31 08:15:00 +08:00
AMOS bot a18439bc6f Automatically generated installer lang files 2019-07-31 00:09:06 +00:00
Victor Deniz Falcon 6097d3e7ff MDL-66272 core_renderer: fix favicon method PHPDoc 2019-07-30 16:01:38 +01:00
Eloy Lafuente (stronk7) eaaef6d621 MDL-65093 core_message: remove some "dupe" tests
With the deprecation of can_post_message() in favor of
can_send_message() all the new test_can_send_message_xxx()
were created from the original test_can_post_message_xxx() ones.

So, really we don't need all the old ones. Just ensure that
debugging is being called and done. New tests are already covering
the new method.

Note this is not strictly needed but in practice is allowing
MySQL + PHP 7.3 to stop segfaulting (because of some sort of limit /
overflow happening somewhere else). So this is just a practical
fix to avoid that while all the messaging tests are reorganizaed
@ MDL-63670. There are some good things to fix there.
2019-07-30 12:37:27 +02:00
Paul Holden 719f76313c MDL-57208 user: select default homepage from user preferences page. 2019-07-30 08:53:18 +01:00
Paul Holden a1ab8ec216 MDL-66230 tool_usertours: account for deleted tours in privacy export. 2019-07-30 07:58:40 +01:00
Sara Arjona fd59fa7494 Merge branch 'MDL-64860-38_block_myoverview_improve_pagination' of https://github.com/tomdickman/moodle 2019-07-30 14:52:20 +08:00
Cameron Ball 315e4342f1 MDL-66279 task: Test if logger is_a database_logger 2019-07-30 14:49:27 +08:00
Jun Pataleta 91a8e1894b MDL-66281 tool_dataprivacy: Set sensitive data processing default value 2019-07-30 13:58:36 +08:00
Sara Arjona b5b11a1543 Merge branch 'MDL-63458' of https://github.com/rlorenzo/moodle 2019-07-30 11:59:18 +08:00
David Monllaó c430def90d MDL-66234 analytics: Extra GC during analysis 2019-07-29 18:36:42 +02:00
Adrian Greeve 647c6da2b8 Merge branch 'MDL-66174-master' of git://github.com/peterRd/moodle 2019-07-29 14:38:35 +08:00
Adrian Greeve 6aa6d5b113 Merge branch 'mdl-66119' of https://github.com/Peterburnett/moodle 2019-07-29 14:06:32 +08:00
[Peter Burnett] ad9c96e531 MDL-66123 core: check_password_policy takes $user argument 2019-07-29 14:37:50 +10:00
Jake Dallimore a12f9f93c4 Merge branch 'MDL-46267-master' of git://github.com/junpataleta/moodle 2019-07-29 11:37:56 +08:00
Mathew May c5d1c2dcf8 MDL-50472 auth: Add maintenance message to the login page. 2019-07-29 10:45:28 +08:00
Adrian Greeve 9f236d63e6 Merge branch 'MDL-65093_master-deprecate' of git://github.com/markn86/moodle 2019-07-29 10:43:52 +08:00
Mark Nelson 386634bab3 MDL-65093 core_message: show 'OK' dialogue 2019-07-29 10:39:57 +08:00
Mark Nelson 66fffdbce5 MDL-65093 core_message: dont show users with cap as blocked
It is possible that before this patch the user blocked a
teacher from messaging them, even though this would have
no effect. It is also possible for a user to block a user,
then that user gets 'promoted' to a teacher role and the
block becoming ineffective. In these cases we dont show the
user's status as blocked.
2019-07-29 10:39:57 +08:00
Mark Nelson 90403c5d9d MDL-65093 core_message: users can't block any user they want
If blocking will have no effect (ie. you are attempting to block
the admin) the 'Block' button will not be shown and instead a
message will be shown explaining why you can not block the user.
2019-07-29 10:39:57 +08:00
Mark Nelson 06d046c1ff MDL-65093 core_message: deprecate can_post_message() 2019-07-29 10:39:57 +08:00
Adrian Greeve dcc3f54e24 Merge branch 'MDL-64887-master-3' of git://github.com/bmbrands/moodle 2019-07-29 10:16:01 +08:00
Amaia Anabitarte c9469fb488 MDL-65831 behat: New steps to switch offline mode for moodle app behats 2019-07-29 09:50:41 +08:00
Mihail Geshoski 3d980e5be7 MDL-65766 libraries: Upgrade WebRTC to 6.4.0 2019-07-29 09:05:01 +08:00
Tom Dickman c0add7c713 MDL-64860 block_myoverview: added additional pagination options
Added additional pagination options based on the amount of courses the user is enrolled in.
This will allow the user to display all courses on one page if they wish, and scale based on their total
courses up to pages of 96 courses, now defaults to `All` if they have less than 12 courses and hides the
dropdown menu as there is only one choice.
2019-07-29 09:12:07 +10:00
Jake Dallimore d4fc7d756a Merge branch 'MDL-35773_master' of git://github.com/markn86/moodle 2019-07-26 17:32:29 +08:00
Mark Nelson 56e28c3bf1 MDL-35773 core_backup: controller has full responsibility for files 2019-07-26 17:00:40 +08:00
Jake Dallimore 1f16f4115d Merge branch 'MDL-65219-master' of https://github.com/ryanwyllie/moodle 2019-07-26 15:20:10 +08:00
Mark Nelson 9bfdfbb389 MDL-35773 tool_recyclebin: ensure backups always contain files 2019-07-26 11:59:57 +08:00
Mark Nelson 2124100194 MDL-35773 core_backup: ensure we restore with new itemid 2019-07-26 11:59:57 +08:00
Mark Nelson 7c1a42adb4 MDL-35773 core_backup: only include files when necessary 2019-07-26 11:59:56 +08:00
Mark Nelson 420384ae36 MDL-35773 core_backup: removed unnecessary set_samesite_notification() 2019-07-26 11:59:56 +08:00
Mark Nelson 8e83e54815 MDL-35773 core_backup: removed introduction of 'set_mode' 2019-07-26 11:59:56 +08:00
Mark Nelson 94c71056a3 MDL-35773 core_backup: use existing API to recover files 2019-07-26 11:59:56 +08:00
Mark Nelson 88031d35de MDL-35773 core: revert introduction of new recover_file() method
Also -

1. Reverted recover_file() in file_system_filedir back to its
   original state.
2. Removed no longer needed method create_recovery_record().
2019-07-26 11:59:56 +08:00
Mark Nelson 8490a4ab7b MDL-35773 core: move 'backup_auto_files' for consistency 2019-07-26 11:59:56 +08:00
Matt Porritt d7e4481e98 MDL-35773 Backup: API should have option to not backup files
Allow both UI and automated backups to be created without
including files.  Instead include only file references.
This is essentially implementing "SAMESITE" to backup files
instead of only for import and export functionality.
A new backup setting to include files (defaults to yes)
has been included.

The restore process will also look for and attempt to
restore files from the trashdir as part of restoring
backups.  Additionally to support this process the
ammount of time files are kept in trashdir before they
are cleaned up via cron is also adjustable via admin
setting.
2019-07-26 11:59:56 +08:00
Jake Dallimore 795baec988 Merge branch 'MDL-65918-master' of git://github.com/junpataleta/moodle 2019-07-26 10:57:01 +08:00
David Monllaó e38c016f80 MDL-58974 tool_analytics: Adding missing absolute paths 2019-07-26 00:50:29 +01:00
[Peter Burnett] 442eeac33c MDL-66119 core: Add check for uninstalling plugins from the admin gui 2019-07-26 09:27:32 +10:00
Andrew Nicols 9ea892d216 MDL-66192 javascript: Allow subdirs in AMD module names 2019-07-26 07:04:08 +08:00
Bas Brands 9f08292f4f MDL-64887 theme_boost: prevent drop downs from flipping up 2019-07-25 15:24:03 +02:00
Eloy Lafuente (stronk7) f622ee97e3 weekly release 3.8dev 2019-07-25 13:44:42 +02:00
Jake Dallimore 506fc5178b Merge branch 'MDL-65858_master' of git://github.com/markn86/moodle 2019-07-25 14:51:54 +08:00
Adrian Greeve 852bf8fa58 Merge branch 'MDL-65078-master' of git://github.com/peterRd/moodle 2019-07-25 14:49:40 +08:00
Eloy Lafuente (stronk7) 8b9c0616b3 Merge branch 'MDL-65994-master' of git://github.com/junpataleta/moodle 2019-07-25 14:49:12 +08:00
Eloy Lafuente (stronk7) 857431ed72 Merge branch 'MDL-65946-master' of git://github.com/junpataleta/moodle 2019-07-25 14:41:15 +08:00
Eloy Lafuente (stronk7) 2db07ee59c Merge branch 'MDL-65938-master' of git://github.com/junpataleta/moodle 2019-07-25 14:41:15 +08:00
Adrian Greeve 57d42d0598 Merge branch 'MDL-65633_master' of git://github.com/dmonllao/moodle 2019-07-25 14:41:15 +08:00
Adrian Greeve 700baa8409 Merge branch 'MDL-65740-master' of git://github.com/peterRd/moodle 2019-07-25 14:41:14 +08:00
Adrian Greeve a35b6a775a Merge branch 'MDL-66021-master' of git://github.com/peterRd/moodle 2019-07-25 14:41:14 +08:00
Damyon Wiese bde97497ef MDL-65078 competencies: webservices
The webservice list_course_module_competencies calls a function that does not exist and
is not exposed as a webservice.
2019-07-24 09:14:28 +08:00
Huong Nguyen 0fc30827dc MDL-64032 enrol_manual: Make consistent the UI for setting enrolment
Add end date/duration for the UI for setting enrolment should be consistent
2019-07-23 14:21:43 +07:00
Mathew May 0c18745424 MDL-57342 admin: confightml will check if returned data is empty 2019-07-23 13:35:14 +08:00
Ryan Wyllie 5d61b3b331 MDL-65219 message: default disable contact request notifications for web
Set the default state to disabled for message contact request
notifications for the web process. The user is notified about contact
requests in the message drawer so it's unnecessary to also generate
a notification in the notification popover for them.
2019-07-23 13:24:09 +08:00
Ryan Wyllie 6cb33ce774 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-23 11:37:55 +08:00
Jun Pataleta 09267294bd MDL-65918 auth_oauth2: Require profile library once
Thanks to Jason Grimes for the bug report and fix suggestion!
2019-07-23 10:11:17 +08:00
Eloy Lafuente (stronk7) 9da4b1821f Merge branch 'MDL-65788' of git://github.com/Chocolate-lightning/moodle 2019-07-22 21:38:20 +02:00
Eloy Lafuente (stronk7) 797ef87344 Merge branch 'MDL-66132-master' of https://github.com/sammarshallou/moodle 2019-07-22 20:56:29 +02:00
Jake Dallimore c5b9f7fd70 Merge branch 'MDL-66144-master' of https://github.com/ryanwyllie/moodle 2019-07-22 15:19:17 +08:00
Bas Brands 10425e7347 MDL-64887 theme_boost: update bootstrap to 4.3.1 2019-07-22 08:57:04 +02:00
Jake Dallimore e255959e76 Merge branch 'MDL-66143-master' of git://github.com/junpataleta/moodle 2019-07-22 13:47:17 +08:00
Mark Nelson e1c484c745 MDL-65858 core_backup: increase the delay with each fail 2019-07-22 13:20:49 +08:00
Matt Porritt 133c131fc0 MDL-65858 core_backup: added timeout to ajax calls 2019-07-22 13:20:06 +08:00
Matt Porritt 00d214bca2 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-22 12:54:10 +08:00
Jun Pataleta b850ddfdd5 MDL-66143 course: Integration review fixes 2019-07-22 11:52:41 +08:00
Jun Pataleta a676250f97 MDL-66143 course: Behat tests for the relative dates mode field 2019-07-22 11:52:41 +08:00
Jun Pataleta f96623cb74 MDL-66143 course: Relative dates mode handling
* On course creation, make sure that we can enable relative dates mode
  only when the site setting is enabled.
* On course update, make sure that the relative dates mode setting
  cannot be changed.
2019-07-22 11:52:41 +08:00
Jun Pataleta 9d8cdb9ba8 MDL-66143 course: Add relativedatesmode course setting 2019-07-22 11:52:38 +08:00
Jun Pataleta afc87005cb MDL-66143 admin: Create setting for courses to support relative dates 2019-07-22 11:14:51 +08:00
Jun Pataleta 9320787005 MDL-46267 core: Remove $CFG->httpswwwroot
* It's unnecessary since $CFG->loginhttps has already been removed and
  it's no longer being used in core anymore.
2019-07-22 10:59:42 +08:00
Jun Pataleta b6e465c870 MDL-46267 core: https_required, verify_https_required final deprecation 2019-07-22 10:59:38 +08:00
Adrian Greeve 70f1d11338 Merge branch 'MDL-66136-master' of git://github.com/mihailges/moodle 2019-07-22 10:40:30 +08:00
Mihail Geshoski b7e4229187 MDL-66136 assign: Verify presence of resources in online text submission 2019-07-22 07:55:54 +08:00
Mihail Geshoski 911d164dcb MDL-66136 assignfeedback_comments: Extend testcase 2019-07-22 07:55:54 +08:00
Andrew Nicols de2976e548 MDL-62497 js: Pass strings through get_string 2019-07-21 15:06:25 +08:00
Eloy Lafuente (stronk7) 81aaf369b6 Merge branch 'MDL-50733' of git://github.com/stronk7/moodle 2019-07-20 00:24:27 +02:00
Mathew May 3373a429d4 MDL-50733 core: Update composer to updated behat-extension 2019-07-19 16:06:34 +02:00
Andrew Nicols 05d940a8ee Merge branch 'MDL-62497-master-final' of git://github.com/andrewnicols/moodle 2019-07-19 14:22:44 +08:00
Ryan Wyllie 3e5811aff2 MDL-62497 javascript: npm-shrinkwrap change 2019-07-19 14:12:49 +08:00
Andrew Nicols 73d3dfecc6 MDL-62497 javascript: lazy load js modules when cachejs is disabled 2019-07-19 14:12:49 +08:00
Ryan Wyllie 3095c3f6b0 MDL-62497 admin_tool: change user tours from third party lib to core 2019-07-19 14:12:49 +08:00
Ryan Wyllie 6466e89946 MDL-62497 javascript: rewrite core/str using ES6 syntax 2019-07-19 14:12:49 +08:00
Ryan Wyllie 38d4f754ca MDL-62497 javascript: add watchman support to grunt watch command 2019-07-19 14:12:49 +08:00
Ryan Wyllie 78610b53c7 MDL-62497 javascript: fix truncate.js
There was some code in the charLengthAt function which was requiring
that the "this" context not be null however it was unnecessary
because it never uses "this" and for some reason it was being set to
null after the ES6 transpiling.
2019-07-19 14:12:49 +08:00
Ryan Wyllie 195ea4480b MDL-62497 javascript: build AMD modules with new transpiler 2019-07-19 14:12:49 +08:00
Ryan Wyllie c53f86d408 MDL-62497 javascript: add babel transpiling to Grunt for ES6 support 2019-07-19 14:12:48 +08:00
Ryan Wyllie 67b2262938 MDL-62497 javascript: add babel polyfill for es6 support 2019-07-19 14:12:48 +08:00
Jun Pataleta 62e72577b5 MDL-65938 mod_quiz: Use new core/checkbox-toggleall
Plus:
* On the attempts report pages, the "Regrade selected attempts"
and "Delete selected attempts" buttons are now only enabled when
there's at least one item selected.
* Behat fixes for quiz edit feature after this patch
2019-07-19 13:14:11 +08:00
Jun Pataleta cbd8641a8a MDL-65994 question: Convert checkboxes to checkbox-toggleall element 2019-07-19 10:29:18 +08:00
Jun Pataleta 0b88a8bccc MDL-65946 mod_scorm: Use new core/checkbox-toggleall 2019-07-19 10:21:30 +08:00
David Monllaó 5ef49c591a MDL-65633 tool_analytics: Notification for invalid analysis intervals 2019-07-18 18:38:13 +02:00
David Monllaó 3cb0aaaa8c MDL-65633 analytics: New interfaces for time-splitting methods 2019-07-18 18:38:13 +02:00
Eloy Lafuente (stronk7) 8d9614b341 weekly release 3.8dev 2019-07-18 17:11:32 +02:00
Eloy Lafuente (stronk7) 8cc72cc764 NOBUG: Fixed file access permissions 2019-07-18 17:11:32 +02:00
Eloy Lafuente (stronk7) 2629c3d3a9 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-07-18 17:11:30 +02:00
Kathrin Osswald 3b7ef98824 MDL-63250 mediaplugin: Fixed video player size in specific tables 2019-07-18 13:51:59 +02:00
Peter 9573f50ad1 MDL-66174 mod_assign: Remove the strict widths on the annotation menu 2019-07-18 12:55:40 +08:00
Mathew May 90117cefb8 MDL-65788 tool_policy: Move accept_policy JS call into an array 2019-07-18 10:47:18 +08:00
Andrew Nicols e2142cec0c Merge branch 'MDL-65757-master' of git://github.com/lameze/moodle 2019-07-18 09:20:38 +08:00
Andrew Nicols 23f2f3d8eb Merge branch 'MDL-65768-master' of git://github.com/lameze/moodle 2019-07-18 09:08:52 +08:00
Andrew Nicols 201c689b20 Merge branch 'MDL-59911-conv_cleanup_check' of git://github.com/leonstr/moodle 2019-07-18 08:25:07 +08:00
AMOS bot f8f249f0c7 Automatically generated installer lang files 2019-07-18 00:08:56 +00:00
Andrew Nicols 9b5b40031c Merge branch 'MDL-66163-master' of git://github.com/marinaglancy/moodle 2019-07-18 07:44:54 +08:00
Eloy Lafuente (stronk7) efbd73b91c Merge branch 'MDL-66115_master' of https://github.com/dvdcastro/moodle 2019-07-17 23:08:53 +02:00
Eloy Lafuente (stronk7) bcaf538116 Merge branch 'MDL-65742-master' of git://github.com/mihailges/moodle 2019-07-17 22:45:12 +02:00
Eloy Lafuente (stronk7) d637fc7238 Merge branch 'MDL-65753' of git://github.com/Chocolate-lightning/moodle 2019-07-17 19:40:28 +02:00
Bas Brands b101ce581e MDL-60636 themes: form autocomplete chevron down on mobile 2019-07-17 12:28:13 +02:00
Ryan Wyllie 48272cb849 MDL-66144 course: make course format weeks show relative dates 2019-07-17 15:52:51 +08:00
Ryan Wyllie 00a66396c7 MDL-66144 course: add function to calculate user course dates 2019-07-17 15:52:51 +08:00
Andrew Nicols 9b12c927aa Merge branch 'MDL-63612-master' of git://github.com/bmbrands/moodle 2019-07-17 15:47:41 +08:00
Andrew Nicols 3e35647f3f Merge branch 'MDL-65751-master' of git://github.com/mihailges/moodle 2019-07-17 15:22:27 +08:00
Andrew Nicols d744d8fd2c Merge branch 'MDL-65758' of git://github.com/Chocolate-lightning/moodle 2019-07-17 15:20:15 +08:00
Jake Dallimore 400eb6af80 Merge branch 'MDL-60405-master' of git://github.com/peterRd/moodle 2019-07-17 13:11:43 +08:00
Tom Dickman a8561c38b8 MDL-64757 core_output: fixed incorrect string language mustache blocks
Mustache blocks nested in parent templates where 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-17 14:28:29 +10:00
Andrew Nicols 8958115663 Merge branch 'MDL-65538-master' of git://github.com/sarjona/moodle 2019-07-17 10:55:43 +08:00
Peter 1a9699012f MDL-66021 restore: Additional restore unit tests with async mode 2019-07-17 10:52:53 +08:00
Andrew Nicols 4f320d1d7f Merge branch 'MDL-65762-master' of git://github.com/abgreeve/moodle 2019-07-17 10:34:20 +08:00
Andrew Nicols e68e7280c4 Merge branch 'MDL-65928-master-2' of git://github.com/junpataleta/moodle 2019-07-17 10:21:37 +08:00
Andrew Nicols bd056d1e4b Merge branch 'MDL-65750-master' of git://github.com/lameze/moodle 2019-07-17 10:10:52 +08:00
Mihail Geshoski a6c735031a MDL-65751 lib: Replace deprecated jQuery functions 2019-07-17 09:59:44 +08:00
Jun Pataleta ea382408ce MDL-65928 mod_choice: Use correct options attribute
* Should be 'classes', not 'class'.
2019-07-17 09:54:03 +08:00
Andrew Nicols e8136fe3ca Merge branch 'MDL-65357-master' of git://github.com/bmbrands/moodle 2019-07-17 09:39:58 +08:00
Andrew Nicols 4165860739 Merge branch 'MDL-65769-master' of git://github.com/lameze/moodle 2019-07-17 09:30:43 +08:00
Andrew Nicols 4de3b06d4b Merge branch 'MDL-65763-master' of git://github.com/mihailges/moodle 2019-07-17 09:21:33 +08:00
Jake Dallimore fa2d9e57dc Merge branch 'MDL-60013-master-fix' of git://github.com/andrewnicols/moodle 2019-07-17 09:12:57 +08:00
Andrew Nicols 8f3f25e21a MDL-60013 report_progress: Stop using deprecated modal type 2019-07-17 08:26:27 +08:00
Eloy Lafuente (stronk7) c010001b90 Merge branch 'MDL-66032-master_awarded_badges_criteria' of https://github.com/andrewmadden/moodle 2019-07-17 01:31:46 +02:00
Eloy Lafuente (stronk7) 23e357f1a0 Merge branch 'MDL-65908-master' of git://github.com/peterRd/moodle 2019-07-17 01:04:33 +02:00
Marina Glancy da501ae93d MDL-66163 mod_forum: Add component to unittest sql queries
files from other components may exist in the files table
2019-07-16 20:36:05 +03:00
Leon Stringer 50960244d8 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 16:44:09 +01:00
Eloy Lafuente (stronk7) d764acc2cf Merge branch 'MDL-65555-Master' of https://github.com/tuanngocnguyen/moodle 2019-07-16 12:34:23 +02:00
Eloy Lafuente (stronk7) 62f4e8b60b Merge branch 'MDL-65761' of git://github.com/Chocolate-lightning/moodle 2019-07-16 12:27:43 +02:00
Eloy Lafuente (stronk7) 415ce83bcb Merge branch 'MDL-65744' of git://github.com/Chocolate-lightning/moodle 2019-07-16 11:20:58 +02:00
Mathew May f305ffc933 MDL-65744 lib: Modify minify test to check properly 2019-07-16 17:06:06 +08:00
Mathew May ad4d9cf745 MDL-65744 lib: Modify minify test to check properly 2019-07-16 17:05:33 +08:00
Mathew May b4e39ff24e MDL-65744 lib: Update minify pathconverter lib 2019-07-16 17:05:33 +08:00
Mathew May 0918e156a0 MDL-65744 lib: Update minify minify lib 2019-07-16 17:05:33 +08:00
Andrew Nicols e752e12971 Merge branch 'MDL-65954-master' of git://github.com/junpataleta/moodle 2019-07-16 15:13:41 +08:00
Andrew Nicols c8898e74a1 Merge branch 'MDL-65794_master' of git://github.com/markn86/moodle 2019-07-16 14:26:55 +08:00
Mark Nelson e81107fa25 MDL-65794 core: use themerev as the cache key when getting font icons 2019-07-16 14:23:34 +08:00
Mark Nelson 76669f0f51 MDL-65794 core: use langrev as the cache key when getting strings 2019-07-16 14:23:34 +08:00
Mark Nelson f88e607429 MDL-65794 core: make langrev available in JS 2019-07-16 14:23:34 +08:00
Mark Nelson 3f7360f07d MDL-65794 core: use themerev as the cache key when getting templates 2019-07-16 14:23:34 +08:00
Mark Nelson 6a1ad7c677 MDL-65794 core: allow ajax calls to specify a cache key
This allows for better caching capabilities on servers. If a
cache key is passed and the web service call does not require
the user to be logged in we will attempt to use GET for the
request. This allows for things like proxy caching on URLs.
The cache key must be changed if we do not want to retrieve
what has been cached and want to perform the request again.
2019-07-16 14:23:34 +08:00
Andrew Nicols ce4e052209 Merge branch 'MDL-60013-master' of git://github.com/junpataleta/moodle 2019-07-16 14:21:18 +08:00
Andrew Nicols 94d9aeade7 Merge branch 'MDL-65744' of git://github.com/Chocolate-lightning/moodle 2019-07-16 12:57:24 +08:00
Andrew Nicols d42df9f5a7 Merge branch 'master_MDL-65517' of https://github.com/yao9394/moodle 2019-07-16 11:50:58 +08:00
Andrew Nicols 417e334b91 Merge branch 'MDL-65409-master' of git://github.com/mihailges/moodle 2019-07-16 11:35:23 +08:00
Jake Dallimore e83765bcf1 Merge branch 'MDL-66158-master' of git://github.com/andrewnicols/moodle 2019-07-16 10:30:52 +08:00
Andrew Nicols 444f85aaa9 MDL-66158 calendar: Events should be space separated not an array 2019-07-16 09:46:02 +08:00
Mathew May d7b43fd9cf MDL-65761 lib: Update scssphp to 1.0.2 2019-07-16 09:29:37 +08:00
Mathew May f619e305a0 MDL-65761 lib: Update scssphp to 1.0.0 2019-07-16 09:16:44 +08:00
Nathan Nguyen a81f5d0b1a MDL-65555 mod_lesson: fix group override backup and restore 2019-07-16 11:16:03 +10:00
Nathan Nguyen 4d3bc85866 MDL-65555 mod_quiz: fix group override backup and restore 2019-07-16 11:16:03 +10:00
Mathew May 358d571156 MDL-65761 lib: Update scssphp to 0.8.3 2019-07-16 09:15:21 +08:00
Andrew Madden 7599223a1c 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:31:25 +10:00
Andrew Nicols a21f471e12 Merge branch 'MDL-65928-master-2' of git://github.com/junpataleta/moodle 2019-07-16 07:18:17 +08:00
Eloy Lafuente (stronk7) c4e14e535e Merge branch 'MDL-62836-master' of git://github.com/sarjona/moodle 2019-07-15 23:56:39 +02:00
Sara Arjona 3e8f9b2869 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 13:48:56 +02:00
Eloy Lafuente (stronk7) e9514b4df9 Merge branch 'MDL-58026-master' of https://github.com/MartinGauk/moodle 2019-07-15 13:38:44 +02:00
Bas Brands c5b2ab4786 MDL-63612 core_admin: make course card colours configurable 2019-07-15 11:01:20 +02:00
David Monllaó 2ffdcd78d3 MDL-66026 analytics: No notification if not necessary 2019-07-15 14:24:21 +08:00
Jun Pataleta c5681f7ff1 MDL-60013 amd: Final removal of core/modal_confirm 2019-07-15 13:37:01 +08:00
Peter ee1062686c MDL-66021 backup: Clear course if required before restore 2019-07-15 13:16:50 +08:00
Jun Pataleta b3f4d77e00 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:29:59 +08:00
Mihail Geshoski 88d2bc81c8 MDL-65751 lib: Update jQuery version in Moodle files 2019-07-15 08:45:34 +08:00
Mihail Geshoski c40548366b MDL-65751 lib: Upgrade jQuery lib to 3.4.1 2019-07-15 08:45:34 +08:00
Mihail Geshoski 324aa89ac4 MDL-65742 lib: Update HTMLPurifier version in Moodle related files 2019-07-15 08:43:16 +08:00
Mihail Geshoski e80855b0da MDL-65742 lib: Upgrade HTMLPurifier lib to 4.10.0 2019-07-15 08:43:16 +08:00
Peter e35cc9fea9 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:35:58 +08:00
Mathew May 25d31d43b7 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:52:27 +08:00
AMOS bot bf11226094 Automatically generated installer lang files 2019-07-14 00:08:42 +00:00
David Castro 39260e3ead 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:36:32 -05:00
Silvia Pinheiro ae1556ad93 MDL-62836 badges: Add behat test for the new group selector 2019-07-12 18:13:37 +02:00
Silvia Pinheiro b1e63fc7e2 MDL-62836 badges: Potential badge recipients by group
This affects the case when a badge is setup with the criteria "manual issue by role".
The non-editing teacher can see all participants of the course, when awarding a badge, even with SEPARATE GROUPS mode enabled.
With this change, when the non-editing teacher chooses a group, and searches for a user, the results are filtered for that group.
The same happens for "Existing badge recipients by group" when revoking a badge.
2019-07-12 18:13:37 +02:00
sam marshall ed73ff2b0e 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 15:31:30 +01:00
Jun Pataleta 622d83d7bc MDL-65928 mod_choice: Use proper string for 'select/deselect all' labels
* Because string concatenation is bad!
2019-07-12 16:33:35 +08:00
Jun Pataleta 05b25140d0 MDL-65928 core: Use 'starts with' for non-exact toggle group matching
* Use the 'starts with' selector when matching toggle groups by name in
  non-exact mode to avoid potential conflicts with other toggle groups.
* Note down the required data attributes for JS in the template
  documentations.
* Add a note of this output component in upgrade.txt.
* Add doc blocks for the core/checkbox-toggleall attributes and methods.
2019-07-12 16:33:29 +08:00
Jun Pataleta 71eadbec62 MDL-65928 mod_choice: Add select/deselect all master button 2019-07-12 14:36:35 +08:00
Jun Pataleta c7ad9f3439 MDL-65928 mod_choice: Use core/checkbox_toggleall 2019-07-12 14:36:35 +08:00
Jun Pataleta 2abd969cc5 MDL-65928 core: Split toggle-all elements into separate templates
For cleaner templates, split checkbox toggle-all elements into three
templates:
* master checkbox (master control rendered as a checkbox)
* master button (master control rendered as a button)
* slave checkbox
2019-07-12 14:36:35 +08:00
Jun Pataleta 5943fc3f95 MDL-65928 core: Render master element as button too 2019-07-12 14:36:35 +08:00
Jun Pataleta 6259a9d065 MDL-65928 core: Create a checkbox_toggleall renderable 2019-07-12 14:36:35 +08:00
Jun Pataleta 0a3d306358 MDL-65928 core_amd: Let checkboxes belong to multiple toggle groups 2019-07-12 14:36:35 +08:00
Jun Pataleta 686ab8cc74 MDL-65928 core_amd: Add support for action elements
Enable/disable action elements that are associated with the toggle
group.
2019-07-12 14:36:35 +08:00
Mark Nelson 7fa4e41052 MDL-65794 core: no need for sesskey when login not required 2019-07-12 13:03:43 +08:00
Peter e349db4b4a MDL-65908 assign: Overflow and positioning updates
Draw all annotation within the drawing canvas instead of the region
2019-07-12 09:56:31 +08:00
Peter 2269b06cbc MDL-65908 assign: Revert overflow scroll fix
Revert "MDL-65484 assign: Scrolling overflow CSS"

This reverts commit 5bda066caa.
2019-07-12 09:56:31 +08:00
Damyon Wiese 27b67f6b5a MDL-65409 files: Allow location header
Allow incorrect capitals in location header response.
2019-07-12 08:42:20 +08:00
Mihail Geshoski 247206c970 MDL-65763 lib: Update GeoIP2 and MaxMind DB reader versions in Moodle 2019-07-12 08:17:46 +08:00
Mihail Geshoski b55260fcfb MDL-65763 lib: Upgrade MixMind DB reader lib to 1.4.1 2019-07-12 08:17:46 +08:00
Mihail Geshoski e952e8a425 MDL-65763 lib: Upgrade GeoIP2 lib to 2.9.0 2019-07-12 08:17:46 +08:00
John Yao 96e444665e 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:16:40 +10:00
David Monllaó b209893dd0 MDL-65769 mlbackend_php: Proper algo init & unit test fix 2019-07-12 06:28:31 +08:00
Simey Lameze 3e99b44088 MDL-65769 lib: update PHP-ML thirdpartylibs.xml 2019-07-12 06:28:31 +08:00
Simey Lameze e6c25fb057 MDL-65769 lib: update PHP-ML to 0.8.0 2019-07-12 06:28:31 +08:00
Eloy Lafuente (stronk7) f7e108438f weekly release 3.8dev 2019-07-11 23:33:29 +02:00
Eloy Lafuente (stronk7) f795e2008f NOBUG: Fixed file access permissions 2019-07-11 23:33:29 +02:00
Eloy Lafuente (stronk7) 2cb2a818e2 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-07-11 23:33:27 +02:00
Jun Pataleta 42255de5bc Merge branch 'MDL-65926-master_lowercase_username_sql_query' of https://github.com/andrewmadden/moodle 2019-07-11 20:57:29 +02:00
Bas Brands 8c2bbe5caa MDL-66039 themes: remove duplicate css
* removed duplicate #page { margin-top: 50px };
2019-07-11 14:52:40 +02:00
Simey Lameze da99fb56f6 MDL-65757 lib: update moodle thirdpartylibs.xml 2019-07-11 16:18:43 +08:00
Simey Lameze 9e3dca0a55 MDL-65757 lib: upgrade loglevel.js to 1.6.2 2019-07-11 16:18:04 +08:00
AMOS bot ddb3755c35 Automatically generated installer lang files 2019-07-11 00:08:53 +00:00
Eloy Lafuente (stronk7) 65b10696c5 Merge branch 'MDL-65931-master' of https://github.com/sammarshallou/moodle 2019-07-11 00:33:57 +02:00
sam marshall 107ab4b97b MDL-65931 Web services: get_courses_by_field minor inefficiency
When called with a list of course IDs, this change makes it preload
the contexts and categories before further processing. This saves a
number of queries, depending on how many courses you call it for.

(Typically the function is called with a list of all your enrolled
courses.)

The change may also improve performance for other web services that
call the validate_courses function.
2019-07-10 18:27:42 +01:00
Eloy Lafuente (stronk7) e6bfe3f32b Merge branch 'MDL-66114-master-fix' of git://github.com/marinaglancy/moodle 2019-07-10 12:42:04 +02:00
Marina Glancy de08f8b2ba MDL-66114 core_calendar: normalise categoryid value 2019-07-10 11:28:26 +02:00
Andrew Nicols 2c860ec20e Merge branch 'MDL-65747' of git://github.com/Chocolate-lightning/moodle 2019-07-10 14:33:10 +08:00
Andrew Nicols aeac7a10bc Merge branch 'MDL-66114-master-2' of git://github.com/marinaglancy/moodle 2019-07-10 14:28:27 +08:00
Jun Pataleta 1b81ed2f97 Merge branch 'MDL-66012-master' of git://github.com/lameze/moodle 2019-07-10 12:17:44 +08:00
Simey Lameze 7bfe4a52a3 MDL-66012 calendar: fix no event message on calendar views
Ahhh Jun. Thanks legend :)
2019-07-10 11:34:35 +08:00
Jun Pataleta b17040fdfc Merge branch 'MDL-64002-master-rebased' of git://github.com/ryanwyllie/moodle 2019-07-10 11:01:51 +08:00
Simey Lameze 9ed1114f27 MDL-65750 lib: update of moodle documentation
Update of readme_moodle.txt and thirdpartylibs.xml
with information about the update to 1.5.2
2019-07-10 08:48:22 +08:00
Simey Lameze 4155b7a40b MDL-65750 lib: update simplepie to 1.5.2 2019-07-10 08:48:22 +08:00
Mathew May 062dc67e4e MDL-65747 libraries: Remove the pear/CHAP library 2019-07-10 08:42:19 +08:00
Andrew Nicols 3034726dc9 Merge branch 'MDL-65562_master' of git://github.com/dmonllao/moodle 2019-07-10 08:09:25 +08:00
Andrew Nicols 511edea98f Merge branch 'MDL-65741-master' of git://github.com/sarjona/moodle 2019-07-10 08:07:43 +08:00
Eloy Lafuente (stronk7) 884bd3da36 Merge branch 'MDL-56835_master-coursetimecreated' of git://github.com/markn86/moodle 2019-07-10 00:07:46 +02:00
Eloy Lafuente (stronk7) d0df20d88b Merge branch 'MDL-64811_group_submission_warning' of git://github.com/davosmith/moodle 2019-07-09 17:57:37 +02:00
Marina Glancy 1f37e37356 MDL-66114 core_calendar: events without category 2019-07-09 17:52:07 +02:00
David Monllaó 1d5cb38292 MDL-65562 analytics: New get_prediction_actions API 2019-07-09 13:36:11 +02:00
David Monllaó 4de032eba3 MDL-65562 tool_analytics: Effectiveness report base 2019-07-09 13:36:11 +02:00
Jun Pataleta 28ebbfd77e Merge branch 'MDL-66081-master' of git://github.com/lameze/moodle 2019-07-09 17:11:41 +08:00
Davo Smith 07aafc9f80 MDL-64811 mod_assign: add webservice return type change to upgrade.txt 2019-07-09 09:01:44 +01:00
Andrew Nicols b25bcc45dc Merge branch 'MDL-64258-master' of https://github.com/HuongNV13/moodle 2019-07-09 14:26:13 +08:00
Ryan Wyllie 18cb44460b MDL-64002 message: add error handling for failed messages
Add inline error messages when messages fail to send. Also add
support for deleting messages that failed to send.
2019-07-09 13:49:24 +08:00
Andrew Nicols b6bbcd6ecb Merge branch 'MDL-65936' of git://github.com/Chocolate-lightning/moodle 2019-07-09 13:29:42 +08:00
Andrew Nicols c30d15814a Merge branch 'MDL-65965-master-fix' of git://github.com/junpataleta/moodle 2019-07-09 10:59:14 +08:00
Jun Pataleta 5fb766da14 MDL-65965 behat: Do not fetch grouping IDs for empty grouping idnumbers 2019-07-09 10:47:53 +08:00
Mark Nelson 11362b4aaf MDL-56835 report_participation: remove unreachable if condition 2019-07-09 09:14:15 +08:00
Andrew Nicols dbeada6f27 Merge branch 'MDL-65772-master' of git://github.com/vmdef/moodle 2019-07-09 08:44:48 +08:00
Mark Nelson 2604998150 MDL-56835 report_participation: initialise action variables 2019-07-09 08:27:17 +08:00
Mark Nelson 5a9e1bc18e MDL-56835 report_participation: use course timecreated as minlog 2019-07-09 08:27:17 +08:00
Eloy Lafuente (stronk7) d94c54f092 Merge branch 'MDL-66054-master' of git://github.com/rezaies/moodle 2019-07-09 00:57:07 +02:00
Eloy Lafuente (stronk7) b062e4c4cb Merge branch 'MDL-65965-master' of git://github.com/junpataleta/moodle 2019-07-09 00:54:56 +02:00
Eloy Lafuente (stronk7) 33b511bbc7 Merge branch 'MDL-60949_master' of git://github.com/dmonllao/moodle 2019-07-09 00:52:49 +02:00
Eloy Lafuente (stronk7) cb153cfe80 Merge branch 'MDL-65915' of https://github.com/timhunt/moodle 2019-07-09 00:51:12 +02:00
Martin Gauk 09fd8aec27 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:34 +00:00
David Monllaó 35b10d09eb MDL-60949 analytics: Sort models by name 2019-07-08 08:19:47 +02:00
Mathew May 9193075486 MDL-65936 libraries: Remove duplicate fontawesome scss 2019-07-08 11:07:13 +08:00
AMOS bot 76fb9df69b Automatically generated installer lang files 2019-07-08 00:09:57 +00:00
AMOS bot d315eb9956 Automatically generated installer lang files 2019-07-07 00:08:47 +00:00
Stefan Topfstedt 1606fb6812 MDL-65621 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-07-05 14:41:46 -07:00
Sara Arjona fe3bec8a5e MDL-65741 libraries: Fix coding style errors in Excel lib 2019-07-05 15:59:37 +02:00
Sara Arjona 0238ea21c4 MDL-65741 libraries: Replace PHPExcel with PHPSpreadsheet 2019-07-05 15:59:36 +02:00
Simey Lameze 316412beb4 MDL-66081 calendar: fix typo in attribute description 2019-07-05 17:04:13 +08:00
Matt Porritt d00715e410 MDL-56835 report_participation: release session lock 2019-07-05 10:33:13 +08:00
Ryan Wyllie 485ebc9b67 MDL-64002 message: buffer send messages in UI for slow connections 2019-07-05 10:10:08 +08:00
AMOS bot 05eb5122dc Automatically generated installer lang files 2019-07-05 00:09:35 +00:00
Andrew Madden 907be50c42 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-05 09:02:56 +10:00
Eloy Lafuente (stronk7) fac49f8f72 weekly release 3.8dev 2019-07-04 16:50:36 +02:00
Eloy Lafuente (stronk7) 6855aeda7c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-07-04 16:50:31 +02:00
AMOS bot 56398bc1fc Automatically generated installer lang files 2019-07-04 00:08:30 +00:00
Shamim Rezaie 5018a004ef MDL-61114 mod_assign: Check if the teacher can access the override 2019-07-03 18:00:11 +02:00
Shamim Rezaie 9cb135db20 MDL-61114 mod_assign: assignment overrides to observe group membership 2019-07-03 18:00:11 +02:00
Shamim Rezaie eb70df6f4b MDL-61115: mod_lesson: Check if the teacher can access the override 2019-07-03 15:17:22 +02:00
Shamim Rezaie b392686a65 MDL-61115 mod_lesson: Lesson overrides to observe group membership 2019-07-03 15:17:22 +02:00
Sara Arjona f7b0d0fe7f Merge branch 'MDL-65105-master' of git://github.com/bmbrands/moodle 2019-07-03 15:05:32 +02:00
Sara Arjona 3eb551e809 Merge branch 'MDL-65958-master-v3' of git://github.com/lameze/moodle 2019-07-03 14:53:17 +02:00
Simey Lameze da6ed25999 MDL-65958 calendar: cover students default event type visibility 2019-07-03 20:39:58 +08:00
Simey Lameze 26d6404315 MDL-65958 calendar: students should not see course event type 2019-07-03 20:28:09 +08:00
Simey Lameze 47177cd6bc MDL-65958 calendar: add behat to test calendar_adminseesall behaviour 2019-07-03 20:27:59 +08:00
Sara Arjona 8a2ec04df3 Merge branch 'MDL-64794' of https://github.com/stronk7/moodle 2019-07-03 11:15:30 +02:00
Huong Nguyen afcc7a723d MDL-64258 Group: Performance problem on the enrol group members page 2019-07-03 15:08:51 +07:00
Huong Nguyen 53f796b91a MDL-64258 Group: Unit Test for find_users function 2019-07-03 15:08:49 +07:00
Simey Lameze 7abf78fc41 MDL-65958 calendar: fix adminseesall logic in the event form 2019-07-03 16:05:55 +08:00
Eloy Lafuente (stronk7) 843618cecd Merge branch 'MDL-65845_master' of git://github.com/dmonllao/moodle 2019-07-03 02:25:22 +02:00
Eloy Lafuente (stronk7) 5daeae8867 Merge branch 'MDL-65656-master-2' of git://github.com/andrewnicols/moodle 2019-07-03 02:16:35 +02:00
AMOS bot 9848f7391f Automatically generated installer lang files 2019-07-03 00:08:38 +00:00
AMOS bot 489ab2de53 Automatically generated installer lang files 2019-07-03 00:08:38 +00:00
Eloy Lafuente (stronk7) 45a8249431 Merge branch 'MDL-63268-master' of https://github.com/lucaboesch/moodle 2019-07-03 00:02:07 +02:00
Sara Arjona a1f0042e06 Merge branch 'MDL-64614' of git://github.com/stronk7/moodle 2019-07-02 21:21:18 +02:00
Luca Bösch d4beb21162 MDL-63268 tool_uploadcourse: Keep source course section number. 2019-07-02 19:44:22 +02:00
Eloy Lafuente (stronk7) b56dad81b7 Merge branch 'MDL-65707-master' of git://github.com/lameze/moodle 2019-07-02 16:40:02 +02:00
Sara Arjona 492b51a349 Merge branch 'MDL-66062' of git://github.com/stronk7/moodle 2019-07-02 15:15:49 +02:00
Sara Arjona ec089cc4f7 Merge branch 'MDL-65101_master' of git://github.com/markn86/moodle 2019-07-02 14:50:04 +02:00
Eloy Lafuente (stronk7) 3b07f13d52 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 12:57:52 +02:00
Eloy Lafuente (stronk7) 7384dd3e2c Merge branch 'MDL-65728-master' of git://github.com/rezaies/moodle 2019-07-02 12:13:46 +02:00
Sara Arjona aa6a50cccc Merge branch 'MDL-65839_master' of git://github.com/dmonllao/moodle 2019-07-02 10:41:35 +02:00
Eloy Lafuente (stronk7) ca79f78948 Merge branch 'MDL-65853_master' of git://github.com/gjb2048/moodle 2019-07-02 10:25:23 +02:00
Shamim Rezaie 1ba1235eb1 MDL-34411 mod_quiz: Check if the teacher can access the override 2019-07-02 08:54:36 +02:00
Shamim Rezaie cb64dfbeb1 MDL-34411 groups: copy/paste error in test_groups_user_groups_visible 2019-07-02 08:54:36 +02:00
Shamim Rezaie ce1fd00203 MDL-34411 mod_quiz: quiz overrides to observe group membership 2019-07-02 08:54:36 +02:00
Damyon Wiese 043b38d580 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:54:36 +02:00
Damyon Wiese ea1ac3c7ef 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:54:36 +02:00
Sara Arjona af1fce5cb9 Merge branch 'MDL-48610-master_always_visible_alphabet_filter' of https://github.com/gmrsagar/moodle 2019-07-02 08:45:56 +02:00
Sara Arjona 7576bcbe9a Merge branch 'MDL-66049-master-workshopnamespace' of git://github.com/mudrd8mz/moodle 2019-07-02 08:28:53 +02:00
Sara Arjona a3729cbf6b Merge branch 'MDL-65901-master' of https://github.com/lucaboesch/moodle 2019-07-02 08:10:11 +02:00
Jun Pataleta 3e287c3bee Merge branch 'MDL-66022-master-fix' of git://github.com/andrewnicols/moodle 2019-07-02 15:58:51 +10:00
Andrew Nicols 7fdefd3184 MDL-66022 core: subplugins.php moved to json 2019-07-02 15:55:12 +10:00
AMOS bot 1433a8b03a Automatically generated installer lang files 2019-07-02 00:09:18 +00:00
Eloy Lafuente (stronk7) 671313b32d Merge branch 'MDL-64935-master' of git://github.com/bmbrands/moodle 2019-07-02 00:05:03 +02:00
Eloy Lafuente (stronk7) d1f430d160 Merge branch 'MDL-66022' of git://github.com/Chocolate-lightning/moodle 2019-07-01 23:55:14 +02:00
Shamim Rezaie 1d26a183bb MDL-66054 behat: typo fix 2019-07-02 04:04:28 +10:00
Eloy Lafuente (stronk7) 6e990b0c6b Merge branch 'MDL-64511' of https://github.com/paulholden/moodle 2019-07-01 18:52:06 +02:00
Sara Arjona 90f59ece67 Merge branch 'MDL-65297' of https://github.com/paulholden/moodle 2019-07-01 18:34:38 +02:00
Sara Arjona 2233fcbedd Merge branch 'MDL-65892-master-inlinereply' of git://github.com/mudrd8mz/moodle 2019-07-01 15:49:54 +02:00
David Mudrák 2bb03c59e8 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:48:45 +02:00
Víctor Déniz Falcón 8b7d951046 MDL-65772 cachestore_mongodb: fix the version number of the library 2019-07-01 12:40:59 +01:00
Sara Arjona 3ee94b8dee Merge branch 'MDL-65973-master' of git://github.com/jleyva/moodle 2019-07-01 13:13:26 +02:00
Davo Smith 8773296b77 MDL-64811 mod_assign: fix webservice return type 2019-07-01 11:22:57 +01:00
Dan Marsden 22dfa6d31d MDL-60347 core: debugsmtp should be a developer only setting. 2019-07-01 12:15:05 +02:00
Sara Arjona 7d12c365ca Merge branch 'MDL-57884' of https://github.com/timhunt/moodle 2019-07-01 09:57:34 +02:00
AMOS bot 008bb06ece Automatically generated installer lang files 2019-06-30 00:09:09 +00:00
AMOS bot 069bc65d61 Automatically generated installer lang files 2019-06-30 00:09:08 +00:00
Eloy Lafuente (stronk7) a993013a33 MDL-64614 environment: mssql requirement up to 2012 (11.0) 2019-06-29 16:26:36 +02:00
Eloy Lafuente (stronk7) 502d2c8a48 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-29 11:52:00 +02:00
AMOS bot 86aca4f8b3 Automatically generated installer lang files 2019-06-29 00:09:09 +00:00
AMOS bot 693f54d0b5 Automatically generated installer lang files 2019-06-29 00:09:08 +00:00
David Monllaó a5d8d2ce9f 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:00 +02:00
David Monllaó 39db57c3ee MDL-65839 core_analytics: New indicator instances for each analysable 2019-06-28 21:00:04 +02:00
Paul Holden b4d999a5a6 MDL-64511 privacy: encode data URL when loading content.
Previously paths that included ? or # characters would break loading.
2019-06-28 13:16:16 +01:00
Paul Holden 8e7b3d4ede MDL-65297 atto_managefiles: improve filename decoding.
Filenames containing # character would previously be missed.
2019-06-28 13:12:04 +01:00
Sara Arjona 5528d03217 Merge branch 'MDL-65506-master' of git://github.com/rezaies/moodle 2019-06-28 12:16:14 +02:00
Mark Nelson 4ad162667d MDL-65101 core_message: add Behat test 2019-06-28 18:12:05 +08:00
Mark Nelson a9fd9c7909 MDL-65101 core_message: 'canmessage' should trump 'requirescontract' 2019-06-28 14:58:24 +08:00
AMOS bot 267a6475ef Automatically generated installer lang files 2019-06-28 00:09:39 +00:00
Gareth Barnard 5f3d948aaf MDL-65853 format_base: Labels counted in section activity summary. 2019-06-27 23:32:35 +01:00
Luca Bösch 242dad037f MDL-65901 forum: Style advanced search form properly. 2019-06-27 22:00:05 +02:00
Eloy Lafuente (stronk7) 7ec1804935 weekly release 3.8dev 2019-06-27 18:54:22 +02:00
Eloy Lafuente (stronk7) 730e779b0c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-06-27 18:54:19 +02:00
Jake Dallimore c0cc1ebe85 Merge branch 'MDL-65995' of git://github.com/stronk7/moodle 2019-06-27 13:37:50 +08:00
Andrew Nicols bf2d94e3c9 Merge branch 'MDL-53778' of https://github.com/stronk7/moodle 2019-06-27 08:35:56 +08:00
Mathew May e63a35dcff MDL-66022 core: Remove unused subplugin files 2019-06-27 08:18:24 +08:00
Eloy Lafuente (stronk7) 4421d3d127 Merge branch 'MDL-59502-master' of git://github.com/aanabit/moodle 2019-06-27 01:25:13 +02:00
Eloy Lafuente (stronk7) f88261eb49 Merge branch 'MDL-57632-master' of git://github.com/sarjona/moodle 2019-06-27 01:23:09 +02:00
Eloy Lafuente (stronk7) ee47095dbb 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:11:43 +02:00
Eloy Lafuente (stronk7) dcb8f5fefb 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:11:43 +02:00
Eloy Lafuente (stronk7) 6f5990024c Merge branch 'MDL-66003-master-enfix' of git://github.com/mudrd8mz/moodle 2019-06-26 23:04:18 +02:00
Nicolas Dunand 713934f9b4 MDL-63458 core_user: Remove send message if messaging is disabled 2019-06-26 11:24:08 -07:00
Sara Arjona bdc12b0bd8 Merge branch 'MDL-65996' of git://github.com/stronk7/moodle 2019-06-26 19:16:07 +02:00
Sara Arjona d6c15a77a2 Merge branch 'MDL-60088' of git://github.com/Chocolate-lightning/moodle 2019-06-26 18:10:58 +02:00
Eloy Lafuente (stronk7) 3de633589c Merge branch 'MDL-59525' of git://github.com/Chocolate-lightning/moodle 2019-06-26 17:57:23 +02:00
Eloy Lafuente (stronk7) 504d1ee098 Merge branch 'MDL-57617' of git://github.com/Chocolate-lightning/moodle 2019-06-26 17:55:15 +02:00
Eloy Lafuente (stronk7) 51208845bf Merge branch 'MDL-53778' of https://github.com/anieminen/moodle 2019-06-26 17:49:53 +02:00
Bas Brands 33389741a3 MDL-65357 themes: position enrolment icons in course listing 2019-06-26 15:25:24 +02:00
Shamim Rezaie 706c5b3acd MDL-65506 forms: get the correct value for advcheckbox fields in js 2019-06-26 20:56:42 +10:00
Eloy Lafuente (stronk7) 61cd6fe9b0 Merge branch 'MDL-65249-master-fix' of https://github.com/snake/moodle 2019-06-26 10:28:08 +02:00
Jake Dallimore 93872a9a2f MDL-65249 session: use redis host constant in unit tests 2019-06-26 16:26:19 +08:00
Jake Dallimore 9b879d0bb7 Merge branch 'MDL-65249-redis-catch-exception-after-retry-master' of https://github.com/ilya-catalyst/moodle 2019-06-26 14:48:03 +08:00
Jake Dallimore ea64059672 Merge branch 'MDL-60978-master' of git://github.com/andrewnicols/moodle 2019-06-26 13:16:36 +08:00
AMOS bot 46f9914b31 Automatically generated installer lang files 2019-06-26 00:09:16 +00:00
Eloy Lafuente (stronk7) 56b66b1449 Merge branch 'MDL-65181' of https://github.com/paulholden/moodle 2019-06-26 00:37:56 +02:00
Eloy Lafuente (stronk7) b25890aa13 Merge branch 'MDL-65797-Master' of https://github.com/tuanngocnguyen/moodle 2019-06-26 00:31:39 +02:00
David Mudrák d201dba655 MDL-66003 lang: Use the updated strings in the tests 2019-06-25 18:05:03 +02:00
Helen Foster 08a114cf40 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 18:00:51 +02:00
David Mudrák 703ad1a84e MDL-65892 forum: Fix styling of the inline reply textarea 2019-06-25 14:48:10 +02:00
Arto Nieminen 9147273640 MDL-53778 quiz settings: Ensure that disabled checkboxes have value 0 2019-06-25 13:23:12 +03:00
Ilya Tregubov 4120908e19 MDL-65249 Session: Throw exception if number of attempts exceeded. 2019-06-25 15:09:42 +10:00
Simey Lameze ce715ce556 MDL-65707 calendar: behat scenario to test default event type 2019-06-25 09:50:27 +08:00
Simey Lameze 419b868ae7 MDL-65707 calendar: set the correct event type on site calendar 2019-06-25 09:50:22 +08:00
Jake Dallimore 567289e29a Merge branch 'MD-64901-master-fix' of https://github.com/andrewnicols/moodle 2019-06-25 09:36:05 +08:00
Andrew Nicols a3f254053e MDL-64901 block_myoverview: Correct CSS selector in behat 2019-06-25 09:17:22 +08:00
AMOS bot 57ca66d594 Automatically generated installer lang files 2019-06-25 00:09:11 +00:00
Eloy Lafuente (stronk7) a1c3ebd3eb Merge branch 'MDL-64340-master' of git://github.com/rezaies/moodle 2019-06-25 00:53:52 +02:00
Eloy Lafuente (stronk7) c5390ec39c Merge branch 'MDL-65922-master' of https://github.com/dmitriim/moodle 2019-06-25 00:35:28 +02:00
Bas Brands df92689612 MDL-64935 theme: prevent activitynavigation link overflowing container 2019-06-24 14:45:25 +02:00
Bas Brands 987c70f544 MDL-65105 theme_classic: use $dark variable for navbar-dark 2019-06-24 11:42:58 +02:00
Shamim Rezaie 8a0f2e954e MDL-65728 tool_customlang: Escape html on the original translation field 2019-06-24 18:23:59 +10:00
Sagar Ghimire a57a585cd2 MDL-48610 tablelib: Always show alphabet filter in grader report 2019-06-24 14:51:01 +10:00
Jake Dallimore 4a4a3e0e27 Merge branch 'MDL-65893-master' of https://github.com/nicoroeser/moodle 2019-06-24 11:41:37 +08:00
Andrew Nicols 760938e39e Merge branch 'MDL-64998' of git://github.com/Chocolate-lightning/moodle 2019-06-24 08:16:14 +08:00
Mathew May cddcfccc36 MDL-64998 libraries: Remove references to lessphpc 2019-06-24 08:13:43 +08:00
AMOS bot 0b939813d6 Automatically generated installer lang files 2019-06-24 00:08:09 +00:00
Andrew Nicols 60f3e0f61d Merge branch 'MDL-64901-37_block_myoverview_layout_settings' of https://github.com/tomdickman/moodle 2019-06-24 06:44:11 +08:00
Eloy Lafuente (stronk7) 3a1522b1a4 MDL-65995 components: Too early to use debugging()
components are loaded very early in Moodle bootstrap/warmup
process. So, basically, core_component must be vanilla php
and moodlelib/weblib facilitites are not available yet.

So, changing debugging() call to error_log(), to make it
consistent with the rest of the calls in the method.
2019-06-22 12:06:25 +02:00
Eloy Lafuente (stronk7) df272345ba MDL-65996 exceptions: Make exception handler early-errors compliant
Some errors can happen really early in Moodle bootstrap/warmup
(basically when executing setup.php stuff, before general libraries
are loaded and available).

That's called "early errors" and there are good parts within
setuplib.php that must be able to run without any dependency
other than vanilla php code.

It seems that, along the years, some dependencies have been
added (calls to debugging(), to s()....) and they worked mostly
ok because early errors are rare.

This commit just makes all those dependencies conditional so,
if an early error is detected... the exception handler will
return real information about he error happening and not
handler own errors (like it's happening now).
2019-06-22 11:38:43 +02:00
Sara Arjona c2c5f08c09 MDL-57632 core_media: final deprecation core_media_manager::setup 2019-06-21 12:10:36 +02:00
Jun Pataleta e2b0e62f6e MDL-65965 behat: Map grouping for activity data generator 2019-06-21 15:38:28 +08:00
Jun Pataleta f512a662f5 MDL-65965 availability: Behat test for activity grouping restriction 2019-06-21 15:36:35 +08:00
Mathew May d3e61fdf72 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-21 14:50:29 +08:00
Andrew Nicols e9aaf755d2 MDL-60978 travis: Re-enable Redis session tests 2019-06-21 14:36:13 +08:00
Andrew Nicols 96161a706b MDL-60978 session: Run redis tests in isolation 2019-06-21 14:36:13 +08:00
Andrew Nicols fc1785b086 MDL-60978 testing: Support ability to run phpunit in isolated process 2019-06-21 14:36:13 +08:00
Mathew May 655b994a4a MDL-64998 libraries: Remove PHP LESSc 2019-06-21 07:18:59 +08:00
Mathew May db9f122fbc MDL-59525 libraries: Throw errors on functions deprecated in 3.4 2019-06-21 07:12:48 +08:00
Mathew May 27607e6ac8 MDL-57617 Libraries: Throw errors on functions deprecated in 3.3 2019-06-21 07:08:21 +08:00
Dmitrii Metelkin f82931c169 MDL-65922 core: add grade_item_updated event 2019-06-21 08:54:37 +10:00
Shamim Rezaie 3840540790 MDL-64340 mod_quiz: not display "add random question" when no permission 2019-06-21 08:52:14 +10:00
Amaia Anabitarte c5b2f2b306 MDL-59502 Global Search: deprecate add_documents 4 arg implementation
In MDL-59039 we introduced changes to add_documents and should return an extra $partial boolean.
We still supported implementations returning 4 elements since then,
but  this issue is about removing this 4 returned elements compatibility.
2019-06-20 18:58:17 +02:00
Eloy Lafuente (stronk7) f1a8db6911 weekly release 3.8dev 2019-06-20 17:42:54 +02:00
Eloy Lafuente (stronk7) 96fdfb2b2e Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-06-20 17:42:50 +02:00
Juan Leyva bb0ce4793e MDL-65973 calendar: Avoid sesskey checks in WS
External function submit_create_update_form should avoid any sesskey checks.
2019-06-20 15:02:33 +02:00
Eloy Lafuente (stronk7) b84d2d6e04 Merge branch 'MDL-65759' of git://github.com/Chocolate-lightning/moodle 2019-06-20 11:41:00 +02:00
Jake Dallimore 98e54827d0 Merge branch 'MDL-65084' of https://github.com/NeillM/moodle 2019-06-20 09:37:42 +08:00
Jake Dallimore 7e72fd7b9f Merge branch 'MDL-65883-master' of git://github.com/lameze/moodle 2019-06-20 09:12:46 +08:00
Mathew May c04b8fbe40 MDL-65759 library: Add patch #115 for php-css-parser
Patch taken from Sabberworm/PHP-CSS-Parser#115 as specified in
moodle_readme.txt
2019-06-20 08:20:17 +08:00
Mathew May 376eb15617 MDL-65759 library: Update php-css-parser to 8.3.0 2019-06-20 08:16:13 +08:00
Andrew Nicols ab4324f42e Merge branch 'MDL-61319-master' of git://github.com/bmbrands/moodle 2019-06-20 08:09:24 +08:00
Eloy Lafuente (stronk7) 21406f66e0 Merge branch 'MDL-65646-master' of git://github.com/andrewnicols/moodle 2019-06-20 00:29:56 +02:00
Eloy Lafuente (stronk7) 0f7e873c30 Merge branch 'MDL-65770' of git://github.com/Chocolate-lightning/moodle 2019-06-20 00:26:06 +02:00
Eloy Lafuente (stronk7) 734c113027 Merge branch 'MDL-64975-master' of https://github.com/nicoroeser/moodle 2019-06-20 00:10:46 +02:00
Eloy Lafuente (stronk7) 90b01a0015 Merge branch 'MDL-57487-master' of git://github.com/sarjona/moodle 2019-06-19 23:05:50 +02:00
Eloy Lafuente (stronk7) 3831934241 Merge branch 'MDL-65151-master' of git://github.com/aanabit/moodle 2019-06-19 22:52:32 +02:00
Eloy Lafuente (stronk7) 094ac2d51a Merge branch 'MDL-65910-master' of git://github.com/junpataleta/moodle 2019-06-19 20:54:28 +02:00
Eloy Lafuente (stronk7) 1824ffab0d Merge branch 'MDL-65752' of git://github.com/Chocolate-lightning/moodle 2019-06-19 20:49:43 +02:00
Eloy Lafuente (stronk7) db339012f5 Merge branch 'MDL-65665-master-2' of git://github.com/mihailges/moodle 2019-06-19 20:29:09 +02:00
Eloy Lafuente (stronk7) 5759f72d8b Merge branch 'MDL-65666-master' of git://github.com/rezaies/moodle 2019-06-19 18:37:56 +02:00
Eloy Lafuente (stronk7) 220d29d46e Merge branch 'MDL-65806-master' of https://github.com/sammarshallou/moodle 2019-06-19 18:27:05 +02:00
Eloy Lafuente (stronk7) 59cfb582f6 Merge branch 'MDL-65864' of git://github.com/timhunt/moodle 2019-06-19 18:08:19 +02:00
Eloy Lafuente (stronk7) b3bbf6adf8 Merge branch 'MDL-55821-master' of git://github.com/damyon/moodle 2019-06-19 18:05:10 +02:00
Neill Magill 8b78e4cf49 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()
2019-06-19 09:07:34 +01:00
Neill Magill 29a0e5c4a4 MDL-65084 recent items: Test handling of deleted courses 2019-06-19 09:07:31 +01:00
Jake Dallimore 1d73e8c3be Merge branch 'MDL-65904-master' of git://github.com/merrill-oakland/moodle 2019-06-19 14:56:11 +08:00
Simey Lameze 58e601bf8b MDL-65883 mod_quiz: replace all hardcoded urls to proper params 2019-06-19 14:48:06 +08:00
Simey Lameze 6970450643 MDL-65883 mod_quiz: change attemptlib_test to use data generators 2019-06-19 14:48:01 +08:00
Tim Hunt b3c6c89b35 MDL-57884 quiz: autosave should not send the value of submit buttons 2019-06-18 17:46:47 +01:00
Bas Brands da26d7b6ea 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:37:07 +02:00
Tim Hunt dd6efc8b7b MDL-65915 quiz regrading: refactor some almost duplicate code 2019-06-18 11:37:15 +01:00
Tim Hunt 9a3af544ff MDL-65915 quiz regrading: better progress information
This makes it easier to diagnose problems if the regrade fails in the
middle.

Along the way, I added one un-declared field to the class, and
converted some SQL-construction code to $DB->get_in_or_equal().

I also added the ability to set attributes on the label in
html_writer::checkbox.
2019-06-18 11:37:12 +01:00
Simey Lameze d6884bb3d5 MDL-65768 auth_cas: update of moodle documentation
Update of readme_moodle.txt and thirdpartylibs.xml
with information about the update to 1.3.7
2019-06-18 13:54:27 +08:00
Simey Lameze 97133133cd MDL-65768 auth_cas: update phpCAS to 1.3.7 2019-06-18 13:49:48 +08:00
Peter 0e5f79e80c MDL-65740 lib: Adodb library update 2019-06-18 10:05:17 +08:00
Andrew Nicols 4e85b8b367 Merge branch 'MDL-65840' of https://github.com/mkassaei/moodle 2019-06-18 09:43:52 +08:00
Andrew Nicols dcab557adf Merge branch 'MDL-65469' of git://github.com/stronk7/moodle 2019-06-18 09:17:35 +08:00
AMOS bot 4234722cdb Automatically generated installer lang files 2019-06-18 00:08:29 +00:00
Eloy Lafuente (stronk7) ca582dc947 Merge branch 'MDL-65869-master' of git://github.com/aanabit/moodle 2019-06-18 00:14:03 +02:00
Eloy Lafuente (stronk7) 0307a98545 Merge branch 'MDL-64383-master' of git://github.com/damyon/moodle 2019-06-17 23:02:41 +02:00
Eloy Lafuente (stronk7) e7bf69e057 MDL-65469 mod_forum: Check for existence before operating 2019-06-17 17:14:55 +02:00
Davo Smith 74ddcaaa6f MDL-64811 mod_assign: warn about 'Default group' submissions 2019-06-17 16:01:47 +01:00
Andrew Nicols 0f2b29242e Merge branch 'MDL-65469-master' of git://github.com/peterRd/moodle 2019-06-17 14:18:40 +08:00
Peter 9c3e3a904b MDL-65469 mod_forum: Use the formchange checker initializer 2019-06-17 12:29:48 +08:00
Peter dfd0021749 MDL-65469 core: Expose formchecker to initialize current form state 2019-06-17 11:55:56 +08:00
Andrew Nicols e29530fe3c Merge branch 'MDL-65888-master' of git://github.com/mudrd8mz/moodle 2019-06-17 10:48:34 +08:00
Adrian Greeve 54968b15ec MDL-65762 lib: Update of Spout wrapper and docs. 2019-06-17 09:57:35 +08:00
Adrian Greeve 8f94f447f9 MDL-65762 lib: Upgrade the spout library to 3.0.1 2019-06-17 08:42:31 +08:00
AMOS bot d7557b791b Automatically generated installer lang files 2019-06-15 00:08:06 +00:00
Sara Arjona c128ccc142 MDL-57487 course: final deprecation external::get_activities_overview 2019-06-14 17:41:18 +02:00
Sara Arjona f65075f10f MDL-57487 mod_scorm: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona 9e2101a206 MDL-57487 mod_scorm: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona c023ce5873 MDL-57487 mod_quiz: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona a1bf1b04a5 MDL-57487 mod_quiz: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona 06c645a712 MDL-57487 mod_lesson: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona 18c1fdbb77 MDL-57487 mod_lesson: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona d4def03e98 MDL-57487 mod_forum: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona b18015c687 MDL-57487 mod_forum: final deprecation xxx_print_overview
Apart from deprecating forum_print_overview, the following method
has been also deprecated because it's not used anymore:
- forum_filter_user_groups_discussions
2019-06-14 17:42:59 +02:00
Sara Arjona 99a80e133a MDL-57487 mod_choice: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona ec22b5ed91 MDL-57487 mod_choice: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona c50f6c6bfd MDL-57487 mod_choice: final string deprecation for skipresultgraph
The final skipresultgraph should be done in 3.4 because it was
deprecated in 3.0 in MDL-49811.
2019-06-14 17:41:18 +02:00
Sara Arjona cd1d59a974 MDL-57487 mod_chat: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona 2af4a2c193 MDL-57487 mod_assign: deprecate strings used in xxx_print_overview 2019-06-14 17:41:18 +02:00
Sara Arjona 375e2ecea0 MDL-57487 mod_assign: final deprecation xxx_print_overview
Apart from deprecating assign_print_overview , the following methods
have been also deprecated because they are not used anymore:
- assign_get_mysubmission_details_for_print_overview
- assign_get_grade_details_for_print_overview
2019-06-14 17:41:18 +02:00
Nicolas Roeser 76a3cf95b7 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:05:39 +02:00
Paul Holden d0329e8413 MDL-65181 mod_data: show required field indicator for textarea fields. 2019-06-14 09:49:09 +01:00
Nicolas Roeser 591ece3093 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:39:25 +02:00
M Kassaei 72d387254a 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-14 09:19:06 +01:00
Amaia Anabitarte 77e4d6f13b MDL-65151 core_course: Final deprecation of section_edit_controls() 2019-06-14 10:18:22 +02:00
Amaia Anabitarte b6bac30fdf 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:16:44 +02:00
Jun Pataleta fc97181924 MDL-65910 report_stats: Add stattype query condition for consistency 2019-06-14 13:00:31 +08:00
Peter 3359571e84 MDL-60405 lib_horde: Upgrade Horde library 2019-06-14 08:50:43 +08:00
Mihail Geshoski d411a1c10e MDL-65665 forum: WS does not respect subscribe on reply user preference 2019-06-14 08:44:28 +08:00
Mihail Geshoski e321b28236 MDL-65665 forum: Add unit test 2019-06-14 08:44:28 +08:00
Nathan Nguyen 86bc0ae4b9 MDL-65797 mod_assign: limit users to list of participants
Limit assign override union to list of participants in a course instead of users of the whole site.
2019-06-14 09:38:28 +10:00
Simey Lameze 589c4f9474 MDL-65883 mod_quiz: fix quiz navigation buttons href 2019-06-14 07:27:02 +08:00
Tim Hunt e900b2f34f 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:04:02 +01:00
Eloy Lafuente (stronk7) 5dae8c0515 weekly release 3.8dev 2019-06-13 18:15:31 +02:00
Eloy Lafuente (stronk7) 4b1e452358 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-06-13 18:15:28 +02:00
Adrian Greeve f7203861d5 MDL-58439 admin: Fix missing page context. 2019-06-13 18:05:13 +02:00
Andrew Nicols ae321ea8fc Merge branch 'MDL-65814-master' of git://github.com/junpataleta/moodle 2019-06-13 18:05:09 +02:00
Adrian Greeve fba8e2cef3 Merge branch 'MDL-58439-admin-no-guest' of https://github.com/brendanheywood/moodle 2019-06-13 18:05:06 +02:00
Jun Pataleta 0d83964337 Merge branch 'MDL-55997-master' of git://github.com/peterRd/moodle 2019-06-13 18:05:03 +02:00
Adrian Greeve fa5bed66de Merge branch 'MDL-65369_master' of https://github.com/marxjohnson/moodle 2019-06-13 18:04:59 +02:00
Jun Pataleta 05931412a4 Merge branch 'MDL-65622-master' of https://github.com/dmitriim/moodle 2019-06-13 18:04:56 +02:00
Adrian Greeve 1caab625e7 Merge branch 'MDL-65492' of https://github.com/timhunt/moodle 2019-06-13 18:04:53 +02:00
Adrian Greeve d053310d6a Merge branch 'MDL-65671-master' of git://github.com/lameze/moodle 2019-06-13 18:04:49 +02:00
Shamim Rezaie a7174ddfec MDL-65666 mod_forum: Highlight unread posts count in the discussion list 2019-06-14 01:26:04 +10:00
Shamim Rezaie be1400c63c MDL-65786 mod_forum: mark posts as read when they are read 2019-06-13 23:33:35 +10:00
Mathew May 4828648258 MDL-65770 tool_policy: Add Moodle changes for guest policy popup 2019-06-13 13:25:35 +08:00
Andrew Nicols 29c442c558 MDL-65646 core: Move component storage to json 2019-06-13 12:26:00 +08:00
Mathew May fcdc822350 MDL-65770 tool_policy: Update guest policy popup 2019-06-13 11:52:55 +08:00
Jun Pataleta e46dd6d9e6 MDL-65814 block_timeline: Bring back item counts for action events 2019-06-13 11:31:35 +08:00
Peter 60eaa9bcb0 MDL-55997 core_reports: modify user stats query to fix duplicate rows 2019-06-13 07:39:03 +08:00
Eloy Lafuente (stronk7) f568841675 Merge branch 'MDL-64484' of https://github.com/paulholden/moodle 2019-06-12 19:43:52 +02:00
Shamim Rezaie e452c97f27 MDL-65786 mod_forum: re-adding the unread count to the social format 2019-06-13 03:13:19 +10:00
Eric Merrill 0f7f05379c MDL-65904 theme: Compile fallback css in the correct order 2019-06-12 13:05:40 -04:00
Paul Holden 52cf92277d MDL-64484 user: cross-DB compatible profile field ordering. 2019-06-12 16:55:44 +01:00
Tim Hunt 376b7fb857 MDL-65492 cache admin: make it easier to purge a cache repeatedly
This can be a big time-saver, e.g. during development.
2019-06-12 13:23:06 +01:00
Tim Hunt 1baf3af3e8 MDL-65492 cache admin: make the code easier to understand 2019-06-12 13:23:03 +01:00
Shamim Rezaie 24bc206b75 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-12 19:49:52 +10:00
Mark Johnson 288d6ebb54 MDL-65369 events: Include changed course settings in course_updated 2019-06-12 09:54:30 +01:00
Simey Lameze e5ab472810 MDL-65671 calendar: add event listener to three month block 2019-06-12 15:54:25 +08:00
Simey Lameze fed1cc738d MDL-65671 calendar: tidy up calendar header 2019-06-12 15:54:24 +08:00
Simey Lameze 859bc931d8 MDL-65671 calendar: remove course selector label from exporters 2019-06-12 15:54:24 +08:00
Simey Lameze 4cc9d7c83a MDL-65671 calendar: add listener to day link in month view 2019-06-12 15:54:12 +08:00
Jun Pataleta 5b8b2ca465 Merge branch 'MDL-65803-master' of git://github.com/peterRd/moodle 2019-06-12 13:58:51 +08:00
Mathew May d712127f34 MDL-65758 library: Add Moodle modifications for Mustache 2019-06-12 13:34:27 +08:00
Andrew Nicols 92198c5b9e Merge branch 'MDL-65703-master' of git://github.com/lameze/moodle 2019-06-12 12:33:34 +08:00
Peter 39498b6833 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:10:50 +08:00
Mathew May a5410e13bf MDL-65758 library: Update mustache.js to 3.0.1 2019-06-12 10:58:58 +08:00
Andrew Nicols e36bbb4c24 Merge branch 'MDL-65829_master' of git://github.com/dmonllao/moodle 2019-06-12 10:20:15 +08:00
Andrew Nicols 1967e07175 Merge branch 'MDL-65754' of git://github.com/Chocolate-lightning/moodle 2019-06-12 09:45:36 +08:00
Mathew May e2ffa09fdc MDL-65754 mod_feedback: Remove unused v1 recaptcha 2019-06-12 09:38:39 +08:00
Mathew May 6cefd826e5 MDL-65754 auth_email: Remove unused v1 recaptcha 2019-06-12 09:35:54 +08:00
Mathew May 8048c981b9 MDL-65752 lib: Update html2text to 4.2.1 2019-06-12 08:58:26 +08:00
Andrew Nicols e10b3106f4 Merge branch 'MDL-64484' of https://github.com/paulholden/moodle 2019-06-12 08:56:28 +08:00
Andrew Nicols 871679c9e0 Merge branch 'MDL-65509-master' of git://github.com/rezaies/moodle 2019-06-12 08:47:55 +08:00
Mathew May 90ca6fad47 MDL-65744 lib: Modify minify test to check properly 2019-06-12 07:33:22 +08:00
sam marshall c207289127 MDL-65806 Search: Solr does not find words in italic 2019-06-11 16:40:15 +01:00
David Mudrák 1ecf0397bb 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:53:23 +02:00
Adrian Greeve 205f0cedaf Merge branch 'MDL-63878-master' of git://github.com/damyon/moodle 2019-06-11 13:30:04 +08:00
Mathew May 8ae5a16743 MDL-65744 lib: Update minify pathconverter lib 2019-06-11 13:08:29 +08:00
Mathew May a62074ba7d MDL-65744 lib: Update minify minify lib 2019-06-11 13:06:19 +08:00
Andrew Nicols 6b4a254d74 Merge branch 'MDL-65779-master' of git://github.com/peterRd/moodle 2019-06-11 12:07:40 +08:00
Jun Pataleta 79edcde3f6 Merge branch 'MDL-7339-master' of git://github.com/mickhawkins/moodle 2019-06-11 11:49:36 +08:00
Brendan Heywood 1fc0c4bd4e MDL-58439 admin: Ignore guest logins for all admin pages 2019-06-11 13:44:58 +10:00
Andrew Nicols ba0426176b Merge branch 'MDL-65817' of git://github.com/stronk7/moodle 2019-06-11 11:05:03 +08:00
Mathew May a98a2b2444 MDL-65753 lib: Update Markdown to 1.8.0 2019-06-11 10:56:10 +08:00
Andrew Nicols c005b2f7a4 Merge branch 'MDL-65183-MOODLE-master' of https://github.com/kristian-94/moodle 2019-06-11 10:34:13 +08:00
Andrew Nicols 61b0df5716 Merge branch 'MDL-65754' of git://github.com/Chocolate-lightning/moodle 2019-06-11 10:15:43 +08:00
Adrian Greeve 7223ef7979 Merge branch 'MDL-64743-master' of git://github.com/abias/moodle 2019-06-11 10:05:39 +08:00
Michael Hawkins 76d0192e0b MDL-7339 admin: Replaced "open to google" references to be more generic
AMOS BEGIN
 MOV [configopentogoogle,admin],[configopentowebcrawlers,admin]
 MOV [opentogoogle,admin],[opentowebcrawlers,admin]
 MOV [check_google_details,report_security],[check_crawlers_details,report_security]
 MOV [check_google_error,report_security],[check_crawlers_error,report_security]
 MOV [check_google_info,report_security],[check_crawlers_info,report_security]
 MOV [check_google_name,report_security],[check_crawlers_name,report_security]
 MOV [check_google_ok,report_security],[check_crawlers_ok,report_security]
AMOS END
2019-06-11 10:04:01 +08:00
Andrew Nicols 94bce858b4 Merge branch 'MDL-65746' of git://github.com/Chocolate-lightning/moodle 2019-06-11 09:49:18 +08:00
Adrian Greeve 192ad8dcc8 Merge branch 'MDL-65208-cli-upgrade-is-pending' of https://github.com/brendanheywood/moodle 2019-06-11 09:42:08 +08:00
Jun Pataleta 68c723efdf Merge branch 'MDL-65336-master' of git://github.com/aanabit/moodle 2019-06-10 19:37:25 +08:00
Jun Pataleta 34129ea9bd Merge branch 'MDL-55592-master' of git://github.com/damyon/moodle 2019-06-10 15:25:12 +08:00
Andrew Nicols 10dba71fe3 Merge branch 'MDL-58268-master' of git://github.com/cescobedo/moodle 2019-06-10 15:03:05 +08:00
Andrew Nicols cd653ba77c Merge branch 'm38_MDL-61038_Fix_uuid_extensions_usage_v2' of https://github.com/scara/moodle 2019-06-10 14:05:36 +08:00
Adrian Greeve 5b9027a83a Merge branch 'MDL-65438-master' of git://github.com/bmbrands/moodle 2019-06-10 13:56:51 +08:00
Adrian Greeve 317950fa65 Merge branch 'MDL-65639_master' of git://github.com/dmonllao/moodle 2019-06-10 13:10:02 +08:00
Simey Lameze dbccdae8f5 MDL-65671 calendar: add the calendar view selector 2019-06-10 13:09:57 +08:00
Adrian Greeve 27e2aba473 Merge branch 'MDL-65782-master' of git://github.com/marinaglancy/moodle 2019-06-10 11:11:44 +08:00
Mathew May b71e734b27 MDL-65746 libraries: Remove pear/RADIUS lib 2019-06-10 08:28:43 +08:00
Matteo Scaramuccia c7321899c9 MDL-61038 setuplib: Fixed PECL UUID extension support
generate_uuid() has been refactored into \core\uuid::generate()
2019-06-09 23:24:26 +02:00
Paul Holden 03098df6ef MDL-64484 user: show full profile field name in filter element. 2019-06-07 14:04:32 +01:00
Amaia Anabitarte f0e8f0a5b8 MDL-65336 core_message: New muted conversation generator and selectors 2019-06-07 10:38:49 +02:00
Amaia Anabitarte 8c933bde87 MDL-65336 core_message: Behat tests for mute/unmute conversations 2019-06-07 10:38:49 +02:00
Damyon Wiese 574b2f1f11 MDL-63878 assign: Show download feedback links
In the grading interface provide a link to download the generated pdf
containing the feedback for this submission attempt.
2019-06-07 10:39:41 +08:00
AMOS bot 8cffb3fe56 Automatically generated installer lang files 2019-06-07 00:09:38 +00:00
Kristian Ringer 6c97045e5e MDL-65183 block_timeline: escape newline characters 2019-06-07 09:37:34 +10:00
Dmitrii Metelkin 657cc33be9 MDL-65622 core: add grade_item_created event 2019-06-07 07:38:41 +10:00
Eloy Lafuente (stronk7) 9954f5391d 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:51:01 +02:00
David Monllaó 692d691da5 MDL-65639 analytics: Rewording time-splitting methods 2019-06-06 19:07:55 +02:00
David Monllaó 5045c4d491 MDL-65639 tool_analytics: Reworded language strings
Some language strings have been reworded to clarify functionalities.

AMOS BEGIN
  MOV [getpredictionsresults,tool_analytics],[scheduledanalysisresults,tool_analytics]
  CPY [getpredictionsresultscli,tool_analytics],[scheduledanalysisresultscli,tool_analytics]
AMOS END
2019-06-06 19:07:55 +02:00
David Monllaó 21cf3ec8d4 MDL-65639 analytics: From time-splitting method to analysis interval
This change only affects the Moodle UI.
2019-06-06 19:07:55 +02:00
David Monllaó c182a67fa0 MDL-65829 analytics: Accept enrol start time after analysis time 2019-06-06 19:05:48 +02:00
Eloy Lafuente (stronk7) f3507273e9 weekly release 3.8dev 2019-06-06 16:46:31 +02:00
Eloy Lafuente (stronk7) 971b4c11ce NOBUG: Fixed SVG browser compatibility 2019-06-06 16:46:29 +02:00
Eloy Lafuente (stronk7) bb14c03ffe Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-06-06 16:46:28 +02:00
Eloy Lafuente (stronk7) 11cdea3fad MDL-65201 backup: amend tests to apply for the final agreed criteria
backup nextstarttime ASC
course timemodified DESC
2019-06-06 11:16:01 +02:00
Eloy Lafuente (stronk7) bcd4862e84 MDL-65201 backup: fix wrong sorting that was missed on integration 2019-06-06 10:08:02 +02:00
Damyon Wiese 018266f6f3 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:26:28 +08:00
Damyon Wiese f5348ae301 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:26:51 +08:00
Jun Pataleta 4e1ee0bbb5 Merge branch 'MDL-34498-master' of git://github.com/damyon/moodle 2019-06-06 10:50:56 +08:00
Damyon Wiese 00fd749041 MDL-34498 session: Do not extend expired session
After showing a warning, if the "extend session" button is clicked too late,
tell them their session is expired so they can collect any unsaved data in the page.
2019-06-06 09:35:35 +08:00
Damyon Wiese ceacef1bd8 MDL-34498 grade: rubric session timeout
Allow a longer session timeout when editing a grading rubric form.
2019-06-06 09:31:07 +08:00
Damyon Wiese 7aeeb44463 MDL-34498 session: Add a checker to warn before session expiry
Replaces old yui module checknet.
2019-06-06 09:31:01 +08:00
Eloy Lafuente (stronk7) ba2473e4e4 weekly release 3.8dev 2019-06-06 09:06:22 +08:00
AMOS bot 6438d80ce9 Automatically generated installer lang files 2019-06-06 09:06:21 +08:00
AMOS bot b91f66b3c6 Automatically generated installer lang files 2019-06-06 09:06:21 +08:00
AMOS bot 5e7d561393 Automatically generated installer lang files 2019-06-06 09:06:21 +08:00
AMOS bot d89de5e15e Automatically generated installer lang files 2019-06-06 00:08:10 +00:00
Eloy Lafuente (stronk7) e867ffd689 Merge branch 'MDL-65344_master' of git://github.com/markn86/moodle 2019-06-05 21:06:15 +02:00
Eloy Lafuente (stronk7) 7e573716bf Merge branch 'MDL-65421-master' of https://github.com/lucaboesch/moodle 2019-06-05 20:19:11 +02:00
Eloy Lafuente (stronk7) 433968283a Merge branch 'master_MDL-65201_Automated_backup_course_ordering' of https://github.com/mattporritt/moodle 2019-06-05 16:16:39 +02:00
Jun Pataleta 7068d7be88 Merge branch 'MDL-65787-master' of git://github.com/sarjona/moodle 2019-06-05 17:24:27 +08:00
Sara Arjona 4221e36b16 MDL-65787 badges: fix warning count() with PHP 7.2 2019-06-05 11:02:53 +02:00
Shamim Rezaie a875f3f513 MDL-65509 output: use translated strings when showing a fatal error 2019-06-05 18:44:46 +10:00
Luca Bösch d60d3b9ec6 MDL-65421 core_grades: Move here icon width. 2019-06-05 10:39:33 +02:00
Jun Pataleta 9e5dc79f38 Merge branch 'MDL-63643-master' of git://github.com/lameze/moodle 2019-06-05 15:43:35 +08:00
Shamim Rezaie dc468ac523 MDL-65509 javascript: Make core dialogues translatable 2019-06-05 17:36:02 +10:00
Sara Arjona 020e7b9447 Merge branch 'MDL-65777-master' of git://github.com/mihailges/moodle 2019-06-05 09:00:40 +02:00
Mihail Geshoski 415133885c MDL-65777 assignment: Respect user full name in downloaded submissions 2019-06-05 11:12:57 +08:00
Adrian Greeve 6bda2498d6 Merge branch 'MDL-65731' of https://github.com/timhunt/moodle 2019-06-05 10:39:29 +08:00
AMOS bot 22ce5f9e1c Automatically generated installer lang files 2019-06-05 00:08:11 +00:00
Matt Porritt c2716719a6 MDL-65201 Backup: Automated backup course ordering
This patch adds sort ordering to the way courses are
automatically backed up. It sets the following preference:

Backup courses that do not have an entry in backup_courses first,
as they are likely new and never been backed up.
Backup courses that have the oldest next start time in backup_courses.
Give preference to most recently modified courses over other courses.
2019-06-04 23:09:57 +00:00
Eloy Lafuente (stronk7) 28e6fa3885 Merge branch 'MDL-65510_master' of https://github.com/t-schroeder/moodle 2019-06-05 00:06:34 +02:00
Eloy Lafuente (stronk7) ceee04cfb7 Merge branch 'MDL-65689-master' of git://github.com/rezaies/moodle 2019-06-04 23:31:51 +02:00
Eloy Lafuente (stronk7) 19e9ba22b6 Merge branch 'MDL-65578-master' of git://github.com/peterRd/moodle 2019-06-04 23:29:12 +02:00
Eloy Lafuente (stronk7) 1be6251b14 Merge branch 'MDL-65576-master' of git://github.com/andrewnicols/moodle 2019-06-04 21:39:01 +02:00
Eloy Lafuente (stronk7) bf5ed19cb4 Merge branch 'm38_MDL-65686_Fix_Incorrect_Function_Call' of https://github.com/scara/moodle 2019-06-04 20:04:41 +02:00
Simey Lameze 6b2fca2f3d MDL-65703 calendar: do not add course param for site calendar 2019-06-04 19:33:45 +08:00
Andreas Grabs 5d384053b0 MDL-65703 core_calendar: fix user event type filtering logic 2019-06-04 19:33:22 +08:00
Marina Glancy 5ecbc5d9f7 MDL-65782 roles: allow several roles with user/frontpage archetype 2019-06-04 11:49:23 +02:00
Mathew May dd287e7df0 MDL-65658 mod_forum: Update the group image titles 2019-06-04 11:48:17 +02:00
Jun Pataleta 34b6079e6b Merge branch 'MDL-65696-MOODLE-master' of https://github.com/kristian-94/moodle 2019-06-04 16:55:06 +08:00
Jun Pataleta 6058e44ff8 Merge branch 'MDL-65810' of git://github.com/stronk7/moodle 2019-06-04 15:25:18 +08:00
Jun Pataleta a271b8ce20 Merge branch 'MDL-62835-master-1' of git://github.com/mihailges/moodle 2019-06-04 14:18:21 +08:00
Mihail Geshoski 03e9b0766f MDL-62835 resource: Display description for book, lesson and imscp 2019-06-04 13:26:28 +08:00
Mathew May 061524de15 MDL-65754 libraries: Remove unused v1 recaptcha 2019-06-04 12:58:19 +08:00
Peter bbc722366a MDL-65779 mod_forum: Add privatereplies to the backup process 2019-06-04 12:20:24 +08:00
Andrew Nicols a2f81b201e MDL-65656 analytics: Stop covering memory-intensive tests 2019-06-04 10:16:50 +08:00
AMOS bot a245490ef5 Automatically generated installer lang files 2019-06-04 00:08:07 +00:00
Tom Dickman 5f59a4c063 MDL-64901 block_myoverview: admin settings to control available layouts
Added an admin setting which allows the administrator to set the available layouts for users and which
defaults to all layouts being available, or the card layout only if no layouts are enabled.
If only one layout is enabled, the dropdown `nav-display-selector` template will not be displayed as
it can no longer be utilised.
If the user preference is set to a layout that is no longer available, this is ignored and the first
available layout defaulted to.
2019-06-04 08:34:52 +10:00
Eloy Lafuente (stronk7) 6f62aa2d2b Merge branch 'MDL-63240-master' of https://github.com/Kathrin84/moodle 2019-06-03 17:56:51 +02:00
Eloy Lafuente (stronk7) cbf768ba89 Merge branch 'MDL-65660-master' of git://github.com/peterRd/moodle 2019-06-03 17:48:04 +02:00
Eloy Lafuente (stronk7) 944df31cc0 Merge branch 'MDL-65675-master' of git://github.com/andrewnicols/moodle 2019-06-03 17:37:13 +02:00
Sara Arjona 87d4624b1f Merge branch 'MDL-65658-master' of git://github.com/Chocolate-lightning/moodle 2019-06-03 12:33:16 +02:00
Brendan Heywood 8918cc75c1 MDL-65208 admin: Add upgrade cli --is-pending option 2019-06-03 14:33:07 +10:00
AMOS bot 44f8551903 Automatically generated installer lang files 2019-06-03 00:08:10 +00:00
Kristian Ringer 2620bc973b MDL-65696 assign: Fix width of editpdf comments 2019-06-03 09:30:58 +10:00
cescobedo e094614d7c MDL-58268 enrol_ldap: Remove enrol/ldap/cli/sync deprecated in 3.3 2019-05-31 09:40:47 +02:00
Andrew Nicols 4b6e032890 MDL-65578 forum: Hide action menu where no actions exist 2019-05-31 12:43:22 +08:00
Mathew May c939a043bf 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:14:20 +08:00
Andrew Nicols 17f0579797 MDL-65576 behat: Reset Selenium driver between scorm scenarios 2019-05-31 08:08:26 +08:00
Peter 92ba55ee4f 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:06:32 +08:00
Eloy Lafuente (stronk7) 46855d025e MDL-64794 tcpdf: Bump to tcpdf 6.2.26 2019-05-30 23:47:54 +02:00
Matteo Scaramuccia 69a1afd9b9 MDL-65686 setuplib: Fix missing round brackets 2019-05-30 22:41:37 +02:00
Eloy Lafuente (stronk7) d8ddd509e8 MDL-65810 behat: Update master to use 3.38.0 behat extension tag 2019-05-30 20:48:26 +02:00
Eloy Lafuente (stronk7) 29c395187f weekly release 3.8dev 2019-05-30 12:18:18 +02:00
Eloy Lafuente (stronk7) 472d152fcf Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-05-30 12:18:15 +02:00
Tim Hunt 12eb2c2bf4 MDL-65731 quiz manual grading: fix ambiguous order by idnumber 2019-05-29 16:51:41 +01:00
Kathrin Osswald ca0e331cde MDL-63240 theme Boost: Removed z-indexes for border styling in navdrawer 2019-05-29 17:46:48 +02:00
Marina Glancy ff51af495f MDL-65726 core_roles: allow to create roles in install.php 2019-05-29 10:48:51 +02:00
Damyon Wiese e14f112bd0 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:22 +08:00
Adrian Greeve c0542b8a08 Merge branch 'MDL-57729-master' of git://github.com/mihailges/moodle 2019-05-29 11:39:38 +08:00
Adrian Greeve 2ff6a2a58b Merge branch 'MDL-65726-master' of git://github.com/marinaglancy/moodle 2019-05-29 11:06:30 +08:00
Mihail Geshoski 1fc5c588a4 MDL-57729 enrol_lti: Escape the property values of the xpath elements 2019-05-29 09:55:23 +08:00
Jake Dallimore ab8c94ea0d Merge branch 'MDL-65326-master' of https://github.com/dmitriim/moodle 2019-05-29 09:27:17 +08:00
AMOS bot b2602dcd39 Automatically generated installer lang files 2019-05-29 00:09:11 +00:00
Marina Glancy f2c00a6f22 MDL-65726 role: do not fail unittest if plugins create their roles 2019-05-28 19:06:35 +02:00
Tim Schroeder c07e039c84 MDL-65510 messages: fixed defines not being used in code 2019-05-28 13:46:23 +02:00
Adrian Greeve c970eef862 Merge branch 'MDL-65705-master' of git://github.com/sarjona/moodle 2019-05-28 16:27:29 +08:00
Sara Arjona 39f4caf351 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:23:35 +02:00
Jake Dallimore 4f8e82111e Merge branch 'MDL-65657-int-fix-1' of https://github.com/ryanwyllie/moodle 2019-05-28 14:05:32 +08:00
Ryan Wyllie 95a445b360 MDL-65657 message: reduce message poll timer for behat tests 2019-05-28 13:33:31 +08:00
Jun Pataleta 83cdcd99f2 Merge branch 'MDL-65697-master' of git://github.com/lameze/moodle 2019-05-28 13:31:41 +08:00
Jake Dallimore 4c6b2bea57 Merge branch 'MDL-65692-master' of git://github.com/abgreeve/moodle 2019-05-28 13:26:44 +08:00
Simey Lameze b24ac2c47f MDL-63643 core_users: add behat for users last IP filtering 2019-05-28 11:12:36 +08:00
Simey Lameze 1fefa3ce7a MDL-63643 core_test: make possible to change users last ip field 2019-05-28 11:11:29 +08:00
Dmitrii Metelkin 2c7636490a MDL-65326 backup: check caps exist before assigning 2019-05-28 11:09:51 +10:00
Simey Lameze 9c576559ea MDL-63643 core_user: allow filter by last ip address 2019-05-28 06:53:30 +08:00
Jun Pataleta 70eaad836e Merge branch 'MDL-65606' of https://github.com/Chocolate-lightning/moodle 2019-05-27 16:27:58 +08:00
Jake Dallimore 30e194757f Merge branch 'MDL-64330-master' of git://github.com/andrewnicols/moodle 2019-05-27 15:20:31 +08:00
Andrew Nicols 281474a5fe MDL-64330 course: Correct course test assumptions 2019-05-27 15:07:47 +08:00
Adrian Greeve c583718448 Merge branch 'MDL-65699-master' of http://github.com/dravek/moodle 2019-05-27 14:52:13 +08:00
Andrew Nicols 412eb4cdf6 Merge branch 'MDL-65708-master' of git://github.com/Chocolate-lightning/moodle 2019-05-27 14:46:41 +08:00
Mathew May 2ddd7605d8 MDL-65606 mod_data: Add approvalstatusclass to template 2019-05-27 13:38:25 +08:00
Jake Dallimore 3d9ffc97c6 Merge branch 'MDL-65657-master' of https://github.com/ryanwyllie/moodle 2019-05-27 13:22:45 +08:00
Mathew May 4028ffd8f6 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:22:35 +08:00
Andrew Nicols 9ba09a1244 MDL-65675 forum: Remove duplicate Re in subjects 2019-05-27 12:21:30 +08:00
Ryan Wyllie 8be24909bc MDL-65657 message: revert polling timeout back to old algorithm 2019-05-27 11:57:22 +08:00
Adrian Greeve 6a4076fa2b Merge branch 'MDL-64523-master' of git://github.com/rezaies/moodle 2019-05-27 10:48:06 +08:00
Andrew Nicols fb33169a05 Merge branch 'MDL-65680_master' of git://github.com/dmonllao/moodle 2019-05-27 08:42:40 +08:00
AMOS bot 29ae25e0c3 Automatically generated installer lang files 2019-05-25 00:08:26 +00:00
Shamim Rezaie db632485ab MDL-65689 task: fix typo in help string 2019-05-25 04:57:22 +10:00
Shamim Rezaie f12bc65f1d 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:23:41 +10:00
Shamim Rezaie b1078b18c8 MDL-64523 core_access: Fix js racing issue when overriding permissions 2019-05-25 04:23:33 +10:00
Shamim Rezaie 6786f6b6cc MDL-64523 core_access: Improve the title of the delete role links 2019-05-25 04:08:56 +10:00
Sara Arjona d68718a7db Merge branch 'MDL-65060-master' of git://github.com/aanabit/moodle 2019-05-24 12:34:23 +02:00
Amaia Anabitarte 6d96a3dc33 MDL-65060 core_message: Delete messages behat test 2019-05-24 12:16:37 +02:00
David Monllaó 73f8085f3f MDL-65680 analytics: Fix random failure on slow test environments 2019-05-24 10:59:13 +02:00
AMOS bot a6d8aa903f Automatically generated installer lang files 2019-05-24 00:15:06 +00:00
Simey Lameze e72e711b82 MDL-65697 qtype_missingtype: include missing class 2019-05-24 07:01:24 +08:00
Eloy Lafuente (stronk7) 383aec8a01 weekly on-sync release 3.8dev 2019-05-23 20:36:19 +02:00
Eloy Lafuente (stronk7) 54d03e1df3 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2019-05-23 20:36:16 +02:00
David Matamoros 79b9f905b1 MDL-65699 core_calendar: Check string exists for event types 2019-05-23 17:21:27 +02:00
Amaia Anabitarte 8922d78b75 MDL-65060 core_message: Group message data generator 2019-05-23 15:30:12 +02:00
Eloy Lafuente (stronk7) 22ae44f322 Merge branch 'MDL-65695-master' of git://github.com/andrewnicols/moodle 2019-05-23 10:48:25 +02:00
David Mudrák 07839e6af3 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 10:45:55 +02:00
Adrian Greeve 3ef9c2dcf0 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:22:13 +08:00
Andrew Nicols 4655adf8f3 MDL-65695 forum: Bump digest time to next day if in past 2019-05-23 14:22:01 +08:00
Jun Pataleta 9e7100cfd1 Merge branch 'MDL-55197' of https://github.com/timhunt/moodle 2019-05-23 11:58:14 +08:00
Andrew Nicols a37fa5c443 Merge branch 'MDL-59650-master' of git://github.com/lameze/moodle 2019-05-23 10:19:55 +08:00
Adrian Greeve a8d20b0fa9 Merge branch 'MDL-65549_master' of git://github.com/dmonllao/moodle 2019-05-23 10:09:09 +08:00
Adrian Greeve c37a446ac4 Merge branch 'MDL-65634_master' of git://github.com/dmonllao/moodle 2019-05-23 09:53:47 +08:00
Andrew Nicols aec03b8c0a Merge branch 'MDL-65654-master' of https://github.com/danielneis/moodle 2019-05-23 09:35:17 +08:00
Adrian Greeve 8dd2b752cd Merge branch 'MDL-64530' of git://github.com/stronk7/moodle 2019-05-23 09:21:59 +08:00
AMOS bot 7503e4b98f Automatically generated installer lang files 2019-05-23 00:12:44 +00:00
Amaia Anabitarte c961389b81 MDL-65060 core_message: Group_message_message_content selector 2019-05-22 18:59:58 +02:00
Ryan Wyllie 2d2dfb6ed9 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:59:58 +02:00
Sara Arjona f78e30fef2 Merge branch 'MDL-65661-master' of git://github.com/peterRd/moodle 2019-05-22 14:57:39 +02:00
Jun Pataleta 10780409b8 Merge branch 'MDL-65636' of https://github.com/timhunt/moodle 2019-05-22 19:36:11 +08:00
Peter 577ccff6c2 MDL-65661 block_myoverview: Truncate category name 2019-05-22 19:30:48 +08:00
Peter bdd3681504 MDL-65661 core_course: Truncate long course names 2019-05-22 19:29:39 +08:00
Tim Hunt 41bf80a69d MDL-55197 filter_multilang: handle 'en' as parent lang better 2019-05-22 11:14:17 +01:00
Tim Hunt 587c0772e6 MDL-55197 filter_multilang: move preg_callback fn into class 2019-05-22 11:07:05 +01:00
Tim Hunt 173377e529 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 11:01:51 +01:00
Adrian Greeve 467af62e35 Merge branch 'MDL-65067_master' of https://github.com/dmonllao/moodle 2019-05-22 16:29:52 +08:00
Adrian Greeve bcc1ec54d2 Merge branch 'MDL-64784' of https://github.com/paulholden/moodle 2019-05-22 14:48:28 +08:00
Andrew Nicols 97d791bf3a Merge branch 'MDL-65590-master' of git://github.com/rezaies/moodle 2019-05-22 13:52:14 +08:00
Jun Pataleta f8a6990a46 Merge branch 'MDL-65591-master' of git://github.com/rezaies/moodle 2019-05-22 11:06:31 +08:00
Andrew Nicols 6598c0bce0 Merge branch 'MDL-65630-master' of git://github.com/rezaies/moodle 2019-05-22 09:43:13 +08:00
David Monllaó 8d19264bc0 MDL-65549 tool_analytics: Reduce the context name length in models_view 2019-05-21 17:26:22 +02:00
David Monllaó ed1a2e8a54 MDL-65634 analytics: Discard late and early student enrolments 2019-05-21 17:24:49 +02:00
Sara Arjona c13d1d2518 Merge branch 'MDL-65605-master' of git://github.com/rezaies/moodle 2019-05-21 13:47:31 +02:00
Jun Pataleta e3e5c1f659 Merge branch 'MDL-65274-master' of git://github.com/jleyva/moodle 2019-05-21 18:49:33 +08:00
Jun Pataleta 1525b9626e Merge branch 'MDL-60407-master' of git://github.com/vmdef/moodle 2019-05-21 18:44:52 +08:00
Simey Lameze 2b815157c9 MDL-59650 core_calendar: remove limit from calendar UI 2019-05-21 15:22:13 +08:00
Simey Lameze e099259a46 MDL-59650 core_calendar: remove limit from event exporter 2019-05-21 15:22:09 +08:00
Adrian Greeve 2c0ac767c6 Merge branch 'MDL-65572-master' of git://github.com/damyon/moodle 2019-05-21 15:19:29 +08:00
Andrew Nicols 5b16520936 Merge branch 'MDL-65644' of git://github.com/stronk7/moodle 2019-05-21 12:49:32 +08:00
Shamim Rezaie 26206ddc78 MDL-65590 tool_customlang: Escape html on the standard text field 2019-05-21 14:20:16 +10:00
Adrian Greeve 04de0e85a0 Merge branch 'MDL-65655-37-forumcroninactiveusers' of git://github.com/mudrd8mz/moodle 2019-05-21 11:42:13 +08:00
AMOS bot f2f1dcb56e Automatically generated installer lang files 2019-05-21 00:12:47 +00:00
AMOS bot 21637e54c9 Automatically generated installer lang files 2019-05-21 00:12:47 +00:00
Eloy Lafuente (stronk7) a8b2f03d8b 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:24:11 +02:00
Eloy Lafuente (stronk7) 3572a25cc3 MDL-65644 upgrade: add 3.7.0 separation line to all upgrade scripts 2019-05-20 19:35:05 +02:00
Shamim Rezaie 1806f70cbb MDL-65591 tool_customlang: Re-adding the save buttons at the bottom 2019-05-21 02:20:20 +10:00
Daniel Neis Araujo 3cbec0b81a MDL-65654 tool_uploaduser: Fix undefined variable warning 2019-05-20 12:44:05 -03:00
Juan Leyva ee766461b4 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:50:46 +02:00
Shamim Rezaie c7ac83ca0a MDL-65605 core_question: Fix the issue when get_draft_files returns nul 2019-05-20 23:44:02 +10:00
Shamim Rezaie a9d62c4513 MDL-65605 mod_lesson: Fix the issue when get_draft_files returns null 2019-05-20 23:43:59 +10:00
Shamim Rezaie 80c360d573 MDL-65630 mod_quiz: Allow redo within an attempt with random questions 2019-05-20 23:10:30 +10:00
Shamim Rezaie 2e68255609 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:10:11 +10:00
Andrew Nicols 8053b88145 Merge branch 'MDL-65643' of git://github.com/stronk7/moodle 2019-05-20 14:24:49 +08:00
Damyon Wiese e7f9ae50e5 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:12:40 +08:00
Eloy Lafuente (stronk7) 795304597f MDL-65643 backup: Bump release to 3.8 2019-05-19 21:11:05 +02:00
Eloy Lafuente (stronk7) a866c5c238 weekly back-to-dev release 3.8dev 2019-05-19 11:24:14 +02:00
Eloy Lafuente (stronk7) 374c1763ba NOBUG: Change travis.yml back to master 2019-05-19 11:18:34 +02:00
David Monllaó a9db4f903d MDL-65067 tool_analytics: Limit update_end_date to format_weeks 2019-05-17 16:57:46 +02:00
Didier 'OdyX' Raboud 62e1b79cb0 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-17 13:24:47 +02:00
Víctor Déniz Falcón 8dd1ebaaba 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-14 01:06:00 +01:00
Bas Brands 66bd0f6c2a MDL-65438 core_themes: allow themes to change the css url
Themes that have the function theme_themename_alter_css_urls() in lib.php
can change the css url from theme/styles.php to a local script like
theme/themename/css.php. The local css.php file can be used to serve
various versions of the theme css, for example versions compiled using
different scss variables.
2019-05-08 15:20:53 +02:00
Mark Nelson 57532ad680 MDL-65344 core_message: deprecate get_individual_conversations_between_users() 2019-04-30 10:35:55 +08:00
Paul Holden 821614d87c MDL-64784 core: update tablelib tests for explicit sort direction. 2019-04-05 11:53:33 +01:00
Paul Holden 3c92b1d4e5 MDL-64784 core: consistent column sort direction in flexible_table. 2019-04-04 16:08:26 +01:00
Michael Aherne bf93e13abe MDL-65096 docs: Use static return type in persistent 2019-03-18 10:30:48 +00:00
Alexander Bias 8f68ec5ae3 MDL-64743 block_myoverview: Remove icons in context menu 2019-03-11 13:27:53 +01:00
5485 changed files with 344734 additions and 213354 deletions
+8 -6
View File
@@ -4,7 +4,6 @@
node_modules/
vendor/
admin/tool/policy/amd/src/jquery-eu-cookie-law-popup.js
admin/tool/usertours/amd/src/tour.js
auth/cas/CAS/
cache/stores/mongodb/MongoDB/
enrol/lti/ims-blti/
@@ -20,15 +19,12 @@ lib/mlbackend/php/phpml/
lib/adodb/
lib/bennu/
lib/evalmath/
lib/lessphp/
lib/phpexcel/
lib/phpspreadsheet/
lib/google/
lib/htmlpurifier/
lib/jabber/
lib/minify/matthiasmullie-minify/
lib/minify/matthiasmullie-pathconverter/
lib/pear/Auth/RADIUS.php
lib/pear/Crypt/CHAP.php
lib/pear/HTML/Common.php
lib/pear/HTML/QuickForm.php
lib/pear/HTML/QuickForm/
@@ -42,7 +38,6 @@ lib/yuilib/gallery/
lib/jquery/
lib/html2text/
lib/markdown/
lib/recaptchalib.php
lib/xhprof/
lib/horde/
lib/requirejs/
@@ -65,6 +60,10 @@ lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
lib/php-jwt/
lib/babel-polyfill/
lib/mdn-polyfills/
lib/emoji-data/
lib/h5p/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
@@ -78,10 +77,13 @@ theme/boost/amd/src/button.js
theme/boost/amd/src/carousel.js
theme/boost/amd/src/collapse.js
theme/boost/amd/src/dropdown.js
theme/boost/amd/src/index.js
theme/boost/amd/src/modal.js
theme/boost/amd/src/popover.js
theme/boost/amd/src/sanitizer.js
theme/boost/amd/src/scrollspy.js
theme/boost/amd/src/tab.js
theme/boost/amd/src/toast.js
theme/boost/amd/src/tooltip.js
theme/boost/amd/src/util.js
theme/boost/amd/src/tether.js
+37 -2
View File
@@ -1,5 +1,6 @@
{
'plugins': [
'babel',
'promise',
],
'env': {
@@ -203,11 +204,45 @@
}
},
{
files: ["**/amd/src/*.js"],
files: ["**/amd/src/*.js", "**/amd/src/**/*.js", "Gruntfile*.js", "babel-plugin-add-module-to-define.js"],
// We support es6 now. Woot!
env: {
es6: true
},
// We're using babel transpiling so use their parser
// for linting.
parser: 'babel-eslint',
// Check AMD with some slightly stricter rules.
rules: {
'no-unused-vars': 'error',
'no-implicit-globals': 'error'
'no-implicit-globals': 'error',
// Disable all of the rules that have babel versions.
'new-cap': 'off',
// Not using this rule for the time being because it isn't
// compatible with jQuery and ES6.
'no-invalid-this': 'off',
'object-curly-spacing': 'off',
'quotes': 'off',
'semi': 'off',
'no-unused-expressions': 'off',
// Enable all of the babel version of these rules.
'babel/new-cap': ['warn', { 'properties': false }],
// Not using this rule for the time being because it isn't
// compatible with jQuery and ES6.
'babel/no-invalid-this': 'off',
'babel/object-curly-spacing': 'warn',
// This is off in the original style int.
'babel/quotes': 'off',
'babel/semi': 'error',
'babel/no-unused-expressions': 'error',
// === Promises ===
// We have Promise now that we're using ES6.
'promise/no-native': 'off',
'promise/avoid-new': 'off'
},
parserOptions: {
'ecmaVersion': 9,
'sourceType': 'module'
}
}
]
+2
View File
@@ -0,0 +1,2 @@
**/amd/**
/*.js
+1
View File
@@ -0,0 +1 @@
v8.16.1
+8 -6
View File
@@ -5,7 +5,6 @@ theme/classic/style/moodle.css
node_modules/
vendor/
admin/tool/policy/amd/src/jquery-eu-cookie-law-popup.js
admin/tool/usertours/amd/src/tour.js
auth/cas/CAS/
cache/stores/mongodb/MongoDB/
enrol/lti/ims-blti/
@@ -21,15 +20,12 @@ lib/mlbackend/php/phpml/
lib/adodb/
lib/bennu/
lib/evalmath/
lib/lessphp/
lib/phpexcel/
lib/phpspreadsheet/
lib/google/
lib/htmlpurifier/
lib/jabber/
lib/minify/matthiasmullie-minify/
lib/minify/matthiasmullie-pathconverter/
lib/pear/Auth/RADIUS.php
lib/pear/Crypt/CHAP.php
lib/pear/HTML/Common.php
lib/pear/HTML/QuickForm.php
lib/pear/HTML/QuickForm/
@@ -43,7 +39,6 @@ lib/yuilib/gallery/
lib/jquery/
lib/html2text/
lib/markdown/
lib/recaptchalib.php
lib/xhprof/
lib/horde/
lib/requirejs/
@@ -66,6 +61,10 @@ lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
lib/php-jwt/
lib/babel-polyfill/
lib/mdn-polyfills/
lib/emoji-data/
lib/h5p/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
@@ -79,10 +78,13 @@ theme/boost/amd/src/button.js
theme/boost/amd/src/carousel.js
theme/boost/amd/src/collapse.js
theme/boost/amd/src/dropdown.js
theme/boost/amd/src/index.js
theme/boost/amd/src/modal.js
theme/boost/amd/src/popover.js
theme/boost/amd/src/sanitizer.js
theme/boost/amd/src/scrollspy.js
theme/boost/amd/src/tab.js
theme/boost/amd/src/toast.js
theme/boost/amd/src/tooltip.js
theme/boost/amd/src/util.js
theme/boost/amd/src/tether.js
+28 -29
View File
@@ -11,21 +11,18 @@ notifications:
language: php
dist: xenial
services:
- mysql
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 +32,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
@@ -54,32 +48,32 @@ matrix:
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:
# 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 +93,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 +165,19 @@ 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 ;
# 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
@@ -207,7 +206,7 @@ before_script:
# We need the official upstream for comparison
git remote add upstream https://github.com/moodle/moodle.git;
git fetch upstream MOODLE_37_STABLE;
git fetch upstream MOODLE_38_STABLE;
export GIT_PREVIOUS_COMMIT="`git merge-base FETCH_HEAD $TRAVIS_COMMIT`";
export GIT_COMMIT="$TRAVIS_COMMIT";
export UPSTREAM_FETCH_HEAD=`git rev-parse FETCH_HEAD`
+330 -38
View File
@@ -24,6 +24,7 @@
* Grunt configuration
*/
/* eslint-env node */
module.exports = function(grunt) {
var path = require('path'),
tasks = {},
@@ -31,7 +32,10 @@ module.exports = function(grunt) {
async = require('async'),
DOMParser = require('xmldom').DOMParser,
xpath = require('xpath'),
semver = require('semver');
semver = require('semver'),
watchman = require('fb-watchman'),
watchmanClient = new watchman.Client(),
gruntFilePath = process.cwd();
// Verify the node version is new enough.
var expected = semver.validRange(grunt.file.readJSON('package.json').engines.node);
@@ -52,10 +56,23 @@ module.exports = function(grunt) {
}
}
var files = null;
if (grunt.option('files')) {
// Accept a comma separated list of files to process.
files = grunt.option('files').split(',');
}
var inAMD = path.basename(cwd) == 'amd';
// Globbing pattern for matching all AMD JS source files.
var amdSrc = [inAMD ? cwd + '/src/*.js' : '**/amd/src/*.js'];
var amdSrc = [];
if (inAMD) {
amdSrc.push(cwd + "/src/*.js");
amdSrc.push(cwd + "/src/**/*.js");
} else {
amdSrc.push("**/amd/src/*.js");
amdSrc.push("**/amd/src/**/*.js");
}
/**
* Function to generate the destination for the uglify task
@@ -67,10 +84,9 @@ module.exports = function(grunt) {
* @param {String} srcPath the matched src path
* @return {String} The rewritten destination path.
*/
var uglifyRename = function(destPath, srcPath) {
var babelRename = function(destPath, srcPath) {
destPath = srcPath.replace('src', 'build');
destPath = destPath.replace('.js', '.min.js');
destPath = path.resolve(cwd, destPath);
return destPath;
};
@@ -112,18 +128,58 @@ module.exports = function(grunt) {
// 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')},
amd: {src: amdSrc},
amd: {src: files ? files : amdSrc},
// Check YUI module source files.
yui: {src: ['**/yui/src/**/*.js', '!*/**/yui/src/*/meta/*.js']}
yui: {src: files ? files : ['**/yui/src/**/*.js', '!*/**/yui/src/*/meta/*.js']}
},
uglify: {
amd: {
babel: {
options: {
sourceMaps: true,
comments: false,
plugins: [
'transform-es2015-modules-amd-lazy',
'system-import-transformer',
// This plugin modifies the Babel transpiling for "export default"
// so that if it's used then only the exported value is returned
// by the generated AMD module.
//
// It also adds the Moodle plugin name to the AMD module definition
// so that it can be imported as expected in other modules.
path.resolve('babel-plugin-add-module-to-define.js'),
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
['@babel/plugin-proposal-class-properties', {'loose': false}],
'@babel/plugin-proposal-json-strings'
],
presets: [
['minify', {
// This minification plugin needs to be disabled because it breaks the
// source map generation and causes invalid source maps to be output.
simplify: false,
builtIns: false
}],
['@babel/preset-env', {
targets: {
browsers: [
">0.25%",
"last 2 versions",
"not ie <= 10",
"not op_mini all",
"not Opera > 0",
"not dead"
]
},
modules: false,
useBuiltIns: false
}]
]
},
dist: {
files: [{
expand: true,
src: amdSrc,
rename: uglifyRename
}],
options: {report: 'none'}
src: files ? files : amdSrc,
rename: babelRename
}]
}
},
sass: {
@@ -145,6 +201,14 @@ module.exports = function(grunt) {
files: ['**/amd/src/**/*.js'],
tasks: ['amd']
},
boost: {
files: ['**/theme/boost/scss/**/*.scss'],
tasks: ['scss']
},
rawcss: {
files: ['**/*.css', '**/theme/**/!(moodle.css|editor.css)'],
tasks: ['rawcss']
},
yui: {
files: ['**/yui/src/**/*.js'],
tasks: ['yui']
@@ -157,21 +221,21 @@ module.exports = function(grunt) {
shifter: {
options: {
recursive: true,
paths: [cwd]
paths: files ? files : [cwd]
}
},
gherkinlint: {
options: {
files: ['**/tests/behat/*.feature'],
files: files ? files : ['**/tests/behat/*.feature'],
}
},
stylelint: {
scss: {
options: {syntax: 'scss'},
src: ['*/**/*.scss']
src: files ? files : ['*/**/*.scss']
},
css: {
src: ['*/**/*.css'],
src: files ? files : ['*/**/*.css'],
options: {
configOverrides: {
rules: {
@@ -292,19 +356,31 @@ 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.
// We exit 1 if there is at least one error, otherwise we exit cleanly.
if (results.some(result => result.errors.length > 0)) {
done(1);
} else {
done(0);
}
};
tasks.startup = function() {
@@ -322,23 +398,232 @@ module.exports = function(grunt) {
}
};
/**
* This is a wrapper task to handle the grunt watch command. It attempts to use
* Watchman to monitor for file changes, if it's installed, because it's much faster.
*
* If Watchman isn't installed then it falls back to the grunt-contrib-watch file
* watcher for backwards compatibility.
*/
tasks.watch = function() {
var watchTaskDone = this.async();
var watchInitialised = false;
var watchTaskQueue = {};
var processingQueue = false;
// Grab the tasks and files that have been queued up and execute them.
var processWatchTaskQueue = function() {
if (!Object.keys(watchTaskQueue).length || processingQueue) {
// If there is nothing in the queue or we're already processing then wait.
return;
}
processingQueue = true;
// Grab all tasks currently in the queue.
var queueToProcess = watchTaskQueue;
// Reset the queue.
watchTaskQueue = {};
async.forEachSeries(
Object.keys(queueToProcess),
function(task, next) {
var files = queueToProcess[task];
var filesOption = '--files=' + files.join(',');
grunt.log.ok('Running task ' + task + ' for files ' + filesOption);
// Spawn the task in a child process so that it doesn't kill this one
// if it failed.
grunt.util.spawn(
{
// Spawn with the grunt bin.
grunt: true,
// Run from current working dir and inherit stdio from process.
opts: {
cwd: cwd,
stdio: 'inherit'
},
args: [task, filesOption]
},
function(err, res, code) {
if (code !== 0) {
// The grunt task failed.
grunt.log.error(err);
}
// Move on to the next task.
next();
}
);
},
function() {
// No longer processing.
processingQueue = false;
// Once all of the tasks are done then recurse just in case more tasks
// were queued while we were processing.
processWatchTaskQueue();
}
);
};
var watchConfig = grunt.config.get(['watch']);
watchConfig = Object.keys(watchConfig).reduce(function(carry, key) {
if (key == 'options') {
return carry;
}
var value = watchConfig[key];
var fileGlobs = value.files;
var taskNames = value.tasks;
taskNames.forEach(function(taskName) {
carry[taskName] = fileGlobs;
});
return carry;
}, {});
watchmanClient.on('error', function(error) {
// We have to add an error handler here and parse the error string because the
// example way from the docs to check if Watchman is installed doesn't actually work!!
// See: https://github.com/facebook/watchman/issues/509
if (error.message.match('Watchman was not found')) {
// If watchman isn't installed then we should fallback to the other watch task.
grunt.log.ok('It is recommended that you install Watchman for better performance using the "watch" command.');
// Fallback to the old grunt-contrib-watch task.
grunt.renameTask('watch-grunt', 'watch');
grunt.task.run(['watch']);
// This task is finished.
watchTaskDone(0);
} else {
grunt.log.error(error);
// Fatal error.
watchTaskDone(1);
}
});
watchmanClient.on('subscription', function(resp) {
if (resp.subscription !== 'grunt-watch') {
return;
}
resp.files.forEach(function(file) {
grunt.log.ok('File changed: ' + file.name);
var fullPath = cwd + '/' + file.name;
Object.keys(watchConfig).forEach(function(task) {
var fileGlobs = watchConfig[task];
var match = fileGlobs.every(function(fileGlob) {
return grunt.file.isMatch(fileGlob, fullPath);
});
if (match) {
// If we are watching a subdirectory then the file.name will be relative
// to that directory. However the grunt tasks expect the file paths to be
// relative to the Gruntfile.js location so let's normalise them before
// adding them to the queue.
var relativePath = fullPath.replace(gruntFilePath + '/', '');
if (task in watchTaskQueue) {
if (!watchTaskQueue[task].includes(relativePath)) {
watchTaskQueue[task] = watchTaskQueue[task].concat(relativePath);
}
} else {
watchTaskQueue[task] = [relativePath];
}
}
});
});
processWatchTaskQueue();
});
process.on('SIGINT', function() {
// Let the user know that they may need to manually stop the Watchman daemon if they
// no longer want it running.
if (watchInitialised) {
grunt.log.ok('The Watchman daemon may still be running and may need to be stopped manually.');
}
process.exit();
});
// Initiate the watch on the current directory.
watchmanClient.command(['watch-project', cwd], function(watchError, watchResponse) {
if (watchError) {
grunt.log.error('Error initiating watch:', watchError);
watchTaskDone(1);
return;
}
if ('warning' in watchResponse) {
grunt.log.error('warning: ', watchResponse.warning);
}
var watch = watchResponse.watch;
var relativePath = watchResponse.relative_path;
watchInitialised = true;
watchmanClient.command(['clock', watch], function(clockError, clockResponse) {
if (clockError) {
grunt.log.error('Failed to query clock:', clockError);
watchTaskDone(1);
return;
}
// Use the matching patterns specified in the watch config.
var matches = Object.keys(watchConfig).map(function(task) {
var fileGlobs = watchConfig[task];
var fileGlobMatches = fileGlobs.map(function(fileGlob) {
return ['match', fileGlob, 'wholename'];
});
return ['allof'].concat(fileGlobMatches);
});
var sub = {
expression: ["anyof"].concat(matches),
// Which fields we're interested in.
fields: ["name", "size", "type"],
// Add our time constraint.
since: clockResponse.clock
};
if (relativePath) {
/* eslint-disable camelcase */
sub.relative_root = relativePath;
}
watchmanClient.command(['subscribe', watch, 'grunt-watch', sub], function(subscribeError) {
if (subscribeError) {
// Probably an error in the subscription criteria.
grunt.log.error('failed to subscribe: ', subscribeError);
watchTaskDone(1);
return;
}
grunt.log.ok('Listening for changes to files in ' + cwd);
});
});
});
};
// On watch, we dynamically modify config to build only affected files. This
// method is slightly complicated to deal with multiple changed files at once (copied
// from the grunt-contrib-watch readme).
var changedFiles = Object.create(null);
var onChange = grunt.util._.debounce(function() {
var files = Object.keys(changedFiles);
grunt.config('eslint.amd.src', files);
grunt.config('eslint.yui.src', files);
grunt.config('uglify.amd.files', [{expand: true, src: files, rename: uglifyRename}]);
grunt.config('shifter.options.paths', files);
grunt.config('gherkinlint.options.files', files);
changedFiles = Object.create(null);
var files = Object.keys(changedFiles);
grunt.config('eslint.amd.src', files);
grunt.config('eslint.yui.src', files);
grunt.config('shifter.options.paths', files);
grunt.config('gherkinlint.options.files', files);
grunt.config('babel.dist.files', [{expand: true, src: files, rename: babelRename}]);
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', function(action, filepath) {
changedFiles[filepath] = action;
onChange();
changedFiles[filepath] = action;
onChange();
});
// Register NPM tasks.
@@ -347,17 +632,24 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-stylelint');
grunt.loadNpmTasks('grunt-babel');
// Rename the grunt-contrib-watch "watch" task because we're going to wrap it.
grunt.renameTask('watch', 'watch-grunt');
// Register JS tasks.
grunt.registerTask('shifter', 'Run Shifter against the current directory', tasks.shifter);
grunt.registerTask('gherkinlint', 'Run gherkinlint against the current directory', tasks.gherkinlint);
grunt.registerTask('ignorefiles', 'Generate ignore files for linters', tasks.ignorefiles);
grunt.registerTask('watch', 'Run tasks on file changes', tasks.watch);
grunt.registerTask('yui', ['eslint:yui', 'shifter']);
grunt.registerTask('amd', ['eslint:amd', 'uglify']);
grunt.registerTask('amd', ['eslint:amd', 'babel']);
grunt.registerTask('js', ['amd', 'yui']);
// Register CSS taks.
grunt.registerTask('css', ['stylelint:scss', 'sass', 'stylelint:css']);
grunt.registerTask('scss', ['stylelint:scss', 'sass']);
grunt.registerTask('rawcss', ['stylelint:css']);
// Register the startup task.
grunt.registerTask('startup', 'Run the correct tasks for the current directory', tasks.startup);
+1 -2
View File
@@ -33,8 +33,7 @@ $confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/antiviruses.php', array('action' => $action, 'antivirus' => $antivirus));
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageantiviruses";
+1 -2
View File
@@ -11,8 +11,7 @@ require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/tablelib.php');
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
$returnurl = new moodle_url('/admin/settings.php', array('section'=>'manageauths'));
-1
View File
@@ -30,7 +30,6 @@ $category = required_param('category', PARAM_SAFEDIR);
$return = optional_param('return','', PARAM_ALPHA);
$adminediting = optional_param('adminedit', -1, PARAM_BOOL);
/// no guest autologin
require_login(0, false);
$PAGE->set_context(context_system::instance());
$PAGE->set_url('/admin/category.php', array('category' => $category));
+1
View File
@@ -50,6 +50,7 @@ class purge_caches extends \moodleform {
$mform->createElement('advcheckbox', 'theme', '', get_string('purgethemecache', 'admin')),
$mform->createElement('advcheckbox', 'lang', '', get_string('purgelangcache', 'admin')),
$mform->createElement('advcheckbox', 'js', '', get_string('purgejscache', 'admin')),
$mform->createElement('advcheckbox', 'template', '', get_string('purgetemplates', 'admin')),
$mform->createElement('advcheckbox', 'filter', '', get_string('purgefiltercache', 'admin')),
$mform->createElement('advcheckbox', 'muc', '', get_string('purgemuc', 'admin')),
$mform->createElement('advcheckbox', 'other', '', get_string('purgeothercaches', 'admin'))
+194
View File
@@ -0,0 +1,194 @@
<?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/>.
/**
* File size admin setting.
*
* @package core_admin
* @copyright 2019 Shamim Rezaie <shamim@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_admin\local\settings;
defined('MOODLE_INTERNAL') || die();
require_once($CFG->libdir . '/adminlib.php');
/**
* An admin setting to support entering and displaying of file sizes in Bytes, KB, MB or GB.
*
* @copyright 2019 Shamim Rezaie <shamim@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filesize extends \admin_setting {
/** @var int The byte unit. Number of bytes in a byte */
const UNIT_B = 1;
/** @var int The kilobyte unit (number of bytes in a kilobyte) */
const UNIT_KB = 1024;
/** @var int The megabyte unit (number of bytes in a megabyte) */
const UNIT_MB = 1048576;
/** @var int The gigabyte unit (number of bytes in a gigabyte) */
const UNIT_GB = 1073741824;
/** @var int default size unit */
protected $defaultunit;
/**
* Constructor
*
* @param string $name unique ascii name, either 'mysetting' for settings that in config,
* or 'myplugin/mysetting' for ones in config_plugins.
* @param string $visiblename localised name
* @param string $description localised long description
* @param int|null $defaultvalue Value of the settings in bytes
* @param int|null $defaultunit GB, MB, etc. (in bytes)
*/
public function __construct(string $name, string $visiblename, string $description,
int $defaultvalue = null, int $defaultunit = null) {
$defaultsetting = self::parse_bytes($defaultvalue);
if ($defaultunit && array_key_exists($defaultunit, self::get_units())) {
$this->defaultunit = $defaultunit;
} else {
$this->defaultunit = self::UNIT_MB;
}
parent::__construct($name, $visiblename, $description, $defaultsetting);
}
/**
* Returns selectable units.
*
* @return array
*/
protected static function get_units(): array {
return [
self::UNIT_GB => get_string('sizegb'),
self::UNIT_MB => get_string('sizemb'),
self::UNIT_KB => get_string('sizekb'),
self::UNIT_B => get_string('sizeb'),
];
}
/**
* Converts bytes to some more user friendly string.
*
* @param int $bytes The number of bytes we want to convert from
* @return string
*/
protected static function get_size_text(int $bytes): string {
if (empty($bytes)) {
return get_string('none');
}
return display_size($bytes);
}
/**
* Finds suitable units for given file size.
*
* @param int $bytes The number of bytes
* @return array Parsed file size in the format of ['v' => value, 'u' => unit]
*/
protected static function parse_bytes(int $bytes): array {
foreach (self::get_units() as $unit => $unused) {
if ($bytes % $unit === 0) {
return ['v' => (int)($bytes / $unit), 'u' => $unit];
}
}
return ['v' => (int)$bytes, 'u' => self::UNIT_B];
}
/**
* Get the selected file size as array.
*
* @return array|null An array containing 'v' => xx, 'u' => xx, or null if not set
*/
public function get_setting(): ?array {
$bytes = $this->config_read($this->name);
if (is_null($bytes)) {
return null;
}
return self::parse_bytes($bytes);
}
/**
* Store the file size as bytes.
*
* @param array $data Must be form 'h' => xx, 'm' => xx
* @return string The error string if any
*/
public function write_setting($data): string {
if (!is_array($data)) {
return '';
}
if (!is_numeric($data['v']) || $data['v'] < 0) {
return get_string('errorsetting', 'admin');
}
$bytes = $data['v'] * $data['u'];
$result = $this->config_write($this->name, $bytes);
return ($result ? '' : get_string('errorsetting', 'admin'));
}
/**
* Returns file size text+select fields.
*
* @param array $data The current setting value. Must be form 'v' => xx, 'u' => xx.
* @param string $query Admin search query to be highlighted.
* @return string File size text+select fields and wrapping div(s).
*/
public function output_html($data, $query = ''): string {
global $OUTPUT;
$default = $this->get_defaultsetting();
if (is_number($default)) {
$defaultinfo = self::get_size_text($default);
} else if (is_array($default)) {
$defaultinfo = self::get_size_text($default['v'] * $default['u']);
} else {
$defaultinfo = null;
}
$inputid = $this->get_id() . 'v';
$units = self::get_units();
$defaultunit = $this->defaultunit;
$context = (object) [
'id' => $this->get_id(),
'name' => $this->get_full_name(),
'value' => $data['v'],
'options' => array_map(function($unit, $title) use ($data, $defaultunit) {
return [
'value' => $unit,
'name' => $title,
'selected' => ($data['v'] == 0 && $unit == $defaultunit) || $unit == $data['u']
];
}, array_keys($units), $units)
];
$element = $OUTPUT->render_from_template('core_admin/setting_configfilesize', $context);
return format_admin_setting($this, $this->visiblename, $element, $this->description, $inputid, '', $defaultinfo, $query);
}
}
+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 -89
View File
@@ -391,7 +391,6 @@ if ($interactive) {
$CFG->wwwroot = $wwwroot;
$CFG->httpswwwroot = $CFG->wwwroot;
//We need dataroot before lang download
$CFG->dataroot = $options['dataroot'];
if ($interactive) {
@@ -514,100 +513,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 +619,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) {
+1 -1
View File
@@ -94,7 +94,7 @@ if ($options['password'] == '' ) {
$errmsg = '';//prevent eclipse warning
if (!$options['ignore-password-policy'] ) {
if (!check_password_policy($password, $errmsg)) {
if (!check_password_policy($password, $errmsg, $user)) {
cli_error(html_to_text($errmsg, 0));
}
}
+8 -1
View File
@@ -52,7 +52,8 @@ list($options, $unrecognized) = cli_get_params(
'allow-unstable' => false,
'help' => false,
'lang' => $lang,
'verbose-settings' => false
'verbose-settings' => false,
'is-pending' => false,
),
array(
'h' => 'help'
@@ -88,6 +89,8 @@ Options:
--verbose-settings Show new settings values. By default only the name of
new core or plugin settings are displayed. This option
outputs the new values as well as the setting name.
--is-pending If an upgrade is needed it exits with an error code of
2 so it distinct from other types of errors.
-h, --help Print out this help
Example:
@@ -116,6 +119,10 @@ if (!moodle_needs_upgrading()) {
cli_error(get_string('cliupgradenoneed', 'core_admin', $newversion), 0);
}
if ($options['is-pending']) {
cli_error(get_string('cliupgradepending', 'core_admin'), 2);
}
// Test environment first.
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
if (!$envstatus) {
+1 -2
View File
@@ -32,8 +32,7 @@ $syscontext = context_system::instance();
$PAGE->set_url('/admin/courseformats.php');
$PAGE->set_context($syscontext);
require_login();
require_capability('moodle/site:config', $syscontext);
require_admin();
require_sesskey();
$return = new moodle_url('/admin/settings.php', array('section' => 'manageformats'));
+1 -2
View File
@@ -32,8 +32,7 @@ $syscontext = context_system::instance();
$PAGE->set_url('/admin/customfields.php');
$PAGE->set_context($syscontext);
require_login();
require_capability('moodle/site:config', $syscontext);
require_admin();
require_sesskey();
$return = new moodle_url('/admin/settings.php', array('section' => 'managecustomfields'));
+1 -2
View File
@@ -33,8 +33,7 @@ $syscontext = context_system::instance();
$PAGE->set_url('/admin/dataformats.php');
$PAGE->set_context($syscontext);
require_login();
require_capability('moodle/site:config', $syscontext);
require_admin();
require_sesskey();
$return = new moodle_url('/admin/settings.php', array('section' => 'managedataformats'));
+1 -2
View File
@@ -15,8 +15,7 @@ $confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/editors.php', array('action'=>$action, 'editor'=>$editor));
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageeditors";
+1 -2
View File
@@ -35,8 +35,7 @@ $confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/enrol.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
require_sesskey();
$enabled = enrol_get_plugins(true);
+364
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,366 @@
</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>
</COMPATIBILITY_MATRIX>
+1 -2
View File
@@ -23,8 +23,7 @@ require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/licenselib.php');
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=managelicenses";
+1 -2
View File
@@ -35,8 +35,7 @@ $confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/media.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
require_sesskey();
$plugins = core_plugin_manager::instance()->get_plugins_of_type('media');
+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 (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.
$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();
-3
View File
@@ -34,9 +34,6 @@ $step = optional_param('step', 'verify', PARAM_ALPHA);
$hostid = required_param('hostid', PARAM_INT);
$context = context_system::instance();
$mnet = get_mnet_environment();
$PAGE->set_url('/admin/mnet/delete.php');
+1 -2
View File
@@ -43,9 +43,8 @@ $confirminstallupdate = optional_param('confirminstallupdate', false, PARAM_BOOL
// NOTE: do not use admin_externalpage_setup() here because it loads
// full admin tree which is not possible during uninstallation.
require_login();
require_admin();
$syscontext = context_system::instance();
require_capability('moodle/site:config', $syscontext);
// URL params we want to maintain on redirects.
$pageparams = array('updatesonly' => $updatesonly, 'contribonly' => $contribonly);
+1 -1
View File
@@ -31,7 +31,7 @@ require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/tablelib.php');
// Check permissions.
require_login();
require_login(null, false);
$systemcontext = context_system::instance();
require_capability('moodle/question:config', $systemcontext);
+2 -2
View File
@@ -30,12 +30,12 @@ require_once($CFG->libdir . '/questionlib.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/tablelib.php');
// Check permissions.
admin_externalpage_setup('manageqtypes');
$systemcontext = context_system::instance();
require_capability('moodle/question:config', $systemcontext);
$canviewreports = has_capability('report/questioninstances:view', $systemcontext);
admin_externalpage_setup('manageqtypes');
$thispageurl = new moodle_url('/admin/qtypes.php');
$qtypes = question_bank::get_all_qtypes();
+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);
+18 -16
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.
*/
@@ -32,24 +32,25 @@ require_once($CFG->libdir . '/adminlib.php');
admin_externalpage_setup('registrationmoodleorg');
$unregistration = optional_param('unregistration', 0, PARAM_INT);
$unregistration = optional_param('unregistration', false, PARAM_BOOL);
$confirm = optional_param('confirm', false, PARAM_BOOL);
if ($unregistration && \core\hub\registration::is_registered()) {
$siteunregistrationform = new \core\hub\site_unregistration_form();
if ($confirm) {
require_sesskey();
\core\hub\registration::unregister(false, false);
if ($siteunregistrationform->is_cancelled()) {
redirect(new moodle_url('/admin/registration/index.php'));
} else if ($data = $siteunregistrationform->get_data()) {
\core\hub\registration::unregister($data->unpublishalladvertisedcourses,
$data->unpublishalluploadedcourses);
if (!\core\hub\registration::is_registered()) {
redirect(new moodle_url('/admin/registration/index.php'));
}
}
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('unregisterfrom', 'hub', 'Moodle.net'), 3, 'main');
$siteunregistrationform->display();
echo $OUTPUT->confirm(
get_string('registerwithmoodleorgremove', 'core_hub'),
new moodle_url(new moodle_url('/admin/registration/index.php', ['unregistration' => 1, 'confirm' => 1])),
new moodle_url(new moodle_url('/admin/registration/index.php'))
);
echo $OUTPUT->footer();
exit;
}
@@ -82,7 +83,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 +105,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');
@@ -119,8 +120,9 @@ $siteregistrationform->display();
if (\core\hub\registration::is_registered()) {
// Unregister link.
$unregisterhuburl = new moodle_url("/admin/registration/index.php", ['unregistration' => 1]);
echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister');
echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister mt-2');
} else if ($isinitialregistration) {
echo html_writer::div(html_writer::link(new moodle_url($returnurl), get_string('skipregistration', 'hub')), 'skipregistration');
echo html_writer::div(html_writer::link(new moodle_url($returnurl), get_string('skipregistration', 'hub')),
'skipregistration mt-2');
}
echo $OUTPUT->footer();
+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);
+31 -8
View File
@@ -1285,7 +1285,7 @@ class core_admin_renderer extends plugin_renderer_base {
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->notification(get_string('misdepsunknownlist', 'core_plugin', implode(', ', $unknown)));
}
if ($unavailable) {
$unavailablelist = array();
@@ -1300,7 +1300,7 @@ class core_admin_renderer extends plugin_renderer_base {
$unavailablelist[] = $unavailablelistitem;
}
$out .= $this->output->notification(get_string('misdepsunavaillist', 'core_plugin',
implode($unavailablelist, ', ')));
implode(', ', $unavailablelist)));
}
$out .= $this->output->container_start('plugins-check-dependencies-actions');
$out .= ' '.html_writer::link(new moodle_url('/admin/tool/installaddon/'),
@@ -1420,7 +1420,7 @@ class core_admin_renderer extends plugin_renderer_base {
html_writer::div($plugin->name, 'name').' '.html_writer::div($plugin->component, 'component'),
$plugin->version->release,
$plugin->version->version,
implode($supportedmoodles, ' '),
implode(' ', $supportedmoodles),
$info
);
}
@@ -1469,9 +1469,11 @@ class core_admin_renderer extends plugin_renderer_base {
$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();
@@ -2009,7 +2011,7 @@ class core_admin_renderer extends plugin_renderer_base {
if (empty($CFG->docroot) or $environment_result->plugin) {
$report = get_string($stringtouse, 'admin', $rec);
} else {
$report = $this->doc_link(join($linkparts, '/'), get_string($stringtouse, 'admin', $rec), true);
$report = $this->doc_link(join('/', $linkparts), get_string($stringtouse, 'admin', $rec), true);
}
// Enclose report text in div so feedback text will be displayed underneath it.
$report = html_writer::div($report);
@@ -2110,6 +2112,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 -2
View File
@@ -123,13 +123,13 @@ if (($action == 'edit') || ($action == 'new')) {
}
$instanceoptionnames = repository::static_function($repository, 'get_instance_option_names');
if (!empty($instanceoptionnames)) {
if (array_key_exists('enablecourseinstances', $fromform)) {
if (property_exists($fromform, 'enablecourseinstances')) {
$settings['enablecourseinstances'] = $fromform->enablecourseinstances;
}
else {
$settings['enablecourseinstances'] = 0;
}
if (array_key_exists('enableuserinstances', $fromform)) {
if (property_exists($fromform, 'enableuserinstances')) {
$settings['enableuserinstances'] = $fromform->enableuserinstances;
}
else {
+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);
-19
View File
@@ -46,25 +46,6 @@ $controller = new $classformode[$mode]();
if (optional_param('submit', false, PARAM_BOOL) && data_submitted() && confirm_sesskey()) {
$controller->process_submission();
$event = null;
// Create event depending on mode.
switch ($mode) {
case 'assign':
$event = \core\event\role_allow_assign_updated::create(array('context' => $syscontext));
break;
case 'override':
$event = \core\event\role_allow_override_updated::create(array('context' => $syscontext));
break;
case 'switch':
$event = \core\event\role_allow_switch_updated::create(array('context' => $syscontext));
break;
case 'view':
$event = \core\event\role_allow_view_updated::create(array('context' => $syscontext));
break;
}
if ($event) {
$event->trigger();
}
redirect($baseurl);
}
@@ -46,4 +46,8 @@ class core_role_allow_assign_page extends core_role_allow_role_page {
public function get_intro_text() {
return get_string('configallowassign', 'core_admin');
}
protected function get_eventclass() {
return \core\event\role_allow_assign_updated::class;
}
}
@@ -46,4 +46,8 @@ class core_role_allow_override_page extends core_role_allow_role_page {
public function get_intro_text() {
return get_string('configallowoverride2', 'core_admin');
}
protected function get_eventclass() {
return \core\event\role_allow_override_updated::class;
}
}
+30
View File
@@ -59,12 +59,36 @@ abstract class core_role_allow_role_page {
*/
public function process_submission() {
global $DB;
$context = context_system::instance();
$this->load_current_settings();
// Delete all records, then add back the ones that should be allowed.
$DB->delete_records($this->tablename);
foreach ($this->roles as $fromroleid => $notused) {
foreach ($this->roles as $targetroleid => $alsonotused) {
$isallowed = $this->allowed[$fromroleid][$targetroleid];
if (optional_param('s_' . $fromroleid . '_' . $targetroleid, false, PARAM_BOOL)) {
$this->set_allow($fromroleid, $targetroleid);
// Only trigger events if this role allow relationship did not exist and the checkbox element
// has been submitted.
if (!$isallowed) {
$eventclass = $this->get_eventclass();
$eventclass::create([
'context' => $context,
'objectid' => $fromroleid,
'other' => ['targetroleid' => $targetroleid, 'allow' => true]
])->trigger();
}
} else if ($isallowed) {
// When the user has deselect an existing role allow checkbox but it is in the list of roles
// allowances.
$eventclass = $this->get_eventclass();
$eventclass::create([
'context' => $context,
'objectid' => $fromroleid,
'other' => ['targetroleid' => $targetroleid, 'allow' => false]
])->trigger();
}
}
}
@@ -161,4 +185,10 @@ abstract class core_role_allow_role_page {
* @return string
*/
public abstract function get_intro_text();
/**
* Returns the allow class respective event class name.
* @return string
*/
protected abstract function get_eventclass();
}
@@ -58,4 +58,8 @@ class core_role_allow_switch_page extends core_role_allow_role_page {
public function get_intro_text() {
return get_string('configallowswitch', 'core_admin');
}
protected function get_eventclass() {
return \core\event\role_allow_switch_updated::class;
}
}
+4
View File
@@ -74,4 +74,8 @@ class core_role_allow_view_page extends core_role_allow_role_page {
public function get_intro_text() {
return get_string('configallowview', 'core_admin');
}
protected function get_eventclass() {
return \core\event\role_allow_view_updated::class;
}
}
@@ -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.
@@ -434,7 +434,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
}
public function save_changes() {
global $DB;
global $DB, $USER;
if (!$this->roleid) {
// Creating role.
@@ -444,6 +444,20 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
// Updating role.
$DB->update_record('role', $this->role);
// Trigger role updated event.
\core\event\role_updated::create([
'userid' => $USER->id,
'objectid' => $this->role->id,
'context' => $this->context,
'other' => [
'name' => $this->role->name,
'shortname' => $this->role->shortname,
'description' => $this->role->description,
'archetype' => $this->role->archetype,
'contextlevels' => $this->contextlevels
]
])->trigger();
// This will ensure the course contacts cache is purged so name changes get updated in
// the UI. It would be better to do this only when we know that fields affected are
// updated. But thats getting into the weeds of the coursecat cache and role edits
@@ -473,10 +487,17 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$addfunction = "core_role_set_{$type}_allowed";
$deltable = 'role_allow_'.$type;
$field = 'allow'.$type;
$eventclass = "\\core\\event\\role_allow_" . $type . "_updated";
$context = context_system::instance();
foreach ($current as $roleid) {
if (!in_array($roleid, $wanted)) {
$DB->delete_records($deltable, array('roleid'=>$this->roleid, $field=>$roleid));
$eventclass::create([
'context' => $context,
'objectid' => $this->roleid,
'other' => ['targetroleid' => $roleid, 'allow' => false]
])->trigger();
continue;
}
$key = array_search($roleid, $wanted);
@@ -488,6 +509,14 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$roleid = $this->roleid;
}
$addfunction($this->roleid, $roleid);
if (in_array($roleid, $wanted)) {
$eventclass::create([
'context' => $context,
'objectid' => $this->roleid,
'other' => ['targetroleid' => $roleid, 'allow' => true]
])->trigger();
}
}
}
@@ -589,7 +618,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 +654,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);
}
+3 -14
View File
@@ -52,10 +52,12 @@ if ($return === 'manage') {
$returnurl = new moodle_url('/admin/roles/define.php', array('action'=>'view', 'roleid'=>$roleid));;
}
admin_externalpage_setup('defineroles', '', array('action' => $action, 'roleid' => $roleid),
new moodle_url('/admin/roles/define.php'));
// Check access permissions.
$systemcontext = context_system::instance();
require_capability('moodle/role:manage', $systemcontext);
admin_externalpage_setup('defineroles', '', array('action' => $action, 'roleid' => $roleid), new moodle_url('/admin/roles/define.php'));
// Export role.
if ($action === 'export') {
@@ -198,19 +200,6 @@ if (optional_param('cancel', false, PARAM_BOOL)) {
if (optional_param('savechanges', false, PARAM_BOOL) && confirm_sesskey() && $definitiontable->is_submission_valid()) {
$definitiontable->save_changes();
$tableroleid = $definitiontable->get_role_id();
// Trigger event.
$event = \core\event\role_capabilities_updated::create(
array(
'context' => $systemcontext,
'objectid' => $tableroleid
)
);
$event->set_legacy_logdata(array(SITEID, 'role', $action, 'admin/roles/define.php?action=view&roleid=' . $tableroleid,
$definitiontable->get_role_name(), '', $USER->id));
if (!empty($role)) {
$event->add_record_snapshot('role', $role);
}
$event->trigger();
if ($action === 'add') {
redirect(new moodle_url('/admin/roles/define.php', array('action'=>'view', 'roleid'=>$definitiontable->get_role_id())));
+2 -1
View File
@@ -46,10 +46,11 @@ if ($action) {
$baseurl = $CFG->wwwroot . '/' . $CFG->admin . '/roles/manage.php';
$defineurl = $CFG->wwwroot . '/' . $CFG->admin . '/roles/define.php';
admin_externalpage_setup('defineroles');
// Check access permissions.
$systemcontext = context_system::instance();
require_capability('moodle/role:manage', $systemcontext);
admin_externalpage_setup('defineroles');
// Get some basic data we are going to need.
$roles = role_fix_names(get_all_roles(), $systemcontext, ROLENAME_ORIGINAL);
-16
View File
@@ -134,22 +134,6 @@ $overridestable->read_submitted_permissions();
if (optional_param('savechanges', false, PARAM_BOOL) && confirm_sesskey()) {
$overridestable->save_changes();
$rolename = $overridableroles[$roleid];
// Trigger event.
$event = \core\event\role_capabilities_updated::create(
array(
'context' => $context,
'objectid' => $roleid,
)
);
$event->set_legacy_logdata(
array(
$course->id, 'role', 'override', 'admin/roles/override.php?contextid=' . $context->id . '&roleid=' . $roleid,
$rolename, '', $USER->id
)
);
$event->add_record_snapshot('role', $role);
$event->trigger();
redirect($returnurl);
}
+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');
+1 -1
View File
@@ -45,7 +45,7 @@ $PAGE->set_pagelayout('admin');
// Check login and permissions.
if ($course->id == SITEID) {
require_login();
require_login(null, false);
$PAGE->set_context($usercontext);
} else {
require_login($course);
+1 -1
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig) {
if ($hassiteconfig && \core_analytics\manager::is_analytics_enabled()) {
$settings = new admin_settingpage('analyticssite', new lang_string('analyticssiteinfo', 'analytics'));
$ADMIN->add('analytics', $settings);
+28
View File
@@ -76,6 +76,24 @@ preferences,moodle|/user/preferences.php|t/preferences',
$ADMIN->add('appearance', $temp);
// Course colours section.
$temp = new admin_settingpage('coursecolors', new lang_string('coursecolorsettings', 'admin'));
$temp->add(new admin_setting_heading('coursecolorheading', '',
new lang_string('coursecolorheading_desc', 'admin')));
$basecolors = ['#81ecec', '#74b9ff', '#a29bfe', '#dfe6e9', '#00b894',
'#0984e3', '#b2bec3', '#fdcb6e', '#fd79a8', '#6c5ce7'];
foreach ($basecolors as $key => $color) {
$number = $key + 1;
$name = 'core_admin/coursecolor' . $number;
$title = get_string('coursecolor', 'admin', $number);
$setting = new admin_setting_configcolourpicker($name, $title, '', $color);
$temp->add($setting);
}
$ADMIN->add('appearance', $temp);
// Calendar settings.
$temp = new admin_settingpage('calendar', new lang_string('calendarsettings','admin'));
@@ -179,6 +197,10 @@ preferences,moodle|/user/preferences.php|t/preferences',
'idnumber' => new lang_string('sort_idnumber', 'admin'),
);
$temp->add(new admin_setting_configselect('navsortmycoursessort', new lang_string('navsortmycoursessort', 'admin'), new lang_string('navsortmycoursessort_help', 'admin'), 'sortorder', $sortoptions));
$temp->add(new admin_setting_configcheckbox('navsortmycourseshiddenlast',
new lang_string('navsortmycourseshiddenlast', 'admin'),
new lang_string('navsortmycourseshiddenlast_help', 'admin'),
1));
$temp->add(new admin_setting_configtext('navcourselimit', new lang_string('navcourselimit', 'admin'),
new lang_string('confignavcourselimit', 'admin'), 10, PARAM_INT));
$temp->add(new admin_setting_configcheckbox('usesitenameforsitepages', new lang_string('usesitenameforsitepages', 'admin'), new lang_string('configusesitenameforsitepages', 'admin'), 0));
@@ -257,4 +279,10 @@ preferences,moodle|/user/preferences.php|t/preferences',
$temp->add(new admin_setting_configtextarea('additionalhtmlfooter', new lang_string('additionalhtmlfooter', 'admin'), new lang_string('additionalhtmlfooter_desc', 'admin'), '', PARAM_RAW));
$ADMIN->add('appearance', $temp);
$setting = new admin_setting_configcheckbox('cachetemplates', new lang_string('cachetemplates', 'admin'),
new lang_string('cachetemplates_help', 'admin'), 1);
$setting->set_updatedcallback('template_reset_all_caches');
$temp = new admin_settingpage('templates', new lang_string('templates', 'admin'));
$temp->add($setting);
$ADMIN->add('appearance', $temp);
} // end of speedup
+40 -21
View File
@@ -163,9 +163,15 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
// "courserequests" settingpage.
$temp = new admin_settingpage('courserequest', new lang_string('courserequest'));
$temp->add(new admin_setting_configcheckbox('enablecourserequests', new lang_string('enablecourserequests', 'admin'), new lang_string('configenablecourserequests', 'admin'), 0));
$temp->add(new admin_settings_coursecat_select('defaultrequestcategory', new lang_string('defaultrequestcategory', 'admin'), new lang_string('configdefaultrequestcategory', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('requestcategoryselection', new lang_string('requestcategoryselection', 'admin'), new lang_string('configrequestcategoryselection', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('enablecourserequests',
new lang_string('enablecourserequests', 'admin'),
new lang_string('configenablecourserequests', 'admin'), 1));
$temp->add(new admin_settings_coursecat_select('defaultrequestcategory',
new lang_string('defaultrequestcategory', 'admin'),
new lang_string('configdefaultrequestcategory', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('lockrequestcategory',
new lang_string('lockrequestcategory', 'admin'),
new lang_string('configlockrequestcategory', 'admin'), 0));
$temp->add(new admin_setting_users_with_capability('courserequestnotify', new lang_string('courserequestnotify', 'admin'), new lang_string('configcourserequestnotify2', 'admin'), array(), 'moodle/site:approvecourse'));
$ADMIN->add('courses', $temp);
@@ -206,6 +212,11 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_role_assignments', new lang_string('generalroleassignments','backup'), new lang_string('configgeneralroleassignments','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock(
'backup/backup_general_files',
new lang_string('generalfiles', 'backup'),
new lang_string('configgeneralfiles', 'backup'),
array('value' => '1', 'locked' => 0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_comments', new lang_string('generalcomments','backup'), new lang_string('configgeneralcomments','backup'), array('value'=>1, 'locked'=>0)));
$temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_badges', new lang_string('generalbadges','backup'), new lang_string('configgeneralbadges','backup'), array('value'=>1,'locked'=>0)));
@@ -341,6 +352,10 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_role_assignments', new lang_string('generalroleassignments','backup'), new lang_string('configgeneralroleassignments','backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), 1));
$temp->add(new admin_setting_configcheckbox(
'backup/backup_auto_files',
new lang_string('generalfiles', 'backup'),
new lang_string('configgeneralfiles', 'backup'), '1'));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_comments', new lang_string('generalcomments','backup'), new lang_string('configgeneralcomments','backup'), 1));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_badges', new lang_string('generalbadges','backup'), new lang_string('configgeneralbadges','backup'), 1));
@@ -459,27 +474,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);
}
+5 -1
View File
@@ -29,13 +29,17 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_configcheckbox('forceclean', new lang_string('forceclean', 'core_admin'),
new lang_string('forceclean_desc', 'core_admin'), 0));
// Relative course dates mode setting.
$temp->add(new admin_setting_configcheckbox('enablecourserelativedates',
new lang_string('enablecourserelativedates', 'core_admin'),
new lang_string('enablecourserelativedates_desc', 'core_admin'), 0));
$ADMIN->add('experimental', $temp);
// "debugging" settingpage
$temp = new admin_settingpage('debugging', new lang_string('debugging', 'admin'));
$temp->add(new admin_setting_special_debug());
$temp->add(new admin_setting_configcheckbox('debugdisplay', new lang_string('debugdisplay', 'admin'), new lang_string('configdebugdisplay', 'admin'), ini_get_bool('display_errors')));
$temp->add(new admin_setting_configcheckbox('debugsmtp', new lang_string('debugsmtp', 'admin'), new lang_string('configdebugsmtp', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('perfdebug', new lang_string('perfdebug', 'admin'), new lang_string('configperfdebug', 'admin'), '7', '15', '7'));
$temp->add(new admin_setting_configcheckbox('debugstringids', new lang_string('debugstringids', 'admin'), new lang_string('debugstringids_desc', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('debugvalidators', new lang_string('debugvalidators', 'admin'), new lang_string('configdebugvalidators', 'admin'), 0));
+1 -1
View File
@@ -58,7 +58,7 @@ if (!during_initial_install()) { //do not use during installation
foreach ($roles as $role) {
if (empty($role->archetype) or $role->archetype === 'guest' or $role->archetype === 'frontpage' or $role->archetype === 'student') {
$options[$role->id] = $role->localname;
if ($role->archetype === 'frontpage') {
if ($role->archetype === 'frontpage' && !$defaultfrontpageroleid) {
$defaultfrontpageroleid = $role->id;
}
}
+29
View File
@@ -0,0 +1,29 @@
<?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/>.
/**
* H5P settings link.
*
* @package core_h5p
* @copyright 2019 Amaia Anabitarte <amaia@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
// Settings page.
$ADMIN->add('h5p', new admin_externalpage('h5psettings', get_string('h5pmanage', 'core_h5p'),
new moodle_url('/h5p/libraries.php'), ['moodle/site:config', 'moodle/h5p:updatelibraries']));
+7
View File
@@ -175,6 +175,13 @@ if ($hassiteconfig) {
$plugin->load_settings($ADMIN, 'antivirussettings', $hassiteconfig);
}
// Machine learning backend plugins.
$ADMIN->add('modules', new admin_category('mlbackendsettings', new lang_string('mlbackendsettings', 'admin')));
$plugins = core_plugin_manager::instance()->get_plugins_of_type('mlbackend');
foreach ($plugins as $plugin) {
$plugin->load_settings($ADMIN, 'mlbackendsettings', $hassiteconfig);
}
/// License types
$ADMIN->add('modules', new admin_category('licensesettings', new lang_string('licenses')));
$temp = new admin_settingpage('managelicenses', new lang_string('managelicenses', 'admin'));
+29 -7
View File
@@ -1,4 +1,29 @@
<?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/>.
/**
* Adds security related settings links for security category to admin tree.
*
* @copyright 1999 Martin Dougiamas http://dougiamas.com
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use core_admin\local\settings\filesize;
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
@@ -17,7 +42,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_configcheckbox('forcelogin', new lang_string('forcelogin', 'admin'), new lang_string('configforcelogin', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('forceloginforprofiles', new lang_string('forceloginforprofiles', 'admin'), new lang_string('configforceloginforprofiles', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('forceloginforprofileimage', new lang_string('forceloginforprofileimage', 'admin'), new lang_string('forceloginforprofileimage_help', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('opentogoogle', new lang_string('opentogoogle', 'admin'), new lang_string('configopentogoogle', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('opentowebcrawlers', new lang_string('opentowebcrawlers', 'admin'), new lang_string('configopentowebcrawlers', 'admin'), 0));
$temp->add(new admin_setting_configselect('allowindexing', new lang_string('allowindexing', 'admin'), new lang_string('allowindexing_desc', 'admin'),
0,
array(0 => new lang_string('allowindexingexceptlogin', 'admin'),
@@ -36,12 +61,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
// maxbytes set to 0 will allow the maximum server limit for uploads
$temp->add(new admin_setting_configselect('maxbytes', new lang_string('maxbytes', 'admin'), new lang_string('configmaxbytes', 'admin'), 0, $max_upload_choices));
// 100MB
$defaultuserquota = 104857600;
$params = new stdClass();
$params->bytes = $defaultuserquota;
$params->displaysize = display_size($defaultuserquota);
$temp->add(new admin_setting_configtext('userquota', new lang_string('userquota', 'admin'),
new lang_string('configuserquota', 'admin', $params), $defaultuserquota, PARAM_INT, 30));
$defaultuserquota = 100 * filesize::UNIT_MB;
$temp->add(new filesize('userquota', new lang_string('userquota', 'admin'),
new lang_string('userquota_desc', 'admin'), $defaultuserquota));
$temp->add(new admin_setting_configcheckbox('allowobjectembed', new lang_string('allowobjectembed', 'admin'), new lang_string('configallowobjectembed', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('enabletrusttext', new lang_string('enabletrusttext', 'admin'), new lang_string('configenabletrusttext', 'admin'), 0));
+16 -2
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_HTTP_X_FORWARDED_FOR|GETREMOTEADDR_SKIP_HTTP_CLIENT_IP, $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));
@@ -172,7 +175,10 @@ $temp->add(new admin_setting_configselect('tempdatafoldercleanup', new lang_stri
$ADMIN->add('server', $temp);
$temp->add(new admin_setting_configduration('filescleanupperiod',
new lang_string('filescleanupperiod', 'admin'),
new lang_string('filescleanupperiod_help', 'admin'),
86400));
$ADMIN->add('server', new admin_externalpage('environment', new lang_string('environment','admin'), "$CFG->wwwroot/$CFG->admin/environment.php"));
$ADMIN->add('server', new admin_externalpage('phpinfo', new lang_string('phpinfo'), "$CFG->wwwroot/$CFG->admin/phpinfo.php"));
@@ -268,6 +274,14 @@ $temp->add(
]
)
);
$temp->add(
new admin_setting_configcheckbox(
'task_logtostdout',
new lang_string('task_logtostdout', 'admin'),
new lang_string('task_logtostdout_desc', 'admin'),
1
)
);
if (\core\task\logmanager::uses_standard_settings()) {
$temp->add(
+24 -4
View File
@@ -49,9 +49,29 @@ 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('enableanalytics', new lang_string('enableanalytics', 'admin'),
new lang_string('configenableanalytics', 'admin'), 1, 1, 0));
$optionalsubsystems->add(new admin_setting_configcheckbox('enableasyncbackup', new lang_string('enableasyncbackup', 'backup'),
new lang_string('enableasyncbackup_help', 'backup'), 0, 1, 0));
$fullunicodesupport = true;
if ($DB->get_dbfamily() == 'mysql') {
$collation = $DB->get_dbcollation();
$collationinfo = explode('_', $collation);
$charset = reset($collationinfo);
$fullunicodesupport = $charset === 'utf8mb4';
}
if ($fullunicodesupport) {
$optionalsubsystems->add(new admin_setting_configcheckbox(
'allowemojipicker',
new lang_string('allowemojipicker', 'admin'),
new lang_string('configallowemojipicker', 'admin'),
1
));
} else {
$optionalsubsystems->add(new admin_setting_description(
'allowemojipicker',
new lang_string('allowemojipicker', 'admin'),
new lang_string('configallowemojipickerincompatible', 'admin')
));
}
}
+1
View File
@@ -31,6 +31,7 @@ $ADMIN->add('root', new admin_category('grades', new lang_string('grades')));
$ADMIN->add('root', new admin_category('analytics', new lang_string('analytics', 'analytics')));
$ADMIN->add('root', new admin_category('competencies', new lang_string('competencies', 'core_competency')));
$ADMIN->add('root', new admin_category('badges', new lang_string('badges'), empty($CFG->enablebadges)));
$ADMIN->add('root', new admin_category('h5p', new lang_string('h5p', 'core_h5p')));
$ADMIN->add('root', new admin_category('location', new lang_string('location','admin')));
$ADMIN->add('root', new admin_category('language', new lang_string('language')));
$ADMIN->add('root', new admin_category('messaging', new lang_string('messagingcategory', 'admin')));
+40 -8
View File
@@ -1,6 +1,6 @@
<?php
// This file defines settingpages and externalpages under the "users" category
// This file defines settingpages and externalpages under the "users" category.
$ADMIN->add('users', new admin_category('accounts', new lang_string('accounts', 'admin')));
$ADMIN->add('users', new admin_category('roles', new lang_string('permissions', 'role')));
@@ -13,15 +13,47 @@ if ($hassiteconfig
or has_capability('moodle/role:manage', $systemcontext)
or has_capability('moodle/role:assign', $systemcontext)
or has_capability('moodle/cohort:manage', $systemcontext)
or has_capability('moodle/cohort:view', $systemcontext)) { // speedup for non-admins, add all caps used on this page
or has_capability('moodle/cohort:view', $systemcontext)) { // Speedup for non-admins, add all caps used on this page.
// stuff under the "accounts" subcategory
// Stuff under the "accounts" subcategory.
$ADMIN->add('accounts', new admin_externalpage('editusers', new lang_string('userlist','admin'), "$CFG->wwwroot/$CFG->admin/user.php", array('moodle/user:update', 'moodle/user:delete')));
$ADMIN->add('accounts', new admin_externalpage('userbulk', new lang_string('userbulk','admin'), "$CFG->wwwroot/$CFG->admin/user/user_bulk.php", array('moodle/user:update', 'moodle/user:delete')));
$ADMIN->add('accounts', new admin_externalpage('addnewuser', new lang_string('addnewuser'), "$CFG->wwwroot/user/editadvanced.php?id=-1", 'moodle/user:create'));
// "User default preferences" settingpage.
// User management settingpage.
$temp = new admin_settingpage('usermanagement', new lang_string('usermanagement', 'admin'));
if ($ADMIN->fulltree) {
$choices = array();
$choices['realname'] = new lang_string('fullnameuser');
$choices['lastname'] = new lang_string('lastname');
$choices['firstname'] = new lang_string('firstname');
$choices['username'] = new lang_string('username');
$choices['email'] = new lang_string('email');
$choices['city'] = new lang_string('city');
$choices['country'] = new lang_string('country');
$choices['confirmed'] = new lang_string('confirmed', 'admin');
$choices['suspended'] = new lang_string('suspended', 'auth');
$choices['profile'] = new lang_string('profilefields', 'admin');
$choices['courserole'] = new lang_string('courserole', 'filters');
$choices['anycourses'] = new lang_string('anycourses', 'filters');
$choices['systemrole'] = new lang_string('globalrole', 'role');
$choices['cohort'] = new lang_string('idnumber', 'core_cohort');
$choices['firstaccess'] = new lang_string('firstaccess', 'filters');
$choices['lastaccess'] = new lang_string('lastaccess');
$choices['neveraccessed'] = new lang_string('neveraccessed', 'filters');
$choices['timemodified'] = new lang_string('lastmodified');
$choices['nevermodified'] = new lang_string('nevermodified', 'filters');
$choices['auth'] = new lang_string('authentication');
$choices['idnumber'] = new lang_string('idnumber');
$choices['lastip'] = new lang_string('lastip');
$choices['mnethostid'] = new lang_string('mnetidprovider', 'mnet');
$temp->add(new admin_setting_configmultiselect('userfiltersdefault', new lang_string('userfiltersdefault', 'admin'),
new lang_string('userfiltersdefault_desc', 'admin'), array('realname'), $choices));
}
$ADMIN->add('accounts', $temp);
// User default preferences settingpage.
$temp = new admin_settingpage('userdefaultpreferences', new lang_string('userdefaultpreferences', 'admin'));
if ($ADMIN->fulltree) {
$choices = array();
@@ -62,9 +94,9 @@ if ($hassiteconfig
$ADMIN->add('accounts', new admin_externalpage('cohorts', new lang_string('cohorts', 'cohort'), $CFG->wwwroot . '/cohort/index.php', array('moodle/cohort:manage', 'moodle/cohort:view')));
// stuff under the "roles" subcategory
// Stuff under the "roles" subcategory.
// "userpolicies" settingpage
// User policies settingpage.
$temp = new admin_settingpage('userpolicies', new lang_string('userpolicies', 'admin'));
if ($ADMIN->fulltree) {
if (!during_initial_install()) {
@@ -138,7 +170,7 @@ if ($hassiteconfig
$temp->add(new admin_setting_configselect('restorernewroleid', new lang_string('restorernewroleid', 'admin'),
new lang_string('restorernewroleid_help', 'admin'), $defaultteacherid, $restorersnewrole));
// release memory
// Release memory.
unset($otherroles);
unset($guestroles);
unset($userroles);
@@ -209,7 +241,7 @@ if ($hassiteconfig
$ADMIN->add('roles', new admin_externalpage('assignroles', new lang_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id, 'moodle/role:assign'));
$ADMIN->add('roles', new admin_externalpage('checkpermissions', new lang_string('checkglobalpermissions', 'role'), "$CFG->wwwroot/$CFG->admin/roles/check.php?contextid=".$systemcontext->id, array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:manage')));
} // end of speedup
} // End of speedup.
// Privacy settings.
if ($hassiteconfig) {
+3 -4
View File
@@ -40,15 +40,14 @@ $strheading = get_string('tasklogs', 'tool_task');
$PAGE->set_title($strheading);
$PAGE->set_heading($strheading);
require_login();
require_capability('moodle/site:config', context_system::instance());
admin_externalpage_setup('tasklogs');
$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) {
@@ -56,7 +55,7 @@ if (null !== $logid) {
header("Content-Disposition: attachment; filename=\"{$filename}\"");
}
readstring_accel($log->output, 'text/plain', false);
readstring_accel($log->output, 'text/plain');
exit;
}
@@ -0,0 +1,50 @@
{{!
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/>.
}}
{{!
@template core_admin/setting_configfilesize
Admin file size setting template.
Context variables required for this template:
* name - form element name
* options - list of options for units containing name, value, selected
* value - yes
* id - element id
Example context (json):
{
"name": "test",
"value": "5",
"id": "test0",
"options": [ { "name": "KB", "value": "1024", "selected": true } ]
}
}}
{{!
Setting configfilesize.
}}
<div class="form-filesize defaultsnext">
<div class="form-inline">
<input type="text" size="5" id="{{id}}v" name="{{name}}[v]" value="{{value}}" class="form-control text-ltr">
<label class="sr-only" for="{{id}}u">{{#str}}filesizeunits, admin{{/str}}</label>
<select id="{{id}}u" name="{{name}}[u]" class="form-control custom-select">
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
{{/options}}
</select>
</div>
</div>
+7 -2
View File
@@ -52,7 +52,7 @@ if ($data) {
// 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 +66,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']);
}
}
+27 -5
View File
@@ -6,11 +6,11 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
Background:
Given the following "users" exist:
| username | firstname | lastname | email | auth | confirmed |
| user1 | User | One | one@example.com | manual | 0 |
| user2 | User | Two | two@example.com | ldap | 1 |
| user3 | User | Three | three@example.com | manual | 1 |
| user4 | User | Four | four@example.com | ldap | 0 |
| username | firstname | lastname | email | auth | confirmed | lastip |
| user1 | User | One | one@example.com | manual | 0 | 127.0.1.1 |
| user2 | User | Two | two@example.com | ldap | 1 | 0.0.0.0 |
| user3 | User | Three | three@example.com | manual | 1 | 0.0.0.0 |
| user4 | User | Four | four@example.com | ldap | 0 | 127.0.1.2 |
And the following "cohorts" exist:
| name | idnumber |
| Cohort 1 | CH1 |
@@ -82,3 +82,25 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
And I should not see "User Two"
And I should not see "User Three"
And I should see "User Four"
Scenario: Filter user accounts by last IP address
When I set the following fields to these values:
| id_lastip | 127.0.1.1 |
And I press "Add filter"
Then I should see "User One"
And I should not see "User Two"
And I should not see "User Three"
And I should not see "User Four"
And I press "Remove all filters"
And I set the following fields to these values:
| id_lastip | 127.0.1.2 |
And I press "Add filter"
And I should not see "User One"
And I should not see "User Two"
And I should not see "User Three"
And I should see "User Four"
And I press "Remove all filters"
And I should see "User One"
And I should see "User Two"
And I should see "User Three"
And I should see "User Four"
@@ -0,0 +1,150 @@
@core @core_admin @javascript
Feature: An administrator can configure the available user list filters
In order to have all needed user filters instantly at hand
As an admin
I want to configure the filters which are shown as default
Scenario: Do not change the user filter default configuration
When I log in as "admin"
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should not see "Username" in the "New filter" "fieldset"
And I should not see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
And I navigate to "Users > Accounts > Bulk user actions" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should not see "Username" in the "New filter" "fieldset"
And I should not see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
Scenario: Change the user filter default configuration to something else
Given the following config values are set as admin:
| userfiltersdefault | realname,username,email |
And I log in as "admin"
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should see "Username" in the "New filter" "fieldset"
And I should see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
And I navigate to "Users > Accounts > Bulk user actions" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should see "Username" in the "New filter" "fieldset"
And I should see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
Scenario: Change the user filter default configuration to no filter at all
Given the following config values are set as admin:
| userfiltersdefault | |
And I log in as "admin"
And I navigate to "Users > Accounts > Browse list of users" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should not see "Username" in the "New filter" "fieldset"
And I should not see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
And I navigate to "Users > Accounts > Bulk user actions" in site administration
Then I should see "User full name"
And I should not see "Surname" in the "New filter" "fieldset"
And I should not see "Firstname" in the "New filter" "fieldset"
And I should not see "Username" in the "New filter" "fieldset"
And I should not see "Email address" in the "New filter" "fieldset"
And I should not see "City/town" in the "New filter" "fieldset"
And I should not see "Country" in the "New filter" "fieldset"
And I should not see "Confirmed" in the "New filter" "fieldset"
And I should not see "Suspended account" in the "New filter" "fieldset"
And I should not see "User profile fields" in the "New filter" "fieldset"
And I should not see "Course role" in the "New filter" "fieldset"
And I should not see "Enrolled in any course" in the "New filter" "fieldset"
And I should not see "System role" in the "New filter" "fieldset"
And I should not see "Cohort ID" in the "New filter" "fieldset"
And I should not see "First access" in the "New filter" "fieldset"
And I should not see "Last access" in the "New filter" "fieldset"
And I should not see "Last modified" in the "New filter" "fieldset"
And I should not see "Authentication" in the "New filter" "fieldset"
And I should not see "ID number" in the "New filter" "fieldset"
And I should not see "Last IP address" in the "New filter" "fieldset"
And I should not see "MNet ID provider" in the "New filter" "fieldset"
+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
+1 -3
View File
@@ -12,9 +12,7 @@
$PAGE->set_url('/admin/timezone.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
require_admin();
$strtimezone = get_string("timezone");
$strsavechanges = get_string("savechanges");
+2 -1
View File
@@ -1 +1,2 @@
define(["jquery","core/str","core/modal_factory","core/notification"],function(a,b,c,d){return{loadInfo:function(e,f){var g=a('[data-model-log-id="'+e+'"]');b.get_string("loginfo","tool_analytics").then(function(b){var d=a("<ul>");return f.forEach(function(a){d.append("<li>"+a+"</li>")}),d.append("</ul>"),c.create({title:b,body:d.html(),large:!0},g)})["catch"](d.exception)}}});
define ("tool_analytics/log_info",["jquery","core/str","core/modal_factory","core/notification"],function(a,b,c,d){return{loadInfo:function loadInfo(e,f){var g=a("[data-model-log-id=\""+e+"\"]");b.get_string("loginfo","tool_analytics").then(function(b){var d=a("<ul>");f.forEach(function(a){d.append("<li>"+a+"</li>")});d.append("</ul>");return c.create({title:b,body:d.html(),large:!0},g)}).catch(d.exception)}}});
//# sourceMappingURL=log_info.min.js.map
@@ -0,0 +1 @@
{"version":3,"sources":["../src/log_info.js"],"names":["define","$","str","ModalFactory","Notification","loadInfo","id","info","link","get_string","then","langString","bodyInfo","forEach","item","append","create","title","body","html","large","catch","exception"],"mappings":"AAwBAA,OAAM,2BAAC,CAAC,QAAD,CAAW,UAAX,CAAuB,oBAAvB,CAA6C,mBAA7C,CAAD,CAAoE,SAASC,CAAT,CAAYC,CAAZ,CAAiBC,CAAjB,CAA+BC,CAA/B,CAA6C,CAEnH,MAAoD,CAShDC,QAAQ,CAAE,kBAASC,CAAT,CAAaC,CAAb,CAAmB,CAEzB,GAAIC,CAAAA,CAAI,CAAGP,CAAC,CAAC,wBAAyBK,CAAzB,CAA8B,KAA/B,CAAZ,CACAJ,CAAG,CAACO,UAAJ,CAAe,SAAf,CAA0B,gBAA1B,EAA4CC,IAA5C,CAAiD,SAASC,CAAT,CAAqB,CAElE,GAAIC,CAAAA,CAAQ,CAAGX,CAAC,CAAC,MAAD,CAAhB,CACAM,CAAI,CAACM,OAAL,CAAa,SAASC,CAAT,CAAe,CACxBF,CAAQ,CAACG,MAAT,CAAgB,OAASD,CAAT,CAAgB,OAAhC,CACH,CAFD,EAGAF,CAAQ,CAACG,MAAT,CAAgB,OAAhB,EAEA,MAAOZ,CAAAA,CAAY,CAACa,MAAb,CAAoB,CACvBC,KAAK,CAAEN,CADgB,CAEvBO,IAAI,CAAEN,CAAQ,CAACO,IAAT,EAFiB,CAGvBC,KAAK,GAHkB,CAApB,CAIJZ,CAJI,CAMV,CAdD,EAcGa,KAdH,CAcSjB,CAAY,CAACkB,SAdtB,CAeH,CA3B+C,CA6BvD,CA/BK,CAAN","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Shows a dialogue with info about this logs.\n *\n * @module tool_analytics/log_info\n * @class log_info\n * @package tool_analytics\n * @copyright 2017 David Monllao {@link http://www.davidmonllao.com}\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/str', 'core/modal_factory', 'core/notification'], function($, str, ModalFactory, Notification) {\n\n return /** @alias module:tool_analytics/log_info */ {\n\n /**\n * Prepares a modal info for a log's results.\n *\n * @method loadInfo\n * @param {int} id\n * @param {string[]} info\n */\n loadInfo: function(id, info) {\n\n var link = $('[data-model-log-id=\"' + id + '\"]');\n str.get_string('loginfo', 'tool_analytics').then(function(langString) {\n\n var bodyInfo = $(\"<ul>\");\n info.forEach(function(item) {\n bodyInfo.append('<li>' + item + '</li>');\n });\n bodyInfo.append(\"</ul>\");\n\n return ModalFactory.create({\n title: langString,\n body: bodyInfo.html(),\n large: true,\n }, link);\n\n }).catch(Notification.exception);\n }\n };\n});\n"],"file":"log_info.min.js"}
+2 -1
View File
@@ -1 +1,2 @@
define(["jquery","core/str","core/log","core/notification","core/modal_factory","core/modal_events","core/templates"],function(a,b,c,d,e,f,g){var h={clear:{title:{key:"clearpredictions",component:"tool_analytics"},body:{key:"clearmodelpredictions",component:"tool_analytics"}},"delete":{title:{key:"delete",component:"tool_analytics"},body:{key:"deletemodelconfirmation",component:"tool_analytics"}}},i=function(b){var d=a(b).closest("[data-model-name]");return d.length?d.attr("data-model-name"):(c.error("Unexpected DOM error - unable to obtain the model name"),"")};return{confirmAction:function(g,j){a('[data-action-id="'+g+'"]').on("click",function(g){g.preventDefault();var k=a(g.currentTarget);if("undefined"==typeof h[j])return void c.error('Action "'+j+'" is not allowed.');var l=[h[j].title,h[j].body];l[1].param=i(k);var m=b.get_strings(l),n=e.create({type:e.types.SAVE_CANCEL});a.when(m,n).then(function(a,b){return b.setTitle(a[0]),b.setBody(a[1]),b.setSaveButtonText(a[0]),b.getRoot().on(f.save,function(){window.location.href=k.attr("href")}),b.show(),b}).fail(d.exception)})},selectEvaluationOptions:function(c,h,i){a('[data-action-id="'+c+'"]').on("click",function(c){c.preventDefault();var j=a(c.currentTarget),k=b.get_strings([{key:"evaluatemodel",component:"tool_analytics"},{key:"evaluate",component:"tool_analytics"}]),l=e.create({type:e.types.SAVE_CANCEL}),m=g.render("tool_analytics/evaluation_options",{trainedexternally:h,timesplittingmethods:i});a.when(k,l).then(function(b,c){return c.getRoot().on(f.hidden,c.destroy.bind(c)),c.setTitle(b[0]),c.setSaveButtonText(b[1]),c.setBody(m),c.getRoot().on(f.save,function(){var b=a("input[name='evaluationmode']:checked").val();"trainedmodel"==b&&j.attr("href",j.attr("href")+"&mode=trainedmodel");var c=a("#id-evaluation-timesplitting").val();j.attr("href",j.attr("href")+"&timesplitting="+c),window.location.href=j.attr("href")}),c.show(),c}).fail(d.exception)})},selectExportOptions:function(c,h){a('[data-action-id="'+c+'"]').on("click",function(c){c.preventDefault();var i=a(c.currentTarget);if(!h)return i.attr("href",i.attr("href")+"&action=exportmodel&includeweights=0"),void(window.location.href=i.attr("href"));var j=b.get_strings([{key:"export",component:"tool_analytics"}]),k=e.create({type:e.types.SAVE_CANCEL}),l=g.render("tool_analytics/export_options",{});a.when(j,k).then(function(b,c){return c.getRoot().on(f.hidden,c.destroy.bind(c)),c.setTitle(b[0]),c.setSaveButtonText(b[0]),c.setBody(l),c.getRoot().on(f.save,function(){var b=a("input[name='exportoption']:checked").val();"exportdata"==b?i.attr("href",i.attr("href")+"&action=exportdata"):(i.attr("href",i.attr("href")+"&action=exportmodel"),a("#id-includeweights").is(":checked")?i.attr("href",i.attr("href")+"&includeweights=1"):i.attr("href",i.attr("href")+"&includeweights=0")),window.location.href=i.attr("href")}),c.show(),c}).fail(d.exception)})}}});
define ("tool_analytics/model",["jquery","core/str","core/log","core/notification","core/modal_factory","core/modal_events","core/templates"],function(b,c,d,e,f,g,h){var i={clear:{title:{key:"clearpredictions",component:"tool_analytics"},body:{key:"clearmodelpredictions",component:"tool_analytics"}},delete:{title:{key:"delete",component:"tool_analytics"},body:{key:"deletemodelconfirmation",component:"tool_analytics"}}},j=function(a){var c=b(a).closest("[data-model-name]");if(c.length){return c.attr("data-model-name")}else{d.error("Unexpected DOM error - unable to obtain the model name");return""}};return{confirmAction:function confirmAction(a,h){b("[data-action-id=\""+a+"\"]").on("click",function(k){k.preventDefault();var l=b(k.currentTarget);if("undefined"==typeof i[h]){d.error("Action \""+h+"\" is not allowed.");return}var a=[i[h].title,i[h].body];a[1].param=j(l);var m=c.get_strings(a),n=f.create({type:f.types.SAVE_CANCEL});b.when(m,n).then(function(a,b){b.setTitle(a[0]);b.setBody(a[1]);b.setSaveButtonText(a[0]);b.getRoot().on(g.save,function(){window.location.href=l.attr("href")});b.show();return b}).fail(e.exception)})},selectEvaluationOptions:function selectEvaluationOptions(a,d){b("[data-action-id=\""+a+"\"]").on("click",function(i){i.preventDefault();var j=b(i.currentTarget),a=b(this).attr("data-timesplitting-methods"),k=c.get_strings([{key:"evaluatemodel",component:"tool_analytics"},{key:"evaluate",component:"tool_analytics"}]),l=f.create({type:f.types.SAVE_CANCEL}),m=h.render("tool_analytics/evaluation_options",{trainedexternally:d,timesplittingmethods:JSON.parse(a)});b.when(k,l).then(function(a,c){c.getRoot().on(g.hidden,c.destroy.bind(c));c.setTitle(a[0]);c.setSaveButtonText(a[1]);c.setBody(m);c.getRoot().on(g.save,function(){var a=b("input[name='evaluationmode']:checked").val();if("trainedmodel"==a){j.attr("href",j.attr("href")+"&mode=trainedmodel")}var c=b("#id-evaluation-timesplitting").val();j.attr("href",j.attr("href")+"&timesplitting="+c);window.location.href=j.attr("href")});c.show();return c}).fail(e.exception)})},selectExportOptions:function selectExportOptions(a,d){b("[data-action-id=\""+a+"\"]").on("click",function(i){i.preventDefault();var j=b(i.currentTarget);if(!d){j.attr("href",j.attr("href")+"&action=exportmodel&includeweights=0");window.location.href=j.attr("href");return}var a=c.get_strings([{key:"export",component:"tool_analytics"}]),k=f.create({type:f.types.SAVE_CANCEL}),l=h.render("tool_analytics/export_options",{});b.when(a,k).then(function(a,c){c.getRoot().on(g.hidden,c.destroy.bind(c));c.setTitle(a[0]);c.setSaveButtonText(a[0]);c.setBody(l);c.getRoot().on(g.save,function(){var a=b("input[name='exportoption']:checked").val();if("exportdata"==a){j.attr("href",j.attr("href")+"&action=exportdata")}else{j.attr("href",j.attr("href")+"&action=exportmodel");if(b("#id-includeweights").is(":checked")){j.attr("href",j.attr("href")+"&includeweights=1")}else{j.attr("href",j.attr("href")+"&includeweights=0")}}window.location.href=j.attr("href")});c.show();return c}).fail(e.exception)})}}});
//# sourceMappingURL=model.min.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
define ("tool_analytics/potential-contexts",["jquery","core/ajax"],function(a,b){return{processResults:function processResults(b,c){var d=[];if(a.isArray(c)){a.each(c,function(a,b){d.push({value:b.id,label:b.name})});return d}else{return c}},transport:function transport(c,d,e,f){var g,h=a(c).attr("modelid")||null;g=b.call([{methodname:"tool_analytics_potential_contexts",args:{query:d,modelid:h}}]);g[0].then(e).fail(f)}}});
//# sourceMappingURL=potential-contexts.min.js.map
@@ -0,0 +1 @@
{"version":3,"sources":["../src/potential-contexts.js"],"names":["define","$","Ajax","processResults","selector","results","contexts","isArray","each","index","context","push","value","id","label","name","transport","query","success","failure","promise","modelid","attr","call","methodname","args","then","fail"],"mappings":"AAyBAA,OAAM,qCAAC,CAAC,QAAD,CAAW,WAAX,CAAD,CAA0B,SAASC,CAAT,CAAYC,CAAZ,CAAkB,CAE9C,MAA8D,CAE1DC,cAAc,CAAE,wBAASC,CAAT,CAAmBC,CAAnB,CAA4B,CACxC,GAAIC,CAAAA,CAAQ,CAAG,EAAf,CACA,GAAIL,CAAC,CAACM,OAAF,CAAUF,CAAV,CAAJ,CAAwB,CACpBJ,CAAC,CAACO,IAAF,CAAOH,CAAP,CAAgB,SAASI,CAAT,CAAgBC,CAAhB,CAAyB,CACrCJ,CAAQ,CAACK,IAAT,CAAc,CACVC,KAAK,CAAEF,CAAO,CAACG,EADL,CAEVC,KAAK,CAAEJ,CAAO,CAACK,IAFL,CAAd,CAIH,CALD,EAMA,MAAOT,CAAAA,CAEV,CATD,IASO,CACH,MAAOD,CAAAA,CACV,CACJ,CAhByD,CAkB1DW,SAAS,CAAE,mBAASZ,CAAT,CAAmBa,CAAnB,CAA0BC,CAA1B,CAAmCC,CAAnC,CAA4C,IAC/CC,CAAAA,CAD+C,CAG/CC,CAAO,CAAGpB,CAAC,CAACG,CAAD,CAAD,CAAYkB,IAAZ,CAAiB,SAAjB,GAA+B,IAHM,CAInDF,CAAO,CAAGlB,CAAI,CAACqB,IAAL,CAAU,CAAC,CACjBC,UAAU,CAAE,mCADK,CAEjBC,IAAI,CAAE,CACFR,KAAK,CAAEA,CADL,CAEFI,OAAO,CAAEA,CAFP,CAFW,CAAD,CAAV,CAAV,CAQAD,CAAO,CAAC,CAAD,CAAP,CAAWM,IAAX,CAAgBR,CAAhB,EAAyBS,IAAzB,CAA8BR,CAA9B,CACH,CA/ByD,CAmCjE,CArCK,CAAN","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Potential contexts selector module.\n *\n * @module tool_analytics/potential-contexts\n * @class potential-contexts\n * @package tool_analytics\n * @copyright 2019 David Monllao\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\ndefine(['jquery', 'core/ajax'], function($, Ajax) {\n\n return /** @alias module:tool_analytics/potential-contexts */ {\n\n processResults: function(selector, results) {\n var contexts = [];\n if ($.isArray(results)) {\n $.each(results, function(index, context) {\n contexts.push({\n value: context.id,\n label: context.name\n });\n });\n return contexts;\n\n } else {\n return results;\n }\n },\n\n transport: function(selector, query, success, failure) {\n var promise;\n\n let modelid = $(selector).attr('modelid') || null;\n promise = Ajax.call([{\n methodname: 'tool_analytics_potential_contexts',\n args: {\n query: query,\n modelid: modelid\n }\n }]);\n\n promise[0].then(success).fail(failure);\n }\n\n };\n\n});\n"],"file":"potential-contexts.min.js"}
+4 -2
View File
@@ -114,12 +114,14 @@ define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_facto
* @param {String} actionId
* @param {Boolean} trainedOnlyExternally
*/
selectEvaluationOptions: function(actionId, trainedOnlyExternally, timeSplittingMethods) {
selectEvaluationOptions: function(actionId, trainedOnlyExternally) {
$('[data-action-id="' + actionId + '"]').on('click', function(ev) {
ev.preventDefault();
var a = $(ev.currentTarget);
var timeSplittingMethods = $(this).attr('data-timesplitting-methods');
var stringsPromise = Str.get_strings([
{
key: 'evaluatemodel',
@@ -132,7 +134,7 @@ define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_facto
var modalPromise = ModalFactory.create({type: ModalFactory.types.SAVE_CANCEL});
var bodyPromise = Templates.render('tool_analytics/evaluation_options', {
trainedexternally: trainedOnlyExternally,
timesplittingmethods: timeSplittingMethods
timesplittingmethods: JSON.parse(timeSplittingMethods)
});
$.when(stringsPromise, modalPromise).then(function(strings, modal) {
@@ -0,0 +1,63 @@
// 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/>.
/**
* Potential contexts selector module.
*
* @module tool_analytics/potential-contexts
* @class potential-contexts
* @package tool_analytics
* @copyright 2019 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(['jquery', 'core/ajax'], function($, Ajax) {
return /** @alias module:tool_analytics/potential-contexts */ {
processResults: function(selector, results) {
var contexts = [];
if ($.isArray(results)) {
$.each(results, function(index, context) {
contexts.push({
value: context.id,
label: context.name
});
});
return contexts;
} else {
return results;
}
},
transport: function(selector, query, success, failure) {
var promise;
let modelid = $(selector).attr('modelid') || null;
promise = Ajax.call([{
methodname: 'tool_analytics_potential_contexts',
args: {
query: query,
modelid: modelid
}
}]);
promise[0].then(success).fail(failure);
}
};
});
+113
View File
@@ -0,0 +1,113 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This is the external API for this component.
*
* @package tool_analytics
* @copyright 2019 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_analytics;
defined('MOODLE_INTERNAL') || die();
require_once("$CFG->libdir/externallib.php");
use external_api;
use external_function_parameters;
use external_value;
use external_single_structure;
use external_multiple_structure;
/**
* This is the external API for this component.
*
* @copyright 2019 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class external extends external_api {
const MAX_CONTEXTS_RETURNED = 100;
/**
* potential_contexts parameters.
*
* @since Moodle 3.8
* @return external_function_parameters
*/
public static function potential_contexts_parameters() {
return new external_function_parameters(
array(
'query' => new external_value(PARAM_NOTAGS, 'The model id', VALUE_DEFAULT),
'modelid' => new external_value(PARAM_INT, 'The model id', VALUE_DEFAULT)
)
);
}
/**
* Return the contexts that match the provided query.
*
* @since Moodle 3.8
* @param string|null $query
* @param int|null $modelid
* @return array an array of contexts
*/
public static function potential_contexts(?string $query = null, ?int $modelid = null) {
$params = self::validate_parameters(self::potential_contexts_parameters(), ['modelid' => $modelid, 'query' => $query]);
\core_analytics\manager::check_can_manage_models();
if ($params['modelid']) {
$model = new \core_analytics\model($params['modelid']);
$contexts = ($model->get_analyser(['notimesplitting' => true]))::potential_context_restrictions($params['query']);
} else {
$contexts = \core_analytics\manager::get_potential_context_restrictions(null, $params['query']);
}
$contextoptions = [];
$i = 0;
foreach ($contexts as $contextid => $contextname) {
if ($i === self::MAX_CONTEXTS_RETURNED) {
// Limited to MAX_CONTEXTS_RETURNED items.
break;
}
$contextoptions[] = ['id' => $contextid, 'name' => $contextname];
$i++;
}
return $contextoptions;
}
/**
* potential_contexts return
*
* @since Moodle 3.8
* @return external_description
*/
public static function potential_contexts_returns() {
return new external_multiple_structure(
new external_single_structure([
'id' => new external_value(PARAM_INT, 'ID of the context'),
'name' => new external_value(PARAM_NOTAGS, 'The context name')
])
);
}
}
@@ -65,6 +65,15 @@ class edit_model extends \moodleform {
$mform->addRule('target', get_string('required'), 'required', null, 'client');
}
if (!empty($this->_customdata['targetname']) && !empty($this->_customdata['targetclass'])) {
$mform->addElement('static', 'targetname', get_string('target', 'tool_analytics'), $this->_customdata['targetname']);
$mform->addElement('hidden', 'target',
\tool_analytics\output\helper::class_to_option($this->_customdata['targetclass']));
// We won't update the model's target so no worries about its format (we can't use PARAM_ALPHANUMEXT
// because of class_to_option).
$mform->setType('target', PARAM_TEXT);
}
// Indicators.
if (!$this->_customdata['staticmodel']) {
$indicators = array();
@@ -81,6 +90,13 @@ class edit_model extends \moodleform {
}
// Time-splitting methods.
if (!empty($this->_customdata['invalidcurrenttimesplitting'])) {
$mform->addElement('html', $OUTPUT->notification(
get_string('invalidcurrenttimesplitting', 'tool_analytics'),
\core\output\notification::NOTIFY_WARNING)
);
}
$timesplittings = array('' => '');
foreach ($this->_customdata['timesplittings'] as $classname => $timesplitting) {
$optionname = \tool_analytics\output\helper::class_to_option($classname);
@@ -89,6 +105,28 @@ class edit_model extends \moodleform {
$mform->addElement('select', 'timesplitting', get_string('timesplittingmethod', 'analytics'), $timesplittings);
$mform->addHelpButton('timesplitting', 'timesplittingmethod', 'analytics');
// Contexts restriction.
if (!empty($this->_customdata['supportscontexts'])) {
$options = [
'ajax' => 'tool_analytics/potential-contexts',
'multiple' => true,
'noselectionstring' => get_string('all')
];
if (!empty($this->_customdata['id'])) {
$options['modelid'] = $this->_customdata['id'];
$contexts = $this->load_current_contexts();
} else {
// No need to preload any selected contexts.
$contexts = [];
}
$mform->addElement('autocomplete', 'contexts', get_string('contexts', 'tool_analytics'), $contexts, $options);
$mform->setType('contexts', PARAM_INT);
$mform->addHelpButton('contexts', 'contexts', 'tool_analytics');
}
// Predictions processor.
if (!$this->_customdata['staticmodel']) {
$defaultprocessor = \core_analytics\manager::get_predictions_processor_name(
@@ -130,11 +168,35 @@ class edit_model extends \moodleform {
public function validation($data, $files) {
$errors = parent::validation($data, $files);
$targetclass = \tool_analytics\output\helper::option_to_class($data['target']);
$target = \core_analytics\manager::get_target($targetclass);
if (!empty($data['timesplitting'])) {
$realtimesplitting = \tool_analytics\output\helper::option_to_class($data['timesplitting']);
if (\core_analytics\manager::is_valid($realtimesplitting, '\core_analytics\local\time_splitting\base') === false) {
$timesplittingclass = \tool_analytics\output\helper::option_to_class($data['timesplitting']);
if (\core_analytics\manager::is_valid($timesplittingclass, '\core_analytics\local\time_splitting\base') === false) {
$errors['timesplitting'] = get_string('errorinvalidtimesplitting', 'analytics');
}
$timesplitting = \core_analytics\manager::get_time_splitting($timesplittingclass);
if (!$target->can_use_timesplitting($timesplitting)) {
$errors['timesplitting'] = get_string('invalidtimesplitting', 'tool_analytics');
}
}
if (!empty($data['contexts'])) {
$analyserclass = $target->get_analyser_class();
if (!$potentialcontexts = $analyserclass::potential_context_restrictions()) {
$errors['contexts'] = get_string('errornocontextrestrictions', 'analytics');
} else {
// Flip the contexts array so we can just diff by key.
$selectedcontexts = array_flip($data['contexts']);
$invalidcontexts = array_diff_key($selectedcontexts, $potentialcontexts);
if (!empty($invalidcontexts)) {
$errors['contexts'] = get_string('errorinvalidcontexts', 'analytics');
}
}
}
if (!$this->_customdata['staticmodel']) {
@@ -156,4 +218,18 @@ class edit_model extends \moodleform {
return $errors;
}
/**
* Load the currently selected context options.
*
* @return array
*/
protected function load_current_contexts() {
$contexts = [];
foreach ($this->_customdata['contexts'] as $context) {
$contexts[$context->id] = $context->get_context_name(true, true);
}
return $contexts;
}
}
@@ -105,4 +105,50 @@ class helper {
$PAGE->reset_theme_and_output();
$PAGE->set_context(\context_system::instance());
}
/**
* Convert a list of contexts to an associative array where the value is the context name.
*
* @param array $contexts
* @param \moodle_url $url
* @param \renderer_base $output
* @param int|null $selected
* @param bool $includeall
* @param bool $shortentext
* @return \stdClass
*/
public static function prediction_context_selector(array $contexts, \moodle_url $url, \renderer_base $output,
?int $selected = null, ?bool $includeall = false, ?bool $shortentext = true): \stdClass {
foreach ($contexts as $contextid => $unused) {
// We prepare this to be used as single_select template options.
$context = \context::instance_by_id($contextid);
// Special name for system level predictions as showing "System is not visually nice".
if ($contextid == SYSCONTEXTID) {
$contextname = get_string('allpredictions', 'tool_analytics');
} else {
if ($shortentext) {
$contextname = shorten_text($context->get_context_name(false, true), 40);
} else {
$contextname = $context->get_context_name(false, true);
}
}
$contexts[$contextid] = $contextname;
}
if ($includeall) {
$contexts[0] = get_string('all');
$nothing = '';
} else {
$nothing = array('' => 'choosedots');
}
\core_collator::asort($contexts);
if (!$selected) {
$selected = '';
}
$singleselect = new \single_select($url, 'contextid', $contexts, $selected, $nothing);
return $singleselect->export_for_template($output);
}
}
@@ -0,0 +1,184 @@
<?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/>.
/**
* Insights report renderable.
*
* @package tool_analytics
* @copyright 2019 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_analytics\output;
defined('MOODLE_INTERNAL') || die;
/**
* Insights report renderable.
*
* @package tool_analytics
* @copyright 2019 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class insights_report implements \renderable, \templatable {
/**
* @var \core_analytics\model
*/
private $model = null;
/**
* @var \context
*/
private $context = null;
/**
* Inits the insights report renderable.
*
* @param \core_analytics\model $model
* @param int|null $contextid
* @return null
*/
public function __construct(\core_analytics\model $model, ?int $contextid = null) {
$this->model = $model;
if ($contextid) {
$this->context = \context::instance_by_id($contextid);
}
}
/**
* Export the data.
*
* @param \renderer_base $output
* @return \stdClass
*/
public function export_for_template(\renderer_base $output): \stdClass {
// Prepare the context object.
$data = new \stdClass();
$data->modelname = $this->model->get_name();
$data->charts = [];
$predictionactionrecords = $this->model->get_prediction_actions($this->context);
// Context selector.
$predictioncontexts = $this->model->get_predictions_contexts(false);
if ($predictioncontexts && count($predictioncontexts) > 1) {
$url = new \moodle_url('/admin/tool/analytics/model.php', ['id' => $this->model->get_id(),
'action' => 'insightsreport']);
if ($this->context) {
$selected = $this->context->id;
} else {
// This is the 'all' option.
$selected = 0;
}
$data->contextselect = \tool_analytics\output\helper::prediction_context_selector($predictioncontexts,
$url, $output, $selected, true, false);
}
if ($predictionactionrecords->valid()) {
foreach ($predictionactionrecords as $record) {
// Using this unusual execution flow to init the chart data because $predictionactionrecords
// is a \moodle_recordset.
if (empty($actionlabels)) {
list($actionlabels, $actionvalues, $actiontypes) = $this->init_action_labels($record);
}
// One value for each action.
$actionvalues['separated'][$record->actionname]++;
// Grouped value.
$actiontype = $actiontypes[$record->actionname];
$actionvalues['grouped'][$actiontype]++;
}
$predictionactionrecords->close();
// Actions doughtnut.
$chart = new \core\chart_pie();
$chart->set_doughnut(true);
$chart->set_title(get_string('actionsexecutedbyusers', 'tool_analytics'));
$series = new \core\chart_series(get_string('actions', 'tool_analytics'),
array_values($actionvalues['separated']));
$chart->add_series($series);
$chart->set_labels(array_values($actionlabels['separated']));
$data->separatedchart = $output->render($chart);
// Positive/negative/neutral bar chart.
$chart = new \core\chart_bar();
$chart->set_title(get_string('actionexecutedgroupedusefulness', 'tool_analytics'));
$series = new \core\chart_series(get_string('actions', 'tool_analytics'),
array_values($actionvalues['grouped']));
$chart->add_series($series);
$chart->set_labels(array_values($actionlabels['grouped']));
$data->groupedchart = $output->render($chart);
} else {
$predictionactionrecords->close();
$data->noactions = [
'message' => get_string('noactionsfound', 'tool_analytics'),
'announce' => true,
];
}
return $data;
}
/**
* Initialises the action labels and values in this model.
*
* @param \stdClass $predictionactionrecord
* @return array Two-dimensional array with the labels and values initialised to zero.
*/
private function init_action_labels(\stdClass $predictionactionrecord): array {
$predictioncontext = \context::instance_by_id($predictionactionrecord->contextid);
// Just 1 result, we just want to retrieve the prediction action names.
list ($unused, $predictions) = $this->model->get_predictions($predictioncontext, false, 0, 1);
// We pass 'true' for $isinsightuser so all the prediction actions available for this target are returning.
$predictionactions = $this->model->get_target()->prediction_actions(reset($predictions), true, true);
$actionlabels = [];
$actionvalues = ['separated' => [], 'grouped' => []];
$actiontypes = [];
foreach ($predictionactions as $action) {
$actionlabels['separated'][$action->get_action_name()] = $action->get_text();
$actionvalues['separated'][$action->get_action_name()] = 0;
$actiontypes[$action->get_action_name()] = $action->get_type();
}
$bulkactions = $this->model->get_target()->bulk_actions($predictions);
foreach ($bulkactions as $action) {
$actionlabels['separated'][$action->get_action_name()] = $action->get_text();
$actionvalues['separated'][$action->get_action_name()] = 0;
$actiontypes[$action->get_action_name()] = $action->get_type();
}
$actionlabels['grouped'][\core_analytics\action::TYPE_POSITIVE] = get_string('useful', 'analytics');
$actionlabels['grouped'][\core_analytics\action::TYPE_NEUTRAL] = get_string('neutral', 'analytics');
$actionlabels['grouped'][\core_analytics\action::TYPE_NEGATIVE] = get_string('notuseful', 'analytics');
$actionvalues['grouped'][\core_analytics\action::TYPE_POSITIVE] = 0;
$actionvalues['grouped'][\core_analytics\action::TYPE_NEUTRAL] = 0;
$actionvalues['grouped'][\core_analytics\action::TYPE_NEGATIVE] = 0;
return [$actionlabels, $actionvalues, $actiontypes];
}
}
@@ -76,7 +76,8 @@ class invalid_analysables implements \renderable, \templatable {
$offset = $this->page * $this->perpage;
$analysables = $this->model->get_analyser(['notimesplitting' => true])->get_analysables_iterator();
$contexts = $this->model->get_contexts();
$analysables = $this->model->get_analyser(['notimesplitting' => true])->get_analysables_iterator(null, $contexts);
$skipped = 0;
$enoughresults = false;
@@ -97,16 +97,9 @@ class models_list implements \renderable, \templatable {
}
// Evaluation options.
$timesplittingmethods = [
['id' => 'all', 'text' => get_string('alltimesplittingmethods', 'tool_analytics')],
];
foreach (\core_analytics\manager::get_time_splitting_methods_for_evaluation(true) as $timesplitting) {
$timesplittingmethods[] = [
'id' => \tool_analytics\output\helper::class_to_option($timesplitting->get_id()),
'text' => $timesplitting->get_name()->out(),
];
}
$timesplittingsforevaluation = \core_analytics\manager::get_time_splitting_methods_for_evaluation(true);
$misconfiguredmodels = [];
$data->models = array();
foreach ($this->models as $model) {
$modeldata = $model->export($output);
@@ -123,6 +116,10 @@ class models_list implements \renderable, \templatable {
describe its purpose.", DEBUG_DEVELOPER);
}
if ($model->invalid_timesplitting_selected()) {
$misconfiguredmodels[$model->get_id()] = $model->get_name();
}
// Check if there is a help icon for the indicators to show.
if (!empty($modeldata->indicators)) {
$indicators = array();
@@ -156,7 +153,7 @@ class models_list implements \renderable, \templatable {
$modeldata->timesplittinghelp = $helpicon->export_for_template($output);
} else {
// We really want to encourage developers to add help to their time splitting methods.
debugging("The time splitting method '{$modeldata->timesplitting}' should include a '{$identifier}_help'
debugging("The analysis interval '{$modeldata->timesplitting}' should include a '{$identifier}_help'
string to describe its purpose.", DEBUG_DEVELOPER);
}
} else {
@@ -166,36 +163,20 @@ class models_list implements \renderable, \templatable {
// Has this model generated predictions?.
$predictioncontexts = $model->get_predictions_contexts();
$anypredictionobtained = $model->any_prediction_obtained();
// Model predictions list.
if (!$model->is_enabled()) {
$modeldata->noinsights = get_string('disabledmodel', 'analytics');
} else if ($model->uses_insights()) {
if ($predictioncontexts) {
foreach ($predictioncontexts as $contextid => $unused) {
// We prepare this to be used as single_select template options.
$context = \context::instance_by_id($contextid);
// Special name for system level predictions as showing "System is not visually nice".
if ($contextid == SYSCONTEXTID) {
$contextname = get_string('allpredictions', 'tool_analytics');
} else {
$contextname = shorten_text($context->get_context_name(true, true), 90);
}
$predictioncontexts[$contextid] = $contextname;
}
\core_collator::asort($predictioncontexts);
if (!empty($predictioncontexts)) {
$url = new \moodle_url('/report/insights/insights.php', array('modelid' => $model->get_id()));
$singleselect = new \single_select($url, 'contextid', $predictioncontexts);
$modeldata->insights = $singleselect->export_for_template($output);
}
$url = new \moodle_url('/report/insights/insights.php', array('modelid' => $model->get_id()));
$modeldata->insights = \tool_analytics\output\helper::prediction_context_selector($predictioncontexts,
$url, $output);
}
if (empty($modeldata->insights)) {
if ($model->any_prediction_obtained()) {
if ($anypredictionobtained) {
$modeldata->noinsights = get_string('noinsights', 'analytics');
} else {
$modeldata->noinsights = get_string('nopredictionsyet', 'analytics');
@@ -216,10 +197,11 @@ class models_list implements \renderable, \templatable {
// Get predictions.
if (!$onlycli && $modeldata->enabled && !empty($modeldata->timesplitting)) {
$urlparams['action'] = 'getpredictions';
$url = new \moodle_url('model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('i/notifications',
get_string('getpredictions', 'tool_analytics')), get_string('getpredictions', 'tool_analytics'));
$urlparams['action'] = 'scheduledanalysis';
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url,
new \pix_icon('i/notifications', get_string('executescheduledanalysis', 'tool_analytics')),
get_string('executescheduledanalysis', 'tool_analytics'));
$actionsmenu->add($icon);
}
@@ -231,26 +213,29 @@ class models_list implements \renderable, \templatable {
$actionid = 'evaluate-' . $model->get_id();
$modeltimesplittingmethods = $timesplittingmethods;
// Evaluation options.
$modeltimesplittingmethods = $this->timesplittings_options_for_evaluation($model, $timesplittingsforevaluation);
// Include the current time-splitting method as the default selection method the model already have one.
if ($model->get_model_obj()->timesplitting) {
$currenttimesplitting = ['id' => 'current', 'text' => get_string('currenttimesplitting', 'tool_analytics')];
array_unshift($modeltimesplittingmethods, $currenttimesplitting);
}
$evaluateparams = [$actionid, $trainedonlyexternally, $modeltimesplittingmethods];
$evaluateparams = [$actionid, $trainedonlyexternally];
$PAGE->requires->js_call_amd('tool_analytics/model', 'selectEvaluationOptions', $evaluateparams);
$urlparams['action'] = 'evaluate';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('i/calc', get_string('evaluate', 'tool_analytics')),
get_string('evaluate', 'tool_analytics'), ['data-action-id' => $actionid]);
get_string('evaluate', 'tool_analytics'), ['data-action-id' => $actionid,
'data-timesplitting-methods' => json_encode($modeltimesplittingmethods)]);
$actionsmenu->add($icon);
}
// Machine-learning-based models evaluation log.
if (!$model->is_static() && $model->get_logs()) {
$urlparams['action'] = 'log';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('i/report', get_string('viewlog', 'tool_analytics')),
get_string('viewlog', 'tool_analytics'));
$actionsmenu->add($icon);
@@ -258,7 +243,7 @@ class models_list implements \renderable, \templatable {
// Edit model.
$urlparams['action'] = 'edit';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('t/edit', get_string('edit')), get_string('edit'));
$actionsmenu->add($icon);
@@ -275,7 +260,7 @@ class models_list implements \renderable, \templatable {
$icontype = 'i/checked';
}
$urlparams['action'] = $action;
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon($icontype, $text), $text);
$actionsmenu->add($icon);
}
@@ -288,7 +273,7 @@ class models_list implements \renderable, \templatable {
if ($fullysetup || $istrained) {
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
// Clear the previous action param from the URL, we will set it in JS.
$url->remove_params('action');
@@ -303,22 +288,31 @@ class models_list implements \renderable, \templatable {
}
}
// Insights report.
if (!empty($anypredictionobtained) && $model->uses_insights()) {
$urlparams['action'] = 'insightsreport';
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$pix = new \pix_icon('i/report', get_string('insightsreport', 'tool_analytics'));
$icon = new \action_menu_link_secondary($url, $pix, get_string('insightsreport', 'tool_analytics'));
$actionsmenu->add($icon);
}
// Invalid analysables.
$analyser = $model->get_analyser(['notimesplitting' => true]);
if (!$analyser instanceof \core_analytics\local\analyser\sitewide) {
$urlparams['action'] = 'invalidanalysables';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$pix = new \pix_icon('i/report', get_string('invalidanalysables', 'tool_analytics'));
$icon = new \action_menu_link_secondary($url, $pix, get_string('invalidanalysables', 'tool_analytics'));
$actionsmenu->add($icon);
}
// Clear model.
if (!empty($predictioncontexts) || $model->is_trained()) {
if (!empty($anypredictionobtained) || $model->is_trained()) {
$actionid = 'clear-' . $model->get_id();
$PAGE->requires->js_call_amd('tool_analytics/model', 'confirmAction', [$actionid, 'clear']);
$urlparams['action'] = 'clear';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('e/cleanup_messy_code',
get_string('clearpredictions', 'tool_analytics')), get_string('clearpredictions', 'tool_analytics'),
['data-action-id' => $actionid]);
@@ -329,7 +323,7 @@ class models_list implements \renderable, \templatable {
$actionid = 'delete-' . $model->get_id();
$PAGE->requires->js_call_amd('tool_analytics/model', 'confirmAction', [$actionid, 'delete']);
$urlparams['action'] = 'delete';
$url = new \moodle_url('model.php', $urlparams);
$url = new \moodle_url('/admin/tool/analytics/model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon('t/delete',
get_string('delete', 'tool_analytics')), get_string('delete', 'tool_analytics'),
['data-action-id' => $actionid]);
@@ -340,10 +334,10 @@ class models_list implements \renderable, \templatable {
$data->models[] = $modeldata;
}
$data->warnings = [];
$data->infos = [];
if (!$onlycli) {
$data->warnings = array(
(object)array('message' => get_string('bettercli', 'tool_analytics'), 'closebutton' => true)
);
$data->warnings[] = (object)array('message' => get_string('bettercli', 'tool_analytics'), 'closebutton' => true);
} else {
$url = new \moodle_url('/admin/settings.php', array('section' => 'analyticssettings'),
'id_s_analytics_onlycli');
@@ -352,12 +346,43 @@ class models_list implements \renderable, \templatable {
if (is_siteadmin()) {
$langstrid = 'clievaluationandpredictions';
}
$data->infos = array(
(object)array('message' => get_string($langstrid, 'tool_analytics', $url->out()),
'closebutton' => true)
);
$data->infos[] = (object)array('message' => get_string($langstrid, 'tool_analytics', $url->out()),
'closebutton' => true);
}
if ($misconfiguredmodels) {
$warningstr = get_string('invalidtimesplittinginmodels', 'tool_analytics', implode(', ', $misconfiguredmodels));
$data->warnings[] = (object)array('message' => $warningstr, 'closebutton' => true);
}
return $data;
}
/**
* Returns the list of time splitting methods that are available for evaluation.
*
* @param \core_analytics\model $model
* @param array $timesplittingsforevaluation
* @return array
*/
private function timesplittings_options_for_evaluation(\core_analytics\model $model,
array $timesplittingsforevaluation): array {
$modeltimesplittingmethods = [
['id' => 'all', 'text' => get_string('alltimesplittingmethods', 'tool_analytics')],
];
$potentialtimesplittingmethods = $model->get_potential_timesplittings();
foreach ($timesplittingsforevaluation as $timesplitting) {
if (empty($potentialtimesplittingmethods[$timesplitting->get_id()])) {
// This time-splitting method can not be used for this model.
continue;
}
$modeltimesplittingmethods[] = [
'id' => \tool_analytics\output\helper::class_to_option($timesplitting->get_id()),
'text' => $timesplitting->get_name()->out(),
];
}
return $modeltimesplittingmethods;
}
}
@@ -90,9 +90,9 @@ class renderer extends plugin_renderer_base {
$langstrdata = (object)array('name' => $timesplitting->get_name(), 'id' => $timesplittingid);
if (CLI_SCRIPT) {
$output .= $OUTPUT->heading(get_string('getpredictionsresultscli', 'tool_analytics', $langstrdata), 3);
$output .= $OUTPUT->heading(get_string('scheduledanalysisresultscli', 'tool_analytics', $langstrdata), 3);
} else {
$output .= $OUTPUT->heading(get_string('getpredictionsresults', 'tool_analytics', $langstrdata), 3);
$output .= $OUTPUT->heading(get_string('scheduledanalysisresults', 'tool_analytics', $langstrdata), 3);
}
}
@@ -208,6 +208,17 @@ class renderer extends plugin_renderer_base {
return $output;
}
/**
* Defer to template.
*
* @param \tool_analytics\output\insights_report $insightsreport
* @return string HTML
*/
protected function render_insights_report(\tool_analytics\output\insights_report $insightsreport): string {
$data = $insightsreport->export_for_template($this);
return parent::render_from_template('tool_analytics/insights_report', $data);
}
/**
* Defer to template.
*
@@ -218,4 +229,26 @@ class renderer extends plugin_renderer_base {
$data = $invalidanalysables->export_for_template($this);
return parent::render_from_template('tool_analytics/invalid_analysables', $data);
}
/**
* Renders an analytics disabled notification.
*
* @return string HTML
*/
public function render_analytics_disabled() {
global $OUTPUT, $PAGE, $FULLME;
$PAGE->set_url($FULLME);
$PAGE->set_title(get_string('pluginname', 'tool_analytics'));
$PAGE->set_heading(get_string('pluginname', 'tool_analytics'));
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('analyticsdisabled', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= \html_writer::tag('a', get_string('continue'), ['class' => 'btn btn-primary',
'href' => (new \moodle_url('/'))->out()]);
$output .= $OUTPUT->footer();
return $output;
}
}
@@ -52,6 +52,11 @@ class predict_models extends \core\task\scheduled_task {
public function execute() {
global $OUTPUT, $PAGE;
if (!\core_analytics\manager::is_analytics_enabled()) {
mtrace(get_string('analyticsdisabled', 'analytics'));
return;
}
$models = \core_analytics\manager::get_all_models(true, true);
if (!$models) {
mtrace(get_string('errornoenabledandtrainedmodels', 'tool_analytics'));
@@ -59,6 +64,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 +74,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());
}
}
@@ -52,6 +52,11 @@ class train_models extends \core\task\scheduled_task {
public function execute() {
global $OUTPUT, $PAGE;
if (!\core_analytics\manager::is_analytics_enabled()) {
mtrace(get_string('analyticsdisabled', 'analytics'));
return;
}
$models = \core_analytics\manager::get_all_models(true);
if (!$models) {
mtrace(get_string('errornoenabledmodels', 'tool_analytics'));
@@ -70,6 +75,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 +84,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());
}
}
+13 -8
View File
@@ -32,20 +32,20 @@ $help = "Enables the provided model.
Options:
--modelid Model id
--list List models
--timesplitting Time splitting method full class name
--analysisinterval Time splitting method full class name
-h, --help Print out this help
Example:
\$ php admin/tool/analytics/cli/enable_model.php --modelid=1 --timesplitting=\"\\core\\analytics\\time_splitting\\quarters\"
\$ php admin/tool/analytics/cli/enable_model.php --modelid=1 --analysisinterval=\"\\core\\analytics\\time_splitting\\quarters\"
";
// Now get cli options.
list($options, $unrecognized) = cli_get_params(
array(
'help' => false,
'list' => false,
'modelid' => false,
'timesplitting' => false
'help' => false,
'list' => false,
'modelid' => false,
'analysisinterval' => false
),
array(
'h' => 'help',
@@ -57,12 +57,17 @@ if ($options['help']) {
exit(0);
}
if (!\core_analytics\manager::is_analytics_enabled()) {
echo get_string('analyticsdisabled', 'analytics') . PHP_EOL;
exit(0);
}
if ($options['list'] || $options['modelid'] === false) {
\tool_analytics\clihelper::list_models();
exit(0);
}
if ($options['timesplitting'] === false) {
if ($options['analysisinterval'] === false) {
echo $help;
exit(0);
}
@@ -73,7 +78,7 @@ if ($options['timesplitting'] === false) {
$model = new \core_analytics\model($options['modelid']);
// Evaluate its suitability to predict accurately.
$model->enable($options['timesplitting']);
$model->enable($options['analysisinterval']);
cli_heading(get_string('success'));
exit(0);
+13 -15
View File
@@ -33,8 +33,7 @@ Options:
--modelid Model id
--list List models
--non-interactive Not interactive questions
--timesplitting Restrict the evaluation to 1 single time splitting method (Optional)
--filter Analyser dependant. e.g. A courseid would evaluate the model using a single course (Optional)
--analysisinterval Restrict the evaluation to 1 single analysis interval (Optional)
--mode 'configuration' or 'trainedmodel'. You can only use mode=trainedmodel when the trained" .
" model was imported" . "
--reuse-prev-analysed Reuse recently analysed courses instead of analysing the whole site. Set it to false while" .
@@ -42,7 +41,7 @@ Options:
-h, --help Print out this help
Example:
\$ php admin/tool/analytics/cli/evaluate_model.php --modelid=1 --timesplitting='\\core\\analytics\\time_splitting\\quarters' --filter=123,321
\$ php admin/tool/analytics/cli/evaluate_model.php --modelid=1 --analysisinterval='\\core\\analytics\\time_splitting\\quarters'
";
// Now get cli options.
@@ -51,11 +50,10 @@ list($options, $unrecognized) = cli_get_params(
'help' => false,
'modelid' => false,
'list' => false,
'timesplitting' => false,
'analysisinterval' => false,
'mode' => 'configuration',
'reuse-prev-analysed' => true,
'non-interactive' => false,
'filter' => false
),
array(
'h' => 'help',
@@ -67,6 +65,11 @@ if ($options['help']) {
exit(0);
}
if (!\core_analytics\manager::is_analytics_enabled()) {
echo get_string('analyticsdisabled', 'analytics') . PHP_EOL;
exit(0);
}
if ($options['list']) {
\tool_analytics\clihelper::list_models();
exit(0);
@@ -78,17 +81,12 @@ if ($options['modelid'] === false) {
exit(0);
}
// Reformat them as an array.
if ($options['filter'] !== false) {
$options['filter'] = explode(',', $options['filter']);
}
if ($options['mode'] !== 'configuration' && $options['mode'] !== 'trainedmodel') {
cli_error('Error: The provided mode is not supported');
}
if ($options['mode'] == 'trainedmodel' && $options['timesplitting']) {
cli_error('Sorry, no time splitting method can be specified when using \'trainedmodel\' mode.');
if ($options['mode'] == 'trainedmodel' && $options['analysisinterval']) {
cli_error('Sorry, no analysis interval can be specified when using \'trainedmodel\' mode.');
}
// We need admin permissions.
@@ -102,9 +100,10 @@ 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'],
'timesplitting' => $options['analysisinterval'],
'reuseprevanalysed' => $options['reuse-prev-analysed'],
'mode' => $options['mode'],
);
@@ -114,7 +113,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']) {
+12 -2
View File
@@ -27,6 +27,13 @@ require_once(__DIR__ . '/../../../config.php');
require_login();
\core_analytics\manager::check_can_manage_models();
if (!\core_analytics\manager::is_analytics_enabled()) {
$PAGE->set_context(\context_system::instance());
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_analytics_disabled();
exit(0);
}
$returnurl = new \moodle_url('/admin/tool/analytics/index.php');
$url = new \moodle_url('/admin/tool/analytics/createmodel.php');
$title = get_string('createmodel', 'tool_analytics');
@@ -38,6 +45,8 @@ $targets = array_filter(\core_analytics\manager::get_all_targets(), function($ta
return (!$target->based_on_assumptions());
});
// Set 'supportscontexts' to true as at this stage we don't know if the contexts are supported by
// the selected target.
$customdata = array(
'trainedmodel' => false,
'staticmodel' => false,
@@ -45,6 +54,7 @@ $customdata = array(
'indicators' => \core_analytics\manager::get_all_indicators(),
'timesplittings' => \core_analytics\manager::get_all_time_splittings(),
'predictionprocessors' => \core_analytics\manager::get_all_prediction_processors(),
'supportscontexts' => true,
);
$mform = new \tool_analytics\output\form\edit_model(null, $customdata);
@@ -79,8 +89,8 @@ if ($mform->is_cancelled()) {
$indicators = array_diff_key($indicators, $invalidindicators);
}
// Update the model with the valid list of indicators.
$model->update($data->enabled, $indicators, $timesplitting, $predictionsprocessor);
// Update the model with the rest of the data provided in the form.
$model->update($data->enabled, $indicators, $timesplitting, $predictionsprocessor, $data->contexts);
$message = '';
$messagetype = \core\output\notification::NOTIFY_SUCCESS;
+37
View File
@@ -0,0 +1,37 @@
<?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/>.
/**
* Tool analytics webservice definitions.
*
* @package tool_analytics
* @copyright 2019 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$functions = array(
'tool_analytics_potential_contexts' => array(
'classname' => 'tool_analytics\external',
'methodname' => 'potential_contexts',
'description' => 'Retrieve the list of potential contexts for a model.',
'type' => 'read',
'ajax' => true,
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
),
);
+8 -1
View File
@@ -27,6 +27,13 @@ require_once(__DIR__ . '/../../../config.php');
require_login();
\core_analytics\manager::check_can_manage_models();
if (!\core_analytics\manager::is_analytics_enabled()) {
$PAGE->set_context(\context_system::instance());
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_analytics_disabled();
exit(0);
}
$returnurl = new \moodle_url('/admin/tool/analytics/index.php');
$url = new \moodle_url('/admin/tool/analytics/importmodel.php');
$title = get_string('importmodel', 'tool_analytics');
@@ -56,4 +63,4 @@ if ($form->is_cancelled()) {
echo $OUTPUT->header();
$form->display();
echo $OUTPUT->footer();
echo $OUTPUT->footer();
@@ -0,0 +1 @@
getpredictions,tool_analytics
+30 -15
View File
@@ -23,9 +23,14 @@
*/
$string['accuracy'] = 'Accuracy';
$string['actions'] = 'Actions';
$string['actionsexecutedbyusers'] = 'Actions executed by users';
$string['actionsexecutedbyusersfor'] = 'Actions executed by users for "{$a}" model';
$string['actionexecutedgroupedusefulness'] = 'Grouped actions';
$string['allpredictions'] = 'All predictions';
$string['alltimesplittingmethods'] = 'All time-splitting methods';
$string['alltimesplittingmethods'] = 'All analysis intervals';
$string['analysingsitedata'] = 'Analysing the site';
$string['analysis'] = 'Analysis';
$string['analyticmodels'] = 'Analytics models';
$string['bettercli'] = 'Evaluating models and generating predictions may involve heavy processing. It is recommended to run these actions from the command line.';
$string['cantguessstartdate'] = 'Can\'t guess the start date';
@@ -33,22 +38,24 @@ $string['cantguessenddate'] = 'Can\'t guess the end date';
$string['classdoesnotexist'] = 'Class {$a} does not exist';
$string['clearpredictions'] = 'Clear predictions';
$string['clearmodelpredictions'] = 'Are you sure you want to clear all "{$a}" predictions?';
$string['clienablemodel'] = 'You can enable the model by selecting a time-splitting method by its ID. Note that you can also enable it later using the web interface (\'none\' to exit).';
$string['clienablemodel'] = 'You can enable the model by selecting an analysis interval by its ID. Note that you can also enable it later using the web interface (\'none\' to exit).';
$string['clievaluationandpredictions'] = 'A scheduled task iterates through enabled models and gets predictions. Models evaluation via the web interface is disabled. You can allow these processes to be executed manually via the web interface by disabling the <a href="{$a}">\'onlycli\'</a> analytics setting.';
$string['clievaluationandpredictionsnoadmin'] = 'A scheduled task iterates through enabled models and gets predictions. Models evaluation via the web interface is disabled. It may be enabled by a site administrator.';
$string['component'] = 'Component';
$string['componentcore'] = 'Core';
$string['componentselect'] = 'Select all models provided by the component \'{$a}\'';
$string['componentselectnone'] = 'Unselect all';
$string['contexts'] = 'Contexts';
$string['contexts_help'] = 'The model will be limited to this set of contexts. No context restrictions will be applied if no contexts are selected.';
$string['createmodel'] = 'Create model';
$string['currenttimesplitting'] = 'Current time-splitting method';
$string['currenttimesplitting'] = 'Current analysis interval';
$string['delete'] = 'Delete';
$string['deletemodelconfirmation'] = 'Are you sure you want to delete "{$a}"? These changes cannot be reverted.';
$string['disabled'] = 'Disabled';
$string['editmodel'] = 'Edit "{$a}" model';
$string['edittrainedwarning'] = 'This model has already been trained. Note that changing its indicators or its time-splitting method will delete its previous predictions and start generating new predictions.';
$string['edittrainedwarning'] = 'This model has already been trained. Note that changing its indicators or its analysis interval will delete its previous predictions and start generating new predictions.';
$string['enabled'] = 'Enabled';
$string['errorcantenablenotimesplitting'] = 'You need to select a time-splitting method before enabling the model';
$string['errorcantenablenotimesplitting'] = 'You need to select an analysis interval before enabling the model';
$string['errornoenabledandtrainedmodels'] = 'There are no enabled and trained models to predict.';
$string['errornoenabledmodels'] = 'There are no enabled models to train.';
$string['errornoexport'] = 'Only trained models can be exported';
@@ -71,15 +78,13 @@ $string['evaluationmodecoltrainedmodel'] = 'Trained model';
$string['evaluationmodecolconfiguration'] = 'Configuration';
$string['evaluationmodeconfiguration'] = 'Evaluate the model configuration';
$string['evaluationinbatches'] = 'The site contents are calculated and stored in batches. The evaluation process may be stopped at any time. The next time it is run, it will continue from the point when it was stopped.';
$string['executescheduledanalysis'] = 'Execute scheduled analysis';
$string['export'] = 'Export';
$string['exportincludeweights'] = 'Include the weights of the trained model';
$string['exportmodel'] = 'Export configuration';
$string['exporttrainingdata'] = 'Export training data';
$string['getpredictionsresultscli'] = 'Results using {$a->name} (id: {$a->id}) time-splitting method';
$string['getpredictionsresults'] = 'Results using {$a->name} time-splitting method';
$string['extrainfo'] = 'Info';
$string['generalerror'] = 'Evaluation error. Status code {$a}';
$string['getpredictions'] = 'Get predictions';
$string['goodmodel'] = 'This is a good model for using to obtain predictions. Enable it to start obtaining predictions.';
$string['importmodel'] = 'Import model';
$string['indicators'] = 'Indicators';
@@ -87,6 +92,7 @@ $string['indicators_help'] = 'The indicators are what you think will lead to an
$string['indicators_link'] = 'Indicators';
$string['indicatorsnum'] = 'Number of indicators: {$a}';
$string['info'] = 'Info';
$string['insightsreport'] = 'Insights report';
$string['ignoreversionmismatches'] = 'Ignore version mismatches';
$string['ignoreversionmismatchescheckbox'] = 'Ignore the differences between this site version and the original site version.';
$string['importedsuccessfully'] = 'The model has been successfully imported.';
@@ -94,7 +100,10 @@ $string['insights'] = 'Insights';
$string['invalidanalysables'] = 'Invalid site elements';
$string['invalidanalysablesinfo'] = 'This page lists analysable elements that can\'t be used by this prediction model. The listed elements can\'t be used either to train the prediction model nor can the prediction model obtain predictions for them.';
$string['invalidanalysablestable'] = 'Invalid site analysable elements table';
$string['invalidindicatorsremoved'] = 'A new model has been added. Indicators that do not work with the selected target have been automatically removed.';
$string['invalidcurrenttimesplitting'] = 'The current analysis interval is invalid for the target of this model. Please select a different interval.';
$string['invalidindicatorsremoved'] = 'A new model has been added. Indicators that don\'t work with the selected target have been automatically removed.';
$string['invalidtimesplitting'] = 'The selected analysis interval is invalid for the selected target.';
$string['invalidtimesplittinginmodels'] = 'The analysis interval used by some of the models is invalid. Please select a different interval for the following models: {$a}';
$string['invalidprediction'] = 'Invalid to get predictions';
$string['invalidtraining'] = 'Invalid to train the model';
$string['loginfo'] = 'Log extra info';
@@ -103,12 +112,13 @@ $string['modelid'] = 'Model ID';
$string['modelinvalidanalysables'] = 'Invalid analysable elements for "{$a}" model';
$string['modelname'] = 'Model name';
$string['modelresults'] = '{$a} results';
$string['modeltimesplitting'] = 'Time splitting';
$string['modeltimesplitting'] = 'Analysis interval';
$string['newmodel'] = 'New model';
$string['nextpage'] = 'Next page';
$string['noactionsfound'] = 'Users have not executed any actions on the generated insights.';
$string['nodatatoevaluate'] = 'There is no data to evaluate the model';
$string['nodatatopredict'] = 'No new elements to get predictions for';
$string['nodatatotrain'] = 'There is no new data that can be used for training';
$string['nodatatopredict'] = 'No new elements to get predictions for.';
$string['nodatatotrain'] = 'There is no new data that can be used for training.';
$string['noinvalidanalysables'] = 'This site does not contain any invalid analysable element.';
$string['notdefined'] = 'Not yet defined';
$string['pluginname'] = 'Analytic models';
@@ -125,12 +135,14 @@ $string['restoredefaultsome'] = 'Succesfully re-created {$a->count} new model(s)
$string['restoredefaultsubmit'] = 'Restore selected';
$string['samestartdate'] = 'Current start date is good';
$string['sameenddate'] = 'Current end date is good';
$string['selecttimesplittingforevaluation'] = 'Select the time-splitting method you want to use to evaluate the model configuration.';
$string['scheduledanalysisresults'] = 'Results using {$a->name} analysis interval';
$string['scheduledanalysisresultscli'] = 'Results using {$a->name} (id: {$a->id}) analysis interval';
$string['selecttimesplittingforevaluation'] = 'Select the analysis interval you want to use to evaluate the model configuration.';
$string['target'] = 'Target';
$string['target_help'] = 'The target is what the model will predict.';
$string['target_link'] = 'Targets';
$string['timesplittingnotdefined'] = 'Time splitting is not defined.';
$string['timesplittingnotdefined_help'] = 'You need to select a time-splitting method before enabling the model.';
$string['timesplittingnotdefined'] = 'No analysis interval is defined.';
$string['timesplittingnotdefined_help'] = 'You need to select an analysis interval before enabling the model.';
$string['trainandpredictmodel'] = 'Training model and calculating predictions';
$string['trainingprocessfinished'] = 'Training process finished';
$string['trainingresults'] = 'Training results';
@@ -140,3 +152,6 @@ $string['viewlog'] = 'Evaluation log';
$string['weeksenddateautomaticallyset'] = 'End date automatically set based on start date and the number of sections';
$string['weeksenddatedefault'] = 'End date automatically calculated from the course start date.';
$string['privacy:metadata'] = 'The Analytic models plugin does not store any personal data.';
// Deprecated since Moodle 3.8.
$string['getpredictions'] = 'Get predictions';
+43 -6
View File
@@ -33,6 +33,13 @@ require_login();
$model = new \core_analytics\model($id);
\core_analytics\manager::check_can_manage_models();
if (!\core_analytics\manager::is_analytics_enabled()) {
$PAGE->set_context(\context_system::instance());
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_analytics_disabled();
exit(0);
}
$returnurl = new \moodle_url('/admin/tool/analytics/index.php');
$params = array('id' => $id, 'action' => $action);
$url = new \moodle_url('/admin/tool/analytics/model.php', $params);
@@ -45,8 +52,8 @@ switch ($action) {
case 'evaluate':
$title = get_string('evaluatemodel', 'tool_analytics');
break;
case 'getpredictions':
$title = get_string('getpredictions', 'tool_analytics');
case 'scheduledanalysis':
$title = get_string('analysis', 'tool_analytics');
break;
case 'log':
$title = get_string('viewlog', 'tool_analytics');
@@ -69,6 +76,9 @@ switch ($action) {
case 'clear':
$title = get_string('clearpredictions', 'tool_analytics');
break;
case 'insightsreport':
$title = get_string('insightsreport', 'tool_analytics');
break;
case 'invalidanalysables':
$title = get_string('invalidanalysables', 'tool_analytics');
break;
@@ -110,13 +120,21 @@ switch ($action) {
case 'edit':
confirm_sesskey();
$invalidcurrenttimesplitting = $model->invalid_timesplitting_selected();
$potentialtimesplittings = $model->get_potential_timesplittings();
$customdata = array(
'id' => $model->get_id(),
'trainedmodel' => $model->is_trained(),
'staticmodel' => $model->is_static(),
'invalidcurrenttimesplitting' => (!empty($invalidcurrenttimesplitting)),
'targetclass' => $model->get_target()->get_id(),
'targetname' => $model->get_target()->get_name(),
'indicators' => $model->get_potential_indicators(),
'timesplittings' => \core_analytics\manager::get_all_time_splittings(),
'predictionprocessors' => \core_analytics\manager::get_all_prediction_processors()
'timesplittings' => $potentialtimesplittings,
'predictionprocessors' => \core_analytics\manager::get_all_prediction_processors(),
'supportscontexts' => ($model->get_analyser(['notimesplitting' => true]))::context_restriction_support(),
'contexts' => $model->get_contexts(),
);
$mform = new \tool_analytics\output\form\edit_model(null, $customdata);
@@ -141,7 +159,11 @@ switch ($action) {
$predictionsprocessor = false;
}
$model->update($data->enabled, $indicators, $timesplitting, $predictionsprocessor);
if (!isset($data->contexts)) {
$data->contexts = null;
}
$model->update($data->enabled, $indicators, $timesplitting, $predictionsprocessor, $data->contexts);
redirect($returnurl);
}
@@ -152,6 +174,9 @@ switch ($action) {
$callable = array('\tool_analytics\output\helper', 'class_to_option');
$modelobj->indicators = array_map($callable, json_decode($modelobj->indicators));
$modelobj->timesplitting = \tool_analytics\output\helper::class_to_option($modelobj->timesplitting);
if ($modelobj->contextids) {
$modelobj->contexts = array_map($callable, json_decode($modelobj->contextids));
}
$modelobj->predictionsprocessor = \tool_analytics\output\helper::class_to_option($modelobj->predictionsprocessor);
$mform->set_data($modelobj);
$mform->display();
@@ -200,7 +225,7 @@ switch ($action) {
echo $renderer->render_evaluate_results($results, $model->get_analyser()->get_logs());
break;
case 'getpredictions':
case 'scheduledanalysis':
confirm_sesskey();
if ($onlycli) {
@@ -273,6 +298,18 @@ switch ($action) {
redirect($returnurl);
break;
case 'insightsreport':
$contextid = optional_param('contextid', null, PARAM_INT);
echo $OUTPUT->header();
$renderable = new \tool_analytics\output\insights_report($model, $contextid);
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render($renderable);
break;
case 'invalidanalysables':
echo $OUTPUT->header();
+7
View File
@@ -27,6 +27,13 @@ require_once(__DIR__ . '/../../../config.php');
require_login();
\core_analytics\manager::check_can_manage_models();
if (!\core_analytics\manager::is_analytics_enabled()) {
$PAGE->set_context(\context_system::instance());
$renderer = $PAGE->get_renderer('tool_analytics');
echo $renderer->render_analytics_disabled();
exit(0);
}
$confirmed = optional_param('confirmed', false, PARAM_BOOL);
$restoreids = optional_param_array('restoreid', [], PARAM_ALPHANUM);
+4 -2
View File
@@ -24,5 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$ADMIN->add('analytics', new admin_externalpage('analyticmodels', get_string('analyticmodels', 'tool_analytics'),
"$CFG->wwwroot/$CFG->admin/tool/analytics/index.php", 'moodle/analytics:managemodels'));
if (\core_analytics\manager::is_analytics_enabled()) {
$ADMIN->add('analytics', new admin_externalpage('analyticmodels', get_string('analyticmodels', 'tool_analytics'),
"$CFG->wwwroot/$CFG->admin/tool/analytics/index.php", 'moodle/analytics:managemodels'));
}
@@ -0,0 +1,65 @@
{{!
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/>.
}}
{{!
@template tool_analytics/insights_report
Template for the insights report.
Classes required for JS:
* none
Data attributes required for JS:
* none
Context variables required for this template:
* none
Example context (json):
{
"modelname": "Not engaging courses",
"noactions": {
"message": "Users have not executed any actions on the generated insights.",
"announce": "true"
}
}
}}
<div class="box">
<h3>{{#str}}actionsexecutedbyusersfor, tool_analytics, {{modelname}}{{/str}}</h3>
{{#contextselect}}
<div class="mt-3">
{{> core/single_select }}
</div>
{{/contextselect}}
{{#noactions}}
<div class="mt-3 mb-1">
{{> core/notification_info}}
</div>
{{/noactions}}
{{^noanalysables}}
<div class="row">
<div class="col-xl-6">
{{{separatedchart}}}
</div>
<div class="col-xl-6">
{{{groupedchart}}}
</div>
</div>
{{/noanalysables}}
</div>
@@ -58,7 +58,7 @@
"models": [
{
"defid": "id24680aceg",
"targetname": "No teaching",
"targetname": "Courses at risk of not starting",
"targetclass": "\\core\\analytics\\target\\no_teaching",
"indicatorsnum": 2,
"indicators": [
@@ -15,55 +15,55 @@ Feature: Restoring default models
Scenario: Restore a single deleted default model
Given I log in as "manager"
And I navigate to "Analytics > Analytics models" in site administration
# Delete 'No teaching' model.
And I click on "Delete" "link" in the "No teaching" "table_row"
# Delete 'Courses at risk of not starting' model.
And I click on "Delete" "link" in the "Courses at risk of not starting" "table_row"
And I should see "Analytics models"
And I should not see "No teaching"
And I should not see "Courses at risk of not starting"
# Delete 'Students at risk of dropping out' model.
And I click on "Delete" "link" in the "Students at risk of dropping out" "table_row"
And I should see "Analytics models"
And I should not see "Students at risk of dropping out"
# Go to the page for restoring deleted models.
When I click on "Restore default models" "link"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should see "Students at risk of dropping out"
# Select and restore the 'No teaching' model.
And I set the field with xpath "//tr[contains(normalize-space(.), 'No teaching')]//input[@type='checkbox']" to "1"
# Select and restore the 'Courses at risk of not starting' model.
And I set the field with xpath "//tr[contains(normalize-space(.), 'Courses at risk of not starting')]//input[@type='checkbox']" to "1"
And I click on "Restore selected" "button"
Then I should see "Succesfully re-created 1 new model(s)."
And I should see "Analytics models"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should not see "Students at risk of dropping out"
Scenario: Restore multiple deleted default models at once
Given I log in as "manager"
And I navigate to "Analytics > Analytics models" in site administration
# Delete 'No teaching' model.
And I click on "Delete" "link" in the "No teaching" "table_row"
# Delete 'Courses at risk of not starting' model.
And I click on "Delete" "link" in the "Courses at risk of not starting" "table_row"
And I should see "Analytics models"
And I should not see "No teaching"
And I should not see "Courses at risk of not starting"
# Delete 'Students at risk of dropping out' model.
And I click on "Delete" "link" in the "Students at risk of dropping out" "table_row"
And I should see "Analytics models"
And I should not see "Students at risk of dropping out"
# Go to the page for restoring deleted models.
When I click on "Restore default models" "link"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should see "Students at risk of dropping out"
# Select and restore both models.
And I set the field with xpath "//tr[contains(normalize-space(.), 'No teaching')]//input[@type='checkbox']" to "1"
And I set the field with xpath "//tr[contains(normalize-space(.), 'Courses at risk of not starting')]//input[@type='checkbox']" to "1"
And I set the field with xpath "//tr[contains(normalize-space(.), 'Students at risk of dropping out')]//input[@type='checkbox']" to "1"
And I click on "Restore selected" "button"
Then I should see "Succesfully re-created 2 new model(s)."
And I should see "Analytics models"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should see "Students at risk of dropping out"
Scenario: Going to the restore page while no models can be restored
Given I log in as "manager"
And I navigate to "Analytics > Analytics models" in site administration
And I should see "Analytics models"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
When I click on "Restore default models" "link"
Then I should see "All default models provided by core and installed plugins have been created. No new models were found; there is nothing to restore."
And I click on "Back" "link"
@@ -73,23 +73,23 @@ Feature: Restoring default models
Scenario: User can select and restore all missing models
Given I log in as "manager"
And I navigate to "Analytics > Analytics models" in site administration
# Delete 'No teaching' model.
And I click on "Actions" "link" in the "No teaching" "table_row"
And I click on "Delete" "link" in the "No teaching" "table_row"
# Delete 'Courses at risk of not starting' model.
And I click on "Actions" "link" in the "Courses at risk of not starting" "table_row"
And I click on "Delete" "link" in the "Courses at risk of not starting" "table_row"
And I click on "Delete" "button" in the "Delete" "dialogue"
And I should see "Analytics models"
And I should not see "No teaching"
And I should not see "Courses at risk of not starting"
# Delete 'Students at risk of dropping out' model.
And I click on "Actions" "link" in the "Students at risk of dropping out" "table_row"
And I click on "Delete" "link" in the "Students at risk of dropping out" "table_row"
And I click on "Delete" "button" in the "Delete" "dialogue"
And I should see "Analytics models"
And I should not see "No teaching"
And I should not see "Courses at risk of not starting"
And I should not see "Students at risk of dropping out"
# Go to the page for restoring deleted models.
And I click on "New model" "link"
And I click on "Restore default models" "link"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should see "Students at risk of dropping out"
# Attempt to submit the form without selecting any model.
And I click on "Restore selected" "button"
@@ -99,5 +99,5 @@ Feature: Restoring default models
And I click on "Restore selected" "button"
Then I should see "Succesfully re-created 2 new model(s)."
And I should see "Analytics models"
And I should see "No teaching"
And I should see "Courses at risk of not starting"
And I should see "Students at risk of dropping out"

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