1
This commit is contained in:
@@ -24,7 +24,6 @@ CONDITION_CODE_TEMP = """# Available locals:
|
||||
|
||||
|
||||
user = env.user"""
|
||||
|
||||
PYTHON_CODE_TEMP = """# Available locals:
|
||||
# - time, date, datetime, timedelta: Python libraries.
|
||||
# - env: Odoo Environement.
|
||||
@@ -80,7 +79,6 @@ class SoongWorkflowNode(models.Model):
|
||||
diagram_position = fields.Char(readonly=True, string="Diagram Position")
|
||||
bg_color = fields.Char(default=DEFAULT_BG_COLOR, string="Background Color")
|
||||
label_color = fields.Char(default=DEFAULT_LABEL_COLOR, string="Label Color")
|
||||
# Custom colors
|
||||
use_custom_colors = fields.Boolean(help="Select colors from the palette manually", string="Use Custom Colors")
|
||||
res_bg_color = fields.Char(compute="_compute_custom_colors", readonly=True, string="Backgroung Color")
|
||||
res_label_color = fields.Char(compute="_compute_custom_colors", readonly=True, string="Label Color")
|
||||
@@ -347,8 +345,8 @@ class SoongWorkflowNodeButton(models.Model):
|
||||
is_review_invisible = fields.Boolean(string="使用范围", default=False)
|
||||
reviewer_id = fields.Many2one(comodel_name="res.users", string="Reviewer")
|
||||
reviewer_group_id = fields.Many2one(comodel_name="res.groups", string="Reviewer group")
|
||||
users_role_id = fields.Many2one(comodel_name="soong.user.role", string="主角色",
|
||||
domain=[('user_type', '!=', 'lv_role')])
|
||||
users_role_id = fields.Many2one(comodel_name="soong.user.role", string="主角色", domain=[('user_type', '!=', 'lv_role')])
|
||||
users_role_group_id = fields.Many2one(comodel_name="soong.user.role.group", string="角色组")
|
||||
reviewer_expression = fields.Text(
|
||||
string="Review Expression",
|
||||
default=CONDITION_CODE_TEMP,
|
||||
|
||||
@@ -170,8 +170,7 @@
|
||||
<group>
|
||||
<field name="is_review_invisible"/>
|
||||
<field name="invisible_expression" colspan="2" invisible="is_review_invisible == False" required="is_review_invisible == True"
|
||||
widget="domain"
|
||||
options="{'model': 'invisible_expression_model', 'in_dialog': True,}"
|
||||
widget="domain" options="{'model': 'invisible_expression_model', 'in_dialog': True,}"
|
||||
nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -182,17 +181,11 @@
|
||||
<field name="btn_hide"/>
|
||||
</group>
|
||||
<group invisible="btn_hide == False">
|
||||
<field name="review_type"/>
|
||||
<field
|
||||
name="reviewer_id"
|
||||
invisible="review_type != 'individual'"
|
||||
/>
|
||||
<field
|
||||
name="reviewer_group_id"
|
||||
invisible="review_type != 'group'"
|
||||
/>
|
||||
<field name="users_role_id" invisible="review_type != 'user_role'"
|
||||
required="review_type == 'user_role' and btn_hide"/>
|
||||
<field name="review_type" string="审批类型"/>
|
||||
<field name="reviewer_id" invisible="review_type != 'individual'"/>
|
||||
<field name="reviewer_group_id" invisible="review_type != 'group'"/>
|
||||
<field name="users_role_id" invisible="review_type != 'user_role'"/>
|
||||
<field name="users_role_group_id" invisible="review_type != 'user_role'"/>
|
||||
</group>
|
||||
<group invisible="review_type != 'expression' or btn_hide == False">
|
||||
<div class="alert alert-danger oe_edit_only" role="alert" style="width: max-content;">
|
||||
|
||||
@@ -88,14 +88,23 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
for ret in self.trans_link_id:
|
||||
workflow_id = self.trans_link_id.node_button_id.workflow_id
|
||||
link_users_id = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].users_role_id
|
||||
link_users_group_id = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].users_role_group_id
|
||||
next_is_automatic = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].is_automatic
|
||||
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id), ('company_id', '=', self.env.user.company_id.id)]) # 自动匹配
|
||||
employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id),
|
||||
'|', ('department_id', '=', record_id.department_id.id), ('department_ids', 'in', record_id.department_id.id), ('company_id', '=', self.env.user.company_id.id)]) # 不自动匹配
|
||||
if not employee_user_role_id:
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id),
|
||||
'|', ('department_id', '=', record_id.department_id.parent_id.id), ('department_ids', 'in', record_id.department_id.parent_id.id)])
|
||||
employee_user_role_ids = employee_user_role_id = ''
|
||||
if link_users_id and link_users_group_id:
|
||||
raise UserError('流程配置错误,节点不允许配置两种类型')
|
||||
if link_users_id:
|
||||
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id), ('company_id', '=', self.env.user.company_id.id)]) # 自动匹配
|
||||
employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id),
|
||||
'|', ('department_id', '=', record_id.department_id.id), ('department_ids', 'in', record_id.department_id.id), ('company_id', '=', self.env.user.company_id.id)]) # 不自动匹配
|
||||
elif link_users_group_id:
|
||||
# 不自动匹配
|
||||
employee_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', 'in', link_users_group_id.user_role_ids.ids),('user_role_ids', 'in', link_users_group_id.user_role_ids.ids), ])
|
||||
# 自动匹配
|
||||
employee_user_role_id = self.env['hr.employee'].search([('id', 'in', employee_role_ids.ids),
|
||||
'|', ('department_id', '=', record_id.department_id.id),
|
||||
('department_ids', 'in', record_id.department_id.id),
|
||||
('company_id', '=', self.env.user.company_id.id)]) # 自动匹配
|
||||
self.employee_trans_domain_ids = employee_user_role_ids if not next_is_automatic else employee_user_role_id
|
||||
self.employee_ids = employee_user_role_ids if not next_is_automatic else employee_user_role_id
|
||||
if '分发' in ret.name:
|
||||
|
||||
Reference in New Issue
Block a user