diff --git a/soong_workflow/models/soong_workflow_log.py b/soong_workflow/models/soong_workflow_log.py index ff00056c3..2f20a827f 100644 --- a/soong_workflow/models/soong_workflow_log.py +++ b/soong_workflow/models/soong_workflow_log.py @@ -26,6 +26,7 @@ class SoongWorkflowLog(models.Model): approval_state = fields.Selection([('0', '待办'), ('1', '办理中'), ('2', '已办结'), ('3', '结束')], string='状态', default='0') comment = fields.Char(string="意见") date_create = fields.Datetime(string="时间", default=lambda self: fields.Datetime.now()) + document_ids = fields.Many2many('ir.attachment', string="附件") active = fields.Boolean(string="归档", default=True) @api.depends("workflow_id", "node_id", "node_btn_id") @@ -47,6 +48,13 @@ class SoongWorkflowLog(models.Model): logs_obj = self.sudo().search([("res_id", "=", record.res_id), ("model", "=", record.model), ("workflow_id", "=", record.workflow_id.id), ("date_create", "<", record.date_create)]) record.sequence = len(logs_obj) + 1 + def open_record(self): + return { + "type": "ir.actions.act_window", + "res_model": 'soong.workflow.record', + "view_mode": "tree", + } + class SoongWorkflowLog2(models.Model): _name = "soong.workflow.log2" @@ -62,8 +70,10 @@ class SoongWorkflowLog2(models.Model): done_by = fields.Many2one(comodel_name="res.users", string="审批人") name = fields.Char(string="节点名称", compute="_compute_name", store=True) approval_state = fields.Selection([('0', '未读'), ('1', '已读')], string='状态', default='0') + document_ids = fields.Many2many('ir.attachment', string="附件") lase_click_date = fields.Datetime(string="操作时间") + @api.depends("workflow_id", "node_id", "node_btn_id") def _compute_name(self): for rec in self: diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 58d250d28..fe07766fa 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -80,7 +80,6 @@ class SoongWorkflowMixin(models.AbstractModel): string="Workflow Ref.", compute="_compute_workflow_id", ) - approval_users_ids = fields.One2many("soong.approval.users", "res_id", domain=lambda self: [('res_model', '=', self._name)], auto_join=True, string="审批明细") @@ -123,6 +122,7 @@ class SoongWorkflowMixin(models.AbstractModel): domain=lambda self: [("model", "=", self._name)], auto_join=True) log_ids2 = fields.One2many(comodel_name="soong.workflow.log2", inverse_name="res_id", string=" ", domain=lambda self: [("model", "=", self._name)], auto_join=True) + soong_record_ids = fields.One2many(comodel_name="soong.workflow.line", inverse_name="res_id", string=" ",) @api.model_create_multi def create(self, vals_list): @@ -965,3 +965,26 @@ class SoongWorkflowMixin(models.AbstractModel): if not isinstance(msg, str): msg = str(msg) _logger.info(msg) + +class SoongWorkflowLine(models.Model): + _name = "soong.workflow.line" + + + model = fields.Char(string="Related Document Model", index=True) + res_id = fields.Integer(string="Related Document ID", index=True) + workflow_record_id = fields.Many2one("soong.workflow.record", string="名称") + code = fields.Char(related="workflow_record_id.code", string="流水号") + approvals_group_id = fields.Many2one(related="workflow_record_id.approvals_group_id", string="审批组") + create_uid = fields.Many2one(related="workflow_record_id.create_uid", string="创建人") + write_date2 = fields.Datetime(related="workflow_record_id.write_date2", string="最后更新日期") + + 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, + "view_mode": "form", + } + + diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 70ea05046..d17e09e69 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -75,6 +75,15 @@ class SoongWorkflowRecord(models.Model): return [('id', operator, user_employee.id)] return (['!'] if operator == '!=' else []) + [('department_id', '=', user_employee.department_id.id)] + 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", + } + # def get_department_employees(self, department_id): # valid_user_ids = set() # employee_ids = self.sudo().env['hr.employee'].search([('department_id', '=', department_id.id)]) @@ -186,12 +195,3 @@ class SoongWorkflowRecord(models.Model): for record in self: record.active = False - 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", - } - diff --git a/soong_workflow/security/ir.model.access.csv b/soong_workflow/security/ir.model.access.csv index b34e83b99..3a686cb45 100644 --- a/soong_workflow/security/ir.model.access.csv +++ b/soong_workflow/security/ir.model.access.csv @@ -39,4 +39,5 @@ access_soong_workflow_apostille_wizard_user,soong_workflow_apostille_wizard,mode access_soong_workflow_apostille_ok_wizard_user,soong_workflow_apostille_ok_wizard,model_soong_workflow_apostille_ok_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 access_soong_workflow_record_delete_wizard,soong_workflow_record_delete_wizard,model_soong_workflow_record_delete_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 access_role_group_wizard,role_group_wizard,model_role_group_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/soong_workflow/templates/soong_workflow_templates.xml b/soong_workflow/templates/soong_workflow_templates.xml index 0b8bac7c8..9bd6b4a3e 100644 --- a/soong_workflow/templates/soong_workflow_templates.xml +++ b/soong_workflow/templates/soong_workflow_templates.xml @@ -5,13 +5,14 @@ - + + @@ -25,6 +26,18 @@ + + + + + + + + +