# -*- coding: utf-8 -*- from odoo import api, fields, models from datetime import datetime, timedelta, date class IssueClassApproval(models.Model): _name = 'issue.class.approval' _description = '班子议题审批' _inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin'] name = fields.Char(string='标题', required=True) code = fields.Char(string='编号', required=True, copy=False, default=lambda self: self.env['ir.sequence'].next_by_code('issue_class_approval_code')) urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度', default='normal') users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id) department_id = fields.Many2one(related='users_id.employee_ids.department_id', string="部门") company_id = fields.Many2one(related='users_id.employee_ids.company_id', string="公司") work_end = fields.Boolean(string="结束") line_ids = fields.One2many('issue.class.approval.line', 'class_approval_id', string="审批流程") def _get_default_name_title(self): return self._description if self._description else self._name name_title = fields.Char(default=_get_default_name_title) self_users_ids = fields.Many2many('res.users', string="当前经办人",default=lambda self: [(6, 0, [self.env.user.id])]) def end_approval(self): for record in self: if record.line_ids: for line in record.line_ids: line.issue_id.issue_state = False line.issue_id.issue_state_class = 'will' existing_approval = self.env['issue.library.approval.line'].search([ ('issue_library_id', '=', line.issue_id.id), ('code', '=', record.code), ], limit=1) if not existing_approval: self.env['issue.library.approval.line'].create({ 'issue_library_id': line.issue_id.id, 'code': record.code, 'approval_date': fields.Datetime.now() + timedelta(hours=8), }) class IssueClassApprovalLine(models.Model): _name = 'issue.class.approval.line' _description = '议题审批行' class_approval_id = fields.Many2one('issue.class.approval', string="关联议题审批") issue_id = fields.Many2one('issue.library', string="议题") name = fields.Char(string='议题名称') will_based = fields.Text(string='上会依据') department_id = fields.Many2one('hr.department', string="部门") def open_record(self): form_id = self.env.ref('yuthon_issue.view_issue_library_form').id return { 'type': 'ir.actions.act_window', 'name': '议题详情', 'res_model': 'issue.library', 'view_mode': 'form', 'views': [(form_id, 'form')], 'res_id': self.issue_id.id, }