[FIX] potential problem with pyeval datetime/date today()/now() methods. Now only...
authorniv-openerp <nicolas.vanhoren@openerp.com>
Thu, 29 Nov 2012 15:36:01 +0000 (16:36 +0100)
committerniv-openerp <nicolas.vanhoren@openerp.com>
Thu, 29 Nov 2012 15:36:01 +0000 (16:36 +0100)
bzr revid: nicolas.vanhoren@openerp.com-20121129153601-vtpnvkc0vylo9hux

addons/web/static/src/js/pyeval.js
addons/web/static/test/evals.js

index 265449f..68a7453 100644 (file)
@@ -398,14 +398,14 @@ openerp.web.pyeval = function (instance) {
         now: py.classmethod.fromJSON(function () {
             var d = new Date();
             return py.PY_call(datetime.datetime,
-                [d.getFullYear(), d.getMonth() + 1, d.getDate(),
-                 d.getHours(), d.getMinutes(), d.getSeconds(),
-                 d.getMilliseconds() * 1000]);
+                [d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(),
+                 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.getFullYear(), d.getMonth() + 1, d.getDate()]);
+                [d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate()]);
         }),
         combine: py.classmethod.fromJSON(function () {
             var args = py.PY_parseArgs(arguments, 'date time');
@@ -442,7 +442,7 @@ openerp.web.pyeval = function (instance) {
         today: py.classmethod.fromJSON(function () {
             var d = new Date();
             return py.PY_call(
-                datetime.date, [d.getFullYear(), d.getMonth() + 1, d.getDate()]);
+                datetime.date, [d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate()]);
         }),
         __eq__: function (other) {
             return (this.year === other.year
index 8e836da..ac6e1f8 100644 (file)
@@ -16,8 +16,8 @@ openerp.testing.section('eval.types', {
         strictEqual(
             py.eval("time.strftime('%Y-%m-%d %H:%M:%S')", context),
             _.str.sprintf('%04d-%02d-%02d %02d:%02d:%02d',
-                d.getFullYear(), d.getMonth() + 1, d.getDate(),
-                d.getHours(), d.getMinutes(), d.getSeconds()));
+                d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(),
+                d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()));
     });
     // Port from pypy/lib_pypy/test_datetime.py
     var makeEq = function (instance, c2) {