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();
+
+