diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py
index 525673b07..39ea26663 100644
--- a/soong_workflow/models/soong_workflow_record.py
+++ b/soong_workflow/models/soong_workflow_record.py
@@ -981,29 +981,27 @@ class SoongWorkflowRecord(models.Model):
})
def open_record(self):
- return {
- "type": "ir.actions.act_window",
- "res_model": self.res_model,
- "res_id": self.res_id,
- "name": self.name,
- "view_mode": "form",
- }
+ """按「模型 + 记录 id」跳转到该审批对应的**业务单据**表单
- def action_open_workflow_record(self):
- """跳转到**本审批记录**(soong.workflow.record)的表单
-
- 用「本模型 + 本记录 id」打开,用于查看该条审批的完整流转信息。
- (区别于 open_record:那个是跳到审批对应的**业务单据**。)
+ 例:审批类型=成交确认书审批 → 打开 `property.confirm`(成交确认书)的 form;
+ 审批类型=物业评估申请 → 打开 `property.evaluate.application` 的 form。
"""
self.ensure_one()
+ if not self.res_model or not self.res_id:
+ raise UserError(_('该审批记录未关联业务单据,无法跳转'))
+ if self.res_model not in self.env:
+ raise UserError(_('系统中已不存在模型「%s」,无法跳转') % self.res_model)
+ if not self.env[self.res_model].sudo().browse(self.res_id).exists():
+ raise UserError(_('对应的业务单据已不存在(%s #%s),无法跳转')
+ % (self.res_model, self.res_id))
return {
- 'type': 'ir.actions.act_window',
- 'name': self.name or self.code or '审批记录',
- 'res_model': 'soong.workflow.record',
- 'res_id': self.id,
- 'view_mode': 'form',
- 'views': [(False, 'form')],
- 'target': 'current',
+ "type": "ir.actions.act_window",
+ "name": self.name or self.res_model,
+ "res_model": self.res_model,
+ "res_id": self.res_id,
+ "view_mode": "form",
+ "views": [(False, "form")],
+ "target": "current",
}
@api.model
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index a29047569..8a9a1bd9b 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -307,7 +307,7 @@
-
+