From f9b9e7c4cb040d6dce43e8ba3616a1453a1d0db9 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 29 Nov 2012 17:07:46 +0100 Subject: [PATCH] [IMP] added context_today() bzr revid: nicolas.vanhoren@openerp.com-20121129160746-c3c691zk5fxhzse0 --- addons/web/static/src/js/pyeval.js | 17 ++++++++++++----- addons/web/static/test/evals.js | 7 +++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/pyeval.js b/addons/web/static/src/js/pyeval.js index 68a7453c958..4ee9fea0584 100644 --- a/addons/web/static/src/js/pyeval.js +++ b/addons/web/static/src/js/pyeval.js @@ -402,11 +402,6 @@ openerp.web.pyeval = function (instance) { d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds() * 1000]); }), - today: py.classmethod.fromJSON(function () { - var d = new Date(); - return py.PY_call(datetime.datetime, - [d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate()]); - }), combine: py.classmethod.fromJSON(function () { var args = py.PY_parseArgs(arguments, 'date time'); return py.PY_call(datetime.datetime, [ @@ -479,6 +474,17 @@ openerp.web.pyeval = function (instance) { return py.PY_call(datetime.date, [year, month, day]) } }); + /** + Returns the current local date, which means the date on the client (which can be different + compared to the date of the server). + + @return {datetime.date} + */ + var context_today = function() { + var d = new Date(); + return py.PY_call( + datetime.date, [d.getFullYear(), d.getMonth() + 1, d.getDate()]); + }; datetime.time = py.type('time', null, { __init__: function () { var zero = py.float.fromJSON(0); @@ -691,6 +697,7 @@ openerp.web.pyeval = function (instance) { return { uid: py.float.fromJSON(instance.session.uid), datetime: datetime, + context_today: context_today, time: time, relativedelta: relativedelta, current_date: py.PY_call( diff --git a/addons/web/static/test/evals.js b/addons/web/static/test/evals.js index ac6e1f8b0f8..e2dab6e9a17 100644 --- a/addons/web/static/test/evals.js +++ b/addons/web/static/test/evals.js @@ -19,6 +19,13 @@ openerp.testing.section('eval.types', { d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds())); }); + test('context_today', function (instance) { + var d = new Date(); + var context = instance.web.pyeval.context(); + strictEqual( + py.eval("context_today().strftime('%Y-%m-%d')", context), + String(_.str.sprintf('%04d-%02d-%02d', d.getFullYear(), d.getMonth() + 1, d.getDate()))); + }); // Port from pypy/lib_pypy/test_datetime.py var makeEq = function (instance, c2) { var ctx = instance.web.pyeval.context();