Merge branch 'wip-MDL-51552-master' of git://github.com/abgreeve/moodle

This commit is contained in:
Andrew Nicols 2015-10-30 11:01:00 +08:00
commit ee0546291a
4 changed files with 18 additions and 28 deletions

View file

@ -333,19 +333,13 @@ class grade extends tablelike implements selectable_items, filterable_items {
$data->$field = empty($grade) ? $null : $grade->finalgrade; $data->$field = empty($grade) ? $null : $grade->finalgrade;
$data->{"old$field"} = $data->$field; $data->{"old$field"} = $data->$field;
preg_match('/_(\d+)_(\d+)/', $field, $oldoverride);
$oldoverride = 'oldoverride' . $oldoverride[0];
if (empty($data->$oldoverride)) {
$data->$field = (!isset($grade->rawgrade)) ? $null : $grade->rawgrade;
}
} }
} }
foreach ($data as $varname => $value) { foreach ($data as $varname => $value) {
if (preg_match('/^oldoverride_(\d+)_(\d+)/', $varname, $matches)) { if (preg_match('/^oldoverride_(\d+)_(\d+)/', $varname, $matches)) {
// If we've selected override or overriding all grades. // If we've selected overriding all grades.
if (!empty($data->$matches[0]) || $filter == 'all') { if ($filter == 'all') {
$override = "override_{$matches[1]}_{$matches[2]}"; $override = "override_{$matches[1]}_{$matches[2]}";
$data->$override = '1'; $data->$override = '1';
} }

View file

@ -336,29 +336,32 @@ class user extends tablelike implements selectable_items {
} }
$oldfinalgradefield = "oldfinalgrade_{$gradeitem->id}_{$this->itemid}"; $oldfinalgradefield = "oldfinalgrade_{$gradeitem->id}_{$this->itemid}";
if (!empty($data->$oldfinalgradefield)) { // Bulk grade changes for all grades need to be processed and shouldn't be skipped if they had a previous grade.
if ($gradeitem->is_course_item() || ($filter != 'all' && !empty($data->$oldfinalgradefield))) {
if ($gradeitem->is_course_item()) {
// The course total should not be overridden.
unset($data->$field);
unset($data->oldfinalgradefield);
$oldoverride = "oldoverride_{$gradeitem->id}_{$this->itemid}";
unset($data->$oldoverride);
$oldfeedback = "oldfeedback_{$gradeitem->id}_{$this->itemid}";
unset($data->$oldfeedback);
}
continue; continue;
} }
$grade = grade_grade::fetch(array( $grade = grade_grade::fetch(array(
'itemid' => $this->itemid, 'itemid' => $gradeitemid,
'userid' => $userid 'userid' => $userid
)); ));
$data->$field = empty($grade) ? $null : $grade->finalgrade; $data->$field = empty($grade) ? $null : $grade->finalgrade;
$data->{"old$field"} = $data->$field; $data->{"old$field"} = $data->$field;
preg_match('/_(\d+)_(\d+)/', $field, $oldoverride);
$oldoverride = 'oldoverride' . $oldoverride[0];
if (empty($data->$oldoverride)) {
$data->$field = (!isset($grade->rawgrade)) ? $null : $grade->rawgrade;
}
} }
foreach ($data as $varname => $value) { foreach ($data as $varname => $value) {
if (preg_match('/^oldoverride_(\d+)_(\d+)/', $varname, $matches)) { if (preg_match('/^oldoverride_(\d+)_(\d+)/', $varname, $matches)) {
// If we've selected override or overriding all grades. // If we've selected overriding all grades.
if (!empty($data->$matches[0]) || $filter == 'all') { if ($filter == 'all') {
$override = "override_{$matches[1]}_{$matches[2]}"; $override = "override_{$matches[1]}_{$matches[2]}";
$data->$override = '1'; $data->$override = '1';
} }

View file

@ -47,14 +47,7 @@ class finalgrade extends grade_attribute_format implements unique_value, be_disa
public function get_value() { public function get_value() {
$this->label = $this->grade->grade_item->itemname; $this->label = $this->grade->grade_item->itemname;
$isoverridden = $this->grade->is_overridden(); $val = $this->grade->finalgrade;
// If the grade is overridden or the grade type is not an activity then use finalgrade.
if (!empty($isoverridden) || $this->grade->grade_item->itemtype != 'mod') {
$val = $this->grade->finalgrade;
} else {
$val = $this->grade->rawgrade;
}
if ($this->grade->grade_item->scaleid) { if ($this->grade->grade_item->scaleid) {
return $val ? (int)$val : -1; return $val ? (int)$val : -1;
} else { } else {

View file

@ -105,7 +105,7 @@ Feature: We can use Single view
And I set the field "Insert value" to "1.0" And I set the field "Insert value" to "1.0"
And I click on "Perform bulk insert" "checkbox" And I click on "Perform bulk insert" "checkbox"
And I press "Save" And I press "Save"
Then I should see "Grades were set for 9 items" Then I should see "Grades were set for 8 items"
Scenario: Navigation works in the Single view. Scenario: Navigation works in the Single view.
Given I follow "Single view for Student 1" Given I follow "Single view for Student 1"