Multi-Steps Wizards
by Camptocamp https://github.com/OCA/server-ux , Odoo Community Association (OCA) https://github.com/OCA/server-ux
Odoo
Availability |
Odoo Online
Odoo.sh
On Premise
|
Lines of code | 70 |
Technical Name |
multi_step_wizard |
License | AGPL-3 |
Website | https://github.com/OCA/connector-jira |
Versions | 11.0 14.0 16.0 12.0 13.0 15.0 |
Multi Steps Wizards
This module is a base for creating multi-steps wizards. It does nothing by itself.
Example of class:
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'
Example of view (note the mode, must be 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" attrs="{'readonly': [('state', '!=', 'start')]}" class="oe_inline" placeholder="Name"/> </h1> <group name="configure" attrs="{'invisible': [('state', '!=', 'configure')]}"> <group> <field name="field1"/> <field name="field2"/> </group> </group> <group name="custom" attrs="{'invisible': [('state', '!=', 'custom')]}"> <group> <field name="field3"/> </group> </group> <div name="final" attrs="{'invisible': [('state', '!=', 'final')]}"> <p>The project is now configured.</p> </div> </xpath> </field> </record> <act_window id="open_my_wizard" name="My Wizard" res_model="my.wizard" src_model="project.project" view_mode="form" target="new" view_type="form" /> </odoo>
Please log in to comment on this module