Commit 63bae030c8f879e6a1201e872ddf3c297dcd0a67

Authored by Arthur Esposte
1 parent 007f77bf

Fix migrations to consider software template

db/migrate/20150727161511_change_software_layout.rb
1 1 class ChangeSoftwareLayout < ActiveRecord::Migration
2 2 def up
  3 + software_template = Community["software"]
  4 + if software_template
  5 + change_layout(software_template)
  6 + end
  7 +
3 8 softwares = SoftwareInfo.all
4 9 softwares.each do |software|
5   - software.community.layout_template = "lefttopright"
6   - print "." if software.community.save
7   - boxToMove = software.community.boxes.where(:position => 1).first
8   - blockToMove = boxToMove.blocks.where(:type => "SoftwareInformationBlock").first
9   - if blockToMove
10   - newBox = software.community.boxes.where(:position => 4).first
11   - blockToMove.box = newBox
12   - print "." if blockToMove.save
13   - end
  10 + change_layout(software.community)
14 11 end
  12 +
  13 + puts ""
15 14 end
16 15  
17 16 def down
18 17 end
  18 +
  19 + def change_layout(community)
  20 + community.layout_template = "lefttopright"
  21 + print "." if community.save
  22 + boxToMove = community.boxes.where(:position => 1).first
  23 + blockToMove = boxToMove.blocks.where(:type => "SoftwareInformationBlock").first
  24 + if blockToMove
  25 + newBox = community.boxes.where(:position => 4).first
  26 + blockToMove.box = newBox
  27 + print "." if blockToMove.save
  28 + end
  29 + end
19 30 end
... ...
db/migrate/20150904174335_swap_softwares_blocks_between_areas_2_and_3.rb
1 1 class SwapSoftwaresBlocksBetweenAreas2And3 < ActiveRecord::Migration
2 2 def up
3   - swap_software_blocks_between_areas_2_and_3
  3 + software_template = Community["software"]
  4 + if software_template
  5 + swap_software_blocks_between_areas_2_and_3(software_template)
  6 + end
  7 +
  8 + Community.joins(:software_info).each do |software_community|
  9 + swap_software_blocks_between_areas_2_and_3(software_community)
  10 + end
  11 + puts ""
4 12 end
5 13  
6 14 def down
7   - swap_software_blocks_between_areas_2_and_3
  15 + say "This can't be reverted"
8 16 end
9 17  
10   - def swap_software_blocks_between_areas_2_and_3
11   - Community.joins(:software_info).each do |software_community|
12   - print "."
13   -
14   - # Get areas 2 and 3
15   - box_area_two = software_community.boxes.find_by_position 2
16   - box_area_three = software_community.boxes.find_by_position 3
  18 + def swap_software_blocks_between_areas_2_and_3(software_community)
  19 + print "."
17 20  
18   - # Get all ids of blocks from areas 2 and 3
19   - blocks_ids_from_area_two = box_area_two.blocks.select(:id).map(&:id)
20   - blocks_ids_from_area_three = box_area_three.blocks.select(:id).map(&:id)
  21 + # Get areas 2 and 3
  22 + box_area_two = software_community.boxes.find_by_position 2
  23 + box_area_three = software_community.boxes.find_by_position 3
21 24  
22   - # Swap blocks from area 2 to 3
23   - Block.update_all({:box_id=>box_area_three.id}, ["id IN (?)", blocks_ids_from_area_two])
  25 + # Get all ids of blocks from areas 2 and 3
  26 + blocks_ids_from_area_two = box_area_two.blocks.select(:id).map(&:id)
  27 + blocks_ids_from_area_three = box_area_three.blocks.select(:id).map(&:id)
24 28  
25   - # Swap blocks from area 3 to 2
26   - Block.update_all({:box_id=>box_area_two.id}, ["id IN (?)", blocks_ids_from_area_three])
27   - end
  29 + # Swap blocks from area 2 to 3
  30 + Block.update_all({:box_id=>box_area_three.id}, ["id IN (?)", blocks_ids_from_area_two])
28 31  
29   - puts ""
  32 + # Swap blocks from area 3 to 2
  33 + Block.update_all({:box_id=>box_area_two.id}, ["id IN (?)", blocks_ids_from_area_three])
30 34 end
31 35 end
32   -
... ...
db/migrate/20150904181508_add_communities_ratings_block_to_all_softwares_communities.rb
1 1 class AddCommunitiesRatingsBlockToAllSoftwaresCommunities < ActiveRecord::Migration
2 2 def up
  3 + software_template = Community["software"]
  4 + if software_template
  5 + software_area_one = software_template.boxes.find_by_position 1
  6 +
  7 + template_ratings_block = CommunitiesRatingsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
  8 + template_ratings_block.settings[:fixed] = true
  9 + template_ratings_block.display = "home_page_only"
  10 + template_ratings_block.save!
  11 + print "."
  12 +
  13 + software_area_one.blocks << template_ratings_block
  14 + software_area_one.save!
  15 + print "."
  16 +
  17 + # Puts the ratings block as the last one on area one
  18 + last_block_position = software_area_one.blocks.order(:position).last.position
  19 + template_ratings_block.position = last_block_position + 1
  20 + template_ratings_block.save!
  21 + print "."
  22 + end
  23 +
3 24 Community.joins(:software_info).each do |software_community|
4 25 software_area_one = software_community.boxes.find_by_position 1
5 26 print "."
6 27  
7   - ratings_block = CommunitiesRatingsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
  28 + ratings_block = CommunitiesRatingsBlock.new :move_modes => "none", :edit_modes => "none"
8 29 ratings_block.settings[:fixed] = true
9 30 ratings_block.display = "home_page_only"
  31 + ratings_block.mirror_block_id = template_ratings_block.id
10 32 ratings_block.save!
11 33 print "."
12 34  
... ... @@ -25,6 +47,6 @@ class AddCommunitiesRatingsBlockToAllSoftwaresCommunities &lt; ActiveRecord::Migrat
25 47 end
26 48  
27 49 def down
28   - CommunitiesRatingsBlock.destroy_all
  50 + say "This can't be reverted"
29 51 end
30 52 end
... ...
db/migrate/20150904202116_add_software_tab_data_block_to_all_softwares.rb
1 1 class AddSoftwareTabDataBlockToAllSoftwares < ActiveRecord::Migration
2 2 def up
  3 + software_template = Community["software"]
  4 + if software_template
  5 + software_area_one = software_template.boxes.find_by_position 1
  6 +
  7 + template_soft_tab_block = SoftwareTabDataBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
  8 + template_soft_tab_block.settings[:fixed] = true
  9 + template_soft_tab_block.display = "except_home_page"
  10 + template_soft_tab_block.save!
  11 + print "."
  12 +
  13 + software_area_one.blocks << template_soft_tab_block
  14 + software_area_one.save!
  15 + print "."
  16 +
  17 + # Puts the ratings block as the last one on area one
  18 + last_block_position = software_area_one.blocks.order(:position).last.position
  19 + template_soft_tab_block.position = last_block_position + 1
  20 + template_soft_tab_block.save!
  21 + print "."
  22 + end
  23 +
3 24 Community.joins(:software_info).each do |software_community|
4 25 software_area_one = software_community.boxes.find_by_position 1
5 26 print "."
6 27  
7   - soft_tab_block = SoftwareTabDataBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
  28 + soft_tab_block = SoftwareTabDataBlock.new :move_modes => "none", :edit_modes => "none"
8 29 soft_tab_block.settings[:fixed] = true
9 30 soft_tab_block.display = "except_home_page"
  31 + soft_tab_block.mirror_block_id = template_soft_tab_block.id
10 32 soft_tab_block.save!
11 33 print "."
12 34  
... ... @@ -25,6 +47,6 @@ class AddSoftwareTabDataBlockToAllSoftwares &lt; ActiveRecord::Migration
25 47 end
26 48  
27 49 def down
28   - SoftwareTabDataBlock.destroy_all
  50 + say "This can't be reverted"
29 51 end
30 52 end
... ...