多步骤向导

odoo11-addon-multi-step-wizard的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'

视图示例(注意模式,必须是主视图):

<?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>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从InputStream中准确读取4个字节?   Java错误:找不到符号(使用add调用arrayList时)   JavaFX表格视图分组行   java Akka PoolRouter添加withBroadcastPredicate正在冻结应用程序   java在何处以及如何解码@PathVariable   java扩展类后如何扩展类数组/调用类数组属性?   Java:如何让对象引用它在其中实例化的对象   从POSTMAN接收到的数据与JAVA rest api调用不匹配   jar中的java文件加载   java不能使用Scanner。下一步()和扫描仪。nextInt()在一起   java如何加载日志。Jboss中项目的resources文件夹中的xml文件   io如何在Java中压缩文件和文件夹?   java如何在JDesktopPane中锁定内部框架   EclipseJDK9不允许我使用字符串:“java.lang.String不明确”?   java会话。delete()不工作   java循环用户输入,直到满足条件   图形Java Delta时间会导致不平稳的移动   java在HQL中使用瞬态字段