添加功能

This commit is contained in:
李鹏宇
2026-03-24 10:58:04 +08:00
parent 5eee857ce9
commit b98c5438ab
+45 -25
View File
@@ -318,6 +318,26 @@ class YuthonHrEmployee(models.Model):
btntxt="详细信息"
)
@api.onchange('user_role_id', 'user_role_ids')
def _onchange_user_roles(self):
selected_role_ids = []
if self.user_role_id:
selected_role_ids.append(self.user_role_id.id)
if self.user_role_ids:
selected_role_ids += self.user_role_ids.ids
if not selected_role_ids:
self.role_group_ids = [(5,)]
return
role_groups = self.env['soong.user.role.group'].search([
('user_role_ids', 'in', selected_role_ids)
])
if role_groups:
self.role_group_ids = [(6, 0, role_groups.ids)]
else:
self.role_group_ids = [(5,)]
def update_trade_union(self):
records = self.env['hr.employee'].search([('is_membership', '=', True)])
for record in records:
@@ -659,16 +679,16 @@ class YuthonHrEmployee(models.Model):
pass
return recs
def write(self, values):
for record in self:
try:
if "department_id" in values:
record.do_group_department_id(values.get("department_id"))
if "user_role_id" in values:
record.do_group_user_role_id(values.get("user_role_id"))
except Exception as e:
pass
return super().write(values)
# def write(self, values):
# for record in self:
# try:
# if "department_id" in values:
# record.do_group_department_id(values.get("department_id"))
# if "user_role_id" in values:
# record.do_group_user_role_id(values.get("user_role_id"))
# except Exception as e:
# pass
# return super().write(values)
def do_group_department_id(self, department_id):
user_ids = self.user_id.ids
@@ -688,21 +708,21 @@ class YuthonHrEmployee(models.Model):
"users": [(4, id) for id in user_ids]
})
def do_group_user_role_id(self, user_role_id):
# 移除原来的数据
user_ids = self.user_id.ids
old_res_groups_objs = self.sudo().env["res.groups"].search([("user_role_ids", "in", self.user_role_id.ids)])
if old_res_groups_objs:
for res_groups_obj in old_res_groups_objs:
res_groups_obj.sudo().write({"users": [(3, id) for id in user_ids]})
# 增加新的元素
role_obj = self.sudo().env["soong.user.role"].search([("id", "=", user_role_id)], limit=1)
res_groups_objs = self.sudo().env["res.groups"].search([("user_role_ids", "in", role_obj.ids)])
if res_groups_objs:
for res_groups_obj in res_groups_objs:
res_groups_obj.sudo().write({
"users": [(4, id) for id in user_ids]
})
# def do_group_user_role_id(self, user_role_id):
# # 移除原来的数据
# user_ids = self.user_id.ids
# old_res_groups_objs = self.sudo().env["res.groups"].search([("user_role_ids", "in", self.user_role_id.ids)])
# if old_res_groups_objs:
# for res_groups_obj in old_res_groups_objs:
# res_groups_obj.sudo().write({"users": [(3, id) for id in user_ids]})
# # 增加新的元素
# role_obj = self.sudo().env["soong.user.role"].search([("id", "=", user_role_id)], limit=1)
# res_groups_objs = self.sudo().env["res.groups"].search([("user_role_ids", "in", role_obj.ids)])
# if res_groups_objs:
# for res_groups_obj in res_groups_objs:
# res_groups_obj.sudo().write({
# "users": [(4, id) for id in user_ids]
# })
@api.onchange('number')
def onchange_number(self):