diff --git a/app/components/sdg_management/relations/index_component.html.erb b/app/components/sdg_management/relations/index_component.html.erb index 7a9a1c5c0..43ba44b12 100644 --- a/app/components/sdg_management/relations/index_component.html.erb +++ b/app/components/sdg_management/relations/index_component.html.erb @@ -1,5 +1,7 @@ <%= header %> +<%= render Admin::SearchComponent.new(label: search_label) %> + diff --git a/app/components/sdg_management/relations/index_component.rb b/app/components/sdg_management/relations/index_component.rb index 8f561534b..16a49194c 100644 --- a/app/components/sdg_management/relations/index_component.rb +++ b/app/components/sdg_management/relations/index_component.rb @@ -25,4 +25,8 @@ class SDGManagement::Relations::IndexComponent < ApplicationComponent id: record } end + + def search_label + t("admin.shared.search.label.#{model_class.table_name}") + end end diff --git a/app/controllers/sdg_management/relations_controller.rb b/app/controllers/sdg_management/relations_controller.rb index 8f2924864..870dc5fd2 100644 --- a/app/controllers/sdg_management/relations_controller.rb +++ b/app/controllers/sdg_management/relations_controller.rb @@ -4,6 +4,8 @@ class SDGManagement::RelationsController < SDGManagement::BaseController def index @records = relatable_class.accessible_by(current_ability).order(:id).page(params[:page]) + + @records = @records.search(params[:search]) if params[:search].present? end def edit diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 56b0fc670..2acfdce7a 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -1255,11 +1255,14 @@ en: search: label: booths: "Search booth by name or location" + budget_investments: "Search investments by title, description or heading" debates: "Search debates by title or description" + legislation_processes: "Search processes by title or description" local_census_records: "Search by document number" organizations: "Name, email or phone number" poll_officers: "Search poll officers" poll_questions: "Search poll questions" + polls: "Search polls by name or description" proposals: "Search proposals by title, code, description or question" users: "Search user by name or email" search: "Search" diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 8b7fb7788..62bca513c 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -1254,11 +1254,14 @@ es: search: label: booths: "Buscar urna por nombre" + budget_investments: "Buscar proyectos por título, descripción o partida" debates: "Buscar debates por título o descripción" + legislation_processes: "Buscar procesos por título o descripción" local_census_records: "Búsqueda por número de documento" organizations: "Nombre, email o teléfono" poll_officers: "Buscar presidentes de mesa" poll_questions: "Buscar preguntas" + polls: "Buscar votaciones por nombre o descripción" proposals: "Buscar propuestas por título, código, descripción o pregunta" users: "Buscar usuario por nombre o email" search: "Buscar" diff --git a/spec/system/sdg_management/relations_spec.rb b/spec/system/sdg_management/relations_spec.rb index 4b477ffdb..c3c2bbb3f 100644 --- a/spec/system/sdg_management/relations_spec.rb +++ b/spec/system/sdg_management/relations_spec.rb @@ -87,6 +87,19 @@ describe "SDG Relations", :js do expect(page).to have_css "h2", exact_text: "Build a hospital" end + + scenario "search" do + create(:poll, name: "Internet speech freedom") + create(:poll, name: "SDG interest") + + visit sdg_management_polls_path + + fill_in "search", with: "speech" + click_button "Search" + + expect(page).to have_content "Internet speech freedom" + expect(page).not_to have_content "SDG interest" + end end describe "Edit" do