Wizard
A wizard is a finite state machine.
There is also a more practical introduction into wizards.
-
class trytond.wizard.Wizard(session_id)
- This is the base for any wizard. It contains the engine for the finite
state machine. A wizard must have some State instance attributes
that the engine will use.
Class attributes are:
-
Wizard.__name__
- It contains the unique name to reference the wizard throughout the
platform.
-
Wizard.start_state
- It contains the name of the starting state.
-
Wizard.end_state
- It contains the name of the ending state.
-
Wizard.__rpc__
- Same as trytond.model.Model.__rpc__.
-
Wizard.states
- It contains a dictionary with state name as key and State as
value.
Class methods are:
-
classmethod Wizard.__setup__()
- Setup the class before adding into the trytond.pool.Pool.
-
classmethod Wizard.__post_setup__()
- Setup the class after added into the trytond.pool.Pool.
-
classmethod Wizard.__register__(module_name)
- Register the wizard.
-
classmethod Wizard.create()
- Create a session for the wizard and returns a tuple containing the session
id, the starting and ending state.
-
classmethod Wizard.delete(session_id)
- Delete the session.
-
classmethod Wizard.execute(session, data, state_name)
- Execute the wizard for the state.
session can be an instance of Session or a session id.
data is a dictionary with the session data to update.
active_id, active_ids and active_model must be set in the context
according to the records on which the wizard is run.
State
-
class trytond.wizard.State
- This is the base for any wizard state.
Instance attributes are:
-
State.name
- The name of the state.
StateView
-
class trytond.wizard.StateView(model_name, view, buttons)
- A StateView is a state that will display a form in the client.
The form is defined by the ModelView with the name
model_name, the XML id in view and the buttons.
Instance attributes are:
-
StateView.model_name
- The name of the ModelView.
-
StateView.view
- The XML id of the form view.
-
StateView.buttons
- The list of Button instances to display on the form.
Instance methods are:
-
StateView.get_view()
- Returns the view definition like
fields_view_get().
-
StateView.get_defaults(wizard, session, state_name, fields)
Return default values for the fields.
- wizard is a Wizard instance
- session is a Session instance
- state_name is the name of the State
- fields is the list of field names
-
StateView.get_buttons(wizard, state_name)
Returns button definitions of the wizard.
- wizard is a Wizard instance
- state_name is the name of the StateView instance
StateTransition
-
class trytond.wizard.StateTransition
- A StateTransition brings the wizard to the state returned by the
method having the same name as the state but starting with transition_.
StateAction
-
class trytond.wizard.StateAction(action_id)
- A StateAction is a StateTransition which let the client
launch an ir.action. This action definition can be customized with a
method on wizard having the same name as the state but starting with do_.
Instance attributes are:
-
StateAction.action_id
- The XML id of the ir.action.
Instance methods are:
-
StateAction.get_action()
- Returns the ir.action definition.