[ADD] web: sorting in ir_filters

Add a parameter sort on the ir.filters to maintain the order of searching when
reloading a filter.
Fixes #6867
This commit is contained in:
Jean-Baptiste Quenot
2015-06-23 16:00:07 +02:00
committed by Martin Trigaux
parent 692fecb472
commit 3071ef16c7
4 changed files with 37 additions and 25 deletions
@@ -122,6 +122,7 @@ return Widget.extend({
model_id: this.searchview.dataset.model,
context: results.context,
domain: results.domain,
sort: JSON.stringify(this.searchview.dataset._sort),
is_default: default_filter,
action_id: this.action_id,
};
@@ -231,6 +232,13 @@ return Widget.extend({
}
this.query.reset([this.facet_for(filter)], {
preventSearch: preventSearch || false});
// Load sort settings on view
if (!_.isUndefined(filter.sort)){
var sort_items = JSON.parse(filter.sort);
this.searchview.dataset.set_sort(sort_items);
}
this.$filters[this.key_for(filter)].addClass('selected');
},
remove_filter: function (filter, $filter, key) {
+3 -1
View File
@@ -45,7 +45,7 @@ class ir_filters(osv.osv):
filter_ids = self.search(cr, uid, action_domain +
[('model_id','=',model),('user_id','in',[uid, False])])
my_filters = self.read(cr, uid, filter_ids,
['name', 'is_default', 'domain', 'context', 'user_id'], context=context)
['name', 'is_default', 'domain', 'context', 'user_id', 'sort'], context=context)
return my_filters
def _check_global_default(self, cr, uid, vals, matching_filters, context=None):
@@ -139,6 +139,7 @@ class ir_filters(osv.osv):
"and available to all users."),
'domain': fields.text('Domain', required=True),
'context': fields.text('Context', required=True),
'sort': fields.text('Sort', required=True),
'model_id': fields.selection(_list_all_models, 'Model', required=True),
'is_default': fields.boolean('Default filter'),
'action_id': fields.many2one('ir.actions.actions', 'Action', ondelete='cascade',
@@ -149,6 +150,7 @@ class ir_filters(osv.osv):
_defaults = {
'domain': '[]',
'context':'{}',
'sort': '[]',
'user_id': lambda self,cr,uid,context=None: uid,
'is_default': False
}
+2
View File
@@ -25,6 +25,7 @@
<group>
<field name="domain"/>
<field name="context"/>
<field name="sort"/>
</group>
</sheet>
</form>
@@ -41,6 +42,7 @@
<field name="action_id"/>
<field name="domain" groups="base.group_no_one"/>
<field name="context" groups="base.group_no_one"/>
<field name="sort" groups="base.group_no_one"/>
</tree>
</field>
</record>
+24 -24
View File
@@ -34,10 +34,10 @@ class TestGetFilters(FiltersCase):
self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', is_default=False, user_id=self.USER, domain='[]', context='{}'),
dict(name='b', is_default=False, user_id=self.USER, domain='[]', context='{}'),
dict(name='c', is_default=False, user_id=self.USER, domain='[]', context='{}'),
dict(name='d', is_default=False, user_id=self.USER, domain='[]', context='{}'),
dict(name='a', is_default=False, user_id=self.USER, domain='[]', context='{}', sort='[]'),
dict(name='b', is_default=False, user_id=self.USER, domain='[]', context='{}', sort='[]'),
dict(name='c', is_default=False, user_id=self.USER, domain='[]', context='{}', sort='[]'),
dict(name='d', is_default=False, user_id=self.USER, domain='[]', context='{}', sort='[]'),
])
def test_global_filters(self):
@@ -53,10 +53,10 @@ class TestGetFilters(FiltersCase):
self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', is_default=False, user_id=False, domain='[]', context='{}'),
dict(name='b', is_default=False, user_id=False, domain='[]', context='{}'),
dict(name='c', is_default=False, user_id=False, domain='[]', context='{}'),
dict(name='d', is_default=False, user_id=False, domain='[]', context='{}'),
dict(name='a', is_default=False, user_id=False, domain='[]', context='{}', sort='[]'),
dict(name='b', is_default=False, user_id=False, domain='[]', context='{}', sort='[]'),
dict(name='c', is_default=False, user_id=False, domain='[]', context='{}', sort='[]'),
dict(name='d', is_default=False, user_id=False, domain='[]', context='{}', sort='[]'),
])
def test_no_third_party_filters(self):
@@ -71,8 +71,8 @@ class TestGetFilters(FiltersCase):
self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', is_default=False, user_id=False, domain='[]', context='{}'),
dict(name='c', is_default=False, user_id=self.USER, domain='[]', context='{}'),
dict(name='a', is_default=False, user_id=False, domain='[]', context='{}', sort='[]'),
dict(name='c', is_default=False, user_id=self.USER, domain='[]', context='{}', sort='[]'),
])
class TestOwnDefaults(FiltersCase):
@@ -97,7 +97,7 @@ class TestOwnDefaults(FiltersCase):
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=self.USER, is_default=True,
domain='[]', context='{}')
domain='[]', context='{}', sort='[]')
])
def test_new_filter_not_default(self):
@@ -121,9 +121,9 @@ class TestOwnDefaults(FiltersCase):
filters = Filters.get_filters(self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=self.USER, is_default=False, domain='[]', context='{}'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}'),
dict(name='c', user_id=self.USER, is_default=True, domain='[]', context='{}'),
dict(name='a', user_id=self.USER, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='c', user_id=self.USER, is_default=True, domain='[]', context='{}', sort='[]'),
])
def test_new_filter_existing_default(self):
@@ -147,9 +147,9 @@ class TestOwnDefaults(FiltersCase):
filters = Filters.get_filters(self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=self.USER, is_default=False, domain='[]', context='{}'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}'),
dict(name='c', user_id=self.USER, is_default=True, domain='[]', context='{}'),
dict(name='a', user_id=self.USER, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='c', user_id=self.USER, is_default=True, domain='[]', context='{}', sort='[]'),
])
def test_update_filter_set_default(self):
@@ -173,8 +173,8 @@ class TestOwnDefaults(FiltersCase):
filters = Filters.get_filters(self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=self.USER, is_default=True, domain='[]', context='{}'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}'),
dict(name='a', user_id=self.USER, is_default=True, domain='[]', context='{}', sort='[]'),
dict(name='b', user_id=self.USER, is_default=False, domain='[]', context='{}', sort='[]'),
])
class TestGlobalDefaults(FiltersCase):
@@ -204,9 +204,9 @@ class TestGlobalDefaults(FiltersCase):
filters = Filters.get_filters(self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=False, is_default=False, domain='[]', context='{}'),
dict(name='b', user_id=False, is_default=False, domain='[]', context='{}'),
dict(name='c', user_id=False, is_default=True, domain='[]', context='{}'),
dict(name='a', user_id=False, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='b', user_id=False, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='c', user_id=False, is_default=True, domain='[]', context='{}', sort='[]'),
])
def test_new_filter_existing_default(self):
@@ -272,6 +272,6 @@ class TestGlobalDefaults(FiltersCase):
filters = Filters.get_filters(self.cr, self.USER_ID, 'ir.filters')
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=False, is_default=False, domain='[]', context='{}'),
dict(name='b', user_id=False, is_default=True, domain='[]', context=context_value),
dict(name='a', user_id=False, is_default=False, domain='[]', context='{}', sort='[]'),
dict(name='b', user_id=False, is_default=True, domain='[]', context=context_value, sort='[]'),
])