From fbd99ca40b947a3ea04329b665b9ee89e9214eb0 Mon Sep 17 00:00:00 2001 From: ArnauCForgeFlow Date: Thu, 25 Jan 2024 11:00:21 +0100 Subject: [PATCH] [IMP] base_user_role: action to group groups into a role --- base_user_role/__init__.py | 1 + base_user_role/__manifest__.py | 1 + base_user_role/security/ir.model.access.csv | 1 + base_user_role/wizards/__init__.py | 1 + .../wizards/group_groups_into_role.py | 26 +++++++++++++ .../wizards/group_groups_into_role.xml | 39 +++++++++++++++++++ 6 files changed, 69 insertions(+) create mode 100644 base_user_role/wizards/__init__.py create mode 100644 base_user_role/wizards/group_groups_into_role.py create mode 100644 base_user_role/wizards/group_groups_into_role.xml diff --git a/base_user_role/__init__.py b/base_user_role/__init__.py index 0650744f..aee8895e 100644 --- a/base_user_role/__init__.py +++ b/base_user_role/__init__.py @@ -1 +1,2 @@ from . import models +from . import wizards diff --git a/base_user_role/__manifest__.py b/base_user_role/__manifest__.py index 70904c12..4fb6d231 100644 --- a/base_user_role/__manifest__.py +++ b/base_user_role/__manifest__.py @@ -19,6 +19,7 @@ "views/role.xml", "views/user.xml", "views/group.xml", + "wizards/group_groups_into_role.xml", ], "installable": True, } diff --git a/base_user_role/security/ir.model.access.csv b/base_user_role/security/ir.model.access.csv index 04790a3d..eb0ab401 100644 --- a/base_user_role/security/ir.model.access.csv +++ b/base_user_role/security/ir.model.access.csv @@ -1,3 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_res_users_role,access_res_users_role,model_res_users_role,"base.group_erp_manager",1,1,1,1 access_res_users_role_line,access_res_users_role_line,model_res_users_role_line,"base.group_erp_manager",1,1,1,1 +access_group_groups_into_role,access_group_groups_into_role,model_group_groups_into_role,,1,1,1,1 diff --git a/base_user_role/wizards/__init__.py b/base_user_role/wizards/__init__.py new file mode 100644 index 00000000..62aa47d8 --- /dev/null +++ b/base_user_role/wizards/__init__.py @@ -0,0 +1 @@ +from . import group_groups_into_role diff --git a/base_user_role/wizards/group_groups_into_role.py b/base_user_role/wizards/group_groups_into_role.py new file mode 100644 index 00000000..8e68e8c3 --- /dev/null +++ b/base_user_role/wizards/group_groups_into_role.py @@ -0,0 +1,26 @@ +# Copyright 2021 Sodexis +# License OPL-1 (See LICENSE file for full copyright and licensing details). + + +from odoo import fields, models + + +class GroupGroupsIntoRole(models.TransientModel): + """ + This wizard is used to group different groups into a role. + """ + + _name = "group.groups.into.role" + _description = "Group groups into a role" + name = fields.Char( + required=True, + help="Group groups into a role and specify a name for this role", + ) + + def create_role(self): + selected_group_ids = self.env.context.get("selected_group_ids", []) + vals = { + "name": self.name, + "implied_ids": selected_group_ids, + } + self.env["res.users.role"].create(vals) diff --git a/base_user_role/wizards/group_groups_into_role.xml b/base_user_role/wizards/group_groups_into_role.xml new file mode 100644 index 00000000..211f3844 --- /dev/null +++ b/base_user_role/wizards/group_groups_into_role.xml @@ -0,0 +1,39 @@ + + + + group.groups.into.role.wiz.view + group.groups.into.role + +
+ + + +
+
+
+
+
+ + Create role + + + code + + action = { + 'name': 'Specify a name for your new role', + 'type': 'ir.actions.act_window', + 'res_model': 'group.groups.into.role', + 'target': 'new', + 'views':[(env.ref('base_user_role.group_groups_into_role_wiz_view').id, 'form')], + 'context': {'selected_group_ids': [group.id for group in records]}, + } + + +