Odoo 8:如何在新的打开后阻止向导关闭?

时间:2017-11-20 16:51:10

标签: python-2.7 odoo-8 wizard

我正在尝试创建一个向导,从res.partner的窗体视图中的按钮启动,其页脚上有两个按钮(除了'取消'一个):第一个启动一个方法,在相关内部做东西res.partner记录(但它对主要问题并不重要);第二个打开带有预编译值的电子邮件表单(同样,来自相关的res.partner的记录集值)。

我的问题是:当我点击打开电子邮件表单的“发送电子邮件”按钮时,如何阻止向导关闭,以便(在我完成电子邮件本身之后)我可以回到向导然后单击“执行操作”按钮?

我在Python 2.7.14中使用Odoo 8。 我已经阅读了类似的线程"Odoo - prevent button from closing wizard",但我不认为这些解决方案可以提供帮助:大多数解决方案只是打开一个新的向导(使用旧的向导),但这不是我需要的。电子邮件完成后,我需要旧的向导留在那里。

我的代码:

1-启动向导的按钮(来自res.partner):

<button string="Execute action" type="action"
    name="%(execute_action_wizard)d"
    attrs="{'invisible': [('action_required', '=', False)]}"
    class="oe_highlight"/>

2-启动向导的操作:

<record id="execute_action_wizard" 
    model="ir.actions.act_window">
    <field name="name">Execute action</field>
    <field name="res_model">
        account.payment.action.wizard</field>
    <field name="view_type">form</field>
    <field name="view_mode">form</field>
    <field name="view_id" 
        ref="execute_action_wizard_form_view"/>
    <field name="target">new</field>
</record>

3-向导本身内的按钮:

<button name="compute_execute_action"
    string="Execute action"
    class="oe_highlight"
    type="object"/>
<button name="open_form_send_mail"
    string="Send email"
    class="oe_highlight"
    type="object"
    attrs="{'invisible':[('send_mail', '=', False)]}"/>

4-电子邮件表单方法:

@api.multi
def open_form_send_mail(self):
    self.ensure_one()
    template_id = self.email_template_id.id
    partner_id = self._context['active_ids'][0]
    compose_form_id = self.env.ref(
        'mail.email_compose_message_wizard_form', False).id
    ctx = dict(
        default_res_id=partner_id,
        default_use_template=True,
        default_template_id=template_id or False,
        default_composition_mode='comment',
        default_model='res.partner',
        default_partner_ids=[(6, 0, [partner_id])],
        default_subject=_(u"Client email")
        )
    return {
        'name': _('Compose Email'),
        'context': ctx,
        'type': 'ir.actions.act_window',
        'target': 'new',
        'res_model': 'mail.compose.message',
        'views': [(compose_form_id, 'form')],
        'view_id': compose_form_id,
        'view_mode': 'form',
        'view_type': 'form',
        'flags': {'action_buttons': True},
    }

请帮帮我。这让我发疯了。

0 个答案:

没有答案