From 294f0194145ca4139d9d9cea0729bf83d0871c94 Mon Sep 17 00:00:00 2001 From: "Loan J." Date: Fri, 28 Feb 2025 09:08:01 -0500 Subject: [PATCH] fix(Odoo Node): Model and fields dynamic fetching errors (#13511) --- packages/nodes-base/nodes/Odoo/Odoo.node.ts | 25 +++++++-------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/packages/nodes-base/nodes/Odoo/Odoo.node.ts b/packages/nodes-base/nodes/Odoo/Odoo.node.ts index 8fc94d69c3..d507d756fc 100644 --- a/packages/nodes-base/nodes/Odoo/Odoo.node.ts +++ b/packages/nodes-base/nodes/Odoo/Odoo.node.ts @@ -116,19 +116,18 @@ export class Odoo implements INodeType { const userID = await odooGetUserID.call(this, db, username, password, url); const response = await odooGetModelFields.call(this, db, userID, password, resource, url); - const options = Object.values(response).map((field) => { + const options = Object.entries(response).map(([key, field]) => { const optionField = field as { [key: string]: string }; - let name = ''; try { - name = capitalCase(optionField.name); + optionField.name = capitalCase(optionField.name); } catch (error) { - name = optionField.name; + optionField.name = optionField.string; } return { - name, - value: optionField.name, + name: optionField.name, + value: key, // nodelinter-ignore-next-line - description: `name: ${optionField?.name}, type: ${optionField?.type} required: ${optionField?.required}`, + description: `name: ${key}, type: ${optionField?.type} required: ${optionField?.required}`, }; }); @@ -148,15 +147,7 @@ export class Odoo implements INodeType { params: { service: 'object', method: 'execute', - args: [ - db, - userID, - password, - 'ir.model', - 'search_read', - [], - ['name', 'model', 'modules'], - ], + args: [db, userID, password, 'ir.model', 'search_read', [], ['name', 'model']], }, id: randomInt(100), }; @@ -167,7 +158,7 @@ export class Odoo implements INodeType { return { name: model.name, value: model.model, - description: `model: ${model.model}
modules: ${model.modules}`, + description: `model: ${model.model}`, }; }); return options as INodePropertyOptions[];