openSOURCE

openSOURCE

Did You Know?

All the tech in one platform

Odoo Dev FAQs

Estimated reading: 3 minutes 37 views

Selamat datang di pusat FAQ OdooCamp untuk Odoo 18 Community Edition. Sebelum kita masuk ke daftar pertanyaan dan jawaban per golongan, mari kita samakan pemahaman tentang mengapa kita membagi seluruh “coding” Odoo ke dalam 12 golongan utama dan bagaimana cara memakai FAQ ini secara efektif.

Mengapa Perlu 12 Golongan?

Odoo dibangun dari beberapa lapisan teknologi yang saling terhubung. Tanpa peta yang jelas, pengembangan akan terasa acak dan rawan konflik antar‑modul. Dengan pengelompokan 12 golongan, kita:

  • Memetakan peran tiap berkas dan folder sehingga alur kerja lebih terstruktur.

  • Menentukan “tempat yang tepat” saat menambah fitur, memperbaiki bug, atau melakukan override.

  • Memudahkan diskusi tim lintas peran (Functional↔Dev↔QA) dengan kosakata yang seragam.

Siapa yang Perlu Membaca?

  • Peserta OdooCamp di jalur Functional untuk memahami dampak konfigurasi ke lapisan teknis.

  • Peserta jalur Developer untuk menulis kode sesuai konvensi dan best‑practice.

  • Peserta jalur QA/Tester untuk menyiapkan skenario uji dan memverifikasi hasil di setiap lapisan.

Cara Memakai FAQ Ini

  1. Mulai dari ringkasan tiap golongan untuk mengetahui tujuan, lokasi berkas, dan contoh paling umum.

  2. Lanjut ke pertanyaan spesifik per golongan (misalnya: View XML, QWeb, ORM Python, JavaScript OWL, SCSS/CSS, i18n, dsb.).

  3. Gunakan contoh siap salin untuk mempercepat iterasi; sesuaikan nama model, modul, dan ID view sesuai proyek.

  4. Rujuk kembali ke bagian “Diagnostik & Best Practices” saat menemui error atau konflik inheritance.

Peta Cepat — 12 Golongan Utama

  1. Python (backend & ORM)

  2. XML (views & data deklaratif)

  3. QWeb (XML templating: report/portal/website)

  4. JavaScript (OWL) — web client & widgets

  5. SCSS/CSS — styling & theming

  6. CSV — akses model & seed data (ir.model.access.csv)

  7. Manifest & init (metadata modul, assets, hooks)

  8. i18n (PO terjemahan)

  9. Static assets (gambar, ikon, font, deskripsi app)

  10. Testing (Python unit, JS/web_tour)

  11. SQL (opsional, via hook atau env.cr)

  12. Website Snippets (blok konten berbasis QWeb)

Prinsip Umum yang Kita Pakai

  • Single Source of Truth: setiap perubahan UI lewat XML/QWeb, logika bisnis di Python, interaksi klien di JavaScript.

  • Inherit dengan Aman: gunakan xpath yang spesifik dan stabil; hindari selektor berbasis urutan jika tidak perlu.

  • Default Aman: saat menampilkan data, gunakan t-esc (escaped). t-raw hanya untuk konten tepercaya.

  • Konvensi Penamaan: konsisten pada ID view, nama file, dan struktur folder agar mudah dirawat.

  • Uji Berlapis: siapkan test minimal untuk alur kritis; QA memverifikasi dari UI hingga database.

Struktur Folder Modul (Template Singkat)

Gunakan struktur ini sebagai acuan saat memulai modul baru:

my_module/
├─ __init__.py
├─ __manifest__.py
├─ models/
│  └─ my_model.py
├─ views/
│  └─ my_model_views.xml
├─ security/
│  ├─ ir.model.access.csv
│  └─ security_rules.xml
├─ data/
│  └─ cron.xml
├─ report/
│  ├─ my_report_templates.xml
│  └─ my_report.xml
├─ static/
│  ├─ src/js/
│  ├─ src/scss/
│  ├─ src/img/
│  └─ description/index.html
├─ i18n/
│  └─ id.po
└─ tests/
   └─ test_flow.py

Do & Don’t (Ringkas)

  • Do: dokumentasikan setiap ID view dan inherit_id yang dipakai; sertakan alasan perubahan.

  • Do: gunakan t-options untuk format uang/tanggal/angka pada report.

  • Do: pastikan ACL di ir.model.access.csv menyertakan semua model baru.

  • Don’t: mengandalkan indeks urutan xpath kecuali terpaksa.

  • Don’t: gunakan t-raw pada input pengguna tanpa sanitasi.

Tentang Versi & Kompatibilitas

Dokumentasi ini disusun untuk Odoo 18 Community Edition. Beberapa pola kompatibel dengan versi sebelumnya, tetapi perilaku front‑end (OWL), assets, atau struktur view bisa berbeda antarrilis. Saat meng‑upgrade, cek kembali bagian inheritance, assets, dan penamaan komponen.

Langkah Selanjutnya

Setelah membaca prolog ini, kita bisa langsung masuk ke FAQ per golongan. Mulai dari kebutuhan kita: ingin ubah tampilan? Buka XML; ingin cetak aman dan rapi? Buka QWeb; ingin logika/constraint? Buka Python; ingin interaksi klien? Buka JavaScript. Dengan peta 12 golongan, kita bergerak lebih cepat, aman, dan terukur.

Leave a Comment

Share this Doc

Odoo Dev FAQs

Or copy link

CONTENTS