From dacf052740927cbca2f5df85400ea6a3051d3e9f Mon Sep 17 00:00:00 2001 From: pengyuthon Date: Sat, 4 Oct 2025 23:46:13 +0800 Subject: [PATCH] 1 --- yuthon_hr_attendance/models/card_approval.py | 12 +++--- yuthon_hr_attendance/models/duty_approval.py | 10 ++--- yuthon_hr_attendance/models/go_approval.py | 10 ++--- .../models/overtime_approval.py | 10 ++--- .../models/remove_holiday_approval.py | 10 ++--- .../models/yuthon_abnormal_approval.py | 10 ++--- .../models/yuthon_adjustments_approval.py | 10 ++--- .../models/yuthon_customer_approval.py | 10 ++--- .../models/yuthon_shift_approval.py | 10 ++--- .../models/yuthon_appointment_approval.py | 10 ++--- .../models/yuthon_department_change.py | 10 ++--- .../models/yuthon_interview_approval.py | 11 +++--- .../models/yuthon_message_login.py | 10 ++--- .../models/yuthon_onboard_approval.py | 10 ++--- .../models/yuthon_prepare_approval.py | 34 ++++++++--------- .../models/yuthon_reassignment_approval.py | 10 ++--- .../models/yuthon_recruitment_approval.py | 10 ++--- .../models/yuthon_regularization_approval.py | 10 ++--- .../models/yuthon_reward_approval.py | 10 ++--- .../models/yuthon_service_approval.py | 10 ++--- .../models/yuthon_transfer_approval.py | 10 ++--- yuthon_issue/__init__.py | 1 + yuthon_issue/__manifest__.py | 1 + yuthon_issue/models/issue_library.py | 29 ++++++++++---- yuthon_issue/security/ir.model.access.csv | 1 + yuthon_issue/views/issue_library_views.xml | 38 +++++++++++++------ yuthon_issue/wizard/__init__.py | 1 + yuthon_issue/wizard/issue_line_add_wizard.py | 23 +++++++++++ yuthon_issue/wizard/issue_line_add_wizard.xml | 22 +++++++++++ .../models/yuthon_offficial_incoming_party.py | 10 ++--- .../models/yuthon_official_incoming_labor.py | 10 ++--- .../models/yuthon_official_incoming_normal.py | 10 ++--- .../wizard/electric_water_wizard.py | 2 +- .../models/property_approval.py | 10 ++--- .../models/property_capacity.py | 10 ++--- .../models/property_evaluate_application.py | 10 ++--- .../models/property_handover.py | 10 ++--- .../models/property_intention_approval.py | 10 ++--- .../models/property_lease_extension.py | 10 ++--- .../models/property_management.py | 10 ++--- .../models/property_meeting_approval.py | 10 ++--- .../models/property_merge_approval.py | 10 ++--- .../models/property_offline_registration.py | 10 ++--- .../models/property_penalty_relief.py | 10 ++--- .../models/property_record.py | 10 ++--- .../models/property_rent_relief.py | 10 ++--- .../models/property_transaction_confirmed.py | 10 ++--- .../models/property_transfer_approval.py | 13 +++---- .../models/yuthon_office_supplies.py | 10 ++--- yuthon_trade/models/trade_reward_approval.py | 10 ++--- .../models/yuthon_business_approval.py | 10 ++--- 51 files changed, 321 insertions(+), 247 deletions(-) create mode 100644 yuthon_issue/wizard/__init__.py create mode 100644 yuthon_issue/wizard/issue_line_add_wizard.py create mode 100644 yuthon_issue/wizard/issue_line_add_wizard.xml diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py index a394008d8..b77673305 100644 --- a/yuthon_hr_attendance/models/card_approval.py +++ b/yuthon_hr_attendance/models/card_approval.py @@ -119,17 +119,15 @@ class CardApprovals(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) - # elif self.related_issues_id: - # raise UserError("已经创建了相关的上会记录,不能取消勾选") diff --git a/yuthon_hr_attendance/models/duty_approval.py b/yuthon_hr_attendance/models/duty_approval.py index 7eef8674b..bb1c69933 100644 --- a/yuthon_hr_attendance/models/duty_approval.py +++ b/yuthon_hr_attendance/models/duty_approval.py @@ -43,14 +43,14 @@ class DutyApprovals(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_attendance/models/go_approval.py b/yuthon_hr_attendance/models/go_approval.py index c89d9d80f..6ef3de2b2 100644 --- a/yuthon_hr_attendance/models/go_approval.py +++ b/yuthon_hr_attendance/models/go_approval.py @@ -70,14 +70,14 @@ class GoApprovals(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index 5129e2701..14181b8b9 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -160,14 +160,14 @@ class OvertimeApprovals(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_attendance/models/remove_holiday_approval.py b/yuthon_hr_attendance/models/remove_holiday_approval.py index 2c63b9258..f9d33b522 100644 --- a/yuthon_hr_attendance/models/remove_holiday_approval.py +++ b/yuthon_hr_attendance/models/remove_holiday_approval.py @@ -36,14 +36,14 @@ class RemoveHolidayApprovals(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_attendance/models/yuthon_abnormal_approval.py b/yuthon_hr_attendance/models/yuthon_abnormal_approval.py index 636b6257c..646758492 100644 --- a/yuthon_hr_attendance/models/yuthon_abnormal_approval.py +++ b/yuthon_hr_attendance/models/yuthon_abnormal_approval.py @@ -32,14 +32,14 @@ class YuthonAbnormalApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) \ No newline at end of file diff --git a/yuthon_hr_attendance/models/yuthon_adjustments_approval.py b/yuthon_hr_attendance/models/yuthon_adjustments_approval.py index 4fb21debe..f98ead08d 100644 --- a/yuthon_hr_attendance/models/yuthon_adjustments_approval.py +++ b/yuthon_hr_attendance/models/yuthon_adjustments_approval.py @@ -34,14 +34,14 @@ class YuthonAdjustmentsApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) \ No newline at end of file diff --git a/yuthon_hr_attendance/models/yuthon_customer_approval.py b/yuthon_hr_attendance/models/yuthon_customer_approval.py index 7faea7653..81e8f77d9 100644 --- a/yuthon_hr_attendance/models/yuthon_customer_approval.py +++ b/yuthon_hr_attendance/models/yuthon_customer_approval.py @@ -33,14 +33,14 @@ class YuthonCustomerApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) \ No newline at end of file diff --git a/yuthon_hr_attendance/models/yuthon_shift_approval.py b/yuthon_hr_attendance/models/yuthon_shift_approval.py index d840608b1..3df2ec381 100644 --- a/yuthon_hr_attendance/models/yuthon_shift_approval.py +++ b/yuthon_hr_attendance/models/yuthon_shift_approval.py @@ -41,14 +41,14 @@ class YuthonShiftApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py b/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py index fca3fe7c4..57db73e21 100644 --- a/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_appointment_approval.py @@ -35,14 +35,14 @@ class YuthonAppointmentApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_department_change.py b/yuthon_hr_employee_approval/models/yuthon_department_change.py index 78f3494b0..905fb2db2 100644 --- a/yuthon_hr_employee_approval/models/yuthon_department_change.py +++ b/yuthon_hr_employee_approval/models/yuthon_department_change.py @@ -36,14 +36,14 @@ class YuthonDepartmentChange(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_interview_approval.py b/yuthon_hr_employee_approval/models/yuthon_interview_approval.py index 5fcaebffc..d4788a9a6 100644 --- a/yuthon_hr_employee_approval/models/yuthon_interview_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_interview_approval.py @@ -72,18 +72,17 @@ class YuthonInterviewApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search([("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) - elif self.related_issues_id: - raise UserError("已经创建了相关的上会记录,不能取消勾选") class InterviewApprovalLine(models.Model): _name = 'interview.approval.line' diff --git a/yuthon_hr_employee_approval/models/yuthon_message_login.py b/yuthon_hr_employee_approval/models/yuthon_message_login.py index cdd0a59ed..e16dfaa54 100644 --- a/yuthon_hr_employee_approval/models/yuthon_message_login.py +++ b/yuthon_hr_employee_approval/models/yuthon_message_login.py @@ -138,14 +138,14 @@ class YuthonMessageLogin(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py index 520885023..196505133 100644 --- a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py @@ -135,14 +135,14 @@ class YuthonOnboardApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py b/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py index c04fb36bb..57f6de316 100644 --- a/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_prepare_approval.py @@ -67,14 +67,14 @@ class YuthonPrepareApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) @@ -120,18 +120,18 @@ class PrepareApprovalLine(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): - self.write({'is_issues': 'Ture'}) - issue_id = self.env['issue.library'].create({'name': self.name}) - self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) - self.env['issue.library.approval.line'].create({ - 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, - 'code': self.code, - 'approval_date': fields.Datetime.now(), - }) + if self.is_issues: + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) + self.related_issues_id = issue_id.id + self.env['issue.library.approval.line'].create({ + 'issue_library_id': issue_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, + 'code': self.code, + 'approval_date': fields.Datetime.now(), + }) class NewPrepareApprovalLine(models.Model): _name = 'new.prepare.approval.line' diff --git a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py index 4c31e1ab3..4a52ad213 100644 --- a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py @@ -55,14 +55,14 @@ class YuthonReassignmentApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py b/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py index 46421b089..bd76d1bac 100644 --- a/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_recruitment_approval.py @@ -33,14 +33,14 @@ class YuthonRecruitmentApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py index cfc801425..87e8a7024 100644 --- a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py @@ -58,14 +58,14 @@ class YuthonRegularizationPrepareApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_reward_approval.py b/yuthon_hr_employee_approval/models/yuthon_reward_approval.py index fdb51221f..d45d1112c 100644 --- a/yuthon_hr_employee_approval/models/yuthon_reward_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_reward_approval.py @@ -34,14 +34,14 @@ class YuthonRewardApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_service_approval.py b/yuthon_hr_employee_approval/models/yuthon_service_approval.py index 2ba7ce6d4..5efac9fc1 100644 --- a/yuthon_hr_employee_approval/models/yuthon_service_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_service_approval.py @@ -38,14 +38,14 @@ class YuthonServiceApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py b/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py index 986639aa5..f3f503701 100644 --- a/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_transfer_approval.py @@ -46,14 +46,14 @@ class YutransferApproval(models.Model): @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: - issue_id = self.env['issue.library'].create({'name': self.name}) + issue_id = self.env['issue.library'].create({'name': self.name, 'is_invisible_workflow': True}) self.related_issues_id = issue_id.id - workflow_record_id = self.env["soong.workflow.record"].search( - [("res_model", "=", self._name), ("res_id", "=", self.id)]) self.env['issue.library.approval.line'].create({ 'issue_library_id': issue_id.id, - 'workflow_record_id': workflow_record_id.id, - 'approval_type': workflow_record_id.workflow_id.id, + 'workflow_name': self.name, + 'approval_type': self.workflow_id.name, + 'res_model': self._name, + 'res_id': self.id, 'code': self.code, 'approval_date': fields.Datetime.now(), }) diff --git a/yuthon_issue/__init__.py b/yuthon_issue/__init__.py index cde864bae..35e7c9600 100644 --- a/yuthon_issue/__init__.py +++ b/yuthon_issue/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- from . import models +from . import wizard diff --git a/yuthon_issue/__manifest__.py b/yuthon_issue/__manifest__.py index 82cfd22ab..24515ccb8 100644 --- a/yuthon_issue/__manifest__.py +++ b/yuthon_issue/__manifest__.py @@ -23,6 +23,7 @@ 'views/issue_approval_decision_type_views.xml', 'views/issue_meeting_minutes_views.xml', 'views/issue_library_type_views.xml', + 'wizard/issue_line_add_wizard.xml', 'report/meeting_minutes_report.xml', 'views/menus.xml', ], diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index ebdd85f93..78410dc5b 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -14,6 +14,7 @@ class IssueLibrary(models.Model): depart_opinions = fields.Text(string='部门意见') topic_content = fields.Text(string='议题详细描述') will_based = fields.Text(string='上会依据') + is_invisible_workflow = fields.Boolean(string="流程隐藏的判断") code = fields.Char(string='编号', required=True, copy=False, default=lambda self: self.env['ir.sequence'].next_by_code('issue_library_code')) issue_state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('on_approval', '已审批'), @@ -56,6 +57,18 @@ class IssueLibrary(models.Model): member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department') + def add_workflow(self): + return { + 'name': '流程添加弹窗', + 'type': 'ir.actions.act_window', + 'view_mode': 'form', + 'res_model': 'issue.line.add.wizard', + "target": "new", + 'context': { + 'default_issue_id': self.id, + }, + } + @api.depends_context('uid', 'company') @api.depends('department_id') def _compute_part_of_department(self): @@ -125,14 +138,14 @@ class IssueLibrary(models.Model): 'is_note': issue_record.is_note, 'employee_id': issue_record.employee_id.id })) - if len(specifics_list)>1: + if len(specifics_list) > 1: name = ','.join(specifics_list) else: name = self.name + issue_approval_id = self.env['issue.approval'].create({ 'issue_approval_ids': issue_decision_lines, 'name': name, - 'employee_id': self.employee_id.id, }) self.issue_approval_id = issue_approval_id return { @@ -322,17 +335,19 @@ class IssueLibraryApprovalLine(models.Model): _description = '关联流程明细' issue_library_id = fields.Many2one('issue.library', string="关联议题") - workflow_record_id = fields.Many2one('soong.workflow.record', string="标题") + workflow_name = fields.Char(string="标题") code = fields.Char(string="流程编号") - approval_type = fields.Many2one(related="workflow_record_id.workflow_id", string="类型") + approval_type = fields.Char(string="类型") approval_date = fields.Datetime(string="创建日期") + res_model = fields.Char(string="模型") + res_id = fields.Char(string="id") def open_record(self): return { "type": "ir.actions.act_window", - "res_model": self.workflow_record_id.res_model, - "res_id": self.workflow_record_id.res_id, - "name": self.workflow_record_id.name, + "res_model": self.res_model, + "res_id": int(self.res_id), + "name": self.workflow_name, "view_mode": "form", } diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv index 3dcbe85e2..07340576f 100644 --- a/yuthon_issue/security/ir.model.access.csv +++ b/yuthon_issue/security/ir.model.access.csv @@ -11,3 +11,4 @@ access_issue_meeting_minutes,issue_meeting_minutes,model_issue_meeting_minutes,b access_issue_meeting_line,issue_meeting_line,model_issue_meeting_line,base.group_user,1,1,1,1 access_issue_library_room_line,issue_library_room_line,model_issue_library_room_line,base.group_user,1,1,1,1 access_issue_library_type,issue_library_type,model_issue_library_type,base.group_user,1,1,1,1 +access_issue_line_add_wizard,issue_line_add_wizard,model_issue_line_add_wizard,base.group_user,1,1,1,1 diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 88222ea3d..ea21a812f 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -39,7 +39,7 @@
- @@ -63,14 +63,16 @@ - + + + + + - - @@ -112,11 +114,14 @@ +