限制员工发布工作的记录规则,odoo 14

A record rule to restrict employees from publishing jobs, odoo 14

我想创建一级记录规则,限制员工发布工作并将其发送给经理批准。比如如果他们想要发布并点击发布按钮,它应该向经理发送发布工作的请求,并让他们知道。 这是我的代码:

<record id="group_manager_hr_job" model="res.groups">
            <field name="name">Hr_Job / Manager</field>
        </record>


<record id="group_only_manager_responsible_can_modify" model="ir.rule">
            <field name="name">Only Manager can publish jobs</field>
            <field name="model_id" ref="model_hr_job"/>
            <field name="groups" eval="[(4, ref('hr_job.group_manager_hr_job'))]"/>
            <field name="perm_read" eval="1"/>
            <field name="perm_write" eval="1"/>
            <field name="perm_create" eval="1"/>
            <field name="perm_unlink" eval="1"/>
            <field name="domain_force">
                ['|','|',('employee_id.user_id','=',manager.user.id),
                ('employee_id.parent_id.user_id','=',manager.user.id),
                ('default_job_id.is_published','=',is_published)]
            </field>
        </record>

您可以使用python方法将状态更改为“等待批准”,然后向经理发送消息。

def button_request_publish(self):
    #method message post here
    partners = []
    user_obj = self.env['res.users'].sudo().search(use domain to find manager related to document)
    for x in user_obj:
        partners.append(x.partner_id.id)

    msg = "Your message to manager"
    self.sudo().message_post(body=msg, message_type="notification", partner_ids=partners)

    self.write({'state': 'waiting_approval'})

def approve_manager_publish(self):
    # write your code to publish here

    self.write({'state': 'approve'})

按钮“发送发布请求”有组用户,然后按钮“批准发布”有组管理员。