diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index b2badb487..e949d2e61 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -47,6 +47,7 @@ @import "documents/**/*"; @import "layout/**/*"; @import "machine_learning/**/*"; +@import "management/**/*"; @import "moderation/**/*"; @import "polls/**/*"; @import "proposals/**/*"; diff --git a/app/assets/stylesheets/management/budgets/investments/search.scss b/app/assets/stylesheets/management/budgets/investments/search.scss new file mode 100644 index 000000000..ed7561cf5 --- /dev/null +++ b/app/assets/stylesheets/management/budgets/investments/search.scss @@ -0,0 +1,5 @@ +.management-investments-search { + .checkbox-label { + font-weight: normal; + } +} diff --git a/app/components/management/budgets/investments/search_component.html.erb b/app/components/management/budgets/investments/search_component.html.erb index 77339d973..932304916 100644 --- a/app/components/management/budgets/investments/search_component.html.erb +++ b/app/components/management/budgets/investments/search_component.html.erb @@ -1,9 +1,11 @@ -<%= form_tag(url, method: :get) do |f| %> +<%= form_tag(url, options) do |f| %>
+ <%= label_tag :search, search_label_text %> <%= text_field_tag :search, "" %>
+ <%= label_tag :heading_id, attribute_name(:heading_id) %> <%= select_tag :heading_id, options_for_select(budget_heading_select_options(budget), params[:heading_id]), @@ -12,8 +14,10 @@
- <%= check_box_tag :unfeasible, "1", params[:unfeasible].present? %> - <%= t("admin.budget_investments.search_unfeasible") %> + <%= label_tag :unfeasible, class: "checkbox-label" do %> + <%= check_box_tag :unfeasible, "1", params[:unfeasible].present? %> + <%= t("admin.budget_investments.search_unfeasible") %> + <% end %>
diff --git a/app/components/management/budgets/investments/search_component.rb b/app/components/management/budgets/investments/search_component.rb index 7fc2dca05..8244a2e9b 100644 --- a/app/components/management/budgets/investments/search_component.rb +++ b/app/components/management/budgets/investments/search_component.rb @@ -6,4 +6,21 @@ class Management::Budgets::Investments::SearchComponent < ApplicationComponent @budget = budget @url = url end + + private + + def options + { + method: :get, + class: "management-investments-search" + } + end + + def search_label_text + t("management.budget_investments.search.label") + end + + def attribute_name(attribute) + Budget::Investment.human_attribute_name(attribute) + end end diff --git a/config/locales/en/management.yml b/config/locales/en/management.yml index 76a777dff..3cf7506a3 100644 --- a/config/locales/en/management.yml +++ b/config/locales/en/management.yml @@ -95,6 +95,8 @@ en: unfeasible: Unfeasible investment print: print_button: Print + search: + label: "Search investments" search_results: one: " containing the term '%{search_term}'" other: " containing the term '%{search_term}'" diff --git a/config/locales/es/management.yml b/config/locales/es/management.yml index 786cf47a5..895268f16 100644 --- a/config/locales/es/management.yml +++ b/config/locales/es/management.yml @@ -95,6 +95,8 @@ es: unfeasible: Proyectos no factibles print: print_button: Imprimir + search: + label: "Buscar proyectos" search_results: one: " que contiene '%{search_term}'" other: " que contienen '%{search_term}'" diff --git a/spec/components/management/budgets/investments/search_component_spec.rb b/spec/components/management/budgets/investments/search_component_spec.rb new file mode 100644 index 000000000..bdb9eb354 --- /dev/null +++ b/spec/components/management/budgets/investments/search_component_spec.rb @@ -0,0 +1,17 @@ +require "rails_helper" + +describe Management::Budgets::Investments::SearchComponent do + include Rails.application.routes.url_helpers + + let(:budget) { create(:budget) } + let(:url) { management_budget_investments_path(budget) } + let(:component) { Management::Budgets::Investments::SearchComponent.new(budget, url: url) } + + it "renders a label for each field" do + render_inline component + + expect(page).to have_field "Search investments" + expect(page).to have_select "Heading" + expect(page).to have_field "Search unfeasible", type: :checkbox + end +end diff --git a/spec/system/management/budget_investments_spec.rb b/spec/system/management/budget_investments_spec.rb index ce2696002..7fcbe2763 100644 --- a/spec/system/management/budget_investments_spec.rb +++ b/spec/system/management/budget_investments_spec.rb @@ -143,7 +143,7 @@ describe "Budget Investments" do click_link "Support budget investments" end - fill_in "search", with: "what you got" + fill_in "Search investments", with: "what you got" click_button "Search" within("#budget-investments") do @@ -170,7 +170,7 @@ describe "Budget Investments" do click_link "Support budget investments" end - fill_in "search", with: "Area 52" + fill_in "Search investments", with: "Area 52" click_button "Search" within("#budget-investments") do @@ -523,8 +523,8 @@ describe "Budget Investments" do expect(page).to have_content(low_investment.title) end - select "District Nine", from: "heading_id" - click_button("Search") + select "District Nine", from: "Heading" + click_button "Search" within "#budget-investments" do expect(page).not_to have_content(unvoted_investment.title)