Membuat custom module odoo (part 2): menambahkan field ke module bawaan

Membuat custom module odoo (part 2): menambahkan field ke module bawaan

Halo, Kali ini kita akan membuat modul untuk melakukan kustomisasi pada modul odoo yang lain(maksudnya?)

Ya, misalkan kita sudah menginstall suatu modul bawaan, misalnya modul purchase, nah ternyata dalam proses purchasing perusahaan kita, ada field tambahan yang tidak dimiliki oleh model pada modul bawaan purchasing di odoo, kita bisa mengatasinya dengan membuat modul baru untuk mengkustomisasi modul bawaan tersebut.

Untuk tutorial kali ini kita akan mencoba menambahkan field pada modul purchase.

Pertama, kita perlu membuat folder untuk module, dan membuat file __init__.py dan __manifest__.py (seperti pada postingan ini). Tambahkan purchase pada kolom depends pada file __manifest__ kita.

Aktifkan mode debug, agar kita tau external_id dari view mana yang field kita ingin tampilkan, juga model dimana field kita tambahkan.

Beda ya, modul dengan model. Model merupakan representasi dari objek/tabel dalam database, sementara module merupakan kumpulan dari view, data, model, controller. Nama dari module didapat dari folder modul tersebut. Sementara nama dari model didefinisikan pada property _name pada class model. Modul bisa berisi beberapa model sekaligus, atau tidak sama sekali.

Untuk masuk ke mode developer/ mode debug bisa dengan menambahkan parameter ?debug di url kita(setelah web), misal http://localhost:8069/web?debug. 

Sebelumnya install dulu modul purchase (karena kita ingin mencustom modul ini). Setelah itu masuk ke tab purchase. pilih salah satu data. Buka debug view window, dengan cara. Klik ikon serangga di pojok atas => Edit form view.

Akan muncul informasi dari halaman view yang sedang aktif. Kita juga bisa mengotak atik view dari window ini, tapi kita tidak menggunakan fitur tsb, kita hanya akan mengambil informasi saja.

Disini ada informasi tentang model yang digunakan dalam view tersebut. ini adalah nama model yang akan kita tambahi field. disini nama modelnya adalah purchase.order.

Selain itu juga external_id dari view yang sedang aktif. external_id berguna nanti saat kita akan menginherit view ini

Buat folder models, buat file class dalam folder tersebut untuk memodifikasi model purchase. jangan lupa buat file __init__.py

Kita bisa menampilkan field yang baru saja kita buat dengan cara menambahkan view yang menginherit view saat ini, untuk itulah kira membutuhkan external_id dari view saat ini, sebagai referensi inheritance.

pada line ke 8, field name=”origin” itu sebagai patokan dimana kita ingin menambahkan field kita, position=”after” berarti kita akan menyisipkan field kita setelah field patokan(field origin).

Sementara deadline merupakan field yang baru kita buat dengan menginherit model purchase.order

Untuk mendapatkan nama field kita tinggal menaruh kursor diatas field. Nanti akan muncul informasi dari field tersebut.

 

Untuk source dari tutorial ini bisa diunduh di: https://github.com/hprasetyou/odoo-tutorial

 

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *