summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
authorRomain Estievenart <res@odoo.com>2019-11-13 10:54:35 +0000
committerfw-bot <otis@odoo.com>2019-11-21 12:20:53 +0000
commit3fd2debdc822b17d51e5849d5e40e907e89e9c80 (patch)
tree57d4b952a797c104fa84927564eee0a5b1783bee /addons/web/static/src/js/views/basic/basic_model.js
parent07f70e3c1026b4cbe6edcb6e875584c868da3eb1 (diff)
[FIX] web: Basic model X2Many commands don't handled correctly
Steps to reproduce: 1. Go to the Accounting / Invoicing apps 2. Open Taxes (Configuration -> Accounting / Invoicing -> Taxes) 3. Try to create a new tax and the client crash. It occurs because the `_processX2ManyCommands()` method doesn't handle correctly a missing `fieldInfo` on some X2Many tags. On mobile, when calling `load_views` the kanban view is used by default. But if the kanban isn't defined, a default kanban view with only the id of the model is used. In the case of the taxes form, the `default_get` retrieved for this form refers to a Many2Many (`tag_ids`) inside a One2Many. But this field isn't present inside the loaded kanban view, so when we process the command defined by the `default_get`, the `field_view` item doesn't exist (because the default kanban loaded only contains the id of the field). Now instead of using an undefined `fieldInfo`, we fall back to an empty object on the missing field to avoid the crash. closes odoo/odoo#40617 X-original-commit: 47a306a31ac6d3c9e68e83b77a80426d5c6ceb05 Signed-off-by: res-odoo <res-odoo@users.noreply.github.com>
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.js2
1 files changed, 1 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 d4e966440cb..3ab3d7f5fa1 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -4227,7 +4227,7 @@ var BasicModel = AbstractModel.extend({
options = options || {};
var defs = [];
var field = record.fields[fieldName];
- var fieldInfo = record.fieldsInfo[options.viewType || record.viewType][fieldName];
+ var fieldInfo = record.fieldsInfo[options.viewType || record.viewType][fieldName] || {};
var view = fieldInfo.views && fieldInfo.views[fieldInfo.mode];
var fieldsInfo = view ? view.fieldsInfo : fieldInfo.fieldsInfo;
var fields = view ? view.fields : fieldInfo.relatedFields;