From 860b5d8abc9309bfaad0e9778691bdb12d5b8668 Mon Sep 17 00:00:00 2001 From: Huong Nguyen Date: Tue, 4 May 2021 15:18:27 +0700 Subject: [PATCH] MDL-71234 usertours: Create tours for the activity completion output --- admin/tool/usertours/classes/manager.php | 4 ++++ admin/tool/usertours/db/upgrade.php | 7 +++++++ admin/tool/usertours/tours/.empty | 0 ...activity_information_activity_page_student.json | 1 + ...activity_information_activity_page_teacher.json | 1 + ...1_activity_information_course_page_student.json | 1 + ...1_activity_information_course_page_teacher.json | 1 + admin/tool/usertours/version.php | 2 +- course/classes/output/cm_format.php | 14 ++++++++------ 9 files changed, 24 insertions(+), 7 deletions(-) delete mode 100644 admin/tool/usertours/tours/.empty create mode 100644 admin/tool/usertours/tours/311_activity_information_activity_page_student.json create mode 100644 admin/tool/usertours/tours/311_activity_information_activity_page_teacher.json create mode 100644 admin/tool/usertours/tours/311_activity_information_course_page_student.json create mode 100644 admin/tool/usertours/tours/311_activity_information_course_page_teacher.json diff --git a/admin/tool/usertours/classes/manager.php b/admin/tool/usertours/classes/manager.php index 01ebf39d9a1..faa94c84893 100644 --- a/admin/tool/usertours/classes/manager.php +++ b/admin/tool/usertours/classes/manager.php @@ -854,6 +854,10 @@ class manager { // the format filename => version. The version value needs to // be increased if the tour has been updated. $shippedtours = [ + '311_activity_information_activity_page_student.json' => 1, + '311_activity_information_activity_page_teacher.json' => 1, + '311_activity_information_course_page_student.json' => 1, + '311_activity_information_course_page_teacher.json' => 1 ]; // These are tours that we used to ship but don't ship any longer. diff --git a/admin/tool/usertours/db/upgrade.php b/admin/tool/usertours/db/upgrade.php index 6f5d7c238c4..83c1fd5a317 100644 --- a/admin/tool/usertours/db/upgrade.php +++ b/admin/tool/usertours/db/upgrade.php @@ -76,5 +76,12 @@ function xmldb_tool_usertours_upgrade($oldversion) { upgrade_plugin_savepoint(true, 2021052501, 'tool', 'usertours'); } + if ($oldversion < 2021052507) { + // Updating shipped tours. + manager::update_shipped_tours(); + + upgrade_plugin_savepoint(true, 2021052507, 'tool', 'usertours'); + } + return true; } diff --git a/admin/tool/usertours/tours/.empty b/admin/tool/usertours/tours/.empty deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/admin/tool/usertours/tours/311_activity_information_activity_page_student.json b/admin/tool/usertours/tours/311_activity_information_activity_page_student.json new file mode 100644 index 00000000000..e3136e2104d --- /dev/null +++ b/admin/tool/usertours/tours/311_activity_information_activity_page_student.json @@ -0,0 +1 @@ +{"name":"Activity information in activity page (Student)","description":"A tour of the activity information for Student display on the activity page","pathmatch":"\/mod\/%\/view.php%","enabled":"1","sortorder":"0","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"accessdate\":{\"filter_accessdate\":\"tool_usertours_accountcreation\",\"filter_accessdate_range\":0,\"filter_accessdate_enabled\":\"0\"},\"category\":[],\"course\":[],\"courseformat\":[],\"role\":[\"student\"],\"theme\":[],\"cssselector\":[\"[data-region=activity-information]\"]},\"majorupdatetime\":1620110287,\"shipped_tour\":true,\"shipped_filename\":\"311_activity_information_activity_page_student.json\",\"shipped_version\":1}","version":"2021052507","steps":[{"title":"New: Activity information","content":"Activity dates plus what to do to complete the activity are shown on the activity page.","targettype":"0","targetvalue":"[data-region=activity-information]","sortorder":"0","configdata":"{}"}]} \ No newline at end of file diff --git a/admin/tool/usertours/tours/311_activity_information_activity_page_teacher.json b/admin/tool/usertours/tours/311_activity_information_activity_page_teacher.json new file mode 100644 index 00000000000..46a0b95dc62 --- /dev/null +++ b/admin/tool/usertours/tours/311_activity_information_activity_page_teacher.json @@ -0,0 +1 @@ +{"name":"Activity information in activity page (Teacher)","description":"A tour of the activity information for Teacher display on the activity page","pathmatch":"\/mod\/%\/view.php%","enabled":"1","sortorder":"1","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"accessdate\":{\"filter_accessdate\":\"tool_usertours_accountcreation\",\"filter_accessdate_range\":0,\"filter_accessdate_enabled\":\"0\"},\"category\":[],\"course\":[],\"courseformat\":[],\"role\":[\"manager\",\"teacher\",\"editingteacher\"],\"theme\":[],\"cssselector\":[\"[data-region=activity-information]\"]},\"majorupdatetime\":1620110287,\"shipped_tour\":true,\"shipped_filename\":\"311_activity_information_activity_page_teacher.json\",\"shipped_version\":1}","version":"2021052507","steps":[{"title":"New: Activity information","content":"Activity dates and completion conditions are now displayed for students on each activity page (and optionally on the course page).\r\n\r\nFor activities requiring students to manually mark an activity as completed, a 'Mark as done' button is shown on the activity page.","targettype":"0","targetvalue":"[data-region=activity-information]","sortorder":"0","configdata":"{}"}]} \ No newline at end of file diff --git a/admin/tool/usertours/tours/311_activity_information_course_page_student.json b/admin/tool/usertours/tours/311_activity_information_course_page_student.json new file mode 100644 index 00000000000..08acb27eaff --- /dev/null +++ b/admin/tool/usertours/tours/311_activity_information_course_page_student.json @@ -0,0 +1 @@ +{"name":"Activity information in course homepage (Student)","description":"A tour of the activity information for Student display on the course homepage","pathmatch":"\/course\/view.php%","enabled":"1","sortorder":"2","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"accessdate\":{\"filter_accessdate\":\"tool_usertours_accountcreation\",\"filter_accessdate_range\":0,\"filter_accessdate_enabled\":\"0\"},\"category\":[],\"course\":[],\"courseformat\":[],\"role\":[\"student\"],\"theme\":[],\"cssselector\":[\"[data-region=activity-information]\"]},\"majorupdatetime\":1620109487,\"shipped_tour\":true,\"shipped_filename\":\"311_activity_information_course_page_student.json\",\"shipped_version\":1}","version":"2021052507","steps":[{"title":"New: Activity information","content":"Activity dates and\/or what to do to complete the activity are displayed on the course page.","targettype":"0","targetvalue":"[data-region=activity-information]","sortorder":"0","configdata":"{}"}]} \ No newline at end of file diff --git a/admin/tool/usertours/tours/311_activity_information_course_page_teacher.json b/admin/tool/usertours/tours/311_activity_information_course_page_teacher.json new file mode 100644 index 00000000000..aabffb5faac --- /dev/null +++ b/admin/tool/usertours/tours/311_activity_information_course_page_teacher.json @@ -0,0 +1 @@ +{"name":"Activity information in course homepage (Teacher)","description":"A tour of the activity information for Teacher display on the course homepage","pathmatch":"\/course\/view.php%","enabled":"1","sortorder":"3","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"accessdate\":{\"filter_accessdate\":\"tool_usertours_accountcreation\",\"filter_accessdate_range\":0,\"filter_accessdate_enabled\":\"0\"},\"category\":[],\"course\":[],\"courseformat\":[],\"role\":[\"manager\",\"teacher\",\"editingteacher\"],\"theme\":[],\"cssselector\":[\"[data-region=activity-information]\"]},\"majorupdatetime\":1620109487,\"shipped_tour\":true,\"shipped_filename\":\"311_activity_information_course_page_teacher.json\",\"shipped_version\":1}","version":"2021052507","steps":[{"title":"New: Activity information","content":"New course settings 'Show completion conditions' and 'Show activity dates' enable you to choose whether activity completion conditions (if set) and\/or dates are displayed for students on the course page.","targettype":"0","targetvalue":"[data-region=activity-information]","sortorder":"0","configdata":"{}"}]} \ No newline at end of file diff --git a/admin/tool/usertours/version.php b/admin/tool/usertours/version.php index ed8e6eef28a..24633e46905 100644 --- a/admin/tool/usertours/version.php +++ b/admin/tool/usertours/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2021052502; // The current module version (Date: YYYYMMDDXX). +$plugin->version = 2021052507; // The current module version (Date: YYYYMMDDXX). $plugin->requires = 2021052500; // Requires this Moodle version. $plugin->component = 'tool_usertours'; // Full name of the plugin (used for diagnostics). diff --git a/course/classes/output/cm_format.php b/course/classes/output/cm_format.php index 40bc00415be..1807454fa3a 100644 --- a/course/classes/output/cm_format.php +++ b/course/classes/output/cm_format.php @@ -86,7 +86,6 @@ class cm_format implements renderable, templatable { // Fetch completion details. $showcompletionconditions = $course->showcompletionconditions == COMPLETION_SHOW_CONDITIONS; $completiondetails = cm_completion_details::get_instance($mod, $USER->id, $showcompletionconditions); - $ismanualcompletion = $completiondetails->has_completion() && !$completiondetails->is_automatic(); // Fetch activity dates. $activitydates = []; @@ -95,11 +94,14 @@ class cm_format implements renderable, templatable { } $activityinfodata = null; - // Show the activity information if: - // - The course's showcompletionconditions setting is enabled; or - // - The activity tracks completion manually; or - // - There are activity dates to be shown. - if ($showcompletionconditions || $ismanualcompletion || $activitydates) { + // - There are activity dates to be shown; or + // - Completion info needs to be displayed + // * The activity tracks completion; AND + // * The showcompletionconditions setting is enabled OR an activity that tracks manual completion needs the manual + // completion button to be displayed on the course homepage. + $showcompletioninfo = $completiondetails->has_completion() && ($showcompletionconditions || + (!$completiondetails->is_automatic() && $completiondetails->show_manual_completion())); + if ($showcompletioninfo || !empty($activitydates)) { $activityinfo = new activity_information($mod, $completiondetails, $activitydates); $activityinfodata = $activityinfo->export_for_template($output); }