Commit 122dd00b0f9cfe9cdb772cf4d2d5f69724d0b138
1 parent
07e6b5ab
Exists in
master
and in
22 other branches
display_content: added migration to update sections attribute
Showing
1 changed file
with
30 additions
and
0 deletions
Show diff stats
plugins/display_content/db/migrate/20140520100130_update_display_content_sections_array.rb
0 → 100644
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +class UpdateDisplayContentSectionsArray < ActiveRecord::Migration | |
| 2 | + | |
| 3 | + def self.up | |
| 4 | + translator = {'Publish date' => 'publish_date', 'Title' => 'title', 'Abstract' => 'abstract', 'Body' => 'body', 'Image' => 'image', 'Tags' => 'tags', | |
| 5 | + 'Data de publicação' => 'publish_date', 'Título' => 'title', 'Resumo' => 'abstract', 'Corpo' => 'body', 'Imagem' => 'image'} | |
| 6 | + | |
| 7 | + DisplayContentBlock.find_each do |block| | |
| 8 | + new_sections = [] | |
| 9 | + | |
| 10 | + block.sections.each do |section| | |
| 11 | + new_value = translator[section["name"]] | |
| 12 | + new_section = new_value.blank? ? section : {:value => new_value, :checked => !section["checked"].blank? } | |
| 13 | + | |
| 14 | + new_section_to_update = new_sections.select {|s| s[:value] == new_value}.first | |
| 15 | + if new_section_to_update.blank? | |
| 16 | + new_sections << new_section | |
| 17 | + else | |
| 18 | + new_section_to_update[:checked] = new_section[:checked] | |
| 19 | + end | |
| 20 | + end | |
| 21 | + block.sections = new_sections | |
| 22 | + block.update_attribute(:settings, block.settings) | |
| 23 | + end | |
| 24 | + end | |
| 25 | + | |
| 26 | + def self.down | |
| 27 | + raise "this migration can't be reverted" | |
| 28 | + end | |
| 29 | + | |
| 30 | +end | ... | ... |