Commit cc40c6de authored by PJ Janse van Rensburg's avatar PJ Janse van Rensburg

Merge branch 'master' of https://github.com/sealemar/flask-admin into ajax-min-input-length

parents 9264a987 fba873d5
......@@ -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)
......
......@@ -61,6 +61,9 @@ class AjaxSelect2Widget(object):
placeholder = field.loader.options.get('placeholder', gettext('Please select model'))
kwargs.setdefault('data-placeholder', placeholder)
minimum_input_length = int(field.loader.options.get('minimum_input_length', 1))
kwargs.setdefault('data-minimum-input-length', minimum_input_length)
return HTMLString('<input %s>' % html_params(name=field.name, **kwargs))
......
......@@ -11,7 +11,7 @@
var opts = {
width: 'resolve',
minimumInputLength: 1,
minimumInputLength: $el.attr('data-minimum-input-length'),
placeholder: 'data-placeholder',
ajax: {
url: $el.attr('data-url'),
......@@ -305,6 +305,8 @@
if ($el.attr('data-allow-blank'))
opts['allowClear'] = true;
opts['minimumInputLength'] = $el.attr('data-minimum-input-length');
if ($el.attr('data-tags')) {
$.extend(opts, {
tokenSeparators: [','],
......
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