diff --git a/app/controllers/moderation/debates_controller.rb b/app/controllers/moderation/debates_controller.rb index 1fe3eb4b4..1e93ed040 100644 --- a/app/controllers/moderation/debates_controller.rb +++ b/app/controllers/moderation/debates_controller.rb @@ -14,14 +14,14 @@ class Moderation::DebatesController < Moderation::BaseController end def hide - @debate.hide + hide_debate @debate end def moderate @debates = @debates.where(id: params[:debate_ids]) if params[:hide_debates].present? - @debates.accessible_by(current_ability, :hide).each(&:hide) + @debates.accessible_by(current_ability, :hide).each {|debate| hide_debate debate} elsif params[:ignore_flags].present? @debates.accessible_by(current_ability, :ignore_flag).each(&:ignore_flag) @@ -40,4 +40,9 @@ class Moderation::DebatesController < Moderation::BaseController @debates = Debate.accessible_by(current_ability, :moderate) end + def hide_debate(debate) + debate.hide + Activity.log(current_user, :hide, debate) + end + end diff --git a/app/controllers/moderation/proposals_controller.rb b/app/controllers/moderation/proposals_controller.rb index 2b808b0b2..b60d27e50 100644 --- a/app/controllers/moderation/proposals_controller.rb +++ b/app/controllers/moderation/proposals_controller.rb @@ -22,7 +22,7 @@ class Moderation::ProposalsController < Moderation::BaseController @proposals = @proposals.where(id: params[:proposal_ids]) if params[:hide_proposals].present? - @proposals.accessible_by(current_ability, :hide).each{|proposal| hide_proposal proposal} + @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) diff --git a/spec/features/admin/activity_spec.rb b/spec/features/admin/activity_spec.rb index 61b815850..2979117d9 100644 --- a/spec/features/admin/activity_spec.rb +++ b/spec/features/admin/activity_spec.rb @@ -51,4 +51,48 @@ feature 'Admin activity' do end end + context "Debates" do + scenario "Shows moderation activity on debates", :js do + debate = create(:debate) + + visit debate_path(debate) + + within("#debate_#{debate.id}") do + click_link 'Hide' + end + + visit admin_activity_path + + within("#activity_#{Activity.last.id}") do + expect(page).to have_content(debate.title) + expect(page).to have_content(@admin.user.username) + end + end + + scenario "Shows moderation activity from moderation screen" do + debate1 = create(:debate) + debate2 = create(:debate) + debate3 = create(:debate) + + visit moderation_debates_path(filter: 'all') + + within("#debate_#{debate1.id}") do + check "debate_#{debate1.id}_check" + end + + within("#debate_#{debate3.id}") do + check "debate_#{debate3.id}_check" + end + + click_on "Hide debates" + + visit admin_activity_path + + + expect(page).to have_content(debate1.title) + expect(page).to_not have_content(debate2.title) + expect(page).to have_content(debate3.title) + end + end + end \ No newline at end of file