diff --git a/room/models/room_booking.py b/room/models/room_booking.py index 2779656a2..29ab810a8 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -90,31 +90,6 @@ class RoomBooking(models.Model): employee_list = [rec.name for rec in i.room_users_ids] i.room_users_names = ','.join(employee_list) - @api.onchange('meeting_type_id') - def _onchange_meeting_type_id(self): - if self.meeting_type_id: - host_role_id = self.meeting_type_id.host_id.id - host_employee = self.env['hr.employee'].search([ - '|', - ('user_role_ids', 'in', host_role_id), - ('user_role_id', '=', host_role_id), - ('company_id', '=', self.meeting_type_id.company_id.id) - ], limit=1) - room_user_role_ids = self.meeting_type_id.room_users_ids.ids - room_employees = self.env['hr.employee'].search([ - '|', - ('user_role_ids', 'in', room_user_role_ids), - ('user_role_id', 'in', room_user_role_ids), - ('id', '!=', host_employee.id), - ('company_id', '=', self.meeting_type_id.company_id.id) - ]) - room_user_ids = room_employees.mapped('user_id.id') - self.host = host_employee.id - self.room_users_ids = [(6, 0, room_user_ids)] - else: - self.room_users_ids = [(5, 0, 0)] - self.host = False - # @api.model_create_multi # def create(self, vals_list): # bookings = super(RoomBooking, self).create(vals_list) diff --git a/room/models/room_meeting_type.py b/room/models/room_meeting_type.py index d2bfd7edf..e126e494c 100644 --- a/room/models/room_meeting_type.py +++ b/room/models/room_meeting_type.py @@ -13,6 +13,7 @@ class RoomMeetingType(models.Model): room_users_ids = fields.Many2many('soong.user.role', string="出席人员", store=True) host_user_id = fields.Many2one('res.users', string="主持人") users_ids = fields.Many2many('res.users', string="出席人员") + attendees_ids = fields.Many2many('hr.employee', string="列席人员") company_id = fields.Many2one('res.company', string="公司", index=True, default=lambda self: self.env.company) @api.depends('host_id', 'room_users_ids') diff --git a/room/views/room_meeting_type.xml b/room/views/room_meeting_type.xml index 8ac40fb90..17776929c 100644 --- a/room/views/room_meeting_type.xml +++ b/room/views/room_meeting_type.xml @@ -9,6 +9,7 @@ + diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index a5a4a6fac..960745c26 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -14,6 +14,39 @@ class RoomBooking(models.Model): is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company', search='_search_part_of_company') + @api.onchange('meeting_type_id') + def _onchange_meeting_type_id(self): + # 原有逻辑:设置主持人、会议室人员 + if self.meeting_type_id: + host_role_id = self.meeting_type_id.host_id.id + host_employee = self.env['hr.employee'].search([ + '|', + ('user_role_ids', 'in', host_role_id), + ('user_role_id', '=', host_role_id), + ('company_id', '=', self.meeting_type_id.company_id.id) + ], limit=1) + room_user_role_ids = self.meeting_type_id.room_users_ids.ids + room_employees = self.env['hr.employee'].search([ + '|', + ('user_role_ids', 'in', room_user_role_ids), + ('user_role_id', 'in', room_user_role_ids), + ('id', '!=', host_employee.id if host_employee else False), + ('company_id', '=', self.meeting_type_id.company_id.id) + ]) + room_user_ids = room_employees.mapped('user_id.id') + self.host = host_employee.id + self.room_users_ids = [(6, 0, room_user_ids)] + template_attendee_ids = self.meeting_type_id.attendees_ids.ids + if self.issue_meeting_line_ids and template_attendee_ids: + for line in self.issue_meeting_line_ids: + line.attendees_ids = [(6, 0, template_attendee_ids)] + else: + self.room_users_ids = [(5, 0, 0)] + self.host = False + if self.issue_meeting_line_ids: + for line in self.issue_meeting_line_ids: + line.attendees_ids = [(5, 0, 0)] + @api.constrains('name', 'issue_meeting_line_ids') def _check_name(self): for record in self: diff --git a/yuthon_issue/views/inherit_room_booking.xml b/yuthon_issue/views/inherit_room_booking.xml index 0b8563bcc..b31610ee2 100644 --- a/yuthon_issue/views/inherit_room_booking.xml +++ b/yuthon_issue/views/inherit_room_booking.xml @@ -27,7 +27,7 @@ - +