Issue Wizard OpenERP 7

Jika kita terbiasa membuat wizard pada v6 maka ketika kita upgrade ke v7 akan kita jumpai sedikit perbedaan pada beberapa hal. Terlebih jika kita juga terbiasa membuat field dengan tipe binary pada wizard yang digunakan untuk mentransfer file data baik eksport maupun import, maka ada sesuatu yang akan menjadi issue baru. Diantaranya adalah pada saat kita membuat event button dengan type ‘object’ maka tampilan wizard akan hilang bersamaan dengan action penekanan button tersebut. Padahal kita masih memerlukan tampilan wizard tersebut untuk mengakses informasi yang lain, misalnya untuk mendownload file hasil eksport dari wizard tersebut.

Penulis awalnya mengira hal tersebut merupakan bug dan cukup kita tambahkan beberapa code parameter key seperti ‘nodestroy’. Ternyata -setelah googling- hal itu merupakan salah satu update yang baru yang ada pada v7, yaitu setiap event button dengan type ‘object’ pada wizard (osv_memory) maka akan secara otomatis menghilang tampilannya ketika action button dilakukan.

Maka solusi untuk issue tersebut adalah dengan mereturn tampilan awal pada method event button terkait. Gunakan code dibawah ini untuk mencobanya :

        return {
            'view_type': 'form',
            'view_id' : [view_id],
            'view_mode': 'form',
            'res_id': val.id, # ID aktif form wizard, caranya: val=self.browse(cr,uid,ids)[0]
            'res_model': 'eksport.import', # Object wizard terkait
            'type': 'ir.actions.act_window',
            'target': 'new',
        }

Pada code diatas ada beberapa variabel yang terlebih dahulu harus kita definisikan, diantaranya :

view_rec = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'nama_modul_wizard', 'id_xml_tampilan_form_wizard')
view_id = view_rec[1] or False

Dengan code diatas maka issue ‘menghilang (destroy)’ form wizard pada saat button ditekan in syaa Allah akan diatasi.

Issue yang kedua pada v7 ini adalah field dengan tipe binary yang kita gunakan untuk ‘menampung’ hasil proses eksport yang akan kita download tidak otomatis memiliki nama yang kita inginkan, tetapi system akan mengenerate nama file sesuai object + urutan action eksportnya (ex: sale_order_13) sehingga nama file tersebut tidak memiliki ekstensi (format). Untuk solusi issue diatas adalah dengan menambahkan parameter ‘filename’ seperti contoh dibawah ini :


<field name="data_file" nolabel="1" filename="name" colspan="4"/>

Pada contoh diatas saya merefer nama file hasil eksport diatas sesuai dengan field name, sehingga kita tambahkan pada file pythonnya seperti ini :


self.write(cr, uid, ids, {'data_file':out, 'name': 'eksport.csv'}, context=context)
      

Selamat mencoba & semoga bermanfaat …

Advertisements

One thought on “Issue Wizard OpenERP 7

  1. 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