// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
- if ($oldversion < 2017031600) {
++ if ($oldversion < 2017032800) {
+
+ // Delete duplicated records in feedback_completed. We just keep the last record of completion.
+ // Related values in feedback_value won't be deleted (they won't be used and can be kept there as a backup).
+ $sql = "SELECT MAX(id) as maxid, userid, feedback, courseid
+ FROM {feedback_completed}
+ WHERE userid <> 0
+ GROUP BY userid, feedback, courseid
+ HAVING COUNT(id) > 1";
+
- if ($duplicatedrows = $DB->get_recordset_sql($sql)) {
- foreach ($duplicatedrows as $row) {
- $DB->delete_records_select('feedback_completed', 'userid = ? AND feedback = ? AND courseid = ? AND id <> ?', array(
- $row->userid,
- $row->feedback,
- $row->courseid,
- $row->maxid,
- ));
- }
++ $duplicatedrows = $DB->get_recordset_sql($sql);
++ foreach ($duplicatedrows as $row) {
++ $DB->delete_records_select('feedback_completed', 'userid = ? AND feedback = ? AND courseid = ? AND id <> ?', array(
++ $row->userid,
++ $row->feedback,
++ $row->courseid,
++ $row->maxid,
++ ));
+ }
+ $duplicatedrows->close();
+
+ // Feedback savepoint reached.
- upgrade_mod_savepoint(true, 2017031600, 'feedback');
++ upgrade_mod_savepoint(true, 2017032800, 'feedback');
+ }
+
return true;
}
defined('MOODLE_INTERNAL') || die();
- $plugin->version = 2016120510; // The current module version (Date: YYYYMMDDXX)
-$plugin->version = 2017031600; // The current module version (Date: YYYYMMDDXX)
++$plugin->version = 2017032800; // The current module version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'mod_feedback'; // Full name of the plugin (used for diagnostics)
$plugin->cron = 0;