From abd08b620e65423abf9cae1a76f4b8c1e9711bab Mon Sep 17 00:00:00 2001 From: "sma (Tiny)" Date: Tue, 3 May 2011 14:20:44 +0530 Subject: [PATCH] [IMP] Passed m2o values when save the records. bzr revid: sma@tinyerp.com-20110503085044-ipqgfoo2her4nwuz --- addons/base/static/src/js/form.js | 13 +++++++++++-- addons/base/static/src/js/m2o.js | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index b04a86f6356..7cc33ab8a13 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -842,6 +842,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.$element = $('#' + this.element_id); this.dataset = new openerp.base.form.FieldMany2OneDatasSet(this.session, this.field.relation); new openerp.base.m2o(this.$element, this.field.relation, this.dataset, this.session) + this.$element.find('input').change(this.on_ui_change); }, set_value: function(value) { this._super.apply(this, arguments); @@ -851,8 +852,16 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.value = value[0]; } this.$element.find('input').val(show_value); - // Need to replace this `text` with original `id` after discuss with xmo - this.$element.find('input').attr('text', this.value); + this.$element.find('input').attr('m2o_id', this.value); + }, + + get_value: function() { + var val = this.$element.find('input').attr('m2o_id') || this.value + return val; + }, + + on_ui_change: function() { + this.touched = this.view.touched = true; } }); diff --git a/addons/base/static/src/js/m2o.js b/addons/base/static/src/js/m2o.js index 705c9abb529..d12ddf05ad5 100644 --- a/addons/base/static/src/js/m2o.js +++ b/addons/base/static/src/js/m2o.js @@ -198,6 +198,9 @@ openerp.base.m2o = openerp.base.Controller.extend({ var event_list = new openerp.base.ListView(this.view_manager, this.session, element_id, this.dataset, false); event_list.start(); event_list.do_reload(); + } + if ($selectedRow.find('td').attr('id') == 'create') { + } this.setCompletionText($selectedRow, true); this.clearResults(); @@ -274,6 +277,7 @@ openerp.base.m2o = openerp.base.Controller.extend({ var autoCompleteText = $cell.find('span').text(); autoCompleteText = flag ? autoCompleteText : this.lastSearch + '[' + autoCompleteText.substring(this.lastSearch.length) + ']' this.element.val(autoCompleteText); + this.element.attr('m2o_id', $cell.attr('data-id')); this.lastTextResult = autoCompleteText; },