Tutorial Odoo 9.0 Part 12 : Wizards

จาก Morange Wiki

Wizards

แก้ไขไฟล์ดังนี้

openacademy/__init__.py

# -*- coding: utf-8 -*-
import controllers
import models
import partner
import wizard


openacademy/wizard/wizard.py

# -*- coding: utf-8 -*-

from openerp import models, fields, api

class Wizard(models.TransientModel):
    _name = 'openacademy.wizard'

    session_id = fields.Many2one('openacademy.session',
        string="Session", required=True)
    attendee_ids = fields.Many2many('res.partner', string="Attendees")


  • Launching wizards

แก้ไขไฟล์ดังนี้

openacademy/wizard/wizard.py

class Wizard(models.TransientModel):
    _name = 'openacademy.wizard'

    def _default_session(self):
        return self.env['openacademy.session'].browse(self._context.get('active_id'))

    session_id = fields.Many2one('openacademy.session',
        string="Session", required=True, default=_default_session)
    attendee_ids = fields.Many2many('res.partner', string="Attendees")


openacademy/views/openacademy.xml

                  parent="openacademy_menu"
                  action="session_list_action"/>

        <record model="ir.ui.view" id="wizard_form_view">
            <field name="name">wizard.form</field>
            <field name="model">openacademy.wizard</field>
            <field name="arch" type="xml">
                <form string="Add Attendees">
                    <group>
                        <field name="session_id"/>
                        <field name="attendee_ids"/>
                    </group>
                </form>
            </field>
        </record>

        <act_window id="launch_session_wizard"
                    name="Add Attendees"
                    src_model="openacademy.session"
                    res_model="openacademy.wizard"
                    view_mode="form"
                    target="new"
                    key2="client_action_multi"/>
    </data>
</openerp>


จากการแก้ไขโค้ดข้างต้น จะได้ผลลัพธ์ดังภาพ Odoo12-1.png
และเมื่อคลิกที่ Add attendees จะปรากฏหน้าต่างดังภาพ Odoo12-2.png