Author: |
Camptocamp,Odoo Community Association (OCA) |
License: |
AGPL-3 |
Branch: |
merge-branch-1305-11.0.1.25.0 |
Repository: |
camptocamp/connector-jira |
Dependencies: |
base |
Languages: |
PO File (39, 17.6%),
Python (85, 38.3%),
XML (23, 10.4%),
and
reStructuredText (75, 33.8%) |
Other branches: |
11.0,
11.0-ocabot-merge-pr-34-by-simahawk-bump-patch,
merge-branch-1305-11.0.1.24.3,
merge-branch-1305-11.0.1.26.0,
merge-branch-1305-11.0.1.26.1,
merge-branch-1305-11.0.1.26.2,
merge-branch-1305-11.0.1.26.3,
merge-branch-1305-11.0.1.26.5,
merge-branch-1305-872_fix_tempo_jira_status_sync-ba465b56,
merge-branch-1305-872_fix_tempo_jira_status_sync_2-91790080,
merge-branch-1305-c2c-956_jira_epic_link_on_epic-f34e683f,
merge-branch-1305-c2c-958_hours_block_servicedesk_url-1c1fec1a,
merge-branch-1305-c2c-958_hours_block_servicedesk_url-34c9a34a,
merge-branch-1305-c2c-958_hours_block_servicedesk_url-83bb03df,
merge-branch-1305-c2c-958_hours_block_servicedesk_url-87d645d6,
and
merge-branch-1305-c2c-958_hours_block_servicedesk_url-efd6ab82 |
Other repositories: |
ERPLibre/connector-jira,
NeatNerdPrime/connector-jira,
OCA/connector-jira,
SeuMarco/connector-jira,
brainbeanapps/connector-jira,
dingguijin/connector-jira,
grindtildeath/connector-jira,
guewen/connector-jira-1,
i-vyshnevska/connector-jira,
jcoux/connector-jira,
leemannd/connector-jira,
leonelfolmer/connector-jira,
lideritjnma/connector-jira,
magnuscolors/connector-jira,
and
tegin/connector-jira |
<h1 class="title">Multi Steps Wizards</h1>
<p>This module is a base for creating multi-steps wizards.
It does nothing by itself.</p>
<p>Example of class:</p>
<pre>
<code>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'</code>
</pre>
<p>Example of view (note the mode, must be primary):</p>
<pre>
<code><?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></code>
</pre>