Show selected legislation proposals by default

This commit is contained in:
Javi Martín
2018-09-26 13:48:34 +02:00
parent 2a5a2e0fcb
commit 9c13f08c8e
2 changed files with 38 additions and 12 deletions

View File

@@ -93,6 +93,8 @@ class Legislation::ProcessesController < Legislation::BaseController
@proposals = ::Legislation::Proposal.where(process: @process) @proposals = ::Legislation::Proposal.where(process: @process)
@proposals = @proposals.search(params[:search]) if params[:search].present? @proposals = @proposals.search(params[:search]) if params[:search].present?
@current_filter = "winners" if params[:filter].blank? && @proposals.winners.any?
@proposals = @proposals.send(@current_filter).page(params[:page]) @proposals = @proposals.send(@current_filter).page(params[:page])
if @process.proposals_phase.started? || (current_user && current_user.administrator?) if @process.proposals_phase.started? || (current_user && current_user.administrator?)

View File

@@ -64,23 +64,47 @@ feature 'Legislation Proposals' do
expect(legislation_proposals_order).to eq(first_page_proposals_order) expect(legislation_proposals_order).to eq(first_page_proposals_order)
end end
scenario 'Selected filter apperars even if there are not any selected poposals' do context 'Selected filter' do
create(:legislation_proposal, legislation_process_id: process.id) scenario 'apperars even if there are not any selected poposals' do
create(:legislation_proposal, legislation_process_id: process.id)
visit legislation_process_proposals_path(process) visit legislation_process_proposals_path(process)
expect(page).to have_content('Selected') expect(page).to have_content('Selected')
end end
scenario 'Selected filter works correctly' do scenario 'defaults to winners if there are selected proposals' do
proposal1 = create(:legislation_proposal, legislation_process_id: process.id) create(:legislation_proposal, legislation_process_id: process.id)
proposal2 = create(:legislation_proposal, legislation_process_id: process.id, selected: true) create(:legislation_proposal, legislation_process_id: process.id, selected: true)
visit legislation_process_proposals_path(process)
click_link 'Selected' visit legislation_process_proposals_path(process)
expect(page).to have_css("div#legislation_proposal_#{proposal2.id}") expect(page).to have_link('Random')
expect(page).not_to have_css("div#legislation_proposal_#{proposal1.id}") expect(page).not_to have_link('Selected')
expect(page).to have_content('Selected')
end
scenario 'defaults to random if the current process does not have selected proposals' do
create(:legislation_proposal, legislation_process_id: process.id)
create(:legislation_proposal, selected: true)
visit legislation_process_proposals_path(process)
expect(page).to have_link('Selected')
expect(page).not_to have_link('Random')
expect(page).to have_content('Random')
end
scenario 'filters correctly' do
proposal1 = create(:legislation_proposal, legislation_process_id: process.id)
proposal2 = create(:legislation_proposal, legislation_process_id: process.id, selected: true)
visit legislation_process_proposals_path(process, filter: "random")
click_link 'Selected'
expect(page).to have_css("div#legislation_proposal_#{proposal2.id}")
expect(page).not_to have_css("div#legislation_proposal_#{proposal1.id}")
end
end end
def legislation_proposals_order def legislation_proposals_order