Merge branch 'MDL-64283-master' of git://github.com/damyon/moodle
authorJun Pataleta <jun@moodle.com>
Thu, 6 Dec 2018 06:58:01 +0000 (14:58 +0800)
committerJun Pataleta <jun@moodle.com>
Thu, 6 Dec 2018 06:58:01 +0000 (14:58 +0800)
712 files changed:
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/db/upgrade.php
admin/tool/customlang/version.php
admin/tool/dataprivacy/classes/api.php
admin/tool/dataprivacy/classes/task/process_data_request_task.php
admin/tool/dataprivacy/datarequests.php
admin/tool/dataprivacy/db/upgrade.php
admin/tool/dataprivacy/lang/en/tool_dataprivacy.php
admin/tool/dataprivacy/tests/api_test.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/log/db/upgrade.php
admin/tool/log/store/database/db/upgrade.php
admin/tool/log/store/database/version.php
admin/tool/log/store/legacy/version.php
admin/tool/log/store/standard/db/upgrade.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/db/upgrade.php
admin/tool/monitor/version.php
admin/tool/multilangupgrade/version.php
admin/tool/oauth2/version.php
admin/tool/phpunit/version.php
admin/tool/policy/db/upgrade.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/lang/en/tool_usertours.php
admin/tool/usertours/tours/36_dashboard.json [new file with mode: 0644]
admin/tool/usertours/tours/36_messaging.json [new file with mode: 0644]
admin/tool/usertours/version.php
admin/tool/xmldb/version.php
auth/cas/db/upgrade.php
auth/cas/version.php
auth/db/db/upgrade.php
auth/db/version.php
auth/email/db/upgrade.php
auth/email/version.php
auth/ldap/db/upgrade.php
auth/ldap/version.php
auth/lti/version.php
auth/manual/db/upgrade.php
auth/manual/version.php
auth/mnet/db/upgrade.php
auth/mnet/version.php
auth/nologin/version.php
auth/none/db/upgrade.php
auth/none/version.php
auth/oauth2/db/upgrade.php
auth/oauth2/version.php
auth/shibboleth/db/upgrade.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
backup/converter/imscc1/lib.php
backup/converter/imscc11/lib.php
backup/util/helper/backup_cron_helper.class.php
blocks/activity_modules/version.php
blocks/activity_results/version.php
blocks/admin_bookmarks/version.php
blocks/badges/db/upgrade.php
blocks/badges/version.php
blocks/blog_menu/version.php
blocks/blog_recent/version.php
blocks/blog_tags/version.php
blocks/calendar_month/db/upgrade.php
blocks/calendar_month/version.php
blocks/calendar_upcoming/db/upgrade.php
blocks/calendar_upcoming/version.php
blocks/comments/version.php
blocks/community/db/upgrade.php
blocks/community/version.php
blocks/completionstatus/db/upgrade.php
blocks/completionstatus/version.php
blocks/course_list/version.php
blocks/course_summary/db/upgrade.php
blocks/course_summary/version.php
blocks/feedback/version.php
blocks/globalsearch/version.php
blocks/glossary_random/version.php
blocks/html/db/upgrade.php
blocks/html/version.php
blocks/login/version.php
blocks/lp/version.php
blocks/mentees/version.php
blocks/mnet_hosts/version.php
blocks/myoverview/lang/en/block_myoverview.php
blocks/myoverview/templates/course-action-menu.mustache
blocks/myoverview/templates/view-cards.mustache
blocks/myoverview/templates/view-list.mustache
blocks/myoverview/templates/view-summary.mustache
blocks/myoverview/tests/behat/block_myoverview_dashboard.feature
blocks/myoverview/version.php
blocks/myprofile/version.php
blocks/navigation/db/upgrade.php
blocks/navigation/version.php
blocks/news_items/version.php
blocks/online_users/version.php
blocks/participants/version.php
blocks/private_files/version.php
blocks/quiz_results/db/upgrade.php
blocks/quiz_results/version.php
blocks/recent_activity/db/upgrade.php
blocks/recent_activity/version.php
blocks/recentlyaccessedcourses/templates/view-cards.mustache
blocks/recentlyaccessedcourses/version.php
blocks/recentlyaccesseditems/classes/helper.php
blocks/recentlyaccesseditems/version.php
blocks/rss_client/db/upgrade.php
blocks/rss_client/version.php
blocks/search_forums/version.php
blocks/section_links/db/upgrade.php
blocks/section_links/version.php
blocks/selfcompletion/db/upgrade.php
blocks/selfcompletion/version.php
blocks/settings/db/upgrade.php
blocks/settings/version.php
blocks/site_main_menu/styles.css
blocks/site_main_menu/version.php
blocks/social_activities/version.php
blocks/starredcourses/templates/view-cards.mustache
blocks/starredcourses/version.php
blocks/tag_flickr/version.php
blocks/tag_youtube/version.php
blocks/tags/version.php
blocks/timeline/amd/build/calendar_events_repository.min.js
blocks/timeline/amd/src/calendar_events_repository.js
blocks/timeline/templates/event-list-item.mustache
blocks/timeline/version.php
cache/locks/file/version.php
cache/stores/apcu/version.php
cache/stores/file/version.php
cache/stores/memcached/version.php
cache/stores/mongodb/version.php
cache/stores/redis/version.php
cache/stores/session/version.php
cache/stores/static/version.php
calendar/classes/local/api.php
calendar/classes/local/event/data_access/event_vault.php
calendar/classes/local/event/data_access/event_vault_interface.php
calendar/classes/local/event/forms/managesubscriptions.php
calendar/externallib.php
calendar/lib.php
calendar/managesubscriptions.php
calendar/tests/event_vault_test.php
calendar/tests/events_test.php
calendar/tests/externallib_test.php
calendar/type/gregorian/version.php
course/classes/external/course_summary_exporter.php
course/format/singleactivity/version.php
course/format/social/version.php
course/format/topics/db/upgrade.php
course/format/topics/version.php
course/format/weeks/db/upgrade.php
course/format/weeks/version.php
course/lib.php
course/renderer.php
course/templates/coursecards.mustache [new file with mode: 0644]
course/templates/favouriteicon.mustache
course/tests/courselib_test.php
dataformat/csv/version.php
dataformat/excel/version.php
dataformat/html/version.php
dataformat/json/version.php
dataformat/ods/version.php
enrol/category/version.php
enrol/cohort/version.php
enrol/database/db/upgrade.php
enrol/database/version.php
enrol/flatfile/db/upgrade.php
enrol/flatfile/version.php
enrol/guest/db/upgrade.php
enrol/guest/version.php
enrol/imsenterprise/db/upgrade.php
enrol/imsenterprise/version.php
enrol/ldap/version.php
enrol/lti/db/upgrade.php
enrol/lti/version.php
enrol/manual/db/upgrade.php
enrol/manual/version.php
enrol/meta/version.php
enrol/mnet/db/upgrade.php
enrol/mnet/version.php
enrol/paypal/db/upgrade.php
enrol/paypal/version.php
enrol/self/db/upgrade.php
enrol/self/version.php
favourites/classes/local/service/user_favourite_service.php
favourites/tests/service_test.php
files/converter/googledrive/version.php
files/converter/unoconv/version.php
filter/activitynames/version.php
filter/algebra/version.php
filter/censor/version.php
filter/data/version.php
filter/emailprotect/version.php
filter/emoticon/version.php
filter/glossary/version.php
filter/mathjaxloader/db/upgrade.php
filter/mathjaxloader/version.php
filter/mediaplugin/db/upgrade.php
filter/mediaplugin/version.php
filter/multilang/version.php
filter/tex/db/upgrade.php
filter/tex/version.php
filter/tidy/version.php
filter/urltolink/version.php
grade/classes/privacy/provider.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/db/upgrade.php
grade/grading/form/guide/version.php
grade/grading/form/rubric/db/upgrade.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/lib.php
grade/report/grader/version.php
grade/report/history/version.php
grade/report/lib.php
grade/report/outcomes/version.php
grade/report/overview/db/upgrade.php
grade/report/overview/version.php
grade/report/singleview/classes/local/screen/screen.php
grade/report/singleview/classes/local/ui/finalgrade.php
grade/report/singleview/tests/behat/bulk_insert_grades.feature
grade/report/singleview/tests/behat/singleview.feature
grade/report/singleview/version.php
grade/report/user/db/upgrade.php
grade/report/user/version.php
grade/tests/privacy_test.php
install/lang/el/install.php
install/lang/is/moodle.php
install/lang/te/error.php
lang/en/admin.php
lang/en/badges.php
lang/en/course.php
lang/en/deprecated.txt
lang/en/favourites.php
lang/en/grades.php
lang/en/message.php
lang/en/moodle.php
lang/en/privacy.php
lib/amd/build/templates.min.js
lib/amd/src/templates.js
lib/antivirus/clamav/db/upgrade.php
lib/antivirus/clamav/version.php
lib/classes/message/manager.php
lib/classes/oauth2/api.php
lib/classes/oauth2/client.php
lib/classes/output/icon_system_fontawesome.php
lib/classes/task/delete_unconfirmed_users_task.php
lib/db/access.php
lib/db/services.php
lib/db/upgrade.php
lib/db/upgradelib.php
lib/editor/atto/db/upgrade.php
lib/editor/atto/plugins/accessibilitychecker/version.php
lib/editor/atto/plugins/accessibilityhelper/version.php
lib/editor/atto/plugins/align/version.php
lib/editor/atto/plugins/backcolor/version.php
lib/editor/atto/plugins/bold/version.php
lib/editor/atto/plugins/charmap/version.php
lib/editor/atto/plugins/clear/version.php
lib/editor/atto/plugins/collapse/version.php
lib/editor/atto/plugins/emoticon/version.php
lib/editor/atto/plugins/equation/db/upgrade.php
lib/editor/atto/plugins/equation/lang/en/atto_equation.php
lib/editor/atto/plugins/equation/version.php
lib/editor/atto/plugins/fontcolor/version.php
lib/editor/atto/plugins/html/version.php
lib/editor/atto/plugins/image/version.php
lib/editor/atto/plugins/indent/version.php
lib/editor/atto/plugins/italic/version.php
lib/editor/atto/plugins/link/version.php
lib/editor/atto/plugins/managefiles/version.php
lib/editor/atto/plugins/media/version.php
lib/editor/atto/plugins/noautolink/version.php
lib/editor/atto/plugins/orderedlist/version.php
lib/editor/atto/plugins/recordrtc/version.php
lib/editor/atto/plugins/rtl/version.php
lib/editor/atto/plugins/strike/version.php
lib/editor/atto/plugins/subscript/version.php
lib/editor/atto/plugins/superscript/version.php
lib/editor/atto/plugins/table/version.php
lib/editor/atto/plugins/title/version.php
lib/editor/atto/plugins/underline/version.php
lib/editor/atto/plugins/undo/version.php
lib/editor/atto/plugins/unorderedlist/version.php
lib/editor/atto/version.php
lib/editor/textarea/version.php
lib/editor/tinymce/db/upgrade.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/db/upgrade.php
lib/editor/tinymce/plugins/spellchecker/version.php
lib/editor/tinymce/plugins/wrap/version.php
lib/editor/tinymce/version.php
lib/grade/grade_grade.php
lib/grade/grade_item.php
lib/grade/grade_object.php
lib/grade/tests/grade_grade_test.php
lib/grade/tests/grade_item_test.php
lib/jabber/XMPP/XMLStream.php
lib/jabber/readme_moodle.txt
lib/mlbackend/php/version.php
lib/mlbackend/python/version.php
lib/outputrenderers.php
lib/tablelib.php
lib/tests/accesslib_test.php
lib/tests/oauth2_test.php
lib/tests/upgradelib_test.php
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/amd/build/message_drawer_view_contacts_section.min.js [deleted file]
message/amd/build/message_drawer_view_contacts_section_contacts.min.js
message/amd/build/message_drawer_view_conversation.min.js
message/amd/build/message_drawer_view_conversation_patcher.min.js
message/amd/build/message_drawer_view_conversation_renderer.min.js
message/amd/build/message_drawer_view_overview.min.js
message/amd/build/message_drawer_view_overview_section.min.js
message/amd/build/message_drawer_view_overview_section_favourites.min.js [deleted file]
message/amd/build/message_drawer_view_overview_section_group_messages.min.js [deleted file]
message/amd/build/message_drawer_view_overview_section_messages.min.js [deleted file]
message/amd/build/message_drawer_view_settings.min.js
message/amd/build/message_repository.min.js
message/amd/src/message_drawer_view_contacts_section.js [deleted file]
message/amd/src/message_drawer_view_contacts_section_contacts.js
message/amd/src/message_drawer_view_conversation.js
message/amd/src/message_drawer_view_conversation_patcher.js
message/amd/src/message_drawer_view_conversation_renderer.js
message/amd/src/message_drawer_view_overview.js
message/amd/src/message_drawer_view_overview_section.js
message/amd/src/message_drawer_view_overview_section_favourites.js [deleted file]
message/amd/src/message_drawer_view_overview_section_group_messages.js [deleted file]
message/amd/src/message_drawer_view_overview_section_messages.js [deleted file]
message/amd/src/message_drawer_view_settings.js
message/amd/src/message_repository.js
message/classes/api.php
message/classes/helper.php
message/externallib.php
message/lib.php
message/output/airnotifier/version.php
message/output/email/db/upgrade.php
message/output/email/version.php
message/output/jabber/db/upgrade.php
message/output/jabber/version.php
message/output/popup/db/upgrade.php
message/output/popup/version.php
message/templates/message_drawer_contacts_list.mustache
message/templates/message_drawer_conversations_list.mustache
message/templates/message_drawer_conversations_list_items_placeholder.mustache [moved from message/templates/message_drawer_conversations_list_item_placeholder.mustache with 60% similarity]
message/templates/message_drawer_lazy_load_list.mustache
message/templates/message_drawer_messages_list.mustache
message/templates/message_drawer_non_contacts_list.mustache
message/templates/message_drawer_view_contacts_body.mustache
message/templates/message_drawer_view_contacts_body_section_contacts.mustache
message/templates/message_drawer_view_contacts_body_section_requests.mustache
message/templates/message_drawer_view_conversation_body_message.mustache
message/templates/message_drawer_view_conversation_body_messages.mustache
message/templates/message_drawer_view_conversation_footer_edit_mode.mustache
message/templates/message_drawer_view_conversation_header.mustache
message/templates/message_drawer_view_conversation_header_content_type_private.mustache
message/templates/message_drawer_view_conversation_header_content_type_public.mustache
message/templates/message_drawer_view_group_info_participants_list.mustache
message/templates/message_drawer_view_overview_body.mustache
message/templates/message_drawer_view_overview_section.mustache
message/templates/message_drawer_view_overview_section_favourites.mustache
message/templates/message_drawer_view_overview_section_group_messages.mustache
message/templates/message_drawer_view_overview_section_messages.mustache
message/templates/message_drawer_view_search_results_content.mustache
message/templates/message_drawer_view_settings_body.mustache
message/templates/message_drawer_view_settings_body_content.mustache [new file with mode: 0644]
message/templates/message_drawer_view_settings_body_content_notification_preferences.mustache [moved from message/templates/message_drawer_view_contacts_section.mustache with 55% similarity]
message/templates/message_drawer_view_settings_body_placeholder.mustache [new file with mode: 0644]
message/tests/api_test.php
message/tests/externallib_test.php
message/upgrade.txt
mnet/service/enrol/version.php
mod/assign/backup/moodle2/restore_assign_stepslib.php
mod/assign/db/upgrade.php
mod/assign/feedback/comments/classes/privacy/provider.php
mod/assign/feedback/comments/db/upgrade.php
mod/assign/feedback/comments/version.php
mod/assign/feedback/editpdf/db/upgrade.php
mod/assign/feedback/editpdf/version.php
mod/assign/feedback/file/db/upgrade.php
mod/assign/feedback/file/version.php
mod/assign/feedback/offline/version.php
mod/assign/lib.php
mod/assign/submission/comments/db/upgrade.php
mod/assign/submission/comments/version.php
mod/assign/submission/file/db/upgrade.php
mod/assign/submission/file/version.php
mod/assign/submission/onlinetext/db/upgrade.php
mod/assign/submission/onlinetext/version.php
mod/assign/version.php
mod/assignment/db/upgrade.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/db/upgrade.php
mod/book/lib.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/db/upgrade.php
mod/chat/lib.php
mod/chat/version.php
mod/choice/db/upgrade.php
mod/choice/lib.php
mod/choice/version.php
mod/data/db/upgrade.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/lib.php
mod/data/preset/imagegallery/version.php
mod/data/version.php
mod/feedback/db/upgrade.php
mod/feedback/lib.php
mod/feedback/version.php
mod/folder/db/upgrade.php
mod/folder/lib.php
mod/folder/version.php
mod/forum/db/upgrade.php
mod/forum/lib.php
mod/forum/version.php
mod/glossary/db/upgrade.php
mod/glossary/lib.php
mod/glossary/version.php
mod/imscp/db/upgrade.php
mod/imscp/lib.php
mod/imscp/version.php
mod/label/db/upgrade.php
mod/label/lib.php
mod/label/version.php
mod/lesson/db/upgrade.php
mod/lesson/lib.php
mod/lesson/version.php
mod/lti/db/upgrade.php
mod/lti/lib.php
mod/lti/service/gradebookservices/version.php
mod/lti/service/memberships/classes/local/service/memberships.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/db/upgrade.php
mod/page/lib.php
mod/page/version.php
mod/quiz/accessrule/delaybetweenattempts/version.php
mod/quiz/accessrule/ipaddress/version.php
mod/quiz/accessrule/numattempts/version.php
mod/quiz/accessrule/offlineattempts/version.php
mod/quiz/accessrule/openclosedate/version.php
mod/quiz/accessrule/password/version.php
mod/quiz/accessrule/safebrowser/version.php
mod/quiz/accessrule/securewindow/version.php
mod/quiz/accessrule/timelimit/version.php
mod/quiz/db/upgrade.php
mod/quiz/lib.php
mod/quiz/report/grading/version.php
mod/quiz/report/overview/db/upgrade.php
mod/quiz/report/overview/version.php
mod/quiz/report/responses/version.php
mod/quiz/report/statistics/db/upgrade.php
mod/quiz/report/statistics/version.php
mod/quiz/version.php
mod/resource/db/upgrade.php
mod/resource/lib.php
mod/resource/version.php
mod/scorm/db/upgrade.php
mod/scorm/lib.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/db/upgrade.php
mod/survey/lib.php
mod/survey/version.php
mod/url/db/upgrade.php
mod/url/lib.php
mod/url/version.php
mod/wiki/db/upgrade.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/db/upgrade.php
mod/workshop/eval/best/version.php
mod/workshop/form/accumulative/db/upgrade.php
mod/workshop/form/accumulative/version.php
mod/workshop/form/comments/db/upgrade.php
mod/workshop/form/comments/version.php
mod/workshop/form/numerrors/db/upgrade.php
mod/workshop/form/numerrors/version.php
mod/workshop/form/rubric/db/upgrade.php
mod/workshop/form/rubric/version.php
mod/workshop/lib.php
mod/workshop/version.php
pix/i/checkedcircle.png [new file with mode: 0644]
pix/i/checkedcircle.svg [new file with mode: 0644]
pix/i/uncheckedcircle.png [new file with mode: 0644]
pix/i/uncheckedcircle.svg [new file with mode: 0644]
portfolio/boxnet/db/upgrade.php
portfolio/boxnet/version.php
portfolio/download/version.php
portfolio/flickr/version.php
portfolio/googledocs/db/upgrade.php
portfolio/googledocs/version.php
portfolio/mahara/version.php
portfolio/picasa/db/upgrade.php
portfolio/picasa/version.php
privacy/classes/local/request/moodle_content_writer.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/db/upgrade.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/db/upgrade.php
question/type/calculated/version.php
question/type/calculatedmulti/questiontype.php
question/type/calculatedmulti/tests/helper.php
question/type/calculatedmulti/tests/walkthrough_test.php
question/type/calculatedmulti/version.php
question/type/calculatedsimple/version.php
question/type/ddimageortext/version.php
question/type/ddmarker/db/upgrade.php
question/type/ddmarker/version.php
question/type/ddwtos/version.php
question/type/description/version.php
question/type/essay/db/upgrade.php
question/type/essay/version.php
question/type/gapselect/edit_form_base.php
question/type/gapselect/tests/behat/basic_test.feature
question/type/gapselect/version.php
question/type/match/db/upgrade.php
question/type/match/version.php
question/type/missingtype/version.php
question/type/multianswer/db/upgrade.php
question/type/multianswer/version.php
question/type/multichoice/db/upgrade.php
question/type/multichoice/version.php
question/type/numerical/db/upgrade.php
question/type/numerical/version.php
question/type/random/db/upgrade.php
question/type/random/version.php
question/type/randomsamatch/db/upgrade.php
question/type/randomsamatch/version.php
question/type/shortanswer/db/upgrade.php
question/type/shortanswer/version.php
question/type/truefalse/version.php
report/backups/version.php
report/competency/version.php
report/completion/version.php
report/configlog/version.php
report/courseoverview/version.php
report/eventlist/version.php
report/insights/version.php
report/log/version.php
report/loglive/version.php
report/outline/version.php
report/participation/version.php
report/performance/version.php
report/progress/version.php
report/questioninstances/version.php
report/security/version.php
report/stats/version.php
report/usersessions/version.php
repository/areafiles/version.php
repository/boxnet/db/upgrade.php
repository/boxnet/version.php
repository/coursefiles/version.php
repository/dropbox/db/upgrade.php
repository/dropbox/version.php
repository/equella/version.php
repository/filesystem/version.php
repository/flickr/db/upgrade.php
repository/flickr/version.php
repository/flickr_public/version.php
repository/googledocs/db/upgrade.php
repository/googledocs/version.php
repository/local/version.php
repository/merlot/version.php
repository/nextcloud/lib.php
repository/nextcloud/version.php
repository/onedrive/db/upgrade.php
repository/onedrive/version.php
repository/picasa/db/upgrade.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/scss/moodle/blocks.scss
theme/boost/scss/moodle/core.scss
theme/boost/scss/moodle/grade.scss
theme/boost/scss/moodle/message.scss
theme/boost/style/moodle.css
theme/boost/templates/login.mustache
theme/boost/version.php
theme/bootstrapbase/less/moodle/blocks.less
theme/bootstrapbase/less/moodle/bs4-compat.less
theme/bootstrapbase/less/moodle/core.less
theme/bootstrapbase/less/moodle/grade.less
theme/bootstrapbase/less/moodle/message.less
theme/bootstrapbase/less/moodle/undo.less
theme/bootstrapbase/style/moodle.css
theme/bootstrapbase/templates/block_myoverview/course-action-menu.mustache
theme/bootstrapbase/templates/block_timeline/event-list-item.mustache
theme/bootstrapbase/templates/core_message/message_drawer_lazy_load_list.mustache [new file with mode: 0644]
theme/bootstrapbase/templates/core_message/message_drawer_view_contacts_body.mustache
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_body_message.mustache
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_footer_edit_mode.mustache
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_header_content_type_private.mustache
theme/bootstrapbase/templates/core_message/message_drawer_view_conversation_header_content_type_public.mustache
theme/bootstrapbase/templates/core_message/message_drawer_view_overview_section.mustache
theme/bootstrapbase/version.php
theme/clean/version.php
theme/more/db/upgrade.php
theme/more/version.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/profile/lib.php
version.php
webservice/rest/version.php
webservice/soap/version.php
webservice/xmlrpc/version.php

index 42e81f0..c3d9813 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_analytics'; // Full name of the plugin (used for diagnostics).
index a30d705..06c1679 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'tool_availabilityconditions';
index 7771e76..951e778 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;   // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;   // Requires this Moodle version
+$plugin->version   = 2018120300;   // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;   // Requires this Moodle version
 $plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
index 9cfa8f7..243e159 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
index 663c515..c6b10ad 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
 
 $plugin->dependencies = array(
index e771cc9..5849311 100644 (file)
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 400e4b9..46bf6e5 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;
-$plugin->requires  = 2018050800;
+$plugin->version   = 2018120300;
+$plugin->requires  = 2018112800;
 $plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
index 9f1177f..2c18ac7 100644 (file)
@@ -1087,12 +1087,16 @@ class api {
 
         // Create the approved contextlist collection object.
         $approvedcollection = new contextlist_collection($collection->get_userid());
+        $isconfigured = data_registry::defaults_set();
 
         foreach ($collection as $contextlist) {
             $contextids = [];
             foreach ($contextlist as $context) {
-                if (self::DATAREQUEST_TYPE_DELETE == $type) {
+                if ($isconfigured && self::DATAREQUEST_TYPE_DELETE == $type) {
                     // Data can only be deleted from it if the context is either expired, or unprotected.
+                    // Note: We can only check whether a context is expired or unprotected if the site is configured and
+                    // defaults are set appropriately. If they are not, we treat all contexts as though they are
+                    // unprotected.
                     $purpose = static::get_effective_context_purpose($context);
                     if (!expired_contexts_manager::is_context_expired_or_unprotected_for_user($context, $foruser)) {
                         continue;
index f3f87a2..7b9fad3 100644 (file)
@@ -74,11 +74,9 @@ class process_data_request_task extends adhoc_task {
             return;
         }
 
-        // If no site purpose is defined, reject requests since they cannot be processed.
         if (!\tool_dataprivacy\data_registry::defaults_set()) {
-            api::update_request_status($requestid, api::DATAREQUEST_STATUS_REJECTED);
-            mtrace('No site purpose defined. Request ' . $requestid . ' rejected.');
-            return;
+            // Warn if no site purpose is defined.
+            mtrace('Warning: No purpose is defined at the system level. Deletion will delete all.');
         }
 
         // Grab the manager.
index ec6b9c2..331dd19 100644 (file)
@@ -38,6 +38,10 @@ $title = get_string('datarequests', 'tool_dataprivacy');
 echo $OUTPUT->header();
 echo $OUTPUT->heading($title);
 
+if (!\tool_dataprivacy\data_registry::defaults_set()) {
+    \core\notification::error(get_string('systemconfignotsetwarning', 'tool_dataprivacy'));
+}
+
 if (\tool_dataprivacy\api::is_site_dpo($USER->id)) {
     $filtersapplied = optional_param_array('request-filters', [-1], PARAM_NOTAGS);
     $filterscleared = optional_param('filters-cleared', 0, PARAM_INT);
index 2f52d48..47989cb 100644 (file)
@@ -299,5 +299,22 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) {
         upgrade_plugin_savepoint(true, 2018110700, 'tool', 'dataprivacy');
     }
 
+    if ($oldversion < 2018112500) {
+        // Delete orphaned data privacy requests.
+        $sql = "SELECT r.id
+                  FROM {tool_dataprivacy_request} r LEFT JOIN {user} u ON r.userid = u.id
+                 WHERE u.id IS NULL";
+        $orphaned = $DB->get_fieldset_sql($sql);
+
+        if ($orphaned) {
+            $DB->delete_records_list('tool_dataprivacy_request', 'id', $orphaned);
+        }
+
+        upgrade_plugin_savepoint(true, 2018112500, 'tool', 'dataprivacy');
+    }
+
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 96fa63b..86b1799 100644 (file)
@@ -307,6 +307,7 @@ $string['statusrejected'] = 'Rejected';
 $string['subjectscope'] = 'Subject scope';
 $string['subjectscope_help'] = 'The subject scope lists the roles which may be assigned in this context.';
 $string['summary'] = 'Registry configuration summary';
+$string['systemconfignotsetwarning'] = 'A site purpose and category have not been defined. When these are not defined, all data will be removed when processing deletion requests.';
 $string['user'] = 'User';
 $string['userlistnoncompliant'] = 'Userlist provider missing';
 $string['userlistexplanation'] = 'This plugin has the base provider but should also implement the userlist provider for full support of privacy functionality.';
index e9bd9f5..8e60223 100644 (file)
@@ -1635,6 +1635,48 @@ class tool_dataprivacy_api_testcase extends advanced_testcase {
         ];
     }
 
+    /**
+     * Test that delete requests do not filter out protected purpose contexts if the the site is properly configured.
+     */
+    public function test_get_approved_contextlist_collection_for_collection_delete_course_no_site_config() {
+        $this->resetAfterTest();
+
+        $user = $this->getDataGenerator()->create_user();
+
+        $course = $this->getDataGenerator()->create_course(['startdate' => time() - YEARSECS, 'enddate' => time() - YEARSECS]);
+        $coursecontext = \context_course::instance($course->id);
+
+        $forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]);
+        list(, $forumcm) = get_course_and_cm_from_instance($forum->id, 'forum');
+        $contextforum = \context_module::instance($forumcm->id);
+
+        $this->getDataGenerator()->enrol_user($user->id, $course->id, 'student');
+
+        // Create the initial contextlist.
+        $initialcollection = new \core_privacy\local\request\contextlist_collection($user->id);
+
+        $contextlist = new \core_privacy\local\request\contextlist();
+        $contextlist->add_from_sql('SELECT id FROM {context} WHERE id = :contextid', ['contextid' => $coursecontext->id]);
+        $contextlist->set_component('tool_dataprivacy');
+        $initialcollection->add_contextlist($contextlist);
+
+        $contextlist = new \core_privacy\local\request\contextlist();
+        $contextlist->add_from_sql('SELECT id FROM {context} WHERE id = :contextid', ['contextid' => $contextforum->id]);
+        $contextlist->set_component('mod_forum');
+        $initialcollection->add_contextlist($contextlist);
+
+        $collection = api::get_approved_contextlist_collection_for_collection(
+                $initialcollection, $user, api::DATAREQUEST_TYPE_DELETE);
+
+        $this->assertCount(2, $collection);
+
+        $list = $collection->get_contextlist_for_component('tool_dataprivacy');
+        $this->assertCount(1, $list);
+
+        $list = $collection->get_contextlist_for_component('mod_forum');
+        $this->assertCount(1, $list);
+    }
+
     /**
      * Test that delete requests do not filter out protected purpose contexts if they are already expired.
      */
index d25e4c8..a56cc8a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018110900;
-$plugin->requires  = 2018050800;        // Moodle 3.5dev (Build 2018031600) and upwards.
+$plugin->version   = 2018120300;
+$plugin->requires  = 2018112800;        // Moodle 3.5dev (Build 2018031600) and upwards.
 $plugin->component = 'tool_dataprivacy';
index 9fa2f1e..11385ef 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
index 550536d..f825be3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'tool_filetypes';
index 4049283..20f35d3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'tool_generator';
index a4ef47c..6261c09 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // 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 4a2e8cf..0f83030 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_httpsreplace'; // Full name of the plugin (used for diagnostics).
index cbc2912..7a5bc18 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
index b0ba3ac..4250a6c 100644 (file)
@@ -24,6 +24,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_installaddon';
-$plugin->version    = 2018051400;
-$plugin->requires   = 2018050800;
+$plugin->version    = 2018120300;
+$plugin->requires   = 2018112800;
 $plugin->maturity   = MATURITY_STABLE;
index c34440f..7a5d4bf 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
index 2c7e2b0..70a76cc 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 7b6fed2..0804ce8 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index f3841d4..dbf85d7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018050800; // Requires this Moodle version.
+$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2018112800; // Requires this Moodle version.
 $plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
index 8d5b532..c975cdd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018050800; // Requires this Moodle version.
+$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2018112800; // Requires this Moodle version.
 $plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
index f0dd415..14946e8 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index b509968..89ab35a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018050800; // Requires this Moodle version.
+$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2018112800; // Requires this Moodle version.
 $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
index 1af8d1c..91fca04 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051401; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018050800; // Requires this Moodle version.
+$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
index 4436def..b1e599b 100644 (file)
@@ -25,6 +25,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_lp'; // Full name of the plugin (used for diagnostics).
index 47fc25c..2bafff6 100644 (file)
@@ -25,8 +25,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_lpimportcsv'; // Full name of the plugin (used for diagnostics).
-$plugin->dependencies = array('tool_lp' => 2018050800);
+$plugin->dependencies = array('tool_lp' => 2018112800);
 
index 7ef6bd0..5e1ee55 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_lpmigrate'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index a13983f..8064127 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;
-$plugin->requires  = 2018050800;
+$plugin->version   = 2018120300;
+$plugin->requires  = 2018112800;
 $plugin->component = 'tool_messageinbound';
index 2457ecf..4584e2d 100644 (file)
@@ -23,9 +23,9 @@
  */
 
 defined('MOODLE_INTERNAL') || die();
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_mobile'; // Full name of the plugin (used for diagnostics).
 $plugin->dependencies = array(
-    'webservice_rest' => 2018050800
+    'webservice_rest' => 2018112800
 );
index 67fbb42..ee22b83 100644 (file)
@@ -79,5 +79,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 5601b72..65383a8 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018051400;     // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;     // Requires this Moodle version.
+$plugin->version   = 2018120300;     // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;     // Requires this Moodle version.
 $plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
index 6efabad..c2cce0e 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
 
index 4f78e33..1dc4980 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_oauth2'; // Full name of the plugin (used for diagnostics).
 
index dbc7baf..167ad0c 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
 
index 52e20a0..cf1a33b 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_tool_policy_upgrade($oldversion) {
         upgrade_plugin_savepoint(true, 2018091800, 'tool', 'policy');
     }
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 7a66827..9806237 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018100100;         // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;         // Requires this Moodle version.
+$plugin->version   = 2018120300;         // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;         // Requires this Moodle version.
 $plugin->component = 'tool_policy';      // Full name of the plugin (used for diagnostics).
index 372332b..77b48f4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
index 976bc91..52afd41 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
index bb17971..f09f3a0 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // 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 67b7e81..b1aa470 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;
-$plugin->requires  = 2018050800;
+$plugin->version   = 2018120300;
+$plugin->requires  = 2018112800;
 $plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
 
index adb0081..2bd864b 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
 
index 0a3ae84..7457dcd 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   = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800; // Requires this Moodle version.
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800; // Requires this Moodle version.
 $plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
index 20e4245..16e48fa 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
 
index 8573143..b5726bb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;            // Requires this Moodle version.
+$plugin->version   = 2018120300;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;            // Requires this Moodle version.
 $plugin->component = 'tool_uploadcourse';   // Full name of the plugin (used for diagnostics).
index 671f015..87165be 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
 
index 15f142c..64955f2 100644 (file)
@@ -697,7 +697,7 @@ class manager {
     }
 
     /**
-     * Move a tour up or down.
+     * Move a tour up or down and redirect once complete.
      *
      * @param   int     $id     The tour to move.
      */
@@ -707,6 +707,19 @@ class manager {
         $direction = required_param('direction', PARAM_INT);
 
         $tour = tour::instance($id);
+        self::_move_tour($tour, $direction);
+
+        redirect(helper::get_list_tour_link());
+    }
+
+    /**
+     * Move a tour up or down.
+     *
+     * @param   tour    $tour   The tour to move.
+     *
+     * @param   int     $direction
+     */
+    protected static function _move_tour(tour $tour, $direction) {
         $currentsortorder   = $tour->get_sortorder();
         $targetsortorder    = $currentsortorder + $direction;
 
@@ -722,8 +735,6 @@ class manager {
 
         $tour->set_sortorder($targetsortorder);
         $tour->persist();
-
-        redirect(helper::get_list_tour_link());
     }
 
     /**
@@ -785,6 +796,13 @@ class manager {
         // the format filename => version. The version value needs to
         // be increased if the tour has been updated.
         $shippedtours = [
+            '36_dashboard.json' => 3,
+            '36_messaging.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 = [
             'boost_administrator.json' => 1,
             'boost_course_view.json' => 1,
         ];
@@ -813,12 +831,19 @@ class manager {
                         unset($shippedtours[$filename]);
                     }
                 }
+
+                if (isset($unshippedtours[$filename])) {
+                    if ($version <= $unshippedtours[$filename]) {
+                        $tour = tour::instance($tour->get_id());
+                        $tour->set_enabled(tour::DISABLED);
+                        $tour->persist();
+                    }
+                }
             }
         }
-
         $existingtourrecords->close();
 
-        foreach ($shippedtours as $filename => $version) {
+        foreach (array_reverse($shippedtours) as $filename => $version) {
             $filepath = $CFG->dirroot . "/{$CFG->admin}/tool/usertours/tours/" . $filename;
             $tourjson = file_get_contents($filepath);
             $tour = self::import_tour_from_json($tourjson);
@@ -829,6 +854,11 @@ class manager {
             $tour->set_config(self::CONFIG_SHIPPED_FILENAME, $filename);
             $tour->set_config(self::CONFIG_SHIPPED_VERSION, $version);
 
+            // Bump new tours to the top of the list.
+            while ($tour->get_sortorder() > 0) {
+                self::_move_tour($tour, helper::MOVE_UP);
+            }
+
             if (defined('BEHAT_SITE_RUNNING') || (defined('PHPUNIT_TEST') && PHPUNIT_TEST)) {
                 // Disable this tour if this is behat or phpunit.
                 $tour->set_enabled(false);
index 088b76b..9bdf9ee 100644 (file)
@@ -35,13 +35,6 @@ use tool_usertours\manager;
 function xmldb_tool_usertours_upgrade($oldversion) {
     global $CFG, $DB;
 
-    if ($oldversion < 2016120501) {
-        // Update the tours shipped with Moodle.
-        manager::update_shipped_tours();
-
-        upgrade_plugin_savepoint(true, 2016120501, 'tool', 'usertours');
-    }
-
     // Automatically generated Moodle v3.2.0 release upgrade line.
     // Put any upgrade step following this.
 
@@ -54,5 +47,15 @@ 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.
+
     return true;
 }
index 078e046..8ebce53 100644 (file)
@@ -179,3 +179,50 @@ $string['privacy:metadata:preference:requested'] = 'The time that a user last ma
 $string['privacy:metadata:preference:completed'] = 'The time that a user last completed a user tour.';
 $string['privacy:request:preference:requested'] = 'You last requested the "{$a->name}" user tour on {$a->time}';
 $string['privacy:request:preference:completed'] = 'You last marked the "{$a->name}" user tour as completed on {$a->time}';
+
+// 3.6 Dashboard tour.
+$string['tour3_title_dashboard'] = 'Your Dashboard';
+$string['tour3_content_dashboard'] = 'Your new Dashboard has many features to help you easily access the information most important to you.';
+$string['tour3_title_timeline'] = 'Timeline block';
+$string['tour3_content_timeline'] = 'The Timeline block shows your important upcoming events.
+
+You can choose to show activities in the next week, month, or further into the future.
+
+You can also show items which are overdue.';
+$string['tour3_title_recentcourses'] = 'Recently accessed courses';
+$string['tour3_content_recentcourses'] = 'The Recently accessed courses block shows the courses that you last visited, allowing you to jump straight back in.';
+$string['tour3_title_overview'] = 'Course overview';
+$string['tour3_content_overview'] = 'The Course overview block shows all of the courses that you are enrolled in.
+
+You can choose to show courses currently in progress, or in the past or the future, or courses which you have starred.';
+$string['tour3_title_starring'] = 'Starring and hiding courses';
+$string['tour3_content_starring'] = 'You can choose to star a course to make it stand out, or hide a course which is no longer important to you.
+
+These actions only affect your view.
+
+You can also choose to display the courses in a list, or with summary information, or the default \'card\' view.';
+$string['tour3_title_displayoptions'] = 'Display options';
+$string['tour3_content_displayoptions'] = 'Courses may be sorted by course name or by last access date.
+
+You can also choose to display the courses in a list, with summary information, or the default \'card\' view.';
+
+// 3.6 Messaging tour.
+$string['tour4_title_messaging'] = 'New messaging interface';
+$string['tour4_content_messaging'] = 'Moodle 3.6 provides a new interface to messaging, ability for group messaging within a course, along with better control over who can message you.';
+$string['tour4_title_icon'] = 'Messaging';
+$string['tour4_content_icon'] = 'You can access your messages from any page using this icon.
+
+If you have any unread messages, the number of unread messages will show here too.
+
+Click on the icon to open the messaging drawer and continue the tour.';
+$string['tour4_title_groupconvo'] = 'Group messages';
+$string['tour4_content_groupconvo'] = 'If you are a member of a group with group messaging enabled, you\'ll see group conversations here.
+
+Course group conversations allow you to interact with the others in your group in a private and convenient location.';
+$string['tour4_title_starred'] = 'Starred';
+$string['tour4_content_starred'] = 'You can choose to star particular conversations to make them easier to find.';
+$string['tour4_title_settings'] = 'Messaging settings';
+$string['tour4_content_settings'] = 'You can access your messaging settings via the cog icon. A new privacy setting allows you to restrict who can message you.';
+
+$string['tour_final_step_title'] = 'End of tour';
+$string['tour_final_step_content'] = 'This is the end of your user tour. It won\'t show again unless you reset it using the link in the footer.';
diff --git a/admin/tool/usertours/tours/36_dashboard.json b/admin/tool/usertours/tours/36_dashboard.json
new file mode 100644 (file)
index 0000000..e755805
--- /dev/null
@@ -0,0 +1 @@
+{"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
new file mode 100644 (file)
index 0000000..52c8108
--- /dev/null
@@ -0,0 +1 @@
+{"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":"{}"}]}
index b9aa86b..2f00da1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;            // The current module version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;            // Requires this Moodle version.
+$plugin->version   = 2018120300;            // The current module version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;            // Requires this Moodle version.
 $plugin->component = 'tool_usertours';      // Full name of the plugin (used for diagnostics).
index 98c4b2e..f6d7acb 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051401; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800; // Requires this Moodle version
+$plugin->version   = 2018120300; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800; // Requires this Moodle version
 $plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
 
index f331335..469661c 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index a572e5b..f735c62 100644 (file)
@@ -26,8 +26,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_cas';        // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('auth_ldap' => 2018050800);
+$plugin->dependencies = array('auth_ldap' => 2018112800);
index 57bdd1e..7955ffe 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_db_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index a1acfba..3e52469 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_db';         // Full name of the plugin (used for diagnostics)
index 0ad4e2d..f00705b 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_email_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index d88f88d..11d2f68 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_email';      // Full name of the plugin (used for diagnostics)
index 2132366..0a4c344 100644 (file)
@@ -69,5 +69,8 @@ function xmldb_auth_ldap_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 4a98703..15eaf41 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_ldap';       // Full name of the plugin (used for diagnostics)
index bbbe28a..3d96d3a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2018050800; // Requires this Moodle version.
+$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2018112800; // Requires this Moodle version.
 $plugin->component = 'auth_lti'; // Full name of the plugin (used for diagnostics).
index 40499cd..d691552 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_manual_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index d61bd51..65d1d79 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_manual';     // Full name of the plugin (used for diagnostics)
index 09690f0..7d4d88d 100644 (file)
@@ -50,5 +50,8 @@ function xmldb_auth_mnet_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index a827888..ae88a9f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_mnet';       // Full name of the plugin (used for diagnostics)
index fa7542b..628300b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_nologin';    // Full name of the plugin (used for diagnostics)
index aa1ad76..596740b 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_none_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index e3ef197..6c7cf2d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_none';       // Full name of the plugin (used for diagnostics)
index 4d7a093..8d0a6a6 100644 (file)
@@ -47,5 +47,8 @@ function xmldb_auth_oauth2_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index d792c98..45bf549 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;        // Requires this Moodle version.
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;        // Requires this Moodle version.
 $plugin->component = 'auth_oauth2';       // Full name of the plugin (used for diagnostics).
index 9dbf7c3..416ac20 100644 (file)
@@ -51,5 +51,8 @@ function xmldb_auth_shibboleth_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 932a622..adf88ca 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_shibboleth'; // Full name of the plugin (used for diagnostics)
index a0aa331..f3d7206 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'auth_webservice'; // Full name of the plugin (used for diagnostics)
index 353d800..83ed7b5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_completion';
index 219eecf..84af3d0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_date';
index 1f1d635..4131c60 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_grade';
index 4a0ea62..6b51e96 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_group';
index 01f8940..f1b98c4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_grouping';
index 6d7de73..635a3cd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2018051400;
-$plugin->requires = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires = 2018112800;
 $plugin->component = 'availability_profile';
index c09fb9a..0915c8e 100644 (file)
@@ -136,11 +136,11 @@ abstract class backup implements checksumable {
      * point is backup when some behavior/approach channged, in order to allow
      * conditional coding based on it.
      */
-    const VERSION = 2018051400;
+    const VERSION = 2018120300;
     /**
      * Usually same than major release zero version, mainly for informative/historic purposes.
      */
-    const RELEASE = '3.6';
+    const RELEASE = '3.7';
 
     /**
      * Cipher to be used in backup and restore operations.
index 10476d0..ed4d811 100644 (file)
@@ -37,9 +37,10 @@ class imscc1_converter extends base_converter {
      * @return null|string backup::FORMAT_IMSCC1 if the Common Cartridge 1.0 is detected, null otherwise
      */
     public static function detect_format($tempdir) {
-        global $CFG;
-
-        $filepath = $CFG->dataroot . '/temp/backup/' . $tempdir;
+        $filepath = make_backup_temp_directory($tempdir, false);
+        if (!is_dir($filepath)) {
+            throw new convert_helper_exception('tmp_backup_directory_not_found', $filepath);
+        }
         $manifest = cc2moodle::get_manifest($filepath);
         if (!empty($manifest)) {
             // Looks promising, lets load some information.
index 0c1c6d6..56532fa 100644 (file)
@@ -38,9 +38,10 @@ class imscc11_converter extends base_converter {
      * @return null|string backup::FORMAT_IMSCC11 if the Common Cartridge 1.1 is detected, null otherwise
      */
     public static function detect_format($tempdir) {
-        global $CFG;
-
-        $filepath = $CFG->dataroot . '/temp/backup/' . $tempdir;
+        $filepath = make_backup_temp_directory($tempdir, false);
+        if (!is_dir($filepath)) {
+            throw new convert_helper_exception('tmp_backup_directory_not_found', $filepath);
+        }
         $manifest = cc112moodle::get_manifest($filepath);
         if (file_exists($manifest)) {
             // Looks promising, lets load some information.
index e61b89a..683c446 100644 (file)
@@ -234,13 +234,13 @@ abstract class backup_cron_automated_helper {
             // Summary.
             $message .= get_string('summary') . "\n";
             $message .= "==================================================\n";
-            $message .= '  ' . get_string('courses') . '; ' . array_sum($count) . "\n";
-            $message .= '  ' . get_string('ok') . '; ' . $count[self::BACKUP_STATUS_OK] . "\n";
-            $message .= '  ' . get_string('skipped') . '; ' . $count[self::BACKUP_STATUS_SKIPPED] . "\n";
-            $message .= '  ' . get_string('error') . '; ' . $count[self::BACKUP_STATUS_ERROR] . "\n";
-            $message .= '  ' . get_string('unfinished') . '; ' . $count[self::BACKUP_STATUS_UNFINISHED] . "\n";
-            $message .= '  ' . get_string('warning') . '; ' . $count[self::BACKUP_STATUS_WARNING] . "\n";
-            $message .= '  ' . get_string('backupnotyetrun') . '; ' . $count[self::BACKUP_STATUS_NOTYETRUN]."\n\n";
+            $message .= '  ' . get_string('courses') . ': ' . array_sum($count) . "\n";
+            $message .= '  ' . get_string('ok') . ': ' . $count[self::BACKUP_STATUS_OK] . "\n";
+            $message .= '  ' . get_string('skipped') . ': ' . $count[self::BACKUP_STATUS_SKIPPED] . "\n";
+            $message .= '  ' . get_string('error') . ': ' . $count[self::BACKUP_STATUS_ERROR] . "\n";
+            $message .= '  ' . get_string('unfinished') . ': ' . $count[self::BACKUP_STATUS_UNFINISHED] . "\n";
+            $message .= '  ' . get_string('warning') . ': ' . $count[self::BACKUP_STATUS_WARNING] . "\n";
+            $message .= '  ' . get_string('backupnotyetrun') . ': ' . $count[self::BACKUP_STATUS_NOTYETRUN]."\n\n";
 
             //Reference
             if ($haserrors) {
index 2edb45f..358435b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_activity_modules'; // Full name of the plugin (used for diagnostics)
index 6eb9031..be2ef1a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;               // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;               // Requires this Moodle version.
+$plugin->version   = 2018120300;               // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;               // Requires this Moodle version.
 $plugin->component = 'block_activity_results'; // Full name of the plugin (used for diagnostics).
\ No newline at end of file
index ee047c1..d4e6ee5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_admin_bookmarks'; // Full name of the plugin (used for diagnostics)
index a352f44..433e0c7 100644 (file)
@@ -57,5 +57,8 @@ function xmldb_block_badges_upgrade($oldversion, $block) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index ff4cda3..a6f1f39 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2018050800;        // Requires this Moodle version.
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2018112800;        // Requires this Moodle version.
 $plugin->component = 'block_badges';
index 0d96478..60a2c92 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_blog_menu'; // Full name of the plugin (used for diagnostics)
index 60a82e8..55f07a7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_blog_recent'; // Full name of the plugin (used for diagnostics)
index af3a7c5..88be697 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_blog_tags'; // Full name of the plugin (used for diagnostics)
index 81eec4e..913ccca 100644 (file)
@@ -57,5 +57,8 @@ function xmldb_block_calendar_month_upgrade($oldversion, $block) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index b91baa4..3b767ca 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)
index 3e768b0..b1e95d6 100644 (file)
@@ -57,5 +57,8 @@ function xmldb_block_calendar_upcoming_upgrade($oldversion, $block) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index bbd4e43..2b81846 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)
index 9982f0e..4a8c23d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_comments'; // Full name of the plugin (used for diagnostics)
index 30d70e3..ecfdca9 100644 (file)
@@ -58,5 +58,8 @@ function xmldb_block_community_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 9bc9957..c86c740 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_community'; // Full name of the plugin (used for diagnostics)
index ce5ac4b..770a27b 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_block_completionstatus_upgrade($oldversion, $block) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 1009943..95dfa67 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version      = 2018051400; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires     = 2018050800; // Requires this Moodle version.
+$plugin->version      = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires     = 2018112800; // Requires this Moodle version.
 $plugin->component    = 'block_completionstatus';
-$plugin->dependencies = array('report_completion' => 2018050800);
+$plugin->dependencies = array('report_completion' => 2018112800);
index 35e5580..cbe017b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_course_list'; // Full name of the plugin (used for diagnostics)
index d0872b4..f3d591b 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_block_course_summary_upgrade($oldversion, $block) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 62f27c5..daabc02 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_course_summary'; // Full name of the plugin (used for diagnostics)
index 5043285..9cd19cd 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_feedback';  // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_feedback' => 2018050800);
+$plugin->dependencies = array('mod_feedback' => 2018112800);
index 332dce1..513b7d1 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version = 2018051400;
-$plugin->requires  = 2018050800;
+$plugin->version = 2018120300;
+$plugin->requires  = 2018112800;
 $plugin->component = 'block_globalsearch';
index 2a36e21..aa9ae76 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_glossary_random'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_glossary' => 2018050800);
+$plugin->dependencies = array('mod_glossary' => 2018112800);
index 930ebde..221dd38 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_block_html_upgrade($oldversion) {
     // Automatically generated Moodle v3.5.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.6.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 07c49bd..5df1d99 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_html';      // Full name of the plugin (used for diagnostics)
index b4caa4f..476bc8f 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_login';     // Full name of the plugin (used for diagnostics)
index 8d99fe3..26e7063 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;
-$plugin->requires  = 2018050800;
+$plugin->version   = 2018120300;
+$plugin->requires  = 2018112800;
 $plugin->component = 'block_lp';
 $plugin->dependencies = array(
     'tool_lp' => ANY_VERSION
index 6c47867..19368c1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_mentees';   // Full name of the plugin (used for diagnostics)
index 87c8b62..762dec9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2018051400;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2018050800;        // Requires this Moodle version
+$plugin->version   = 2018120300;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2018112800;        // Requires this Moodle version
 $plugin->component = 'block_mnet_hosts'; // Full name of the plugin (used for diagnostics)
index 3bd0631..75c38d3 100644 (file)
@@ -38,7 +38,7 @@ $string['aria:groupingdropdown'] = 'Grouping dropdown';
 $string['aria:inprogress'] = 'Show in courses in progress';
 $string['aria:lastaccessed'] = 'Sort courses by last accessed date';
 $string['aria:list'] = 'Switch to list view';
-$string['aria:title'] = 'Sort courses by title';
+$string['aria:title'] = 'Sort courses by course name';
 $string['aria:past'] = 'Show past courses';
 $string['aria:removefromfavourites'] = 'Remove star for';
 $string['aria:summary'] = 'Switch to summary view';
@@ -63,7 +63,7 @@ $string['privacy:metadata:overviewgroupingpreference'] = 'The Course overview bl
 $string['privacy:metadata:overviewpagingpreference'] = 'The Course overview block paging preference.';
 $string['removefromfavourites'] = 'Unstar this course';
 $string['summary'] = 'Summary';
-$string['title'] = 'Title';
+$string['title'] = 'Course name';
 $string['aria:hidecourse'] = 'Hide {$a} from view';
 $string['aria:showcourse'] = 'Show {$a} in view';
 $string['aria:hiddencourses'] = 'Show hidden courses';
index b1afa75..e1f70d2 100644 (file)
@@ -39,9 +39,9 @@
         <a class="dropdown-item {{#isfavourite}}hidden{{/isfavourite}}" href="#"
             data-action="add-favourite"
             data-course-id="{{id}}"
-            aria-controls="favorite-icon-{{ id }}"
+            aria-controls="favorite-icon-{{ id }}-{{ uniqid }}"
             >
-            {{#pix}} i/star, core, {{#str}} favourites, block_myoverview {{/str}} {{/pix}}
+            <span class="text-primary">{{#pix}} i/star, core, {{#str}} favourites, block_myoverview {{/str}} {{/pix}}</span>
             {{#str}} addtofavourites, block_myoverview {{/str}}
             <div class="sr-only">
                 {{#str}} aria:addtofavourites, block_myoverview {{/str}} {{{fullname}}}
@@ -50,7 +50,7 @@
         <a class="dropdown-item {{^isfavourite}}hidden{{/isfavourite}}" href="#"
             data-action="remove-favourite"
             data-course-id="{{id}}"
-            aria-controls="favorite-icon-{{ id }}"
+            aria-controls="favorite-icon-{{ id }}-{{ uniqid }}"
             >
             {{#str}} removefromfavourites, block_myoverview {{/str}}
             <div class="sr-only">
@@ -60,7 +60,7 @@
         <a class="dropdown-item {{^hidden}}hidden{{/hidden}}" href="#"
             data-action="show-course"
             data-course-id="{{id}}"
-            aria-controls="favorite-icon-{{ id }}"
+            aria-controls="favorite-icon-{{ id }}-{{ uniqid }}"
             >
             {{#pix}} i/show, core, {{#str}} hidden, block_myoverview {{/str}} {{/pix}}
             {{#str}} show, block_myoverview {{/str}}
@@ -71,7 +71,7 @@
         <a class="dropdown-item {{#hidden}}hidden{{/hidden}}" href="#"
             data-action="hide-course"
             data-course-id="{{id}}"
-            aria-controls="favorite-icon-{{ id }}"
+            aria-controls="favorite-icon-{{ id }}-{{ uniqid }}"
             >
             {{#pix}} i/hide, core, {{#str}} hidden, block_myoverview {{/str}} {{/pix}}
             {{#str}} hidecourse, block_myoverview {{/str}}
index 5e4bf56..f74554a 100644 (file)
     }
 }}
 
-<div class="card-deck dashboard-card-deck" role="list">
-{{#courses}}
-    <div class="card dashboard-card" role="listitem"
-        data-region="course-content"
-        data-course-id="{{{id}}}">
-        <a href="{{viewurl}}" tabindex="-1">
-            <div class="card-img dashboard-card-img" style='background-image: url("{{{courseimage}}}");'>
-                <span class="sr-only">{{#str}}aria:courseimage, core_course{{/str}}</span>
-            </div>
-        </a>
-        <div class="card-body pr-1 course-info-container" id="course-info-container-{{id}}">
-            <div class="d-flex align-items-start">
-                <div class="card-title mb-0 mr-2">
-                    {{> core_course/favouriteicon }}
-                    <a href="{{viewurl}}" class="coursename">
-                        <span class="sr-only">{{#str}}aria:coursename, core_course{{/str}}</span>
-                        {{#shortentext}}30, {{{fullname}}} {{/shortentext}}
-                    </a>
-                </div>
-                {{> block_myoverview/course-action-menu }}
-            </div>
-        </div>
+{{< core_course/coursecards }}
+    {{$menu}}
+        {{> block_myoverview/course-action-menu }}
+    {{/menu}}
+    {{$progress}}
         {{#hasprogress}}
-        <div class="card-footer dashboard-card-footer border-0 bg-white">
-            {{> block_myoverview/progress-bar}}
-        </div>
+            <div class="card-footer dashboard-card-footer border-0 bg-white">
+                {{> block_myoverview/progress-bar}}
+            </div>
         {{/hasprogress}}
-    </div>
-{{/courses}}
-</div>
\ No newline at end of file
+    {{/progress}}
+    {{$coursename}}
+        <span class="multiline">
+            {{#shortentext}}50, {{{fullname}}} {{/shortentext}}
+        </span>
+    {{/coursename}}
+{{/ core_course/coursecards }}
index 6661455..0deb0b3 100644 (file)
         data-course-id="{{{id}}}">
         <div class="row-fluid">
             <div class="{{#hasprogress}}col-md-6 span6{{/hasprogress}}{{^hasprogress}}col-md-11 span11{{/hasprogress}} d-flex align-items-center">
-                <div class="d-block">
+                <a href="{{viewurl}}" class="coursename">
+                    {{#showshortname}}
+                        <span class="sr-only">
+                            {{#str}}aria:courseshortname, core_course{{/str}}
+                        </span>
+                        <div class="text-muted muted">
+                            {{{shortname}}}
+                        </div>
+                    {{/showshortname}}
                     {{> core_course/favouriteicon }}
-                    <a href="{{viewurl}}" class="coursename">
-                        <span class="sr-only">{{#str}}aria:coursename, core_course{{/str}}</span>
-                        {{{fullname}}}
-                    </a>
-                </div>
+                    <span class="sr-only">
+                        {{#str}}aria:coursename, core_course{{/str}}
+                    </span>
+                    {{{fullname}}}
+                </a>
             </div>
             {{#hasprogress}}
             <div class="col-md-5 span5 pt-1">
index 1921805..1c95a2d 100644 (file)
 
             <div class="align-self-stretch d-flex flex-column w-100">
                 <div class="d-flex mb-1">
-                    <div class="d-block">
+                    <a href="{{viewurl}}" class="coursename">
+                        {{#showshortname}}
+                            <span class="sr-only">
+                                {{#str}}aria:courseshortname, core_course{{/str}}
+                            </span>
+                            <div class="text-muted muted mb-1">
+                                {{{shortname}}}
+                            </div>
+                        {{/showshortname}}
                         {{> core_course/favouriteicon }}
-                        <a href="{{viewurl}}" class="coursename">
-                            <span class="sr-only">{{#str}}aria:coursename, core_course{{/str}}</span>
-                            <h4 class="d-inline">{{{fullname}}}</h4>
-                        </a>
-                    </div>
+                        <span class="sr-only">
+                            {{#str}}aria:coursename, core_course{{/str}}
+                        </span>
+                        <h6 class="d-inline h5">{{{fullname}}}</h4>
+                    </a>
                     {{> block_myoverview/course-action-menu }}
                 </div>
                 <div class="summary">
index 427be51..0e9e623 100644 (file)
@@ -143,12 +143,12 @@ Feature: The my overview block allows users to easily access their courses
     Then I should see "Summary" in the "Course overview" "block"
     And "[data-display='summary']" "css_element" in the "Course overview" "block" should be visible
 
-  Scenario: Title sort persistence
+  Scenario: Course name sort persistence
     Given I log in as "student1"
     And I click on "sortingdropdown" "button" in the "Course overview" "block"
-    And I click on "Title" "link" in the "Course overview" "block"
+    And I click on "Course name" "link" in the "Course overview" "block"
     And I reload the page
-    Then I should see "Title" in the "Course overview" "block"
+    Then I should see "Course name" in the "Course overview" "block"
     And "[data-sort='fullname']" "css_element" in the "Course overview" "block" should be visible
 
   Scenario: Last accessed sort persistence