Commit 642c42c17697966191a276504ace873ff2d3362f

Authored by Victor Costa
1 parent 42299045

Inherit categories from parent when save a proposal

lib/proposals_discussion_plugin/proposal.rb
... ... @@ -9,6 +9,8 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle
9 9  
10 10 has_one :ranking_item
11 11  
  12 + after_save :inherit_parent_categories
  13 +
12 14 def self.short_description
13 15 _("Proposal")
14 16 end
... ... @@ -69,4 +71,9 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle
69 71 false
70 72 end
71 73  
  74 + def inherit_parent_categories
  75 + return if parent.nil?
  76 + categories << parent.categories
  77 + end
  78 +
72 79 end
... ...
test/unit/proposal_task_test.rb
... ... @@ -83,4 +83,12 @@ class ProposalTaskTest &lt; ActiveSupport::TestCase
83 83 assert task.information.present?
84 84 end
85 85  
  86 + should 'create a proposal with category when accept a task' do
  87 + c1 = fast_create(Category)
  88 + discussion.categories << c1
  89 + task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article_parent_id => @discussion.id, :article => {:name => 'proposal 1', :abstract => 'proposal 1', :type => "ProposalsDiscussionPlugin::Proposal"})
  90 + task.perform
  91 + assert_equal [c1], ProposalsDiscussionPlugin::Proposal.last.categories
  92 + end
  93 +
86 94 end
... ...
test/unit/proposal_test.rb
... ... @@ -172,4 +172,13 @@ class ProposalTest &lt; ActiveSupport::TestCase
172 172 assert_match "Parent of Response needs be a Proposal", err.message
173 173 end
174 174  
  175 + should 'inherit categories from parent when save' do
  176 + c1 = fast_create(Category)
  177 + c2 = fast_create(Category)
  178 + proposal.categories << c1
  179 + discussion.categories << c2
  180 + proposal.save!
  181 + assert_equivalent [c1, c2], proposal.categories
  182 + end
  183 +
175 184 end
... ...