Oke, jadi di Odoo, setiap modul harus memiliki file __manifest__.py. File ini berisi informasi penting tentang modul, seperti nama, versi, deskripsi, ketergantungan, dan lain sebagainya. Untuk lebih mudah dipahami, bayangkan saja __manifest__.py sebagai kartu identitas modul Odoo kita.

Pertama-tama, mari kita bahas apa itu __manifest__.py. File ini adalah file konfigurasi utama untuk modul Odoo. File ini memberitahu Odoo bahwa direktori ini berisi modul dan memberikan informasi tentang modul tersebut.

Mari kita lihat contoh __manifest__.py.

# -*- coding: utf-8 -*-
{
    'name': 'My Module',
    'version': '1.0',
    'author': 'John Doe',
    'website': 'https://www.example.com',
    'category': 'Uncategorized',
    'summary': 'My module summary',
    'description': 'My module description',
    'depends': ['base'],
    'data': [
        'security/ir.model.access.csv',
        'views/my_module_view.xml',
    ],
    'installable': True,
    'auto_install': False,
    'application': True,
}

Mari kita bahas setiap baris satu per satu.

# -*- coding: utf-8 -*-

Baris pertama menunjukkan kode encoding dari file __manifest__.py. Baris ini adalah standar untuk file Python. Baris ini adalah sebuah deklarasi yang memberitahu Python bahwa file ini harus diinterpretasikan dengan menggunakan encoding UTF-8.

Encoding ini digunakan untuk mengatur bagaimana karakter non-ASCII seperti huruf dengan aksen atau karakter khusus lainnya akan ditampilkan di dalam kode Python. Dalam konteks file manifest Odoo, encoding UTF-8 digunakan untuk memastikan bahwa karakter non-ASCII pada informasi modul seperti deskripsi, nama penulis, dan lainnya dapat ditampilkan dengan benar di dalam aplikasi Odoo.

Deklarasi ini merupakan hal standar dalam hampir semua file Python modern, termasuk file manifest Odoo, dan sangat penting untuk memastikan bahwa Python dapat membaca karakter-karakter yang berbeda dengan benar dan menghindari terjadinya kesalahan encoding.

'name': 'My Module',

Baris ini yang memberikan informasi tentang nama modul. Nama ini akan muncul di menu aplikasi Odoo. Misalnya, jika kita membuat modul untuk manajemen proyek, kita bisa memberikan nama modul tersebut “Project Management”.

Di dalam baris ini, “My Module” adalah nama modul yang kita berikan untuk modul kita, yang kemudian akan digunakan oleh Odoo untuk mengidentifikasi modul tersebut di antara modul-modul yang ada. Nama modul ini harus unik dan mudah diingat, sehingga pengguna dapat dengan mudah menemukannya di antara modul-modul yang ada di dalam aplikasi Odoo.

'version': '1.0',

Baris ini adalah versi dari modul kita. Jika kamu membuat perubahan pada modulmu, kamu perlu meningkatkan versi agar Odoo tahu bahwa ada perubahan yang dilakukan pada modul. Ketika ada pembaruan atau perbaikan pada modul, nomor versi dapat ditingkatkan agar pengguna dapat memperbarui modul ke versi yang lebih baru.

'author': 'John Doe',

Baris ini memberi informasi tentang nama pengembang modul. Informasi tentang pengembang modul penting untuk memberikan kredit pada pengembang yang membuat modul, serta memberikan informasi kontak pada pengguna yang ingin menghubungi pengembang terkait dengan masalah atau pertanyaan tentang modul.

Selain nama pengembang, informasi pengembang modul dapat meliputi informasi kontak, seperti email atau situs web pengembang. Informasi ini dapat membantu pengguna Odoo untuk menghubungi pengembang jika ada masalah dengan modul atau jika mereka ingin meminta fitur baru atau perbaikan.

Dalam contoh kali ini, “John Doe” adalah nama pengembang modul. Kamu dapat mengganti nilai ini dengan namamu sendiri atau nama tim pengembang modul yang membuat modul tersebut.

'website': 'https://www.example.com',

Baris ini adalah URL dari situs web pengembang modul. Informasi situs web pengembang modul penting untuk memberikan informasi tambahan tentang modul dan pengembangnya.

Situs web pengembang modul dapat digunakan untuk memberikan informasi tentang modul, seperti dokumentasi, tutorial, atau daftar fitur. Pengguna Odoo juga dapat menggunakan situs web pengembang modul untuk menghubungi pengembang modul jika mereka memiliki pertanyaan atau masalah dengan modul.

'category': 'Uncategorized',

Baris ini memberikan informasi tentang kategori modul. Kamu bisa memilih kategori sesuai dengan jenis modulmu. Kategori modul Odoo dapat berupa kategori fungsional seperti Akunting, Penjualan, Pembelian, Produksi, atau kategori teknis seperti Administrasi, Konfigurasi, Pemrograman, dsb.

Dalam contoh ini, nilai “Uncategorized” menunjukkan bahwa modul tersebut belum diberi kategori tertentu. Kategori “Uncategorized” biasanya digunakan oleh modul-modul yang belum sepenuhnya dikembangkan atau modul-modul yang tidak memiliki kategori yang sesuai dengan fungsinya.

Sebaiknya, setiap modul memiliki kategori yang tepat untuk membantu pengguna Odoo menemukan modul yang mereka butuhkan dengan mudah. Oleh karena itu, kamu harus memilih kategori yang paling sesuai untuk modul yang mereka kembangkan. Untuk melihat daftar kategori modul yang tersedia di Odoo, kamu dapat mengunjungi situs resmi Odoo atau melihat direktori modul Odoo di GitHub.

'summary': 'My module summary',

Baris ini adalah ringkasan penjelasan modul yang berupa deskripsi singkat tentang modul. Informasi ini ditampilkan pada halaman modul di Odoo.

Secara umum, ringkasan modul harus menyajikan ide utama dari modul tersebut dalam satu atau dua kalimat singkat. Hal tersebut sangat penting untuk membantu pengguna Odoo memahami modul tersebut dengan cepat dan memutuskan apakah mereka memerlukan modul tersebut atau tidak.

'description': 'My module description',

Baris ini adalah deskripsi modul yang lebih detail dari summary. Baris ini akan membantu pengguna dan pengembang lain untuk memahami fungsionalitas dan tujuan dari modul kita.

Deskripsi modul seharusnya lebih terperinci daripada ringkasan modul, sehingga pengguna Odoo dapat memahami lebih banyak tentang fungsionalitas dan fitur modul. Deskripsi modul seharusnya mencakup informasi seperti alasan pengembangan modul, fungsionalitas utama modul, dan panduan penggunaan modul.

'depends': ['base'],

Baris ini adalah daftar modul yang dibutuhkan oleh modul ini untuk berfungsi dengan baik. Dalam contoh ini, modul ini hanya bergantung pada modul “base”. Hal ini akan membantu Odoo untuk memastikan bahwa semua dependensi modul terpenuhi sebelum memuat modul kita.

Modul “base” adalah modul dasar yang diperlukan untuk menjalankan Odoo. Modul tersebut mencakup hal-hal seperti manajemen pengguna, manajemen database, dan tampilan dasar aplikasi.

'data': [
    'security/ir.model.access.csv',
    'views/my_module_view.xml',
],

Baris ini adalah daftar file XML dan CSV yang akan digunakan oleh modul kita. Dalam contoh ini, modul ini memiliki satu file XML, yaitu my_module_view.xml dan ir.model.access.csv. File-file ini akan digunakan untuk menambahkan atau mengubah tampilan atau data modul kita di Odoo.

'installable': True,

Baris ini menunjukkan apakah modul ini dapat diinstal atau tidak. Jika nilai dari baris ini adalah False, maka modul tidak akan muncul dalam daftar modul yang dapat diinstal pada tampilan modul Odoo. Jika baris ini berisi True, maka modul dapat diinstal ke dalam sistem Odoo.

'auto_install': False,

Baris ini menunjukkan apakah modul ini akan diinstal secara otomatis ketika pengguna menginstall modul lain yang membutuhkan modul ini. Jika nilai baris ini adalah True, maka saat memuat modul yang membutuhkan modul ini, Odoo akan secara otomatis menginstal modul ini. Namun, jika nilai baris ini adalah False, maka pengguna harus secara manual menginstal modul ini sebelum memuat modul yang membutuhkan modul ini.

'application': True,

Baris ini menunjukkan apakah modul yang dibuat adalah modul aplikasi utama dan tidak hanya modul yang dipergunakan sebagai pendukung atau modul pendukung. Dalam bahasa Odoo, modul aplikasi utama merujuk pada modul yang menyediakan fungsionalitas inti dalam aplikasi Odoo, seperti modul penjualan, pembelian, akuntansi, dan lain-lain.

Jika nilai baris ini adalah True, maka modul dianggap sebagai modul aplikasi utama dan akan muncul di menu Aplikasi di Odoo. Jika nilai baris ini adalah False, maka modul dianggap sebagai modul pendukung atau pelengkap dan tidak akan muncul di menu Aplikasi.


Jadi, itulah penjelasan singkat tentang file __manifest__.py di Odoo. File ini mungkin terlihat sederhana, tetapi sangat penting untuk memastikan bahwa modul kita dapat dijalankan dengan baik di Odoo.

Penting untuk diingat bahwa isi file __manifest__.py harus diisi dengan benar dan sesuai dengan kebutuhan modul yang kita kembangkan. Semoga penjelasan ini bermanfaat!