@@ -53,6 +53,21 @@ class SoongWorkflow(models.Model):
|
||||
approvals_group_id = fields.Many2one('soong.approval.group', string="审批分组")
|
||||
user_role_ids = fields.Many2many('soong.user.role', string="授权范围", store=True,
|
||||
default=lambda self: [(6, 0, [self.env.ref('soong_workflow.soong_user_role_workflow_admin').id])], domain=[('user_type', '!=', 'lv_role')])
|
||||
department_role_ids = fields.Many2many('hr.department', string="授权部门范围", store=True)
|
||||
is_user_department_role = fields.Boolean(string="是否有权限查看", store=False, search="_search_is_user_department_role")
|
||||
|
||||
def _search_is_user_department_role(self, operator, value):
|
||||
id_list = []
|
||||
if self.env.user.has_group("soong_workflow.group_soong_workflow_user"):
|
||||
for user_role_id in self.env.user.employee_id.user_role_ids.ids:
|
||||
id_list += self.sudo().with_context(active_test=False).search([("user_role_ids", "in", [user_role_id])]).ids
|
||||
|
||||
for department_id in self.env.user.employee_id.department_id.ids:
|
||||
id_list += self.sudo().with_context(active_test=False).search([("department_role_ids", "in", [department_id])]).ids
|
||||
|
||||
if self.env.user.has_group("soong_workflow.group_soong_workflow_manager"):
|
||||
id_list += self.sudo().with_context(active_test=False).search([]).ids
|
||||
return [('id', "in", id_list)]
|
||||
|
||||
def copy(self, default=None):
|
||||
workflow_id = self.search([('model_id', '=', self.model_id.id)])
|
||||
|
||||
@@ -122,6 +122,8 @@ class SoongWorkflowNode(models.Model):
|
||||
def onchange_is_end(self):
|
||||
for record in self:
|
||||
if record.is_end:
|
||||
record.use_custom_colors = True
|
||||
record.bg_color = END_BG_COLOR_1
|
||||
record.res_bg_color = END_BG_COLOR_1
|
||||
sequence = max([r.sequence for r in record.button_ids] if record.button_ids else [1])
|
||||
record.button_ids = [
|
||||
@@ -136,6 +138,8 @@ class SoongWorkflowNode(models.Model):
|
||||
})
|
||||
]
|
||||
else:
|
||||
record.use_custom_colors = True
|
||||
record.bg_color = DEFAULT_BG_COLOR
|
||||
record.res_bg_color = DEFAULT_BG_COLOR
|
||||
remove_ids = record.button_ids.filtered(lambda r: r.name in ["结束"])
|
||||
record.button_ids = [(3, remove_id.id) for remove_id in remove_ids]
|
||||
|
||||
@@ -33,5 +33,6 @@
|
||||
<field name="name">审批</field>
|
||||
<field name="res_model">soong.workflow</field>
|
||||
<field name="view_mode">kanban,tree</field>
|
||||
<field name="domain">[('is_user_department_role','=',True)]</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -238,7 +238,8 @@
|
||||
<field name="name"/>
|
||||
<field name="action_type"/>
|
||||
<field name="is_highlight"/>
|
||||
<field name="node_id" invisible="1"/>
|
||||
<field name="node_id" column_invisible="1"/>
|
||||
<field name="users_role_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
<field name="is_enable"/>
|
||||
<field name="approvals_group_id"/>
|
||||
<field name="user_role_ids" widget="many2many_tags"/>
|
||||
<field name="department_role_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
||||
Reference in New Issue
Block a user