Compare commits

...

2583 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 5b78584fdb Moodle release 3.5.1 2018-07-07 06:54:07 +02:00
AMOS bot ce390c4725 Automatically generated installer lang files 2018-07-07 00:08:27 +00:00
Andrew Nicols 8675c2c908 weekly release 3.5+ 2018-07-06 14:05:15 +08:00
Andrew Nicols 70ffd8bb2b Merge branch 'install_35_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_35_STABLE 2018-07-06 14:05:13 +08:00
Jake Dallimore c2fea8ae43 Merge branch 'MDL-62670-35' of git://github.com/sarjona/moodle into MOODLE_35_STABLE 2018-07-05 09:26:05 +08:00
AMOS bot 0a520053cb Automatically generated installer lang files 2018-07-05 00:08:24 +00:00
Sara Arjona e154204728 MDL-62670 policy: viewall.php must display always all active policies
The viewall.php page is called from the mobile app to display the policies
to the users before agree them. That's why it must display all the active
policies (even for guests), to guarantee the users agree all current
policies from the app.
2018-07-04 12:18:52 +02:00
Sara Arjona 2d90a7d91a MDL-62670 policy: Remove footer link when there are not active policies 2018-07-04 12:18:52 +02:00
Tim Hunt 8ac7c623d3 MDL-62820 question import: properly escape output 2018-07-04 15:40:58 +08:00
Jake Dallimore caa9881c0d Merge branch 'wip-nolink-bug-35' of https://gitlab.di.unito.it/rabellino/moodle into MOODLE_35_STABLE 2018-07-04 14:38:13 +08:00
Jake Dallimore f0188d7b66 Merge branch 'MDL-41463-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-07-04 12:59:21 +08:00
Jake Dallimore ab94fee038 Merge branch 'MDL-44081-35' of git://github.com/zig-moodle/moodle into MOODLE_35_STABLE 2018-07-04 10:50:48 +08:00
Andrew Nicols 2d64d63373 MDL-62834 behat: Move include to function 2018-07-04 10:45:25 +08:00
Eloy Lafuente (stronk7) 6cb165d681 Merge branch 'wip-MDL-62526-35' of git://github.com/marinaglancy/moodle into MOODLE_35_STABLE 2018-07-04 04:19:24 +02:00
Adrian Greeve 55fc303a5f MDL-62616 tool_log: Add a setting to disable exporting logs. 2018-07-04 09:59:32 +08:00
Eloy Lafuente (stronk7) c453ea21e1 Merge branch 'MDL-62288_35' of https://bitbucket.org/ujiapps/moodle-uji into MOODLE_35_STABLE 2018-07-04 01:21:19 +02:00
Eloy Lafuente (stronk7) 24e4ec9d60 Merge branch 'MDL-62792_35' of https://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-07-04 00:55:22 +02:00
Eloy Lafuente (stronk7) 25e9be8ea9 Merge branch 'MDL-62838_35' of git://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-07-04 00:52:14 +02:00
Eloy Lafuente (stronk7) 9ffcaa7db7 Merge branch 'MDL-62834_35' of git://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-07-04 00:46:40 +02:00
Eloy Lafuente (stronk7) 936d21d2dd Merge branch 'MDL-62211-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-07-03 23:33:48 +02:00
David Monllao d20b4b2f23 Merge branch 'MDL-61296-35' of git://github.com/cescobedo/moodle into MOODLE_35_STABLE 2018-07-03 23:33:47 +02:00
David Monllao d587c4bd90 Merge branch 'MDL-62656-35' of git://github.com/mihailges/moodle into MOODLE_35_STABLE 2018-07-03 23:33:47 +02:00
David Monllao 3828033e98 Merge branch 'MDL-60014-35-catcherror-nopermission-annotatepdfcron' of https://github.com/Eva-Dv/moodle into MOODLE_35_STABLE 2018-07-03 23:33:46 +02:00
David Monllao 4892662238 Merge branch 'MDL-62691-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-07-03 23:33:46 +02:00
David Monllao ccbd142a63 Merge branch 'MDL-62813-35' of git://github.com/lameze/moodle into MOODLE_35_STABLE 2018-07-03 23:33:45 +02:00
David Monllao 3b52f52351 Merge branch 'MDL-62654-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-07-03 15:19:34 +02:00
David Monllao 173968b25d Merge branch 'MDL-32232-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-07-03 14:00:20 +02:00
David Mudrák 4cdd9e77dc MDL-62796 tool_policy: Fix a regression in Behat test
We now correctly show the popup with links to policies that apply to
anonymous visitors of the site. So the name of the guests only policy
became visible in this popup in more cases and it caused false failures.

The point of the lines affected by this patch is to make sure that the
policy does / does not appear in the list of policies to be accepted. So
I am making it more specific of where the text is / is not supposed to
be seen.
2018-07-03 11:05:18 +02:00
Jake Dallimore 483d8fefa8 Merge branch 'MDL-59261-35' of git://github.com/ryanwyllie/moodle into MOODLE_35_STABLE 2018-07-03 14:44:53 +08:00
Bas Brands 654eac4f13 MDL-59261 theme_boost: compiled css fallback 2018-07-03 14:14:05 +08:00
Michael Hawkins 86699bedb0 MDL-62767 theme: Remove old localcaches when clearing/updating theme cache 2018-07-03 14:00:40 +08:00
Michael Hawkins 914e26d916 MDL-62801 themes: Added missing filelib include 2018-07-03 13:08:33 +08:00
Marina Glancy ced6691934 MDL-62790 course: cap check in core_course_get_categories 2018-07-03 12:02:18 +08:00
Jake Dallimore ff1fbf2992 Merge branch 'MDL-62715-35' of git://github.com/andrewnicols/moodle into MOODLE_35_STABLE 2018-07-03 08:49:52 +08:00
Eloy Lafuente (stronk7) 49e435c00a Merge branch 'MDL-62763-35-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_35_STABLE 2018-07-02 20:09:15 +02:00
Eloy Lafuente (stronk7) b67ae5a0ad Merge branch 'MDL-62621-35-ixcomment' of git://github.com/mudrd8mz/moodle into MOODLE_35_STABLE 2018-07-02 20:02:25 +02:00
Helen Foster b2b1bb2d29 MDL-62763 lang: Merge English strings from the en_fix language pack
Significant string changes:

* various strings in tool_dataprivacy and tool_policy - 'Data Protection
  Officer' changed to 'privacy officer'
* idnumbermod_help,core - mentioning resource and custom reporting
2018-07-02 13:36:29 +02:00
David Monllao 5a13884a0f Merge branch 'wip-MDL-62796-35' of git://github.com/marinaglancy/moodle into MOODLE_35_STABLE 2018-07-02 12:21:52 +02:00
David Monllao d42328e223 Merge branch 'MDL-62713-m35' of https://github.com/sammarshallou/moodle into MOODLE_35_STABLE 2018-07-02 10:42:18 +02:00
Jake Dallimore 3879b520b7 Merge branch 'MDL-62801-35' of git://github.com/mickhawkins/moodle into MOODLE_35_STABLE 2018-07-02 16:19:10 +08:00
David Mudrák 6a3cffd3c6 MDL-62621 comments: Add missing indexes on comments table
The composite index over the fields contextid, commentarea and itemid
helps the comments API to load all comments for the given area
effectively.

The index over the userid field helps the privacy API to load all
comments by the given user.
2018-07-02 10:13:00 +02:00
Mihail Geshoski 40790755ce MDL-62656 course: Align elements in course and category management 2018-07-02 08:25:34 +08:00
AMOS bot 310a1f0895 Automatically generated installer lang files 2018-06-30 00:08:23 +00:00
Tim Hunt ed3468e40b MDL-62838 filters: dont use statics inside functions. Use MUC 2018-06-29 17:25:13 +01:00
Tim Hunt 9bedb84419 MDL-62834 behat: new step for enabling filters 2018-06-29 11:27:46 +01:00
sam marshall c843630aee MDL-62713 core_search: Cron error indexing sections in some cases 2018-06-29 10:52:53 +01:00
Michael Hawkins 233847bdb7 MDL-62801 themes: Remove old mustache caches when new one generated 2018-06-29 10:50:21 +08:00
Jun Pataleta f29d518ba8 MDL-62211 tool_dataprivacy: Request filtering and pagination
* Make data requests page use table_sql to make it sortable
* Also, add an autocomplete element that enables filtering by
  status and request type.
2018-06-29 10:32:25 +08:00
Zig Tan 749c7cc5a9 MDL-44081 assign: Fix Grader annotation button accessibility ordering 2018-06-29 09:28:45 +08:00
Luca Bösch bb3ce79c7e MDL-41463 course: Reset remove groups section advanced toggle. 2018-06-28 23:05:40 +02:00
Luca Bösch 4b52a5b2c6 MDL-32232 lesson: changing a page type chooser option for consistency 2018-06-28 23:05:29 +02:00
Sergio Rabellino af344834e1 MDL-61403 filter: Fix for the nolink tag ignored
Fix for the nolink tag ignored if there are some other attributes defined in the same span
2018-06-28 11:01:01 +02:00
Simey Lameze cdc9e56198 MDL-62813 calendar: add behat test for form validation 2018-06-28 14:12:18 +08:00
Simey Lameze 0e0fd72d98 MDL-62813 calendar: fix dmlreadexception on event form 2018-06-28 14:12:18 +08:00
Jake Dallimore 543005a342 weekly release 3.5+ 2018-06-28 14:03:04 +08:00
Marina Glancy 5c33665a74 MDL-62526 admin: ask privacy policy agreement for moodle.net 2018-06-28 11:44:38 +08:00
Eloy Lafuente (stronk7) 362518ef34 Merge branch 'MDL-62325-35' of git://github.com/rezaies/moodle into MOODLE_35_STABLE 2018-06-28 02:06:03 +02:00
Eloy Lafuente (stronk7) ff246f2260 Merge branch 'wip-MDL-62755-35' of git://github.com/abgreeve/moodle into MOODLE_35_STABLE 2018-06-28 01:56:37 +02:00
Eloy Lafuente (stronk7) fc1b13ede9 Merge branch 'MDL-61889-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-06-28 01:49:31 +02:00
Eloy Lafuente (stronk7) 458b0fb900 Merge branch 'MDL-62747_35' of https://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-06-28 00:32:34 +02:00
Matteo Scaramuccia 5df53c769e MDL-51080 env: warn when running MariaDB w/ wrong dbtype 2018-06-28 00:15:28 +02:00
Jake Dallimore 380a437428 Merge branch 'MDL-61732-35' of https://github.com/Dagefoerde/moodle into MOODLE_35_STABLE 2018-06-27 12:18:13 +08:00
Eloy Lafuente (stronk7) 5f6539e379 Merge branch 'MDL-45088-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-27 03:23:22 +02:00
Eloy Lafuente (stronk7) b44ddd4a7f Merge branch 'MDL-62703-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-27 03:17:45 +02:00
Eloy Lafuente (stronk7) 833e2398ef Merge branch 'MDL-62471_35' of git://github.com/dmonllao/moodle into MOODLE_35_STABLE 2018-06-27 02:41:53 +02:00
Eloy Lafuente (stronk7) df9443db71 Merge branch 'MDL-62735-35-refactor' of https://github.com/snake/moodle into MOODLE_35_STABLE 2018-06-26 10:44:24 +02:00
Jake Dallimore 4d23edfb37 Merge branch 'MDL-62698_35' of git://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-06-26 15:30:32 +08:00
Juan Segarra Montesinos 11489b20a5 MDL-62288 mod_glossary: Add links to glossary entries for all users 2018-06-26 08:41:21 +02:00
Jun Pataleta b3483e7ede MDL-61889 tool_dataprivacy: Fix CI errors 2018-06-26 13:21:51 +08:00
Marina Glancy dd05e0d29e MDL-62796 tool_policy: show popup for users who are not logged in 2018-06-26 12:33:24 +08:00
Eloy Lafuente (stronk7) 1b37fe78f9 Merge branch 'MDL-59047-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-26 03:05:27 +02:00
Eloy Lafuente (stronk7) 82f21031a3 Merge branch 'MDL-62730-35' of https://github.com/snake/moodle into MOODLE_35_STABLE 2018-06-26 02:54:41 +02:00
Eloy Lafuente (stronk7) 6545e50f62 Merge branch 'MDL-51419-35' of https://github.com/snake/moodle into MOODLE_35_STABLE 2018-06-26 02:41:59 +02:00
Eva Davitasvili 3d7630a158 MDL-60014 assign: Annotate PDF - catch no permission error 2018-06-25 14:10:41 -04:00
Tim Hunt 2588126d66 MDL-62792 filters: fix some bad PHPdocs 2018-06-25 15:52:33 +01:00
Tim Hunt de71bef7cb MDL-62792 filter_mathjaxloader: don't use statics for once-only items 2018-06-25 15:52:31 +01:00
Tim Hunt e310f10818 MDL-62698 quiz_overview: new index should not be unique 2018-06-25 15:51:03 +01:00
Shamim Rezaie 9b6938f99b MDL-62325 enrol_paypal: Added some keys and indexes to enrol_paypal.
- Added these keys to the enrol_paypal db: courseid, userid, instanceid
- Added these indexes to the enrol_paypal db: business, receiver_email
2018-06-25 12:34:43 +10:00
Adrian Greeve 9c42327dd1 MDL-62755 mod_assign: Update to unit tests.
Overrides are now checked to be exported properly.
2018-06-25 09:50:50 +08:00
Adrian Greeve 28631a1455 MDL-62755 mod_assign: Fix override export problem.
The cutoffdate and allowsubmissionsfromdate were not
being exported.
2018-06-25 09:50:50 +08:00
Christian Glahn aa7deee9cc MDL-61732 filters: Have emoticons respect nolink
Also extracts static emoticon cache to a field in order to increases
testability of filter_emoticon, because we are now able to reset the
static emoticon cache before tests, particularly for observing the
response to changing $CFG->emoticons.
2018-06-22 10:29:53 +02:00
Jake Dallimore 009a9ca500 MDL-51419 core_files: Support for utf8 in file names in MS Edge 2018-06-22 10:29:56 +08:00
Jake Dallimore 7de4759799 MDL-62730 themes: Fix calendar icon alignment for datetime in Boost 2018-06-22 10:17:04 +08:00
Jake Dallimore 33433bb8a1 MDL-62735 core_search: searchareas page now respects indexing support 2018-06-22 10:14:34 +08:00
Luca Bösch 9efe4b84ce MDL-45088 xmldb: Fix table alignment 2018-06-21 19:37:26 +02:00
Eloy Lafuente (stronk7) 8793e120b9 weekly release 3.5+ 2018-06-21 14:01:11 +02:00
Eloy Lafuente (stronk7) 43f742e1e5 Merge branch 'install_35_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_35_STABLE 2018-06-21 14:01:09 +02:00
Andrew Nicols bea7b33840 MDL-62715 mod_assign: Bump submissions back when grading in tests 2018-06-21 08:41:09 +08:00
Jun Pataleta 4900f375d7 Merge branch 'MDL-62017-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-20 19:40:22 +08:00
David Monllao a94b1fed30 Merge branch 'MDL-61482-35' of git://github.com/zig-moodle/moodle into MOODLE_35_STABLE 2018-06-20 13:29:28 +02:00
David Monllao 9337d85eb3 MDL-62471 tool_dataprivacy: Test compatible with 32 bits OS 2018-06-20 12:59:15 +02:00
cescobedo 2a8f28520d MDL-61296 auth_ldap: remove PHP notices when field does not exist. 2018-06-20 11:43:28 +02:00
Luca Bösch e972b9e909 MDL-62017 tool_customlang: format language customisation buttons. 2018-06-20 10:54:13 +02:00
Andrew Nicols 74c35a9133 Merge branch 'wip-MDL-62391-35' of git://github.com/abgreeve/moodle into MOODLE_35_STABLE 2018-06-20 09:40:16 +08:00
Adrian Greeve b4b5124c73 MDL-62391 tool_dataprivacy: Added more detail about data requests.
This adds the detail about who requested the data request to the
tables and data request information page.
2018-06-20 09:01:16 +08:00
Andrew Nicols af963ad2ae Merge branch 'MOODLE_35_STABLE_MDL-62705_results_order_no_context' of https://github.com/mattporritt/moodle into MOODLE_35_STABLE 2018-06-20 08:36:51 +08:00
Eloy Lafuente (stronk7) 2341e8695e Merge branch 'MDL-62014-35' of git://github.com/nashtechdev01/moodle into MOODLE_35_STABLE 2018-06-20 00:57:28 +02:00
Eloy Lafuente (stronk7) f55516fd46 Merge branch 'MDL-36424-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-19 19:20:37 +02:00
Eloy Lafuente (stronk7) 36e337b176 Merge branch 'wip-MDL-61786-35' of git://github.com/abgreeve/moodle into MOODLE_35_STABLE 2018-06-19 19:16:39 +02:00
Eloy Lafuente (stronk7) 23e9fea9a5 Merge branch 'MDL-62358-35' of https://github.com/HuongNV13/moodle into MOODLE_35_STABLE 2018-06-19 19:08:52 +02:00
Eloy Lafuente (stronk7) 1408aa8bc8 Merge branch 'MDL-44791-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-19 18:59:50 +02:00
Eloy Lafuente (stronk7) 2f86cad04e Merge branch 'MDL-62449-35' of git://github.com/sarjona/moodle into MOODLE_35_STABLE 2018-06-19 18:52:31 +02:00
Zig Tan fd77e38fc9 MDL-61482 mod_assign: Clean html in offline grading CSV 2018-06-19 23:30:11 +08:00
Tim Hunt 0191113d24 MDL-62747 accesslib: rdef caching should handle roles with no caps 2018-06-19 16:26:21 +01:00
Bas Brands 8bc0bbf1ee MDL-62691 Theme boost: editpdf hide dropdown close btn 2018-06-19 16:57:38 +02:00
Bas Brands 1dc4c34d07 MDL-62703 Themes: remove hover styles in course listings 2018-06-19 16:32:31 +02:00
Bas Brands 5339d26259 MDL-59047 question type: short answer boost styles 2018-06-19 14:34:33 +02:00
David Monllao bc7a379947 Merge branch 'MDL-62588-35' of git://github.com/rezaies/moodle into MOODLE_35_STABLE 2018-06-19 12:53:19 +02:00
Jun Pataleta e9553d973a Merge branch 'MDL-61894-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-19 17:57:13 +08:00
David Monllao 4f7fa18201 Merge branch 'MDL-58702-35' of git://github.com/zig-moodle/moodle into MOODLE_35_STABLE 2018-06-19 11:54:39 +02:00
Andrew Nicols 697a28aadf Merge branch 'MDL-60950-35' of git://github.com/damyon/moodle into MOODLE_35_STABLE 2018-06-19 11:40:45 +08:00
Damyon Wiese 26f5750319 MDL-60950 assign: Update incompatible unit test
Maintain compatibility with unit test changes after MDL-55609.
2018-06-19 10:59:12 +08:00
Damyon Wiese d4fea9b20f MDL-60950 assign: Rename class
testable_assign was renamed to mod_assign_testable_assign
2018-06-19 10:59:12 +08:00
Damyon Wiese af280e5929 MDL-60950 assign: Robust filtering of grading table
For assignments with gradetype set to none, we need special handling when generating the query to filter submissions that need grading.
2018-06-19 10:59:12 +08:00
Damyon Wiese fa8d508f36 MDL-60950 assign: Test for the requires grading filter
This test covers when the requires grading filter is applied, but the
assignment has no grade and the feedbackcomments plugin is disabled.
2018-06-19 10:59:12 +08:00
Andrew Nicols e7bf43ba0d Merge branch 'MDL-62519_35' of git://github.com/markn86/moodle into MOODLE_35_STABLE 2018-06-19 10:34:16 +08:00
Andrew Nicols 793da897d1 Merge branch 'MDL-62597-35' of https://github.com/HuongNV13/moodle into MOODLE_35_STABLE 2018-06-19 09:43:54 +08:00
Eloy Lafuente (stronk7) e1aa99e99d Merge branch 'MDL-62638-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-19 02:04:00 +02:00
Eloy Lafuente (stronk7) 06b8272791 Merge branch 'MDL-62571_35' of git://github.com/markn86/moodle into MOODLE_35_STABLE 2018-06-19 01:49:52 +02:00
Sara Arjona 15703fb9f1 MDL-62449 scorm: Move related data to data in the privacy export 2018-06-18 10:43:36 +02:00
Sara Arjona 20d8c489d8 MDL-62449 scorm: Add SCORM data to privacy export (name, description) 2018-06-18 10:43:36 +02:00
Jun Pataleta 1d97a7818e Merge branch 'MDL-62614-35' of git://github.com/zig-moodle/moodle into MOODLE_35_STABLE 2018-06-18 16:12:23 +08:00
Jun Pataleta 7c64406d4d Merge branch 'MDL-62709_35' of git://github.com/markn86/moodle into MOODLE_35_STABLE 2018-06-18 15:15:56 +08:00
Jun Pataleta f71b39b960 Merge branch 'MDL-62658_35' of git://github.com/markn86/moodle into MOODLE_35_STABLE 2018-06-18 14:36:47 +08:00
Jun Pataleta 44dd58756b Merge branch 'wip-MDL-62474-35' of git://github.com/abgreeve/moodle into MOODLE_35_STABLE 2018-06-18 14:32:20 +08:00
Mark Nelson 1dbbcaf9ba MDL-62658 message_popup: fixed issue with malformed URL being generated 2018-06-18 14:31:14 +08:00
Adrian Greeve d0e1b2921d MDL-62474 theme_boost: Update to provider and unit test.
Theme boost contains a user preference which was not reported
before. Unit tests have been added to test the update.
2018-06-18 14:06:11 +08:00
Willian Mano 72107631d7 MDL-62474 theme_boost: Fix Boost privacy provider 2018-06-18 14:06:01 +08:00
Huong Nguyen 888cfdc75f MDL-62614 Privacy: Core tag provider delete_item_tags function not work 2018-06-18 14:00:37 +08:00
Andrew Nicols 9886790075 Merge branch 'MDL-62320-35' of git://github.com/vmdef/moodle into MOODLE_35_STABLE 2018-06-18 13:58:50 +08:00
Shamim Rezaie f3323c22fe MDL-62588 enrol_paypal: Add missing instanceid field 2018-06-18 15:18:04 +10:00
Andrew Nicols d8e011f721 Merge branch 'MDL-62234-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-18 09:52:33 +08:00
Andrew Nicols 3b63cb559e Merge branch 'MDL-57968-35' of git://github.com/cescobedo/moodle into MOODLE_35_STABLE 2018-06-18 09:09:53 +08:00
AMOS bot f5189e3aa3 Automatically generated installer lang files 2018-06-16 00:08:05 +00:00
Victor Deniz 2c643bb988 MDL-62320 mimetypes: Add JSON to the default mime types list 2018-06-15 13:12:31 +01:00
HungTran c5fd53af5d MDL-62014 course: Add title to activity completion button 2018-06-15 10:19:59 +07:00
Zig Tan e275b0c4a6 MDL-58702 backup: Fix restoration of role mappings labels
Changes:
- Add logic to retrieve all the existing current roles.
- Apply the backup's role shortname by matching on the archetype.
- Added backup lang string 'undefinedrolemapping'.
2018-06-15 09:56:15 +08:00
Matt Porritt 9482a77a04 MDL-62705 Global Search: results order selection does not display
As of 3.5 a search plugin can define the result orders it supports.
When a search plugin defines multiple sort orders and the search is
conducted without a context (no context query param in the URL),
the code to load the available sort orders from the enabled search
backend is never called.

This patch gets the supported search orders for the enabled search
engine regardless of context being provided or not. As prior, the
search order selection will not display if the only result order
option is relevance.
2018-06-15 11:32:28 +10:00
Luca Bösch fab105578b MDL-61894 tag: Modal buttons style. 2018-06-14 17:32:40 +02:00
Luca Bösch b4dcfe9a06 MDL-44791 admin: Open server check doc links in new window. 2018-06-14 17:31:45 +02:00
Ed Basset a31a20a5c6 MDL-36424 wiki: set group so subwiki tabs/pages display correctly 2018-06-14 17:31:28 +02:00
Huong Nguyen e6e7a85087 MDL-62358 Question: Improve number function
Support all 'question numbers' that might be needed
2018-06-14 19:46:36 +07:00
Huong Nguyen 612c718696 MDL-62597 Privacy: Request date column should include time 2018-06-14 19:41:28 +07:00
Eloy Lafuente (stronk7) 180988c999 weekly release 3.5+ 2018-06-14 10:56:06 +02:00
Eloy Lafuente (stronk7) 59380a9a64 Merge branch 'install_35_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_35_STABLE 2018-06-14 10:56:04 +02:00
Mark Nelson d2593fadb6 MDL-62709 core_message: convert NULL format types in task 2018-06-14 13:19:17 +08:00
David M Penner 904aec69a0 MDL-62709 core_message: fix for silently ignored errors in task 2018-06-14 13:19:17 +08:00
Mark Nelson d851bb5c2a MDL-31443 core_backup: change review heading to 'Restore settings' 2018-06-13 18:39:00 +02:00
Luca Bösch 6fa61e69a7 MDL-31443 core_backup: revert changes to util/ui/renderer.php 2018-06-13 18:39:00 +02:00
Bas Brands c0e65fbbf8 MDL-62234 Theme boost: Improve atto dialogue styling 2018-06-13 11:37:09 +02:00
Jun Pataleta cc0b367755 Merge branch 'MDL59980_block_bug_35_STABLE' of git://github.com/kristian-94/moodle into MOODLE_35_STABLE 2018-06-13 09:59:26 +08:00
AMOS bot 1dc3e88cca Automatically generated installer lang files 2018-06-13 00:08:07 +00:00
Kristian Ringer d04e88b78f MDL-59980 core_admin: Fix bug preventing block modification in settings 2018-06-13 09:37:42 +10:00
Simey Lameze d77209e8c5 MDL-62446 mod_glossary: optimize provider code 2018-06-12 18:27:39 +02:00
Simey Lameze 3f27598353 MDL-62446 mod_glossary: improve privacy unit tests 2018-06-12 18:27:38 +02:00
David Monllao 334ced71a1 Merge branch 'MDL-58063-35' of git://github.com/mihailges/moodle into MOODLE_35_STABLE 2018-06-12 11:05:47 +02:00
Andrew Nicols f3a817e959 MDL-55609 mod_assign: Deprecate base_test 2018-06-12 10:22:18 +02:00
Andrew Nicols 9712975595 MDL-55609 assignfeedback_comments: Remove shared setUp 2018-06-12 10:22:11 +02:00
Andrew Nicols 4656db12e1 MDL-55609 mod_assign: Move fixture to folder 2018-06-12 10:22:06 +02:00
Andrew Nicols a1ec9e389e MDL-55609 mod_assign: Remove shared setUp for all tests 2018-06-12 10:22:01 +02:00
Andrew Nicols 3714b3d104 MDL-55609 testing: Add a create_and_enrol helper 2018-06-12 10:21:57 +02:00
Mark Nelson 251358b364 MDL-62519 atto_recordrtc: detach click listener when recording again 2018-06-12 14:37:40 +08:00
Jun Pataleta d2b6ce1555 Merge branch 'wip-MDL-62574-35' of git://github.com/abgreeve/moodle into MOODLE_35_STABLE 2018-06-12 11:56:53 +08:00
Adrian Greeve 3c22418e0a MDL-62574 core_privacy: Unit tests to check the context base.
This now tests the possibility of a context being deleted.
2018-06-12 11:26:23 +08:00
Adrian Greeve 94269e4505 MDL-62574 core_privacy: Check the contextlist for real contexts.
There are situations when contexts will be deleted in the provider.
The context list is not updated and so we have introduced a try
catch.
2018-06-12 11:26:11 +08:00
Andrew Nicols 0f272f06ea Merge branch 'wip_MDL-62576_M35' of git://github.com/gjb2048/moodle into MOODLE_35_STABLE 2018-06-12 10:49:14 +08:00
Andrew Nicols 08ca997c76 Merge branch 'MDL-62628-35' of git://github.com/mihailges/moodle into MOODLE_35_STABLE 2018-06-12 09:49:58 +08:00
Andrew Nicols 7d52baba45 Merge branch 'MDL-60819-35' of https://github.com/snake/moodle into MOODLE_35_STABLE 2018-06-12 09:21:04 +08:00
Eloy Lafuente (stronk7) 72f73d595d Merge branch 'MDL-62649-35' of git://github.com/mihailges/moodle into MOODLE_35_STABLE 2018-06-12 01:45:26 +02:00
Eloy Lafuente (stronk7) bf67536031 Merge branch 'MDL-62460-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-06-12 01:41:49 +02:00
Eloy Lafuente (stronk7) 7a78ae6c10 Merge branch 'MDL-31443-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-12 01:37:57 +02:00
Michael Aherne 2cdbfd1dca MDL-62577 unit tests: Quote class name in re-run command. 2018-06-12 00:08:37 +02:00
Mark Nelson d8924ce166 MDL-62571 mod_forum: fixed redirection URLs 2018-06-11 18:31:03 +08:00
David Monllao 9ccbf4386c Merge branch 'MDL-61484-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-06-11 10:34:30 +02:00
Jun Pataleta fe9d8a7274 MDL-61484 mod_chat: Add CHAT_SESSION_GAP constant 2018-06-11 16:01:03 +08:00
Jun Pataleta 9ec5fa2208 MDL-61484 mod_chat: Fix chat_get_sessions logic 2018-06-11 16:01:03 +08:00
Jun Pataleta bffc50ae9d MDL-61484 mod_chat: More unit tests for chat
* For chat_get_sessions()
* Fix externallib test
2018-06-11 16:01:03 +08:00
Leon Stringer a634c88ced MDL-61786 auth: Changed strings for Test Settings to lang strings
The output strings for the Test Settings function were hard-coded English
strings. They've been changed to standard language strings which can be
translated and maintained via AMOS.
2018-06-11 14:16:31 +08:00
Jun Pataleta 2eb7c6d6cb Merge branch 'MDL-62594-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-11 13:55:19 +08:00
Jake Dallimore 8ae9044ef4 MDL-60819 core_files: fix exception thrown from generate_image_thumbnail
This function now requires gdlib.php.
2018-06-11 10:45:27 +08:00
Andrew Nicols eef776a0b4 Merge branch 'MDL-62270-Cron-task-fails-on-data-privacy-related-task' of https://github.com/adamtppaw/moodle into MOODLE_35_STABLE 2018-06-11 09:53:06 +08:00
Luca Bösch ef57748905 MDL-31443 backup: Title and cancel messages stating import and restore 2018-06-08 11:34:06 +02:00
Bas Brands 9903e25871 MDL-62654 Theme Boost: update readme on @supports prefixer issues 2018-06-08 10:15:10 +02:00
Mihail Geshoski 557a9b5674 MDL-62628 resource: Folder name formatting issue when displayed inline 2018-06-08 08:36:04 +08:00
Mihail Geshoski 0ff993ffe3 MDL-58063 blocks: Cannot access manage files in HTML block in clean 2018-06-08 08:29:26 +08:00
Gareth J Barnard a8a9876c1d MDL-62576 theme_boost: Course jump to menu not centred 2018-06-07 20:43:42 +01:00
Eloy Lafuente (stronk7) fd308528cd weekly release 3.5+ 2018-06-07 17:00:05 +02:00
Eloy Lafuente (stronk7) b0f0c2af7e Merge branch 'install_35_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_35_STABLE 2018-06-07 17:00:02 +02:00
Bas Brands ba5dde0347 MDL-62638 Theme boost: remove broken css 2018-06-07 16:44:53 +02:00
Bas Brands 22cab09558 MDL-62594 question type: cloze question theme boost 2018-06-07 14:07:32 +02:00
Jun Pataleta b02f319b78 Merge branch 'MDL-61826-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-06-06 11:22:31 +02:00
Jun Pataleta e03ef397fc Merge branch 'MDL-46513_35' of git://github.com/markn86/moodle into MOODLE_35_STABLE 2018-06-06 11:22:27 +02:00
Jun Pataleta cddd2b461b Merge branch 'MDL-62586-35' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-06-06 11:22:24 +02:00
Andrew Nicols ec41f1ce1b Merge branch 'm35_MDL-61702_MariaDB_InnoDB10d3d1_Params_Removed' of https://github.com/scara/moodle into MOODLE_35_STABLE 2018-06-06 11:22:21 +02:00
Eloy Lafuente (stronk7) 7ce29a90af Merge branch 'MDL-39486-35' of git://github.com/mihailges/moodle into MOODLE_35_STABLE 2018-06-06 11:22:17 +02:00
David Monllao 4dda9579b3 Merge branch 'MDL-46344-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-06-06 11:22:14 +02:00
Mark Nelson 9b77f93fa0 MDL-62336 media_videojs: ensure videos have unique IDs 2018-06-06 11:22:11 +02:00
Jun Pataleta 4fc3adb35b Merge branch 'MDL-61778-35' of git://github.com/mickhawkins/moodle into MOODLE_35_STABLE 2018-06-06 11:22:08 +02:00
cescobedo d3e3f0f109 MDL-57968 core_message: Remove multiple unnecessary AJAX requests
Remove AJAX requests core_message_get_unread_conversations_count and
message_popup_get_unread_popup_notification_count and
render the unread messages and notifications into mustache template.
2018-06-06 11:00:54 +02:00
Mark Nelson 8bc2ee1a4a MDL-46513 mod_chat: pass has_capability result to fullname function 2018-06-06 15:34:17 +08:00
Jun Pataleta 93e51e74b4 MDL-61826 auth: Make Facebook endpoints more maintainable 2018-06-06 12:44:43 +08:00
Łukasz Szeremeta 148ef43015 MDL-61826 auth: Facebook OAuth2 - getting a better-quality profile photo
Get 200x200 px instead of 50x50 px user profile picture from Facebook OAuth2.
2018-06-06 12:44:43 +08:00
Mihail Geshoski 8b5dfd0b06 MDL-62649 course: Course and category management items displayed wrongly 2018-06-06 11:38:48 +08:00
Michael Hawkins 1ebd063f4e MDL-61778 message: Renamed online status icon and replaced Boost icon 2018-06-05 16:36:42 +08:00
Luca Bösch 40579dc143 MDL-62605 core_user: course name filter in unenrol modal. 2018-06-05 08:04:41 +02:00
AMOS bot f26629e665 Automatically generated installer lang files 2018-06-05 00:07:04 +00:00
adamtppaw ab96a452c6 MDL-62270 Privacy: Cron task fails when admin directory renamed 2018-06-03 21:59:15 +02:00
Luca Bösch 50e1bbb583 MDL-46344 outputrenderers: Localize 'This page is'. 2018-06-01 11:44:02 +02:00
Jun Pataleta 09b6fbdaca MDL-62460 tool_dataprivacy: Render selected user properly on validation 2018-06-01 16:09:17 +08:00
Matteo Scaramuccia 8f9c8a5826 MDL-61702 dml: MariaDB 10.3 supports only the Barracuda file format.
More details about this change also in https://tracker.moodle.org/browse/MDL-59099

Ref.: https://mariadb.com/kb/en/library/mariadb-1031-release-notes/#other-variables
2018-05-31 22:56:49 +02:00
David Monllao 9c607c0b8c weekly release 3.5+ 2018-05-31 08:39:38 +02:00
Bas Brands 6dc178e448 MDL-62586 Themes: use Boostrap media compontent for author display 2018-05-30 12:41:36 +02:00
David Monllao 187d2a26c0 Merge branch 'MDL-62532-35' of git://github.com/rezaies/moodle into MOODLE_35_STABLE 2018-05-30 10:20:09 +02:00
Andrew Nicols c6755d6f34 Merge branch 'MDL-57486-35-fix' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-05-30 13:21:25 +08:00
Jun Pataleta bea2c40f53 MDL-57486 tool_recyclebin: Close the files recordset properly 2018-05-30 13:16:11 +08:00
Andrew Nicols 363622d03e Merge branch 'MDL-57600-35' of git://github.com/lameze/moodle into MOODLE_35_STABLE 2018-05-30 09:17:57 +08:00
Andrew Nicols 649c96c259 MDL-57486 tool_recyclebin: Coding style fix 2018-05-30 09:02:00 +08:00
Dan Marsden ac32f752d9 MDL-57486 tool_recyclebin: Delete items when context already deleted. 2018-05-30 09:02:00 +08:00
David Monllao db79038541 MDL-62381 editor_tinymce: Rearrange style modification 2018-05-29 16:36:14 +02:00
David Monllao c390ae4f8d Merge branch 'MDL-62381_moodle35' of https://github.com/Syxton/moodle into MOODLE_35_STABLE 2018-05-29 16:34:46 +02:00
Matt Davidson e0a8cfdb6d MDL-62381 editor: Fix tinymce icons
Icon sizing is being overwritten on images.
2018-05-29 09:03:00 -04:00
Jun Pataleta 52f03c6fc6 Merge branch 'MDL-62544-35' of git://github.com/Dagefoerde/moodle into MOODLE_35_STABLE 2018-05-29 16:24:26 +08:00
Michael Hawkins 9f2c4a9277 MDL-56498 message: Ensure clicked notifications are marked read 2018-05-29 09:37:53 +08:00
David Monllao 575e209b93 Merge branch 'MDL-62316_oauth_guess_image_fix_35_STABLE' of https://github.com/leonstr/moodle into MOODLE_35_STABLE 2018-05-28 16:48:50 +02:00
David Monllao 0b363e6c4b Merge branch 'wip-MDL-62584-35' of git://github.com/marinaglancy/moodle into MOODLE_35_STABLE 2018-05-28 16:32:17 +02:00
Eloy Lafuente (stronk7) 5d8821ae05 MDL-62478 upgrade: add 3.5.0 separation line to all upgrade scripts 2018-05-28 13:16:21 +02:00
David Monllao 512a916207 Merge branch 'MDL-42779-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-05-28 11:42:53 +02:00
Mark Nelson 86a7cf0909 MDL-57742 core_lib: Updated readme_moodle.txt 2018-05-28 09:17:18 +02:00
David Balch f93f81a9f6 MDL-57742 core_lib: Make tool_consumer_instance_guid optional
In the specification, tool_consumer_instance_guid is only listed
as recommended. However, the library was requiring it.

https://www.imsglobal.org/specs/ltiv2p0/implementation-guide#toc-42
2018-05-28 09:17:17 +02:00
Matteo Scaramuccia bf6f0f03cf MDL-59596 ddl: Support MariaDB 10.2.4+ SQL_MODE new default value. 2018-05-28 08:20:14 +02:00
Matteo Scaramuccia 903182e4a3 MDL-59596 ddl: Added has_breaking_change_sqlmode() 2018-05-28 08:20:12 +02:00
Jun Pataleta e7554e4b67 Merge branch 'wip-MDL-62493-35' of git://github.com/marinaglancy/moodle into MOODLE_35_STABLE 2018-05-28 12:57:37 +08:00
Jun Pataleta 167420bd2e MDL-62515 templates: Remove unnecessary button role for submit button 2018-05-28 12:29:59 +08:00
Marina Glancy f479887c77 MDL-62584 xmlrpc: return correct content-length 2018-05-28 11:20:21 +08:00
Simey Lameze 5441c8fef4 MDL-57600 course: fix typo on courselib test 2018-05-28 09:41:58 +08:00
Alex b104cede75 MDL-57600 format: Fix spelling errors 2018-05-28 09:41:57 +08:00
Jun Pataleta c3c8223ca2 Merge branch 'MDL-61832-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-05-28 09:21:22 +08:00
Andrew Nicols d4773c32d6 MDL-62543 mod_forum: Add RSS Unit tests 2018-05-28 08:56:44 +08:00
Tobias Reischmann c8511e2808 MDL-62543 forum: Switched the usage of the deleted flag for rss
The deleted flag was introduced through the Privacy API and was used
for post selection for the rss feed. In there it was used in the
wrong way, which lead to the exclusion of all non deleted posts instead
of excluding all deleted ones.
This commit fixes this problem.
2018-05-28 08:56:44 +08:00
Shamim Rezaie b23e6519fe MDL-62532 core_question: Include standard tags in the tags autocomplete 2018-05-28 10:55:05 +10:00
Mark Johnson dc7c48a9d7 MDL-62408 behat: Correct PHPUNIT_TEST checks in behat_config_util 2018-05-28 02:14:08 +02:00
Marina Glancy a210233bfb MDL-62493 tool_policy: correct redirection
do not override session->wantsurl
do not redirect guests to user.php, they get an error there
2018-05-25 14:32:03 +08:00
Marina Glancy 9dcf28af7d MDL-62493 tool_policy: allow guests to sign up 2018-05-25 14:32:03 +08:00
Mihail Geshoski c030a94b68 MDL-39486 lesson: Length of label text too narrow in matching questions 2018-05-25 09:46:01 +08:00
Jan Dageförde bd8b3a91e0 MDL-62544 privacy: error notification type 2018-05-24 16:46:02 +02:00
Jan Dageförde 582eb6e6e2 MDL-62544 privacy: Allow data requests on behalf of a user by admin/DPO 2018-05-24 16:46:02 +02:00
Luca Bösch 9b127bcb70 MDL-61832 lesson: don't hide lesson page editing options 2018-05-24 15:44:00 +02:00
Luca Bösch 171a764049 MDL-42779 course: Pagination in management page preserves view action 2018-05-24 15:43:41 +02:00
David Monllao 0da8ef69a8 weekly release 3.5+ 2018-05-24 10:46:02 +02:00
David Monllao 815be4e003 NOBUG: Fixed SVG browser compatibility 2018-05-24 10:46:01 +02:00
Simey Lameze d897846115 MDL-61189 editor_tinymce: save data before submitting 2018-05-23 10:48:40 +08:00
Jake Dallimore 5427855d50 Merge branch 'MDL-61932-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE 2018-05-23 10:01:46 +08:00
Leon Stringer 6d7093e370 MDL-62316 OAuth 2: Only guess image if base URL set.
If you added an OAuth 2 service with no base URL guess_image() would try to
parse this empty value looking for a favicon.ico.  We now check if the base
URL is empty beforehand and skip this if so.
2018-05-22 19:45:04 +01:00
Jun Pataleta d7c805a9f0 MDL-61932 mod_glossary: Fetch the correct front page section 1 ID 2018-05-22 17:16:30 +08:00
Jun Pataleta 2032603ae9 MDL-61932 mod_glossary: Display site-level glossaries on section 1
* Glossary activities created on the front page by importing
entries are being added to section 0, but the front page only shows
activities on section 1.
2018-05-22 17:16:29 +08:00
John Beedell e7e91b8bae MDL-62239 QTYPE: iOS 11.3 broke Moodle drag-drop question types 2018-05-22 10:05:51 +08:00
Andrew Nicols 30cbfbdd61 Merge branch 'MDL-62482_35' of git://github.com/timhunt/moodle into MOODLE_35_STABLE 2018-05-22 09:39:17 +08:00
Andrew Nicols ab7694d82e Merge branch 'MDL-62488_35_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_35_STABLE 2018-05-22 09:31:19 +08:00
Jake Dallimore 61ee9a304e Merge branch 'MDL-61015-35' of https://github.com/lucaboesch/moodle into MOODLE_35_STABLE 2018-05-22 08:15:11 +08:00
Andrew Nicols f59bc1b152 MDL-62500 tag: Update checkbox label when updating tag 2018-05-21 13:46:49 +02:00
Matteo Scaramuccia 3aa57f20af MDL-61893 JavaScript: Bumped npm packages
Performed by removing the current 'npm-shrinkwrap.json' file:
$ rm -Rf node_modules
$ rm -f npm-shrinkwrap.json
$ npm install
$ npm shrinkwrap
2018-05-21 12:05:54 +02:00
Matteo Scaramuccia b875ad18b5 MDL-61893 JavaScript: Accept any node version but Carbon (LTS) 2018-05-21 12:05:46 +02:00
Luca Bösch 2d69b0fbe7 MDL-61015 course: consistently display hidden sections
This commit moves the availability info on top.
2018-05-21 11:34:04 +02:00
Marina Glancy c8663da1a9 MDL-61015 course: consistently display hidden sections
When section is hidden but the course setting says to show hidden sections display the hidden
sections consistently with how we display the sections with access restriction.

The only difference is that we didn't previously display the summary of the hidden section
in this case, the new logic repeats this behavior
2018-05-21 11:34:04 +02:00
Andrew Nicols 1de2735b16 MDL-62516 mod_forum: Only delete files for requested user 2018-05-21 11:17:10 +02:00
Juan Leyva 4a5adabe95 MDL-62229 tool_mobile: Add missing supported module
The Workshop module it’s been supported since Moodle 3.4 so it
should’ve been included here.
2018-05-21 17:05:07 +08:00
Andrew Nicols b566d8002a Merge branch 'wip-MDL-62481-35' of git://github.com/marinaglancy/moodle into MOODLE_35_STABLE 2018-05-21 15:55:12 +08:00
Tim Hunt 2e404995a0 MDL-62440 participants: out-of-memory is many site-wide role assigns 2018-05-21 14:55:42 +08:00
Andrew Nicols 654ad71526 Merge branch 'MDL-62386-master' of git://github.com/bmbrands/moodle into MOODLE_35_STABLE 2018-05-21 09:11:28 +08:00
Marina Glancy 2b50975563 MDL-62481 atto_recordrtc: add svg icons 2018-05-18 10:40:33 +08:00
Mark Johnson 81fb99ed66 MDL-62488 filebrowser: Stop unit tests assuming number of categories 2018-05-17 16:01:36 +01:00
Tim Hunt deb358f16c MDL-62482 file_storage: may have many files with same content hash 2018-05-17 11:25:52 +01:00
Eloy Lafuente (stronk7) 46574904af Moodle release 3.5 2018-05-16 18:44:30 +02:00
Eloy Lafuente (stronk7) 4c8005a0ff NOBUG: Change travis.yml to MOODLE_35_STABLE 2018-05-16 18:44:30 +02:00
Eloy Lafuente (stronk7) 57cc5dc750 Merge branch 'MDL-62472-master' of git://github.com/bmbrands/moodle 2018-05-16 18:29:46 +02:00
Marina Glancy 897a492729 MDL-62469 qtype_calculated: check remaining placeholders, see MDL-62275 2018-05-16 17:20:38 +02:00
Bas Brands a6c45af354 MDL-62472 Theme boost: update upgrade.txt for boost changes 2018-05-16 12:57:38 +02:00
David Monllao 36960958ad Merge branch 'MDL-62456_master' of git://github.com/markn86/moodle 2018-05-16 08:56:33 +02:00
Andrew Nicols 798f0f1da9 Merge branch 'wip-MDL-62147-master-4' of git://github.com/marinaglancy/moodle 2018-05-16 14:27:19 +08:00
Jun Pataleta 6c32ea4631 Merge branch 'MDL-62463-master' of git://github.com/andrewnicols/moodle 2018-05-16 14:22:05 +08:00
Frédéric Massart 554e6a6562 MDL-62147 core_grades: Report contexts and data related to scales 2018-05-16 13:57:26 +08:00
Marina Glancy 372ea5502c MDL-62147 core_grades: Declare metadata of scales and import tables 2018-05-16 13:57:25 +08:00
Marina Glancy 14f7296436 MDL-62147 portfolio: add missing tables to privacy provider 2018-05-16 13:57:22 +08:00
Marina Glancy 004fd4259e MDL-62147 privacy: unittest ensures that all tables covered 2018-05-16 13:57:19 +08:00
Andrew Nicols 39da8c1a35 MDL-62463 mod_glossary: Fix SQL query
The query was doing:
WHERE c.id ... AND ... OR ... OR ...

Which equates to:
WHERE (c.id ... AND ...) OR ... OR ...

Adding parens to:
WHERE (c.id ... AND (... OR ... OR ...))
2018-05-16 13:51:32 +08:00
Marina Glancy d1620c57f9 MDL-62147 privacy: corrections to tables, temporary tables 2018-05-16 12:57:19 +08:00
Jake Dallimore dc69734963 Merge branch 'MDL-62134-master' of git://github.com/andrewnicols/moodle 2018-05-16 12:39:27 +08:00
Andrew Nicols 8da25ca04c MDL-62134 tool_dataprivacy: Remove reference to old manager 2018-05-16 12:27:00 +08:00
Mark Nelson ad7f143897 MDL-62456 mod_lti: add missing add_external_location_link call 2018-05-16 12:22:34 +08:00
Jake Dallimore 0e156326cc Merge branch 'MDL-62134-master' of git://github.com/andrewnicols/moodle 2018-05-16 12:01:49 +08:00
Andrew Nicols 8760b7335b MDL-62134 tool_dataprivacy: Add a manager_observer 2018-05-16 11:52:46 +08:00
Andrew Nicols 22c0a30888 MDL-62134 core_privacy: Allow for a failure handler 2018-05-16 11:52:46 +08:00
Andrew Nicols 3e3e5cdbb4 Merge branch 'MDL-62426-master' of https://github.com/snake/moodle 2018-05-16 10:44:06 +08:00
Jake Dallimore 72580c0832 MDL-62426 core_enrol: control enrolment subcontexts at the provider
Added a function to the core_enrol provider allowing enrol plugins
to set their subcontext relative to a fixed 'enrolments' parent dir.
2018-05-16 10:22:15 +08:00
Jake Dallimore 37e1069289 MDL-62426 enrol_flatfile: make provider a plugin provider
The enrol_flatfile table can contain userdata relating to pending
enrolments, so this should be exported and deleted as necessary.
2018-05-16 09:37:33 +08:00
Marina Glancy 3f18d2af9a MDL-62134 tool_dataprivacy: privacy manager wrapper
If exception occurs in one plugin implementation do not fail the whole job but
instead send a message to DPOs with the exception details
2018-05-16 09:02:01 +08:00
Marina Glancy 65abf2a37c MDL-62134 privacy: consistantly call components methods 2018-05-16 09:02:01 +08:00
Eloy Lafuente (stronk7) 51c17c381d Merge branch 'MDL-62447_master' of git://github.com/dmonllao/moodle 2018-05-16 01:26:39 +02:00
Eloy Lafuente (stronk7) 3811659bc7 Merge branch 'MDL-62433-master' of git://github.com/sarjona/moodle 2018-05-15 23:30:46 +02:00
Eloy Lafuente (stronk7) cd0f1aa403 Merge branch 'MDL-62448-master' of git://github.com/sarjona/moodle 2018-05-15 17:29:06 +02:00
Eloy Lafuente (stronk7) 12ef4a1219 Merge branch 'MDL-62419-master' of git://github.com/bmbrands/moodle 2018-05-15 16:56:37 +02:00
Sara Arjona 9d594541b6 MDL-62448 block_rss_client: Export all feeds from Privacy API 2018-05-15 14:25:27 +02:00
Sara Arjona 68ed91b7af MDL-62433 tool_policy: Review language strings for consistency
All credit goes to Helen Foster. Thanks! :-*
2018-05-15 14:21:03 +02:00
Sara Arjona 5e84f521fa MDL-62433 tool_policy: Some minor fixes to Privacy API implementation
- Export files for agreements too.
- Add versionid to the export path to avoid collision if version revision
is not defined.
2018-05-15 14:07:31 +02:00
Andrew Nicols f63745eabd MDL-62433 tool_policy: Adjustments to the data export 2018-05-15 14:07:31 +02:00
Sara Arjona 827c8e98ac MDL-62433 tool_policy: Review privacy provider for adding versions 2018-05-15 14:07:31 +02:00
David Monllao bcd677bc6a Merge branch 'wip-MDL-62445-master' of git://github.com/marinaglancy/moodle 2018-05-15 13:33:25 +02:00
David Monllao 85218c28e9 Merge branch 'MDL-62228_master' of git://github.com/markn86/moodle 2018-05-15 13:31:07 +02:00
David Monllao 7f9b187994 MDL-62447 user: Fix component name typo 2018-05-15 10:41:57 +02:00
Bas Brands b188407bdc MDL-62419 Theme boost: use sr-only() mixin for .accesshide 2018-05-15 10:39:09 +02:00
David Monllao dc71a8b50e Moodle release 3.5rc1 2018-05-15 09:42:49 +02:00
David Monllao 096b3723bb Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-05-15 09:42:47 +02:00
Andrew Nicols 76578cf3f6 Merge branch 'MDL-62444-master' of git://github.com/zig-moodle/moodle 2018-05-15 11:38:32 +08:00
Andrew Nicols 7831f2785d Merge branch 'MDL-62428_master' of git://github.com/markn86/moodle 2018-05-15 10:58:45 +08:00
Marina Glancy 8880510d40 MDL-62445 tool_privacy: pass correct user to message_send 2018-05-15 10:27:52 +08:00
Jun Pataleta 2f48e08c46 Merge branch 'MDL-62434-master' of git://github.com/bmbrands/moodle 2018-05-15 10:06:57 +08:00
Zig Tan 0061a6ae67 MDL-62444 mod_assignment: Fix missing lang string. 2018-05-15 09:50:11 +08:00
Jun Pataleta d060e0b80f Merge branch 'MDL-62432-master' of git://github.com/andrewnicols/moodle 2018-05-15 09:34:18 +08:00
Andrew Nicols 63b0f6276c MDL-62432 quiz: Check contexts more carefully 2018-05-15 09:25:51 +08:00
Eloy Lafuente (stronk7) 05c87e7bb4 Merge branch 'MDL-62430_master' of git://github.com/dmonllao/moodle 2018-05-15 02:56:00 +02:00
AMOS bot 3a959aa800 Automatically generated installer lang files 2018-05-15 00:06:16 +00:00
David Monllao 641d878d08 MDL-62430 block_html: Check that block instances are block_html 2018-05-14 17:06:57 +02:00
David Monllao 014335fb2b Merge branch 'MDL-62370-master' of git://github.com/andrewnicols/moodle 2018-05-14 16:00:32 +02:00
Andrew Nicols 0668ba779a Merge branch 'MDL-62356-master' of git://github.com/cescobedo/moodle 2018-05-14 20:50:23 +08:00
Andrew Nicols a61cd7efef Merge branch 'MDL-62357-master' of git://github.com/cescobedo/moodle 2018-05-14 20:43:02 +08:00
Andrew Nicols 502344a904 MDL-62370 core_privacy: Directory-less subsystems are compliant 2018-05-14 19:59:43 +08:00
Mark Nelson df1714f25a MDL-62228 core: remove unnecessary context check in privacy providers 2018-05-14 18:33:29 +08:00
Marina Glancy 3960ad53a7 MDL-62430 privacy: validate context when deleting all user data 2018-05-14 18:13:27 +08:00
David Monllao 4557b4e065 Merge branch 'MDL-62414-master' of git://github.com/junpataleta/moodle 2018-05-14 11:44:13 +02:00
David Monllao 05dcf35796 Merge branch 'MDL-62425-master' of git://github.com/andrewnicols/moodle 2018-05-14 10:57:14 +02:00
cescobedo 267effaaa2 MDL-62356 enrol_meta: Add privacy implementation for enrol_meta 2018-05-14 10:55:52 +02:00
cescobedo 30f3ea7fe1 MDL-62357 enrol_cohort: Add privacy implementation for enrol_cohort 2018-05-14 10:49:16 +02:00
David Monllao 3558897fc3 Merge branch 'MDL-62365-master' of git://github.com/bmbrands/moodle 2018-05-14 10:39:41 +02:00
Bas Brands b5f402ad73 MDL-62434 Theme boost: fix popover arrows above/under popups 2018-05-14 10:36:02 +02:00
David Monllao 62b94b486e Merge branch 'MDL-62418-master' of git://github.com/mihailges/moodle 2018-05-14 10:17:58 +02:00
Andrew Nicols ef0f37ca16 MDL-62425 core: Add privacy implementation 2018-05-14 15:41:36 +08:00
Andrew Nicols b5b86c298c MDL-62425 tool_dataprivacy: Add core to the list of components 2018-05-14 15:41:30 +08:00
Andrew Nicols 66f2da2e0a MDL-62425 core_privacy: Add core to the list of components 2018-05-14 15:40:56 +08:00
Bas Brands 04b1bea112 MDL-62365 Theme Boost: default navigation item to empty
- use fa-fw as default navigation item (empty)
    - change indentation for 2nd level dropdown items
2018-05-14 09:08:42 +02:00
Mihail Geshoski 0bffcfccdd MDL-62418 tool_policy: Display blocks in user policies and agreements 2018-05-14 14:18:10 +08:00
Mark Nelson 8e24041287 MDL-62428 core: fix incorrect early return in privacy providers 2018-05-14 13:06:29 +08:00
Jake Dallimore f8630a8170 Merge branch 'MDL-62420-master' of git://github.com/andrewnicols/moodle 2018-05-14 11:57:52 +08:00
Jun Pataleta cea21312f9 Merge branch 'MDL-62153-master' of git://github.com/bmbrands/moodle 2018-05-14 11:57:01 +08:00
Jake Dallimore c7a2ed73b7 Merge branch 'MDL-62016_master' of git://github.com/dmonllao/moodle 2018-05-14 11:05:45 +08:00
Andrew Nicols 882d2787ba Merge branch 'MDL-62359-master' of git://github.com/bmbrands/moodle 2018-05-14 10:37:57 +08:00
Andrew Nicols 54ef15dac8 Merge branch 'MDL-62413-master' of git://github.com/junpataleta/moodle 2018-05-14 10:16:27 +08:00
Jake Dallimore e995166863 Merge branch 'MDL-62393-master' of git://github.com/andrewnicols/moodle 2018-05-14 09:37:34 +08:00
Eloy Lafuente (stronk7) a890f2ecfa Merge branch 'MDL-62418-master' of git://github.com/sarjona/moodle 2018-05-14 03:01:29 +02:00
Andrew Nicols af09390773 MDL-62420 enrol_lti: Fix random unit test fail in privacy 2018-05-14 08:43:15 +08:00
Eloy Lafuente (stronk7) 24bd0bc3b3 Merge branch 'MDL-62371-master' of git://github.com/andrewnicols/moodle 2018-05-14 02:37:38 +02:00
Sara Arjona 5bf7f59a19 MDL-62418 tool_policy: Redirect always to home when agreed all policies 2018-05-13 21:26:47 +02:00
Sara Arjona 15ed7d938e MDL-62418 tool_policy: Display blocks in Consent page when using clean 2018-05-13 20:42:04 +02:00
Eloy Lafuente (stronk7) 28ec28e026 Merge branch 'MDL-62251-master' of git://github.com/rezaies/moodle 2018-05-13 20:10:44 +02:00
Jun Pataleta 7bdb9d877d MDL-62409 tool_dataprivacy: Properly validate data request creation
Creating data requests
 * Add capability check when creating data requests for another user.
Ad-hoc task that processes pending data requests
 * Check if the requesting user has the capability to create the data
   request for another user. Reject otherwise.
Ad-hoc task that processes approved data requests
 * Validate that the requester can receive the notification about the
   data request processing results.
 * Do not send the confirmation link to DPOs/admins
2018-05-13 16:03:21 +02:00
David Monllao 4023f84b29 MDL-62016 tool_dataprivacy: More data registry information 2018-05-13 13:21:41 +02:00
Jun Pataleta 0f7fb98747 MDL-62299 tool_dataprivacy: Show requests correctly in mydatarequests
For DPOs viewing their personal data requests page (mydatarequests.php),
show only the requests they made for themselves and for their children.
2018-05-13 16:18:58 +08:00
Andrew Nicols 563852791d MDL-62371 core_privacy: Add support for progress trace 2018-05-13 15:45:24 +08:00
AMOS bot a2d976dd03 Automatically generated installer lang files 2018-05-13 00:06:28 +00:00
Andrew Nicols 823e08bf9d MDL-62393 message: Fix random unit test fails 2018-05-12 22:53:58 +08:00
Eloy Lafuente (stronk7) ab65b87f3d on-demand release 3.5beta+ 2018-05-12 12:57:26 +02:00
Eloy Lafuente (stronk7) 8b15175347 NOBUG: Fixed SVG browser compatibility 2018-05-12 12:57:24 +02:00
Jun Pataleta f946d87564 MDL-62414 tool_dataprivacy: Only show user's children in mydatarequests
* When coming from the DPO's "My data requests" page, don't show the
  picker for other users (unless the DPO is a parent of another user).
* When creating a data request as a DPO, show a more appropriate
  notification after redirecting back to the data requests page.
2018-05-12 10:19:47 +08:00
Jun Pataleta 2389ce39ac MDL-62413 tool_dataprivacy: Let users cancel data request made for them 2018-05-12 10:18:38 +08:00
Eloy Lafuente (stronk7) 1906a73574 MDL-61973 editor_atto: apply string changes to behat tests 2018-05-12 01:24:26 +02:00
Eloy Lafuente (stronk7) 5aa93d1b1f MDL-62275 qtype_calculatedmulti: Fix typo 2018-05-11 21:16:41 +02:00
David Monllao 9fa74e9374 MDL-62029 core_course: Site format is not a standard plugin 2018-05-11 20:15:27 +02:00
Bas Brands 526491f2f7 MDL-62153 Theme boost: lesson display issues on detailed statistics 2018-05-11 20:11:43 +02:00
Jun Pataleta 9eb19cdf94 Merge branch 'MDL-62075_master' of git://github.com/dmonllao/moodle 2018-05-12 00:29:56 +08:00
Eloy Lafuente (stronk7) 4f510bea17 Merge branch 'MDL-62384-master' of git://github.com/andrewnicols/moodle 2018-05-11 18:12:45 +02:00
Eloy Lafuente (stronk7) 614ebf05ea Merge branch 'MDL-61637_master' of git://github.com/dmonllao/moodle 2018-05-11 18:09:02 +02:00
David Monllao 28e06c2a17 Merge branch 'MDL-61858_master' of git://github.com/markn86/moodle 2018-05-11 18:06:50 +02:00
David Monllao e63a4ae540 Merge branch 'MDL-62368_master' of git://github.com/markn86/moodle 2018-05-11 17:59:20 +02:00
Bas Brands 881098f39c MDL-62386 theme: Fix audio playback display for HTML audio
Fixed for boost
Fixed for bootstrapbase
2018-05-11 14:51:04 +02:00
David Monllao 76fc9a4f5a Merge branch 'MDL-62376-master' of git://github.com/bmbrands/moodle 2018-05-11 14:47:32 +02:00
David Monllao 5da250d027 Merge branch 'MDL-58634-master' of git://github.com/bmbrands/moodle 2018-05-11 14:36:01 +02:00
Mark Nelson ffc148ae39 MDL-61858 tool_phpunit: added missing privacy null provider 2018-05-11 19:37:48 +08:00
Mark Nelson 61496b764a MDL-61858 gradingform_guide: added missing metadata implementation 2018-05-11 19:37:48 +08:00
Mark Nelson 776b4fef19 MDL-61858 core_portfolio: added missing metadata implementation 2018-05-11 19:37:48 +08:00
Andrew Nicols 7b4fa14f36 MDL-61858 core_privacy: Add test to ensure component implementations 2018-05-11 19:37:48 +08:00
Eloy Lafuente (stronk7) 3d8c0fb776 Merge branch 'MDL-61951-master' of git://github.com/sarjona/moodle 2018-05-11 13:21:58 +02:00
David Monllao aaa1140d9a Merge branch 'MDL-62397-master' of git://github.com/andrewnicols/moodle 2018-05-11 13:14:05 +02:00
Sara Arjona 5e08a28f9b MDL-61951 core_grading: Review SQL to avoid Oracle errors 2018-05-11 12:59:19 +02:00
David Monllao b96a064f14 Merge branch 'MDL-61714-master' of git://github.com/sarjona/moodle 2018-05-11 11:31:22 +02:00
Sara Arjona ee66104098 MDL-61714 admin: Removed Slovenian digital age 2018-05-11 10:12:16 +02:00
Andrew Nicols cef2c013d2 Merge branch 'MDL-62373_master' of git://github.com/dmonllao/moodle 2018-05-11 15:28:09 +08:00
David Monllao 868fc2aba1 MDL-61637 tool_dataprivacy: Point to new blocks API function 2018-05-11 09:05:43 +02:00
Jake Dallimore b513b36cfd Merge branch 'MDL-62354' of git://github.com/stronk7/moodle 2018-05-11 14:52:33 +08:00
Bas Brands 0ab6c0d546 MDL-58634 editor_atto: prevent notifications overlapping form fields 2018-05-11 08:38:21 +02:00
Jun Pataleta 0697a52218 Merge branch 'MDL-62394-master' of git://github.com/andrewnicols/moodle 2018-05-11 14:23:41 +08:00
Andrew Nicols 20f3b33b24 MDL-62394 privacy: Make JSON export pretty 2018-05-11 14:12:10 +08:00
Mark Nelson 3e642074ee MDL-62368 enrol_lti: implement privacy provider 2018-05-11 14:05:41 +08:00
Jun Pataleta 44d89dfa7a Merge branch 'MDL-62382-master' of git://github.com/ryanwyllie/moodle 2018-05-11 12:06:03 +08:00
Ryan Wyllie ebe7417f94 MDL-62382 quiz: include subcategories when previewing top categories
Include the subcategories when loading the list of questions for
a top level question in the add random question modal.
2018-05-11 11:51:50 +08:00
Andrew Nicols ddb1a13573 MDL-62397 tool_dataprivacy: Check for inactive status properly 2018-05-11 11:20:19 +08:00
Andrew Nicols 61b1cc4dd7 Merge branch 'wip-MDL-61814-master-fix' of git://github.com/abgreeve/moodle 2018-05-11 10:48:47 +08:00
Adrian Greeve 28f3776451 MDL-61814 report_stats: Update to sql to increase performance. 2018-05-11 10:44:51 +08:00
Jake Dallimore b3252ecdc1 MDL-61951 core_grading: SQL improvements for grading_instance join 2018-05-11 10:19:11 +08:00
Jake Dallimore 6f213a2fa2 Merge branch 'MDL-61951-master' of git://github.com/sarjona/moodle 2018-05-11 10:18:58 +08:00
Jun Pataleta 195f6fe37e Merge branch 'MDL-62388_master' of git://github.com/dmonllao/moodle 2018-05-11 10:03:44 +08:00
Mihail Geshoski b1add54344 MDL-62384 privacy: Modify user contexts query for auth_oauth2 2018-05-11 09:46:29 +08:00
Jun Pataleta 239c6202e2 Merge branch 'MDL-62117-master-fix' of git://github.com/andrewnicols/moodle 2018-05-11 09:34:37 +08:00
Andrew Nicols 932ee52ba7 MDL-62117 enrol_paypal: Improve SQL efficiency 2018-05-11 09:29:07 +08:00
Andrew Nicols 38e6852140 MDL-62384 core_rating: Move WHERE clauses to JOIN 2018-05-11 09:15:30 +08:00
Andrew Nicols a339908497 MDL-62384 core_grade: Move WHERE clause to JOIN 2018-05-11 09:15:30 +08:00
Andrew Nicols f6021ae0af MDL-62384 mod_lesson: Move WHERE clause to JOIN 2018-05-11 09:15:29 +08:00
Andrew Nicols 09f9af4729 MDL-62384 logstore_standard: Remove unnecessary join on context 2018-05-11 09:15:29 +08:00
Andrew Nicols 037027230a MDL-62384 mod_quiz: Improve performancy of privacy queries 2018-05-11 09:15:29 +08:00
Adrian Greeve d04b8d74a7 MDL-62384 mod_data: Update sql to improve performance. 2018-05-11 09:15:28 +08:00
Adrian Greeve 212d7fef05 MDL-62384 tool_monitor: Update to sql to fix performance. 2018-05-11 09:15:28 +08:00
Adrian Greeve 5a329d81f9 MDL-62384 core_competency: Update to sql to increase performance. 2018-05-11 09:15:27 +08:00
Adrian Greeve d8eec7ee38 MDL-62384 core_completion: Update to sql to improve performance. 2018-05-11 09:15:27 +08:00
Adrian Greeve 8a5b84cf8b MDL-62384 mod_assign: Update to sql query for performance. 2018-05-11 09:15:27 +08:00
Eloy Lafuente (stronk7) e4ad3ee714 Merge branch 'MDL-62380-master' of git://github.com/mihailges/moodle 2018-05-11 02:06:48 +02:00
Tim Hunt 75aa674b99 MDL-62275 qtype_calc*: improve validation of formulae
Many thanks to Marina Glancy for helping with this.
2018-05-11 01:21:16 +02:00
Eloy Lafuente (stronk7) 575b2eaa2d MDL-62354 notes: Reduce string to avoid js_call_amd() lenght limits
That way we are under the max 1024 allowed and also, the help string
is shown properly in the modal (previously part of it was not visible
falling off-window).
2018-05-10 23:30:22 +02:00
Eloy Lafuente (stronk7) a7a5d10319 Merge branch 'MDL-62277-master' of git://github.com/bmbrands/moodle 2018-05-10 20:50:20 +02:00
Andrew Nicols 00293f90a4 MDL-61635 tool_dataprivacy: Filter out protected contexts in delete 2018-05-10 20:36:02 +02:00
David Monllao 1f000f071e Merge branch 'MDL-62366-master' of git://github.com/zig-moodle/moodle 2018-05-10 18:13:44 +02:00
David Monllao 4033c2a11b Merge branch 'MDL-61714-master' of git://github.com/sarjona/moodle 2018-05-10 18:10:29 +02:00
David Monllao 74e82e4684 Merge branch 'MDL-62200-master' of git://github.com/bmbrands/moodle 2018-05-10 18:04:08 +02:00
David Monllao 7b6c74431b Merge branch 'MDL-61949-master-privacy-upgrade-txt' of git://github.com/mudrd8mz/moodle 2018-05-10 17:53:05 +02:00
David Monllao a319808cfb MDL-62075 tool_dataprivacy: Display correctly requests for other users 2018-05-10 17:43:59 +02:00
Bas Brands f01734122a MDL-62277 Theme boost: add badge criteria layout 2018-05-10 16:32:41 +02:00
David Monllao c459409c1b MDL-61637 tool_dataprivacy: Context-based fetching
Blocks API do not provide methods to retrieve a list of
blocks without filtering by UI-availability. We need to
get course blocks based on their course context.
2018-05-10 15:56:50 +02:00
Shamim Rezaie 8614257135 MDL-62251 Privacy: Fix dir separator in export_file() 2018-05-10 23:30:38 +10:00
Shamim Rezaie 07890336ab MDL-62251 Privacy: Url path separator should be platform independant
It should always be forward slash.
2018-05-10 23:30:38 +10:00
Shamim Rezaie 44efefcbeb MDL-62251 Privacy: Fix get_path() and get_full_path() bug in Windows 2018-05-10 23:30:23 +10:00
David Monllao c2a38d17a4 MDL-62388 tool_dataprivacy: Fixing bs4stable table layout 2018-05-10 14:58:11 +02:00
David Monllao bdc43d7729 MDL-62388 tool_dataprivacy: Default value if no sensitive data provided 2018-05-10 14:57:43 +02:00
Jake Dallimore 7feac02414 MDL-61951 core_grading: Several fixes to the privacy implementation
- Fixed legacy polyfill method definitions
- Added unit test for legacy polyfill
- Fixed delete_gradingform_for_userid in gradingform provider
2018-05-10 13:26:47 +02:00
Andrew Nicols 51e53b9f40 MDL-61905 mod_workshop: Adjust privacy SQL queries
This change moves the content of WHERE to the JOIN, thus filtering the
results before they are returned. This reduces the number of joined rows
which gives a big performance benefit.
2018-05-10 13:03:11 +02:00
Shamim Rezaie 4dfafed5d9 MDL-62251 Task: Make test_cron_delete_from_temp Unix independent 2018-05-10 20:13:09 +10:00
Eloy Lafuente (stronk7) 8e8ae80550 Merge branch 'MDL-62354-master-enfix' of git://github.com/mudrd8mz/moodle 2018-05-10 11:37:55 +02:00
David Mudrák 4f41ae2763 MDL-61949 privacy: Add mention of the new API in upgrade.txt files
The notice is explicitly repeated for activity modules because they
usually process user data heavily.
2018-05-10 11:35:12 +02:00
Bas Brands d2d150b21d MDL-62376 Theme boost: server side form validation for checkboxes 2018-05-10 11:12:31 +02:00
Shamim Rezaie da3c76158e MDL-62251 task: Fix file_temp_cleanup_task::execute() bug in Windows
$CFG->tempdir might contain both / and \ in Windows. Therefore, we need to
call realpatch() to be able to compare that with another patch.
2018-05-10 18:39:49 +10:00
Sara Arjona b1f1bd2e54 MDL-61714 admin: Update digital age consent map according legislation 2018-05-10 10:32:49 +02:00
Jake Dallimore eac66ff63c Merge branch 'MDL-61971-master' of git://github.com/mickhawkins/moodle 2018-05-10 16:23:22 +08:00
David Monllao 7258bf0bcf MDL-62373 tool_dataprivacy: Get rid of profile's contact dpo left-margin 2018-05-10 10:18:10 +02:00
Shamim Rezaie f181a24a0b MDL-62251 backup: Fix replace_tempdir() bug under Windows
rename() fails under Windows if the destination file/directory exists.
I modified the code to only call $this->get_workdir_path() once as that function
creates the directory if doesn't exist. And we don't want that considering the
behaviour of rename on Windows.
2018-05-10 18:16:09 +10:00
David Monllao 91037dfb29 MDL-62373 tool_dataprivacy: More spacing between rows 2018-05-10 09:01:23 +02:00
David Monllao 782b242ccb Merge branch 'MDL-61309-master' of git://github.com/andrewnicols/moodle 2018-05-10 08:46:32 +02:00
Andrew Nicols f662082974 MDL-61309 mod_forum: Improve privacy query performance 2018-05-10 14:05:53 +08:00
Jun Pataleta 4a70fd9973 Merge branch 'wip-MDL-62289-master' of git://github.com/abgreeve/moodle 2018-05-10 13:52:46 +08:00
Marina Glancy f5b667f1c5 MDL-62206 blocks: do not add fixed form elements as hidden 2018-05-10 12:08:41 +08:00
Adam Olley efc508c39c MDL-62210 mod_assign: limit file lookup to the target assign 2018-05-10 11:21:44 +08:00
Brendan Cox 1be5d6f4fe MDL-62210 mod_assign: improved validation in portfolio caller class 2018-05-10 11:21:44 +08:00
Jake Dallimore 84bc2245f7 Merge branch 'MDL-62383-master' of git://github.com/junpataleta/moodle 2018-05-10 10:03:32 +08:00
Jun Pataleta 6c0c9d5d08 MDL-62383 privacy: Close recordset in contextlist::add_from_sql() 2018-05-10 09:55:33 +08:00
Andrew Nicols dfa16c06a6 Merge branch 'MDL-61973-master' of git://github.com/mickhawkins/moodle 2018-05-10 09:47:10 +08:00
Jake Dallimore 34dd6c69ab MDL-62257 mnetservice_enrol: minor fixes to privacy provider 2018-05-10 09:36:40 +08:00
Jake Dallimore 24a12d96e5 Merge branch 'MDL-62257-master' of git://github.com/cescobedo/moodle 2018-05-10 09:35:02 +08:00
Mihail Geshoski 3f02b87df0 MDL-62380 themes: Minor verification pages not being displayed nicely 2018-05-10 09:35:01 +08:00
Eloy Lafuente (stronk7) c3da16f13d Merge branch 'MDL-61309-master' of git://github.com/andrewnicols/moodle 2018-05-10 09:17:31 +08:00
Eloy Lafuente (stronk7) 51b3c29b92 Merge branch 'MDL-62077-master' of git://github.com/bmbrands/moodle 2018-05-10 09:17:31 +08:00
David Monllao a83b43a118 Merge branch 'MDL-62308_master' of git://github.com/markn86/moodle 2018-05-10 09:17:30 +08:00
Eloy Lafuente (stronk7) 9d56e7925b Merge branch 'MDL-61976_master-fix' of git://github.com/dmonllao/moodle 2018-05-10 09:17:30 +08:00
David Monllao 7140f67a98 MDL-61976 mod_wiki: Trim returned value to avoid EOF-related failures 2018-05-10 09:17:29 +08:00
David Monllao 337673949b Merge branch 'MDL-62056-master' of git://github.com/sarjona/moodle 2018-05-10 09:17:28 +08:00
Andrew Nicols 06ede94f07 Merge branch 'wip-MDL-62351-master' of git://github.com/marinaglancy/moodle 2018-05-10 09:17:28 +08:00
David Monllao 1b764a2fde Merge branch 'MDL-62249-master' of git://github.com/zig-moodle/moodle 2018-05-10 09:17:27 +08:00
David Monllao 99a080f12a Merge branch 'MDL-62361' of git://github.com/stronk7/moodle 2018-05-10 09:17:25 +08:00
Zig Tan 0139b8828f MDL-62366 mod_assign: Followup fix for attemptnumber in exported JSON 2018-05-10 09:16:41 +08:00
Andrew Nicols 0f125a45f4 Merge branch 'MDL-62217_master' of git://github.com/dmonllao/moodle 2018-05-10 09:16:01 +08:00
Andrew Nicols 270cefc4b0 Merge branch 'MDL-62269-master' of git://github.com/vmdef/moodle 2018-05-10 09:16:00 +08:00
David Monllao a49a438536 Merge branch 'MDL-62364_master' of git://github.com/markn86/moodle 2018-05-10 09:15:59 +08:00
David Monllao 6fe7510ae0 Merge branch 'wip-MDL-61976-master' of git://github.com/marinaglancy/moodle 2018-05-10 09:15:59 +08:00
David Monllao 8a4b725f6d MDL-61994 mod_glossary: Fixing wrong subsystem name 2018-05-10 09:15:59 +08:00
David Monllao aea028ff29 Merge branch 'MDL-61994-master' of git://github.com/lameze/moodle 2018-05-10 09:15:58 +08:00
David Monllao f60b216de0 Merge branch 'MDL-61309-master' of git://github.com/andrewnicols/moodle 2018-05-10 09:15:57 +08:00
Brendan Cox d8609cb545 MDL-62232 mod_forum: Additional tests for portfolio file export 2018-05-10 09:15:57 +08:00
Adam Olley 5b89ff626d MDL-62232 mod_forum: Limit portfolio to files belonging to the post 2018-05-10 09:15:57 +08:00
Andrew Nicols 4191032993 Merge branch 'MDL-61905-master-privacyworkshop' of git://github.com/mudrd8mz/moodle 2018-05-10 09:15:56 +08:00
Andrew Nicols 178bb8c22e Merge branch 'MDL-62029-master-2' of git://github.com/snake/moodle 2018-05-10 09:15:55 +08:00
Jun Pataleta 9f358de241 Merge branch 'MDL-62332-master' of git://github.com/bmbrands/moodle 2018-05-10 09:15:55 +08:00
Andrew Nicols f7ca19afaa Merge branch 'MDL-62318-master' of git://github.com/rezaies/moodle 2018-05-10 09:15:54 +08:00
Andrew Nicols 820c234934 Merge branch 'MDL-62117-master' of git://github.com/rezaies/moodle 2018-05-10 09:15:54 +08:00
Andrew Nicols 5b98200ff4 Merge branch 'MDL-62051-master' of git://github.com/bmbrands/moodle 2018-05-10 09:15:46 +08:00
Marina Glancy 2d83a76ed7 MDL-62233 portfolio: check caller parent class 2018-05-10 09:13:03 +08:00
Andrew Nicols db4754e98c MDL-61309 mod_forum: Remove unnecessary deletion check 2018-05-10 07:45:27 +08:00
Sara Arjona 6416e87f26 MDL-61951 grading: Implement privacy API 2018-05-09 22:41:04 +02:00
David Mudrák 14e0ab3536 MDL-62354 tool_policy: Reflect the strings improvements in Behat tests 2018-05-09 22:39:22 +02:00
Helen Foster a5591614d5 MDL-62354 lang: Merge English strings from the en_fix language pack
Significant string changes:

* publishstate_help, core_notes - including GDPR guidance
* contactdataprotectionofficer_desc, tool_dataprivacy - removing mention
  of link on privacy policy page as it is not yet implemented
2018-05-09 22:39:21 +02:00
Bas Brands 5b399ba107 MDL-62077 Theme boost: position data registry edit button 2018-05-09 16:54:46 +02:00
Bas Brands b197ab3566 MDL-62359 Theme boost: allow breaks as separators in form groups 2018-05-09 16:50:16 +02:00
Mark Nelson 0f41e8a2a1 MDL-62308 core_backup: implement privacy provider
The provider was added to 'backup/util/ui/' due to
Moodle's implementation of autoclass loading. See
fetch_subsystems() in lib/classes/component.php.
2018-05-09 22:48:07 +08:00
Marina Glancy 468c8d39c3 MDL-62351 privacy: check that subsystem/plugintype exist 2018-05-09 17:37:31 +08:00
Mark Nelson b6b7c2636f MDL-62364 core: allow null for 'courseid' in notification_sent event
It's possible the '\core\message\message' object has a null value
for the 'courseid' which is used in \core\message\manager::send_message().
Make sure we compensate for this.
2018-05-09 17:27:00 +08:00
Marina Glancy 7cc21cb7bd MDL-61976 mod_wiki: implement privacy API 2018-05-09 17:26:52 +08:00
Victor Deniz 5d5881f0f8 MDL-62269 auth_mnet: Implement privacy API
AMOS BEGIN
 CPY [privacy:metadata:address,core_user],[privacy:metadata:mnet_external:address,auth_mnet]
 CPY [privacy:metadata:aim,core_user],[privacy:metadata:mnet_external:aim,auth_mnet]
 CPY [privacy:metadata:aim,core_user],[privacy:metadata:mnet_external:aim,auth_mnet]
 CPY [privacy:metadata:alternatename,core_user],[privacy:metadata:mnet_external:alternatename,auth_mnet]
 CPY [privacy:metadata:autosubscribe,core_user],[privacy:metadata:mnet_external:autosubscribe,auth_mnet]
 CPY [privacy:metadata:calendartype,core_user],[privacy:metadata:mnet_external:calendartype,auth_mnet]
 CPY [privacy:metadata:city,core_user],[privacy:metadata:mnet_external:city,auth_mnet]
 CPY [privacy:metadata:country,core_user],[privacy:metadata:mnet_external:country,auth_mnet]
 CPY [privacy:metadata:currentlogin,core_user],[privacy:metadata:mnet_external:currentlogin,auth_mnet]
 CPY [privacy:metadata:department,core_user],[privacy:metadata:mnet_external:department,auth_mnet]
 CPY [privacy:metadata:description,core_user],[privacy:metadata:mnet_external:description,auth_mnet]
 CPY [privacy:metadata:email,core_user],[privacy:metadata:mnet_external:email,auth_mnet]
 CPY [privacy:metadata:emailstop,core_user],[privacy:metadata:mnet_external:emailstop,auth_mnet]
 CPY [privacy:metadata:firstaccess,core_user],[privacy:metadata:mnet_external:firstaccess,auth_mnet]
 CPY [privacy:metadata:firstname,core_user],[privacy:metadata:mnet_external:firstname,auth_mnet]
 CPY [privacy:metadata:firstnamephonetic,core_user],[privacy:metadata:mnet_external:firstnamephonetic,auth_mnet]
 CPY [privacy:metadata:icq,core_user],[privacy:metadata:mnet_external:icq,auth_mnet]
 CPY [privacy:metadata:id,core_user],[privacy:metadata:mnet_external:id,auth_mnet]
 CPY [privacy:metadata:idnumber,core_user],[privacy:metadata:mnet_external:idnumber,auth_mnet]
 CPY [privacy:metadata:imagealt,core_user],[privacy:metadata:mnet_external:imagealt,auth_mnet]
 CPY [privacy:metadata:institution,core_user],[privacy:metadata:mnet_external:institution,auth_mnet]
 CPY [privacy:metadata:lang,core_user],[privacy:metadata:mnet_external:lang,auth_mnet]
 CPY [privacy:metadata:lastaccess,core_user],[privacy:metadata:mnet_external:lastaccess,auth_mnet]
 CPY [privacy:metadata:lastlogin,core_user],[privacy:metadata:mnet_external:lastlogin,auth_mnet]
 CPY [privacy:metadata:lastname,core_user],[privacy:metadata:mnet_external:lastname,auth_mnet]
 CPY [privacy:metadata:lastnamephonetic,core_user],[privacy:metadata:mnet_external:lastnamephonetic,auth_mnet]
 CPY [privacy:metadata:maildigest,core_user],[privacy:metadata:mnet_external:maildigest,auth_mnet]
 CPY [privacy:metadata:maildisplay,core_user],[privacy:metadata:mnet_external:maildisplay,auth_mnet]
 CPY [privacy:metadata:middlename,core_user],[privacy:metadata:mnet_external:middlename,auth_mnet]
 CPY [privacy:metadata:msn,core_user],[privacy:metadata:mnet_external:msn,auth_mnet]
 CPY [privacy:metadata:phone,core_user],[privacy:metadata:mnet_external:phone1,auth_mnet]
 CPY [privacy:metadata:picture,core_user],[privacy:metadata:mnet_external:picture,auth_mnet]
 CPY [privacy:metadata:policyagreed,core_user],[privacy:metadata:mnet_external:policyagreed,auth_mnet]
 CPY [privacy:metadata:skype,core_user],[privacy:metadata:mnet_external:skype,auth_mnet]
 CPY [privacy:metadata:suspended,core_user],[privacy:metadata:mnet_external:suspended,auth_mnet]
 CPY [privacy:metadata:timezone,core_user],[privacy:metadata:mnet_external:timezone,auth_mnet]
 CPY [privacy:metadata:trackforums,core_user],[privacy:metadata:mnet_external:trackforums,auth_mnet]
 CPY [privacy:metadata:trustbitmask,core_user],[privacy:metadata:mnet_external:trustbitmask,auth_mnet]
 CPY [privacy:metadata:url,core_user],[privacy:metadata:mnet_external:url,auth_mnet]
 CPY [privacy:metadata:username,core_user],[privacy:metadata:mnet_external:username,auth_mnet]
 CPY [privacy:metadata:yahoo,core_user],[privacy:metadata:mnet_external:yahoo,auth_mnet]
AMOS END
2018-05-09 10:15:20 +01:00
Barbara Ramiro 7e4bffd836 MDL-61973 editor_atto: refactoring media icons 2018-05-09 17:00:14 +08:00
David Monllao 94522f8dd0 MDL-62217 search_solr: Plugin provider fake implementation 2018-05-09 10:57:14 +02:00
David Monllao 74fc7d3120 MDL-62217 search: Privacy providers 2018-05-09 10:56:02 +02:00
David Mudrák 59a8a5c0b8 MDL-61905 workshop: Implement privacy API in grading evaluators
Standard workshop ships with only one evaluation method and that one
holds no personal data.
2018-05-09 10:01:50 +02:00
David Mudrák 4b8d462ee6 MDL-61905 workshop: Implement privacy API in assessment allocators
Assessment allocation methods normally do not store any personal data.
Their duty is to create assessment records that are then exported by the
workshop core itself.

Still, some allocators (such as the Manual allocation) can store certain
personal data such as user preferences.
2018-05-09 10:01:50 +02:00
David Mudrák fe745a0a84 MDL-61905 workshop: Implement privacy API in grading strategies
On low level, standard grading strategies subplugins do not store
personal themselves.  They make use of the grades storage provided by
the workshop itself.  What they do contain though is the information
about how the assessment forms were defined. And they are also
responsible for correctly interpreting the values in the central grades
table.

Grading strategies fulfil the contract with the parent workshop module
by implementing the workshopform_provider interface. That gives them a
chance to export data about the assessment form to each of exported
assessment.
2018-05-09 10:01:50 +02:00
David Mudrák 84a57322c2 MDL-61905 workshop: Implement the privacy API in the workshop core
Workshop module stores personal data in its tables, via user
preference and via core_files and core_plagiarism subsystems.

When exporting the data, we export not only data created by users
themselves (such as their submissions and provided peer-assessments) but
also all relevant data that can (or must) be used to interpret created
content and evaluate the user's performance and skills.

On the other hand, when deleting data at user's request, we delete only
those data that do not affect other users' performance evaluation. The
reasoning is that one's right for privacy does not overweight someone
else's right for fair assessment. For that reason, we can't fully delete
whole provided peer-assessments, for example. Because they are used in
cross-comparison and grading evaluation of all other peers who assessed
the same submission. So instead, we replace provided texts but still
keep the original record.

Workshop defines the interface for its grading strategy subplugins to
allow them attach personal data under their control to the exported
structures.
2018-05-09 10:01:50 +02:00
Jake Dallimore e4a37fbef1 MDL-62029 core_course: Fixes to context-aware provider implementation. 2018-05-09 15:34:41 +08:00
Sara Arjona fd7174d03f MDL-62056 policy: Adapt code to avoid travis errors on Github 2018-05-09 08:31:32 +02:00
Andrew Nicols 3e95e09b67 MDL-61309 mod_forum: Implement privacy deletion 2018-05-09 14:04:13 +08:00
Andrew Nicols caef6489ae MDL-61309 mod_forum: Implement the Privacy API 2018-05-09 14:04:12 +08:00
Andrew Nicols 2de389aa05 MDL-61309 core_tags: Add privacy unit test trait 2018-05-09 14:04:12 +08:00
Michael Hawkins be5cc0ba03 MDL-61971 dataprivacy: Added warning messages where data request pages are viewed on non-HTTPS sites 2018-05-09 11:59:26 +08:00
Shamim Rezaie 5c87353833 MDL-62318 core_group: Updating cache when deleting group memberships 2018-05-09 13:29:39 +10:00
Shamim Rezaie 55c1865638 MDL-62318 core_group: Add implementation of privacy API 2018-05-09 13:29:26 +10:00
Simey Lameze fe80a5ab66 MDL-61994 mod_glossary: add unit tests for provider 2018-05-09 10:57:42 +08:00
Simey Lameze a92bbd867d MDL-61994 mod_glossary: implement privacy providers 2018-05-09 10:57:13 +08:00
Adrian Greeve c8e4922194 MDL-62289 tool_dataprivacy: Ensure all user data deleted.
We now do a comprehensive check and clean of user data when
a user context expires.
2018-05-09 10:16:39 +08:00
Adrian Greeve 9faf51a7ca MDL-62029 core_privacy: context aware provider creation. 2018-05-09 10:11:47 +08:00
Adrian Greeve fd9c70c43f MDL-62029 core_course: Create privacy files for core_course. 2018-05-09 10:11:41 +08:00
Marina Glancy ce3f804683 MDL-61996 core: when loggedin always check user is complete 2018-05-09 02:55:55 +02:00
Eloy Lafuente (stronk7) 12ed3e2716 MDL-62361 versions: main version bump 2018-05-09 02:48:22 +02:00
Eloy Lafuente (stronk7) 57ea6753d3 MDL-62361 versions: bump all versions and requires near release
version = 2018051400 release version
requires= 2018050800 current beta+ (week4roll1) version
2018-05-09 02:46:30 +02:00
Andrew Nicols 4864a25baf Merge branch 'MDL-62010-master' of git://github.com/cescobedo/moodle 2018-05-09 08:12:27 +08:00
cescobedo 451f4a284c MDL-62010 core_enrol: Add privacy implementation for core_enrol 2018-05-08 18:52:25 +02:00
David Monllao 93ba31b27c MDL-61814 core_user: Remove empty line to avoid ci warning 2018-05-08 17:19:23 +02:00
David Monllao 40cd9b66a6 Merge branch 'wip-MDL-61814-master' of git://github.com/abgreeve/moodle 2018-05-08 17:17:47 +02:00
David Monllao 5d2dd881e3 Merge branch 'MDL-61943-master' of git://github.com/cescobedo/moodle 2018-05-08 16:43:50 +02:00
Bas Brands 95d7c77b28 MDL-62051 Theme boost: access restriction layout 2018-05-08 16:13:00 +02:00
David Monllao 02c7769422 on-demand release 3.5beta+ 2018-05-08 14:02:40 +02:00
David Monllao 69a0a8edef NOBUG: Fixed file access permissions 2018-05-08 14:02:40 +02:00
David Monllao 127f9c8274 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-05-08 14:02:38 +02:00
cescobedo a69de9ba05 MDL-61943 core_role: Add privacy implementation for core_role 2018-05-08 13:40:30 +02:00
cescobedo 7c7ace009a MDL-62257 mnetservice_enrol: Implement Privacy API 2018-05-08 10:09:25 +02:00
Bas Brands ea6dfd78ce MDL-62332 Theme boost: paging bar empty active link 2018-05-08 09:26:14 +02:00
Andrew Nicols 800c81dc38 MDL-61876 admin: Bump version 2018-05-08 14:47:29 +08:00
Andrew Nicols 9f7aeac5e5 Merge branch 'wip-MDL-61937-master-fix' of https://github.com/marinaglancy/moodle 2018-05-08 14:43:04 +08:00
Marina Glancy ae3b1c0048 MDL-61937 mod_data: fix commentarea name 2018-05-08 14:39:23 +08:00
Adrian Greeve b781f58e91 MDL-61814 report_stats: Update to be a full privacy provider. 2018-05-08 13:42:05 +08:00
Adrian Greeve ab78499bbd MDL-61814 core_portfolio: Update to portfolio provider. 2018-05-08 13:42:05 +08:00
Andrew Nicols 4f2bc5bc8f MDL-61876 admin: Move forceclean to experimental settings 2018-05-08 13:30:09 +08:00
Andrew Nicols 1144ae255f Revert "MDL-61876 admin: set default forceclean=1"
This reverts commit c182f060fa.
2018-05-08 13:28:12 +08:00
Andrew Nicols e3a1b34376 Revert "MDL-61876 admin: for upgraded sites keep forceclean=0"
This reverts commit 7529031368.
2018-05-08 13:28:09 +08:00
Zig Tan e151fdad92 MDL-62249 block_tag_flickr: Corrected privacy providers 2018-05-08 12:11:46 +08:00
Marina Glancy 2d9d4a1d88 MDL-61976 privacy: replace pluginfile in test writer 2018-05-08 12:03:41 +08:00
Marina Glancy 8dd8486355 MDL-61976 privacy: add subcontext argument to has_any_data 2018-05-08 12:03:41 +08:00
Adrian Greeve c49f309204 MDL-61814 core_user: Implement privacy system for user. 2018-05-08 11:44:37 +08:00
Andrew Nicols a9be2f18bd Merge branch 'wip-MDL-62068-master' of git://github.com/marinaglancy/moodle 2018-05-08 11:39:44 +08:00
Andrew Nicols 44d8324247 Merge branch 'MDL-62281-master' of git://github.com/sarjona/moodle 2018-05-08 11:34:46 +08:00
Marina Glancy 2207b0fa9f MDL-62068 core_tag: implement privacy API 2018-05-08 11:30:54 +08:00
Shamim Rezaie 31fd863bd9 MDL-62117 enrol_paypal: Add implementation of Privacy API 2018-05-08 13:30:42 +10:00
Andrew Nicols 630a72f19f Merge branch 'MDL-62285-master' of git://github.com/ryanwyllie/moodle 2018-05-08 11:08:03 +08:00
Andrew Nicols b043073143 Merge branch 'MDL-62274-master' of git://github.com/bmbrands/moodle 2018-05-08 08:38:13 +08:00
Eloy Lafuente (stronk7) fc8cc24c85 Merge branch 'MDL-61521-master' of git://github.com/jleyva/moodle 2018-05-08 01:41:32 +02:00
Eloy Lafuente (stronk7) e2ede0b5c3 Merge branch 'MDL-62295-master' of git://github.com/bmbrands/moodle 2018-05-08 01:02:35 +02:00
Eloy Lafuente (stronk7) d0ce3439fe Merge branch 'wip-MDL-61876-fix' of https://github.com/marinaglancy/moodle 2018-05-07 19:15:28 +02:00
Bas Brands 3560cf5f82 MDL-62322 Theme boost: update template display classes 2018-05-07 15:06:14 +02:00
Bas Brands 29587cc9da MDL-62274 Theme boost: bootstrap classes define roles form 2018-05-07 14:36:48 +02:00
Sara Arjona a22f7bbb3a MDL-62281 tool_policy: Remove empty row in Policies and agreements page 2018-05-07 12:53:40 +02:00
David Monllao 775db1409e Merge branch 'MDL-62326-master' of git://github.com/andrewnicols/moodle 2018-05-07 12:09:40 +02:00
Bas Brands 54cbfbca8a MDL-62295 Theme boost: duration form field alignment 2018-05-07 11:39:57 +02:00
Andrew Nicols b175d43408 Merge branch 'MDL-62169-master' of git://github.com/zig-moodle/moodle 2018-05-07 17:24:26 +08:00
Jun Pataleta ea083b0a5e Merge branch 'MDL-62062-master' of git://github.com/sarjona/moodle 2018-05-07 17:21:49 +08:00
Zig Tan 966dd82d90 MDL-62169 mod_assignment: Improved phpunit test reliability 2018-05-07 16:32:49 +08:00
Sara Arjona 461b1931c0 MDL-62062 tool_policy: Let manager/dpo withdraw consent to policies
The policies can be revoked by clicking the "Agreed [on behalf]" ticks.
A message has been added also to explain users they must contact to
the DPO if they want to withdraw their consent to policies.
2018-05-07 10:11:13 +02:00
Andrew Nicols 53a58dda1c Merge branch 'MDL-61919_master' of git://github.com/markn86/moodle 2018-05-07 15:45:43 +08:00
Andrew Nicols 9846d710fe Merge branch 'wip-MDL-62137-master' of git://github.com/abgreeve/moodle 2018-05-07 15:24:01 +08:00
Andrew Nicols aad32d11f5 MDL-62326 core_antivirus: Implement null provider 2018-05-07 14:31:14 +08:00
Adrian Greeve 6d3b250b4f MDL-62137 core_privacy: Update to helper to use core_completion 2018-05-07 14:28:17 +08:00
Adrian Greeve ebab932f71 MDL-62137 core_completion: Privacy files for core_completion. 2018-05-07 14:28:16 +08:00
Andrew Nicols e9e2ef7da7 Merge branch 'MDL-62169-master' of git://github.com/zig-moodle/moodle 2018-05-07 14:12:06 +08:00
Zig Tan 0fed66ad0f MDL-62169 mod_assignment: Implemented privacy providers 2018-05-07 13:38:56 +08:00
Andrew Nicols c9b29e6b98 Merge branch 'MDL-62171-master' of git://github.com/bmbrands/moodle 2018-05-07 13:10:34 +08:00
David Monllao 2963a540ef Merge branch 'MDL-62291-master' of git://github.com/junpataleta/moodle 2018-05-07 06:12:00 +02:00
Marina Glancy 8852faea91 MDL-61876 modules: cm_info::set_content can accept formatted text
Allow modules to apply format_text() on user input before calling cm_info::set_content(). This is useful for
modules that add interactive content (for example, JS enhanced folder tree). Otherwise all javascript would
be removed if $CFG->forceclean is enabled.
2018-05-07 11:27:56 +08:00
Michael Hawkins 910b62a3d0 MDL-61973 editor_atto: refactoring media icons 2018-05-07 11:21:40 +08:00
Marina Glancy b03c67e978 MDL-61876 mod_data: call format_text on template before replacement
Otherwise when $CFG->forceclean is enabled all search input fields are stripped out
2018-05-07 11:21:06 +08:00
Jun Pataleta 23fbd252db Merge branch 'MDL-62286-master' of git://github.com/sarjona/moodle 2018-05-07 10:05:24 +08:00
Jun Pataleta 97f1c1f424 Merge branch 'MDL-61937-master-fix' of git://github.com/andrewnicols/moodle 2018-05-07 09:38:10 +08:00
Jun Pataleta fbd7daf50e Merge branch 'MDL-61937_master-fix' of git://github.com/dmonllao/moodle 2018-05-07 09:37:55 +08:00
Andrew Nicols ea80f967b8 MDL-61937 mod_data: Correct rating export args in privacy 2018-05-07 09:28:54 +08:00
Andrew Nicols a5c2308443 MDL-61407 question: Export step files in privacy 2018-05-07 07:09:30 +08:00
Eloy Lafuente (stronk7) fc5c5306c9 MDL-61693 core_calendar: make results deterministic for better testing 2018-05-06 18:19:21 +02:00
David Monllao 70e8515ea8 MDL-62218 analytics: Add missing sample origin checking 2018-05-04 16:35:42 +02:00
Bas Brands bfe00e67a3 MDL-62200 Theme boost: popup in popup styles 2018-05-04 13:56:46 +02:00
Eloy Lafuente (stronk7) fcb7459569 Merge branch 'wip-MDL-61876-master-fix' of https://github.com/marinaglancy/moodle 2018-05-04 12:11:16 +02:00
David Monllao 62c9d0877a MDL-61937 mod_data: Target the correct area 2018-05-04 11:55:25 +02:00
Frédéric Massart 9967731256 MDL-61877 core_competency: False negative due to random ordering 2018-05-04 11:18:42 +02:00
Marina Glancy 7529031368 MDL-61876 admin: for upgraded sites keep forceclean=0 2018-05-04 15:55:45 +08:00
Zig Tan bdf271df80 MDL-61693 core_calendar: Simplified get calendar event details SQL 2018-05-04 13:01:37 +08:00
Jake Dallimore 209f6e1eda Merge branch 'MDL-61407-master' of git://github.com/andrewnicols/moodle 2018-05-04 11:50:26 +08:00
Andrew Nicols 9b3159246f Merge branch 'wip-MDL-61937-master' of git://github.com/marinaglancy/moodle 2018-05-04 11:29:24 +08:00
Jun Pataleta cb596d823f Merge branch 'MDL-61877-master' of git://github.com/FMCorz/moodle 2018-05-04 11:25:49 +08:00
Marina Glancy ab803d697c MDL-61937 mod_data: implement privacy provider 2018-05-04 11:22:15 +08:00
Marina Glancy 1c4b87cb97 MDL-61937 tag: new method in privacy api 2018-05-04 11:22:14 +08:00
Marina Glancy e5ec530a44 MDL-61937 rating: delete method in privacy provider 2018-05-04 11:22:14 +08:00
Marina Glancy 70703d4c51 MDL-61937 comment: do not use API in provider
When exporting comments we can not use comments API because:
- we don't need to call component validate, comments may be disabled right now but
  are still stored
- we don't need to call display callback
- we need to export all comments and not only first 15 of them
2018-05-04 11:22:14 +08:00
Marina Glancy a7a6be90c8 MDL-61937 mod_data: generator for all field types 2018-05-04 11:22:14 +08:00
cescobedo ed54f4e11e MDL-61937 datafield: Add privacy implementation for all datafield 2018-05-04 11:22:13 +08:00
Andrew Nicols 2cae92c6c3 Merge branch 'MDL-62218-master' of git://github.com/ryanwyllie/moodle 2018-05-04 11:11:14 +08:00
Ryan Wyllie 28b870b4de MDL-62218 analytics: make privacy test class name more unique 2018-05-04 11:04:24 +08:00
Jun Pataleta 66156ad245 Merge branch 'MDL-62151-master' of git://github.com/bmbrands/moodle 2018-05-04 10:55:50 +08:00
Jake Dallimore 1c73a11a20 Merge branch 'MDL-62046-master' of git://github.com/mihailges/moodle 2018-05-04 10:26:41 +08:00
Jake Dallimore 6ef8a82599 Merge branch 'MDL-62032-master' of git://github.com/mihailges/moodle 2018-05-04 09:56:37 +08:00
Jake Dallimore e46c60db2a Merge branch 'MDL-62030-master' of git://github.com/mihailges/moodle 2018-05-04 09:51:39 +08:00
Jake Dallimore 2566b18a31 Merge branch 'MDL-59845-master' of git://github.com/andrewnicols/moodle 2018-05-04 09:43:14 +08:00
Jake Dallimore 4fb76c0fac Merge branch 'MDL-62007-master' of git://github.com/mihailges/moodle 2018-05-04 09:19:51 +08:00
Andrew Nicols 67e2ee0b65 Merge branch 'wip-MDL-61876-master' of git://github.com/marinaglancy/moodle 2018-05-04 08:03:48 +08:00
Eloy Lafuente (stronk7) 6c0b4929c6 Merge branch 'MDL-62315-master-privacycoreform' of git://github.com/mudrd8mz/moodle 2018-05-03 23:40:37 +02:00
Eloy Lafuente (stronk7) 3149bea2c4 Merge branch 'MDL-61800-master' of git://github.com/andrewnicols/moodle 2018-05-03 23:27:51 +02:00
Eloy Lafuente (stronk7) 6a23fb2171 MDL-62202 privacy: fix behat tests to point to new location under users 2018-05-03 22:48:29 +02:00
David Mudrák fa7297aff0 MDL-62315 form: Implement the privacy API for core_form subsystem
Forms subsystem has no own database table. The only personal data is the
user preference 'filemanager_recentviewmode' that stores the view mode
of the file picker element.

It was discussed whether handling of this preference should be added
here into core_form, or rather into core_repository subsystem. The final
decision was to consider the preference as owned by the core_form
because it is affecting the display of a form element, not the
repository backend (even though the strings describing it had been put
into core_repository strings).
2018-05-03 19:05:39 +02:00
David Monllao bf694d4724 Merge branch 'MDL-62254_master' of https://github.com/nadavkav/moodle 2018-05-03 16:08:11 +02:00
David Monllao 6474044464 Merge branch 'MDL-62227-master' of git://github.com/bmbrands/moodle 2018-05-03 15:49:43 +02:00
David Monllao 97b0a6cbfc MDL-62218 analytics: Privacy API implementation 2018-05-03 15:28:22 +02:00
Mark Nelson 04cd1b3f31 MDL-61919 core_message: implement privacy provider 2018-05-03 20:44:05 +08:00
Sara Arjona 3d34aa5c29 MDL-62062 tool_policy: Avoid access to consent page after agreeding
Once the policies have been accepted, only users with permission to
revoke them will be able to access again to the user consent page.
2018-05-03 13:59:21 +02:00
Andrew Nicols 545e2b4ec7 Merge branch 'MDL-62240-master' of git://github.com/sarjona/moodle 2018-05-03 18:57:28 +08:00
Jake Dallimore 9ab7a315d1 Merge branch 'MDL-62310-master' of git://github.com/cescobedo/moodle 2018-05-03 18:00:40 +08:00
Bas Brands ae0629d284 MDL-62171 Theme boost: modal accessibility focus 2018-05-03 11:54:26 +02:00
Jun Pataleta 46cb408e30 MDL-62291 tool_dataprivacy: Change DPO mapping setting to multi-checkbox 2018-05-03 17:26:31 +08:00
Jun Pataleta c166b700d8 Merge branch 'MDL-61194-master' of git://git.cameron1729.xyz/moodle 2018-05-03 17:07:57 +08:00
Cameron Ball 23fe1e2bed MDL-61194 assignfeedback_editpdf: Check if we can convert online text
This patch adds a check to make sure there is a converter available that
will be able to handle html->pdf conversion before adding onlinetext
submissions to the list of files to combine.
2018-05-03 16:44:27 +08:00
Mihail Geshoski fd4c7d6461 MDL-62046 profilefield_textarea: Add privacy files and unit tests 2018-05-03 16:25:58 +08:00
David Monllao 3128529784 Merge branch 'MDL-61693-master' of git://github.com/zig-moodle/moodle 2018-05-03 10:24:02 +02:00
Andrew Nicols 50f5a097a2 MDL-61407 privacy: Reset the writer after writer tests
The writer was not reset after these tests which had the potential to
affect the next test after these were run.
2018-05-03 16:14:38 +08:00
Andrew Nicols 09a9b8f1ac MDL-61407 quizaccess: Add null_writer implementations 2018-05-03 16:14:38 +08:00
Andrew Nicols 2e85118fb3 MDL-61407 quiz: Add reports for quiz 2018-05-03 16:14:37 +08:00
Andrew Nicols 05014132b6 MDL-61407 qtype: Add null_writer for all qtypes 2018-05-03 16:14:37 +08:00
Andrew Nicols 80b0c733f2 MDL-61407 qformat: Add null_writer for all qformats
Questions formats do not store any personal data.
Any contrib format which does store personal data should utilise the
standard export interfaces as this subsystem will not call them directly.
2018-05-03 16:14:36 +08:00
Andrew Nicols fa9eba7d84 MDL-61407 question: Add null_writer for all behaviours
Behaviours do not store any personal data.
Any contrib behaviour which does store personal data should utilise the
standard export interfaces as this subsystem will not call them directly.
2018-05-03 16:14:36 +08:00
Andrew Nicols 4c729982c7 MDL-61407 mod_quiz: Add initial privacy implementation 2018-05-03 16:14:36 +08:00
Andrew Nicols d44064cdd6 MDL-61407 question: Add initial privacy implementation 2018-05-03 16:14:35 +08:00
David Monllao 4e7232b82e Merge branch 'MDL-62058-master' of git://github.com/bmbrands/moodle 2018-05-03 10:11:28 +02:00
David Monllao 205994bafe Merge branch 'MDL-62059-master' of git://github.com/rezaies/moodle 2018-05-03 10:08:09 +02:00
Mihail Geshoski cf6a77fbbb MDL-62032 profilefield_text: Add privacy files and unit tests 2018-05-03 16:07:55 +08:00
Mihail Geshoski a15712ef6e MDL-62030 profilefield_menu: Add privacy files and unit tests 2018-05-03 15:51:52 +08:00
Jun Pataleta f2cb3952af Merge branch 'MDL-62282-master' of git://github.com/ryanwyllie/moodle 2018-05-03 15:40:55 +08:00
Bas Brands 5e92cf33c5 MDL-62151 Theme boost: mod_chat styles 2018-05-03 09:34:40 +02:00
Mihail Geshoski 8ddb08c9d9 MDL-62007 profilefield_checkbox: Modify privacy provider 2018-05-03 15:27:50 +08:00
Sara Arjona 7a3707797d MDL-62240 privacy: Avoid error when path is higher than allowed
A new method shorten_filenames has been added to moodlelib.
2018-05-03 09:16:13 +02:00
Mihail Geshoski 76b61aa064 MDL-62007 profilefield_datetime: Add privacy files and unit tests 2018-05-03 14:57:41 +08:00
Jun Pataleta 2bb0f8923c Merge branch 'MDL-61956-master' of https://github.com/lucaboesch/moodle 2018-05-03 14:46:52 +08:00
Andrew Nicols 76cb5a56ea MDL-62240 file: Add includehash to shorten_filename + unit tests 2018-05-03 08:27:12 +02:00
Jake Dallimore 2891577f61 Merge branch 'MDL-62264-master' of git://github.com/cescobedo/moodle 2018-05-03 14:03:29 +08:00
Jun Pataleta 198c797a73 Merge branch 'MDL-62202-master' of git://github.com/sarjona/moodle 2018-05-03 13:31:53 +08:00
Andrew Nicols d28429859e Merge branch 'MDL-62009-master' of git://github.com/FMCorz/moodle 2018-05-03 12:15:54 +08:00
Andrew Nicols bacaac3a12 Merge branch 'wip-MDL-62312-master' of git://github.com/marinaglancy/moodle 2018-05-03 11:09:23 +08:00
Jake Dallimore bb35eb7da7 Merge branch 'MDL-62280-master' of git://github.com/andrewnicols/moodle 2018-05-03 10:52:48 +08:00
Marina Glancy 3127fe10b8 MDL-62312 course: Move core_publish renderer methods to course renderer 2018-05-03 10:08:37 +08:00
Jun Pataleta d16be43c05 Merge branch 'MDL-60414-master' of https://github.com/lucaboesch/moodle 2018-05-03 09:33:20 +08:00
Andrew Nicols 27013d397c Merge branch 'MDL-62163-master' of git://github.com/bmbrands/moodle 2018-05-03 09:25:55 +08:00
Andrew Nicols 159f057751 Merge branch 'wip-MDL-62276-master' of https://github.com/Beedell/moodle 2018-05-03 09:18:29 +08:00
AMOS bot 350fb7829a Automatically generated installer lang files 2018-05-03 00:06:17 +00:00
Jun Pataleta 3cfbce12a6 MDL-62312 admin: Move moodleorg_registration_message to admin renderer 2018-05-02 23:41:59 +08:00
Bas Brands ede6125a08 MDL-62163 Theme boost: add flex-grow 1 to atto felement content 2018-05-02 15:41:17 +02:00
Sara Arjona 54659fd14d MDL-62286 tool_policy: Add Policies link to the site footer 2018-05-02 14:20:49 +02:00
Andrew Nicols cc98914e85 MDL-61407 question: Allow formatters to ignore caps 2018-05-02 19:13:30 +08:00
Andrew Nicols 04507546ec MDL-61407 privacy: Track changes in any context 2018-05-02 19:13:30 +08:00
cescobedo 7ee1f3dede MDL-62310 core_admin: Implement Privacy API 2018-05-02 11:55:11 +02:00
Andrew Nicols b3359e2a3b MDL-62135 tool_log: Use plugintype_class_callback 2018-05-02 17:47:35 +08:00
Luca Bösch 000355f223 MDL-60414 theme_boost: bootstrap dropdown menu html spec char rendering 2018-05-02 11:40:51 +02:00
Andrew Nicols 028fb5c1f6 Merge branch 'MDL-62135-master' of git://github.com/FMCorz/moodle 2018-05-02 17:37:47 +08:00
cescobedo 61547a4d68 MDL-62264 core_mnet: Implement Privacy API 2018-05-02 11:17:03 +02:00
Frédéric Massart fc6cf1802e MDL-62135 logstore_legacy: Implement privacy API 2018-05-02 17:15:48 +08:00
Frédéric Massart 0f3bcbb92e MDL-62135 logstore_database: Implement privacy API 2018-05-02 17:15:48 +08:00
Frédéric Massart ab01e8a970 MDL-62135 logstore_standard: Implement privacy API 2018-05-02 17:15:48 +08:00
Frédéric Massart 2bc753db41 MDL-62135 tool_log: Implement privacy API 2018-05-02 17:15:47 +08:00
David Monllao cee06411b5 MDL-62218 mlbackend: Null privacy providers for core mlbackends 2018-05-02 11:14:33 +02:00
David Mudrák ea2ede2cf6 MDL-61905 workshop: Drop the old 1.x era tables
These tables may still contain relics of old personal data if the site
was installed before Moodle 2.0. We do not need these tables any more.
Following the "privacy by design" principles, we are dropping them now.
2018-05-02 10:35:01 +02:00
Luca Bösch 0188d5b5b4 MDL-61956 calendar: allow to see hidden course with switch role 2018-05-02 09:37:32 +02:00
Sara Arjona a97af76c0b MDL-62202 privacy: Move Privacy and policies category to Users page 2018-05-02 08:44:33 +02:00
Jun Pataleta 1b35627570 Merge branch 'MDL-62253-master' of git://github.com/FMCorz/moodle 2018-05-02 13:53:43 +08:00
Jun Pataleta c39c3edb8e Merge branch 'MDL-61898-master' of git://github.com/andrewnicols/moodle 2018-05-02 13:46:56 +08:00
Andrew Nicols fa43449aad Merge branch 'MDL-62150-master' of git://github.com/bmbrands/moodle 2018-05-02 13:38:07 +08:00
Andrew Nicols f7bac7ac8d MDL-61898 cache: Implement privacy API for all stores and locks 2018-05-02 13:36:07 +08:00
Andrew Nicols d1430a1e83 Merge branch 'MDL-62214-master-fixup' of https://github.com/FMCorz/moodle 2018-05-02 13:09:12 +08:00
Andrew Nicols 475fddc99a Merge branch 'MDL-61920_master' of git://github.com/markn86/moodle 2018-05-02 12:52:50 +08:00
Frédéric Massart f43d811e96 MDL-62214 tool_messageinbound: False negative due to time() usage
PHP Unit is so fast that my test couldn't cope with it!
2018-05-02 12:44:42 +08:00
Andrew Nicols 88ab001b25 Merge branch 'MDL-62266-master' of git://github.com/sarjona/moodle 2018-05-02 12:33:40 +08:00
Andrew Nicols db65b09188 Merge branch 'MDL-62214-master' of git://github.com/FMCorz/moodle 2018-05-02 12:28:52 +08:00
Jun Pataleta 030c58dcb9 Merge branch 'MDL-62189-master' of git://github.com/bmbrands/moodle 2018-05-02 12:24:20 +08:00
Ryan Wyllie 3041fe6faa MDL-62285 privacy: use context id when generating context path
moodle_content_writer::get_context_path() now includes the context
id in the path to ensure that it will always generate unique paths
even when the context names are not unique.
2018-05-02 12:08:58 +08:00
Andrew Nicols cd305dc26b MDL-61800 task: Reset the OUTPUT and PAGE on execution 2018-05-02 11:57:13 +08:00
Andrew Nicols 499f2ee9ce Merge branch 'MDL-62236-master' of git://github.com/FMCorz/moodle 2018-05-02 10:51:50 +08:00
Jake Dallimore e1ceb10ee8 Merge branch 'MDL-62268-master' of git://github.com/bmbrands/moodle 2018-05-02 10:12:32 +08:00
Andrew Nicols f4524f8da3 MDL-59845 tool_lp: Add js tracking around UI refresh 2018-05-02 09:15:43 +08:00
Andrew Nicols 850dfdeadb Merge branch 'MDL-62212-master' of git://github.com/bmbrands/moodle 2018-05-02 08:27:34 +08:00
Andrew Nicols 2a17a616a3 Merge branch 'MDL-62149-master' of git://github.com/ryanwyllie/moodle 2018-05-02 07:39:30 +08:00
Andrew Nicols 0fc5b4e17a Merge branch 'MDL-62186-master' of git://github.com/bmbrands/moodle 2018-05-02 07:31:27 +08:00
Eloy Lafuente (stronk7) 446d8483a3 on-demand release 3.5beta+ 2018-05-01 23:04:48 +02:00
Eloy Lafuente (stronk7) 40938ae2d8 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-05-01 23:04:45 +02:00
Frédéric Massart 048b266f14 MDL-62167 core_badges: Remove usage of a reserved keyword of Oracle 2018-05-01 15:21:46 +02:00
Frédéric Massart 91161a6325 MDL-62167 core_badges: Prevent SQL error with Oracle 2018-05-01 15:21:46 +02:00
John Beedell a3893e1b4d MDL-62276 Quiz: Review options section poor layout in boost theme 2018-05-01 11:26:22 +01:00
Andrew Nicols 16f18cb984 Merge branch 'wip-MDL-61308-master-unitfix' of git://github.com/abgreeve/moodle 2018-05-01 12:21:55 +02:00
Adrian Greeve bfb57d2c16 MDL-61308 assignsubmission_comments: Unit test ordering fix. 2018-05-01 12:21:47 +02:00
Andrew Nicols 7085e286c0 Merge branch 'MDL-62231-master' of git://github.com/rezaies/moodle 2018-05-01 12:21:36 +02:00
Bas Brands d42139ace6 MDL-62189 Theme boost: add filepicker container fix padding 2018-05-01 09:05:44 +02:00
Shamim Rezaie 1de2a1598e MDL-62231 block_recent_activity: Implement null provider for the block 2018-05-01 14:07:17 +10:00
Andrew Nicols 39b17e9933 Merge branch 'wip-MDL-62138-master' of git://github.com/marinaglancy/moodle 2018-05-01 11:46:27 +08:00
Andrew Nicols cb3cd93b39 Merge branch 'MDL-62209-master' of git://github.com/junpataleta/moodle 2018-05-01 11:42:44 +08:00
Ryan Wyllie 3dee4ca6d9 MDL-62282 boost: centre no progress icon in overview block 2018-05-01 11:41:06 +08:00
Andrew Nicols c9591cdde6 Merge branch 'MDL-61411-master' of git://github.com/Kathrin84/moodle 2018-05-01 11:21:23 +08:00
Andrew Nicols 06cab84176 Merge branch 'MDL-62167-master' of git://github.com/FMCorz/moodle 2018-05-01 11:10:31 +08:00
Andrew Nicols 3dd3ed3af2 MDL-62280 xhprof: Support tideways_xhprof 2018-05-01 11:02:27 +08:00
Frédéric Massart 3fcfc19743 MDL-62009 core_grades: Implement privacy API 2018-05-01 10:47:04 +08:00
Jun Pataleta 1891ed7bb0 Merge branch 'MDL-62060-master' of git://github.com/rezaies/moodle 2018-05-01 10:44:59 +08:00
Shamim Rezaie c5d720ab51 MDL-62060 core_privacy: Make sure the exported json is human readable 2018-05-01 12:35:00 +10:00
Frédéric Massart d35d17a14c MDL-62214 tool_messageinbound: Implement privacy API 2018-05-01 09:21:56 +08:00
Frédéric Massart 98a2f802c4 MDL-62214 tool_messageinbound: Delete old messages pending verification 2018-05-01 09:21:56 +08:00
Frédéric Massart 1582d54bb0 MDL-62253 core_auth: Implement privacy API 2018-05-01 09:14:58 +08:00
Jake Dallimore 15729d9ffa Merge branch 'MDL-62005-master' of git://github.com/rezaies/moodle 2018-05-01 09:10:18 +08:00
AMOS bot 1e096d96a2 Automatically generated installer lang files 2018-05-01 00:06:50 +00:00
Jun Pataleta 3b1d98ba73 Merge branch 'MDL-62201-master' of git://github.com/bmbrands/moodle 2018-04-30 21:54:35 +08:00
Jun Pataleta 732ebbe0fe Merge branch 'MDL-62248-master-fix' of git://github.com/andrewnicols/moodle 2018-04-30 21:23:14 +08:00
Andrew Nicols 9b7527defc MDL-62248 core_privacy: Add getter for user context prefs 2018-04-30 20:35:56 +08:00
Bas Brands 264b7dffb4 MDL-62268 Theme boost: messaging interface rows 2018-04-30 12:51:32 +02:00
Mark Nelson 3467e8ce3d MDL-61920 mod_lti: implement privacy provider 2018-04-30 18:43:19 +08:00
Jun Pataleta 7816cac9fe Merge branch 'MDL-61012_master' of https://github.com/troywilliams/moodle 2018-04-30 17:29:25 +08:00
Sara Arjona edbee4c4b6 MDL-62266 core_availability: Implement privacy API 2018-04-30 11:20:16 +02:00
Mark Nelson 13fadc8767 MDL-61920 ltiservice_toolsettings: implement privacy provider 2018-04-30 17:08:00 +08:00
Mark Nelson 897a6e824f MDL-61920 ltiservice_toolproxy: implement privacy provider 2018-04-30 17:08:00 +08:00
Mark Nelson 583f84d7cb MDL-61920 ltiservice_profile: implement privacy provider 2018-04-30 17:08:00 +08:00
Mark Nelson 03d6e06400 MDL-61920 ltiservice_memberships: implement privacy provider 2018-04-30 17:07:59 +08:00
Mark Nelson 2b3c4538f1 MDL-61920 ltiservice_gradebookservices: implement privacy provider 2018-04-30 17:07:59 +08:00
Ryan Wyllie 8f0f0a5903 MDL-62149 quiz: include tag ids in random question link 2018-04-30 17:03:03 +08:00
Shamim Rezaie 31b76f4f59 MDL-62005 block_comments: Add implementation of Privacy API 2018-04-30 18:20:04 +10:00
Andrew Nicols 81fa241788 MDL-62248 core_privacy: Unit test for get_user_preferences 2018-04-30 16:00:24 +08:00
Andrew Nicols 970be4496e Merge branch 'MDL-62248-master' of git://github.com/FMCorz/moodle 2018-04-30 15:59:39 +08:00
Bas Brands 3f86772ae2 MDL-62201 Theme boost: block myoverview course cards height
- remove css for setting a fixed height on course cards
on large devices for block overview
2018-04-30 09:54:35 +02:00
Bas Brands 6c88a36f8f MDL-62150 Theme boost: warning position "x" in atto
hardcode position of "x" because of failing calc function
2018-04-30 09:28:09 +02:00
Frédéric Massart cd7baa11c9 MDL-62248 core_block: Implement privacy API 2018-04-30 15:23:41 +08:00
Frédéric Massart 97b05c8f1e MDL-62248 core_privacy: Test writer writes user prefs in right contexts 2018-04-30 15:23:41 +08:00
Shamim Rezaie c287f0fdd9 MDL-62059 mod_book: Implement null provider for mod_book 2018-04-30 16:14:33 +10:00
Andrew Nicols 26bb44e5f4 MDL-61898 core_cache: Implement Privacy API 2018-04-30 14:07:27 +08:00
Andrew Nicols 2203ef4f74 Merge branch 'MDL-62235-master' of git://github.com/FMCorz/moodle 2018-04-30 13:57:48 +08:00
Frédéric Massart c9f95d296a MDL-62235 core_files: Implement privacy API 2018-04-30 13:41:20 +08:00
Nadav Kavalerchik 7092ba71de MDL-62254 Theme: Fix accesshide class in RTL mode 2018-04-30 08:24:59 +03:00
Andrew Nicols a88287c67b Merge branch 'MDL-62208-master' of git://github.com/FMCorz/moodle 2018-04-30 13:07:52 +08:00
Andrew Nicols e054f43f5b Merge branch 'MDL-62213-master' of git://github.com/bmbrands/moodle 2018-04-30 13:03:13 +08:00
Andrew Nicols 52f9b15d64 Merge branch 'MDL-62177-master' of git://github.com/bmbrands/moodle 2018-04-30 11:49:05 +08:00
Andrew Nicols a924b2616a Merge branch 'MDL-62241-master-typehint' of git://github.com/mudrd8mz/moodle 2018-04-30 11:43:46 +08:00
Andrew Nicols bebff35401 Merge branch 'MDL-62219-master' of git://github.com/bmbrands/moodle 2018-04-30 10:34:09 +08:00
Andrew Nicols 11dc37dacc Merge branch 'MDL-61959-master' of git://github.com/sarjona/moodle 2018-04-30 10:16:23 +08:00
Andrew Nicols 11446e8dfc Merge branch 'MDL-62155-master' of git://github.com/bmbrands/moodle 2018-04-30 09:37:14 +08:00
Andrew Nicols 915fd9e6c3 Merge branch 'MDL-62173-master' of git://github.com/bmbrands/moodle 2018-04-30 09:28:53 +08:00
Andrew Nicols 3d110a5f6f MDL-61308 mod_assign: Whitespace fix 2018-04-30 09:27:12 +08:00
Andrew Nicols 1c42b1d6ed Merge branch 'wip-MDL-61308-master' of git://github.com/abgreeve/moodle 2018-04-30 09:15:25 +08:00
AMOS bot 2750523534 Automatically generated installer lang files 2018-04-30 00:06:16 +00:00
Frédéric Massart d21c5e384d MDL-62236 core_webservice: Implement privacy API 2018-04-29 10:08:40 +08:00
Bas Brands ebdfc3c935 MDL-62058 Theme boost: restore scrolling in long navbar dropdowns 2018-04-28 13:23:55 +02:00
David Mudrák 15ce5b7e9b MDL-62241 privacy: Include the unit tests from the 3.3 branch
The tests do not actually do anything, they just make sure that the
method signature is correct on the given PHP version. They are mostly
relevant and useful on 3.3.
2018-04-27 15:25:38 +02:00
Eloy Lafuente (stronk7) af099b484c on-demand release 3.5beta+ 2018-04-27 13:16:41 +02:00
Eloy Lafuente (stronk7) c4a5c8440a MDL-61993 profilefield_checkbox: take rid of oracle reserved word 2018-04-27 10:41:46 +02:00
Frédéric Massart 739b59610a MDL-61877 core_competency: Handle comments in privacy API 2018-04-27 11:29:30 +08:00
Frédéric Massart f8a6a533c2 MDL-61877 core_competency: Implement privacy API 2018-04-27 11:29:29 +08:00
Frédéric Massart d498287fd7 MDL-62167 core_badges: Implement privacy API 2018-04-27 10:49:48 +08:00
Jun Pataleta d8844b3f8c Merge branch 'MDL-62172-master' of git://github.com/bmbrands/moodle 2018-04-27 09:55:08 +08:00
Eloy Lafuente (stronk7) 9827740b01 Merge branch 'MDL-60882-master' of git://github.com/jleyva/moodle 2018-04-27 01:36:11 +02:00
Eloy Lafuente (stronk7) 33a258b573 Merge branch 'wip_MDL-62011_master_approval_of_course_request' of https://github.com/grabs/moodle 2018-04-27 01:29:47 +02:00
Eloy Lafuente (stronk7) a52770f010 Merge branch 'MDL-61993-master' of git://github.com/mihailges/moodle 2018-04-27 00:56:42 +02:00
Eloy Lafuente (stronk7) a76032ce8d Merge branch 'MDL-62152-master' of git://github.com/bmbrands/moodle 2018-04-26 22:44:39 +02:00
Eloy Lafuente (stronk7) 06f49a5eb2 Merge branch 'MDL-61863-master' of git://github.com/zig-moodle/moodle 2018-04-26 22:31:26 +02:00
Eloy Lafuente (stronk7) e6c1e22197 Merge branch 'MDL-61715-master' of https://github.com/lethevinh/moodle 2018-04-26 22:22:43 +02:00
Eloy Lafuente (stronk7) e754bce399 Merge branch 'MDL-62070-master' of git://github.com/bmbrands/moodle 2018-04-26 22:13:47 +02:00
Sara Arjona df7cc2cc7f MDL-61959 mod_scorm: Implement privacy API 2018-04-26 19:56:33 +02:00
Sara Arjona b078358fa7 MDL-61959 scormreport_objectives: Implement privacy API 2018-04-26 19:00:18 +02:00
sarjona 3127efef0c MDL-61959 scormreport_interactions: Implement privacy API 2018-04-26 19:00:18 +02:00
Sara Arjona 353f1bfb37 MDL-61959 scormreport_graphs: Implement privacy API 2018-04-26 19:00:18 +02:00
sarjona 0b01f6f391 MDL-61959 scormreport_basic: Implement privacy API 2018-04-26 19:00:18 +02:00
Jun Pataleta bb874345cf Merge branch 'MDL-61986' of git://github.com/stronk7/moodle 2018-04-27 00:47:02 +08:00
Eloy Lafuente (stronk7) 75bf06128f MDL-61986 mod_lesson: oracle order by clob fix 2018-04-26 18:30:40 +02:00
Bas Brands 540ea1bc7f MDL-62155 Theme boost: forum post element positioning issues 2018-04-26 18:23:41 +02:00
Bas Brands c3f2290d11 MDL-62227 lib_form: add .alert-warning to unstyled alert 2018-04-26 18:06:02 +02:00
Eloy Lafuente (stronk7) e2afdc9c21 Merge branch 'MDL-62224_master' of git://github.com/markn86/moodle 2018-04-26 17:38:14 +02:00
Bas Brands 9fd2b9ac5f MDL-62219 Theme boost: add cursor not allowed for disabled input 2018-04-26 17:27:27 +02:00
Bas Brands 5726577fd4 MDL-62213 Theme boost: calendar filter icon positions 2018-04-26 16:41:07 +02:00
Bas Brands c7522f838c MDL-62212 Theme boost: Compatibility with row-fluid
- used in messaging mustache templates
2018-04-26 15:54:43 +02:00
David Monllao 7dc966479c Merge branch 'MDL-62069-master' of git://github.com/bmbrands/moodle 2018-04-26 15:49:26 +02:00
Zig Tan 49d6fb0379 MDL-61693 core_calendar: Implemented privacy providers 2018-04-26 21:10:49 +08:00
Bas Brands 78d77c4223 MDL-62173 Theme bootstrapbase: clean backup restore UI
-fix display of detail-pair. These are not rendered well
on theme clean for small devices
2018-04-26 14:55:59 +02:00
Mark Nelson 97fcf562ba MDL-62224 core_rss: implement correct provider 2018-04-26 20:16:22 +08:00
Bas Brands 716b5ffa09 MDL-62069 Theme boost: force 100% width on accepted filetypes 2018-04-26 13:17:26 +02:00
Kathrin Osswald 07b203db88 MDL-61411 theme Boost: Close navigation on all items (on small screens) 2018-04-26 13:17:12 +02:00
Bas Brands 5f29d191d9 MDL-62070 Theme boost: quiz update for BS4 stable
- update .sr-only attributes for editing drag and drop on image
    - set box-sizing for drop field
2018-04-26 13:12:05 +02:00
Juan Leyva 8c9a196409 MDL-61521 course: Add missing text formatting for category name 2018-04-26 12:21:22 +02:00
David Monllao 258bf5c4e8 Merge branch 'MDL-62024-master' of git://github.com/bmbrands/moodle 2018-04-26 11:34:00 +02:00
Juan Leyva 10b67ef9f1 MDL-60882 mod_choice: Avoid teacher delete all responses
Teachers should be able to delete all responses but when indicating the
response ids.
When the response ids are not passed, only their own responses should
be deleted (as the function documentation said).
2018-04-26 10:25:45 +02:00
Andrew Nicols 46e7b6eecf Merge branch 'MDL-61947-master' of git://github.com/zig-moodle/moodle 2018-04-26 14:51:19 +08:00
Jun Pataleta aad67f481a Merge branch 'MDL-62188-master' of git://github.com/sarjona/moodle 2018-04-26 14:50:04 +08:00
Adrian Greeve f8650bb7a3 MDL-61308 assign_feedback: Privacy code for user rights. 2018-04-26 14:17:55 +08:00
Adrian Greeve 5843543338 MDL-61308 assign_submission: Privacy code for user rights. 2018-04-26 14:17:55 +08:00
Adrian Greeve 5c41cd77f8 MDL-61308 mod_assign: Adding privacy classes. 2018-04-26 14:17:55 +08:00
Sara Arjona 697bed6bb7 MDL-62188 enrol: Avoid ignoring the Recover grades default setting 2018-04-26 08:13:13 +02:00
Frédéric Massart 790c89b34d MDL-62208 core_fileconverter: Implement privacy API 2018-04-26 12:54:01 +08:00
Zig Tan 25e213ad8f MDL-61947 core_my: Implemented privacy providers 2018-04-26 12:50:22 +08:00
Jun Pataleta 38ffa48cf5 MDL-62209 tool_dataprivacy: Sort requests by ascending status
Sort requests by ascending status and request date so that the DPO
can go through the list in a FIFO fashion
2018-04-26 12:17:24 +08:00
Jun Pataleta 6ef65b8a85 Merge branch 'MDL-61669-master' of git://github.com/jleyva/moodle 2018-04-26 11:51:22 +08:00
Jun Pataleta 8e82081176 Merge branch 'MDL-62072-master' of git://github.com/bmbrands/moodle 2018-04-26 11:17:27 +08:00
Jun Pataleta e55b7082be Merge branch 'MDL-62176-master' of git://github.com/bmbrands/moodle 2018-04-26 11:00:17 +08:00
Mihail Geshoski 079114d70b MDL-61993 profilefield_checkbox: Add privacy files and unit tests 2018-04-26 10:28:14 +08:00
Eloy Lafuente (stronk7) 1b4983fc90 Merge branch 'MDL-61979-master' of git://github.com/zig-moodle/moodle 2018-04-26 02:44:16 +02:00
Eloy Lafuente (stronk7) 7bff0ee145 Merge branch 'MDL-61998-master' of git://github.com/sarjona/moodle 2018-04-26 02:39:17 +02:00
Andrew Nicols c8fc9c61a2 Merge branch 'MDL-61944-master' of git://github.com/cescobedo/moodle 2018-04-26 08:17:24 +08:00
Eloy Lafuente (stronk7) e971596371 Merge branch 'MDL-62181-master-enfix' of git://github.com/mudrd8mz/moodle 2018-04-25 19:09:35 +02:00
David Monllao 969d649b79 Merge branch 'MDL-62160-master' of git://github.com/bmbrands/moodle 2018-04-25 18:10:13 +02:00
David Monllao e06a28b539 Merge branch 'MDL-62159-master' of git://github.com/bmbrands/moodle 2018-04-25 17:57:37 +02:00
David Monllao 6fb429dd79 Merge branch 'MDL-62175-master' of git://github.com/jleyva/moodle 2018-04-25 17:37:22 +02:00
David Monllao 0d1707f053 Merge branch 'MDL-61986-master' of git://github.com/FMCorz/moodle 2018-04-25 16:26:03 +02:00
cescobedo 30e44bfcc4 MDL-61944 tool_mobile: Implement Privacy API 2018-04-25 15:33:50 +02:00
Bas Brands ed0e21c0ef MDL-62177 Theme boost: set max height for navbar logo 2018-04-25 14:32:42 +02:00
Bas Brands a24bf64ffd MDL-62176 Theme boost: show advance form options need display: flex 2018-04-25 13:43:35 +02:00
Bas Brands d24fab1182 MDL-62172 Theme boostrapbase: align advanced checkbox in mform 2018-04-25 12:26:47 +02:00
Bas Brands e58362ed1e MDL-62160 Theme boost: center buttons on notification popup 2018-04-25 10:18:36 +02:00
Bas Brands b6ebda707f MDL-62159 Theme boost: prevent rtl flipping dropdowns 2018-04-25 09:41:22 +02:00
David Mudrák 60ecb39fb6 MDL-62181 lang: Fix changed admin node title in behat scenario 2018-04-24 22:05:30 +02:00
Helen Foster 970c1a4bf1 MDL-62181 lang: Merge English strings from the en_fix language pack
Significant string changes:

* sitepolicies, core_admin - 'Site policies' changed to 'Site security
  settings'
* processexpirationstask, enrol_paypal - more explanatory name
* sitepolicy_help and sitepolicyguest_help, core_admin - setting will
  only have an effect if the site policy handler is set to default
* sitepolicyhandler_desc,core_admin - improved wording
* pathtodot_help, core_admin - Windows and Mac paths
* debugstringids_desc, core_admin - improved explanation
2018-04-24 22:05:30 +02:00
Eloy Lafuente (stronk7) 641d113c88 Moodle release 3.5beta 2018-04-24 19:00:34 +02:00
Bas Brands 31c04fec7c MDL-62072 Theme boost: position dropdowns for autocompletion fields 2018-04-24 16:22:32 +02:00
Juan Leyva 04df75ceeb MDL-61669 tool_mobile: Return new app policy setting via WS 2018-04-24 16:10:25 +02:00
Juan Leyva acee831165 MDL-61669 tool_mobile: New app policy setting 2018-04-24 16:10:25 +02:00
Bas Brands 323ce3952b MDL-62152 Theme boost: reset link colour to WCAG 2.0 approved contrast 2018-04-24 15:57:18 +02:00
Eloy Lafuente (stronk7) 57565dc3b2 Merge branch 'MDL-62183_master' of git://github.com/dmonllao/moodle 2018-04-24 15:49:16 +02:00
David Monllao 26b86f31e5 MDL-61028 search: Clear search engine users cache after tests 2018-04-24 15:48:40 +02:00
sam marshall acaeb5ec41 MDL-61028 core_search: Fix SELECT bug affecting Oracle 2018-04-24 15:48:40 +02:00
Bas Brands 10acff4ada MDL-62186 Theme boost: change padding of quiz editing input field 2018-04-24 14:52:34 +02:00
David Monllao b137e02973 MDL-62183 search_solr: Set solr as search engine for solr unit tests 2018-04-24 13:12:48 +02:00
Juan Leyva e709853ee6 MDL-62175 auth_email: Fix site policy enabled check 2018-04-24 11:48:00 +02:00
vinhle 8e0bebd1cd MDL-61715 question: qbank_chooser is not intelligent about headings 2018-04-24 16:11:47 +07:00
Troy Williams f9a7a98a4a MDL-61012 course: Allow extending class to set 2018-04-24 16:13:29 +12:00
Zig Tan 7d5667ee57 MDL-61863 core_notes: Implemented privacy providers 2018-04-24 12:06:46 +08:00
Jun Pataleta ac8f106b4d Merge branch 'MDL-62079-master' of git://github.com/andrewnicols/moodle 2018-04-24 11:56:23 +08:00
Andrew Nicols e055b85a0f MDL-62079 core_filters: Implement null provider 2018-04-24 11:48:24 +08:00
Andrew Nicols 7d05f5813d Merge branch 'MDL-62140_master' of git://github.com/markn86/moodle 2018-04-24 11:16:07 +08:00
Andrew Nicols c970b50567 Merge branch 'MDL-61984-master-fixup' of https://github.com/FMCorz/moodle 2018-04-24 11:03:12 +08:00
Mark Nelson 6d82a42353 MDL-62140 core_privacy: only reset tests when necessary 2018-04-24 10:54:21 +08:00
Frédéric Massart 2b25b67ea1 MDL-61984 mod_chat: Do not assume context passed is one of chat 2018-04-24 10:38:27 +08:00
Jun Pataleta d11786cee3 Merge branch 'MDL-62162-master' of git://github.com/sarjona/moodle 2018-04-24 10:25:33 +08:00
Andrew Nicols 3bdcd4d8c3 MDL-62140 core_privacy: Improve unit test 2018-04-24 10:18:31 +08:00
Andrew Nicols f829edb719 Merge branch 'MDL-62140_master' of git://github.com/markn86/moodle 2018-04-24 10:04:52 +08:00
Jun Pataleta 68d7e891b9 Merge branch 'MDL-61764_master' of git://github.com/markn86/moodle 2018-04-24 09:54:16 +08:00
Jun Pataleta 74329331aa Merge branch 'MDL-61882-master' of git://github.com/cescobedo/moodle 2018-04-24 09:38:27 +08:00
Andrew Nicols ebc09da8a6 Merge branch 'MDL-61984-master' of git://github.com/FMCorz/moodle 2018-04-24 09:23:35 +08:00
Andrew Nicols 1b6e378edb MDL-61651 mod_lti: Add missing callback doc 2018-04-24 09:21:51 +08:00
Andrew Nicols c131b96000 Merge branch 'MDL-61651_master' of git://github.com/markn86/moodle 2018-04-24 08:45:30 +08:00
Andrew Nicols fdf6208546 Merge branch 'MDL-61995-master' of git://github.com/zig-moodle/moodle 2018-04-24 08:15:38 +08:00
Eloy Lafuente (stronk7) 5e488f8c22 MDL-61657 block_myoverview: whitespace and css-style fixes 2018-04-23 23:35:17 +02:00
Bas Brands c8cc25caba MDL-61657 block_myoverview: implement course images for the myoverview block 2018-04-23 23:21:06 +02:00
Bas Brands c706699a0e MDL-62024 Theme boost: fix icon alignment for actionmenu 2018-04-23 21:09:26 +02:00
Sara Arjona 077ebb2a0b MDL-62162 policy: Define context when accessing to viewall.php 2018-04-23 18:29:27 +02:00
Eloy Lafuente (stronk7) 4450d19ae1 Merge branch 'MDL-62023-master' of git://github.com/bmbrands/moodle 2018-04-23 18:15:41 +02:00
cescobedo 21ae044620 MDL-61882 auth_oauth2: Implement Privacy API 2018-04-23 17:34:30 +02:00
David Monllao 3d7b805f4e Merge branch 'MDL-61915-master' of git://github.com/cescobedo/moodle 2018-04-23 16:26:06 +02:00
David Monllao 590c774d37 Merge branch 'MDL-62042-master' of https://github.com/sammarshallou/moodle 2018-04-23 16:07:37 +02:00
cescobedo 980e85cd44 MDL-61915 enrol: Add privacy implementation for all enrol plugins
None of the Enrol plugins (except lti and paypal) have any user preference or database table.
They all implement the null provider.
2018-04-23 14:31:40 +02:00
Mark Nelson aa725516d3 MDL-62140 core_privacy: add helper functions to add system/user context 2018-04-23 20:06:02 +08:00
David Monllao c5a8065258 Merge branch 'MDL-61028-master' of https://github.com/sammarshallou/moodle 2018-04-23 13:09:53 +02:00
Andrew Nicols be056e1b28 Merge branch 'wip-MDL-61759-master' of https://github.com/marinaglancy/moodle 2018-04-23 18:31:04 +08:00
David Monllao 8fbff1d453 Merge branch 'MDL-62078-master' of git://github.com/sarjona/moodle 2018-04-23 12:05:46 +02:00
David Monllao 74d0a7f975 Merge branch 'MDL-62047-master' of git://github.com/andrewnicols/moodle 2018-04-23 11:58:28 +02:00
David Monllao a07d13dcbf Merge branch 'MDL-61891-master' of git://github.com/andrewnicols/moodle 2018-04-23 11:55:15 +02:00
Sara Arjona 5a86bf1448 MDL-61998 cohort: Implement privacy API 2018-04-23 11:41:04 +02:00
Jun Pataleta ce447198b8 Merge branch 'wip-MDL-61939-master' of git://github.com/marinaglancy/moodle 2018-04-23 17:19:49 +08:00
Bas Brands 03b06309e2 MDL-62023 theme: Add bootstrap 4 classes to performance info cards 2018-04-23 11:17:33 +02:00
Zig Tan f8555ac9aa MDL-61995 tool_assignmentupgrade: Implemented privacy providers 2018-04-23 16:49:16 +08:00
Andrew Nicols 6de5bbb8cd Merge branch 'MDL-62055-master' of git://github.com/sarjona/moodle 2018-04-23 16:03:13 +08:00
Jun Pataleta c8619b28a3 Merge branch 'MDL-62049_master' of git://github.com/markn86/moodle 2018-04-23 13:54:38 +08:00
Marina Glancy dde3d58eb1 MDL-62138 core: remove core_register and core_publish
These components have no classes and no strings and have no purspose. Component core_hub is responsible
for storing data, defining classes and strings for site registration and course publishing

This also reverts MDL-61945
2018-04-23 13:17:12 +08:00
Jun Pataleta db711f5eca Merge branch 'wip-MDL-61966-master' of git://github.com/abgreeve/moodle 2018-04-23 13:11:30 +08:00
Mark Nelson 63d170647c MDL-62049 core_privacy: use correct lang string for date 2018-04-23 13:03:23 +08:00
Marina Glancy a74c511e7f MDL-61759 admin: non-existing site policy handler means no policy 2018-04-23 10:25:00 +08:00
Andrew Nicols 0cbe51a856 MDL-61891 core_portfolio: Use manager method caller 2018-04-23 10:08:24 +08:00
Andrew Nicols ae1c7f954a MDL-61891 core_plagiarism: Use manager method caller 2018-04-23 10:07:54 +08:00
Andrew Nicols 4f9f035ae3 MDL-61891 privacy: Add helper to call methods on interfaces 2018-04-23 10:07:54 +08:00
Marina Glancy e8cf2ffd61 MDL-61939 tool_policy: usermodified should be realuser
When logged in as another user and accept the policies on somebody else's behalf make sure that
usermodified is recorded as real user
2018-04-23 09:45:26 +08:00
Andrew Nicols 0683abccfc Merge branch 'MDL-61759-master-nonexistinghandler' of git://github.com/mudrd8mz/moodle 2018-04-22 21:04:56 +08:00
Frédéric Massart 83ef2b2cf8 MDL-61986 mod_lesson: Implement privacy API 2018-04-22 17:31:00 +08:00
sarjona b720d9dae8 MDL-62078 rss: Link to core_userkey in the Privacy API implementation 2018-04-22 09:02:48 +02:00
Andreas Grabs 9f9d7bbe87 MDL-62011 course: Approval of a course request fails 2018-04-21 20:55:59 +02:00
Eloy Lafuente (stronk7) 6fa694bef0 on-demand release 3.5dev+ 2018-04-20 23:53:54 +02:00
Eloy Lafuente (stronk7) 6d647878a5 NOBUG: Fixed file access permissions 2018-04-20 23:53:53 +02:00
Eloy Lafuente (stronk7) fe0ce39b8f NOBUG: Fixed SVG browser compatibility 2018-04-20 23:53:52 +02:00
Eloy Lafuente (stronk7) 90148ed7e1 Merge branch 'MDL-61899_master-fixgetroleusers' of git://github.com/dmonllao/moodle 2018-04-20 19:13:38 +02:00
sam marshall a6cacdd266 MDL-61028 core_search: Allow filtering search by user (front-end)
Creates a new 'Users' field in the search filters form. This field
requires new JavaScript and, to implement this, a new AJAX-callable
web service to search for users by name, with detailed restrictions
based on the current user's access to view profiles.
2018-04-20 17:10:03 +01:00
sam marshall 71d985ab7d MDL-61028 core_user: Function to search visible users
Implements core_user::search function which can search through the
names (and, if allowed, other identity fields) of all users visible
to the current logged-in user, within a course context or globally.
2018-04-20 17:10:03 +01:00
David Monllao 05564a4cc6 MDL-61899 tool_dataprivacy: Add missing get_role_users fields 2018-04-20 17:46:49 +02:00
sam marshall a97c937033 MDL-61028 core_form: Autocomplete field to support HTML selection
When using the AJAX autocomplete field, it allows JavaScript to add
custom HTML to selected options. For example, the user field from
the assign roles page includes an icon and other information by the
user's name.

Once you submit the form and the page reloads, there was no way to
provide this information back to the autocomplete field. HTML
<option> tag was used for the value names but it may only contain
text, not tags, so including it in the normal value did not work.

This change adds a new option for the autocomplete field that lets
you include HTML to override the default (text-only) value of the
label used to represent each option.
2018-04-20 16:42:54 +01:00
Eloy Lafuente (stronk7) d102e6ad56 Merge branch 'MDL-56511_master-fixbehat4' of git://github.com/dmonllao/moodle 2018-04-20 17:32:08 +02:00
David Monllao 8b451d25f2 MDL-61899 tool_dataprivacy: Separate the retention period in 2 css selectors 2018-04-20 17:08:32 +02:00
David Monllao 8787ffaa40 MDL-56511 behat: Fix failing behat tests (again) 2018-04-20 15:52:58 +02:00
sam marshall 222a97ce76 MDL-61028 core_search: Allow filtering search by user (back-end, Solr)
Adds support in the Solr engine for a new 'userids' parameter to
restrict search results to those created by a specific user or users.
2018-04-20 13:36:55 +01:00
Eloy Lafuente (stronk7) 837b937511 Merge branch 'MDL-61899_master-fixsubjectscope' of git://github.com/dmonllao/moodle 2018-04-20 10:46:36 +02:00
David Monllao 5a3280a18f MDL-61899 tool_dataprivacy: Replace wrong function for subject scope 2018-04-20 10:27:05 +02:00
Sara Arjona 87bbab5118 MDL-62055 imscp: Implement privacy API 2018-04-20 08:57:04 +02:00
Adrian Greeve 5eb8ad87fc MDL-61966 block_myoverview: Update to provider for user preferences. 2018-04-20 14:45:10 +08:00
Mark Sharp c3002d2c3f MDL-61899 tool_dataprivacy: Fix undefined property error 2018-04-20 14:38:51 +08:00
David Monllao 087353f909 MDL-56511 theme_boost: Restore file perms back to 644 2018-04-20 06:18:54 +02:00
Bas Brands 1801b90535 MDL-56511 Theme: behat fixes for theme clean 2018-04-20 06:18:21 +02:00
Bas Brands 88d184b656 MDL-56511 theme: position next button. 2018-04-20 06:18:19 +02:00
Mark Nelson 10efd23b7c MDL-61764 message_popup: implement privacy provider 2018-04-20 12:05:32 +08:00
Jun Pataleta d816a900cb Merge branch 'MDL-62048_master' of git://github.com/markn86/moodle 2018-04-20 11:53:37 +08:00
Andrew Nicols 9fe8d2e335 Merge branch 'MDL-61892-master' of git://github.com/zig-moodle/moodle 2018-04-20 11:47:54 +08:00
Zig Tan de33cd0cab MDL-61892 admin/tools: Implement null privacy providers 2018-04-20 11:41:20 +08:00
Andrew Nicols b17dd2a3d6 Merge branch 'MDL-61899-master-fix' of git://github.com/junpataleta/moodle 2018-04-20 11:37:46 +08:00
Jun Pataleta 329241335f MDL-61899 tool_dataprivacy: Use default parameters for get_role_users()
* To avoid failures in Oracle.
2018-04-20 11:26:03 +08:00
Claude Vervoort da04fb70fa MDL-61651 mod_lti: cisr lineitem support 2018-04-20 11:22:11 +08:00
Andrew Nicols 9775bfcbe4 Merge branch 'wip-MDL-62035-master' of git://github.com/abgreeve/moodle 2018-04-20 11:16:46 +08:00
Adrian Greeve 8c6fae4e9c MDL-62035 core_blog: Update to blog with comments.
This makes blog use the updated delete methods in the
comments provider.
2018-04-20 10:42:43 +08:00
Adrian Greeve 1b33e410b5 MDL-62035 core_comment: Update to deletion methods.
Also clarification with the export method to clarify that it
is only for one context.
2018-04-20 10:42:24 +08:00
Andrew Nicols 37909713bb Merge branch 'MDL-62003-master-privacyfiles' of git://github.com/mudrd8mz/moodle 2018-04-20 10:26:01 +08:00
Jun Pataleta c1f7e7e90e Merge branch 'MDL-61848-master' of git://github.com/cescobedo/moodle 2018-04-20 09:20:13 +08:00
Eloy Lafuente (stronk7) 1bcbbe3582 Merge branch 'MDL-61836-master-order' of git://github.com/andrewnicols/moodle 2018-04-20 03:03:34 +02:00
Andrew Nicols 7072009431 MDL-61836 blog: Fix random order failures 2018-04-20 08:56:05 +08:00
Frédéric Massart 0288333c0b MDL-61836 core_blog: Prevent randomness in comments order 2018-04-20 08:56:05 +08:00
Eloy Lafuente (stronk7) 11f07048f4 Merge branch 'MDL-61827' of git://github.com/lszeremeta/moodle 2018-04-20 02:32:26 +02:00
Eloy Lafuente (stronk7) 774956a6ee Merge branch 'MDL-61836-master-fix' of git://github.com/andrewnicols/moodle 2018-04-20 02:27:51 +02:00
Eloy Lafuente (stronk7) 85176022e8 Merge branch 'MDL-61991-master' of https://github.com/lucaboesch/moodle 2018-04-20 02:22:20 +02:00
Andrew Nicols fa983cfcc0 MDL-61836 comment: Add missing require 2018-04-20 08:17:15 +08:00
Eloy Lafuente (stronk7) 00743c0929 Merge branch 'MDL-61975-master' of git://github.com/zig-moodle/moodle 2018-04-20 02:04:18 +02:00
Eloy Lafuente (stronk7) cd8a0226de Merge branch 'MDL-61348-take2' of git://github.com/timhunt/moodle 2018-04-20 01:59:15 +02:00
cescobedo 3029395e9d MDL-61848 auth_manual: Implement Privacy API 2018-04-20 00:08:30 +02:00
sam marshall ffa868a9e1 MDL-62042 core_search: Unicode non-characters cause indexing problems
Unicode characters such as U+FFEF can be entered into Moodle data and
cause indexing failures. This change strips them out of search fields.
2018-04-19 16:54:47 +01:00
David Monllao 8000eac408 MDL-61102 core_search: Restore search manager instance 2018-04-19 13:38:35 +02:00
Frédéric Massart bf3b4f3e86 MDL-61984 mod_chat: Implement privacy API 2018-04-19 17:32:41 +08:00
David Monllao b704717847 Merge branch 'MDL-61138-master-require-context-id' of git://github.com/ryanwyllie/moodle 2018-04-19 11:18:47 +02:00
David Monllao 0299444710 Merge branch 'MDL-61102-master' of https://github.com/sammarshallou/moodle 2018-04-19 10:37:30 +02:00
Jun Pataleta c8058231c1 Merge branch 'MDL-61772-master' of git://github.com/lameze/moodle 2018-04-19 16:13:18 +08:00
Jun Pataleta 53036a6886 Merge branch 'MDL-62025_master' of git://github.com/markn86/moodle 2018-04-19 15:50:09 +08:00
Andrew Nicols 0442789588 MDL-62047 core_userkey: Add privacy implementation 2018-04-19 15:30:10 +08:00
Mark Nelson a4f994f332 MDL-62025 mod_choice: add missing join on modules table 2018-04-19 15:17:43 +08:00
Andrew Nicols 2e2c66d84a Merge branch 'MDL-61568-master' of git://github.com/zig-moodle/moodle 2018-04-19 15:00:16 +08:00
Andrew Nicols 7f2e2bfda9 Merge branch 'MDL-61970-master' of git://github.com/FMCorz/moodle 2018-04-19 14:52:04 +08:00
Andrew Nicols 54dcd0146d Merge branch 'MDL-61969-master' of git://github.com/mihailges/moodle 2018-04-19 14:47:20 +08:00
Jun Pataleta 08a1f3b9f9 Merge branch 'MDL-61878-master' of git://github.com/mihailges/moodle 2018-04-19 14:40:12 +08:00
Zig Tan 202ec23a1f MDL-61568 repository_flickr: Fix oauth secret export 2018-04-19 14:33:26 +08:00
Ryan Wyllie 1c26b3143d MDL-61138 mod_quiz: add question preview to random question modal 2018-04-19 13:51:41 +08:00
Ryan Wyllie 6768729e08 MDL-61138 question: external function to get random question set 2018-04-19 13:51:40 +08:00
Mihail Geshoski 700029fca5 MDL-61878 fileconverter_googledrive: Add privacy files and unit tests 2018-04-19 13:16:21 +08:00
Frédéric Massart b82e600723 MDL-61970 mod_survey: Do not assume context passed is one of survey 2018-04-19 13:10:22 +08:00
Mark Nelson f611c727f3 MDL-62048 core_privacy: extend test to ensure table exists 2018-04-19 13:00:15 +08:00
Andrew Nicols 81626948c7 MDL-62047 core_userkey: Define component path 2018-04-19 12:46:52 +08:00
Andrew Nicols 13fd4703f3 Merge branch 'MDL-61945-master' of git://github.com/cescobedo/moodle 2018-04-19 11:50:31 +08:00
Andrew Nicols 25d9974ac6 Merge branch 'MDL-61948-master' of git://github.com/mihailges/moodle 2018-04-19 11:38:04 +08:00
Andrew Nicols 305f4f69eb Merge branch 'MDL-61836-master' of git://github.com/FMCorz/moodle 2018-04-19 11:19:07 +08:00
Andrew Nicols f13e5f7377 Merge branch 'MDL-61970-master' of git://github.com/FMCorz/moodle 2018-04-19 11:12:35 +08:00
Eloy Lafuente (stronk7) 3271e83c6e Merge branch 'MDL-61614-master' of git://github.com/rezaies/moodle 2018-04-18 23:13:07 +02:00
David Monllao f5779bb101 MDL-56511 theme_boost: Fixing minor behat failures
Related to MDL-56511 markup changes.
2018-04-18 18:24:20 +02:00
David Monllao baf8ff9cbf Merge branch 'MDL-61716-master' of git://github.com/mastnym/moodle 2018-04-18 18:24:10 +02:00
David Monllao 37543ce51e MDL-61958 rss: Add rss test suite 2018-04-18 18:23:59 +02:00
David Monllao 8d3238d858 Merge branch 'MDL-61958-master' of git://github.com/sarjona/moodle 2018-04-18 18:23:48 +02:00
David Monllao 99775a9f22 Merge branch 'MDL-62018-master' of git://github.com/sarjona/moodle 2018-04-18 18:23:32 +02:00
Jun Pataleta ba5b59c0af MDL-61899 tool_dataprivacy: Fixes during integration review
* Disable tool by default.
* Add format columns for 'comments' and 'dpocomment' fields in
tool_dataprivacy_request table.
* Use data request exporter when sending email notification to DPO
2018-04-18 18:23:13 +02:00
David Monllao bb4030ff27 MDL-61899 tool_dataprivacy: Fix cibot complains 2018-04-18 18:22:58 +02:00
Jun Pataleta 0d41df6b5a MDL-61899 tool_dataprivacy: Create name-description exporter
Create exporter for lawful bases that contain name and description pairs
2018-04-18 18:22:49 +02:00
Jun Pataleta 0462786a78 MDL-61899 tool_dataprivacy: Unit test fixes 2018-04-18 18:22:41 +02:00
David Monllao 042729af22 MDL-61899 tool_dataprivacy: Remove namespace alias
Includes MDL-61935
2018-04-18 18:22:15 +02:00
Jun Pataleta d21f89cb06 MDL-61899 tool_dataprivacy: Fix table column width distribution
Includes MDL-61935
2018-04-18 18:20:12 +02:00
Jun Pataleta 5750d233f9 MDL-61899 tool_dataprivacy: Add lawful bases fields
Includes MDL-61935

* New fields when defining purposes that let the Privacy Officer
set the lawful bases of personal data collection and reason(s)
for the exemption of prohibition from processing sensitive personal
data.
2018-04-18 18:19:17 +02:00
David Monllao e60058ff98 MDL-61899 tool_dataprivacy: Delete user after deletion request or expired context
Includes MDL-61955
2018-04-18 18:18:47 +02:00
Jun Pataleta 2076d34b8e MDL-61899 tool_dataprivacy: Implement data export for the tool 2018-04-18 18:18:38 +02:00
Jun Pataleta c504ba4332 MDL-61899 tool_dataprivacy: Helper class for the tool
* Create helper functions for getting the string names of data
request types and statuses.
2018-04-18 18:18:17 +02:00
David Monllao 57a59d6c5a MDL-61899 tool_dataprivacy: Remove upgrade.php and add @since 2018-04-18 18:18:09 +02:00
David Monllao aaae3c8c82 MDL-61899 tool_dataprivacy: Removing unnecessary dependencies
Includes MDL-61489
2018-04-18 18:17:42 +02:00
Adrian Greeve c2aad2188a MDL-61899 tool_dataprivacy: Addition of js file and misc. updates.
Includes MDL-61489
2018-04-18 18:17:10 +02:00
Barbara Ramiro eb6b4c2368 MDL-61899 tool_dataprivacy: Styling of the second registry.
Includes MDL-61489
2018-04-18 18:16:40 +02:00
Adrian Greeve d6ff9edd4f MDL-61899 tool_dataprivacy: Addition of plugin compliance registry.
Includes MDL-61489
2018-04-18 18:15:40 +02:00
David Monllao e95f0def95 MDL-61899 tool_dataprivacy: Fix reference to unexisting method
All credit goes to Marcel Behrmann
2018-04-18 18:15:31 +02:00
Jun Pataleta 6f094d4940 MDL-61899 tool_dataprivacy: Fetch context ids to update then update
Fetch the context ids to be updated first before performing the update
to the contextlist_context table to avoid using subquery that causes
cross DB compatibility issues.
2018-04-18 18:15:19 +02:00
Jun Pataleta cb775057fd MDL-61899 tool_dataprivacy: Additional fixes to tool
Fixes applied from the following issues:
1. MDL-61618
2. MDL-61901
2018-04-18 18:15:09 +02:00
David Monllao a8a6905039 MDL-61899 tool_dataprivacy: Refined patch fixing cibot complains 2018-04-18 18:14:59 +02:00
David Monllao c5572a933a MDL-61899 core: Add too_dataprivacy to core plugins 2018-04-18 18:14:43 +02:00
David Monllao 5efc1f9e64 MDL-61899 tool_dataprivacy: Subject access requests tool
This commit is composed of different issues, most of them under
MDL-61306:
- MDL-61888, MDL-61785, MDL-61830, MDL-61874, MDL-59720,
  MDL-61486, MDL-61697, MDL-61798, MDL-61685, MDL-61682,
  MDL-61684, MDL-61618, MDL-61681, MDL-61680, MDL-61487,
  MDL-61499, MDL-61500, MDL-61362 and MDL-59718

Contributions to this patch by:
- Jun Pataleta
- David Monllao
- Andrew Nicols
- Adrian B. Greeve
- Jake Dallimore
- Sara Arjona
2018-04-18 18:14:23 +02:00
sam marshall 73fd56663b MDL-61102 core_search: Improve performance by reducing schema checks 2018-04-18 16:24:51 +01:00
David Mudrák 7a429a160d MDL-62003 privacy: Fix reported coding style violation 2018-04-18 17:10:18 +02:00
David Mudrák 3ecbf154db MDL-62003 privacy: Consistently export files into _files folder
There were two major issues with the previous implementation:

* The exported folder name was localised so it was "Files" or "Soubory"
  etc depending on the current language. Yet URLs referring to the files
  in that folder were always rewritten with hard-coded English "files".
* Files from all fileareas and itemids were all exported to a single
  target directory. So if there were two files with the same name being
  exported from multiple areas (such as submission_content and
  submission_attachment in the workshop module), one would overwrite
  another.

The patch addresses these issues as follows:

* To unify the folder name and also to minimise the risk of conflict
  with a subcontext folder, we now always export stored files under
  "_files" folder.
* Under that folder, there is a subdirectory with the area name and then
  eventually another subdirectory with non-zero itemid. And there
  finally the stored_file is exported to under its own file path.
2018-04-18 17:10:12 +02:00
David Monllao b5cca5ae5a Merge branch 'MDL-61796-master' of https://github.com/lucaboesch/moodle 2018-04-18 15:20:19 +02:00
David Monllao b1e5899c25 Merge branch 'MDL-38099-master' of https://github.com/lucaboesch/moodle 2018-04-18 14:14:20 +02:00
Eloy Lafuente (stronk7) a53d48e0e3 Merge branch 'MDL-61621_master' of git://github.com/dmonllao/moodle 2018-04-18 12:57:38 +02:00
Jun Pataleta 76dacdb051 Merge branch 'MDL-62025_master' of git://github.com/markn86/moodle 2018-04-18 16:26:26 +08:00
Jun Pataleta 11bc4876ac Merge branch 'MDL-61928' of git://github.com/timhunt/moodle 2018-04-18 16:00:49 +08:00
Mark Nelson e95599a57b MDL-62025 mod_choice: only export in the CONTEXT_MODULE context 2018-04-18 15:10:12 +08:00
Frédéric Massart 61ae0c28db MDL-61970 mod_survey: Implement privacy API 2018-04-18 14:55:47 +08:00
Andrew Nicols 2babce1763 Merge branch 'MDL-61568-master' of git://github.com/zig-moodle/moodle 2018-04-18 14:24:28 +08:00
Mihail Geshoski 022ee47735 MDL-61969 datapreset_imagegallery: Implement null privacy provider 2018-04-18 13:50:05 +08:00
Mihail Geshoski f143179a66 MDL-61948 core_media: Implement null privacy provider 2018-04-18 13:44:13 +08:00
Zig Tan ef43b1d4d6 MDL-61568 core_repository: Implement privacy providers 2018-04-18 13:43:53 +08:00
Zig Tan d87e16435e MDL-61568 repository_onedrive: Implement privacy providers 2018-04-18 13:43:53 +08:00
Zig Tan 59f6980201 MDL-61568 repository_youtube: Implement privacy providers 2018-04-18 13:43:53 +08:00
Zig Tan a7b8587136 MDL-61568 repository_wikimedia: Implement privacy providers 2018-04-18 13:43:44 +08:00
Zig Tan b703ef4498 MDL-61568 repository_picasa: Implement privacy providers 2018-04-18 13:40:35 +08:00
Zig Tan 015b3974e7 MDL-61568 repository_merlot: Implement privacy providers 2018-04-18 13:40:34 +08:00
Zig Tan b9118a7481 MDL-61568 repository_googledocs: Implement privacy providers 2018-04-18 13:40:34 +08:00
Zig Tan 1e251bd424 MDL-61568 repository_flickr_public: Implement privacy providers 2018-04-18 13:40:34 +08:00
Zig Tan 35bf4711bb MDL-61568 repository_flickr: Implement privacy providers 2018-04-18 13:40:17 +08:00
Jun Pataleta 7c12fc2734 Merge branch 'MDL-61520-master' of git://github.com/lameze/moodle 2018-04-18 13:28:36 +08:00
Andrew Nicols ffced67c67 Merge branch 'MDL-61957-master' of git://github.com/sarjona/moodle 2018-04-18 12:39:34 +08:00
Andrew Nicols 1e351f0976 MDL-61864 lang: Fix trailing whitespace 2018-04-18 12:34:44 +08:00
Andrew Nicols 7d0fcb5c86 MDL-61864 tool_policy: Fix whitespace issues 2018-04-18 12:16:53 +08:00
Andrew Nicols a8b35f9ccd Merge branch 'wip-MDL-61864-master' of git://github.com/marinaglancy/moodle 2018-04-18 12:01:29 +08:00
Ryan Wyllie 81f43bc6d4 MDL-61138 question: add question exporters 2018-04-18 11:45:01 +08:00
Ryan Wyllie 6c057c77dc MDL-61138 mod_quiz: remove YUI random question modal 2018-04-18 11:45:01 +08:00
Ryan Wyllie 1e46fb428f MDL-61138 mod_quiz: use AMD modal for add random question 2018-04-18 11:45:00 +08:00
Ryan Wyllie f046b9a4c5 MDL-61138 mod_quiz: create random question AMD modal 2018-04-18 11:45:00 +08:00
Ryan Wyllie 4ab09853f4 MDL-61138 javascript: add paged content widget 2018-04-18 11:45:00 +08:00
Jun Pataleta 4fa9393def Merge branch 'MDL-56511-master-lint' of git://github.com/andrewnicols/moodle 2018-04-18 11:23:52 +08:00
Ryan Wyllie 2803c8683b MDL-61138 javascript: add preshow callback to modal factory 2018-04-18 11:19:37 +08:00
Ryan Wyllie 90d8c85ec3 MDL-61138 javascript: stop duplicate custom events firing 2018-04-18 11:19:37 +08:00
Shamim Rezaie 9da6f4d968 MDL-61614 Quiz: Restore tags for random questions 2018-04-18 13:07:08 +10:00
Shamim Rezaie 2a1855887d MDL-61614 Quiz: backup tags for random questions 2018-04-18 13:07:08 +10:00
Shamim Rezaie 3090719d7d MDL-61614 Quiz: Deleting a quiz slot should delete its random tags 2018-04-18 13:07:08 +10:00
Shamim Rezaie 66aa172cbb MDL-61614 Quiz: Maintain slot tags when editing random questions 2018-04-18 13:07:08 +10:00
Shamim Rezaie d62793fdee MDL-61614 Quiz: save slot's tags in a table when adding random question 2018-04-18 13:07:08 +10:00
Shamim Rezaie 28e392a8b6 MDL-61614 Quiz: DB schema changes
Created a new DB table to store tag data for qiuz slots.
2018-04-18 13:07:08 +10:00
Andrew Nicols 7b87d98d6e MDL-56511 theme_boost: Fix SCSS lint issues 2018-04-18 11:02:56 +08:00
Zig Tan bcc08d3b5e MDL-61979 tool_cohortroles: Implemented privacy providers 2018-04-18 10:50:27 +08:00
Jun Pataleta 3a37a5e934 Merge branch 'MDL-61950-master' of git://github.com/ryanwyllie/moodle 2018-04-18 09:46:57 +08:00
Andrew Nicols 6979cf56e2 Merge branch 'MDL-56511-master' of git://github.com/andrewnicols/moodle 2018-04-18 09:35:29 +08:00
Bas Brands 89f0061e23 MDL-56511 theme_boost: Work around CSS Parser restrictions
The CSS Parser used in Moodle does not handle the use of complex
calculations at this stage.
The temporary workaround here uses a fixed position to ensure that the
popover arrows affected are in the correct location.
2018-04-18 09:31:57 +08:00
Bas Brands 3ec69c2ece MDL-56511 theme_boost: Update to Bootstrap 4 stable
Behat fixes by David Monllao <davidm@moodle.com>
    - Blocks
    - Modals
    - Messaging styling
    - Breadcrumb
    - Pagination
    - Course & categories management
2018-04-18 09:31:53 +08:00
Eloy Lafuente (stronk7) 45fc6559b4 Merge branch 'master_MDL-59857' of https://github.com/danmarsden/moodle 2018-04-18 03:06:56 +02:00
Luca Bösch 1c38b99cad MDL-61796 themes: In Clean, normalize filter labels font size.
Actually, in every theme not overriding the template.
2018-04-17 22:43:57 +02:00
Luca Bösch f0aef7abfe MDL-61991 theme_boost: Question correctness displayed as label. 2018-04-17 22:41:28 +02:00
Luca Bösch a07249826a MDL-38099 comments: year in comments date 2018-04-17 22:40:36 +02:00
Eloy Lafuente (stronk7) 6d4bc5bd34 weekly release 3.5dev 2018-04-17 19:54:27 +02:00
Eloy Lafuente (stronk7) 857617e9db NOBUG: Fixed file access permissions 2018-04-17 19:54:27 +02:00
Eloy Lafuente (stronk7) cc41793c50 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-04-17 19:54:24 +02:00
Sara Arjona c01040214a MDL-61957 gradereport_user: Implement privacy API 2018-04-17 14:31:54 +02:00
Sara Arjona e8d0133ed5 MDL-61957 gradereport_singleview: Implement privacy API 2018-04-17 14:02:34 +02:00
Sara Arjona 36b88f19ae MDL-61957 gradereport_overview: Implement privacy API 2018-04-17 14:02:34 +02:00
Sara Arjona 2d84d30d17 MDL-61957 gradereport_outcomes: Implement privacy API 2018-04-17 14:02:33 +02:00
Sara Arjona 7509d232bc MDL-61957 gradereport_history: Implement privacy API 2018-04-17 14:02:33 +02:00
Sara Arjona 8a43e40247 MDL-61957 gradereport_grader: Implement privacy API 2018-04-17 14:02:20 +02:00
David Monllao b71ce36030 MDL-60953 search: Set solr as search engine for testing
Also replacing field label references for "All groups" references as
there is a mforms bug related to hideIf.
2018-04-17 13:26:21 +02:00
Jun Pataleta 659bdbd22a Merge branch 'MDL-61663-master-phpunit' of git://github.com/andrewnicols/moodle 2018-04-17 14:44:12 +08:00
Andrew Nicols ceb2167df1 MDL-61663 phpunit: Add portfolio to the testsuite list 2018-04-17 14:39:56 +08:00
cescobedo 857e34877f MDL-61945 core_register: Implement Privacy API 2018-04-17 08:23:28 +02:00
Marina Glancy d5cfbc918f MDL-61864 tool_policy: cancel button when agreeing to policies
Show cancel button during signup only and do not show when user is logged
in and has to accept changed policies

When cancel button is clicked redirect to the site homepage
2018-04-17 14:19:19 +08:00
Marina Glancy 432a90f1ed MDL-61868 tool_policy: export agreements in privacy api
Part of MDL-61864
2018-04-17 14:19:16 +08:00
Jun Pataleta c3fd1e97ba Merge branch 'MDL-61862-master' of git://github.com/FMCorz/moodle 2018-04-17 12:07:49 +08:00
Andrew Nicols 5cddf50e69 Merge branch 'wip-MDL-61663-master' of git://github.com/abgreeve/moodle 2018-04-17 11:45:50 +08:00
Andrew Nicols ae9167bb3b Merge branch 'MDL-61977-master' of git://github.com/zig-moodle/moodle 2018-04-17 11:42:39 +08:00
Adrian Greeve 0f198a4f8e MDL-61663 portfolio: Update to the external system link names.
Changed the name of the link to something less like an English
string for each of the portfolios.
2018-04-17 11:39:11 +08:00
Frédéric Massart 29b44cedfc MDL-61862 mod_feedback: Tweak query to support UNION on TEXT fields
Thanks Oracle.
2018-04-17 11:35:55 +08:00
Andrew Nicols 18e58659bb Merge branch 'MDL-61980-master' of git://github.com/mihailges/moodle 2018-04-17 11:34:25 +08:00
Andrew Nicols cabbda70b1 Merge branch 'MDL-61916-master' of git://github.com/cescobedo/moodle 2018-04-17 11:17:08 +08:00
Andrew Nicols 9dabc4b966 Merge branch 'MDL-61918-master' of git://github.com/mihailges/moodle 2018-04-17 11:12:24 +08:00
Andrew Nicols f9f74f7a11 Merge branch 'MDL-61903-master' of git://github.com/mihailges/moodle 2018-04-17 11:09:01 +08:00
Zig Tan 8faeb25214 MDL-61568 repository_dropbox: Implement privacy providers 2018-04-17 10:26:50 +08:00
Zig Tan 435e4e2a30 MDL-61568 repository_boxnet: Implement privacy providers 2018-04-17 10:26:50 +08:00
Zig Tan cbee83840f MDL-61568 repository_webdav: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan e196d31789 MDL-61568 repository_user: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan 05c15ed931 MDL-61568 repository_url: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan ec2ccabf56 MDL-61568 repository_upload: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan 63cc353a06 MDL-61568 repository_skydrive: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan 013149f1a2 MDL-61568 repository_s3: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan 204baa0ef6 MDL-61568 repository_recent: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan 9dbd8702c6 MDL-61568 repository_local: Implement null privacy provider 2018-04-17 10:26:49 +08:00
Zig Tan d712722bd5 MDL-61568 repository_filesystem: Implement null privacy provider 2018-04-17 10:26:48 +08:00
Zig Tan e9ff078d75 MDL-61568 repository_equella: Implement null privacy provider 2018-04-17 10:26:33 +08:00
Andrew Nicols f8ad868fad Merge branch 'm35_MDL-60923_New_BackupDir_Setting-v2' of https://github.com/scara/moodle 2018-04-17 09:44:44 +08:00
Marina Glancy c182f060fa MDL-61876 admin: set default forceclean=1 2018-04-17 09:39:22 +08:00
Marina Glancy b197da8770 MDL-61876 question: apply format_text to input only 2018-04-17 09:39:22 +08:00
Mihail Geshoski 885378ca4e MDL-61903 webservice: Implement null privacy provider
Implement null privacy provider to rest, soap and xmlrpc webservice plugins.
2018-04-17 09:19:59 +08:00
Andrew Nicols d282ecf683 Merge branch 'MDL-61435-master' of git://github.com/lameze/moodle 2018-04-17 08:37:58 +08:00
Matteo Scaramuccia 40d90f438a MDL-60923 scheduled tasks: stale temp files in $CFG->backuptempdir too 2018-04-16 23:50:28 +02:00
Matteo Scaramuccia ef844148a9 MDL-60923 backup: Added $CFG->backuptempdir
The new setting will allow to host the temporary backup files
into a specific target directory. Defaults to '$CFG->tempdir/backup'.

Calling make_backup_temp_directory() checks that the required sub-directory
will be properly created under the new target directory.
2018-04-16 23:50:28 +02:00
Jun Pataleta d51c946700 Merge branch 'MDL-61862-master' of git://github.com/FMCorz/moodle 2018-04-16 23:30:42 +08:00
Eloy Lafuente (stronk7) 06dbe955d0 MDL-61819 editor: add testsuite to phpunit.xml 2018-04-16 16:36:42 +02:00
David Monllao 77d9eca5f2 Merge branch 'MDL-61819-master' of git://github.com/andrewnicols/moodle 2018-04-16 16:12:59 +02:00
Andrew Nicols 5377f8a263 MDL-61819 core_editor: Implement core provider 2018-04-16 21:54:51 +08:00
Andrew Nicols 0d619f41c2 MDL-61819 editor_atto: Implement null provider 2018-04-16 21:54:50 +08:00
Andrew Nicols 8c815348eb MDL-61819 editor: Implement editor null providers 2018-04-16 21:54:49 +08:00
David Monllao 99719b6e89 Merge branch 'MDL-39035-master' of https://github.com/lucaboesch/moodle 2018-04-16 12:57:34 +02:00
Frédéric Massart 9f6296e5de MDL-61862 mod_feedback: Implement core_privacy API 2018-04-16 18:45:27 +08:00
David Monllao 82f0ddc7c7 MDL-60953 search: Update groups support method name 2018-04-16 11:45:18 +02:00
David Monllao 9dbb24fa7a Merge branch 'MDL-60953-master' of https://github.com/timhunt/moodle 2018-04-16 11:43:53 +02:00
David Monllao d2c80085fd Merge branch 'MDL-61741-master-paypal' of git://github.com/mudrd8mz/moodle 2018-04-16 10:57:19 +02:00
David Monllao 2ffb0309dd Merge branch 'wip-MDL-61808-master' of git://github.com/abgreeve/moodle 2018-04-16 09:59:43 +02:00
Jun Pataleta 1e09c9ac8f Merge branch 'MDL-61708-lti-fullnamedisplay' of https://github.com/wjroes/moodle 2018-04-16 15:29:08 +08:00
Zig Tan e6df7dfedd MDL-61568 repository_coursefiles: Implement null privacy provider 2018-04-16 15:23:23 +08:00
Zig Tan cfca487f1f MDL-61568 repository_areafiles: Implement null privacy provider 2018-04-16 15:22:44 +08:00
Jun Pataleta cdd11481b4 Merge branch 'MDL-61974-master' of git://github.com/andrewnicols/moodle 2018-04-16 13:17:21 +08:00
Sara Arjona 24966a26c7 MDL-61868 tool_policy: Implement privacy API
Part of MDL-61864
2018-04-16 11:30:14 +08:00
Sara Arjona 4e9e2b0a0a MDL-61844 policy: Avoid to accept new policies during current session
Avoid redirection for accepting new policies during the manager user session
when $user->policyagreed=0 and he/she activates the first policy for logged in users.

Part of MDL-61864
2018-04-16 11:30:14 +08:00
Sara Arjona 3f9b276b97 MDL-61866 tool_policy: Add readme_moodle.txt file and reorganise styles.css
- Review changes made in jquery-eu-cookie-law-popup.js, for minimising them
(add eslint-disable to disable checking)
- Reorganise styles.css to separate CSS code from jquery-eu-cookie-law-popup
to policy one.
- Create readme_moodle.txt file, with instructions for updating the
jquery-eu-cookie-law-popup lib.

Part of MDL-61864
2018-04-16 11:30:14 +08:00
Marina Glancy cc3790d0ea MDL-61864 tool_policy: function can_delete_version
review TODOs in code, make sure they are either removed or tracker issues are created
2018-04-16 11:30:13 +08:00
Marina Glancy 673b598109 MDL-61864 tool_policy: coding style fixes 2018-04-16 11:30:13 +08:00
Mihail Geshoski 92a03f69d2 MDL-61864 tool_policy: accept policies on signup 2018-04-16 11:30:13 +08:00
Sara Arjona 6109f2348b MDL-61864 tool_policy: display policies to guests and users 2018-04-16 11:30:13 +08:00
Marina Glancy cf398020d5 MDL-61864 tool_policy: user agreement reports 2018-04-16 11:30:13 +08:00
David Mudrák 3d9571d5f0 MDL-61864 tool_policy: management of the site policies 2018-04-16 11:30:10 +08:00
Simey Lameze c91da28071 MDL-61772 question: refresh page after tag question 2018-04-16 11:14:46 +08:00
Andrew Nicols ae6072b892 MDL-61974 privacy: Rewrite the content writer storage 2018-04-16 11:12:07 +08:00
Andrew Nicols 3224e06de4 Merge branch 'MDL-61952-master' of git://github.com/sarjona/moodle 2018-04-16 10:50:50 +08:00
Andrew Nicols 77fc10710f Merge branch 'MDL-61954-master' of git://github.com/sarjona/moodle 2018-04-16 10:39:24 +08:00
Andrew Nicols 34e98391e6 Merge branch 'MDL-61902-master' of git://github.com/mihailges/moodle 2018-04-16 10:19:59 +08:00
Mihail Geshoski c8cc46f851 MDL-61918 assignment: Implement null privacy provider
Implement null privacy provider to offline, online, upload and uploadsingle assignment plugins.
2018-04-16 09:59:46 +08:00
Mihail Geshoski d00fbde6d9 MDL-61902 media: Implement null privacy provider 2018-04-16 09:46:56 +08:00
AMOS bot d4fa19a11e Automatically generated installer lang files 2018-04-16 00:07:05 +00:00
Andrew Nicols 53ea0e2ccf Merge branch 'patch-2' of https://github.com/do-you-even-curl/moodle 2018-04-16 08:04:32 +08:00
Adrian Greeve 25c8fd74ac MDL-61808 tool_monitor: Implemented privacy classes.
This plugin is now compatible with the new privacy system.
2018-04-14 10:42:23 +08:00
Łukasz Szeremeta 65bcb7da0e MDL-61827 auth: Change Facebook Graph API v2.8 to v.2.12 in OAuth2
Use v2.12 Facebook Graph API instead of v2.8
2018-04-13 21:40:42 +02:00
Tim Schroeder 1480277cfa MDL-60681 lib/tablelib.php: Make flexible_table class better extendable
Previously the member functions get_initial_first and get_initial_last of flexible_table were public but deprecated due to being no
longer used. Now they are used by print_initials_bar and made protected. That allows classes deriving from flexible_table to access
the first and last name initials without having to use deprecated methods.
2018-04-13 16:52:52 +02:00
Mihail Geshoski 23a52d1a40 MDL-61980 booktool: Implement null privacy provider
Implement null privacy provider into booktool_exportimscp, booktool_importhtml, booktool_print plugin.
2018-04-13 16:15:30 +08:00
David Mudrák 22e94d69f7 MDL-61759 admin: Fix notice if attempting use nonexisting policy handler
The list of all known handlers may not contain the configured value,
raising the PHP undefined index notice.
2018-04-13 09:42:47 +02:00
Jake Dallimore 644bffca5b MDL-61663 portfolio_picasa: add privacy provider implementation 2018-04-13 14:47:43 +08:00
Jake Dallimore 3d4a56b4c3 MDL-61663 portfolio_googledocs: add privacy provider implementation 2018-04-13 14:47:42 +08:00
Jake Dallimore 961eb3d1aa MDL-61663 portfolio_flickr: add privacy provider implementation 2018-04-13 14:47:42 +08:00
Jake Dallimore 90190a6b66 MDL-61663 portfolio_download: add privacy provider implementation 2018-04-13 14:47:42 +08:00
Jake Dallimore 5cbb36cbd8 MDL-61663 portfolio_boxnet: add privacy provider implementation 2018-04-13 14:47:42 +08:00
Jake Dallimore dfb64c5d5b MDL-61663 portfolio_mahara: add privacy provider implementation 2018-04-13 14:47:42 +08:00
Jake Dallimore e6f06ce994 MDL-61663 core_portfolio: add subsystem privacy provider
Added provider for portfolio plugins, and legacy polyfill for plugins.
2018-04-13 14:47:40 +08:00
Zig Tan 2245197519 MDL-61977 tool_profiling: Implemented null privacy provider 2018-04-13 14:29:58 +08:00
Zig Tan 825c2fdf8c MDL-61975 tool_recyclebin: Implemented null privacy provider 2018-04-13 14:00:38 +08:00
Andrew Nicols 1c406559b8 Merge branch 'MDL-60848_master' of https://github.com/markn86/moodle 2018-04-13 13:54:24 +08:00
Mark Nelson e41a56192a MDL-60848 atto_recordrtc: removed never shown HTML and string 2018-04-13 13:46:53 +08:00
Frédéric Massart ce1ec9b4d9 MDL-61836 core_blog: Implement privacy API 2018-04-13 13:22:03 +08:00
Mark Nelson 44946baf04 MDL-60848 core: added instructions on how to update adapter.js 2018-04-13 12:59:24 +08:00
Mark Nelson 77e4535fd9 MDL-60848 atto_recordrtc: implemented privacy provider 2018-04-13 12:59:24 +08:00
Mark Nelson c8520ca45f MDL-60848 atto_recordrtc: changed HTML of attached recordings
This was done so the user can then click on the recording and
add subtitles etc - the same behaviour as 'atto_media'.
2018-04-13 12:59:24 +08:00
Mark Nelson b5a3388bb1 MDL-60848 atto_recordrtc: language string changes
1. Ordered alphabetically by index.
2. Uncapitalised words after the first per Moodle standards.
3. Added string used by getUserMedia() on Chrome (possibly others).
2018-04-13 12:59:24 +08:00
Mark Nelson 1ecf5c15ca MDL-60848 atto_recordrtc: set valid default for 'allowedtypes' 2018-04-13 11:46:51 +08:00
Mark Nelson 6b21108b44 MDL-60848 editor_atto: upgrade to add recordrtc 2018-04-13 11:46:51 +08:00
Mark Nelson dde2a79a70 MDL-60848 atto_recordrtc: bumped version 2018-04-13 11:46:51 +08:00
Mark Nelson 2ce4291183 MDL-60848 core: added recordrtc to core plugin list 2018-04-13 11:46:51 +08:00
Mark Nelson 8be5742cb1 MDL-60848 core: updated adapter.js and moved to core 2018-04-13 11:46:51 +08:00
Dan Marsden 679eab046f MDL-59857 mod_scorm: use valid length for grade type field. 2018-04-13 11:10:00 +12:00
Luca Bösch c3c8cc40be MDL-39035 admin: show old and new version after upgrade in CLI 2018-04-12 18:02:12 +02:00
David Monllao 20bf0c45ff weekly release 3.5dev 2018-04-12 14:38:12 +02:00
David Monllao 7cdeb8be2e NOBUG: Fixed SVG browser compatibility 2018-04-12 14:38:11 +02:00
David Monllao 6bef258db3 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-04-12 14:38:11 +02:00
David Monllao 547357df4b MDL-61298 pix: Removing ^M dos line ending characters 2018-04-12 13:34:33 +02:00
Kathrin Osswald 45ae297f7a MDL-61298 theme Boost: Nav drawer icon improvements - fixes. 2018-04-12 13:28:37 +02:00
Sara Arjona 3d702cc227 MDL-61954 gradeimport_xml: Implement privacy API 2018-04-12 09:49:09 +02:00
Sara Arjona ce0eb44398 MDL-61954 gradeimport_direct: Implement privacy API 2018-04-12 09:48:52 +02:00
Sara Arjona aa784c4eb4 MDL-61954 gradeimport_csv: Implement privacy API 2018-04-12 09:42:36 +02:00
Sara Arjona 8517245516 MDL-61952 gradeexport_xml: Implement privacy API 2018-04-12 08:39:48 +02:00
Sara Arjona ed71c8b1df MDL-61952 gradeexport_xls: Implement privacy API 2018-04-12 08:39:20 +02:00
Sara Arjona d44efece94 MDL-61952 gradeexport_txt: Implement privacy API 2018-04-12 08:38:50 +02:00
Sara Arjona e1b9cb14e4 MDL-61952 gradeexport_ods: Implement privacy API 2018-04-12 08:38:09 +02:00
Ryan Wyllie 40633c6310 MDL-61950 question: include random questions in statistics calculator 2018-04-12 13:36:41 +08:00
Andrew Nicols 05dfaab2b4 Merge branch 'MDL-61852-master' of git://github.com/bmbrands/moodle 2018-04-12 13:14:03 +08:00
Bas Brands fd70f25519 MDL-61852 core: downgrade popper to version 1.12.6 fixing usertours positioning issues 2018-04-12 07:02:14 +02:00
Andrew Nicols 934b1e9832 MDL-50907 antivirus: Switch to correct string 2018-04-12 10:30:25 +08:00
Ruslan Kabalin 30e1797f29 MDL-50907 antivirus_clamav: Add test coverage for scan_data. 2018-04-12 10:30:25 +08:00
Ruslan Kabalin 694cb8eb21 MDL-50907 antivirus: Add test coverage for scan_data. 2018-04-12 10:30:25 +08:00
Ruslan Kabalin f6c5cfef77 MDL-50907 tool_messageinbound: Use antiviruses_scan_data for attachments scanning. 2018-04-12 10:30:25 +08:00
Ruslan Kabalin ddf14b32fe MDL-50907 antivirus_clamav: Implement data scanning using unix sockets.
We use clamav data stream scanning functionality.
2018-04-12 10:30:25 +08:00
Ruslan Kabalin bd74bda383 MDL-50907 antivirus: Implement data stream scanning default process. 2018-04-12 10:30:25 +08:00
Ruslan Kabalin 8504673116 MDL-50907 antivirus: Make antivirus_exception message more general.
Since the scan can be run not only as a result of file uploading, the
language string should be more general.
2018-04-12 10:30:25 +08:00
Eloy Lafuente (stronk7) 3451a05292 Merge branch 'MDL-61668-master' of git://github.com/jleyva/moodle 2018-04-12 00:31:18 +02:00
Eloy Lafuente (stronk7) c9271388c9 Merge branch 'MDL-61802-master' of https://github.com/AlexWhitlatch/moodle 2018-04-12 00:22:40 +02:00
Eloy Lafuente (stronk7) fc9f324fe2 Merge branch 'MDL-61828-master' of git://github.com/andrewnicols/moodle 2018-04-12 00:14:32 +02:00
Eloy Lafuente (stronk7) a845d7d387 Merge branch 'MDL-61895-master' of git://github.com/andrewnicols/moodle 2018-04-11 23:57:46 +02:00
Eloy Lafuente (stronk7) 3b8c9ab2b8 Merge branch 'MDL-61896-master' of git://github.com/andrewnicols/moodle 2018-04-11 23:41:21 +02:00
Eloy Lafuente (stronk7) 74e48d168f Merge branch 'MDL-61859-master' of https://github.com/snake/moodle 2018-04-11 22:27:25 +02:00
Eloy Lafuente (stronk7) 0f0d0004bd Merge branch 'MDL-61208-master-fix' of git://github.com/farhan6318/moodle 2018-04-11 20:13:56 +02:00
Eloy Lafuente (stronk7) d2706c5e58 Merge branch 'MDL-60940-master-forceclean' of git://github.com/mudrd8mz/moodle 2018-04-11 19:39:01 +02:00
Eloy Lafuente (stronk7) 2d42e6e12c Merge branch 'MDL-61743_master' of git://github.com/dmonllao/moodle 2018-04-11 19:23:01 +02:00
David Monllao e171dc6dbe Merge branch 'MDL-61873-master' of git://github.com/cescobedo/moodle 2018-04-11 18:41:43 +02:00
David Monllao a5db58f4f2 Merge branch 'MDL-61198-master' of git://github.com/jleyva/moodle 2018-04-11 18:23:59 +02:00
David Monllao 0ca25fe2a9 Merge branch 'MDL-61581-master' of https://github.com/lucaboesch/moodle 2018-04-11 18:07:09 +02:00
David Monllao 27fef51d48 MDL-55491 badges: Add missing format_string call
Extra version bump + trailing whitespace removal.
2018-04-11 17:55:45 +02:00
David Monllao 728b851eb5 Merge branch 'MDL-55491-master' of git://github.com/sarjona/moodle 2018-04-11 17:53:37 +02:00
Eloy Lafuente (stronk7) 8c46d204a1 MDL-60548 tests: Get tests passing
This includes:

- changing all usernames in feature to lowercase, for cross-db passing. Fixes:
  - user/tests/behat/set_email_display.feature
- ensure that course_enrolment_manager::get_potential_users() and
  external always returns user->maildisplay attribute, so email
  visibility can be calculated by user_get_user_details(). Fixes:
  - enrol/tests/behat/enrol_user.feature
  - blocks/news_items/tests/behat/display_news.feature
  - course/tests/behat/course_creation.feature
2018-04-11 17:15:38 +02:00
Farhan Karmali 351cff7928 MDL-61208 enrol: Fix for issue found while testing 2018-04-11 18:24:14 +05:30
David Mudrák 4b82c15cdb MDL-60940 weblib: Introduce an ability to force cleaning of all content
The new configuration flag $CFG->forceclean overrides the noclean
option when calling format_text() so that the text is always
and unconditionally cleaned.
2018-04-11 10:23:45 +02:00
Jake Dallimore 4af7042e6e Merge branch 'MDL-59691-master' of https://github.com/lucisgit/moodle 2018-04-11 16:01:03 +08:00
Andrew Nicols 2b118a941a Merge branch 'MDL-61208-master' of git://github.com/farhan6318/moodle 2018-04-11 10:52:29 +08:00
Simey Lameze de81dc8763 MDL-61520 quiz: fix references for xhtml on stats report 2018-04-11 10:46:13 +08:00
Andrew Nicols 8badf71325 Merge branch 'MDL-61881-master' of git://github.com/zig-moodle/moodle 2018-04-11 10:14:03 +08:00
Zig Tan 6f77c09777 MDL-61881 report: fix privacy lang strings 2018-04-11 10:06:51 +08:00
Jake Dallimore da16e3e3dc Merge branch 'MDL-61255_master' of git://github.com/markn86/moodle 2018-04-11 09:53:14 +08:00
Andrew Nicols 46a13e37a8 Merge branch 'MDL-61731-master' of git://github.com/mihailges/moodle 2018-04-11 09:11:36 +08:00
Mihail Geshoski 2f9bd2bf90 MDL-61731 message_email: Add privacy files and unit tests 2018-04-11 09:03:58 +08:00
Andrew Nicols 4ea006e4da Merge branch 'MDL-61867-master' of git://github.com/mihailges/moodle 2018-04-11 08:51:29 +08:00
AMOS bot 49e54ae981 Automatically generated installer lang files 2018-04-11 00:07:09 +00:00
Eloy Lafuente (stronk7) bbe8bb0d02 Merge branch 'MDL-61709-scorm-student-fullnamedisplay' of https://github.com/wjroes/moodle 2018-04-11 01:49:54 +02:00
Eloy Lafuente (stronk7) a2ac42d40c Merge branch 'MDL-61824-master' of https://github.com/sammarshallou/moodle 2018-04-11 01:02:45 +02:00
Eric Merrill 815c44ce07 MDL-61913 restore: Protect against blocks that aren't being created 2018-04-11 00:50:27 +02:00
Eloy Lafuente (stronk7) 66434106ed MDL-60548 test: Change modified lang string to get tests back to pass
Also modified a template example use, so there aren't courrencies
of the old string in codebase.
2018-04-10 23:24:17 +02:00
Tim Hunt 1872cfcd2f MDL-61928 formslib: shortforms should work with non-editable forms 2018-04-10 17:39:49 +01:00
Tim Hunt e37c1fe23d MDL-61348 quiz reports: fix incorrect groups averages
the averages were wrong if a user had mulitple enrolments in a course,
which can happen with some enrolment plugins.
2018-04-10 17:10:28 +01:00
Eloy Lafuente (stronk7) 2f27dca60d Merge branch 'MDL-60548-master-v4' of https://github.com/Dave-B/moodle 2018-04-10 17:14:46 +02:00
Eloy Lafuente (stronk7) bd0391d284 Merge branch 'wip-MDL-58697-master-assigngrading' of git://github.com/adamann2/moodle 2018-04-10 15:53:37 +02:00
Kathrin Osswald 64448e1ea9 MDL-61298 theme Boost: Nav drawer icon improvements. 2018-04-10 15:31:12 +02:00
David Monllao 5ba5a5e31d Merge branch 'MDL-61838-master' of git://github.com/mihailges/moodle 2018-04-10 13:44:05 +02:00
David Monllao 8373df9687 Merge branch 'MDL-61843-master' of git://github.com/mihailges/moodle 2018-04-10 13:42:43 +02:00
Dan Marsden fbfd69a865 MDL-32585 mod_scorm: Improve force new attempts setting.
AMOS BEGIN
 MOV [forcenewattempt,mod_scorm],[forcenewattempts,mod_scorm]
AMOS END
2018-04-10 13:38:51 +02:00
Eloy Lafuente (stronk7) a706fd79a5 MDL-61875 tests: Use existing component & support $CFG->admin 2018-04-10 13:14:34 +02:00
Eloy Lafuente (stronk7) 7aeb85770f Merge branch 'MDL-61875-master' of https://github.com/snake/moodle 2018-04-10 13:03:27 +02:00
Mark Nelson 23de6f3a2d MDL-61255 core_message: add warning when notifications not migrated 2018-04-10 17:28:52 +08:00
Mark Nelson 78348dfc4e MDL-61255 core_message: added helper function to detect legacy messages 2018-04-10 17:28:52 +08:00
Mark Nelson 84f6a716b2 MDL-61255 core_message: migrate data from the 'message_popup' table 2018-04-10 17:26:43 +08:00
Mark Nelson 6f0731adc5 MDL-61255 core_message: adjusted upgrade.txt 2018-04-10 15:17:01 +08:00
Mark Nelson e78523bff8 MDL-61255 message_popup: change API so it uses new table 2018-04-10 15:17:01 +08:00
Mark Nelson 1f64f17429 MDL-61255 message_popup: add table to store notifications 2018-04-10 15:17:01 +08:00
Mark Nelson 7022b8d9e4 MDL-61255 core_message: add notification when data not migrated 2018-04-10 15:17:01 +08:00
Mark Nelson 5cc6b3eeb5 MDL-61255 core_message: added unit test for task 2018-04-10 15:17:01 +08:00
Mark Nelson 41bc5aa587 MDL-61255 core_message: created task to handle migration of data 2018-04-10 15:17:01 +08:00
David Monllao d25a8e3c69 Merge branch 'MDL-61846-master' of git://github.com/mihailges/moodle 2018-04-10 08:59:25 +02:00
David Monllao e7d10540d9 Merge branch 'MDL-61343-master' of git://github.com/Kathrin84/moodle 2018-04-10 08:29:39 +02:00
David Monllao fd91aab1e7 Merge branch 'MDL-61129-fix-accessibility-on-tables-mod_survey_MASTER' of https://github.com/guillalva06/moodle 2018-04-10 07:57:47 +02:00
Farhan Karmali fe5b5be1dd MDL-61208 enrol: Standard enrol plugins should use tasks instead of cron 2018-04-10 09:16:17 +05:30
Andrew Nicols 0d900be445 Merge branch 'MDL-61837-master' of git://github.com/lameze/moodle 2018-04-10 11:16:12 +08:00
Andrew Nicols 091a2630a7 Merge branch 'MDL-61795-master' of git://github.com/mihailges/moodle 2018-04-10 10:40:01 +08:00
Mihail Geshoski 9b8822d2a6 MDL-61795 block_rss_client: Add privacy files and unit tests 2018-04-10 09:34:38 +08:00
Andrew Nicols f31450578a MDL-58065 media_videojs: Clarify langstring 2018-04-10 08:54:16 +08:00
Andrew Nicols b4deb66146 Merge branch 'MDL-58065-master' of https://github.com/lucisgit/moodle 2018-04-10 08:54:12 +08:00
Jake Dallimore 6e6ba82305 MDL-61875 core_privacy: update the core_component_list in the manager 2018-04-10 08:44:42 +08:00
Jake Dallimore 5749f8a4f7 MDL-61875 core_component: new method to get full components list 2018-04-10 08:44:40 +08:00
Eloy Lafuente (stronk7) 6502ba9a26 Merge branch 'MDL-61869_master' of https://github.com/marxjohnson/moodle 2018-04-10 02:26:24 +02:00
Eloy Lafuente (stronk7) 1f4670653d Merge branch 'MDL-61860-master' of https://github.com/mackensen/moodle 2018-04-10 01:00:31 +02:00
Eloy Lafuente (stronk7) 805a3a4ed7 Merge branch 'MDL-60196_master' of https://github.com/mfabriczy/moodle 2018-04-10 00:55:54 +02:00
Eloy Lafuente (stronk7) 445f3e3f4f Merge branch 'MDL-61449-master' of git://github.com/jleyva/moodle 2018-04-10 00:43:31 +02:00
cescobedo bc346cc34d MDL-61916 format: Add privacy implementation for all format plugins
None of the Course format plugins have any user preference or database table.
They all implement the null provider.
2018-04-10 00:17:42 +02:00
Eloy Lafuente (stronk7) 90ce448189 Merge branch 'MDL-60774-master' of git://github.com/jleyva/moodle 2018-04-10 00:02:49 +02:00
Daniel Thies e909bfc70f MDL-61476 mod_glossary: Check XML arrays exist 2018-04-09 23:27:27 +02:00
Daniel Thies 26c9798596 MDL-61476 mod_glossary: Support tags in entries export 2018-04-09 23:26:34 +02:00
Eloy Lafuente (stronk7) cb03034466 Merge branch 'MDL-61861-master' of git://github.com/andrewnicols/moodle 2018-04-09 20:23:49 +02:00
Tony Butler 60e9f9083e MDL-59691 assignfeedback_editpdf: Allow comment placement to all edges
Plus a couple of extra usability improvements:
- Collapse comment during move to allow precise placement
- Change cursor style to indicate that dragging is possible
2018-04-09 16:55:36 +01:00
Tony Butler ad7c719de4 MDL-59691 assignfeedback_editpdf: Allow comments to collapse to top-left
Forcing them to collapse to the bottom-left corner seems less natural
and effectively changes the location of existing comments from pre-3.3
2018-04-09 16:55:36 +01:00
sam marshall a539e5605c MDL-61824 core_search: Deleting restored context caused error
When restoring content, this adds it to a queue for indexing. If the
restored content was then deleted before the indexing takes place,
this caused an exception in the scheduled task.

This change makes it continue safely past missing contexts.
2018-04-09 16:36:30 +01:00
Guillermo Alvarez f1dd1cb5e0 MDL-61129 survey: Add colgroup attribute at survey question tables 2018-04-09 10:33:43 -05:00
Stephen Bourget 75653a3068 MDL-55491 badges: Add cohort as badge criteria 2018-04-09 11:03:30 +02:00
Eugene Venter abc07b53a7 MDL-55491 badges: Add cohort as badge criteria
commissioned by NZ Customs Service
2018-04-09 10:23:50 +02:00
Jake Dallimore 417ef862e4 Merge branch 'MDL-61711' of git://github.com/stronk7/moodle 2018-04-09 16:19:44 +08:00
Mark Nelson 0174e72ba8 MDL-60848 atto_recordrtc: removed 'oldermoodle' variable 2018-04-09 16:15:24 +08:00
Andrew Nicols adf4ae83fc Merge branch 'MDL-61829-master' of git://github.com/zig-moodle/moodle 2018-04-09 15:28:18 +08:00
Andrew Nicols 43c5278ad3 Merge branch 'MDL-61736-master' of git://github.com/sarjona/moodle 2018-04-09 15:25:02 +08:00
Sara Arjona 3449816e7f MDL-61736 user: Show correct status when enrol method is disabled
When disabling an enrolment method, the user status will be displayed
as "Not current" instead of "Active".
2018-04-09 08:45:57 +02:00
Zig Tan f5edb0c638 MDL-61829 block_community: Implement privacy provider 2018-04-09 14:09:14 +08:00
Andrew Nicols 98645b5be4 Merge branch 'MDL-60416_master' of git://github.com/markn86/moodle 2018-04-09 13:38:56 +08:00
Marina Glancy 5714c88b5f MDL-61852 core: 3rd party lib include cleanup 2018-04-09 12:27:45 +08:00
Bas Brands ea33609e4b MDL-61852 lib: move popper.js to core
Popper is used in tool_usertours. Bootstrap 4 stable depends on popper too. Moving to /lib so both can use a single popper.js lib
2018-04-09 12:08:48 +08:00
Mark Nelson 9e0501a611 MDL-60416 ltiservice_gradebookservices: supply error code reason 2018-04-09 12:08:35 +08:00
Mark Nelson ede461a9a4 MDL-60416 ltiservice_gradebookservices: use moodle_url for links 2018-04-09 12:08:35 +08:00
Mark Nelson 43a60f7fd8 MDL-60416 ltiservice_memberships: construct JSON as PHP array 2018-04-09 12:08:35 +08:00
Mark Nelson 2e352cd1fa MDL-60416 core: added 'gradebookservices' to plugin list 2018-04-09 12:08:35 +08:00
Mark Nelson 7a08156eef MDL-60416 mod_lti: add unit test for gradebook cleanup task 2018-04-09 12:08:35 +08:00
Claude Vervoort c02324d96a MDL-60416 mod_lti: Introduced LTI Advantage
A huge thanks goes to 'Diego del Blanco' and
'Chris Lawson' for contributing much of their
code and time to this project, and to Cengage
for sponsoring it.

Much appreciated!
2018-04-09 12:08:35 +08:00
nlnrose 18e27e7bdb MDL-61802 Admin: Corrected typo in test file.
The file privcacy_provider_test.php was supposed to be
privacy_provider_test.php.
2018-04-08 21:58:55 -06:00
Simey Lameze b71f21bda9 MDL-61837 core_question: replace tag fields on edit page 2018-04-09 11:46:53 +08:00
Simey Lameze a9b3410632 MDL-61837 core_question: replace tag fields on tag modal 2018-04-09 11:46:46 +08:00
Mihail Geshoski 10268ec52e MDL-61867 fileconverter_unoconv: Add privacy files 2018-04-09 11:41:21 +08:00
Helen Foster efefa2d905 MDL-61033 mod_quiz: Update lang string 2018-04-09 10:39:19 +08:00
Andrew Nicols c36eea3d28 Merge branch 'MDL-61033-master' of https://github.com/nashtechdev01/moodle 2018-04-09 10:37:23 +08:00
Andrew Nicols 853508eed3 MDL-61601 cohort: Move theme test to moodle_page 2018-04-09 10:16:54 +08:00
Zig Tan 71098b9524 MDL-61881 report_usersessions: Implement null privacy provider 2018-04-09 09:57:15 +08:00
Zig Tan b398f0702a MDL-61881 report_stats: Implement null privacy provider 2018-04-09 09:56:53 +08:00
Zig Tan d8e07b9f75 MDL-61881 report_security: Implement null privacy provider 2018-04-09 09:56:31 +08:00
Zig Tan 2b0b91d7ee MDL-61881 report_questioninstances: Implement null privacy provider 2018-04-09 09:56:07 +08:00
Zig Tan 024d11a8ab MDL-61881 report_performance: Implement null privacy provider 2018-04-09 09:55:47 +08:00
Zig Tan 70b123700a MDL-61881 report_participation: Implement null privacy provider 2018-04-09 09:55:26 +08:00
Zig Tan c1a8f55b86 MDL-61881 report_outline: Implement null privacy provider 2018-04-09 09:55:07 +08:00
Zig Tan c4c5061d1c MDL-61881 report_loglive: Implement null privacy provider 2018-04-09 09:54:38 +08:00
Zig Tan 219c136003 MDL-61881 report_log: Implement null privacy provider 2018-04-09 09:54:09 +08:00
Zig Tan 747ac8e9c4 MDL-61881 report_insights: Implement null privacy provider 2018-04-09 09:53:45 +08:00
Zig Tan 7b78c329c5 MDL-61881 report_eventlist: Implement null privacy provider 2018-04-09 09:53:19 +08:00
Zig Tan 16044f5140 MDL-61881 report_courseoverview: Implement null privacy provider 2018-04-09 09:49:50 +08:00
Zig Tan c68b4a9d04 MDL-61881 report_configlog: Implement null privacy provider 2018-04-09 09:49:18 +08:00
Zig Tan e9251c0fe5 MDL-61881 report_competency: Implement null privacy provider 2018-04-09 09:48:55 +08:00
Zig Tan 554b8789d6 MDL-61881 report_backup: Implement null privacy provider 2018-04-09 09:48:21 +08:00
Andrew Nicols d607cdd782 Merge branch 'MDL-61601-master' of git://github.com/sarjona/moodle 2018-04-09 09:38:21 +08:00
Andrew Nicols 9ec2b3e639 Merge branch 'MDL-59581' of https://github.com/stronk7/moodle 2018-04-09 09:26:23 +08:00
Eloy Lafuente (stronk7) 970df71df3 MDL-61711 install: update the list of stale files for 3.5 2018-04-09 02:21:55 +02:00
Jake Dallimore 2f5fa7109e MDL-59581 database: remove mssql references from lib/ files 2018-04-09 02:00:09 +02:00
Jake Dallimore d67991f15a MDL-59581 database: remove mssql strings from install.php 2018-04-09 01:59:57 +02:00
Jake Dallimore 9c533e01dd MDL-59581 database: remove mssql_native_moodle_database test from enrol 2018-04-09 01:59:37 +02:00
Jake Dallimore 2610190674 MDL-59581 database: remove mssql reference from top level files 2018-04-09 01:59:28 +02:00
Jake Dallimore 4c00922f2e MDL-59581 database: remove mssql_native_moodle_database test from auth 2018-04-09 01:59:16 +02:00
Jake Dallimore 811808b3d2 MDL-59581 database: removal of mssql bits from admin/ 2018-04-09 01:59:06 +02:00
Jake Dallimore 48c3e99599 MDL-59581 database: remove mssql specific code from lib/dml 2018-04-09 01:58:26 +02:00
Andrew Nicols e484db7c94 MDL-61896 filter: Implement privacy API for all filters 2018-04-08 15:55:37 +08:00
Andrew Nicols 240524049e MDL-61895 availability: Implement null provider for plugins 2018-04-08 14:21:31 +08:00
Andrew Nicols d043aa071b MDL-61861 privacy: Add unit tests to check all providers. 2018-04-08 14:12:42 +08:00
Andrew Nicols 5b18ae4a8a MDL-61828 core_privacy: Support proper nesting in test trees 2018-04-08 13:35:09 +08:00
cescobedo 6291e67b11 MDL-61873 auth: Add privacy implementation for all auth plugins
None of the Auth plugins (except manual and oauth2) have any user preference or database table.
They all implement the null provider.
2018-04-07 11:24:17 +02:00
willem 9376f7d68e MDL-61709 mod_scorm: use student fullname when not in standards mode
Changed the scorm12standard setting for SCORM 1.2 in a more generic
'use SCORM Standards' setting. New setting is off by default.

The student name passed into the module is formatted as
$USER->lastname .', '. $USER->firstname and thus ignores the
fullnamedisplay. This is per SCORM1.2 standards. If setting
'use SCORM Standards' is disabled fullname will be used instead.
2018-04-07 09:14:22 +02:00
Luca Bösch 3d7f501293 MDL-61581 lesson: style continue to last buttons 2018-04-06 16:44:12 +02:00
David Monllao 297509d70c MDL-61621 blocks: New API function 2018-04-06 13:12:30 +02:00
Jake Dallimore fdae6f77d6 MDL-61859 core_completion: fix unit tests expecting exceptions twice
We can't expectException twice in the same test, so split this out into
another test.
2018-04-06 17:30:31 +08:00
Mark Nelson a8d022d814 MDL-60848 atto_recordrtc: removed use of bowser.js 2018-04-06 17:24:59 +08:00
Mark Nelson 492a795d67 MDL-60848 atto_recordrtc: removed unnecessary files 2018-04-06 17:24:47 +08:00
jfederico b4bbf31bf1 MDL-60848 atto_recordrtc: Add recordrtc to core
Thanks also goes to Jacob Prud'homme from Blindside
Networks who contributed a vast portion of this code.
2018-04-06 17:14:36 +08:00
David Monllao 45ade52173 MDL-61743 message: Add context level checking 2018-04-06 09:09:15 +02:00
David Monllao 3650af761a MDL-61743 core_privacy: Add context level checks for all users deletion 2018-04-06 08:57:24 +02:00
Andrew Nicols fa9243cd85 MDL-61743 core_privacy: Reduce context specificty
Deletion is called for a context against all components, not just
modules.
2018-04-06 08:57:24 +02:00
Sara Arjona 88cb8b781d MDL-61601 cohort: Add theme support for cohorts
If enabled $CFG->allowcohortthemes, then themes can be set at the cohort level.
This will affect all users with only one cohort or more than one but with the same theme.
The default theme order will be: course, category, session, user, cohort, site.
2018-04-06 08:28:01 +02:00
Andrew Nicols cba5d8f1de MDL-61861 core_tag: Correct langstring identifier 2018-04-06 09:25:54 +08:00
Mihail Geshoski ee0d7009e4 MDL-61846 dataformat: Add privacy implementation for all plugins 2018-04-06 09:25:44 +08:00
Mihail Geshoski 13840b978d MDL-61843 report_completion: Add privacy files 2018-04-06 09:13:45 +08:00
Mihail Geshoski c2384dde13 MDL-61838 report_progress: Add privacy files 2018-04-06 09:00:02 +08:00
Charles Fulton baab37149d MDL-61860 auth: standardise config inclusion 2018-04-05 14:37:02 -04:00
Eloy Lafuente (stronk7) 2bd2660751 weekly release 3.5dev 2018-04-05 15:38:01 +02:00
Eloy Lafuente (stronk7) 39071b0707 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-04-05 15:37:59 +02:00
Ruslan Kabalin 7d241879bf MDL-58065 media_videojs: Add tests for RTMP and flash. 2018-04-05 12:19:16 +01:00
sam marshall 3c49b0e6b6 MDL-60953 core_search: UI to search by group 2018-04-05 11:42:09 +01:00
Ruslan Kabalin 2e59aee791 MDL-58065 media_videojs: Add RTMP support. 2018-04-05 11:15:03 +01:00
Juan Leyva cf58a2d528 MDL-61198 course: Return course format options in WS 2018-04-05 11:05:47 +01:00
Juan Leyva ef184ad6e0 MDL-61198 course: New function for format to support external config
New function to return the course format settings for external clients
via Web Services.
Some settings (like private keys/tokens) should be not returned if the
user hasn’t appropriate permissions.
2018-04-05 11:05:47 +01:00
Mark Johnson e65560e3eb MDL-61869 output: Infer rendering of templatables 2018-04-05 09:45:15 +01:00
Juan Leyva 3c8de97d00 MDL-61668 tool_mobile: New options for disabled features
We are allowing admins to disable course or courses download.
2018-04-05 08:53:38 +01:00
Jake Dallimore 1c217fa9ee Merge branch 'MDL-61761-master' of git://github.com/mihailges/moodle 2018-04-05 13:17:53 +08:00
Mihail Geshoski 0edc94e316 MDL-61761 message_jabber: Add privacy files and unit tests 2018-04-05 12:00:47 +08:00
Jake Dallimore 90cdf50dd9 Merge branch 'wip-MDL-61163-master' of git://github.com/marinaglancy/moodle 2018-04-05 10:36:57 +08:00
Andrew Nicols 682282de55 Merge branch 'MDL-61464-master' of git://github.com/rezaies/moodle 2018-04-05 09:44:05 +08:00
Andrew Nicols 8f205734fb Merge branch 'MDL-60726-master' of git://github.com/zig-moodle/moodle 2018-04-05 08:32:21 +08:00
Eloy Lafuente (stronk7) 2b9e3510f8 Merge branch 'MDL-61076-master' of https://github.com/sammarshallou/moodle 2018-04-05 02:09:31 +02:00
Eloy Lafuente (stronk7) f21b5591c6 Merge branch 'MDL-61818-master' of git://github.com/andrewnicols/moodle 2018-04-05 00:49:23 +02:00
Eloy Lafuente (stronk7) 9c93f67328 Merge branch 'wip-MDL-61746-master' of https://github.com/RohithSrk/moodle 2018-04-05 00:42:11 +02:00
Eloy Lafuente (stronk7) 716e9deab7 Merge branch 'MDL-61673-fix-wrong-string-on-calendar-mustache_MASTER' of https://github.com/guillalva06/moodle 2018-04-05 00:35:49 +02:00
Jun Pataleta b07f2c4691 MDL-61781 admin_settings: Fix default settings value for docroot 2018-04-04 16:45:35 +08:00
Zig Tan 5687cd044d MDL-60726 assign: Fix assign submission confirmation alignment 2018-04-04 16:35:15 +08:00
Juan Leyva b9e6db9ddc MDL-61449 tool_mobile: New Web Service tool_mobile_get_content 2018-04-04 08:28:00 +01:00
Andrew Nicols f9d8a27f2c Merge branch 'MDL-61692-master-2' of https://github.com/snake/moodle 2018-04-04 11:37:09 +08:00
Andrew Nicols 6ab10c3d77 Merge branch 'wip-MDL-56635-master' of git://github.com/marinaglancy/moodle 2018-04-04 11:27:11 +08:00
Andrew Nicols 0e25774762 Merge branch 'MDL-61183-master' of git://github.com/farhan6318/moodle 2018-04-04 11:00:07 +08:00
Farhan Karmali 6afa07edd1 MDL-61183 user: Added total participants count on paricipants page 2018-04-04 07:56:38 +05:30
Jake Dallimore 19ca0aaa6b MDL-61692 core_privacy: add privacyfields to link_ methods
Some subsystems are like conduits, passing data along to plugins which,
in turn, send the data externally. Only the component linking to (using)
the subsystem will know what data it is sending along to the eventual
external system, so should be able to specify this at the time of
linking. The same goes for plugintypes.
2018-04-04 10:00:39 +08:00
Andrew Nicols b9201e1b2b Merge branch 'MDL-61751-master-fix' of https://github.com/snake/moodle 2018-04-04 09:10:32 +08:00
Jake Dallimore 0fe269291e MDL-61751 core_plagiarism: fix fatal error with privacy legacy polyfill 2018-04-04 08:58:18 +08:00
Andrew Nicols 711c4775c5 MDL-60811 enrol_self: Remove unused globals 2018-04-04 08:55:54 +08:00
Andrew Nicols 36052f7185 Merge branch 'MDL-60811-master' of git://github.com/farhan6318/moodle 2018-04-04 08:48:21 +08:00
Eloy Lafuente (stronk7) 92221e9d44 Merge branch 'MDL-61451-master' of git://github.com/cescobedo/moodle 2018-04-04 01:39:36 +02:00
Eloy Lafuente (stronk7) c8cbdfce24 Merge branch 'MDL-61817-master' of git://github.com/andrewnicols/moodle 2018-04-04 01:22:36 +02:00
Eloy Lafuente (stronk7) 1c2d8c7fb3 MDL-61751 core_plagiarism: add testsuite to phpunit.xml 2018-04-04 01:04:54 +02:00
Eloy Lafuente (stronk7) cb92d20996 Merge branch 'MDL-61502-master' of https://github.com/lucaboesch/moodle 2018-04-04 00:49:59 +02:00
Eloy Lafuente (stronk7) 5deadc8229 Merge branch 'wip-MDL-61522-master' of git://github.com/marinaglancy/moodle 2018-04-04 00:45:37 +02:00
Eloy Lafuente (stronk7) 3f278e7803 Merge branch 'MDL-61525-master' of https://github.com/HuongNV13/moodle 2018-04-04 00:41:49 +02:00
Eloy Lafuente (stronk7) f287b7efbb Merge branch 'MDL-61665-master' of https://github.com/iamandrew/moodle 2018-04-04 00:39:10 +02:00
Eloy Lafuente (stronk7) f9ee170a9b Merge branch 'MDL-61703-master' of git://github.com/andrewnicols/moodle 2018-04-04 00:31:11 +02:00
Eloy Lafuente (stronk7) dfbcdb3ec2 Merge branch 'MDL-61751-master' of git://github.com/andrewnicols/moodle 2018-04-04 00:23:44 +02:00
Eloy Lafuente (stronk7) eed3d30194 Merge branch 'MDL-61781-master' of https://github.com/lucaboesch/moodle 2018-04-03 23:46:08 +02:00
Eloy Lafuente (stronk7) 5b123ab8d3 Merge branch 'MDL-61724-master' of git://github.com/mihailges/moodle 2018-04-03 23:38:59 +02:00
Eloy Lafuente (stronk7) 1619d36e99 Merge branch 'MDL-60115-Book-cancel-button-redirect-bug-master' of https://github.com/Moodlers/moodle-1 2018-04-03 21:45:49 +02:00
Farhan Karmali ebaf979c94 MDL-60811 enrol_self: Add bulk action for self enrollment on users page 2018-04-03 19:29:44 +05:30
Marcus Fabriczy e86cbd49bb MDL-60196 core_course: Fix the display of custom LTI icons
Custom LTI icons attached to LTI tools did not display - a regression
caused by MDL-55796.

Change-Id: I02c5d9ff4738657100d020e406d391a449f7588b
2018-04-03 20:36:44 +09:30
Jake Dallimore 73582bd26e Merge branch 'eugene-auth-email-wantsurl' of https://github.com/bynare/moodle-fixes 2018-04-03 18:40:52 +08:00
Jake Dallimore f16b871fe2 Merge branch 'wip-MDL-61815-master' of git://github.com/abgreeve/moodle 2018-04-03 17:53:13 +08:00
Jake Dallimore 166a9cec54 Merge branch 'wip-MDL-61127-master' of git://github.com/abgreeve/moodle 2018-04-03 17:34:03 +08:00
Juan Leyva 73d85fee4f MDL-60774 tool_mobile: Support for new site add-ons properties 2018-04-03 09:58:01 +01:00
Jun Pataleta 5a0dd0e50d Merge branch 'MDL-58411-master' of https://github.com/lucaboesch/moodle 2018-04-03 16:44:43 +08:00
Adrian Greeve dcf4254179 MDL-61127 filepicker: Selected repository now highlighted. 2018-04-03 16:25:41 +08:00
Adrian Greeve 5aeadf0b7b MDL-61127 filepicker: Added aria-selected attribute to repos.
The repository list in the file picker now as aria-selected
added to denote which repository is selected.
2018-04-03 16:25:40 +08:00
Andrew Nicols e9b779f143 Merge branch 'wip-MDL-61629-master' of git://github.com/abgreeve/moodle 2018-04-03 15:58:26 +08:00
Adrian Greeve 7820177f20 MDL-61629 message_airnotifier: Add privacy files and unit tests. 2018-04-03 15:33:31 +08:00
Andrew Nicols c464c08a52 MDL-61256 core_search: Coding style fixes 2018-04-03 14:36:15 +08:00
Andrew Nicols a9710e9d94 Merge branch 'MDL-61256-master' of https://github.com/sammarshallou/moodle 2018-04-03 14:23:54 +08:00
Andrew Nicols c835d2c8a8 Merge branch 'MDL-61020-master' of git://github.com/rezaies/moodle 2018-04-03 13:58:03 +08:00
Luca Bösch 94cb5a662a MDL-58411 qtype_essay: Add file type validation in essay question type 2018-04-03 07:27:56 +02:00
Simey Lameze 1399c7e350 MDL-61435 core_tag: improve get_tags_by_area_in_contexts performance 2018-04-03 12:55:40 +08:00
Adrian Greeve 0f6fb93653 MDL-61815 core_privacy: Fix for metadata types and new method.
Minor fix for subsystem_link and plugintype_link.
Addition of get_null_provider_reason in the manager class.
2018-04-03 12:05:18 +08:00
Eloy Lafuente (stronk7) f6873c2e31 Merge branch 'MDL-61766-master' of git://github.com/junpataleta/moodle 2018-04-03 01:18:20 +02:00
Eloy Lafuente (stronk7) 5db00dc3c9 Merge branch 'MDL-61689-master' of git://github.com/andrewnicols/moodle 2018-04-03 01:16:27 +02:00
Eloy Lafuente (stronk7) 0f25080367 MDL-61223 course: keep some tests using old values (January 1st 1970) 2018-04-02 21:55:08 +02:00
Guillermo Alvarez 8669d43a96 MDL-61673 calendar: Replace wrong string on mustache template 2018-04-02 10:32:07 -05:00
Eloy Lafuente (stronk7) 2c28cadac1 MDL-61223 course: amend test setup to keep passing and covering case 2018-04-02 12:00:54 +02:00
Eloy Lafuente (stronk7) 7d4c1953d9 Merge branch 'MDL-61223-master' of git://github.com/andrewnicols/moodle 2018-04-02 11:53:10 +02:00
Eloy Lafuente (stronk7) 64a14f15bc Merge branch 'MDL-61801-master' of git://github.com/andrewnicols/moodle 2018-04-02 11:04:49 +02:00
Andrew Nicols 1d055d806b MDL-61817 tinymce: Add privacy implementation for all plugins
None of the TinyMCE plugins have any user preference or database table.
They all implement the null provider.
2018-04-02 13:50:48 +08:00
Andrew Nicols 658f84ab0c MDL-61818 antivirus: Implement core_privacy API 2018-04-02 13:47:17 +08:00
Michael Brown 37fdff573b MDL-60115 mod_book: Book Resource Cancel Button Redirect Bug
When the user creates a book but adds no chapters, hitting cancel on
 the chapter creation page would redirect you right back to the same
 page with no explanation. This solution redirects to the course page
 when canceling chapter creation when no chapters are present.
2018-04-02 04:01:34 +00:00
Huong Nguyen c9e3070465 MDL-61525 Groups: Index page error on first time visit 2018-04-01 23:02:56 +07:00
Andrew Nicols 6fb1fd3183 MDL-61751 core_privacy: Correct test return 2018-04-01 13:34:44 +08:00
Jake Dallimore 605528e979 MDL-61751 core_plagiarism: add polyfill for plagiarism provider 2018-04-01 13:34:44 +08:00
Andrew Nicols 1690a76e62 Merge branch 'MDL-61574-master' of git://github.com/tallthom/moodle 2018-04-01 11:49:17 +08:00
Thom Rawson 6fb64a4ec0 MDL-61574 mod_lti: removed usage of PHP7 reserved word in namespace 2018-04-01 12:39:54 +09:00
AMOS bot c9fc116b1d Automatically generated installer lang files 2018-03-31 00:07:01 +00:00
sam marshall 9a53cdb0fc MDL-61076 core_search: Require confirmation for search areas actions
The search areas screen contains several options which are potentially
risky for a live site but can be triggered by accidentally clicking a
single button or link.

This change adds a confirmation prompt for all these options.

The enable/disable search area icon does not have a confirmation
prompt because this is nondestructive (you can just click the icon
again to change it back).
2018-03-29 17:41:01 +01:00
sam marshall 40aa5fe9ab MDL-61256 core_search: Support search of section titles, summaries 2018-03-29 17:38:36 +01:00
Andrew Nicols 214b9e89d6 MDL-61801 core_privacy: Correct bug in unit test provider 2018-03-29 22:36:06 +08:00
Jun Pataleta a2e7a47a6e MDL-61766 xmldb: Handle custom admin path 2018-03-29 18:29:32 +08:00
Luca Bösch adb21080a3 MDL-61502 questions: add filter tests to gapselect question type. 2018-03-29 12:13:27 +02:00
Luca Bösch 8274c72ca1 MDL-61781 installation: docs link should have https. 2018-03-29 12:12:50 +02:00
Andrew Nicols 3fb9ad0ea7 MDL-61703 privacy: Allow writing of user preferences at any context 2018-03-29 15:28:13 +08:00
Jun Pataleta 39fab18e27 weekly release 3.5dev 2018-03-29 12:55:38 +08:00
Jun Pataleta 358ac4d476 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-03-29 12:55:37 +08:00
Andrew Nicols 9cd8f95a74 Merge branch 'MDL-53226-master-fix' of git://github.com/junpataleta/moodle 2018-03-29 12:40:39 +08:00
Jun Pataleta bc178fa038 MDL-53226 search_simpledb: Fix table name in query 2018-03-29 12:38:06 +08:00
Marina Glancy c8d5e54cd1 MDL-61163 mod_wiki: guests should be able to view frontpage modules
When wiki is added to the frontpage and the guest role has capability to view
wiki, users should not be required to log in.
2018-03-29 11:11:48 +08:00
Marina Glancy c6956595f7 MDL-61163 mod_wiki: add default view capability to frontpage
It is inconsistent that guests are allowed to view frontpage wiki but once user is logged in they
loose this capability
2018-03-29 11:11:48 +08:00
Marina Glancy 3a93df8b9a MDL-61163 mod_wiki: correct capability check in modinfo
Wiki defines capability mod/wiki:viewpage instead of standard mod/wiki:view . This means that people
who do not have capability to view wiki still see it in the modules list.

Also corrected unittest that was testing situation when student has capability to create pages
but does not have capability to view pages. Such student should not see wiki module at all.
2018-03-29 11:11:45 +08:00
Eloy Lafuente (stronk7) 83c64f78c0 Merge branch 'MDL-36941_master-fix' of git://github.com/markn86/moodle 2018-03-28 18:42:18 +02:00
Mark Nelson 7489e4d5b9 MDL-36941 message_popup: do not remove message_popup table
This is a partial revert of commit 123631ad47.

Most of the logic was NOT reverted, just the part deleting the table was.

Note - this fix was done on integration.git and as a result no
upgrade step was added to re-introduce the table, sorry! This
means for those on integration.git you will have to re-install
your Moodle site so the 'message_popup' table is present.

Please see tracker for comments as to why we need to keep it! :)
2018-03-28 18:16:46 +02:00
Jake Dallimore 78c03392d4 Merge branch 'MDL-61770-master' of git://github.com/andrewnicols/moodle 2018-03-28 18:16:43 +02:00
Andrew Nicols e8b3c3e178 Merge branch 'MDL-61364-master' of git://github.com/lameze/moodle 2018-03-28 18:16:40 +02:00
Andrew Nicols bddf012b7c Merge branch 'MDL-61364-master' of git://github.com/lameze/moodle 2018-03-28 18:16:37 +02:00
Ngo Nghia 5a8d683fb2 MDL-25617 backup: backup/restore using extra_question_fields 2018-03-28 18:16:34 +02:00
Eloy Lafuente (stronk7) 54b5941501 Merge branch 'MDL-39060-master' of git://github.com/zig-moodle/moodle 2018-03-28 18:16:31 +02:00
Eloy Lafuente (stronk7) 55bfb8ab5f Merge branch 'wip-MDL-51362-master' of git://github.com/marinaglancy/moodle 2018-03-28 18:16:28 +02:00
Eloy Lafuente (stronk7) c7189fb2bb MDL-60736 tool_mobile: Add missing VALUE_OPTIONAL to new returned info 2018-03-28 18:16:25 +02:00
Eloy Lafuente (stronk7) 6aaf27af91 Merge branch 'MDL-60736-master' of git://github.com/jleyva/moodle 2018-03-28 18:16:22 +02:00
Eloy Lafuente (stronk7) 67eb557286 Merge branch 'MDL-61321-master' of git://github.com/jleyva/moodle 2018-03-28 18:16:19 +02:00
Eloy Lafuente (stronk7) 4b96d7ce05 Merge branch 'MDL-61718-master' of git://github.com/junpataleta/moodle 2018-03-28 18:16:15 +02:00
Jun Pataleta 51c6cfb69a Merge branch 'MDL-60762-master' of git://github.com/junpataleta/moodle 2018-03-28 18:16:12 +02:00
Jun Pataleta 99feb82ab5 Merge branch 'wip-MDL-61328-master' of git://github.com/marinaglancy/moodle 2018-03-28 18:16:09 +02:00
Jun Pataleta 4683e5ff11 Merge branch 'MDL-61257-master' of git://github.com/mihailges/moodle 2018-03-28 18:16:06 +02:00
Jun Pataleta d6ccd91832 Merge branch 'MDL-61656' of git://github.com/stronk7/moodle 2018-03-28 18:16:03 +02:00
Eloy Lafuente (stronk7) bdb22af959 Merge branch 'MDL-53226-master' of git://github.com/andrewnicols/moodle 2018-03-28 18:15:52 +02:00
Eloy Lafuente (stronk7) c3f771aeba Merge branch 'MDL-61248' of https://github.com/ak4t0sh/moodle 2018-03-28 18:12:52 +02:00
Eloy Lafuente (stronk7) a8336b03a0 Merge branch 'MDL-61576-master' of git://github.com/cescobedo/moodle 2018-03-28 18:12:48 +02:00
Eloy Lafuente (stronk7) 0b9162bd05 Merge branch 'MDL-61691-master' of https://github.com/snake/moodle 2018-03-28 18:12:45 +02:00
Andrew Nicols 306a0bafed Merge branch 'MDL-55532-master' of git://github.com/lameze/moodle 2018-03-28 18:12:42 +02:00
Andrew Nicols 56f5e21f6e Merge branch 'MDL-61733-master' of https://github.com/MartinGauk/moodle 2018-03-28 18:12:39 +02:00
Andrew Nicols 0b4e4ca48f Merge branch 'MDL-60119-master' of https://github.com/lucaboesch/moodle 2018-03-28 18:12:36 +02:00
Andrew Nicols 215cd2d854 MDL-61770 iplookup: Check types rather than values 2018-03-28 10:54:10 +08:00
Shamim Rezaie 348db7048e MDL-61020 media_videojs: Fix RTL display issues 2018-03-28 13:37:26 +11:00
Simey Lameze 02b1868c32 MDL-61364 core: fix cibot coding issues 2018-03-28 10:18:33 +08:00
Simey Lameze 15cd009097 MDL-61364 core_question: tests for question_has_capability_on exception 2018-03-28 08:54:11 +08:00
Andrew Nicols ca18d567d7 MDL-61364 question: Add unit tests for question_has_capability_on 2018-03-28 08:54:11 +08:00
Simey Lameze 13e2b19838 MDL-61364 core: remove param from question_has_capability_on calls 2018-03-28 08:53:41 +08:00
Rohith 0ef25faa73 MDL-61746 PARAM_CLEANHTML: Fix documentation typos 2018-03-27 23:40:11 +05:30
Simey Lameze 2cf7bde8e9 MDL-61364 question: adjust code and fix phpunit errors 2018-03-27 16:14:46 +08:00
Simey Lameze e7329cd026 MDL-61364 question: refactor question_has_capability_on 2018-03-27 16:14:44 +08:00
Adam Pawełczak 7ccb6bb3cc MDL-60762 tool_usertours: Respect $CFG->admin in manager.php 2018-03-27 15:18:03 +08:00
dinhloc f4695ec722 MDL-61033 quiz: Editing a quiz while a preview is open
Editing a quiz while a preview is open in another browser tab can leads to a cryptic error that is hard to recover from
2018-03-27 10:47:32 +07:00
David Monllao add8d846d9 MDL-53226 search_simpledb: Remove unnecessary object clone 2018-03-27 09:37:20 +08:00
Kathrin Osswald ea91e4f97d MDL-61343 theme Boost: Harmonise the structure of flat navigation. 2018-03-26 09:46:56 +02:00
Jake Dallimore e315e84cf2 MDL-61691 core_plagiarism: fix namespace in privacy provider interface 2018-03-26 12:28:58 +08:00
Mihail Geshoski e91bc73f87 MDL-61257 reports: Report logs link to unavailable completion report 2018-03-26 12:22:00 +08:00
Nick Phillips 7d4f34cb0d MDL-55532 gradebook: fix grade export to include category names 2018-03-26 11:47:44 +08:00
Ryan Wyllie c53beb73e5 MDL-61364 question: unit tests for submit_tags_form 2018-03-26 11:27:47 +08:00
Simey Lameze e6890b1164 MDL-61364 question: add support for course tags on modal 2018-03-26 11:24:50 +08:00
Mihail Geshoski d609207c3e MDL-61724 resource: Unable to view or download file resource 2018-03-26 11:14:46 +08:00
Marina Glancy 1f0157e137 MDL-61328 tool_usertours: do not fix tour sortorder after step editing
otherwise it breaks when we try to modify the step sortorder
2018-03-26 09:52:14 +08:00
Shamim Rezaie 7c33ba471f MDL-61464 Questions: Add unit test for question tags backup and restore 2018-03-26 12:28:08 +11:00
Zig Tan ff70e84941 MDL-39060 backup: fix typo backup destroy() function 2018-03-26 09:25:55 +08:00
AMOS bot 9ef1dce6b9 Automatically generated installer lang files 2018-03-25 00:06:10 +00:00
David Mudrák 47ea60fd3e MDL-61741 enrol_paypal: Prevent some edge-case false errors
While testing the plugin in various scenarios, I've noticed that there
are two situations which the current code does not handle quite well:

* Detecting for existing txn_id record was likely to throw "found more
  than one record" debugging message. Fixed by explicitly ignoring
  multiple records.
* The incoming IPN verification message does not always contain the
  recipient's email in the "business" field. When a payment has to be
  claimed manually at PayPal (e.g. as a result of currencies mismatch
  and other settings), the email is coming only in the "receiver_email"
  field. This led to PHP notice and caused the script to fail falsely.
2018-03-23 19:50:26 +01:00
David Mudrák a38da470af MDL-61741 enrol_paypal: Fix the IPN verification endpoint URL
IPN protocol spec has different URL for sending the verification
request. Better to have it fixed even if the existing value still
seems to work - to avoid unexpected surprise in the future.

Source: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNImplementation/#specs
2018-03-23 19:16:30 +01:00
Arnaud Trouvé a15e507366 MDL-61248 admin: fix incorrectly initialized property 2018-03-23 16:25:36 +01:00
willem fa979cd4e1 MDL-61708 mod_lti: use fullnamedisplay to pass lis_person_name_full
Students 'firstname lastname' was passed to LTI Provider as 
lis_person_name_full. Now changed to use fullnamedisplay.
2018-03-23 13:07:36 +01:00
Martin Gauk db3da830c1 MDL-61733 atto_table: fix creating new table
If Atto is embedded in an HTML table (e.g. in the database activity
on the template pages), you could not create a new table.
2018-03-23 09:08:39 +00:00
Jun Pataleta d5458014b3 MDL-36941 core: Remove default for convhash field in upgrade.php 2018-03-23 14:14:49 +08:00
Jun Pataleta ba926805e2 Merge branch 'MDL-36941_master' of git://github.com/markn86/moodle 2018-03-23 12:55:49 +08:00
Mark Nelson 5aac33c785 MDL-36941 core_message: dont query DB unnecessarily checking read status 2018-03-23 12:30:31 +08:00
Mark Nelson 99248f6177 MDL-36941 core_message: fixed minor CiBoT complaints 2018-03-23 12:30:31 +08:00
Mark Nelson e159b53b5b MDL-36941 core_message: improved performance of helper::get_messages()
Improved the query to use the 'convhash' field as well as adding an index.

Also fixed issue where 'timeread' was hardcoded as 0.
2018-03-23 12:30:30 +08:00
Mark Nelson d0d1e97ab6 MDL-36941 core_message: added details to upgrade.txt 2018-03-23 12:30:30 +08:00
Mark Nelson 2ccbb8ed62 MDL-36941 core: added index to 'message_user_actions' table 2018-03-23 12:30:30 +08:00
Mark Nelson 74ad60bfbe MDL-36941 core_message: deprecated 'api::mark_all_read_for_user' 2018-03-23 12:30:30 +08:00
Mark Nelson 0d657cc9b7 MDL-36941 core: removed 'message_working' table 2018-03-23 12:30:29 +08:00
Mark Nelson 123631ad47 MDL-36941 message_popup: removed 'message_popup' table 2018-03-23 12:30:29 +08:00
Mark Nelson b2cd17e6a9 MDL-36941 core: added 'convhash' field to quickly get conversations 2018-03-23 12:30:28 +08:00
Mark Nelson 0d51ae7ef3 MDL-36941 core: final deprecation of functions
This was done earlier than the usual deprecation
process since we have changed the table structure.
It would take time to change the logic in these
functions, but as they have been deprecated for
some time it was decided to forego this effort.
2018-03-23 12:30:28 +08:00
Mark Nelson 3f3e453632 MDL-36941 message_popup: use new WS for marking notifications as read
Also changed the observer to listen for the notification_viewed event,
rather than the message_viewed event.
2018-03-23 12:30:28 +08:00
Mark Nelson 2b595d96f4 MDL-36941 core: added new mark notification as read webservice 2018-03-23 12:30:28 +08:00
Mark Nelson 376a79c242 MDL-36941 core: added events for notifications 2018-03-23 12:30:27 +08:00
Mark Nelson 548936a6c9 MDL-36941 core_message: mark notification/messages takes stdClass
This avoid unnecessary DB calls.
2018-03-23 12:30:27 +08:00
Mark Nelson 883ce42127 MDL-36941 core: convert existing api to use new table structure
Also deprecated the following functions -

1. message_move_userfrom_unread2read - It is not necessary
   for us to mark a message as read on user deletion.
2. message_get_blocked_users - Horrible logic used to
   determine if a user is blocked via reference on some
   randomly chosen 'isblocked' variable.
3. message_get_contacts - The same as above. This can be
   done in a much nicer way.
4. message_mark_message_read - We want two functions to do
   this to avoid confusing messages and notifications.
5. message_can_delete_message - This assumed the variable
   $message contained the 'useridto' property, which
   was present in the old table structure. We do not want
   future usages where a query is done on the new table
   and is simply passed as this won't contain this property.
6. message_delete_message - Same as above.
2018-03-23 12:30:27 +08:00
Shamim Rezaie 70ec79f1ba MDL-61464 Backup: Restore question tags into the correct context 2018-03-23 14:19:19 +11:00
Shamim Rezaie 06d7352a0a MDL-61464 Backup: Include contextid for questuin tags 2018-03-23 14:19:19 +11:00
Shamim Rezaie 6bbb7ed570 MDL-61464 Questions: Improved top level category handling in restore
Use question_get_top_category() instead of directly inserting into DB when
parent category is 0. This is to make sure we are not ending up with having
multiple top level question categories for a single context.
2018-03-23 14:19:19 +11:00
Mark Nelson 4cd439887a MDL-36941 core: alter events to use new table structure 2018-03-23 09:27:57 +08:00
Mark Nelson ee14412e21 MDL-36941 core_message: removed unit test that will always fail
We are changing how the API behaves so the old tables will never
be populated. This unit test is testing a deprecated function
which we will not be refactoring to use the new table structure.
2018-03-23 09:27:57 +08:00
Mark Nelson a63f98245c MDL-36941 core: added new messaging and notification tables 2018-03-23 09:27:56 +08:00
Luca Bösch efdf25636a MDL-60119 mod_feedback: Suppress choice weight in parentheses. 2018-03-22 23:52:36 +01:00
Eloy Lafuente (stronk7) a15c745936 weekly release 3.5dev 2018-03-22 16:57:05 +01:00
Eloy Lafuente (stronk7) eae3d88bc9 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-03-22 16:57:02 +01:00
cescobedo adbf7c5a43 MDL-61576 mod_lti: remove allowinstructorcustom in lib/locallib.php 2018-03-22 09:59:30 +01:00
Ankit Agarwal 222595b1f0 MDL-51362 libraries: Remove deprecated admin tool unittest 2018-03-22 15:47:35 +08:00
Jun Pataleta a20a2ac704 MDL-61718 admin: Make sure city and country columns are not duplicated
* Since City/town and Country have been added in $CFG->showuseridentity
since 3.4, we need to exclude the required city and country columns
when fetching the extra columns using get_extra_user_fields().
2018-03-22 13:52:39 +08:00
Jun Pataleta fa54a1a7e2 Merge branch 'MDL-61678' of git://github.com/stronk7/moodle 2018-03-22 12:33:24 +08:00
Jake Dallimore a44987a081 Merge branch 'MDL-58179-master-fix' of https://github.com/andrewnicols/moodle 2018-03-22 12:05:29 +08:00
Andrew Nicols 195480e9d7 MDL-58179 mod_lesson: Add missing : in labels 2018-03-22 11:59:52 +08:00
Andrew Nicols 532ecef010 Merge branch 'MDL-61530-master' of git://github.com/andrewnicols/moodle 2018-03-22 11:49:09 +08:00
Renaat Debleu e44e67d725 MDL-61530 mod_glossary: import_entries.feature needs @_file_upload tag 2018-03-22 11:44:36 +08:00
Jun Pataleta a9d98d5029 Merge branch 'MDL-52989-master' of git://github.com/junpataleta/moodle 2018-03-22 11:29:56 +08:00
Jun Pataleta 9ce10f2f2f MDL-52989 mod_lesson: Fix typo in feature description 2018-03-22 11:27:24 +08:00
Jun Pataleta edf88a3bb3 Merge branch 'MDL-61514-master' of git://github.com/rezaies/moodle 2018-03-22 10:52:53 +08:00
Shamim Rezaie 3b5ae9777d MDL-61514 Quiz: Fix restore error
Include mod/quiz/locallib.php to fix the restore error.
2018-03-22 09:57:35 +11:00
Eloy Lafuente (stronk7) 820a91def3 Merge branch 'MDL-61658-master-allcountrycodes' of git://github.com/mudrd8mz/moodle 2018-03-21 19:36:36 +01:00
David Mudrák 0c98acefc1 MDL-61658 user: Fix displaying of user's country name
In these cases we want to use the method get_list_of_countries() to
obtain translated names of all potential country codes. The country code
is already there in the database. So it does not matter if the country
is among those whitelisted in $CFG->allcountrycodes - we want to see its
name anyway.
2018-03-21 18:17:47 +01:00
David Mudrák 60e213470d MDL-61658 user: Fix parsing of the agedigitalconsentmap setting
When parsing and validating the value of the Digital age of consent
(agedigitalconsentmap) field, we want to load all country codes. Not
just the ones whitelisted for drop down menus that users can choose
from.
2018-03-21 18:17:47 +01:00
Juan Leyva bb14a48851 MDL-60736 tool_mobile: Support session lang in WS 2018-03-21 17:27:33 +01:00
Juan Leyva e236259d97 MDL-60736 tool_mobile: Return language settings in get_public_config WS 2018-03-21 17:27:29 +01:00
Eloy Lafuente (stronk7) f6bafa922c MDL-61410 question: Check we have tags to set to avoid notices 2018-03-21 14:55:39 +01:00
Jake Dallimore 9a2bf09d19 Merge branch 'MDL-59434-master' of https://github.com/sammarshallou/moodle 2018-03-21 10:00:47 +08:00
Andrew Nicols 618b223302 Merge branch 'MDL-61519-master' of https://github.com/andrewnicols/moodle 2018-03-21 09:09:03 +08:00
Andrew Nicols b30b66c57e MDL-61519 coursecat: Reset the coursecat cache on enrolment 2018-03-21 09:06:51 +08:00
Andrew Nicols c06c1a4428 Merge branch 'MDL-61519-master' of https://github.com/MartinGauk/moodle 2018-03-21 08:14:41 +08:00
AMOS bot fd6078b7eb Automatically generated installer lang files 2018-03-21 00:05:59 +00:00
Eloy Lafuente (stronk7) bb0ca2c4a3 Merge branch 'MDL-61605' of https://github.com/timhunt/moodle 2018-03-21 00:24:46 +01:00
Eloy Lafuente (stronk7) 4dca6ab54d Merge branch 'MDL-61589-master' of git://github.com/rezaies/moodle 2018-03-21 00:21:24 +01:00
Eloy Lafuente (stronk7) 9a79102a4c Merge branch 'MDL-61410-master' of git://github.com/lameze/moodle 2018-03-20 23:53:28 +01:00
David Monllao c2e970779d MDL-53226 search_simpledb: Refine the patch
- Clumsy fallback only when there is no full-text search support
- Mimic solr tests
- pgsql tokenization using simple configuration
- workaround for mysql '*' search issue
- total results proper calculation
- SQL server FTS support
- Standarize dml full-text search checkings
- Upgrade note about the new dml method
- Set search_simpledb as default engine if no solr config
2018-03-20 18:49:38 +01:00
Dan Poltawski b602463f07 MDL-53226 search_simpledb: Use databases full-text search capabilities 2018-03-20 18:33:03 +01:00
David Monllao 2ee2f53021 MDL-53226 search_simpledb: Adding clumsy search 2018-03-20 18:33:03 +01:00
Martin Gauk ef780a0051 MDL-61519 coursecat: do not cache get_all_children_ids 2018-03-20 13:20:04 +00:00
sam marshall fc440796e9 MDL-59434 core_search: Alternate result orders including by context
Implements a mechanism by which search engines can provide different
result orderings, and implements a 'by location' ordering within the
Solr search engine (available whenever the user starts their search
from within a course or activity).
2018-03-20 12:15:25 +00:00
Juan Leyva bc694b4761 MDL-61321 mod_feedback: Return all the items responses
The WS should receive all the item responses for all the attempts.
2018-03-20 10:36:11 +01:00
Andrew Davidson e503ec17c0 MDL-61665 calendar: Added missing complete layout call for calendar page 2018-03-20 09:29:11 +00:00
Eloy Lafuente (stronk7) f61c5f8a95 Merge branch 'MDL-61615-master' of git://github.com/rezaies/moodle 2018-03-20 10:20:11 +01:00
Shamim Rezaie ae9f5a04b1 MDL-61615 Questions: Only move question categories if there is any 2018-03-20 17:30:21 +11:00
Andrew Nicols 2624bb10e2 Merge branch 'master_MDL-58080' of https://github.com/danmarsden/moodle 2018-03-20 14:08:16 +08:00
Andrew Nicols 3f6ede91aa Merge branch 'MDL-61519-master' of https://github.com/MartinGauk/moodle 2018-03-20 13:53:36 +08:00
Andrew Nicols f78a8a52a5 Merge branch 'MDL-58179-master' of https://github.com/lucaboesch/moodle 2018-03-20 13:38:59 +08:00
Eloy Lafuente (stronk7) b7614ab114 Merge branch 'MDL-61597-master' of git://github.com/andrewnicols/moodle 2018-03-20 02:25:11 +01:00
Andrew Nicols 33dca94573 MDL-61689 phpunit: Be stricter about output during unit tests
This change also add fail-on-risky to travis to help pick these up, and
verbosity too.

We only fail on risky during Travis and not during normal output because
developers may want to debug tests.
2018-03-20 08:30:42 +08:00
AMOS bot 4f7bacba82 Automatically generated installer lang files 2018-03-20 00:05:59 +00:00
AMOS bot bef37b42dc Automatically generated installer lang files 2018-03-20 00:05:58 +00:00
Eloy Lafuente (stronk7) b2d941c16f Merge branch 'MDL-61529-master' of https://github.com/bmbrands/moodle 2018-03-20 00:27:48 +01:00
Luca Bösch d6076942e3 MDL-58179 lesson: Avoid using span with class "label" 2018-03-19 21:13:11 +01:00
Eloy Lafuente (stronk7) 0fe1ed29d9 Merge branch 'MDL-61615-master' of git://github.com/rezaies/moodle 2018-03-19 11:21:48 +01:00
Simey Lameze bbd655b4a8 MDL-61410 question: merge course and question tags 2018-03-19 11:45:55 +08:00
Simey Lameze 1796eb181b MDL-61410 question: fix unit tests failures 2018-03-19 11:45:55 +08:00
Simey Lameze 13596866e7 MDL-61410 question: support course tags on import 2018-03-19 11:45:55 +08:00
Simey Lameze 2ee6e02e21 MDL-61410 question: unit tests for question_sort_tags 2018-03-19 11:45:55 +08:00
Simey Lameze 3bf5fcf277 MDL-61410 question: change logic on xml format 2018-03-19 11:45:55 +08:00
Simey Lameze 6307622b28 MDL-61410 question: move tag sorting logic to a new function 2018-03-19 11:45:55 +08:00
Simey Lameze 3a7005c964 MDL-61410 question: support course tags on export 2018-03-19 11:45:55 +08:00
Andrew Nicols 24f5828309 Merge branch 'MDL-61265-master' of git://github.com/sarjona/moodle 2018-03-19 10:51:27 +08:00
Andrew Nicols 89b8efb09b Merge branch 'MDL-58179-master' of https://github.com/lucaboesch/moodle 2018-03-19 10:22:14 +08:00
Andrew Nicols db98868d22 Merge branch 'MDL-61154_master' of git://github.com/dmonllao/moodle 2018-03-19 10:09:29 +08:00
Andrew Nicols d7a6e531ee Merge branch 'MDL-61514-master' of git://github.com/rezaies/moodle 2018-03-19 09:01:19 +08:00
Eloy Lafuente (stronk7) 20f808165b MDL-61678 phpunit: Bump to current / latest 6.5.x before major release 2018-03-18 23:40:02 +01:00
Tim Hunt d9b80a5e69 MDL-61605 quiz report: add missing index/key
Thanks to Patryk Szuta for the suggestion
2018-03-18 20:40:43 +00:00
Martin Gauk c4172077df MDL-61519 calendar: do not iterate through all categories
Replace calls to \coursecat::get_all() or cache the results.
2018-03-16 14:30:55 +00:00
Luca Bösch 2ffd2afdba MDL-52989 mod_lesson: Fix cluster_jump returning a cluster page id. 2018-03-16 13:44:44 +01:00
cescobedo 00a7511580 MDL-61451 message_area: core/auto_rows remove set height to 1px 2018-03-16 13:06:02 +01:00
Sara Arjona 9390fc5829 MDL-61265 enrol: Add default numsections for external db 2018-03-16 11:32:09 +01:00
Bas Brands c8842113a7 MDL-61529 core: update lib scssphp to version 0.7.5 2018-03-16 10:36:40 +01:00
David Monllao 63f2c0c664 MDL-61154 analytics: No escaping for text format url 2018-03-16 09:27:07 +01:00
Luca Bösch ef2b45a977 MDL-58179 lesson: Avoid using span with class "label" 2018-03-16 08:52:21 +01:00
Jake Dallimore b63a3b04b1 weekly release 3.5dev 2018-03-16 10:08:46 +08:00
Eloy Lafuente (stronk7) ed0b6f0da4 MDL-61656 report_security: fix role name 2018-03-16 02:24:59 +01:00
Eloy Lafuente (stronk7) a717d5dc33 Merge branch 'MDL-61570-master' of git://github.com/andrewnicols/moodle 2018-03-16 01:15:16 +01:00
Eloy Lafuente (stronk7) 2b28ed2371 Merge branch 'MDL-61566-master' of git://github.com/andrewnicols/moodle 2018-03-16 00:29:34 +01:00
Eloy Lafuente (stronk7) 7394da46e2 Merge branch 'MDL-61571-master' of git://github.com/andrewnicols/moodle 2018-03-15 23:48:24 +01:00
Jake Dallimore e1a527c0d4 Merge branch 'wip-MDL-61477-master-behat' of https://github.com/marinaglancy/moodle 2018-03-15 16:44:02 +08:00
Marina Glancy c3b548479b MDL-61477 auth_email: behat tests for sign up 2018-03-15 16:23:06 +08:00
Shamim Rezaie c185e4fe21 MDL-61589 Questions: Top question category naming improvement
Display the context name next to the top question category name.
2018-03-15 18:47:25 +11:00
Jake Dallimore 17b284b937 Merge branch 'wip-MDL-61477-master-manager' of git://github.com/marinaglancy/moodle 2018-03-15 11:38:14 +08:00
Marina Glancy acb3b78804 MDL-61477 auth_email: add sitepolicyhandler to the config WS 2018-03-15 11:32:59 +08:00
Marina Glancy 1727c939ba MDL-61477 admin: sitepolicy handler API
- Define sitepolicy handler manager class, base class and the core handler
- Allow to set a plugin as sitepolicyhandler that implements the sitepolicy API
- Modify web services to return information from the 3rd party handler instead of core if needed
2018-03-15 11:32:55 +08:00
David Mudrák 0bdc578567 MDL-61477 admin: Allow plugins to act as alternate policy handlers
The patch introduces a new site setting 'sitepolicyhandler' that can be
either empty or contain a plugin component name. If it is empty, the
site policy feature keeps working as before and the core keeps the
control over it.

If a plugin is specified, it is expected to implement the callback
'site_policy_handler' in its lib.php file. The callback should return a
URL to a script where the user can accept the site policies. The plugin
itself is responsible for setting the 'policyagreed' flag in the users
table. The callback may return an empty value, in which case the user
can continue using the site without being redirected.

The patch adds support for a new pre-config flag NO_SITEPOLICY_CHECK.
This constant should be defined and set to true if we should not check
the user's policyagreed status during the require_login().

This is for pages where the user actually accepts the site policies and
helps to avoid the redirect loop.
2018-03-15 09:31:41 +08:00
Dan Marsden 37ddc231f8 MDL-58080 mod_scorm: add immutable header for scorm content files. 2018-03-15 12:50:38 +13:00
Eloy Lafuente (stronk7) a2fc9a4772 Merge branch 'MDL-61600-master' of git://github.com/dpalou/moodle 2018-03-14 14:43:25 +01:00
Eloy Lafuente (stronk7) 30d1b7d1a7 Merge branch 'MDL-61620_master' of git://github.com/dmonllao/moodle 2018-03-14 13:39:17 +01:00
David Monllao 6dca3ddc71 MDL-61620 output: New action_menu options 2018-03-14 11:38:08 +01:00
Eloy Lafuente (stronk7) 37c9154c25 Merge branch 'MDL-61398-master' of git://github.com/andrewnicols/moodle 2018-03-14 11:22:17 +01:00
Eloy Lafuente (stronk7) 4b183d2258 Merge branch 'MDL-61475-master-v3' of git://github.com/snake/moodle 2018-03-14 11:00:57 +01:00
Dani Palou f72ca3ce29 MDL-61600 recaptcha: Create a script to display recaptcha 2018-03-14 10:31:09 +01:00
Eloy Lafuente (stronk7) b244de5612 Merge branch 'MDL-61526-master' of git://github.com/rezaies/moodle 2018-03-14 10:30:51 +01:00
Andrew Nicols aeb144359d Merge branch 'MDL-61465-master-2' of git://github.com/ryanwyllie/moodle 2018-03-14 14:55:34 +08:00
Andrew Nicols 04d6ba8638 Merge branch 'MDL-43362-master' of git://github.com/Kathrin84/moodle 2018-03-14 13:18:14 +08:00
Andrew Nicols d7ff2fc28b Merge branch 'MDL-60398-master' of git://github.com/mihailges/moodle 2018-03-14 10:33:03 +08:00
Jake Dallimore 4ba1a7a1e6 Merge branch 'MDL-61307-master' of git://github.com/andrewnicols/moodle 2018-03-14 09:41:00 +08:00
Jake Dallimore a57960ee11 MDL-61475 mod_choice: perf improvement when exporting personal data
Instead of creating an array containing all record information and then
writing, we know write periodically during the recordset iteration, thus
alleviating any memory concerns associated with the array approach.
2018-03-14 09:36:03 +08:00
Jake Dallimore f1c1db434a MDL-61475 mod_choice: Update core_privacy implementation 2018-03-14 09:36:03 +08:00
Jun Pataleta 138816b1b1 MDL-61475 mod_choice: Add implementation of Privacy API 2018-03-14 09:36:03 +08:00
Andrew Nicols 5731a92aa7 MDL-61398 block_html: Implement privacy API 2018-03-14 09:33:16 +08:00
Andrew Nicols 90cac7c049 MDL-61307 core_privacy: Add unit test to check installed providers 2018-03-14 09:31:30 +08:00
David Mudrák d12cdcbd7d MDL-61392 enrol_paypal: Improve IPN input parameters checking 2018-03-14 08:53:44 +08:00
David Mudrák 39a5fbeb01 MDL-61392 enrol_paypal: Improve the IPN notifications handling
* Notify administrators once incoming IPN request is verified by PayPal.
* Fix the HTTP status as expected by the IPN protocol.
2018-03-14 08:53:44 +08:00
Eloy Lafuente (stronk7) dd9f60ee49 Merge branch 'MDL-61625_master' of git://github.com/dmonllao/moodle 2018-03-14 01:00:13 +01:00
Eloy Lafuente (stronk7) 0f5e1baf4c Merge branch 'MDL-61584' of git://github.com/jrchamp/moodle 2018-03-14 00:46:09 +01:00
David Mudrák 6cc9dce202 MDL-60101 auth_oauth2: Don't allow suspended users to SSO in via OAuth2
Without this patch, users could still log in as a suspended account via
OAuth2 SSO feature.
2018-03-13 10:14:00 +01:00
Jake Dallimore dfeeed062a Merge branch 'm35_MDL-61626_PgSQL_Table_Name_Could_Be_Schema_Qualified' of https://github.com/scara/moodle 2018-03-13 15:37:19 +08:00
Shamim Rezaie bd94e16e95 MDL-61615 Questions: Fix multiple top cats when deleting a course cat
Prevent having multiple top question categories when deleting a course category.
This commit also fix the problem of question files' contexts not being updated when moving them.
2018-03-13 18:31:01 +11:00
Shamim Rezaie 15f80bf579 MDL-61615 Questions: unit test for question_delete_course_category 2018-03-13 18:30:51 +11:00
Andrew Nicols 3452ea4265 Merge branch 'MDL-60828-master' of git://github.com/sarjona/moodle 2018-03-13 14:18:59 +08:00
Ryan Wyllie ad54e6353a MDL-61465 question: add editing context to tag condition 2018-03-13 14:04:58 +08:00
Andrew Nicols fe294b00ac Merge branch 'MDL-59070-master' of https://github.com/lucaboesch/moodle 2018-03-13 13:21:09 +08:00
Andrew Nicols 0d944ce5b0 Merge branch 'MDL-61397-master' of git://github.com/zig-moodle/moodle 2018-03-13 12:23:57 +08:00
Andrew Nicols 1290576dab Merge branch 'MDL-61567-master' of git://github.com/zig-moodle/moodle 2018-03-13 12:15:21 +08:00
Zig Tan e3644cd5c6 MDL-61567 mod_url: Implement null provider mod_url 2018-03-13 11:02:00 +08:00
Zig Tan f318b80a0f MDL-61567 mod_resource: Implement null provider mod_resource 2018-03-13 11:02:00 +08:00
Zig Tan 121638b23f MDL-61567 mod_page: Implement null provider mod_page 2018-03-13 11:02:00 +08:00
Zig Tan 9da92dc1a9 MDL-61567 mod_label: Implement null provider mod_label 2018-03-13 11:02:00 +08:00
Zig Tan c383366601 MDL-61567 mod_folder: Implement null provider mod_folder 2018-03-13 11:01:59 +08:00
Eloy Lafuente (stronk7) e43977e2d9 Merge branch 'MDL-61307-master' of git://github.com/andrewnicols/moodle 2018-03-13 03:18:09 +01:00
Zig Tan 38a0477575 MDL-61397 blocks: Fix null_provider namespace for blocks 2018-03-13 09:50:58 +08:00
Andrew Nicols 801116a502 MDL-61307 core: Language changes 2018-03-13 09:42:11 +08:00
Eloy Lafuente (stronk7) c3cb1ea063 Merge branch 'MDL-48501-master' of git://github.com/jswebster/moodle 2018-03-13 01:55:41 +01:00
Andrew Nicols e98f0cf7ff MDL-61307 privacy: Rename deletion functions 2018-03-13 08:48:13 +08:00
Andrew Nicols 70f0923499 MDL-61307 core: Remove deletion_criteria 2018-03-13 08:48:12 +08:00
Eloy Lafuente (stronk7) 48a0419a72 Merge branch 'master_MDL-49417' of https://github.com/danmarsden/moodle 2018-03-13 00:55:22 +01:00
Dan Marsden 6b7d74040a MDL-49417 enrol_cohort: fix behat test to use new autocomplete. 2018-03-13 12:37:43 +13:00
Eloy Lafuente (stronk7) dd32aa7876 Merge branch 'wip-MDL-60241-master' of git://github.com/marinaglancy/moodle 2018-03-12 18:28:40 +01:00
Eloy Lafuente (stronk7) 8b4bbe4b49 Merge branch 'MDL-61397-master' of git://github.com/andrewnicols/moodle 2018-03-12 17:31:04 +01:00
Eloy Lafuente (stronk7) bad062a992 Merge branch 'MDL-61619-master' of https://github.com/snake/moodle 2018-03-12 16:46:29 +01:00
Eloy Lafuente (stronk7) 417ec51bb6 Merge branch 'MDL-61622-master' of git://github.com/jleyva/moodle 2018-03-12 10:56:23 +01:00
Andrew Nicols d300abab0e Merge branch 'MDL-61365-master' of git://github.com/sarjona/moodle 2018-03-12 13:44:17 +08:00
Andrew Nicols 0984abda60 MDL-61566 theme: Add Privacy providers for all core themes 2018-03-12 13:24:46 +08:00
Andrew Nicols 11838c6562 Merge branch 'MDL-61513-master' of git://github.com/junpataleta/moodle 2018-03-12 12:25:59 +08:00
Andrew Nicols aab270d579 Merge branch 'MDL-61498-master' of https://github.com/lucaboesch/moodle 2018-03-12 12:07:33 +08:00
Andrew Nicols b4c23fcb17 Merge branch 'MDL-61261-master' of git://github.com/sarjona/moodle 2018-03-12 11:51:36 +08:00
Jake Dallimore 20e6024581 Merge branch 'master_MDL-49417' of https://github.com/danmarsden/moodle 2018-03-12 11:34:13 +08:00
Shamim Rezaie ae88770b33 MDL-61514 Quiz: unit testing restore 2018-03-12 14:12:54 +11:00
Jake Dallimore 786f1270a5 MDL-61619 core: use empty string instead of null in xmlize 2018-03-12 11:12:00 +08:00
Jake Dallimore 0c23f4e6b6 MDL-61619 phpunit: phpunit test confirming bug in new xmlize code 2018-03-12 11:11:58 +08:00
Shamim Rezaie 33b7941d94 MDL-61514 Quiz: Backward compatibility for backups from 3.4 and earlier 2018-03-12 13:40:21 +11:00
Shamim Rezaie 9859359fbc MDL-61514 Quiz: Include random question's new data in backup and restore 2018-03-12 13:40:20 +11:00
Shamim Rezaie c907987844 MDL-61514 Quiz: Display unavailable tags when editing random questions
When editing a random question, the form will display the tags that the random question
is configured to get questions from even if those tags do not exist anymore.
2018-03-12 13:40:20 +11:00
Shamim Rezaie fb5343a00c MDL-61514 Quiz: unit tests for new functions in mod/quiz/locallib.php
unit testing
 - quiz_build_random_question_tag_json
 - quiz_extract_random_question_tags
 - quiz_extract_random_question_tag_ids
2018-03-12 13:38:12 +11:00
Zig Tan bcc3f1e810 MDL-61397 blocks: Add null_providers for blocks with no user data 2018-03-12 08:42:01 +08:00
Matteo Scaramuccia bccbd3b4eb MDL-61626 core_dml: pgsql and schema qualification. 2018-03-11 22:56:36 +01:00
David Monllao f5bc604de0 MDL-61625 persistent form: Add missing param to the constructor 2018-03-11 22:23:15 +01:00
Shamim Rezaie 76d1f12d15 MDL-61514 Quiz: Add matchbyid arg to quiz_extract_random_question_tags
Let the quiz_extract_random_question_tags and quiz_extract_random_question_tag_ids functions
to decide whether they should use tag id to find tags or not.
2018-03-12 03:05:33 +11:00
Shamim Rezaie 2481a022d0 MDL-61514 Quiz: Make sure tag id is int when being saved as json 2018-03-11 19:07:04 +11:00
Juan Leyva 8d9dc60b43 MDL-61622 auth: Return age verification settings in get_public_config 2018-03-09 17:55:31 +01:00
Juan Leyva 1f7565c121 MDL-61622 auth: New WS is_age_digital_consent_verification_enabled 2018-03-09 17:54:58 +01:00
Kathrin Osswald 9d492637ec MDL-43362 outputrenderers: Add bootstrap classes to errorbox. 2018-03-09 11:29:44 +01:00
Sara Arjona bb4a79234b MDL-60828 user: Reset current page when filtering/searching users
Added baseurl parameter to core_user\output\unified_filter to let specify
different URL, instead of using always $PAGE->url.
2018-03-09 08:30:24 +01:00
Jake Dallimore 703fca7540 Merge branch 'MDL-61307-master' of git://github.com/andrewnicols/moodle 2018-03-09 13:36:01 +08:00
Andrew Nicols 48c091e510 MDL-61597 calendartype: Implement the privacy API 2018-03-09 13:27:34 +08:00
Andrew Nicols 0d7ab3f692 MDL-61571 atto: Implement null provider for atto plugins 2018-03-09 13:03:32 +08:00
Andrew Nicols d3c607178b MDL-61570 tool_usertours: Implement Privacy API 2018-03-09 12:55:44 +08:00
Andrew Nicols a235a6e02d MDL-61307 core_plagiarism: Add implementation of Privacy API 2018-03-09 12:24:38 +08:00
Adrian Greeve 5be028ab82 MDL-61307 core_comment: Add implementation of privacy API 2018-03-09 12:24:38 +08:00
Andrew Nicols cbc6325253 MDL-61307 core_rating: Add implementation of Privacy API 2018-03-09 12:24:38 +08:00
Zig Tan e4f6c0c29a MDL-61307 core_tag: Unit tests for privacy implementation 2018-03-09 12:24:38 +08:00
Andrew Nicols bd9139463d MDL-61307 core_tag: Add implementation of privacy API 2018-03-09 12:24:37 +08:00
Andrew Nicols d49f9f280d MDL-61307 core_privacy: Implementation of itself 2018-03-09 12:24:37 +08:00
Andrew Nicols 65774d72b1 MDL-61307 core_privacy: Add legacy polyfill for contrib plugins
This legacy polyfill allows plugin developers who release a single
branch to work with multiple versions of Moodle to support the API in
both Moodle 3.3 with PHP 5.6, and later versions.
2018-03-09 12:24:37 +08:00
Jake Dallimore 0f59848d29 MDL-61307 core_privacy: Add the privacy manager 2018-03-09 12:24:37 +08:00
Marina Glancy 51bc030d19 MDL-60241 course: General section always visible (topics, weeks) 2018-03-09 12:06:47 +08:00
Andrew Nicols 81f1e31a51 MDL-61307 core_privacy: Define and test providers 2018-03-09 10:01:18 +08:00
Andrew Nicols 431a3bb674 MDL-61307 core: Add component_class_callback functionality 2018-03-09 10:01:18 +08:00
Andrew Nicols dcc16e155d MDL-61307 core: Define a new privacy component 2018-03-09 09:59:36 +08:00
Jeff Webster 346657acef MDL-48501 auth/email: update external class to use reCAPTCHA v2 2018-03-08 14:48:35 -05:00
Jeff Webster f567f34b92 MDL-48501 mod_feedback: update feedback to use reCAPTCHA v2 2018-03-08 14:48:35 -05:00
Jeff Webster 83fa59a38c MDL-48501 login: update signup_form to use reCAPTCHA v2 2018-03-08 14:48:35 -05:00
Jeff Webster be41e4e518 MDL-48501 form/recaptcha: update to use reCAPTCHA v2 2018-03-08 14:48:35 -05:00
Jeff Webster caae082025 MDL-48501 recaptchalib_v2: add new lib to support reCAPTCHA v2 2018-03-08 14:48:35 -05:00
Jeff Webster 85ef1adbd0 MDL-48501 lang: update reCAPTCHA language strings 2018-03-08 14:48:35 -05:00
Luca Bösch c936af395e MDL-59070 enrol_database: Take enablecompletion from template 2018-03-08 17:24:39 +01:00
Luca Bösch 457b3ed139 MDL-61498 lesson: link to next activity in boost 2018-03-08 17:24:12 +01:00
Eloy Lafuente (stronk7) 1287039e62 weekly release 3.5dev 2018-03-08 13:29:02 +01:00
Eloy Lafuente (stronk7) 03141d1ae2 NOBUG: Fixed file access permissions 2018-03-08 13:29:02 +01:00
Eloy Lafuente (stronk7) 053186ba0e NOBUG: Fixed SVG browser compatibility 2018-03-08 13:29:01 +01:00
Eloy Lafuente (stronk7) 08f5fc107a Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-03-08 13:29:00 +01:00
Andrew Nicols 1e9016d8d8 Merge branch 'MDL-61423-master' of git://github.com/mihailges/moodle 2018-03-08 15:26:30 +08:00
Mihail Geshoski 25dbbdf90b MDL-61423 authentication: Add digital minor verification upon signup 2018-03-08 15:01:25 +08:00
Jake Dallimore 438a62f28b Merge branch 'MDL-38829-master-whitespacefix' of https://github.com/snake/moodle 2018-03-08 11:41:55 +08:00
Jake Dallimore 8525d8466a MDL-38829 core: fix whitespace in xmlize test 2018-03-08 11:39:42 +08:00
Jake Dallimore f9628f871a Merge branch 'MDL-38829-master' of git://github.com/andrewnicols/moodle 2018-03-08 11:17:05 +08:00
Eloy Lafuente (stronk7) 3e5d0447fd Merge branch 'MDL-60445-master' of https://github.com/lucaboesch/moodle 2018-03-07 19:19:21 +01:00
Shamim Rezaie abe7ceabfa MDL-61557 Questions: Fixed behat failure with clean 2018-03-07 17:08:41 +01:00
Shamim Rezaie 451df14218 MDL-61556 Questions: Fixed behat failure with clean 2018-03-07 17:08:33 +01:00
Jesse Ritchey c91a59ac42 MDL-60445 theme_boost: remove fieldset tag 2018-03-07 11:08:42 +01:00
Andrew Nicols e6b354d99b Merge branch 'master' of https://github.com/chkhanu/moodle 2018-03-07 11:34:16 +08:00
Andrew Nicols b8979ffe69 Merge branch 'wip-MDL-61322-master' of git://github.com/abgreeve/moodle 2018-03-07 10:57:36 +08:00
Jake Dallimore 2215d5744a Merge branch 'MDL-61363-int-master' of git://github.com/ryanwyllie/moodle 2018-03-07 10:55:01 +08:00
Ryan Wyllie 79c9ad6277 MDL-61363 question: unit tests for question tags context change 2018-03-07 10:31:47 +08:00
Ryan Wyllie dd69ecb630 MDL-61363 question: unit tests for course context tagging 2018-03-07 10:31:47 +08:00
Ryan Wyllie 68beb75851 MDL-61363 question: update tags on question context change 2018-03-07 10:31:47 +08:00
Ryan Wyllie 081eb156c5 MDL-61363 question: add course context tagging 2018-03-07 10:31:47 +08:00
Ryan Wyllie 49374833fc MDL-61363 tag: unit tests for change_instances_context 2018-03-07 10:31:47 +08:00
Ryan Wyllie f7c1c97cac MDL-61363 tag: unit tests for delete functions 2018-03-07 10:31:47 +08:00
Ryan Wyllie 4823de0269 MDL-61363 tag: unit tests for tagging in different context 2018-03-07 10:31:47 +08:00
Ryan Wyllie 4c3f4d2c2a MDL-61363 tag: unit tests for get_items_tags function 2018-03-07 10:31:47 +08:00
Ryan Wyllie 5436b0ed02 MDL-61363 tag: allow tagging in different context to item 2018-03-07 10:31:46 +08:00
Andrew Nicols 988fb76589 Merge branch 'MDL-61404-master' of git://github.com/Kathrin84/moodle 2018-03-07 10:31:23 +08:00
Ryan Wyllie 8376557c4c MDL-61363 tag: add change_instances_context function 2018-03-07 10:27:42 +08:00
Ryan Wyllie 694710d0f2 MDL-61363 tag: add get_items_tags function 2018-03-07 10:27:42 +08:00
Ryan Wyllie 064f6b5a81 MDL-61363 tag: add additional tag instance delete functions 2018-03-07 10:27:42 +08:00
Andrew Nicols 976ba87888 Merge branch 'MDL-61497-master' of https://github.com/lucaboesch/moodle 2018-03-07 09:58:29 +08:00
Andrew Nicols 79e4395888 MDL-38829 core: Rewrite xmlize unit tests
These changes adjust the unit tests to compare known values rather than
calculating them on the fly.

The unit test against a 'bad' source has been modified to simply check
for the relevant exception as PHP prevents any output on exceptions
anyway.
2018-03-07 09:40:11 +08:00
Jake Dallimore 98aaa343f1 Merge branch 'MDL-60991' of https://github.com/mkassaei/moodle 2018-03-07 09:29:54 +08:00
Andrew Nicols 475d4345f9 Merge branch 'MDL-61380-master' of git://github.com/rezaies/moodle 2018-03-07 09:00:15 +08:00
AMOS bot 7e9468ed20 Automatically generated installer lang files 2018-03-07 00:06:13 +00:00
Eloy Lafuente (stronk7) 647db53d14 Merge branch 'MDL-61503-master' of git://github.com/rezaies/moodle 2018-03-07 00:55:29 +01:00
Eloy Lafuente (stronk7) e975671ca3 Merge branch 'MDL-61312-master' of git://github.com/jleyva/moodle 2018-03-07 00:47:44 +01:00
Eloy Lafuente (stronk7) e28b586b9c Merge branch 'MDL-61557-master' of git://github.com/rezaies/moodle 2018-03-07 00:19:50 +01:00
Eloy Lafuente (stronk7) e35205bfec Merge branch 'MDL-61556-master' of git://github.com/rezaies/moodle 2018-03-07 00:13:01 +01:00
Shamim Rezaie 81053f8cbe MDL-61380 Quiz: Behat test for tag filter in the random question form 2018-03-07 07:34:11 +11:00
Shamim Rezaie 1b63ff10f9 MDL-61380 behat: Added autocomplete_suggestions name selector 2018-03-07 06:52:01 +11:00
Shamim Rezaie f3f21c995c MDL-61380 Quiz: Re-attempting the same "random" question by tag
Some question behaviours allow the same question to be re-attempted several times during a quiz attempt.
This commit takes care of the case where a "random" question is re-attempted during a quiz attempt.
2018-03-07 05:43:44 +11:00
Shamim Rezaie 2a1c9daccd MDL-61380 Quiz: build attempt from "random" questions by tag 2018-03-07 05:43:38 +11:00
Shamim Rezaie 2adefc21ac MDL-61380 Questions: Support selecting "random" by tag in question bank 2018-03-07 05:33:11 +11:00
Shamim Rezaie 82c67ac7f0 MDL-61380 Quiz: Fix url generation in notenoughrandomquestions exception 2018-03-07 05:33:11 +11:00
Shamim Rezaie 6650c66b59 MDL-61380 Questions: Editing configuration of existing random questions
Editing "random" questions follows a different procedure than adding them.
This commit takes care of editing a "random" question's configuration.
This commit also introduces mod_quiz\form\randomquestion_form, so mod_quiz
can edit random questions without having to use the form that is inside qtype_random.
2018-03-07 05:32:40 +11:00
Shamim Rezaie 4f964a1ca0 MDL-61380 Quiz,Questions: Adding "random" question by tag 2018-03-07 00:30:32 +11:00
Kilian 533a7edeae MDL-38829 core: Unit test for xmlize using two sample xml files.
The file sample_questions.xml from moodle-stack is properly formed.
The file sample_questions_wrong.xml has mismatching tags.
Comparison is performed with recursive array comparison.
Error messages and returned data structures are compared.
Call with: phpunit lib/tests/xmlize_test.php
2018-03-06 15:36:14 +08:00
Kilian 7825ffb1d5 MDL-38829 core: fix for xmlize is unable to import xml files>10MB
Since version 2.7.3 the libxml library (https://bugs.php.net/bug.php?id=49660)
limits parsing in memory files to 10MB. Unfortunately the libxml option
LIBXML_PARSEHUGE to release the 10MB limit is not exposed to php. Through
using the sax parser which is typically used to parse directly from files but
instead chunking the string in memory xml files larger than 10MB can again
be parsed. I copied the exact behaviour of the previous routine
by Hans Anderson (http://www.hansanderson.com/contact/) so compatibility
should be maintained.
2018-03-06 15:36:08 +08:00
Kilian e4d61d8321 MDL-38829 core: Remove xmlize from thirdpartylibs 2018-03-06 15:35:46 +08:00
Eloy Lafuente (stronk7) 6a5d9ce4b9 Merge branch 'MDL-36157-master' of https://github.com/lucaboesch/moodle 2018-03-06 02:47:33 +01:00
Luca Bösch 345a010ea4 MDL-36157 block_rss_client: Don't double escape titles. 2018-03-06 00:15:38 +01:00
Eloy Lafuente (stronk7) 9655ef534d Merge branch 'MDL-61211-master' of git://github.com/mihailges/moodle 2018-03-05 23:30:19 +01:00
Eloy Lafuente (stronk7) 6d3f2f9036 Merge branch 'MDL-55153-master' of git://github.com/sarjona/moodle 2018-03-05 23:25:23 +01:00
Eloy Lafuente (stronk7) 56a7177741 Merge branch 'MDL-61549-master' of git://github.com/Dagefoerde/moodle 2018-03-05 23:22:47 +01:00
Shamim Rezaie c1d31e42ba MDL-61526 Questions: phpunit test to test restore from 3.4 and 3.5 2018-03-06 01:43:32 +11:00
Shamim Rezaie e9897ee6ef MDL-61526 Questions: Add 2 backup fixtures from 3.4 and 3.5 2018-03-06 01:41:45 +11:00
Shamim Rezaie 0f80f793df MDL-61526 Questions: Fix creation of multiple TOP question categories
Backup files that are made from Moodle 3.5 already contain TOP categories.
There is no need to create an additional TOP category for them.
2018-03-05 15:44:29 +11:00
Shamim Rezaie 8ece85602a MDL-61556 Questions: Add behat test 2018-03-05 14:17:52 +11:00
Shamim Rezaie c618e93e66 MDL-61557 Questions: Add behat test 2018-03-05 14:16:13 +11:00
Shamim Rezaie 18d6ff7880 MDL-61557 Questions: Fixed moving question categories to top 2018-03-05 13:40:02 +11:00
Shamim Rezaie 536d4d5729 MDL-61557 Lib: Add get_top_level_parent_id function 2018-03-05 13:34:08 +11:00
Jonathan Champ 9651175f70 MDL-61584 auth_ldap: use get_cache_flag()
get_cache_flags() is only useful when you want multiple responses or
you don't know the name/key for the value pair. We know the name/key
here is the session ID, so use get_cache_flag() instead and gain the
performance benefit.
2018-03-03 15:50:58 -05:00
Shamim Rezaie ee1052bd18 MDL-61556 Questions: Fixed moving question categories between contexts 2018-03-03 16:31:59 +11:00
Andrew Nicols 03d174d733 MDL-61268 core: Fix empty string DB cehck
(amended by stronk7 to use the helper better)
2018-03-02 16:31:11 +01:00
Kathrin Osswald 65992c2d25 MDL-61404 blocks: Removed unused strings. 2018-03-02 07:48:49 +01:00
Shamim Rezaie 2d7b0534d3 MDL-61503 Questions: Fix sql query to get questions by tags 2018-03-02 15:40:44 +11:00
Andrew Nicols 8b4510c4cc Merge branch 'wip-MDL-61268-master' of git://github.com/abgreeve/moodle 2018-03-02 09:57:30 +08:00
Andrew Nicols 3406bdd6fa Merge branch 'MDL-61196_master' of git://github.com/markn86/moodle 2018-03-02 09:34:24 +08:00
Adrian Greeve 8a844437bf MDL-61268 blocks: Unit tests for deprecated object update.
Unit tests for testing that the upgrade functions to change
the now deprecated object to stdClass works.
2018-03-02 09:22:05 +08:00
Adrian Greeve e78849e837 MDL-61268 blocks: Fix corrupt configdata in block instances.
Old configuration data in the block instances is base64 encoded with
the deprecated object class instead of stdClass.
2018-03-02 09:22:05 +08:00
Eloy Lafuente (stronk7) 20089fb594 Merge branch 'MDL-61533-master-enfix' of git://github.com/mudrd8mz/moodle 2018-03-02 01:42:45 +01:00
Helen Foster ad5b7d26e7 MDL-61533 lang: Merge English strings from the en_fix language pack
Significant string change:

* typeoflogin_desc,tool_mobile - removing sentence about autologinguests
* gradepublishing_help, core_grades - updated explanation mentioning the
  manager role and grade export publishing settings
2018-03-01 17:17:16 +01:00
M Kassaei 235b6e4f06 MDL-60991 Workshop: Display late submission text after deadline 2018-03-01 13:51:46 +00:00
Luca Bösch 9d10d64e14 MDL-36157 block_rss_client: Don't double escape titles. 2018-03-01 09:52:32 +01:00
Luca Bösch 49ccb165cc MDL-61497 repository_onedrive: Use post 2015 icon 2018-03-01 08:59:15 +01:00
Chernyavskiy Leonid 0e9cda01f1 MDL-60658 course, gradebook: fix missing unformat_float for gradepass
Fix incorrect comparison of gradepass variable (with comma as decimal separator)
with grade variable when trying to save assignment settings.
Adds missing unformat_float($data['gradepass']).
2018-03-01 09:26:51 +07:00
Mihail Geshoski 0e613a1f5b MDL-61211 lesson: Error when answer or response contains break tag 2018-03-01 09:50:51 +08:00
Shamim Rezaie 4fa49cc647 MDL-61380 Quiz: Adding a random question 2018-03-01 11:50:52 +11:00
Andrew Nicols 9f4e81a81b Merge branch 'MDL-61453-master-userpicturefiletype' of git://github.com/mudrd8mz/moodle 2018-03-01 08:45:47 +08:00
Shamim Rezaie 78b3870c50 MDL-61380 Quiz: Initial implementation of slot_random class 2018-03-01 11:41:15 +11:00
Shamim Rezaie 6fc5a830d4 MDL-61380 Quiz: Migrate "random" questions data into quiz_slots
Search for all "random" questions in the qbank and move the configuration data of each one to the quiz slots table.
2018-03-01 11:41:15 +11:00
Shamim Rezaie b6c38f71e2 MDL-61380 Quiz: quiz_slots schema change
Adding questioncategoryid and includingsubcategories to the quiz_slots table
2018-03-01 11:41:14 +11:00
Dan Marsden 1a11bf375c MDL-49417 enrol_cohort: use ajax searchable selector for cohorts. 2018-03-01 13:39:56 +13:00
Eloy Lafuente (stronk7) 856e07e4e7 weekly release 3.5dev 2018-02-28 12:58:13 +01:00
Eloy Lafuente (stronk7) 4881c193b7 NOBUG: Fixed SVG browser compatibility 2018-02-28 12:58:11 +01:00
Jan Dageförde aa949cb2f9 MDL-61549 user: Remove $already columns because none were loaded yet 2018-02-27 14:47:44 +01:00
Jake Dallimore 54a86d8f15 Merge branch 'wip-MDL-61485-master' of git://github.com/marinaglancy/moodle 2018-02-27 09:37:45 +08:00
Jake Dallimore c99a5e18eb Merge branch 'MDL-61480-master' of git://github.com/andrewnicols/moodle 2018-02-27 09:04:45 +08:00
Eloy Lafuente (stronk7) e7d8d22dca Merge branch 'MDL-61249-master' of git://github.com/sarjona/moodle 2018-02-26 23:10:14 +01:00
Eloy Lafuente (stronk7) b62139ab27 Merge branch 'MDL-61393-master' of git://github.com/lameze/moodle 2018-02-26 23:06:36 +01:00
Mihail Geshoski 757a889b24 MDL-60398 resource: Unable to download folder resource 2018-02-26 16:49:21 +08:00
Andrew Nicols 26d26413a0 MDL-61480 core: Check plugin installed before returning 2018-02-26 12:11:25 +08:00
Andrew Nicols de18c36f9f Merge branch 'MDL-60547-master' of git://github.com/cescobedo/moodle 2018-02-26 10:20:54 +08:00
Andrew Nicols 8fe48ac366 Merge branch 'MDL-61462-master' of git://github.com/junpataleta/moodle 2018-02-26 10:10:27 +08:00
Sara Arjona e2cd8d3c6d MDL-61249 enrol_manual: Fix end date calculation
This patch has been given by Bruno Malaval.
2018-02-23 08:19:49 +01:00
Jake Dallimore 296a3aa707 weekly release 3.5dev 2018-02-23 11:51:28 +08:00
Jake Dallimore fbf290d3b2 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-02-23 11:51:27 +08:00
Marina Glancy ca6f717578 MDL-61522 mod_glossary: use full url in links 2018-02-23 10:55:59 +08:00
Andrew Nicols 563ac282fc Merge branch 'MDL-61444-master-fix' of https://github.com/lameze/moodle 2018-02-23 07:57:07 +08:00
Simey Lameze 1657d0b6a9 MDL-61444 question: hardFreeze tags element if no caps 2018-02-23 07:44:57 +08:00
Barbara Ramiro 1421bf5492 MDL-61393 pix: add tag icons 2018-02-22 12:11:23 +08:00
Jun Pataleta e5818c7d09 MDL-61513 admin: Fix undefined $buttons variable 2018-02-22 10:22:06 +08:00
Andrew Nicols d40b84e253 Merge branch 'MDL-61444-master' of git://github.com/lameze/moodle 2018-02-22 09:59:15 +08:00
Simey Lameze 4509be2296 MDL-61444 question: freeze element for users without caps 2018-02-22 09:44:15 +08:00
Eloy Lafuente (stronk7) 0f8c06e0f5 Merge branch 'MDL-61437-master' of git://github.com/lameze/moodle 2018-02-22 08:30:57 +08:00
Eloy Lafuente (stronk7) 59462743e6 Merge branch 'MDL-58885-master' of https://github.com/sammarshallou/moodle 2018-02-22 08:30:57 +08:00
Jake Dallimore f52c05d66d Merge branch 'MDL-61394-master-fix2' of git://github.com/andrewnicols/moodle 2018-02-22 08:30:56 +08:00
Andrew Nicols e63da7ba58 Merge branch 'MDL-61394-master-fix' of git://git.cameron1729.xyz/moodle 2018-02-22 08:30:55 +08:00
Andrew Nicols 54fd1bb3fa MDL-61394 admin: Set valid default for pathtosassc 2018-02-22 08:30:55 +08:00
Cameron Ball 40e53599b3 MDL-61394 core_scss: Null coalesce path to sassc setting 2018-02-22 08:30:54 +08:00
Jake Dallimore 3a7ae79555 Merge branch 'MDL-61402' of https://github.com/mkassaei/moodle 2018-02-22 08:30:53 +08:00
Andrew Nicols 2b32b1fea8 Merge branch 'MDL-61394-master' of git://git.cameron1729.xyz/moodle 2018-02-22 08:30:53 +08:00
Eloy Lafuente (stronk7) fcafde7e48 Merge branch 'MDL-61324_lti_sync' of git://github.com/davosmith/moodle 2018-02-22 08:30:52 +08:00
Eloy Lafuente (stronk7) fb9d5e7a17 Merge branch 'MDL-61005-master' of git://github.com/sarjona/moodle 2018-02-22 08:30:52 +08:00
Luca Bösch 91e2e5e7a2 MDL-58845 mod_choice: Fix behat related tests 2018-02-22 08:30:51 +08:00
Andrew Nicols 85973908a5 Merge branch 'MDL-61444-master' of git://github.com/lameze/moodle 2018-02-22 08:30:50 +08:00
Andrew Nicols c482497d52 Merge branch 'MDL-61421-master' of git://github.com/sarjona/moodle 2018-02-22 08:30:50 +08:00
Andrew Nicols 6478b4e463 Merge branch 'MDL-61408-master' of https://github.com/lucaboesch/moodle 2018-02-22 08:30:49 +08:00
Carlos b999cee9a5 MDL-60547 message_popup: adding preventDefault at notification popover 2018-02-21 22:51:02 +01:00
Sara Arjona efa66e0597 MDL-55153 customlang: Remove local DB entries when deleting local file 2018-02-21 22:00:15 +01:00
Simey Lameze 728e195c5e MDL-61437 mod_quiz: rename question_build_display_preference function 2018-02-21 09:13:50 +08:00
Mihail Geshoski 4961e964d2 MDL-61485 authentication: Add callback 'pre_signup_requests' 2018-02-20 10:02:31 +08:00
Cameron Ball eadebb2445 MDL-61394 core_scss: Add unit tests for SassC compilation
This patch also adds a test in theme_boost to verify that boost
can be succesfully compiled without errors by SassC.
2018-02-19 14:46:00 +08:00
Cameron Ball 8a5613f643 MDL-61394 theme_boost: Misc scss fixes 2018-02-19 14:39:19 +08:00
Cameron Ball 4658220b2d MDL-61394 Administration: Add experimental feature to use SassC 2018-02-19 14:39:11 +08:00
Simey Lameze e2795e8632 MDL-61444 question: replace all question tag capability checks 2018-02-19 14:21:59 +08:00
Simey Lameze 1451c07e05 MDL-61444 question: make question_has_capability_on support new caps 2018-02-19 14:21:49 +08:00
Simey Lameze 34cd75240e MDL-61444 question: add question tagmine and tagall capabilities 2018-02-19 14:21:45 +08:00
Eloy Lafuente (stronk7) 25e0557484 Merge branch 'MDL-58845-master' of https://github.com/lucaboesch/moodle 2018-02-19 02:12:30 +01:00
Andrew Nicols 98ee3df14e Merge branch 'MDL-61289-master' of git://github.com/junpataleta/moodle 2018-02-19 09:07:24 +08:00
Jun Pataleta 0e8d6595f4 MDL-61289 mod_choice: Add extra user fields to response data 2018-02-19 08:53:44 +08:00
AMOS bot 8a81290525 Automatically generated installer lang files 2018-02-19 00:06:11 +00:00
AMOS bot 7ed98e4912 Automatically generated installer lang files 2018-02-17 00:06:13 +00:00
sam marshall 163d280053 MDL-58885 core_search: Group support unit tests 2018-02-16 16:57:01 +00:00
sam marshall 3261e9237d MDL-58885 core_search: Group support in relevant module search areas 2018-02-16 16:57:01 +00:00
sam marshall 4359ef18bb MDL-58885 core_search: Add group support
Adds group support to the core search API and the Solr search engine.
This allows for:

* User searching by group (in the API only, no interface yet)
* Automatically restrict search results by group (in some cases like
  separate-groups forums)
2018-02-16 16:57:00 +00:00
M Kassaei 7ce538be0f MDL-61402 Core: Add a cancel button to edit profile page 2018-02-16 09:34:23 +00:00
Luca Bösch a58fd9710d MDL-61408 qbehaviour: Correct "Check" button styling. 2018-02-16 08:45:56 +01:00
Luca Bösch 3a9f0ad138 MDL-58845 mod_choice: In reports, respect "Show column for unanswered" 2018-02-16 08:45:51 +01:00
Jun Pataleta 6a51b279ec MDL-61462 admin_roles: Point back to roles link to the correct URL 2018-02-16 10:32:44 +08:00
Marina Glancy 6bc6757084 MDL-56635 tags: use recordset since component may not be unique 2018-02-16 09:50:57 +08:00
Eloy Lafuente (stronk7) d1b4ca921e weekly release 3.5dev 2018-02-15 17:10:22 +01:00
Dan Marsden d406ddca03 MDL-61005 core_cohort: Allow teachers to view site-wide cohorts 2018-02-14 20:02:39 +01:00
David Mudrák 26c1c01629 MDL-61453 user: Fix accepted file type when uploading user pictures
Not all archives are supported, only ZIP files are.
2018-02-14 18:06:45 +01:00
Stephen Bourget b4993d29f7 MDL-45837 Grades: Minor fixes to grade_letter events 2018-02-14 17:31:57 +01:00
David Monllao e4607502bf NOBUG: Keep mod_workshop higher version after reverting MDL-60820 2018-02-14 12:03:12 +01:00
David Monllao 4b140685ad Merge branch 'MDL-45837_master' of git://github.com/markn86/moodle 2018-02-13 07:48:16 +01:00
Andrew Nicols 5ac4e277fa Merge branch 'MDL-61135-master-fixes' of https://github.com/lameze/moodle 2018-02-13 11:01:15 +08:00
Simey Lameze cf81447c74 MDL-61135 mod_quiz: deprecate unused fragment_view class 2018-02-13 10:48:22 +08:00
Simey Lameze fc23bc85cf MDL-61135 mod_quiz: move fragment_view functions to custom_view class 2018-02-13 10:48:03 +08:00
Andrew Nicols b57cd16dcf Merge branch 'wip-MDL-61344' of https://github.com/ndunand/moodle 2018-02-13 09:03:50 +08:00
Andrew Nicols 486f7c9555 Merge branch 'MDL-61150' of git://github.com/stronk7/moodle 2018-02-13 09:01:31 +08:00
David Monllao adc3c068bb Merge branch 'MDL-61236-master' of git://github.com/farhan6318/moodle 2018-02-12 12:13:55 +01:00
David Monllao 132106bfef Merge branch 'MDL-61153-master' of git://github.com/mihailges/moodle 2018-02-12 10:55:28 +01:00
David Monllao 0abe3fe373 Merge branch 'MDL-61375_master' of git://github.com/markn86/moodle 2018-02-12 09:40:31 +01:00
David Monllao 755310cbeb Merge branch 'MDL-56688-master' of https://github.com/nwp90/moodle 2018-02-12 09:32:38 +01:00
Davo Smith 8037f32b8a MDL-61324 enrol_lti: fix detection of changed grades during sync 2018-02-12 08:25:44 +00:00
David Monllao f40d707dbf Merge branch 'mod-lti-fix-test-with-hardcoded-url' of https://github.com/peikk0/moodle 2018-02-12 09:20:50 +01:00
David Monllao 1f07048f02 Merge branch 'MDL-61425-master' of git://github.com/rezaies/moodle 2018-02-12 09:13:08 +01:00
Sara Arjona bfea8655f7 MDL-61421 cohort: Fix cohort_role_sync when a user is in two cohorts 2018-02-12 08:55:38 +01:00
Andrew Nicols b6c2829745 Merge branch 'MDL-61366' of git://github.com/timhunt/moodle 2018-02-12 15:17:29 +08:00
Nicolas Dunand a0b2b76613 MDL-61344 mod_assign: Show additional files when adding submission 2018-02-12 07:40:57 +01:00
Andrew Nicols 48cf9018fa Merge branch 'MDL-60958-int-fix-1' of github.com:ryanwyllie/moodle 2018-02-12 13:51:55 +08:00
Ryan Wyllie 4e0ac12efa MDL-60958 calendar: fix test helper action factory 2018-02-12 05:47:49 +00:00
Andrew Nicols b383cec36c Merge branch 'MDL-60958-master' of git://github.com/ryanwyllie/moodle 2018-02-12 13:34:31 +08:00
Ryan Wyllie 28852998f6 MDL-60958 calendar: stop db query in repeat collection constructor
Stop loading the parent record in the constructor because it is an
unnecessary DB query for each event instantiation.

Return null on get_repeats() for events that don't have repeats.
2018-02-12 05:29:11 +00:00
Andrew Nicols 1e41e6ddd9 Merge branch 'MDL-61135-master' of git://github.com/ryanwyllie/moodle 2018-02-12 11:34:56 +08:00
Andrew Nicols f675a8e23a Merge branch 'MDL-61305-master-fix' of https://github.com/andrewnicols/moodle 2018-02-12 11:30:53 +08:00
Shamim Rezaie f0fca20bdf MDL-61425 theme_boost: Made question labels width full in question bank 2018-02-12 14:28:24 +11:00
Andrew Nicols ada9d0fb69 MDL-61305 modinfo: Add back missing require for course 2018-02-12 10:39:51 +08:00
Pierre Guinoiseau a6529e04e6 MDL-61379 mod_lti: fix a test comparing a hardcoded URL from fixtures
The hardcoded URL from tests/fixtures/ims_cartridge_basic_lti_link.xml
didn't match if TEST_EXTERNAL_FILES_HTTPS_URL was defined, the test
needs to compare with the exact same URL instead of a generated one.
2018-02-12 13:44:45 +13:00
Andrew Nicols af5f446fa8 Merge branch 'MDL-61305-master' of https://github.com/sammarshallou/moodle 2018-02-12 08:17:49 +08:00
Andrew Nicols d461d093bd Merge branch 'MDL-61413' of git://github.com/stronk7/moodle 2018-02-12 08:06:21 +08:00
Eloy Lafuente (stronk7) 54a099e989 MDL-61150 xmldb: Let's check the PATH attribute of XMLDB files
Starting with Moodle 3.5 the XMLDB->PATH attribute is checked
to be correct and pointing to the correct plugin directory.

It only was used for writing PHP savepoints code, but better we
ask for strict correctness.

With this patch applied, neither the XMLDB Editor neither install
will be able to load a file with wrong PATH anymore.
2018-02-11 23:07:18 +01:00
Marina Glancy 015e612a5f MDL-61150 xmldb: correct path to schema in install.xml 2018-02-11 23:07:18 +01:00
Eloy Lafuente (stronk7) dd9368b43d MDL-61150 xmldb: Fix wrong PATH attributes in core 2018-02-11 22:53:58 +01:00
Farhan Karmali 4fd0bdb2b7 MDL-61236 enrol: Course welcome message to be sent from correct contact 2018-02-11 20:45:49 +05:30
Eloy Lafuente (stronk7) 7fcc62c633 MDL-61413 mod_lti: Use sql_compare_text() for comparing TEXTs 2018-02-11 02:16:39 +01:00
Mark Nelson cb21b5b7fb MDL-61196 message_popup: clean params before returning via WS 2018-02-09 17:35:51 +08:00
Mark Nelson fb77b89fd8 MDL-61375 mod_chat: specify the 'eventtype' to avoid duplicate rows 2018-02-09 14:46:11 +08:00
Mark Nelson e960152141 MDL-45837 core: minor tidy up to events 2018-02-09 12:13:48 +08:00
Stephen Bourget b302d434ae MDL-45837 Grades: Add unit & behat tests for events 2018-02-09 11:41:38 +08:00
Stephen Bourget 31647f0cc9 MDL-45837 Grades: Add events for grade letters 2018-02-09 11:41:38 +08:00
Stephen Bourget 2f3b709859 MDL-45837 Grades: Add events for scales 2018-02-09 11:41:38 +08:00
sam marshall 08ec1b4e47 MDL-61305 Performance: Modinfo cache can get built in parallel
In a busy site it is possible that one user will access the site
while another is building modinfo cache. This can result in the
cache being built several times at once, potentially causing a
performance issue.
2018-02-08 14:45:55 +00:00
David Monllao 315a0a3aaf weekly release 3.5dev 2018-02-08 09:29:09 +01:00
Andrew Nicols 49b12fdbd1 Merge branch 'MDL-61133-master-fixes' of https://github.com/lameze/moodle 2018-02-08 12:01:55 +08:00
Ryan Wyllie d04f42254b MDL-61135 mod_quiz: add behat test for tag filtering in qbank modal 2018-02-08 02:44:18 +00:00
Ryan Wyllie d7abdb64ee MDL-61135 question: add behat test for tag filtering 2018-02-08 02:44:17 +00:00
Ryan Wyllie e6743b4b80 MDL-61135 mod_quiz: remove YUI question bank dialogue 2018-02-08 02:44:17 +00:00
Ryan Wyllie fff033322a MDL-61135 mod_quiz: add tag condition to question bank form 2018-02-08 02:44:17 +00:00
Ryan Wyllie 171d7919b3 MDL-61135 mod_quiz: add question bank AMD modal 2018-02-08 02:44:16 +00:00
Ryan Wyllie f33dc783f1 MDL-61135 mod_quiz: add question bank fragment 2018-02-08 02:44:16 +00:00
Ryan Wyllie 031a275288 MDL-61135 question: add tag filter condition 2018-02-08 02:44:16 +00:00
Ryan Wyllie 73d16fc61d MDL-61135 question: split edit setup logic out from POST param parsing
Decouple the business logic in the question_edit_setup function from
the GET/POST param parsing to allow the business logic to be run
on params directly passed to it.
2018-02-08 02:25:30 +00:00
Simey Lameze e842596d1d MDL-61133 core_question: disable form change checker 2018-02-08 10:10:51 +08:00
Sara Arjona 58af736dec MDL-61365 group: Fix default filter when group mode is visible 2018-02-07 18:02:56 +01:00
David Monllao 42afb6c2ac MDL-52811 version: Bump to update system capabilities and lang str 2018-02-07 07:57:18 +01:00
Andrew Nicols a87c7c03ad Merge branch 'MDL-61377-master' of git://github.com/rezaies/moodle 2018-02-07 12:52:26 +08:00
Shamim Rezaie 38b1d6cdd9 MDL-61377 Core: Fixed faulty warning when using progress_bar 2018-02-07 14:47:18 +11:00
Andrew Nicols fd26d7318e Merge branch 'MDL-52832' of https://github.com/stronk7/moodle 2018-02-07 07:07:27 +08:00
Eloy Lafuente (stronk7) 496e80e1f5 MDL-52832 quiz: sql fixing couple of incorrect group by uses 2018-02-06 18:30:11 +01:00
Tim Hunt 168635fb6f MDL-61366 setuplib: safely construct the ajax renderer when needed 2018-02-06 12:09:43 +00:00
David Monllao 7416d00ad2 Merge branch 'MDL-52832-master' of https://github.com/lucaboesch/moodle 2018-02-06 12:18:27 +01:00
David Monllao 24d8485ea6 Merge branch 'master_MDL-60421' of https://github.com/danmarsden/moodle 2018-02-06 10:46:35 +01:00
David Monllao 8c52eb2a15 MDL-52811 course: Note about the new capability when creating courses 2018-02-06 08:10:10 +01:00
David Monllao d3e54578ea Merge branch 'MDL-52811_prevent_forcelang' of git://github.com/davosmith/moodle 2018-02-06 08:00:11 +01:00
Andrew Nicols e742f93303 Merge branch 'MDL-61132-master' of git://github.com/rezaies/moodle 2018-02-06 14:33:41 +08:00
Andrew Nicols 5d7d0457d2 Merge branch 'MDL-61133-master' of git://github.com/lameze/moodle 2018-02-06 14:00:51 +08:00
Simey Lameze d1db765a64 MDL-61133 core_question: move all selectors to a new module 2018-02-06 10:24:22 +08:00
Simey Lameze fd5e2ead95 MDL-61133 core_question: add new question tags modal 2018-02-06 10:09:10 +08:00
Eloy Lafuente (stronk7) 5bdda5e535 Merge branch 'MDL-61168-master' of git://github.com/junpataleta/moodle 2018-02-05 20:17:34 +01:00
Eloy Lafuente (stronk7) b04811687c Merge branch 'MDL-61341-master' of git://github.com/andrewnicols/moodle 2018-02-05 20:06:32 +01:00
Davo Smith 4ee8ec310a MDL-52811 course: moodle/course:setforcedlanguage integration fixes 2018-02-05 13:20:42 +00:00
David Monllao 02e6350222 Merge branch 'MDL-61027-master' of git://github.com/rezaies/moodle 2018-02-05 11:56:18 +01:00
David Monllao 69b4a73de8 Merge branch 'MDL-61251-master' of https://github.com/lucaboesch/moodle 2018-02-05 11:50:39 +01:00
David Monllao 1cc79637c7 Merge branch 'MDL-42764_master' of git://github.com/markn86/moodle 2018-02-05 11:18:34 +01:00
Andrew Nicols ad1ba7f02a Merge branch 'MDL-61269' of git://github.com/stronk7/moodle 2018-02-05 17:29:25 +08:00
Andrew Nicols a88658fbf0 Merge branch 'MDL-51189-master' of git://github.com/rezaies/moodle 2018-02-05 15:43:47 +08:00
Ryan Wyllie 4c72d4bec1 MDL-61135 core_tag: add function get_tags_by_area_in_contexts
Add a function to allow for searching tags by an area (component and
itemtype) in a given set of contexts.
2018-02-05 06:59:13 +00:00
Shamim Rezaie b0ae7d082a MDL-61132 Questions: Fix behat failures 2018-02-05 13:59:39 +11:00
Simey Lameze 7f4b6dfe70 MDL-61133 core_question: tags form and fragment callback 2018-02-05 10:58:04 +08:00
Simey Lameze 680d5c5be6 MDL-61133 core_question: new submit_tags_form webservice 2018-02-05 10:58:04 +08:00
Simey Lameze d587dc6f6f MDL-61133 core_question: add tags column class to question list 2018-02-05 10:57:04 +08:00
Simey Lameze f31804c01c MDL-61133 core_output: add fontawesome mapping for tags icon 2018-02-05 09:36:52 +08:00
Shamim Rezaie 869320c7f4 MDL-61132 Questions: Unit tests compatibility
Modified unit tests to adapt with "Top" categories.
2018-02-05 11:58:58 +11:00
Shamim Rezaie f86f8c85c1 MDL-61132 Questions: Adapt logic on export/import
Modified import/export to adapt with "Top" categories.
2018-02-05 11:58:58 +11:00
Shamim Rezaie 8df402e401 MDL-61132 Questions: Adapt logic on backup/restore
Modifying backup/restore to adapt with "Top" categories.
2018-02-05 11:58:57 +11:00
Shamim Rezaie 3b8f3198de MDL-61132 Quiz: "Random" question from "Top" categories
* Support for adding ranodm questions from "Top" categories
2018-02-05 11:58:57 +11:00
Shamim Rezaie 9275220de3 MDL-61132 Questions: Question Bank amendments to cope with Top category
* Display "Top" categories in the category filter when listing questions in the question bank
* Prevent editing "Top" categories
* Prevent deleting "Top" categories
2018-02-05 11:58:52 +11:00
Shamim Rezaie bb06397130 MDL-61132 Questions: Add "Top" categories by default when don't exist
Create "Top" categories along with the default categories when they don't exist
2018-02-05 11:53:36 +11:00
Shamim Rezaie d2c4ff10bf MDL-61132 Questions: Upgrade step to add Top to existing contexts
Upgrade script to add a "Top" category as a real category to the question bank
2018-02-05 11:20:50 +11:00
Eloy Lafuente (stronk7) b26bc628cf MDL-61269 composer: better license GPL-3.0-or-later
Source: https://spdx.org/licenses/
2018-02-04 19:38:32 +01:00
Sara Arjona 8d7c385203 MDL-61261 badges: Add email validation during backpack configuration 2018-02-02 11:33:15 +01:00
Ryan Wyllie 99df051805 MDL-61135 templates: improve loading icon for loading templates 2018-02-02 03:58:49 +00:00
Ryan Wyllie 2328bcccde MDL-61135 javascript: fix modal body height resizing when loading 2018-02-02 03:57:25 +00:00
Andrew Nicols 139dfc8b8a MDL-61341 theme_boost: Fix usertour zindex calculations 2018-02-02 11:31:14 +08:00
Andrew Nicols 2bc3246f93 MDL-61341 theme_boost: Modify variables used for calculations
Variables must be of the same type for Math to take place. We cannot
mix REM and EM because they have different relative roots.
2018-02-02 11:29:34 +08:00
Jun Pataleta 5c7351a263 MDL-61168 mod_assign: Truncate only the online text submission 2018-02-02 09:20:57 +08:00
Luca Bösch 1477e62936 MDL-61251 admin: configenablerssfeedsdisabled2 string more correct. 2018-02-01 22:59:33 +01:00
Luca Bösch bcf4a7f076 MDL-52832 quiz: timeclose in activities block looks after overrides. 2018-02-01 22:52:19 +01:00
Davo Smith 4a9624af21 MDL-52811 course: fix unit tests broken by setforcedlanguage 2018-02-01 17:07:23 +00:00
Davo Smith 1433a07881 MDL-52811 course: prevent setting of 'lang' without permission 2018-02-01 17:07:12 +00:00
Yair Spielmann ecce451878 MDL-52811 course: Require course:setforcedlanguage to force language. 2018-02-01 17:06:57 +00:00
David Monllao a409707794 weekly release 3.5dev 2018-02-01 14:26:35 +01:00
David Monllao e395d46b3b Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-02-01 14:26:33 +01:00
Dan Marsden 3e080111f9 MDL-60421 tool_cohortroles: fix deprecated call. 2018-02-01 20:58:31 +13:00
Jake Dallimore 91f841d00f Merge branch 'MDL-60077-master-fix' of https://github.com/andrewnicols/moodle 2018-02-01 14:55:50 +08:00
Andrew Nicols 826f61e500 MDL-60077 tool_usertours: Pull v0.12.2 of usertours for triangle fix 2018-02-01 14:28:13 +08:00
Andrew Nicols 258f54501b MDL-37190 blocks: Fix behat failure with new langstring 2018-02-01 10:33:21 +08:00
David Mudrák 051857fcb9 MDL-61242 repository_equella: Fix missing class repository
The call to the class 'repository' introduced in the commit d05c2ac7cc
didn't fully work and threw: "Exception - Class 'repository' not found".
This fixes the missing library inclusion.
2018-02-01 10:33:21 +08:00
Eloy Lafuente (stronk7) 632293b09a Merge branch 'MDL-61058-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:20 +08:00
Eloy Lafuente (stronk7) 025ef39f14 Merge branch 'MDL-61023-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:20 +08:00
Andrew Nicols ec010c09b3 Merge branch 'MDL-37190-master-fix2' of https://github.com/snake/moodle 2018-02-01 10:33:20 +08:00
Andrew Nicols 5eca8239f2 Merge branch 'MDL-61313_master' of git://github.com/dmonllao/moodle 2018-02-01 10:33:19 +08:00
Jake Dallimore 878f4b7ae0 MDL-37190 blocks: fix erroneous strings in the block_blog_tags block 2018-02-01 10:33:19 +08:00
David Monllao 3fd655242d MDL-61313 behat: Move future events further 2018-02-01 10:33:19 +08:00
Andrew Nicols b183ace176 Merge branch 'MDL-37190-master-fix1' of https://github.com/snake/moodle 2018-02-01 10:33:18 +08:00
David Monllao 5cce9a8fff Merge branch 'MDL-60836-master' of git://github.com/jleyva/moodle 2018-02-01 10:33:18 +08:00
Jake Dallimore 4cff1e5476 MDL-37190 behat: fix for char case in html block test 2018-02-01 10:33:18 +08:00
Jake Dallimore cdef2e7d34 Merge branch 'MDL-37190-master' of https://github.com/lucaboesch/moodle 2018-02-01 10:33:17 +08:00
David Monllao e57392fabe Merge branch 'MDL-57394-master' of git://github.com/jleyva/moodle 2018-02-01 10:33:17 +08:00
Eloy Lafuente (stronk7) 74c0b5fe91 Merge branch 'MDL-44612-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:17 +08:00
Eloy Lafuente (stronk7) aa78380630 Merge branch 'MDL-61281_master' of git://github.com/dmonllao/moodle 2018-02-01 10:33:16 +08:00
David Monllao e9fd486eb6 Merge branch 'MDL-60646-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:16 +08:00
David Monllao f372f96656 Merge branch 'MDL-60997-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:16 +08:00
David Monllao 54c51cc810 Merge branch 'MDL-61152-master' of git://github.com/junpataleta/moodle 2018-02-01 10:33:16 +08:00
David Monllao 237bc01fdf Merge branch 'MDL-61260_master' of git://github.com/markn86/moodle 2018-02-01 10:33:15 +08:00
Jake Dallimore 915140bced Merge branch 'MDL-61253-master' of git://github.com/andrewnicols/moodle 2018-02-01 10:33:15 +08:00
Andrew Nicols 8be8fb9a2e Merge branch 'MDL-60077-master' of https://github.com/HuongNV13/moodle 2018-02-01 10:33:15 +08:00
Andrew Nicols 377a1a4cbb Merge branch 'MDL-61250-master' of https://github.com/lucaboesch/moodle 2018-02-01 10:33:14 +08:00
Adrian Greeve 375db4ebc5 MDL-61322 reports: Reformated the display date to include the year. 2018-02-01 08:26:27 +08:00
AMOS bot 5b60901de6 Automatically generated installer lang files 2018-02-01 00:06:35 +00:00
AMOS bot cab91b357a Automatically generated installer lang files 2018-01-31 00:06:25 +00:00
Juan Leyva bf7a643f8a MDL-57394 mod_chat: New WS mod_chat_get_session_messages 2018-01-30 14:30:51 +01:00
Juan Leyva 2971d8421c MDL-57394 mod_chat: Move get session messages code to new function 2018-01-30 14:21:13 +01:00
Juan Leyva 26b4e8580d MDL-57394 mod_chat: New WS mod_chat_get_sessions 2018-01-30 13:52:05 +01:00
Juan Leyva 9b82171b18 MDL-57394 mod_chat: Move get sessions code to new function
To avoid code duplication when creating new web services we need to
move code to a function chat_get_sessions.
2018-01-30 13:52:05 +01:00
Juan Leyva e3c04bd98a MDL-60836 core_calendar: Return categoryid in get_calendar_events 2018-01-30 13:47:19 +01:00
Juan Leyva 0e8b3d929d MDL-61312 completion: Return completion for teachers via WS
core_completion_get_activities_completion_status was not returning
completion information for users with the teacher role only (when it
wasn’t a role allowed to track completion).
2018-01-30 12:19:52 +01:00
AMOS bot baa46ac0e2 Automatically generated installer lang files 2018-01-30 00:06:27 +00:00
Mark Nelson b02295039e MDL-42764 core: added missing string definition
Also changed the string index so it was not
vague. The index 'emailempty' appears as if it
could belong to a validation method for a form.
2018-01-29 19:07:57 +08:00
Luca Bösch 916a72bb51 MDL-37190 blocks: Block name label consistency
AMOS BEGIN
    MOV [blocktitle,blog],[configtitle,block_blog_tags]
   AMOS END
2018-01-29 09:43:30 +01:00
Huong Nguyen 0c2ecefc45 MDL-60077 User tours: pop-up triangle look bad next to the corners 2018-01-29 10:31:31 +07:00
Mark Nelson 029ec1edfe MDL-61260 auth_ldap: require /user/profile/lib.php file 2018-01-29 11:30:05 +08:00
Eloy Lafuente (stronk7) 94eeb7cbdb Merge branch 'wip-MDL-61242-master' of git://github.com/abgreeve/moodle 2018-01-29 01:41:06 +01:00
Andrew Nicols 9e82cab6b6 Merge branch 'MDL-58410_master' of git://github.com/markn86/moodle 2018-01-29 08:15:39 +08:00
Eloy Lafuente (stronk7) b70c74548b Merge branch 'MDL-61218-master' of git://github.com/lameze/moodle 2018-01-29 00:10:25 +01:00
David Monllao 93b2267239 MDL-61281 search_solr: PHP 7.2 compatible counts 2018-01-26 13:11:51 +01:00
Luca Bösch eeb8e895da MDL-61250 questions: Omit leading space in question preview link 2018-01-25 14:24:09 +01:00
Jun Pataleta 558a6a79d6 MDL-60997 core_message: Add replytoname in unit test 2018-01-25 16:47:12 +08:00
Andrew Nicols a4f914b54d weekly release 3.5dev 2018-01-25 15:14:24 +08:00
Andrew Nicols f486223806 NOBUG: Fixed SVG browser compatibility 2018-01-25 15:14:21 +08:00
Andrew Nicols 141878736f Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-01-25 15:14:20 +08:00
Jake Dallimore efd9343924 Merge branch 'MDL-60078-master-fix' of https://github.com/andrewnicols/moodle 2018-01-25 14:47:14 +08:00
Andrew Nicols dd4ac3d2ce MDL-60078 tool_usertours: Adjust accessibility checks for all themes 2018-01-25 12:45:56 +08:00
Eloy Lafuente (stronk7) 35925a2c06 MDL-61269 behat-extension: bump to fix some caps & defaults 2018-01-24 22:20:33 +01:00
Jun Pataleta ab9ee20ec7 MDL-44612 mod_glossary: Test importing of glossary entries
* And check that the importing of entries is reflected in the recent
activity block.
2018-01-24 16:38:54 +08:00
Jun Pataleta a52f3d9d0b MDL-44612 mod_forum: Confirm forum post listing in recent activity block 2018-01-24 16:38:54 +08:00
Damyon Wiese 4c3e2bdde7 MDL-61023 behat: Automate MDLQA-8158
Verify the general section does not appear in the navigation when it is empty.
2018-01-24 11:36:49 +08:00
Damyon Wiese 3a732ec7bb MDL-61058 behat: Automate MDLQA-8146
Verify that the keyholder is displayed on the self enrolment page.
2018-01-24 11:22:50 +08:00
Igor Sazonov 358b10a337 MDL-58410 user: add support for alternative name search
The solution about searching all external names fields (middlename etc) from course enrolment page (enrolled and enrolling pages)
2018-01-24 11:15:45 +08:00
Andrew Nicols 0b048da8c0 MDL-61234 tool_usertours: Rewrite feature to work with all themes 2018-01-24 10:05:42 +08:00
Simey Lameze e63a39e013 MDL-61218 lib: set chart border color to white 2018-01-23 12:01:46 +08:00
Andrew Nicols 6d326e1179 Merge branch 'MDL-61203_m35v3' of git://github.com/sbourget/moodle 2018-01-23 11:30:09 +08:00
Jun Pataleta 3894262a2f MDL-61152 calendar: Remove usage of undefined variable 2018-01-23 10:49:18 +08:00
Andrew Nicols 51d31432c8 MDL-61253 repository: Add referenced files to archives 2018-01-23 10:38:05 +08:00
Eloy Lafuente (stronk7) b878578d90 Merge branch 'MDL-61252-master' of git://github.com/andrewnicols/moodle 2018-01-23 02:13:10 +01:00
Eloy Lafuente (stronk7) dd2e263752 Merge branch 'MDL-60814_master' of git://github.com/markn86/moodle 2018-01-23 01:24:46 +01:00
Andrew Nicols caa9cb7124 MDL-61252 mod_quiz: Fix ambiguous behat check 2018-01-23 08:21:22 +08:00
Shamim Rezaie ce8c0126a9 MDL-51189 Quiz: Edit overrides when quiz is not available to students
The $active variable should simply be used to dim the text, nothing more.
2018-01-23 10:52:19 +11:00
Eloy Lafuente (stronk7) 4a87646654 Merge branch 'MDL-60918-master' of git://github.com/ryanwyllie/moodle 2018-01-22 20:17:20 +01:00
Eloy Lafuente (stronk7) 447cf62409 Merge branch 'MDL-58006-master' of git://github.com/zig-moodle/moodle 2018-01-22 19:57:33 +01:00
Eloy Lafuente (stronk7) 3c2501ac77 Merge branch 'MDL-60812-master' of https://github.com/mwehr/moodle 2018-01-22 16:33:07 +01:00
Eloy Lafuente (stronk7) 863d7ca5aa Merge branch 'MDL-60181-master' of git://github.com/mihailges/moodle 2018-01-22 12:30:44 +01:00
Shamim Rezaie 425817793a MDL-61027 calendar: Fix datetime profile field issue with non-Gregorian 2018-01-22 18:47:06 +11:00
Mihail Geshoski 11342dbcf8 MDL-60181 glossary: Glossary rating is displayed wrongly 2018-01-22 13:51:58 +08:00
Andrew Nicols 6092574ddf Merge branch 'MDL-61240' of git://github.com/stronk7/moodle 2018-01-22 11:36:41 +08:00
Zig Tan 1a9e8542c5 MDL-58006 assign: Reset blindmarking assignments to hidden
Fix to reset blindmarking assigments to hidden as part of Course reset with behat test
2018-01-22 11:35:52 +08:00
Andrew Nicols 0cc0f72ceb MDL-60078 behat: Convert ErrorException to DriverException 2018-01-22 11:29:29 +08:00
Andrew Nicols 60ce5848f6 Merge branch 'MDL-60078-master' of https://github.com/nashtechdev01/moodle 2018-01-22 11:08:19 +08:00
Eloy Lafuente (stronk7) dba5826124 Merge branch 'MDL-50469-master' of git://github.com/junpataleta/moodle 2018-01-22 02:43:08 +01:00
Eloy Lafuente (stronk7) a610100586 Merge branch 'MDL-61077' of git://github.com/timhunt/moodle 2018-01-22 02:26:04 +01:00
Eloy Lafuente (stronk7) df4e047944 Merge branch 'MDL-61234-master' of git://github.com/andrewnicols/moodle 2018-01-22 01:37:44 +01:00
Andrew Nicols a9a67db2c9 Merge branch 'MDL-45367-master' of https://github.com/lucaboesch/moodle 2018-01-22 08:34:32 +08:00
Eloy Lafuente (stronk7) 66915b0ea1 Merge branch 'wip-MDL-61175-master' of https://github.com/kwiliarty/moodle 2018-01-22 01:24:44 +01:00
Eloy Lafuente (stronk7) b0bb30e2e7 Merge branch 'MDL-61224_master' of git://github.com/markn86/moodle 2018-01-22 01:22:22 +01:00
Adrian Greeve d05c2ac7cc MDL-61242 repository_equella: Add source key when sending the source.
A thank you to Nelson Cheng for find this issue and suggesting a patch.
2018-01-20 10:56:18 +08:00
Andrew Nicols 64c9b4046c MDL-61234 tool_usertours: Wrap library calls in pendingjs 2018-01-19 15:06:45 +08:00
AMOS bot 6ba6f13b2c Automatically generated installer lang files 2018-01-19 00:06:48 +00:00
Eloy Lafuente (stronk7) 5405354d88 MDL-61240 dml: php72 compatibility, avoid counting on non-countables
This was not detected earlier because we have been unable to
run sqlsrv + php72 till now (not available).
2018-01-19 00:59:16 +01:00
Luca Bösch 7583efe9f5 MDL-45367 questions: Add SVG icons for question types. 2018-01-18 15:29:35 +01:00
Kevin Wiliarty a0b9bf4998 MDL-61175 mod_assign: roll grade-by reminder on restore 2018-01-18 08:36:34 -05:00
Arnaud Trouvé 30146ed1ad MDL-60997 messages: add property replytoname 2018-01-18 08:41:40 +01:00
Jun Pataleta 4369677af2 MDL-60646 user_portfolio: Fix action icons in Show / hide column
* Refactor the code to make it look cleaner and easier to read.
* Fixed incorrect alt-text for the configure icon.
* Fixed missing alt-text for show/hide icon.
2018-01-18 15:26:21 +08:00
Andrew Nicols f68150ad05 weekly release 3.5dev 2018-01-18 12:47:50 +08:00
Andrew Nicols eb65276e5b Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-01-18 12:47:47 +08:00
Eloy Lafuente (stronk7) b678f3309d Merge branch 'MDL-58711-master' of git://github.com/jleyva/moodle 2018-01-17 10:55:23 +01:00
David Monllao 09896c35f2 Merge branch 'MDL-60963-master' of git://github.com/ryanwyllie/moodle 2018-01-17 10:49:58 +01:00
Eloy Lafuente (stronk7) 2ab36722f2 Merge branch 'MDL-53113-master' of git://github.com/junpataleta/moodle 2018-01-17 10:37:23 +01:00
Juan Leyva ddeabbc53a MDL-58711 mod_assign: Fix draft and submission counting 2018-01-17 09:49:46 +01:00
Mark Nelson 822fe4fc15 MDL-60814 auth_ldap: prevent setting names breaking site upgrades 2018-01-17 14:18:02 +08:00
Ryan Wyllie 3152de6a8d MDL-60963 calendar: use related cache for module instances in export 2018-01-17 03:23:36 +00:00
Jun Pataleta dd9c292700 MDL-53113 libraries: Add cleaned up PHP doc blocks 2018-01-17 10:52:16 +08:00
Eloy Lafuente (stronk7) 87f6dfdedc Merge branch 'MDL-58711-master' of git://github.com/jleyva/moodle 2018-01-17 02:27:22 +01:00
Eloy Lafuente (stronk7) 76f8b36105 MDL-53113 libraries: Also remove core_renderer->notify_xxx() methods
Keeping the methods instead of fully deleting them alternative.
2018-01-17 02:18:16 +01:00
Eloy Lafuente (stronk7) 0e68db9e83 MDL-41312 groups: documment final removal in upgrade.txt 2018-01-17 02:04:16 +01:00
Eloy Lafuente (stronk7) 8bdee69d3e Merge branch 'MDL-41312-master' of git://github.com/ankitagarwal/moodle 2018-01-17 02:02:54 +01:00
AMOS bot 300ace312e Automatically generated installer lang files 2018-01-17 00:06:20 +00:00
Stephen Bourget cfdd8d12dd MDL-61203 badges: Allow profile picture as badge criteria 2018-01-16 10:18:23 -05:00
Jun Pataleta 3f5cae3679 Merge branch 'MDL-61221-master' of git://github.com/andrewnicols/moodle 2018-01-16 23:00:59 +08:00
David Monllao 641e7d41a6 MDL-60967 calendar: Add argument for missing mini param 2018-01-16 13:30:14 +01:00
David Monllao abf089f2a3 Merge branch 'MDL-60967-master' of git://github.com/ryanwyllie/moodle 2018-01-16 12:36:27 +01:00
KietLy 26872a8006 MDL-60078 User tours accessibility: Tab should go back into the pop-up 2018-01-16 17:36:25 +07:00
Mark Nelson e4d9eff640 MDL-61224 core_role: prevent short name from exceeding 100 chars 2018-01-16 18:14:42 +08:00
Andrew Nicols 68c2b72673 MDL-61223 course: Set default course start date 2018-01-16 14:26:19 +08:00
Andrew Nicols 389aad6eef MDL-61221 badges: Ignore site availabilty for behat
Behat sites should not be available publically, and the check against
the backpack API for site availablity can time out in some situations.

We should be testing as though the site _is_ available, as this is the
standard expectation.
2018-01-16 13:21:51 +08:00
Adam Olley e36a2f2aa7 MDL-60918 core_message: update preferences of user behat test 2018-01-16 05:07:13 +00:00
Andrew Nicols 174fbacc9b Merge branch 'MDL-60815-master' of git://github.com/ryanwyllie/moodle 2018-01-16 12:27:43 +08:00
Ryan Wyllie 745783fa13 MDL-60918 message: use current user in message preference update 2018-01-16 03:49:55 +00:00
Ryan Wyllie bb8bb8e41c MDL-60815 theme: fix loading editor styles 2018-01-16 03:39:09 +00:00
Jun Pataleta 56c9d66652 MDL-50469 core: Update lib/upgrade.txt about notify() final deprecation 2018-01-16 11:34:00 +08:00
Ankit Agarwal 943e290059 MDL-50469 libraries: Final deprecation of notify() 2018-01-16 11:28:26 +08:00
Andrew Nicols 5705fd0907 Merge branch 'MDL-60549-master' of https://github.com/davidknu/moodle 2018-01-16 10:08:26 +08:00
Andrew Nicols 0881745a9e Merge branch 'MDL-59567-master' of https://github.com/mackensen/moodle 2018-01-16 09:30:59 +08:00
Eloy Lafuente (stronk7) 5242a76a4b Merge branch 'MDL-61204-master' of git://github.com/andrewnicols/moodle 2018-01-16 02:16:40 +01:00
Eloy Lafuente (stronk7) 3e9282d486 Merge branch 'MDL-60959-master' of git://github.com/ryanwyllie/moodle 2018-01-16 01:14:39 +01:00
AMOS bot f79437ef3b Automatically generated installer lang files 2018-01-16 00:06:27 +00:00
Eloy Lafuente (stronk7) 4fa58ece62 Merge branch 'MDL-61081-master' of git://github.com/sarjona/moodle 2018-01-16 00:27:38 +01:00
Eloy Lafuente (stronk7) 2b2cad6f0a Merge branch 'MDL-37390-master' of git://github.com/sarjona/moodle 2018-01-16 00:25:15 +01:00
Eloy Lafuente (stronk7) d2d919e478 Merge branch 'MDL-61162-master' of git://github.com/junpataleta/moodle 2018-01-15 22:57:12 +01:00
Eloy Lafuente (stronk7) d7ba45290b Merge branch 'MDL-61063-master' of https://github.com/sammarshallou/moodle 2018-01-15 22:02:08 +01:00
Ankit Agarwal 3becfcd226 MDL-53113 libraries: Remove deprecated constants 2018-01-15 20:19:07 +01:00
Eloy Lafuente (stronk7) b3b79085e6 Merge branch 'MDL-51885-master' of git://github.com/ankitagarwal/moodle 2018-01-15 19:09:52 +01:00
Tim Hunt bccad386b0 MDL-61077 question stats: make calculations more robust 2018-01-15 16:07:57 +00:00
David Monllao 88d7a6a6b7 MDL-60960 qtype_essay: Update specific_filepicker_options deprecation message 2018-01-15 15:58:19 +01:00
David Monllao f4a30c5fdf Merge branch 'MDL-41090_rebased' of https://github.com/andrewhancox/moodle 2018-01-15 15:52:29 +01:00
David Balch d2bba97d77 MDL-60548 profile: Clarify some users can always see email addresses. 2018-01-15 12:21:09 +00:00
David Balch 565f3f25f0 MDL-60548 profile: Show profile email when 'maildisplay' allows it.
Adds 'email' to hiddenuserfields, which allows:
 * user to view email on their own profile,
 * users with cap site:viewuseridentity to view email on any profile (admins/teachers)
 * admin to veto display of email to users without site:viewuseridentity (except viewing their own)
 * unprivileged users to view if the profile's maildisplay permits it.

Changes in user/lib.php include removal of is_siteadmin() test, which
is redundant due to checks via has_capability().

Fixes regression from 2.9 (MDL-45774).
2018-01-15 12:21:09 +00:00
Andrew Hancox f3d9872aa3 MDL-41090 questions: Allow embedding files in response comments 2018-01-15 11:19:06 +00:00
Andrew Hancox fd2ce923cf MDL-41090 questions: Move editor and filepicker options into engine 2018-01-15 11:19:01 +00:00
David Monllao 2692af9032 Merge branch 'MDL-60960-master' of git://github.com/ryanwyllie/moodle 2018-01-15 12:10:20 +01:00
Eloy Lafuente (stronk7) c1dd6af98a Merge branch 'MDL-61166-master' of git://github.com/rezaies/moodle 2018-01-15 10:57:38 +01:00
David Monllao e3d292301e Merge branch 'MDL-55382-master' of git://github.com/damyon/moodle 2018-01-15 10:05:05 +01:00
David Monllao 5d89d24bea Merge branch 'MDL-61010-master' of git://github.com/andrewnicols/moodle 2018-01-15 09:53:48 +01:00
Andrew Nicols 110965aecd Merge branch 'MDL-61205_m35v1' of git://github.com/sbourget/moodle 2018-01-15 14:17:01 +08:00
Andrew Nicols a7db60dcf1 Merge branch 'MDL-61156-master' of https://github.com/mwehr/moodle 2018-01-15 13:48:08 +08:00
Shamim Rezaie e4d3ed18ff MDL-61166 Groups: Fixed a typo in PHPDoc 2018-01-14 09:18:12 +11:00
wehr 122c999536 MDL-60812 enrol_manual: Fixes not working default role 2018-01-12 16:13:27 +01:00
David Balch 224796f0fa MDL-60548 profile: Behat tests for email display in profiles. 2018-01-12 11:36:43 +00:00
sam marshall 470d59d31f MDL-61063 Scheduled tasks: Add link to clear fail delay 2018-01-12 11:10:29 +00:00
Farhan Karmali 6363c9ade2 MDL-37390 course: Set startdate and enddate properly for approved course
Once a course is approved the startdate and enddate were not set properly
This patch sets current date as startdate and enddate is startdate +
default duration of the course
2018-01-12 10:02:18 +01:00
Farhan Karmali 19f0685069 MDL-61081 enrol: Start and end date for courses created by external db
Course created by external db enrolment plugin should have start date as current date
and end date is todays date + default course duration
2018-01-12 09:57:22 +01:00
wehr e6a87bd192 MDL-61156 enrol_manual: Fixes not working manual quick enrolment in IE11 2018-01-12 09:14:28 +01:00
Stephen Bourget dccd9540d0 MDL-61205 completion: allow expected completion to support time 2018-01-11 21:30:13 -05:00
Andrew Nicols 4b55982446 MDL-61204 user: Fix random failure in behat
We need to get into the habit of not using usernames like 'student1'
and 'student10' as our matches are non-strict, and the tests become
dependent upon DB sort order.

This change adds a character after the varying value to act as a
delimter for all of these tests.
2018-01-12 09:35:56 +08:00
Eloy Lafuente (stronk7) f5b956679e weekly release 3.5dev 2018-01-12 02:12:35 +01:00
Juan Leyva ff626f7bb1 MDL-58711 mod_assign: Handle groups in get_submission_status 2018-01-11 15:03:08 +01:00
Jake Dallimore 9b49ac26d5 Merge branch 'MDL-61177-master' of git://github.com/andrewnicols/moodle 2018-01-11 09:22:24 +08:00
David Monllao 197672e26c Merge branch 'MDL-60427_dnd_folder_improved' of git://github.com/davosmith/moodle 2018-01-10 12:16:38 +01:00
David Knuplesch cc3c33f8ba MDL-60549 lti: support for moving embedded lti into separate tab 2018-01-10 12:08:44 +01:00
Davo Smith 96eaee3daf MDL-60427 dndupload: fix Firefox handling of 0-byte folders 2018-01-10 09:58:51 +00:00
Cameron Ball 9aa776a848 MDL-61143 core_files: Don't append dot when checking domain names or IP addresses.
Previously we appended a dot at the end of IP addresses and domain names in the
cURL security helper, but it causes issues with Google OAuth so this patch removes it.
2018-01-10 15:22:17 +08:00
Andrew Nicols 6d019541ad Merge branch 'MDL-43648-int-fix-1' of github.com:ryanwyllie/moodle 2018-01-10 10:38:20 +08:00
Ryan Wyllie 9f421a184a MDL-43648 form: fix hours and minutes in date_time_selector 2018-01-10 02:28:19 +00:00
Andrew Nicols 168fc2d9ec Merge branch 'MDL-61061_hideif_group' of git://github.com/davosmith/moodle 2018-01-10 08:46:05 +08:00
Andrew Nicols 57e226b96f MDL-61177 badges: JS pending checks in connection test 2018-01-10 08:12:59 +08:00
Andrew Hancox 18e1450b4b MDL-41090 questions: Support for files in behaviour response 2018-01-09 21:12:58 +00:00
Adrian Greeve f1d1a60e0a MDL-61131 repositories: Added a key to verify incoming urls. 2018-01-09 11:34:37 +01:00
Cameron Ball 4cca0082df MDL-61143 core_files: Update unit tests for curl_security_helper
Previously some of the unit tests were passing "by accident" becuase
we had the security helper letting through domains where the DNS lookup
failed. That behaviour has changed and now such domains are blocked.

Additionally tests for domains with multiple A records and weird Unicode
stuff have been added.

This patch also mocks the DNS resolution in the test, rather than actually
resolving the domain.
2018-01-09 16:54:32 +08:00
Cameron Ball fbe7f1f8ba MDL-61143 core_files: Block hosts that cannot be determined to be an IP address of domain name
Freaky deaky Unicode/octal/hex domains can be resolved by cURL but are technically not valid.

This patch causes anything that Moodle does not consider to be a valid domain or IP to be blocked
by the cURL security helper.
2018-01-09 16:54:32 +08:00
Cameron Ball cae2eb357d MDL-61143 core_files: Check all A records when testing blocked IPs 2018-01-09 16:54:32 +08:00
Juan Leyva 01a79b4e86 MDL-60908 mod_quiz: Return question state only when configured
The question state should be returned following the quiz review options
settings.
2018-01-09 16:54:32 +08:00
David Monllao 51673a3469 Merge branch 'wip-MDL-60742-master' of git://github.com/marinaglancy/moodle 2018-01-09 09:52:44 +01:00
David Monllao 1679485693 Merge branch 'MDL-60079-master' of https://github.com/nashtechdev01/moodle 2018-01-09 08:09:15 +01:00
Andrew Nicols a52fc1f7a8 Merge branch 'wip-MDL-60415-master' of git://github.com/abgreeve/moodle 2018-01-09 14:30:34 +08:00
David Knuplesch a2701db412 MDL-60415 mod_lti: avoid confusing error-message 2018-01-09 14:00:37 +08:00
Ryan Wyllie 60908b2187 MDL-60967 calendar: only load course filter when required 2018-01-09 05:57:38 +00:00
Thinh Pham 48a9fd89e0 MDL-60079 User tours: leave unnecessary aria tags in the page 2018-01-09 11:26:14 +07:00
Andrew Nicols 61f56fd5f9 Merge branch 'MDL-43648_m35v2' of https://github.com/sbourget/moodle 2018-01-09 11:43:33 +08:00
Ryan Wyllie a606f2e2c5 MDL-60967 calendar: preload contexts in course_filter_selector 2018-01-09 03:04:41 +00:00
Jun Pataleta f9b3597e21 Merge branch 'MDL-61068-master' of git://github.com/andrewnicols/moodle 2018-01-09 09:52:47 +08:00
Ryan Wyllie 4e6c9ead6d MDL-60959 calendar: remove duplicate events export in weekday 2018-01-09 01:51:13 +00:00
Ryan Wyllie 6b02488559 MDL-60959 calendar: remove duplicate course export in event exporter 2018-01-09 01:51:13 +00:00
Ryan Wyllie bb4691ec7b MDL-60959 calendar: use related course in calendar_event_exporter 2018-01-09 01:51:12 +00:00
Andrew Nicols 08ac68de3e MDL-61068 mod_forum: Fix neighbour test dates 2018-01-09 09:08:40 +08:00
Eloy Lafuente (stronk7) b9e05ae65d Merge branch 'MDL-60943-master' of https://github.com/sammarshallou/moodle 2018-01-09 00:52:17 +01:00
Eloy Lafuente (stronk7) abe4713565 Merge branch 'MDL-61098-master' of git://github.com/jleyva/moodle 2018-01-08 21:06:13 +01:00
Eloy Lafuente (stronk7) 8d9a55a05b Merge branch 'master_MDL-61050' of https://github.com/danmarsden/moodle 2018-01-08 20:38:29 +01:00
Eloy Lafuente (stronk7) d8ef541bbc Merge branch 'MDL-61068-master' of git://github.com/andrewnicols/moodle 2018-01-08 19:56:24 +01:00
David Monllao 1b9fcbf7a7 Merge branch 'MDL-60427_dnd_folder_improved' of git://github.com/davosmith/moodle 2018-01-08 17:42:30 +01:00
David Monllao cba780d418 Merge branch 'MDL-57892_filter_outline' of git://github.com/davosmith/moodle 2018-01-08 17:19:12 +01:00
David Monllao 22a9fed6b2 Merge branch 'MDL-61169-master' of git://github.com/andrewnicols/moodle 2018-01-08 14:58:31 +01:00
Andrew Nicols 2cf6b060cd MDL-61169 iplookup: Change to github.com IP 2018-01-08 17:15:12 +08:00
Eloy Lafuente (stronk7) 7110a3eed6 Merge branch 'MDL-61046-master-enfix' of git://github.com/mudrd8mz/moodle 2018-01-08 10:05:39 +01:00
Andrew Nicols b3f7f6d096 Merge branch 'MDL-57786-master' of git://github.com/zig-moodle/moodle 2018-01-08 15:16:06 +08:00
Ankit Agarwal 84fe42d8b6 MDL-51885 lang: Remove strings deprecated in 3.1 2018-01-08 12:44:07 +05:30
Andrew Nicols 7d6d0788f2 Merge branch 'MDL-43042-master' of git://github.com/mihailges/moodle 2018-01-08 15:12:51 +08:00
Andrew Nicols 0b4304b6e3 Merge branch 'MDL-53985-master' of git://github.com/damyon/moodle 2018-01-08 12:39:19 +08:00
Jun Pataleta 0552bc77ba MDL-61162 mod_forum: Remove unnecessary forum creation step 2018-01-08 11:00:08 +08:00
Andrew Nicols 098f4337d2 MDL-61068 mod_forum: Round timed posts to nearest 60 seconds
This slightly reduces the effectiveness of the DB query cache, but gives
us correct results every time.
2018-01-05 16:43:02 +08:00
Mihail Geshoski 7b319d20a8 MDL-43042 lesson: Confusing feedback order in multiple answer questions 2018-01-05 15:03:14 +08:00
Dan Marsden 0c64c64b48 MDL-61050 auth_ldap: fix regression caused by MDL-42834 2018-01-05 10:43:20 +13:00
sam marshall d20ec3606b MDL-60943 core_search: Improve exception for preg_replace errors 2018-01-04 17:27:46 +00:00
Helen Foster 700522badd MDL-61046 lang: Merge English strings from the en_fix language pack
Significant string changes:

* pluginname_desc, enrol_category - improved explanation
* pathtopythondesc, core_admin - mentioning Python version
* configdeleteunconfirmed, core_admin - setting applies to more than
  just email-based self-registration
2018-01-04 11:30:54 +01:00
David Monllao 013f0b2266 weekly release 3.5dev 2018-01-04 11:02:34 +01:00
David Monllao 443d34d115 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2018-01-04 11:02:33 +01:00
Mihail Geshoski ec819f5141 MDL-61153 lesson: Inconsistent column sizing in detailed statistics 2018-01-04 15:46:11 +08:00
Marina Glancy 099bca6de6 MDL-60742 calendar: allow customisation of 12/24h time format strings 2018-01-04 15:16:08 +08:00
Jun Pataleta 06634b7550 Merge branch 'MDL-40613-master-ldap' of git://github.com/andrewnicols/moodle 2018-01-04 14:57:32 +08:00
Andrew Nicols 725fcf3178 MDL-40613 auth_ldap: Call update_user_record on create 2018-01-04 14:32:13 +08:00
Jun Pataleta 0138cb7cf1 Merge branch 'MDL-40613_master-fix' of git://github.com/markn86/moodle 2018-01-04 09:57:38 +08:00
AMOS bot b8787d5957 Automatically generated installer lang files 2018-01-04 00:06:51 +00:00
Davo Smith d5cd1496ce MDL-61061 formslib: make sure hideIf rules hide labels within groups 2018-01-03 13:05:58 +00:00
Davo Smith 385280469a MDL-57892 report_outline: add behat tests 2018-01-03 12:52:50 +00:00
Davo Smith eadd195151 MDL-57892 report_outline: add date filter 2018-01-03 12:52:50 +00:00
Davo Smith 4e737cf37f MDL-60427 dndupload: detect attempts to upload folders 2018-01-03 12:36:32 +00:00
Mark Nelson e8a1a5868a MDL-40613 auth_ldap: removed usage of profile_load_custom_fields()
Also reverted profile_load_custom_fields() signature and changed
behaviour of the new function profile_save_custom_fields().
2018-01-03 18:13:01 +08:00
Jun Pataleta 60236650d6 Merge branch 'MDL-60962-master' of git://github.com/ryanwyllie/moodle 2018-01-03 16:53:49 +08:00
Jun Pataleta 80d7aa1813 Merge branch 'MDL-56543-master' of git://github.com/ankitagarwal/moodle 2018-01-03 09:26:12 +08:00
AMOS bot 610ab37f55 Automatically generated installer lang files 2018-01-03 00:06:15 +00:00
Eloy Lafuente (stronk7) ff9a93a8b6 Merge branch 'MDL-23887-master-2' of https://github.com/snake/moodle 2018-01-03 00:24:41 +01:00
David Monllao e3cd0dfc2c Merge branch 'MDL-57727-master' of git://github.com/mihailges/moodle 2018-01-02 12:33:40 +01:00
Jake Dallimore fa2a9cc933 MDL-23887 database: fix use of deprecated system tables for mssql
Catalog views are available which we should use instead.
2018-01-02 17:19:17 +08:00
Jun Pataleta 1588837a9d Merge branch 'MDL-40613_master' of git://github.com/markn86/moodle 2018-01-02 16:50:29 +08:00
David Monllao 6ffb51e74c Merge branch 'MDL-59813-master' of git://github.com/farhan6318/moodle 2018-01-02 09:03:03 +01:00
David Monllao b5e7264543 Merge branch 'MDL-61107' of git://github.com/timhunt/moodle 2018-01-02 08:34:39 +01:00
Zig Tan e5d9af8c56 MDL-57786 mod_assign: Fix word count for online text submissions 2018-01-02 13:10:37 +08:00
Jun Pataleta dc61d1bea0 Merge branch 'MDL-56945-master' of git://github.com/zig-moodle/moodle 2018-01-02 10:09:45 +08:00
Farhan Karmali c0aca8f3c7 MDL-59813 navigation: Changed 'more..' link to point to dashboard
In the navigation menu , the 'more' option was previously taking the user to all course page
This patch fixes that behavior and takes the user to the dashboard
2017-12-29 15:10:56 +05:30
Zig Tan 6976c8e1b5 MDL-56945 assign: Add 'View all submissions' link to PDF feedback/grader 2017-12-29 09:47:40 +08:00
David Monllao 3fa531ea2c weekly release 3.5dev 2017-12-28 12:35:12 +01:00
David Monllao ce37a8cc7e MDL-51089 mod_quiz: Hide first page last node 2017-12-28 10:15:08 +01:00
Ankit Agarwal 50587d71a5 MDL-41312 groups: Remove old bulk events 2017-12-28 11:57:34 +05:30
Ankit Agarwal a3ce9a453c MDL-56543 tasks: Add last run column to task list 2017-12-28 10:04:11 +05:30
David Monllao 1a43d6de99 MDL-50246 question: enable/disable add question button when available 2017-12-27 17:54:59 +01:00
Eloy Lafuente (stronk7) b81e81b162 Merge branch 'MDL-60363-master' of https://github.com/Kathrin84/moodle 2017-12-27 17:54:59 +01:00
Eloy Lafuente (stronk7) bb3e956ed9 Merge branch 'MDL-60966-master' of https://github.com/snake/moodle 2017-12-27 17:54:58 +01:00
Eloy Lafuente (stronk7) 72614d74d8 Merge branch 'MDL-60981-master' of https://github.com/sammarshallou/moodle 2017-12-27 17:54:58 +01:00
David Monllao f108433bcb Merge branch 'MDL-50246-master' of https://github.com/lucaboesch/moodle 2017-12-27 17:54:57 +01:00
David Monllao 8b36f14740 Merge branch 'MDL-51089-master' of https://github.com/lucaboesch/moodle 2017-12-27 17:54:57 +01:00
David Monllao ffd392a17b Merge branch 'MDL-58983-master' of git://github.com/damyon/moodle 2017-12-27 17:54:56 +01:00
David Monllao 4292318562 Merge branch 'MDL-61056-master-feedbackresponsenav' of git://github.com/mudrd8mz/moodle 2017-12-27 17:54:56 +01:00
David Monllao c1d685b500 Merge branch 'MDL-33886-master' of git://github.com/zig-moodle/moodle 2017-12-27 17:54:55 +01:00
David Monllao 1b374b4f2c MDL-60439 block_tags: Removing extra var assign 2017-12-27 17:54:55 +01:00
David Monllao 6e02b56f2a Merge branch 'MDL-60439-master' of https://github.com/lucaboesch/moodle 2017-12-27 17:54:55 +01:00
David Monllao 7b546cdb83 Merge branch 'MDL-60971-master' of git://github.com/mihailges/moodle 2017-12-27 17:54:54 +01:00
David Monllao 3410ff644f Merge branch 'MDL-60942-master' of git://github.com/ryanwyllie/moodle 2017-12-27 17:54:54 +01:00
David Monllao 41d14d5ca4 Merge branch 'MDL-60359-master' of https://github.com/lucaboesch/moodle 2017-12-27 17:54:53 +01:00
Eloy Lafuente (stronk7) 8cd0679099 Merge branch 'MDL-2051-master-2' of git://github.com/junpataleta/moodle 2017-12-26 01:25:14 +01:00
Eloy Lafuente (stronk7) 974e820e53 Merge branch 'wip-MDL-56246-master' of https://github.com/kwiliarty/moodle 2017-12-26 01:04:19 +01:00
Eloy Lafuente (stronk7) 1403c0d57a Merge branch 'MDL-61062_master' of git://github.com/dmonllao/moodle 2017-12-26 00:52:25 +01:00
Eloy Lafuente (stronk7) 708be473d6 Merge branch 'MDL-61055-master-v2' of git://github.com/lameze/moodle 2017-12-26 00:44:08 +01:00
Eloy Lafuente (stronk7) d048e94dfe Merge branch 'MDL-43827-master' of git://github.com/mihailges/moodle 2017-12-26 00:25:28 +01:00
Tim Hunt d2e1aa76e1 MDL-61107 quiz editing: handle invalid Maximum grade input 2017-12-22 13:35:29 +00:00
sam marshall 65da6840f8 MDL-60981 core_search: UI to gradually reindex a single area
Adds a new 'Gradual reindex' link to the search areas page for each
area. When clicked, this takes you to a confirm prompt, and then
adds each context from that search area to the indexing queue.

The search areas page now displays the 'Additional indexing queue'
(if it is non-empty). The table shows the first 10 items in the
queue, and it also indicates the total number in case there are
more. (I don't think people really need to see the entire
contents of it, so I didn't implement paging.)
2017-12-22 13:05:11 +00:00
sam marshall 8736fbc190 MDL-60981 core_search: New indexpriority field in search index queue
Adds indexpriority field to the database table which holds a queue of
indexing requests. This allows for potentially large area reindexes
to have a lower priority, so as not to halt the special indexes that
run after a course restore.
2017-12-22 13:05:10 +00:00
sam marshall 25564a784b MDL-60981 core_search: Add get_contexts_to_reindex API
This new API returns a list of contexts for each search area. This
allows the areas to be reindexed in a sensible order (roughly
speaking, newest first) and also allows this to be controlled by
each area.

An implementation in the forum module means that forums are ordered
by the date of the most recent discussion, so that active forums
will be reindexed early even if they were created a long time ago.
2017-12-22 13:02:37 +00:00
Kathrin Osswald e20b490da3 MDL-60363 conditional activities: Dim the icon also in student's view.
The class dimmed_text would only dim the activity's title and not the icon.
The teacher has both, icon and text, dimmed. So I added the class dimmed
to the class dimmed_text, what dims both elements for the students.
2017-12-22 13:14:22 +01:00
Kevin Wiliarty 8284ffede3 MDL-56246 gradebook: sitewide setting for grade export with feedback 2017-12-22 06:51:11 -05:00
Luca Bösch 4bfcdfed4e MDL-50246 quiz: Add selected questions to quiz btn disabled 0 selected 2017-12-22 09:25:12 +01:00
Luca Bösch 59d3deb9c0 MDL-60439 blocks: Tags block title multilang 2017-12-22 09:24:26 +01:00
Luca Bösch 11f2cec1ac MDL-51089 quiz: "Add" menu in edit quiz more keyboard accessible 2017-12-22 09:23:07 +01:00
Luca Bösch 1d8d3a0186 MDL-60359 theme_boost: have correct mc question check mark not overlap 2017-12-22 09:20:48 +01:00
Ryan Wyllie 0377e78e36 MDL-60966 external: contexts can be passed to external format funcs 2017-12-22 13:10:39 +08:00
Zig Tan 85ba9528c9 MDL-33886 backup: Add backup filename length < 255 char validation 2017-12-22 13:03:08 +08:00
Jun Pataleta 9993c1d02c weekly release 3.5dev 2017-12-22 14:41:56 +13:00
Jun Pataleta 847f10653d Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2017-12-22 14:41:55 +13:00
Eloy Lafuente (stronk7) 3e38589f77 Merge branch 'MDL-32113-master-xmldbnumeric' of https://github.com/mudrd8mz/moodle 2017-12-21 22:43:26 +01:00
David Mudrák 7cdb4266e0 MDL-32113 xmldb: Fix and extend unit tests for XMLDB_TYPE_NUMBER
These tests describe the new behaviour of the XMLDB_TYPE_NUMBER fields.
2017-12-21 19:48:04 +01:00
David Mudrák 521252d642 MDL-32113 xmldb: Support numeric fields with precision up to 38 digits
The patch increases the maximum supported precision (total number of
digits) for numeric (decimal) fields to 38 digits (current limit on
Oracle and MSSQL).

Additionally, we add our own limit for the whole number part of numeric
fields so they are no longer than integer fields (20 digits). This is to
make it easier to eventually convert from one field type to another.
Note that PHP floats commonly support precision of roughly 15 digits
anyway.
2017-12-21 19:48:03 +01:00
David Mudrák 457eaef9ec MDL-32113 xmldb: Remove hard-coded exceptions for long number fields
We are going to unify the maximum supported precision of all numeric
fields to 38 digits (which are the current Oracle and MSSQL limits). Get
rid of hard-coded exceptions for longer fields.
2017-12-21 15:37:08 +01:00
Juan Leyva b857590479 MDL-61098 repository: Retrieve correct context for repo instance
The repository instance was being retrieved without specifying a valid
context that is required in further API checks.
2017-12-21 11:33:11 +01:00
Mihail Geshoski f44f9db418 MDL-43827 filepicker: Multiple actions not accessible using keyboard 2017-12-21 14:06:25 +08:00
David Monllao ba211d5678 MDL-61062 analytics: Fix unit test wrong statement 2017-12-20 07:29:01 +01:00
Jun Pataleta 3cdb015828 Merge branch 'MDL-50666-master-fix' of git://github.com/junpataleta/moodle 2017-12-20 15:57:17 +13:00
Jun Pataleta 8403325c9e MDL-50666 core: Add sortorder to fields to be queried 2017-12-20 15:43:19 +13:00
Jun Pataleta 10c607a9bc MDL-50666 core: Add allowview key in install.xml 2017-12-20 14:46:42 +13:00
Jun Pataleta b65198b81b Merge branch 'MDL-50666-master-fix' of git://github.com/junpataleta/moodle 2017-12-20 13:42:58 +13:00
Jun Pataleta ccb8edbff5 MDL-50666 behat: Make feature names unique
* We need to have unique feature names for our Behat tests.
* I also removed the custom Behat tag @role_visibility as we only allow
Behat tags with the component name in Frankenstyle format.
2017-12-20 13:37:28 +13:00
Jun Pataleta a8dffa2d03 Merge branch 'MDL-50666-master' of https://github.com/junpataleta/moodle 2017-12-20 12:49:28 +13:00
Jun Pataleta eaf01ad4aa MDL-50666 group: Make test run without @javascript 2017-12-20 10:16:44 +13:00
Davo Smith c62f0a396b MDL-61061 formslib: add data-groupname to groups to fix hideIf rules 2017-12-19 10:47:54 +00:00
Eloy Lafuente (stronk7) a4e7e6f345 Merge branch 'MDL-60567-master' of git://github.com/damyon/moodle 2017-12-19 11:30:08 +01:00
Damyon Wiese baa8c89a56 MDL-32113 qtype_numerical: Fix db upgrade step
The upgrade step was creating a column with no default, which is different to the structure
for a new install. This was picked up by the magical cibot.
2017-12-19 16:54:25 +08:00
Simey Lameze 39cda40590 MDL-61055 calendar: guest user cannot create events 2017-12-19 16:30:08 +08:00
Andrew Nicols 600bd182fc MDL-61010 mod_forum: Add unread link to blog view 2017-12-19 15:51:58 +08:00
Damyon Wiese 6e1bfdda19 Merge branch 'MDL-32113-master' of https://github.com/lucaboesch/moodle 2017-12-19 15:12:11 +08:00
Luca Bösch ff4d8e802c MDL-32113 qtype numerical: Cope with oracle & mssql DB float 38 limit. 2017-12-19 08:07:22 +01:00
David Monllao df060516ed Merge branch 'MDL-60938-master-2' of git://github.com/junpataleta/moodle 2017-12-19 07:53:15 +01:00
Mark Nelson 55595bcfcb MDL-40613 auth: added note in upgrade.txt 2017-12-19 14:13:35 +08:00
Mark Nelson 4afad1faeb MDL-40613 auth: moved lang string to common auth file
Also fixed call to get_string() and defined var 'errorlogtag'
in base class.

AMOS BEGIN
 MOV [auth_dbusernotexist,auth_db],[auth_usernotexist,auth]
AMOS END
2017-12-19 14:13:35 +08:00
Mark Nelson 4e133e775c MDL-40613 auth: avoid undefined property 'suspended_attribute'
Re-introduce MDL-53580.
2017-12-19 14:13:34 +08:00
Mark Nelson 220ca688c1 MDL-40613 auth_ldap: include necessary file for saving profile fields 2017-12-19 14:13:34 +08:00
Albert Gasset 2c977ceb29 MDL-40613 auth_ldap: sync custom profile fields 2017-12-19 14:13:34 +08:00
David Monllao d41203c55f Merge branch 'MDL-61045' of git://github.com/timhunt/moodle 2017-12-19 06:43:17 +01:00
David Monllao dcae64d3a3 Merge branch 'MDL-61016_hideif_disabledif' of git://github.com/davosmith/moodle 2017-12-19 06:16:18 +01:00
Simey Lameze 7a1a9ec635 MDL-57431 mod_quiz: remove unnecessary class from selector 2017-12-19 12:47:43 +08:00
Andrew Nicols 3d444c4e6d MDL-19667 report_outline: Clone permissions from view capability 2017-12-19 11:51:36 +08:00
Andrew Nicols b09b1a0a0b Merge branch 'MDL-19667-master-viewuserreport' of https://github.com/dmitriim/moodle 2017-12-19 11:49:33 +08:00
Damyon Wiese 5fe6205813 Merge branch 'MDL-60767-master-3' of https://github.com/snake/moodle 2017-12-19 11:12:47 +08:00
Damyon Wiese b260dec8b7 Merge branch 'MDL-59999-master' of git://github.com/mihailges/moodle 2017-12-19 10:49:36 +08:00
Andrew Hancox 64cd459648 MDL-50666 core: Rename allow_ACTION to core_role_set_ACTION_allowed 2017-12-19 13:53:23 +13:00
Andrew Hancox a63cd3e2ca MDL-50666 core: Add function get_viewable_roles to set role visibility 2017-12-19 13:53:23 +13:00
Jun Pataleta 3e882c418b Merge branch 'MDL-59709_master' of https://github.com/marcusfabriczy/moodle 2017-12-19 13:21:35 +13:00
Eloy Lafuente (stronk7) e20a041100 Merge branch 'MDL-59200-master' of git://github.com/damyon/moodle 2017-12-19 01:08:15 +01:00
Eloy Lafuente (stronk7) cb5fb8aea5 Merge branch 'MDL-58888-master' of git://github.com/junpataleta/moodle 2017-12-19 01:04:54 +01:00
Eloy Lafuente (stronk7) dc3f4ac929 Merge branch 'MDL-60750-master' of git://github.com/lameze/moodle 2017-12-19 00:56:14 +01:00
Eloy Lafuente (stronk7) 2b7fda50d9 Merge branch 'wip-MDL-60594-master' of git://github.com/marinaglancy/moodle 2017-12-19 00:36:28 +01:00
Eloy Lafuente (stronk7) a1036e90f8 Merge branch 'MDL-60036-fix-string-online_user_block' of https://github.com/DSI-Universite-Rennes2/moodle 2017-12-19 00:26:31 +01:00
Jun Pataleta b3a36eb80d Merge branch 'm35_MDL-60793_Mod_Chat_Reserved_Words_In_MySQL8p0p3_And_Above' of https://github.com/scara/moodle 2017-12-19 12:23:18 +13:00
Eloy Lafuente (stronk7) fc0c84c04b MDL-43466 mod_assign: fix corresponding behat tests 2017-12-19 00:11:54 +01:00
Eloy Lafuente (stronk7) 22c6affdef Merge branch 'MDL-43466_master' of git://github.com/markn86/moodle 2017-12-19 00:11:52 +01:00
David Mudrák c581517dd7 MDL-61056 feedback: Fix the response navigation links
Floats are evil and unreliable. Even with the clearfix class added to
the response_navigation wrapper, the Next link would remain unaligned.
We need a proper three columns layout here.

It did not feel necessary to introduce a special template here so I'm
making use of the core one.
2017-12-18 21:56:44 +01:00
David Monllao 73aa231f83 Merge branch 'MDL-60653-master' of git://github.com/rezaies/moodle 2017-12-18 17:59:32 +01:00
David Monllao 4ea34b6d65 Merge branch 'MDL-61042-master' of git://github.com/junpataleta/moodle 2017-12-18 17:26:48 +01:00
David Monllao 7bce505885 Merge branch 'MDL-61040-master' of git://github.com/junpataleta/moodle 2017-12-18 17:24:52 +01:00
Eloy Lafuente (stronk7) 6663f615ed Merge branch 'wip-MDL-60161-master-test' of git://github.com/abgreeve/moodle 2017-12-18 16:09:51 +01:00
Matteo Scaramuccia 307dce6cf3 MDL-60793 mod_chat: Renamed 'system' into 'issystem'
'system' is now a reserved word in MySQL 8.0.3+.
2017-12-18 15:23:11 +01:00
David Monllao f71a4993c7 Merge branch 'MDL-31521-master' of https://github.com/lucaboesch/moodle 2017-12-18 13:14:22 +01:00
Eloy Lafuente (stronk7) 10d22cceb5 Merge branch 'MDL-56932-master' of git://github.com/lameze/moodle 2017-12-18 11:40:17 +01:00
David Monllao 3bcf2d2895 Merge branch 'MDL-60858-master' of git://github.com/ryanwyllie/moodle 2017-12-18 11:34:47 +01:00
David Monllao f41e1773e9 Merge branch 'MDL-61022-master' of git://github.com/damyon/moodle 2017-12-18 10:21:26 +01:00
David Monllao ee35376e28 Merge branch 'wip-MDL-52100-master' of git://github.com/abgreeve/moodle 2017-12-18 10:07:46 +01:00
Mihail Geshoski 010c17d346 MDL-60971 blocks: Remote rss feed block should display publish date 2017-12-18 16:20:37 +08:00
Andrew Nicols b91696eeac Merge branch 'MDL-42676-master' of git://github.com/zig-moodle/moodle 2017-12-18 15:08:37 +08:00
Andrew Nicols 6cb535f081 Merge branch 'MDL-60061-master' of git://github.com/lameze/moodle 2017-12-18 14:03:47 +08:00
Adrian Greeve c86189ae02 MDL-52100 filelib: Update to unit tests for maxbytes. 2017-12-18 13:12:22 +08:00
Adrian Greeve 48a9856da8 MDL-52100 filelib: Files that are oversized are checked with user.
Files that are oversized could have been uploaded by a user who
can ignore the file size limits. These files should not be deleted
in these situations.
2017-12-18 13:12:22 +08:00
Damyon Wiese dcb623be71 Merge branch 'MDL-34389-subcategories-for-category-changer' of https://github.com/lucaboesch/moodle 2017-12-18 12:56:58 +08:00
Damyon Wiese 2d08e6565a Merge branch 'MDL-57431-master' of git://github.com/lameze/moodle 2017-12-18 12:51:33 +08:00
Damyon Wiese e95db3416c Merge branch 'MDL-54967-master' of git://github.com/zig-moodle/moodle 2017-12-18 12:43:50 +08:00
Damyon Wiese 8c2a7f9c38 Merge branch 'wip-MDL-49995-master' of git://github.com/marinaglancy/moodle 2017-12-18 11:35:29 +08:00
Andrew Nicols 560ae357a0 Merge branch 'MDL-57564-master-courseorder' of git://github.com/mudrd8mz/moodle 2017-12-18 11:04:20 +08:00
Jake Dallimore cf26b6f824 MDL-60767 admin: fix usage of admin_write_settings
Make sure we always checks for failed validation, before redirecting.
A positive return value does not signal that all settings were able
to be written, only that at least one was - errors still need to be
checked!
2017-12-18 09:19:55 +08:00
Mihail Geshoski a86b75608a MDL-59999 lesson: Boost grade essays page not indicating grade status
AMOS BEGIN
    CPY [graded,assign],[graded,lesson]
    CPY [notgraded,assign],[notgraded,lesson]
AMOS END
2017-12-18 09:14:11 +08:00
AMOS bot 71ef4532de Automatically generated installer lang files 2017-12-18 00:06:09 +00:00
Tim Hunt 06b4ab81a8 MDL-61045 quiz settings: add back missing disabledIf
This got broken in Moodle 2.1 by MDL-20636.
2017-12-15 13:11:57 +00:00
Julien Boulen 6c519fe4d7 MDL-60036 block_online_users: complete string about online users
- add 3 varations of "x online users" string
- change string format from "x minutes: x online users" to "x online users (x minutes)"
- factorize some duplicated code
2017-12-15 09:36:04 +01:00
Damyon Wiese b6fdcd6071 MDL-55382 assign: Sort editpdf quick list 2017-12-15 14:57:13 +08:00
Jun Pataleta 409da21320 MDL-61042 mod_lesson: Initialise pageid variable 2017-12-15 17:36:16 +13:00
Damyon Wiese 3c016111bd MDL-53985 assign: Do not remove annotations
When an assignment submission is reverted to a draft, the timemodified on
the submission should not be modified. Changing the timemodified causes the
editpdf code to assume the pdf is stale, and forces all annotations to be removed.
2017-12-15 11:50:43 +08:00
Jun Pataleta d766bbc5b9 MDL-58888 mod_choice: Sort choice_get_my_response() results by optionid 2017-12-15 15:55:48 +13:00
Jun Pataleta 3af40cc62e MDL-58888 mod_choice: Verify sorting when testing multiple selections
* Improve test_choice_get_my_response() to verify the sorting of the
  responses returned by choice_get_my_response().
* Fix correct usage of choice_get_my_response().
2017-12-15 15:53:11 +13:00
Zig Tan e0d0f411cf MDL-54967 backup: Fix IMS CC import URL decoding for XML format
HTML encoding special characters to avoid XML compatibility issues during
Course backup restoration and avoid double encoding.
2017-12-15 09:19:31 +08:00
Stephen Bourget 57422d7158 MDL-43648 course: Allow start /end dates to have times 2017-12-14 19:48:31 -05:00
Jun Pataleta 07a46481fe MDL-61040 mod_choice: Save my choice button needs some space 2017-12-15 13:06:14 +13:00
Jun Pataleta af6c39045e MDL-60938 mod_choice: Fix rendering of users for choice results 2017-12-15 12:52:16 +13:00
Matteo Scaramuccia e8be9e7646 MDL-60793 core_ddl: Added the new MySQL 8 reserved words 2017-12-14 22:46:48 +01:00
Luca Bösch e00e36fa4f MDL-31521 questions: Allow more than one unit with multiplier equal to 1 2017-12-14 22:34:19 +01:00
Luca Bösch f987df174f MDL-34389 course: switch to subcategory w/ course:changecategory perms 2017-12-14 22:32:23 +01:00
Eloy Lafuente (stronk7) 95b7be7f05 weekly release 3.5dev 2017-12-14 14:47:29 +01:00
Eloy Lafuente (stronk7) 10e52ed009 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2017-12-14 14:47:27 +01:00
Dmitrii Metelkin 124f314d22 MDL-19667 report: Add a new capability to view user outline report 2017-12-14 16:16:04 +11:00
AMOS bot ebb250fefb Automatically generated installer lang files 2017-12-14 00:06:01 +00:00
Mark Nelson 464ddd07d5 MDL-43466 mod_assign: improve submission help text
Thanks go to Rajneel Totaram for the report.
2017-12-13 15:38:45 +08:00
Marina Glancy 10c71d8a2f MDL-31436 registration: do not send false in update request 2017-12-13 13:51:25 +08:00
Damyon Wiese ff3e43eeb0 MDL-61022 recyclebin: Verify groups are restored 2017-12-13 13:34:07 +08:00
Ryan Wyllie e236dc1446 MDL-60858 feedback: update behat tests for lang string change 2017-12-13 05:07:19 +00:00
Ryan Wyllie 85ce9b535b MDL-60858 feedback: remove ellipsis from form lang strings
Remove the trailing ellipsis from the complete_the_form and
continue_the_form lang strings.
2017-12-13 03:37:00 +00:00
Mitsuhiro Yoshida 97627d2783 MDL-60858 feedback: add button style for "Answer the questions" link. 2017-12-13 03:36:04 +00:00
Damyon Wiese 23611c3757 Merge branch 'MDL-60964-master' of git://github.com/ryanwyllie/moodle 2017-12-13 11:30:46 +08:00
Ryan Wyllie 08a7915551 MDL-60964 calendar: lazy load context for calendar_event
Stop loading the context in the constructor if it hasn't been provided.
There is no need to load it by default. We should lazily load it when it
is required.
2017-12-13 03:20:00 +00:00
Adrian Greeve 01957f1a69 MDL-60161 filelib: Unit test for duplicate curl headers. 2017-12-13 11:07:58 +08:00
Carson Tam 7d4a3d1d07 MDL-60161 class curl in filelib: Cleaned up doc block. 2017-12-13 11:07:58 +08:00
Carson Tam a2b66c7833 MDL-60161 class curl in filelib: Avoid duplicate params in http header 2017-12-13 11:07:58 +08:00
Simey Lameze 3bf572411a MDL-56932 theme_boost: fix quiz max mark input height 2017-12-13 10:21:17 +08:00
Jun Pataleta 3cd76cbecc MDL-2051 mod_choice: Show info how choice results will be published 2017-12-13 14:36:03 +13:00
Davo Smith 8fc3d41139 MDL-61016 form: fix handling disabledIf + hideIf with same dependency 2017-12-12 14:53:33 +00:00
Simey Lameze cadeb8d21c MDL-60061 mod_scorm: add unit tests for drag/drop 2017-12-12 15:15:09 +08:00
Simey Lameze f808e0432a MDL-60061 mod_scorm: add support for drag/drop events
AMOS BEGIN
	CPY [openafterclose,mod_choice],[openafterclose,mod_scorm]
AMOS END
2017-12-12 15:15:09 +08:00
Jun Pataleta 4ea790da9b Merge branch 'MDL-60759_master' of git://github.com/dmonllao/moodle 2017-12-12 20:14:03 +13:00
Jun Pataleta 29c4106e2f Merge branch 'MDL-58200-master' of git://github.com/damyon/moodle 2017-12-12 19:13:32 +13:00
Jun Pataleta 24131d08c0 Merge branch 'MDL-59970-master' of git://github.com/damyon/moodle 2017-12-12 18:52:49 +13:00
Andrew Nicols 6d326b17d8 Merge branch 'MDL-59866' of https://github.com/marcusboon/moodle 2017-12-12 13:46:07 +08:00
Andrew Nicols 2f920d9be8 Merge branch 'wip-MDL-56864-master' of git://github.com/marinaglancy/moodle 2017-12-12 13:36:32 +08:00
Damyon Wiese 8cdfa8692b Merge branch 'MDL-59438-master' of git://github.com/rezaies/moodle 2017-12-12 13:05:22 +08:00
Damyon Wiese a34a305d53 Merge branch 'MDL-44660-master' of https://github.com/lucaboesch/moodle 2017-12-12 12:49:46 +08:00
Marcus Boon f8e2383bdd MDL-59866 session: Add retry for redis sessions
There is an edge case whereby redis will fail
to accept connections on the first try but
retrying the connection seems to make it work

Included in this commit:
* Retry functionality in the session init
2017-12-12 14:42:04 +10:00
Damyon Wiese a576da555e Merge branch 'MDL-60861-master' of git://github.com/ankitagarwal/moodle 2017-12-12 12:38:11 +08:00
Tyler Bannister e53a38c666 MDL-60653 Navigation: Fixed loose string comparison.
The previous comparison would sometimes evaluate to true when the
navigation key was not a string.
2017-12-12 12:32:27 +08:00
Damyon Wiese 233c91e7d0 Merge branch 'master_MDL-60979' of https://github.com/danmarsden/moodle 2017-12-12 12:27:12 +08:00
Damyon Wiese 59be445c15 Merge branch 'MDL-58058-master' of git://github.com/lameze/moodle 2017-12-12 11:59:50 +08:00
Damyon Wiese 302104af4b Merge branch 'MDL-60920-master' of https://github.com/lucaboesch/moodle 2017-12-12 11:39:20 +08:00
Damyon Wiese 80b6f3b059 Merge branch 'MDL-60945' of https://github.com/NeillM/moodle 2017-12-12 11:31:16 +08:00
Jun Pataleta 9244faa3a4 Merge branch 'MDL-59766-master' of git://github.com/damyon/moodle 2017-12-12 16:26:34 +13:00
Damyon Wiese 6b58bb56cb Merge branch 'MDL-60965-master' of git://github.com/andrewnicols/moodle 2017-12-12 11:15:03 +08:00
Dan Marsden d55d207044 MDL-60979 cohort: allow description to be used in mustache templates. 2017-12-12 16:10:54 +13:00
Damyon Wiese f0d9af6036 Merge branch 'MDL-60969_master' of git://github.com/markn86/moodle 2017-12-12 11:08:46 +08:00
Andrew Nicols abb61e0b02 Merge branch 'MDL-60983' of git://github.com/timhunt/moodle 2017-12-12 10:56:37 +08:00
Damyon Wiese 57fe6616a8 Merge branch 'MDL-52538-master' of git://github.com/mihailges/moodle 2017-12-12 10:40:15 +08:00
Damyon Wiese 39377f8083 Merge branch 'MDL-44667-master' of https://github.com/snake/moodle 2017-12-12 10:26:08 +08:00
Damyon Wiese 740a81eeb2 Merge branch 'MDL-60968-master' of git://github.com/lameze/moodle 2017-12-12 10:19:00 +08:00
Damyon Wiese 8cae085071 Merge branch 'MDL-60976-master' of https://github.com/matt-catalyst/moodle 2017-12-12 09:56:20 +08:00
Mathew May aa6b85d2b7 MDL-57431 mod_quiz: Quiz editing help icon fix 2017-12-12 09:56:05 +08:00
Mihail Geshoski b68b5f55ca MDL-57727 reports: Activity completion report sorting problem 2017-12-12 09:39:17 +08:00
Brendan Heywood b588373656 MDL-60968 auth: Allow more flexibility with mapping attributes 2017-12-12 09:37:35 +08:00
Damyon Wiese 4786443998 Merge branch 'MDL-60041' of https://github.com/NeillM/moodle 2017-12-12 09:13:43 +08:00
Zig Tan 6901981962 MDL-42676 mod_assign: Display message fix when using grade override
Logic fix in mod_assign locallib.php to correctly set the submissionlockedstatus,
and added associated unit test in test_grade_submission_override()
2017-12-12 09:01:35 +08:00
Damyon Wiese 34adfcb4ee Merge branch 'MDL-54021-master' of git://github.com/mihailges/moodle 2017-12-12 08:55:57 +08:00
Mihail Geshoski 2034f57fe1 MDL-52538 lesson: Grade info displayed while ongoing score disabled 2017-12-12 08:54:51 +08:00
David Monllao 895e005989 MDL-60759 search_solr: Solr 7+ compatibility 2017-12-11 12:47:55 +01:00
Simey Lameze 97f4556a94 MDL-60750 mod_quiz: only apply form css rules on clean theme 2017-12-11 16:56:06 +08:00
Damyon Wiese 807ba44cc6 Merge branch 'MDL-40790-master' of git://github.com/mihailges/moodle
Conflicts:
	theme/boost/scss/moodle/modules.scss
2017-12-11 16:55:27 +08:00
Damyon Wiese 42cec80673 Merge branch 'MDL-56197-master' of git://github.com/mihailges/moodle 2017-12-11 16:47:19 +08:00
Neill Magill 3acb294828 MDL-60945 Web services: Too many progress records retrieved
The core_completion_get_activities_completion_status was getting the
progress for all users on the course called, and then discarding all
the records but one.

This change ensures that only progress for the user we are interested in
is retrieved from the database.

This has a side benefit of removing a full table scan from the query
finding the users inside the get_progress_all() method.
2017-12-11 08:41:16 +00:00
Neill Magill 61fad215f1 MDL-60041 dml: MOODLELIB sql file must have Unix line endings
If the file does not have Unix line endings then the regular expression
in oci_native_moodle_database::attempt_oci_package_install() does
not split it correctly.

This leads to an invalid package being created in Oracle.

The .gitattribute file changes for oci_native_moodle_package.sql
force it to have Unix style line endings when the branch is checked
out and the file does not already exist.

The file has been modified so that the Unix style line endings are
applied even if the file already exists, for example when pulling in
this change to an existing branch.
2017-12-11 08:40:58 +00:00
Mihail Geshoski 83b9a7c88c MDL-56197 lesson: Multichoice answers not on same line as radio button 2017-12-11 15:49:24 +08:00
Andrew Nicols 10cc00b4af Merge branch 'MDL-58272-master-2' of https://github.com/snake/moodle 2017-12-11 14:58:14 +08:00
Damyon Wiese 67c0e18ca2 Merge branch 'MDL-60057-master' of git://github.com/lameze/moodle 2017-12-11 14:54:46 +08:00
Simey Lameze 5c1ea9aea5 MDL-60057 mod_lesson: add unit tests for callbacks 2017-12-11 14:45:04 +08:00
Simey Lameze f077e0af7e MDL-60057 mod_lesson: add calendar drag and drop callbacks
AMOS BEGIN
        CPY [openafterclose,mod_choice],[openafterclose,mod_lesson]
	CPY [closebeforeopen,mod_choice],[closebeforeopen,mod_database]
	CPY [openafterclose,mod_choice],[openafterclose,mod_database]
AMOS END
2017-12-11 14:29:16 +08:00
Marina Glancy 8326cc5e3e MDL-60594 xmlrpc: wrapper for buggy xmlrpc_decode 2017-12-11 14:27:06 +08:00
Damyon Wiese 5258525f0a Merge branch 'MDL-60060-master' of git://github.com/lameze/moodle 2017-12-11 14:08:08 +08:00
Simey Lameze 61ac58a887 MDL-60060 mod_data: add unit tests for callbacks 2017-12-11 14:05:00 +08:00
Simey Lameze 5e401a2a51 MDL-60060 mod_data: add calendar drag and drop callbacks 2017-12-11 14:05:00 +08:00
Ankit Agarwal 8d6b7f0c6c MDL-60861 analytics: Remove enable menu, if no timesplitting method 2017-12-11 10:47:02 +05:30
Ankit Agarwal fabe98ac92 MDL-60861 analytics: Enabling a model requires timesplitting 2017-12-11 10:47:01 +05:30
Damyon Wiese fe955c5645 Merge branch 'wip-MDL-45500-master' of git://github.com/marinaglancy/moodle 2017-12-11 12:56:18 +08:00
Shamim Rezaie 9d27b68ce8 MDL-59438 calendar: Added a foreign key and an index
Added foreign key constraint to the event.subscriptionid column.
Also added index to the event.uuid column.
2017-12-11 12:54:49 +08:00
Damyon Wiese c6a507e9e7 Merge branch 'MDL-60948-master' of git://github.com/andrewnicols/moodle 2017-12-11 12:52:23 +08:00
Andrew Nicols b9819842d9 MDL-60948 tool_httpsreplace: Correct use of test URLs 2017-12-11 12:05:57 +08:00
Damyon Wiese 917923c860 Merge branch 'MDL-60043' of git://github.com/timhunt/moodle 2017-12-11 11:49:40 +08:00
Damyon Wiese 5ec2ce20f5 Merge branch 'MDL-54106-master' of https://github.com/lucaboesch/moodle 2017-12-11 11:37:48 +08:00
Damyon Wiese e82c025e60 Merge branch 'wip-MDL-31436-master' of git://github.com/marinaglancy/moodle 2017-12-11 11:27:28 +08:00
Marcus Fabriczy e7ec2f901b MDL-59709 mod_assign: Export to portfolio button not working
Changed the button to a text link
2017-12-10 13:47:47 +10:30
Luca Bösch 970dc511e2 MDL-44660 grade: Typos @package core_grade instead of core_grades 2017-12-08 14:21:34 +01:00
Luca Bösch 41d335f31a MDL-60920 quiz: removed legacy "edit questions" button 2017-12-08 14:13:05 +01:00
Luca Bösch 7f8773ffb8 MDL-54106 task: Deleting unconfirmed users after $CFG->deleteunconfirmed 2017-12-08 14:12:57 +01:00
Tomek Muras aceb84ad76 MDL-60043 accesslib: improve query performance by removing ORDER BY
then add back the minimal necessary sorting in PHP. That part was
added by Tim Hunt.
2017-12-08 12:08:44 +00:00
Simey Lameze f9bb74c037 MDL-58058 competency: replace other sortorder usages 2017-12-08 15:58:52 +08:00
Frederic Massart f250cdbb34 MDL-58058 competency: Allow unspecified sortorder for new competencies 2017-12-08 15:58:52 +08:00
Mihail Geshoski 473391b667 MDL-40790 lesson: Lesson content button runs off the edge of the page 2017-12-08 09:55:36 +08:00
Mihail Geshoski d381732329 MDL-54021 blocks: Course completion block lang problem 2017-12-08 09:24:03 +08:00
Jake Dallimore 46878ed87f MDL-58272 core_files: get converters from file extension not mimetype 2017-12-08 09:07:29 +08:00
AMOS bot f1ae118df3 Automatically generated installer lang files 2017-12-08 00:09:38 +00:00
Matt Clarkson 1c06098b6b MDL-60976 dml: Optimise replace_all_text()
Avoid updating fields that do not match the search string.
2017-12-08 12:35:56 +13:00
Jun Pataleta 109aa07648 weekly release 3.5dev 2017-12-08 09:09:53 +13:00
Tim Hunt 91c8d8b130 MDL-60983 get_user_capability_course: fix buggy edge cases
There were basically two problems, which are demostrated by
the new test users u7 and u8 in the unit test.

1. There was a problem if a role was overridden in a context above the
one where it was assigned. E.g. User has teacher role in a course, and
there is a role override in the course-category context. That was being
ignored.

2. Problems with the handling of PROHIBITs. It should be the case that
if there is a PROHIBIT in force, then it cannot be overridden by another
role, or by a role override. However, this was not working in all cases.

Also, I had to add comments to the unit test so that I could understand
it. Hopefully these will be hepful to other developers too.
2017-12-07 18:28:18 +00:00
Andrew Nicols f017a30ff3 Merge branch 'MDL-60880-master-fix1' of http://github.com/damyon/moodle 2017-12-07 16:18:28 +08:00
Damyon Wiese 6f7daa5e48 MDL-60880 core_search: Behat fix for clean theme
The navigation block is visible in clean so "I should not see courses" finds the link in the navigation block
2017-12-07 15:54:03 +08:00
Jun Pataleta 4ffbf22046 Merge branch 'MDL-60951-master' of git://github.com/damyon/moodle 2017-12-07 17:33:41 +13:00
David Mudrák 9cefe2f2b2 MDL-57564 enrol: Fix typos and copy&paste mistake in the exception msg 2017-12-06 23:15:17 +01:00
David Mudrák 04985346a2 MDL-57564 enrol: Make use of the new default sort parameter
Now when enrol_get_my_courses(), enrol_get_users_courses() and
enrol_get_all_users_courses() methods automatically reflect the
navsortmycoursessort setting by default, we do not need to manually
compose the sorting any more.
2017-12-06 23:15:17 +01:00
David Mudrák c260117d15 MDL-57564 enrol: Add unit tests for the new sorting behaviour 2017-12-06 23:15:17 +01:00
Damyon Wiese 97812f14c1 Merge branch 'MDL-60880-master' of https://github.com/sammarshallou/moodle 2017-12-06 19:53:37 +13:00
Andrew Nicols e3b699eab7 Merge branch 'MDL-59159' of git://github.com/stronk7/moodle 2017-12-06 19:53:36 +13:00
Jun Pataleta b908c1add2 Merge branch 'MDL-32350-master' of https://github.com/lucaboesch/moodle 2017-12-06 19:53:35 +13:00
Jun Pataleta 1396cb6346 Merge branch 'wip-MDL-60926-master' of git://github.com/marinaglancy/moodle 2017-12-06 19:53:35 +13:00
Damyon Wiese bfb5d3ba26 Merge branch 'MDL-37933_master' of git://github.com/markn86/moodle 2017-12-06 19:53:34 +13:00
David Herney d52e5dd32d MDL-60443 dataformat lib: Change a wrong variable name
The variable $type really is $dataformat. I have changed it for
prevent the error and show a correct error message.
2017-12-06 19:53:34 +13:00
Jun Pataleta f013112752 Merge branch 'wip-MDL-34161-master' of git://github.com/marinaglancy/moodle 2017-12-06 19:53:33 +13:00
Andrew Nicols adbe17ec68 Merge branch 'MDL-60801' of https://github.com/andrewhancox/moodle 2017-12-06 19:53:32 +13:00
Andrew Nicols 9501b1eb76 Merge branch 'MDL-60857-master' of https://github.com/sammarshallou/moodle 2017-12-06 19:53:32 +13:00
Andrew Nicols 0ea7278f64 Merge branch 'MDL-60899-master' of git://github.com/damyon/moodle 2017-12-06 19:53:31 +13:00
Damyon Wiese a569a33097 Merge branch 'MDL-59875_m35v1' of https://github.com/sbourget/moodle 2017-12-06 19:53:31 +13:00
Jun Pataleta 1b98e553a7 Merge branch 'MDL-36056-master-fix1' of http://github.com/damyon/moodle 2017-12-06 19:53:31 +13:00
Andrew Nicols 9e51dc406f Merge branch 'MDL-47114-master' of git://github.com/rezaies/moodle 2017-12-06 19:53:30 +13:00
Damyon Wiese 387f7aae0d MDL-36056 forms: Don't validate disabled fields
When fields are disabled, the value comes through as null so we need to specifically check for it
before validation.
2017-12-06 19:53:30 +13:00
Andrew Nicols ebe2fafa8b Merge branch 'wip-MDL-37757-master' of git://github.com/abgreeve/moodle 2017-12-06 19:53:29 +13:00
Ryan Wyllie 0ef41ee07d MDL-60962 calendar: async load calendar 3 month block 2017-12-06 06:21:16 +00:00
Ryan Wyllie 7884ecf24f MDL-60962 block_calendar_month: load content after page render 2017-12-06 06:21:16 +00:00
Mark Nelson dbe18cd356 MDL-60969 auth_ldap: replace hardcoded strings in config settings 2017-12-06 11:25:35 +08:00
Damyon Wiese 3715c59ef9 MDL-60951 travis: Disable redis on travis
Redis unit tests are currently failing on php 7.2 due to https://bugs.php.net/bug.php?id=75628
2017-12-06 10:59:54 +08:00
David Mudrák a3d003603a MDL-57564 enrol: Change the default sort in other two functions
Similarly to what the previous patch does, we now change the default
sorting in functions enrol_get_users_courses() and
enrol_get_all_users_courses() too.

The patch also adds missing phpDocs for the functions, improves the
readability of some existing bits and mentions the changes in the
enrol/upgrade.txt file.
2017-12-05 22:58:51 +01:00
Daniel Thee Roperto ee2187273f MDL-57564 enrol: Change the default sort in enrol_get_my_courses()
The new default value (null) now respects the navsortmycoursessort
behaviour and should be consistently used whenever we are displaying the
courses in the UI.
2017-12-05 22:01:18 +01:00
sam marshall 7f9fb2c846 MDL-60880 core_search: Allow search of specific context (front-end) 2017-12-05 17:42:40 +00:00
sam marshall cfa00fc565 MDL-60880 core_search: Allow search of specific context (back-end)
Adds back-end support for restricting searches to specified context
ids (for example so it is possible to search only a specific forum).
2017-12-05 17:42:38 +00:00
Ryan Wyllie 9aeb909d2f MDL-60960 calendar: check enrolment at last chance in container
The enrolment check should only be done if all other checks fail before
it because it's a fairly expensive check to run.
2017-12-05 07:38:05 +00:00
Luca Bösch fc07f6adbc MDL-32350 admin: Sort users by country ASC and DESC 2017-12-05 07:21:29 +01:00
Andrew Nicols a7d75ba5c8 MDL-60965 behat: Correct strlen use 2017-12-05 11:18:58 +08:00
Jake Dallimore 3112c22004 MDL-44667 database: fix incorrect usages of $DB->get_field
Some places were passing 5 params, meaning the strictness param was
lost. This fixes those usages.
2017-12-04 16:53:51 +08:00
Damyon Wiese 713a2cbb25 Merge branch 'MDL-60219-master' of https://github.com/abias/moodle 2017-12-04 16:28:16 +08:00
Damyon Wiese b0c4f9c21c Merge branch 'MDL-36056-master-enrolkeywhitespace' of git://github.com/mudrd8mz/moodle 2017-12-04 16:00:19 +08:00
Marina Glancy 05cd2ff627 MDL-34161 mod_lti: backup and restore of submissions 2017-12-04 15:05:00 +08:00
Marina Glancy 6489a3d455 MDL-34161 mod_lti: backup/restore of lti types
Only course tools are backed up, site tools and registrations
can be matched by id if they are restored to the same site only.

For predefined course tools the secret is backed up encrypted
and can be restored on the same site only.
2017-12-04 15:04:56 +08:00
Tim Lock edbcee25c1 MDL-34161 mod_lti: Added Behat tests 2017-12-04 15:03:44 +08:00
Gregory Faller 387a3a208a MDL-34161 mod_lti: Add support for restoring site tool 2017-12-04 15:03:44 +08:00
Jun Pataleta d8c1a57b99 Merge branch 'wip-MDL-60887-master' of git://github.com/marinaglancy/moodle 2017-12-04 18:24:15 +13:00
Jun Pataleta bea5a16203 Merge branch 'MDL-60925-master' of git://github.com/damyon/moodle 2017-12-04 14:32:26 +13:00
Marina Glancy 65a77c7381 MDL-60926 auth: do not map very long profile fields 2017-12-04 09:31:42 +08:00
Eloy Lafuente (stronk7) 7ec475e2d7 MDL-59159 upgrade: remove unused functions/settings from upgradelib
All these functions were used only by deleted upgrade steps
so it's safe to proceed with straight deletion, considering
them internal. Deletion has been documented in corresponding
upgrade.txt files:

- mod_feedback_upgrade_delete_duplicate_values()
- mod_feedback_upgrade_courseid()

These have been kept because they continue being used:

- @ install: make_competence_scale()
- @ restore: upgrade_course_letter_boundary()
2017-12-04 01:42:01 +01:00
Eloy Lafuente (stronk7) e4eba4c346 MDL-59159 upgrade: clean < 3.1.0 upgrade steps
LTS (3.5) requires previous LTS (3.1)

This just deletes all the upgrade steps previous to 3.1.0. Some
small adjustments, like adding missing MOODLE_INTERNAL or tweaking
globals can also be applied when needed.

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

Next commit will get rid of/deprecate all the upgradelib functions
not used anymore in codebase.
2017-12-04 01:18:57 +01:00
Jun Pataleta c1cd2924ec Merge branch 'MDL-60914_master' of git://github.com/markn86/moodle 2017-12-04 12:50:06 +13:00
Eloy Lafuente (stronk7) 4111611710 MDL-59159 environment: 3.1 (LTS) required 2017-12-04 00:27:53 +01:00
Eloy Lafuente (stronk7) f0781f34c9 MDL-59159 environment: 3.5 base information
This is a direct copy of the 3.4 branch to
have changes under control easier in next commits.
2017-12-04 00:25:48 +01:00
Shamim Rezaie 8c42eef35c MDL-47114 core: Improved function description 2017-12-02 07:44:35 +08:00
Ann Adamcik 4b4280f3e8 MDL-58697: Only get group submission if enabled 2017-12-01 12:56:15 -07:00
sam marshall 1b8cf12a59 MDL-60857 core_search: Improve cron log progress information 2017-12-01 15:47:22 +00:00
Ryan Wyllie 748545858c MDL-60942 filters: include filter in format_string cache key 2017-12-01 06:49:24 +00:00
Charles Fulton 5976a78a95 MDL-59567 block_mnet_hosts: use html_writer to build links 2017-11-30 15:33:51 -05:00
Eloy Lafuente (stronk7) 5f54a8760f weekly release 3.5dev 2017-11-30 17:05:14 +01:00
David Mudrák 0c6554e03c MDL-36056 form: Do not allow passwords with wrapping whitespace
This is to avoid accidental misconfiguration while copy/pasting the
password value.
2017-11-30 10:47:57 +01:00
Marina Glancy efe4210395 MDL-31436 hub: never use xmlrpc, always use REST 2017-11-30 11:28:00 +08:00
Damyon Wiese b3480499c6 MDL-60925 theme: Fix SCSS precompilation.
There is no point pre-compiling the theme SCSS if it is not stored somewhere that is available
to all webserving nodes. Localcache needs to be backed by the MUC cache.
2017-11-29 17:01:07 +08:00
Alexander Bias ee73ec3d3c MDL-60219 lti: Replace pagelayout frametop with incourse 2017-11-29 09:54:42 +01:00
Damyon Wiese 81a989e6d8 MDL-58200 competencies: Student can view linked courses 2017-11-29 16:07:07 +08:00
Damyon Wiese 1e1bc82294 Merge branch 'MDL-60174-master' of https://github.com/sammarshallou/moodle 2017-11-29 12:18:21 +08:00
Jun Pataleta 1577c5ea20 Merge branch 'wip-MDL-45068-master-fix' of https://github.com/marinaglancy/moodle 2017-11-29 16:59:25 +13:00
Marina Glancy b955ad6a55 MDL-45068 groups: corrected check for idnumber '0' 2017-11-29 11:50:44 +08:00
Jun Pataleta a0de91e9a0 Merge branch 'MDL-50861-master' of git://github.com/junpataleta/moodle 2017-11-29 10:51:22 +13:00
Amy Groshek e1eb4fb6d9 MDL-50861 mod_scorm: Add bootstrap btn classes to exit link 2017-11-29 10:44:13 +13:00
Eloy Lafuente (stronk7) 7445483873 Merge branch 'wip-MDL-60591-master' of git://github.com/marinaglancy/moodle 2017-11-28 22:35:58 +01:00
Eloy Lafuente (stronk7) 25e9c56117 Merge branch 'MDL-60738-master' of git://github.com/jleyva/moodle 2017-11-28 20:59:22 +01:00
Eloy Lafuente (stronk7) 8000e6af01 Merge branch 'MDL-60838-master' of https://github.com/sammarshallou/moodle 2017-11-28 20:48:15 +01:00
Eloy Lafuente (stronk7) 8c9eecdea7 Merge branch 'MDL-60682' of git://github.com/timhunt/moodle 2017-11-28 20:37:59 +01:00
sam marshall 34aeacadcc MDL-60174 Document new dboption in config-dist.php 2017-11-28 13:21:49 +00:00
Stephen Bourget a7370e0dd0 MDL-59875 Badges: Allow badges to be criteria for other badges 2017-11-28 08:03:02 -05:00
Damyon Wiese bf0a154217 MDL-58983 assign: Hide grade button if no cap
If the current user cannot grade students, don't show them the button.
2017-11-28 15:47:30 +08:00
Jun Pataleta 012398a8c2 Merge branch 'MDL-54693-quiz-override-help-icon' of https://github.com/lucaboesch/moodle 2017-11-28 20:10:08 +13:00
Marina Glancy 80364b7b1e MDL-49995 files: delete old file when overwriting 2017-11-28 14:50:20 +08:00
Jun Pataleta 02146e0b21 Merge branch 'MDL-59574-master' of git://github.com/ankitagarwal/moodle 2017-11-28 19:38:23 +13:00
Damyon Wiese e427ae67c2 MDL-59200 assign: add feedback when grade locked
We are including a hidden field when the grade is locked in the gradebook for a student. This field fails validation, so
the form cannot be submitted.
2017-11-28 14:36:30 +08:00
Damyon Wiese 8b0801c2b8 MDL-60899 block_lp: no permissions - empty block
Show an empty block if the current user does not have the capability to see any plans.
2017-11-28 13:37:35 +08:00
Ankit Agarwal 120a795b4e MDL-59574 analytics: Add model listing to enable_model cli script 2017-11-28 10:52:52 +05:30
Ankit Agarwal 556cb98d16 MDL-59574 tool_analytics: Add model listing to evaluate_model cli script 2017-11-28 10:52:52 +05:30
Damyon Wiese d87a31d878 Merge branch 'MDL-53004-master' of https://github.com/lucaboesch/moodle
Conflicts:
	mod/assign/styles.css
2017-11-28 13:18:03 +08:00
Marina Glancy 777720c833 MDL-45500 gradingform: allow plugin uninstall 2017-11-28 12:27:52 +08:00
Jun Pataleta 7315358ead Merge branch 'MDL-46768-master' of git://github.com/sarjona/moodle 2017-11-28 17:18:54 +13:00
Damyon Wiese 081ac91526 Merge branch 'MDL-24678-master-chat_get_latest_message' of https://github.com/bozoh/moodle 2017-11-28 12:14:08 +08:00
Damyon Wiese 2c3d8a06c8 Merge branch 'MDL-60669-master' of git://github.com/tobiasreischmann/moodle 2017-11-28 12:05:21 +08:00
Damyon Wiese bdb157653b Merge branch 'MDL-60174-master' of https://github.com/sammarshallou/moodle 2017-11-28 11:38:40 +08:00
Mark Nelson 2a56a82c9b MDL-60914 mod_lti: ensure grade_update() is defined during upgrade 2017-11-28 11:37:00 +08:00
Marina Glancy 12a67a4266 MDL-60887 registration: allow plugins to register on custom hubs 2017-11-28 11:21:25 +08:00
Jun Pataleta 49cbe666a4 Merge branch 'wip-MDL-60478-m35' of git://github.com/amygroshek/moodle 2017-11-28 13:25:51 +13:00
Eloy Lafuente (stronk7) 8edbd642b4 Merge branch 'MDL-60654' of https://github.com/joaociocca/moodle 2017-11-28 01:16:40 +01:00
Eloy Lafuente (stronk7) 9d51d8e81f Merge branch 'MDL-60441_master' of git://github.com/juancs/moodle 2017-11-28 00:55:23 +01:00
Eloy Lafuente (stronk7) 2b6fa07627 Merge branch 'MDL-60249-master' of git://github.com/damyon/moodle 2017-11-28 00:48:41 +01:00
Nick Phillips 28437460d2 MDL-56688 grade: fix ordering of grade items in grade_seq::flatten 2017-11-28 09:30:27 +13:00
sam marshall a938e4096c MDL-60174 core_dml: fix miscellaneous incorrect recordset usage
The new recordset support for Postgres requires transactions and
will cause errors if recordsets are not closed correctly. This
commit fixes problems that were identified during unit tests, and
via some basic code analysis, across all core code. Most of these
are incorrect usage of recordset (forgetting to close them).
2017-11-27 11:10:33 +00:00
sam marshall ed00d67c99 MDL-60174 core_dml: get_recordset on Postgres eats all the RAM
On Postgres, get_recordset_sql loads all the results into memory
(within the Postgres library, which doesn't count towards the PHP
memory limit, but does count towards making your server run out of
memory) as soon as the query completes.

This commit changes the code to use cursors, which in Postgres
allow the results to be returned in smaller chunks (by default
100,000 rows).
2017-11-27 11:10:29 +00:00
Tobias Reischmann 9bd6807635 MDL-60669 forum: Added duplicate check for restoring forum subscriptions
Before MDL-59854 it was possible to have duplicate forum subscriptions.
Trying to import backups created from back then, caused a DB exception
due to unqiue key constraints. Now only one of multiple identical forum
subscritions is restored.
2017-11-27 10:51:34 +01:00
Damyon Wiese d3fa95abf1 Merge branch 'MDL-60188-master' of git://github.com/rezaies/moodle 2017-11-27 15:57:41 +08:00
Mark Nelson 5211efb99b MDL-37933 core_complete: fixed criteria/criterion naming confusion 2017-11-27 15:26:43 +08:00
Jun Pataleta 417d543aaa Merge branch 'MDL-57569-master' of git://github.com/sarjona/moodle 2017-11-27 19:43:32 +13:00
Jun Pataleta 78a534dde0 Merge branch 'wip-MDL-45068-master' of git://github.com/marinaglancy/moodle 2017-11-27 19:36:00 +13:00
Marina Glancy e95df45bba MDL-60591 mod_forum: inline attachments are not displayed in plain text 2017-11-27 14:29:00 +08:00
Marina Glancy ec43371a3f MDL-45068 groups: fixes to group import
- If 'coursename' is specified in the CSV it should match the course short name - thanks Yusuf Yılmaz for the patch
- If 'idnumber' is specified but 'groupidnumber' is not, idnumber should be used for matching the course idnumber only
- If 'groupingname' is not specified, there should be no notices (regression from MDL-42514)
- If 'coursename' or 'idnumber' column is present, it can contain empty values in some/all lines
2017-11-27 14:24:58 +08:00
Shamim Rezaie 0897d6588e MDL-60188 groups: cache user's groups and groupings
The function groups_get_user_groups is called too often both before rendering the page and after the page is rendered (using ajax).
The function was executing a query joining 3 tables in each call. The plementation of the function has now modified to store the
query result in a request cache.
2017-11-27 10:46:35 +08:00
Jake Dallimore d735cb5230 Merge branch 'MDL-60830-master' of git://github.com/sarjona/moodle 2017-11-27 10:29:55 +08:00
Jun Pataleta d470de673c Merge branch 'MDL-58887-master' of git://github.com/ryanwyllie/moodle 2017-11-27 15:05:46 +13:00
Jake Dallimore 29abde4709 Merge branch 'MDL-27230-master' of https://github.com/lucaboesch/moodle 2017-11-27 09:43:44 +08:00
Eugene Venter feb23f1b96 MDL-60905 auth_email: remember loginpage wantsurl for account creation
this allows for redirecting to the correct location upon account
confirmation ;)
2017-11-27 13:42:26 +13:00
Jun Pataleta 84ae267c56 Merge branch 'MDL-60904' of git://github.com/stronk7/moodle 2017-11-27 11:27:57 +13:00
Eloy Lafuente (stronk7) 2fdd9eed54 MDL-60904 behat: Update master to use 3.35.0 behat extension tag 2017-11-26 20:27:00 +01:00
Andrew Hancox 1744570b2e MDL-60801 tool_uploaduser: Fix issue with defaults being ignored 2017-11-24 15:29:23 +00:00
Carlos Alexandre S. da Fonseca 38e7a9525f MDL-24678 mod_chat: Fixed race condition on chat module 2017-11-24 10:36:42 -02:00
sam marshall 411b5f3a02 MDL-60838 core_search: File upload does not honour timeout 2017-11-24 11:00:45 +00:00
Sara Arjona 6820f36bda MDL-57569 core_files: Fix to let show generated f3 image 2017-11-24 11:48:32 +01:00
Sara Arjona d77a6026d2 MDL-46768 core_badges: changed badge name type from FILE to TEXT 2017-11-24 11:34:15 +01:00
Luca Bösch b4fcf278c2 MDL-54693 quiz: Info for attempts allowed in user and group override. 2017-11-23 19:11:11 +01:00
Luca Bösch 409758c035 MDL-53004 assignment: Separate label and pulldown in grading (Clean) 2017-11-23 16:42:26 +01:00
Luca Bösch 99618f89bf MDL-27230 quiz: remove and update group overrides in calendar 2017-11-23 16:42:20 +01:00
David Monllao 5bde2c2b62 weekly release 3.5dev 2017-11-23 13:35:10 +01:00
Damyon Wiese 07a91fd4cc Merge branch 'wip-MDL-27886-master' of https://github.com/marinaglancy/moodle 2017-11-23 12:25:31 +08:00
Marina Glancy dc9353a07b MDL-27886 backup: When setting is unlocked set it to original value 2017-11-23 12:21:03 +08:00
Damyon Wiese 9a73d11cfd MDL-59766 assign: Allow teachers to disable annotations
If teachers do not want to use the pdf annotation features, they should be able to disable it for a single assignment.

AMOS BEGIN
    CPY [default,assignfeedback_comments],[default,assignfeedback_editpdf]
    CPY [default_help,assignfeedback_comments],[default_help,assignfeedback_editpdf]
AMOS END
2017-11-23 10:46:39 +08:00
Jake Dallimore 1cce91b1bb Merge branch 'MDL-60831-master' of git://github.com/ankitagarwal/moodle 2017-11-22 13:24:34 +01:00
Ankit Agarwal 7e6ef63e5f MDL-60831 search: add BS classes to block elements 2017-11-22 13:24:34 +01:00
Jun Pataleta ddb3857cdf Merge branch 'wip-MDL-60546-master' of git://github.com/abgreeve/moodle 2017-11-22 13:24:33 +01:00
Jun Pataleta 9ff02b52b2 Merge branch 'MDL-60813-master' of git://github.com/jleyva/moodle 2017-11-22 13:24:33 +01:00
Jun Pataleta fd64ae3140 Merge branch 'MDL-60526-master-fix1' of http://github.com/damyon/moodle 2017-11-22 13:24:32 +01:00
Damyon Wiese 992c5ccfbf MDL-60526 forms: Button elements should have type
The mform "buttons" should be of type "button", instead it's not specified so they get
the default of "submit". This is causing behat fails.
2017-11-22 13:24:32 +01:00
David Monllao 63469571c8 Merge branch 'm34_MDL-60745_Bump_ComposerLock_ToPHPUnit_6d4d4' of https://github.com/scara/moodle 2017-11-22 13:24:31 +01:00
David Monllao e968cf1def MDL-59512 version: Following 2 digits scheme 2017-11-22 13:24:31 +01:00
David Monllao eee87c8a24 Merge branch 'MDL-59512-master' of git://github.com/Dagefoerde/moodle 2017-11-22 13:24:31 +01:00
Jun Pataleta 4b560e4a8e Merge branch 'mdl58817-master' of https://github.com/tlock/moodle 2017-11-22 13:24:30 +01:00
Jun Pataleta 6472ad5600 Merge branch 'MDL-60637-master' of git://github.com/lameze/moodle 2017-11-22 13:24:30 +01:00
Jake Dallimore ef4192b8e7 Merge branch 'MDL-60796-master' of git://github.com/ankitagarwal/moodle 2017-11-22 13:24:30 +01:00
Jun Pataleta 8317549dff Merge branch 'MDL-60780_master' of git://github.com/dmonllao/moodle 2017-11-22 13:24:29 +01:00
David Monllao 5d96469c8c Merge branch 'MDL-60751-master' of git://github.com/lameze/moodle 2017-11-22 13:24:29 +01:00
Sara Arjona 46ea440b87 MDL-60830 core_enrol: Added email when searching users in course enrol 2017-11-22 13:16:16 +01:00
Damyon Wiese 9a7671da80 MDL-59970 competencies: performance
Remove useless get_records call in get_least_proficient_competencies_for_course function.
On big sites this would cause huge memory usage.
2017-11-22 15:35:20 +08:00
Adrian Greeve 7b4e995015 MDL-60546 mod_choice: Update to select all functionality. 2017-11-22 14:10:55 +08:00
Ryan Wyllie 05df02a0ec MDL-58887 core: fix default title for action menu
Thanks to Michelle Melton <meltonml@appstate.edu> for the original
version of this patch.
2017-11-22 01:36:31 +00:00
Tim Hunt 223419d92c MDL-60682 forms: date/times should use step 1 minute by default 2017-11-21 14:50:28 +00:00
Marina Glancy 077edd3038 MDL-56864 forms: allow to remove last tag with forced standard tags 2017-11-21 15:29:03 +08:00
Marina Glancy be2e38ed92 MDL-56864 forms: boost templates don't allow remove last tag 2017-11-21 15:29:02 +08:00
Simey Lameze 486ecb1b89 MDL-60637 core_group: fix unit tests failures 2017-11-21 09:59:56 +08:00
Simey Lameze effa7d2ba1 MDL-60637 group: remove useless id number validation on web services 2017-11-21 09:52:40 +08:00
Amy Groshek ecdfab51a3 MDL-60478 mod_scorm: Makes checknet alerts less obtrusive.
Alters checknet component to accept frequency,
timeout, and maxalerts arguments. Sets checknet
launched during SCORM session for 30 sec
frequency, 10 sec timeout, and 1 alert max.
2017-11-20 12:59:14 -06:00
David Monllao b78d40e637 Merge branch 'MDL-60526-master' of git://github.com/damyon/moodle 2017-11-20 13:43:54 +01:00
David Monllao d6170fe7f8 Merge branch 'MDL-60436' of https://github.com/NeillM/moodle 2017-11-20 13:26:01 +01:00
David Monllao 007dd71c17 Merge branch 'MDL-56253-master' of https://github.com/lucaboesch/moodle 2017-11-20 12:55:28 +01:00
David Monllao c39071d32a Merge branch 'MDL-60823-master' of git://github.com/lameze/moodle 2017-11-20 12:06:42 +01:00
Jake Dallimore 4a9268b6e7 Merge branch 'MDL-60708-master' of git://github.com/jleyva/moodle 2017-11-20 17:54:56 +08:00
David Monllao 087b3303a5 Merge branch 'MDL-60842-master' of git://github.com/lameze/moodle 2017-11-20 10:27:58 +01:00
Juan Leyva d995cd47fb MDL-60708 mod_workshop: Return author feedback for submission
The feedback and grade information for submission should be returned
for teachers in the evaluation and closed phases.
2017-11-20 10:07:57 +01:00
Simey Lameze 2dc93a3769 MDL-60842 calendar: do not load all course fields 2017-11-20 16:49:45 +08:00
Juan Leyva 6db2423551 MDL-60738 webservice: Clean theme and lang properly
Sometimes the "theme" and "lang" fields in the user and course tables
in the database are set to incorrect values (uninstalled or
non-existent themes and language packs).
This makes Web Services functions to fail because the WS server
validate the returned data using the validate_param function that clean
parameters.
2017-11-20 09:37:30 +01:00
Jun Pataleta 3e6dabadaa Merge branch 'MDL-60187_master' of git://github.com/markn86/moodle 2017-11-20 21:33:00 +13:00
Damyon Wiese 1d59696017 Merge branch 'MDL-60810_master' of git://github.com/markn86/moodle 2017-11-20 15:57:00 +08:00
Damyon Wiese f1c9b8de47 Merge branch 'MDL-60809-master' of git://git.cameron1729.xyz/moodle 2017-11-20 15:29:53 +08:00
Damyon Wiese e590227922 Merge branch 'MDL-60806-master' of git://github.com/lameze/moodle 2017-11-20 15:23:42 +08:00
Jakob Ackermann 4d5a33e424 MDL-60187 mod_lti: Do not create a grade item when grades are disabled.
If the privacy option "Accept grades from the tool" is disabled, the
module should not appear in the gradebook when edited inline or when
recover grades is running during enrolment.
2017-11-20 15:13:24 +08:00
Jake Dallimore 8ee2d9c3d4 Merge branch 'MDL-60824-master-profilefield' of git://github.com/mudrd8mz/moodle 2017-11-20 15:04:08 +08:00
Luca Bösch c6c480f786 MDL-56253 grade: have coursemodule name pass filters. 2017-11-20 06:32:11 +01:00
Damyon Wiese 18c02e9f28 Merge branch 'MDL-27886-master' of git://github.com/tobiasreischmann/moodle 2017-11-20 13:25:37 +08:00
Simey Lameze 5e8e87aaee MDL-60806 core_calendar: return hidden categories 2017-11-20 12:06:47 +08:00
Jake Dallimore 268e772a8a Merge branch 'MDL-60835-master' of git://github.com/crazyserver/moodle 2017-11-20 11:27:46 +08:00
Jun Pataleta 4768fa336a Merge branch 'master_MDL-60253' of https://github.com/CengageEng/moodle 2017-11-20 13:21:30 +13:00
Jun Pataleta 1508fa23d2 Merge branch 'MDL-55808_master' of git://github.com/juancs/moodle 2017-11-20 10:34:55 +13:00
Neill Magill 7251472c83 MDL-60436 blocks: Unit test for dashboard block positioning 2017-11-17 14:40:30 +00:00
Neill Magill 667e6ebc20 MDL-60436 blocks: Improve performance of block loading 2017-11-17 14:40:01 +00:00
Marcus Fabriczy f32ee5c54e MDL-60546 mod_choice: Fixed select all functionality
Fixed the functionality which ticks or unticks all checkboxes when
clicking the Select all or Deselect all elements when viewing the
responses.

Caused by deprecating checkall and checknone functions in
MDL-57490.
2017-11-17 20:08:29 +10:30
yair.spielmann b323508554 MDL-59512 tool_oauth2: add option for basic authentication 2017-11-17 10:15:29 +01:00
Damyon Wiese e76e6bc8bd MDL-60249 assign: resize quickgrade textareas
The Bootstrap CSS reset prevents horizontal resizing of textareas. We want to allow it in the quickgrading ui.
2017-11-17 14:55:28 +08:00
Damyon Wiese 5f8407d5da Merge branch 'MDL-60773-master' of https://github.com/snake/moodle 2017-11-17 14:11:12 +08:00
Andrew Nicols 78162bf5cf MDL-60773 core: Add pendingJS checks for autocomplete interactions 2017-11-17 13:52:04 +08:00
Simey Lameze 1a765e32b0 MDL-60823 calendar: use first day of week on prepadding calc 2017-11-17 11:02:39 +08:00
David Mudrák 88f4b6c75d MDL-60824 profile: Fix handling of to-be-created user id
The script user/editadvanced.php uses special value of userid = -1 for
the case when a new user is being created. Such a value passes the
non-empty check and would lead to "invaliduser" error.
2017-11-16 22:14:16 +01:00
Juan Leyva 44ae08383b MDL-60813 calendar: Fix core_calendar_get_calendar_events for categories
Users couldn’t see category events when filtering by categories in the
core_calendar_get_calendar_events WS.
2017-11-16 19:16:01 +01:00
Pau Ferrer Ocaña 15ead7a176 MDL-60835 completion: Add overrideby field to completion status WS 2017-11-16 16:35:43 +01:00
David Monllao 19bf156be9 MDL-60780 analytics: Prevent timing issues 2017-11-16 09:17:46 +01:00
Adrian Greeve 33e385a5fb MDL-37757 repositories: Deleting a repository deletes files.
If the user decides to remove a repository all of the linked
files are now deleted along with file references. This was causing
problems such as the course page displaying an error with no recourse
to fix the problem.
2017-11-16 14:46:40 +08:00
Cameron Ball d3e980c4ea MDL-60809 xmlrpc: Include filelib when making xmlrpc call 2017-11-16 14:46:36 +08:00
Jake Dallimore 4275ea4a43 weekly on-sync release 3.5dev 2017-11-16 11:13:29 +08:00
Jake Dallimore e767ba20fc Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2017-11-16 11:13:28 +08:00
David Monllao 9304ba2212 Merge branch 'MDL-60789-master' of git://github.com/sarjona/moodle 2017-11-15 10:35:30 +01:00
Damyon Wiese a571aa9b85 Merge branch 'wip-MDL-59876-master' of git://github.com/abgreeve/moodle 2017-11-15 10:35:30 +01:00
Damyon Wiese fda2fa2680 MDL-60526 forms: Prevent duplicate type attributes
The exporter for mform elements does not skip "type" (which is included as a separate value).
2017-11-15 11:53:56 +08:00
Adrian Greeve 2c97abeff2 MDL-59876 core_user: Add required library for function.
The external service create_users has a function call to
useredit_update_user_preference() that requires editlib.php
2017-11-15 11:43:19 +08:00
AMOS bot 231127ce6c Automatically generated installer lang files 2017-11-15 00:05:16 +00:00
Damyon Wiese aece25138f Merge branch 'MDL-60675-master' of git://github.com/mihailges/moodle 2017-11-14 16:40:59 +08:00
Mihail Geshoski 3420d30762 MDL-60675 analytics: Apply strict comparison check 2017-11-14 16:22:36 +08:00
Sara Arjona 3dbb8dc598 MDL-60789 workshop: Check title submission maxlength 2017-11-14 08:52:31 +01:00
Jake Dallimore 55b2742724 Merge branch 'MDL-60741' of git://github.com/timhunt/moodle 2017-11-14 15:28:06 +08:00
Ankit Agarwal 05ba0b9574 MDL-60796 analytics: Fix phpdoc issues 2017-11-14 12:33:46 +05:30
Simey Lameze 7e781cfc2b MDL-60751 core_calendar: remove useless NULL_ALLOWED parameter 2017-11-14 14:12:17 +08:00
Jun Pataleta 592c216520 Merge branch 'm34_MDL-59099_MySQL8_InnoDB_Params_Removed' of https://github.com/scara/moodle 2017-11-14 12:22:29 +13:00
Damyon Wiese 294f1dbaa3 Merge branch 'MDL-60693-backup-multilang-activities' of https://github.com/lucaboesch/moodle 2017-11-13 14:33:57 +08:00
Damyon Wiese fee3033bc7 Merge branch 'MDL-60675-master' of git://github.com/mihailges/moodle 2017-11-13 14:11:50 +08:00
Jake Dallimore e105a752c0 Merge branch 'MDL-60707' of git://github.com/aolley/moodle 2017-11-13 13:26:00 +08:00
Jake Dallimore dbc56205b3 Merge branch 'MDL-60783' of git://github.com/stronk7/moodle 2017-11-13 11:26:30 +08:00
Damyon Wiese dbf0819d92 Merge branch 'MDL-59876-master' of git://github.com/jleyva/moodle 2017-11-13 10:47:49 +08:00
Damyon Wiese 3ac10fa82a Merge branch 'MDL-60784' of git://github.com/stronk7/moodle 2017-11-13 10:37:37 +08:00
Tim Lock a33be61af8 MDL-58817 mod_lti: cartridge: maintain custom icons 2017-11-13 10:15:33 +10:30
Eloy Lafuente (stronk7) 6499085f36 MDL-60784 upgrade: add 3.4.0 separation line to all upgrade scripts 2017-11-12 18:43:30 +01:00
Eloy Lafuente (stronk7) bd8a809598 MDL-60783 backup: Bump release to 3.5 2017-11-12 17:56:17 +01:00
Luca Bösch 9ae6cd775a MDL-60693 backup: Use multilang with course activities
On backup and restore, activities are shown after passing format_string,
supporting multilang.
2017-11-12 14:58:18 +01:00
Eloy Lafuente (stronk7) 0164f50e80 weekly back-to-dev release 3.5dev 2017-11-11 19:41:57 +01:00
Eloy Lafuente (stronk7) 6821ca92ad NOBUG: Change travis.yml back to master 2017-11-11 19:31:19 +01:00
Eloy Lafuente (stronk7) 665c3ac59c Moodle release 3.4 2017-11-11 19:31:19 +01:00
Eloy Lafuente (stronk7) 07c0bb10fb NOBUG: Change travis.yml to MOODLE_34_STABLE 2017-11-11 19:31:18 +01:00
Eloy Lafuente (stronk7) cf57ee9285 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2017-11-11 19:31:14 +01:00
Eloy Lafuente (stronk7) d334aea208 Merge branch 'MDL-60779-master' of git://github.com/junpataleta/moodle 2017-11-11 13:03:54 +01:00
Jun Pataleta 0cf288757d MDL-60779 calendar: Pass correct parameters for get_calendar_X_view() 2017-11-11 22:28:38 +13:00
AMOS bot 695cd06817 Automatically generated installer lang files 2017-11-11 00:05:36 +00:00
David Monllao ab9936962e Moodle release 3.4rc3 2017-11-10 15:15:37 +01:00
David Monllao d39fcc420e Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2017-11-10 15:15:35 +01:00
David Monllao 08641175b3 Merge branch 'MDL-60764' of git://github.com/stronk7/moodle 2017-11-10 10:20:25 +01:00
Eloy Lafuente (stronk7) 66aee746e3 MDL-60764 versions: remove some outdated releases in requires 2017-11-10 09:45:56 +01:00
Damyon Wiese f738fc8efd Merge branch 'MDL-60763-master' of git://github.com/andrewnicols/moodle 2017-11-10 13:57:04 +08:00
Andrew Nicols 27973b545c MDL-60763 calendar: Use PHP concat, not JS 2017-11-10 13:56:39 +08:00
Damyon Wiese 3192438075 Merge branch 'MDL-60763-master' of git://github.com/andrewnicols/moodle 2017-11-10 13:47:05 +08:00
Andrew Nicols 41b7375c07 MDL-60763 core_calendar: Deprecate calendar_get_upcoming 2017-11-10 13:45:32 +08:00
Jun Pataleta cb04dcf4ce Merge branch 'MDL-60771-master' of git://github.com/lameze/moodle 2017-11-10 18:03:49 +13:00
Jun Pataleta c3925187ed Merge branch 'MDL-60758_master' of git://github.com/dmonllao/moodle 2017-11-10 17:21:15 +13:00
Damyon Wiese 4ceece6ea1 Merge branch 'MDL-60749-master' of git://github.com/sarjona/moodle 2017-11-10 12:05:46 +08:00
Jun Pataleta cfbc820e1b Merge branch 'MDL-60766-master' of git://github.com/ryanwyllie/moodle 2017-11-10 17:02:41 +13:00
Simey Lameze fbbcf45ef2 MDL-60771 mod_scorm: typecast score to integer 2017-11-10 12:00:17 +08:00
Andrew Nicols 6e2d8c121b Merge branch 'MDL-52838-master' of git://github.com/damyon/moodle 2017-11-10 11:38:13 +08:00
Damyon Wiese 6b2a9a6fb8 Merge branch 'MDL-60765-master' of git://github.com/andrewnicols/moodle 2017-11-10 10:55:09 +08:00
Mihail Geshoski ae4522ff55 MDL-60675 analytics: Error when selecting invalid insight 2017-11-10 10:43:51 +08:00
Andrew Nicols fb5bbf1424 MDL-60765 theme: Make inplace-autocomplete rule more specific
This change was intended to fix an issue with the autocomplete in RTL,
but was applied to all inplace-editables.
2017-11-10 10:29:11 +08:00
Damyon Wiese ce225e1c5e MDL-52838 workshop: Each criterion > 0 levels
Add validation to the edit assessment form so each criterion in a rubric requires at least one level.
2017-11-10 10:22:27 +08:00
Ryan Wyllie 08b7558483 MDL-60766 block_calendar_upcoming: stop summary modal not logged in
Stopped the JS from running on the block when the user is not logged in
because it attempts to load a summary modal when an event is clicked on
which results in a failed call to a webservice.
2017-11-10 02:20:32 +00:00
Andrew Nicols 9dead25fd5 MDL-60763 core_calendar: Revert removal of calendar_get_upcoming
This reverts part of commit 522b84be04.
2017-11-10 10:11:42 +08:00
Ryan Wyllie eac88b955f MDL-60766 block_calendar_month: hide nav when not logged in 2017-11-10 02:07:50 +00:00
Eloy Lafuente (stronk7) 438c98cc98 MDL-60764 versions: main version bump 2017-11-10 02:56:14 +01:00
Eloy Lafuente (stronk7) ba854606e6 MDL-60764 versions: bump all versions and requires near release
version = 2017111300 release version
requires= 2017110800 current rc2 version
2017-11-10 02:52:53 +01:00
Jake Dallimore f5b63fc829 Merge branch 'MDL-60760_master' of git://github.com/dmonllao/moodle 2017-11-10 09:32:17 +08:00
Andrew Nicols 6996fbaa0e MDL-60763 core_calendar: Revert removal of calendar_get_upcoming
Revert "MDL-60092 core_calendar: remove unused calendar_get_upcoming method"

This reverts commit 4259387ebb.
2017-11-10 08:11:36 +08:00
David Monllao 20305a8a8f MDL-60758 tool_analytics: Skip guess start if higher than guess end 2017-11-09 17:11:34 +01:00
David Monllao 5da020169e MDL-60760 tool_analytics: No onlycli link for managers 2017-11-09 17:05:08 +01:00
Sara Arjona 2f673d8b6a MDL-60749 scorm: Remove &nbsp; from files when downloading 2017-11-09 10:15:03 +01:00
Sara Arjona 4bcb0a9a1d MDL-60550 user: Add more restrictions in keyword searches
Original patch provided by Tim Schroeder.
2017-11-09 16:29:29 +08:00
David Monllao a4e0b7468c Merge branch 'MDL-60718-master' of git://github.com/sarjona/moodle 2017-11-09 09:27:01 +01:00
David Monllao 7fdcdc04ff Merge branch 'MDL-60615-master' of git://github.com/damyon/moodle 2017-11-09 08:48:48 +01:00
Damyon Wiese bef5a8ca10 Merge branch 'MDL-60752-master' of git://github.com/andrewnicols/moodle 2017-11-09 15:08:11 +08:00
Damyon Wiese 246698e779 MDL-60615 imscc: string to array fix
Sloppy typing in the imscc converter is causing errors on php7.1

Variable is initialised as a string and then used as an array.
2017-11-09 15:05:36 +08:00
Jake Dallimore 4f3262fede Merge branch 'MDL-60753_master' of git://github.com/markn86/moodle 2017-11-09 14:47:23 +08:00
Andrew Nicols f169f4fd21 MDL-60752 lti: Compare text in types_config properly 2017-11-09 14:25:51 +08:00
Mark Nelson d48d1ba19a MDL-60753 report_competency: fixed dialogue failing to show 2017-11-09 14:11:24 +08:00
Jun Pataleta 7a571b813a Merge branch 'MDL-60628-master' of git://github.com/lameze/moodle 2017-11-09 17:08:46 +13:00
Simey Lameze 754016ab33 MDL-60628 calendar: amend web service unit test 2017-11-09 11:43:49 +08:00
Simey Lameze 10c17dcc10 MDL-60628 calendar: support category events on get_calendar_events ws 2017-11-09 11:29:07 +08:00
Andrew Nicols 5518a32de5 Merge branch 'MDL-60579-master-fix2' of https://github.com/damyon/moodle 2017-11-09 11:18:14 +08:00
Damyon Wiese 56f05f23c6 MDL-60579 user: Don't lose text filters
When replacing a group filter with a different group filter - don't forget all the current text filters that have
been applied.
2017-11-09 11:06:30 +08:00
Damyon Wiese bb869f05e8 MDL-60579 user: Move defines into library
Entry page user/index.php was defining constants that were used by the renderer.
This means the renderer was tied to user/index.php.
2017-11-09 11:06:30 +08:00
Andrew Nicols 7cf4331a6f MDL-60579 user: Correct PARAM type for filters
Damyon pointed out during the integration of this fixset, that the
PARAM type is incorrect.
2017-11-09 10:07:13 +08:00
Andrew Nicols 762f8dc1db MDL-60579 user: Add missing case breaks 2017-11-09 09:07:34 +08:00
Andrew Nicols a997dc9da5 MDL-60579 user: Correct search for strings 2017-11-09 09:07:21 +08:00
Andrew Nicols 446b21b512 MDL-60579 user: Check filter strings have correct part count 2017-11-09 09:07:02 +08:00
Andrew Nicols 3968d2ca7e MDL-60579 user: Prevent behat from interacting til setup complete 2017-11-09 09:05:22 +08:00
Adam Olley 7f83e99e5f MDL-60707 core_search: In tests, use faked time for indexing length
Without this change its possible that the unit tests will fail at any time.
Before this change the indexing time is measured by real-time, not fake time,
making all index timings 0.

This happens as PHP offers no guarantee around the sort-order of an array for
any given two members that equate as equal. It just happens to pass for the
current array of search areas in vanilla Moodle.
2017-11-09 10:49:53 +10:30
AMOS bot 68c580c903 Automatically generated installer lang files 2017-11-09 00:05:00 +00:00
Matteo Scaramuccia 373a35dd31 MDL-60745 phpunit: Bump phpunit from 6.4.3 to 6.4.4
$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 3 updates, 0 removals
  - Updating sebastian/comparator (2.0.2 => 2.1.0): Downloading (100%)
  - Updating phpunit/php-code-coverage (5.2.2 => 5.2.3): Downloading (100%)
  - Updating phpunit/phpunit (6.4.3 => 6.4.4): Downloading (100%)
Writing lock file
Generating autoload files
2017-11-08 23:02:24 +01:00
João Umberto Ciocca de Almeida 6bc8a2e11f MDL-60654 calendar: Clean up lines 140-154
The if+switch code between lines 140 and 154, even though they selected 3 different choices, all of them gave the same result.
Therefore, it'd be cleaner to replace those 16 lines for just two.
2017-11-08 18:36:03 -02:00
Sara Arjona 0c0d460e8b MDL-60718 analytics: Avoid duplicates for users with 2 enrolments 2017-11-08 19:12:59 +01:00
David Monllao ed0e2cea00 Merge branch 'MDL-60732-master' of git://github.com/damyon/moodle 2017-11-08 17:48:07 +01:00
David Monllao 7effd6dd79 Merge branch 'MDL-60720-master' of https://github.com/sammarshallou/moodle 2017-11-08 17:27:15 +01:00
David Monllao 29adfbc3c8 Merge branch 'MDL-58699-master' of git://github.com/damyon/moodle 2017-11-08 15:56:25 +01:00
Tim Hunt d00007bc45 MDL-60741 purgecaches: did not correctly setup the admin page
Note that, admin_externalpage_setup does the right capability check.
2017-11-08 14:30:27 +00:00
David Monllao 4e73acf3cf Merge branch 'MDL-60579-master' of https://github.com/mihailges/moodle 2017-11-08 12:16:20 +01:00
David Monllao fcafb22c22 MDL-60733 oauth: Remove outdated comment 2017-11-08 12:04:31 +01:00
David Monllao 6463a047a2 Merge branch 'MDL-60733-master' of git://github.com/damyon/moodle 2017-11-08 12:03:43 +01:00
Damyon Wiese a471bc4971 MDL-60732 core_user: Show group filters
Always show the group filters, even if the course is in NO_GROUPS mode.
2017-11-08 16:45:42 +08:00
Damyon Wiese d3882ea4a3 MDL-60733 core: B/C for google_oauth
The google_oauth class extends oauth2client which was modified to send "Accept" headers.

The "Accept" headers break picasa and could break any other plugin that was using google_oauth.
2017-11-08 15:41:53 +08:00
sam marshall 4b0facc984 MDL-60720 core_search: Indexing halts on failed get_document
The recordsets used for search indexing sometimes return results
which are invalid (e.g. cannot be found in database). When this
happens, the result in the iterator for the recordset will be
false. Due to a bug, the iterator used to stop when it encountered
a false value, which prevented indexing from getting past the
problematic record.

In addition, the iterator that skips future data resulted in the
current() function of its parent indicator being called twice per
entry, which meant that search indexing called get_document()
twice as many times.
2017-11-07 16:36:37 +00:00
Juan Leyva abdb8f59a5 MDL-59876 webservice: Fix the user preference name field type
Web Services from user and enrol components has been updated to change
the user preference name field type from PARAM_ALPHANUMEXT to
PARAM_RAW.
The old type was not matching the core functionality.
2017-11-07 16:44:48 +01:00
Mihail Geshoski c835126185 MDL-60579 enrolments: Applied filters lost on certain actions
AMOS BEGIN
    CPY [invalidrequest,enrol_lti],[invalidrequest,enrol]
AMOS END
2017-11-07 16:17:00 +08:00
Damyon Wiese 65c52e05d1 MDL-58699 mod_quiz: Require javascript for popup
If any of the access rules require the attempt to open in a new window, assume we
require javascript to attempt the quiz. This makes it harder to bypass the javascript
pseudo security restrictions.
2017-11-07 12:48:21 +08:00
Tobias Reischmann 34eb2faa0d MDL-27886 backup: Decision if a setting is fixed based on level
Previously, when a during backup/restore the "Schema"-stage is loaded,
some settings are fixed if they are LOCKED_BY_HIERARCHY. However, user
data fields of activities can be locked, when the section they are
contained in has user data set to false. When this setting is changed on
the same screen, the fixed setting of the activity can not be "unfixed"
by javascript.

This patch adds a settings-level to the call of is_changeable. With this
only those dependency_settings are considered, which belong to parent
settings, which are not changeable on the current stage.
2017-11-06 12:07:20 +01:00
Tobias Reischmann 8c067bb86d MDL-27886 backup: Enabled unlocking of backup settings
The function is_locked was changed to determine only, if the
dependency_setting want's the dependent setting to be locked.
In the previous version, is_locked did not only check, if the
dependency_setting want's the setting to be locked, but also if the
setting was already locked. A recursive call to the status of the
dependent setting leaded to problems, when unlocking locked settings.

Also the PHPDOC of the is_locked was adjusted to coincide with the current
usage in backup_ui_settings->is_changeable() and
base_setting->set_status(). In both functions all dependency_settings of
a setting are iterated to check if this setting should be or is LOCKED_BY_HIERARCHY.
The actual state of the setting was therefore either checked beforehand
or is not interesting, since the question is, if it shall be changed.
2017-11-06 12:07:20 +01:00
Tobias Reischmann 77a4d33755 MDL-27886 backup: Added behat tests for user data settings
This new test defines different combinations of global and local user
data settings during the restore process and tests that global defaults
can be overriden.
2017-11-06 12:07:20 +01:00
Matteo Scaramuccia 740a9315c3 MDL-59099 dml: MySQL8 supports only the Barracuda file format.
The following InnoDB file format configuration parameters were deprecated
in MySQL 5.7.7 and are now removed:
- innodb_file_format
- innodb_file_format_check
- innodb_file_format_max
- innodb_large_prefix

File format configuration parameters were necessary for creating tables
compatible with earlier versions of InnoDB in MySQL 5.1.
Now that MySQL 5.1 has reached the end of its product lifecycle,
the parameters are no longer required.

The FILE_FORMAT column was removed from the INNODB_SYS_TABLES and
INNODB_SYS_TABLESPACES Information Schema tables.

Ref: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-0.html
2017-10-27 17:38:36 +02:00
Damyon Wiese 1518ce952f MDL-60567 competencies: test list_competencies 2017-10-27 11:50:11 +08:00
Damyon Wiese f09f01fcad MDL-60567 competencies: list_competencies wrong type
"validate_params" returns arrays in external functions.
2017-10-27 11:49:13 +08:00
Juan Segarra Montesinos 6e4e60ef9f MDL-60441 mod_glossary: Add a link to glossary entries 2017-10-15 15:33:17 +02:00
Juan Segarra Montesinos f8c0b9e71f MDL-55808 mod_glossary: Search glossary entries with ratings enabled doesn't work 2017-10-13 17:12:37 +02:00
Vervoort, Claude 18ae59bea1 MDL-60253 lti: also consider securetoolurl for URL match 2017-09-27 13:26:42 -04:00
3520 changed files with 223736 additions and 28356 deletions
+4 -2
View File
@@ -3,8 +3,8 @@
*/**/build/
node_modules/
vendor/
admin/tool/policy/amd/src/jquery-eu-cookie-law-popup.js
admin/tool/usertours/amd/src/tour.js
admin/tool/usertours/amd/src/popper.js
auth/cas/CAS/
enrol/lti/ims-blti/
filter/algebra/AlgParser.pm
@@ -41,7 +41,6 @@ lib/html2text/
lib/markdown/
lib/recaptchalib.php
lib/xhprof/
lib/xmlize.php
lib/horde/
lib/requirejs/
lib/amd/src/loglevel.js
@@ -58,7 +57,10 @@ lib/maxmind/MaxMind/
lib/ltiprovider/
lib/amd/src/truncate.js
lib/fonts/
lib/amd/src/adapter.js
lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
+1
View File
@@ -1,4 +1,5 @@
**/yui/build/** -diff
**/amd/build/** -diff
lib/dml/oci_native_moodle_package.sql text eol=lf
theme/bootstrapbase/style/editor.css -diff
theme/bootstrapbase/style/moodle.css -diff
+5 -2
View File
@@ -2,10 +2,11 @@
theme/bootstrapbase/style/
theme/clean/style/custom.css
theme/more/style/custom.css
theme/boost/style/moodle.css
node_modules/
vendor/
admin/tool/policy/amd/src/jquery-eu-cookie-law-popup.js
admin/tool/usertours/amd/src/tour.js
admin/tool/usertours/amd/src/popper.js
auth/cas/CAS/
enrol/lti/ims-blti/
filter/algebra/AlgParser.pm
@@ -42,7 +43,6 @@ lib/html2text/
lib/markdown/
lib/recaptchalib.php
lib/xhprof/
lib/xmlize.php
lib/horde/
lib/requirejs/
lib/amd/src/loglevel.js
@@ -59,7 +59,10 @@ lib/maxmind/MaxMind/
lib/ltiprovider/
lib/amd/src/truncate.js
lib/fonts/
lib/amd/src/adapter.js
lib/validateurlsyntax.php
lib/amd/src/popper.js
lib/geopattern-php/
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
+11 -8
View File
@@ -23,8 +23,9 @@ addons:
- mysql-client-core-5.6
- mysql-client-5.6
services:
- redis-server
# 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
@@ -55,7 +56,7 @@ matrix:
include:
# 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='8.9'
env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon'
exclude:
# MySQL - it's just too slow.
@@ -99,8 +100,9 @@ install:
fi
# Enable Redis.
echo 'extension="redis.so"' > /tmp/redis.ini
phpenv config-add /tmp/redis.ini
# 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
# 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.
@@ -171,10 +173,11 @@ 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_';" \
-e "/require_once/i \\define('TEST_SESSION_REDIS_HOST', '127.0.0.1');" \
config.php ;
# Initialise PHPUnit for Moodle.
@@ -204,7 +207,7 @@ before_script:
# We need the official upstream for comparison
git remote add upstream https://github.com/moodle/moodle.git;
git fetch upstream master;
git fetch upstream MOODLE_35_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`
@@ -245,7 +248,7 @@ script:
- >
if [ "$TASK" = 'PHPUNIT' ];
then
vendor/bin/phpunit;
vendor/bin/phpunit --fail-on-risky --disallow-test-output --verbose;
fi
- >
+14 -2
View File
@@ -137,6 +137,16 @@ module.exports = function(grunt) {
}
}
},
sass: {
dist: {
files: {
"theme/boost/style/moodle.css": "theme/boost/scss/preset/default.scss"
}
},
options: {
includePaths: ["theme/boost/scss/"]
}
},
watch: {
options: {
nospawn: true // We need not to spawn so config can be changed dynamically.
@@ -214,7 +224,8 @@ module.exports = function(grunt) {
'# Generated by "grunt ignorefiles"',
'theme/bootstrapbase/style/',
'theme/clean/style/custom.css',
'theme/more/style/custom.css'
'theme/more/style/custom.css',
'theme/boost/style/moodle.css'
].concat(thirdPartyPaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n'));
};
@@ -362,6 +373,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-stylelint');
@@ -374,7 +386,7 @@ module.exports = function(grunt) {
grunt.registerTask('js', ['amd', 'yui']);
// Register CSS taks.
grunt.registerTask('css', ['stylelint:scss', 'stylelint:less', 'less:bootstrapbase', 'stylelint:css']);
grunt.registerTask('css', ['stylelint:scss', 'sass', 'stylelint:less', 'less:bootstrapbase', 'stylelint:css']);
// Register the startup task.
grunt.registerTask('startup', 'Run the correct tasks for the current directory', tasks.startup);
+6
View File
@@ -165,6 +165,12 @@ function print_auth_lock_options($auth, $user_fields, $helptext, $retrieveopts,
// If custom field then pick name from database.
$fieldshortname = str_replace('profile_field_', '', $fieldname);
$fieldname = $customfieldname[$fieldshortname]->name;
if (core_text::strlen($fieldshortname) > 67) {
// If custom profile field name is longer than 67 characters we will not be able to store the setting
// such as 'field_updateremote_profile_field_NOTSOSHORTSHORTNAME' in the database because the character
// limit for the setting name is 100.
continue;
}
} elseif ($fieldname == 'url') {
$fieldname = get_string('webpage');
} else {
+13 -9
View File
@@ -54,14 +54,16 @@ $statusmsg = '';
$errormsg = '';
if ($data = data_submitted() and confirm_sesskey()) {
if (admin_write_settings($data)) {
$statusmsg = get_string('changessaved');
}
$count = admin_write_settings($data);
if (empty($adminroot->errors)) {
switch ($return) {
case 'site': redirect("$CFG->wwwroot/");
case 'admin': redirect("$CFG->wwwroot/$CFG->admin/");
// No errors. Did we change any setting? If so, then indicate success.
if ($count) {
$statusmsg = get_string('changessaved');
} else {
switch ($return) {
case 'site': redirect("$CFG->wwwroot/");
case 'admin': redirect("$CFG->wwwroot/$CFG->admin/");
}
}
} else {
$errormsg = get_string('errorwithsettings', 'admin');
@@ -73,7 +75,7 @@ if ($data = data_submitted() and confirm_sesskey()) {
if ($PAGE->user_allowed_editing() && $adminediting != -1) {
$USER->editing = $adminediting;
}
$buttons = null;
if ($PAGE->user_allowed_editing()) {
$url = clone($PAGE->url);
if ($PAGE->user_is_editing()) {
@@ -127,7 +129,9 @@ if ($savebutton) {
$visiblepathtosection = array_reverse($settingspage->visiblepath);
$PAGE->set_title("$SITE->shortname: " . implode(": ",$visiblepathtosection));
$PAGE->set_heading($SITE->fullname);
$PAGE->set_button($buttons);
if ($buttons) {
$PAGE->set_button($buttons);
}
echo $OUTPUT->header();
+41
View File
@@ -0,0 +1,41 @@
<?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/>.
/**
* Privacy Subsystem implementation for core_admin.
*
* @package core_admin
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_admin\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for core_admin implementing null_provider.
*
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
+1
View File
@@ -73,6 +73,7 @@ foreach ($rs as $user) {
echo "Redeleting user $user->id: $user->username ($user->email)\n";
delete_user($user);
}
$rs->close();
cli_heading('Deleting all leftovers');
+1 -1
View File
@@ -219,7 +219,6 @@ $databases = array('mysqli' => moodle_database::get_driver_instance('mysqli', 'n
'pgsql' => moodle_database::get_driver_instance('pgsql', 'native'),
'oci' => moodle_database::get_driver_instance('oci', 'native'),
'sqlsrv' => moodle_database::get_driver_instance('sqlsrv', 'native'), // MS SQL*Server PHP driver
'mssql' => moodle_database::get_driver_instance('mssql', 'native'), // FreeTDS driver
);
foreach ($databases as $type=>$database) {
if ($database->driver_installed() !== true) {
@@ -443,6 +442,7 @@ if ($interactive) {
}
}
$CFG->tempdir = $CFG->dataroot.'/temp';
$CFG->backuptempdir = $CFG->tempdir.'/backup';
$CFG->cachedir = $CFG->dataroot.'/cache';
$CFG->localcachedir = $CFG->dataroot.'/localcache';
+5 -4
View File
@@ -131,10 +131,11 @@ if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed)) {
cli_error(get_string('pluginschecktodo', 'admin'));
}
$a = new stdClass();
$a->oldversion = $oldversion;
$a->newversion = $newversion;
if ($interactive) {
$a = new stdClass();
$a->oldversion = $oldversion;
$a->newversion = $newversion;
echo cli_heading(get_string('databasechecking', '', $a)) . PHP_EOL;
}
@@ -193,5 +194,5 @@ admin_apply_default_settings(NULL, false);
// to immediately start browsing the site.
upgrade_themes();
echo get_string('cliupgradefinished', 'admin')."\n";
echo get_string('cliupgradefinished', 'admin', $a)."\n";
exit(0); // 0 means success
+176
View File
@@ -2259,4 +2259,180 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="3.5" requires="3.1">
<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.5.31" />
<VENDOR name="postgres" version="9.3" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="7.0.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="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_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+3 -4
View File
@@ -29,9 +29,10 @@ require_once($CFG->libdir.'/adminlib.php');
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$returnurl = optional_param('returnurl', null, PARAM_LOCALURL);
admin_externalpage_setup('purgecaches');
// If we have got here as a confirmed aciton, do it.
if ($confirm && isloggedin() && confirm_sesskey()) {
require_capability('moodle/site:config', context_system::instance());
if ($confirm && confirm_sesskey()) {
// Valid request. Purge, and redirect the user back to where they came from.
purge_all_caches();
@@ -45,8 +46,6 @@ if ($confirm && isloggedin() && confirm_sesskey()) {
}
// Otherwise, show a button to actually purge the caches.
admin_externalpage_setup('purgecaches');
$actionurl = new moodle_url('/admin/purgecaches.php', array('sesskey'=>sesskey(), 'confirm'=>1));
if ($returnurl) {
$actionurl->param('returnurl', $returnurl);
@@ -46,6 +46,14 @@ $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
// 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) {
foreach ($plugins as $plugin => $callback) {
$callback('confirm');
}
}
throw new moodle_exception('errorotherhubsnotsupported', 'hub');
}
+1 -1
View File
@@ -110,7 +110,7 @@ if (\core\hub\registration::is_registered()) {
echo $OUTPUT->heading(get_string('registerwithmoodleorg', 'admin'));
}
$renderer = $PAGE->get_renderer('core', 'register');
$renderer = $PAGE->get_renderer('core', 'admin');
echo $renderer->moodleorg_registration_message();
$siteregistrationform->display();
-41
View File
@@ -1,41 +0,0 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// This file is part of Moodle - http://moodle.org/ //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// //
// 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/>. //
// //
///////////////////////////////////////////////////////////////////////////
/**
* Registration renderer.
* @package moodle
* @subpackage registration
* @copyright 2010 Moodle Pty Ltd (http://moodle.com)
* @author Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_register_renderer extends plugin_renderer_base {
/**
* Display message about the benefits of registering on Moodle.org
*
* @return string
*/
public function moodleorg_registration_message() {
return format_text(get_string('registermoodlenet', 'admin'), FORMAT_HTML, ['noclean' => true]);
}
}
+8
View File
@@ -40,6 +40,14 @@ $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
// 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) {
foreach ($plugins as $plugin => $callback) {
$callback('renew');
}
}
throw new moodle_exception('errorotherhubsnotsupported', 'hub');
}
+10 -1
View File
@@ -1990,7 +1990,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));
$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);
@@ -2084,4 +2084,13 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->warning(get_string('legacylogginginuse'));
}
}
/**
* Display message about the benefits of registering on Moodle.org
*
* @return string
*/
public function moodleorg_registration_message() {
return format_text(get_string('registermoodlenet', 'admin'), FORMAT_HTML, ['noclean' => true]);
}
}
+5 -1
View File
@@ -29,7 +29,8 @@ $mode = required_param('mode', PARAM_ALPHANUMEXT);
$classformode = array(
'assign' => 'core_role_allow_assign_page',
'override' => 'core_role_allow_override_page',
'switch' => 'core_role_allow_switch_page'
'switch' => 'core_role_allow_switch_page',
'view' => 'core_role_allow_view_page'
);
if (!isset($classformode[$mode])) {
print_error('invalidmode', '', '', $mode);
@@ -58,6 +59,9 @@ if (optional_param('submit', false, PARAM_BOOL) && data_submitted() && confirm_s
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();
+1 -1
View File
@@ -245,7 +245,7 @@ if ($roleid) {
$select = new single_select($PAGE->url, 'roleid', $nameswithcounts, $roleid, null);
$select->label = get_string('assignanotherrole', 'core_role');
echo $OUTPUT->render($select);
echo '<p><a href="' . $PAGE->url . '">' . get_string('backtoallroles', 'core_role') . '</a></p>';
echo '<p><a href="' . $url . '">' . get_string('backtoallroles', 'core_role') . '</a></p>';
echo '</div>';
} else if (empty($assignableroles)) {
+1 -1
View File
@@ -33,7 +33,7 @@ class core_role_allow_assign_page extends core_role_allow_role_page {
}
protected function set_allow($fromroleid, $targetroleid) {
allow_assign($fromroleid, $targetroleid);
core_role_set_assign_allowed($fromroleid, $targetroleid);
}
protected function get_cell_tooltip($fromrole, $targetrole) {
+1 -1
View File
@@ -33,7 +33,7 @@ class core_role_allow_override_page extends core_role_allow_role_page {
}
protected function set_allow($fromroleid, $targetroleid) {
allow_override($fromroleid, $targetroleid);
core_role_set_override_allowed($fromroleid, $targetroleid);
}
protected function get_cell_tooltip($fromrole, $targetrole) {
+1 -1
View File
@@ -41,7 +41,7 @@ class core_role_allow_switch_page extends core_role_allow_role_page {
}
protected function set_allow($fromroleid, $targetroleid) {
allow_switch($fromroleid, $targetroleid);
core_role_set_switch_allowed($fromroleid, $targetroleid);
}
protected function is_allowed_target($targetroleid) {
+77
View File
@@ -0,0 +1,77 @@
<?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/>.
/**
* Role view matrix.
*
* @package core_role
* @copyright 2016 onwards Andrew Hancox <andrewdchancox@googlemail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Subclass of role_allow_role_page for the Allow views tab.
*
* @package core_role
* @copyright 2016 onwards Andrew Hancox <andrewdchancox@googlemail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_role_allow_view_page extends core_role_allow_role_page {
/** @var array */
protected $allowedtargetroles;
/**
* core_role_allow_view_page constructor.
*/
public function __construct() {
parent::__construct('role_allow_view', 'allowview');
}
/**
* Allow from role to view target role.
* @param int $fromroleid
* @param int $targetroleid
*/
protected function set_allow($fromroleid, $targetroleid) {
core_role_set_view_allowed($fromroleid, $targetroleid);
}
/**
* Get tool tip for cell.
* @param string $fromrole
* @param string $targetrole
* @return string
* @throws \coding_exception
*/
protected function get_cell_tooltip($fromrole, $targetrole) {
$a = new stdClass;
$a->fromrole = $fromrole->localname;
$a->targetrole = $targetrole->localname;
return get_string('allowroletoview', 'core_role', $a);
}
/**
* Get intro text for role allow view page.
* @return string
* @throws \coding_exception
*/
public function get_intro_text() {
return get_string('configallowview', 'core_admin');
}
}
@@ -42,6 +42,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
protected $allowassign;
protected $allowoverride;
protected $allowswitch;
protected $allowview;
public function __construct($context, $roleid) {
$this->roleid = $roleid;
@@ -72,6 +73,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$this->allowassign = array_keys($this->get_allow_roles_list('assign'));
$this->allowoverride = array_keys($this->get_allow_roles_list('override'));
$this->allowswitch = array_keys($this->get_allow_roles_list('switch'));
$this->allowview = array_keys($this->get_allow_roles_list('view'));
} else {
$this->role = new stdClass;
@@ -83,6 +85,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$this->allowassign = array();
$this->allowoverride = array();
$this->allowswitch = array();
$this->allowview = array();
}
parent::load_current_permissions();
}
@@ -100,6 +103,8 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$this->role->shortname = core_text::strtolower(clean_param($this->role->shortname, PARAM_ALPHANUMEXT));
if (empty($this->role->shortname)) {
$this->errors['shortname'] = get_string('errorbadroleshortname', 'core_role');
} else if (core_text::strlen($this->role->shortname) > 100) { // Check if it exceeds the max of 100 characters.
$this->errors['shortname'] = get_string('errorroleshortnametoolong', 'core_role');
}
}
if ($DB->record_exists_select('role', 'shortname = ? and id <> ?', array($this->role->shortname, $this->roleid))) {
@@ -162,6 +167,10 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if (!is_null($allow)) {
$this->allowswitch = $allow;
}
$allow = optional_param_array('allowview', null, PARAM_INT);
if (!is_null($allow)) {
$this->allowview = $allow;
}
// Now read the permissions for each capability.
parent::read_submitted_permissions();
@@ -178,7 +187,8 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
* @param int $roleid role id or 0 for no role
* @param array $options array with following keys:
* 'name', 'shortname', 'description', 'permissions', 'archetype',
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch'
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch',
* 'allowview'
*/
public function force_duplicate($roleid, array $options) {
global $DB;
@@ -215,6 +225,9 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if ($options['allowswitch']) {
$this->allowswitch = array();
}
if ($options['allowview']) {
$this->allowview = array();
}
if ($options['permissions']) {
foreach ($this->capabilities as $capid => $cap) {
@@ -260,6 +273,9 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if ($options['allowswitch']) {
$this->allowswitch = array_keys($this->get_allow_roles_list('switch', $roleid));
}
if ($options['allowview']) {
$this->allowview = array_keys($this->get_allow_roles_list('view', $roleid));
}
if ($options['permissions']) {
$this->permissions = $DB->get_records_menu('role_capabilities',
@@ -280,7 +296,8 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
* @param string $archetype
* @param array $options array with following keys:
* 'name', 'shortname', 'description', 'permissions', 'archetype',
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch'
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch',
* 'allowview'
*/
public function force_archetype($archetype, array $options) {
$archetypes = get_role_archetypes();
@@ -321,6 +338,9 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if ($options['allowswitch']) {
$this->allowswitch = get_default_role_archetype_allows('switch', $archetype);
}
if ($options['allowview']) {
$this->allowview = get_default_role_archetype_allows('view', $archetype);
}
if ($options['permissions']) {
$defaultpermissions = get_default_capabilities($archetype);
@@ -340,7 +360,8 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
* @param string $xml
* @param array $options array with following keys:
* 'name', 'shortname', 'description', 'permissions', 'archetype',
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch'
* 'contextlevels', 'allowassign', 'allowoverride', 'allowswitch',
* 'allowview'
*/
public function force_preset($xml, array $options) {
if (!$info = core_role_preset::parse_preset($xml)) {
@@ -377,7 +398,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
}
}
foreach (array('assign', 'override', 'switch') as $type) {
foreach (array('assign', 'override', 'switch', 'view') as $type) {
if ($options['allow'.$type]) {
if (isset($info['allow'.$type])) {
$this->{'allow'.$type} = $info['allow'.$type];
@@ -438,6 +459,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$this->save_allow('assign');
$this->save_allow('override');
$this->save_allow('switch');
$this->save_allow('view');
// Permissions.
parent::save_changes();
@@ -449,7 +471,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$current = array_keys($this->get_allow_roles_list($type));
$wanted = $this->{'allow'.$type};
$addfunction = 'allow_'.$type;
$addfunction = "core_role_set_{$type}_allowed";
$deltable = 'role_allow_'.$type;
$field = 'allow'.$type;
@@ -476,7 +498,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
}
protected function get_shortname_field($id) {
return '<input type="text" id="' . $id . '" name="' . $id . '" maxlength="254" value="' . s($this->role->shortname) . '"' .
return '<input type="text" id="' . $id . '" name="' . $id . '" maxlength="100" value="' . s($this->role->shortname) . '"' .
' class="form-control"/>';
}
@@ -506,9 +528,11 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if (!$this->disabled) {
$output .= '<input type="hidden" name="contextlevel' . $cl . '" value="0" />';
}
$output .= '<input type="checkbox" id="cl' . $cl . '" name="contextlevel' . $cl .
$output .= '<div class="form-check justify-content-start w-100">';
$output .= '<input class="form-check-input" type="checkbox" id="cl' . $cl . '" name="contextlevel' . $cl .
'" value="1" ' . $extraarguments . '/> ';
$output .= '<label for="cl' . $cl . '">' . $clname . "</label><br />\n";
$output .= '<label class="form-check-label" for="cl' . $cl . '">' . $clname . "</label>\n";
$output .= '</div>';
}
return $output;
}
@@ -523,7 +547,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
protected function get_allow_roles_list($type, $roleid = null) {
global $DB;
if ($type !== 'assign' and $type !== 'switch' and $type !== 'override') {
if ($type !== 'assign' and $type !== 'switch' and $type !== 'override' and $type !== 'view') {
debugging('Invalid role allowed type specified', DEBUG_DEVELOPER);
return array();
}
@@ -547,11 +571,11 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
/**
* Returns an array of roles with the allowed type.
*
* @param string $type Must be one of: assign, switch, or override.
* @param string $type Must be one of: assign, switch, override or view.
* @return array Am array of role names with the allowed type
*/
protected function get_allow_role_control($type) {
if ($type !== 'assign' and $type !== 'switch' and $type !== 'override') {
if ($type !== 'assign' and $type !== 'switch' and $type !== 'override' and $type !== 'view') {
debugging('Invalid role allowed type specified', DEBUG_DEVELOPER);
return '';
}
@@ -641,6 +665,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
$this->print_field('menuallowassign', get_string('allowassign', 'core_role'), $this->get_allow_role_control('assign'));
$this->print_field('menuallowoverride', get_string('allowoverride', 'core_role'), $this->get_allow_role_control('override'));
$this->print_field('menuallowswitch', get_string('allowswitch', 'core_role'), $this->get_allow_role_control('switch'));
$this->print_field('menuallowview', get_string('allowview', 'core_role'), $this->get_allow_role_control('view'));
if ($risks = $this->get_role_risks_info()) {
$this->print_field('', get_string('rolerisks', 'core_role'), $risks);
}
+2 -2
View File
@@ -84,7 +84,7 @@ class core_role_preset {
$contextlevels->appendChild($dom->createElement('level', $name));
}
foreach (array('assign', 'override', 'switch') as $type) {
foreach (array('assign', 'override', 'switch', 'view') as $type) {
$allows = $dom->createElement('allow'.$type);
$top->appendChild($allows);
$records = $DB->get_records('role_allow_'.$type, array('roleid'=>$roleid), "allow$type ASC");
@@ -205,7 +205,7 @@ class core_role_preset {
}
}
foreach (array('assign', 'override', 'switch') as $type) {
foreach (array('assign', 'override', 'switch', 'view') as $type) {
$values = self::get_node_children_values($dom, '/role/allow'.$type, 'shortname');
if (!isset($values)) {
$info['allow'.$type] = null;
+1
View File
@@ -79,6 +79,7 @@ class core_role_preset_form extends moodleform {
$mform->addElement('advcheckbox', 'allowassign', get_string('allowassign', 'core_role'));
$mform->addElement('advcheckbox', 'allowoverride', get_string('allowoverride', 'core_role'));
$mform->addElement('advcheckbox', 'allowswitch', get_string('allowswitch', 'core_role'));
$mform->addElement('advcheckbox', 'allowview', get_string('allowview', 'core_role'));
$mform->addElement('advcheckbox', 'permissions', get_string('permissions', 'core_role'));
}
+379
View File
@@ -0,0 +1,379 @@
<?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/>.
/**
* Privacy Subsystem implementation for core_role.
*
* @package core_role
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_role\privacy;
defined('MOODLE_INTERNAL') || die();
use \core_privacy\local\metadata\collection;
use \core_privacy\local\request\contextlist;
use \core_privacy\local\request\approved_contextlist;
use \core_privacy\local\request\transform;
use \core_privacy\local\request\writer;
/**
* Privacy provider for core_role.
*
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements
\core_privacy\local\metadata\provider,
\core_privacy\local\request\subsystem\provider,
\core_privacy\local\request\subsystem\plugin_provider,
\core_privacy\local\request\user_preference_provider {
/**
* Get information about the user data stored by this plugin.
*
* @param collection $collection An object for storing metadata.
* @return collection The metadata.
*/
public static function get_metadata(collection $collection) : collection {
$rolecapabilities = [
'roleid' => 'privacy:metadata:role_capabilities:roleid',
'capability' => 'privacy:metadata:role_capabilities:capability',
'permission' => 'privacy:metadata:role_capabilities:permission',
'timemodified' => 'privacy:metadata:role_capabilities:timemodified',
'modifierid' => 'privacy:metadata:role_capabilities:modifierid'
];
$roleassignments = [
'roleid' => 'privacy:metadata:role_assignments:roleid',
'userid' => 'privacy:metadata:role_assignments:userid',
'timemodified' => 'privacy:metadata:role_assignments:timemodified',
'modifierid' => 'privacy:metadata:role_assignments:modifierid',
'component' => 'privacy:metadata:role_assignments:component',
'itemid' => 'privacy:metadata:role_assignments:itemid'
];
$collection->add_database_table('role_capabilities', $rolecapabilities,
'privacy:metadata:role_capabilities:tableexplanation');
$collection->add_database_table('role_assignments', $roleassignments,
'privacy:metadata:role_assignments:tableexplanation');
$collection->add_user_preference('definerole_showadvanced',
'privacy:metadata:preference:showadvanced');
return $collection;
}
/**
* Export all user preferences for the plugin.
*
* @param int $userid The userid of the user whose data is to be exported.
*/
public static function export_user_preferences(int $userid) {
$showadvanced = get_user_preferences('definerole_showadvanced', null, $userid);
if ($showadvanced !== null) {
writer::export_user_preference('core_role',
'definerole_showadvanced',
transform::yesno($showadvanced),
get_string('privacy:metadata:preference:showadvanced', 'core_role')
);
}
}
/**
* Return all contexts for this userid.
*
* @param int $userid The user ID.
* @return contextlist The list of context IDs.
*/
public static function get_contexts_for_userid(int $userid) : contextlist {
global $DB;
$contextlist = new contextlist();
// The role_capabilities table contains user data.
$contexts = [
CONTEXT_SYSTEM,
CONTEXT_USER,
CONTEXT_COURSECAT,
CONTEXT_COURSE,
CONTEXT_MODULE,
CONTEXT_BLOCK
];
list($insql, $inparams) = $DB->get_in_or_equal($contexts, SQL_PARAMS_NAMED);
$sql = "SELECT ctx.id
FROM {context} ctx
JOIN {role_capabilities} rc
ON rc.contextid = ctx.id
AND ((ctx.contextlevel {$insql} AND rc.modifierid = :modifierid)
OR (ctx.contextlevel = :contextlevel AND ctx.instanceid = :userid))";
$params = [
'modifierid' => $userid,
'contextlevel' => CONTEXT_USER,
'userid' => $userid
];
$params += $inparams;
$contextlist->add_from_sql($sql, $params);
// The role_assignments table contains user data.
$contexts = [
CONTEXT_SYSTEM,
CONTEXT_USER,
CONTEXT_COURSECAT,
CONTEXT_COURSE,
CONTEXT_MODULE,
CONTEXT_BLOCK
];
list($insql, $inparams) = $DB->get_in_or_equal($contexts, SQL_PARAMS_NAMED);
$params = [
'userid' => $userid,
'modifierid' => $userid
];
$params += $inparams;
$sql = "SELECT ctx.id
FROM {role_assignments} ra
JOIN {context} ctx
ON ctx.id = ra.contextid
AND ctx.contextlevel {$insql}
WHERE (ra.userid = :userid
OR ra.modifierid = :modifierid)
AND ra.component != 'tool_cohortroles'";
$contextlist->add_from_sql($sql, $params);
return $contextlist;
}
/**
* Export all user data for the specified user, in the specified contexts.
*
* @param approved_contextlist $contextlist The list of approved contexts for a user.
*/
public static function export_user_data(approved_contextlist $contextlist) {
global $DB;
if (empty($contextlist)) {
return;
}
$rolesnames = self::get_roles_name();
$userid = $contextlist->get_user()->id;
$ctxfields = \context_helper::get_preload_record_columns_sql('ctx');
list($insql, $inparams) = $DB->get_in_or_equal($contextlist->get_contextids(), SQL_PARAMS_NAMED);
// Role Assignments export data.
$contexts = [
CONTEXT_SYSTEM,
CONTEXT_USER,
CONTEXT_COURSECAT,
CONTEXT_COURSE,
CONTEXT_MODULE,
CONTEXT_BLOCK
];
list($inctxsql, $ctxparams) = $DB->get_in_or_equal($contexts, SQL_PARAMS_NAMED);
$sql = "SELECT ra.id, ra.contextid, ra.roleid, ra.userid, ra.timemodified, ra.modifierid, $ctxfields
FROM {role_assignments} ra
JOIN {context} ctx
ON ctx.id = ra.contextid
AND ctx.contextlevel {$inctxsql}
AND (ra.userid = :userid OR ra.modifierid = :modifierid)
AND ra.component != 'tool_cohortroles'
JOIN {role} r
ON r.id = ra.roleid
WHERE ctx.id {$insql}";
$params = ['userid' => $userid, 'modifierid' => $userid];
$params += $inparams;
$params += $ctxparams;
$assignments = $DB->get_recordset_sql($sql, $params);
foreach ($assignments as $assignment) {
\context_helper::preload_from_record($assignment);
$alldata[$assignment->contextid][$rolesnames[$assignment->roleid]][] = (object)[
'timemodified' => transform::datetime($assignment->timemodified),
'userid' => transform::user($assignment->userid),
'modifierid' => transform::user($assignment->modifierid)
];
}
$assignments->close();
if (!empty($alldata)) {
array_walk($alldata, function($roledata, $contextid) {
$context = \context::instance_by_id($contextid);
array_walk($roledata, function($data, $rolename) use ($context) {
writer::with_context($context)->export_data(
[get_string('privacy:metadata:role_assignments', 'core_role'), $rolename],
(object)$data);
});
});
unset($alldata);
}
// Role Capabilities export data.
$strpermissions = self::get_permissions_name();
$contexts = [
CONTEXT_SYSTEM,
CONTEXT_USER,
CONTEXT_COURSECAT,
CONTEXT_COURSE,
CONTEXT_MODULE,
CONTEXT_BLOCK
];
list($inctxsql, $ctxparams) = $DB->get_in_or_equal($contexts, SQL_PARAMS_NAMED);
$sql = "SELECT rc.id, rc.contextid, rc.capability, rc.permission, rc.timemodified, rc.roleid, $ctxfields
FROM {context} ctx
JOIN {role_capabilities} rc
ON rc.contextid = ctx.id
AND ((ctx.contextlevel {$inctxsql} AND rc.modifierid = :modifierid)
OR (ctx.contextlevel = :contextlevel AND ctx.instanceid = :userid))
WHERE ctx.id {$insql}";
$params = [
'modifierid' => $userid,
'contextlevel' => CONTEXT_USER,
'userid' => $userid
];
$params += $inparams;
$params += $ctxparams;
$capabilities = $DB->get_recordset_sql($sql, $params);
foreach ($capabilities as $capability) {
\context_helper::preload_from_record($capability);
$alldata[$capability->contextid][$rolesnames[$capability->roleid]][] = (object)[
'timemodified' => transform::datetime($capability->timemodified),
'capability' => $capability->capability,
'permission' => $strpermissions[$capability->permission]
];
}
$capabilities->close();
if (!empty($alldata)) {
array_walk($alldata, function($capdata, $contextid) {
$context = \context::instance_by_id($contextid);
array_walk($capdata, function($data, $rolename) use ($context) {
writer::with_context($context)->export_data(
[get_string('privacy:metadata:role_capabilities', 'core_role'), $rolename],
(object)$data);
});
});
}
}
/**
* Exports the data relating to tool_cohortroles component on role assignments by
* Assign user roles to cohort feature.
*
* @param int $userid The user ID.
*/
public static function export_user_role_to_cohort(int $userid) {
global $DB;
$rolesnames = self::get_roles_name();
$sql = "SELECT ra.id, ra.contextid, ra.roleid, ra.userid, ra.timemodified, ra.modifierid, r.id as roleid
FROM {role_assignments} ra
JOIN {context} ctx
ON ctx.id = ra.contextid
AND ctx.contextlevel = :contextlevel
AND ra.component = 'tool_cohortroles'
JOIN {role} r
ON r.id = ra.roleid
WHERE ctx.instanceid = :instanceid
OR ra.userid = :userid";
$params = ['userid' => $userid, 'instanceid' => $userid, 'contextlevel' => CONTEXT_USER];
$assignments = $DB->get_recordset_sql($sql, $params);
foreach ($assignments as $assignment) {
$alldata[$assignment->contextid][$rolesnames[$assignment->roleid]][] = (object)[
'timemodified' => transform::datetime($assignment->timemodified),
'userid' => transform::user($assignment->userid),
'modifierid' => transform::user($assignment->modifierid)
];
}
$assignments->close();
if (!empty($alldata)) {
array_walk($alldata, function($roledata, $contextid) {
$context = \context::instance_by_id($contextid);
array_walk($roledata, function($data, $rolename) use ($context) {
writer::with_context($context)->export_related_data(
[get_string('privacy:metadata:role_cohortroles', 'core_role'), $rolename], 'cohortroles',
(object)$data);
});
});
}
}
/**
* Delete all user data for this context.
*
* @param \context $context The context to delete data for.
*/
public static function delete_data_for_all_users_in_context(\context $context) {
global $DB;
// Don't remove data from role_capabilities.
// Because this data affects the whole Moodle, there are override capabilities.
// Don't belong to the modifier user.
// Remove data from role_assignments.
$DB->delete_records('role_assignments', ['contextid' => $context->id]);
}
/**
* Delete all user data for this user only.
*
* @param approved_contextlist $contextlist The list of approved contexts for a user.
*/
public static function delete_data_for_user(approved_contextlist $contextlist) {
global $DB;
// Don't remove data from role_capabilities.
// Because this data affects the whole Moodle, there are override capabilities.
// Don't belong to the modifier user.
// Remove data from role_assignments.
if (empty($contextlist->count())) {
return;
}
$userid = $contextlist->get_user()->id;
foreach ($contextlist->get_contexts() as $context) {
// Only delete the roles assignments where the user is assigned in all contexts.
$DB->delete_records('role_assignments', ['userid' => $userid, 'contextid' => $context->id]);
}
}
/**
* Delete user entries in role_assignments related to the feature
* Assign user roles to cohort feature.
*
* @param int $userid The user ID.
*/
public static function delete_user_role_to_cohort(int $userid) {
global $DB;
// Delete entries where userid is a mentor by tool_cohortroles.
$DB->delete_records('role_assignments', ['userid' => $userid, 'component' => 'tool_cohortroles']);
}
/**
* Get all the localised roles name in a simple array.
*
* @return array Array of name of the roles by roleid.
*/
protected static function get_roles_name() {
$roles = role_fix_names(get_all_roles(), \context_system::instance(), ROLENAME_ORIGINAL);
$rolesnames = array();
foreach ($roles as $role) {
$rolesnames[$role->id] = $role->localname;
}
return $rolesnames;
}
/**
* Get all the permissions name in a simple array.
*
* @return array Array of permissions name.
*/
protected static function get_permissions_name() {
$strpermissions = array(
CAP_INHERIT => get_string('inherit', 'role'),
CAP_ALLOW => get_string('allow', 'role'),
CAP_PREVENT => get_string('prevent', 'role'),
CAP_PROHIBIT => get_string('prohibit', 'role')
);
return $strpermissions;
}
}
+4 -2
View File
@@ -103,7 +103,8 @@ if ($action === 'add' and $resettype !== 'none') {
'contextlevels' => 1,
'allowassign' => 1,
'allowoverride' => 1,
'allowswitch' => 1);
'allowswitch' => 1,
'allowview' => 1);
if ($showadvanced) {
$definitiontable = new core_role_define_role_table_advanced($systemcontext, 0);
} else {
@@ -150,7 +151,8 @@ if ($action === 'add' and $resettype !== 'none') {
'contextlevels' => $data->contextlevels,
'allowassign' => $data->allowassign,
'allowoverride' => $data->allowoverride,
'allowswitch' => $data->allowswitch);
'allowswitch' => $data->allowswitch,
'allowview' => $data->allowview);
if ($showadvanced) {
$definitiontable = new core_role_define_role_table_advanced($systemcontext, $roleid);
} else {
+1
View File
@@ -29,6 +29,7 @@ $toprow[] = new tabobject('manage', new moodle_url('/admin/roles/manage.php'), g
$toprow[] = new tabobject('assign', new moodle_url('/admin/roles/allow.php', array('mode'=>'assign')), get_string('allowassign', 'core_role'));
$toprow[] = new tabobject('override', new moodle_url('/admin/roles/allow.php', array('mode'=>'override')), get_string('allowoverride', 'core_role'));
$toprow[] = new tabobject('switch', new moodle_url('/admin/roles/allow.php', array('mode'=>'switch')), get_string('allowswitch', 'core_role'));
$toprow[] = new tabobject('view', new moodle_url('/admin/roles/allow.php', ['mode' => 'view']), get_string('allowview', 'core_role'));
echo $OUTPUT->tabtree($toprow, $currenttab);
+8
View File
@@ -11,6 +11,7 @@
<xs:element ref="allowassign" minOccurs="0"/>
<xs:element ref="allowoverride" minOccurs="0"/>
<xs:element ref="allowswitch" minOccurs="0"/>
<xs:element ref="allowview" minOccurs="0"/>
<xs:element ref="permissions" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
@@ -45,6 +46,13 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="allowview">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="shortname"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="permissions">
<xs:complexType>
<xs:sequence>
+1 -1
View File
@@ -44,7 +44,7 @@ class core_role_preset_testcase extends advanced_testcase {
$contextlevels = get_role_contextlevels($role->id);
$this->assertEquals(array_values($contextlevels), array_values($info['contextlevels']));
foreach (array('assign', 'override', 'switch') as $type) {
foreach (array('assign', 'override', 'switch', 'view') as $type) {
$records = $DB->get_records('role_allow_'.$type, array('roleid'=>$role->id), "allow$type ASC");
$allows = array();
foreach ($records as $record) {
+477
View File
@@ -0,0 +1,477 @@
<?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/>.
/**
* Privacy test for core_role
*
* @package core_role
* @category test
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use \core_role\privacy\provider;
use \core_privacy\local\request\approved_contextlist;
use \core_privacy\local\request\writer;
use \core_privacy\tests\provider_testcase;
use \core_privacy\local\request\transform;
use \tool_cohortroles\api;
/**
* Privacy test for core_role
*
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_role_privacy_testcase extends provider_testcase {
/**
* Test to check export_user_preferences.
* returns user preferences data.
*/
public function test_export_user_preferences() {
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
$showadvanced = 1;
set_user_preference('definerole_showadvanced', $showadvanced);
provider::export_user_preferences($user->id);
$writer = writer::with_context(\context_system::instance());
$prefs = $writer->get_user_preferences('core_role');
$this->assertEquals(transform::yesno($showadvanced), transform::yesno($prefs->definerole_showadvanced->value));
$this->assertEquals(get_string('privacy:metadata:preference:showadvanced', 'core_role'),
$prefs->definerole_showadvanced->description);
}
/**
* Check all contexts are returned if there is any user data for this user.
*/
public function test_get_contexts_for_userid() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
$this->assertEmpty(provider::get_contexts_for_userid($user->id));
$user2 = $this->getDataGenerator()->create_user();
$usercontext2 = \context_user::instance($user2->id);
$course = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$coursecat = $this->getDataGenerator()->create_category();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$cmcontext2 = \context_module::instance($page->cmid);
$coursecontext = \context_course::instance($course->id);
$coursecontext2 = \context_course::instance($course2->id);
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$block = $this->getDataGenerator()->create_block('online_users');
$blockcontext = \context_block::instance($block->id);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
// Role assignments, where the user is assigned.
role_assign($student->id, $user->id, $cmcontext2->id);
role_assign($student->id, $user->id, $coursecontext2->id);
role_assign($student->id, $user->id, $blockcontext->id);
role_assign($manager->id, $user->id, $usercontext2->id);
// Role assignments, where the user makes assignments.
$this->setUser($user);
role_assign($student->id, $user2->id, $coursecontext->id);
role_assign($manager->id, $user2->id, $coursecatcontext->id);
role_assign($manager->id, $user2->id, $systemcontext->id);
// Role capabilities.
$this->setUser($user);
$result = assign_capability('moodle/backup:backupcourse', CAP_ALLOW, $student->id, $cmcontext->id);
$contextlist = provider::get_contexts_for_userid($user->id)->get_contextids();
$this->assertCount(8, $contextlist);
$this->assertTrue(in_array($cmcontext->id, $contextlist));
}
/**
* Test that user data is exported correctly.
*/
public function test_export_user_data() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$usercontext2 = \context_user::instance($user2->id);
$course = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$coursecat = $this->getDataGenerator()->create_category();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$cmcontext2 = \context_module::instance($page->cmid);
$coursecontext = \context_course::instance($course->id);
$coursecontext2 = \context_course::instance($course2->id);
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$block = $this->getDataGenerator()->create_block('online_users');
$blockcontext = \context_block::instance($block->id);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
$rolesnames = self::get_roles_name();
$subcontextstudent = [
get_string('privacy:metadata:role_assignments', 'core_role'),
$rolesnames[$student->id]
];
$subcontextmanager = [
get_string('privacy:metadata:role_assignments', 'core_role'),
$rolesnames[$manager->id]
];
$subcontextrc = [
get_string('privacy:metadata:role_capabilities', 'core_role'),
$rolesnames[$student->id]
];
// Test over role assignments.
// Where the user is assigned.
role_assign($student->id, $user->id, $cmcontext2->id);
role_assign($student->id, $user->id, $coursecontext2->id);
role_assign($student->id, $user->id, $blockcontext->id);
role_assign($manager->id, $user->id, $usercontext2->id);
// Where the user makes assignments.
$this->setUser($user);
role_assign($manager->id, $user2->id, $coursecatcontext->id);
role_assign($manager->id, $user2->id, $systemcontext->id);
// Test overridable roles in module, course, category, user, system and block.
assign_capability('moodle/backup:backupactivity', CAP_ALLOW, $student->id, $cmcontext->id, true);
assign_capability('moodle/backup:backupcourse', CAP_ALLOW, $student->id, $coursecontext->id, true);
assign_capability('moodle/category:manage', CAP_ALLOW, $student->id, $coursecatcontext->id, true);
assign_capability('moodle/backup:backupcourse', CAP_ALLOW, $student->id, $systemcontext->id, true);
assign_capability('moodle/block:edit', CAP_ALLOW, $student->id, $blockcontext->id, true);
assign_capability('moodle/competency:evidencedelete', CAP_ALLOW, $student->id, $usercontext2->id, true);
// Retrieve the user's context ids.
$contextlist = provider::get_contexts_for_userid($user->id);
$approvedcontextlist = new approved_contextlist($user, 'core_role', $contextlist->get_contextids());
$strpermissions = array(
CAP_INHERIT => get_string('inherit', 'role'),
CAP_ALLOW => get_string('allow', 'role'),
CAP_PREVENT => get_string('prevent', 'role'),
CAP_PROHIBIT => get_string('prohibit', 'role')
);
// Retrieve role capabilities and role assignments.
provider::export_user_data($approvedcontextlist);
foreach ($contextlist as $context) {
$writer = writer::with_context($context);
$this->assertTrue($writer->has_any_data());
if ($context->contextlevel == CONTEXT_MODULE) {
if ($data = $writer->get_data($subcontextstudent)) {
$this->assertEquals($user->id, reset($data)->userid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/backup:backupactivity', reset($data)->capability);
$this->assertEquals($strpermissions[CAP_ALLOW], reset($data)->permission);
}
}
if ($context->contextlevel == CONTEXT_COURSE) {
if ($data = $writer->get_data($subcontextstudent)) {
$this->assertEquals($user->id, reset($data)->userid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/backup:backupcourse', reset($data)->capability);
}
}
if ($context->contextlevel == CONTEXT_COURSECAT) {
if ($data = $writer->get_data($subcontextmanager)) {
$this->assertEquals($user->id, reset($data)->modifierid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/category:manage', reset($data)->capability);
}
}
if ($context->contextlevel == CONTEXT_SYSTEM) {
if ($data = $writer->get_data($subcontextmanager)) {
$this->assertEquals($user->id, reset($data)->modifierid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/backup:backupcourse', reset($data)->capability);
}
}
if ($context->contextlevel == CONTEXT_BLOCK) {
if ($data = $writer->get_data($subcontextstudent)) {
$this->assertEquals($user->id, reset($data)->userid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/block:edit', reset($data)->capability);
}
}
if ($context->contextlevel == CONTEXT_USER) {
if ($data = $writer->get_data($subcontextmanager)) {
$this->assertEquals($user->id, reset($data)->userid);
}
if ($data = $writer->get_data($subcontextrc)) {
$this->assertEquals('moodle/competency:evidencedelete', reset($data)->capability);
}
}
}
}
/**
* Test for provider::delete_data_for_all_users_in_context().
*/
public function test_delete_data_for_all_users_in_context() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$usercontext2 = \context_user::instance($user2->id);
$user3 = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course();
$coursecontext = \context_course::instance($course->id);
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
$block = $this->getDataGenerator()->create_block('online_users');
$blockcontext = \context_block::instance($block->id);
// Role assignments CONTEXT_COURSE.
role_assign($student->id, $user->id, $coursecontext->id);
role_assign($student->id, $user2->id, $coursecontext->id);
role_assign($student->id, $user3->id, $coursecontext->id);
$count = $DB->count_records('role_assignments', ['contextid' => $coursecontext->id]);
$this->assertEquals(3, $count);
// Role assignments CONTEXT_COURSECAT.
role_assign($student->id, $user2->id, $coursecatcontext->id);
role_assign($student->id, $user3->id, $coursecatcontext->id);
$count = $DB->count_records('role_assignments', ['contextid' => $coursecatcontext->id]);
$this->assertEquals(2, $count);
// Role assignments CONTEXT_SYSTEM.
role_assign($student->id, $user->id, $systemcontext->id);
$count = $DB->count_records('role_assignments', ['contextid' => $systemcontext->id]);
$this->assertEquals(1, $count);
// Role assignments CONTEXT_MODULE.
role_assign($student->id, $user->id, $cmcontext->id);
$count = $DB->count_records('role_assignments', ['contextid' => $cmcontext->id]);
$this->assertEquals(1, $count);
// Role assigments CONTEXT_BLOCK.
role_assign($student->id, $user->id, $blockcontext->id);
$count = $DB->count_records('role_assignments', ['contextid' => $blockcontext->id]);
$this->assertEquals(1, $count);
// Role assigments CONTEXT_USER.
role_assign($manager->id, $user->id, $usercontext2->id);
$count = $DB->count_records('role_assignments', ['contextid' => $usercontext2->id]);
$this->assertEquals(1, $count);
// Delete data based on CONTEXT_COURSE context.
provider::delete_data_for_all_users_in_context($coursecontext);
// After deletion, the role_assignments entries for this context should have been deleted.
$count = $DB->count_records('role_assignments', ['contextid' => $coursecontext->id]);
$this->assertEquals(0, $count);
// Check it is not removing data on other contexts.
$count = $DB->count_records('role_assignments', ['contextid' => $coursecatcontext->id]);
$this->assertEquals(2, $count);
$count = $DB->count_records('role_assignments', ['contextid' => $systemcontext->id]);
$this->assertEquals(1, $count);
$count = $DB->count_records('role_assignments', ['contextid' => $cmcontext->id]);
$this->assertEquals(1, $count);
// Delete data based on CONTEXT_COURSECAT context.
provider::delete_data_for_all_users_in_context($coursecatcontext);
// After deletion, the role_assignments entries for this context should have been deleted.
$count = $DB->count_records('role_assignments', ['contextid' => $coursecatcontext->id]);
$this->assertEquals(0, $count);
// Delete data based on CONTEXT_SYSTEM context.
provider::delete_data_for_all_users_in_context($systemcontext);
// After deletion, the role_assignments entries for this context should have been deleted.
$count = $DB->count_records('role_assignments', ['contextid' => $systemcontext->id]);
$this->assertEquals(0, $count);
// Delete data based on CONTEXT_MODULE context.
provider::delete_data_for_all_users_in_context($cmcontext);
// After deletion, the role_assignments entries for this context should have been deleted.
$count = $DB->count_records('role_assignments', ['contextid' => $cmcontext->id]);
$this->assertEquals(0, $count);
// Delete data based on CONTEXT_BLOCK context.
provider::delete_data_for_all_users_in_context($usercontext2);
// After deletion, the role_assignments entries for this context should have been deleted.
$count = $DB->count_records('role_assignments', ['contextid' => $usercontext2->id]);
$this->assertEquals(0, $count);
}
/**
* Test for provider::delete_data_for_user().
*/
public function test_delete_data_for_user() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
$user = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$usercontext2 = \context_user::instance($user2->id);
$user3 = $this->getDataGenerator()->create_user();
$usercontext3 = \context_user::instance($user3->id);
$course = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$course3 = $this->getDataGenerator()->create_course();
$coursecontext = \context_course::instance($course->id);
$coursecontext2 = \context_course::instance($course2->id);
$coursecontext3 = \context_course::instance($course3->id);
$coursecat = $this->getDataGenerator()->create_category();
$coursecatcontext = \context_coursecat::instance($coursecat->id);
$systemcontext = \context_system::instance();
$cm = $this->getDataGenerator()->create_module('chat', ['course' => $course->id]);
$cmcontext = \context_module::instance($cm->cmid);
$student = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
$manager = $DB->get_record('role', array('shortname' => 'manager'), '*', MUST_EXIST);
$block = $this->getDataGenerator()->create_block('online_users');
$blockcontext = \context_block::instance($block->id);
// Role assignments, Where the user is assigned.
role_assign($student->id, $user->id, $coursecontext->id);
role_assign($student->id, $user->id, $coursecontext2->id);
role_assign($student->id, $user->id, $coursecatcontext->id);
role_assign($student->id, $user->id, $cmcontext->id);
role_assign($student->id, $user->id, $systemcontext->id);
role_assign($student->id, $user->id, $blockcontext->id);
role_assign($manager->id, $user->id, $usercontext2->id);
role_assign($manager->id, $user->id, $usercontext3->id);
$count = $DB->count_records('role_assignments', ['userid' => $user->id]);
$this->assertEquals(8, $count);
// Role assignments, where the user makes assignments.
$this->setUser($user);
role_assign($student->id, $user2->id, $coursecontext3->id);
role_assign($student->id, $user3->id, $coursecontext3->id);
$count = $DB->count_records('role_assignments', ['modifierid' => $user->id]);
$this->assertEquals(2, $count);
$contextlist = provider::get_contexts_for_userid($user->id);
$approvedcontextlist = new approved_contextlist($user, 'core_role', $contextlist->get_contextids());
provider::delete_data_for_user($approvedcontextlist);
// After deletion, the role_assignments assigned to the user should have been deleted.
$count = $DB->count_records('role_assignments', ['userid' => $user->id]);
$this->assertEquals(0, $count);
// After deletion, the role_assignments assigned by the user should not have been deleted.
$count = $DB->count_records('role_assignments', ['modifierid' => $user->id]);
$this->assertEquals(2, $count);
}
/**
* Export for a user with a key against a script where no instance is specified.
*/
public function test_export_user_role_to_cohort() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
// Assign user roles to cohort.
$user = $this->getDataGenerator()->create_user();
$contextuser = \context_user::instance($user->id);
$teacher = $DB->get_record('role', array('shortname' => 'teacher'), '*', MUST_EXIST);
$cohort = $this->getDataGenerator()->create_cohort();
$userassignover = $this->getDataGenerator()->create_user();
$contextuserassignover = \context_user::instance($userassignover->id);
cohort_add_member($cohort->id, $userassignover->id);
$this->setAdminUser();
$params = (object) array(
'userid' => $user->id,
'roleid' => $teacher->id,
'cohortid' => $cohort->id
);
api::create_cohort_role_assignment($params);
api::sync_all_cohort_roles();
$rolesnames = self::get_roles_name();
$subcontextteacher = [
get_string('privacy:metadata:role_cohortroles', 'core_role'),
$rolesnames[$teacher->id]
];
// Test User is assigned role teacher to cohort.
provider::export_user_role_to_cohort($user->id);
$writer = writer::with_context($contextuserassignover);
$this->assertTrue($writer->has_any_data());
$exported = $writer->get_related_data($subcontextteacher, 'cohortroles');
$this->assertEquals($user->id, reset($exported)->userid);
// Test User is member of a cohort which User2 is assigned to role to this cohort.
$user2 = $this->getDataGenerator()->create_user();
$cohort2 = $this->getDataGenerator()->create_cohort();
cohort_add_member($cohort2->id, $user->id);
$params = (object) array(
'userid' => $user2->id,
'roleid' => $teacher->id,
'cohortid' => $cohort2->id
);
api::create_cohort_role_assignment($params);
api::sync_all_cohort_roles();
provider::export_user_role_to_cohort($user->id);
$writer = writer::with_context($contextuser);
$this->assertTrue($writer->has_any_data());
$exported = $writer->get_related_data($subcontextteacher, 'cohortroles');
$this->assertEquals($user2->id, reset($exported)->userid);
}
/**
* Test for provider::delete_user_role_to_cohort().
*/
public function test_delete_user_role_to_cohort() {
global $DB;
$this->resetAfterTest();
$this->setAdminUser();
// Assign user roles to cohort.
$user = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$user3 = $this->getDataGenerator()->create_user();
$user4 = $this->getDataGenerator()->create_user();
$teacher = $DB->get_record('role', array('shortname' => 'teacher'), '*', MUST_EXIST);
$cohort = $this->getDataGenerator()->create_cohort();
cohort_add_member($cohort->id, $user2->id);
cohort_add_member($cohort->id, $user3->id);
cohort_add_member($cohort->id, $user4->id);
$this->setAdminUser();
$params = (object) array(
'userid' => $user->id,
'roleid' => $teacher->id,
'cohortid' => $cohort->id
);
api::create_cohort_role_assignment($params);
api::sync_all_cohort_roles();
$count = $DB->count_records('role_assignments', ['userid' => $user->id, 'component' => 'tool_cohortroles']);
$this->assertEquals(3, $count);
provider::delete_user_role_to_cohort($user->id);
$count = $DB->count_records('role_assignments', ['userid' => $user->id, 'component' => 'tool_cohortroles']);
$this->assertEquals(0, $count);
}
/**
* Supoort function to get all the localised roles name
* in a simple array for testing.
*
* @return array Array of name of the roles by roleid.
*/
protected static function get_roles_name() {
$roles = role_fix_names(get_all_roles(), \context_system::instance(), ROLENAME_ORIGINAL);
$rolesnames = array();
foreach ($roles as $role) {
$rolesnames[$role->id] = $role->localname;
}
return $rolesnames;
}
}
+5 -4
View File
@@ -32,15 +32,16 @@ $focus = '';
// now we'll deal with the case that the admin has submitted the form with changed settings
if ($data = data_submitted() and confirm_sesskey() and isset($data->action) and $data->action == 'save-settings') {
require_capability('moodle/site:config', $context);
if (admin_write_settings($data)) {
redirect($PAGE->url, get_string('changessaved'), null, \core\output\notification::NOTIFY_SUCCESS);
}
$count = admin_write_settings($data);
if (!empty($adminroot->errors)) {
$errormsg = get_string('errorwithsettings', 'admin');
$firsterror = reset($adminroot->errors);
$focus = $firsterror->id;
} else {
// No errors. Did we change any setting? If so, then redirect with success.
if ($count) {
redirect($PAGE->url, get_string('changessaved'), null, \core\output\notification::NOTIFY_SUCCESS);
}
redirect($PAGE->url);
}
}
+136 -61
View File
@@ -28,85 +28,139 @@ admin_externalpage_setup('searchareas');
$areaid = optional_param('areaid', null, PARAM_ALPHAEXT);
$action = optional_param('action', null, PARAM_ALPHA);
$indexingenabled = \core_search\manager::is_indexing_enabled(); // This restricts many of the actions on this page.
// Get a search manager instance, which we'll need for display and to handle some actions.
try {
$searchmanager = \core_search\manager::instance();
} catch (core_search\engine_exception $searchmanagererror) {
// Continue, we return an error later depending on the requested action.
// In action cases, we'll throw this exception below. In non-action cases, we produce a lang string error.
}
echo $OUTPUT->header();
// Handle all the actions.
if ($action) {
require_sesskey();
// If dealing with an areaid, we need to check that the area exists.
if ($areaid) {
// We need to check that the area exists.
$area = \core_search\manager::get_search_area($areaid);
if ($area === false) {
throw new moodle_exception('invalidrequest');
}
}
// All actions but enable/disable need the search engine to be ready.
if ($action !== 'enable' && $action !== 'disable') {
if (!empty($searchmanagererror)) {
throw $searchmanagererror;
// All the indexing actions.
if (in_array($action, ['delete', 'indexall', 'reindexall', 'deleteall'])) {
// All of these actions require that indexing is enabled.
if ($indexingenabled) {
// For all of these actions, we strictly need a manager instance.
if (isset($searchmanagererror)) {
throw $searchmanagererror;
}
// Show confirm prompt for all these actions as they may be inadvisable, or may cause
// an interruption in search functionality, on production systems.
if (!optional_param('confirm', 0, PARAM_INT)) {
// Display confirmation prompt.
$a = null;
if ($areaid) {
$a = html_writer::tag('strong', $area->get_visible_name());
}
$actionparams = ['sesskey' => sesskey(), 'action' => $action, 'confirm' => 1];
if ($areaid) {
$actionparams['areaid'] = $areaid;
}
$actionurl = new moodle_url('/admin/searchareas.php', $actionparams);
$cancelurl = new moodle_url('/admin/searchareas.php');
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string('confirm_' . $action, 'search', $a),
new single_button($actionurl, get_string('continue'), 'post', true),
new single_button($cancelurl, get_string('cancel'), 'get'));
echo $OUTPUT->footer();
exit;
} else {
// Confirmed, so run the required action.
require_sesskey();
switch ($action) {
case 'delete':
$searchmanager->delete_index($areaid);
\core\notification::success(get_string('searchindexdeleted', 'admin'));
break;
case 'indexall':
$searchmanager->index();
\core\notification::success(get_string('searchindexupdated', 'admin'));
break;
case 'reindexall':
$searchmanager->index(true);
\core\notification::success(get_string('searchreindexed', 'admin'));
break;
case 'deleteall':
$searchmanager->delete_index();
\core\notification::success(get_string('searchalldeleted', 'admin'));
break;
default:
break;
}
// Redirect back to the main page after taking action.
redirect(new moodle_url('/admin/searchareas.php'));
}
}
}
} else if (in_array($action, ['enable', 'disable'])) {
// Toggling search areas requires no confirmation.
require_sesskey();
switch ($action) {
case 'enable':
$area->set_enabled(true);
echo $OUTPUT->notification(get_string('searchareaenabled', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
case 'disable':
$area->set_enabled(false);
echo $OUTPUT->notification(get_string('searchareadisabled', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
case 'delete':
$search = \core_search\manager::instance();
$search->delete_index($areaid);
echo $OUTPUT->notification(get_string('searchindexdeleted', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
case 'indexall':
$searchmanager->index();
echo $OUTPUT->notification(get_string('searchindexupdated', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
case 'reindexall':
$searchmanager->index(true);
echo $OUTPUT->notification(get_string('searchreindexed', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
case 'deleteall':
$searchmanager->delete_index();
echo $OUTPUT->notification(get_string('searchalldeleted', 'admin'), \core\output\notification::NOTIFY_SUCCESS);
break;
default:
throw new moodle_exception('invalidaction');
break;
switch ($action) {
case 'enable':
$area->set_enabled(true);
\core\notification::success(get_string('searchareaenabled', 'admin'));
break;
case 'disable':
$area->set_enabled(false);
core\notification::success(get_string('searchareadisabled', 'admin'));
break;
default:
break;
}
redirect(new moodle_url('/admin/searchareas.php'));
} else {
// Invalid action.
throw new moodle_exception('invalidaction');
}
}
$searchareas = \core_search\manager::get_search_areas_list();
if (empty($searchmanagererror)) {
$areasconfig = $searchmanager->get_areas_config($searchareas);
// Display.
if (isset($searchmanager) && $indexingenabled) {
\core\notification::info(get_string('indexinginfo', 'admin'));
} else if (isset($searchmanager)) {
$params = (object) [
'url' => (new moodle_url("/admin/settings.php?section=manageglobalsearch#admin-searchindexwhendisabled"))->out(false)
];
\core\notification::error(get_string('indexwhendisabledfullnotice', 'search', $params));
} else {
$areasconfig = false;
}
if (!empty($searchmanagererror)) {
// In non-action cases, init errors are translated and displayed to the user as error notifications.
$errorstr = get_string($searchmanagererror->errorcode, $searchmanagererror->module, $searchmanagererror->a);
echo $OUTPUT->notification($errorstr, \core\output\notification::NOTIFY_ERROR);
} else {
echo $OUTPUT->notification(get_string('indexinginfo', 'admin'), \core\output\notification::NOTIFY_INFO);
\core\notification::error($errorstr);
}
echo $OUTPUT->header();
$table = new html_table();
$table->id = 'core-search-areas';
$table->head = [
get_string('searcharea', 'search'),
get_string('enable'),
get_string('newestdocindexed', 'admin'),
get_string('searchlastrun', 'admin'),
get_string('searchindexactions', 'admin')
];
$table->head = array(get_string('searcharea', 'search'), get_string('enable'), get_string('newestdocindexed', 'admin'),
get_string('searchlastrun', 'admin'), get_string('searchindexactions', 'admin'));
$searchareas = \core_search\manager::get_search_areas_list();
$areasconfig = isset($searchmanager) ? $searchmanager->get_areas_config($searchareas) : false;
foreach ($searchareas as $area) {
$areaid = $area->get_area_id();
$columns = array(new html_table_cell($area->get_visible_name()));
@@ -116,7 +170,7 @@ foreach ($searchareas as $area) {
new pix_icon('t/hide', get_string('disable'), 'moodle', array('title' => '', 'class' => 'iconsmall')),
null, array('title' => get_string('disable')));
if ($areasconfig) {
if ($areasconfig && $indexingenabled) {
$columns[] = $areasconfig[$areaid]->lastindexrun;
if ($areasconfig[$areaid]->indexingstart) {
@@ -132,10 +186,24 @@ foreach ($searchareas as $area) {
$laststatus = '';
}
$columns[] = $laststatus;
$columns[] = html_writer::link(admin_searcharea_action_url('delete', $areaid), 'Delete index');
$accesshide = html_writer::span($area->get_visible_name(), 'accesshide');
$actions = [];
$actions[] = $OUTPUT->pix_icon('t/delete', '') .
html_writer::link(admin_searcharea_action_url('delete', $areaid),
get_string('deleteindex', 'search', $accesshide));
if ($area->supports_get_document_recordset()) {
$actions[] = $OUTPUT->pix_icon('i/reload', '') . html_writer::link(
new moodle_url('searchreindex.php', ['areaid' => $areaid]),
get_string('gradualreindex', 'search', $accesshide));
}
$columns[] = html_writer::alist($actions, ['class' => 'unstyled list-unstyled']);
} else {
$blankrow = new html_table_cell(get_string('searchnotavailable', 'admin'));
if (!$areasconfig) {
$blankrow = new html_table_cell(get_string('searchnotavailable', 'admin'));
} else {
$blankrow = new html_table_cell(get_string('indexwhendisabledshortnotice', 'search'));
}
$blankrow->colspan = 3;
$columns[] = $blankrow;
}
@@ -154,10 +222,7 @@ foreach ($searchareas as $area) {
}
// Cross-search area tasks.
$options = array();
if (!empty($searchmanagererror)) {
$options['disabled'] = true;
}
$options = (isset($searchmanager) && $indexingenabled) ? [] : ['disabled' => true];
echo $OUTPUT->box_start('search-areas-actions');
echo $OUTPUT->single_button(admin_searcharea_action_url('indexall'), get_string('searchupdateindex', 'admin'), 'get', $options);
echo $OUTPUT->single_button(admin_searcharea_action_url('reindexall'), get_string('searchreindexindex', 'admin'), 'get', $options);
@@ -165,6 +230,13 @@ echo $OUTPUT->single_button(admin_searcharea_action_url('deleteall'), get_string
echo $OUTPUT->box_end();
echo html_writer::table($table);
if (isset($searchmanager)) {
// Show information about queued index requests for specific contexts.
$searchrenderer = $PAGE->get_renderer('core_search');
echo $searchrenderer->render_index_requests_info($searchmanager->get_index_requests_info());
}
echo $OUTPUT->footer();
/**
@@ -175,9 +247,12 @@ echo $OUTPUT->footer();
* @return moodle_url
*/
function admin_searcharea_action_url($action, $areaid = false) {
$params = array('action' => $action, 'sesskey' => sesskey());
$params = array('action' => $action);
if ($areaid) {
$params['areaid'] = $areaid;
}
if ($action === 'disable' || $action === 'enable') {
$params['sesskey'] = sesskey();
}
return new moodle_url('/admin/searchareas.php', $params);
}
+87
View File
@@ -0,0 +1,87 @@
<?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 a search area to the queue for indexing.
*
* @package core_search
* @copyright 2017 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('NO_OUTPUT_BUFFERING', true);
require(__DIR__ . '/../config.php');
// Check access.
require_once($CFG->libdir . '/adminlib.php');
admin_externalpage_setup('searchareas', '', null, (new moodle_url('/admin/searchreindex.php'))->out(false));
// Get area parameter and check it exists.
$areaid = required_param('areaid', PARAM_ALPHAEXT);
$area = \core_search\manager::get_search_area($areaid);
if ($area === false) {
throw new moodle_exception('invalidrequest');
}
$areaname = $area->get_visible_name();
// Start page output.
$heading = get_string('gradualreindex', 'search', '');
$PAGE->set_title($PAGE->title . ': ' . $heading);
$PAGE->navbar->add($heading);
echo $OUTPUT->header();
echo $OUTPUT->heading($heading);
// If sesskey is supplied, actually carry out the action.
if (optional_param('sesskey', '', PARAM_ALPHANUM)) {
require_sesskey();
// Get all contexts for search area. This query can take time in large cases.
\core_php_time_limit::raise(0);
$contextiterator = $area->get_contexts_to_reindex();
$progress = new \core\progress\display_if_slow('');
$progress->start_progress($areaname);
// Request reindexing for each context (with low priority).
$count = 0;
foreach ($contextiterator as $context) {
\core_php_time_limit::raise(30);
\core_search\manager::request_index($context, $area->get_area_id(),
\core_search\manager::INDEX_PRIORITY_REINDEXING);
$progress->progress();
$count++;
}
// Unset the iterator which should close the recordset (if there is one).
unset($contextiterator);
$progress->end_progress();
$a = (object)['name' => html_writer::tag('strong', $areaname), 'count' => $count];
echo $OUTPUT->box(get_string('gradualreindex_queued', 'search', $a));
echo $OUTPUT->continue_button(new moodle_url('/admin/searchareas.php'));
} else {
// Display confirmation prompt.
echo $OUTPUT->confirm(get_string('gradualreindex_confirm', 'search', html_writer::tag('strong', $areaname)),
new single_button(new moodle_url('/admin/searchreindex.php', ['areaid' => $areaid,
'sesskey' => sesskey()]), get_string('continue'), 'post', true),
new single_button(new moodle_url('/admin/searchareas.php'), get_string('cancel'), 'get'));
}
echo $OUTPUT->footer();
+9 -4
View File
@@ -38,12 +38,17 @@ if (!($settingspage->check_access())) {
$statusmsg = '';
$errormsg = '';
if ($data = data_submitted() and confirm_sesskey()) {
if (admin_write_settings($data)) {
redirect($PAGE->url, get_string('changessaved'), null, \core\output\notification::NOTIFY_SUCCESS);
}
// Form is submitted with changed settings. Do not want to execute when modifying a block.
if ($data = data_submitted() and confirm_sesskey() and isset($data->action) and $data->action == 'save-settings') {
$count = admin_write_settings($data);
// Regardless of whether any setting change was written (a positive count), check validation errors for those that didn't.
if (empty($adminroot->errors)) {
// No errors. Did we change any setting? If so, then redirect with success.
if ($count) {
redirect($PAGE->url, get_string('changessaved'), null, \core\output\notification::NOTIFY_SUCCESS);
}
// We didn't change a setting.
switch ($return) {
case 'site': redirect("$CFG->wwwroot/");
case 'admin': redirect("$CFG->wwwroot/$CFG->admin/");
+2 -1
View File
@@ -22,6 +22,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
$temp->add(new admin_setting_configcheckbox('allowuserthemes', new lang_string('allowuserthemes', 'admin'), new lang_string('configallowuserthemes', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowcoursethemes', new lang_string('allowcoursethemes', 'admin'), new lang_string('configallowcoursethemes', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowcategorythemes', new lang_string('allowcategorythemes', 'admin'), new lang_string('configallowcategorythemes', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowcohortthemes', new lang_string('allowcohortthemes', 'admin'), new lang_string('configallowcohortthemes', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowthemechangeonurl', new lang_string('allowthemechangeonurl', 'admin'), new lang_string('configallowthemechangeonurl', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowuserblockhiding', new lang_string('allowuserblockhiding', 'admin'), new lang_string('configallowuserblockhiding', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('allowblockstodock', new lang_string('allowblockstodock', 'admin'), new lang_string('configallowblockstodock', 'admin'), 1));
@@ -199,7 +200,7 @@ preferences,moodle|/user/preferences.php|preferences',
// "documentation" settingpage
$temp = new admin_settingpage('documentation', new lang_string('moodledocs'));
$temp->add(new admin_setting_configtext('docroot', new lang_string('docroot', 'admin'), new lang_string('configdocroot', 'admin'), 'http://docs.moodle.org', PARAM_URL));
$temp->add(new admin_setting_configtext('docroot', new lang_string('docroot', 'admin'), new lang_string('configdocroot', 'admin'), 'https://docs.moodle.org', PARAM_URL));
$ltemp = array('' => get_string('forceno'));
$ltemp += get_string_manager()->get_list_of_translations(true);
$temp->add(new admin_setting_configselect('doclang', get_string('doclang', 'admin'), get_string('configdoclang', 'admin'), '', $ltemp));
+8 -1
View File
@@ -14,6 +14,11 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_configcheckbox('dndallowtextandlinks', new lang_string('dndallowtextandlinks', 'admin'), new lang_string('configdndallowtextandlinks', 'admin'), 0));
$temp->add(new admin_setting_configexecutable('pathtosassc', new lang_string('pathtosassc', 'admin'), new lang_string('pathtosassc_help', 'admin'), ''));
$temp->add(new admin_setting_configcheckbox('forceclean', new lang_string('forceclean', 'core_admin'),
new lang_string('forceclean_desc', 'core_admin'), 0));
$ADMIN->add('experimental', $temp);
// "debugging" settingpage
@@ -28,7 +33,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$ADMIN->add('development', $temp);
// "Profiling" settingpage (conditionally if the 'xhprof' extension is available only).
$xhprofenabled = extension_loaded('xhprof') || extension_loaded('tideways');
$xhprofenabled = extension_loaded('tideways_xhprof');
$xhprofenabled = $xhprofenabled || extension_loaded('tideways');
$xhprofenabled = $xhprofenabled || extension_loaded('xhprof');
$temp = new admin_settingpage('profiling', new lang_string('profiling', 'admin'), 'moodle/site:config', !$xhprofenabled);
// Main profiling switch.
$temp->add(new admin_setting_configcheckbox('profilingenabled', new lang_string('profilingenabled', 'admin'), new lang_string('profilingenabled_help', 'admin'), false));
+3
View File
@@ -42,6 +42,9 @@ if (has_capability('moodle/grade:manage', $systemcontext)
// enable publishing in exports/imports
$temp->add(new admin_setting_configcheckbox('gradepublishing', new lang_string('gradepublishing', 'grades'), new lang_string('gradepublishing_help', 'grades'), 0));
$temp->add(new admin_setting_configcheckbox('grade_export_exportfeedback', new lang_string('exportfeedback', 'grades'),
new lang_string('exportfeedback_desc', 'grades'), 0));
$temp->add(new admin_setting_configselect('grade_export_displaytype', new lang_string('gradeexportdisplaytype', 'grades'),
new lang_string('gradeexportdisplaytype_desc', 'grades'), GRADE_DISPLAY_TYPE_REAL, $display_types));
+1 -1
View File
@@ -556,7 +556,7 @@ if ($hassiteconfig) {
// Search engine selection.
$temp->add(new admin_setting_heading('searchengineheading', new lang_string('searchengine', 'admin'), ''));
$temp->add(new admin_setting_configselect('searchengine',
new lang_string('selectsearchengine', 'admin'), '', 'solr', $engines));
new lang_string('selectsearchengine', 'admin'), '', 'simpledb', $engines));
$temp->add(new admin_setting_heading('searchoptionsheading', new lang_string('searchoptions', 'admin'), ''));
$temp->add(new admin_setting_configcheckbox('searchindexwhendisabled',
new lang_string('searchindexwhendisabled', 'admin'), new lang_string('searchindexwhendisabled_desc', 'admin'),
+1 -2
View File
@@ -54,8 +54,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
3600 => new lang_string('numminutes', '', 60))));
$temp->add(new admin_setting_configcheckbox('extendedusernamechars', new lang_string('extendedusernamechars', 'admin'), new lang_string('configextendedusernamechars', 'admin'), 0));
$temp->add(new admin_setting_configtext('sitepolicy', new lang_string('sitepolicy', 'admin'), new lang_string('sitepolicy_help', 'admin'), '', PARAM_RAW));
$temp->add(new admin_setting_configtext('sitepolicyguest', new lang_string('sitepolicyguest', 'admin'), new lang_string('sitepolicyguest_help', 'admin'), (isset($CFG->sitepolicy) ? $CFG->sitepolicy : ''), PARAM_RAW));
$temp->add(new admin_setting_configcheckbox('extendedusernamechars', new lang_string('extendedusernamechars', 'admin'), new lang_string('configextendedusernamechars', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('keeptagnamecase', new lang_string('keeptagnamecase','admin'),new lang_string('configkeeptagnamecase', 'admin'),'1'));
+48 -1
View File
@@ -4,6 +4,7 @@
$ADMIN->add('users', new admin_category('accounts', new lang_string('accounts', 'admin')));
$ADMIN->add('users', new admin_category('roles', new lang_string('permissions', 'role')));
$ADMIN->add('users', new admin_category('privacy', new lang_string('privacyandpolicies', 'admin')));
if ($hassiteconfig
or has_capability('moodle/user:create', $systemcontext)
@@ -28,7 +29,7 @@ if ($hassiteconfig
$choices['1'] = new lang_string('emaildisplayyes');
$choices['2'] = new lang_string('emaildisplaycourse');
$temp->add(new admin_setting_configselect('defaultpreference_maildisplay', new lang_string('emaildisplay'),
'', 2, $choices));
new lang_string('emaildisplay_help'), 2, $choices));
$choices = array();
$choices['0'] = new lang_string('textformat');
@@ -150,6 +151,7 @@ if ($hassiteconfig
$temp->add(new admin_setting_configmultiselect('hiddenuserfields', new lang_string('hiddenuserfields', 'admin'),
new lang_string('confighiddenuserfields', 'admin'), array(),
array('description' => new lang_string('description'),
'email' => new lang_string('email'),
'city' => new lang_string('city'),
'country' => new lang_string('country'),
'timezone' => new lang_string('timezone'),
@@ -209,3 +211,48 @@ if ($hassiteconfig
$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
// Privacy settings.
if ($hassiteconfig) {
$temp = new admin_settingpage('privacysettings', new lang_string('privacysettings', 'admin'));
$options = array(
0 => get_string('no'),
1 => get_string('yes')
);
$url = new moodle_url('/admin/settings.php?section=supportcontact');
$url = $url->out();
$setting = new admin_setting_configselect('agedigitalconsentverification',
new lang_string('agedigitalconsentverification', 'admin'),
new lang_string('agedigitalconsentverification_desc', 'admin', $url), 0, $options);
$setting->set_force_ltr(true);
$temp->add($setting);
// See {@link https://gdpr-info.eu/art-8-gdpr/}.
$ageofdigitalconsentmap = implode(PHP_EOL, [
'*, 16',
'AT, 14',
'ES, 14',
'US, 13'
]);
$setting = new admin_setting_agedigitalconsentmap('agedigitalconsentmap',
new lang_string('ageofdigitalconsentmap', 'admin'),
new lang_string('ageofdigitalconsentmap_desc', 'admin'),
$ageofdigitalconsentmap,
PARAM_RAW
);
$temp->add($setting);
$ADMIN->add('privacy', $temp);
// Policy settings.
$temp = new admin_settingpage('policysettings', new lang_string('policysettings', 'admin'));
$temp->add(new admin_settings_sitepolicy_handler_select('sitepolicyhandler', new lang_string('sitepolicyhandler', 'core_admin'),
new lang_string('sitepolicyhandler_desc', 'core_admin')));
$temp->add(new admin_setting_configtext('sitepolicy', new lang_string('sitepolicy', 'core_admin'),
new lang_string('sitepolicy_help', 'core_admin'), '', PARAM_RAW));
$temp->add(new admin_setting_configtext('sitepolicyguest', new lang_string('sitepolicyguest', 'core_admin'),
new lang_string('sitepolicyguest_help', 'core_admin'), (isset($CFG->sitepolicy) ? $CFG->sitepolicy : ''), PARAM_RAW));
$ADMIN->add('privacy', $temp);
}
+1
View File
@@ -40,6 +40,7 @@
<div class="settingsform clearfix">
{{#params}}
<input type="hidden" name="{{name}}" value="{{value}}">
<input type="hidden" name="action" value="save-settings">
{{/params}}
<input type="hidden" name="sesskey" value="{{sesskey}}">
<input type="hidden" name="return" value="{{return}}">
+21
View File
@@ -0,0 +1,21 @@
@core @core_admin
Feature: Use the search areas admin screen
In order to control search indexing
As an admin
I need to use the search areas admin screen
Background:
Given I log in as "admin"
And I navigate to "Plugins > Search > Search areas" in site administration
Scenario: Disable and enable a search area
When I click on "Disable" "link" in the "Book - resource information" "table_row"
Then I should see "Search area disabled" in the ".alert-success" "css_element"
And I should see "Search area disabled" in the "Book - resource information" "table_row"
When I click on "Enable" "link" in the "Book - resource information" "table_row"
Then I should see "Search area enabled" in the ".alert-success" "css_element"
And I should not see "Search area disabled" in the "Book - resource information" "table_row"
# Note: Other scenarios are not currently easy to implement in Behat because there is no mock
# search engine - we could add testing once Moodle has an internal database search engine.
@@ -0,0 +1,55 @@
<?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/>.
/**
* Helper class that contains helper functions for cli scripts.
*
* @package tool_analytics
* @copyright 2017 onwards Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_analytics;
defined('MOODLE_INTERNAL') || die();
/**
* Helper class that contains helper functions for cli scripts.
*
* @package tool_analytics
* @copyright 2017 onwards Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class clihelper {
/**
* List all models in the system. To be used from cli scripts.
*
* @return void
*/
public static function list_models() {
cli_heading("List of models");
echo str_pad(get_string('modelid', 'tool_analytics'), 15, ' ') . ' ' . str_pad(get_string('name'), 50, ' ') .
' ' . str_pad(get_string('status'), 15, ' ') . "\n";
$models = \core_analytics\manager::get_all_models();
foreach ($models as $model) {
$modelid = $model->get_id();
$isenabled = $model->is_enabled() ? get_string('enabled', 'tool_analytics') : get_string('disabled', 'tool_analytics');
$name = $model->get_target()->get_name();
echo str_pad($modelid, 15, ' ') . ' ' . str_pad($name, 50, ' ') . ' ' . str_pad($isenabled, 15, ' ') . "\n";
}
}
}
@@ -119,6 +119,9 @@ class models_list implements \renderable, \templatable {
debugging("The time splitting method '{$modeldata->timesplitting}' should include a '{$identifier}_help'
string to describe its purpose.", DEBUG_DEVELOPER);
}
} else {
$helpicon = new \help_icon('timesplittingnotdefined', 'tool_analytics');
$modeldata->timesplittinghelp = $helpicon->export_for_template($output);
}
// Has this model generated predictions?.
@@ -207,19 +210,22 @@ class models_list implements \renderable, \templatable {
}
// Enable / disable.
if ($model->is_enabled()) {
$action = 'disable';
$text = get_string('disable');
$icontype = 't/block';
} else {
$action = 'enable';
$text = get_string('enable');
$icontype = 'i/checked';
if ($model->is_enabled() || !empty($modeldata->timesplitting)) {
// If there is no timesplitting method set, the model can not be enabled.
if ($model->is_enabled()) {
$action = 'disable';
$text = get_string('disable');
$icontype = 't/block';
} else {
$action = 'enable';
$text = get_string('enable');
$icontype = 'i/checked';
}
$urlparams['action'] = $action;
$url = new \moodle_url('model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon($icontype, $text), $text);
$actionsmenu->add($icon);
}
$urlparams['action'] = $action;
$url = new \moodle_url('model.php', $urlparams);
$icon = new \action_menu_link_secondary($url, new \pix_icon($icontype, $text), $text);
$actionsmenu->add($icon);
// Export training data.
if (!$model->is_static() && $model->is_trained()) {
@@ -264,8 +270,13 @@ class models_list implements \renderable, \templatable {
} else {
$url = new \moodle_url('/admin/settings.php', array('section' => 'analyticssettings'),
'id_s_analytics_onlycli');
$langstrid = 'clievaluationandpredictionsnoadmin';
if (is_siteadmin()) {
$langstrid = 'clievaluationandpredictions';
}
$data->infos = array(
(object)array('message' => get_string('clievaluationandpredictions', 'tool_analytics', $url->out()),
(object)array('message' => get_string($langstrid, 'tool_analytics', $url->out()),
'closebutton' => true)
);
}
@@ -0,0 +1,46 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_analytics.
*
* @package tool_analytics
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_analytics\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_analytics implementing null_provider.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
+8 -1
View File
@@ -31,6 +31,7 @@ $help = "Enables the provided model.
Options:
--modelid Model id
--list List models
--timesplitting Time splitting method full class name
-h, --help Print out this help
@@ -42,6 +43,7 @@ Example:
list($options, $unrecognized) = cli_get_params(
array(
'help' => false,
'list' => false,
'modelid' => false,
'timesplitting' => false
),
@@ -55,7 +57,12 @@ if ($options['help']) {
exit(0);
}
if ($options['modelid'] === false || $options['timesplitting'] === false) {
if ($options['list'] || $options['modelid'] === false) {
\tool_analytics\clihelper::list_models();
exit(0);
}
if ($options['timesplitting'] === false) {
echo $help;
exit(0);
}
+4 -2
View File
@@ -31,6 +31,7 @@ $help = "Evaluates the provided model.
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)
@@ -47,6 +48,7 @@ list($options, $unrecognized) = cli_get_params(
array(
'help' => false,
'modelid' => false,
'list' => false,
'timesplitting' => false,
'reuse-prev-analysed' => true,
'non-interactive' => false,
@@ -62,8 +64,8 @@ if ($options['help']) {
exit(0);
}
if ($options['modelid'] === false) {
echo $help;
if ($options['list'] || $options['modelid'] === false) {
\tool_analytics\clihelper::list_models();
exit(0);
}
@@ -117,12 +117,21 @@ function tool_analytics_calculate_course_dates($course, $options) {
$notification = $course->shortname . ' (id = ' . $course->id . '): ';
$originalenddate = null;
$guessedstartdate = null;
$guessedenddate = null;
$samestartdate = null;
$lowerenddate = null;
if ($options['guessstart'] || $options['guessall']) {
$originalstartdate = $course->startdate;
$guessedstartdate = $courseman->guess_start();
if ($guessedstartdate == $originalstartdate) {
$samestartdate = ($guessedstartdate == $originalstartdate);
$lowerenddate = ($course->enddate && ($course->enddate < $guessedstartdate));
if ($samestartdate) {
if (!$guessedstartdate) {
$notification .= PHP_EOL . ' ' . get_string('cantguessstartdate', 'tool_analytics');
} else {
@@ -131,6 +140,9 @@ function tool_analytics_calculate_course_dates($course, $options) {
}
} else if (!$guessedstartdate) {
$notification .= PHP_EOL . ' ' . get_string('cantguessstartdate', 'tool_analytics');
} else if ($lowerenddate) {
$notification .= PHP_EOL . ' ' . get_string('cantguessstartdate', 'tool_analytics') . ': ' .
get_string('enddatebeforestartdate', 'error') . ' - ' . userdate($guessedstartdate);
} else {
// Update it to something we guess.
@@ -151,6 +163,10 @@ function tool_analytics_calculate_course_dates($course, $options) {
if ($options['guessend'] || $options['guessall']) {
if (!empty($lowerenddate) && !empty($guessedstartdate)) {
$course->startdate = $guessedstartdate;
}
$originalenddate = $course->enddate;
$format = course_get_format($course);
@@ -196,10 +212,8 @@ function tool_analytics_calculate_course_dates($course, $options) {
$updateit = true;
}
if ($options['update']) {
if ($course->enddate > $course->startdate) {
update_course($course);
}
if ($options['update'] && $updateit) {
update_course($course);
}
}
}
@@ -33,6 +33,8 @@ $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['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['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['enabled'] = 'Enabled';
@@ -65,6 +67,7 @@ $string['invalidanalysablestable'] = 'Invalid site analysable elements table';
$string['invalidprediction'] = 'Invalid to get predictions';
$string['invalidtraining'] = 'Invalid to train the model';
$string['loginfo'] = 'Log extra info';
$string['modelid'] = 'Model ID';
$string['modelinvalidanalysables'] = 'Invalid analysable elements for "{$a}" model';
$string['modelresults'] = '{$a} results';
$string['modeltimesplitting'] = 'Time splitting';
@@ -82,6 +85,8 @@ $string['previouspage'] = 'Previous page';
$string['samestartdate'] = 'Current start date is good';
$string['sameenddate'] = 'Current end date is good';
$string['target'] = 'Target';
$string['timesplittingnotdefined'] = 'Time splitting is not defined.';
$string['timesplittingnotdefined_help'] = 'You need to select a time-splitting method before enabling the model.';
$string['trainandpredictmodel'] = 'Training model and calculating predictions';
$string['trainingprocessfinished'] = 'Training process finished';
$string['trainingresults'] = 'Training results';
@@ -89,3 +94,4 @@ $string['trainmodels'] = 'Train models';
$string['viewlog'] = '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.';
@@ -160,6 +160,9 @@
{{/timesplitting}}
{{^timesplitting}}
{{#str}}notdefined, tool_analytics{{/str}}
{{#timesplittinghelp}}
{{>core/help_icon}}
{{/timesplittinghelp}}
{{/timesplitting}}
</td>
<td>
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2018050800; // Requires this Moodle version.
$plugin->component = 'tool_analytics'; // Full name of the plugin (used for diagnostics).
@@ -0,0 +1,73 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_assignmentupgrade.
*
* @package tool_assignmentupgrade
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_assignmentupgrade\privacy;
use core_privacy\local\metadata\collection;
use core_privacy\local\request\writer;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_assignmentupgrade implementing metadata, plugin, and user_preference providers.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements
\core_privacy\local\metadata\provider,
\core_privacy\local\request\user_preference_provider {
/**
* Returns meta data about this system.
*
* @param collection $collection The initialised collection to add items to.
* @return collection A listing of user data stored through this system.
*/
public static function get_metadata(collection $collection) : collection {
$collection->add_user_preference(
'tool_assignmentupgrade_perpage',
'privacy:metadata:preference:perpage'
);
return $collection;
}
/**
* Export all user preferences for the plugin.
*
* @param int $userid The userid of the user whose data is to be exported.
*/
public static function export_user_preferences(int $userid) {
$perpage = get_user_preferences('tool_assignmentupgrade_perpage', null, $userid);
if ($perpage !== null) {
writer::export_user_preference(
'tool_assignmentupgrade',
'perpage',
$perpage,
get_string('privacy:metadata:preference:perpage', 'tool_assignmentupgrade')
);
}
}
}
@@ -58,3 +58,4 @@ $string['upgradeallconfirm'] = 'Upgrade all assignments?';
$string['upgradeprogress'] = 'Upgrade assignment {$a->current} of {$a->total}';
$string['upgradesingle'] = 'Upgrade single assignment';
$string['viewcourse'] = 'View the course with the converted assignment';
$string['privacy:metadata:preference:perpage'] = 'The assignment upgrade records per page preference set for the user.';
@@ -0,0 +1,75 @@
<?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/>.
/**
* Privacy tests for tool_assignmentupgrade.
*
* @package tool_assignmentupgrade
* @category test
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use \core_privacy\tests\provider_testcase;
use \core_privacy\local\request\writer;
use \tool_assignmentupgrade\privacy\provider;
/**
* Unit tests for tool_assignmentupgrade/classes/privacy/policy
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_assignmentupgrade_privacy_testcase extends provider_testcase {
/**
* Overriding setUp() function to always reset after tests.
*/
public function setUp() {
$this->resetAfterTest(true);
}
/**
* Test for provider::test_export_user_preferences().
*/
public function test_export_user_preferences() {
// Test setup.
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
// Add a user home page preference for the User.
set_user_preference('tool_assignmentupgrade_perpage', '100', $user);
// Test the user preference exists.
$params = [
'userid' => $user->id,
'name' => 'tool_assignmentupgrade_perpage'
];
// Test the user preferences export contains 1 user preference record for the User.
provider::export_user_preferences($user->id);
$contextuser = context_user::instance($user->id);
$writer = writer::with_context($contextuser);
$this->assertTrue($writer->has_any_data());
$exportedpreferences = $writer->get_user_preferences('tool_assignmentupgrade');
$this->assertCount(1, (array) $exportedpreferences);
$this->assertEquals('100', $exportedpreferences->perpage->value);
}
}
+3 -3
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500;
$plugin->requires = 2017050500;
$plugin->version = 2018051400;
$plugin->requires = 2018050800;
$plugin->component = 'tool_assignmentupgrade';
$plugin->dependencies = array('mod_assign' => 2017050500);
$plugin->dependencies = array('mod_assign' => 2018050800);
@@ -0,0 +1,46 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_availabilityconditions.
*
* @package tool_availabilityconditions
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_availabilityconditions\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_availabilityconditions implementing null_provider.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
@@ -24,3 +24,4 @@
$string['manageplugins'] = 'Manage restrictions';
$string['pluginname'] = 'Availability condition management';
$string['privacy:metadata'] = 'The Availability condition management plugin does not store any personal data.';
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500;
$plugin->requires = 2017050500;
$plugin->version = 2018051400;
$plugin->requires = 2018050800;
$plugin->component = 'tool_availabilityconditions';
@@ -0,0 +1,46 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_behat.
*
* @package tool_behat
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_behat\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_behat implementing null_provider.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
+1 -1
View File
@@ -398,7 +398,7 @@ function print_combined_install_output($processes) {
// Show process name in first row.
foreach ($processes as $name => $process) {
// If we don't have enough space to show full run name then show runX.
if ($lengthofprocessline < strlen($name + 2)) {
if ($lengthofprocessline < strlen($name) + 2) {
$name = substr($name, -5);
}
// One extra padding as we are adding | separator for rest of the data.
+1
View File
@@ -50,3 +50,4 @@ $string['wrongbehatsetup'] = 'Something is wrong with the behat setup and so ste
<li>$CFG->behat_dataroot, $CFG->behat_prefix and $CFG->behat_wwwroot are set in config.php with different values from $CFG->dataroot, $CFG->prefix and $CFG->wwwroot.</li>
<li>You ran "{$a->behatinit}" from your Moodle root directory.</li>
<li>Dependencies are installed in vendor/ and {$a->behatcommand} file has execution permissions.</li></ul>';
$string['privacy:metadata'] = 'The Acceptance testing plugin does not store any personal data.';
+1 -1
View File
@@ -139,7 +139,7 @@ class tool_behat_renderer extends plugin_renderer_base {
$msg = get_string('wrongbehatsetup', 'tool_behat', $a);
// Error box including generic error string + specific error msg.
$html .= $this->output->box_start('box errorbox');
$html .= $this->output->box_start('box errorbox alert alert-danger');
$html .= html_writer::tag('div', $msg);
$html .= $this->output->box_end();
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2017050500; // Requires this Moodle version
$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2018050800; // Requires this Moodle version
$plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
@@ -0,0 +1,46 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_capability.
*
* @package tool_capability
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_capability\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_capability implementing null_provider.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
@@ -34,3 +34,4 @@ $string['pluginname'] = 'Capability overview';
$string['reportforcapability'] = 'Report for capability \'{$a}\'';
$string['reportsettings'] = 'Report settings';
$string['roleslabel'] = 'Roles:';
$string['privacy:metadata'] = 'The Capability overview plugin does not store any personal data.';
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2018050800; // Requires this Moodle version.
$plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
+1 -1
View File
@@ -167,7 +167,7 @@ class api {
$params['roleid'] = $roleid;
$params['userid'] = $userid;
$sql = 'SELECT u.id AS userid, ra.id, ctx.id AS contextid
$sql = 'SELECT DISTINCT u.id AS userid, ra.id, ctx.id AS contextid
FROM {user} u
JOIN {cohort_members} cm ON u.id = cm.userid
JOIN {context} ctx ON u.id = ctx.instanceid AND ctx.contextlevel = :usercontext
@@ -94,11 +94,12 @@ class cohort_role_assignments_table extends table_sql {
'idnumber' => $data->cohortidnumber,
'description' => $data->cohortdescription,
'visible' => $data->cohortvisible,
'name' => $data->cohortname
'name' => $data->cohortname,
'theme' => $data->cohorttheme
);
$context = context_helper::instance_by_id($data->cohortcontextid);
$exporter = new \tool_lp\external\cohort_summary_exporter($record, array('context' => $context));
$exporter = new \core_cohort\external\cohort_summary_exporter($record, array('context' => $context));
$cohort = $exporter->export($OUTPUT);
$html = $OUTPUT->render_from_template('tool_cohortroles/cohort-in-list', $cohort);
@@ -169,7 +170,7 @@ class cohort_role_assignments_table extends table_sql {
protected function get_sql_and_params($count = false) {
$fields = 'uca.id, uca.cohortid, uca.userid, uca.roleid, ';
$fields .= 'c.name as cohortname, c.idnumber as cohortidnumber, c.contextid as cohortcontextid, ';
$fields .= 'c.visible as cohortvisible, c.description as cohortdescription, ';
$fields .= 'c.visible as cohortvisible, c.description as cohortdescription, c.theme as cohorttheme, ';
// Add extra user fields that we need for the graded user.
$extrafields = get_extra_user_fields($this->context);
@@ -0,0 +1,200 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_cohortroles.
*
* @package tool_cohortroles
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_cohortroles\privacy;
use core_privacy\local\metadata\collection;
use core_privacy\local\request\approved_contextlist;
use core_privacy\local\request\context;
use core_privacy\local\request\contextlist;
use core_privacy\local\request\transform;
use core_privacy\local\request\writer;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_cohortroles implementing metadata and plugin providers.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\provider, \core_privacy\local\request\plugin\provider {
/**
* Returns meta data about this system.
*
* @param collection $collection The initialised collection to add items to.
* @return collection A listing of user data stored through this system.
*/
public static function get_metadata(collection $collection) : collection {
// The tool_cohortroles plugin utilises the mdl_tool_cohortroles table.
$collection->add_database_table(
'tool_cohortroles',
[
'id' => 'privacy:metadata:tool_cohortroles:id',
'cohortid' => 'privacy:metadata:tool_cohortroles:cohortid',
'roleid' => 'privacy:metadata:tool_cohortroles:roleid',
'userid' => 'privacy:metadata:tool_cohortroles:userid',
'timecreated' => 'privacy:metadata:tool_cohortroles:timecreated',
'timemodified' => 'privacy:metadata:tool_cohortroles:timemodified',
'usermodified' => 'privacy:metadata:tool_cohortroles:usermodified'
],
'privacy:metadata:tool_cohortroles'
);
return $collection;
}
/**
* Get the list of contexts that contain user information for the specified user.
*
* @param int $userid The user to search.
* @return contextlist $contextlist The contextlist containing the list of contexts used in this plugin.
*/
public static function get_contexts_for_userid(int $userid) : contextlist {
$contextlist = new contextlist();
// Retrieve the User context associated with tool_cohortroles records.
$sql = "SELECT DISTINCT c.id
FROM {context} c
JOIN {tool_cohortroles} cr ON cr.userid = c.instanceid AND c.contextlevel = :contextuser
WHERE cr.userid = :userid";
$params = [
'contextuser' => CONTEXT_USER,
'userid' => $userid
];
$contextlist->add_from_sql($sql, $params);
return $contextlist;
}
/**
* Export all user data for the specified user, in the specified contexts.
*
* @param approved_contextlist $contextlist The approved contexts to export information for.
*/
public static function export_user_data(approved_contextlist $contextlist) {
global $DB;
// If the user has tool_cohortroles data, then only the User context should be present so get the first context.
$contexts = $contextlist->get_contexts();
if (count($contexts) == 0) {
return;
}
$context = reset($contexts);
// Sanity check that context is at the User context level, then get the userid.
if ($context->contextlevel !== CONTEXT_USER) {
return;
}
$userid = $context->instanceid;
// Retrieve the tool_cohortroles records created for the user.
$sql = 'SELECT cr.id as cohortroleid,
c.name as cohortname,
c.idnumber as cohortidnumber,
c.description as cohortdescription,
r.shortname as roleshortname,
cr.userid as userid,
cr.timecreated as timecreated,
cr.timemodified as timemodified
FROM {tool_cohortroles} cr
JOIN {cohort} c ON c.id = cr.cohortid
JOIN {role} r ON r.id = cr.roleid
WHERE cr.userid = :userid';
$params = [
'userid' => $userid
];
$cohortroles = $DB->get_records_sql($sql, $params);
foreach ($cohortroles as $cohortrole) {
// The tool_cohortroles data export is organised in:
// {User Context}/Cohort roles management/{cohort name}/{role shortname}/data.json.
$subcontext = [
get_string('pluginname', 'tool_cohortroles'),
$cohortrole->cohortname,
$cohortrole->roleshortname
];
$data = (object) [
'cohortname' => $cohortrole->cohortname,
'cohortidnumber' => $cohortrole->cohortidnumber,
'cohortdescription' => $cohortrole->cohortdescription,
'roleshortname' => $cohortrole->roleshortname,
'userid' => transform::user($cohortrole->userid),
'timecreated' => transform::datetime($cohortrole->timecreated),
'timemodified' => transform::datetime($cohortrole->timemodified)
];
writer::with_context($context)->export_data($subcontext, $data);
}
}
/**
* Delete all data for all users in the specified context.
*
* @param context $context The specific context to delete data for.
*/
public static function delete_data_for_all_users_in_context(\context $context) {
global $DB;
// Sanity check that context is at the User context level, then get the userid.
if ($context->contextlevel !== CONTEXT_USER) {
return;
}
$userid = $context->instanceid;
// Delete the tool_cohortroles records created for the userid.
$DB->delete_records('tool_cohortroles', ['userid' => $userid]);
}
/**
* Delete all user data for the specified user, in the specified contexts.
*
* @param approved_contextlist $contextlist The approved contexts and user information to delete information for.
*/
public static function delete_data_for_user(approved_contextlist $contextlist) {
global $DB;
// If the user has tool_cohortroles data, then only the User context should be present so get the first context.
$contexts = $contextlist->get_contexts();
if (count($contexts) == 0) {
return;
}
$context = reset($contexts);
// Sanity check that context is at the User context level, then get the userid.
if ($context->contextlevel !== CONTEXT_USER) {
return;
}
$userid = $context->instanceid;
// Delete the tool_cohortroles records created for the userid.
$DB->delete_records('tool_cohortroles', ['userid' => $userid]);
}
}
@@ -42,3 +42,11 @@ $string['selectrole'] = 'Select role';
$string['selectusers'] = 'Select users to assign role';
$string['taskname'] = 'Sync cohort role assignments';
$string['thisuserroles'] = 'Roles assigned relative to this user';
$string['privacy:metadata:tool_cohortroles'] = 'The Cohort roles management plugin stores user cohort role mappings.';
$string['privacy:metadata:tool_cohortroles:id'] = 'The ID of the cohort role mapping record.';
$string['privacy:metadata:tool_cohortroles:cohortid'] = 'The ID of the cohort.';
$string['privacy:metadata:tool_cohortroles:roleid'] = 'The ID of the role.';
$string['privacy:metadata:tool_cohortroles:userid'] = 'The ID of the user.';
$string['privacy:metadata:tool_cohortroles:timecreated'] = 'The date/time of when the cohort role mapping was created.';
$string['privacy:metadata:tool_cohortroles:timemodified'] = 'The date/time of when the cohort role mapping was modified.';
$string['privacy:metadata:tool_cohortroles:usermodified'] = 'The ID of the user who last modified the cohort role mapping.';
@@ -31,13 +31,15 @@
* idnumber cohort idnumber field
* description cohort description field
* visible cohort visible field
* theme cohort theme field
Example context (json):
{ "id": "1",
"name": "Cohort 1",
"visible": true,
"idnumber": "014",
"description": "Some users"
"description": "Some users",
"theme": "clean"
}
}}
{{> tool_lp/form-cohort-selector-suggestion }}
@@ -0,0 +1,206 @@
<?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/>.
/**
* Unit tests for the tool_cohortroles implementation of the privacy API.
*
* @package tool_cohortroles
* @category test
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
use \core_privacy\local\request\writer;
use \core_privacy\local\request\approved_contextlist;
use \tool_cohortroles\api;
use \tool_cohortroles\privacy\provider;
/**
* Unit tests for the tool_cohortroles implementation of the privacy API.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_cohortroles_privacy_testcase extends \core_privacy\tests\provider_testcase {
/**
* Overriding setUp() function to always reset after tests.
*/
public function setUp() {
$this->resetAfterTest(true);
}
/**
* Test for provider::get_contexts_for_userid().
*/
public function test_get_contexts_for_userid() {
global $DB;
// Test setup.
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
$this->setAdminUser();
$nocohortroles = 3;
$this->setup_test_scenario_data($user->id, $nocohortroles);
// Test the User's assigned cohortroles matches 3.
$cohortroles = $DB->get_records('tool_cohortroles', ['userid' => $user->id]);
$this->assertCount($nocohortroles, $cohortroles);
// Test the User's retrieved contextlist contains only one context.
$contextlist = provider::get_contexts_for_userid($user->id);
$contexts = $contextlist->get_contexts();
$this->assertCount(1, $contexts);
// Test the User's contexts equal the User's own context.
$context = reset($contexts);
$this->assertEquals(CONTEXT_USER, $context->contextlevel);
$this->assertEquals($user->id, $context->instanceid);
}
/**
* Test for provider::export_user_data().
*/
public function test_export_user_data() {
// Test setup.
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
$this->setAdminUser();
$nocohortroles = 3;
$this->setup_test_scenario_data($user->id, $nocohortroles);
// Test the User's retrieved contextlist contains only one context.
$contextlist = provider::get_contexts_for_userid($user->id);
$contexts = $contextlist->get_contexts();
$this->assertCount(1, $contexts);
// Test the User's contexts equal the User's own context.
$context = reset($contexts);
$this->assertEquals(CONTEXT_USER, $context->contextlevel);
$this->assertEquals($user->id, $context->instanceid);
// Retrieve the User's tool_cohortroles data.
$approvedcontextlist = new approved_contextlist($user, 'tool_cohortroles', $contextlist->get_contextids());
provider::export_user_data($approvedcontextlist);
// Test the tool_cohortroles data is exported at the User context level.
$writer = writer::with_context($context);
$this->assertTrue($writer->has_any_data());
}
/**
* Test for provider::delete_data_for_all_users_in_context().
*/
public function test_delete_data_for_all_users_in_context() {
global $DB;
// Test setup.
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
$this->setAdminUser();
$nocohortroles = 4;
$this->setup_test_scenario_data($user->id, $nocohortroles);
// Test the User's assigned cohortroles matches 4.
$cohortroles = $DB->get_records('tool_cohortroles', ['userid' => $user->id]);
$this->assertCount($nocohortroles, $cohortroles);
// Test the User's retrieved contextlist contains only one context.
$contextlist = provider::get_contexts_for_userid($user->id);
$contexts = $contextlist->get_contexts();
$this->assertCount(1, $contexts);
// Test the User's contexts equal the User's own context.
$context = reset($contexts);
$this->assertEquals(CONTEXT_USER, $context->contextlevel);
$this->assertEquals($user->id, $context->instanceid);
// Delete all the User's records in mdl_tool_cohortroles table by the specified User context.
provider::delete_data_for_all_users_in_context($context);
// Test the cohort roles records in mdl_tool_cohortroles table is equals zero.
$cohortroles = $DB->get_records('tool_cohortroles', ['userid' => $user->id]);
$this->assertCount(0, $cohortroles);
}
/**
* Test for provider::delete_data_for_user().
*/
public function test_delete_data_for_user() {
global $DB;
// Test setup.
$user = $this->getDataGenerator()->create_user();
$this->setUser($user);
$this->setAdminUser();
$nocohortroles = 4;
$this->setup_test_scenario_data($user->id, $nocohortroles);
// Test the User's assigned cohortroles matches 4.
$cohortroles = $DB->get_records('tool_cohortroles', ['userid' => $user->id]);
$this->assertCount($nocohortroles, $cohortroles);
// Test the User's retrieved contextlist contains only one context.
$contextlist = provider::get_contexts_for_userid($user->id);
$contexts = $contextlist->get_contexts();
$this->assertCount(1, $contexts);
// Test the User's contexts equal the User's own context.
$context = reset($contexts);
$this->assertEquals(CONTEXT_USER, $context->contextlevel);
$this->assertEquals($user->id, $context->instanceid);
// Delete all the User's records in mdl_tool_cohortroles table by the specified User approved context list.
$approvedcontextlist = new approved_contextlist($user, 'tool_cohortroles', $contextlist->get_contextids());
provider::delete_data_for_user($approvedcontextlist);
// Test the records in mdl_tool_cohortroles table is equals zero.
$cohortroles = $DB->get_records('tool_cohortroles', ['userid' => $user->id]);
$this->assertCount(0, $cohortroles);
}
/**
* Helper function to setup tool_cohortroles records for testing a specific user.
*
* @param int $userid The ID of the user used for testing.
* @param int $nocohortroles The number of tool_cohortroles to create for the user.
* @throws \core_competency\invalid_persistent_exception
* @throws coding_exception
*/
protected function setup_test_scenario_data($userid, $nocohortroles) {
$roleid = create_role('Sausage Roll', 'sausageroll', 'mmmm');
for ($c = 0; $c < $nocohortroles; $c++) {
$cohort = $this->getDataGenerator()->create_cohort();
$params = (object)array(
'userid' => $userid,
'roleid' => $roleid,
'cohortid' => $cohort->id
);
api::create_cohort_role_assignment($params);
}
}
}
+2 -2
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2018050800; // Requires this Moodle version.
$plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
$plugin->dependencies = array(
@@ -0,0 +1,46 @@
<?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/>.
/**
* Privacy Subsystem implementation for tool_customlang.
*
* @package tool_customlang
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_customlang\privacy;
defined('MOODLE_INTERNAL') || die();
/**
* Privacy Subsystem for tool_customlang implementing null_provider.
*
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\null_provider {
/**
* Get the language string identifier with the component's language
* file to explain why this plugin stores no data.
*
* @return string
*/
public static function get_reason() : string {
return 'privacy:metadata';
}
}
+6 -3
View File
@@ -29,14 +29,17 @@ defined('MOODLE_INTERNAL') || die();
function xmldb_tool_customlang_upgrade($oldversion) {
global $CFG;
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.3.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.4.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -59,3 +59,4 @@ $string['placeholderwarning'] = 'string contains a placeholder';
$string['pluginname'] = 'Language customisation';
$string['savecheckin'] = 'Save changes to the language pack';
$string['savecontinue'] = 'Apply changes and continue editing';
$string['privacy:metadata'] = 'The Language customisation plugin does not store any personal data.';
+5
View File
@@ -159,6 +159,11 @@ class tool_customlang_utils {
$needsupdate = true;
$current[$stringid]->local = $stringlocal;
$current[$stringid]->timecustomized = $now;
} else if (isset($currentlocal) && $stringlocal !== $currentlocal) {
// If local string has been removed, we need to remove also the old local value from DB.
$needsupdate = true;
$current[$stringid]->local = null;
$current[$stringid]->timecustomized = $now;
}
if ($needsupdate) {
+6 -4
View File
@@ -134,11 +134,13 @@ class tool_customlang_renderer extends plugin_renderer_base {
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'translatorsubmitted', 'value'=>1));
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'p', 'value'=>$translator->currentpage));
$save1 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecontinue', 'value'=>get_string('savecontinue', 'tool_customlang')));
$save2 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecheckin', 'value'=>get_string('savecheckin', 'tool_customlang')));
$output .= html_writer::tag('fieldset', $save1.$save2, array('class'=>'buttonsbar'));
$save1 = html_writer::empty_tag('input', array('type' => 'submit', 'name' => 'savecontinue',
'value' => get_string('savecontinue', 'tool_customlang'), 'class' => 'btn btn-secondary'));
$save2 = html_writer::empty_tag('input', array('type' => 'submit', 'name' => 'savecheckin',
'value' => get_string('savecheckin', 'tool_customlang'), 'class' => 'btn btn-secondary'));
$output .= html_writer::tag('fieldset', $save1 . ' ' . $save2, array('class' => 'buttonsbar'));
$output .= html_writer::table($table);
$output .= html_writer::tag('fieldset', $save1.$save2, array('class'=>'buttonsbar'));
$output .= html_writer::tag('fieldset', $save1 . ' ' . $save2, array('class' => 'buttonsbar'));
$output .= html_writer::end_tag('div');
$output .= html_writer::end_tag('form');
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2017051500;
$plugin->requires = 2017050500;
$plugin->version = 2018051400;
$plugin->requires = 2018050800;
$plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
+1
View File
@@ -0,0 +1 @@
define(["jquery","core/str","core/ajax","core/notification","core/modal_factory","core/modal_events","core/fragment"],function(a,b,c,d,e,f,g){var h={CATEGORY_LINK:'[data-add-element="category"]'},i=function(a){this.contextId=a;var c=[{key:"addcategory",component:"tool_dataprivacy"},{key:"save",component:"admin"}];this.strings=b.get_strings(c),this.registerEventListeners()};return i.prototype.contextId=0,i.prototype.strings=0,i.prototype.registerEventListeners=function(){var b=a(h.CATEGORY_LINK);b.on("click",function(){return this.strings.then(function(a){e.create({type:e.types.SAVE_CANCEL,title:a[0],body:""},b).done(function(b){this.setupFormModal(b,a[1])}.bind(this))}.bind(this)).fail(d.exception)}.bind(this))},i.prototype.getBody=function(a){var b=null;return"undefined"!=typeof a&&(b={jsonformdata:JSON.stringify(a)}),g.loadFragment("tool_dataprivacy","addcategory_form",this.contextId,b)},i.prototype.setupFormModal=function(a,b){a.setLarge(),a.setSaveButtonText(b),a.getRoot().on(f.hidden,this.destroy.bind(this)),a.setBody(this.getBody()),a.getRoot().on(f.save,this.submitForm.bind(this)),a.getRoot().on("submit","form",this.submitFormAjax.bind(this)),this.modal=a,a.show()},i.prototype.submitForm=function(a){a.preventDefault(),this.modal.getRoot().find("form").submit()},i.prototype.submitFormAjax=function(a){a.preventDefault();var b=this.modal.getRoot().find("form").serialize();c.call([{methodname:"tool_dataprivacy_create_category_form",args:{jsonformdata:JSON.stringify(b)},done:function(a){a.validationerrors?this.modal.setBody(this.getBody(b)):this.close()}.bind(this),fail:d.exception}])},i.prototype.close=function(){this.destroy(),document.location.reload()},i.prototype.destroy=function(){Y.use("moodle-core-formchangechecker",function(){M.core_formchangechecker.reset_form_dirty_state()}),this.modal.destroy()},i.prototype.removeListeners=function(){a(h.CATEGORY_LINK).off("click")},{getInstance:function(a){return new i(a)}}});
+1
View File
@@ -0,0 +1 @@
define(["jquery","core/str","core/ajax","core/notification","core/modal_factory","core/modal_events","core/fragment"],function(a,b,c,d,e,f,g){var h={PURPOSE_LINK:'[data-add-element="purpose"]'},i=function(a){this.contextId=a;var c=[{key:"addpurpose",component:"tool_dataprivacy"},{key:"save",component:"admin"}];this.strings=b.get_strings(c),this.registerEventListeners()};return i.prototype.contextId=0,i.prototype.strings=0,i.prototype.registerEventListeners=function(){var b=a(h.PURPOSE_LINK);b.on("click",function(){return this.strings.then(function(a){e.create({type:e.types.SAVE_CANCEL,title:a[0],body:""},b).done(function(b){this.setupFormModal(b,a[1])}.bind(this))}.bind(this)).fail(d.exception)}.bind(this))},i.prototype.getBody=function(a){var b=null;return"undefined"!=typeof a&&(b={jsonformdata:JSON.stringify(a)}),g.loadFragment("tool_dataprivacy","addpurpose_form",this.contextId,b)},i.prototype.setupFormModal=function(a,b){a.setLarge(),a.setSaveButtonText(b),a.getRoot().on(f.hidden,this.destroy.bind(this)),a.setBody(this.getBody()),a.getRoot().on(f.save,this.submitForm.bind(this)),a.getRoot().on("submit","form",this.submitFormAjax.bind(this)),this.modal=a,a.show()},i.prototype.submitForm=function(a){a.preventDefault(),this.modal.getRoot().find("form").submit()},i.prototype.submitFormAjax=function(a){a.preventDefault();var b=this.modal.getRoot().find("form").serialize();c.call([{methodname:"tool_dataprivacy_create_purpose_form",args:{jsonformdata:JSON.stringify(b)},done:function(a){a.validationerrors?this.modal.setBody(this.getBody(b)):this.close()}.bind(this),fail:d.exception}])},i.prototype.close=function(){this.destroy(),document.location.reload()},i.prototype.destroy=function(){Y.use("moodle-core-formchangechecker",function(){M.core_formchangechecker.reset_form_dirty_state()}),this.modal.destroy()},i.prototype.removeListeners=function(){a(h.PURPOSE_LINK).off("click")},{getInstance:function(a){return new i(a)}}});
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events"],function(a,b,c,d,e,f){var g={DELETE:'[data-action="deletecategory"]'},h=function(){this.registerEvents()};return h.prototype.registerEvents=function(){a(g.DELETE).click(function(g){g.preventDefault();var h=a(this).data("id"),i=a(this).data("name"),j=[{key:"deletecategory",component:"tool_dataprivacy",param:i},{key:"deletecategorytext",component:"tool_dataprivacy",param:i}];d.get_strings(j).then(function(d){var g=d[0],i=d[1];return e.create({title:g,body:i,type:e.types.SAVE_CANCEL}).then(function(d){return d.setSaveButtonText(g),d.getRoot().on(f.save,function(){var d={methodname:"tool_dataprivacy_delete_category",args:{id:h}};b.call([d])[0].done(function(b){b.result?a('tr[data-categoryid="'+h+'"]').remove():c.addNotification({message:b.warnings[0].message,type:"error"})}).fail(c.exception)}),d.getRoot().on(f.hidden,function(){d.destroy()}),d})}).done(function(a){a.show()}).fail(c.exception)})},{init:function(){return new h}}});
+1
View File
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events"],function(a,b,c,d,e,f){function g(a){var g=[{key:"confirm",component:"moodle"},{key:"confirmcontextdeletion",component:"tool_dataprivacy"}],h="tool_dataprivacy_confirm_contexts_for_deletion",i="";d.get_strings(g).then(function(a){i=a[0];var b=a[1];return e.create({title:i,body:b,type:e.types.SAVE_CANCEL})}).then(function(d){return d.setSaveButtonText(i),d.getRoot().on(f.save,function(){var d={ids:a},e={methodname:h,args:d};b.call([e])[0].done(function(a){a.result?window.location.reload():c.addNotification({message:a.warnings[0].message,type:"error"})}).fail(c.exception)}),d.getRoot().on(f.hidden,function(){d.destroy()}),d}).done(function(a){a.show()}).fail(c.exception)}var h={MARK_FOR_DELETION:'[data-action="markfordeletion"]',SELECT_ALL:'[data-action="selectall"]'},i={SELECTCONTEXT:".selectcontext"},j=function(){this.registerEvents()};return j.prototype.registerEvents=function(){a(h.MARK_FOR_DELETION).click(function(b){b.preventDefault();var c=[];a(i.SELECTCONTEXT).each(function(){var b=a(this);b.is(":checked")&&c.push(b.val())}),g(c)}),a(h.SELECT_ALL).change(function(b){b.preventDefault();var c=a(this);c.is(":checked")?a(i.SELECTCONTEXT).attr("checked","checked"):a(i.SELECTCONTEXT).removeAttr("checked")})},j});
+1
View File
@@ -0,0 +1 @@
define(["jquery","core/str","core/ajax","core/notification","core/templates","core/modal_factory","core/modal_events","core/fragment","tool_dataprivacy/add_purpose","tool_dataprivacy/add_category"],function(a,b,c,d,e,f,g,h,i,j){var k={TREE_NODES:"[data-context-tree-node=1]",FORM_CONTAINER:"#context-form-container"},l=function(a,b,c){this.systemContextId=a,this.currentContextLevel=b,this.currentContextId=c,this.init()};return l.prototype.systemContextId=0,l.prototype.currentContextLevel=0,l.prototype.currentContextId=0,l.prototype.addpurpose=null,l.prototype.addcategory=null,l.prototype.init=function(){this.addpurpose=i.getInstance(this.systemContextId),this.addcategory=j.getInstance(this.systemContextId);var a=[{key:"changessaved",component:"moodle"},{key:"contextpurposecategorysaved",component:"tool_dataprivacy"},{key:"noblockstoload",component:"tool_dataprivacy"},{key:"noactivitiestoload",component:"tool_dataprivacy"},{key:"nocoursestoload",component:"tool_dataprivacy"}];this.strings=b.get_strings(a),this.registerEventListeners(),this.currentContextId?this.loadForm("context_form",[this.currentContextId],this.submitContextFormAjax.bind(this)):this.loadForm("contextlevel_form",[this.currentContextLevel],this.submitContextLevelFormAjax.bind(this))},l.prototype.registerEventListeners=function(){a(k.TREE_NODES).on("click",function(b){b.preventDefault();var c=a(b.currentTarget);a(k.TREE_NODES).removeClass("active"),c.addClass("active");var d=c.data("contextlevel"),e=c.data("contextid");if(d)window.history.pushState({},null,"?contextlevel="+d),this.addpurpose.removeListeners(),this.addcategory.removeListeners(),this.currentContextLevel=d,this.loadForm("contextlevel_form",[this.currentContextLevel],this.submitContextLevelFormAjax.bind(this));else if(e)window.history.pushState({},null,"?contextid="+e),this.addpurpose.removeListeners(),this.addcategory.removeListeners(),this.currentContextId=e,this.loadForm("context_form",[this.currentContextId],this.submitContextFormAjax.bind(this));else{var f=c.data("expandcontextid"),g=c.data("expandelement"),h=c.data("expanded");g&&(h?this.collapse(c):!c.data("loaded")&&f&&g?(c.find("> i").removeClass("fa-plus"),c.find("> i").addClass("fa-circle-o-notch fa-spin"),this.loadExtra(c,f,g)):this.expand(c))}}.bind(this))},l.prototype.removeListeners=function(){a(k.TREE_NODES).off("click")},l.prototype.loadForm=function(b,c,f){this.clearForm();var g=h.loadFragment("tool_dataprivacy",b,this.systemContextId,c);g.done(function(b,c){a(k.FORM_CONTAINER).html(b),e.runTemplateJS(c),this.addpurpose.registerEventListeners(),this.addcategory.registerEventListeners(),a(k.FORM_CONTAINER).on("submit","form",f)}.bind(this)).fail(d.exception)},l.prototype.clearForm=function(){Y.use("moodle-core-formchangechecker",function(){M.core_formchangechecker.reset_form_dirty_state()}),a(k.FORM_CONTAINER).off("submit","form")},l.prototype.submitForm=function(b){b.preventDefault(),a(k.FORM_CONTAINER).find("form").submit()},l.prototype.submitContextLevelFormAjax=function(a){this.submitFormAjax(a,"tool_dataprivacy_set_contextlevel_form")},l.prototype.submitContextFormAjax=function(a){this.submitFormAjax(a,"tool_dataprivacy_set_context_form")},l.prototype.submitFormAjax=function(b,e){b.preventDefault();var f=a(k.FORM_CONTAINER).find("form").serialize();return this.strings.then(function(a){c.call([{methodname:e,args:{jsonformdata:JSON.stringify(f)},done:function(){d.alert(a[0],a[1])},fail:d.exception}])})["catch"](d.exception)},l.prototype.loadExtra=function(a,b,f){c.call([{methodname:"tool_dataprivacy_tree_extra_branches",args:{contextid:b,element:f},done:function(b){return 0==b.branches.length?void this.noElements(a,f):void e.render("tool_dataprivacy/context_tree_branches",b).then(function(b){a.after(b),this.removeListeners(),this.registerEventListeners(),this.expand(a),a.data("loaded",1)}.bind(this)).fail(d.exception)}.bind(this),fail:d.exception}])},l.prototype.noElements=function(a,b){a.data("expandcontextid",""),a.data("expandelement",""),this.strings.then(function(c){var d=2;"module"==b?d=3:"course"==b&&(d=4),a.text(c[d])}).fail(d.exception)},l.prototype.collapse=function(a){a.data("expanded",0),a.siblings("nav").addClass("hidden"),a.find("> i").removeClass("fa-minus"),a.find("> i").addClass("fa-plus")},l.prototype.expand=function(a){a.data("expanded",1),a.siblings("nav").removeClass("hidden"),a.find("> i").removeClass("fa-plus"),a.find("> i").removeClass("fa-circle-o-notch fa-spin"),a.find("> i").addClass("fa-minus")},{init:function(a,b,c){return new l(a,b,c)}}});
@@ -0,0 +1 @@
define(["jquery","core/notification","core/custom_interaction_events","core/modal","core/modal_registry","tool_dataprivacy/events"],function(a,b,c,d,e,f){var g=!1,h={APPROVE_BUTTON:'[data-action="approve"]',DENY_BUTTON:'[data-action="deny"]'},i=function(a){d.call(this,a),this.getFooter().find(h.APPROVE_BUTTON).length||b.exception({message:"No approve button found"}),this.getFooter().find(h.DENY_BUTTON).length||b.exception({message:"No deny button found"})};return i.TYPE="tool_dataprivacy-data_request",i.prototype=Object.create(d.prototype),i.prototype.constructor=i,i.prototype.registerEventListeners=function(){d.prototype.registerEventListeners.call(this),this.getModal().on(c.events.activate,h.APPROVE_BUTTON,function(b,c){var d=a.Event(f.approve);this.getRoot().trigger(d,this),d.isDefaultPrevented()||(this.hide(),c.originalEvent.preventDefault())}.bind(this)),this.getModal().on(c.events.activate,h.DENY_BUTTON,function(b,c){var d=a.Event(f.deny);this.getRoot().trigger(d,this),d.isDefaultPrevented()||(this.hide(),c.originalEvent.preventDefault())}.bind(this))},g||(e.register(i.TYPE,i,"tool_dataprivacy/data_request_modal"),g=!0),i});
@@ -0,0 +1 @@
define(["jquery"],function(a){var b={PURPOSE_SELECT:"#id_purposeid",RETENTION_FIELD_BOOST:"#id_error_retention_current",RETENTION_FIELD_CLEAN:"#fitem_id_retention_current [data-fieldtype=static]"},c=function(a){this.purposeRetentionPeriods=a,this.registerEventListeners()},d=function(){a(b.PURPOSE_SELECT).off("change")};return c.prototype.purposeRetentionPeriods=[],c.prototype.registerEventListeners=function(){a(b.PURPOSE_SELECT).on("change",function(c){var d=a(c.currentTarget).val(),e=this.purposeRetentionPeriods[d],f=a(b.RETENTION_FIELD_CLEAN);if(f.length>0)f.text(e);else{var g=a(b.RETENTION_FIELD_BOOST),h=g.siblings();h.length>0&&h.text(e)}}.bind(this))},{init:function(a){return d(),new c(a)}}});
+1
View File
@@ -0,0 +1 @@
define([],function(){return{approve:"tool_dataprivacy-data_request:approve",deny:"tool_dataprivacy-data_request:deny"}});
@@ -0,0 +1 @@
define(["jquery","core/url","core/str"],function(a,b,c){var d=a('<img alt="" src="'+b.imageUrl("t/expanded")+'"/>'),e=a('<img alt="" src="'+b.imageUrl("t/collapsed")+'"/>');return{expandCollapse:function(a,b){a.hasClass("hide")?(a.removeClass("hide"),a.addClass("visible"),a.attr("aria-expanded",!0),b.find(":header i.fa").removeClass("fa-plus-square"),b.find(":header i.fa").addClass("fa-minus-square"),b.find(":header img.icon").attr("src",d.attr("src"))):(a.removeClass("visible"),a.addClass("hide"),a.attr("aria-expanded",!1),b.find(":header i.fa").removeClass("fa-minus-square"),b.find(":header i.fa").addClass("fa-plus-square"),b.find(":header img.icon").attr("src",e.attr("src")))},expandCollapseAll:function(b){var f="visible"==b?"hide":"visible",g="visible"==b,h="visible"==b?"fa-plus-square":"fa-minus-square",i="visible"==b?"fa-minus-square":"fa-plus-square",j="visible"==b?d.attr("src"):e.attr("src");a("."+f).each(function(){a(this).removeClass(f),a(this).addClass(b),a(this).attr("aria-expanded",g)}),a(".tool_dataprivacy-expand-all").data("visibilityState",f),c.get_string(f,"tool_dataprivacy").then(function(b){a(".tool_dataprivacy-expand-all").html(b)})["catch"](Notification.exception),a(":header i.fa").each(function(){a(this).removeClass(h),a(this).addClass(i)}),a(":header img.icon").each(function(){a(this).attr("src",j)})}}});
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/templates"],function(a,b,c){return{processResults:function(b,c){var d=[];return a.each(c,function(a,b){d.push({value:b.id,label:b._label})}),d},transport:function(d,e,f,g){var h;h=b.call([{methodname:"tool_dataprivacy_get_users",args:{query:e}}]),h[0].then(function(b){var d=[],e=0;return a.each(b,function(a,b){d.push(c.render("tool_dataprivacy/form-user-selector-suggestion",b))}),a.when.apply(a.when,d).then(function(){var c=arguments;a.each(b,function(a,b){b._label=c[e],e++}),f(b)})}).fail(g)}}});
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events","core/templates"],function(a,b,c,d,e,f,g){function h(a){var e={methodname:"tool_dataprivacy_contact_dpo",args:{message:a}},f="success";b.call([e])[0].then(function(a){return a.result?d.get_string("requestsubmitted","tool_dataprivacy"):(f="error",a.warnings.join("<br>"))}).done(function(a){c.addNotification({message:a,type:f})}).fail(c.exception)}var i={CANCEL_REQUEST:'[data-action="cancel"]',CONTACT_DPO:'[data-action="contactdpo"]'},j=function(){this.registerEvents()};return j.prototype.registerEvents=function(){a(i.CANCEL_REQUEST).click(function(g){g.preventDefault();var h=a(this).data("requestid"),i=[{key:"cancelrequest",component:"tool_dataprivacy"},{key:"cancelrequestconfirmation",component:"tool_dataprivacy"}];d.get_strings(i).then(function(a){var d=a[0],g=a[1];return e.create({title:d,body:g,type:e.types.SAVE_CANCEL}).then(function(a){return a.setSaveButtonText(d),a.getRoot().on(f.save,function(){var a={requestid:h},d={methodname:"tool_dataprivacy_cancel_data_request",args:a};b.call([d])[0].done(function(a){a.result?window.location.reload():c.addNotification({message:a.warnings[0].message,type:"error"})}).fail(c.exception)}),a.getRoot().on(f.hidden,function(){a.destroy()}),a})}).done(function(a){a.show()}).fail(c.exception)}),a(i.CONTACT_DPO).click(function(b){b.preventDefault();var i=a(this).data("replytoemail"),j=[{key:"contactdataprotectionofficer",component:"tool_dataprivacy"},{key:"send",component:"tool_dataprivacy"}],k="";d.get_strings(j).then(function(a){var b=a[0];k=a[1];var c={replytoemail:i};return e.create({title:b,body:g.render("tool_dataprivacy/contact_dpo",c),type:e.types.SAVE_CANCEL,large:!0})}).done(function(b){b.setSaveButtonText(k),b.getRoot().on(f.save,function(b){var c=a("#message").val().trim();0===c.length?(b.preventDefault(),a('[data-region="messageinput"]').addClass("has-danger notifyproblem"),a("#id_error_message").removeAttr("hidden")):h(c)}),b.getRoot().on(f.hidden,function(){b.destroy()}),b.show()}).fail(c.exception)})},{init:function(){return new j}}});
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events"],function(a,b,c,d,e,f){var g={DELETE:'[data-action="deletepurpose"]'},h=function(){this.registerEvents()};return h.prototype.registerEvents=function(){a(g.DELETE).click(function(g){g.preventDefault();var h=a(this).data("id"),i=a(this).data("name"),j=[{key:"deletepurpose",component:"tool_dataprivacy",param:i},{key:"deletepurposetext",component:"tool_dataprivacy",param:i}];d.get_strings(j).then(function(d){var g=d[0],i=d[1];return e.create({title:g,body:i,type:e.types.SAVE_CANCEL}).then(function(d){return d.setSaveButtonText(g),d.getRoot().on(f.save,function(){var d={methodname:"tool_dataprivacy_delete_purpose",args:{id:h}};b.call([d])[0].done(function(b){b.result?a('tr[data-purposeid="'+h+'"]').remove():c.addNotification({message:b.warnings[0].message,type:"error"})}).fail(c.exception)}),d.getRoot().on(f.hidden,function(){d.destroy()}),d})}).done(function(a){a.show()}).fail(c.exception)})},{init:function(){return new h}}});
@@ -0,0 +1 @@
define(["jquery","core/form-autocomplete","core/str","core/notification"],function(a,b,c,d){var e={REQUEST_FILTERS:"#request-filters"},f=function(){var f=[{key:"filter",component:"moodle"},{key:"nofiltersapplied",component:"moodle"}];c.get_strings(f).then(function(a){var c=a[0],d=a[1];return b.enhance(e.REQUEST_FILTERS,!1,"",c,!1,!0,d,!0)}).fail(d.exception);var g=a(e.REQUEST_FILTERS).val();a(e.REQUEST_FILTERS).on("change",function(){var b=a(this).val();g.join(",")!==b.join(",")&&(0===b.length&&a("#filters-cleared").val(1),a(this.form).submit())})};return{init:function(){f()}}});
@@ -0,0 +1 @@
define(["jquery","core/ajax","core/notification","core/str","core/modal_factory","core/modal_events","core/templates","tool_dataprivacy/data_request_modal","tool_dataprivacy/events"],function(a,b,c,d,e,f,g,h,i){function j(a,g){var h=[],j="";switch(a){case i.approve:h=[{key:"approverequest",component:"tool_dataprivacy"},{key:"confirmapproval",component:"tool_dataprivacy"}],j="tool_dataprivacy_approve_data_request";break;case i.deny:h=[{key:"denyrequest",component:"tool_dataprivacy"},{key:"confirmdenial",component:"tool_dataprivacy"}],j="tool_dataprivacy_deny_data_request"}var k="";d.get_strings(h).then(function(a){k=a[0];var b=a[1];return e.create({title:k,body:b,type:e.types.SAVE_CANCEL})}).then(function(a){return a.setSaveButtonText(k),a.getRoot().on(f.save,function(){var a={requestid:g},d={methodname:j,args:a};b.call([d])[0].done(function(a){a.result?window.location.reload():c.addNotification({message:a.warnings[0].message,type:"error"})}).fail(c.exception)}),a.getRoot().on(f.hidden,function(){a.destroy()}),a}).done(function(a){a.show()}).fail(c.exception)}var k={APPROVE_REQUEST:'[data-action="approve"]',DENY_REQUEST:'[data-action="deny"]',VIEW_REQUEST:'[data-action="view"]'},l=function(){this.registerEvents()};return l.prototype.registerEvents=function(){a(k.VIEW_REQUEST).click(function(d){d.preventDefault();var k=a(this).data("requestid"),l={requestid:k},m={methodname:"tool_dataprivacy_get_data_request",args:l},n=b.call([m]),o="",p=e.types.DEFAULT;a.when(n[0]).then(function(a){return a.result?(2==a.result.status&&(p=h.TYPE),o=a.result.typename,g.render("tool_dataprivacy/request_details",a.result)):(c.addNotification({message:a.warnings[0].message,type:"error"}),!1)}).then(function(a){return e.create({title:o,body:a,type:p,large:!0}).then(function(a){return a.getRoot().on(i.approve,function(){j(i.approve,k)}),a.getRoot().on(i.deny,function(){j(i.deny,k)}),a.getRoot().on(f.hidden,function(){a.destroy()}),a})}).done(function(a){a.show()}).fail(c.exception)}),a(k.APPROVE_REQUEST).click(function(b){b.preventDefault();var c=a(this).data("requestid");j(i.approve,c)}),a(k.DENY_REQUEST).click(function(b){b.preventDefault();var c=a(this).data("requestid");j(i.deny,c)})},l});
@@ -0,0 +1,172 @@
// 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/>.
/**
* Module to add categories.
*
* @module tool_dataprivacy/add_category
* @package tool_dataprivacy
* @copyright 2018 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(['jquery', 'core/str', 'core/ajax', 'core/notification', 'core/modal_factory', 'core/modal_events', 'core/fragment'],
function($, Str, Ajax, Notification, ModalFactory, ModalEvents, Fragment) {
var SELECTORS = {
CATEGORY_LINK: '[data-add-element="category"]',
};
var AddCategory = function(contextId) {
this.contextId = contextId;
var stringKeys = [
{
key: 'addcategory',
component: 'tool_dataprivacy'
},
{
key: 'save',
component: 'admin'
}
];
this.strings = Str.get_strings(stringKeys);
this.registerEventListeners();
};
/**
* @var {int} contextId
* @private
*/
AddCategory.prototype.contextId = 0;
/**
* @var {Promise}
* @private
*/
AddCategory.prototype.strings = 0;
AddCategory.prototype.registerEventListeners = function() {
var trigger = $(SELECTORS.CATEGORY_LINK);
trigger.on('click', function() {
return this.strings.then(function(strings) {
ModalFactory.create({
type: ModalFactory.types.SAVE_CANCEL,
title: strings[0],
body: '',
}, trigger).done(function(modal) {
this.setupFormModal(modal, strings[1]);
}.bind(this));
}.bind(this))
.fail(Notification.exception);
}.bind(this));
};
/**
* @method getBody
* @param {Object} formdata
* @private
* @return {Promise}
*/
AddCategory.prototype.getBody = function(formdata) {
var params = null;
if (typeof formdata !== "undefined") {
params = {jsonformdata: JSON.stringify(formdata)};
}
// Get the content of the modal.
return Fragment.loadFragment('tool_dataprivacy', 'addcategory_form', this.contextId, params);
};
AddCategory.prototype.setupFormModal = function(modal, saveText) {
modal.setLarge();
modal.setSaveButtonText(saveText);
// We want to reset the form every time it is opened.
modal.getRoot().on(ModalEvents.hidden, this.destroy.bind(this));
modal.setBody(this.getBody());
// We catch the modal save event, and use it to submit the form inside the modal.
// Triggering a form submission will give JS validation scripts a chance to check for errors.
modal.getRoot().on(ModalEvents.save, this.submitForm.bind(this));
// We also catch the form submit event and use it to submit the form with ajax.
modal.getRoot().on('submit', 'form', this.submitFormAjax.bind(this));
this.modal = modal;
modal.show();
};
/**
* This triggers a form submission, so that any mform elements can do final tricks before the form submission is processed.
*
* @method submitForm
* @param {Event} e Form submission event.
* @private
*/
AddCategory.prototype.submitForm = function(e) {
e.preventDefault();
this.modal.getRoot().find('form').submit();
};
AddCategory.prototype.submitFormAjax = function(e) {
// We don't want to do a real form submission.
e.preventDefault();
// Convert all the form elements values to a serialised string.
var formData = this.modal.getRoot().find('form').serialize();
Ajax.call([{
methodname: 'tool_dataprivacy_create_category_form',
args: {jsonformdata: JSON.stringify(formData)},
done: function(data) {
if (data.validationerrors) {
this.modal.setBody(this.getBody(formData));
} else {
this.close();
}
}.bind(this),
fail: Notification.exception
}]);
};
AddCategory.prototype.close = function() {
this.destroy();
document.location.reload();
};
AddCategory.prototype.destroy = function() {
Y.use('moodle-core-formchangechecker', function() {
M.core_formchangechecker.reset_form_dirty_state();
});
this.modal.destroy();
};
AddCategory.prototype.removeListeners = function() {
$(SELECTORS.CATEGORY_LINK).off('click');
};
return /** @alias module:tool_dataprivacy/add_category */ {
getInstance: function(contextId) {
return new AddCategory(contextId);
}
};
}
);
@@ -0,0 +1,173 @@
// 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/>.
/**
* Module to add purposes.
*
* @module tool_dataprivacy/add_purpose
* @package tool_dataprivacy
* @copyright 2018 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(['jquery', 'core/str', 'core/ajax', 'core/notification', 'core/modal_factory', 'core/modal_events', 'core/fragment'],
function($, Str, Ajax, Notification, ModalFactory, ModalEvents, Fragment) {
var SELECTORS = {
PURPOSE_LINK: '[data-add-element="purpose"]',
};
var AddPurpose = function(contextId) {
this.contextId = contextId;
var stringKeys = [
{
key: 'addpurpose',
component: 'tool_dataprivacy'
},
{
key: 'save',
component: 'admin'
}
];
this.strings = Str.get_strings(stringKeys);
this.registerEventListeners();
};
/**
* @var {int} contextId
* @private
*/
AddPurpose.prototype.contextId = 0;
/**
* @var {Promise}
* @private
*/
AddPurpose.prototype.strings = 0;
AddPurpose.prototype.registerEventListeners = function() {
var trigger = $(SELECTORS.PURPOSE_LINK);
trigger.on('click', function() {
return this.strings.then(function(strings) {
ModalFactory.create({
type: ModalFactory.types.SAVE_CANCEL,
title: strings[0],
body: '',
}, trigger).done(function(modal) {
this.setupFormModal(modal, strings[1]);
}.bind(this));
}.bind(this))
.fail(Notification.exception);
}.bind(this));
};
/**
* @method getBody
* @param {Object} formdata
* @private
* @return {Promise}
*/
AddPurpose.prototype.getBody = function(formdata) {
var params = null;
if (typeof formdata !== "undefined") {
params = {jsonformdata: JSON.stringify(formdata)};
}
// Get the content of the modal.
return Fragment.loadFragment('tool_dataprivacy', 'addpurpose_form', this.contextId, params);
};
AddPurpose.prototype.setupFormModal = function(modal, saveText) {
modal.setLarge();
modal.setSaveButtonText(saveText);
// We want to reset the form every time it is opened.
modal.getRoot().on(ModalEvents.hidden, this.destroy.bind(this));
modal.setBody(this.getBody());
// We catch the modal save event, and use it to submit the form inside the modal.
// Triggering a form submission will give JS validation scripts a chance to check for errors.
modal.getRoot().on(ModalEvents.save, this.submitForm.bind(this));
// We also catch the form submit event and use it to submit the form with ajax.
modal.getRoot().on('submit', 'form', this.submitFormAjax.bind(this));
this.modal = modal;
modal.show();
};
/**
* This triggers a form submission, so that any mform elements can do final tricks before the form submission is processed.
*
* @method submitForm
* @param {Event} e Form submission event.
* @private
*/
AddPurpose.prototype.submitForm = function(e) {
e.preventDefault();
this.modal.getRoot().find('form').submit();
};
AddPurpose.prototype.submitFormAjax = function(e) {
// We don't want to do a real form submission.
e.preventDefault();
// Convert all the form elements values to a serialised string.
var formData = this.modal.getRoot().find('form').serialize();
Ajax.call([{
methodname: 'tool_dataprivacy_create_purpose_form',
args: {jsonformdata: JSON.stringify(formData)},
done: function(data) {
if (data.validationerrors) {
this.modal.setBody(this.getBody(formData));
} else {
this.close();
}
}.bind(this),
fail: Notification.exception
}]);
};
AddPurpose.prototype.close = function() {
this.destroy();
document.location.reload();
};
AddPurpose.prototype.destroy = function() {
Y.use('moodle-core-formchangechecker', function() {
M.core_formchangechecker.reset_form_dirty_state();
});
this.modal.destroy();
};
AddPurpose.prototype.removeListeners = function() {
$(SELECTORS.PURPOSE_LINK).off('click');
};
return /** @alias module:tool_dataprivacy/add_purpose */ {
getInstance: function(contextId) {
return new AddPurpose(contextId);
}
};
}
);
@@ -0,0 +1,129 @@
// 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/>.
/**
* AMD module for categories actions.
*
* @module tool_dataprivacy/categoriesactions
* @package tool_dataprivacy
* @copyright 2018 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define([
'jquery',
'core/ajax',
'core/notification',
'core/str',
'core/modal_factory',
'core/modal_events'],
function($, Ajax, Notification, Str, ModalFactory, ModalEvents) {
/**
* List of action selectors.
*
* @type {{DELETE: string}}
*/
var ACTIONS = {
DELETE: '[data-action="deletecategory"]',
};
/**
* CategoriesActions class.
*/
var CategoriesActions = function() {
this.registerEvents();
};
/**
* Register event listeners.
*/
CategoriesActions.prototype.registerEvents = function() {
$(ACTIONS.DELETE).click(function(e) {
e.preventDefault();
var id = $(this).data('id');
var categoryname = $(this).data('name');
var stringkeys = [
{
key: 'deletecategory',
component: 'tool_dataprivacy',
param: categoryname
},
{
key: 'deletecategorytext',
component: 'tool_dataprivacy',
param: categoryname
}
];
Str.get_strings(stringkeys).then(function(langStrings) {
var title = langStrings[0];
var confirmMessage = langStrings[1];
return ModalFactory.create({
title: title,
body: confirmMessage,
type: ModalFactory.types.SAVE_CANCEL
}).then(function(modal) {
modal.setSaveButtonText(title);
// Handle save event.
modal.getRoot().on(ModalEvents.save, function() {
var request = {
methodname: 'tool_dataprivacy_delete_category',
args: {'id': id}
};
Ajax.call([request])[0].done(function(data) {
if (data.result) {
$('tr[data-categoryid="' + id + '"]').remove();
} else {
Notification.addNotification({
message: data.warnings[0].message,
type: 'error'
});
}
}).fail(Notification.exception);
});
// Handle hidden event.
modal.getRoot().on(ModalEvents.hidden, function() {
// Destroy when hidden.
modal.destroy();
});
return modal;
});
}).done(function(modal) {
modal.show();
}).fail(Notification.exception);
});
};
return /** @alias module:tool_dataprivacy/categoriesactions */ {
// Public variables and functions.
/**
* Initialise the module.
*
* @method init
* @return {CategoriesActions}
*/
'init': function() {
return new CategoriesActions();
}
};
});
@@ -0,0 +1,156 @@
// 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/>.
/**
* Request actions.
*
* @module tool_dataprivacy/data_deletion
* @package tool_dataprivacy
* @copyright 2018 Jun Pataleta
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define([
'jquery',
'core/ajax',
'core/notification',
'core/str',
'core/modal_factory',
'core/modal_events'],
function($, Ajax, Notification, Str, ModalFactory, ModalEvents) {
/**
* List of action selectors.
*
* @type {{MARK_FOR_DELETION: string}}
* @type {{SELECT_ALL: string}}
*/
var ACTIONS = {
MARK_FOR_DELETION: '[data-action="markfordeletion"]',
SELECT_ALL: '[data-action="selectall"]',
};
/**
* List of selectors.
*
* @type {{SELECTCONTEXT: string}}
*/
var SELECTORS = {
SELECTCONTEXT: '.selectcontext',
};
/**
* DataDeletionActions class.
*/
var DataDeletionActions = function() {
this.registerEvents();
};
/**
* Register event listeners.
*/
DataDeletionActions.prototype.registerEvents = function() {
$(ACTIONS.MARK_FOR_DELETION).click(function(e) {
e.preventDefault();
var selectedIds = [];
$(SELECTORS.SELECTCONTEXT).each(function() {
var checkbox = $(this);
if (checkbox.is(':checked')) {
selectedIds.push(checkbox.val());
}
});
showConfirmation(selectedIds);
});
$(ACTIONS.SELECT_ALL).change(function(e) {
e.preventDefault();
var selectallnone = $(this);
if (selectallnone.is(':checked')) {
$(SELECTORS.SELECTCONTEXT).attr('checked', 'checked');
} else {
$(SELECTORS.SELECTCONTEXT).removeAttr('checked');
}
});
};
/**
* Show the confirmation dialogue.
*
* @param {Array} ids The array of expired context record IDs.
*/
function showConfirmation(ids) {
var keys = [
{
key: 'confirm',
component: 'moodle'
},
{
key: 'confirmcontextdeletion',
component: 'tool_dataprivacy'
}
];
var wsfunction = 'tool_dataprivacy_confirm_contexts_for_deletion';
var modalTitle = '';
Str.get_strings(keys).then(function(langStrings) {
modalTitle = langStrings[0];
var confirmMessage = langStrings[1];
return ModalFactory.create({
title: modalTitle,
body: confirmMessage,
type: ModalFactory.types.SAVE_CANCEL
});
}).then(function(modal) {
modal.setSaveButtonText(modalTitle);
// Handle save event.
modal.getRoot().on(ModalEvents.save, function() {
// Confirm the request.
var params = {
'ids': ids
};
var request = {
methodname: wsfunction,
args: params
};
Ajax.call([request])[0].done(function(data) {
if (data.result) {
window.location.reload();
} else {
Notification.addNotification({
message: data.warnings[0].message,
type: 'error'
});
}
}).fail(Notification.exception);
});
// Handle hidden event.
modal.getRoot().on(ModalEvents.hidden, function() {
// Destroy when hidden.
modal.destroy();
});
return modal;
}).done(function(modal) {
modal.show();
}).fail(Notification.exception);
}
return DataDeletionActions;
});

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