MDL-73760 Quiz: Manual grading report does not handle separate groups

when the user is not in any group
This commit is contained in:
Mahmoud Kassaei
2022-03-04 11:05:55 +00:00
parent 646c691107
commit 93052dde8d
2 changed files with 60 additions and 17 deletions
+7 -1
View File
@@ -323,7 +323,7 @@ class quiz_grading_report extends quiz_default_report {
* @param bool $includeauto whether to show automatically-graded questions.
*/
protected function display_index($includeauto) {
global $PAGE;
global $PAGE, $OUTPUT;
$this->print_header_and_tabs($this->cm, $this->course, $this->quiz, 'grading');
@@ -331,6 +331,12 @@ class quiz_grading_report extends quiz_default_report {
// Groups is being used.
groups_print_activity_menu($this->cm, $this->list_questions_url());
}
// Get the current group for the user looking at the report.
$currentgroup = $this->get_current_group($this->cm, $this->course, $this->context);
if ($currentgroup == self::NO_GROUPS_ALLOWED) {
echo $OUTPUT->notification(get_string('notingroup'));
return;
}
$statecounts = $this->get_question_state_summary(array_keys($this->questions));
if ($includeauto) {
$linktext = get_string('hideautomaticallygraded', 'quiz_grading');
@@ -8,14 +8,34 @@ Feature: Basic use of the Manual grading report
Given the following "users" exist:
| username | firstname | lastname | email | idnumber |
| teacher1 | T1 | Teacher1 | teacher1@example.com | T1000 |
| marker | M1 | Marker | marker@example.com | M1000 |
| student1 | S1 | Student1 | student1@example.com | S1000 |
| student2 | S2 | Student2 | student2@example.com | S2000 |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| marker | C1 | teacher |
| student1 | C1 | student |
| student2 | C1 | student |
And the following "groupings" exist:
| name | course | idnumber |
| Tutor groups | C1 | tging |
And the following "groups" exist:
| name | course | idnumber |
| Tutor group | C1 | tg |
| Marker group | C1 | mg |
And the following "grouping groups" exist:
| grouping | group |
| tging | tg |
And the following "group members" exist:
| user | group |
| teacher1 | tg |
| student1 | tg |
| marker | mg |
| student2 | mg |
And the following "question categories" exist:
| contextlevel | reference | name |
| Course | C1 | Test questions |
@@ -23,45 +43,50 @@ Feature: Basic use of the Manual grading report
| questioncategory | qtype | name | questiontext | answer 1 | grade |
| Test questions | shortanswer | Short answer 001 | Where is the capital city of France? | Paris | 100% |
And the following "activities" exist:
| activity | name | course | idnumber |
| quiz | Quiz 1 | C1 | quiz1 |
| activity | name | course | idnumber | groupmode | grouping |
| quiz | Quiz 1 | C1 | quiz1 | 1 | tging |
And quiz "Quiz 1" contains the following questions:
| question | page |
| Short answer 001 | 1 |
| question | page |
| Short answer 001 | 1 |
Scenario: Use the Manual grading report
# Check report shows nothing when there are no attempts.
Scenario: Manual grading report without attempts
When I am on the "Quiz 1" "mod_quiz > View" page logged in as "teacher1"
And I navigate to "Results > Manual grading" in current page administration
Then I should see "Manual grading"
Then I should see "Separate groups (Tutor groups)"
And I should see "All participants"
And I should see "Quiz 1"
And I should see "Questions that need grading"
And I should see "Nothing to display"
And I follow "Also show questions that have been graded automatically"
And I should see "Nothing to display"
# Use the manual grading report.
And user "student1" has attempted "Quiz 1" with responses:
Scenario: Manual grading report with attempts
Given user "student1" has attempted "Quiz 1" with responses:
| slot | response |
| 1 | Paris |
And I reload the page
When I am on the "Quiz 1" "mod_quiz > View" page logged in as "teacher1"
And I navigate to "Results > Manual grading" in current page administration
Then I should see "Separate groups (Tutor groups)"
And I should see "All participants"
And I should see "Quiz 1"
And I follow "Also show questions that have been graded automatically"
And I should see "Short answer 001"
And "Short answer 001" row "To grade" column of "questionstograde" table should contain "0"
And "Short answer 001" row "Already graded" column of "questionstograde" table should contain "0"
And I should see "Short answer 001"
And "Short answer 001" row "To grade" column of "questionstograde" table should contain "0"
And "Short answer 001" row "Already graded" column of "questionstograde" table should contain "0"
# Go to the grading page.
And I click on "update grades" "link" in the "Short answer 001" "table_row"
And I should see "Grading attempts 1 to 1 of 1"
# Test the display options.
And I set the field "Order attempts" to "By student ID number"
And I press "Change options"
# General feedback for Short answer 001 displays.
And I should see "That is a bad answer."
And I should see "The correct answer is: frog"
# Adjust the mark for Student1.
# Adjust the mark for Student1
And I set the field "Comment" to "I have adjusted your mark to 0.6"
And I set the field "Mark" to "0.6"
And I press "Save and go to next page"
@@ -98,7 +123,6 @@ Feature: Basic use of the Manual grading report
And I click on "update grades" "link" in the "Short answer 001" "table_row"
When I set the following fields to these values:
| Questions per page | 0 |
And I press "Change options"
Then I should see "You must enter a number that is greater than 0."
And I set the following fields to these values:
| Questions per page | -1 |
@@ -112,3 +136,16 @@ Feature: Basic use of the Manual grading report
| Questions per page | 1 |
And I press "Change options"
And I should not see "You must enter a number that is greater than 0."
Scenario: A marker cannot access the report in separate group
Given I am on the "Quiz 1" "mod_quiz > View" page logged in as "marker"
And user "student1" has attempted "Quiz 1" with responses:
| slot | response |
| 1 | frog |
And user "student2" has attempted "Quiz 1" with responses:
| slot | response |
| 1 | Duck |
When I navigate to "Results > Manual grading" in current page administration
Then I should see "Quiz 1"
And I should see "Separate groups: All participants"
Then I should see "Sorry, but you need to be part of a group to see this page."