Using the action menu button in Odoo, we could wish to take some action to modify the current record or set of records. This blog post addresses modifying or updating the current record or group of records as well as adding a button to the action menu. You can change an action for a single record or a group of records by using the action menu button. However, only the operations for the present records will be impacted by the buttons inside the record.
The button is displayed in the form view and tree view in Odoo action. We can put a button inside the form view if we just want to act on one record. If not, we may incorporate a button inside the tree view to handle multiple or selected records.
To add a button inside an action menu in Odoo 16, you need to follow the following steps:
We can consider an example of adding an “Update invoice date” button via the action menu
Step 1. First, we can create a python function to update the invoice date.
class AccountMoveInherit(models.Model):
_inherit = 'account.move'
def action_update_invoice_date(self):
self.write({'invoice_date': fields.Date.today()})
Step 2. Define a new action in the XML file:
<record model="ir.actions.server" id="action_update_invoice_date">
<field name="name">Update Invoice Date</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="binding_model_id" ref="account.model_account_move"/>
<field name="state">code</field>
<field name="code">
action = records.action_update_invoice_date()
</field>
</record>
So, under the actions menu, we can see a button/submenu named as “Update Invoice date”.
Upon clicking “Update Invoice Date” we can see that the invoice date becomes updated.
Currently, this is only available in the form view. If you want to add this under the tree view, please add the code below.
<field name="binding_model_id" ref="account.model_account_move"/>
<field name="binding_view_types">list,form</field>
‘binding_model_id’ defines which model is adding the action. ‘binding_view_types’ defines the view type for which action appears.
These are the steps for creating a button under the action menu.