添加功能
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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)],
|
||||
|
||||
Reference in New Issue
Block a user