diff --git a/soong_workflow/__manifest__.py b/soong_workflow/__manifest__.py index c1f380cbc..6da57042f 100644 --- a/soong_workflow/__manifest__.py +++ b/soong_workflow/__manifest__.py @@ -35,6 +35,7 @@ "wizard/soong_workflow_apostille_wizard_view.xml", "wizard/workflow_line_wizard_viwes.xml", "wizard/role_group_wizard_views.xml", + "wizard/soong_workflow_log2_wizard_views.xml", "wizard/soong_workflow_apostille_ok_wizard_view.xml", "wizard/soong_workflow_record_revoke_wizard_view.xml", "wizard/soong_workflow_record_delete_wizard_view.xml", diff --git a/soong_workflow/models/soong_workflow_log.py b/soong_workflow/models/soong_workflow_log.py index da6211b23..a424be823 100644 --- a/soong_workflow/models/soong_workflow_log.py +++ b/soong_workflow/models/soong_workflow_log.py @@ -29,7 +29,6 @@ class SoongWorkflowLog(models.Model): date_create = fields.Datetime(string="时间", default=lambda self: fields.Datetime.now()) document_ids = fields.Many2many('ir.attachment', string="附件") active = fields.Boolean(string="归档", default=True) - msg_id = fields.Char() display_field = fields.Char(string="显示字段", compute="_compute_display_field") diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 28fb85fd9..be4cd9ddd 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -23,6 +23,14 @@ class SoongWorkflowRecord(models.Model): ] return self.search_count(domain) + def get_is_logs2_count(self): + domain = [ + ('is_log2', '=', True), + ('users_ids', 'in', self.env.user.id), + ('reclaim_state', '=', False) + ] + return self.search_count(domain) + def read(self, fields=None, load='_classic_read'): for re in self: res_name = self.env[re.res_model].search([('id', '=', re.res_id)]).name @@ -37,12 +45,20 @@ class SoongWorkflowRecord(models.Model): res_model = fields.Char(string="Res Model", required=True) res_id = fields.Integer(string="Res ID", required=True) users_ids = fields.Many2many('res.users', string="用户") - employee_ids = fields.Many2many('hr.employee', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])]) text = fields.Text(string="正文") documents_ids = fields.Many2many('ir.attachment', string="附件") workflow_id = fields.Many2one(comodel_name="soong.workflow", string="类型", ondelete="restrict") node_id = fields.Many2one(comodel_name="soong.workflow.node", string="当前节点") company_id = fields.Many2one(related="create_uid.company_id", string="公司") + is_log2 = fields.Boolean(string="是否是抄送流程") + employee_ids = fields.Many2many('hr.employee', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])]) + employee2_ids = fields.Many2many( + 'hr.employee', + relation='soong_workflow_record_employee2_rel', + column1='record_id', + column2='employee2_id', + string='抄送/传阅人员' + ) approve_state = fields.Selection([("start", "草稿"), ("pending", "审批中"), ("end", "结束")], default="start", string="状态") reclaim_state = fields.Boolean(string="回收") meal = fields.Selection([('yes', '是'), ('no', '否')], string="误餐费", default=None) @@ -86,6 +102,28 @@ class SoongWorkflowRecord(models.Model): else: record.is_unlink = False + def greater_record(self): + self.ensure_one() + target_record = self.env[self.res_model].browse(self.res_id) + log2_line_list = [] + for log2 in target_record.log_ids2: + log2_line_list.append((0, 0, { + 'employee_id': log2.done_by.employee_ids.id, + 'log2_time': log2.lase_click_date, + 'commit': log2.commit, + 'approval_state': log2.approval_state, + })) + return { + "type": "ir.actions.act_window", + "name": "更多详情", + "res_model": "soong.workflow.log2.wizard", + "view_mode": "form", + "target": "new", + "context": { + "default_log2_line_ids": log2_line_list, + } + } + def _get_valid_employee_for_user(self): user = self.env.user employee = user.employee_ids diff --git a/soong_workflow/security/ir.model.access.csv b/soong_workflow/security/ir.model.access.csv index 47b3094d0..36b49d63c 100644 --- a/soong_workflow/security/ir.model.access.csv +++ b/soong_workflow/security/ir.model.access.csv @@ -52,4 +52,6 @@ access_project_project_line,project_project_line,model_project_project_line,soon access_soong_bounced_wizard,soong_bounced_wizard,model_soong_bounced_wizard,base.group_user,1,1,1,1 access_workflow_line_wizard,workflow_line_wizard,model_workflow_line_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 -access_change_opinions_wizard,change_opinions_wizard,model_change_opinions_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 \ No newline at end of file +access_change_opinions_wizard,change_opinions_wizard,model_change_opinions_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 +access_soong_workflow_log2_wizard,soong_workflow_log2_wizard,model_soong_workflow_log2_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 +access_soong_workflow_log2_line,soong_workflow_log2_line,model_soong_workflow_log2_line,soong_workflow.group_soong_workflow_user,1,1,1,1 \ No newline at end of file diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 0b1db243a..b8aa826a7 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -184,6 +184,27 @@ + + + soong.workflow.log2.record.tree + soong.workflow.record + + + + + + + + + + + +