Commit dc29c583 authored by Sergey Markelov's avatar Sergey Markelov

*) Don't apply filter if the term is empty

   see https://github.com/mrjoes/flask-admin/pull/535
parent 1ca37549
......@@ -50,17 +50,18 @@ class QueryAjaxModelLoader(AjaxModelLoader):
def get_list(self, term, offset=0, limit=DEFAULT_PAGE_SIZE):
query = self.model.objects
criteria = None
if len(term) > 0:
criteria = None
for field in self._cached_fields:
flt = {u'%s__icontains' % field.name: term}
for field in self._cached_fields:
flt = {u'%s__icontains' % field.name: term}
if not criteria:
criteria = mongoengine.Q(**flt)
else:
criteria |= mongoengine.Q(**flt)
if not criteria:
criteria = mongoengine.Q(**flt)
else:
criteria |= mongoengine.Q(**flt)
query = query.filter(criteria)
query = query.filter(criteria)
if offset:
query = query.skip(offset)
......
......@@ -52,16 +52,17 @@ class QueryAjaxModelLoader(AjaxModelLoader):
def get_list(self, term, offset=0, limit=DEFAULT_PAGE_SIZE):
query = self.model.select()
stmt = None
for field in self._cached_fields:
q = field ** (u'%%%s%%' % term)
if len(term) > 0:
stmt = None
for field in self._cached_fields:
q = field ** (u'%%%s%%' % term)
if stmt is None:
stmt = q
else:
stmt |= q
if stmt is None:
stmt = q
else:
stmt |= q
query = query.where(stmt)
query = query.where(stmt)
if offset:
query = query.offset(offset)
......
......@@ -58,8 +58,9 @@ class QueryAjaxModelLoader(AjaxModelLoader):
def get_list(self, term, offset=0, limit=DEFAULT_PAGE_SIZE):
query = self.session.query(self.model)
filters = (field.like(u'%%%s%%' % term) for field in self._cached_fields)
query = query.filter(or_(*filters))
if len(term) > 0:
filters = (field.like(u'%%%s%%' % term) for field in self._cached_fields)
query = query.filter(or_(*filters))
return query.offset(offset).limit(limit).all()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment