From 669c2ebaec701055a15dc56ea90bf2d64bc38154 Mon Sep 17 00:00:00 2001 From: Julien Mougenot Date: Tue, 2 Jun 2020 15:03:52 +0000 Subject: [IMP] web: improve eval context dates This commit handles 2 things: 1) the merging of the `py_utils.context()` into the evaluation context returned by `BasicModel._getEvalContext` to access the same time-related keys, 2) the addition of 2 new keys into the `py_utils.context` (thus transmitted to the basic model): `today` (an alias for the already present `current_date`) and `now` which represents the current date and time value. Task 2269697 --- .../web/static/src/js/views/basic/basic_model.js | 31 ++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'addons/web/static/src/js/views/basic') diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index adefa997e99..8878de55a3e 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -88,6 +88,7 @@ var concurrency = require('web.concurrency'); var Context = require('web.Context'); var core = require('web.core'); var Domain = require('web.Domain'); +const pyUtils = require('web.py_utils'); var session = require('web.session'); var utils = require('web.utils'); var viewUtils = require('web.viewUtils'); @@ -3696,19 +3697,27 @@ var BasicModel = AbstractModel.extend({ } // Uses "current_company_id" because "company_id" would conflict with all the company_id fields // in general, the actual "company_id" field of the form should be used for m2o domains, not this fallback + let current_company_id; if (session.user_context.allowed_company_ids) { - var current_company = session.user_context.allowed_company_ids[0]; + current_company_id = session.user_context.allowed_company_ids[0]; } else { - var current_company = session.user_companies ? session.user_companies.current_company[0] : false; - } - return _.extend({ - active_id: evalContext.id || false, - active_ids: evalContext.id ? [evalContext.id] : [], - active_model: element.model, - current_date: moment().format('YYYY-MM-DD'), - id: evalContext.id || false, - current_company_id: current_company, - }, session.user_context, element.context, evalContext); + current_company_id = session.user_companies ? + session.user_companies.current_company[0] : + false; + } + return Object.assign( + { + active_id: evalContext.id || false, + active_ids: evalContext.id ? [evalContext.id] : [], + active_model: element.model, + current_company_id, + id: evalContext.id || false, + }, + pyUtils.context(), + session.user_context, + element.context, + evalContext, + ); }, /** * Returns the list of field names of the given element according to its -- cgit v1.2.3