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,7 +64,8 @@ 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
scenario 'apperars even if there are not any selected poposals' do
create(:legislation_proposal, legislation_process_id: process.id) create(:legislation_proposal, legislation_process_id: process.id)
visit legislation_process_proposals_path(process) visit legislation_process_proposals_path(process)
@@ -72,16 +73,39 @@ feature 'Legislation Proposals' do
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
create(:legislation_proposal, legislation_process_id: process.id)
create(:legislation_proposal, legislation_process_id: process.id, selected: true)
visit legislation_process_proposals_path(process)
expect(page).to have_link('Random')
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) proposal1 = create(:legislation_proposal, legislation_process_id: process.id)
proposal2 = create(:legislation_proposal, legislation_process_id: process.id, selected: true) proposal2 = create(:legislation_proposal, legislation_process_id: process.id, selected: true)
visit legislation_process_proposals_path(process) visit legislation_process_proposals_path(process, filter: "random")
click_link 'Selected' click_link 'Selected'
expect(page).to have_css("div#legislation_proposal_#{proposal2.id}") expect(page).to have_css("div#legislation_proposal_#{proposal2.id}")
expect(page).not_to have_css("div#legislation_proposal_#{proposal1.id}") expect(page).not_to have_css("div#legislation_proposal_#{proposal1.id}")
end end
end
def legislation_proposals_order def legislation_proposals_order
all("[id^='legislation_proposal_']").collect { |e| e[:id] } all("[id^='legislation_proposal_']").collect { |e| e[:id] }