Ported the m2o

bzr revid: nicolas.vanhoren@openerp.com-20121011153506-b91c4xm2jsf6a6t7
This commit is contained in:
niv-openerp 2012-10-11 17:35:06 +02:00
parent 7cd873f86f
commit 2fadf797e5
1 changed files with 14 additions and 15 deletions

View File

@ -2873,26 +2873,28 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
this.display_value = {};
this.last_search = [];
this.floating = false;
this.inhibit_on_change = false;
this.current_display = null;
this.is_started = false;
},
start: function() {
this._super();
instance.web.form.ReinitializeFieldMixin.start.call(this);
this.on("change:value", this, function() {
this.floating = false;
this.render_value();
});
this.is_started = true;
instance.web.bus.on('click', this, function() {
if (!this.get("effective_readonly") && this.$input && this.$input.autocomplete('widget').is(':visible')) {
this.$input.autocomplete("close");
}
});
},
reinit_value: function(val) {
this.internal_set_value(val);
this.floating = false;
if (this.is_started)
this.render_value();
},
initialize_content: function() {
if (!this.get("effective_readonly"))
this.render_editable();
this.render_value();
},
init_error_displayer: function() {
// nothing
@ -2943,7 +2945,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
if (self.current_display !== self.$input.val()) {
self.current_display = self.$input.val();
if (self.$input.val() === "") {
self.set({value: false});
self.internal_set_value(false);
self.floating = false;
} else {
self.floating = true;
@ -2975,15 +2977,14 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
if (self.last_search[0][0] != self.get("value")) {
self.display_value = {};
self.display_value["" + self.last_search[0][0]] = self.last_search[0][1];
self.set({value: self.last_search[0][0]});
self.reinit_value(self.last_search[0][0]);
} else {
used = true;
self.render_value();
}
} else {
used = true;
self.set({value: false});
self.render_value();
self.reinit_value(false);
}
self.floating = false;
}
@ -3038,7 +3039,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
if (item.id) {
self.display_value = {};
self.display_value["" + item.id] = item.name;
self.set({value: item.id});
self.reinit_value(item.id);
} else if (item.action) {
item.action();
// Cancel widget blurring, to avoid form blur event
@ -3129,16 +3130,14 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
value_ = value_[0];
}
value_ = value_ || false;
this.inhibit_on_change = true;
this._super(value_);
this.inhibit_on_change = false;
this.reinit_value(value_);
},
get_displayed: function() {
return this.display_value["" + this.get("value")];
},
add_id: function(id) {
this.display_value = {};
this.set({value: id});
this.reinit_value(id);
},
is_false: function() {
return ! this.get("value");