添加功能
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user