This commit is contained in:
李鹏宇
2026-03-26 15:44:51 +08:00
6 changed files with 49 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="决策详情")
+1
View File
@@ -24,6 +24,7 @@ class IssueLibrary(models.Model):
default=lambda self: self.env['ir.sequence'].next_by_code('issue_library_code'))
its_original_state = fields.Char(string='原议题状态')
supporting_department = fields.Text(string='协办部门/单位')
topic_type = fields.Selection([('scrutiny', '审议'), ('learn', '学习'), ('report', '汇报')], string='议题类型', default='scrutiny')
issue_state = fields.Selection([
('to_do', '待推送'),
('draft', '待申报'),
@@ -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"/>
@@ -9,6 +9,7 @@
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<field name="name" column_invisible="1"/>
<field name="topic_type"/>
<field name="name_text" class="list_width"/>
<field name="is_party" groups="yuthon_salary.group_jtbb_user" string="党总支"/>
<field name="is_party" groups="yuthon_salary.group_lc_user,yuthon_salary.group_wg_user"
@@ -171,6 +172,7 @@
</h1>
</div>
<group>
<field name="topic_type"/>
<field name="name" required="1" force_save="1" invisible="is_invisible_workflow"
readonly="not (is_admin or issue_state in ['to_do', 'cancel','to_modify', 'draft'] or is_modify)"/>
<field name="topic_content" invisible="is_invisible_workflow"
@@ -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)],