Server Actions - Navigate

server_action_navigate
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/18.0/server_action_navigate
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_automation
    - base
    - digest
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - sms
    - iap_mail
    - iap
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides a generic tool to have the possibility to see a
list of records associated to a given selection of records. This is
basically the UI version of `recordset.mapped('field1.field2')`.

For example, if you use the sale module, you can configure an action to
see all the products that have been sold for a given selection of sale
orders.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server xpath Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', navigate_model_technical_name)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • navigate_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_navigate_infos' string='Final Navigation Model'
  • navigate_model_technical_name Char
    compute='_compute_navigate_infos'
  • state Selection
    ondelete={'navigate': 'set default'} selection_add=[('navigate', 'Navigate')]
Public methods (1)
  • delete_last_line(self)

New fields (3)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_domain_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_field_domain_model_id' help="Technical field, used as a domain for the 'field' field." ondelete='cascade' string='Field Model'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', field_domain_model_id), ('ttype', 'in', ['many2one', 'one2many', 'many2many']),]" ondelete='cascade' required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/17.0/server_action_navigate
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSOCA-git-bot, Simone Rubino, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_automation
    - base
    - resource
    - web
    - mail
    - base_setup
    - bus
    - web_tour
    - sms
    - iap_mail
    - iap
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides a generic tool to have the possibility to see a
list of records associated to a given selection of records. This is
basically the UI version of `recordset.mapped('field1.field2')`.

For example, if you use the sale module, you can configure an action to
see all the products that have been sold for a given selection of sale
orders.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server notebook Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', navigate_model_technical_name)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • navigate_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_navigate_infos' string='Final Navigation Model'
  • navigate_model_technical_name Char
    compute='_compute_navigate_infos'
  • state Selection
    ondelete={'navigate': 'set default'} selection_add=[('navigate', 'Navigate')]
Public methods (1)
  • delete_last_line(self)

New fields (3)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_domain_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_field_domain_model_id' help="Technical field, used as a domain for the 'field' field." ondelete='cascade' string='Field Model'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', field_domain_model_id), ('ttype', 'in', ['many2one', 'one2many', 'many2many']),]" ondelete='cascade' required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/16.0/server_action_navigate
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSSylvain LE GAL, Weblate, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_automation
    - base
    - resource
    - web
    - mail
    - base_setup
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server xpath Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', navigate_model_technical_name)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • navigate_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_navigate_infos' string='Final Navigation Model'
  • navigate_model_technical_name Char
    compute='_compute_navigate_infos'
  • state Selection
    ondelete={'navigate': 'set default'} selection_add=[('navigate', 'Navigate')]
Public methods (1)
  • delete_last_line(self)

New fields (3)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_domain_model_id Many2one → ir.model
    comodel_name='ir.model' compute='_compute_field_domain_model_id' help="Technical field, used as a domain for the 'field' field." ondelete='cascade' string='Field Model'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', field_domain_model_id), ('ttype', 'in', ['many2one', 'one2many', 'many2many']),]" ondelete='cascade' required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/14.0/server_action_navigate
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSGitHub, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Ashish Hirpara, Melody Uffreduzzi
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_automation
    - base
    - resource
    - web
    - mail
    - base_setup
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server xpath Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • max_navigate_line_model Char
    compute='_compute_max_navigate_line' store=True string='Max Navigate Model in lines'
  • max_navigate_line_sequence Integer
    compute='_compute_max_navigate_line' store=True string='Max Navigate sequence in lines'
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', max_navigate_line_model)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • state Selection
    ondelete={'navigate': 'set default'} selection_add=[('navigate', 'Navigate')]
Public methods (1)
  • delete_last_line(self)

New fields (4)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' ondelete='cascade' required=True string='Field'
  • field_model Char
    related='field_id.relation' store=True string='Model'
  • sequence Integer
    string='Sequence'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/13.0/server_action_navigate
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSJordiMForgeFlow, oca-travis, Weblate, OCA-git-bot, Quentin Tawry
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server xpath Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • max_navigate_line_model Char
    compute='_compute_max_navigate_line' store=True string='Max Navigate Model in lines'
  • max_navigate_line_sequence Integer
    compute='_compute_max_navigate_line' store=True string='Max Navigate sequence in lines'
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', max_navigate_line_model)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • state Selection
    selection_add=[('navigate', 'Navigate')]
Public methods (2)
  • delete_last_line(self)
  • run_action_navigate_multi(self, action, eval_context=None)
    @api.model

New fields (4)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' required=True string='Field'
  • field_model Char
    related='field_id.relation' store=True string='Model'
  • sequence Integer
    string='Sequence'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/12.0/server_action_navigate
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSSylvain LE GAL, oca-travis, OCA-git-bot, hugues de keyzer
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ir_actions_server_form ir.actions.server xpath Inherits base.view_server_action_form
Models touched (2)

New fields (5)
  • max_navigate_line_model Char
    compute='_compute_max_navigate_line' store=True string='Max Navigate Model in lines'
  • max_navigate_line_sequence Integer
    compute='_compute_max_navigate_line' store=True string='Max Navigate sequence in lines'
  • navigate_action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', max_navigate_line_model)]" help='Define here the action used when the navigation will be executed if empty, a generic action will be used.' string='Navigation Action'
  • navigate_line_ids One2many → ir.actions.server.navigate.line
    comodel_name='ir.actions.server.navigate.line' inverse_name='action_id' string='Navigate Lines'
  • state Selection
    selection_add=[('navigate', 'Navigate')]
Public methods (2)
  • delete_last_line(self)
  • run_action_navigate_multi(self, action, eval_context=None)
    @api.model

New fields (4)
  • action_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' ondelete='cascade' required=True string='Action'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' required=True string='Field'
  • field_model Char
    related='field_id.relation' store=True string='Model'
  • sequence Integer
    default=1 string='Sequence'
Public methods (0)

No public methods.