diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 04fe95ee37f..dd837960e26 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -424,6 +424,7 @@ openerp.base.form.compute_domain = function(expr, fields) { }; openerp.base.form.Widget = openerp.base.Controller.extend({ + template: 'Widget', init: function(view, node) { this.view = view; this.node = node; @@ -437,7 +438,6 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ this.view.widgets[this.element_id] = this; this.children = node.children; this.colspan = parseInt(node.attrs.colspan || 1); - this.template = "Widget"; this.string = this.string || node.attrs.string; this.help = this.help || node.attrs.help; @@ -465,9 +465,9 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ }); openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({ + template: 'WidgetFrame', init: function(view, node) { this._super(view, node); - this.template = "WidgetFrame"; this.columns = node.attrs.col || 4; this.x = 0; this.y = 0; diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 2ff9e71e98b..dd57ae2b69a 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -45,22 +45,29 @@ openerp.base.list.editable = function (openerp) { 'class': $(row).attr('class'), onclick: function (e) {e.stopPropagation();} }).replaceAll(row); - var editable_row_form = new openerp.base.FormView( + var editable_row_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), - this.dataset, false); - editable_row_form.template = 'ListView.row.form'; + this.dataset, false), { + template: 'ListView.row.form', + registry: openerp.base.list.form.widgets + }); editable_row_form.on_loaded({fields_view: this.get_fields_view()}); editable_row_form.on_record_loaded.add({ position: 'last', unique: true, callback: function () { editable_row_form.$element.find('td') - // remove tr, tbody, table - .unwrap().unwrap().unwrap() .removeAttr('width'); } }); editable_row_form.do_show(); } }); + openerp.base.list = {form: {}}; + openerp.base.list.form.WidgetFrame = openerp.base.form.WidgetFrame.extend({ + template: 'ListView.row.frame' + }); + openerp.base.list.form.widgets = openerp.base.form.widgets.clone({ + 'frame': 'openerp.base.list.form.WidgetFrame' + }); }; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index cbd3853a08f..d40ed614176 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -790,4 +790,19 @@ + + + + $(document.createElement('t')) + .append(this.contents()) + .attr({ + 't-foreach': this.attr('t-foreach'), + 't-as': this.attr('t-as') + }) + .replaceAll(this) + .before($(document.createElement('td'))) + .after($(document.createElement('td'))) + .unwrap(); + +