diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index d096e15b51d..9588ad757a6 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3351,6 +3351,23 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ controller.on('edit:before', self, function (e) { e.cancel = true; }); + var has_handle = _(controller.columns).find(function (column) { + if (!column instanceof instance.web.list.Handle) { + return false; + } + column.modifiers.tree_invisible = true; + column.invisible = '1'; + // remove from visibles + controller.visible_columns.splice( + controller.visible_columns.indexOf(column), + 1); + return true; + }); + if (has_handle) { + // recompute aggregates + controller.aggregate_columns = + _(controller.visible_columns).invoke('to_aggregate'); + } } } else if (view_type === "form") { if (self.get("effective_readonly")) { @@ -3586,6 +3603,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ _template: 'One2Many.listview', init: function (parent, dataset, view_id, options) { this._super(parent, dataset, view_id, _.extend(options || {}, { + GroupsType: instance.web.form.One2ManyGroups, ListType: instance.web.form.One2ManyList })); this.on('edit:before', this, this.proxy('_before_edit')); @@ -3766,6 +3784,13 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ }); } }); +instance.web.form.One2ManyGroups = instance.web.ListView.Groups.extend({ + setup_resequence_rows: function () { + if (!this.view.o2m.get('effective_readonly')) { + this._super.apply(this, arguments); + } + } +}); instance.web.form.One2ManyList = instance.web.ListView.List.extend({ pad_table_to: function (count) { if (!this.view.is_action_enabled('create')) {