Commit 234197345e820ff5dce814fcb95f50762d11a516

Authored by Rodrigo Souto
Committed by Larissa Reis
1 parent fde04c88

custom-forms: replace ruby code by sql on migration

plugins/custom_forms/db/migrate/20130823135600_add_select_field_type_to_custom_forms_plugin_fields.rb
@@ -4,18 +4,10 @@ class AddSelectFieldTypeToCustomFormsPluginFields < ActiveRecord::Migration @@ -4,18 +4,10 @@ class AddSelectFieldTypeToCustomFormsPluginFields < ActiveRecord::Migration
4 t.string :select_field_type 4 t.string :select_field_type
5 end 5 end
6 6
7 - CustomFormsPlugin::Field.find_each do |f|  
8 - if !f.list && !f.multiple  
9 - f.select_field_type = :radio  
10 - elsif !f.list && f.multiple  
11 - f.select_field_type = :check_box  
12 - elsif f.list && !f.multiple  
13 - f.select_field_type = :select  
14 - else  
15 - f.select_field_type = :multiple_select  
16 - end  
17 - f.save!  
18 - end 7 + update("UPDATE custom_forms_plugin_fields SET select_field_type='radio' WHERE list IS FALSE AND multiple IS FALSE")
  8 + update("UPDATE custom_forms_plugin_fields SET select_field_type='check_box' WHERE list IS FALSE AND multiple IS TRUE")
  9 + update("UPDATE custom_forms_plugin_fields SET select_field_type='select' WHERE list IS TRUE AND multiple IS FALSE")
  10 + update("UPDATE custom_forms_plugin_fields SET select_field_type='multiple_select' WHERE list IS TRUE AND multiple IS TRUE")
19 11
20 change_table :custom_forms_plugin_fields do |t| 12 change_table :custom_forms_plugin_fields do |t|
21 t.remove :multiple, :list 13 t.remove :multiple, :list
@@ -23,6 +15,18 @@ class AddSelectFieldTypeToCustomFormsPluginFields < ActiveRecord::Migration @@ -23,6 +15,18 @@ class AddSelectFieldTypeToCustomFormsPluginFields < ActiveRecord::Migration
23 end 15 end
24 16
25 def self.down 17 def self.down
26 - raise ActiveRecord::IrreversibleMigration 18 + change_table :custom_forms_plugin_fields do |t|
  19 + t.boolean :multiple
  20 + t.boolean :list
  21 + end
  22 +
  23 + update("UPDATE custom_forms_plugin_fields SET list=TRUE, multiple=FALSE WHERE select_field_type='radio'")
  24 + update("UPDATE custom_forms_plugin_fields SET list=FALSE, multiople=TRUE WHERE select_field_type='check_box'")
  25 + update("UPDATE custom_forms_plugin_fields SET list=TRUE, multiple=FALSE WHERE select_field_type='select'")
  26 + update("UPDATE custom_forms_plugin_fields SET list=TRUE, multiple=TRUE WHERE select_field_type='multiple_select'")
  27 +
  28 + change_table :custom_forms_plugin_fields do |t|
  29 + t.remove :select_fields_type
  30 + end
27 end 31 end
28 end 32 end