MDL-18961, MDL-12942, MDL-18960 - added better extra credit upgrade, fixed potential problem with bogus coefs value for simple mean in current installs + finally fixed long standing "no course total" bug

This commit is contained in:
skodak
2009-04-24 18:07:23 +00:00
parent f2c7967ce5
commit fa297173a7
3 changed files with 24 additions and 8 deletions
+20 -2
View File
@@ -2041,11 +2041,11 @@ function xmldb_main_upgrade($oldversion=0) {
execute_sql($sql, true);
/// convert old aggregation constants if needed
for ($i=0; $i<=12; $i=$i+2) {
/*for ($i=0; $i<=12; $i=$i+2) {
$j = $i+1;
$sql = "UPDATE {$CFG->prefix}grade_categories SET aggregation = $i, aggregateonlygraded = 1 WHERE aggregation = $j";
execute_sql($sql, true);
}
}*/ // not needed anymore - breaks upgrade now
upgrade_main_savepoint($result, 2007090503);
}
@@ -3113,6 +3113,24 @@ function xmldb_main_upgrade($oldversion=0) {
upgrade_main_savepoint($result, 2007101545.01);
}
if ($result && $oldversion < 2007101546.02) {
if (empty($CFG->gradebook_latest195_upgrade)) {
require_once($CFG->libdir.'/gradelib.php'); // we need constants only
// reset current coef for simple mean items - it may contain some rubbish ;-)
$sql = "UPDATE {$CFG->prefix}grade_items
SET aggregationcoef = 0
WHERE categoryid IN (SELECT gc.id
FROM {$CFG->prefix}grade_categories gc
WHERE gc.aggregation = ".GRADE_AGGREGATE_WEIGHTED_MEAN2.")";
$result = execute_sql($sql);
} else {
// direct upgrade from 1.8.x - no need to reset coef, because it is already ok
unset_config('gradebook_latest195_upgrade');
}
upgrade_main_savepoint($result, 2007101546.02);
}
return $result;
}
+3 -5
View File
@@ -242,11 +242,6 @@ function upgrade_18_gradebook($courseid) {
}
$newitems[$olditem->id] = $item;
if ($olditem->extra_credit and $categories[$olditem->category]->aggregation != GRADE_AGGREGATE_EXTRACREDIT_MEAN) {
$categories[$olditem->category]->aggregation = GRADE_AGGREGATE_EXTRACREDIT_MEAN;
update_record('grade_categories', $categories[$olditem->category]);
}
}
unset($olditems);
@@ -265,6 +260,9 @@ function upgrade_18_gradebook($courseid) {
}
}
// flag indicating new 1.9.5 upgrade routine
set_config('gradebook_latest195_upgrade', 1);
return true;
}
+1 -1
View File
@@ -6,7 +6,7 @@
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
$version = 2007101546.01; // YYYYMMDD = date of the 1.9 branch (don't change)
$version = 2007101546.02; // YYYYMMDD = date of the 1.9 branch (don't change)
// X = release number 1.9.[0,1,2,3,4,5...]
// Y.YY = micro-increments between releases