From e6b77eb820a7670b416319f314808e4b90931a01 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 11 Oct 2012 12:05:32 +0200 Subject: [IMP] shortcut call to eval_domain_and_context to be evaluated on the JS side, also add some offline-evaluation of contexts and domains in rpc call methods bzr revid: xmo@openerp.com-20121011100532-5ihje0maslp37zpf --- addons/web/static/src/js/data.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'addons/web/static/src/js/data.js') diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index 2b82e618203..af887a5152f 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -61,8 +61,10 @@ instance.web.Query = instance.web.Class.extend({ return instance.session.rpc('/web/dataset/search_read', { model: this._model.name, fields: this._fields || false, - domain: this._model.domain(this._filter), - context: this._model.context(this._context), + domain: instance.web.pyeval.eval('domains', + [this._model.domain(this._filter)]), + context: instance.web.pyeval.eval('contexts', + [this._model.context(this._context)]), offset: this._offset, limit: this._limit, sort: instance.web.serialize_sort(this._order_by) @@ -280,6 +282,7 @@ instance.web.Model = instance.web.Class.extend({ kwargs = args; args = []; } + instance.web.pyeval.ensure_evaluated(args, kwargs); return instance.session.rpc('/web/dataset/call_kw', { model: this.name, method: method, @@ -291,7 +294,7 @@ instance.web.Model = instance.web.Class.extend({ * Fetches a Query instance bound to this model, for searching * * @param {Array} [fields] fields to ultimately fetch during the search - * @returns {openerp.web.Query} + * @returns {instance.web.Query} */ query: function (fields) { return new instance.web.Query(this, fields); @@ -339,9 +342,11 @@ instance.web.Model = instance.web.Class.extend({ * FIXME: remove when evaluator integrated */ call_button: function (method, args) { + instance.web.pyeval.ensure_evaluated(args, {}); return instance.session.rpc('/web/dataset/call_button', { model: this.name, method: method, + // Should not be necessary anymore. Integrate remote in this? domain_id: null, context_id: args.length - 1, args: args || [] @@ -599,9 +604,12 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ * @returns {$.Deferred} */ call_and_eval: function (method, args, domain_index, context_index) { + instance.web.pyeval.ensure_evaluated(args, {}); return instance.session.rpc('/web/dataset/call', { model: this.model, method: method, + // Should not be necessary anymore as ensure_evaluated traverses + // all of the args array domain_id: domain_index == undefined ? null : domain_index, context_id: context_index == undefined ? null : context_index, args: args || [] -- cgit v1.2.3 From cc4d5a79ecb11a403c2fb777c4190cf8d8396cc2 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 27 Nov 2012 15:39:17 +0100 Subject: [FIX] group_by using old code bzr revid: xmo@openerp.com-20121127143917-pk4un6zi1v96niyr --- addons/web/static/src/js/data.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'addons/web/static/src/js/data.js') diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index 59889628151..e823e6f3057 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -123,9 +123,8 @@ instance.web.Query = instance.web.Class.extend({ var self = this; - // FIXME: when pyeval is merged - var ctx = instance.session.test_eval_contexts( - [this._model.context(this._context)]); + var ctx = instance.web.pyeval.eval( + 'context', this._model.context(this._context)); return this._model.call('read_group', { groupby: grouping, fields: _.uniq(grouping.concat(this._fields || [])), -- cgit v1.2.3 From 48b0d70fc217ce28d1b72e8440e864d8c1cc83c1 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 28 Nov 2012 16:10:44 +0100 Subject: [FIX] context evaluation in kanban resequencing bzr revid: xmo@openerp.com-20121128151044-i58uwcdem2cgyyrv --- addons/web/static/src/js/data.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'addons/web/static/src/js/data.js') diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index e823e6f3057..bbff633c687 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -610,7 +610,8 @@ instance.web.DataSet = instance.web.Class.extend(instance.web.PropertiesMixin, return instance.session.rpc('/web/dataset/resequence', { model: this.model, ids: ids, - context: this.get_context(options.context), + context: instance.web.pyeval.eval( + 'context', this.get_context(options.context)), }).then(function (results) { return results; }); -- cgit v1.2.3