Gunakan tanda [] untuk mencari tag gan! contoh [flutter, javascript]

Odoo - Penulisan Menu

Odoo - Penulisan Menu

Artikel ini dibukukan pada buku Odoo ERP Development
access_time 23 Jan 2025 remove_red_eye 136 Kali spellcheck 895 Kata, 4672 Karakter
#odoo #xml

Menu di Odoo adalah salah satu komponen penting dalam antarmuka pengguna, yang memungkinkan navigasi di dalam aplikasi. Pembuatan menu dalam Odoo dilakukan melalui file XML yang didefinisikan dalam modul yang Anda kembangkan. Artikel ini akan membahas secara lengkap bagaimana membuat menu di Odoo menggunakan XML.

1. Komponen Menu di Odoo

Di Odoo, ada tiga jenis menu utama:

  1. Menu Induk (Root Menu): Menu utama yang muncul di bagian atas aplikasi.
  2. Submenu: Menu yang berada di dalam menu induk.
  3. Aksi: Menu yang terhubung langsung ke aksi seperti daftar, form, atau laporan.

2. Struktur Dasar XML Menu di Odoo

Berikut adalah contoh struktur dasar untuk mendefinisikan menu di Odoo menggunakan XML:

<odoo>
    <data>
        <!-- Root Menu -->
        <menuitem 
            id="menu_root_example"
            name="Contoh Menu" 
            sequence="10" />

        <!-- Submenu -->
        <menuitem 
            id="menu_sub_example"
            name="Submenu Contoh" 
            parent="menu_root_example" 
            sequence="20" />

        <!-- Menu dengan Aksi -->
        <menuitem 
            id="menu_action_example"
            name="Aksi Contoh" 
            parent="menu_sub_example" 
            action="action_example"
            sequence="30" />
    </data>
</odoo>

3. Penjelasan Elemen Menu

  1. : Elemen utama untuk mendefinisikan menu.
  2. id: Identitas unik menu yang digunakan untuk merujuk menu dalam modul lain.
  3. name: Nama yang ditampilkan pada antarmuka pengguna.
  4. parent: Menentukan menu induk (jika ini adalah submenu).
  5. action: Aksi yang dipicu saat menu diklik (seperti membuka daftar, form, atau laporan).
  6. sequence: Angka yang menentukan urutan menu.

4. Menambahkan Aksi ke Menu

Menu biasanya terhubung dengan aksi yang mendefinisikan apa yang dilakukan menu tersebut. Aksi didefinisikan menggunakan elemen <record> dengan model ir.actions.act_window. Berikut contohnya:

Aksi untuk Membuka Model

<record id="action_example" model="ir.actions.act_window">
    <field name="name">Aksi Contoh</field>
    <field name="res_model">example.model</field>
    <field name="view_mode">tree,form</field>
    <field name="help" type="html">
        <p class="o_view_nocontent_smiling_face">
            Tambahkan data untuk Contoh!
        </p>
    </field>
</record>

Menghubungkan Aksi ke Menu

<menuitem 
    id="menu_action_example"
    name="Aksi Contoh" 
    parent="menu_sub_example" 
    action="action_example"
    sequence="30" />

5. Contoh Implementasi Lengkap

Misalkan kita ingin membuat menu untuk model example.model. Berikut adalah implementasi XML lengkapnya:

<odoo>
    <data>
        <!-- Root Menu -->
        <menuitem 
            id="menu_root_example"
            name="Modul Contoh" 
            sequence="10" />

        <!-- Submenu -->
        <menuitem 
            id="menu_sub_example"
            name="Data Contoh" 
            parent="menu_root_example" 
            sequence="20" />

        <!-- Aksi -->
        <record id="action_example" model="ir.actions.act_window">
            <field name="name">Data Contoh</field>
            <field name="res_model">example.model</field>
            <field name="view_mode">tree,form</field>
        </record>

        <!-- Menu dengan Aksi -->
        <menuitem 
            id="menu_action_example"
            name="Lihat Data" 
            parent="menu_sub_example" 
            action="action_example"
            sequence="30" />
    </data>
</odoo>

6. Mengatur Urutan Menu

Gunakan atribut sequence untuk menentukan posisi menu. Nilai terkecil akan ditampilkan terlebih dahulu.

7. Penyimpanan File

File XML yang mendefinisikan menu biasanya disimpan di dalam direktori views modul Anda. Pastikan untuk menambahkan file ini ke dalam manifest.py modul Anda:

Struktur Direktori

my_module/
│
├── __init__.py
├── __manifest__.py
└── views/
    └── example_menu.xml

Daftar di manifest.py

'data': [
    'views/example_menu.xml',
],

8. Validasi dan Debugging

  1. Pastikan ID menu unik di seluruh sistem Odoo.
  2. Periksa log Odoo untuk menemukan kesalahan jika menu tidak muncul.
  3. Jika menu tidak terlihat, pastikan pengguna Anda memiliki akses ke model terkait.

Dengan panduan ini, Anda dapat membuat menu di Odoo menggunakan XML dengan mudah. Semoga bermanfaat!

Video Penjelasan

Artikel ini dibukukan pada buku Odoo ERP Development
Navigasi Konten