OdooWiki OCA HUB

Multi-Steps Wizards

multi_step_wizard folder_open OCA/server-ux open_in_new
Sin categoría Licencia: AGPL-3

Este módulo es una base para crear asistentes de varios pasos. Por sí solo no hace nada.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Un componente técnico que permite a los desarrolladores crear asistentes con varios pasos (Next / Go Back / Cancel) en Odoo. No añade ninguna funcionalidad visible por sí mismo; otros módulos lo utilizan para construir pantallas paso a paso.

Este módulo es una base para desarrolladores, no una funcionalidad de negocio. Proporciona una base reutilizable (un mixin) llamado multi.step.wizard.mixin sobre el que otros módulos pueden construir para crear asistentes que guíen a los usuarios a través de varias pantallas una tras otra.

Qué define: - Un campo indicador de paso (state) que rastrea en qué punto del asistente se encuentra el usuario, comenzando en "start" y terminando en "final". - Un indicador calculado (allow_back) que decide si debe mostrarse el botón "Go Back", en función de si existe un método de paso anterior para el paso actual. - Dos métodos de navegación, open_next y open_previous, que llaman a la lógica específica del paso y luego vuelven a abrir la misma ventana del asistente. - Un comportamiento predeterminado del primer paso (state_exit_start) que simplemente avanza al paso final.

La única pantalla que incluye es una vista de formulario para multi.step.wizard.mixin, con un pie de página que contiene tres botones: "Next" (oculto en el paso final), "Go Back" (oculto cuando no es posible retroceder) y "Cancel".

Como solo depende de base y no hace nada por sí mismo, los usuarios no verán ningún menú ni informe nuevo después de instalarlo. Su valor aparece solo cuando otro módulo lo hereda para construir un asistente multipaso concreto.

Depende de

base
Modelos y campos (1)
  • multi.step.wizard.mixin · modelo nuevostate, allow_back

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Ejemplo de clase:

class MyWizard(models.TransientModel):
    _name = 'my.wizard'
    _inherit = ['multi.step.wizard.mixin']

    project_id = fields.Many2one(
        comodel_name='project.project',
        name="Project",
        required=True,
        ondelete='cascade',
        default=lambda self: self._default_project_id(),
    )
    name = fields.Char()
    field1 = fields.Char()
    field2 = fields.Char()
    field3 = fields.Char()

    @api.model
    def _selection_state(self):
        return [
            ('start', 'Start'),
            ('configure', 'Configure'),
            ('custom', 'Customize'),
            ('final', 'Final'),
        ]

    @api.model
    def _default_project_id(self):
        return self.env.context.get('active_id')

    def state_exit_start(self):
        self.state = 'configure'

    def state_exit_configure(self):
        self.state = 'custom'

    def state_exit_custom(self):
        self.state = 'final'

Ejemplo de vista (nótese el modo, debe ser primary):

<?xml version="1.0" encoding="utf-8"?>
<odoo>

  <record id="my_wizard_form" model="ir.ui.view">
    <field name="name">my.wizard.form</field>
    <field name="model">my.wizard</field>
    <field name="mode">primary</field>
    <field name="inherit_id" ref="multi_step_wizard.multi_step_wizard_form"/>
    <field name="arch" type="xml">
      <xpath expr="//footer" position="before">
        <h1>
          <field name="name"
                readonly="state != 'start'"
                class="oe_inline"
                placeholder="Name"/>
        </h1>
        <group name="configure" invisible="state != 'configure'">
          <group>
            <field name="field1"/>
            <field name="field2"/>
          </group>
        </group>
        <group name="custom" invisible="state != 'custom'">
          <group>
            <field name="field3"/>
          </group>
        </group>
        <div name="final" invisible="state != 'final'">
          <p>The project is now configured.</p>
        </div>
      </xpath>
    </field>
  </record>

  <record id="open_my_wizard" model="ir.actions.act_window">
      <field name="name">My Wizard</field>
      <field name="res_model">my.wizard</field>
      <field name="view_mode">form</field>
      <field name="target">new</field>
      <field name="binding_model_id" ref="project.model_project_project" />
      <field name="binding_view_types">form</field>
  </record>
</odoo>

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.