From b7371660ebc21b627ae2b4f60ef2a5d0148822f0 Mon Sep 17 00:00:00 2001 From: Vincent Schippefilt Date: Tue, 8 Nov 2022 15:50:28 +0000 Subject: [PATCH] [IMP] base: add a many2one from ir.ui.view to model When using the view "edit view" on the interface as administrator, the user can see and modify the model of the view as a string, but cannot navigate to the model easily or edit the model field by selecting the model in a list. This pull request adds the possibility to view and edit the model field as a many2one. closes odoo/odoo#105356 Task-id: 3007619 Signed-off-by: Raphael Collet --- odoo/addons/base/models/ir_ui_view.py | 10 ++++++++++ odoo/addons/base/views/ir_ui_view_views.xml | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index ec77d7227b9..ebb925501da 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -277,6 +277,7 @@ actual arch. * if True, the view always extends its parent * if False, the view currently does not extend its parent but can be enabled """) + model_id = fields.Many2one("ir.model", string="Model of the view", compute='_compute_model_id', inverse='_inverse_compute_model_id') @api.depends('arch_db', 'arch_fs', 'arch_updated') @api.depends_context('read_arch_from_file', 'lang') @@ -370,6 +371,15 @@ actual arch. data = self.env['ir.model.data'].sudo().search(domain) return [('id', 'in', data.mapped('res_id'))] + @api.depends('model') + def _compute_model_id(self): + for record in self: + record.model_id = self.env['ir.model']._get(record.model) + + def _inverse_compute_model_id(self): + for record in self: + record.model = record.model_id.model + def _compute_xml_id(self): xml_ids = collections.defaultdict(list) domain = [('model', '=', 'ir.ui.view'), ('res_id', 'in', self.ids)] diff --git a/odoo/addons/base/views/ir_ui_view_views.xml b/odoo/addons/base/views/ir_ui_view_views.xml index c989e819c07..544344025b1 100644 --- a/odoo/addons/base/views/ir_ui_view_views.xml +++ b/odoo/addons/base/views/ir_ui_view_views.xml @@ -10,7 +10,8 @@ - + +