diff --git a/VERSION b/VERSION index dc6e2383..8477ccdf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.5.1-stable+timestamp.2013.06.24.02.06.34 +Version 2.5.1-stable+timestamp.2013.06.24.14.23.41 diff --git a/gluon/dal.py b/gluon/dal.py index c4529b44..b837a50e 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -1255,13 +1255,22 @@ class BaseAdapter(ConnectionPool): return '(%s LIKE %s)' % (self.expand(first), self.expand('%'+second, 'string')) - def CONTAINS(self,first,second,case_sensitive=False): + def CONTAINS(self,first,second,case_sensitive=False): if first.type in ('string','text', 'json'): - second = Expression(None,self.CONCAT('%',Expression( - None,self.REPLACE(second,('%','%%'))),'%')) + if isinstance(second,Expression): + second = Expression(None,self.CONCAT('%',Expression( + None,self.REPLACE(second,('%','%%'))),'%')) + else: + second = '%'+str(second).replace('%','%%')+'%' elif first.type.startswith('list:'): - second = Expression(None,self.CONCAT('%|',Expression(None,self.REPLACE( - Expression(None,self.REPLACE(second,('%','%%'))),('|','||'))),'|%')) + if isinstance(second,Expression): + second = Expression(None,self.CONCAT( + '%|',Expression(None,self.REPLACE( + Expression(None,self.REPLACE( + second,('%','%%'))),('|','||'))),'|%')) + else: + second = '%|'+str(second).replace('%','%%')\ + .replace('|','||')+'|%' op = case_sensitive and self.LIKE or self.ILIKE return op(first,second) diff --git a/gluon/tools.py b/gluon/tools.py index 57486531..37069c32 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -1791,7 +1791,8 @@ class Auth(object): guess = keys.get('email', 'anonymous').split('@')[0] keys['first_name'] = keys.get('username', guess) user_id = table_user.insert(**table_user._filter_fields(keys)) - user = self.user = table_user[user_id] + user = self.user = table_user[user_id] + print user if self.settings.create_user_groups: group_id = self.add_group( self.settings.create_user_groups % user)