diff --git a/room/security/ir_rule.xml b/room/security/ir_rule.xml index 7b2e0524c..c20ade81a 100644 --- a/room/security/ir_rule.xml +++ b/room/security/ir_rule.xml @@ -11,11 +11,6 @@ [('company_id', 'in', company_ids)] - - 预定会议多公司 - - [('company_id', 'in', company_ids)] - diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index 3f223a3da..1e6391a80 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -10,6 +10,24 @@ class RoomBooking(models.Model): issue_meeting_line_ids = fields.One2many('issue.meeting.line', 'meeting_booking_id', string="关联议题明细行") number_of_meetings = fields.Integer(string='会议次数') minutes_id = fields.Many2one('issue.meeting.minutes', string='会议纪要流程') + is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company', + search='_search_part_of_company') + + @api.depends_context('uid', 'company') + @api.depends('company_id') + def _compute_is_company(self): + active_company_ids = self.env.companies + for employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + company_ids = self.env.companies.ids + if not value: + operator = '!=' if operator == '=' else '=' + if operator == '=': + return [('company_id', 'in', company_ids)] + else: + return [('company_id', 'not in', company_ids)] @api.depends('number_of_meetings', 'meeting_type_id', 'start_datetime') def _compute_name(self): diff --git a/yuthon_issue/models/issue_approval.py b/yuthon_issue/models/issue_approval.py index a12b382c0..99abe099b 100644 --- a/yuthon_issue/models/issue_approval.py +++ b/yuthon_issue/models/issue_approval.py @@ -38,6 +38,23 @@ class IssueApproval(models.Model): return self._description if self._description else self._name name_title = fields.Char(default=_get_default_name_title) + is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company') + + @api.depends_context('uid', 'company') + @api.depends('company_id') + def _compute_is_company(self): + active_company_ids = self.env.companies + for employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + company_ids = self.env.companies.ids + if not value: + operator = '!=' if operator == '=' else '=' + if operator == '=': + return [('company_id', 'in', company_ids)] + else: + return [('company_id', 'not in', company_ids)] @api.depends('code') def _compute_workflow(self): diff --git a/yuthon_issue/security/issue_security_group.xml b/yuthon_issue/security/issue_security_group.xml index c88078948..5d2daa167 100644 --- a/yuthon_issue/security/issue_security_group.xml +++ b/yuthon_issue/security/issue_security_group.xml @@ -23,9 +23,4 @@ [('company_id', 'in', company_ids)] - - 议题审批多公司 - - [('company_id', 'in', company_ids)] - \ 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 ff2bcfe4a..c036e58df 100644 --- a/yuthon_issue/views/inherit_room_booking.xml +++ b/yuthon_issue/views/inherit_room_booking.xml @@ -35,12 +35,10 @@ - 议题相关会议 room.booking tree,form - [('is_issue','=',True)] + [('is_issue','=',True), ('is_company','=',True)] - diff --git a/yuthon_issue/views/issue_approval_views.xml b/yuthon_issue/views/issue_approval_views.xml index 43ce3e885..211f48633 100644 --- a/yuthon_issue/views/issue_approval_views.xml +++ b/yuthon_issue/views/issue_approval_views.xml @@ -99,6 +99,7 @@ 议题审批 + [('is_company','=',True)] issue.approval tree,form