From fdac35d12ac38c465a501c3c07341b300fa80fa9 Mon Sep 17 00:00:00 2001 From: Michael Hawkins Date: Wed, 10 Mar 2021 19:18:54 +0800 Subject: [PATCH] MDL-71161 mod_lti: Display activity completion information --- .../behat/lti_activity_completion.feature | 81 +++++++++++++++++++ mod/lti/view.php | 6 ++ 2 files changed, 87 insertions(+) create mode 100644 mod/lti/tests/behat/lti_activity_completion.feature diff --git a/mod/lti/tests/behat/lti_activity_completion.feature b/mod/lti/tests/behat/lti_activity_completion.feature new file mode 100644 index 00000000000..c689be1524e --- /dev/null +++ b/mod/lti/tests/behat/lti_activity_completion.feature @@ -0,0 +1,81 @@ +@mod @mod_lti @core_completion +Feature: View activity completion information in the LTI activity + In order to have visibility of LTI completion requirements + As a student + I need to be able to view my LTI completion progress + + Background: + Given the following "users" exist: + | username | firstname | lastname | email | + | student1 | Vinnie | Student1 | student1@example.com | + | teacher1 | Darrell | Teacher1 | teacher1@example.com | + And the following "courses" exist: + | fullname | shortname | category | + | Course 1 | C1 | 0 | + And the following "course enrolments" exist: + | user | course | role | + | student1 | C1 | student | + | teacher1 | C1 | editingteacher | + And I log in as "teacher1" + And I am on "Course 1" course homepage + And I navigate to "Edit settings" in current page administration + And I expand all fieldsets + And I set the following fields to these values: + | Enable completion tracking | Yes | + | Show completion conditions | Yes | + And I press "Save and display" + And I turn editing mode on + And I add a "External tool" to section "1" and I fill the form with: + | Activity name | Music history | + | Completion tracking | Show activity as complete when conditions are met | + | Require view | 1 | + | Require grade | 1 | + And I log out + + Scenario: View automatic completion items as a teacher + Given I log in as "teacher1" + And I am on "Course 1" course homepage + When I follow "Music history" + Then "Music history" should have the "Receive a grade" completion condition + And "Music history" should have the "View" completion condition + + Scenario: View automatic completion items as a student + Given I log in as "student1" + And I am on "Course 1" course homepage + And I follow "Music history" + And the "View" completion condition of "Music history" is displayed as "done" + And the "Receive a grade" completion condition of "Music history" is displayed as "todo" + And I log out + And I log in as "teacher1" + And I am on "Course 1" course homepage + And I navigate to "View > Grader report" in the course gradebook + And I turn editing mode on + And I give the grade "90.00" to the user "Vinnie Student1" for the grade item "Music history" + And I press "Save changes" + And I log out + When I log in as "student1" + And I am on "Course 1" course homepage + And I follow "Music history" + Then the "Receive a grade" completion condition of "Music history" is displayed as "done" + And the "View" completion condition of "Music history" is displayed as "done" + + @javascript + Scenario: Use manual completion + Given I log in as "teacher1" + And I am on "Course 1" course homepage + And I follow "Music history" + And I navigate to "Edit settings" in current page administration + And I expand all fieldsets + And I set the field "Completion tracking" to "Students can manually mark the activity as completed" + And I press "Save and display" + # Teacher view. + And I follow "Music history" + And the manual completion button for "Music history" should be disabled + And I log out + # Student view. + When I log in as "student1" + And I am on "Course 1" course homepage + And I follow "Music history" + Then the manual completion button of "Music history" is displayed as "Mark as done" + And I toggle the manual completion state of "Music history" + And the manual completion button of "Music history" is displayed as "Done" diff --git a/mod/lti/view.php b/mod/lti/view.php index 5775363c78f..adac5fe75f9 100644 --- a/mod/lti/view.php +++ b/mod/lti/view.php @@ -114,6 +114,12 @@ if ($lti->showtitlelaunch) { echo $OUTPUT->heading(format_string($lti->name, true, array('context' => $context))); } +// Display any activity information (eg completion requirements / dates). +$cminfo = cm_info::create($cm); +$completiondetails = \core_completion\cm_completion_details::get_instance($cminfo, $USER->id); +$activitydates = \core\activity_dates::get_dates_for_module($cminfo, $USER->id); +echo $OUTPUT->activity_information($cminfo, $completiondetails, $activitydates); + if ($lti->showdescriptionlaunch && $lti->intro) { echo $OUTPUT->box(format_module_intro('lti', $lti, $cm->id), 'generalbox description', 'intro'); }