diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index f2d80fff715..7392c1e9922 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -894,6 +894,10 @@ label.error { opacity: 0.75; } +.openerp .oe-listview .oe-field-cell .oe-listview-button-disabled img { + opacity: 0.5; +} + .openerp .oe-listview th.oe-actions { text-align: left; white-space: nowrap; diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 264cc836e2d..da89073ea68 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -252,14 +252,17 @@ openerp.web.format_cell = function (row_data, column, value_if_empty, process_mo } if (attrs.invisible) { return ''; } if (column.tag === 'button') { - return [ - '' - ].join('') + return _.template('', { + title: column.string || '', + additional_attributes: isNaN(row_data["id"].value) && openerp.web.BufferedDataSet.virtual_id_regex.test(row_data["id"].value) ? + 'disabled="disabled" class="oe-listview-button-disabled"' : '', + prefix: openerp.connection.prefix, + icon: column.icon, + alt: column.string || '', + }); } - if (!row_data[column.id]) { return value_if_empty === undefined ? '' : value_if_empty; }