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

Minor cleanup

parent d851c420
...@@ -567,13 +567,17 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -567,13 +567,17 @@ class BaseModelView(BaseView, ActionsMixin):
if flt.name not in self._filter_groups: if flt.name not in self._filter_groups:
self._filter_groups[flt.name] = [] self._filter_groups[flt.name] = []
self._filter_groups[flt.name].append((i, flt)) self._filter_groups[flt.name].append({
self._filter_args[self.get_filter_arg(i, flt)] = (i, flt) '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: else:
self._filter_groups = None self._filter_groups = None
self._filter_data = None
self._filter_args = None self._filter_args = None
# Form rendering rules # Form rendering rules
...@@ -748,31 +752,6 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -748,31 +752,6 @@ class BaseModelView(BaseView, ActionsMixin):
else: else:
return str(index) 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 # Form helpers
def scaffold_form(self): def scaffold_form(self):
""" """
...@@ -1228,7 +1207,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -1228,7 +1207,7 @@ class BaseModelView(BaseView, ActionsMixin):
search=search, search=search,
# Filters # Filters
filters=self._filters, filters=self._filters,
filter_groups=self._filter_data, filter_groups=self._filter_groups,
active_filters=filters, active_filters=filters,
# Actions # Actions
......
...@@ -233,7 +233,7 @@ def test_column_filters(): ...@@ -233,7 +233,7 @@ def test_column_filters():
eq_(len(view._filters), 4) 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'), (0, u'equals'),
(1, u'not equal'), (1, u'not equal'),
...@@ -245,7 +245,7 @@ def test_column_filters(): ...@@ -245,7 +245,7 @@ def test_column_filters():
view = CustomModelView(Model2, db.session, view = CustomModelView(Model2, db.session,
column_filters=['model1']) 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'), (0, u'equals'),
(1, u'not equal'), (1, u'not equal'),
...@@ -253,7 +253,7 @@ def test_column_filters(): ...@@ -253,7 +253,7 @@ def test_column_filters():
(3, u'not contains') (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'), (4, 'equals'),
(5, 'not equal'), (5, 'not equal'),
...@@ -261,7 +261,7 @@ def test_column_filters(): ...@@ -261,7 +261,7 @@ def test_column_filters():
(7, 'not contains') (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'), (8, u'equals'),
(9, u'not equal'), (9, u'not equal'),
...@@ -269,7 +269,7 @@ def test_column_filters(): ...@@ -269,7 +269,7 @@ def test_column_filters():
(11, u'not contains') (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'), (12, u'equals'),
(13, u'not equal'), (13, u'not equal'),
...@@ -277,13 +277,13 @@ def test_column_filters(): ...@@ -277,13 +277,13 @@ def test_column_filters():
(15, u'not contains') (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'), (16, u'equals'),
(17, u'not equal'), (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'), (18, u'equals'),
(19, u'not equal'), (19, u'not equal'),
...@@ -293,7 +293,7 @@ def test_column_filters(): ...@@ -293,7 +293,7 @@ def test_column_filters():
view = CustomModelView(Model2, db.session, view = CustomModelView(Model2, db.session,
column_filters=['model1.bool_field']) 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'), (0, 'equals'),
(1, 'not equal'), (1, 'not equal'),
...@@ -334,7 +334,7 @@ def test_column_filters(): ...@@ -334,7 +334,7 @@ def test_column_filters():
column_filters=['int_field']) column_filters=['int_field'])
admin.add_view(view) 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'), (0, 'equals'),
(1, 'not equal'), (1, 'not equal'),
......
...@@ -302,8 +302,8 @@ def test_column_filters(): ...@@ -302,8 +302,8 @@ def test_column_filters():
eq_(view._filters[0].name, 'col1') eq_(view._filters[0].name, 'col1')
eq_(view._filters[1].name, 'col2') 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_groups[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'col2']], [(1, 'test')])
# TODO: Make calls with filters # 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