diff --git a/yuthon_issue/models/inherit_hr_employee.py b/yuthon_issue/models/inherit_hr_employee.py index dd7441d9f..67e95c511 100644 --- a/yuthon_issue/models/inherit_hr_employee.py +++ b/yuthon_issue/models/inherit_hr_employee.py @@ -14,6 +14,13 @@ class YuthonHrEmployee(models.Model): '班子会议题': 'group_team_topic', '董事会议题': 'group_board_topic', '议题管理员': 'group_topic_admin', + '物管议题管理员':'group_property_admin', + '物管党支委议题':'property_group_party_topic', + '物管班子会议题':'property_group_team_topic', + '粮储党支委议题':'group_grain_party_topic', + '粮储班子会议题':'group_grain_team_topic', + '粮储议题管理员':'group_grain_admin', + } old_users_ids = self.user_role_ids for employee in self: diff --git a/yuthon_issue/models/issue_approval.py b/yuthon_issue/models/issue_approval.py index 99cb7096c..08c790aeb 100644 --- a/yuthon_issue/models/issue_approval.py +++ b/yuthon_issue/models/issue_approval.py @@ -11,15 +11,15 @@ class IssueApproval(models.Model): 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_approval_code')) + create_time = fields.Date(string='创建日期', default=lambda self: fields.Date.today()) + employee_id = fields.Many2one('hr.employee', string="经办人",default=lambda self: self.env.user.employee_id) + department_id = fields.Many2one(related='employee_id.department_id', string="部门") yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('tctj', '天投城建'), - ('thtjbb', '天河投资本部')], string="所属公司",required=True) - - department_id = fields.Many2one('hr.department', string="部门") - create_time = fields.Date(string='创建日期', default=lambda self: fields.Date.today()) - user_id = fields.Many2one('res.users', string="经办人", default=lambda self: self.env.user) + ('thtjbb', '天河投资本部')], string="所属公司", + related='employee_id.yuthon_company') meeting_details = fields.Char(string="会议详情") - job_id = fields.Many2one('hr.job', string="岗位") + job_id = fields.Many2one('employee_id.job_id', string="岗位") is_attend = fields.Boolean(string="是否上会", default=True) issue_text = fields.Html(string="正文") notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件') @@ -62,23 +62,14 @@ class IssueApproval(models.Model): def bottom_meeting_minutes(self): pass - @api.onchange('issue_approval_ids') - def onchange_name(self): - specifics_list = [] - if self.issue_approval_ids: - for issue in self.issue_approval_ids: - if issue.issue_library_id.name: - specifics_list.append(issue.issue_library_id.name) - self.name = ';'.join(specifics_list) if specifics_list else '' - class IssueApprovalLine(models.Model): _name = 'issue.approval.line' _description = '关联议题明细' issue_approval_id = fields.Many2one('issue.approval', string='议题审批') - issue_library_id = fields.Many2one('issue.library',string='议题事项') + employee_id = fields.Many2one('hr.employee', string='创建人') approval_decision_sequence = fields.Char(string='决策清单') is_party = fields.Boolean(string="党之委会", default=False) is_class = fields.Boolean(string="班子会", default=False) @@ -86,8 +77,4 @@ class IssueApprovalLine(models.Model): is_note = fields.Boolean(string="上级单位", default=False) -class IssueApprovalRoomLine(models.Model): - _name = 'issue.approval.room.line' - - diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index e14bcdfa6..3153282f9 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -12,7 +12,7 @@ class IssueLibrary(models.Model): name = fields.Char(string='议题事项') code = fields.Char(string='编号', required=True, copy=False, default=lambda self: self.env['ir.sequence'].next_by_code('issue_library_code')) - state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('will', '待上会'), ('on_meet', '已上会'), ('cancel', '已取消')], + state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('will', '待上会'), ('on_meet', '已上会'), ('cancel', '已取消'),('on_approval','已审批')], default='draft', string="议题状态") is_party = fields.Boolean(string="党之委会", default=False, compute='_compute_issue_library_line_ids') is_class = fields.Boolean(string="班子会", default=False, compute='_compute_issue_library_line_ids') @@ -36,7 +36,7 @@ class IssueLibrary(models.Model): yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('tctj', '天投城建')], string="所属公司", related='employee_id.yuthon_company') users_role_ids = fields.Many2many('soong.user.role', string='角色范围', related='employee_id.user_role_ids') - + approval_name = fields.Char(string="审批标题") meeting_place = fields.Char(string="会议地点") meeting_name = fields.Char(string="会议名称") @api.onchange('issue_library_line_ids') @@ -55,9 +55,11 @@ class IssueLibrary(models.Model): issue_active_ids = self.env["issue.library"].browse(self._context.get('active_ids', self._context.get('active_id'))) form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id issue_decision_lines = [] + specifics_list = [] if not issue_active_ids: issue_active_ids = self for issue_record in issue_active_ids: + specifics_list.append(issue_record.name) issue_record.write({"state": "approval"}) issue_decision_lines.append((0, 0, { 'issue_library_id': issue_record.id, @@ -65,25 +67,33 @@ class IssueLibrary(models.Model): 'is_party':issue_record.is_party, 'is_class': issue_record.is_class, 'is_boss': issue_record.is_boss, - 'is_note': issue_record.is_note + 'is_note': issue_record.is_note, + 'employee_id':issue_record.employee_id.id })) + issue_approval_id = self.env['issue.approval'].create({ + 'issue_approval_ids': issue_decision_lines, + 'name': ';'.join(specifics_list), + 'employee_id': self.employee_id.id, + }) + self.issue_approval_id = issue_approval_id return { "type": "ir.actions.act_window", "name": "批量提交", "res_model": "issue.approval", "views": [[form_id, "form"]], "context": { - "default_issue_approval_ids": issue_decision_lines, + "id": issue_approval_id.id, } } + def issue_cancel(self): self.write({"state": "cancel"}) def all_meeting_issue(self): for meet in self: - if meet.state == 'on_meet': - raise UserError('不可重复上会') + if meet.state in 'on_meet' or meet.state != 'on_approval': + raise UserError('当前状态不可上会') meet.write({"state": "on_meet"}) issue_active_ids = self.env["issue.library"].browse( self._context.get('active_ids', self._context.get('active_id'))) @@ -98,7 +108,20 @@ class IssueLibrary(models.Model): 'default_room_booking_library_ids': [(6, 0, issue_active_ids.ids)], } } - + def approval_details(self): + for record in self: + if record.state in ['cancel','draft']: + raise UserError('当前状态不可查看审批详情') + self.ensure_one() + approval_id = self.issue_approval_id.id + form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id + return{ + "type": "ir.actions.act_window", + "name": "审批详情", + "res_model": "issue.approval", + "views": [[form_id, "form"]], + "res_id": approval_id + } @api.depends('issue_library_line_ids') def _compute_issue_library_line_ids(self): for line in self: @@ -124,6 +147,7 @@ class IssueLibraryLine(models.Model): team_meet = fields.Selection(related='issue_approval_decision_id.team_meet', string='经营班子会') board_meet = fields.Selection(related='issue_approval_decision_id.board_meet', string='董事会') district_bureau = fields.Selection(related='issue_approval_decision_id.district_bureau', string='上级单位') + ordinal = fields.Char(related='issue_approval_decision_id.sequence',string='序号') class IssueLibraryApprovalLine(models.Model): diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv index e445b2d09..5d1cf9a60 100644 --- a/yuthon_issue/security/ir.model.access.csv +++ b/yuthon_issue/security/ir.model.access.csv @@ -13,3 +13,10 @@ access_issue_library,issue_library,model_issue_library,group_topic_admin,1,1,1,1 access_issue_library,issue_library,model_issue_library,group_party_topic,1,1,1,1 access_issue_library,issue_library,model_issue_library,group_team_topic,1,1,1,1 access_issue_library,issue_library,model_issue_library,group_board_topic,1,1,1,1 + +access_issue_library,issue_library,model_issue_library,group_property_admin,1,1,1,1 +access_issue_library,issue_library,model_issue_library,property_group_party_topic,1,1,1,1 +access_issue_library,issue_library,model_issue_library,property_group_team_topic,1,1,1,1 +access_issue_library,issue_library,model_issue_library,group_grain_admin,1,1,1,1 +access_issue_library,issue_library,model_issue_library,group_grain_party_topic,1,1,1,1 +access_issue_library,issue_library,model_issue_library,group_grain_team_topic,1,1,1,1 diff --git a/yuthon_issue/security/issue_security_group.xml b/yuthon_issue/security/issue_security_group.xml index 558b739cf..b1b8442cd 100644 --- a/yuthon_issue/security/issue_security_group.xml +++ b/yuthon_issue/security/issue_security_group.xml @@ -22,11 +22,49 @@ - + + + 物管党支委议题 + + + + + 物管班子会议题 + + + + + 物管议题管理员 + + + + + + + 粮储党支委议题 + + + + + 粮储班子会议题 + + + + + 粮储议题管理员 + + + + + + + 议题管理员 - + \ No newline at end of file diff --git a/yuthon_issue/views/issue_approval_views.xml b/yuthon_issue/views/issue_approval_views.xml index a28886588..5a4c1eac6 100644 --- a/yuthon_issue/views/issue_approval_views.xml +++ b/yuthon_issue/views/issue_approval_views.xml @@ -25,7 +25,7 @@ - + @@ -56,6 +56,7 @@ + diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 7e4e015b0..9b81493d0 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -19,6 +19,7 @@