summaryrefslogtreecommitdiff
path: root/addons/web/static
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-09-06 15:30:59 +0200
committerChristophe Simonis <chs@odoo.com>2018-09-06 15:30:59 +0200
commit5a5d6d1e8e2139ac27b25971f3cebb197ed0c573 (patch)
tree66b5aaac89f60c16daa9286aec5189ebc331c1e7 /addons/web/static
parente1e27aa009f1236084b20893bad45b49a4bfade2 (diff)
parentc7de55dc3cbdf6a4a731061219a9b4b08b13b935 (diff)
[MERGE] forward port branch saas-14 up to c7de55dc3cb
Diffstat (limited to 'addons/web/static')
-rw-r--r--addons/web/static/src/js/framework/pyeval.js10
-rw-r--r--addons/web/static/test/evals.js8
2 files changed, 14 insertions, 4 deletions
diff --git a/addons/web/static/src/js/framework/pyeval.js b/addons/web/static/src/js/framework/pyeval.js
index c1b823ed48f..9b1fa887ccf 100644
--- a/addons/web/static/src/js/framework/pyeval.js
+++ b/addons/web/static/src/js/framework/pyeval.js
@@ -643,13 +643,15 @@ var relativedelta = py.type('relativedelta', null, {
this._fix();
},
_fix: function () {
+ var self = this;
var months = asJS(this.ops.months);
if (Math.abs(months) > 11) {
var s = months > 0 ? 1 : -1;
- var r = utils.divmod(months * s, 12);
- this.ops.months = py.float.fromJSON(r.mod*s);
- this.ops.years = py.float.fromJSON(
- asJS(this.ops.years) + r.div*s);
+ utils.divmod(months * s, 12, function (years, months) {
+ self.ops.months = py.float.fromJSON(months*s);
+ self.ops.years = py.float.fromJSON(
+ asJS(self.ops.years) + years*s);
+ });
}
this._has_time = 0;
},
diff --git a/addons/web/static/test/evals.js b/addons/web/static/test/evals.js
index bb5b5564ba4..5a92a1b1246 100644
--- a/addons/web/static/test/evals.js
+++ b/addons/web/static/test/evals.js
@@ -300,6 +300,14 @@ odoo.define_section('eval.types', ['web.pyeval'], function (test, mock) {
py.eval("(datetime.date(2015,2,5)+relativedelta(days=-6,weekday=0)).strftime('%Y-%m-%d')",
pyeval.context()),
'2015-02-02');
+ strictEqual(
+ py.eval("(datetime.date(2018, 2, 1) + relativedelta(years=7, months=42, days=42)).strftime('%Y-%m-%d')",
+ pyeval.context()),
+ '2028-09-12');
+ strictEqual(
+ py.eval("(datetime.date(2018, 2, 1) + relativedelta(years=-7, months=-42, days=-42)).strftime('%Y-%m-%d')",
+ pyeval.context()),
+ '2007-06-20');
});
test('timedelta', function (assert, pyeval) {