Odoo Help


Modify / override button action in header of form ?

on 12/6/13, 7:26 AM 6,920 views


It's a bit confusing for me : I would like to modify / override a button displayed in the header of a form to match the action of the button to one of mine defined in Configuration -> Actions -> Actions.

An example: I've defined a new action which type is "ir.actions.report.xml" to output a special report for the sale.order form. I would like to replace the print button in the header of this form by one to launch my new action. I found the line : button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight" groups="base.group_user"

But what's next ? override with a new button ? Which is the button "type" I need to fill in my xml ?

Many thanks for your advices. Regards.


Serpent Consulting Services Pvt. Ltd.

--Serpent Consulting Services Pvt. Ltd.--
Serpent Consulting Services Pvt. Ltd.
| 6 6 8
Gandhinagar, India
--Serpent Consulting Services Pvt. Ltd.--

Serpent Consulting Services Pvt. Ltd. Your Odoo/OpenERP Solution, just an email away!

Serpent Consulting Services Pvt. Ltd.
On 12/6/13, 8:29 AM

Hello Benoit,

You need to inherit the sale.order view in you custom module and then try the following code.

Following code will replace the button:

<button name="print_quotation" position="replace">
    <button name="%(your_action)d" string="Print" type="action" states="draft" class="oe_highlight"/>

After this, you need to update your module.


Serpent Consulting Services

Thank for your answer. After deep searching, that doesn't suit my needs. I will keep the button but just need to delete the default standard report defined in sale order module. I know how to add a new one but what about deleting the default report in code ???

on 12/7/13, 1:37 PM
On 12/6/13, 3:17 PM

Thank you for your answer.

After searching deep, I don't need to change the default button action. I must change the default report opened by the button.

Doing this manually is like : Configuration -> Actions -> Reports remove the 'standard' sale order for example and make my new report service name = sale.order

But the problem is that OpenERP will rollback my changes at each module update.

I can create a new module to define my report but how do I delete the entry brought by sale_order module ? : report auto="False" id="report_sale_order" model="sale.order" name="sale.order" rml="sale/report/sale_order.rml" string="Quotation / Order" usage="default"/>

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 12/6/13, 7:26 AM
Seen: 6920 times
Last updated: 9/12/17, 12:20 AM