ir.act.window, sering dikenal sebagai "Action," adalah salah satu komponen inti dalam framework Odoo. Komponen ini digunakan untuk mengarahkan pengguna ke tampilan tertentu dalam antarmuka pengguna. Dengan ir.act.window, pengembang dapat menentukan bagaimana data dari suatu model akan ditampilkan kepada pengguna, baik dalam bentuk daftar, formulir, kanban, diagram, atau jenis tampilan lainnya.
Fungsi ir.act.window
ir.act.window berfungsi untuk:
- Mendefinisikan cara data dari model ditampilkan.
- Menghubungkan menu ke tampilan model.
- Mengatur konteks, domain, atau filter yang relevan untuk model tersebut.
Action ini memberikan fleksibilitas bagi pengembang dalam menciptakan navigasi yang interaktif dan efisien di berbagai modul aplikasi.
Struktur ir.act.window
1. Name (name)
Nama action yang akan terlihat di antarmuka pengguna.
Contoh: "Daftar Produk"
2. Model (res_model)
Model yang datanya akan ditampilkan oleh action ini.
Contoh: product.product
3. View Mode (view_mode)
Jenis tampilan yang akan digunakan, seperti:
- tree untuk daftar.
- form untuk formulir.
- kanban untuk tampilan kanban.
- Contoh: "tree,form"
4. Domain (domain)
Filter yang diterapkan untuk menampilkan data tertentu.
- Contoh: [('active', '=', True)]
5. Context (context)
Parameter tambahan yang diterapkan ke tampilan atau model.
- Contoh: {'default_type': 'service'}
6. View ID (view_id)
Referensi ke tampilan tertentu yang akan digunakan.
- Contoh: ref('module_name.view_form_product')
7. Target (target)
Bagaimana tampilan akan dibuka:
- current: Mengganti tampilan saat ini.
- new: Membuka tampilan dalam mode pop-up atau dialog.
- Contoh: "current"
Contoh Implementasi XML
Berikut adalah contoh bagaimana ir.act.window didefinisikan dalam file XML:
<record id="action_product_list" model="ir.actions.act_window">
<field name="name">Product List</field>
<field name="res_model">product.product</field>
<field name="view_mode">tree,form</field>
<field name="domain">[("active", "=", True)]</field>
<field name="context">{}</field>
<field name="target">current</field>
</record>
Penjelasan:
- ID: action_product_list adalah identifier unik untuk action ini.
- Model: Data diambil dari model product.product.
- View Mode: Tampilan berupa daftar (tree) dan formulir (form).
- Domain: Hanya menampilkan produk yang aktif.
- Target: Tampilan menggantikan layar yang sedang aktif.