|
|
@ -341,35 +341,6 @@ function xmldb_attendance_upgrade($oldversion=0) { |
|
|
|
upgrade_mod_savepoint(true, 2017060900, 'attendance'); |
|
|
|
} |
|
|
|
|
|
|
|
// Add new warning table. |
|
|
|
if ($oldversion < 2017061600) { |
|
|
|
|
|
|
|
// Define table attendance_warning to be created. |
|
|
|
$table = new xmldb_table('attendance_warning'); |
|
|
|
|
|
|
|
// Adding fields to table attendance_warning. |
|
|
|
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); |
|
|
|
$table->add_field('idnumber', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('warningpercent', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('warnafter', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailuser', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailsubject', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailcontent', XMLDB_TYPE_TEXT, null, null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailcontentformat', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('thirdpartyemails', XMLDB_TYPE_TEXT, null, null, null, null, null); |
|
|
|
|
|
|
|
// Adding keys to table attendance_warning. |
|
|
|
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); |
|
|
|
|
|
|
|
// Conditionally launch create table for attendance_warning. |
|
|
|
if (!$dbman->table_exists($table)) { |
|
|
|
$dbman->create_table($table); |
|
|
|
} |
|
|
|
|
|
|
|
// Attendance savepoint reached. |
|
|
|
upgrade_mod_savepoint(true, 2017061600, 'attendance'); |
|
|
|
} |
|
|
|
|
|
|
|
if ($oldversion < 2017062000) { |
|
|
|
|
|
|
|
// Define table attendance_warning_done to be created. |
|
|
@ -396,17 +367,45 @@ function xmldb_attendance_upgrade($oldversion=0) { |
|
|
|
upgrade_mod_savepoint(true, 2017062000, 'attendance'); |
|
|
|
} |
|
|
|
|
|
|
|
if ($oldversion < 2017071301) { |
|
|
|
// Fix key. |
|
|
|
if ($oldversion < 2017071305) { |
|
|
|
|
|
|
|
// Define table attendance_warning to be created. |
|
|
|
$table = new xmldb_table('attendance_warning'); |
|
|
|
if ($table->getkey('level_id')) { |
|
|
|
$table->deleteKey('level_id'); |
|
|
|
} |
|
|
|
$key = new xmldb_key('level_id', XMLDB_KEY_UNIQUE, array('idnumber, warningpercent, warnafter')); |
|
|
|
$dbman->add_key($table, $key); |
|
|
|
|
|
|
|
if (!$dbman->table_exists($table)) { |
|
|
|
// Adding fields to table attendance_warning. |
|
|
|
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); |
|
|
|
$table->add_field('idnumber', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('warningpercent', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('warnafter', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailuser', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailsubject', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailcontent', XMLDB_TYPE_TEXT, null, null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('emailcontentformat', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null); |
|
|
|
$table->add_field('thirdpartyemails', XMLDB_TYPE_TEXT, null, null, null, null, null); |
|
|
|
|
|
|
|
// Adding keys to table attendance_warning. |
|
|
|
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); |
|
|
|
$table->add_key('level_id', XMLDB_KEY_UNIQUE, array('idnumber, warningpercent, warnafter')); |
|
|
|
|
|
|
|
// Conditionally launch create table for attendance_warning. |
|
|
|
$dbman->create_table($table); |
|
|
|
|
|
|
|
} else { |
|
|
|
// Key definition is probably incorrect so fix it - drop_key dml function doesn't seem to work. |
|
|
|
$indexes = $DB->get_indexes('attendance_warning'); |
|
|
|
foreach ($indexes as $name => $index) { |
|
|
|
if ($DB->get_dbfamily() === 'mysql') { |
|
|
|
$DB->execute("ALTER TABLE {attendance_warning} DROP INDEX ". $name); |
|
|
|
} else { |
|
|
|
$DB->execute("DROP INDEX ". $name); |
|
|
|
} |
|
|
|
} |
|
|
|
$index = new xmldb_key('level_id', XMLDB_KEY_UNIQUE, array('idnumber, warningpercent', 'warnafter')); |
|
|
|
$dbman->add_key($table, $index); |
|
|
|
} |
|
|
|
// Attendance savepoint reached. |
|
|
|
upgrade_mod_savepoint(true, 2017071301, 'attendance'); |
|
|
|
upgrade_mod_savepoint(true, 2017071305, 'attendance'); |
|
|
|
} |
|
|
|
|
|
|
|
return $result; |
|
|
|