Commit 3bf7e239 authored by Serge S. Koval's avatar Serge S. Koval

Minor cleanup

parent d851c420
......@@ -567,13 +567,17 @@ class BaseModelView(BaseView, ActionsMixin):
if flt.name not in self._filter_groups:
self._filter_groups[flt.name] = []
self._filter_groups[flt.name].append((i, flt))
self._filter_args[self.get_filter_arg(i, flt)] = (i, flt)
self._filter_groups[flt.name].append({
'index': i,
'arg': self.get_filter_arg(i, flt),
'operation': flt.operation(),
'options': flt.get_options(self) or None,
'type': flt.data_type
})
self._filter_data = self._serialize_filter_args()
self._filter_args[self.get_filter_arg(i, flt)] = (i, flt)
else:
self._filter_groups = None
self._filter_data = None
self._filter_args = None
# Form rendering rules
......@@ -748,31 +752,6 @@ class BaseModelView(BaseView, ActionsMixin):
else:
return str(index)
def _serialize_filter_args(self):
"""
Convert filter information into JSON-serializable object.
"""
if self._filters:
result = {}
for name, group in iteritems(self._filter_groups):
data = []
for idx, flt in group:
data.append({
'index': idx,
'arg': self.get_filter_arg(idx, flt),
'operation': flt.operation(),
'options': flt.get_options(self) or None,
'type': flt.data_type
})
result[name] = data
return result
return self._filters
# Form helpers
def scaffold_form(self):
"""
......@@ -1228,7 +1207,7 @@ class BaseModelView(BaseView, ActionsMixin):
search=search,
# Filters
filters=self._filters,
filter_groups=self._filter_data,
filter_groups=self._filter_groups,
active_filters=filters,
# Actions
......
......@@ -233,7 +233,7 @@ def test_column_filters():
eq_(len(view._filters), 4)
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Test1']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Test1']],
[
(0, u'equals'),
(1, u'not equal'),
......@@ -245,7 +245,7 @@ def test_column_filters():
view = CustomModelView(Model2, db.session,
column_filters=['model1'])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Test1']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Test1']],
[
(0, u'equals'),
(1, u'not equal'),
......@@ -253,7 +253,7 @@ def test_column_filters():
(3, u'not contains')
])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Test2']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Test2']],
[
(4, 'equals'),
(5, 'not equal'),
......@@ -261,7 +261,7 @@ def test_column_filters():
(7, 'not contains')
])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Test3']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Test3']],
[
(8, u'equals'),
(9, u'not equal'),
......@@ -269,7 +269,7 @@ def test_column_filters():
(11, u'not contains')
])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Test4']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Test4']],
[
(12, u'equals'),
(13, u'not equal'),
......@@ -277,13 +277,13 @@ def test_column_filters():
(15, u'not contains')
])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Bool Field']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Bool Field']],
[
(16, u'equals'),
(17, u'not equal'),
])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Enum Field']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Enum Field']],
[
(18, u'equals'),
(19, u'not equal'),
......@@ -293,7 +293,7 @@ def test_column_filters():
view = CustomModelView(Model2, db.session,
column_filters=['model1.bool_field'])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Model1 / Bool Field']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Model1 / Bool Field']],
[
(0, 'equals'),
(1, 'not equal'),
......@@ -334,7 +334,7 @@ def test_column_filters():
column_filters=['int_field'])
admin.add_view(view)
eq_([(f['index'], f['operation']) for f in view._filter_data[u'Int Field']],
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'Int Field']],
[
(0, 'equals'),
(1, 'not equal'),
......
......@@ -302,8 +302,8 @@ def test_column_filters():
eq_(view._filters[0].name, 'col1')
eq_(view._filters[1].name, 'col2')
eq_([(f['index'], f['operation']) for f in view._filter_data[u'col1']], [(0, 'test')])
eq_([(f['index'], f['operation']) for f in view._filter_data[u'col2']], [(1, 'test')])
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'col1']], [(0, 'test')])
eq_([(f['index'], f['operation']) for f in view._filter_groups[u'col2']], [(1, 'test')])
# TODO: Make calls with filters
......
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