[FIX] Loading problems in m2m.
bzr revid: nicolas.vanhoren@openerp.com-20110510121551-8zob0o2zsvvpgz2c
This commit is contained in:
parent
9dcb8cfe24
commit
af7a53c7f2
|
@ -915,6 +915,8 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
|
||||||
this._super(view, node);
|
this._super(view, node);
|
||||||
this.template = "FieldMany2Many";
|
this.template = "FieldMany2Many";
|
||||||
this.list_id = _.uniqueId("many2many");
|
this.list_id = _.uniqueId("many2many");
|
||||||
|
this.is_started = false;
|
||||||
|
this.is_setted = false;
|
||||||
},
|
},
|
||||||
start: function() {
|
start: function() {
|
||||||
this._super.apply(this, arguments);
|
this._super.apply(this, arguments);
|
||||||
|
@ -924,16 +926,30 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
|
||||||
var self = this;
|
var self = this;
|
||||||
this.list_view.m2m_field = this;
|
this.list_view.m2m_field = this;
|
||||||
this.list_view.start();
|
this.list_view.start();
|
||||||
|
var hack = {loaded: false};
|
||||||
|
this.list_view.on_loaded.add_last(function() {
|
||||||
|
if (! hack.loaded) {
|
||||||
|
self.is_started = true;
|
||||||
|
self.check_load();
|
||||||
|
hack.loaded = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
set_value: function(value) {
|
set_value: function(value) {
|
||||||
if (value != false) {
|
if (value != false) {
|
||||||
this.dataset.ids = value;
|
this.dataset.ids = value;
|
||||||
this.dataset.count = value.length;
|
this.dataset.count = value.length;
|
||||||
this.list_view.do_reload();
|
this.is_setted = true;
|
||||||
|
this.check_load();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
get_value: function() {
|
get_value: function() {
|
||||||
return [[6,false,this.dataset.ids]];
|
return [[6,false,this.dataset.ids]];
|
||||||
|
},
|
||||||
|
check_load: function() {
|
||||||
|
if(this.is_started && this.is_setted) {
|
||||||
|
this.list_view.do_reload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1009,10 +1025,6 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
|
||||||
this._super();
|
this._super();
|
||||||
this.dataset = new openerp.base.DataSetSearch(this.session, this.model);
|
this.dataset = new openerp.base.DataSetSearch(this.session, this.model);
|
||||||
this.setup_search_view();
|
this.setup_search_view();
|
||||||
this.view_list = new openerp.base.form.Many2XPopupListView( null, this.session,
|
|
||||||
this.element_id + "_view_list", this.dataset, false);
|
|
||||||
this.view_list.popup = this;
|
|
||||||
this.view_list.start();
|
|
||||||
},
|
},
|
||||||
setup_search_view: function() {
|
setup_search_view: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -1036,9 +1048,20 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
|
||||||
$cbutton.click(function() {
|
$cbutton.click(function() {
|
||||||
self.stop();
|
self.stop();
|
||||||
});
|
});
|
||||||
|
self.view_list = new openerp.base.form.Many2XPopupListView( null, self.session,
|
||||||
|
self.element_id + "_view_list", self.dataset, false);
|
||||||
|
self.view_list.popup = self;
|
||||||
|
self.view_list.do_show();
|
||||||
|
self.view_list.start();
|
||||||
|
var tmphack = {"loaded": false};
|
||||||
|
self.view_list.on_loaded.add_last(function() {
|
||||||
|
if ( !tmphack.loaded ) {
|
||||||
|
self.view_list.do_reload();
|
||||||
|
tmphack.loaded = true;
|
||||||
|
};
|
||||||
|
});
|
||||||
});
|
});
|
||||||
this.searchview.start();
|
this.searchview.start();
|
||||||
|
|
||||||
},
|
},
|
||||||
on_select_element: function(element_id) {
|
on_select_element: function(element_id) {
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue