Skip to content

Commit 78d0fb0

Browse files
committed
makes member searches accent insensitive
1 parent b508d99 commit 78d0fb0

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

app/views/users/index.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<div class="col-md-12">
1212
<%= search_form_for(@search, class: "navbar-form navbar-left", url: users_path) do |f| %>
1313
<div class="form-group">
14-
<%= f.search_field :member_search_cont, value: params.dig(:q, :member_search_cont), class: "form-control" %>
14+
<%= f.search_field :member_search_unaccent_cont, value: params.dig(:q, :member_search_unaccent_cont), class: "form-control" %>
1515
</div>
1616
<button class="btn btn-default" type="submit">
1717
<%= t 'global.search' %>

app/views/users/manage.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<div class="col-md-12">
1212
<%= search_form_for(@search, class: "navbar-form navbar-left", url: manage_users_path) do |f| %>
1313
<div class="form-group">
14-
<%= f.search_field :member_search_cont, value: params.dig(:q, :member_search_cont), class: "form-control" %>
14+
<%= f.search_field :member_search_unaccent_cont, value: params.dig(:q, :member_search_unaccent_cont), class: "form-control" %>
1515
</div>
1616
<button class="btn btn-default" type="submit">
1717
<%= t 'global.search' %>

config/initializers/ransack.rb

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Ransack.configure do |config|
2+
config.add_predicate 'unaccent_cont',
3+
arel_predicate: 'matches',
4+
formatter: proc { |s| ActiveSupport::Inflector.transliterate("%#{s}%") },
5+
validator: proc { |s| s.present? },
6+
compounds: true,
7+
type: :string
8+
end

spec/controllers/users_controller_spec.rb

+7-5
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124
user = Fabricate(:user, username: 'foo', email: 'foo@email.com')
125125
member = Fabricate(:member, user: user, organization: test_organization, member_uid: 1000)
126126

127-
get :index, params: { q: { member_search_cont: 1000 } }
127+
get :index, params: { q: { member_search_unaccent_cont: 1000 } }
128128

129129
expect(assigns(:members)).to include(member)
130130
end
@@ -133,7 +133,7 @@
133133
user = Fabricate(:user, username: 'foo', email: 'foo@email.com')
134134
member = Fabricate(:member, user: user, organization: test_organization, member_uid: 1000, tags: ["Boss"])
135135

136-
get :index, params: { q: { member_search_cont: "Bos" } }
136+
get :index, params: { q: { member_search_unaccent_cont: "Bos" } }
137137

138138
expect(assigns(:members)).to include(member)
139139
end
@@ -151,8 +151,10 @@
151151
user = Fabricate(:user, username: 'fôô', email: 'test@email.com')
152152
member = Fabricate(:member, user: user, organization: test_organization)
153153

154-
get :index, params: { q: { member_search_cont: "foo" } }
154+
get :index, params: { q: { member_search_unaccent_cont: "foo" } }
155+
expect(assigns(:members)).to include(member)
155156

157+
get :index, params: { q: { member_search_unaccent_cont: "föö" } }
156158
expect(assigns(:members)).to include(member)
157159
end
158160
end
@@ -200,7 +202,7 @@
200202
user = Fabricate(:user, phone: 123456789)
201203
member = Fabricate(:member, user: user, organization: test_organization)
202204

203-
get :manage, params: { q: { member_search_cont: 123456789 } }
205+
get :manage, params: { q: { member_search_unaccent_cont: 123456789 } }
204206

205207
expect(assigns(:members)).to include(member)
206208
end
@@ -209,7 +211,7 @@
209211
user = Fabricate(:user)
210212
member = Fabricate(:member, user: user, organization: test_organization, member_uid: 1000, tags: ["Boss"])
211213

212-
get :index, params: { q: { member_search_cont: "Bos" } }
214+
get :index, params: { q: { member_search_unaccent_cont: "Bos" } }
213215

214216
expect(assigns(:members)).to include(member)
215217
end

0 commit comments

Comments
 (0)