From cbcebaf573ba0f994d52266a2c65bf356a6a310b Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Sat, 24 May 2025 21:54:19 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
soong_workflow/models/soong_workflow_mixin.py | 26 +++++++-------
soong_workflow/security/ir.model.access.csv | 2 +-
soong_workflow/wizard/soong_bounced_wizard.py | 28 +++++++++------
.../wizard/soong_bounced_wizard_views.xml | 3 +-
.../wizard/soong_workflow_comment_wizard.py | 34 +++++++++----------
.../soong_workflow_comment_wizard_view.xml | 4 +--
.../views/property_lease_contract.xml | 2 +-
yuthon_trade/data/sale_renting_code_data.xml | 4 +++
yuthon_trade/models/yuthon_seals_approval.py | 4 +--
.../views/yuthon_seals_approval_views.xml | 4 +--
10 files changed, 61 insertions(+), 50 deletions(-)
diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py
index 107aa1032..732ed99c0 100644
--- a/soong_workflow/models/soong_workflow_mixin.py
+++ b/soong_workflow/models/soong_workflow_mixin.py
@@ -245,6 +245,18 @@ class SoongWorkflowMixin(models.AbstractModel):
# 继续正常流程
if btn_rec.has_comment:
return self.with_context(cx)._add_comment(log_obj, btn_rec)
+ if btn_rec.name == '收回':
+ return {
+ 'name': '收回弹窗',
+ 'type': 'ir.actions.act_window',
+ 'view_mode': 'form',
+ 'res_model': 'soong.bounced.wizard',
+ "target": "new",
+ 'context': {
+ 'default_res_id': self.id,
+ "default_res_model": self._name,
+ }
+ }
else:
return btn_rec.with_context(cx).run()
@@ -402,19 +414,7 @@ class SoongWorkflowMixin(models.AbstractModel):
# 收回
def action_withdraw(self):
- wizard = self.env.ref("soong_workflow.soong_bounced_wizard_form_view")
- return {
- 'name': '收回弹窗',
- 'type': 'ir.actions.act_window',
- 'view_mode': 'form',
- 'res_model': 'soong.bounced.wizard',
- "views": [(wizard.id, "form")],
- "view_id": wizard.id,
- "target": "new",
- 'context': {
- 'default_mixin_id': self.id,
- }
- }
+ pass
def _remove_default_header(self, view_type, res):
"""
diff --git a/soong_workflow/security/ir.model.access.csv b/soong_workflow/security/ir.model.access.csv
index 2c8845315..21ef21a8e 100644
--- a/soong_workflow/security/ir.model.access.csv
+++ b/soong_workflow/security/ir.model.access.csv
@@ -42,4 +42,4 @@ access_role_group_wizard,role_group_wizard,model_role_group_wizard,soong_workflo
access_soong_workflow_record_revoke_wizard,soong_workflow_record_revoke_wizard,model_soong_workflow_record_revoke_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1
access_soong_workflow_line,soong_workflow_line,model_soong_workflow_line,soong_workflow.group_soong_workflow_user,1,1,1,1
access_project_project_line,project_project_line,model_project_project_line,soong_workflow.group_soong_workflow_user,1,1,1,1
-access_soong_bounced_wizard, soong_bounced_wizard,model_soong_bounced_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1
\ No newline at end of file
+access_soong_bounced_wizard,soong_bounced_wizard,model_soong_bounced_wizard,base.group_user,1,1,1,1
\ No newline at end of file
diff --git a/soong_workflow/wizard/soong_bounced_wizard.py b/soong_workflow/wizard/soong_bounced_wizard.py
index 3b152efc0..6490441e5 100644
--- a/soong_workflow/wizard/soong_bounced_wizard.py
+++ b/soong_workflow/wizard/soong_bounced_wizard.py
@@ -8,16 +8,22 @@ class SoongBouncedWizard(models.Model):
_name = 'soong.bounced.wizard'
_description = '收回弹窗'
- mixin_id = fields.Many2one('soong.workflow.mixin')
+ res_id = fields.Integer()
+ res_model = fields.Char()
def action_bounced(self):
- for record in self.mixin_id:
- log_ids = record.log_ids.sorted('sequence')
- if log_ids[-1].approval_state == '2':
- raise UserError('当前状态不可以收回')
- employee_id = self.env.user.employee_id.id
- self.env['soong.workflow.record'].search([('code', '=', self.code)]).write(
- {'employee_ids': [(6, 0, [employee_id])]})
- log_ids[-1].unlink()
- log_ids[-2].write({'approval_state': '1'})
- record.write({'state': log_ids[-2].name})
\ No newline at end of file
+ record = self.env[self.res_model].search([('id', '=', self.res_id)])
+ log_ids = record.log_ids.sorted('sequence')
+ if log_ids[-1].approval_state == '1':
+ raise UserError('当前状态不可以收回')
+ employee_id = self.env.user.employee_ids.id
+ workflow_id = (self.env['soong.workflow.record'].search([('code', '=', record.code)]))
+ if employee_id:
+ workflow_id.write({'employee_ids': [(6, 0, [employee_id])]})
+ if workflow_id.users_ids:
+ last_user = workflow_id.users_ids[-1]
+ if last_user.employee_ids.id != employee_id:
+ workflow_id.write({'users_ids': [(3, last_user.id)]})
+ log_ids[-1].unlink()
+ log_ids[-2].write({'approval_state': '1'})
+ record.write({'state': log_ids[-2].name})
\ No newline at end of file
diff --git a/soong_workflow/wizard/soong_bounced_wizard_views.xml b/soong_workflow/wizard/soong_bounced_wizard_views.xml
index f57e80d69..118c68c08 100644
--- a/soong_workflow/wizard/soong_bounced_wizard_views.xml
+++ b/soong_workflow/wizard/soong_bounced_wizard_views.xml
@@ -8,7 +8,8 @@
确认要收回吗?
-
+
+