# HG changeset patch # User Thomas De Schampheleire # Date 1517583173 -3600 # Node ID 3971715302b10a143df5b292d74d86c158f30b44 # Parent 33bd2aa757dd9d66a3e7f6b7be8c27bbd54db1ad home: make sure users and group autocomplete is case insensitive Both SQLite and MySQL have a case-insensitive LIKE operator by default, but PostgreSQL does not. As a result, a query for 'john' does not match the user 'John Doe'. As case-insensitivity is most user-friendly in the context of autocompletion of users and groups, switch to the ilike() method of SQLAlchemy rather than like(). diff -r 33bd2aa757dd -r 3971715302b1 kallithea/controllers/home.py --- a/kallithea/controllers/home.py Tue Jan 30 13:57:26 2018 +0100 +++ b/kallithea/controllers/home.py Fri Feb 02 15:52:53 2018 +0100 @@ -173,9 +173,9 @@ .filter(User.is_default_user == False) \ .filter(User.active == True) \ .filter(or_( - User.username.like("%%"+query+"%%"), - User.name.like("%%"+query+"%%"), - User.lastname.like("%%"+query+"%%"), + User.username.ilike("%%"+query+"%%"), + User.name.ilike("%%"+query+"%%"), + User.lastname.ilike("%%"+query+"%%"), )) \ .order_by(User.username) \ .limit(500) \ @@ -198,7 +198,7 @@ grp_list = [grp] elif query: grp_list = UserGroup.query() \ - .filter(UserGroup.users_group_name.like("%%"+query+"%%")) \ + .filter(UserGroup.users_group_name.ilike("%%"+query+"%%")) \ .filter(UserGroup.users_group_active == True) \ .order_by(UserGroup.users_group_name) \ .limit(500) \