add groupes_search_component
This commit is contained in:
parent
171a6b35fb
commit
142ac9173d
4 changed files with 42 additions and 7 deletions
5
app/components/procedure/groupes_search_component.rb
Normal file
5
app/components/procedure/groupes_search_component.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class Procedure::GroupesSearchComponent < ApplicationComponent
|
||||||
|
def initialize(procedure:, query:, to_configure_count:)
|
||||||
|
@procedure, @query, @to_configure_count = procedure, query, to_configure_count
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
= form_for admin_procedure_groupe_instructeurs_path(@procedure),
|
||||||
|
method: :get do
|
||||||
|
#header-search.fr-search-bar.fr-mb-2w{ role: "search" }
|
||||||
|
= label_tag :q, 'Rechercher par nom', class: 'fr-label'
|
||||||
|
= text_field_tag :q, @query, class: 'fr-input', type: 'search', autocomplete: 'off', placeholder: 'Rechercher par nom'
|
||||||
|
%button.fr-btn{ title: "Rechercher" } Rechercher
|
||||||
|
|
||||||
|
- if @to_configure_count > 0
|
||||||
|
%span #{ @to_configure_count } à configurer
|
|
@ -291,8 +291,17 @@ module Administrateurs
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_groupe_instructeurs
|
def paginated_groupe_instructeurs
|
||||||
procedure
|
groupes = if params[:q].present?
|
||||||
.groupe_instructeurs
|
query = ActiveRecord::Base.sanitize_sql_like(params[:q])
|
||||||
|
|
||||||
|
procedure
|
||||||
|
.groupe_instructeurs
|
||||||
|
.where('unaccent(label) ILIKE unaccent(?)', "%#{query}%")
|
||||||
|
else
|
||||||
|
procedure.groupe_instructeurs
|
||||||
|
end
|
||||||
|
|
||||||
|
groupes
|
||||||
.page(params[:page])
|
.page(params[:page])
|
||||||
.per(ITEMS_PER_PAGE)
|
.per(ITEMS_PER_PAGE)
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,13 +13,25 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
|
|
||||||
describe '#index' do
|
describe '#index' do
|
||||||
context 'of a procedure I own' do
|
context 'of a procedure I own' do
|
||||||
before { get :index, params: { procedure_id: procedure.id } }
|
before { get :index, params: }
|
||||||
|
|
||||||
context 'when a procedure has multiple groups' do
|
context 'when a procedure has multiple groups' do
|
||||||
it { expect(response).to have_http_status(:ok) }
|
let(:params) { { procedure_id: procedure.id } }
|
||||||
it { expect(response.body).to include(gi_1_1.label) }
|
|
||||||
it { expect(response.body).to include(gi_1_2.label) }
|
it do
|
||||||
it { expect(response.body).not_to include(gi_2_2.label) }
|
expect(response).to have_http_status(:ok)
|
||||||
|
expect(response.body).to include(gi_1_1.label)
|
||||||
|
expect(response.body).to include(gi_1_2.label)
|
||||||
|
expect(response.body).not_to include(gi_2_2.label)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when there is a search' do
|
||||||
|
let(:params) { { procedure_id: procedure.id, q: '2' } }
|
||||||
|
|
||||||
|
it do
|
||||||
|
expect(assigns(:groupes_instructeurs)).to match_array([gi_1_2])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue