添加功能

This commit is contained in:
李鹏宇
2026-03-26 15:07:50 +08:00
parent eae013f583
commit 7dd5ff9084
4 changed files with 46 additions and 18 deletions
-9
View File
@@ -184,15 +184,6 @@ class RoomBooking(models.Model):
'user_type': 'insiders',
'sign_type': 'no',
})
# 缺少逻辑
# for external in self.other_user_ids:
# self.env['room.meeting.sign'].create({
# 'room_booking_id': self.id,
# 'partner_name': external.name,
# 'user_type': 'outsiders',
# 'sign_type': 'no',
# })
event = self.env['calendar.event'].create({
'name': self.name,
'start': self.start_datetime,
+11 -1
View File
@@ -152,7 +152,16 @@ class RoomBooking(models.Model):
if line.attendees_ids:
for employee in line.attendees_ids:
remind_user_ids.add(employee.user_id.id)
# 列席群组
for line in booking.issue_meeting_line_ids:
if line.users_role_group_ids:
role_group_roles = line.users_role_group_ids.mapped('user_role_ids')
role_employees = self.env['hr.employee'].search([
'|',
('user_role_id', 'in', role_group_roles.ids),
('user_role_ids', 'in', role_group_roles.ids)
])
remind_user_ids.add(role_employees.mapped('user_id.id'))
# ⑥ 主持人
if booking.host and booking.host.user_id:
remind_user_ids.add(booking.host.user_id.id)
@@ -243,6 +252,7 @@ class IssueMeetingLine(models.Model):
'employee_id',
string='列席人员'
)
users_role_group_ids = fields.Many2many(comodel_name="soong.user.role.group", string="列席群组")
is_sanda = fields.Boolean(string="三重一大")
decision_results = fields.Selection([('agree', '通过'), ('disagree', '重新上会'), ('rejected', '驳回')], string="决策结果")
decision_details = fields.Text(string="决策详情")
@@ -28,6 +28,7 @@
<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="users_role_group_ids" widget="many2many_tags" />
<field name="designated_person_ids" widget="many2many_tags" column_invisible="1"/>
<field name="is_sanda"/>
<field name="decision_results"/>
@@ -27,18 +27,42 @@ class InheritRoomBooking(models.Model):
def create(self, vals):
new_record = super(InheritRoomBooking, self).create(vals)
employee_list = []
if new_record.room_users_ids:
for user in new_record.room_users_ids:
booking = new_record
# ① 组织者
if booking.organizer_id:
employee_list.append(booking.organizer_id.id)
# ② 记录人
if booking.user_id.employee_id:
employee_list.append(booking.user_id.employee_id.id)
# ③ 出席人员
if booking.room_users_ids:
for user in booking.room_users_ids:
if user.employee_id:
employee_list.append(user.employee_id.id)
# ④ 议题传达人
for line in booking.issue_meeting_line_ids:
if line.employee_id:
employee_list.append(line.employee_id.id)
# ⑤ 列席人员
for line in booking.issue_meeting_line_ids:
if line.attendees_ids:
employee_list.extend(line.attendees_ids.ids)
# ⑥ 列席角色群组
for line in booking.issue_meeting_line_ids:
if line.users_role_group_ids:
role_group_roles = line.users_role_group_ids.mapped('user_role_ids')
role_employees = self.env['hr.employee'].search([
'|',
('user_role_id', 'in', role_group_roles.ids),
('user_role_ids', 'in', role_group_roles.ids)
])
employee_list.extend(role_employees.ids)
# ⑦ 主持人
if booking.host:
employee_list.append(booking.host.id)
if new_record.recorder_ids:
employee_list.extend(new_record.recorder_ids.ids)
if new_record.host:
employee_list.append(new_record.host.id)
# 去重
employee_list = list(set(employee_list))
def get_hour_selection(datetime_obj):
if not datetime_obj:
return None
@@ -71,6 +95,8 @@ class InheritRoomBooking(models.Model):
start_date = start_datetime.date()
request_hour_from = get_hour_selection(new_record.start_datetime)
request_hour_to = get_hour_selection(new_record.stop_datetime)
# ====================== 创建任务 ======================
task_id = self.env['yuthon.will.task'].sudo().create({
'name': new_record.name,
'employee_ids': [(6, 0, employee_list)],