From 5aa5fc5b7ff1d5261ef05f0463f57eee7b2392be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 22 Sep 2015 16:28:50 +0200 Subject: [PATCH] logs activity when bulk-hiding proposals --- .../moderation/proposals_controller.rb | 10 +++++--- spec/features/admin/activity_spec.rb | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/controllers/moderation/proposals_controller.rb b/app/controllers/moderation/proposals_controller.rb index f8517eb4a..2b808b0b2 100644 --- a/app/controllers/moderation/proposals_controller.rb +++ b/app/controllers/moderation/proposals_controller.rb @@ -15,15 +15,14 @@ class Moderation::ProposalsController < Moderation::BaseController end def hide - @proposal.hide - Activity.log(current_user, :hide, @proposal) + hide_proposal @proposal end def moderate @proposals = @proposals.where(id: params[:proposal_ids]) if params[:hide_proposals].present? - @proposals.accessible_by(current_ability, :hide).each(&:hide) + @proposals.accessible_by(current_ability, :hide).each{|proposal| hide_proposal proposal} elsif params[:ignore_flags].present? @proposals.accessible_by(current_ability, :ignore_flag).each(&:ignore_flag) @@ -42,4 +41,9 @@ class Moderation::ProposalsController < Moderation::BaseController @proposals = Proposal.accessible_by(current_ability, :moderate) end + def hide_proposal(proposal) + proposal.hide + Activity.log(current_user, :hide, proposal) + end + end diff --git a/spec/features/admin/activity_spec.rb b/spec/features/admin/activity_spec.rb index 9382875f1..61b815850 100644 --- a/spec/features/admin/activity_spec.rb +++ b/spec/features/admin/activity_spec.rb @@ -24,6 +24,31 @@ feature 'Admin activity' do expect(page).to have_content(@admin.user.username) end end + + scenario "Shows moderation activity from moderation screen" do + proposal1 = create(:proposal) + proposal2 = create(:proposal) + proposal3 = create(:proposal) + + visit moderation_proposals_path(filter: 'all') + + within("#proposal_#{proposal1.id}") do + check "proposal_#{proposal1.id}_check" + end + + within("#proposal_#{proposal3.id}") do + check "proposal_#{proposal3.id}_check" + end + + click_on "Hide proposals" + + visit admin_activity_path + + + expect(page).to have_content(proposal1.title) + expect(page).to_not have_content(proposal2.title) + expect(page).to have_content(proposal3.title) + end end end \ No newline at end of file