From 4d3ecc1f18c74a4d2c87d227e90dce12d8a7eb0f Mon Sep 17 00:00:00 2001 From: Germana Date: Mon, 15 Nov 2021 15:36:05 -0400 Subject: [PATCH] [MIG] web_m2x_options_manager: Migration to 15.0 - Fix postprocess inherit (removed from v15), and use _postprocess_tag_field for create/edit options: In v14 it worked with inheriting the "postprocess" method because in each recursive call it passed a section of the view, in the way that it went through all the child nodes of the root node, and passed through the fields, and now in v15 the method "_postprocess_view "it just does the while, and we never go through the nodes. - Fix pylint errors: xml-deprecated-tree-attributte, attribute-string-redundant, translation-positional-used --- web_m2x_options_manager/__manifest__.py | 2 +- web_m2x_options_manager/models/ir_ui_view.py | 6 +++--- web_m2x_options_manager/models/m2x_create_edit_option.py | 9 ++++++--- .../tests/test_m2x_create_edit_option.py | 4 ++-- web_m2x_options_manager/views/ir_model.xml | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/web_m2x_options_manager/__manifest__.py b/web_m2x_options_manager/__manifest__.py index 3a39a7366..623712a8b 100644 --- a/web_m2x_options_manager/__manifest__.py +++ b/web_m2x_options_manager/__manifest__.py @@ -6,7 +6,7 @@ "summary": 'Adds an interface to manage the "Create" and' ' "Create and Edit" options for specific models and' " fields.", - "version": "14.0.1.1.0", + "version": "15.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Web", diff --git a/web_m2x_options_manager/models/ir_ui_view.py b/web_m2x_options_manager/models/ir_ui_view.py index 172ef6696..66393622d 100644 --- a/web_m2x_options_manager/models/ir_ui_view.py +++ b/web_m2x_options_manager/models/ir_ui_view.py @@ -7,10 +7,10 @@ from odoo import models class IrUiView(models.Model): _inherit = "ir.ui.view" - def postprocess(self, node, current_node_path, editable, name_manager): - res = super().postprocess(node, current_node_path, editable, name_manager) + def _postprocess_tag_field(self, node, name_manager, node_info): + res = super()._postprocess_tag_field(node, name_manager, node_info) if node.tag == "field": - mname = name_manager.Model._name + mname = name_manager.model._name fname = node.attrib["name"] field = self.env[mname]._fields.get(fname) if field and field.type in ("many2many", "many2one"): diff --git a/web_m2x_options_manager/models/m2x_create_edit_option.py b/web_m2x_options_manager/models/m2x_create_edit_option.py index 29c4a7b56..d3c5bb1ea 100644 --- a/web_m2x_options_manager/models/m2x_create_edit_option.py +++ b/web_m2x_options_manager/models/m2x_create_edit_option.py @@ -36,7 +36,6 @@ class M2xCreateEditOption(models.Model): compute="_compute_model_name", inverse="_inverse_model_name", store=True, - string="Model Name", ) option_create = fields.Selection( @@ -125,8 +124,12 @@ class M2xCreateEditOption(models.Model): def _check_field_in_model(self): for opt in self: if opt.field_id.model_id != opt.model_id: - msg = _("'%s' is not a valid field for model '%s'!") - raise ValidationError(msg % (opt.field_name, opt.model_name)) + msg = _( + "%(field)s is not a valid field for model %(model)s!", + field=opt.field_name, + model=opt.model_name, + ) + raise ValidationError(msg) @api.constrains("field_id") def _check_field_type(self): diff --git a/web_m2x_options_manager/tests/test_m2x_create_edit_option.py b/web_m2x_options_manager/tests/test_m2x_create_edit_option.py index 27640df5b..7f61c9c2b 100644 --- a/web_m2x_options_manager/tests/test_m2x_create_edit_option.py +++ b/web_m2x_options_manager/tests/test_m2x_create_edit_option.py @@ -4,11 +4,11 @@ from lxml import etree from odoo.exceptions import ValidationError -from odoo.tests.common import SavepointCase +from odoo.tests.common import TransactionCase from odoo.tools.safe_eval import safe_eval -class TestM2xCreateEditOption(SavepointCase): +class TestM2xCreateEditOption(TransactionCase): def setUp(self): super(TestM2xCreateEditOption, self).setUp() ref = self.env.ref diff --git a/web_m2x_options_manager/views/ir_model.xml b/web_m2x_options_manager/views/ir_model.xml index f0e6502d4..e52a1b864 100644 --- a/web_m2x_options_manager/views/ir_model.xml +++ b/web_m2x_options_manager/views/ir_model.xml @@ -17,7 +17,7 @@ nolabel="1" context="{'default_model_name': model}" > - +