From 0953a4e7bc461235c5c51784f02a327826780d7c Mon Sep 17 00:00:00 2001 From: sam_marshall Date: Mon, 24 Nov 2008 17:09:55 +0000 Subject: [PATCH] MDL-15499 Database tables for conditional activities (code to follow! I hope) --- lib/db/install.xml | 33 +++++++++++++++++++++++++--- lib/db/upgrade.php | 55 ++++++++++++++++++++++++++++++++++++++++++++++ version.php | 2 +- 3 files changed, 86 insertions(+), 4 deletions(-) diff --git a/lib/db/install.xml b/lib/db/install.xml index 277e401154..0340da70c5 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -128,7 +128,7 @@ - +
@@ -137,6 +137,7 @@ + @@ -146,12 +147,17 @@ + - + + + + + @@ -161,7 +167,27 @@
- + +
+ + + + + + + + + + + + + + + + +
+ + @@ -171,6 +197,7 @@ + diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 8904ad4c53..39a7f661be 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1056,6 +1056,61 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint($result, 2008111801); } + if ($result && $oldversion < 2008112400) { + + /// Define field availablefrom to be added to course_modules + $table = new xmldb_table('course_modules'); + $field = new xmldb_field('availablefrom', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'completionexpected'); + + /// Conditionally launch add field availablefrom + if (!$dbman->field_exists($table, $field)) { + $dbman->add_field($table, $field); + } + + /// Define field availableuntil to be added to course_modules + $field = new xmldb_field('availableuntil', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'availablefrom'); + + /// Conditionally launch add field availableuntil + if (!$dbman->field_exists($table, $field)) { + $dbman->add_field($table, $field); + } + + /// Define field showavailability to be added to course_modules + $field = new xmldb_field('showavailability', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'availableuntil'); + + /// Conditionally launch add field showavailability + if (!$dbman->field_exists($table, $field)) { + $dbman->add_field($table, $field); + } + + /// Define table course_modules_availability to be created + $table = new xmldb_table('course_modules_availability'); + + /// Adding fields to table course_modules_availability + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->add_field('coursemoduleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null); + $table->add_field('sourcecmid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null); + $table->add_field('requiredcompletion', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, null); + $table->add_field('gradeitemid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null); + $table->add_field('grademin', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null); + $table->add_field('grademax', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null); + + /// Adding keys to table course_modules_availability + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $table->add_key('fk_coursemoduleid', XMLDB_KEY_FOREIGN, array('coursemoduleid'), 'course_modules', array('id')); + $table->add_key('fk_sourcecmid', XMLDB_KEY_FOREIGN, array('sourcecmid'), 'course_modules', array('id')); + $table->add_key('fk_gradeitemid', XMLDB_KEY_FOREIGN, array('gradeitemid'), 'grade_items', array('id')); + + /// Conditionally launch create table for course_modules_availability + if (!$dbman->table_exists($table)) { + $dbman->create_table($table); + } + + /// Main savepoint reached + upgrade_main_savepoint($result, 2008112400); + } + + return $result; } diff --git a/version.php b/version.php index b7338a196f..862ceefb0e 100644 --- a/version.php +++ b/version.php @@ -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 = 2008112101; // YYYYMMDD = date of the last version bump + $version = 2008112400; // YYYYMMDD = date of the last version bump // XX = daily increments $release = '2.0 dev (Build: 20081124)'; // Human-friendly version name -- 2.39.5