[imp] made o2m work

bzr revid: nicolas.vanhoren@openerp.com-20110531133817-vps6mfgsju1wadni
This commit is contained in:
niv-openerp 2011-05-31 15:38:17 +02:00
parent fd9c0f359e
commit 7cbb2c3084
2 changed files with 13 additions and 25 deletions

View File

@ -988,17 +988,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
} }
}); });
openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSetStatic.extend({
/*start: function() {
},
write: function (id, data, callback) {
this._super(id, data, callback);
},
unlink: function() {
this.notification.notify('Unlinking o2m ' + this.ids);
}*/
});
openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({ openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({
init: function(session, element_id, dataset, views) { init: function(session, element_id, dataset, views) {
this._super(session, element_id, dataset, views); this._super(session, element_id, dataset, views);
@ -1014,9 +1003,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
start: function() { start: function() {
this._super.apply(this, arguments); this._super.apply(this, arguments);
var views = [ [false,"list"], [false,"form"] ]; var views = [ [false,"list"], [false,"form"] ];
this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation); this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation);
this.dataset.ids = [];
this.dataset.count = 0;
this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session,
this.element_id, this.dataset, views); this.element_id, this.dataset, views);
this.viewmanager.start(); this.viewmanager.start();
@ -1034,16 +1021,21 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
}, },
set_value: function(value) { set_value: function(value) {
if(value != false) { if(value != false) {
this.dataset.ids = value; this.dataset.set_ids(value);
this.dataset.count = value.length;
this.is_setted = true; this.is_setted = true;
this.check_load(); this.check_load();
} }
}, },
check_load: function() {
if(this.is_started && this.is_setted) {
var view = this.viewmanager.views[this.viewmanager.active_view].controller;
view.reload_content();
}
},
get_value: function(value) { get_value: function(value) {
//TODO //TODO
return []; return [];
}, }
/*update_dom: function() { /*update_dom: function() {
this._super.apply(this, arguments); this._super.apply(this, arguments);
this.$element.toggleClass('disabled', this.readonly); this.$element.toggleClass('disabled', this.readonly);
@ -1051,12 +1043,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
}, },
on_ui_change: function() { on_ui_change: function() {
},*/ },*/
check_load: function() {
if(this.is_started && this.is_setted) {
var view = this.viewmanager.views[this.viewmanager.active_view].controller;
view.reload_view();
}
}
}); });
openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
@ -1077,8 +1063,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
'selectable': false, 'selectable': false,
'addable': 'Add' 'addable': 'Add'
}); });
this.list_view.groups.datagroup = (
new openerp.base.StaticDataGroup(this.dataset));
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();

View File

@ -55,6 +55,10 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
this.flags = this.view_manager.action.flags; this.flags = this.view_manager.action.flags;
this.set_groups(new openerp.base.ListView.Groups(this)); this.set_groups(new openerp.base.ListView.Groups(this));
if (this.dataset instanceof openerp.base.DataSetStatic) {
this.groups.datagroup = new openerp.base.StaticDataGroup(this.dataset);
}
}, },
/** /**
* Set a custom Group construct as the root of the List View. * Set a custom Group construct as the root of the List View.