diff --git a/models/pos_config.py b/models/pos_config.py index 1f4d1be..073d9b3 100644 --- a/models/pos_config.py +++ b/models/pos_config.py @@ -6,6 +6,7 @@ class PosConfig(models.Model): is_pos_user_restricted = fields.Boolean(compute='_compute_is_pos_user_restricted') def _compute_is_pos_user_restricted(self): - is_pos = self.env.user.is_pos_user + user = self.env.user + is_restricted = user.is_pos_user or user.is_admin_user for config in self: - config.is_pos_user_restricted = is_pos + config.is_pos_user_restricted = is_restricted diff --git a/models/res_users.py b/models/res_users.py index 02f4bd8..12eb6e4 100644 --- a/models/res_users.py +++ b/models/res_users.py @@ -5,30 +5,32 @@ class ResUsers(models.Model): is_pos_user = fields.Boolean(string="Is POS User?", default=False) is_kitchen_user = fields.Boolean(string="Is Kitchen User?", default=False) + is_admin_user = fields.Boolean(string="Is Admin User?", default=False) @api.model_create_multi def create(self, vals_list): pos_user_group = self.env.ref('point_of_sale.group_pos_user', raise_if_not_found=False) if pos_user_group: for vals in vals_list: - if vals.get('is_kitchen_user') or vals.get('is_pos_user'): + if vals.get('is_kitchen_user') or vals.get('is_pos_user') or vals.get('is_admin_user'): group_commands = vals.get('group_ids', []) if isinstance(group_commands, list): group_commands.append((4, pos_user_group.id)) vals['group_ids'] = group_commands res = super().create(vals_list) - if any(vals.get('is_pos_user') or vals.get('is_kitchen_user') for vals in vals_list): + if any(vals.get('is_pos_user') or vals.get('is_kitchen_user') or vals.get('is_admin_user') for vals in vals_list): self.env.registry.clear_cache() return res def write(self, vals): pos_user_group = self.env.ref('point_of_sale.group_pos_user', raise_if_not_found=False) - if pos_user_group and ('is_kitchen_user' in vals or 'is_pos_user' in vals): + if pos_user_group and ('is_kitchen_user' in vals or 'is_pos_user' in vals or 'is_admin_user' in vals): for user in self: is_kitchen = vals.get('is_kitchen_user', user.is_kitchen_user) is_pos = vals.get('is_pos_user', user.is_pos_user) - if (is_kitchen or is_pos): + is_admin = vals.get('is_admin_user', user.is_admin_user) + if (is_kitchen or is_pos or is_admin): if pos_user_group not in user.group_ids: super(ResUsers, user).write({'group_ids': [(4, pos_user_group.id)]}) else: @@ -36,7 +38,7 @@ class ResUsers(models.Model): super(ResUsers, user).write({'group_ids': [(3, pos_user_group.id)]}) res = super().write(vals) - if 'is_pos_user' in vals or 'is_kitchen_user' in vals: + if 'is_pos_user' in vals or 'is_kitchen_user' in vals or 'is_admin_user' in vals: self.env.registry.clear_cache() return res diff --git a/views/res_users_views.xml b/views/res_users_views.xml index 692224b..847cfee 100644 --- a/views/res_users_views.xml +++ b/views/res_users_views.xml @@ -8,6 +8,7 @@ +