Move admin budget investments tabs filters to advanced filters component
This commit is contained in:
@@ -1205,6 +1205,11 @@ table {
|
||||
.filter {
|
||||
display: inline-block;
|
||||
margin: 0 $line-height / 2;
|
||||
|
||||
label {
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
|
||||
@@ -4,10 +4,8 @@ class Admin::BudgetInvestmentsController < Admin::BaseController
|
||||
|
||||
feature_flag :budgets
|
||||
|
||||
has_orders %w{oldest}, only: [:show, :edit]
|
||||
has_filters(%w{all without_admin without_valuator under_valuation
|
||||
valuation_finished winners},
|
||||
only: [:index, :toggle_selection])
|
||||
has_orders %w[oldest], only: [:show, :edit]
|
||||
has_filters %w[all], only: [:index, :toggle_selection]
|
||||
|
||||
before_action :load_budget
|
||||
before_action :load_investment, only: [:show, :edit, :update, :toggle_selection]
|
||||
|
||||
@@ -23,7 +23,9 @@ class Admin::BudgetsController < Admin::BaseController
|
||||
def calculate_winners
|
||||
return unless @budget.balloting_process?
|
||||
@budget.headings.each { |heading| Budget::Result.new(@budget, heading).delay.calculate_winners }
|
||||
redirect_to admin_budget_budget_investments_path(budget_id: @budget.id, filter: "winners"),
|
||||
redirect_to admin_budget_budget_investments_path(
|
||||
budget_id: @budget.id,
|
||||
advanced_filters: ["winners"]),
|
||||
notice: I18n.t("admin.budgets.winners.calculated")
|
||||
end
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ class Budget
|
||||
results = Investment.by_budget(budget)
|
||||
|
||||
results = results.where("cached_votes_up + physical_votes >= ?",
|
||||
params[:min_total_supports]) if params[:min_total_supports].present?
|
||||
params[:min_total_supports]) if params[:min_total_supports].present?
|
||||
results = results.where("cached_votes_up + physical_votes <= ?",
|
||||
params[:max_total_supports]) if params[:max_total_supports].present?
|
||||
results = results.where(group_id: params[:group_id]) if params[:group_id].present?
|
||||
@@ -134,12 +134,19 @@ class Budget
|
||||
end
|
||||
|
||||
def self.advanced_filters(params, results)
|
||||
results = results.without_admin if params[:advanced_filters].include?("without_admin")
|
||||
results = results.without_valuator if params[:advanced_filters].include?("without_valuator")
|
||||
results = results.under_valuation if params[:advanced_filters].include?("under_valuation")
|
||||
results = results.valuation_finished if params[:advanced_filters].include?("valuation_finished")
|
||||
results = results.winners if params[:advanced_filters].include?("winners")
|
||||
|
||||
ids = []
|
||||
ids += results.valuation_finished_feasible.pluck(:id) if params[:advanced_filters].include?("feasible")
|
||||
ids += results.where(selected: true).pluck(:id) if params[:advanced_filters].include?("selected")
|
||||
ids += results.undecided.pluck(:id) if params[:advanced_filters].include?("undecided")
|
||||
ids += results.unfeasible.pluck(:id) if params[:advanced_filters].include?("unfeasible")
|
||||
results.where("budget_investments.id IN (?)", ids)
|
||||
results = results.where("budget_investments.id IN (?)", ids) if ids.any?
|
||||
results
|
||||
end
|
||||
|
||||
def self.order_filter(params)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
admin_budget_budget_investments_path(csv_params),
|
||||
class: "float-right small clear" %>
|
||||
|
||||
<% if params[:filter] == "winners" %>
|
||||
<% if params[:advanced_filters].include?("winners") %>
|
||||
<% if display_calculate_winners_button?(@budget) %>
|
||||
<%= link_to calculate_winner_button_text(@budget),
|
||||
calculate_winners_admin_budget_path(@budget),
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
<div id="advanced_filters" class="<%= advanced_menu_visibility %>" data-toggler=".hide">
|
||||
<div class="small-12 column">
|
||||
<div class="advanced-filters-content">
|
||||
<% ["feasible", "selected", "undecided", "unfeasible"].each do |option| %>
|
||||
<% %w[feasible selected undecided unfeasible without_admin without_valuator under_valuation
|
||||
valuation_finished winners].each do |filter| %>
|
||||
<div class="filter">
|
||||
<%= check_box_tag "advanced_filters[]", option, params[:advanced_filters].index(option), id: "advanced_filters_#{option}" %>
|
||||
<%= t("admin.budget_investments.index.filters.#{option}") %>
|
||||
<%= check_box_tag "advanced_filters[]", filter, params[:advanced_filters].index(filter), id: "advanced_filters_#{filter}" %>
|
||||
<%= label_tag "advanced_filters[#{filter}]", t("admin.budget_investments.index.filters.#{filter}") %>
|
||||
</div>
|
||||
<% end %>
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user