mirror of
https://github.com/moodle/moodle.git
synced 2025-08-07 09:56:38 +02:00
MDL-47704 Grades: Fix for set_usedinaggregation
Used in aggregation was not resetting previously set values when recalculating an aggregation. This meant that items no longer in the aggregation, were displayed with stale weights in the user report.
This commit is contained in:
parent
ec72585d64
commit
ba0d27735a
1 changed files with 18 additions and 0 deletions
|
@ -783,6 +783,24 @@ class grade_category extends grade_object {
|
|||
private function set_usedinaggregation($userid, $usedweights, $novalue, $dropped, $extracredit) {
|
||||
global $DB;
|
||||
|
||||
// First set them all to weight null and status = 'unknown'.
|
||||
if ($allitems = grade_item::fetch_all(array('categoryid'=>$this->id))) {
|
||||
list($itemsql, $itemlist) = $DB->get_in_or_equal(array_keys($allitems), SQL_PARAMS_NAMED, 'g');
|
||||
|
||||
$itemlist['userid'] = $userid;
|
||||
|
||||
$DB->set_field_select('grade_grades',
|
||||
'aggregationstatus',
|
||||
'unknown',
|
||||
"itemid $itemsql AND userid = :userid",
|
||||
$itemlist);
|
||||
$DB->set_field_select('grade_grades',
|
||||
'aggregationweight',
|
||||
0,
|
||||
"itemid $itemsql AND userid = :userid",
|
||||
$itemlist);
|
||||
}
|
||||
|
||||
// Included.
|
||||
if (!empty($usedweights)) {
|
||||
// The usedweights items are updated individually to record the weights.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue