Odoo 11 在同一模型的两个不同区域添加不同的操作菜单
Odoo 11 add different action menu in two different area for the same model
在 Odoo 11 中,我想要两个具有两种不同功能的不同操作菜单。
我想在 hr 工资单中添加电子邮件工资单 link 这就是我使用此代码添加电子邮件工资单操作菜单的原因
<?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>
但是这个也在员工行中添加了操作菜单。在员工行中,我想要一个不同的操作菜单。那么有人可以告诉我如何实现吗?
好吧,最后一改,我放弃了。我希望这正是您想要的。使用我在 中给你的答案的代码,只需将 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,
}
这将打开您喜欢的电子邮件撰写消息 pop-up,即使您选择了多个工资单(在这种情况下,预览不会替换 Mako 变量)。
我知道一开始很难,但正如@EasyOdoo 评论的那样,你必须从答案中获得灵感并对其进行调查,这样你才能提出更小、更准确的问题并获得良好的回应很容易。
在 Odoo 11 中,我想要两个具有两种不同功能的不同操作菜单。
我想在 hr 工资单中添加电子邮件工资单 link 这就是我使用此代码添加电子邮件工资单操作菜单的原因
<?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>
但是这个也在员工行中添加了操作菜单。在员工行中,我想要一个不同的操作菜单。那么有人可以告诉我如何实现吗?
好吧,最后一改,我放弃了。我希望这正是您想要的。使用我在
@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,
}
这将打开您喜欢的电子邮件撰写消息 pop-up,即使您选择了多个工资单(在这种情况下,预览不会替换 Mako 变量)。
我知道一开始很难,但正如@EasyOdoo 评论的那样,你必须从答案中获得灵感并对其进行调查,这样你才能提出更小、更准确的问题并获得良好的回应很容易。