From e1cf7e93c9d8cfa94aabc60c65a9dd7b9a59b39e Mon Sep 17 00:00:00 2001 From: "Bastien Fafchamps (bafa)" Date: Mon, 11 Sep 2023 17:49:38 +0200 Subject: [PATCH] [FIX] base_import: unable to select name, external id or db id separatly Before this commit, when selecting the field to import, the name, external id and database id could not be selected separatly while they should. This commit fixes that by comparing the full field path instead of the id of the fields. closes odoo/odoo#135482 X-original-commit: 587ee0797bd0075dc7d3a0393ec95360c8ab0770 Signed-off-by: Luca Vitali (luvi) --- .../static/src/import_action/import_action.js | 5 ++--- .../src/import_data_content/import_data_content.js | 13 ++++++++++++- .../src/import_data_content/import_data_content.xml | 4 ++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/addons/base_import/static/src/import_action/import_action.js b/addons/base_import/static/src/import_action/import_action.js index d9bca2afc20..c25a046d198 100644 --- a/addons/base_import/static/src/import_action/import_action.js +++ b/addons/base_import/static/src/import_action/import_action.js @@ -186,9 +186,8 @@ export class ImportAction extends Component { // Fields //-------------------------------------------------------------------------- - onFieldChanged(column, fieldId) { - const selection = this.model.fields.find((f) => f.id === fieldId); - this.model.setColumnField(column, selection); + onFieldChanged(column, fieldInfo) { + this.model.setColumnField(column, fieldInfo); } isFieldSet(column) { diff --git a/addons/base_import/static/src/import_data_content/import_data_content.js b/addons/base_import/static/src/import_data_content/import_data_content.js index 9ff34dda12c..1677b93b9fa 100644 --- a/addons/base_import/static/src/import_data_content/import_data_content.js +++ b/addons/base_import/static/src/import_data_content/import_data_content.js @@ -46,7 +46,7 @@ export class ImportDataContent extends Component { makeChoices(fields) { return fields.map((field) => ({ label: field.label, - value: field.id, + value: field.fieldPath, })); } @@ -83,4 +83,15 @@ export class ImportDataContent extends Component { getCommentClass(column, comment, index) { return `alert-${comment.type} ${index < column.comments.length - 1 ? "mb-2" : "mb-0"}`; } + + onFieldChanged(column, fieldPath) { + const fields = [ + ...column.fields.basic, + ...column.fields.suggested, + ...column.fields.additional, + ...column.fields.relational, + ]; + const fieldInfo = fields.find((f) => f.fieldPath === fieldPath); + this.props.onFieldChanged(column, fieldInfo); + } } diff --git a/addons/base_import/static/src/import_data_content/import_data_content.xml b/addons/base_import/static/src/import_data_content/import_data_content.xml index bbc553db992..5e254002313 100644 --- a/addons/base_import/static/src/import_data_content/import_data_content.xml +++ b/addons/base_import/static/src/import_data_content/import_data_content.xml @@ -60,9 +60,9 @@