# -*- coding: utf-8 -*- from odoo import api, fields, models class YuthonHrEmployee(models.Model): _inherit = "hr.employee" user_role_ids_changed = fields.Boolean(compute='_compute_user_roles') @api.depends('user_role_ids') def _compute_user_roles(self): group_mapping = { '党支委议题': 'group_party_topic', '班子会议题': 'group_team_topic', '董事会议题': 'group_board_topic', '议题管理员': 'group_topic_admin', } old_users_ids = self.user_role_ids for employee in self: for role in employee.user_role_ids: group_id = group_mapping.get(role.name) if group_id: group = self.env.ref('yuthon_issue.' + group_id, raise_if_not_found=False) if group: # 未知因素屏蔽选择值 group.write({'users': [(4, employee.user_id.id)]}) self.user_role_ids = old_users_ids self.user_role_ids_changed = True