Acciones de Sistema
Las acciones definen el comportamiento del sistema en respuesta a las acciones del usuario: inicio de sesión, botón de acción, selección entre otras. Estas pueden almacenarse en la base de datos o devolverse directamente como diccionarios, por ejemplo, en métodos de botón.
Definición de acción:
<record id="ACTION_ID" model="ACTION_MODEL_ID"> <field name="name">NAME</field> <field name="res_model">MODEL.NAME</field> <field name="view_mode">list,form</field></record>Tipos de Acciones
Section titled “Tipos de Acciones”- Acción de Ventana, id de modelo
ir.actions.act_window - Acción de URL, id de modelo
ir.actions.act_url - Acción de Servidor, id de modelo
ir.actions.act_server - Acción de Reporte, id de modelo
ir.actions.report - Acción de Cliente, id de modelo
ir.actions.client - Acción Planificada, id de modelo
ir.cron
Acción de Ventana (ir.actions.act_window)
Section titled “Acción de Ventana (ir.actions.act_window)”El tipo de acción más común, utilizado para presentar visualizaciones de un modelo a través de vistas una acción de ventana define un conjunto de tipos de vista (y posiblemente vistas específicas) para un modelo (y posiblemente un registro específico del modelo).
Ejemplo de acción de ventana:
<record id="test_model_action" model="ir.actions.act_window"> <field name="name">Test action</field> <field name="res_model">test_model</field> <field name="view_mode">list,form</field></record>Las acciones se pueden activar de tres formas:
- Haciendo clic en los elementos del menú (vinculados a acciones específicas)
- Haciendo clic en botones en vistas (si están conectados a acciones)
- Como acciones contextuales en el objeto
Vista de Menu
Section titled “Vista de Menu”Definición de menú:
<menuitem id="ROOT_MENU_ID" name="ROOT_MENU_NAME"> <menuitem id="FIRST_LEVEL_MENU_ID" name="FIRST_LEVEL_MENU_NAME"> <menuitem id="ITEM_MENU_ID" name="ITEM_MENU_MENU_NAME" action="ACTION_ID"/> </menuitem></menuitem>Los menús siguen una arquitectura de tres niveles:
- El menú raíz, que se muestra en el Conmutador de aplicaciones (el conmutador de aplicaciones de la Comunidad Odoo es un menú desplegable)
- El menú del primer nivel, que se muestra en la barra superior
- Los menús de acción

Ejemplo de menu de dos niveles:
<menuitem id="test_menu_root" name="Test"> <menuitem id="test_first_level_menu" name="First Level"> <menuitem id="test_model_menu_action" action="test_model_action"/> </menuitem></menuitem>Acción de URL (ir.actions.act_url)
Section titled “Acción de URL (ir.actions.act_url)”Las acciones de URL permiten abrir direcciones de sitio web/página web a través de una acción de Odoo. Se puede personalizar a través de dos campos:
Ejemplo de acción de URL:
{ "type": "ir.actions.act_url", "url": "https://odoo.com", "target": "self",}Acción de Servidor (ir.actions.act_server)
Section titled “Acción de Servidor (ir.actions.act_server)”La acción del servidor funciona sobre un modelo base y ofrece varios tipos de acciones que se pueden ejecutar automáticamente, por ejemplo, utilizando reglas de acción base, o manualmente, agregando la acción en el menú contextual “Más”.
Acciones disponibles:
- Ejecutar código Python: un bloque de código python que se ejecutará
- Crear un nuevo registro: crear un nuevo registro con nuevos valores
- Escribir en un registro: actualizar los valores de un registro
- Ejecutar varias acciones: defina una acción que desencadene varias otras acciones del servidor
Los registros en la base de datos son significativamente más ricos y pueden realizar una serie de acciones específicas o genéricas en función de su estado. Algunos campos y los comportamientos correspondientes se comparten entre estados:
code: Ejecuta el código python proporcionado a través del argumento code.object_create: Crea un nuevo registro del modelo crud_model_id siguiendo las especificaciones fields_lines.object_write: Actualiza los registros actuales siguiendo las especificaciones fields_linesmulti: Ejecuta varias acciones dadas a través del argumento child_ids.
Ejemplo de acción de servidor:
<record id="test_model_server_action" model="ir.actions.server"> <field name="name">Test Model Server Action</field> <field name="model_id" ref="model_demo_19_test_model"/> <field name="state">code</field> <field name="code">action = model.get_test()</field></record>Acción de Cliente (ir.actions.client)
Section titled “Acción de Cliente (ir.actions.client)”La acción de cliente desencadena una acción implementada completamente en el cliente.
Ejemplo de acción de cliente:
{ "type": "ir.actions.client", "tag": "pos.ui"}Acción Planificada (ir.cron)
Section titled “Acción Planificada (ir.cron)”Las acciones planificadas, son activadas automáticamente en una frecuencia predefinida.
Ejemplo de acción planificada:
<record id="cron_method" model="ir.cron"> <field name="name">Cron method</field> <field name="model_id" ref="model_demo_19_test_model"/> <field name="state">code</field> <field name="code">model.cron_method()</field> <field name="user_id" ref="base.user_root"/> <field name="interval_number">1</field> <field name="interval_type">days</field> <field name="active" eval="False"/></record>