Commit 7fefda6ae0b3a0f21577762c047afa22a5cad114

Authored by Victor Costa
1 parent 7e2cd9cf

Destroy children of container block when it was destroyed

plugins/container_block/lib/container_block.rb
1 1 class ContainerBlock < Block
2 2  
3 3 after_create :create_box
  4 + after_destroy :destroy_children
4 5  
5 6 settings_items :container_box_id, :type => Integer, :default => nil
6 7 settings_items :children_settings, :type => Hash, :default => {}
... ... @@ -17,6 +18,10 @@ class ContainerBlock &lt; Block
17 18 nil
18 19 end
19 20  
  21 + def destroy_children
  22 + blocks.destroy_all
  23 + end
  24 +
20 25 def create_box
21 26 box = Box.create!(:owner => self)
22 27 settings[:container_box_id] = box.id
... ...
plugins/container_block/test/unit/container_block_test.rb
... ... @@ -69,4 +69,17 @@ class ContainerBlockTest &lt; ActiveSupport::TestCase
69 69 assert_equal nil, @block.layout_template
70 70 end
71 71  
  72 + should 'return children blocks that have container box as box' do
  73 + @block.save!
  74 + child = Block.create!(:box_id => @block.container_box.id)
  75 + assert_equal [child], @block.blocks
  76 + end
  77 +
  78 + should 'destroy chilrend when container is removed' do
  79 + @block.save!
  80 + child = Block.create!(:box_id => @block.container_box.id)
  81 + @block.destroy
  82 + assert !Block.exists?(child.id)
  83 + end
  84 +
72 85 end
... ...