changed advanced filter from budgets to budgets/investments

This commit is contained in:
Raúl Fuentes
2018-01-10 15:42:02 +01:00
parent a56be4bc5f
commit 93268fc5d6
16 changed files with 379 additions and 259 deletions

View File

@@ -1,7 +1,6 @@
class BudgetsController < ApplicationController
include FeatureFlags
include BudgetsHelper
include Search
feature_flag :budgets
load_and_authorize_resource

View File

@@ -5,19 +5,6 @@ module SearchHelper
params[:advanced_search].try(:[], :official_level))
end
def budget_phases_search_options
selected = params[:advanced_search].nil? ? '' : params[:advanced_search][:budget_phase]
options_for_select([
[t("budgets.phase.accepting"), 'accepting'],
[t("budgets.phase.reviewing"), 'reviewing'],
[t("budgets.phase.selecting"), 'selecting'],
[t("budgets.phase.valuating"), 'valuating'],
[t("budgets.phase.balloting"), 'balloting'],
[t("budgets.phase.reviewing_ballots"), 'reviewing_ballots'],
[t("budgets.phase.finished"), 'finished']],
selected)
end
def date_range_options
options_for_select([
[t("shared.advanced_search.date_1"), 1],

View File

@@ -44,24 +44,6 @@ class Budget < ActiveRecord::Base
phases.published.order(:id)
end
scope :by_date_range, ->(date_range) { where(created_at: date_range) }
def self.search(terms)
if terms.values.delete_if(&:blank?).empty?
Budget.none
else
Budget.search_by_phase(terms[:phase]).by_date_range(terms[:date_range]).all
end
end
def self.search_by_phase(phase)
if phase.empty?
Budget
else
Budget.send(phase)
end
end
def description
description_for_phase(phase)
end

View File

@@ -21,6 +21,7 @@ class Budget
include ActsAsParanoidAliases
include Relationable
include Notifiable
include Filterable
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
belongs_to :heading
@@ -258,9 +259,10 @@ class Budget
def self.apply_filters_and_search(_budget, params, current_filter = nil)
investments = all
investments = investments.send(current_filter) if current_filter.present?
investments = investments.by_heading(params[:heading_id]) if params[:heading_id].present?
investments = investments.search(params[:search]) if params[:search].present?
investments = investments.send(current_filter) if current_filter.present?
investments = investments.by_heading(params[:heading_id]) if params[:heading_id].present?
investments = investments.search(params[:search]) if params[:search].present?
investments = investments.filter(params[:advanced_search]) if params[:advanced_search].present?
investments
end

View File

@@ -1,51 +0,0 @@
<div class="relative">
<%= link_to t("shared.advanced_search.title"), "#advanced_search_form", id: 'js-advanced-search-title', class: "advanced-search small" %>
</div>
<div class="row advanced-search-form">
<%= form_tag search_path, id: "advanced_search_form", method: :get do %>
<div id='js-advanced-search' data-advanced-search-terms=<%= @advanced_search_terms.present? %> style="display: none">
<div class="small-12 large-3 column">
<label for="advanced_search_budget_phase"><%= t("shared.advanced_search.phase") %></label>
<%= select_tag('advanced_search[budget_phase]', budget_phases_search_options,
include_blank: t("shared.advanced_search.phase_blank")) %>
</div>
<div class="small-12 large-9">
<div class="small-12 large-4 column">
<label for="js-advanced-search-date-min"><%= t("shared.advanced_search.date") %></label>
<%= select_tag('advanced_search[date_min]', date_range_options,
include_blank: t("shared.advanced_search.date_range_blank"),
id: 'js-advanced-search-date-min') %>
</div>
<div id='js-custom-date' class='small-12 large-8 column' style="display: none">
<div class="row">
<div class='small-12 large-6 column'>
<label for="advanced_search_date_min">
<%= t("shared.advanced_search.from") %> (<%= t("shared.advanced_search.date_placeholder") %>)
</label>
<%= text_field_tag 'advanced_search[date_min]',
params[:advanced_search].try(:[], :date_min),
class: 'js-calendar' %>
</div>
<div class='small-12 large-6 column'>
<label for="advanced_search_date_max">
<%= t("shared.advanced_search.to") %> (<%= t("shared.advanced_search.date_placeholder") %>)
</label>
<%= text_field_tag 'advanced_search[date_max]',
params[:advanced_search].try(:[], :date_max),
class: 'js-calendar' %>
</div>
</div>
</div>
</div>
<div class="small-12 medium-3 column end clear">
<%= submit_tag t("shared.advanced_search.search"), class: 'button expanded' %>
</div>
</div>
<% end %>
</div>

View File

@@ -18,7 +18,7 @@
<%= render '/budgets/investments/header' %>
<% end %>
<% if params[:search].present? %>
<% if params[:search].present? || params[:advanced_search].present? %>
<div class="highlight no-margin-top padding margin-bottom">
<div class="row">
<div class="small-12 column">
@@ -49,6 +49,8 @@
</div>
<% end %>
<%= render("shared/advanced_search", search_path: budget_investments_url(@budget)) %>
<%= render('shared/order_links', i18n_namespace: "budgets.investments.index") unless @current_filter == "unfeasible" %>
<% @investments.each do |investment| %>