[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({
init: function(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() {
this._super.apply(this, arguments);
var views = [ [false,"list"], [false,"form"] ];
this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation);
this.dataset.ids = [];
this.dataset.count = 0;
this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation);
this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session,
this.element_id, this.dataset, views);
this.viewmanager.start();
@ -1034,16 +1021,21 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
},
set_value: function(value) {
if(value != false) {
this.dataset.ids = value;
this.dataset.count = value.length;
this.dataset.set_ids(value);
this.is_setted = true;
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) {
//TODO
return [];
},
}
/*update_dom: function() {
this._super.apply(this, arguments);
this.$element.toggleClass('disabled', this.readonly);
@ -1051,12 +1043,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
},
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({
@ -1077,8 +1063,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
'selectable': false,
'addable': 'Add'
});
this.list_view.groups.datagroup = (
new openerp.base.StaticDataGroup(this.dataset));
var self = this;
this.list_view.m2m_field = this;
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.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.