From c9441e34ca6a3453d572e471f6dd512d9c7aebc9 Mon Sep 17 00:00:00 2001 From: gbateson Date: Fri, 28 Apr 2006 02:06:58 +0000 Subject: [PATCH] allow negative score and weighting in hotpot_responses table --- mod/hotpot/db/mysql.php | 2 +- mod/hotpot/db/mysql.sql | 4 ++-- mod/hotpot/db/postgres7.php | 2 +- mod/hotpot/db/update_to_v2.php | 13 +++++++++---- mod/hotpot/version.php | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/mod/hotpot/db/mysql.php b/mod/hotpot/db/mysql.php index 9b7ee1ba55..561f6260c5 100644 --- a/mod/hotpot/db/mysql.php +++ b/mod/hotpot/db/mysql.php @@ -33,7 +33,7 @@ function hotpot_upgrade($oldversion) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_17(); } - if ($oldversion < 2006042802) { + if ($oldversion < 2006042803) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_18(); } diff --git a/mod/hotpot/db/mysql.sql b/mod/hotpot/db/mysql.sql index 747c7d0d00..f1136ba2d2 100644 --- a/mod/hotpot/db/mysql.sql +++ b/mod/hotpot/db/mysql.sql @@ -77,8 +77,8 @@ CREATE TABLE prefix_hotpot_responses ( id int(10) unsigned NOT NULL auto_increment, attempt int(10) unsigned NOT NULL default '0', question int(10) unsigned NOT NULL default '0', - score smallint(6) unsigned NOT NULL default '0', - weighting smallint(6) unsigned NOT NULL default '0', + score smallint(6) NOT NULL default '0', + weighting smallint(6) NOT NULL default '0', correct varchar(255) NOT NULL default '', wrong varchar(255) NOT NULL default '', ignored varchar(255) NOT NULL default '', diff --git a/mod/hotpot/db/postgres7.php b/mod/hotpot/db/postgres7.php index 8c7a3e8d3a..fc972b1424 100644 --- a/mod/hotpot/db/postgres7.php +++ b/mod/hotpot/db/postgres7.php @@ -37,7 +37,7 @@ function hotpot_upgrade($oldversion) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_17(); } - if ($oldversion < 2006042802) { + if ($oldversion < 2006042803) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_18(); } diff --git a/mod/hotpot/db/update_to_v2.php b/mod/hotpot/db/update_to_v2.php index cd578f34b9..80523b6fbc 100644 --- a/mod/hotpot/db/update_to_v2.php +++ b/mod/hotpot/db/update_to_v2.php @@ -10,6 +10,11 @@ function hotpot_update_to_v2_1_18() { $ok = $ok && hotpot_remove_orphans('hotpot_responses', 'question', 'hotpot_questions'); $ok = $ok && hotpot_remove_orphans('hotpot_details', 'attempt', 'hotpot_attempts'); + // allow negative weighting and scores + + $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'weighting', '6', false); + $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'score', '6', false); + return $ok; } function hotpot_remove_orphans($secondarytable, $secondarykeyfield, $primarytable, $primarykeyfield='id') { @@ -58,19 +63,19 @@ function hotpot_update_to_v2_1_17() { $ok = $ok && hotpot_denull_int_field('hotpot_questions', 'type', '4'); $ok = $ok && hotpot_denull_int_field('hotpot_questions', 'text', '10'); - $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'weighting', '6'); - $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'score', '6'); + $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'weighting', '6', false); + $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'score', '6', false); $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'hints', '6'); $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'clues', '6'); $ok = $ok && hotpot_denull_int_field('hotpot_responses', 'checks', '6'); return $ok; } -function hotpot_denull_int_field($table, $field, $size) { +function hotpot_denull_int_field($table, $field, $size, $unsigned=true) { global $CFG; $ok = true; $ok = $ok && execute_sql("UPDATE {$CFG->prefix}$table SET $field=0 WHERE $field IS NULL", false); - $ok = $ok && hotpot_db_update_field_type($table, $field, $field, 'INTEGER', $size, 'UNSIGNED', 'NOT NULL', 0); + $ok = $ok && hotpot_db_update_field_type($table, $field, $field, 'INTEGER', $size, $unsigned, 'NOT NULL', 0); return $ok; } diff --git a/mod/hotpot/version.php b/mod/hotpot/version.php index a596514fc1..4fc509c18b 100644 --- a/mod/hotpot/version.php +++ b/mod/hotpot/version.php @@ -3,7 +3,7 @@ /// Code fragment to define the version of hotpot /// This fragment is called by moodle_needs_upgrading() and /admin/index.php ///////////////////////////////////////////////////////////////////////////////// -$module->version = 2006042802; // release date of this version (see note below) +$module->version = 2006042803; // release date of this version (see note below) $module->release = 'v2.1.18'; // human-friendly version name (used in mod/hotpot/lib.php) $module->cron = 0; // period for cron to check this module (secs) // interpretation of YYYYMMDDXY version numbers -- 2.39.5