diff --git a/lib/proposals_discussion_plugin.rb b/lib/proposals_discussion_plugin.rb index bd21310..edec7a2 100644 --- a/lib/proposals_discussion_plugin.rb +++ b/lib/proposals_discussion_plugin.rb @@ -16,7 +16,7 @@ class ProposalsDiscussionPlugin < Noosfero::Plugin if context.respond_to?(:params) && context.params.kind_of?(Hash) && context.params[:controller] == 'cms' && context.params[:action] == 'new' types = [] parent_id = context.params[:parent_id] || (context.params[:article][:parent_id] unless context.params[:article].nil?) - parent = parent_id ? context.profile.articles.find(parent_id) : nil + parent = parent_id.present? ? context.profile.articles.find(parent_id) : nil types << ProposalsDiscussionPlugin::Discussion types << ProposalsDiscussionPlugin::Topic if parent.kind_of?(ProposalsDiscussionPlugin::Discussion) if parent.kind_of?(ProposalsDiscussionPlugin::Topic) || ( parent.kind_of?(ProposalsDiscussionPlugin::Discussion) && !parent.allow_topics) diff --git a/test/unit/proposals_discussion_plugin_test.rb b/test/unit/proposals_discussion_plugin_test.rb index 78873fc..ce39147 100644 --- a/test/unit/proposals_discussion_plugin_test.rb +++ b/test/unit/proposals_discussion_plugin_test.rb @@ -20,6 +20,11 @@ class ProposalsDiscussionPluginTest < ActiveSupport::TestCase assert_includes plugin.content_types, ProposalsDiscussionPlugin::Discussion end + should 'return Discussion as a content type if parent is empty' do + @params[:parent_id] = '' + assert_includes plugin.content_types, ProposalsDiscussionPlugin::Discussion + end + should 'return Topic as a content type if parent_id parameter is a Discussion' do parent = fast_create(ProposalsDiscussionPlugin::Discussion, :profile_id => @profile.id) @params[:parent_id] = parent.id -- libgit2 0.21.2