添加功能
This commit is contained in:
@@ -39,6 +39,14 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
# setattr(record, field, value)
|
||||
# return res
|
||||
|
||||
def write(self, vals):
|
||||
if self._context.get('_correction_skip'):
|
||||
return super(SoongWorkflowMixin, self).write(vals)
|
||||
for record in self:
|
||||
if record.is_modify:
|
||||
record._write({'is_modify': False})
|
||||
return super(SoongWorkflowMixin, self).write(vals)
|
||||
|
||||
@api.model
|
||||
def _compute_default_state(self):
|
||||
# Objects
|
||||
@@ -72,6 +80,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
track_visibility="onchange",
|
||||
store=True
|
||||
)
|
||||
is_modify = fields.Boolean(string="可修改")
|
||||
workflow_id = fields.Many2one(
|
||||
comodel_name="soong.workflow",
|
||||
string="Workflow Ref.",
|
||||
@@ -1233,6 +1242,11 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
done_el.set("invisible", "1")
|
||||
header_el.append(done_el)
|
||||
|
||||
modify_el = etree.Element("field")
|
||||
modify_el.set("name", "is_modify")
|
||||
modify_el.set("invisible", "1")
|
||||
header_el.append(modify_el)
|
||||
|
||||
if header_el is not False:
|
||||
state_el = etree.Element("field")
|
||||
state_el.set("name", "state")
|
||||
@@ -1425,7 +1439,8 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
id_el = etree.Element("field")
|
||||
id_el.set("name", "log_ids")
|
||||
id_el.set("invisible", "1")
|
||||
field_inst.set("readonly", "state in %s" % readonly_arr)
|
||||
if readonly_arr:
|
||||
field_inst.set("readonly", "(state in %s) and (is_modify != True)" % readonly_arr)
|
||||
# if required_arr:
|
||||
# field_inst.set("required", "state in %s" % required_arr)
|
||||
if invisible_arr:
|
||||
|
||||
@@ -109,6 +109,24 @@ class SoongWorkflowRecord(models.Model):
|
||||
store=False,
|
||||
)
|
||||
|
||||
def correction(self):
|
||||
for rec in self:
|
||||
biz_record = self.env[rec.res_model].browse(rec.res_id)
|
||||
if hasattr(biz_record, 'user_id') and biz_record.user_id:
|
||||
employee = biz_record.user_id.employee_ids
|
||||
elif hasattr(biz_record, 'users_id') and biz_record.users_id:
|
||||
employee = biz_record.users_id.employee_ids
|
||||
menu_id = self.env['ir.ui.menu'].search([('name', '=', '已办流程')])
|
||||
url = f'https://oa.thtzjt.com/web#id={rec.res_id}&cids=2&action={menu_id.action.id}&model={rec.res_model}&view_type=list&menu_id={menu_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa',
|
||||
user_id=employee.wecom_userid,
|
||||
title="流程修正",
|
||||
description=f"您有一条流水号为【{rec.code}】标题为【{rec.name}】流程待修正,请尽快修正",
|
||||
url=url, btntxt="详细信息")
|
||||
record = self.env[rec.res_model].sudo().browse(rec.res_id).exists()
|
||||
record = record.with_context(_correction_skip=True)
|
||||
record.is_modify = True
|
||||
|
||||
@api.returns('self', lambda value: value.id)
|
||||
def copy(self, default=None):
|
||||
default = default or {}
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
<field name="meal" column_invisible="1"/>
|
||||
<field name="workflow_happen_date" string="发生日期" column_invisible="1"/>
|
||||
<field name="pending_users" string="流程待办人员" optional="show"/>
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="backend" type="object" string="后台" class="btn btn-blue"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn btn-blue"
|
||||
|
||||
Reference in New Issue
Block a user