Ported m2m, still has to port m2mtags

bzr revid: nicolas.vanhoren@openerp.com-20121012084337-7etwh54ugl4k01mu
This commit is contained in:
niv-openerp 2012-10-12 10:43:37 +02:00
parent 55a5f51aeb
commit 7314375aca
1 changed files with 17 additions and 30 deletions

View File

@ -3210,7 +3210,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
lazy_build_o2m_kanban_view(); lazy_build_o2m_kanban_view();
this.is_loaded = $.Deferred(); this.is_loaded = $.Deferred();
this.initial_is_loaded = this.is_loaded; this.initial_is_loaded = this.is_loaded;
this.is_setted = $.Deferred();
this.form_last_update = $.Deferred(); this.form_last_update = $.Deferred();
this.init_form_last_update = this.form_last_update; this.init_form_last_update = this.form_last_update;
this.is_started = false; this.is_started = false;
@ -3230,9 +3229,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
var self = this; var self = this;
this.is_setted.then(function() { self.load_views();
self.load_views();
});
this.is_loaded.then(function() { this.is_loaded.then(function() {
self.on("change:effective_readonly", self, function() { self.on("change:effective_readonly", self, function() {
self.is_loaded = self.is_loaded.pipe(function() { self.is_loaded = self.is_loaded.pipe(function() {
@ -3348,10 +3345,8 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
} }
}); });
}); });
this.is_setted.then(function() { $.async_when().then(function () {
$.async_when().then(function () { self.viewmanager.appendTo(self.$el);
self.viewmanager.appendTo(self.$el);
});
}); });
return def; return def;
}, },
@ -3431,7 +3426,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
if (this.dataset.index === null && this.dataset.ids.length > 0) { if (this.dataset.index === null && this.dataset.ids.length > 0) {
this.dataset.index = 0; this.dataset.index = 0;
} }
self.is_setted.resolve();
this.trigger_on_change(); this.trigger_on_change();
if (this.is_started) { if (this.is_started) {
return self.reload_current_view(); return self.reload_current_view();
@ -3960,36 +3954,33 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
disable_utility_classes: true, disable_utility_classes: true,
init: function(field_manager, node) { init: function(field_manager, node) {
this._super(field_manager, node); this._super(field_manager, node);
this.set({"value": []});
this.is_loaded = $.Deferred(); this.is_loaded = $.Deferred();
this.initial_is_loaded = this.is_loaded; this.initial_is_loaded = this.is_loaded;
this.is_setted = $.Deferred(); this.dataset = new instance.web.form.Many2ManyDataSet(this, this.field.relation);
this.dataset.m2m = this;
var self = this;
this.dataset.on('unlink', self, function(ids) {
self.dataset_changed();
});
this.set_value([]);
}, },
start: function() { start: function() {
this._super.apply(this, arguments);
this.$el.addClass('oe_form_field oe_form_field_many2many'); this.$el.addClass('oe_form_field oe_form_field_many2many');
var self = this; var self = this;
this.dataset = new instance.web.form.Many2ManyDataSet(this, this.field.relation); self.load_view();
this.dataset.m2m = this;
this.dataset.on('unlink', self, function(ids) {
self.dataset_changed();
});
this.is_setted.then(function() {
self.load_view();
});
this.is_loaded.then(function() { this.is_loaded.then(function() {
self.on("change:effective_readonly", self, function() { self.on("change:effective_readonly", self, function() {
self.is_loaded = self.is_loaded.pipe(function() { self.is_loaded = self.is_loaded.pipe(function() {
self.list_view.destroy(); self.list_view.destroy();
return $.when(self.load_view()).then(function() { return $.when(self.load_view()).then(function() {
self.reload_content(); self.render_value();
}); });
}); });
}); });
}); });
this._super.apply(this, arguments);
}, },
set_value: function(value_) { set_value: function(value_) {
value_ = value_ || []; value_ = value_ || [];
@ -3997,17 +3988,12 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
value_ = value_[0][2]; value_ = value_[0][2];
} }
this._super(value_); this._super(value_);
this.dataset.set_ids(value_);
var self = this;
self.reload_content();
this.is_setted.resolve();
}, },
get_value: function() { get_value: function() {
return [commands.replace_with(this.get('value'))]; return [commands.replace_with(this.get('value'))];
}, },
is_false: function () { is_false: function () {
return _(this.dataset.ids).isEmpty(); return _(this.get("value")).isEmpty();
}, },
load_view: function() { load_view: function() {
var self = this; var self = this;
@ -4034,14 +4020,15 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
}); });
return loaded; return loaded;
}, },
reload_content: function() { render_value: function() {
var self = this; var self = this;
this.dataset.set_ids(this.get("value"));
this.is_loaded = this.is_loaded.pipe(function() { this.is_loaded = this.is_loaded.pipe(function() {
return self.list_view.reload_content(); return self.list_view.reload_content();
}); });
}, },
dataset_changed: function() { dataset_changed: function() {
this.set({'value': this.dataset.ids}); this.internal_set_value(this.dataset.ids);
}, },
}); });