diff --git a/addons/web/static/src/js/framework/view.js b/addons/web/static/src/js/framework/view.js
index e34a8f486ecf346909eb4fa8b0fdf295c34ed238..b234d02390f70a913eaea44f54f2fde56fd8d3f8 100644
--- a/addons/web/static/src/js/framework/view.js
+++ b/addons/web/static/src/js/framework/view.js
@@ -16,10 +16,12 @@ var View = Widget.extend({
     },
     // name displayed in view switchers
     display_name: '',
-    /**
-     * Define a view type for each view to allow automatic call to fields_view_get.
-     */
+    // define a view type for each view to allow automatic call to fields_view_get.
     view_type: undefined,
+    // used by views that need a searchview.
+    searchable: true,
+    // used by views that need a searchview but don't want it to be displayed.
+    searchview_hidden: false,
     // multi_record is used to distinguish views displaying a single record
     // (e.g. FormView) from those that display several records (e.g. ListView)
     multi_record: true,
diff --git a/addons/web/static/src/js/view_manager.js b/addons/web/static/src/js/view_manager.js
index bf2e5beb185069ef644370ee2d334a43365c61e0..cd773dc0c7650b9034111ad58ff9f454d7d7c46a 100644
--- a/addons/web/static/src/js/view_manager.js
+++ b/addons/web/static/src/js/view_manager.js
@@ -183,7 +183,7 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
                 cp_content: _.extend({}, self.control_elements, view_control_elements),
                 hidden: self.flags.headless,
                 searchview: self.searchview,
-                search_view_hidden: view_controller.searchable === false,
+                search_view_hidden: view_controller.searchable === false || view_controller.searchview_hidden,
             };
             self.update_control_panel(cp_status);