添加功能

This commit is contained in:
李鹏宇
2026-03-27 15:09:23 +08:00
parent dd7f621ee7
commit ef01c7edef
5 changed files with 36 additions and 26 deletions
-25
View File
@@ -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)
+1
View File
@@ -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')
+1
View File
@@ -9,6 +9,7 @@
<field name="name" class="list_room_width2"/>
<field name="host_id" class="list_room_width2"/>
<field name="room_users_ids" widget="many2many_tags"/>
<field name="attendees_ids" widget="many2many_tags"/>
<field name="host_user_id" column_invisible="1"/>
<field name="users_ids" widget="many2many_tags" column_invisible="1"/>
<field name="company_id"/>
@@ -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:
+1 -1
View File
@@ -27,7 +27,7 @@
<field name="meeting_booking_id" column_invisible="1"/>
<field name="issue_library_id"/>
<field name="employee_id" options="{'no_create': True}" domain="[('id', 'in', designated_person_ids)]"/>
<field name="attendees_ids" widget="many2many_tags" domain="[('id', 'in', designated_person_ids)]"/>
<field name="attendees_ids" widget="many2many_tags"/>
<field name="users_role_group_ids" widget="many2many_tags" />
<field name="designated_person_ids" widget="many2many_tags" column_invisible="1"/>
<field name="is_sanda"/>