1
This commit is contained in:
@@ -34,24 +34,25 @@ class SoongWorkflowRecord(models.Model):
|
||||
done_by = fields.Many2one(comodel_name="res.users", string="经办人")
|
||||
is_department_record = fields.Boolean(string="是否是本部门的数据", store=False, search="_search_is_department_record")
|
||||
|
||||
def get_department_employees(self, department_id):
|
||||
valid_user_ids = set()
|
||||
employee_ids = self.sudo().env['hr.employee'].search([('department_id', '=', department_id.id)])
|
||||
valid_user_ids.update([user.user_id.id for user in employee_ids if user.user_id])
|
||||
child_ids = self.sudo().env['hr.department'].search([('parent_id', '=', department_id.id)])
|
||||
for child in child_ids:
|
||||
valid_user_ids.update(self.get_department_employees(child))
|
||||
return valid_user_ids
|
||||
|
||||
def _search_is_department_record(self, operator, operand):
|
||||
def get_department_employees(department_id):
|
||||
valid_user_ids = set()
|
||||
employee_ids = self.env['hr.employee'].search([('department_id', '=', department_id.id)])
|
||||
valid_user_ids.update([user.user_id.id for user in employee_ids if user.user_id])
|
||||
child_ids = self.env['hr.department'].search([('parent_id', '=', department_id.id)])
|
||||
for child in child_ids:
|
||||
valid_user_ids.update(get_department_employees(child))
|
||||
return valid_user_ids
|
||||
if self.env.user.has_group('soong_workflow.group_soong_workflow_manager'):
|
||||
ids = self.sudo().with_context(active_test=False).search([]).ids
|
||||
else:
|
||||
ids = []
|
||||
for department_id in self.env.user.employee_id.department_id:
|
||||
user_list = get_department_employees(department_id)
|
||||
for user in user_list:
|
||||
c_id = self.sudo().with_context(active_test=False).search([("users_ids", "in", user)])
|
||||
ids.append(c_id)
|
||||
# if self.env.user.has_group('soong_workflow.group_soong_workflow_manager'):
|
||||
# ids = self.sudo().with_context(active_test=False).search([]).ids
|
||||
# else:
|
||||
ids = []
|
||||
for department_id in self.env.user.employee_id.department_id:
|
||||
user_list = self.get_department_employees(department_id)
|
||||
for user in user_list:
|
||||
c_id = self.sudo().with_context(active_test=False).search([("users_ids", "in", [user])]).ids
|
||||
ids += c_id
|
||||
return [('id', 'in', ids)]
|
||||
|
||||
def reclaim_record(self):
|
||||
|
||||
Reference in New Issue
Block a user