Allow warnings with same percentage but different warnlevel.
authorDan Marsden <dan@danmarsden.com>
Thu, 13 Jul 2017 01:11:05 +0000 (13:11 +1200)
committerDan Marsden <dan@danmarsden.com>
Thu, 13 Jul 2017 01:11:05 +0000 (13:11 +1200)
db/upgrade.php
version.php
warnings.php

index 1e61e16..9454dcc 100644 (file)
@@ -360,7 +360,6 @@ function xmldb_attendance_upgrade($oldversion=0) {
 
         // 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'));
 
         // Conditionally launch create table for attendance_warning.
         if (!$dbman->table_exists($table)) {
@@ -397,5 +396,18 @@ function xmldb_attendance_upgrade($oldversion=0) {
         upgrade_mod_savepoint(true, 2017062000, 'attendance');
     }
 
+    if ($oldversion < 2017071301) {
+        // Fix key.
+        $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);
+
+        // Attendance savepoint reached.
+        upgrade_mod_savepoint(true, 2017071301, 'attendance');
+    }
+
     return $result;
 }
index e90db9b..83f3064 100644 (file)
@@ -23,7 +23,7 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version  = 2017062201;
+$plugin->version  = 2017071301;
 $plugin->requires = 2017042100;
 $plugin->release = '3.3.9';
 $plugin->maturity  = MATURITY_ALPHA;
index d9cde6b..eaa3bba 100644 (file)
@@ -93,7 +93,8 @@ if ($data = $mform->get_data()) {
             $notify->thirdpartyemails = implode(',', $data->thirdpartyemails);
         }
         $existingrecord = $DB->record_exists('attendance_warning', array('idnumber' => $notify->idnumber,
-                                                                         'warningpercent' => $notify->warningpercent));
+                                                                         'warningpercent' => $notify->warningpercent,
+                                                                              'warnafter' => $notify->warnafter));
         if (empty($existingrecord)) {
             $DB->insert_record('attendance_warning', $notify);
             echo $OUTPUT->notification(get_string('warningupdated', 'mod_attendance'), 'success');