summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/web/static/src/js/views/control_panel/control_panel_view.js3
-rw-r--r--addons/web/static/tests/views/control_panel_tests.js23
2 files changed, 26 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/control_panel/control_panel_view.js b/addons/web/static/src/js/views/control_panel/control_panel_view.js
index 0d842c4182d..381e5dcf7e5 100644
--- a/addons/web/static/src/js/views/control_panel/control_panel_view.js
+++ b/addons/web/static/src/js/views/control_panel/control_panel_view.js
@@ -197,6 +197,9 @@ var ControlPanelView = Factory.extend({
var groupNumber = 1;
_.each(preFilters, function (preFilter) {
+ if (preFilter.attrs && preFilter.attrs.invisible) {
+ return;
+ }
if (preFilter.tag !== currentTag || _.contains(['separator', 'field'], preFilter.tag)) {
if (currentGroup.length) {
if (currentTag === 'groupBy') {
diff --git a/addons/web/static/tests/views/control_panel_tests.js b/addons/web/static/tests/views/control_panel_tests.js
index 513cdb32e08..08cc1391719 100644
--- a/addons/web/static/tests/views/control_panel_tests.js
+++ b/addons/web/static/tests/views/control_panel_tests.js
@@ -330,5 +330,28 @@ QUnit.module('Views', {
"there should be two groups of a single field"
);
});
+
+ QUnit.module('Control Panel Rendering');
+
+ QUnit.test('invisible filters are not rendered', async function (assert) {
+ assert.expect(2);
+ var controlPanel = await createControlPanel({
+ model: 'partner',
+ arch: "<search>" +
+ "<filter name=\"filterA\" string=\"A\" domain=\"[]\"/>" +
+ "<filter name=\"filterB\" string=\"B\" invisible=\"1\" domain=\"[]\"/>" +
+ "</search>",
+ data: this.data,
+ searchMenuTypes: ['filter'],
+ context: {
+ search_disable_custom_filters: true,
+ },
+ });
+ testUtils.dom.click(controlPanel.$('.o_filters_menu_button'));
+ assert.containsOnce(controlPanel, '.o_menu_item a:contains("A")');
+ assert.containsNone(controlPanel, '.o_menu_item a:contains("B")');
+
+ controlPanel.destroy();
+ });
});
});