好吧,最后一次改变,我放弃了。我希望这正是您想要的。使用我给你的答案的代码如何通过 Odoo 11 表单操作下拉列表中的按钮发送电子邮件? https://stackoverflow.com/questions/55949799/how-to-send-an-email-from-a-button-located-in-the-action-dropdown-of-an-odoo-11/56019982#56019982,只需将 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 评论的那样,你必须从答案中获取想法并进行调查,这样你就能够提出更小、更准确的问题,并轻松获得良好的答复。