Merge pull request #3151 from consul/backport-fix_admin_investments_default_order

Add default order for admin budget investments list
This commit is contained in:
Javier Martín
2019-01-09 15:46:52 +01:00
committed by GitHub
3 changed files with 26 additions and 10 deletions

View File

@@ -77,7 +77,7 @@ class Admin::BudgetInvestmentsController < Admin::BaseController
def load_investments
@investments = Budget::Investment.scoped_filter(params, @current_filter)
@investments = @investments.order_filter(params[:sort_by]) if params[:sort_by].present?
.order_filter(params[:sort_by])
@investments = @investments.page(params[:page]) unless request.format.csv?
end

View File

@@ -142,6 +142,8 @@ class Budget
def self.order_filter(sorting_param)
if sorting_param.present? && SORTING_OPTIONS.include?(sorting_param)
send("sort_by_#{sorting_param}")
else
order(cached_votes_up: :desc).order(id: :desc)
end
end

View File

@@ -603,6 +603,16 @@ feature 'Admin budget investments' do
create(:budget_investment, title: 'C Third Investment', cached_votes_up: 10, budget: budget)
end
scenario "Default sorting" do
create(:budget_investment, title: 'D Fourth Investment', cached_votes_up: 50, budget: budget)
visit admin_budget_budget_investments_path(budget)
expect('D Fourth Investment').to appear_before('B First Investment')
expect('B First Investment').to appear_before('A Second Investment')
expect('A Second Investment').to appear_before('C Third Investment')
end
scenario 'Sort by ID' do
visit admin_budget_budget_investments_path(budget, sort_by: 'id')
@@ -1116,18 +1126,22 @@ feature 'Admin budget investments' do
end
end
scenario "Pagination after unselecting an investment", :js do
create_list(:budget_investment, 30, budget: budget)
feature "Pagination" do
background { selected_bi.update(cached_votes_up: 50) }
visit admin_budget_budget_investments_path(budget)
scenario "After unselecting an investment", :js do
create_list(:budget_investment, 30, budget: budget)
within("#budget_investment_#{selected_bi.id}") do
click_link('Selected')
visit admin_budget_budget_investments_path(budget)
within("#budget_investment_#{selected_bi.id}") do
click_link('Selected')
end
click_link('Next')
expect(page).to have_link('Previous')
end
click_link('Next')
expect(page).to have_link('Previous')
end
end