From b1ab339ee0decc56e24db3e4d75ae40818d69bff Mon Sep 17 00:00:00 2001 From: Tomo Tsuyuki Date: Fri, 16 Jul 2021 09:27:50 +1000 Subject: [PATCH] MDL-70176 mod_forum: Grading respects separate groups filter --- .../local/renderers/discussion_list.php | 1 + .../behat/separate_group_grade_forum.feature | 74 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 mod/forum/tests/behat/separate_group_grade_forum.feature diff --git a/mod/forum/classes/local/renderers/discussion_list.php b/mod/forum/classes/local/renderers/discussion_list.php index c2ff8b61aaf..a3b85541e3b 100644 --- a/mod/forum/classes/local/renderers/discussion_list.php +++ b/mod/forum/classes/local/renderers/discussion_list.php @@ -186,6 +186,7 @@ class discussion_list { 'forum' => (array) $forumexporter->export($this->renderer), 'contextid' => $forum->get_context()->id, 'cmid' => $cm->id, + 'groupid' => $groupid, 'name' => format_string($forum->get_name()), 'courseid' => $course->id, 'coursename' => format_string($course->shortname), diff --git a/mod/forum/tests/behat/separate_group_grade_forum.feature b/mod/forum/tests/behat/separate_group_grade_forum.feature new file mode 100644 index 00000000000..add2b2a9f6c --- /dev/null +++ b/mod/forum/tests/behat/separate_group_grade_forum.feature @@ -0,0 +1,74 @@ +@mod @mod_forum @core_grades +Feature: I can grade a students by group with separate groups + In order to assess a student's contributions + As a teacher + I can assign grades to a student based on their separate groups + + Background: + Given the following "users" exist: + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@example.com | + | student1 | Student | 1 | student1@example.com | + | student2 | Student | 2 | student2@example.com | + | student3 | Student | 3 | student3@example.com | + And the following "courses" exist: + | fullname | shortname | category | + | Course 1 | C1 | 0 | + And the following "course enrolments" exist: + | user | course | role | + | teacher1 | C1 | editingteacher | + | student1 | C1 | student | + | student2 | C1 | student | + | student3 | C1 | student | + And the following "groups" exist: + | name | course | idnumber | + | Group A | C1 | G1 | + | Group B | C1 | G2 | + | Group C | C1 | G3 | + And the following "group members" exist: + | user | group | + | student1 | G1 | + | student2 | G2 | + | student1 | G3 | + | student2 | G3 | + | student3 | G3 | + And I log in as "teacher1" + And I am on "Course 1" course homepage + And I turn editing mode on + And I add a "Forum" to section "1" + And I expand all fieldsets + And I set the following fields to these values: + | Forum name | Test Forum 1 | + | Description | Test | + And I set the field "Whole forum grading > Type" to "Point" + And I set the field "Common module settings > Group mode" to "Separate groups" + And I press "Save and return to course" + And I follow "Test Forum 1" + + @javascript + Scenario: Grade users by group A + When I select "Group A" from the "Separate groups" singleselect + And I click on "Grade users" "button" + Then I should see "1 out of 1" + And I should not see "1 out of 2" + And I should not see "1 out of 3" + And I should see "Student 1" + And I should not see "Student 2" + + @javascript + Scenario: Grade users by group B + And I select "Group B" from the "Separate groups" singleselect + And I click on "Grade users" "button" + Then I should see "1 out of 1" + And I should not see "1 out of 2" + And I should not see "1 out of 3" + And I should not see "Student 1" + And I should see "Student 2" + + @javascript + Scenario: Grade users by group C + And I select "Group C" from the "Separate groups" singleselect + And I click on "Grade users" "button" + Then I should not see "1 out of 1" + And I should not see "1 out of 2" + And I should see "1 out of 3"