From 1462147a91f5bf5db5853b3e7474ac5ada928eea Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Wed, 30 Apr 2025 20:08:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_issue/__manifest__.py | 1 + yuthon_issue/models/__init__.py | 1 + .../models/issue_approval_decision.py | 19 +++----- yuthon_issue/models/issue_library.py | 48 +++++++++++-------- yuthon_issue/models/issue_library_type.py | 13 +++++ yuthon_issue/security/ir.model.access.csv | 1 + .../views/issue_approval_decision_views.xml | 24 +++++----- .../views/issue_library_type_views.xml | 17 +++++++ yuthon_issue/views/issue_library_views.xml | 36 +++++++------- yuthon_issue/views/menus.xml | 8 +++- yuthon_work_brand/views/hr_menus.xml | 2 +- 11 files changed, 104 insertions(+), 66 deletions(-) create mode 100644 yuthon_issue/models/issue_library_type.py create mode 100644 yuthon_issue/views/issue_library_type_views.xml diff --git a/yuthon_issue/__manifest__.py b/yuthon_issue/__manifest__.py index ac7f61833..82cfd22ab 100644 --- a/yuthon_issue/__manifest__.py +++ b/yuthon_issue/__manifest__.py @@ -22,6 +22,7 @@ 'views/issue_approval_decision_views.xml', 'views/issue_approval_decision_type_views.xml', 'views/issue_meeting_minutes_views.xml', + 'views/issue_library_type_views.xml', 'report/meeting_minutes_report.xml', 'views/menus.xml', ], diff --git a/yuthon_issue/models/__init__.py b/yuthon_issue/models/__init__.py index 78f7d3ec4..13aa50667 100644 --- a/yuthon_issue/models/__init__.py +++ b/yuthon_issue/models/__init__.py @@ -7,4 +7,5 @@ from . import issue_approval_decision_type from . import inherit_room_booking from . import issue_approval from . import issue_meeting_minutes +from . import issue_library_type diff --git a/yuthon_issue/models/issue_approval_decision.py b/yuthon_issue/models/issue_approval_decision.py index 1498efff6..5d6654454 100644 --- a/yuthon_issue/models/issue_approval_decision.py +++ b/yuthon_issue/models/issue_approval_decision.py @@ -11,12 +11,12 @@ class IssueApprovalDecision(models.Model): decision_type_on_id = fields.Many2one('issue.approval.decision.type', string='事项类别上级') sequence = fields.Char(string='序号', store=True) specifics = fields.Text(string='具体事项') - council = fields.Selection([('approval', '审'), ('decide', '决')], string='党总委员会') - team_meet = fields.Selection([('approval', '审'), ('decide', '决')], string='经营班子会') - board_meet = fields.Selection([('approval', '审'), ('decide', '决'), ('commission', '授权投决会')], string='董事会', compute='_compute_board_meet', readonly=False) - district_state = fields.Selection([('approval', '审'), ('decide', '决')], string="区国资局",) - district_government = fields.Selection([('approval', '审'), ('decide', '决')], string="区政府",) - district_party= fields.Selection([('approval', '审'), ('decide', '决')], string="区委组织部") + council_id = fields.Many2one('issue.library.type', string='党总委员会') + team_meet_id = fields.Many2one('issue.library.type', string='经营班子会') + board_meet_id = fields.Many2one('issue.library.type', string='董事会') + district_state_id = fields.Many2one('issue.library.type', string="区国资局",) + district_government_id = fields.Many2one('issue.library.type', string="区政府",) + district_party_id= fields.Many2one('issue.library.type', string="区委组织部") department_id = fields.Many2one('hr.department', string="部门") management_matters = fields.Char(string='管理事项') company_id = fields.Many2one('res.company', string="公司", default=lambda self: self._get_default_company()) @@ -42,13 +42,6 @@ class IssueApprovalDecision(models.Model): if seq.decision_type_id.decision_type_id: seq.decision_type_on_id = seq.decision_type_id.decision_type_id - @api.depends('team_meet') - def _compute_board_meet(self): - for record in self: - if record.team_meet: - record.board_meet = 'approval' - - def update_issue(self): company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1) issue_active_ids = self.env["issue.approval.decision"].browse( diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index 92db9f96b..380a5b75b 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -216,24 +216,30 @@ class IssueLibrary(models.Model): @api.depends('issue_library_line_ids') def _compute_issue_library_line_ids(self): - for line in self: - line.is_party = bool(line.issue_library_line_ids.filtered('council')) - line.is_class = bool(line.issue_library_line_ids.filtered('team_meet')) - line.is_boss = bool(line.issue_library_line_ids.filtered('board_meet')) - line.is_district_state = bool(line.issue_library_line_ids.filtered('district_state')) - line.is_district_government = bool(line.issue_library_line_ids.filtered('district_government')) - line.is_district_party = bool(line.issue_library_line_ids.filtered('district_party')) - line.is_note = any([ - bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_state)), - bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_government)), - bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_party)) + for record in self: + # 判断issue_library_line_ids记录集中是否存在关联了issue.library.type的记录 + record.is_party = bool(record.issue_library_line_ids.filtered(lambda rec: rec.council_id)) + record.is_class = bool(record.issue_library_line_ids.filtered(lambda rec: rec.team_meet_id)) + record.is_boss = bool(record.issue_library_line_ids.filtered(lambda rec: rec.board_meet_id)) + record.is_district_state = bool(record.issue_library_line_ids.filtered(lambda rec: rec.district_state_id)) + record.is_district_government = bool( + record.issue_library_line_ids.filtered(lambda rec: rec.district_government_id)) + record.is_district_party = bool(record.issue_library_line_ids.filtered(lambda rec: rec.district_party_id)) + record.is_note = any([ + bool(record.issue_library_line_ids.filtered( + lambda rec: rec.issue_approval_decision_id and rec.issue_approval_decision_id.district_state_id)), + bool(record.issue_library_line_ids.filtered( + lambda rec: rec.issue_approval_decision_id and rec.issue_approval_decision_id.district_government_id)), + bool(record.issue_library_line_ids.filtered( + lambda rec: rec.issue_approval_decision_id and rec.issue_approval_decision_id.district_party_id)) ]) + def unlink(self): - for i in self: - if i.issue_state == 'on_meet': - raise UserError('议题已上会,不能删除') - return super().unlink() + for i in self: + if i.issue_state == 'on_meet': + raise UserError('议题已上会,不能删除') + return super().unlink() @api.depends('name') def _compute_name(self): @@ -273,12 +279,12 @@ class IssueLibraryLine(models.Model): issue_library_id = fields.Many2one('issue.library') issue_approval_decision_id = fields.Many2one('issue.approval.decision', string="决策清单") - council = fields.Selection(related='issue_approval_decision_id.council', string='党总委员会') - 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_state = fields.Selection(related='issue_approval_decision_id.district_state', string="区国资局") - district_government = fields.Selection(related='issue_approval_decision_id.district_government', string="区政府") - district_party = fields.Selection(related='issue_approval_decision_id.district_party', string="区委组织部") + council_id = fields.Many2one(related='issue_approval_decision_id.council_id', string='党总委员会') + team_meet_id = fields.Many2one(related='issue_approval_decision_id.team_meet_id', string='经营班子会') + board_meet_id = fields.Many2one(related='issue_approval_decision_id.board_meet_id', string='董事会') + district_state_id = fields.Many2one(related='issue_approval_decision_id.district_state_id', string="区国资局") + district_government_id = fields.Many2one(related='issue_approval_decision_id.district_government_id', string="区政府") + district_party_id = fields.Many2one(related='issue_approval_decision_id.district_party_id', string="区委组织部") ordinal = fields.Char(related='issue_approval_decision_id.sequence', string='序号') diff --git a/yuthon_issue/models/issue_library_type.py b/yuthon_issue/models/issue_library_type.py new file mode 100644 index 000000000..4b1fd46c2 --- /dev/null +++ b/yuthon_issue/models/issue_library_type.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +from odoo import api, fields, models, tools +from odoo.exceptions import UserError, ValidationError + + +class IssueLibraryType(models.Model): + _name = "issue.library.type" + _description = '决策类型配置' + _rec_name = 'name' + + name = fields.Char(string="事项类别") + + diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv index dbdb7cd23..eaa9f7679 100644 --- a/yuthon_issue/security/ir.model.access.csv +++ b/yuthon_issue/security/ir.model.access.csv @@ -10,3 +10,4 @@ access_issue_meeting_minutes_line,issue_meeting_minutes_line,model_issue_meeting access_issue_meeting_minutes,issue_meeting_minutes,model_issue_meeting_minutes,base.group_user,1,1,1,1 access_issue_meeting_line,issue_meeting_line,model_issue_meeting_line,base.group_user,1,1,1,1 access_issue_library_room_line,issue_library_room_line,model_issue_library_room_line,base.group_user,1,1,1,1 +access_issue_library_type,issue_library_type,model_issue_library_type,base.group_user,1,1,1,1 diff --git a/yuthon_issue/views/issue_approval_decision_views.xml b/yuthon_issue/views/issue_approval_decision_views.xml index fdc64eefe..56089e87b 100644 --- a/yuthon_issue/views/issue_approval_decision_views.xml +++ b/yuthon_issue/views/issue_approval_decision_views.xml @@ -10,12 +10,12 @@ - - - - - - + + + + + + @@ -41,21 +41,21 @@ - + - + - + - - - + + + diff --git a/yuthon_issue/views/issue_library_type_views.xml b/yuthon_issue/views/issue_library_type_views.xml new file mode 100644 index 000000000..a476e0b37 --- /dev/null +++ b/yuthon_issue/views/issue_library_type_views.xml @@ -0,0 +1,17 @@ + + + + issue.library.type.tree + issue.library.type + + + + + + + + 决策类型 + issue.library.type + tree + + diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 433c01f0d..4d6ddf12a 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -97,12 +97,12 @@ - - - - - - + + + + + + @@ -257,10 +257,10 @@ - - - - + + + + @@ -404,10 +404,10 @@ - - - - + + + + @@ -539,10 +539,10 @@ - - - - + + + + diff --git a/yuthon_issue/views/menus.xml b/yuthon_issue/views/menus.xml index 3fda6f14b..25c4055ff 100644 --- a/yuthon_issue/views/menus.xml +++ b/yuthon_issue/views/menus.xml @@ -181,8 +181,14 @@ + + \ No newline at end of file diff --git a/yuthon_work_brand/views/hr_menus.xml b/yuthon_work_brand/views/hr_menus.xml index bbe3f0226..2ef940370 100644 --- a/yuthon_work_brand/views/hr_menus.xml +++ b/yuthon_work_brand/views/hr_menus.xml @@ -440,7 +440,7 @@ sequence="3"/>