添加功能

This commit is contained in:
李鹏宇
2026-03-27 17:45:30 +08:00
parent 112dc69c3e
commit 1f24e1ebf9
3 changed files with 35 additions and 1 deletions
+16 -1
View File
@@ -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"