diff --git a/plugins/proposals_discussion/controllers/profile/proposals_discussion_plugin_profile_controller.rb b/plugins/proposals_discussion/controllers/profile/proposals_discussion_plugin_profile_controller.rb new file mode 100644 index 0000000..c991db2 --- /dev/null +++ b/plugins/proposals_discussion/controllers/profile/proposals_discussion_plugin_profile_controller.rb @@ -0,0 +1,7 @@ +class ProposalsDiscussionPluginProfileController < ProfileController + + def export + @comments = profile.articles.find(params[:article_id]).proposals_comments + end + +end diff --git a/plugins/proposals_discussion/lib/proposals_discussion_plugin/discussion.rb b/plugins/proposals_discussion/lib/proposals_discussion_plugin/discussion.rb index 1d7ab19..7432051 100644 --- a/plugins/proposals_discussion/lib/proposals_discussion_plugin/discussion.rb +++ b/plugins/proposals_discussion/lib/proposals_discussion_plugin/discussion.rb @@ -4,6 +4,7 @@ class ProposalsDiscussionPlugin::Discussion < Folder has_many :topics, :class_name => 'ProposalsDiscussionPlugin::Topic', :foreign_key => 'parent_id' has_many :proposals, :class_name => 'ProposalsDiscussionPlugin::Proposal', :through => :children, :source => :children + has_many :proposals_comments, :class_name => 'Comment', :through => :proposals, :source => :comments settings_items :custom_body_label, :type => :string, :default => _('Body') diff --git a/plugins/proposals_discussion/test/functional/proposals_discussion_plugin_profile_controller_test.rb b/plugins/proposals_discussion/test/functional/proposals_discussion_plugin_profile_controller_test.rb new file mode 100644 index 0000000..e285207 --- /dev/null +++ b/plugins/proposals_discussion/test/functional/proposals_discussion_plugin_profile_controller_test.rb @@ -0,0 +1,25 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ProposalsDiscussionPluginProfileControllerTest < ActionController::TestCase + + def setup + @profile = fast_create(Community) + @discussion = fast_create(ProposalsDiscussionPlugin::Discussion, :profile_id => @profile.id) + @topic = fast_create(ProposalsDiscussionPlugin::Topic, :parent_id => @discussion.id, :profile_id => @profile.id) + @person = create_user_with_permission('testinguser', 'post_content') + login_as :testinguser + end + + attr_reader :profile, :discussion, :topic, :person + + should 'assigns comments of all proposals' do + proposal1 = fast_create(ProposalsDiscussionPlugin::Proposal, :profile_id => profile.id, :parent_id => topic.id) + proposal2 = fast_create(ProposalsDiscussionPlugin::Proposal, :profile_id => profile.id, :parent_id => topic.id) + comment1 = fast_create(Comment, :source_id => proposal1.id) + comment2 = fast_create(Comment, :source_id => proposal1.id) + comment3 = fast_create(Comment, :source_id => proposal2.id) + get :export, :format => :csv, :article_id => discussion.id, :profile => profile.identifier + assert_equivalent [comment1, comment2, comment3], assigns(:comments) + end + +end diff --git a/plugins/proposals_discussion/views/content_viewer/discussion.html.erb b/plugins/proposals_discussion/views/content_viewer/discussion.html.erb index 25c43d3..4343504 100644 --- a/plugins/proposals_discussion/views/content_viewer/discussion.html.erb +++ b/plugins/proposals_discussion/views/content_viewer/discussion.html.erb @@ -8,9 +8,12 @@ <% if discussion.allow_create?(user) %>