Changeset - 3971715302b1
[Not reviewed]
default
0 1 0
Thomas De Schampheleire - 8 years ago 2018-02-02 15:52:53
thomas.de_schampheleire@nokia.com
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().
1 file changed with 4 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/controllers/home.py
Show inline comments
 
@@ -173,9 +173,9 @@ class HomeController(BaseController):
 
                    .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 @@ class HomeController(BaseController):
 
                    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) \
0 comments (0 inline, 0 general)