diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index ff06b5865c8..4affa237956 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -2074,16 +2074,20 @@ instance.web.list.Button = instance.web.list.Column.extend({ * Return an actual ``', { - title: this.string || '', - additional_attributes: isNaN(row_data["id"].value) && instance.web.BufferedDataSet.virtual_id_regex.test(row_data["id"].value) ? - 'disabled="disabled" class="oe_list_button_disabled"' : '', - prefix: instance.session.prefix, - icon: this.icon, - alt: this.string || '' - }); + options = options || {}; + var attrs = {}; + if (options.process_modifiers !== false) { + attrs = this.modifiers_for(row_data); + } + if (attrs.invisible) { return ''; } + + return QWeb.render('ListView.row.button', { + widget: this, + prefix: instance.session.prefix, + disabled: attrs.readonly + || isNaN(row_data.id.value) + || instance.web.BufferedDataSet.virtual_id_regex.test(row_data.id.value) + }); } }); instance.web.list.Boolean = instance.web.list.Column.extend({ diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 96282a36a27..88be06216ce 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -702,6 +702,11 @@ +