diff --git a/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js b/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js
index 9e0e1621c27..d782eb99015 100644
--- a/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js
+++ b/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js
@@ -54,6 +54,7 @@ var GroupByMenuInterfaceMixin = {
defaultOptionId: groupby ? groupby.interval : false,
});
});
+ groupbys = _.sortBy(groupbys, 'description');
var groupByMenu = new GroupByMenu(this, groupbys, groupableFields, {headerStyle: 'primary'});
groupByMenu.insertAfter($node.find('div:first'));
},
diff --git a/addons/web/static/src/js/widgets/dropdown_menu.js b/addons/web/static/src/js/widgets/dropdown_menu.js
index 335eed80e0e..6fb8aab9bb4 100644
--- a/addons/web/static/src/js/widgets/dropdown_menu.js
+++ b/addons/web/static/src/js/widgets/dropdown_menu.js
@@ -52,7 +52,7 @@ var DropdownMenu = Widget.extend({
el: {class: 'btn-group o_dropdown', attrs: {}},
mainButton: {class: 'o_dropdown_toggler_btn btn btn-sm btn-default dropdown-toggle'},
};
- this.items = _.sortBy(items, 'groupId');
+ this.items = items;
_.each(this.items, this._prepareItem.bind(this));
},
/**
diff --git a/addons/web/static/tests/views/search_view_tests.js b/addons/web/static/tests/views/search_view_tests.js
index 53f387d4990..e88028e5da4 100644
--- a/addons/web/static/tests/views/search_view_tests.js
+++ b/addons/web/static/tests/views/search_view_tests.js
@@ -78,11 +78,18 @@ QUnit.module('Search View', {
search_view_id: [5, 'search'],
}, {
id: 7,
- name: 'Partners Action 8',
+ name: 'Partners Action 7',
res_model: 'partner',
type: 'ir.actions.act_window',
views: [[2, 'list']],
search_view_id: [6, 'search'],
+ }, {
+ id: 8,
+ name: 'Partners Action 8',
+ res_model: 'partner',
+ type: 'ir.actions.act_window',
+ views: [[2, 'list']],
+ search_view_id: [7, 'search'],
}
];
@@ -118,12 +125,35 @@ QUnit.module('Search View', {
'partner,5,search': ''+
'' +
'' +
- '',
+ '',
'partner,6,search': ''+
'' +
'' +
'' +
- '',
+ '',
+ 'partner,7,search': ''+
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '',
};
},
}, function () {
@@ -475,5 +505,23 @@ QUnit.module('Search View', {
$('.o_favorites_menu .o_save_name button').click();
actionManager.destroy();
});
+
+ QUnit.test('arch order of groups of filters preserved', function (assert) {
+ assert.expect(12);
+
+ var actionManager = createActionManager({
+ actions: this.actions,
+ archs: this.archs,
+ data: this.data,
+ });
+
+ actionManager.doAction(8);
+ $('span.fa-filter').click();
+ assert.strictEqual($('.o_filters_menu .o_menu_item').length, 11);
+ for (var i = 0; i < 11; i++) {
+ assert.strictEqual($('.o_filters_menu .o_menu_item').eq(i).text().trim(), (i+1).toString());
+ }
+ actionManager.destroy();
+ });
});
});