Día 19: XML de Asistentes (Wizards) — Vista, Acción y target=»new»

¡Felicidades! En el Día 18 creamos el motor (el TransientModel). Hoy creamos la carrocería y el interruptor de encendido: la Vista y la Acción XML que permiten al usuario interactuar con el Asistente o Wizard.

Sin estos ficheros XML, nuestro modelo transitorio existiría en la base de datos, ¡pero no podríamos verlo ni usarlo!

¿Qué hemos cubierto en el Día 19?

Hemos añadido el código XML necesario para que el Asistente se manifieste correctamente en el frontend de Odoo V19.

Los componentes clave que hemos cubierto son:

1. La Vista de Formulario del Asistente

Al igual que un modelo permanente, un TransientModel necesita una vista de formulario <form>. Sin embargo, esta vista suele ser muy simple, conteniendo únicamente los campos del wizard (que son temporales) y los botones de acción (ej. «Confirmar», «Cancelar»).

2. La Acción de Ventana para el Wizard

Esta acción es la que se ejecuta cuando se hace clic en el botón que invocará el asistente. Debe ser de tipo ir.actions.act_window y debe apuntar al modelo transitorio.

  • La Clave del Pop-up: target=»new»: Este atributo es vital. Si no se especifica, Odoo intentará abrir el formulario en la ventana principal, lo cual causaría un error o una mala experiencia de usuario. target=»new» asegura que se abra como un diálogo modal.

3. El Botón de Invocación en el Modelo Principal

Para lanzar el asistente, necesitamos un botón en el formulario principal del usuario (ej. en el formulario de la Tarea o del Pedido).

  • Atributo Clave: El botón debe tener type=»action» y su name debe ser el ID externo de la Acción de Ventana que acabamos de crear. Esto le indica a Odoo que al hacer clic, debe ejecutar esa acción, que a su vez, abrirá la ventana modal del Wizard.

Conexión al Flujo de Trabajo

El XML del asistente no solo es una cuestión estética; es el enrutador que toma la sesión del usuario, inyecta cualquier dato de contexto necesario y lanza el modelo transitorio para recopilar información antes de que la lógica de negocio se ejecute en el backend.


Explicación Detallada en Vídeo

En el siguiente vídeo, te muestro la sintaxis de la vista, la acción, y cómo se configuran el botón type=»action» y el target=»new» para completar el circuito del asistente de Odoo V19.


Código Fuente en GitLab

Puedes consultar el código fuente completo de esta lección, con la definición de la Vista y la Acción del Asistente en XML, directamente en nuestro repositorio.

➡️ Ver el Código en GitLab: https://github.com/angelmoya/calendario-adviento-curso-tecnico-odoo-19/tree/48d5da562d068977722e875b6505cc4a0cc1bf60


Conecta Conmigo y Sigue Aprendiendo

¡Ya puedes crear diálogos modales en Odoo! Mañana, el campo más útil para compartir datos.

YouTube: ¡No olvides suscribirte al canal para no perderte ninguna lección! http://www.youtube.com/@AngelMoya-Odoo