Setiap fungsionalitas di Odoo dikemas dalam sebuah modul. Anggap saja modul adalah sebuah "kotak" berisi semua yang dibutuhkan untuk sebuah fitur: file Python 🐍 untuk logika dan file XML πŸ“„ untuk tampilan.

Memahami struktur dasar sebuah modul adalah langkah pertama yang paling penting dalam perjalanan Anda menjadi seorang Odoo Developer.

뼈 Struktur Direktori Minimal

Setiap modul Odoo, sekecil apapun, harus memiliki struktur dasar ini:

nama_modul/
β”œβ”€β”€ __init__.py  (File Python)
└── __manifest__.py (File Python)

❀️ Contoh __manifest__.py

File ini seperti "KTP" modul Anda. Odoo membacanya untuk tahu semua tentang modul tersebut.

# -*- coding: utf-8 -*-
{
    'name': "Nama Modul Keren Saya",  # Nama yang tampil di UI Odoo
    'version': '16.0.1.0.0',
    'summary': "Ringkasan singkat fitur modul ini.",
    'description': """
        Deskripsi yang lebih panjang dan mendetail.
        Bisa beberapa baris.
    """,
    'author': "Nama Anda",
    'website': "<https://www.websiteanda.com>",
    'category': 'Services/Extra Tools',
    'depends': ['base'],  # Modul lain yang jadi prasyarat
    'data': [
        # 'security/ir.model.access.csv',
        # 'views/nama_view.xml',
        # 'views/templates.xml',
    ],
    'demo': [
        # 'demo/demo.xml',
    ],
    'installable': True,
    'application': False,
    'auto_install': False,
}

πŸ—‚οΈ Struktur Direktori Lengkap (Best Practice)

Seiring pertumbuhan modul, Anda butuh lebih banyak "laci" untuk menyimpan file dengan rapi. Ini adalah struktur yang sangat umum dan direkomendasikan:

nama_modul/
β”œβ”€β”€ __init__.py
β”œβ”€β”€ __manifest__.py
β”œβ”€β”€ 🌐 controllers/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── main.py
β”œβ”€β”€ πŸ’Ύ data/
β”‚   └── nama_data.xml
β”œβ”€β”€ πŸŽ‰ demo/
β”‚   └── nama_demo.xml
β”œβ”€β”€ 🌍 i18n/
β”‚   └── id.po
β”œβ”€β”€ 🧠 models/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── nama_model.py
β”œβ”€β”€ πŸ”’ security/
β”‚   └── ir.model.access.csv
β”œβ”€β”€ πŸ–ΌοΈ static/
β”‚   β”œβ”€β”€ description/
β”‚   β”‚   └── icon.png
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ js/
β”‚   β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── xml/
β”œβ”€β”€ 🎨 views/
β”‚   └── nama_view.xml
└── ✨ wizards/
    β”œβ”€β”€ __init__.py
    └── nama_wizard.py

πŸ”Ž Penjelasan Setiap "Laci"

Dengan mengikuti struktur ini, modul Anda akan rapi, mudah dirawat, dan dicintai oleh sesama developer Odoo. πŸ’–