From c82cb3b5cd3f6de3a3d4b01ac69856898b95209c Mon Sep 17 00:00:00 2001 From: FrancoisGe Date: Tue, 13 Dec 2022 09:54:43 +0000 Subject: [PATCH] [IMP] base: add widget in tree view rng validation Before this commit, it was possible to define a in the arch of an x2many in list mode. But this was not supported in normal list views. So in order to unify the api, we decided to support in the list view as well. In a future commit, we plan to improve the widget api to receive only the necessary props. closes odoo/odoo#107811 Signed-off-by: Aaron Bohy (aab) --- addons/web/static/src/views/list/list_arch_parser.js | 2 +- .../web/static/src/views/widgets/standard_widget_props.js | 5 +++++ odoo/addons/base/rng/common.rng | 7 +++++++ odoo/addons/base/rng/tree_view.rng | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/views/list/list_arch_parser.js b/addons/web/static/src/views/list/list_arch_parser.js index dada4c7baaf..6884358f558 100644 --- a/addons/web/static/src/views/list/list_arch_parser.js +++ b/addons/web/static/src/views/list/list_arch_parser.js @@ -135,7 +135,7 @@ export class ListArchParser extends XMLParser { // FIXME: this is dumb, we encode it into a weird object so that the widget // can decode it later... node: encodeObjectForTemplate({ attrs: widgetInfo.rawAttrs }).slice(1, -1), - className: node.getAttribute("class"), + className: node.getAttribute("class") || "", }; columns.push({ ...widgetInfo, diff --git a/addons/web/static/src/views/widgets/standard_widget_props.js b/addons/web/static/src/views/widgets/standard_widget_props.js index e34b62f6897..106c470a322 100644 --- a/addons/web/static/src/views/widgets/standard_widget_props.js +++ b/addons/web/static/src/views/widgets/standard_widget_props.js @@ -3,4 +3,9 @@ export const standardWidgetProps = { readonly: { type: Boolean, optional: true }, record: { type: Object }, + // TODO TO REMOVE - ListView - FGE + options: { type: Object, optional: true }, + rawAttrs: { type: Object, optional: true }, + WidgetComponent: { type: Function, optional: true }, + className: { type: String, optional: true }, }; diff --git a/odoo/addons/base/rng/common.rng b/odoo/addons/base/rng/common.rng index f5114603cab..eb6073252bb 100644 --- a/odoo/addons/base/rng/common.rng +++ b/odoo/addons/base/rng/common.rng @@ -432,4 +432,11 @@ + + + + + + + diff --git a/odoo/addons/base/rng/tree_view.rng b/odoo/addons/base/rng/tree_view.rng index 6caca915e2e..ed194bbda6e 100644 --- a/odoo/addons/base/rng/tree_view.rng +++ b/odoo/addons/base/rng/tree_view.rng @@ -76,6 +76,7 @@ +