Belajar Odoo Untuk Pemula [Part 3/8]

Seperti yang sudah saya sampaikan sebelumnya, di part 3 ini saya akan memberikan addons tentang puskesmas yang sudah saya siapkan di sini. Silahkan didownload dan dicopy ke folder custom_addons, uninstall dan hapus saja addons new_addons yang sudah ditambahkan sebelumnya.
Jangan lupa restart dan update apps list setiap ada penambahan addons. Jika sudah selesai copy, silahkan instal semua addons tersebut. Addons puskesmas ini dibuat khusus untuk tutorial ini berdasarkan perkiraan 😀 jadi tidak mewakili proses puskesmas yang sesungguhnya.

Semua menu yang ditambahkan dari addons tersebut disimpan di menu Puskesmas. Menu-menu tersebut dikelompokkan jadi dua, yaitu master data dan transaksi. Master data terdiri dari dokter, pasien, poli dan obat. Sementara transaksi terdiri dari pendaftaran, pemeriksaan dan pembayaran.

Perbedaan master data dan transaksi secara fungsional saya rasa anda sudah faham, jadi tidak perlu dijelaskan lagi. Namun secara teknis di odoo ada perbedaan yaitu transaksi menggunakan workflow sementara master data tidak (workflow akan dibahas di part 7). Proses di puskesmas ini diawali dari penginputan data dokter, poli dan obat. Jika ada pasien yang datang maka input data pasien saat mendaftar (kalau sebelumnya sudah pernah berobat maka tidak perlu diinput lagi). Kemudian admin puskesmas mengisi data pendaftaran, selanjutnya pasien menunggu antrian untuk dipanggil dokter. Jika sudah dipanggil maka pasien masuk ke ruang dokter dan melengkapi data pemeriksaan termasuk memberikan resep obat kepada pasien untuk ditebus di bagian obat. Setelah itu pasien menuju bagian obat untuk mengambil dan membayar obat. Di sana admin bagian obat melakukan validasi data pembayaran dan proses transaksi di puskesmas sudah selesai.

Silahkan anda explore penggunaannya lebih lanjut, dan untuk melihat contoh penginputannya mari simak video berikut :

Komposisi Module/Addons

Setiap modul odoo yang kita buat dapat berisi penambahan proses, attribute, tampilan, dll ataupun mengubah proses yang sudah ada, memperluas bahkan menghapus beberapa tampilan default yang dirasa tidak perlu. Jadi setiap ingin menambahkan atau mengubah proses default kita harus membuat modul baru dan sangat tidak dianjurkan mengubah langsung pada modul aslinya.

Dan setiap modul odoo dapat berisi beberapa bagian berikut :

  • Business objects : Ditulis menggunakan bahasa pemrograman python, dengan ekstensi .py
  • Data files : Ditulis menggunakan XML atau CSV. Kedua file ini akan menambahkan data ke dalam table database. Dan data yang ditambahkan tersebut dapat berfungsi sebagai tampilan/view aplikasi, konfigurasi, data demo, dll
  • Web controllers : Menangani permintaan dari web browsers
  • Static web data : Gambar, CSS atau javascript file yang digunakan oleh web interface atau website

Meskipun demikian, kita tidak harus selalu menambahkan semua bagian tersebut ketika membuat modul. Tapi bisa hanya menambahkan salah satu atau beberapa bagian saja. Misalnya dalam addons puskesmas yang anda download itu hanya memuat file dengan ekstensi py, XML dan CSV.

Selain itu dalam penulisannya odoo juga biasanya membagi ke empat bagian tersebut menjadi beberapa folder secara lebih spesifik sesuai dengan fungsinya masing-masing. Ini sama dengan konsep MVC (model, view, controller) pada aplikasi/sistem lainnya. Sebenarnya pembagian menjadi beberapa folder ini tidak wajib (kecuali static file), kita tetap bisa menambahkan file-file tersebut tanpa membagi jadi beberapa folder. Tapi dengan menerapkan konsep MVC ini dapat memudahkan kita ketika development karena lebih rapi.

Kalau anda ingin melihat struktur folder pada modul default odoo bisa lihat di odoo-10.0/addons. Odoo juga sudah menyediakan syntax untuk membuat modul odoo secara otomatis yang akan menghasilkan struktur addons default. Yaitu dengan masuk ke folder odoo di terminal dan ketikkan python odoo-bin scaffold <nama modul> <folder penyimpanan>. Contoh :

$ cd /home/miftah/odoo-10.0
$ python odoo-bin scaffold coba custom_addons

Note : seperti biasa, ganti miftah dengan user ubuntu anda

Maka akan terbuat addons baru di folder custom_addons dengan struktur sebagai berikut

Fungsi dari masing-masing folder tersebut adalah :

  • controllers : berisi file untuk menangani permintaan dari web browser (py)
  • demo : berisi data demo yang akan terbaca jika kita mencentang Load Demonstration Data saat instal database (XML, CSV, YML)
  • models : berisi file untuk mendeklarasikan object, field, method, dll (py)
  • security : berisi file-file yang berhubungan dengan hak akses (XML, CSV)
  • views : berisi file-file untuk membuat view atau mengatur tampilan (XML)

Selain beberapa folder tersebut, ada juga folder-folder lain yang sering dipakai, seperti :

  • doc : berisi file document (ODS, PDF)
  • i18n : berisi file terjemahan (po, pot)
  • report : berisi file-file report (py, XML)
  • static : berisi file untuk mendukung tampilan, khususnya pada website (css, js, png, gif, less, xml)
  • test : berisi file untuk melakukan testing otomatis. Ini bisa dijalankan dengan menambahkan --test-enable saat menjalankan service (YML, XML)
  • tests : hampir sama dengan test, cuma beda ekstensi file (py)
  • wizard : Membuat object dan tampilan pop-up, data yang diinput disimpan sementara (py, XML)
  • dll

Jujur saja dari beberapa folder tersebut belum semuanya saya coba, sehingga ada beberapa yang saya tidak tahu fungsinya secara detail 😀

Kemudian ada dua file yang harus ada :

  • __manifest__.py : modul odoo dideklarasikan dengan __manifest__.py, jika tidak ada file ini maka tidak akan terbaca di Apps. Penjelasan mengenai isi file ini bisa dilihat kembali di part 2.
  • __init__.py : modul odoo juga merupakan python package sehingga menggunakan file __init__.py yang berisi perintah untuk mengimport beberapa file python dalam modul. Jika file python terbagi menjadi beberapa folder, maka setiap folder harus menyertakan file __init__.py dan pada file __init__.py paling atas harus meng import folder-folder tersebut.

Terimakasih, semoga bermanfaat dan CMIIW…

Tutorial odoo/openerp Indonesia