Commit | Line | Data |
---|---|---|
bbd0e548 DW |
1 | <?php |
2 | // This file is part of Moodle - http://moodle.org/ | |
3 | // | |
4 | // Moodle is free software: you can redistribute it and/or modify | |
5 | // it under the terms of the GNU General Public License as published by | |
6 | // the Free Software Foundation, either version 3 of the License, or | |
7 | // (at your option) any later version. | |
8 | // | |
9 | // Moodle is distributed in the hope that it will be useful, | |
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | // GNU General Public License for more details. | |
13 | // | |
14 | // You should have received a copy of the GNU General Public License | |
15 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
17 | /** | |
18 | * Upgrade code for install | |
19 | * | |
20 | * @package mod_assign | |
21 | * @copyright 2012 NetSpot {@link http://www.netspot.com.au} | |
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
23 | */ | |
24 | ||
25 | /** | |
26 | * upgrade this assignment instance - this function could be skipped but it will be needed later | |
27 | * @param int $oldversion The old version of the assign module | |
28 | * @return bool | |
29 | */ | |
30 | function xmldb_assign_upgrade($oldversion) { | |
3f7b501e SH |
31 | global $CFG, $DB; |
32 | ||
33 | $dbman = $DB->get_manager(); | |
34 | ||
75f87a57 | 35 | if ($oldversion < 2012051700) { |
3f7b501e SH |
36 | |
37 | // Define field sendlatenotifications to be added to assign | |
38 | $table = new xmldb_table('assign'); | |
39 | $field = new xmldb_field('sendlatenotifications', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'sendnotifications'); | |
40 | ||
41 | // Conditionally launch add field sendlatenotifications | |
42 | if (!$dbman->field_exists($table, $field)) { | |
43 | $dbman->add_field($table, $field); | |
44 | } | |
45 | ||
46 | // Assign savepoint reached. | |
47 | upgrade_mod_savepoint(true, 2012051700, 'assign'); | |
75f87a57 | 48 | } |
d3d1fec2 AB |
49 | |
50 | // Moodle v2.3.0 release upgrade line | |
51 | // Put any upgrade step following this | |
52 | ||
94f26900 DW |
53 | if ($oldversion < 2012071800) { |
54 | ||
55 | // Define field requiresubmissionstatement to be added to assign | |
56 | $table = new xmldb_table('assign'); | |
57 | $field = new xmldb_field('requiresubmissionstatement', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'timemodified'); | |
58 | ||
59 | // Conditionally launch add field requiresubmissionstatement | |
60 | if (!$dbman->field_exists($table, $field)) { | |
61 | $dbman->add_field($table, $field); | |
62 | } | |
63 | ||
64 | // Assign savepoint reached. | |
65 | upgrade_mod_savepoint(true, 2012071800, 'assign'); | |
66 | } | |
3a66d425 | 67 | |
79ed4d84 DW |
68 | if ($oldversion < 2012081600) { |
69 | ||
3a66d425 | 70 | // Define field sendlatenotifications to be added to assign. |
79ed4d84 DW |
71 | $table = new xmldb_table('assign'); |
72 | $field = new xmldb_field('completionsubmit', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'timemodified'); | |
73 | ||
3a66d425 | 74 | // Conditionally launch add field sendlatenotifications. |
79ed4d84 DW |
75 | if (!$dbman->field_exists($table, $field)) { |
76 | $dbman->add_field($table, $field); | |
77 | } | |
78 | ||
79 | // Assign savepoint reached. | |
80 | upgrade_mod_savepoint(true, 2012081600, 'assign'); | |
81 | } | |
3f7b501e | 82 | |
9e795179 DW |
83 | // Individual extension dates support. |
84 | if ($oldversion < 2012082100) { | |
85 | ||
86 | // Define field sendlatenotifications to be added to assign. | |
87 | $table = new xmldb_table('assign'); | |
88 | $field = new xmldb_field('cutoffdate', XMLDB_TYPE_INTEGER, '10', null, | |
89 | XMLDB_NOTNULL, null, '0', 'completionsubmit'); | |
90 | ||
91 | // Conditionally launch add field sendlatenotifications. | |
92 | if (!$dbman->field_exists($table, $field)) { | |
93 | $dbman->add_field($table, $field); | |
94 | } | |
95 | // If prevent late is on - set cutoffdate to due date. | |
96 | ||
97 | // Now remove the preventlatesubmissions column. | |
98 | $field = new xmldb_field('preventlatesubmissions', XMLDB_TYPE_INTEGER, '2', null, | |
99 | XMLDB_NOTNULL, null, '0', 'nosubmissions'); | |
100 | if ($dbman->field_exists($table, $field)) { | |
101 | // Set the cutoffdate to the duedate if preventlatesubmissions was enabled. | |
102 | $sql = 'UPDATE {assign} SET cutoffdate = duedate WHERE preventlatesubmissions = 1'; | |
103 | $DB->execute($sql); | |
104 | ||
105 | $dbman->drop_field($table, $field); | |
106 | } | |
107 | ||
108 | // Define field extensionduedate to be added to assign_grades | |
109 | $table = new xmldb_table('assign_grades'); | |
110 | $field = new xmldb_field('extensionduedate', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'mailed'); | |
111 | ||
112 | // Conditionally launch add field extensionduedate | |
113 | if (!$dbman->field_exists($table, $field)) { | |
114 | $dbman->add_field($table, $field); | |
115 | } | |
116 | ||
117 | // Assign savepoint reached. | |
118 | upgrade_mod_savepoint(true, 2012082100, 'assign'); | |
119 | } | |
120 | ||
121 | ||
bbd0e548 DW |
122 | return true; |
123 | } | |
124 | ||
125 |