MDL-71161 mod_url: Display activity completion information

This commit is contained in:
Michael Hawkins 2021-03-11 14:28:57 +08:00 committed by Jun Pataleta
parent 59249a54c9
commit f37c83da8d
2 changed files with 133 additions and 2 deletions

View File

@ -266,10 +266,17 @@ EOF;
* @return does not return
*/
function url_print_workaround($url, $cm, $course) {
global $OUTPUT;
global $OUTPUT, $USER;
url_print_header($url, $cm, $course);
url_print_heading($url, $cm, $course, true);
// 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);
url_print_intro($url, $cm, $course, true);
$fullurl = url_get_full_url($url, $cm, $course);
@ -306,7 +313,7 @@ function url_print_workaround($url, $cm, $course) {
* @return does not return
*/
function url_display_embed($url, $cm, $course) {
global $CFG, $PAGE, $OUTPUT;
global $PAGE, $OUTPUT, $USER;
$mimetype = resourcelib_guess_url_mimetype($url->externalurl);
$fullurl = url_get_full_url($url, $cm, $course);
@ -339,6 +346,12 @@ function url_display_embed($url, $cm, $course) {
url_print_header($url, $cm, $course);
url_print_heading($url, $cm, $course);
// 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);
echo $code;
url_print_intro($url, $cm, $course);

View File

@ -0,0 +1,118 @@
@mod @mod_url @core_completion
Feature: View activity completion information in the URL resource
In order to have visibility of URL completion requirements
As a student
I need to be able to view my URL 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"
Scenario: View automatic completion items in automatic display mode
Given I am on "Course 1" course homepage with editing mode on
And I add a "URL" to section "1" and I fill the form with:
| Name | Music history |
| External URL | https://moodle.org/ |
| Display | Automatic |
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
# Teacher view.
And I follow "Music history"
And "Music history" should have the "View" completion condition
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 "View" completion condition of "Music history" is displayed as "done"
Scenario: View automatic completion items in embed display mode
Given I am on "Course 1" course homepage with editing mode on
And I add a "URL" to section "1" and I fill the form with:
| Name | Music history |
| External URL | https://moodle.org/ |
| Display | Embed |
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
# Teacher view.
And I follow "Music history"
And "Music history" should have the "View" completion condition
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 "View" completion condition of "Music history" is displayed as "done"
Scenario: View automatic completion items in open display mode
Given I am on "Course 1" course homepage with editing mode on
And I add a "URL" to section "1" and I fill the form with:
| Name | Music history |
| External URL | https://moodle.org/ |
| Display | Open |
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
# Teacher view.
And I follow "Music history"
And "Music history" should have the "View" completion condition
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 "View" completion condition of "Music history" is displayed as "done"
Scenario: View automatic completion items in pop-up display mode
Given I am on "Course 1" course homepage with editing mode on
And I add a "URL" to section "1" and I fill the form with:
| Name | Music history |
| External URL | https://moodle.org/ |
| Display | In pop-up |
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
# Teacher view.
And I follow "Music history"
And "Music history" should have the "View" completion condition
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 "View" completion condition of "Music history" is displayed as "done"
@javascript
Scenario: Use manual completion
Given I am on "Course 1" course homepage with editing mode on
And I add a "URL" to section "1" and I fill the form with:
| Name | Music history |
| External URL | https://moodle.org/ |
| Display | Automatic |
| Completion tracking | Students can manually mark the activity as completed |
# 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"