Commit 9e6d7e74f4c2e584c1210635c0e53f55782e6b86

Authored by Arthur Esposte
1 parent 16987144

Fix software box organize task

src/noosfero-spb/spb_migrations/lib/tasks/box_organizer.rake
@@ -6,10 +6,14 @@ namespace :software do @@ -6,10 +6,14 @@ namespace :software do
6 software_template = Community["software"] 6 software_template = Community["software"]
7 next unless software_template.is_template? 7 next unless software_template.is_template?
8 8
  9 + existing_blocks = Block.count
  10 +
  11 + puts "Last block id: #{Block.last.id}"
  12 + puts "Create template boxes:"
  13 +
9 software_area_four = software_template.boxes.find_by_position 4 14 software_area_four = software_template.boxes.find_by_position 4
10 four = false 15 four = false
11 16
12 - puts "Area Four Blocks"  
13 if software_area_four.blocks.first.class != BreadcrumbsPlugin::ContentBreadcrumbsBlock 17 if software_area_four.blocks.first.class != BreadcrumbsPlugin::ContentBreadcrumbsBlock
14 template_breadcrumbs_block = BreadcrumbsPlugin::ContentBreadcrumbsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none" 18 template_breadcrumbs_block = BreadcrumbsPlugin::ContentBreadcrumbsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
15 template_breadcrumbs_block.settings[:fixed] = true 19 template_breadcrumbs_block.settings[:fixed] = true
@@ -19,7 +23,6 @@ namespace :software do @@ -19,7 +23,6 @@ namespace :software do
19 software_area_four.blocks << template_breadcrumbs_block 23 software_area_four.blocks << template_breadcrumbs_block
20 software_area_four.save! 24 software_area_four.save!
21 25
22 - # Puts the breadcrumbs as the first one on area four  
23 pos = software_area_four.blocks.order(:position).first.position 26 pos = software_area_four.blocks.order(:position).first.position
24 change_block_pos(software_area_four, template_breadcrumbs_block, pos) 27 change_block_pos(software_area_four, template_breadcrumbs_block, pos)
25 print "." 28 print "."
@@ -31,7 +34,6 @@ namespace :software do @@ -31,7 +34,6 @@ namespace :software do
31 software_area_two = software_template.boxes.find_by_position 2 34 software_area_two = software_template.boxes.find_by_position 2
32 two = false 35 two = false
33 36
34 - puts "Area Two Blocks"  
35 if software_area_two.blocks.last.class != SoftwareEventsBlock 37 if software_area_two.blocks.last.class != SoftwareEventsBlock
36 template_software_events = SoftwareEventsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "all" 38 template_software_events = SoftwareEventsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "all"
37 template_software_events.title = "Outros Eventos" 39 template_software_events.title = "Outros Eventos"
@@ -41,7 +43,6 @@ namespace :software do @@ -41,7 +43,6 @@ namespace :software do
41 software_area_two.blocks << template_software_events 43 software_area_two.blocks << template_software_events
42 software_area_two.save! 44 software_area_two.save!
43 45
44 - # Puts the breadcrumbs as the first one on area four  
45 pos = software_area_two.blocks.order(:position).last.position 46 pos = software_area_two.blocks.order(:position).last.position
46 change_block_pos(software_area_four, template_software_events, pos+1) 47 change_block_pos(software_area_four, template_software_events, pos+1)
47 print "." 48 print "."
@@ -53,7 +54,6 @@ namespace :software do @@ -53,7 +54,6 @@ namespace :software do
53 software_area_one = software_template.boxes.find_by_position 1 54 software_area_one = software_template.boxes.find_by_position 1
54 one = false 55 one = false
55 56
56 - puts "Area One Blocks"  
57 if software_area_one.blocks[-2].class != SoftwareEventsBlock 57 if software_area_one.blocks[-2].class != SoftwareEventsBlock
58 second_template_software_events = SoftwareEventsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "all" 58 second_template_software_events = SoftwareEventsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "all"
59 second_template_software_events.display = "except_home_page" 59 second_template_software_events.display = "except_home_page"
@@ -62,7 +62,6 @@ namespace :software do @@ -62,7 +62,6 @@ namespace :software do
62 software_area_one.blocks << second_template_software_events 62 software_area_one.blocks << second_template_software_events
63 software_area_one.save! 63 software_area_one.save!
64 64
65 - # Puts the breadcrumbs as the first one on area four  
66 pos = software_area_one.blocks.order(:position).last.position 65 pos = software_area_one.blocks.order(:position).last.position
67 change_block_pos(software_area_one, second_template_software_events, pos) 66 change_block_pos(software_area_one, second_template_software_events, pos)
68 print "." 67 print "."
@@ -70,10 +69,11 @@ namespace :software do @@ -70,10 +69,11 @@ namespace :software do
70 end 69 end
71 70
72 71
  72 + puts "\nCreate software community boxes:"
73 Community.joins(:software_info).each do |software_community| 73 Community.joins(:software_info).each do |software_community|
74 software_area_four = software_community.boxes.find_by_position 4 74 software_area_four = software_community.boxes.find_by_position 4
75 75
76 - if four 76 + if four && software_area_four.blocks.first.class != BreadcrumbsPlugin::ContentBreadcrumbsBlock
77 breadcrumbs_block = BreadcrumbsPlugin::ContentBreadcrumbsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none" 77 breadcrumbs_block = BreadcrumbsPlugin::ContentBreadcrumbsBlock.new :mirror => true, :move_modes => "none", :edit_modes => "none"
78 breadcrumbs_block.settings[:fixed] = true 78 breadcrumbs_block.settings[:fixed] = true
79 breadcrumbs_block.display = "always" 79 breadcrumbs_block.display = "always"
@@ -129,17 +129,20 @@ namespace :software do @@ -129,17 +129,20 @@ namespace :software do
129 end 129 end
130 130
131 print "\n" 131 print "\n"
  132 +
  133 + puts "Created blocks: #{Block.count - existing_blocks}"
132 end 134 end
133 -def change_block_pos(box, block, pos)  
134 - box.blocks.each do |b|  
135 - if b.position >= pos  
136 - b.position += 1  
137 - b.save 135 +
  136 + def change_block_pos(box, block, pos)
  137 + box.blocks.each do |b|
  138 + if b.position >= pos
  139 + b.position += 1
  140 + b.save
  141 + end
138 end 142 end
139 - end  
140 143
141 - block.position = pos  
142 - block.save  
143 -end 144 + block.position = pos
  145 + block.save
  146 + end
144 end 147 end
145 148