===================
Multi-Steps Wizards
===================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github
:target: https://github.com/OCA/server-ux/tree/14.0/multi_step_wizard
:alt: OCA/server-ux
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-multi_step_wizard
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/250/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module is a base for creating multi-steps wizards. It does nothing by
itself.
**Table of contents**
.. contents::
:local:
Usage
=====
Example of class:
.. code:: python
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):
.. code:: xml
my.wizard.formmy.wizardprimary
The project is now configured.
My Wizardmy.wizardformnewform
Bug Tracker
===========
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback `_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Camptocamp
Contributors
~~~~~~~~~~~~
* Guewen Baconnier
* `CorporateHub `__
* Alexey Pelykh
* Sunanda Chhatbar
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/server-ux `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.