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