关闭从方法

时间:2019-06-19 06:23:24

标签: python python-2.7 odoo odoo-8

单击“保存”按钮后打开弹出对话框时,对话框不会关闭。

我知道我可以添加

<footer> 
<button name="save_item" string="Save" type="object" class="oe_highlight" />                 
<button string="Cancel" special="cancel" class="oe_highlight" />
</footer>

并在模型中添加方法save_item,该方法将返回True,并关闭弹出对话框。

但是,如果我单击网格(one2many小部件)上的项目,它将弹出带有操作按钮和自定义的保存/取消按钮。这样按钮将变得多余。

@api.multi
def add_item(self):
    # for record in self:
    return {
        "type": "ir.actions.act_window",
        "name": "Add Item",
        "res_model": "quotation.line",
        "view_type": "form",
        "view_mode": "form",
        "view_id": self.env.ref("prescription.view_quotation_line_form",False).id,
        "target": "new",
        "flags": {"form": {"action_buttons": True}},
        "context": {
                "default_quotation_id": self.id,
                },
    }

单击默认操作按钮后,是否可以关闭弹出对话框?

1 个答案:

答案 0 :(得分:1)

我想我已经了解您了,但是您不能将action_buttons设置为 False 来仅使用您自己的按钮来打开弹出窗口吗?

@api.multi
def add_item(self):
    # for record in self:
    return {
        "type": "ir.actions.act_window",
        "name": "Add Item",
        "res_model": "quotation.line",
        "view_type": "form",
        "view_mode": "form",
        "view_id": self.env.ref("prescription.view_quotation_line_form",False).id,
        "target": "new",
        "flags": {"form": {"action_buttons": False}},
        "context": {
                "default_quotation_id": self.id,
                },
    }

通过这种方式,用户只能单击您的按钮,并且可以使用save_item方法关闭弹出窗口。

编辑

阅读您的评论后,我了解到您要在编辑记录时摆脱自己的按钮,因为在这种情况下,您会看到4个按钮,默认按钮和您自己的。并且在创建时没有这个问题。我猜您已经创建了自己的添加项目按钮,并且您不允许用户使用默认的One2many 添加元素按钮等。然后尝试

...
    <field name="id" invisible="1"/>
...
<footer attrs="{'invisible': [('id', '!=', False)]}">
    <button name="save_item" string="Save" type="object" class="oe_highlight" />                 
    <button string="Cancel" special="cancel" class="oe_highlight" />
</footer>