Закрыть всплывающее диалоговое окно, вызываемое из метода - PullRequest
0 голосов
/ 19 июня 2019

При открытии всплывающего диалогового окна после нажатия кнопки сохранения диалоговое окно не закрывается.

Я знаю, что могу добавить

<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 Ответ

1 голос
/ 19 июня 2019

Я думаю, что понял вас, но разве вы не можете просто открыть свое всплывающее окно с 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.

EDIT

После прочтения ваших комментариев я понимаю, что вы хотите избавиться от своих кнопок при редактировании записи, потому что в этом случае вы видите 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>
...