Merge branch 'MDL-69017-master' of git://github.com/andrewnicols/moodle
authorJun Pataleta <jun@moodle.com>
Thu, 11 Jun 2020 08:59:04 +0000 (16:59 +0800)
committerJun Pataleta <jun@moodle.com>
Thu, 11 Jun 2020 08:59:04 +0000 (16:59 +0800)
504 files changed:
admin/index.php
admin/renderer.php
admin/settings/badges.php
admin/settings/userfeedback.php
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/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/licensemanager/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/version.php
admin/tool/mobile/version.php
admin/tool/monitor/version.php
admin/tool/moodlenet/db/upgrade.php
admin/tool/moodlenet/lang/en/tool_moodlenet.php
admin/tool/moodlenet/settings.php
admin/tool/moodlenet/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/classes/manager.php
admin/tool/usertours/db/upgrade.php
admin/tool/usertours/tests/privacy_provider_test.php
admin/tool/usertours/tours/.empty [new file with mode: 0644]
admin/tool/usertours/tours/36_dashboard.json [deleted file]
admin/tool/usertours/tours/36_messaging.json [deleted file]
admin/tool/usertours/tours/boost_administrator.json [deleted file]
admin/tool/usertours/tours/boost_course_view.json [deleted file]
admin/tool/usertours/version.php
admin/tool/xmldb/version.php
auth/cas/version.php
auth/db/version.php
auth/email/version.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/backpacks.php
badges/classes/output/external_backpacks_page.php
badges/renderer.php
badges/templates/external_backpacks_page.mustache
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/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/myoverview/version.php
blocks/myprofile/version.php
blocks/navigation/version.php
blocks/news_items/version.php
blocks/online_users/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/classes/loaders.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
cache/tests/cache_test.php
calendar/type/gregorian/version.php
contentbank/contenttype/h5p/version.php
course/format/singleactivity/version.php
course/format/social/version.php
course/format/topics/version.php
course/format/weeks/version.php
course/tests/caching_content_item_readonly_repository_test.php
customfield/field/checkbox/version.php
customfield/field/date/version.php
customfield/field/select/version.php
customfield/field/text/version.php
customfield/field/textarea/version.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/version.php
enrol/flatfile/version.php
enrol/guest/version.php
enrol/imsenterprise/version.php
enrol/ldap/version.php
enrol/lti/version.php
enrol/manual/amd/build/quickenrolment.min.js
enrol/manual/amd/build/quickenrolment.min.js.map
enrol/manual/amd/src/quickenrolment.js
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/displayh5p/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
h5p/classes/local/library/handler.php
h5p/h5plib/v124/lang/en/h5plib_v124.php
h5p/h5plib/v124/version.php
h5p/tests/fixtures/basic_essay.h5p [new file with mode: 0644]
lang/en/admin.php
lang/en/badges.php
lang/en/deprecated.txt
lang/en/files.php
lang/en/h5p.php
lang/en/install.php
lang/en/moodle.php
lib/amd/build/userfeedback.min.js
lib/amd/build/userfeedback.min.js.map
lib/amd/src/userfeedback.js
lib/antivirus/clamav/version.php
lib/badgeslib.php
lib/classes/external/record_userfeedback_action.php [moved from lib/classes/external/userfeedback/record_action.php with 97% similarity]
lib/classes/external/userfeedback/generate_url.php [deleted file]
lib/classes/plugin_manager.php
lib/classes/userfeedback.php
lib/db/services.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/emojipicker/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/h5p/version.php
lib/editor/atto/plugins/html/version.php
lib/editor/atto/plugins/image/version.php
lib/editor/atto/plugins/image/yui/build/moodle-atto_image-button/moodle-atto_image-button-debug.js
lib/editor/atto/plugins/image/yui/build/moodle-atto_image-button/moodle-atto_image-button-min.js
lib/editor/atto/plugins/image/yui/build/moodle-atto_image-button/moodle-atto_image-button.js
lib/editor/atto/plugins/image/yui/src/button/js/button.js
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/textarea/version.php
lib/editor/tinymce/lang/en/editor_tinymce.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/flickrclient.php
lib/mlbackend/php/version.php
lib/mlbackend/python/version.php
lib/oauthlib.php
lib/outputrenderers.php
lib/table/amd/build/dynamic.min.js
lib/table/amd/build/dynamic.min.js.map
lib/table/amd/src/dynamic.js
lib/templates/campaign_content.mustache
lib/tests/behat/userfeedback.feature [new file with mode: 0644]
lib/tests/external/record_userfeedback_action_test.php [moved from lib/tests/external/userfeedback/record_action_test.php with 77% similarity]
lib/tests/external/userfeedback/generate_url_test.php [deleted file]
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/output/airnotifier/version.php
message/output/email/version.php
message/output/jabber/version.php
message/output/popup/version.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/version.php
mod/folder/version.php
mod/forum/report/summary/version.php
mod/forum/version.php
mod/glossary/version.php
mod/h5pactivity/classes/output/result.php
mod/h5pactivity/classes/output/result/fillin.php
mod/h5pactivity/classes/output/result/longfillin.php
mod/h5pactivity/lang/en/h5pactivity.php
mod/h5pactivity/lib.php
mod/h5pactivity/templates/local/result/header.mustache
mod/h5pactivity/tests/behat/result_fillin.feature [new file with mode: 0644]
mod/h5pactivity/tests/behat/result_longfillin.feature [new file with mode: 0644]
mod/h5pactivity/version.php
mod/imscp/version.php
mod/label/version.php
mod/lesson/version.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/seb/version.php
mod/quiz/accessrule/securewindow/version.php
mod/quiz/accessrule/timelimit/version.php
mod/quiz/mod_form.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/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/version.php
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/build/clearchoice.min.js.map
question/type/multichoice/amd/src/clearchoice.js
question/type/multichoice/renderer.php
question/type/multichoice/tests/behat/clearanswers.feature
question/type/multichoice/tests/walkthrough_test.php
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/status/version.php
report/usersessions/version.php
repository/areafiles/version.php
repository/boxnet/version.php
repository/contentbank/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/lang/en/repository_flickr_public.php
repository/flickr_public/lib.php
repository/flickr_public/version.php
repository/googledocs/version.php
repository/local/version.php
repository/merlot/lang/en/repository_merlot.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/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
theme/boost/version.php
theme/classic/version.php
user/amd/build/local/participantsfilter/filter.min.js
user/amd/build/local/participantsfilter/filter.min.js.map
user/amd/build/participants.min.js
user/amd/build/participants.min.js.map
user/amd/build/participantsfilter.min.js
user/amd/build/participantsfilter.min.js.map
user/amd/src/local/participantsfilter/filter.js
user/amd/src/participants.js
user/amd/src/participantsfilter.js
user/classes/table/participants_search.php
user/index.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/bulk_message.feature [new file with mode: 0644]
user/tests/behat/filter_participants.feature
user/tests/behat/participants_in_group_modes.feature [new file with mode: 0644]
version.php
webservice/rest/version.php
webservice/soap/version.php
webservice/xmlrpc/version.php

index 5660318..19b3522 100644 (file)
@@ -902,6 +902,9 @@ $overridetossl = !empty($CFG->overridetossl);
 // Check if moodle campaign content setting is enabled or not.
 $showcampaigncontent = !isset($CFG->showcampaigncontent) || $CFG->showcampaigncontent;
 
+// Encourage admins to enable the user feedback feature if it is not enabled already.
+$showfeedbackencouragement = empty($CFG->enableuserfeedback);
+
 admin_externalpage_setup('adminnotifications');
 
 $output = $PAGE->get_renderer('core', 'admin');
@@ -910,4 +913,4 @@ echo $output->admin_notifications_page($maturity, $insecuredataroot, $errorsdisp
                                        $maintenancemode, $availableupdates, $availableupdatesfetch, $buggyiconvnomb,
                                        $registered, $cachewarnings, $eventshandlers, $themedesignermode, $devlibdir,
                                        $mobileconfigured, $overridetossl, $invalidforgottenpasswordurl, $croninfrequent,
-                                       $showcampaigncontent);
+                                       $showcampaigncontent, $showfeedbackencouragement);
index cda9ed6..cc766ce 100644 (file)
@@ -283,6 +283,7 @@ class core_admin_renderer extends plugin_renderer_base {
      * @param bool $invalidforgottenpasswordurl Whether the forgotten password URL does not link to a valid URL.
      * @param bool $croninfrequent If true, warn that cron hasn't run in the past few minutes
      * @param bool $showcampaigncontent Whether the campaign content should be visible or not.
+     * @param bool $showfeedbackencouragement Whether the feedback encouragement content should be displayed or not.
      *
      * @return string HTML to output.
      */
@@ -291,7 +292,7 @@ class core_admin_renderer extends plugin_renderer_base {
             $buggyiconvnomb, $registered, array $cachewarnings = array(), $eventshandlers = 0,
             $themedesignermode = false, $devlibdir = false, $mobileconfigured = false,
             $overridetossl = false, $invalidforgottenpasswordurl = false, $croninfrequent = false,
-            $showcampaigncontent = false) {
+            $showcampaigncontent = false, bool $showfeedbackencouragement = false) {
 
         global $CFG;
         $output = '';
@@ -315,6 +316,7 @@ class core_admin_renderer extends plugin_renderer_base {
         $output .= $this->registration_warning($registered);
         $output .= $this->mobile_configuration_warning($mobileconfigured);
         $output .= $this->forgotten_password_url_warning($invalidforgottenpasswordurl);
+        $output .= $this->userfeedback_encouragement($showfeedbackencouragement);
         $output .= $this->campaign_content($showcampaigncontent);
 
         //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -2178,4 +2180,21 @@ class core_admin_renderer extends plugin_renderer_base {
 
         return $this->output->box($out);
     }
+
+    /**
+     * Display message about benefits of enabling the user feedback feature.
+     *
+     * @param bool $showfeedbackencouragement Whether the encouragement content should be displayed or not
+     * @return string
+     */
+    protected function userfeedback_encouragement(bool $showfeedbackencouragement): string {
+        $output = '';
+
+        if ($showfeedbackencouragement) {
+            $settingslink = new moodle_url('/admin/settings.php', ['section' => 'userfeedback']);
+            $output .= $this->warning(get_string('userfeedbackencouragement', 'admin', $settingslink->out()), 'info');
+        }
+
+        return $output;
+    }
 }
index 2451390..a97097f 100644 (file)
@@ -59,8 +59,12 @@ if (($hassiteconfig || has_any_capability(array(
 
     $backpacks = badges_get_site_backpacks();
     $choices = array();
+    $defaultchoice = 0;
     foreach ($backpacks as $backpack) {
         $choices[$backpack->id] = $backpack->backpackweburl;
+        if ($backpack->backpackweburl == BADGRIO_BACKPACKWEBURL) {
+            $defaultchoice = $backpack->id;
+        }
     }
 
     $globalsettings->add(new admin_setting_configcheckbox('badges_allowcoursebadges',
@@ -100,18 +104,10 @@ if (($hassiteconfig || has_any_capability(array(
             new lang_string('allowexternalbackpack', 'badges'),
             new lang_string('allowexternalbackpack_desc', 'badges'), 1));
 
-    $bp = $DB->get_record('badge_external_backpack', ['backpackweburl' => BADGRIO_BACKPACKWEBURL]);
     $backpacksettings->add(new admin_setting_configselect('badges_site_backpack',
             new lang_string('sitebackpack', 'badges'),
             new lang_string('sitebackpack_help', 'badges'),
-            $bp->id, $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));
-    }
+            $defaultchoice, $choices));
 
     $ADMIN->add('badges', $backpacksettings);
 
index b7f3128..8d329e8 100644 (file)
@@ -28,7 +28,7 @@ if ($hassiteconfig) {
 
     $userfeedback->add(new admin_setting_configcheckbox('enableuserfeedback',
             new lang_string('enableuserfeedback', 'admin'),
-            new lang_string('enableuserfeedback_desc', 'admin'), 1, 1, 0));
+            new lang_string('enableuserfeedback_desc', 'admin'), 0, 1, 0));
 
     $options = [
         core_userfeedback::REMIND_AFTER_UPGRADE => new lang_string('userfeedbackafterupgrade', 'admin'),
index 5a16f21..d4c2fba 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_analytics'; // Full name of the plugin (used for diagnostics).
index 0cbd887..e1c70f5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'tool_availabilityconditions';
index c7fdb16..daee263 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;   // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;   // Requires this Moodle version
+$plugin->version   = 2020061500;   // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;   // Requires this Moodle version
 $plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
index 3725bff..7babee7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
index c4944b3..78a1b83 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2020020600; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
 
 $plugin->dependencies = array(
index edc4a00..ac32029 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
index 5242cdf..7925e88 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019121700;
-$plugin->requires  = 2019111200;        // Moodle 3.5dev (Build 2018031600) and upwards.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'tool_dataprivacy';
index 24baf79..d89490a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
index f76300b..51da479 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'tool_filetypes';
index 1f4d954..5bd0684 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'tool_generator';
index e389ec2..841691d 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // 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 a2fd75e..6fc9cf8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_httpsreplace'; // Full name of the plugin (used for diagnostics).
index dddc257..734df35 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
index 0196b38..d2530c0 100644 (file)
@@ -24,6 +24,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_installaddon';
-$plugin->version    = 2019111800;
-$plugin->requires   = 2019111200;
+$plugin->version    = 2020061500;
+$plugin->requires   = 2020060900;
 $plugin->maturity   = MATURITY_STABLE;
index e14da79..dee1b46 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
index faf9c51..a05ba8b 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020050600;
-$plugin->requires  = 2020050200;         // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;         // Requires this Moodle version.
 $plugin->component = 'tool_licensemanager';
 
 $plugin->maturity = MATURITY_STABLE;
index 800477a..70d1a2d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
index 6845278..dbb4906 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
index dcd1211..beb8247 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
index eed004e..101e890 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
index 1e86dce..855ab25 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_lp'; // Full name of the plugin (used for diagnostics).
index 1fc6fcb..032cdb5 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_lpimportcsv'; // Full name of the plugin (used for diagnostics).
-$plugin->dependencies = array('tool_lp' => 2019111200);
+$plugin->dependencies = array('tool_lp' => 2020060900);
 
index f63b000..9e15806 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_lpmigrate'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index 5fc7b14..fa17bc3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'tool_messageinbound';
index 1af3f16..33cdccd 100644 (file)
@@ -23,9 +23,9 @@
  */
 
 defined('MOODLE_INTERNAL') || die();
-$plugin->version   = 2019111802; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_mobile'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
-    'webservice_rest' => 2019111200
+    'webservice_rest' => 2020060900
 );
index d5fd219..c80a809 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019111800;     // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;     // Requires this Moodle version.
+$plugin->version   = 2020061500;     // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;     // Requires this Moodle version.
 $plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
index 24f6beb..955e4b0 100644 (file)
@@ -77,5 +77,23 @@ function xmldb_tool_moodlenet_upgrade(int $oldversion) {
         upgrade_plugin_savepoint(true, 2020060500, 'tool', 'moodlenet');
     }
 
+    if ($oldversion < 2020061501) {
+        // Change the domain.
+        $defaultmoodlenet = get_config('tool_moodlenet', 'defaultmoodlenet');
+
+        if ($defaultmoodlenet === 'https://home.moodle.net') {
+            set_config('defaultmoodlenet', 'https://moodle.net', 'tool_moodlenet');
+        }
+
+        // Change the name.
+        $defaultmoodlenetname = get_config('tool_moodlenet', 'defaultmoodlenetname');
+
+        if ($defaultmoodlenetname === 'Moodle HQ MoodleNet') {
+            set_config('defaultmoodlenetname', 'MoodleNet Central', 'tool_moodlenet');
+        }
+
+        upgrade_plugin_savepoint(true, 2020061501, 'tool', 'moodlenet');
+    }
+
     return true;
 }
index d6f6ac1..ec2fdb3 100644 (file)
@@ -31,16 +31,15 @@ $string['aria:footermessage'] = "Browse for content on MoodleNet";
 $string['browsecontentmoodlenet'] = "Or browse for content on MoodleNet";
 $string['clearsearch'] = "Clear search";
 $string['connectandbrowse'] = "Connect to and browse:";
-$string['defaultmoodlenet'] = "Default MoodleNet URL";
-$string['defaultmoodlenet_desc'] = "The URL to either Moodle HQ's MoodleNet instance, or your preferred instance.";
+$string['defaultmoodlenet'] = 'MoodleNet URL';
+$string['defaultmoodlenet_desc'] = 'The URL of the MoodleNet instance available via the activity chooser.';
 $string['defaultmoodlenetname'] = "MoodleNet instance name";
-$string['defaultmoodlenetname_desc'] = 'The name of either Moodle HQ\'s MoodleNet instance or your preferred MoodleNet instance to browse on.';
+$string['defaultmoodlenetnamevalue'] = 'MoodleNet Central';
+$string['defaultmoodlenetname_desc'] = 'The name of the MoodleNet instance available via the activity chooser.';
 $string['enablemoodlenet'] = 'Enable MoodleNet integration';
-$string['enablemoodlenet_desc'] = 'Enabling the integration allows users with the capability to create and manage activities to
-browse MoodleNet from the activity chooser and import MoodleNet resources into their course. It also allows users with the
-capability to restore backups, to push backup files from MoodleNet into Moodle.';
+$string['enablemoodlenet_desc'] = 'If enabled, a user with the capability to create and manage activities can browse MoodleNet via the activity chooser and import MoodleNet resources into their course. In addition, a user with the capability to restore backups can select a backup file on MoodleNet and restore it into Moodle.';
 $string['errorduringdownload'] = 'An error occurred while downloading the file: {$a}';
-$string['forminfo'] = "It will be automatically saved on your moodle profile.";
+$string['forminfo'] = 'Your MoodleNet profile will be automatically saved in your profile on this site.';
 $string['footermessage'] = "Or browse for content on";
 $string['instancedescription'] = "MoodleNet is an open social media platform for educators, with a focus on the collaborative curation of collections of open resources. ";
 $string['instanceplaceholder'] = '@yourprofile@moodle.net';
@@ -48,15 +47,14 @@ $string['inputhelp'] = 'Or if you have a MoodleNet account already, enter your M
 $string['invalidmoodlenetprofile'] = '$userprofile is not correctly formatted';
 $string['importconfirm'] = 'You are about to import the content "{$a->resourcename} ({$a->resourcetype})" into the course "{$a->coursename}". Are you sure you want to continue?';
 $string['importconfirmnocourse'] = 'You are about to import the content "{$a->resourcename} ({$a->resourcetype})" into your site. Are you sure you want to continue?';
-$string['importformatselectguidingtext'] = 'In which format would you like this content "{$a->name} ({$a->type})" to be added to your course?';
+$string['importformatselectguidingtext'] = 'In which format would you like the content "{$a->name} ({$a->type})" to be added to your course?';
 $string['importformatselectheader'] = 'Choose the content display format';
 $string['missinginvalidpostdata'] = 'The resource information from MoodleNet is either missing, or is in an incorrect format.
 If this happens repeatedly, please contact the site administrator.';
 $string['mnetprofile'] = 'MoodleNet profile';
-$string['mnetprofiledesc'] = '<p>Enter in your MoodleNet profile details here to be redirected to your profile while visiting MoodleNet.</p>';
+$string['mnetprofiledesc'] = '<p>Enter your MoodleNet profile details here to be redirected to your profile while visiting MoodleNet.</p>';
 $string['moodlenetsettings'] = 'MoodleNet settings';
-$string['moodlenetnotenabled'] = 'The MoodleNet integration must be enabled before resource imports can be processed.
-To enable this feature, see the \'enablemoodlenet\' setting.';
+$string['moodlenetnotenabled'] = 'The MoodleNet integration must be enabled in Site administration / MoodleNet before resource imports can be processed.';
 $string['notification'] = 'You are about to import the content "{$a->name} ({$a->type})" into your site. Select the course in which it should be added, or <a href="{$a->cancellink}">cancel</a>.';
 $string['searchcourses'] = "Search courses";
 $string['selectpagetitle'] = 'Select page';
index 4b6fb4f..924f849 100644 (file)
@@ -37,10 +37,10 @@ if ($hassiteconfig) {
 
     $temp = new admin_setting_configtext('tool_moodlenet/defaultmoodlenetname',
         get_string('defaultmoodlenetname', 'tool_moodlenet'), new lang_string('defaultmoodlenetname_desc', 'tool_moodlenet'),
-        'Moodle HQ MoodleNet');
+        new lang_string('defaultmoodlenetnamevalue', 'tool_moodlenet'));
     $settings->add($temp);
 
     $temp = new admin_setting_configtext('tool_moodlenet/defaultmoodlenet', get_string('defaultmoodlenet', 'tool_moodlenet'),
-        new lang_string('defaultmoodlenet_desc', 'tool_moodlenet'), 'https://home.moodle.net');
+        new lang_string('defaultmoodlenet_desc', 'tool_moodlenet'), 'https://moodle.net');
     $settings->add($temp);
 }
index d6a7b6e..4511523 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_moodlenet';
-$plugin->version    = 2020060500;
-$plugin->requires   = 2020022800.01;
+$plugin->version    = 2020061501;
+$plugin->requires   = 2020060900;
 $plugin->maturity   = MATURITY_ALPHA;
index 242fdec..fdc6025 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
 
index 14e51ca..8c9f9e8 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_oauth2'; // Full name of the plugin (used for diagnostics).
 
index 2028751..4144fe5 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
 
index e3723b6..51d51fd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;         // Requires this Moodle version.
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;         // Requires this Moodle version.
 $plugin->component = 'tool_policy';      // Full name of the plugin (used for diagnostics).
index ca4fe22..9c391dc 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
index ecbe561..98370c0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
index 23f731a..3621d68 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // 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 4457d4b..4f6daba 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
 
index 310690e..636233a 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
 
index c983a76..aa6dcfb 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   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
index 6688a89..c4d9964 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
 
index e51d2c2..ea66e94 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;            // Requires this Moodle version.
+$plugin->version   = 2020061500;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;            // Requires this Moodle version.
 $plugin->component = 'tool_uploadcourse';   // Full name of the plugin (used for diagnostics).
index 865ee07..cff2376 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
 
index 8eef2d8..4a9f5cf 100644 (file)
@@ -845,21 +845,19 @@ class manager {
         // the format filename => version. The version value needs to
         // be increased if the tour has been updated.
         $shippedtours = [
-            '36_dashboard.json' => 3
         ];
 
         // These are tours that we used to ship but don't ship any longer.
         // We do not remove them, but we do disable them.
         $unshippedtours = [
+            // Formerly included in Moodle 3.2.0.
             'boost_administrator.json' => 1,
             'boost_course_view.json' => 1,
-        ];
 
-        if ($CFG->messaging) {
-            $shippedtours['36_messaging.json'] = 3;
-        } else {
-            $unshippedtours['36_messaging.json'] = 3;
-        }
+            // Formerly included in Moodle 3.6.0.
+            '36_dashboard.json' => 3,
+            '36_messaging.json' => 3,
+        ];
 
         $existingtourrecords = $DB->get_recordset('tool_usertours_tours');
 
index db3ccd8..dce812b 100644 (file)
@@ -38,34 +38,20 @@ function xmldb_tool_usertours_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
-    if ($oldversion < 2018113002) {
-        // Update the tours shipped with Moodle.
-        manager::update_shipped_tours();
-
-        upgrade_plugin_savepoint(true, 2018113002, 'tool', 'usertours');
-    }
-
     // Automatically generated Moodle v3.6.0 release upgrade line.
     // Put any upgrade step following this.
 
-    if ($oldversion < 2019030600) {
-        // Update the tours shipped with Moodle.
-        manager::update_shipped_tours();
-
-        upgrade_plugin_savepoint(true, 2019030600, 'tool', 'usertours');
-    }
-
     // Automatically generated Moodle v3.7.0 release upgrade line.
     // Put any upgrade step following this.
 
     // Automatically generated Moodle v3.8.0 release upgrade line.
     // Put any upgrade step following this.
 
-    if ($oldversion < 2020031900) {
+    if ($oldversion < 2020061501) {
         // Updating shipped tours will fix broken sortorder records in existing tours.
         manager::update_shipped_tours();
 
-        upgrade_plugin_savepoint(true, 2020031900, 'tool', 'usertours');
+        upgrade_plugin_savepoint(true, 2020061501, 'tool', 'usertours');
     }
 
     return true;
index db0139d..17138da 100644 (file)
@@ -40,6 +40,15 @@ use \tool_usertours\privacy\provider;
  */
 class tool_usertours_privacy_testcase extends \core_privacy\tests\provider_testcase {
 
+    protected function create_test_tour(): tour {
+        return (new tour())
+            ->set_name('test_tour')
+            ->set_description('Test tour')
+            ->set_enabled(true)
+            ->set_pathmatch('/')
+            ->persist();
+    }
+
     /**
      * Ensure that get_metadata exports valid content.
      */
@@ -71,11 +80,9 @@ class tool_usertours_privacy_testcase extends \core_privacy\tests\provider_testc
         $this->resetAfterTest();
         $this->setAdminUser();
 
-        $alltours = $DB->get_records('tool_usertours_tours');
-        $tourdata = reset($alltours);
+        $tour = $this->create_test_tour();
 
         $user = \core_user::get_user_by_username('admin');
-        $tour = tour::instance($tourdata->id);
         $tour->mark_user_completed();
         provider::export_user_preferences($user->id);
 
@@ -96,11 +103,9 @@ class tool_usertours_privacy_testcase extends \core_privacy\tests\provider_testc
         $this->resetAfterTest();
         $this->setAdminUser();
 
-        $alltours = $DB->get_records('tool_usertours_tours');
-        $tourdata = reset($alltours);
+        $tour = $this->create_test_tour();
 
         $user = \core_user::get_user_by_username('admin');
-        $tour = tour::instance($tourdata->id);
         $tour->mark_user_completed();
         $tour->request_user_reset();
         provider::export_user_preferences($user->id);
@@ -122,14 +127,15 @@ class tool_usertours_privacy_testcase extends \core_privacy\tests\provider_testc
         $this->resetAfterTest();
         $this->setAdminUser();
 
+        $tour1 = $this->create_test_tour();
+        $tour2 = $this->create_test_tour();
+
         $user = \core_user::get_user_by_username('admin');
 
         $alltours = $DB->get_records('tool_usertours_tours');
 
-        $tour1 = tour::instance(array_shift($alltours)->id);
         $tour1->mark_user_completed();
 
-        $tour2 = tour::instance(array_shift($alltours)->id);
         $tour2->mark_user_completed();
         $tour2->remove();
 
diff --git a/admin/tool/usertours/tours/.empty b/admin/tool/usertours/tours/.empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/admin/tool/usertours/tours/36_dashboard.json b/admin/tool/usertours/tours/36_dashboard.json
deleted file mode 100644 (file)
index e755805..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Dashboard","description":"New dashboard features","pathmatch":"\/my\/%","enabled":"1","sortorder":"3","configdata":"{\"placement\":\"top\",\"orphan\":\"0\",\"backdrop\":\"0\",\"reflex\":\"0\",\"filtervalues\":{\"category\":[],\"course\":[\"0\"],\"courseformat\":[],\"role\":[],\"theme\":[]},\"majorupdatetime\":1543396938}","version":"2018051400","steps":[{"title":"tour3_title_dashboard,tool_usertours","content":"tour3_content_dashboard,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{\"backdrop\":\"1\"}"},{"title":"tour3_title_dashboard,tool_usertours","content":"tour3_content_timeline,tool_usertours","targettype":"1","targetvalue":"timeline","sortorder":"1","configdata":"{\"reflex\":\"0\"}"},{"title":"tour3_title_recentcourses,tool_usertours","content":"tour3_content_recentcourses,tool_usertours","targettype":"1","targetvalue":"recentlyaccessedcourses","sortorder":"2","configdata":"{\"placement\":\"top\",\"backdrop\":\"1\"}"},{"title":"tour3_title_overview,tool_usertours","content":"tour3_content_overview,tool_usertours","targettype":"1","targetvalue":"myoverview","sortorder":"3","configdata":"{}"},{"title":"tour3_title_starring,tool_usertours","content":"tour3_content_starring,tool_usertours","targettype":"0","targetvalue":".block-myoverview [data-display=\"cards\"] [data-region=\"course-content\"] .coursemenubtn","sortorder":"4","configdata":"{\"placement\":\"right\"}"},{"title":"tour3_title_starring,tool_usertours","content":"tour3_content_starring,tool_usertours","targettype":"0","targetvalue":".block-myoverview [data-display]:not([data-display=\"cards\"]) [data-region=\"course-content\"] .coursemenubtn","sortorder":"5","configdata":"{}"},{"title":"tour3_title_displayoptions,tool_usertours","content":"tour3_content_displayoptions,tool_usertours","targettype":"0","targetvalue":"#sortingdropdown","sortorder":"6","configdata":"{\"placement\":\"top\"}"},{"title":"tour_final_step_title,tool_usertours","content":"tour_final_step_content,tool_usertours","targettype":"2","targetvalue":"","sortorder":"7","configdata":"{}"}]}
diff --git a/admin/tool/usertours/tours/36_messaging.json b/admin/tool/usertours/tours/36_messaging.json
deleted file mode 100644 (file)
index 52c8108..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"New Messaging System","description":"New messaging interface in Moodle 3.6","pathmatch":"\/course\/view.php%","enabled":"1","sortorder":"2","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"0\",\"reflex\":\"0\",\"filtervalues\":{\"category\":[],\"course\":[\"0\"],\"courseformat\":[],\"role\":[],\"theme\":[]},\"majorupdatetime\":1543468823}","version":"2018051400","steps":[{"title":"tour4_title_messaging,tool_usertours","content":"tour4_content_messaging,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{\"backdrop\":\"1\"}"},{"title":"tour4_title_icon,tool_usertours","content":"tour4_content_icon,tool_usertours","targettype":"0","targetvalue":"[id^=message-drawer-toggle]","sortorder":"1","configdata":"{\"backdrop\":\"0\",\"reflex\":\"1\"}"},{"title":"tour4_title_groupconvo,tool_usertours","content":"tour4_content_groupconvo,tool_usertours","targettype":"0","targetvalue":".message-drawer:not(.hidden) [data-region=\"view-overview-group-messages\"]","sortorder":"2","configdata":"{\"placement\":\"left\"}"},{"title":"tour4_title_starred,tool_usertours","content":"tour4_content_starred,tool_usertours","targettype":"0","targetvalue":".message-drawer:not(.hidden) [data-region=\"view-overview-favourites\"]","sortorder":"3","configdata":"{\"placement\":\"left\"}"},{"title":"tour4_title_settings,tool_usertours","content":"tour4_content_settings,tool_usertours","targettype":"0","targetvalue":".message-drawer:not(.hidden) [data-route=\"view-settings\"]","sortorder":"4","configdata":"{\"reflex\":\"1\"}"},{"title":"tour_final_step_title,tool_usertours","content":"tour_final_step_content,tool_usertours","targettype":"2","targetvalue":"","sortorder":"5","configdata":"{}"}]}
diff --git a/admin/tool/usertours/tours/boost_administrator.json b/admin/tool/usertours/tours/boost_administrator.json
deleted file mode 100644 (file)
index 5f2ac1d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-{"name":"Boost - administrator","description":"A tour of some new features in the Boost theme, for administrators","pathmatch":"FRONTPAGE","enabled":"1","sortorder":"0","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"role\":[\"-1\"],\"theme\":[\"boost\"]},\"majorupdatetime\":1479366244,\"default_tour\":true,\"filename\":\"boost_administrator.json\",\"version\":1}","version":"2016102001","steps":[{"title":"tour1_title_welcome,tool_usertours","content":"tour1_content_welcome,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{}"},{"title":"tour1_title_navigation,tool_usertours","content":"tour1_content_navigation,tool_usertours","targettype":"0","targetvalue":"[data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"1","configdata":"{}"},{"title":"tour1_title_customisation,tool_usertours","content":"tour1_content_customisation,tool_usertours","targettype":"0","targetvalue":"body:not(.editing) #page-header .card-block","sortorder":"2","configdata":"{\"placement\":\"bottom\"}"},{"title":"tour1_title_blockregion,tool_usertours","content":"tour1_content_blockregion,tool_usertours","targettype":"0","targetvalue":"body.editing [data-region=\"blocks-column\"]","sortorder":"3","configdata":"{}"},{"title":"tour1_title_addingblocks,tool_usertours","content":"tour1_content_addingblocks,tool_usertours","targettype":"0","targetvalue":"body.editing [data-region=\"blocks-column\"]","sortorder":"4","configdata":"{\"placement\":\"bottom\"}"},{"title":"tour1_title_end,tool_usertours","content":"tour1_content_end,tool_usertours","targettype":"2","targetvalue":"","sortorder":"5","configdata":"{}"}]}
-
diff --git a/admin/tool/usertours/tours/boost_course_view.json b/admin/tool/usertours/tours/boost_course_view.json
deleted file mode 100644 (file)
index 4bc91f0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Boost - course view","description":"A tour for introducing administrators and teachers to courses in the Boost theme","pathmatch":"\/course\/view.php%","enabled":"1","sortorder":"1","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"role\":[\"-1\",\"editingteacher\"],\"theme\":[\"boost\"]},\"majorupdatetime\":1480050104,\"shipped_tour\":true,\"shipped_filename\":\"boost_course_view.json\",\"shipped_version\":1}","version":"2016120501","steps":[{"title":"tour2_title_welcome,tool_usertours","content":"tour2_content_welcome,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{}"},{"title":"tour2_title_customisation,tool_usertours","content":"tour2_content_customisation,tool_usertours","targettype":"0","targetvalue":"body:not(.editing) #page-header .card-block","sortorder":"1","configdata":"{}"},{"title":"tour2_title_navigation,tool_usertours","content":"tour2_content_navigation,tool_usertours","targettype":"0","targetvalue":"[data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"2","configdata":"{}"},{"title":"tour2_title_opendrawer,tool_usertours","content":"tour2_content_opendrawer,tool_usertours","targettype":"0","targetvalue":"body:not(.drawer-open-left) [data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"3","configdata":"{}"},{"title":"tour2_title_participants,tool_usertours","content":"tour2_content_participants,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left [data-region=\"drawer\"] [data-key=\"participants\"]","sortorder":"4","configdata":"{\"placement\":\"bottom\",\"backdrop\":\"0\"}"},{"title":"tour2_title_addblock,tool_usertours","content":"tour2_content_addblock,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left:not(.editing) [data-region=\"drawer\"]","sortorder":"5","configdata":"{\"placement\":\"right\",\"orphan\":\"0\",\"backdrop\":\"0\",\"reflex\":\"0\"}"},{"title":"tour2_title_addingblocks,tool_usertours","content":"tour2_content_addingblocks,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left.editing [data-region=\"drawer\"] [data-key=\"addblock\"]","sortorder":"6","configdata":"{\"backdrop\":\"0\",\"placement\":\"top\"}"},{"title":"tour2_title_end,tool_usertours","content":"tour2_content_end,tool_usertours","targettype":"2","targetvalue":"","sortorder":"7","configdata":"{}"}]}
index aa140f9..c477167 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020031900;            // The current module version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;            // Requires this Moodle version.
+$plugin->version   = 2020061501;            // The current module version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;            // Requires this Moodle version.
 $plugin->component = 'tool_usertours';      // Full name of the plugin (used for diagnostics).
index 124c29e..c96d978 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200; // Requires this Moodle version
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900; // Requires this Moodle version
 $plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
 
index 1fc16d2..4699c55 100644 (file)
@@ -26,8 +26,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_cas';        // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('auth_ldap' => 2019111200);
+$plugin->dependencies = array('auth_ldap' => 2020060900);
index ae766d4..a6896eb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_db';         // Full name of the plugin (used for diagnostics)
index 13624a0..aa0fb66 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_email';      // Full name of the plugin (used for diagnostics)
index d16b0ae..61e1f53 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_ldap';       // Full name of the plugin (used for diagnostics)
index 27494f8..387670a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'auth_lti'; // Full name of the plugin (used for diagnostics).
index 6c56a08..896f866 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_manual';     // Full name of the plugin (used for diagnostics)
index 1c5e7b8..c579967 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_mnet';       // Full name of the plugin (used for diagnostics)
index 8a6a918..249d99b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_nologin';    // Full name of the plugin (used for diagnostics)
index 4dea016..5520d23 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111801;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_none';       // Full name of the plugin (used for diagnostics)
index 57d863d..22fe0b6 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;        // Requires this Moodle version.
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
 $plugin->component = 'auth_oauth2';       // Full name of the plugin (used for diagnostics).
index e562e90..9898bc0 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_shibboleth'; // Full name of the plugin (used for diagnostics)
index 762c0d4..b880c4b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'auth_webservice'; // Full name of the plugin (used for diagnostics)
index 4e1a55f..6883cc9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2020032600;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_completion';
index ff76c48..e682886 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_date';
index 6fb713f..9acc029 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_grade';
index 7a2a63a..4701076 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_group';
index e53c39a..6efb1ad 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_grouping';
index 1ede4b2..1eedfc8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'availability_profile';
index 034c1bf..a80f303 100644 (file)
@@ -156,7 +156,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 = 2019111800;
+    const VERSION = 2020061500;
     /**
      * Usually same than major release zero version, mainly for informative/historic purposes.
      */
index ae63fd6..74beadd 100644 (file)
@@ -80,6 +80,14 @@ if ($action == 'edit') {
     echo $output->heading(get_string('managebackpacks', 'badges'));
 
     $form->display();
+} else if ($action == 'test') {
+    // If no backpack has been selected, there isn't anything to test.
+    if (empty($id)) {
+        redirect($url);
+    }
+
+    echo $OUTPUT->header();
+    echo $output->render_test_backpack_result($id);
 } else {
     echo $OUTPUT->header();
     echo $output->heading(get_string('managebackpacks', 'badges'));
index f9258b3..28da925 100644 (file)
@@ -72,11 +72,11 @@ class external_backpacks_page implements \renderable {
             } else {
                 $backpack->canedit = false;
             }
+            $backpack->cantest = ($backpack->apiversion == OPEN_BADGES_V2);
             $backpack->iscurrent = ($backpack->id == $CFG->badges_site_backpack);
 
             $data->backpacks[] = $backpack;
         }
-        $data->warning = badges_verify_site_backpack();
 
         return $data;
     }
index 2f7bad8..f268bd7 100644 (file)
@@ -1368,4 +1368,35 @@ class core_badges_renderer extends plugin_renderer_base {
         $data = $page->export_for_template($this);
         return parent::render_from_template('core_badges/external_backpacks_page', $data);
     }
+
+    /**
+     * Get the result of a backpack validation with its settings. It returns:
+     * - A informative message if the backpack version is different from OBv2.
+     * - A warning with the error if it's not possible to connect to this backpack.
+     * - A successful message if the connection has worked.
+     *
+     * @param  int    $backpackid The backpack identifier.
+     * @return string A message with the validation result.
+     */
+    public function render_test_backpack_result(int $backpackid): string {
+        // Get the backpack.
+        $backpack = badges_get_site_backpack($backpackid);
+
+        // Add the header to the result.
+        $result = $this->heading(get_string('testbackpack', 'badges', $backpack->backpackweburl));
+
+        if ($backpack->apiversion != OPEN_BADGES_V2) {
+            // Only OBv2 supports this validation.
+            $result .= get_string('backpackconnectionnottested', 'badges');
+        } else {
+            $message = badges_verify_backpack($backpackid);
+            if (empty($message)) {
+                $result .= get_string('backpackconnectionok', 'badges');
+            } else {
+                $result .= $message;
+            }
+        }
+
+        return $result;
+    }
 }
index aab0f2f..0f9df01 100644 (file)
@@ -25,9 +25,8 @@
     Example context (json):
     {
         "backpacks": [
-            {"backpackweburl": "http://localhost/", "sitebackpack": true, "canedit": false}
-        ],
-        "warning": "<span class='text-warning'>Could not login</span>"
+            {"backpackweburl": "http://localhost/", "sitebackpack": true, "canedit": false, "cantest": true}
+        ]
     }
 }}
 
                     {{#pix}}t/delete, core,{{#str}}delete{{/str}}{{/pix}}
                 </a>
             {{/iscurrent}}
+            {{#cantest}}
+                <a href="{{baseurl}}?id={{id}}&action=test">{{#pix}}t/check, core,{{#str}}testsettings, core_badges{{/str}}{{/pix}}</a>
+            {{/cantest}}
             </td>
         </tr>
         {{/backpacks}}
     </tbody>
-</table>
-{{{warning}}}
+</table>
\ No newline at end of file
index b2eac0b..071cfc2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_activity_modules'; // Full name of the plugin (used for diagnostics)
index e10881b..65ced1e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;               // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;               // Requires this Moodle version.
+$plugin->version   = 2020061500;               // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;               // Requires this Moodle version.
 $plugin->component = 'block_activity_results'; // Full name of the plugin (used for diagnostics).
\ No newline at end of file
index 87d64b7..de90f7b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_admin_bookmarks'; // Full name of the plugin (used for diagnostics)
index 7291d8d..d41ed7a 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;        // Requires this Moodle version.
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
 $plugin->component = 'block_badges';
index 0efc4f9..af5acfd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_blog_menu'; // Full name of the plugin (used for diagnostics)
index 9c09ae7..4fb1a60 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_blog_recent'; // Full name of the plugin (used for diagnostics)
index 2a5bdc4..c6f68da 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_blog_tags'; // Full name of the plugin (used for diagnostics)
index 0442430..46885f1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)
index acf9f84..7a91fe7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)
index c3c58ff..180b568 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_comments'; // Full name of the plugin (used for diagnostics)
index d00508e..29487d8 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version      = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires     = 2019111200; // Requires this Moodle version.
+$plugin->version      = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires     = 2020060900; // Requires this Moodle version.
 $plugin->component    = 'block_completionstatus';
-$plugin->dependencies = array('report_completion' => 2019111200);
+$plugin->dependencies = array('report_completion' => 2020060900);
index b794775..81a8ade 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_course_list'; // Full name of the plugin (used for diagnostics)
index 11ef527..ddf8b7b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_course_summary'; // Full name of the plugin (used for diagnostics)
index f9e9438..3e137af 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_feedback';  // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_feedback' => 2019111200);
+$plugin->dependencies = array('mod_feedback' => 2020060900);
index 7951a96..89324c8 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'block_globalsearch';
index 803f2ea..cb2cb33 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_glossary_random'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_glossary' => 2019111200);
+$plugin->dependencies = array('mod_glossary' => 2020060900);
index 46a8d71..2a5aa61 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_html';      // Full name of the plugin (used for diagnostics)
index 7b0315b..1054144 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_login';     // Full name of the plugin (used for diagnostics)
index 6489d37..f03ab7c 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'block_lp';
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index 0eb0e65..7849e00 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_mentees';   // Full name of the plugin (used for diagnostics)
index 3492cc3..55c1106 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_mnet_hosts'; // Full name of the plugin (used for diagnostics)
index e75d2cf..2769409 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111801;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;         // Requires this Moodle version.
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;         // Requires this Moodle version.
 $plugin->component = 'block_myoverview'; // Full name of the plugin (used for diagnostics).
index 65e9161..e7b6704 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_myprofile'; // Full name of the plugin (used for diagnostics)
index 6631b28..952772f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_navigation'; // Full name of the plugin (used for diagnostics)
index 1685620..9d60765 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;         // Requires this Moodle version
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;         // Requires this Moodle version
 $plugin->component = 'block_news_items'; // Full name of the plugin (used for diagnostics)
-$plugin->dependencies = array('mod_forum' => 2019111200);
+$plugin->dependencies = array('mod_forum' => 2020060900);
index 4a03498..977c08b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_online_users'; // Full name of the plugin (used for diagnostics)
index 6514a4d..9becb97 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_private_files'; // Full name of the plugin (used for diagnostics)
index a525cd0..1c3ab26 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_quiz_results'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_quiz' => 2019111200);
+$plugin->dependencies = array('mod_quiz' => 2020060900);
index 9744d6b..268625a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_recent_activity'; // Full name of the plugin (used for diagnostics)
index cabcf37..64701ba 100644 (file)
@@ -22,6 +22,6 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;            // Requires this Moodle version.
+$plugin->version   = 2020061500;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;            // Requires this Moodle version.
 $plugin->component = 'block_recentlyaccessedcourses'; // Full name of the plugin (used for diagnostics).
index 87b78a9..cceeb66 100644 (file)
@@ -22,6 +22,6 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;            // Requires this Moodle version.
+$plugin->version   = 2020061500;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;            // Requires this Moodle version.
 $plugin->component = 'block_recentlyaccesseditems'; // Full name of the plugin (used for diagnostics).
index f90483c..bc034a6 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_rss_client'; // Full name of the plugin (used for diagnostics)
index 7aa1f2d..2f9685c 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_search_forums'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_forum' => 2019111200);
+$plugin->dependencies = array('mod_forum' => 2020060900);
index 1a93d96..084fbd0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_section_links'; // Full name of the plugin (used for diagnostics)
index 28dd98c..17f539a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_selfcompletion'; // Full name of the plugin (used for diagnostics)
index a4c50af..25f1487 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_settings';  // Full name of the plugin (used for diagnostics)
index 4794873..fa01048 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_site_main_menu'; // Full name of the plugin (used for diagnostics)
index 8da7f01..1e4079d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_social_activities'; // Full name of the plugin (used for diagnostics)
index e321574..70c9230 100644 (file)
@@ -23,6 +23,6 @@
  */
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires  = 2020060900;
 $plugin->component = 'block_starredcourses';
\ No newline at end of file
index 661835e..7c091ab 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_tag_flickr'; // Full name of the plugin (used for diagnostics)
index b2c43fb..ad0c955 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_tag_youtube'; // Full name of the plugin (used for diagnostics)
index 8c0adc2..f255d84 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'block_tags';      // Full name of the plugin (used for diagnostics)
index 497eae5..dc188ab 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;         // Requires this Moodle version.
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;         // Requires this Moodle version.
 $plugin->component = 'block_timeline'; // Full name of the plugin (used for diagnostics).
index 6236cb0..2b86132 100644 (file)
@@ -2097,7 +2097,7 @@ class cache_session extends cache {
         }
         $successfullyset = $this->get_store()->set_many($data);
         if ($this->perfdebug && $successfullyset) {
-            cache_helper::record_cache_set($this->store, $this->get_definition(), $successfullyset);
+            cache_helper::record_cache_set($this->get_store(), $this->get_definition(), $successfullyset);
         }
         return $successfullyset;
     }
index 777dfff..e4023f9 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'cachelock_file';  // Full name of the plugin (used for diagnostics)
index 465179f..dff2b21 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019111800;
-$plugin->requires = 2019111200;
+$plugin->version = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->maturity = MATURITY_STABLE;
 $plugin->component = 'cachestore_apcu';
index 73b2b8b..0233c76 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019111800;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2019111200;    // Requires this Moodle version.
+$plugin->version = 2020061500;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2020060900;    // Requires this Moodle version.
 $plugin->component = 'cachestore_file';  // Full name of the plugin.
\ No newline at end of file
index a841414..8c8786b 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019111800;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;    // Requires this Moodle version.
+$plugin->version   = 2020061500;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;    // Requires this Moodle version.
 $plugin->component = 'cachestore_memcached';  // Full name of the plugin.
\ No newline at end of file
index b0d3556..0849468 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019111800;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;    // Requires this Moodle version.
+$plugin->version   = 2020061500;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;    // Requires this Moodle version.
 $plugin->component = 'cachestore_mongodb';  // Full name of the plugin.
\ No newline at end of file
index 92ea9f9..5ef450e 100644 (file)
@@ -24,8 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version    = 2019111800;
-$plugin->requires   = 2019111200; // Requires this Moodle version.
+$plugin->version    = 2020061500;
+$plugin->requires   = 2020060900; // Requires this Moodle version.
 $plugin->maturity   = MATURITY_STABLE;
 $plugin->component  = 'cachestore_redis';
-$plugin->release    = '3.0.4 (Build: 20160509)';
index 4709642..7e3eee5 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2019111800;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires = 2019111200;    // Requires this Moodle version.
+$plugin->version = 2020061500;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires = 2020060900;    // Requires this Moodle version.
 $plugin->component = 'cachestore_session';  // Full name of the plugin.
\ No newline at end of file
index 9f71f5d..6ee5dcd 100644 (file)
@@ -27,6 +27,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2019111800;    // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;    // Requires this Moodle version.
+$plugin->version   = 2020061500;    // The current module version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;    // Requires this Moodle version.
 $plugin->component = 'cachestore_static';  // Full name of the plugin.
\ No newline at end of file
index 0e6b203..a23672e 100644 (file)
@@ -2194,6 +2194,34 @@ class core_cache_testcase extends advanced_testcase {
                              $startstats[$requestid]['stores']['default_request']['hits']);
         $this->assertEquals(0, $endstats[$requestid]['stores']['default_request']['sets'] -
                              $startstats[$requestid]['stores']['default_request']['sets']);
+
+        $startstats = cache_helper::get_stats();
+
+        // Check that stores register through set_many.
+        $this->assertEquals(2, $application->set_many(['setMe1' => 1, 'setMe2' => 2]));
+        $this->assertEquals(3, $session->set_many(['setMe1' => 1, 'setMe2' => 2, 'setMe3' => 3]));
+        $this->assertEquals(4, $request->set_many(['setMe1' => 1, 'setMe2' => 2, 'setMe3' => 3, 'setMe4' => 4]));
+
+        $endstats = cache_helper::get_stats();
+
+        $this->assertEquals(0, $endstats[$applicationid]['stores']['default_application']['misses'] -
+            $startstats[$applicationid]['stores']['default_application']['misses']);
+        $this->assertEquals(0, $endstats[$applicationid]['stores']['default_application']['hits'] -
+            $startstats[$applicationid]['stores']['default_application']['hits']);
+        $this->assertEquals(2, $endstats[$applicationid]['stores']['default_application']['sets'] -
+            $startstats[$applicationid]['stores']['default_application']['sets']);
+        $this->assertEquals(0, $endstats[$sessionid]['stores']['default_session']['misses'] -
+            $startstats[$sessionid]['stores']['default_session']['misses']);
+        $this->assertEquals(0, $endstats[$sessionid]['stores']['default_session']['hits'] -
+            $startstats[$sessionid]['stores']['default_session']['hits']);
+        $this->assertEquals(3, $endstats[$sessionid]['stores']['default_session']['sets'] -
+            $startstats[$sessionid]['stores']['default_session']['sets']);
+        $this->assertEquals(0, $endstats[$requestid]['stores']['default_request']['misses'] -
+            $startstats[$requestid]['stores']['default_request']['misses']);
+        $this->assertEquals(0, $endstats[$requestid]['stores']['default_request']['hits'] -
+            $startstats[$requestid]['stores']['default_request']['hits']);
+        $this->assertEquals(4, $endstats[$requestid]['stores']['default_request']['sets'] -
+            $startstats[$requestid]['stores']['default_request']['sets']);
     }
 
     public function test_static_cache() {
index de0cdf3..b5e1e47 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200; // Requires this Moodle version.
+$plugin->version   = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900; // Requires this Moodle version.
 $plugin->component = 'calendartype_gregorian'; // Full name of the plugin (used for diagnostics).
index fe0e68b..0841770 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020051500.01;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2020041500.00;         // Requires this Moodle version
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;         // Requires this Moodle version
 $plugin->component = 'contenttype_h5p'; // Full name of the plugin (used for diagnostics).
index ecd4c40..b3c9e95 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;              // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;              // Requires this Moodle version
+$plugin->version   = 2020061500;              // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;              // Requires this Moodle version
 $plugin->component = 'format_singleactivity'; // Full name of the plugin (used for diagnostics)
index 41c9bcd..4664d46 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'format_social';   // Full name of the plugin (used for diagnostics)
index 5e3f288..199e150 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;        // Requires this Moodle version.
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
 $plugin->component = 'format_topics';    // Full name of the plugin (used for diagnostics).
index 216611b..d2d98a7 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2019111200;        // Requires this Moodle version.
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
 $plugin->component = 'format_weeks';    // Full name of the plugin (used for diagnostics).
index 6ad37f1..aacdf54 100644 (file)
@@ -51,15 +51,15 @@ class caching_content_item_readonly_repository_testcase extends \advanced_testca
         // Get the content items using both the live and the caching repos.
         $items = $cir->find_all_for_course($course, $user);
         $cacheditems = $ccir->find_all_for_course($course, $user);
-        $itemsfiltered = array_filter($items, function($item) {
-            return $item->get_component_name() == 'mod_assign';
-        });
-        $cacheditemsfiltered = array_filter($cacheditems, function($item) {
-            return $item->get_component_name() == 'mod_assign';
-        });
+        $itemsfiltered = array_values(array_filter($items, function($item) {
+            return $item->get_component_name() == 'mod_book';
+        }));
+        $cacheditemsfiltered = array_values(array_filter($cacheditems, function($item) {
+            return $item->get_component_name() == 'mod_book';
+        }));
 
-        // Verify the assign module is in both result sets.
-        $module = $DB->get_record('modules', ['name' => 'assign']);
+        // Verify the book module is in both result sets.
+        $module = $DB->get_record('modules', ['name' => 'book']);
         $this->assertEquals($module->name, $itemsfiltered[0]->get_name());
         $this->assertEquals($module->name, $cacheditemsfiltered[0]->get_name());
 
@@ -67,12 +67,12 @@ class caching_content_item_readonly_repository_testcase extends \advanced_testca
         $DB->set_field("modules", "visible", "0", ["id" => $module->id]);
         $items = $cir->find_all_for_course($course, $user);
         $cacheditems = $ccir->find_all_for_course($course, $user);
-        $itemsfiltered = array_filter($items, function($item) {
-            return $item->get_component_name() == 'mod_assign';
-        });
-        $cacheditemsfiltered = array_filter($cacheditems, function($item) {
-            return $item->get_component_name() == 'mod_assign';
-        });
+        $itemsfiltered = array_values(array_filter($items, function($item) {
+            return $item->get_component_name() == 'mod_book';
+        }));
+        $cacheditemsfiltered = array_values(array_filter($cacheditems, function($item) {
+            return $item->get_component_name() == 'mod_book';
+        }));
 
         // The caching repo should return the same list, while the live repo will return the updated list.
         $this->assertEquals($module->name, $cacheditemsfiltered[0]->get_name());
index 0205e44..ed8b3e0 100644 (file)
@@ -24,5 +24,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_checkbox';
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
index 30b4b2b..b35a593 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_date';
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
 
index bbf13b0..d7343e2 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_select';
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
index f5ed72f..1de921b 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_text';
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
index 7884806..8906754 100644 (file)
@@ -25,5 +25,5 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component = 'customfield_textarea';
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;
index d601973..88a14bf 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_csv';
 
index dce6768..08de6ed 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_excel';
 
index 83b4d48..776d568 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_html';
index 58d6409..07119d4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_json';
index f9e1d46..c95af29 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_ods';
 
index dfe72a8..ef545bb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;
-$plugin->requires  = 2019111200;  // Requires this Moodle version.
+$plugin->version   = 2020061500;
+$plugin->requires  = 2020060900;  // Requires this Moodle version.
 $plugin->component = 'dataformat_pdf';
index 4891765..caee08d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_category';  // Full name of the plugin (used for diagnostics)
index 91462f0..923d7ef 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_cohort';    // Full name of the plugin (used for diagnostics)
index a262064..eb23888 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_database';  // Full name of the plugin (used for diagnostics)
index 3ecc435..14cd470 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDRR)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDRR)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_flatfile';  // Full name of the plugin (used for diagnostics)
index ff777a7..325aa33 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_guest';     // Full name of the plugin (used for diagnostics)
index ca293db..37250de 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version.
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
 $plugin->component = 'enrol_imsenterprise';
index 0e97a42..f184040 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_ldap';      // Full name of the plugin (used for diagnostics)
index 65e791a..be99222 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019111800; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2019111200; // Requires this Moodle version.
+$plugin->version = 2020061500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2020060900; // Requires this Moodle version.
 $plugin->component = 'enrol_lti'; // Full name of the plugin (used for diagnostics).
index a451f2b..02411ec 100644 (file)
Binary files a/enrol/manual/amd/build/quickenrolment.min.js and b/enrol/manual/amd/build/quickenrolment.min.js differ
index 7561852..d587cfe 100644 (file)
Binary files a/enrol/manual/amd/build/quickenrolment.min.js.map and b/enrol/manual/amd/build/quickenrolment.min.js.map differ
index ee67d3c..1034c2b 100644 (file)
@@ -29,6 +29,7 @@ import ModalEvents from 'core/modal_events';
 import ModalFactory from 'core/modal_factory';
 import Notification from 'core/notification';
 import jQuery from 'jquery';
+import Pending from 'core/pending';
 import Prefetch from 'core/prefetch';
 
 const Selectors = {
@@ -85,6 +86,8 @@ const registerEventListeners = contextId => {
  * @returns {Promise}
  */
 const showModal = (dynamicTable, contextId) => {
+    const pendingPromise = new Pending('enrol_manual/quickenrolment:showModal');
+
     return ModalFactory.create({
         type: ModalFactory.types.SAVE_CANCEL,
         large: true,
@@ -130,6 +133,8 @@ const showModal = (dynamicTable, contextId) => {
         })
         .catch();
 
+        pendingPromise.resolve();
+
         return modal;
     })
     .catch(Notification.exception);
index 9e9a611..25a1db0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_manual';    // Full name of the plugin (used for diagnostics)
index ff130c7..59edfd9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_meta';      // Full name of the plugin (used for diagnostics)
index 67be192..eb19f0a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_mnet';      // Full name of the plugin (used for diagnostics)
index 1dd7834..7ab67c7 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_paypal';    // Full name of the plugin (used for diagnostics)
index dae54c1..2063b3f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'enrol_self';      // Full name of the plugin (used for diagnostics)
index c5a10ee..c94fb63 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;         // Requires this Moodle version
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;         // Requires this Moodle version
 $plugin->component = 'fileconverter_googledrive'; // Full name of the plugin (used for diagnostics).
index 7a3d98a..b1a4914 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;         // Requires this Moodle version
+$plugin->version   = 2020061500;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;         // Requires this Moodle version
 $plugin->component = 'fileconverter_unoconv'; // Full name of the plugin (used for diagnostics).
index f937331..71c9fd9 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_activitynames'; // Full name of the plugin (used for diagnostics)
index 5333898..f97e2c3 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_algebra';  // Full name of the plugin (used for diagnostics)
index fec8087..057acc6 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_censor';   // Full name of the plugin (used for diagnostics)
index 2dddd51..be053ad 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2019111800;
-$plugin->requires = 2019111200;  // Requires this Moodle version.
+$plugin->version  = 2020061500;
+$plugin->requires = 2020060900;  // Requires this Moodle version.
 $plugin->component= 'filter_data';
 
-$plugin->dependencies = array('mod_data' => 2019111200);
+$plugin->dependencies = array('mod_data' => 2020060900);
index e936737..db8431e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version  = 2020031700;
-$plugin->requires = 2019111200;
+$plugin->version  = 2020061500;
+$plugin->requires = 2020060900;
 $plugin->component = 'filter_displayh5p';
index fd067f1..86f55e4 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_emailprotect'; // Full name of the plugin (used for diagnostics)
index cc4b67d..92d7cc7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_emoticon'; // Full name of the plugin (used for diagnostics)
index 4f788a1..2d6d4b0 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2019111800;
-$plugin->requires = 2019111200;  // Requires this Moodle version.
+$plugin->version  = 2020061500;
+$plugin->requires = 2020060900;  // Requires this Moodle version.
 $plugin->component= 'filter_glossary';
 
-$plugin->dependencies = array('mod_glossary' => 2019111200);
+$plugin->dependencies = array('mod_glossary' => 2020060900);
index 774eac9..c81032b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2020050401;
-$plugin->requires = 2019111200;  // Requires this Moodle version.
+$plugin->version  = 2020061500;
+$plugin->requires = 2020060900;  // Requires this Moodle version.
 $plugin->component= 'filter_mathjaxloader';
index c000a5c..5461874 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_mediaplugin'; // Full name of the plugin (used for diagnostics)
index 624b3ad..7c0dfee 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_multilang'; // Full name of the plugin (used for diagnostics)
index 67ce940..27046e8 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_tex';      // Full name of the plugin (used for diagnostics)
index 673a3ce..5831a04 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_tidy';     // Full name of the plugin (used for diagnostics)
index 7ced1c3..5336427 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2020051200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'filter_urltolink'; // Full name of the plugin (used for diagnostics)
index c4db272..f5c2aa3 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Requires this Moodle version
+$plugin->version   = 2020061500;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2020060900;        // Requires this Moodle version
 $plugin->component = 'gradeexport_ods'; // Full name of the plugin (used for diagnostics)
index 804193e..6332252 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2019111800;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2019111200;        // Req