MDL-69017 user: Show all links should work for students

This commit is contained in:
Andrew Nicols 2020-06-11 12:13:09 +08:00
parent 71a34a039f
commit d3bfae8fcc
2 changed files with 39 additions and 31 deletions

View File

@ -171,19 +171,17 @@ $participanttable->out($perpage, true);
$participanttablehtml = ob_get_contents();
ob_end_clean();
if ($bulkoperations) {
echo html_writer::start_tag('form', [
'action' => 'action_redir.php',
'method' => 'post',
'id' => 'participantsform',
'data-course-id' => $course->id,
'data-table-unique-id' => $participanttable->uniqueid,
'data-table-default-per-page' => ($perpage < DEFAULT_PAGE_SIZE) ? $perpage : DEFAULT_PAGE_SIZE,
]);
echo '<div>';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="returnto" value="'.s($PAGE->url->out(false)).'" />';
}
echo html_writer::start_tag('form', [
'action' => 'action_redir.php',
'method' => 'post',
'id' => 'participantsform',
'data-course-id' => $course->id,
'data-table-unique-id' => $participanttable->uniqueid,
'data-table-default-per-page' => ($perpage < DEFAULT_PAGE_SIZE) ? $perpage : DEFAULT_PAGE_SIZE,
]);
echo '<div>';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="returnto" value="'.s($PAGE->url->out(false)).'" />';
echo html_writer::tag(
'p',
@ -229,6 +227,10 @@ echo $OUTPUT->container(html_writer::link(
]
), [], 'showall');
$bulkoptions = (object) [
'uniqueid' => $participanttable->uniqueid,
];
if ($bulkoperations) {
echo '<br /><div class="buttons"><div class="form-inline">';
@ -310,15 +312,12 @@ if ($bulkoperations) {
echo '<input type="hidden" name="id" value="' . $course->id . '" />';
echo '<div class="d-none" data-region="state-help-icon">' . $OUTPUT->help_icon('publishstate', 'notes') . '</div>';
echo '</div></div></div>';
echo '</form>';
$options = (object) [
'uniqueid' => $participanttable->uniqueid,
'noteStateNames' => note_get_state_names(),
];
$PAGE->requires->js_call_amd('core_user/participants', 'init', [$options]);
$bulkoptions->noteStateNames = note_get_state_names();
}
echo '</form>';
$PAGE->requires->js_call_amd('core_user/participants', 'init', [$bulkoptions]);
echo '</div>'; // Userlist.
$enrolrenderer = $PAGE->get_renderer('core_enrol');

View File

@ -1,4 +1,5 @@
@core @core_user
Feature: Course participants can be filtered to display all the users
In order to filter the list of course participants
As a user
@ -6,9 +7,9 @@ Feature: Course participants can be filtered to display all the users
Background:
Given the following "courses" exist:
| fullname | shortname | groupmode |
| Course 1 | C1 | 1 |
| Course 2 | C2 | 0 |
| fullname | shortname |
| Course 1 | C1 |
| Course 2 | C2 |
And the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
@ -67,15 +68,6 @@ Feature: Course participants can be filtered to display all the users
| student3 | C2 | student | 0 | |
| teacher1 | C1 | editingteacher | 0 | |
| teacher1 | C2 | editingteacher | 0 | |
And the following "groups" exist:
| name | course | idnumber |
| Group 1 | C1 | G1 |
| Group 2 | C1 | G2 |
And the following "group members" exist:
| user | group |
| student2 | G1 |
| student2 | G2 |
| student3 | G2 |
@javascript
Scenario: Show all users in a course that match a single filter value
@ -95,6 +87,23 @@ Feature: Course participants can be filtered to display all the users
And I should see "Show 20 per page"
And I should not see "Show all 24"
@javascript
Scenario: Show all users as a student
Given I log in as "student1"
And I am on "Course 1" course homepage
And I navigate to course participants
And I set the field "Match" in the "Filter 1" "fieldset" to "All"
And I set the field "type" in the "Filter 1" "fieldset" to "Roles"
And I click on ".form-autocomplete-downarrow" "css_element" in the "Filter 1" "fieldset"
And I click on "Student" "list_item"
When I click on "Apply filters" "button"
Then I should see "24 participants found"
And I should see "Show all 24"
And I should not see "Show 20 per page"
And I click on "Show all 24" "link"
And I should see "Show 20 per page"
And I should not see "Show all 24"
@javascript
Scenario: Apply one value for more than one filter and show all matching users
Given I log in as "teacher1"