python - Odoo 11 在同一模型的两个不同区域添加不同的操作菜单

标签 python odoo odoo-11

在 Odoo 11 中,我想要两个具有两种不同功能的不同操作菜单。

在人力资源工资单中,我想添加电子邮件工资单链接,这就是我使用此代码添加电子邮件工资单操作菜单的原因

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <record id="action_email_payslip" model="ir.actions.server">
      <field name="name">Email Payslip</field>
            <field name="model_id" ref="hr_payroll.model_hr_payslip"/> 
            <field name="binding_model_id" ref="hr_payroll.model_hr_payslip"/>
            <field name="state">code</field> 
            <field name="code"> 
            action = records.action_email_payslip_send() 
            </field>
    </record>
    </data>
</odoo>

但这一个也在员工行中添加了操作菜单。在员工行中,我想要一个不同的操作菜单。那么有人可以告诉我如何实现这一目标吗?

最佳答案

好吧,最后一次改变,我放弃了。我希望这正是您想要的。使用我在How to send an email from a button located in the action dropdown of an Odoo 11 form?中给您的答案的代码,只需将 Python 方法替换为以下方法即可:

@api.multi
def action_email_payslip_send(self):
    template = self.env.ref(
        'your_module_name.email_template_payslip',
        False,
    )
    compose_form = self.env.ref(
        'mail.email_compose_message_wizard_form',
        False,
    )
    ctx = dict(
        default_model='hr.payslip',
        default_use_template=bool(template),
        default_template_id=template and template.id or False,
    )
    if len(self) == 1:
        ctx.update({
            'default_composition_mode': 'comment',
            'default_res_id': self.ensure_one().id,
        })
    else:
        ctx.update({
            'default_composition_mode': 'mass_mail',
            'active_ids': self.ids,
        })
    return {
        'name': _('Compose Email'),
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'mail.compose.message',
        'views': [(compose_form.id, 'form')],
        'view_id': compose_form.id,
        'target': 'new',
        'context': ctx,
    }

即使您选择多个工资单,这也会打开您喜欢的电子邮件撰写消息弹出窗口(在这种情况下,预览不会替换 Mako 变量)。

我知道一开始很难,但正如@EasyOdoo评论的那样,你必须从答案中获取想法并进行调查,这样你就能够提出更小、更准确的问题,并轻松获得良好的答复。

关于python - Odoo 11 在同一模型的两个不同区域添加不同的操作菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108578/

相关文章:

python-3.x - 在 Odoo 11 中提高体积小数精度或更改单位

odoo - 如何在 TreeView 上默认隐藏或删除复选框列?

javascript - 从 odoo 的 pdf_viewer 小部件中删除下载按钮

javascript - 高级 API : calling into Odoo models HowTo

python - OpenERP 自定义模块在模块列表更新后不显示

python - 为什么我必须将可调用对象传递给 re.sub 以生成大写字符串?

python - odoo/openerp 服务器配置选项 "--load"

python - win32com Excel 舍入货币和会计格式,但不包括一般格式或数字格式 (Python)

python - IBM Cloud Kubernetes 部署的 URL

python - Ibpy 与 Interactive Brokers API 不工作