summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-02-25 10:40:33 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commitdb2198b7ef95cf15df705ac736f7481d0a61f66f (patch)
tree4a1cf622d29a36872c7e724e9ebf29f8358cb42e /addons
parent1a7fbd5a13fe8d9c6d47fb49204061b002240ac8 (diff)
[FIX] web: fix crash when building domain with dates
Before this commit, the rawify function assumed that any object is necessary a record object. This was true until recently, when we decided that dates should be internally stored as a moment instance.
Diffstat (limited to 'addons')
-rw-r--r--addons/web/static/src/js/_deprecated/data.js3
-rw-r--r--addons/web/static/test/fields/relational_fields_tests.js25
2 files changed, 28 insertions, 0 deletions
diff --git a/addons/web/static/src/js/_deprecated/data.js b/addons/web/static/src/js/_deprecated/data.js
index 791693bce67..f6a58367903 100644
--- a/addons/web/static/src/js/_deprecated/data.js
+++ b/addons/web/static/src/js/_deprecated/data.js
@@ -760,6 +760,9 @@ function rawify (data) {
// replaces the value of relational fields by their raw value (the id, if
// any, for many2ones and an array of ids for x2manys), in turn
return _.mapObject(data, function (value) {
+ if (value instanceof moment) {
+ return moment;
+ }
if (_.isObject(value)) {
return value.type === 'record' ? value.res_id : value.res_ids;
}
diff --git a/addons/web/static/test/fields/relational_fields_tests.js b/addons/web/static/test/fields/relational_fields_tests.js
index 50d0ddbeef8..e101bd2d8fd 100644
--- a/addons/web/static/test/fields/relational_fields_tests.js
+++ b/addons/web/static/test/fields/relational_fields_tests.js
@@ -345,6 +345,31 @@ QUnit.module('relational_fields', {
form.$('input').click();
});
+ QUnit.test('autocompletion in a many2one, in form view with a date field', function (assert) {
+ assert.expect(1);
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form>' +
+ '<field name="bar"/>' +
+ '<field name="date"/>' +
+ '<field name="trululu" domain="[(\'bar\',\'=\',True)]"/>' +
+ '</form>',
+ res_id: 2,
+ mockRPC: function (route, args) {
+ if (args.method === 'name_search') {
+ assert.deepEqual(args.kwargs.args, [["bar", "=", true]], "should not have a domain");
+ }
+ return this._super(route, args);
+ },
+ });
+ form.$buttons.find('.o_form_button_edit').click();
+
+ form.$('input:eq(2)').click();
+ });
+
QUnit.test('creating record with many2one with option always_reload', function (assert) {
assert.expect(2);