Make config param more explicit, for GridFilter constructor

i.e. the rattail config object
This commit is contained in:
Lance Edgar 2023-02-14 17:32:04 -06:00
parent 539f4a5c31
commit ad4ec41e15
2 changed files with 18 additions and 20 deletions

View file

@ -24,12 +24,9 @@
Core Grid Classes
"""
from __future__ import unicode_literals, absolute_import
import warnings
import logging
import six
from six.moves import urllib
import sqlalchemy as sa
from sqlalchemy import orm
@ -493,8 +490,8 @@ class Grid(object):
return ""
enum = self.enums.get(column_name)
if enum and value in enum:
return six.text_type(enum[value])
return six.text_type(value)
return str(enum[value])
return str(value)
def render_gpc(self, obj, column_name):
value = self.obtain_value(obj, column_name)
@ -687,14 +684,16 @@ class Grid(object):
factory = gridfilters.AlchemyDateTimeFilter
elif isinstance(column.type, GPCType):
factory = gridfilters.AlchemyGPCFilter
kwargs['column'] = column
kwargs.setdefault('config', self.request.rattail_config)
kwargs.setdefault('encode_values', self.use_byte_string_filters)
return factory(key, column=column, config=self.request.rattail_config, **kwargs)
return factory(key, **kwargs)
def iter_filters(self):
"""
Iterate over all filters available to the grid.
"""
return six.itervalues(self.filters)
return self.filters.values()
def iter_active_filters(self):
"""
@ -1002,7 +1001,7 @@ class Grid(object):
else: # source = session
settings['{}.active'.format(prefix)] = self.get_setting(
source, settings, '{}.active'.format(prefix),
normalize=lambda v: six.text_type(v).lower() == 'true', default=False)
normalize=lambda v: str(v).lower() == 'true', default=False)
settings['{}.verb'.format(prefix)] = self.get_setting(
source, settings, '{}.verb'.format(prefix), default='')
settings['{}.value'.format(prefix)] = self.get_setting(
@ -1071,7 +1070,7 @@ class Grid(object):
if self.filterable:
for filtr in self.iter_filters():
persist('filter.{}.active'.format(filtr.key), value=lambda k: six.text_type(settings[k]).lower())
persist('filter.{}.active'.format(filtr.key), value=lambda k: str(settings[k]).lower())
persist('filter.{}.verb'.format(filtr.key))
persist('filter.{}.value'.format(filtr.key))
@ -1305,7 +1304,7 @@ class Grid(object):
'multiple_value_verbs': multiple_values,
'verb_labels': filtr.verb_labels,
'verb': filtr.verb or filtr.default_verb or filtr.verbs[0],
'value': six.text_type(filtr.value) if filtr.value is not None else "",
'value': str(filtr.value) if filtr.value is not None else "",
'data_type': filtr.data_type,
'choices': choices,
'choice_labels': choice_labels,
@ -1478,7 +1477,7 @@ class Grid(object):
value = self.obtain_value(rowobj, name)
if value is None:
value = ""
row[name] = six.text_type(value)
row[name] = str(value)
# maybe add UUID for convenience
if 'uuid' not in self.columns: