make search work without nickname usage
This commit is contained in:
parent
17c1ee803f
commit
6d3db7636a
4 changed files with 22 additions and 12 deletions
|
@ -2,13 +2,10 @@ class Admin::UsersController < Admin::BaseController
|
||||||
inherit_resources
|
inherit_resources
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@users = User.order('nick ASC')
|
@users = User.natural_order
|
||||||
|
|
||||||
# if somebody uses the search field:
|
# if somebody uses the search field:
|
||||||
unless params[:user_name].blank?
|
@users = @users.natural_search(params[:user_name]) unless params[:user_name].blank?
|
||||||
@users = @users.where("first_name LIKE :user_name OR last_name LIKE :user_name OR nick LIKE :user_name",
|
|
||||||
user_name: "%#{params[:user_name]}%")
|
|
||||||
end
|
|
||||||
|
|
||||||
@users = @users.page(params[:page]).per(@per_page)
|
@users = @users.page(params[:page]).per(@per_page)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,19 +1,16 @@
|
||||||
class Foodcoop::UsersController < ApplicationController
|
class Foodcoop::UsersController < ApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@users = User.order('nick ASC')
|
@users = User.natural_order
|
||||||
|
|
||||||
# if somebody uses the search field:
|
# if somebody uses the search field:
|
||||||
unless params[:user_name].blank?
|
@users = @users.natural_search(params[:user_name]) unless params[:user_name].blank?
|
||||||
@users = @users.where("first_name LIKE :user_name OR last_name LIKE :user_name OR nick LIKE :user_name",
|
|
||||||
user_name: "%#{params[:user_name]}%")
|
|
||||||
end
|
|
||||||
|
|
||||||
if params[:ordergroup_name]
|
if params[:ordergroup_name]
|
||||||
@users = @users.joins(:groups).where("groups.type = 'Ordergroup' AND groups.name LIKE ?", "%#{params[:ordergroup_name]}%")
|
@users = @users.joins(:groups).where("groups.type = 'Ordergroup' AND groups.name LIKE ?", "%#{params[:ordergroup_name]}%")
|
||||||
end
|
end
|
||||||
|
|
||||||
@users = @users.page(params[:page]).per(@per_page).order('users.nick ASC')
|
@users = @users.page(params[:page]).per(@per_page)
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html # index.html.haml
|
format.html # index.html.haml
|
||||||
|
|
|
@ -2,7 +2,7 @@ class UsersController < ApplicationController
|
||||||
|
|
||||||
# Currently used to display users nick and ids for autocomplete
|
# Currently used to display users nick and ids for autocomplete
|
||||||
def index
|
def index
|
||||||
@users = User.where("nick LIKE ?", "%#{params[:q]}%")
|
@users = User.natural_search(params[:q])
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json { render :json => @users.map { |u| u.token_attributes } }
|
format.json { render :json => @users.map { |u| u.token_attributes } }
|
||||||
end
|
end
|
||||||
|
|
|
@ -56,6 +56,22 @@ class User < ActiveRecord::Base
|
||||||
self.settings.merge!(key, value)
|
self.settings.merge!(key, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# sorted by display name
|
||||||
|
def self.natural_order
|
||||||
|
# would be sensible to match ApplicationController#show_user
|
||||||
|
if FoodsoftConfig[:use_nick]
|
||||||
|
order('nick ASC')
|
||||||
|
else
|
||||||
|
order('first_name ASC, last_name ASC')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# search by (nick)name
|
||||||
|
def self.natural_search(q)
|
||||||
|
# we always use both nick and name, to make sure a user is found
|
||||||
|
where("CONCAT(first_name, CONCAT(' ', last_name)) LIKE :q OR nick LIKE :q", q: "%#{q}%")
|
||||||
|
end
|
||||||
|
|
||||||
def locale
|
def locale
|
||||||
settings.profile['language']
|
settings.profile['language']
|
||||||
|
|
Loading…
Reference in a new issue