From c02e4316bb4d05adc4ce8645ad28cdc0b809f99d Mon Sep 17 00:00:00 2001 From: "Michael (mcm)" Date: Tue, 13 Sep 2022 13:41:52 +0000 Subject: [PATCH] [IMP] web: open m2o record in target current This commit adds an option to many2one field to open the record either in target new (dialog) or target current (replace view) which is now the default. task id: 2822553 X-original-commit: abe26f6eebb450512b35c25094329f85b98c15d9 Part-of: odoo/odoo#101118 --- .../views/fields/many2one/many2one_field.js | 9 ++- .../views/fields/many2one/many2one_field.xml | 3 +- .../views/fields/many2one_field_tests.js | 63 +++++++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/views/fields/many2one/many2one_field.js b/addons/web/static/src/views/fields/many2one/many2one_field.js index eec6ccd950b..4a7a6e97d10 100644 --- a/addons/web/static/src/views/fields/many2one/many2one_field.js +++ b/addons/web/static/src/views/fields/many2one/many2one_field.js @@ -188,7 +188,11 @@ export class Many2OneField extends Component { } } onExternalBtnClick() { - this.openDialog(this.resId); + if (this.props.openTarget === "current") { + this.openAction(); + } else { + this.openDialog(this.resId); + } } async onBarcodeBtnClick() { const barcode = await BarcodeScanner.scanBarcode(); @@ -259,6 +263,7 @@ Many2OneField.props = { relation: { type: String, optional: true }, string: { type: String, optional: true }, canScanBarcode: { type: Boolean, optional: true }, + openTarget: { type: String, validate: (v) => ["current", "new"].includes(v), optional: true }, }; Many2OneField.defaultProps = { canOpen: true, @@ -270,6 +275,7 @@ Many2OneField.defaultProps = { searchLimit: 7, string: "", canScanBarcode: false, + openTarget: "current", }; Many2OneField.displayName = _lt("Many2one"); @@ -295,6 +301,7 @@ Many2OneField.extractProps = ({ attrs, field }) => { string: attrs.string || field.string, createNameField: attrs.options.create_name_field, canScanBarcode: canScanBarcode, + openTarget: attrs.open_target, }; }; diff --git a/addons/web/static/src/views/fields/many2one/many2one_field.xml b/addons/web/static/src/views/fields/many2one/many2one_field.xml index bb596bf9e01..beb27606cdb 100644 --- a/addons/web/static/src/views/fields/many2one/many2one_field.xml +++ b/addons/web/static/src/views/fields/many2one/many2one_field.xml @@ -45,7 +45,8 @@