Add MasterView.use_byte_string_filters flag for encoding search values

This commit is contained in:
Lance Edgar 2018-05-24 15:09:00 -05:00
parent 54bfafdbfe
commit ccdf821583
3 changed files with 30 additions and 12 deletions

View file

@ -69,7 +69,7 @@ class Grid(object):
def __init__(self, key, data, columns=None, width='auto', request=None, mobile=False, model_class=None,
enums={}, labels={}, renderers={}, extra_row_class=None, linked_columns=[], url='#',
joiners={}, filterable=False, filters={},
joiners={}, filterable=False, filters={}, use_byte_string_filters=False,
sortable=False, sorters={}, default_sortkey=None, default_sortdir='asc',
pageable=False, default_pagesize=20, default_page=1,
checkboxes=False, checked=None, main_actions=[], more_actions=[],
@ -94,6 +94,7 @@ class Grid(object):
self.joiners = joiners or {}
self.filterable = filterable
self.use_byte_string_filters = use_byte_string_filters
self.filters = self.make_filters(filters)
self.sortable = sortable
@ -426,6 +427,7 @@ class Grid(object):
factory = gridfilters.AlchemyDateTimeFilter
elif isinstance(column.type, GPCType):
factory = gridfilters.AlchemyGPCFilter
kwargs.setdefault('encode_values', self.use_byte_string_filters)
return factory(key, column=column, config=self.request.rattail_config, **kwargs)
def iter_filters(self):