Merge pull request #529 from AyuntamientoMadrid/moderation-changes

changes moderation/proposals: only show flagged except in 'All' filter
This commit is contained in:
Enrique García
2015-09-21 11:57:01 +02:00
2 changed files with 24 additions and 6 deletions

View File

@@ -4,8 +4,8 @@ module Flaggable
included do
has_many :flags, as: :flaggable
scope :flagged, -> { where("flags_count > 0") }
scope :pending_flag_review, -> { where(ignored_flag_at: nil, hidden_at: nil) }
scope :with_ignored_flag, -> { where.not(ignored_flag_at: nil).where(hidden_at: nil) }
scope :pending_flag_review, -> { flagged.where(ignored_flag_at: nil, hidden_at: nil) }
scope :with_ignored_flag, -> { flagged.where.not(ignored_flag_at: nil).where(hidden_at: nil) }
end
def ignored_flag?

View File

@@ -48,6 +48,9 @@ feature 'Moderate proposals' do
background do
@proposal = create(:proposal)
visit moderation_proposals_path
within('.sub-nav') do
click_link "All"
end
within("#proposal_#{@proposal.id}") do
check "proposal_#{@proposal.id}_check"
@@ -141,21 +144,25 @@ feature 'Moderate proposals' do
end
scenario "Filtering proposals" do
create(:proposal, title: "Pending proposal")
create(:proposal, title: "Regular proposal")
create(:proposal, :flagged, title: "Pending proposal")
create(:proposal, :hidden, title: "Hidden proposal")
create(:proposal, :with_ignored_flag, title: "Ignored proposal")
create(:proposal, :flagged, :with_ignored_flag, title: "Ignored proposal")
visit moderation_proposals_path(filter: 'all')
expect(page).to have_content('Regular proposal')
expect(page).to have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to have_content('Ignored proposal')
visit moderation_proposals_path(filter: 'pending_flag_review')
expect(page).to_not have_content('Regular proposal')
expect(page).to have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to_not have_content('Ignored proposal')
visit moderation_proposals_path(filter: 'with_ignored_flag')
expect(page).to_not have_content('Regular proposal')
expect(page).to_not have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to have_content('Ignored proposal')
@@ -163,15 +170,26 @@ feature 'Moderate proposals' do
scenario "sorting proposals" do
create(:proposal, title: "Flagged proposal", created_at: Time.now - 1.day, flags_count: 5)
create(:proposal, title: "Flagged newer proposal", created_at: Time.now - 12.hours, flags_count: 3)
create(:proposal, title: "Newer proposal", created_at: Time.now)
visit moderation_proposals_path(order: 'created_at')
expect("Newer proposal").to appear_before("Flagged proposal")
expect("Flagged newer proposal").to appear_before("Flagged proposal")
visit moderation_proposals_path(order: 'flags')
expect("Flagged proposal").to appear_before("Newer proposal")
expect("Flagged proposal").to appear_before("Flagged newer proposal")
visit moderation_proposals_path(filter: 'all', order: 'created_at')
expect("Newer proposal").to appear_before("Flagged newer proposal")
expect("Flagged newer proposal").to appear_before("Flagged proposal")
visit moderation_proposals_path(filter: 'all', order: 'flags')
expect("Flagged proposal").to appear_before("Flagged newer proposal")
expect("Flagged newer proposal").to appear_before("Newer proposal")
end
end
end