pengyuthon
This commit is contained in:
+22
-18
@@ -15,7 +15,7 @@ class RoomBooking(models.Model):
|
||||
_description = "Room Booking"
|
||||
_order = "start_datetime desc, id"
|
||||
|
||||
name = fields.Char(string="Booking Name", required=True, tracking=1)
|
||||
name = fields.Char(string="会议名称", required=True, tracking=1)
|
||||
room_id = fields.Many2one("room.room", string="Room", required=True, ondelete="cascade",
|
||||
group_expand="_read_group_room_id", tracking=4)
|
||||
start_datetime = fields.Datetime(string="Start Datetime", required=True, tracking=2)
|
||||
@@ -28,7 +28,10 @@ class RoomBooking(models.Model):
|
||||
office_id = fields.Many2one(related="room_id.office_id", string="Office", readonly=True, store=True)
|
||||
company_id = fields.Many2one(related="room_id.company_id", string="Company", readonly=True, store=True)
|
||||
# pengyuthon
|
||||
department_id = fields.Many2one('hr.department', related='organizer_id.employee_id.department_id', string="申请人部门")
|
||||
is_notice = fields.Boolean(string="是否发布通知", default=True)
|
||||
is_hour = fields.Boolean(string="提前一小时", default=True)
|
||||
is_day = fields.Boolean(string="提前一天", default=True)
|
||||
meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式",
|
||||
required=True)
|
||||
meeting_form = fields.Selection([('party', '党委会'), ('team', '班子会'), ('director', '董事会'),
|
||||
@@ -39,7 +42,7 @@ class RoomBooking(models.Model):
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True)
|
||||
other_company_id = fields.Many2one('res.partner', string="外部公司")
|
||||
other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="外部人员")
|
||||
other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="其他人员")
|
||||
meeting_party_note = fields.Text(string="党之委会议纪要")
|
||||
meeting_party_document_ids = fields.One2many('party.document', 'room_booking_id', string="党之委会议文档")
|
||||
meeting_class_note = fields.Text(string="班子会议纪要")
|
||||
@@ -53,6 +56,9 @@ class RoomBooking(models.Model):
|
||||
meeting_data = fields.Html(string="会议说明", sanitize=False)
|
||||
wechat_meetingid = fields.Char("企业微信会议室ID")
|
||||
|
||||
should_user = fields.Integer(string="应到")
|
||||
right_user = fields.Integer(string="实到")
|
||||
|
||||
@api.onchange('room_id')
|
||||
def onchange_meeting_data(self):
|
||||
self.meeting_data = self.room_id.description
|
||||
@@ -66,7 +72,7 @@ class RoomBooking(models.Model):
|
||||
</select>
|
||||
"""
|
||||
if self.room_users_ids:
|
||||
# 便利内部人员和外部人员
|
||||
# 便利内部人员和其他人员
|
||||
html_select = '<select>\n<option value="name0"> </option>\n'
|
||||
for index, user in enumerate(self.room_users_ids, start=1):
|
||||
value = f'name{index}'
|
||||
@@ -87,21 +93,19 @@ class RoomBooking(models.Model):
|
||||
|
||||
@api.depends('department_ids', 'employee_ids', 'users_role_ids')
|
||||
def compute_room_users_ids(self):
|
||||
users_role_list = department_users_list = []
|
||||
# 部门人员
|
||||
if self.department_ids:
|
||||
for depart in self.department_ids:
|
||||
department_users_data = self.env['hr.employee'].search([('department_id', '=', depart.id.origin)])
|
||||
department_users_list = [de.user_id.id for de in department_users_data]
|
||||
# 人员
|
||||
employee_users_list = self.employee_ids.user_id.ids
|
||||
# 角色人员
|
||||
if self.users_role_ids:
|
||||
for user_id in self.users_role_ids:
|
||||
user_role_data = self.env['hr.employee'].search([('user_role_id', '=', user_id.id.origin)])
|
||||
users_role_list = [ro.user_id.id for ro in user_role_data]
|
||||
publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
self.room_users_ids = [(6, 0, list(set(publish_user_list)))]
|
||||
department_users_list = users_role_list = []
|
||||
for users in self:
|
||||
if users.department_ids:
|
||||
for depart in users.department_ids:
|
||||
department_users_data = users.env['hr.employee'].search([('department_id', '=', depart.id.origin)])
|
||||
department_users_list = [de.user_id.id for de in department_users_data]
|
||||
employee_users_list = users.employee_ids.user_id.ids
|
||||
if users.users_role_ids:
|
||||
for user_id in users.users_role_ids:
|
||||
user_role_data = users.env['hr.employee'].search([('user_role_id', '=', user_id.id.origin)])
|
||||
users_role_list = [ro.user_id.id for ro in user_role_data]
|
||||
publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
users.room_users_ids = [(6, 0, list(set(publish_user_list)))]
|
||||
|
||||
def meet_notice(self):
|
||||
if self.is_notice:
|
||||
|
||||
@@ -14,6 +14,7 @@ class RoomMeetingSign(models.Model):
|
||||
partner_name = fields.Char(string="单位")
|
||||
job = fields.Char(string="职务")
|
||||
mobile = fields.Char(string="手机号码")
|
||||
user_type = fields.Selection([('insiders', '内部人员'), ('outsiders', '外部人员')], default='no', string="人员类型")
|
||||
user_type = fields.Selection([('insiders', '内部人员'), ('outsiders', '其他人员')], default='no', string="人员类型")
|
||||
sign_type = fields.Selection([('no', '未签到'), ('yes', '已签到')], default='no', string="签到状态")
|
||||
sign_time = fields.Datetime(string="签到时间")
|
||||
|
||||
|
||||
@@ -132,45 +132,56 @@
|
||||
class="oe_highlight"/>
|
||||
<button name="sync_wechat_room" string="同步企业微信" type="object" class="oe_highlight"/>
|
||||
</header>
|
||||
<div class="oe_title mb-3">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="E.g. Team Meeting"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group string="参与人员">
|
||||
<field name="stop_datetime" invisible="1"/>
|
||||
<field name="start_datetime" string="会议时间" widget="daterange" options="{'end_date_field': 'stop_datetime'}"/>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="organizer_id" widget="many2one_avatar_user"/>
|
||||
<field name="department_ids" widget="many2many_tags"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="users_role_ids" widget="many2many_tags"/>
|
||||
<field name="room_users_ids" widget="many2many_tags" readonly="1"/>
|
||||
<field name="other_company_user_ids" widget="many2many_tags" readonly="1"/>
|
||||
</group>
|
||||
<group string="基本信息">
|
||||
<field name="room_id"/>
|
||||
<field name="stop_datetime" invisible="1"/>
|
||||
<field name="start_datetime" string="Date" widget="daterange" options="{'end_date_field': 'stop_datetime'}"/>
|
||||
<field name="meeting_form"/>
|
||||
<field name="name"/>
|
||||
<field name="room_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="meeting_type"/>
|
||||
<field name="fleet_id" invisible="meeting_type != 'exterior'"/>
|
||||
<field name="meeting_place" invisible="meeting_type != 'exterior'"/>
|
||||
<field name="is_notice"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="department_ids" widget="many2many_tags"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="users_role_ids" widget="many2many_tags"/>
|
||||
<field name="room_users_ids" widget="many2many_tags" readonly="1"/>
|
||||
<field name="other_company_user_ids" widget="many2many_tags" readonly="1"/>
|
||||
<field name="is_notice"/>
|
||||
<field name="is_hour" invisible="not is_notice"/>
|
||||
<field name="is_day" invisible="not is_notice"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="sign" string="签到详情">
|
||||
<field name="meeting_sing_ids">
|
||||
<tree delete="0" create="0">
|
||||
<field name="room_booking_id" column_invisible="1"/>
|
||||
<field name="sign_user_name"/>
|
||||
<field name="partner_name"/>
|
||||
<field name="job"/>
|
||||
<field name="mobile"/>
|
||||
<field name="user_type"/>
|
||||
<field name="sign_type"/>
|
||||
</tree>
|
||||
</field>
|
||||
<group>
|
||||
<group>
|
||||
<field name="should_user"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="right_user"/>
|
||||
</group>
|
||||
<field name="meeting_sing_ids">
|
||||
<tree delete="0" create="0">
|
||||
<field name="room_booking_id" column_invisible="1"/>
|
||||
<field name="sign_user_name"/>
|
||||
<field name="partner_name"/>
|
||||
<field name="job"/>
|
||||
<field name="mobile"/>
|
||||
<field name="user_type"/>
|
||||
<field name="sign_type"/>
|
||||
<field name="sign_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page name="note" string="会议纪要">
|
||||
<group>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<menuitem
|
||||
id="room_room_menu"
|
||||
name="Rooms"
|
||||
name="会议地点"
|
||||
action="room.room_room_action"
|
||||
parent="room.room_menu_root"
|
||||
sequence="2"/>
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
parent="room_menu_root_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="room_room_menu_board"
|
||||
name="房间"
|
||||
name="会议地点"
|
||||
action="room.room_room_action"
|
||||
parent="room_menu_root_board"
|
||||
sequence="2"/>
|
||||
|
||||
Reference in New Issue
Block a user