diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index f4509c82a81..e783f374dce 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -119,17 +119,18 @@ openerp.web.ContainerDataGroup = openerp.web.DataGroup.extend( /** @lends opener aggregates[key] = value || 0; }); + var group_size = fixed_group[field_name + '_count'] || fixed_group.__count || 0; + var leaf_group = fixed_group.__context.group_by.length === 0; return { __context: fixed_group.__context, __domain: fixed_group.__domain, grouped_on: field_name, // if terminal group (or no group) and group_by_no_leaf => use group.__count - length: fixed_group[field_name + '_count'] || fixed_group.__count, + length: group_size, value: fixed_group[field_name], - - openable: !(this.context['group_by_no_leaf'] - && fixed_group.__context.group_by.length === 0), + // A group is openable if it's not a leaf in group_by_no_leaf mode + openable: !(leaf_group && this.context['group_by_no_leaf']), aggregates: aggregates }; diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 77f04d4c864..a976bde8f0b 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -1127,7 +1127,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L child.datagroup = group; var $row = child.$row = $(''); - if (group.openable) { + if (group.openable && group.length) { $row.click(function (e) { if (!$row.data('open')) { $row.data('open', true) @@ -1159,7 +1159,13 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L } catch (e) { $group_column.html(row_data[group_column.id].value); } - if (group.openable) { + if (!group.length) { + // Kinda-ugly hack: jquery-ui has no "empty" icon, so set + // wonky background position to ensure nothing is displayed + // there but the rest of the behavior is ui-icon's + $group_column.prepend( + ''); + } else if (group.openable) { // Make openable if not terminal group & group_by_no_leaf $group_column .prepend('');