From acfe41a9054eaa56a0209a836d7a0b62f7387f5a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 29 Apr 2013 12:51:26 +0200 Subject: [PATCH] Got working widget bzr revid: nicolas.vanhoren@openerp.com-20130429105126-c4g504lbsp64m29t --- addons/web_kanban/static/src/js/kanban.js | 40 ++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index b02f8d12151..8d17a8e03aa 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -133,12 +133,16 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } switch (node.tag) { case 'field': - if (this.fields_view.fields[node.attrs.name].type === 'many2many') { + var ftype = this.fields_view.fields[node.attrs.name].type; + ftype = node.attrs.widget ? node.attrs.widget : ftype; + if (ftype === 'many2many') { if (_.indexOf(this.many2manys, node.attrs.name) < 0) { this.many2manys.push(node.attrs.name); } node.tag = 'div'; node.attrs['class'] = (node.attrs['class'] || '') + ' oe_form_field oe_tags'; + } else if (instance.web_kanban.fields_registry.contains(ftype)) { + // do nothing, the kanban record will handle it } else { node.tag = QWeb.prefix; node.attrs[QWeb.prefix + '-esc'] = 'record.' + node.attrs['name'] + '.value'; @@ -766,6 +770,7 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ }; } this.state = this.view.state.records[this.id]; + this.fields = {}; }, set_record: function(record) { var self = this; @@ -779,7 +784,11 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ this.record = this.transform_record(record); }, start: function() { + var self = this; this._super(); + this.$("[data-field_id]").each(function() { + self.add_widget($(this)); + }); this.$el.data('widget', this); this.bind_events(); }, @@ -815,6 +824,27 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ 'content': this.view.qweb.render('kanban-box', this.qweb_context) }); this.replaceElement($el); + this.replace_fields(); + }, + replace_fields: function() { + var self = this; + this.$("field").each(function() { + var $field = $(this); + var $nfield = $("