Untuk membuat menu modul menggunakan Odoo, Anda dapat mengikuti langkah-langkah berikut:
Buat Modul Odoo Baru:
Buka environment Odoo Anda.
Buat folder baru untuk modul Anda di dalam direktori addons
di dalam instalasi Odoo Anda.
Di dalam folder modul baru Anda, buat file __init__.py
yang kosong dan file __manifest__.py
yang berisi metadata modul Anda.
Contoh __manifest__.py
:
{
'name': 'Nama Modul Anda',
'version': '1.0',
'summary': 'Deskripsi singkat modul Anda',
'sequence': 1,
'author': 'Nama Anda',
'category': 'Kategori Modul',
'depends': ['base', 'module_dependency'], # Modul tergantung, jika ada
'data': [
'views/your_view.xml', # Lokasi file tampilan XML
],
'demo': [],
'installable': True,
'application': True,
'auto_install': False,
}
Definisikan Model:
Buat file Python di dalam folder modul Anda yang akan mendefinisikan model-model yang ingin Anda gunakan dalam modul Anda. Anda dapat menetapkan bidang, metode, relasi, dll., sesuai dengan kebutuhan Anda.
Contoh model attendance_type.py
:
from odoo import api, fields, models
class Attendance(models.Model):
_name = "absen_ts.ts_attendance_type"
_description = "Attendance Type"
attendance_type = fields.Char(string="Jenis Absen")
Definisikan Tampilan (Views):
Buat file XML di dalam folder modul Anda yang akan mendefinisikan tampilan yang ingin Anda gunakan dalam modul Anda. Ini bisa berupa tampilan daftar, tampilan formulir(form), tampilan pohon(tree), dll., tergantung pada apa yang Anda butuhkan.
Contoh view attendancetype_view.xml:
<odoo>
<record id="attendance_type_view_tree" model="ir.ui.view">
<field name="name">attendance_type.tree</field>
<field name="model">absen_ts.ts_attendance_type</field>
<field name="arch" type="xml">
<tree>
<field name="attendance_type" string="Jenis Absen"/>
</tree>
</field>
</record>
<record id="attendance_type_view_form" model="ir.ui.view">
<field name="name">attendance_type.tree</field>
<field name="model">absen_ts.ts_attendance_type</field>
<field name="arch" type="xml">
<form>
<sheet>
<grou>
<group>
<field name="attendance_type"/>
</group>
</grou>
</sheet>
</form>
</field>
</record>
<record id="absen_ts.action_attendance_type" model="ir.actions.act_window">
<field name="name">Jenis Attedance</field>
<field name="res_model">absen_ts.ts_attendance_type</field>
<field name="view_mode">tree,form</field>
<!-- <field name="view_id" ref="attendance_type_tree"/>-->
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Jenis Absen Masih Kosong
</p>
</field>
</record>
</odoo>
Definisikan Menu:
Di dalam file __manifest__.py
, tentukan struktur menu yang ingin Anda gunakan dalam modul Anda. Anda dapat menambahkan menu utama dan submenu di dalamnya, serta akses tautan ke tampilan yang telah Anda definisikan sebelumnya.
Contoh sisipkan kode didalam array object pada file manifest.py
'data': [
'views/your_view.xml', # Lokasi file tampilan XML
],
Tentukan group access.
Untuk membuat group access. buat dulu file didalam folder security/.ir.model.access.csv. lalu masukan data csv seperti format dibawah ini:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
absen_ts.access_absen_ts,access_absen_ts,absen_ts.model_absen_ts_ts_attendance_type,base.group_user,1,1,1,1
- Uji Modul Anda:
- Restart server Odoo Anda.
- Masuk ke antarmuka pengguna Odoo dan periksa apakah modul Anda ditampilkan dengan benar.
- Uji fungsionalitas modul Anda untuk memastikan semuanya berjalan dengan baik.