diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 8ff6949cb..71b2ac9ce 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -70,7 +70,6 @@
//= require advanced_search
//= require registration_form
//= require suggest
-//= require filter_selector
//= require forms
//= require valuation_budget_investment_form
//= require embed_video
@@ -135,7 +134,6 @@ var initialize_modules = function() {
App.RegistrationForm.initialize();
App.Suggest.initialize();
App.Forms.initialize();
- App.FilterSelector.initialize();
App.ValuationBudgetInvestmentForm.initialize();
App.EmbedVideo.initialize();
App.FixedBar.initialize();
diff --git a/app/assets/javascripts/filter_selector.js b/app/assets/javascripts/filter_selector.js
deleted file mode 100644
index 5f35db45c..000000000
--- a/app/assets/javascripts/filter_selector.js
+++ /dev/null
@@ -1,8 +0,0 @@
-(function() {
- "use strict";
- App.FilterSelector = {
- initialize: function() {
- App.Forms.submitOnChange(".filter-selector select");
- }
- };
-}).call(this);
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index f438ea3a2..91837158a 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -27,7 +27,6 @@
@import "milestones";
@import "pages";
@import "dashboard";
-@import "filter_selector";
@import "legislation";
@import "legislation_process";
@import "legislation_process_form";
diff --git a/app/assets/stylesheets/budgets/investmentss/filters.scss b/app/assets/stylesheets/budgets/investmentss/filters.scss
new file mode 100644
index 000000000..a00be0801
--- /dev/null
+++ b/app/assets/stylesheets/budgets/investmentss/filters.scss
@@ -0,0 +1,19 @@
+.investments-filters {
+ border-top: 1px solid $border;
+
+ ul {
+ font-size: $small-font-size;
+ list-style: none;
+ margin-left: 0;
+
+ a {
+ display: inline-block;
+ padding-bottom: $line-height / 4;
+ padding-top: $line-height / 4;
+ }
+
+ [aria-current] {
+ font-weight: bold;
+ }
+ }
+}
diff --git a/app/assets/stylesheets/filter_selector.scss b/app/assets/stylesheets/filter_selector.scss
deleted file mode 100644
index 10de18b25..000000000
--- a/app/assets/stylesheets/filter_selector.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-.filter-selector {
- text-align: right;
-
- label {
- display: inline-block;
- font-size: $small-font-size;
- margin-right: $line-height / 2;
- padding-top: $line-height / 2;
- }
-
- select {
- width: auto;
- }
-}
diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss
index d80c57799..45a7c45df 100644
--- a/app/assets/stylesheets/layout.scss
+++ b/app/assets/stylesheets/layout.scss
@@ -977,13 +977,6 @@ footer {
}
}
-.sidebar-map {
-
- .map {
- z-index: 0;
- }
-}
-
.sidebar-title {
border-top: 2px solid $brand;
display: inline-block;
diff --git a/app/components/budgets/investments/filters_component.html.erb b/app/components/budgets/investments/filters_component.html.erb
new file mode 100644
index 000000000..7667d5cd4
--- /dev/null
+++ b/app/components/budgets/investments/filters_component.html.erb
@@ -0,0 +1,4 @@
+
+
+ <%= link_list(*filters, "aria-labelledby": "investments_filters_header") %>
+
diff --git a/app/components/budgets/investments/filters_component.rb b/app/components/budgets/investments/filters_component.rb
new file mode 100644
index 000000000..12c6ddde8
--- /dev/null
+++ b/app/components/budgets/investments/filters_component.rb
@@ -0,0 +1,19 @@
+class Budgets::Investments::FiltersComponent < ApplicationComponent
+ delegate :valid_filters, :current_filter, :link_list, :current_path_with_query_params, to: :helpers
+
+ def render?
+ valid_filters&.any?
+ end
+
+ private
+
+ def filters
+ valid_filters.map do |filter|
+ [
+ t("budgets.investments.index.filters.#{filter}"),
+ current_path_with_query_params(filter: filter, page: 1),
+ current_filter == filter
+ ]
+ end
+ end
+end
diff --git a/app/components/shared/filter_selector_component.html.erb b/app/components/shared/filter_selector_component.html.erb
deleted file mode 100644
index f8cdd6dee..000000000
--- a/app/components/shared/filter_selector_component.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<%= form_tag({}, method: :get, enforce_utf8: false, class: "filter-selector") do %>
- <%= query_parameters_tags %>
- <%= label_tag "filter_selector_filter", t("#{i18n_namespace}.filter") %>
- <%= select_tag "filter", options_for_select(filter_options, current_filter), id: "filter_selector_filter" %>
-<% end %>
diff --git a/app/components/shared/filter_selector_component.rb b/app/components/shared/filter_selector_component.rb
deleted file mode 100644
index 6ea316a62..000000000
--- a/app/components/shared/filter_selector_component.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-class Shared::FilterSelectorComponent < ApplicationComponent
- delegate :valid_filters, :current_filter, to: :helpers
- attr_reader :i18n_namespace
-
- def initialize(i18n_namespace:)
- @i18n_namespace = i18n_namespace
- end
-
- private
-
- def query_parameters_tags
- safe_join(request.query_parameters.reject do |name, _|
- ["page", "filter"].include?(name)
- end.map do |name, value|
- hidden_field_tag name, value, id: "filter_selector_#{name}"
- end)
- end
-
- def filter_options
- valid_filters.map { |filter| [t("#{i18n_namespace}.filters.#{filter}"), filter] }
- end
-end
diff --git a/app/controllers/budgets/groups_controller.rb b/app/controllers/budgets/groups_controller.rb
index 5fc81d0fb..542be0fb6 100644
--- a/app/controllers/budgets/groups_controller.rb
+++ b/app/controllers/budgets/groups_controller.rb
@@ -1,6 +1,5 @@
module Budgets
class GroupsController < ApplicationController
- include InvestmentFilters
include FeatureFlags
feature_flag :budgets
@@ -9,9 +8,6 @@ module Budgets
authorize_resource :budget
authorize_resource :group, class: "Budget::Group"
- before_action :set_default_investment_filter, only: :show
- has_filters investment_filters, only: [:show]
-
def show
end
diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb
index 43916bbb4..e3d82cb6f 100644
--- a/app/controllers/budgets/investments_controller.rb
+++ b/app/controllers/budgets/investments_controller.rb
@@ -8,7 +8,6 @@ module Budgets
include DocumentAttributes
include MapLocationAttributes
include Translatable
- include InvestmentFilters
PER_PAGE = 10
@@ -33,8 +32,7 @@ module Budgets
has_orders %w[most_voted newest oldest], only: :show
has_orders ->(c) { c.instance_variable_get(:@budget).investments_orders }, only: :index
-
- has_filters investment_filters, only: [:index, :show, :suggest]
+ has_filters ->(c) { c.instance_variable_get(:@budget).investments_filters }, only: [:index, :show, :suggest]
invisible_captcha only: [:create, :update], honeypot: :subtitle, scope: :budget_investment
@@ -170,6 +168,14 @@ module Budgets
end
end
+ def set_default_investment_filter
+ if @budget&.finished?
+ params[:filter] ||= "winners"
+ elsif @budget&.publishing_prices_or_later?
+ params[:filter] ||= "selected"
+ end
+ end
+
def load_map
@map_location = MapLocation.load_from_heading(@heading)
end
diff --git a/app/controllers/concerns/investment_filters.rb b/app/controllers/concerns/investment_filters.rb
deleted file mode 100644
index 045dbba0d..000000000
--- a/app/controllers/concerns/investment_filters.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-module InvestmentFilters
- extend ActiveSupport::Concern
-
- class_methods do
- def investment_filters
- ->(controller) { controller.investment_filters }
- end
- end
-
- def set_default_investment_filter
- if @budget&.finished?
- params[:filter] ||= "winners"
- elsif @budget&.publishing_prices_or_later?
- params[:filter] ||= "selected"
- end
- end
-
- def investment_filters
- [
- "not_unfeasible",
- "unfeasible",
- ("unselected" if @budget.publishing_prices_or_later?),
- ("selected" if @budget.publishing_prices_or_later?),
- ("winners" if @budget.finished?)
- ].compact
- end
-end
diff --git a/app/controllers/concerns/search.rb b/app/controllers/concerns/search.rb
index 1dd5074f5..d29f5b044 100644
--- a/app/controllers/concerns/search.rb
+++ b/app/controllers/concerns/search.rb
@@ -12,9 +12,6 @@ module Search
end
def parse_advanced_search_terms
- if params[:advanced_search].is_a? String
- params[:advanced_search] = JSON.parse(params[:advanced_search].gsub("=>", ":"))
- end
@advanced_search_terms = params[:advanced_search] if params[:advanced_search].present?
parse_search_date
end
diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb
index c472a0f35..0352570ed 100644
--- a/app/helpers/budgets_helper.rb
+++ b/app/helpers/budgets_helper.rb
@@ -16,9 +16,7 @@ module BudgetsHelper
end
def css_for_ballot_heading(heading)
- return "" if current_ballot.blank? || @current_filter == "unfeasible"
-
- current_ballot.has_lines_in_heading?(heading) ? "is-active" : ""
+ current_ballot&.has_lines_in_heading?(heading) ? "is-active" : ""
end
def current_ballot
diff --git a/app/models/budget.rb b/app/models/budget.rb
index 9ea47bed7..43105de14 100644
--- a/app/models/budget.rb
+++ b/app/models/budget.rb
@@ -196,6 +196,14 @@ class Budget < ApplicationRecord
end
end
+ def investments_filters
+ [
+ (%w[not_unfeasible feasible unfeasible] if valuating_or_later?),
+ (%w[selected unselected] if publishing_prices_or_later?),
+ ("winners" if finished?)
+ ].compact.flatten
+ end
+
def email_selected
investments.selected.order(:id).each do |investment|
Mailer.budget_investment_selected(investment).deliver_later
diff --git a/app/views/budgets/groups/show.html.erb b/app/views/budgets/groups/show.html.erb
index 75b082dd4..6997f6485 100644
--- a/app/views/budgets/groups/show.html.erb
+++ b/app/views/budgets/groups/show.html.erb
@@ -1,27 +1,9 @@
-<% content_for :canonical do %>
- <%= render "shared/canonical", href: budget_group_url(filter: @current_filter) %>
-<% end %>
-
<%= back_link_to budget_path(@budget) %>
<%= t("budgets.groups.show.title") %>
- <% if @current_filter == "unfeasible" %>
-
-
-
<%= t("budgets.groups.show.unfeasible_title") %>
-
-
- <% elsif @current_filter == "unselected" %>
-
-
-
<%= t("budgets.groups.show.unselected_title") %>
-
-
- <% end %>
-
@@ -30,9 +12,8 @@
<% slice.each do |heading| %>
- <%= link_to heading.name,
- budget_investments_path(heading_id: heading.id,
- filter: @current_filter) %>
+ <%= link_to heading.name, budget_investments_path(heading_id: heading.id) %>
+
<% end %>
@@ -44,28 +25,4 @@
<%= image_tag(image_path_for("map.jpg")) %>
-
- <% if @budget.balloting_or_later? %>
- <% unless @current_filter == "unfeasible" %>
-
-
-
- <%= link_to t("budgets.groups.show.unfeasible"),
- budget_group_path(@budget, @group, filter: "unfeasible") %>
-
-
-
- <% end %>
-
- <% unless @current_filter == "unselected" %>
-
-
-
- <%= link_to t("budgets.groups.show.unselected"),
- budget_group_path(@budget, @group, filter: "unselected") %>
-
-
-
- <% end %>
- <% end %>
diff --git a/app/views/budgets/investments/_map.html.erb b/app/views/budgets/investments/_map.html.erb
index f22a5d7ee..3d26ee7bc 100644
--- a/app/views/budgets/investments/_map.html.erb
+++ b/app/views/budgets/investments/_map.html.erb
@@ -1,5 +1,3 @@
-
+
+ <%= render_map(@map_location, "budgets", false, nil, @investments_map_coordinates) %>
+
diff --git a/app/views/budgets/investments/_sidebar.html.erb b/app/views/budgets/investments/_sidebar.html.erb
index 065a73c94..f76cfc224 100644
--- a/app/views/budgets/investments/_sidebar.html.erb
+++ b/app/views/budgets/investments/_sidebar.html.erb
@@ -59,9 +59,12 @@
<% end %>
+<%= render Budgets::Investments::FiltersComponent.new %>
+
<% if @heading && !@heading.content_blocks.where(locale: I18n.locale).empty? %>
<%= render "budgets/investments/content_blocks" %>
<% end %>
+
<% if @map_location&.available? %>
<%= render "budgets/investments/map" %>
<% end %>
diff --git a/app/views/budgets/investments/index.html.erb b/app/views/budgets/investments/index.html.erb
index 07e604f1e..d0f813ff0 100644
--- a/app/views/budgets/investments/index.html.erb
+++ b/app/views/budgets/investments/index.html.erb
@@ -70,8 +70,6 @@
<%= render("shared/order_links", i18n_namespace: "budgets.investments.index") %>
<% end %>
- <%= render Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index") %>
-
<% if investments_default_view? %>
<% @investments.each do |investment| %>
diff --git a/config/locales/en/budgets.yml b/config/locales/en/budgets.yml
index e2c8e65fd..d7f919f5c 100644
--- a/config/locales/en/budgets.yml
+++ b/config/locales/en/budgets.yml
@@ -43,10 +43,6 @@ en:
groups:
show:
title: Select a heading
- unfeasible_title: Unfeasible investments
- unfeasible: See unfeasible investments
- unselected_title: Investments not selected for balloting phase
- unselected: See investments not selected for balloting phase
phase:
drafting: Draft (Not visible to the public)
informing: Information
@@ -121,7 +117,8 @@ en:
not_logged_in: "To create a new budget investment you must %{sign_in} or %{sign_up}."
filter: "Filtering projects by"
filters:
- not_unfeasible: "Not unfeasible"
+ feasible: "Feasible"
+ not_unfeasible: "Feasible or with undecided feasibility"
selected: "Selected"
unfeasible: "Unfeasible"
unselected: "Unselected"
diff --git a/config/locales/es/budgets.yml b/config/locales/es/budgets.yml
index 3f232f6f2..322beb317 100644
--- a/config/locales/es/budgets.yml
+++ b/config/locales/es/budgets.yml
@@ -43,10 +43,6 @@ es:
groups:
show:
title: Selecciona una partida
- unfeasible_title: Proyectos de gasto inviables
- unfeasible: Ver proyectos inviables
- unselected_title: Proyectos no seleccionados para la votación final
- unselected: Ver los proyectos no seleccionados para la votación final
phase:
drafting: Borrador (No visible para el público)
informing: Información
@@ -121,7 +117,8 @@ es:
not_logged_in: "Para crear un nuevo proyecto de gasto debes %{sign_in} o %{sign_up}."
filter: "Filtrando proyectos"
filters:
- not_unfeasible: "No inviables"
+ feasible: "Viables"
+ not_unfeasible: "Viables o con viabilidad por decidir"
selected: "Seleccionados"
unfeasible: "Inviables"
unselected: "No seleccionados"
diff --git a/spec/components/budgets/investments/filters_component_spec.rb b/spec/components/budgets/investments/filters_component_spec.rb
new file mode 100644
index 000000000..5fe213934
--- /dev/null
+++ b/spec/components/budgets/investments/filters_component_spec.rb
@@ -0,0 +1,33 @@
+require "rails_helper"
+
+describe Budgets::Investments::FiltersComponent do
+ let(:budget) { create(:budget) }
+
+ around do |example|
+ with_request_url(Rails.application.routes.url_helpers.budget_investments_path(budget)) do
+ example.run
+ end
+ end
+
+ it "is not displayed before valuation" do
+ %w[informing accepting reviewing selecting].each do |phase|
+ budget.update!(phase: phase)
+ allow(controller).to receive(:valid_filters).and_return(budget.investments_filters)
+
+ render_inline Budgets::Investments::FiltersComponent.new
+
+ expect(page.native.inner_html).to be_empty
+ end
+ end
+
+ it "is displayed during and after valuation" do
+ Budget::Phase::kind_or_later("valuating").each do |phase|
+ budget.update!(phase: phase)
+ allow(controller).to receive(:valid_filters).and_return(budget.investments_filters)
+
+ render_inline Budgets::Investments::FiltersComponent.new
+
+ expect(page).to have_content "Filtering projects by"
+ end
+ end
+end
diff --git a/spec/components/shared/filter_selector_component_spec.rb b/spec/components/shared/filter_selector_component_spec.rb
deleted file mode 100644
index 5333fc695..000000000
--- a/spec/components/shared/filter_selector_component_spec.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-require "rails_helper"
-
-describe Shared::FilterSelectorComponent do
- it "renders a form with a select" do
- component = Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index")
- allow(component).to receive(:valid_filters).and_return(["unfeasible", "winners"])
- allow(component).to receive(:current_filter).and_return(nil)
-
- with_request_url("/") { render_inline component }
-
- expect(page).to have_select "Filtering projects by"
- expect(page).to have_selector "form[method='get'].filter-selector select"
- end
-end
diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb
index 11ca8e932..91ee27eeb 100644
--- a/spec/models/budget_spec.rb
+++ b/spec/models/budget_spec.rb
@@ -285,6 +285,36 @@ describe Budget do
end
end
+ describe "#investments_filters" do
+ it "returns no filters before valuating" do
+ %w[informing accepting reviewing selecting].each do |phase|
+ budget.phase = phase
+
+ expect(budget.investments_filters).to be_empty
+ end
+ end
+
+ it "returns feasibility filters during valuation" do
+ budget.phase = "valuating"
+
+ expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible])
+ end
+
+ it "returns feasibility and selection filters during the final voting phases" do
+ %w[publishing_prices balloting reviewing_ballots].each do |phase|
+ budget.phase = phase
+
+ expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible selected unselected])
+ end
+ end
+
+ it "returns all filters after the budget has finished" do
+ budget.phase = "finished"
+
+ expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible selected unselected winners])
+ end
+ end
+
describe "#has_winning_investments?" do
it "returns true if there is a winner investment" do
budget.investments << build(:budget_investment, :winner, price: 3, ballot_lines_count: 2)
diff --git a/spec/system/budgets/budgets_spec.rb b/spec/system/budgets/budgets_spec.rb
index 01ae866a8..bb6474b8d 100644
--- a/spec/system/budgets/budgets_spec.rb
+++ b/spec/system/budgets/budgets_spec.rb
@@ -328,42 +328,6 @@ describe "Budgets" do
let!(:budget) { create(:budget, :selecting) }
let!(:group) { create(:budget_group, budget: budget) }
- describe "Links to unfeasible and selected" do
- scenario "are not seen before balloting" do
- visit budget_group_path(budget, group)
-
- expect(page).not_to have_link "See unfeasible investments"
- expect(page).not_to have_link "See investments not selected for balloting phase"
- end
-
- scenario "are not seen publishing prices" do
- budget.update!(phase: :publishing_prices)
-
- visit budget_group_path(budget, group)
-
- expect(page).not_to have_link "See unfeasible investments"
- expect(page).not_to have_link "See investments not selected for balloting phase"
- end
-
- scenario "are seen balloting" do
- budget.update!(phase: :balloting)
-
- visit budget_group_path(budget, group)
-
- expect(page).to have_link "See unfeasible investments"
- expect(page).to have_link "See investments not selected for balloting phase"
- end
-
- scenario "are seen on finished budgets" do
- budget.update!(phase: :finished)
-
- visit budget_group_path(budget, group)
-
- expect(page).to have_link "See unfeasible investments"
- expect(page).to have_link "See investments not selected for balloting phase"
- end
- end
-
scenario "Take into account headings with the same name from a different budget" do
group1 = create(:budget_group, budget: budget, name: "New York")
heading1 = create(:budget_heading, group: group1, name: "Brooklyn")
diff --git a/spec/system/budgets/groups_spec.rb b/spec/system/budgets/groups_spec.rb
index 99488b4f8..5bc07eb38 100644
--- a/spec/system/budgets/groups_spec.rb
+++ b/spec/system/budgets/groups_spec.rb
@@ -26,25 +26,6 @@ describe "Budget Groups" do
expect(first_heading.name).to appear_before(last_heading.name)
end
- scenario "Links to investment filters" do
- create(:budget_heading, group: group, name: "Southwest")
- budget.update!(phase: "finished")
-
- visit budget_group_path(budget, group)
-
- click_link "See unfeasible investments"
-
- expect(page).to have_css "h3", exact_text: "Unfeasible investments"
- expect(page).to have_link "Southwest"
- expect(page).not_to have_link "See unfeasible investments"
-
- click_link "See investments not selected for balloting phase"
-
- expect(page).to have_css "h3", exact_text: "Investments not selected for balloting phase"
- expect(page).to have_link "Southwest"
- expect(page).not_to have_link "See investments not selected for balloting phase unfeasible investments"
- end
-
scenario "Back link" do
visit budget_group_path(budget, group)
diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb
index ddc666256..002d17dc2 100644
--- a/spec/system/budgets/investments_spec.rb
+++ b/spec/system/budgets/investments_spec.rb
@@ -47,6 +47,8 @@ describe "Budget Investments" do
end
scenario "Index" do
+ budget.update!(phase: "valuating")
+
investments = [create(:budget_investment, heading: heading),
create(:budget_investment, heading: heading),
create(:budget_investment, :feasible, heading: heading)]
@@ -131,6 +133,7 @@ describe "Budget Investments" do
scenario "Index filter by status" do
budget.update!(phase: "finished")
+ create(:budget_investment, heading: heading, title: "Unclassified investment")
create(:budget_investment, :feasible, heading: heading, title: "Feasible investment")
create(:budget_investment, :unfeasible, heading: heading, title: "Unfeasible investment")
create(:budget_investment, :unselected, heading: heading, title: "Unselected investment")
@@ -139,37 +142,43 @@ describe "Budget Investments" do
visit budget_investments_path(budget, heading_id: heading.id)
- expect(page).to have_select "Filtering projects by",
- options: ["Not unfeasible", "Unfeasible", "Unselected", "Selected", "Winners"]
+ expect(page).to have_content "FILTERING PROJECTS BY"
- select "Unfeasible", from: "Filtering projects by"
+ click_link "Feasible"
expect(page).to have_css ".budget-investment", count: 1
+ expect(page).to have_content "Feasible investment"
+
+ click_link "Unfeasible"
+
expect(page).to have_content "Unfeasible investment"
+ expect(page).to have_css ".budget-investment", count: 1
- select "Unselected", from: "Filtering projects by"
+ click_link "Unselected"
- expect(page).to have_css ".budget-investment", count: 2
+ expect(page).to have_css ".budget-investment", count: 3
expect(page).to have_content "Unselected investment"
+ expect(page).to have_content "Unclassified investment"
expect(page).to have_content "Feasible investment"
- select "Selected", from: "Filtering projects by"
+ click_link "Selected"
expect(page).to have_css ".budget-investment", count: 2
expect(page).to have_content "Selected investment"
expect(page).to have_content "Winner investment"
- select "Winners", from: "Filtering projects by"
+ click_link "Winners"
expect(page).to have_css ".budget-investment", count: 1
expect(page).to have_content "Winner investment"
- select "Not unfeasible", from: "Filtering projects by"
+ click_link "Feasible or with undecided feasibility"
- expect(page).to have_css ".budget-investment", count: 4
+ expect(page).to have_css ".budget-investment", count: 5
expect(page).to have_content "Selected investment"
expect(page).to have_content "Unselected investment"
expect(page).to have_content "Feasible investment"
+ expect(page).to have_content "Unclassified investment"
expect(page).to have_content "Winner investment"
end
@@ -196,6 +205,8 @@ describe "Budget Investments" do
end
scenario "Advanced search combined with filter by status" do
+ budget.update!(phase: "valuating")
+
create(:budget_investment, :feasible, heading: heading, title: "Feasible environment")
create(:budget_investment, :feasible, heading: heading, title: "Feasible health")
create(:budget_investment, :unfeasible, heading: heading, title: "Unfeasible environment")
@@ -203,13 +214,10 @@ describe "Budget Investments" do
visit budget_investments_path(budget, heading: heading)
- click_on "Advanced search"
-
- within(".advanced-search-form") do
- fill_in "With the text", with: "environment"
- select "Last 24 hours", from: "By date"
- click_button "Filter"
- end
+ click_button "Advanced search"
+ fill_in "With the text", with: "environment"
+ select "Last 24 hours", from: "By date"
+ click_button "Filter"
expect(page).to have_content "There is 1 investment containing the term 'environment'"
expect(page).to have_css ".budget-investment", count: 1
@@ -218,7 +226,7 @@ describe "Budget Investments" do
expect(page).not_to have_content "Unfeasible environment"
expect(page).not_to have_content "Unfeasible health"
- select "Unfeasible", from: "Filtering projects by"
+ click_link "Unfeasible"
expect(page).not_to have_content "Feasible environment"
expect(page).to have_content "There is 1 investment containing the term 'environment'"
@@ -231,6 +239,8 @@ describe "Budget Investments" do
context("Filters") do
scenario "by unfeasibility" do
+ budget.update!(phase: "valuating")
+
investment1 = create(:budget_investment, :unfeasible, :finished, heading: heading)
investment2 = create(:budget_investment, :feasible, heading: heading)
investment3 = create(:budget_investment, heading: heading)
@@ -514,7 +524,7 @@ describe "Budget Investments" do
end
scenario "Order always is random for unfeasible and unselected investments" do
- Budget::Phase::PHASE_KINDS.each do |phase|
+ Budget::Phase::kind_or_later("valuating").each do |phase|
budget.update!(phase: phase)
visit budget_investments_path(budget, heading_id: heading.id, filter: "unfeasible")
@@ -1448,7 +1458,7 @@ describe "Budget Investments" do
end
end
- scenario "Highlight voted heading except with unfeasible filter" do
+ scenario "Highlight voted heading" do
budget.update!(phase: "balloting")
user = create(:user, :level_two)
@@ -1466,14 +1476,6 @@ describe "Budget Investments" do
expect(page).to have_css("#budget_heading_#{heading_1.id}.is-active")
expect(page).to have_css("#budget_heading_#{heading_2.id}")
-
- click_link "See unfeasible investments"
-
- within("#headings") do
- expect(page).to have_css("#budget_heading_#{heading_1.id}")
- expect(page).to have_css("#budget_heading_#{heading_2.id}")
- expect(page).not_to have_css(".is-active")
- end
end
scenario "Ballot is visible" do