Commit 642c42c17697966191a276504ace873ff2d3362f
1 parent
42299045
Exists in
master
and in
3 other branches
Inherit categories from parent when save a proposal
Showing
3 changed files
with
24 additions
and
0 deletions
Show diff stats
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 < 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 < 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 | ... | ... |