Pembuatan Wizard OpenERP

Wizard memiliki banyak fungsi, disamping untuk fasilitas eksport import, wizard juga bisa untuk membuat report, update field, dan masih banyak lagi. Ok, kita langsung aja bikin modulnya. Seperti biasa, hal yang pertama kita lakukan dalam membuat suatu modul adalah membuat folder yang berisi __init__.py dan __openerp__.py, untuk isinya mungkin akan saya lewatkan, karna teman-teman pasti sudah terbiasa. Selanjutnya adalah membuat file python dengan judul wizard.py, yang isinya seperti dibawah ini :

class CobaWizard(osv.osv_memory):
    _name = "coba.wizard"
    _columns = {
        'year': fields.selection([(2012, 2012), (2013, 2013)], 'Year'),
        'month': fields.selection([(1, 'Januari'), (2, 'Februari'), (3, 'Maret')], 'Month'),
        'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, select=True),           
    }  
    _defaults = {'month':1, 'year':2012}
   
   
    def create_button(self, cr, uid, ids, context=None):
        return {}

CobaWizard()

Mungkin ada beberapa hal yang berbeda dari biasanya dalam membuat suatu object (tabel), untuk membuat wizard kita menggunakan library osv.osv_memory. Bedanya, jika kita menggunakan osv.osv maka object/tabel tersebut akan bersifat ‘permanen’ sedangkan osv.osv_memory akan menciptakan object ‘on the fly’, yaitu object tersebut hanya ‘ada’ ketika objectnya ‘dipanggil’. Pada object coba.wizard ada 3 field yang kita buat, yaitu 2 field selection (year, month) & 1 fiedl many2one (partner_id), penjelasannya bisa diliat di dokumentasinya ya 😀

Disana juga terdapat keyword _default, keyword ini berfungsi untuk memberikan nilai default pada masing-masing field, ketika wizard tersebut dijalankan. Kemudian disana juga terdapat 1 method yang bernama create_button(), method tersebut merupakan action/event dari button yang akan kita buat pada interface. Setelah kita berhasil membuat file pythonnya, selanjutnya adalah membuat interfacenya pada file wizard_view.xml, yang isinya seperti dibawah ini :

    <record model="ir.ui.view" id="view_wizard">
            <field name="name">Create Wizard Report</field>
            <field name="model">coba.wizard</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form col="3" string="Create Wizard Report">
                <group colspan="2">
                <separator string="Latihan Bikin Wizard" colspan="2"/>
                    <field name="partner_id"/>
            <field name="month"/>
                    <field name="year"/>
            </group>
            <group colspan="2">
                <button special="cancel" string="Cancel"/>
                <button name="create_button" string="Print" type="object" icon="gtk-print"/>
            </group>
                </form>
            </field>
        </record>
             
        <record model="ir.actions.act_window" id="action_wizard">
            <field name="name">Create Wizard</field>
            <field name="res_model">coba.wizard</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="target">new</field>
        </record>
      
    <menuitem id="menu_wizard" name="Latihan Wizard" action="action_wizard" parent="base.menu_sales"/>

Pada code xml diatas, ada 3 bagian utama. Yang pertama adalah inti dari interfacenya, baik tata letaknya masing-masing field/button, separator yang bisa berfungsi sebagai judul, maupun pengelompokannnya (group). Yang kedua adalah action/event dari menu pada saat di click. Yang terakhir adalah menu dari wizard yang kita ciptakan.

OK, cukup simple bukan ? mungkin ini saja yang bisa saya sampaikan, mohon kritik dan sarannya yang membangun. Thanks

Advertisements

5 thoughts on “Pembuatan Wizard OpenERP

  1. saya sudah berasil menginstall module diatas. bagaimana cara untuk menge test bahwa wizard yang saya buat jalan dengan baik?

    • Wizard merupakan suatu cara/shortcut untuk mencapai suatu tujuan. Misal untuk mecetak report, merubah sebuah field, dll

      Kebetulan pembuatan tutorial wizard diatas tidak memiliki tujuan 🙂 (karna pada action buttonnya methodnya tidak berisi code) jadi hanya sebatas membuat menu dan interface wizardnya.

      Jadi jika ingin memastikan benar atau tidak yaitu pastikan menu wizard tersebut tercipta dan akses menu tersebut untuk membuka suatu form, lalu tekan tombol Print dan wizard akan hilang….

  2. Pingback: Technical Training -Part 10- | Tutorial OpenERP

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s