summaryrefslogtreecommitdiff
path: root/addons/base/static/src/js/data.js
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-07-26 14:36:26 +0200
committerXavier Morel <xmo@openerp.com>2011-07-26 14:36:26 +0200
commite2b9dd10654a88c062045f0b20fb3720c5ff40c0 (patch)
tree8ae0b1507e727442136b8d73d92134739c83580a /addons/base/static/src/js/data.js
parentb0fa08b6867f3e9d1f7e19fe2075fd2f9f25996c (diff)
parent5070784ba2b04d7ffb8935c9cf01dacfd7f03b26 (diff)
[MERGE] all kinds of broken shit from trunk
bzr revid: xmo@openerp.com-20110726123626-l54udy078dwj9rjo
Diffstat (limited to 'addons/base/static/src/js/data.js')
-rw-r--r--addons/base/static/src/js/data.js68
1 files changed, 30 insertions, 38 deletions
diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js
index e8a3415fbb3..080f4409fa1 100644
--- a/addons/base/static/src/js/data.js
+++ b/addons/base/static/src/js/data.js
@@ -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;
},
@@ -189,7 +186,7 @@ openerp.base.ContainerDataGroup = openerp.base.DataGroup.extend(
var child_context = _.extend({}, self.context, group.__context);
return _.extend(
new openerp.base.DataGroup(
- self.session, self.model, group.__domain,
+ self, self.model, group.__domain,
child_context, child_context.group_by,
self.level + 1),
group, {sort: self.sort});
@@ -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.
@@ -246,11 +240,12 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
* @constructs
* @extends openerp.base.Controller
*
- * @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(source_controller, model, context) {
+ // we don't want the dataset to be a child of anything!
+ this._super(null);
+ this.session = source_controller ? source_controller.session : undefined;
this.model = model;
this.context = context || {};
this.index = null;
@@ -382,15 +377,11 @@ 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) {
- this.index = 0;
- }
},
read_slice: function (fields, offset, limit, callback) {
var self = this;
@@ -400,8 +391,10 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
},
set_ids: function (ids) {
this.ids = ids;
- this.index = this.index <= this.ids.length - 1 ?
- this.index : (this.ids.length > 0 ? this.length - 1 : 0);
+ if (this.index !== null) {
+ this.index = this.index <= this.ids.length - 1 ?
+ this.index : (this.ids.length > 0 ? this.length - 1 : 0);
+ }
},
unlink: function(ids) {
this.on_unlink(ids);
@@ -411,18 +404,17 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
this.set_ids(_.without.apply(null, [this.ids].concat(ids)));
}
});
-
openerp.base.DataSetSearch = openerp.base.DataSet.extend({
/**
* @constructs
*
- * @param {openerp.base.Session} session
+ * @param {Object} parent
* @param {String} model
* @param {Object} context
* @param {Array} domain
*/
- 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;
@@ -486,14 +478,15 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
var self = this;
return this._super(ids, function(result) {
self.ids = _.without.apply(_, [self.ids].concat(ids));
- self.index = self.index <= self.ids.length - 1 ?
- self.index : (self.ids.length > 0 ? self.ids.length -1 : 0);
+ if (this.index !== null) {
+ self.index = self.index <= self.ids.length - 1 ?
+ self.index : (self.ids.length > 0 ? self.ids.length -1 : 0);
+ }
if (callback)
callback(result);
}, error_callback);
}
});
-
openerp.base.BufferedDataSet = openerp.base.DataSetStatic.extend({
virtual_id_prefix: "one2many_v_id_",
virtual_id_regex: /one2many_v_id_.*/,
@@ -598,7 +591,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);