diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 91e8f28e7..b43e1323a 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -988,6 +988,12 @@ class SoongWorkflowRecord(models.Model): def restore_record(self): for rec in self: rec.reclaim_state = False + log_ids = self.env["soong.workflow.log"].sudo().search([ + ("code", "=", rec.code), + ("active", "=", False) + ]) + if log_ids: + log_ids.sudo().write({"active": True}) def delete_record(self): record_ids = self.env["soong.workflow.record"].browse( diff --git a/soong_workflow/wizard/soong_workflow_record_delete_wizard.py b/soong_workflow/wizard/soong_workflow_record_delete_wizard.py index 7f51518c3..8117c23af 100644 --- a/soong_workflow/wizard/soong_workflow_record_delete_wizard.py +++ b/soong_workflow/wizard/soong_workflow_record_delete_wizard.py @@ -77,6 +77,12 @@ class SoongWorkflowRecordDeleteWizard(models.TransientModel): if not record.reclaim_state: workflow_record.write({"reclaim_state": True}) + + # 处理工作流日志 + log_ids = self.env["soong.workflow.log"].sudo().search([("code", "=", record.code)]) + for log_id in log_ids: + log_id.sudo().write({"active": False}) + if record.res_model and record.res_id: target_model = self.env[record.res_model] target_record = target_model.sudo().browse(record.res_id).exists()