summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-08-19 00:57:21 +0200
committerAntony Lesuisse <al@openerp.com>2011-08-19 00:57:21 +0200
commit47e709eb735f0fab8ee53c802e1352ee445d52cc (patch)
treeffaf9f86e8ca8f370fb5cdc725fcf1833fe9291d /addons/base/static/src
parente9d031cb0bc047fbc9e0af072b8c3c697bf9bd08 (diff)
[IMP] read_slice fields outside option [] are probably bugs
bzr revid: al@openerp.com-20110818225721-tn1vl2450tbe11d6
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/data.js15
-rw-r--r--addons/base/static/src/js/form.js4
-rw-r--r--addons/base/static/src/js/list.js11
-rw-r--r--addons/base/static/src/js/view_tree.js2
-rw-r--r--addons/base/static/src/js/views.js24
5 files changed, 40 insertions, 16 deletions
diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js
index 244c057d544..2dac0bb5ae4 100644
--- a/addons/base/static/src/js/data.js
+++ b/addons/base/static/src/js/data.js
@@ -286,14 +286,16 @@ openerp.base.DataSet = openerp.base.Widget.extend( /** @lends openerp.base.Data
* Read a slice of the records represented by this DataSet, based on its
* domain and context.
*
+ * @param {Array} [fields] fields to read and return, by default all fields are returned
* @params {Object} options
- * @param {Array} [options.fields] fields to read and return, by default all fields are returned
* @param {Number} [options.offset=0] The index from which selected records should be returned
* @param {Number} [options.limit=null] The maximum number of records to return
* @param {Function} callback function called with read_slice result
* @returns {$.Deferred}
*/
- read_slice: function (options, callback) { return null; },
+ read_slice: function (fields, options, callback) {
+ return null;
+ },
/**
* Reads the current dataset record (from its index)
*
@@ -478,11 +480,12 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
// all local records
this.ids = ids || [];
},
- read_slice: function (options, callback) {
+ read_slice: function (fields, options, callback) {
+ // TODO remove fields from options
var self = this,
offset = options.offset || 0,
limit = options.limit || false,
- fields = options.fields || false;
+ fields = fields || false;
var end_pos = limit && limit !== -1 ? offset + limit : undefined;
return this.read_ids(this.ids.slice(offset, end_pos), fields, callback);
},
@@ -532,12 +535,12 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
* @param {Function} callback function called with read_slice result
* @returns {$.Deferred}
*/
- read_slice: function (options, callback) {
+ read_slice: function (fields, options, callback) {
var self = this;
var offset = options.offset || 0;
return this.rpc('/base/dataset/search_read', {
model: this.model,
- fields: options.fields || false,
+ fields: fields || false,
domain: this.get_domain(options.domain),
context: this.get_context(options.context),
sort: this.sort(),
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index d3056e618bf..c85d1fd4cb2 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -458,9 +458,7 @@ openerp.base.form.SidebarAttachments = openerp.base.Widget.extend({
['res_model', '=', this.view.dataset.model],
['res_id', '=', this.view.datarecord.id],
['type', 'in', ['binary', 'url']]
- ])).read_slice(
- {fields: ['name', 'url', 'type']},
- this.on_attachments_loaded);
+ ])).read_slice(['name', 'url', 'type'], this.on_attachments_loaded);
}
},
on_attachments_loaded: function(attachments) {
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index a0440221520..d715c3600be 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -476,7 +476,8 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
*/
do_activate_record: function (index, id, dataset) {
var self = this;
- this.dataset.read_slice({
+ // TODO is it needed ?
+ this.dataset.read_slice([],{
context: dataset.get_context(),
domain: dataset.get_domain()
}, function () {
@@ -1034,11 +1035,9 @@ openerp.base.ListView.Groups = openerp.base.Class.extend( /** @lends openerp.bas
d = new $.Deferred(),
page = this.datagroup.openable ? this.page : view.page;
- dataset.read_slice({
- fields: _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name'),
- offset: page * limit,
- limit: limit
- }, function (records) {
+ var fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name');
+ var options = { offset: page * limit, limit: limit };
+ dataset.read_slice(fields, options , function (records) {
if (!self.datagroup.openable) {
view.configure_pager(dataset);
} else {
diff --git a/addons/base/static/src/js/view_tree.js b/addons/base/static/src/js/view_tree.js
index 5c3c7457e1c..59544a998b3 100644
--- a/addons/base/static/src/js/view_tree.js
+++ b/addons/base/static/src/js/view_tree.js
@@ -72,7 +72,7 @@ openerp.base.TreeView = openerp.base.View.extend({
'toolbar': has_toolbar
}));
- this.dataset.read_slice({fields: this.fields_list()}, function (records) {
+ this.dataset.read_slice(this.fields_list(), {}, function (records) {
if (!has_toolbar) {
// WARNING: will do a second read on the same ids, but only on
// first load so not very important
diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js
index f21c6387d32..ad75268156f 100644
--- a/addons/base/static/src/js/views.js
+++ b/addons/base/static/src/js/views.js
@@ -17,6 +17,7 @@ openerp.base.ActionManager = openerp.base.Widget.extend({
this.dialog = null;
this.dialog_viewmanager = null;
this.client_widget = null;
+ this.url = {}
},
render: function() {
return "<div id='"+this.element_id+"'></div>";
@@ -35,6 +36,28 @@ openerp.base.ActionManager = openerp.base.Widget.extend({
this.inner_viewmanager = null;
}
},
+ url_update: function(action) {
+ // this.url = {
+ // "model": action.model,
+ // "domain": action.domain,
+ // };
+ // action.res_model
+ // action.domain
+ // action.context
+ // after
+ // action.views
+ // action.res_id
+ // mode
+ // menu
+ },
+ url_stringify: function(action) {
+ },
+ url_parse: function(action) {
+ },
+ on_url_update: function(url) {
+ },
+ do_url_action: function(url) {
+ },
do_action: function(action, on_close) {
var type = action.type.replace(/\./g,'_');
var popup = action.target === 'new';
@@ -69,6 +92,7 @@ openerp.base.ActionManager = openerp.base.Widget.extend({
this.inner_stop();
this.inner_viewmanager = new openerp.base.ViewManagerAction(this, action);
this.inner_viewmanager.appendTo(this.$element);
+ this.url_update(action);
}
/* new window code
this.rpc("/base/session/save_session_action", { the_action : action}, function(key) {