MDL-10107 Fixed the definition of message providers ... it now works through files...
[moodle.git] / mod / quiz / db / upgrade.php
1 <?php  // $Id$
3 // This file keeps track of upgrades to
4 // the quiz module
5 //
6 // Sometimes, changes between versions involve
7 // alterations to database structures and other
8 // major things that may break installations.
9 //
10 // The upgrade function in this file will attempt
11 // to perform all the necessary actions to upgrade
12 // your older installtion to the current version.
13 //
14 // If there's something it cannot do itself, it
15 // will tell you what you need to do.
16 //
17 // The commands in here will all be database-neutral,
18 // using the methods of database_manager class
20 function xmldb_quiz_upgrade($oldversion=0) {
22     global $CFG, $THEME, $DB;
23     
24     $dbman = $DB->get_manager();
26     $result = true;
28 //===== 1.9.0 upgrade line ======//
30     if ($result && $oldversion < 2008062000) {
32     /// Define table quiz_report to be created
33         $table = new xmldb_table('quiz_report');
35     /// Adding fields to table quiz_report
36         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
37         $table->add_field('name', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
38         $table->add_field('displayorder', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
40     /// Adding keys to table quiz_report
41         $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
43     /// Conditionally launch create table for quiz_report
44         if (!$dbman->table_exists($table)) {
45             $dbman->create_table($table);
46         }
48         upgrade_mod_savepoint($result, 2008062000, 'quiz');
49     }
51     if ($result && $oldversion < 2008062001) {
52         $reporttoinsert = new object();
53         $reporttoinsert->name = 'overview';
54         $reporttoinsert->displayorder = 10000;
55         $result = $result && $DB->insert_record('quiz_report', $reporttoinsert);
57         $reporttoinsert = new object();
58         $reporttoinsert->name = 'responses';
59         $reporttoinsert->displayorder = 9000;
60         $result = $result && $DB->insert_record('quiz_report', $reporttoinsert);
62         $reporttoinsert = new object();
63         $reporttoinsert->name = 'statistics';
64         $reporttoinsert->displayorder = 8000;
65         $result = $result && $DB->insert_record('quiz_report', $reporttoinsert);
67         $reporttoinsert = new object();
68         $reporttoinsert->name = 'regrade';
69         $reporttoinsert->displayorder = 7000;
70         $result = $result && $DB->insert_record('quiz_report', $reporttoinsert);
72         $reporttoinsert = new object();
73         $reporttoinsert->name = 'grading';
74         $reporttoinsert->displayorder = 6000;
75         $result = $result && $DB->insert_record('quiz_report', $reporttoinsert);
77         upgrade_mod_savepoint($result, 2008062001, 'quiz');
78     }
79     
80     if ($result && $oldversion < 2008072402) {
82     /// Define field lastcron to be added to quiz_report
83         $table = new xmldb_table('quiz_report');
84         $field = new xmldb_field('lastcron', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'displayorder');
86     /// Conditionally launch add field lastcron
87         if (!$dbman->field_exists($table, $field)) {
88             $dbman->add_field($table, $field);
89         }
91     /// Define field cron to be added to quiz_report
92         $field = new xmldb_field('cron', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'lastcron');
94     /// Conditionally launch add field cron
95         if (!$dbman->field_exists($table, $field)) {
96             $dbman->add_field($table, $field);
97         }
99     /// quiz savepoint reached
100         upgrade_mod_savepoint($result, 2008072402, 'quiz');
101     }
103     if ($result && $oldversion < 2008072900) {
104     /// Delete the regrade report - it is now part of the overview report.
105         $result = $result && $DB->delete_records('quiz_report', array('name' => 'regrade'));
107     /// quiz savepoint reached
108         upgrade_mod_savepoint($result, 2008072900, 'quiz');
109     }
111     return $result;
114 ?>