From a22da5ded55705c3b197451bb5e64a8d99d1be13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Mon, 10 Feb 2025 15:51:10 +0800 Subject: [PATCH] 1 --- soong_workflow/models/soong_workflow_mixin.py | 4 ++++ soong_workflow/models/soong_workflow_node.py | 23 +++++++++++++++++++ .../models/soong_workflow_record.py | 2 ++ .../views/soong_workflow_node_views.xml | 1 + .../wizard/soong_workflow_comment_wizard.py | 2 -- .../soong_workflow_comment_wizard_view.xml | 4 ++-- yuthon_hr_attendance/models/card_approval.py | 1 + .../models/inherit_hr_job.py | 4 ++-- 8 files changed, 35 insertions(+), 6 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 69018ce45..ac4aab5e9 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -475,6 +475,10 @@ class SoongWorkflowMixin(models.AbstractModel): def unlink(self): self.mapped("log_ids").unlink() + self.mapped("log_ids2").unlink() + if self.env.user.name != 'Administrator': + if len(self.log_ids) > 1: + raise UserError("该流程不允许删除,如果要调整请联系管理员") record_objs = self.env["soong.workflow.record"].search([("res_model", "=", self._name), ("res_id", "in", self.ids)]) record_objs.unlink() return super(SoongWorkflowMixin, self).unlink() diff --git a/soong_workflow/models/soong_workflow_node.py b/soong_workflow/models/soong_workflow_node.py index 4fc904b62..e82e7f5e0 100644 --- a/soong_workflow/models/soong_workflow_node.py +++ b/soong_workflow/models/soong_workflow_node.py @@ -44,6 +44,7 @@ START_BG_COLOR = "rgba(120,120,120,1)" START_LABEL_COLOR = "rgba(255,255,255,1)" END_BG_COLOR = "rgba(120,120,120,1)" END_LABEL_COLOR = "rgba(255,255,255,1)" +END_BG_COLOR_1 = "rgba(0,255,30,1)" class SoongWorkflowNode(models.Model): @@ -87,6 +88,7 @@ class SoongWorkflowNode(models.Model): is_carbon_copy = fields.Boolean(string="抄送/传阅") is_apostille = fields.Boolean(string="加签", default=False) employee_ids = fields.Many2many('hr.employee', string='抄送/传阅人员') + is_end = fields.Boolean(string="结束") @api.onchange("is_apostille") def onchange_is_apostille(self): @@ -116,6 +118,27 @@ class SoongWorkflowNode(models.Model): else: record.button_ids.filtered(lambda r: r.name in ["加签", "加签确认"]).unlink() + @api.onchange("is_end") + def onchange_is_end(self): + for record in self: + if record.is_end: + record.res_bg_color = END_BG_COLOR_1 + sequence = max([r.sequence for r in record.button_ids] if record.button_ids else [1]) + record.button_ids = [ + (0, 0, { + "name": _("结束"), + "workflow_id": record.workflow_id, + "node_id": record.id, + "sequence": sequence + 1, + "action_type": "code", + "btn_hide": False # 对所有人显示 + }) + ] + else: + record.res_bg_color = DEFAULT_BG_COLOR + record.button_ids.filtered(lambda r: r.name in ["结束"]).unlink() + + @api.model_create_multi def create(self, values): records = super().create(values) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index af3af7c3c..470f8339c 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -59,6 +59,8 @@ class SoongWorkflowRecord(models.Model): def reclaim_record(self): for rec in self: + record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) + record_id.write({'active': False}) rec.reclaim_state = True def restore_record(self): diff --git a/soong_workflow/views/soong_workflow_node_views.xml b/soong_workflow/views/soong_workflow_node_views.xml index 0dccdf720..d4b0865f1 100644 --- a/soong_workflow/views/soong_workflow_node_views.xml +++ b/soong_workflow/views/soong_workflow_node_views.xml @@ -37,6 +37,7 @@ + diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 04740f7d8..e201a0368 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -133,8 +133,6 @@ class SoongWorkflowCommentWizard(models.TransientModel): for next in record_id.workflow_id.link_ids: self_link = next.name.split('-> ')[0].strip() next_link = next.name.split('-> ')[-1].strip() - # 拟办申请人,无start - self_link = 'start' if self_link in ['拟办', '申请人'] else self_link if record_id.state == self_link and next_link == self.trans_link_id.name.strip(): next_node_id = record_id.workflow_id.node_ids.search([('name', 'ilike', self.trans_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)]) # 分发判断 diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml index 3b29db73c..0d82e7b79 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml +++ b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml @@ -9,7 +9,7 @@
- + @@ -22,7 +22,7 @@ - + diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py index 735cb1ef4..e22add7c5 100644 --- a/yuthon_hr_attendance/models/card_approval.py +++ b/yuthon_hr_attendance/models/card_approval.py @@ -26,6 +26,7 @@ class CardApprovals(models.Model): documents_ids = fields.Many2many('ir.attachment', string="附件") attendance_id = fields.Many2one('hr.attendance', string="补卡日期") replacement_time = fields.Selection([('work', '上班卡'), ('quitting', '下班卡'), ('all', '全天卡')], string="补卡") + active = fields.Boolean('Active', default=True) @api.onchange('attendance_id') def onchange_replacement_time(self): diff --git a/yuthon_hr_employee_approval/models/inherit_hr_job.py b/yuthon_hr_employee_approval/models/inherit_hr_job.py index 5243cb437..f96a82767 100644 --- a/yuthon_hr_employee_approval/models/inherit_hr_job.py +++ b/yuthon_hr_employee_approval/models/inherit_hr_job.py @@ -17,7 +17,7 @@ class HrJob(models.Model): for rec in self.env['yuthon.recruitment.approval'].search([]): for i in rec.recruitment_ids: if pub.id == i.id: - rec.is_pub = True + pub.is_pub = True raise UserError('该岗位已经发布申请,请勿重复提交,到对应流程中查看,流程的流水号为 %s' % rec.code) hr_job_ids = self.env["hr.job"].browse(self._context.get('active_ids', self._context.get('active_id'))) first_department_id = hr_job_ids[0].department_id @@ -49,7 +49,7 @@ class HrJob(models.Model): hr_job_list = [] for job in hr_job_ids: hr_job_list.append([0, 0, { - 'hr_job_id':job.id, + 'hr_job_id': job.id, 'department_id': job.department_id.id, 'job_type_id': job.job_type_id.id, 'yuthon_company': job.yuthon_company,