From 0efd35516c74fe8b18675a50c343c9aa7cc9f1c5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 2 Mar 2020 12:43:20 +0200 Subject: [PATCH] Fix statuses filtering in registrar contacts index --- app/controllers/registrar/contacts_controller.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index bd1e29a7c..18af3a29f 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -17,12 +17,13 @@ class Registrar search_params[:registrant_domains_id_not_null] = 1 end - if params[:statuses_contains] - contacts = current_registrar_user.registrar.contacts.includes(:registrar).where( - "contacts.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" - ) - else - contacts = current_registrar_user.registrar.contacts.includes(:registrar) + contacts = current_registrar_user.registrar.contacts.includes(:registrar) + status_list = params[:statuses_contains] + + if status_list + contacts_ids = contacts.select { |c| (c.statuses & status_list.to_a) == status_list.to_a } + .map(&:id) + contacts = contacts.where(id: contacts_ids) end normalize_search_parameters do