Controller is now a family

bzr revid: al@openerp.com-20110718125422-x20k89dogbklgr4c
This commit is contained in:
Antony Lesuisse
2011-07-18 14:54:22 +02:00
parent c121f79c60
commit 31a725f75c
7 changed files with 95 additions and 144 deletions
+18 -28
View File
@@ -39,18 +39,16 @@ openerp.base.DataGroup = openerp.base.Controller.extend( /** @lends openerp.bas
* @param {Array} group_by sequence of fields by which to group
* @param {Number} [level=0] nesting level of the group
*/
init: function(session, model, domain, context, group_by, level) {
init: function(parent, model, domain, context, group_by, level) {
this._super(parent, null);
if (group_by) {
if (group_by.length || context['group_by_no_leaf']) {
return new openerp.base.ContainerDataGroup(
session, model, domain, context, group_by, level);
return new openerp.base.ContainerDataGroup( this, model, domain, context, group_by, level);
} else {
return new openerp.base.GrouplessDataGroup(
session, model, domain, context, level);
return new openerp.base.GrouplessDataGroup( this, model, domain, context, level);
}
}
this._super(session, null);
this.model = model;
this.context = context;
this.domain = domain;
@@ -59,8 +57,7 @@ openerp.base.DataGroup = openerp.base.Controller.extend( /** @lends openerp.bas
},
cls: 'DataGroup'
});
openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend(
/** @lends openerp.base.ContainerDataGroup# */ {
openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend( /** @lends openerp.base.ContainerDataGroup# */ {
/**
*
* @constructs
@@ -73,8 +70,8 @@ openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend(
* @param group_by
* @param level
*/
init: function (session, model, domain, context, group_by, level) {
this._super(session, model, domain, context, null, level);
init: function (parent, model, domain, context, group_by, level) {
this._super(parent, model, domain, context, null, level);
this.group_by = group_by;
},
@@ -197,8 +194,7 @@ openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend(
});
}
});
openerp.base.GrouplessDataGroup = openerp.base.DataGroup.extend(
/** @lends openerp.base.GrouplessDataGroup# */ {
openerp.base.GrouplessDataGroup = openerp.base.DataGroup.extend( /** @lends openerp.base.GrouplessDataGroup# */ {
/**
*
* @constructs
@@ -210,18 +206,16 @@ openerp.base.GrouplessDataGroup = openerp.base.DataGroup.extend(
* @param context
* @param level
*/
init: function (session, model, domain, context, level) {
this._super(session, model, domain, context, null, level);
init: function (parent, model, domain, context, level) {
this._super(parent, model, domain, context, null, level);
},
list: function (fields, ifGroups, ifRecords) {
ifRecords(_.extend(
new openerp.base.DataSetSearch(this.session, this.model),
new openerp.base.DataSetSearch(this, this.model),
{domain: this.domain, context: this.context, _sort: this.sort}));
}
});
openerp.base.StaticDataGroup = openerp.base.GrouplessDataGroup.extend(
/** @lends openerp.base.StaticDataGroup# */ {
openerp.base.StaticDataGroup = openerp.base.GrouplessDataGroup.extend( /** @lends openerp.base.StaticDataGroup# */ {
/**
* A specialization of groupless data groups, relying on a single static
* dataset as its records provider.
@@ -249,8 +243,8 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
* @param {openerp.base.Session} session current OpenERP session
* @param {String} model the OpenERP model this dataset will manage
*/
init: function(session, model, context) {
this._super(session);
init: function(parent, model, context) {
this._super(parent);
this.model = model;
this.context = context || {};
this.index = null;
@@ -382,10 +376,9 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
return this.context;
}
});
openerp.base.DataSetStatic = openerp.base.DataSet.extend({
init: function(session, model, context, ids) {
this._super(session, model, context);
init: function(parent, model, context, ids) {
this._super(parent, model, context);
// all local records
this.ids = ids || [];
if (this.ids.length) {
@@ -411,10 +404,9 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
this.set_ids(_.without.apply(null, [this.ids].concat(ids)));
}
});
openerp.base.DataSetSearch = openerp.base.DataSet.extend({
init: function(session, model, context, domain) {
this._super(session, model, context);
init: function(parent, model, context, domain) {
this._super(parent, model, context);
this.domain = domain || [];
this._sort = [];
this.offset = 0;
@@ -485,7 +477,6 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
}, error_callback);
}
});
openerp.base.BufferedDataSet = openerp.base.DataSetStatic.extend({
virtual_id_prefix: "one2many_v_id_",
virtual_id_regex: /one2many_v_id_.*/,
@@ -590,7 +581,6 @@ openerp.base.BufferedDataSet = openerp.base.DataSetStatic.extend({
return completion.promise();
}
});
openerp.base.ReadOnlyDataSetSearch = openerp.base.DataSetSearch.extend({
create: function(data, callback, error_callback) {
this.on_create(data);