Ejemplo n.º 1
0
 public function test_upgrade_courseid_empty_completed()
 {
     global $DB;
     // Record in 'feedback_completed' does not have corresponding values.
     $DB->insert_record('feedback_completed', ['feedback' => $this->feedback->id, 'userid' => $this->user->id]);
     $this->assertCount(1, $DB->get_records('feedback_completed'));
     $record1 = $DB->get_record('feedback_completed', []);
     mod_feedback_upgrade_courseid();
     $this->assertCount(1, $DB->get_records('feedback_completed'));
     // Number of records is the same.
     $record2 = $DB->get_record('feedback_completed', []);
     $this->assertEquals($record1, $record2);
 }
Ejemplo n.º 2
0
function xmldb_feedback_upgrade($oldversion)
{
    global $CFG, $DB;
    require_once $CFG->dirroot . '/mod/feedback/db/upgradelib.php';
    $dbman = $DB->get_manager();
    // Loads ddl manager and xmldb classes.
    // Moodle v2.8.0 release upgrade line.
    // Put any upgrade step following this.
    // Moodle v2.9.0 release upgrade line.
    // Put any upgrade step following this.
    // Moodle v3.0.0 release upgrade line.
    // Put any upgrade step following this.
    if ($oldversion < 2016031600) {
        // Remove labels from all 'captcha' and 'label' items.
        $DB->execute('UPDATE {feedback_item} SET label = ? WHERE typ = ? OR typ = ?', array('', 'captcha', 'label'));
        // Data savepoint reached.
        upgrade_mod_savepoint(true, 2016031600, 'feedback');
    }
    if ($oldversion < 2016040100) {
        // In order to keep the previous "Analysis" results unchanged,
        // set all multiple-answer multiplechoice questions as "Do not analyse empty submits"="Yes"
        // because prior to this date this setting did not work.
        $sql = "UPDATE {feedback_item} SET options = " . $DB->sql_concat('?', 'options') . " WHERE typ = ? AND presentation LIKE ? AND options NOT LIKE ?";
        $params = array('i', 'multichoice', 'c%', '%i%');
        $DB->execute($sql, $params);
        // Feedback savepoint reached.
        upgrade_mod_savepoint(true, 2016040100, 'feedback');
    }
    if ($oldversion < 2016040300) {
        // Define field courseid to be added to feedback_completed.
        $table = new xmldb_table('feedback_completed');
        $field = new xmldb_field('courseid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'anonymous_response');
        // Conditionally launch add field courseid.
        if (!$dbman->field_exists($table, $field)) {
            $dbman->add_field($table, $field);
        }
        // Define field courseid to be added to feedback_completedtmp.
        $table = new xmldb_table('feedback_completedtmp');
        $field = new xmldb_field('courseid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'anonymous_response');
        // Conditionally launch add field courseid.
        if (!$dbman->field_exists($table, $field)) {
            $dbman->add_field($table, $field);
        }
        // Define table feedback_tracking to be dropped.
        $table = new xmldb_table('feedback_tracking');
        // Conditionally launch drop table for feedback_tracking.
        if ($dbman->table_exists($table)) {
            $dbman->drop_table($table);
        }
        // Run upgrade script to fill the new field courseid with the data from feedback_value* tables.
        mod_feedback_upgrade_courseid(false);
        mod_feedback_upgrade_courseid(true);
        // Feedback savepoint reached.
        upgrade_mod_savepoint(true, 2016040300, 'feedback');
    }
    return true;
}