Skip to content

Row actions

Row actions turn a table into a worklist. Viewers tick rows, pick an action, and Odoo runs it on the records behind those rows: lock a batch of sales orders, confirm quotations, mark activities done. They do it from the dashboard, without opening each record.

Recent Orders lists the last 30 days of furniture orders, with two actions, Lock and Unlock, that lock and unlock the selected sales orders in Odoo Sales.

  1. Tick the rows to act on, in the checkbox column on the left. The box in the header (Select all rows) selects every row that matches the current search and filters, on all pages.

  2. Click Actions in the toolbar. The button shows how many rows are selected.

  3. Pick the action. Clear selection unticks everything.

  4. If the action asks for confirmation, check the message and click the action’s button.

The Recent Orders table with orders S21610 and S22561 ticked and the Actions menu open: 2 selected, Lock, Unlock and Clear selection
A confirmation window titled Lock: Run Lock on 2 records? with Lock and Cancel buttons

When it’s done, a message such as Lock: done on 2 records. appears and the table reloads. Rows stay where they were, so you can see the change: here the two orders’ Status turns to Locked.

If the action opens a window (a wizard, such as Odoo’s “send by email” form), the window opens instead, and the table reloads when you close it.

Group rows and the Opening row can’t be selected, and clicking a checkbox never opens the record. Selection isn’t available in the builder’s preview or while presenting the dashboard.

Row actions run on the table’s drilldown records, so the table must have drilldown turned on first.

  1. In the Dashboard Builder, select the table, open Configuration and expand Drilldown Options.

  2. Tick Enable Drilldown and choose the Drilldown Field that holds the record’s id. On a dataset built on an Odoo model, that’s id. On a custom SQL dataset, pick the id column (here order_id) and type the model in Drilldown Model (here sale.order).

  3. Expand Row Actions. It says which records the actions will run on.

  4. Fill in Button label (e.g. Confirm) with what viewers will see, and Method (e.g. action_confirm) with the Odoo method to call. Start typing the method name to get suggestions.

  5. Leave Confirm ticked to make viewers confirm before it runs.

  6. Click + Add Action for each further action, then click Save & Preview.

Drilldown Options with Enable Drilldown and In-line Drilldown ticked, Drilldown Field order_id and Drilldown Model sale.order; Row Actions below with Lock running action_done and Unlock running action_unlock, both with Confirm ticked

If drilldown is off, the Row Actions section only says: Row actions run on the drilldown records, so enable Drilldown above first.

Rows of a summarised table carry the ids of every record in the row’s group, so an action on one row runs on all those records. The confirmation counts records, not rows.

The suggestions list the model’s public methods whose names start with action_ or button_. These are the methods behind the buttons on Odoo forms. Some common ones:

Model Method What it does
Sales order (sale.order) action_confirm Confirms quotations
Sales order action_done / action_unlock Locks / unlocks orders
Sales order action_cancel Cancels orders (may open a confirmation wizard)
Invoice (account.move) action_post Posts draft invoices
Purchase order (purchase.order) button_confirm Confirms RFQs

Methods are called with no arguments. One that only works on a single record, as many wizard-opening buttons do, fails with ‘…’ works on one record at a time. Select a single row. Viewers then select one row at a time.

  • Actions run as the viewer, with the viewer’s own Odoo access rights. Someone who can’t confirm orders in Sales can’t confirm them from the dashboard either; they get an error message instead.
  • Only the methods listed on the table can run, and never private methods (names starting with _). Viewers can’t call anything else through the table.
  • Each run is all or nothing. If the method fails halfway, the changes it made are rolled back and the error shows in a red message.
  • There is no undo. What the method does is what happens in Odoo. Keep Confirm ticked for anything you can’t easily reverse, and test new actions on a test database first.
  • Anyone who can see the dashboard can see the Actions button. Share dashboards with row actions only with the people who should run them; see Sharing and access.