Merge branch 'MDL-65564-master' of git://github.com/marinaglancy/moodle
authorSara Arjona <sara@moodle.com>
Mon, 13 May 2019 08:39:10 +0000 (10:39 +0200)
committerSara Arjona <sara@moodle.com>
Mon, 13 May 2019 08:39:10 +0000 (10:39 +0200)
478 files changed:
admin/settings/badges.php
admin/tests/behat/enable_multiple_accounts_use_same_email.feature
admin/tool/analytics/version.php
admin/tool/availabilityconditions/version.php
admin/tool/behat/version.php
admin/tool/capability/version.php
admin/tool/cohortroles/version.php
admin/tool/customlang/version.php
admin/tool/dataprivacy/templates/my_data_requests.mustache
admin/tool/dataprivacy/templates/request_details.mustache
admin/tool/dataprivacy/version.php
admin/tool/dbtransfer/version.php
admin/tool/filetypes/version.php
admin/tool/generator/version.php
admin/tool/health/version.php
admin/tool/httpsreplace/version.php
admin/tool/innodb/version.php
admin/tool/installaddon/version.php
admin/tool/langimport/version.php
admin/tool/log/store/database/version.php
admin/tool/log/store/legacy/version.php
admin/tool/log/store/standard/version.php
admin/tool/log/version.php
admin/tool/lp/version.php
admin/tool/lpimportcsv/version.php
admin/tool/lpmigrate/version.php
admin/tool/messageinbound/classes/manager.php
admin/tool/messageinbound/version.php
admin/tool/mobile/classes/api.php
admin/tool/mobile/version.php
admin/tool/monitor/version.php
admin/tool/multilangupgrade/version.php
admin/tool/oauth2/version.php
admin/tool/phpunit/version.php
admin/tool/policy/version.php
admin/tool/profiling/version.php
admin/tool/recyclebin/version.php
admin/tool/replace/version.php
admin/tool/spamcleaner/version.php
admin/tool/task/version.php
admin/tool/templatelibrary/version.php
admin/tool/unsuproles/version.php
admin/tool/uploadcourse/version.php
admin/tool/uploaduser/version.php
admin/tool/usertours/version.php
admin/tool/xmldb/version.php
auth/cas/version.php
auth/db/tests/db_test.php
auth/db/version.php
auth/email/version.php
auth/ldap/lang/en/auth_ldap.php
auth/ldap/version.php
auth/lti/version.php
auth/manual/version.php
auth/mnet/version.php
auth/nologin/version.php
auth/none/version.php
auth/oauth2/version.php
auth/shibboleth/version.php
auth/webservice/version.php
availability/condition/completion/version.php
availability/condition/date/version.php
availability/condition/grade/version.php
availability/condition/group/version.php
availability/condition/grouping/version.php
availability/condition/profile/version.php
backup/backup.class.php
badges/classes/backpack_api.php
badges/classes/output/external_backpacks_page.php
badges/criteria/award_criteria_competency.php
badges/templates/external_backpacks_page.mustache
badges/tests/behat/criteria_competency.feature
blocks/activity_modules/version.php
blocks/activity_results/version.php
blocks/admin_bookmarks/version.php
blocks/badges/version.php
blocks/blog_menu/version.php
blocks/blog_recent/version.php
blocks/blog_tags/version.php
blocks/calendar_month/version.php
blocks/calendar_upcoming/version.php
blocks/comments/version.php
blocks/community/version.php
blocks/completionstatus/version.php
blocks/course_list/version.php
blocks/course_summary/version.php
blocks/feedback/version.php
blocks/globalsearch/version.php
blocks/glossary_random/version.php
blocks/html/version.php
blocks/login/version.php
blocks/lp/version.php
blocks/mentees/version.php
blocks/mnet_hosts/version.php
blocks/moodleblock.class.php
blocks/myoverview/version.php
blocks/myprofile/version.php
blocks/navigation/version.php
blocks/news_items/version.php
blocks/online_users/version.php
blocks/participants/version.php
blocks/private_files/version.php
blocks/quiz_results/version.php
blocks/recent_activity/version.php
blocks/recentlyaccessedcourses/version.php
blocks/recentlyaccesseditems/version.php
blocks/rss_client/version.php
blocks/search_forums/version.php
blocks/section_links/version.php
blocks/selfcompletion/version.php
blocks/settings/version.php
blocks/site_main_menu/version.php
blocks/social_activities/version.php
blocks/starredcourses/version.php
blocks/tag_flickr/version.php
blocks/tag_youtube/version.php
blocks/tags/version.php
blocks/timeline/version.php
cache/locks/file/version.php
cache/stores/apcu/version.php
cache/stores/file/version.php
cache/stores/memcached/version.php
cache/stores/mongodb/version.php
cache/stores/redis/version.php
cache/stores/session/version.php
cache/stores/static/version.php
calendar/type/gregorian/version.php
cohort/upload.php
cohort/upload_form.php
course/format/singleactivity/version.php
course/format/social/version.php
course/format/topics/tests/format_topics_test.php
course/format/topics/version.php
course/format/weeks/tests/format_weeks_test.php
course/format/weeks/version.php
customfield/field/checkbox/classes/data_controller.php
customfield/field/checkbox/version.php
customfield/field/date/version.php
customfield/field/select/version.php
customfield/field/text/version.php
customfield/field/textarea/tests/behat/default_value.feature
customfield/field/textarea/version.php
customfield/tests/behat/edit_fields_settings.feature
customfield/tests/data_controller_test.php
dataformat/csv/version.php
dataformat/excel/version.php
dataformat/html/version.php
dataformat/json/version.php
dataformat/ods/version.php
dataformat/pdf/version.php
enrol/category/version.php
enrol/cohort/version.php
enrol/database/tests/sync_test.php
enrol/database/version.php
enrol/flatfile/version.php
enrol/guest/version.php
enrol/imsenterprise/version.php
enrol/ldap/version.php
enrol/lti/version.php
enrol/manual/version.php
enrol/meta/version.php
enrol/mnet/version.php
enrol/paypal/version.php
enrol/self/version.php
files/converter/googledrive/version.php
files/converter/unoconv/version.php
filter/activitynames/version.php
filter/algebra/version.php
filter/censor/version.php
filter/data/version.php
filter/emailprotect/version.php
filter/emoticon/version.php
filter/glossary/version.php
filter/mathjaxloader/version.php
filter/mediaplugin/version.php
filter/multilang/version.php
filter/tex/version.php
filter/tidy/version.php
filter/urltolink/version.php
grade/export/ods/version.php
grade/export/txt/version.php
grade/export/xls/version.php
grade/export/xml/version.php
grade/grading/form/guide/version.php
grade/grading/form/rubric/version.php
grade/import/csv/version.php
grade/import/direct/version.php
grade/import/xml/version.php
grade/report/grader/version.php
grade/report/history/version.php
grade/report/outcomes/version.php
grade/report/overview/version.php
grade/report/singleview/version.php
grade/report/user/version.php
lang/en/analytics.php
lang/en/badges.php
lang/en/customfield.php
lang/en/error.php
lang/en/message.php
lib/antivirus/clamav/version.php
lib/badgeslib.php
lib/behat/lib.php
lib/classes/message/inbound/private_files_handler.php
lib/editor/atto/plugins/accessibilitychecker/version.php
lib/editor/atto/plugins/accessibilityhelper/version.php
lib/editor/atto/plugins/align/version.php
lib/editor/atto/plugins/backcolor/version.php
lib/editor/atto/plugins/bold/version.php
lib/editor/atto/plugins/charmap/version.php
lib/editor/atto/plugins/clear/version.php
lib/editor/atto/plugins/collapse/version.php
lib/editor/atto/plugins/emoticon/version.php
lib/editor/atto/plugins/equation/version.php
lib/editor/atto/plugins/fontcolor/version.php
lib/editor/atto/plugins/html/version.php
lib/editor/atto/plugins/image/version.php
lib/editor/atto/plugins/indent/version.php
lib/editor/atto/plugins/italic/version.php
lib/editor/atto/plugins/link/version.php
lib/editor/atto/plugins/managefiles/version.php
lib/editor/atto/plugins/media/version.php
lib/editor/atto/plugins/noautolink/version.php
lib/editor/atto/plugins/orderedlist/version.php
lib/editor/atto/plugins/recordrtc/version.php
lib/editor/atto/plugins/rtl/version.php
lib/editor/atto/plugins/strike/version.php
lib/editor/atto/plugins/subscript/version.php
lib/editor/atto/plugins/superscript/version.php
lib/editor/atto/plugins/table/version.php
lib/editor/atto/plugins/title/version.php
lib/editor/atto/plugins/underline/version.php
lib/editor/atto/plugins/undo/version.php
lib/editor/atto/plugins/unorderedlist/version.php
lib/editor/atto/version.php
lib/editor/classes/privacy/provider.php
lib/editor/tests/privacy_provider_test.php
lib/editor/textarea/version.php
lib/editor/tinymce/plugins/ctrlhelp/version.php
lib/editor/tinymce/plugins/managefiles/version.php
lib/editor/tinymce/plugins/moodleemoticon/version.php
lib/editor/tinymce/plugins/moodleimage/version.php
lib/editor/tinymce/plugins/moodlemedia/version.php
lib/editor/tinymce/plugins/moodlenolink/version.php
lib/editor/tinymce/plugins/pdw/version.php
lib/editor/tinymce/plugins/spellchecker/version.php
lib/editor/tinymce/plugins/wrap/version.php
lib/editor/tinymce/version.php
lib/mlbackend/php/version.php
lib/mlbackend/python/version.php
lib/outputrenderers.php
lib/templates/block.mustache
lib/templates/dataformat_selector.mustache
media/player/html5audio/version.php
media/player/html5video/version.php
media/player/swf/version.php
media/player/videojs/version.php
media/player/vimeo/version.php
media/player/youtube/version.php
message/externallib.php
message/output/airnotifier/version.php
message/output/email/version.php
message/output/jabber/version.php
message/output/popup/version.php
message/tests/externallib_test.php
mnet/service/enrol/version.php
mod/assign/feedback/comments/version.php
mod/assign/feedback/editpdf/version.php
mod/assign/feedback/file/version.php
mod/assign/feedback/offline/version.php
mod/assign/submission/comments/version.php
mod/assign/submission/file/version.php
mod/assign/submission/onlinetext/version.php
mod/assign/version.php
mod/assignment/type/offline/version.php
mod/assignment/type/online/version.php
mod/assignment/type/upload/version.php
mod/assignment/type/uploadsingle/version.php
mod/assignment/version.php
mod/book/tool/exportimscp/version.php
mod/book/tool/importhtml/version.php
mod/book/tool/print/version.php
mod/book/version.php
mod/chat/version.php
mod/choice/version.php
mod/data/field/checkbox/version.php
mod/data/field/date/version.php
mod/data/field/file/version.php
mod/data/field/latlong/version.php
mod/data/field/menu/version.php
mod/data/field/multimenu/version.php
mod/data/field/number/version.php
mod/data/field/picture/version.php
mod/data/field/radiobutton/version.php
mod/data/field/text/version.php
mod/data/field/textarea/version.php
mod/data/field/url/version.php
mod/data/preset/imagegallery/version.php
mod/data/version.php
mod/feedback/classes/completion.php
mod/feedback/tests/completion_test.php [new file with mode: 0644]
mod/feedback/version.php
mod/folder/version.php
mod/forum/amd/build/discussion.min.js
mod/forum/amd/build/discussion_list.min.js
mod/forum/amd/build/selectors.min.js
mod/forum/amd/src/discussion.js
mod/forum/amd/src/discussion_list.js
mod/forum/amd/src/selectors.js
mod/forum/classes/local/builders/exported_discussion_summaries.php
mod/forum/classes/local/exporters/discussion_summaries.php
mod/forum/classes/local/exporters/discussion_summary.php
mod/forum/classes/local/factories/exporter.php
mod/forum/classes/local/renderers/discussion_list.php
mod/forum/classes/local/vaults/post.php
mod/forum/discuss.php
mod/forum/lang/en/forum.php
mod/forum/styles.css
mod/forum/templates/discussion_list.mustache
mod/forum/templates/forum_discussion_post.mustache
mod/forum/templates/inpage_reply.mustache
mod/forum/tests/behat/inpage_reply.feature
mod/forum/tests/vaults_post_test.php
mod/forum/version.php
mod/glossary/version.php
mod/imscp/version.php
mod/label/version.php
mod/lesson/version.php
mod/lti/lang/en/lti.php
mod/lti/service/basicoutcomes/version.php
mod/lti/service/gradebookservices/version.php
mod/lti/service/memberships/version.php
mod/lti/service/profile/version.php
mod/lti/service/toolproxy/version.php
mod/lti/service/toolsettings/version.php
mod/lti/version.php
mod/page/version.php
mod/quiz/accessrule/delaybetweenattempts/version.php
mod/quiz/accessrule/ipaddress/version.php
mod/quiz/accessrule/numattempts/version.php
mod/quiz/accessrule/offlineattempts/version.php
mod/quiz/accessrule/openclosedate/version.php
mod/quiz/accessrule/password/version.php
mod/quiz/accessrule/safebrowser/version.php
mod/quiz/accessrule/securewindow/version.php
mod/quiz/accessrule/timelimit/version.php
mod/quiz/lang/en/quiz.php
mod/quiz/report/grading/version.php
mod/quiz/report/overview/version.php
mod/quiz/report/responses/version.php
mod/quiz/report/statistics/version.php
mod/quiz/tests/behat/editing_remove_multiple_questions.feature
mod/quiz/version.php
mod/resource/version.php
mod/scorm/report/basic/version.php
mod/scorm/report/graphs/version.php
mod/scorm/report/interactions/version.php
mod/scorm/report/objectives/version.php
mod/scorm/version.php
mod/survey/version.php
mod/url/version.php
mod/wiki/version.php
mod/workshop/allocation/manual/version.php
mod/workshop/allocation/random/version.php
mod/workshop/allocation/scheduled/version.php
mod/workshop/eval/best/version.php
mod/workshop/form/accumulative/version.php
mod/workshop/form/comments/version.php
mod/workshop/form/numerrors/version.php
mod/workshop/form/rubric/version.php
mod/workshop/version.php
portfolio/boxnet/version.php
portfolio/download/version.php
portfolio/flickr/version.php
portfolio/googledocs/version.php
portfolio/mahara/version.php
portfolio/picasa/version.php
question/behaviour/adaptive/version.php
question/behaviour/adaptivenopenalty/version.php
question/behaviour/deferredcbm/version.php
question/behaviour/deferredfeedback/version.php
question/behaviour/immediatecbm/version.php
question/behaviour/immediatefeedback/version.php
question/behaviour/informationitem/version.php
question/behaviour/interactive/version.php
question/behaviour/interactivecountback/version.php
question/behaviour/manualgraded/version.php
question/behaviour/missing/version.php
question/format/aiken/version.php
question/format/blackboard_six/version.php
question/format/examview/version.php
question/format/gift/version.php
question/format/missingword/version.php
question/format/multianswer/version.php
question/format/webct/version.php
question/format/xhtml/version.php
question/format/xml/version.php
question/type/calculated/version.php
question/type/calculatedmulti/version.php
question/type/calculatedsimple/version.php
question/type/ddimageortext/version.php
question/type/ddmarker/lang/en/qtype_ddmarker.php
question/type/ddmarker/version.php
question/type/ddwtos/amd/build/ddwtos.min.js
question/type/ddwtos/amd/src/ddwtos.js
question/type/ddwtos/version.php
question/type/description/version.php
question/type/essay/version.php
question/type/gapselect/version.php
question/type/match/version.php
question/type/missingtype/version.php
question/type/multianswer/version.php
question/type/multichoice/amd/build/clearchoice.min.js
question/type/multichoice/amd/src/clearchoice.js
question/type/multichoice/version.php
question/type/numerical/version.php
question/type/random/version.php
question/type/randomsamatch/version.php
question/type/shortanswer/version.php
question/type/truefalse/version.php
report/backups/version.php
report/competency/version.php
report/completion/version.php
report/configlog/version.php
report/courseoverview/version.php
report/eventlist/version.php
report/insights/version.php
report/log/version.php
report/loglive/version.php
report/outline/version.php
report/participation/version.php
report/performance/version.php
report/progress/version.php
report/questioninstances/version.php
report/security/version.php
report/stats/version.php
report/usersessions/version.php
repository/areafiles/version.php
repository/boxnet/version.php
repository/coursefiles/version.php
repository/dropbox/version.php
repository/equella/version.php
repository/filesystem/version.php
repository/flickr/version.php
repository/flickr_public/version.php
repository/googledocs/version.php
repository/local/version.php
repository/merlot/version.php
repository/nextcloud/version.php
repository/onedrive/version.php
repository/picasa/version.php
repository/recent/version.php
repository/s3/version.php
repository/skydrive/version.php
repository/upload/version.php
repository/url/locallib.php
repository/url/version.php
repository/user/version.php
repository/webdav/version.php
repository/wikimedia/version.php
repository/youtube/version.php
search/engine/simpledb/version.php
search/engine/solr/version.php
search/templates/index_requests.mustache
theme/boost/version.php
theme/classic/version.php
user/edit_form.php
user/editadvanced_form.php
user/emailupdate.php
user/profile/field/checkbox/version.php
user/profile/field/datetime/version.php
user/profile/field/menu/version.php
user/profile/field/text/version.php
user/profile/field/textarea/version.php
user/tests/behat/addnewuser.feature
version.php
webservice/rest/version.php
webservice/soap/version.php
webservice/xmlrpc/version.php

index 24333ba..0ea5193 100644 (file)
@@ -105,6 +105,13 @@ if (($hassiteconfig || has_any_capability(array(
             new lang_string('sitebackpack_help', 'badges'),
             1, $choices));
 
+    $warning = badges_verify_site_backpack();
+    if (!empty($warning)) {
+        $backpacksettings->add(new admin_setting_description('badges_site_backpack_verify',
+            new lang_string('sitebackpackverify', 'badges'),
+            $warning));
+    }
+
     $ADMIN->add('badges', $backpacksettings);
 
     $ADMIN->add('badges',
index 65dffa3..29eeb4b 100644 (file)
@@ -1,57 +1,74 @@
-@core @core_admin
-Feature: Enable multiple accounts to have the same email address
-  In order to have multiple accounts registerd on the system with the same email address
+@core @core_admin @core_user
+Feature: Allowing multiple accounts to have the same email address
+  In order to manage user accounts
   As an admin
-  I need to enable multiple accounts to be registered with the same email address and verify it is applied
+  I need to be able to set whether to allow multiple accounts with the same email or not
 
-  Background:
-    Given I log in as "admin"
-
-  Scenario: Enable registration of multiple accounts with the same email address
+  Scenario Outline: Create a user with the same email as an existing user
     Given the following config values are set as admin:
-      | allowaccountssameemail | 1 |
-    When I navigate to "Users > Accounts > Add a new user" in site administration
-    And I set the following fields to these values:
-      | Username                        | testmultiemailuser1             |
-      | Choose an authentication method | Manual accounts                 |
-      | New password                    | test@User1                      |
-      | First name                      | Test                            |
-      | Surname                         | Multi1                          |
-      | Email address                   | testmultiemailuser@example.com  |
-    And I press "Create user"
-    And I should see "Test Multi1"
-    And I press "Add a new user"
+      | allowaccountssameemail | <allowsameemail> |
+    And the following "users" exist:
+      | username  | firstname | lastname | email           |
+      | s1        | John      | Doe      | s1@example.com  |
+    When I log in as "admin"
+    And I navigate to "Users > Accounts > Add a new user" in site administration
     And I set the following fields to these values:
-      | Username                        | testmultiemailuser2             |
-      | Choose an authentication method | Manual accounts                 |
-      | New password                    | test@User2                      |
-      | First name                      | Test                            |
-      | Surname                         | Multi2                          |
-      | Email address                   | testmultiemailuser@example.com  |
+      | Username      | s2      |
+      | First name    | Jane    |
+      | Surname       | Doe     |
+      | Email address | <email> |
+      | New password  | test    |
     And I press "Create user"
-    Then I should see "Test Multi2"
-    And I should not see "This email address is already registered"
+    Then I should <expect> "This email address is already registered."
 
-  Scenario: Disable registration of multiple accounts with the same email address
+    Examples:
+      | allowsameemail | email          | expect  |
+      | 0              | s1@example.com | see     |
+      | 0              | S1@EXAMPLE.COM | see     |
+      | 1              | s1@example.com | not see |
+      | 1              | S1@EXAMPLE.COM | not see |
+
+  Scenario Outline: Update a user with the same email as an existing user
     Given the following config values are set as admin:
-      | allowaccountssameemail | 0 |
-    When I navigate to "Users > Accounts > Add a new user" in site administration
-    And I set the following fields to these values:
-      | Username                        | testmultiemailuser1             |
-      | Choose an authentication method | Manual accounts                 |
-      | New password                    | test@User1                      |
-      | First name                      | Test                            |
-      | Surname                         | Multi1                          |
-      | Email address                   | testmultiemailuser@example.com  |
-    And I press "Create user"
-    And I should see "Test Multi1"
-    And I press "Add a new user"
-    And I set the following fields to these values:
-      | Username                        | testmultiemailuser2             |
-      | Choose an authentication method | Manual accounts                 |
-      | New password                    | test@User2                      |
-      | First name                      | Test                            |
-      | Surname                         | Multi2                          |
-      | Email address                   | testmultiemailuser@example.com  |
-    And I press "Create user"
-    Then I should see "This email address is already registered"
\ No newline at end of file
+      | allowaccountssameemail | <allowsameemail> |
+    And the following "users" exist:
+      | username  | firstname | lastname | email           |
+      | s1        | John      | Doe      | s1@example.com  |
+      | s2        | Jane      | Doe      | s2@example.com  |
+    When I log in as "admin"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
+    And I click on "Edit" "link" in the "Jane Doe" "table_row"
+    And I set the field "Email address" to "<email>"
+    And I press "Update profile"
+    Then I should <expect> "This email address is already registered."
+
+    Examples:
+      | allowsameemail | email          | expect  |
+      | 0              | s1@example.com | see     |
+      | 0              | S1@EXAMPLE.COM | see     |
+      | 1              | s1@example.com | not see |
+      | 1              | S1@EXAMPLE.COM | not see |
+      | 0              | S2@EXAMPLE.COM | not see |
+      | 1              | S2@EXAMPLE.COM | not see |
+
+  Scenario Outline: Update own user profile with the same email as an existing user
+    Given the following config values are set as admin:
+      | allowaccountssameemail | <allowsameemail> |
+    And the following "users" exist:
+      | username  | firstname | lastname | email           |
+      | s1        | John      | Doe      | s1@example.com  |
+      | s2        | Jane      | Doe      | s2@example.com  |
+    When I log in as "s2"
+    And I open my profile in edit mode
+    And I set the field "Email address" to "<email>"
+    And I press "Update profile"
+    Then I should <expect> "This email address is already registered."
+
+    Examples:
+      | allowsameemail | email          | expect  |
+      | 0              | s1@example.com | see     |
+      | 0              | S1@EXAMPLE.COM | see     |
+      | 1              | s1@example.com | not see |
+      | 1              | S1@EXAMPLE.COM | not see |
+      | 0              | S2@EXAMPLE.COM | not see |
+      | 1              | S2@EXAMPLE.COM | not see |
index fae12cb..03c5187 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019032800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019032200; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_analytics'; // Full name of the plugin (used for diagnostics).
index 06c1679..93abae8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'tool_availabilityconditions';
index 951e778..cf851e4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;   // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;   // Requires this Moodle version
+$plugin->version   = 2019052000;   // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;   // Requires this Moodle version
 $plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
index 243e159..24be970 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
index c6b10ad..d740274 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
 
 $plugin->dependencies = array(
index 46bf6e5..f00ae9e 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
index bb4cc65..78d0c5b 100644 (file)
               }} data-status="{{status}}"{{!
               }}>
                 <td>{{typename}}</td>
-                <td>{{#userdate}} {{timecreated}}, {{#str}} strftimedatetime {{/str}} {{/userdate}}</td>
+                <td>{{#userdate}} {{timecreated}}, {{#str}} strftimedatetime, core_langconfig {{/str}} {{/userdate}}</td>
                 <td><a href="{{requestedbyuser.profileurl}}" title="{{#str}}viewprofile{{/str}}">{{requestedbyuser.fullname}}</a></td>
                 <td>
                     <span class="badge {{statuslabelclass}}" title="{{statuslabeltitle}}">{{statuslabel}}</span>
index c98ab91..86896bc 100644 (file)
@@ -67,7 +67,8 @@
             <a href="mailto:{{foruser.email}}">{{foruser.email}}</a>
             <div class="clearfix mt-1 mb-1">
             <span class="float-left mr-1">
-                <strong>{{#str}}daterequesteddetail, tool_dataprivacy{{/str}}</strong> {{#userdate}} {{timecreated}}, {{#str}} strftimedatetime {{/str}} {{/userdate}}
+                <strong>{{#str}}daterequesteddetail, tool_dataprivacy{{/str}}</strong>
+                {{#userdate}} {{timecreated}}, {{#str}} strftimedatetime, core_langconfig {{/str}} {{/userdate}}
             </span>
                 <span class="float-left mr-1">
                 <strong>{{#str}}statusdetail, tool_dataprivacy{{/str}}</strong>
index 8089b41..5b24401 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019040800;
-$plugin->requires  = 2018112800;        // Moodle 3.5dev (Build 2018031600) and upwards.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;        // Moodle 3.5dev (Build 2018031600) and upwards.
 $plugin->component = 'tool_dataprivacy';
index 11385ef..67a9ff7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
index f825be3..4305e36 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'tool_filetypes';
index 20f35d3..6f083da 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'tool_generator';
index 6261c09..32c49ed 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_health'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index 0f83030..be54f19 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_httpsreplace'; // Full name of the plugin (used for diagnostics).
index 7a5bc18..d18c6d5 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
index 4250a6c..0bf941e 100644 (file)
@@ -24,6 +24,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_installaddon';
-$plugin->version    = 2018120300;
-$plugin->requires   = 2018112800;
+$plugin->version    = 2019052000;
+$plugin->requires   = 2019051100;
 $plugin->maturity   = MATURITY_STABLE;
index 7a5d4bf..11d6a2f 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
index 4159a06..4b02fe9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019032800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
index c975cdd..6ffb112 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
index 2a6b63d..71b86f9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019032800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
index 91fca04..db8d74d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
index b1e599b..c0a1fb9 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_lp'; // Full name of the plugin (used for diagnostics).
index 2bafff6..19b1cda 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_lpimportcsv'; // Full name of the plugin (used for diagnostics).
-$plugin->dependencies = array('tool_lp' => 2018112800);
+$plugin->dependencies = array('tool_lp' => 2019051100);
 
index 5e1ee55..27df30a 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_lpmigrate'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index 6596aad..e440f87 100644 (file)
@@ -672,7 +672,7 @@ class manager {
         $attachment->charset        = $partdata->getCharset();
         $attachment->description    = $partdata->getDescription();
         $attachment->contentid      = $partdata->getContentId();
-        $attachment->filesize       = $messagedata->getBodyPartSize($part);
+        $attachment->filesize       = $partdata->getBytes();
 
         if (!empty($CFG->antiviruses)) {
             mtrace("--> Attempting virus scan of '{$attachment->filename}'");
index 8064127..bde3449 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'tool_messageinbound';
index 1e1bd2b..02027bd 100644 (file)
@@ -99,7 +99,7 @@ class api {
                     $lang = array();
                     if (!empty($addoninfo['lang'])) {
                         $stringmanager = get_string_manager();
-                        $langs = $stringmanager->get_list_of_translations();
+                        $langs = $stringmanager->get_list_of_translations(true);
                         foreach ($langs as $langid => $langname) {
                             foreach ($addoninfo['lang'] as $stringinfo) {
                                 $lang[$langid][$stringinfo[0]] =
@@ -443,7 +443,7 @@ class api {
                 'NoDelegate_CoreCoursesDownload' => new lang_string('downloadcourses', 'tool_mobile'),
             ),
             "$user" => array(
-                'CoreCourseOptionsDelegate_AddonBlog' => new lang_string('blog', 'blog'),
+                'CoreUserDelegate_AddonBlog:blogs' => new lang_string('blog', 'blog'),
                 '$mmUserDelegate_mmaBadges' => new lang_string('badges', 'badges'),
                 '$mmUserDelegate_mmaCompetency:learningPlan' => new lang_string('competencies', 'competency'),
                 '$mmUserDelegate_mmaCourseCompletion:viewCompletion' => new lang_string('coursecompletion', 'completion'),
index 766dfb2..d429c54 100644 (file)
@@ -23,9 +23,9 @@
  */
 
 defined('MOODLE_INTERNAL') || die();
-$plugin->version   = 2019021101; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_mobile'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
-    'webservice_rest' => 2018112800
+    'webservice_rest' => 2019051100
 );
index 65383a8..58d88d8 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018120300;     // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;     // Requires this Moodle version.
+$plugin->version   = 2019052000;     // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;     // Requires this Moodle version.
 $plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
index c2cce0e..f0750b6 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
 
index 1dc4980..d3a0f36 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_oauth2'; // Full name of the plugin (used for diagnostics).
 
index 167ad0c..5a6358d 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
 
index 9806237..2c211e8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;         // Requires this Moodle version.
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;         // Requires this Moodle version.
 $plugin->component = 'tool_policy';      // Full name of the plugin (used for diagnostics).
index 77b48f4..756def9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
index 52afd41..b644e4d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
index f09f3a0..de0e3df 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_replace'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index b1aa470..d56a836 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
 
index 2bd864b..f4e09e4 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
 
index 7457dcd..c8d1519 100644 (file)
@@ -21,6 +21,6 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 defined('MOODLE_INTERNAL') || die();
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
index 16e48fa..b71623d 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
 
index b5726bb..6efdbba 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;            // Requires this Moodle version.
+$plugin->version   = 2019052000;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;            // Requires this Moodle version.
 $plugin->component = 'tool_uploadcourse';   // Full name of the plugin (used for diagnostics).
index 87165be..490ed22 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
 
index c678cb9..be0ca0d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019030600;            // The current module version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;            // Requires this Moodle version.
+$plugin->version   = 2019052000;            // The current module version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;            // Requires this Moodle version.
 $plugin->component = 'tool_usertours';      // Full name of the plugin (used for diagnostics).
index f6d7acb..78b045c 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800; // Requires this Moodle version
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100; // Requires this Moodle version
 $plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
 
index 7c47f6a..d3f9271 100644 (file)
@@ -26,8 +26,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018121400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_cas';        // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('auth_ldap' => 2018112800);
+$plugin->dependencies = array('auth_ldap' => 2019051100);
index fd6a62c..b17a7c0 100644 (file)
@@ -99,6 +99,13 @@ class auth_db_testcase extends advanced_testcase {
             case 'mssql':
                 set_config('type', 'mssqlnative', 'auth_db');
                 set_config('sybasequoting', '1', 'auth_db');
+
+                // The native sqlsrv driver uses a comma as separator between host and port.
+                $dbhost = $CFG->dbhost;
+                if (!empty($dboptions['dbport'])) {
+                    $dbhost .= ',' . $dboptions['dbport'];
+                }
+                set_config('host', $dbhost, 'auth_db');
                 break;
 
             default:
index 3e52469..2abdd68 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_db';         // Full name of the plugin (used for diagnostics)
index 11d2f68..033a486 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_email';      // Full name of the plugin (used for diagnostics)
index bbed21a..6c84752 100644 (file)
@@ -36,11 +36,7 @@ $string['auth_ldap_contexts_key'] = 'Contexts';
 $string['auth_ldap_create_context'] = 'If you enable user creation with email confirmation, specify the context where users are created. This context should be different from other users to prevent security issues. You don\'t need to add this context to ldap_context-variable, Moodle will search for users from this context automatically.<br /><b>Note!</b> You have to modify the method user_create() in file auth/ldap/auth.php to make user creation work';
 $string['auth_ldap_create_context_key'] = 'Context for new users';
 $string['auth_ldap_create_error'] = 'Error creating user in LDAP.';
-$string['auth_ldapdescription'] = 'This method provides authentication against an external LDAP server.
-                                  If the given username and password are valid, Moodle creates a new user
-                                  entry in its database. This module can read user attributes from LDAP and prefill
-                                  wanted fields in Moodle.  For following logins only the username and
-                                  password are checked.';
+$string['auth_ldapdescription'] = 'This method provides authentication against an external LDAP server. If the given username and password are valid, Moodle creates a new user entry in its database. This plugin can read user attributes from LDAP and prefill wanted fields in Moodle. For following logins only the username and password are checked.';
 $string['auth_ldap_expiration_desc'] = 'Select \'{$a->no}\' to disable expired password checking or \'{$a->ldapserver}\' to read the password expiry time directly from the LDAP server.';
 $string['auth_ldap_expiration_key'] = 'Expiry';
 $string['auth_ldap_expiration_warning_desc'] = 'Number of days before password expiry warning is issued.';
index 15eaf41..bdea652 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_ldap';       // Full name of the plugin (used for diagnostics)
index 3d96d3a..3ee8238 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'auth_lti'; // Full name of the plugin (used for diagnostics).
index 65d1d79..7197cd5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_manual';     // Full name of the plugin (used for diagnostics)
index 93ddd7c..b546cac 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019030700;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_mnet';       // Full name of the plugin (used for diagnostics)
index 628300b..09103da 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_nologin';    // Full name of the plugin (used for diagnostics)
index 6c7cf2d..8643466 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_none';       // Full name of the plugin (used for diagnostics)
index 45bf549..7b6b11b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;        // Requires this Moodle version.
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;        // Requires this Moodle version.
 $plugin->component = 'auth_oauth2';       // Full name of the plugin (used for diagnostics).
index adf88ca..666267c 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_shibboleth'; // Full name of the plugin (used for diagnostics)
index f3d7206..8d6160b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'auth_webservice'; // Full name of the plugin (used for diagnostics)
index 83ed7b5..67e3967 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_completion';
index 84af3d0..62adb4d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_date';
index 4131c60..2583133 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_grade';
index 6b51e96..bc852bc 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_group';
index f1b98c4..45e46da 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_grouping';
index 635a3cd..e8a8bac 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->component = 'availability_profile';
index a287a96..d21299e 100644 (file)
@@ -142,7 +142,7 @@ abstract class backup implements checksumable {
      * point is backup when some behavior/approach channged, in order to allow
      * conditional coding based on it.
      */
-    const VERSION = 2018120300;
+    const VERSION = 2019052000;
     /**
      * Usually same than major release zero version, mainly for informative/historic purposes.
      */
index b525837..0916dea 100644 (file)
@@ -91,7 +91,7 @@ class backpack_api {
         $this->backpackapiurl = $sitebackpack->backpackapiurl;
         $this->backpackapiversion = $sitebackpack->apiversion;
         $this->password = $sitebackpack->password;
-        $this->email = !empty($CFG->badges_defaultissuercontact) ? $CFG->badges_defaultissuercontact : $admin->email;
+        $this->email = !empty($CFG->badges_defaultissuercontact) ? $CFG->badges_defaultissuercontact : '';
         $this->isuserbackpack = false;
         $this->backpackid = $sitebackpack->id;
         if (!empty($userbackpack)) {
@@ -473,6 +473,21 @@ class backpack_api {
         return $this->curl_request('issuers', null, null, $data);
     }
 
+    /**
+     * Delete any user access tokens in the session so we will attempt to get new ones.
+     *
+     * @return void
+     */
+    public function clear_system_user_session() {
+        global $SESSION;
+
+        $useridkey = $this->get_token_key(BADGE_USER_ID_TOKEN);
+        unset($SESSION->$useridkey);
+
+        $expireskey = $this->get_token_key(BADGE_EXPIRES_TOKEN);
+        unset($SESSION->$expireskey);
+    }
+
     /**
      * Authenticate using the stored email and password and save the valid access tokens.
      *
index 90086e4..aa9592f 100644 (file)
@@ -70,6 +70,7 @@ class external_backpacks_page implements \renderable {
             }
             $data->backpacks[] = $backpack;
         }
+        $data->warning = badges_verify_site_backpack();
 
         return $data;
     }
index 77a3084..288f7a2 100644 (file)
@@ -176,6 +176,11 @@ class award_criteria_competency extends award_criteria {
             $existing = \core_competency\user_competency_course::get_multiple($userid, $badge->courseid, $competencyids);
         }
 
+        if ($this->method == BADGE_CRITERIA_AGGREGATION_ALL) {
+            // Any vs all conditions are reversed when no criteria let us finish early.
+            $overall = true;
+        }
+
         foreach ($this->params as $param) {
             $proficiency = false;
             foreach ($existing as $usercompetency) {
index 5152c92..2d84733 100644 (file)
@@ -26,7 +26,8 @@
     {
         "backpacks": [
             {"backpackweburl": "http://localhost/", "sitebackpack": true, "canedit": false}
-        ]
+        ],
+        "warning": "<span class='text-warning'>Could not login</span>"
     }
 }}
 <table class="generaltable fullwidth">
@@ -54,3 +55,4 @@
         {{/backpacks}}
     </tbody>
 </table>
+{{{warning}}}
index 3a8874f..88bc30a 100644 (file)
@@ -20,6 +20,7 @@ Feature: Award badges based on competency completion
     And the following lp "competencies" exist:
       | shortname | framework |
       | comp1 | sc-y-2 |
+      | comp2 | sc-y-2 |
     And I log in as "admin"
 
   @javascript
@@ -79,6 +80,10 @@ Feature: Award badges based on competency completion
     And "Competency picker" "dialogue" should be visible
     And I select "comp1" of the competency tree
     And I click on "Add" "button" in the "Competency picker" "dialogue"
+    And I press "Add competencies to course"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp2" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
     # Add a badge to the site
     And I navigate to "Badges > Add a new badge" in site administration
     And I set the following fields to these values:
@@ -94,6 +99,11 @@ Feature: Award badges based on competency completion
     And I select "comp1" of the competency tree
     And I click on "Add" "button" in the "Competency picker" "dialogue"
     And I wait until the page is ready
+    And I press "Add competency"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp2" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
+    And I wait until the page is ready
     And I press "Save"
     # Enable the badge
     And I wait until the page is ready
@@ -113,3 +123,74 @@ Feature: Award badges based on competency completion
     Then I log in as "user1"
     And I follow "Profile" in the user menu
     And I should see "Site Badge"
+
+  @javascript
+  Scenario: Award badge for completing all competencies in the site
+    # Add a competency to the course
+    When I am on "Course 1" course homepage
+    And I follow "Competencies"
+    And I press "Add competencies to course"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp1" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
+    And I press "Add competencies to course"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp2" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
+    # Add a badge to the site
+    And I navigate to "Badges > Add a new badge" in site administration
+    And I set the following fields to these values:
+      | Name | Site Badge |
+      | Description | Site badge description |
+      | issuername | Tester of site badge |
+    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
+    And I press "Create badge"
+    # Set the competency as a criteria for the badge
+    And I set the field "type" to "Competencies"
+    And I press "Add competency"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp1" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
+    And I wait until the page is ready
+    And I press "Add competency"
+    And "Competency picker" "dialogue" should be visible
+    And I select "comp2" of the competency tree
+    And I click on "Add" "button" in the "Competency picker" "dialogue"
+    And I wait until the page is ready
+    And I click on "This criterion is complete when" "link"
+    And I click on "All of the selected competencies have been completed" "radio"
+    And I press "Save"
+    # Enable the badge
+    And I wait until the page is ready
+    And I press "Enable access"
+    And I press "Continue"
+    # Rate the competency in the course
+    And I am on "Course 1" course homepage
+    And I follow "Competencies"
+    And I click on "comp1" "link" in the "[data-region='coursecompetencies']" "css_element"
+    And I press "Rate"
+    And I set the following fields to these values:
+      | Rating | C |
+    And I wait until the page is ready
+    And I click on "Rate" "button" in the "Rate" "dialogue"
+    And I log out
+    # We should not get the badge yet.
+    Then I log in as "user1"
+    And I follow "Profile" in the user menu
+    And I should not see "Site Badge"
+    And I log out
+    # Rate the other competency.
+    And I log in as "admin"
+    And I am on "Course 1" course homepage
+    And I follow "Competencies"
+    And I click on "comp2" "link" in the "[data-region='coursecompetencies']" "css_element"
+    And I press "Rate"
+    And I set the following fields to these values:
+      | Rating | C |
+    And I wait until the page is ready
+    And I click on "Rate" "button" in the "Rate" "dialogue"
+    And I log out
+    # See if we got the badge now.
+    Then I log in as "user1"
+    And I follow "Profile" in the user menu
+    And I should see "Site Badge"
index 358435b..ee7ad64 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_activity_modules'; // Full name of the plugin (used for diagnostics)
index be2ef1a..08fe783 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;               // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;               // Requires this Moodle version.
+$plugin->version   = 2019052000;               // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;               // Requires this Moodle version.
 $plugin->component = 'block_activity_results'; // Full name of the plugin (used for diagnostics).
\ No newline at end of file
index d4e6ee5..c217884 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_admin_bookmarks'; // Full name of the plugin (used for diagnostics)
index a6f1f39..93a3924 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;        // Requires this Moodle version.
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;        // Requires this Moodle version.
 $plugin->component = 'block_badges';
index 60a2c92..2416b1b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_blog_menu'; // Full name of the plugin (used for diagnostics)
index 55f07a7..a5f3b56 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_blog_recent'; // Full name of the plugin (used for diagnostics)
index 88be697..0c714d0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_blog_tags'; // Full name of the plugin (used for diagnostics)
index 3b767ca..64fd601 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)
index 2b81846..2acd6b5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)
index 4a8c23d..31d3228 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_comments'; // Full name of the plugin (used for diagnostics)
index c86c740..c7034eb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_community'; // Full name of the plugin (used for diagnostics)
index 95dfa67..c0ccbd6 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version      = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires     = 2018112800; // Requires this Moodle version.
+$plugin->version      = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires     = 2019051100; // Requires this Moodle version.
 $plugin->component    = 'block_completionstatus';
-$plugin->dependencies = array('report_completion' => 2018112800);
+$plugin->dependencies = array('report_completion' => 2019051100);
index cbe017b..c7de7ac 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_course_list'; // Full name of the plugin (used for diagnostics)
index daabc02..567b988 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_course_summary'; // Full name of the plugin (used for diagnostics)
index 9cd19cd..d8367fc 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_feedback';  // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_feedback' => 2018112800);
+$plugin->dependencies = array('mod_feedback' => 2019051100);
index 513b7d1..33c49fe 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2018120300;
-$plugin->requires  = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'block_globalsearch';
index aa9ae76..85d9212 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_glossary_random'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_glossary' => 2018112800);
+$plugin->dependencies = array('mod_glossary' => 2019051100);
index 5df1d99..14e6e02 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_html';      // Full name of the plugin (used for diagnostics)
index 476bc8f..efa4258 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_login';     // Full name of the plugin (used for diagnostics)
index 8b829a0..442301e 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018121900;
-$plugin->requires  = 2018112800;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'block_lp';
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index 19368c1..1c5eb89 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_mentees';   // Full name of the plugin (used for diagnostics)
index 762dec9..104771b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_mnet_hosts'; // Full name of the plugin (used for diagnostics)
index 9c58f63..d2a7a44 100644 (file)
@@ -429,13 +429,13 @@ class block_base {
     function html_attributes() {
         $attributes = array(
             'id' => 'inst' . $this->instance->id,
-            'class' => 'block_' . $this->name(). '  block',
+            'class' => 'block_' . $this->name() . ' block',
             'role' => $this->get_aria_role()
         );
         if ($this->hide_header()) {
             $attributes['class'] .= ' no-header';
         }
-        if ($this->instance_can_be_docked() && get_user_preferences('docked_block_instance_'.$this->instance->id, 0)) {
+        if ($this->instance_can_be_docked() && get_user_preferences('docked_block_instance_' . $this->instance->id, 0)) {
             $attributes['class'] .= ' dock_on_load';
         }
         return $attributes;
@@ -577,17 +577,13 @@ class block_base {
      * @return boolean
      */
     function user_can_addto($page) {
-        global $USER;
-
         // List of formats this block supports.
         $formats = $this->applicable_formats();
 
         // The blocks in My Moodle are a special case and use a different capability.
-        if (!empty($USER->id)
-            && $page->context->contextlevel == CONTEXT_USER // Page belongs to a user
-            && $page->context->instanceid == $USER->id // Page belongs to this user
-            && $page->pagetype == 'my-index') { // Ensure we are on the My Moodle page
+        $mypagetypes = my_page_type_list($page->pagetype); // Get list of possible my page types.
 
+        if (array_key_exists($page->pagetype, $mypagetypes)) { // Ensure we are on a page with a my page type.
             // If the block cannot be displayed on /my it is ok if the myaddinstance capability is not defined.
             // Is 'my' explicitly forbidden?
             // If 'all' has not been allowed, has 'my' been explicitly allowed?
index 62127b7..bc9f983 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019022600;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;         // Requires this Moodle version.
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;         // Requires this Moodle version.
 $plugin->component = 'block_myoverview'; // Full name of the plugin (used for diagnostics).
index e54877c..e450842 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_myprofile'; // Full name of the plugin (used for diagnostics)
index a2d6018..22f11b7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_navigation'; // Full name of the plugin (used for diagnostics)
index e2606d0..8e224cb 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;         // Requires this Moodle version
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;         // Requires this Moodle version
 $plugin->component = 'block_news_items'; // Full name of the plugin (used for diagnostics)
-$plugin->dependencies = array('mod_forum' => 2018112800);
+$plugin->dependencies = array('mod_forum' => 2019051100);
index 24f2419..eaf8a55 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_online_users'; // Full name of the plugin (used for diagnostics)
index 153db35..d6ea91b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_participants'; // Full name of the plugin (used for diagnostics)
index 9d27f9e..c7e14d4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_private_files'; // Full name of the plugin (used for diagnostics)
index e738c66..1775aa9 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_quiz_results'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_quiz' => 2018112800);
+$plugin->dependencies = array('mod_quiz' => 2019051100);
index ec758ca..5e932ca 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_recent_activity'; // Full name of the plugin (used for diagnostics)
index f5d3d96..a05f8fb 100644 (file)
@@ -22,6 +22,6 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019022600;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;            // Requires this Moodle version.
+$plugin->version   = 2019052000;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;            // Requires this Moodle version.
 $plugin->component = 'block_recentlyaccessedcourses'; // Full name of the plugin (used for diagnostics).
index b6c5eb1..c96794f 100644 (file)
@@ -22,6 +22,6 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019022600;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;            // Requires this Moodle version.
+$plugin->version   = 2019052000;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;            // Requires this Moodle version.
 $plugin->component = 'block_recentlyaccesseditems'; // Full name of the plugin (used for diagnostics).
index d7a1e91..3c104d8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_rss_client'; // Full name of the plugin (used for diagnostics)
index 5890dd8..eb01039 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_search_forums'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_forum' => 2018112800);
+$plugin->dependencies = array('mod_forum' => 2019051100);
index ec061b3..614cd32 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_section_links'; // Full name of the plugin (used for diagnostics)
index fa63e76..536af5d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_selfcompletion'; // Full name of the plugin (used for diagnostics)
index fdffb8a..925525c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_settings';  // Full name of the plugin (used for diagnostics)
index 4944282..6d5fce5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_site_main_menu'; // Full name of the plugin (used for diagnostics)
index 9f5f80e..8e5f6d1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_social_activities'; // Full name of the plugin (used for diagnostics)
index 8ca3131..e306532 100644 (file)
@@ -23,6 +23,6 @@
  */
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019022600;
-$plugin->requires  = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires  = 2019051100;
 $plugin->component = 'block_starredcourses';
\ No newline at end of file
index a2cf10a..eb71aea 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_tag_flickr'; // Full name of the plugin (used for diagnostics)
index 977ee3c..f382698 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_tag_youtube'; // Full name of the plugin (used for diagnostics)
index f4cde9b..1e19230 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'block_tags';      // Full name of the plugin (used for diagnostics)
index 90c00cf..47db537 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019022600;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;         // Requires this Moodle version.
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;         // Requires this Moodle version.
 $plugin->component = 'block_timeline'; // Full name of the plugin (used for diagnostics).
index e6c46c8..6834bea 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'cachelock_file';  // Full name of the plugin (used for diagnostics)
index c6b6a35..8918e38 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2018120300;
-$plugin->requires = 2018112800;
+$plugin->version = 2019052000;
+$plugin->requires = 2019051100;
 $plugin->maturity = MATURITY_STABLE;
 $plugin->component = 'cachestore_apcu';
index c2f547d..ea07304 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2018120300;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2018112800;    // Requires this Moodle version.
+$plugin->version = 2019052000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2019051100;    // Requires this Moodle version.
 $plugin->component = 'cachestore_file';  // Full name of the plugin.
\ No newline at end of file
index 8dc48c4..d93f172 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018120300;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;    // Requires this Moodle version.
+$plugin->version   = 2019052000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;    // Requires this Moodle version.
 $plugin->component = 'cachestore_memcached';  // Full name of the plugin.
\ No newline at end of file
index 168a3b5..be3875b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018120300;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;    // Requires this Moodle version.
+$plugin->version   = 2019052000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;    // Requires this Moodle version.
 $plugin->component = 'cachestore_mongodb';  // Full name of the plugin.
\ No newline at end of file
index 0e414ec..363a606 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version    = 2018120300;
-$plugin->requires   = 2018112800; // Requires this Moodle version.
+$plugin->version    = 2019052000;
+$plugin->requires   = 2019051100; // Requires this Moodle version.
 $plugin->maturity   = MATURITY_STABLE;
 $plugin->component  = 'cachestore_redis';
 $plugin->release    = '3.0.4 (Build: 20160509)';
index 73704ba..aa360df 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2018120300;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2018112800;    // Requires this Moodle version.
+$plugin->version = 2019052000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2019051100;    // Requires this Moodle version.
 $plugin->component = 'cachestore_session';  // Full name of the plugin.
\ No newline at end of file
index 94fb9a2..958bb96 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018120300;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;    // Requires this Moodle version.
+$plugin->version   = 2019052000;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;    // Requires this Moodle version.
 $plugin->component = 'cachestore_static';  // Full name of the plugin.
\ No newline at end of file
index 4b2da6e..41a5914 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800; // Requires this Moodle version.
+$plugin->version   = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100; // Requires this Moodle version.
 $plugin->component = 'calendartype_gregorian'; // Full name of the plugin (used for diagnostics).
index d83b2ee..c95b60b 100644 (file)
@@ -28,7 +28,6 @@ require_once($CFG->dirroot.'/cohort/upload_form.php');
 require_once($CFG->libdir . '/csvlib.class.php');
 
 $contextid = optional_param('contextid', 0, PARAM_INT);
-$returnurl = optional_param('returnurl', '', PARAM_URL);
 
 require_login();
 
@@ -56,13 +55,9 @@ if ($context->contextlevel == CONTEXT_COURSECAT) {
     navigation_node::override_active_url(new moodle_url('/cohort/index.php', array()));
 }
 
-$uploadform = new cohort_upload_form(null, array('contextid' => $context->id, 'returnurl' => $returnurl));
+$uploadform = new cohort_upload_form(null, array('contextid' => $context->id));
 
-if ($returnurl) {
-    $returnurl = new moodle_url($returnurl);
-} else {
-    $returnurl = new moodle_url('/cohort/index.php', array('contextid' => $context->id));
-}
+$returnurl = new moodle_url('/cohort/index.php', array('contextid' => $context->id));
 
 if ($uploadform->is_cancelled()) {
     redirect($returnurl);
index 0b7ee24..33dce97 100644 (file)
@@ -48,9 +48,6 @@ class cohort_upload_form extends moodleform {
         $mform = $this->_form;
         $data  = (object)$this->_customdata;
 
-        $mform->addElement('hidden', 'returnurl');
-        $mform->setType('returnurl', PARAM_URL);
-
         $mform->addElement('header', 'cohortfileuploadform', get_string('uploadafile'));
 
         $filepickeroptions = array();
index aa8b245..63030f8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;              // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;              // Requires this Moodle version
+$plugin->version   = 2019052000;              // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;              // Requires this Moodle version
 $plugin->component = 'format_singleactivity'; // Full name of the plugin (used for diagnostics)
index c8da91f..651f46a 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'format_social';   // Full name of the plugin (used for diagnostics)
index 7969960..0e66249 100644 (file)
@@ -182,7 +182,7 @@ class format_topics_testcase extends advanced_testcase {
             $tmpl = component_callback('format_weeks', 'inplace_editable', array('sectionname', $section->id, 'New name'));
             $this->fail('Exception expected');
         } catch (moodle_exception $e) {
-            $this->assertEquals(1, preg_match('/^Can not find data record in database/', $e->getMessage()));
+            $this->assertEquals(1, preg_match('/^Can\'t find data record in database/', $e->getMessage()));
         }
     }
 
index a6d801b..71a48d4 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;        // Requires this Moodle version.
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;        // Requires this Moodle version.
 $plugin->component = 'format_topics';    // Full name of the plugin (used for diagnostics).
index 522ff22..e416787 100644 (file)
@@ -188,7 +188,7 @@ class format_weeks_testcase extends advanced_testcase {
             $tmpl = component_callback('format_topics', 'inplace_editable', array('sectionname', $section->id, 'New name'));
             $this->fail('Exception expected');
         } catch (moodle_exception $e) {
-            $this->assertEquals(1, preg_match('/^Can not find data record in database/', $e->getMessage()));
+            $this->assertEquals(1, preg_match('/^Can\'t find data record in database/', $e->getMessage()));
         }
     }
 
index b7eb6f8..f9acd01 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018112800;        // Requires this Moodle version.
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2019051100;        // Requires this Moodle version.
 $plugin->component = 'format_weeks';    // Full name of the plugin (used for diagnostics).
index be13469..881e515 100644 (file)
@@ -55,10 +55,13 @@ class data_controller extends \core_customfield\data_controller {
         $field = $this->get_field();
         $config = $field->get('configdata');
         $elementname = $this->get_form_element_name();
-        $mform->addElement('advcheckbox', $elementname, $this->get_field()->get_formatted_name());
+        // TODO MDL-65506 element 'advcheckbox' does not support 'required' rule. If checkbox is required (i.e. "agree to terms")
+        // then use 'checkbox' form element.
+        $isrequired = $field->get_configdata_property('required');
+        $mform->addElement($isrequired ? 'checkbox' : 'advcheckbox', $elementname, $this->get_field()->get_formatted_name());
         $mform->setDefault($elementname, $config['checkbydefault']);
         $mform->setType($elementname, PARAM_BOOL);
-        if ($field->get_configdata_property('required')) {
+        if ($isrequired) {
             $mform->addRule($elementname, null, 'required', null, 'client');
         }
     }
index fb33942..27105d7 100644 (file)
@@ -24,5 +24,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_checkbox';
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018122000;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
index 130fece..23a9f25 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_date';
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018122000;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
 
index 997926c..367f630 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_select';
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018122000;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
index 05f82a3..0f38b30 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_text';
-$plugin->version   = 2019010400;
-$plugin->requires  = 2018122000;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
index 2f55ed3..44004d0 100644 (file)
@@ -1,4 +1,4 @@
-@customfield @customfield_textarea @javascript
+@customfield @customfield_textarea @javascript @_file_upload
 Feature: Default value for the textarea custom field can contain images
   In order to see images on custom fields
   As a manager
index 6d2e8c7..9315748 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_textarea';
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018122000;
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;
index 90bfacd..cf9cf34 100644 (file)
@@ -71,7 +71,7 @@ Feature: Teachers can edit course custom fields
       | Field 5               | b            |
     And I log out
 
-  @javascript
+  @javascript @_file_upload
   Scenario: Use images in the custom field description
     When I log in as "admin"
     And I follow "Manage private files"
index e29ad46..ac5b405 100644 (file)
@@ -146,7 +146,7 @@ class core_customfield_data_controller_testcase extends advanced_testcase {
             data_controller::create($datarecord->id + 1);
             $this->fail('Expected exception');
         } catch (dml_missing_record_exception $e) {
-            $this->assertStringMatchesFormat('Can not find data record in database table customfield_data%a', $e->getMessage());
+            $this->assertStringMatchesFormat('Can\'t find data record in database table customfield_data%a', $e->getMessage());
             $this->assertEquals(dml_missing_record_exception::class, get_class($e));
         }
 
index 1c12c6a..131cb78 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_csv';
 
index d155c27..b75c0c5 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_excel';
 
index 272334e..eb7afda 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_html';
index 11d4807..30c0250 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_json';
index 585e380..ab4112d 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_ods';
 
index 99c62d8..dd978ea 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019040100;
-$plugin->requires  = 2018112800;  // Requires this Moodle version.
+$plugin->version   = 2019052000;
+$plugin->requires  = 2019051100;  // Requires this Moodle version.
 $plugin->component = 'dataformat_pdf';
index 31fe3e1..753f611 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_category';  // Full name of the plugin (used for diagnostics)
index 1ee1cf2..dc64f49 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_cohort';    // Full name of the plugin (used for diagnostics)
index 0165ba1..09523db 100644 (file)
@@ -98,6 +98,13 @@ class enrol_database_testcase extends advanced_testcase {
             case 'mssql':
                 set_config('dbtype', 'mssqlnative', 'enrol_database');
                 set_config('dbsybasequoting', '1', 'enrol_database');
+
+                // The native sqlsrv driver uses a comma as separator between host and port.
+                $dbhost = $CFG->dbhost;
+                if (!empty($dboptions['dbport'])) {
+                    $dbhost .= ',' . $dboptions['dbport'];
+                }
+                set_config('dbhost', $dbhost, 'enrol_database');
                 break;
 
             default:
index dc55e96..6d61709 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018122000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_database';  // Full name of the plugin (used for diagnostics)
index 21c2923..55076fa 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDRR)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDRR)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_flatfile';  // Full name of the plugin (used for diagnostics)
index deab4e5..5487601 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_guest';     // Full name of the plugin (used for diagnostics)
index fe7348c..c5c3852 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version.
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version.
 $plugin->component = 'enrol_imsenterprise';
index 73b72bd..82385f3 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_ldap';      // Full name of the plugin (used for diagnostics)
index 402c781..e2fa3d0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018112800; // Requires this Moodle version.
+$plugin->version = 2019052000; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2019051100; // Requires this Moodle version.
 $plugin->component = 'enrol_lti'; // Full name of the plugin (used for diagnostics).
index 1bb91fc..d0ac795 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_manual';    // Full name of the plugin (used for diagnostics)
index 1769607..c10499d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_meta';      // Full name of the plugin (used for diagnostics)
index f759973..6c883bf 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_mnet';      // Full name of the plugin (used for diagnostics)
index 496f0ec..7994728 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_paypal';    // Full name of the plugin (used for diagnostics)
index 96d4afb..d4e51fe 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'enrol_self';      // Full name of the plugin (used for diagnostics)
index 48caf20..8759f62 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;         // Requires this Moodle version
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;         // Requires this Moodle version
 $plugin->component = 'fileconverter_googledrive'; // Full name of the plugin (used for diagnostics).
index 295c0a2..cdb2df9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;         // Requires this Moodle version
+$plugin->version   = 2019052000;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;         // Requires this Moodle version
 $plugin->component = 'fileconverter_unoconv'; // Full name of the plugin (used for diagnostics).
index b62d760..27c4abe 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_activitynames'; // Full name of the plugin (used for diagnostics)
index 60c36a6..1596148 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_algebra';  // Full name of the plugin (used for diagnostics)
index a124fdf..b4ce4de 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_censor';   // Full name of the plugin (used for diagnostics)
index 66bc57a..dee7b60 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2018120300;
-$plugin->requires = 2018112800;  // Requires this Moodle version.
+$plugin->version  = 2019052000;
+$plugin->requires = 2019051100;  // Requires this Moodle version.
 $plugin->component= 'filter_data';
 
-$plugin->dependencies = array('mod_data' => 2018112800);
+$plugin->dependencies = array('mod_data' => 2019051100);
index 19df624..dec078c 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_emailprotect'; // Full name of the plugin (used for diagnostics)
index ac83c15..43d4af9 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_emoticon'; // Full name of the plugin (used for diagnostics)
index 35a8a04..fafca60 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2018120300;
-$plugin->requires = 2018112800;  // Requires this Moodle version.
+$plugin->version  = 2019052000;
+$plugin->requires = 2019051100;  // Requires this Moodle version.
 $plugin->component= 'filter_glossary';
 
-$plugin->dependencies = array('mod_glossary' => 2018112800);
+$plugin->dependencies = array('mod_glossary' => 2019051100);
index e213f0f..4583e04 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2018120300;
-$plugin->requires = 2018112800;  // Requires this Moodle version.
+$plugin->version  = 2019052000;
+$plugin->requires = 2019051100;  // Requires this Moodle version.
 $plugin->component= 'filter_mathjaxloader';
index e35db5f..1be71d6 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_mediaplugin'; // Full name of the plugin (used for diagnostics)
index 8abe9c5..1861c79 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_multilang'; // Full name of the plugin (used for diagnostics)
index c02dd13..1e89b59 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_tex';      // Full name of the plugin (used for diagnostics)
index 3f4a8af..5057bb5 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_tidy';     // Full name of the plugin (used for diagnostics)
index d6f3716..173aa9d 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'filter_urltolink'; // Full name of the plugin (used for diagnostics)
index 843cbad..f46355d 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeexport_ods'; // Full name of the plugin (used for diagnostics)
index 3cb336b..9ce3085 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeexport_txt'; // Full name of the plugin (used for diagnostics)
index cf998bc..80d0ade 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeexport_xls'; // Full name of the plugin (used for diagnostics)
index 90a32f6..a4dad63 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeexport_xml'; // Full name of the plugin (used for diagnostics)
index ff51fb7..9b6c827 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'gradingform_guide';
-$plugin->version    = 2018120300;
-$plugin->requires   = 2018112800;
+$plugin->version    = 2019052000;
+$plugin->requires   = 2019051100;
 $plugin->maturity   = MATURITY_STABLE;
\ No newline at end of file
index e5e2ed4..0b35f3d 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'gradingform_rubric';
-$plugin->version    = 2018120300;
+$plugin->version    = 2019052000;
 
-$plugin->requires   = 2018112800;
+$plugin->requires   = 2019051100;
 
 $plugin->maturity   = MATURITY_STABLE;
index bdf1cb8..1669e72 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeimport_csv'; // Full name of the plugin (used for diagnostics)
index 1f2efc8..be391af 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeimport_direct'; // Full name of the plugin (used for diagnostics).
-$plugin->dependencies = array('gradeimport_csv' => 2018112800); // Grade import csv is required for this plugin.
\ No newline at end of file
+$plugin->dependencies = array('gradeimport_csv' => 2019051100); // Grade import csv is required for this plugin.
\ No newline at end of file
index 9dd57ca..04ef5b2 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradeimport_xml'; // Full name of the plugin (used for diagnostics)
index 6806069..10f2165 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018112800;        // Requires this Moodle version
+$plugin->version   = 2019052000;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2019051100;        // Requires this Moodle version
 $plugin->component = 'gradereport_grader'; // Full name of the plugin (used for diagnostics)