[FIX] Fix problem with reference field. Field is not reset when set_value(false)
bzr revid: fme@openerp.com-20111208122851-gd2v732m4105x3bh
This commit is contained in:
parent
31e245129e
commit
0ce87ab853
|
@ -2785,6 +2785,7 @@ openerp.web.form.FieldReference = openerp.web.form.Field.extend({
|
||||||
name: 'selection',
|
name: 'selection',
|
||||||
widget: 'selection'
|
widget: 'selection'
|
||||||
}});
|
}});
|
||||||
|
this.reference_ready = true;
|
||||||
this.selection.on_value_changed.add_last(this.on_selection_changed);
|
this.selection.on_value_changed.add_last(this.on_selection_changed);
|
||||||
this.m2o = new openerp.web.form.FieldMany2One(this, { attrs: {
|
this.m2o = new openerp.web.form.FieldMany2One(this, { attrs: {
|
||||||
name: 'm2o',
|
name: 'm2o',
|
||||||
|
@ -2794,10 +2795,12 @@ openerp.web.form.FieldReference = openerp.web.form.Field.extend({
|
||||||
on_nop: function() {
|
on_nop: function() {
|
||||||
},
|
},
|
||||||
on_selection_changed: function() {
|
on_selection_changed: function() {
|
||||||
var sel = this.selection.get_value();
|
if (this.reference_ready) {
|
||||||
this.m2o.field.relation = sel;
|
var sel = this.selection.get_value();
|
||||||
this.m2o.set_value(null);
|
this.m2o.field.relation = sel;
|
||||||
this.m2o.$element.toggle(sel !== false);
|
this.m2o.set_value(null);
|
||||||
|
this.m2o.$element.toggle(sel !== false);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
start: function() {
|
start: function() {
|
||||||
this._super();
|
this._super();
|
||||||
|
@ -2812,11 +2815,18 @@ openerp.web.form.FieldReference = openerp.web.form.Field.extend({
|
||||||
},
|
},
|
||||||
set_value: function(value) {
|
set_value: function(value) {
|
||||||
this._super(value);
|
this._super(value);
|
||||||
|
this.reference_ready = false;
|
||||||
|
var vals = [], sel_val, m2o_val;
|
||||||
if (typeof(value) === 'string') {
|
if (typeof(value) === 'string') {
|
||||||
var vals = value.split(',');
|
vals = value.split(',');
|
||||||
this.selection.set_value(vals[0]);
|
|
||||||
this.m2o.set_value(parseInt(vals[1], 10));
|
|
||||||
}
|
}
|
||||||
|
sel_val = vals[0] || false;
|
||||||
|
m2o_val = vals[1] ? parseInt(vals[1], 10) : false;
|
||||||
|
this.selection.set_value(sel_val);
|
||||||
|
this.m2o.field.relation = sel_val;
|
||||||
|
this.m2o.set_value(m2o_val);
|
||||||
|
this.m2o.$element.toggle(sel_val !== false);
|
||||||
|
this.reference_ready = true;
|
||||||
},
|
},
|
||||||
get_value: function() {
|
get_value: function() {
|
||||||
var model = this.selection.get_value(),
|
var model = this.selection.get_value(),
|
||||||
|
|
Loading…
Reference in New Issue