diff options
| author | Antony Lesuisse <al@openerp.com> | 2011-08-19 00:57:21 +0200 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2011-08-19 00:57:21 +0200 |
| commit | 47e709eb735f0fab8ee53c802e1352ee445d52cc (patch) | |
| tree | ffaf9f86e8ca8f370fb5cdc725fcf1833fe9291d /addons/base/static/src | |
| parent | e9d031cb0bc047fbc9e0af072b8c3c697bf9bd08 (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.js | 15 | ||||
| -rw-r--r-- | addons/base/static/src/js/form.js | 4 | ||||
| -rw-r--r-- | addons/base/static/src/js/list.js | 11 | ||||
| -rw-r--r-- | addons/base/static/src/js/view_tree.js | 2 | ||||
| -rw-r--r-- | addons/base/static/src/js/views.js | 24 |
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) { |
