diff options
| author | Martin Geubelle <mge@odoo.com> | 2018-04-17 11:46:12 +0200 |
|---|---|---|
| committer | Martin Geubelle <mge@odoo.com> | 2018-04-17 15:31:33 +0200 |
| commit | cd934f307de19b247bf88b9dc41a8fdea15fd23c (patch) | |
| tree | 734fcec98637ce1c629f1c1c3241c7bfba5fc4d8 /addons/web/static/src/js/views/basic/basic_model.js | |
| parent | 9e6c616130622eabc5a43f84eca80c6326ded20b (diff) | |
[FIX] web: handle x2m commands with reference as default
Before this rev. it was not possible to define a value for a reference field
in x2m commands as default value.
Courtesy of @kaerdsar.
Closes #24070
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_model.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 13 |
1 files changed, 12 insertions, 1 deletions
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 4180acae602..8fdcb305ddc 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -3613,8 +3613,9 @@ var BasicModel = AbstractModel.extend({ if (isFieldInView) { var field = r.fields[fieldName]; var fieldType = field.type; + var rec; if (fieldType === 'many2one') { - var rec = self._makeDataPoint({ + rec = self._makeDataPoint({ context: r.context, modelName: field.relation, data: {id: r._changes[fieldName]}, @@ -3622,6 +3623,16 @@ var BasicModel = AbstractModel.extend({ }); r._changes[fieldName] = rec.id; many2ones[fieldName] = true; + } else if (fieldType === 'reference') { + var reference = r._changes[fieldName].split(','); + rec = self._makeDataPoint({ + context: r.context, + modelName: reference[0], + data: {id: parseInt(reference[1])}, + parentID: r.id, + }); + r._changes[fieldName] = rec.id; + many2ones[fieldName] = true; } else if (_.contains(['one2many', 'many2many'], fieldType)) { var x2mCommands = commands[0][2][fieldName]; defs.push(self._processX2ManyCommands(r, fieldName, x2mCommands)); |
