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,6 +9,8 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle
9 9
10 has_one :ranking_item 10 has_one :ranking_item
11 11
  12 + after_save :inherit_parent_categories
  13 +
12 def self.short_description 14 def self.short_description
13 _("Proposal") 15 _("Proposal")
14 end 16 end
@@ -69,4 +71,9 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle @@ -69,4 +71,9 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle
69 false 71 false
70 end 72 end
71 73
  74 + def inherit_parent_categories
  75 + return if parent.nil?
  76 + categories << parent.categories
  77 + end
  78 +
72 end 79 end
test/unit/proposal_task_test.rb
@@ -83,4 +83,12 @@ class ProposalTaskTest &lt; ActiveSupport::TestCase @@ -83,4 +83,12 @@ class ProposalTaskTest &lt; ActiveSupport::TestCase
83 assert task.information.present? 83 assert task.information.present?
84 end 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 end 94 end
test/unit/proposal_test.rb
@@ -172,4 +172,13 @@ class ProposalTest &lt; ActiveSupport::TestCase @@ -172,4 +172,13 @@ class ProposalTest &lt; ActiveSupport::TestCase
172 assert_match "Parent of Response needs be a Proposal", err.message 172 assert_match "Parent of Response needs be a Proposal", err.message
173 end 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 end 184 end