Panduan ini dibuat dengan tujuan untuk meningkatkan kualitas kode aplikasi clickERP. Kode yang ditulis dengan baik dapat meningkatkan keterbacaan, memudahkan pemeliharaan, membantu debugging, mengurangi kompleksitas, dan meningkatkan keandalan. Pedoman ini harus diterapkan pada setiap pengembangn modul baru maupun modul yang sudah ada.
Panduan ini diadaptasi dari Pedoman Pengkodean Odoo yang dibuat agar lebih cocok dengan kebutuhan dari proyek clickERP.
sale bukan sales.base_. Contoh: base_address.mail dengan
menambah fungsi forward pesan maka nama modul yang kamu buat adalah
mail_forward.Pola nomor versi dalam manifes modul harus berupa versi mayor Odoo (misal 15.0)
diikuti dengan nomor versi modul x.y.z. Contohnya adalah 15.0.1.0.0 yang dapat
dibaca bahwa modul tersebut merupakan versi rilis 1.0.0 yang ditujukan untuk
Odoo 15.0.
Pola penomoran x.y.z mengikuti pola versi penomoran semantik dengan arti
sebagai berikut.
x ditingkatkan nomornya jika terdapat perubahan model data atau view
yang signifikan. Mungkin membutuhkan migrasi data karena perubahan tersebut.y ditingkatkan nomornya jika terdapat fitur baru yang tidak merusak
atau mengubah fitur yang sudah ada.z ditingkatkan nomornya ketika ada bugfix terhadap fungsi yang sudah ada.Modul diatur dalam sebuah struktur direktori. Direktori-direktori tersebut berisi logika bisnis. Berikut ini adalah direktori dalam sebuah modul.
data/, berisi file-file xml untuk data-data awal maupun data-data demo yang
digunakan oleh modul.models/, berisi file-file definisi model.controllers/, berisi controller untuk rute HTTP.views/, berisi file-file untuk mendefinisikan tampilan dan templat tampilan.static/, berisi file-file aset web.Direktori opsional lainnya terdapat dalam sebuah modul antara lain adalah.
wizard/, digunakan dalam pembuatan transient model.report/, digunakan dalam pembuatan laporan-laporan yang dapat dicetak.tests/, digunakan dalam testing modul.Untuk file-file model, pastikan membuat file untuk masing-masing model. Nama model menggunakan bentuk tunggal dan nama file model mengikuti nama model tetapi tanda titik dalam nama model digantikan dengan tanda garis bawah pada nama file.
Sebagai contoh, jika kamu membuat sebuah modul penjualan yang berisi data order, pelanggan, dan barang, maka berikut ini adalah gambaran file-file modelnya.
sale/
|-- models/
|-- order.py
|-- product.py
|-- res_partner.py (inherited dari model res.partner)
Untuk masalah keamanan, berikut ini adalah ketentuannya.
ir.model.access.csv.<nama_modul>_groups.xml.<nama_model>_security.xml.Jika diterapkan dalam contoh sebelumnya maka berikut ini adalah gambarannya.
sale/
|-- security/
|-- ir.model.access.csv
|-- order_security.xml
|-- product_security.xml
|-- sale_groups.xml
File-file view dibagi berdasarkan modelnya dengan pola penamaan
<nama_model>_views.xml. Sebagai catatan, main menu suatu modul dapat
dibuatkan file tersendiri karena tidak terikat dengan model tersendiri. Untuk
file main menu menggunakan pola <nama_modul>_menus.xml. Untuk file-file
template juga sama dengan file view dengan pola <nama_model>_templates.xml.
Jika diterapkan dalam contoh sebelumnya maka berikut ini adalah gambarannya.
sale/
|-- views/
|-- order_views.xml
|-- product_templates.xml
|-- product_views.xml
|-- res_partner_views.xml
|-- sale_menus.xml
Jika modul kamu memiliki data bawaan yang harus disediakan, buat file-file data
tersebut di dalam direktori data/ dengan pola <nama_model>_data.xml. Selain
data bawaan, kamu juga dapat menyertakan data demo yang dapat digunakan oleh
user untuk mencoba modulmu. Pola penamaan untuk file demo adalah
<nama_model>_demo.xml.
Jika diterapkan dalam contoh sebelumnya maka berikut ini adalah gambarannya.
sale/
|-- data/
|-- order_demo.xml
|-- product_data.xml
|-- product_demo.xml