Merge branch 'MDL-52218_master_alt' of git://github.com/markn86/moodle
This commit is contained in:
@@ -38,6 +38,13 @@ class grade_report_grader extends grade_report {
|
||||
*/
|
||||
public $grades;
|
||||
|
||||
/**
|
||||
* Contains all the grades for the course - even the ones not displayed in the grade tree.
|
||||
*
|
||||
* @var array $allgrades
|
||||
*/
|
||||
private $allgrades;
|
||||
|
||||
/**
|
||||
* Array of errors for bulk grades updating.
|
||||
* @var array $gradeserror
|
||||
@@ -538,8 +545,10 @@ class grade_report_grader extends grade_report {
|
||||
|
||||
if ($grades = $DB->get_records_sql($sql, $params)) {
|
||||
foreach ($grades as $graderec) {
|
||||
$grade = new grade_grade($graderec, false);
|
||||
$this->allgrades[$graderec->userid][$graderec->itemid] = $grade;
|
||||
if (in_array($graderec->userid, $userids) and array_key_exists($graderec->itemid, $this->gtree->get_items())) { // some items may not be present!!
|
||||
$this->grades[$graderec->userid][$graderec->itemid] = new grade_grade($graderec, false);
|
||||
$this->grades[$graderec->userid][$graderec->itemid] = $grade;
|
||||
$this->grades[$graderec->userid][$graderec->itemid]->grade_item = $this->gtree->get_item($graderec->itemid); // db caching
|
||||
}
|
||||
}
|
||||
@@ -553,6 +562,8 @@ class grade_report_grader extends grade_report {
|
||||
$this->grades[$userid][$itemid]->itemid = $itemid;
|
||||
$this->grades[$userid][$itemid]->userid = $userid;
|
||||
$this->grades[$userid][$itemid]->grade_item = $this->gtree->get_item($itemid); // db caching
|
||||
|
||||
$this->allgrades[$userid][$itemid] = $this->grades[$userid][$itemid];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -898,13 +909,23 @@ class grade_report_grader extends grade_report {
|
||||
}
|
||||
$jsscales = $scalesarray;
|
||||
|
||||
// Get all the grade items if the user can not view hidden grade items.
|
||||
// It is possible that the user is simply viewing the 'Course total' by switching to the 'Aggregates only' view
|
||||
// and that this user does not have the ability to view hidden items. In this case we still need to pass all the
|
||||
// grade items (in case one has been hidden) as the course total shown needs to be adjusted for this particular
|
||||
// user.
|
||||
if (!$this->canviewhidden) {
|
||||
$allgradeitems = grade_item::fetch_all(array('courseid' => $this->courseid));
|
||||
}
|
||||
|
||||
foreach ($this->users as $userid => $user) {
|
||||
|
||||
if ($this->canviewhidden) {
|
||||
$altered = array();
|
||||
$unknown = array();
|
||||
} else {
|
||||
$hidingaffected = grade_grade::get_hiding_affected($this->grades[$userid], $this->gtree->get_items());
|
||||
$usergrades = $this->allgrades[$userid];
|
||||
$hidingaffected = grade_grade::get_hiding_affected($usergrades, $allgradeitems);
|
||||
$altered = $hidingaffected['altered'];
|
||||
$unknown = $hidingaffected['unknown'];
|
||||
unset($hidingaffected);
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
@gradereport @gradereport_grader
|
||||
Feature: We can change what we are viewing on the grader report
|
||||
In order to check the expected results are displayed
|
||||
As a teacher
|
||||
I need to assign grades and check that they display correctly in the gradebook when switching between views.
|
||||
|
||||
Background:
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | format |
|
||||
| Course 1 | C1 | topics |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@example.com |
|
||||
| student1 | Student | 1 | student1@example.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add a "Assignment" to section "1" and I fill the form with:
|
||||
| Assignment name | Test assignment name 1 |
|
||||
| Description | Submit your online text |
|
||||
| assignsubmission_onlinetext_enabled | 1 |
|
||||
And I add a "Assignment" to section "1" and I fill the form with:
|
||||
| Assignment name | Test assignment name 2 |
|
||||
| Description | Submit your online text |
|
||||
| assignsubmission_onlinetext_enabled | 1 |
|
||||
And I log out
|
||||
And I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
And I follow "Test assignment name 1"
|
||||
When I press "Add submission"
|
||||
And I set the following fields to these values:
|
||||
| Online text | This is a submission for assignment 1 |
|
||||
And I press "Save changes"
|
||||
Then I should see "Submitted for grading"
|
||||
And I follow "Course 1"
|
||||
And I follow "Test assignment name 2"
|
||||
When I press "Add submission"
|
||||
And I set the following fields to these values:
|
||||
| Online text | This is a submission for assignment 2 |
|
||||
And I press "Save changes"
|
||||
Then I should see "Submitted for grading"
|
||||
And I log out
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I navigate to "Grades" node in "Course administration"
|
||||
And I turn editing mode on
|
||||
And I give the grade "80.00" to the user "Student 1" for the grade item "Test assignment name 1"
|
||||
And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment name 2"
|
||||
And I press "Save changes"
|
||||
And I turn editing mode off
|
||||
|
||||
@javascript
|
||||
Scenario: View and minimise the grader report containing hidden activities
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I open "Test assignment name 2" actions menu
|
||||
And I click on "Hide" "link" in the "Test assignment name 2" activity
|
||||
And I follow "Course 1"
|
||||
And I navigate to "Grades" node in "Course administration"
|
||||
And I select "Grader report" from the "Grade report" singleselect
|
||||
And I should see "Test assignment name 1"
|
||||
And I should see "Test assignment name 2"
|
||||
And I should see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- | -5- | -6- |
|
||||
| Student 1 | 80 | 90 | 170 |
|
||||
And I click on "Change to aggregates only" "link"
|
||||
And I should not see "Test assignment name 1"
|
||||
And I should not see "Test assignment name 2"
|
||||
And I should see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- |
|
||||
| Student 1 | 170 |
|
||||
And I click on "Change to grades only" "link"
|
||||
And I should see "Test assignment name 1"
|
||||
And I should see "Test assignment name 2"
|
||||
And I should not see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- | -5- |
|
||||
| Student 1 | 80 | 90 |
|
||||
|
||||
@javascript
|
||||
Scenario: View and minimise the grader report containing hidden activities without the 'moodle/grade:viewhidden' capability
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I open "Test assignment name 2" actions menu
|
||||
And I click on "Hide" "link" in the "Test assignment name 2" activity
|
||||
And I log out
|
||||
And I log in as "admin"
|
||||
And I set the following system permissions of "Teacher" role:
|
||||
| capability | permission |
|
||||
| moodle/grade:viewhidden | Prevent |
|
||||
And I log out
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I navigate to "Grades" node in "Course administration"
|
||||
And I select "Grader report" from the "Grade report" singleselect
|
||||
And I should see "Test assignment name 1"
|
||||
And I should see "Test assignment name 2"
|
||||
And I should see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- | -5- | -6- |
|
||||
| Student 1 | 80 | - | 80 |
|
||||
And I click on "Change to aggregates only" "link"
|
||||
And I should not see "Test assignment name 1"
|
||||
And I should not see "Test assignment name 2"
|
||||
And I should see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- |
|
||||
| Student 1 | 80 |
|
||||
And I click on "Change to grades only" "link"
|
||||
And I should see "Test assignment name 1"
|
||||
And I should see "Test assignment name 2"
|
||||
And I should not see "Course total"
|
||||
And the following should exist in the "user-grades" table:
|
||||
| -1- | -4- | -5- |
|
||||
| Student 1 | 80 | - |
|
||||
Reference in New Issue
Block a user