Commit 37e8887a89acef33b1f006a772c5e0c41fa6f823

Authored by Victor Costa
1 parent a5c0c0f3

display_content: fix edition when a selected article was removed

plugins/display_content/lib/display_content_block.rb
... ... @@ -56,7 +56,7 @@ class DisplayContentBlock < Block
56 56 end
57 57  
58 58 def parent_nodes
59   - @parent_nodes ||= self.holder.articles.find(nodes).map { |article| get_parent(article) }.compact.flatten
  59 + @parent_nodes ||= self.holder.articles.where(:id => nodes).map { |article| get_parent(article) }.compact.flatten
60 60 end
61 61  
62 62 VALID_CONTENT = ['RawHTMLArticle', 'TextArticle', 'TextileArticle', 'TinyMceArticle', 'Folder', 'Blog', 'Forum']
... ...
plugins/display_content/test/unit/display_content_block_test.rb
... ... @@ -557,4 +557,19 @@ class DisplayContentBlockTest < ActiveSupport::TestCase
557 557 assert_equal [a1], block.articles_of_parent
558 558 end
559 559  
  560 + should 'do not fail if a selected article was removed' do
  561 + profile = create_user('testuser').person
  562 + Article.delete_all
  563 + f1 = fast_create(Folder, :name => 'test folder 1', :profile_id => profile.id)
  564 + a1 = fast_create(TextileArticle, :name => 'test article 1', :profile_id => profile.id, :parent_id => f1.id)
  565 +
  566 + checked_articles= {a1.id => true}
  567 +
  568 + block = DisplayContentBlock.new
  569 + block.stubs(:holder).returns(profile)
  570 + block.checked_nodes= checked_articles
  571 + a1.destroy
  572 + assert_equal [], block.parent_nodes
  573 + end
  574 +
560 575 end
... ...