diff --git a/web_m2x_options_manager/i18n/web_m2x_options_manager.pot b/web_m2x_options_manager/i18n/web_m2x_options_manager.pot index 40c6acd7d..3559937a3 100644 --- a/web_m2x_options_manager/i18n/web_m2x_options_manager.pot +++ b/web_m2x_options_manager/i18n/web_m2x_options_manager.pot @@ -25,6 +25,11 @@ msgstr "" msgid "Add" msgstr "" +#. module: web_m2x_options_manager +#: model:ir.model.fields,field_description:web_m2x_options_manager.field_m2x_create_edit_option__option_create_edit_wizard +msgid "Create & Edit Wizard" +msgstr "" + #. module: web_m2x_options_manager #: model:ir.model.fields,field_description:web_m2x_options_manager.field_m2x_create_edit_option__option_create_edit msgid "Create & Edit Option" @@ -50,6 +55,13 @@ msgstr "" msgid "Created on" msgstr "" +#. module: web_m2x_options_manager +#: model:ir.model.fields,help:web_m2x_options_manager.field_m2x_create_edit_option__option_create_edit_wizard +msgid "" +"Defines behaviour for 'Create & Edit' Wizard\n" +"Set to False to prevent 'Create & Edit' Wizard to pop up" +msgstr "" + #. module: web_m2x_options_manager #: model:ir.model.fields,help:web_m2x_options_manager.field_m2x_create_edit_option__option_create_edit msgid "" 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 07ae01e77..29c4a7b56 100644 --- a/web_m2x_options_manager/models/m2x_create_edit_option.py +++ b/web_m2x_options_manager/models/m2x_create_edit_option.py @@ -77,6 +77,13 @@ class M2xCreateEditOption(models.Model): string="Create & Edit Option", ) + option_create_edit_wizard = fields.Boolean( + default=True, + help="Defines behaviour for 'Create & Edit' Wizard\n" + "Set to False to prevent 'Create & Edit' Wizard to pop up", + string="Create & Edit Wizard", + ) + _sql_constraints = [ ( "model_field_uniqueness", @@ -142,6 +149,9 @@ class M2xCreateEditOption(models.Model): if mode == "force" or k not in options: options[k] = val == "true" node.set("options", str(options)) + if not self.option_create_edit_wizard: + node.set("can_create", "false") + node.set("can_write", "false") @api.model def get(self, model_name, field_name): 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 de6e1d8c0..27640df5b 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 @@ -29,6 +29,7 @@ class TestM2xCreateEditOption(SavepointCase): "model_id": self.res_partner_model.id, "option_create": "set_true", "option_create_edit": "set_true", + "option_create_edit_wizard": True, } ) self.categories_opt = self.env["m2x.create.edit.option"].create( @@ -37,6 +38,7 @@ class TestM2xCreateEditOption(SavepointCase): "model_id": self.res_partner_model.id, "option_create": "set_true", "option_create_edit": "set_true", + "option_create_edit_wizard": True, } ) self.company_opt = self.env["m2x.create.edit.option"].create( @@ -45,6 +47,7 @@ class TestM2xCreateEditOption(SavepointCase): "model_id": self.res_users_model.id, "option_create": "force_true", "option_create_edit": "set_true", + "option_create_edit_wizard": False, } ) @@ -82,11 +85,25 @@ class TestM2xCreateEditOption(SavepointCase): safe_eval(title_node.attrib.get("options"), nocopy=True), {"create": True, "create_edit": True}, ) + self.assertEqual( + ( + title_node.attrib.get("can_create"), + title_node.attrib.get("can_write"), + ), + ("true", "true"), + ) categ_node = form_doc.xpath("//field[@name='category_id']")[0] self.assertEqual( safe_eval(categ_node.attrib.get("options"), nocopy=True), {"create": False, "create_edit": True}, ) + self.assertEqual( + ( + categ_node.attrib.get("can_create"), + categ_node.attrib.get("can_write"), + ), + ("true", "true"), + ) # Check fields on res.users tree view (contained in ``user_ids`` field) tree_arch = res["fields"]["user_ids"]["views"]["tree"]["arch"] @@ -96,6 +113,13 @@ class TestM2xCreateEditOption(SavepointCase): safe_eval(company_node.attrib.get("options"), nocopy=True), {"create": True, "create_edit": True}, ) + self.assertEqual( + ( + company_node.attrib.get("can_create"), + company_node.attrib.get("can_write"), + ), + ("false", "false"), + ) # Update options, check that node has been updated too self.title_opt.option_create_edit = "force_false" diff --git a/web_m2x_options_manager/views/ir_model.xml b/web_m2x_options_manager/views/ir_model.xml index d05011571..f0e6502d4 100644 --- a/web_m2x_options_manager/views/ir_model.xml +++ b/web_m2x_options_manager/views/ir_model.xml @@ -27,6 +27,7 @@ /> +