From e6d31f5e405ae1183875df8a841f95b5eff4b43e Mon Sep 17 00:00:00 2001 From: zhouzhou <123@qq.com> Date: Mon, 21 Oct 2024 17:04:55 +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 --- room/__manifest__.py | 1 + room/models/room_booking.py | 49 +++++++++---------- room/security/ir.model.access.csv | 1 + room/views/room_booking_views.xml | 5 +- room/wizard/__init__.py | 2 +- room/wizard/room_select_range_wizard.py | 43 ++++++++++++++++ .../wizard/room_select_range_wizard_views.xml | 6 +-- yuthon_issue/__init__.py | 1 - yuthon_issue/__manifest__.py | 1 - yuthon_issue/models/inherit_room_booking.py | 4 +- yuthon_issue/security/ir.model.access.csv | 3 +- yuthon_issue/views/inherit_room_booking.xml | 9 ---- yuthon_issue/views/issue_library_views.xml | 17 ------- yuthon_issue/wizard/__init__.py | 1 - .../wizard/issue_select_range_wizard.py | 20 -------- 15 files changed, 76 insertions(+), 87 deletions(-) create mode 100644 room/wizard/room_select_range_wizard.py rename yuthon_issue/wizard/issue_select_range_wizard_views.xml => room/wizard/room_select_range_wizard_views.xml (78%) delete mode 100644 yuthon_issue/wizard/__init__.py delete mode 100644 yuthon_issue/wizard/issue_select_range_wizard.py diff --git a/room/__manifest__.py b/room/__manifest__.py index 9d310b2a9..35f0e91ac 100644 --- a/room/__manifest__.py +++ b/room/__manifest__.py @@ -26,6 +26,7 @@ 'report/meet_check_report.xml', 'wizard/room_booking_sign_wizard.xml', 'wizard/room_booking_partner_create_wizard.xml', + 'wizard/room_select_range_wizard_views.xml', ], 'demo': [ 'demo/room_office.xml', diff --git a/room/models/room_booking.py b/room/models/room_booking.py index bcd030d7d..f3cb55bda 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -35,10 +35,7 @@ class RoomBooking(models.Model): meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式", required=True) meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型",) - department_ids = fields.Many2many('hr.department', string='部门范围') - employee_ids = fields.Many2many('hr.employee', string='人员范围') - users_role_ids = fields.Many2many('soong.user.role', string='角色范围') - room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True) + room_users_ids = fields.Many2many('res.users', string="会议参加人员",store=True) other_company_id = fields.Many2one('res.partner', string="外部公司") other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="其他人员") @@ -104,28 +101,28 @@ class RoomBooking(models.Model): html_content = file.read().replace('姓名', html_select) self.write({'meeting_data': html_content}) - @api.depends('department_ids', 'employee_ids', 'users_role_ids') - def compute_room_users_ids(self): - department_users_list = users_role_list = [] - for users in self: - if users.department_ids: - # 查看是否下级部门 - for depart in users.department_ids: - department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)]) - department_users_list = [de.user_id.id for de in department_users_data] - if depart.child_ids: - for child in depart.child_ids: - department_child_users_data = users.env['hr.employee'].search( - [('department_id', '=', child.id)]) - department_users_list += [de.user_id.id for de in department_child_users_data] - employee_users_list = users.employee_ids.user_id.ids - if users.users_role_ids: - for user_id in users.users_role_ids: - user_role_data = users.env['hr.employee'].search(['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)]) - users_role_list = [ro.user_id.id for ro in user_role_data] - publish_user_list = department_users_list + employee_users_list + users_role_list - false_none_list = [x for x in publish_user_list if x != False] - users.room_users_ids = [(6, 0, list(set(false_none_list)))] + # @api.depends('department_ids', 'employee_ids', 'users_role_ids') + # def compute_room_users_ids(self): + # department_users_list = users_role_list = [] + # for users in self: + # if users.department_ids: + # # 查看是否下级部门 + # for depart in users.department_ids: + # department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)]) + # department_users_list = [de.user_id.id for de in department_users_data] + # if depart.child_ids: + # for child in depart.child_ids: + # department_child_users_data = users.env['hr.employee'].search( + # [('department_id', '=', child.id)]) + # department_users_list += [de.user_id.id for de in department_child_users_data] + # employee_users_list = users.employee_ids.user_id.ids + # if users.users_role_ids: + # for user_id in users.users_role_ids: + # user_role_data = users.env['hr.employee'].search(['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)]) + # users_role_list = [ro.user_id.id for ro in user_role_data] + # publish_user_list = department_users_list + employee_users_list + users_role_list + # false_none_list = [x for x in publish_user_list if x != False] + # users.room_users_ids = [(6, 0, list(set(false_none_list)))] @api.onchange('department_ids', 'employee_ids', 'users_role_ids', 'room_users_ids') def onchange_partner_ids(self): diff --git a/room/security/ir.model.access.csv b/room/security/ir.model.access.csv index fbb578291..0cf9d9cc6 100644 --- a/room/security/ir.model.access.csv +++ b/room/security/ir.model.access.csv @@ -9,3 +9,4 @@ access_room_meeting_sign,access.room.meeting.sign,model_room_meeting_sign,base.g access_room_meeting_type,access.room.meeting.type,model_room_meeting_type,base.group_user,1,1,1,1 access_room_booking_sign_wizard,room.booking.sign.wizard,model_room_booking_sign_wizard,,1,1,1,1 access_room_booking_partner_create_wizard,room.booking.partner.create.wizard,model_room_booking_partner_create_wizard,,1,1,1,1 +access_room_select_range_wizard,room_select_range_wizard,model_room_select_range_wizard,base.group_user,1,1,1,1 diff --git a/room/views/room_booking_views.xml b/room/views/room_booking_views.xml index c676fdc4f..ccb999efe 100644 --- a/room/views/room_booking_views.xml +++ b/room/views/room_booking_views.xml @@ -154,10 +154,7 @@ - - - - + diff --git a/room/wizard/__init__.py b/room/wizard/__init__.py index 9088a64bd..10cef5d71 100644 --- a/room/wizard/__init__.py +++ b/room/wizard/__init__.py @@ -2,7 +2,7 @@ from . import room_booking_sign_wizard from . import room_booking_partner_create_wizard - +from . import room_select_range_wizard diff --git a/room/wizard/room_select_range_wizard.py b/room/wizard/room_select_range_wizard.py new file mode 100644 index 000000000..8796ea144 --- /dev/null +++ b/room/wizard/room_select_range_wizard.py @@ -0,0 +1,43 @@ +from odoo import api, fields, models, tools +from odoo.exceptions import ValidationError + + +class RoomSelectRangeWizard(models.Model): + _name = 'room.select.range.wizard' + _description = '选择范围弹窗' + + department_ids = fields.Many2many('hr.department', string='部门范围') + employee_ids = fields.Many2many('hr.employee', string='人员范围') + users_role_ids = fields.Many2many('soong.user.role', string='角色范围') + room_booking_id = fields.Many2one('room.booking') + room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True) + + @api.depends('department_ids', 'employee_ids', 'users_role_ids') + def compute_room_users_ids(self): + department_users_list = users_role_list = [] + for users in self: + if users.department_ids: + # 查看是否下级部门 + for depart in users.department_ids: + department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id)]) + department_users_list = [de.user_id.id for de in department_users_data] + if depart.child_ids: + for child in depart.child_ids: + department_child_users_data = users.env['hr.employee'].search( + [('department_id', '=', child.id)]) + department_users_list += [de.user_id.id for de in department_child_users_data] + employee_users_list = users.employee_ids.user_id.ids + if users.users_role_ids: + for user_id in users.users_role_ids: + user_role_data = users.env['hr.employee'].search( + ['|', ('user_role_id', '=', user_id.id), ('user_role_ids', '=', user_id.id)]) + users_role_list = [ro.user_id.id for ro in user_role_data] + publish_user_list = department_users_list + employee_users_list + users_role_list + false_none_list = [x for x in publish_user_list if x != False] + users.room_users_ids = [(6, 0, list(set(false_none_list)))] + + def action_select_values(self): + self.ensure_one() + self.room_booking_id.write({ + 'room_users_ids': [(6, 0, self.room_users_ids.ids)], + }) diff --git a/yuthon_issue/wizard/issue_select_range_wizard_views.xml b/room/wizard/room_select_range_wizard_views.xml similarity index 78% rename from yuthon_issue/wizard/issue_select_range_wizard_views.xml rename to room/wizard/room_select_range_wizard_views.xml index 1429a41b7..d76fdf164 100644 --- a/yuthon_issue/wizard/issue_select_range_wizard_views.xml +++ b/room/wizard/room_select_range_wizard_views.xml @@ -1,8 +1,8 @@ - - issue.select.range.wizard.form - issue.select.range.wizard + + room.select.range.wizard.form + room.select.range.wizard
diff --git a/yuthon_issue/__init__.py b/yuthon_issue/__init__.py index 3616b3002..cde864bae 100644 --- a/yuthon_issue/__init__.py +++ b/yuthon_issue/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- from . import models -from . import wizard \ No newline at end of file diff --git a/yuthon_issue/__manifest__.py b/yuthon_issue/__manifest__.py index aa6853c38..b79446153 100644 --- a/yuthon_issue/__manifest__.py +++ b/yuthon_issue/__manifest__.py @@ -20,7 +20,6 @@ 'views/inherit_room_booking.xml', 'views/issue_approval_decision_views.xml', 'views/issue_approval_decision_type_views.xml', - 'wizard/issue_select_range_wizard_views.xml', 'views/menus.xml', ], 'assets': { diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index ece0088a7..aeb4a1e37 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -7,14 +7,14 @@ class RoomBooking(models.Model): room_booking_library_ids = fields.One2many('issue.library', 'room_booking_id') decision_results = fields.Selection([('agree', '通过'), ('disagree', '未通过')], string="决策结果") - select_range_id = fields.Many2one('issue.select.range.wizard', string="选择人员范围") + select_range_id = fields.Many2one('room.select.range.wizard', string="选择人员范围") def open_select_range_wizard(self): return { 'name': '选择范围', 'type': 'ir.actions.act_window', 'view_mode': 'form', - 'res_model': 'issue.select.range.wizard', + 'res_model': 'room.select.range.wizard', 'target': 'new', 'context': {'default_room_booking_id': self.id}, } diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv index 376373e2e..db3a519bf 100644 --- a/yuthon_issue/security/ir.model.access.csv +++ b/yuthon_issue/security/ir.model.access.csv @@ -5,5 +5,4 @@ access_issue_approval_decision,issue_approval_decision,model_issue_approval_deci access_issue_approval_decision_type,issue_approval_decision_type,model_issue_approval_decision_type,base.group_user,1,1,1,1 access_issue_library_approval_line,issue_library_approval_line,model_issue_library_approval_line,base.group_user,1,1,1,1 access_issue_approval,issue_approval,model_issue_approval,base.group_user,1,1,1,1 -access_issue_approval_line,issue_approval_line,model_issue_approval_line,base.group_user,1,1,1,1 -access_issue_select_range_wizard,issue_select_range_wizard,model_issue_select_range_wizard,base.group_user,1,1,1,1 \ No newline at end of file +access_issue_approval_line,issue_approval_line,model_issue_approval_line,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/yuthon_issue/views/inherit_room_booking.xml b/yuthon_issue/views/inherit_room_booking.xml index 1f933f225..f4e1e1b86 100644 --- a/yuthon_issue/views/inherit_room_booking.xml +++ b/yuthon_issue/views/inherit_room_booking.xml @@ -19,15 +19,6 @@ - - 1 - - - 1 - - - 1 -
diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 9e458917d..2d846285b 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -218,23 +218,6 @@ - - - - issue.library.tree - issue.library - - - - - - - - - - - - 议题库 issue.library diff --git a/yuthon_issue/wizard/__init__.py b/yuthon_issue/wizard/__init__.py deleted file mode 100644 index ad95366f5..000000000 --- a/yuthon_issue/wizard/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import issue_select_range_wizard \ No newline at end of file diff --git a/yuthon_issue/wizard/issue_select_range_wizard.py b/yuthon_issue/wizard/issue_select_range_wizard.py deleted file mode 100644 index 9bf65a632..000000000 --- a/yuthon_issue/wizard/issue_select_range_wizard.py +++ /dev/null @@ -1,20 +0,0 @@ -from odoo import api, fields, models, tools -from odoo.exceptions import ValidationError - - -class IssueSelectRangeWizard(models.Model): - _name = 'issue.select.range.wizard' - _description = '选择范围弹窗' - - department_ids = fields.Many2many('hr.department', string='部门范围') - employee_ids = fields.Many2many('hr.employee', string='人员范围') - users_role_ids = fields.Many2many('soong.user.role', string='角色范围') - room_booking_id = fields.Many2one('room.booking') - - def action_select_values(self): - self.ensure_one() - self.room_booking_id.write({ - 'department_ids': [(6, 0, self.department_ids.ids)], - 'employee_ids': [(6, 0, self.employee_ids.ids)], - 'users_role_ids': [(6, 0, self.users_role_ids.ids)], - }) \ No newline at end of file