pengyuthon
This commit is contained in:
@@ -29,6 +29,9 @@ class RoomBooking(models.Model):
|
||||
is_notice = fields.Boolean(string="是否发布通知", default=True)
|
||||
meeting_type = fields.Selection([('up', '线上'), ('down', '线下')], default='down', string="会议类型",
|
||||
required=True)
|
||||
department_ids = fields.Many2many('hr.department', string='部门范围')
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员")
|
||||
meeting_party_note = fields.Text(string="党之委会议纪要")
|
||||
meeting_party_document_ids = fields.One2many('party.document', 'room_booking_id', string="党之委会议文档")
|
||||
@@ -40,6 +43,22 @@ class RoomBooking(models.Model):
|
||||
meeting_data = fields.Html(string="会议说明")
|
||||
wechat_meetingid = fields.Char("企业微信会议室ID")
|
||||
|
||||
@api.onchange('department_ids', 'employee_ids', 'users_role_ids')
|
||||
def onchange_room_users_ids(self):
|
||||
users_role_list = department_users_list = []
|
||||
# 部门人员
|
||||
for depart in self.department_ids:
|
||||
department_users_data = self.env['hr.employee'].search([('department_id', '=', depart.id)])
|
||||
department_users_list = [de.user_id.id for de in department_users_data]
|
||||
# 人员
|
||||
employee_users_list = self.employee_ids.user_id.ids
|
||||
# 角色人员
|
||||
for user_id in self.users_role_ids:
|
||||
department_users_data = self.env['hr.employee'].search([('user_role_id', '=', user_id.id)])
|
||||
users_role_list = [ro.user_id.id for ro in department_users_data]
|
||||
publish_user_list = department_users_list + employee_users_list + users_role_list
|
||||
self.room_users_ids = [(6, 0, publish_user_list)]
|
||||
|
||||
def meet_notice(self):
|
||||
if self.is_notice:
|
||||
for user in self.room_users_ids:
|
||||
|
||||
@@ -145,7 +145,10 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="organizer_id" widget="many2one_avatar_user"/>
|
||||
<field name="room_users_ids" widget="many2many_tags"/>
|
||||
<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="meeting_type"/>
|
||||
<field name="is_notice"/>
|
||||
</group>
|
||||
|
||||
@@ -20,7 +20,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
wkf_obj = self.env["soong.workflow"]
|
||||
rec_model = self._name
|
||||
# Get Flow Start
|
||||
wkf_recs = wkf_obj.search([("model_id", "=", rec_model)])
|
||||
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
|
||||
for wkf_rec in wkf_recs:
|
||||
for node in wkf_rec.node_ids:
|
||||
if node.flow_start:
|
||||
@@ -34,7 +34,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
rec_model = self._name
|
||||
ret = []
|
||||
# Get Status
|
||||
wkf_recs = wkf_obj.search([("model_id", "=", rec_model)])
|
||||
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
|
||||
for rec in wkf_recs:
|
||||
for node in rec.node_ids:
|
||||
ret.append((node.node_name, node.name))
|
||||
@@ -62,7 +62,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
# Variables
|
||||
rec_model = rec._name
|
||||
# Get Workflow
|
||||
rec.workflow_id = wkf_obj.search([("model_id", "=", rec_model)])
|
||||
rec.workflow_id = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
|
||||
|
||||
node_id = fields.Many2one(
|
||||
comodel_name="soong.workflow.node",
|
||||
@@ -79,7 +79,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
rec_model = rec._name
|
||||
# Get Workflow Node
|
||||
rec.node_id = wkf_obj.search(
|
||||
[("model_id", "=", rec_model)]
|
||||
[("model_id", "=", rec_model), ('is_enable', '=', 'yes')]
|
||||
).node_ids.filtered(lambda n: n.node_name == rec.state)
|
||||
|
||||
def btn_exec_action(self):
|
||||
|
||||
@@ -17,7 +17,7 @@ class YuthonNotice(models.Model):
|
||||
department_ids = fields.Many2many('hr.department', string='部门范围')
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '粮储')], string="公司", store=True)
|
||||
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司", compute="_compute_company", store=True)
|
||||
notice_type_id = fields.Many2one('yuthon.notice.type', string="公告类型")
|
||||
create_date = fields.Date(string="发布日期")
|
||||
start_date = fields.Date(string="生效日期")
|
||||
@@ -29,10 +29,33 @@ class YuthonNotice(models.Model):
|
||||
is_notice_roger = fields.Selection([('yes', '已读'), ('no', '未读')], default='no', string="确认状态")
|
||||
is_change_notice = fields.Boolean(string="是否发送通知", default=True)
|
||||
notice_text = fields.Html(string="正文")
|
||||
read_number = fields.Integer(string='阅读量')
|
||||
read_number = fields.Integer(string='阅读量', compute="_compute_read_number", store=True)
|
||||
approval_user_id = fields.Many2one('res.users', string="审核人")
|
||||
approval_date = fields.Datetime(string="审核日期")
|
||||
|
||||
@api.depends('user_id')
|
||||
def _compute_company(self):
|
||||
for rec in self:
|
||||
company = rec.department_id.display_name.split('/')[0][0:4]
|
||||
rec.company_page = ''
|
||||
if company == '天河投资':
|
||||
rec.company_page = 'tz'
|
||||
if company == '天河物管':
|
||||
rec.company_page = 'wg'
|
||||
if company == '天河粮储':
|
||||
rec.company_page = 'lc'
|
||||
|
||||
|
||||
@api.depends('read_number')
|
||||
def _compute_read_number(self):
|
||||
notice_confirm_ids = self.env['yuthon.confirm.users'].search([('notice_id.id', '=', self.id), ('state', '=', 'yes')])
|
||||
for read in self:
|
||||
if notice_confirm_ids:
|
||||
read.read_number = len(notice_confirm_ids)
|
||||
else:
|
||||
read.read_number = 0
|
||||
|
||||
|
||||
@api.onchange('is_notice_roger')
|
||||
def onchange_is_notice_roger(self):
|
||||
roger_id = self.env['yuthon.confirm.users'].search([('notice_id', '=', self.id), ('employee_id', '=', self.env.user.employee_id.id)])
|
||||
@@ -53,7 +76,7 @@ class YuthonNotice(models.Model):
|
||||
department_users_data = self.env['hr.employee'].search([('department_id', '=', depart.id)])
|
||||
department_users_list = [de.id for de in department_users_data]
|
||||
# 人员
|
||||
employee_users_list = [em.id for em in self.employee_ids]
|
||||
employee_users_list = self.employee_ids.ids
|
||||
# 角色人员
|
||||
for user_id in self.users_role_ids:
|
||||
department_users_data = self.env['hr.employee'].search([('user_role_id', '=', user_id.id)])
|
||||
|
||||
Reference in New Issue
Block a user