Menambahkan Fungsi Menu (Button) di dalam Menu Action
ODOO 14

    Bismillah.., Pertama saya ucapkan.., Segala puji milik Allah. Yang mana sebelumnya kita patut memuji-Nya, patut meminta pertolongan-Nya dan memohon ampun kepada-Nya. Serta kita berlindung diri kepada-Nya dari keburukan diri kita dan kejelekan perbuatan yang ada pada diri kita. Siapa yang diberi hidayah oleh Allah maka tidak ada yang mampu menyesatkannya dan sebaliknya bagi siapa yang disesatkan oleh Allah maka tidak akan ada yang dapat memberinya hidayah. Saya juga bersaksi bahwa tidak ada tuhan (yang berhak disembah) selain Allah semata yang tidak ada sekutu bagi-Nya dan saya bersaksi bahwa Nabi Muhammad Shalallahu'alaihi wa sallam adalah hamba dan utusan-Nya.


    Selanjutnya saya ucapkan Ahsanallahu ilaikum bagi para pembaca blog ini dan saya berdo'a semoga seluruh kaum muslimin yang sedang sakit diberikan kesehatan dan yang sehat selalu dijaga oleh Allah azza wa jalla dan selalu diberikan hidayah islam. Aamiin..!. Untuk kali ini saya akan menulis sedikit hasil explore yang saya dapatkan mengenai ODOO14 yaitu cara menambahkan fungsi menu (button) didalam menu default ODOO14 yaitu 'Menu Action'. Sebelumnya saya akan sedikit menjelaskan mengenai 'Menu Action', sebelumnya menu ini akan muncul ketika pada object/model/tabel di ODOO terdapat data/recordnya.


    Tampilan di atas merupakan tampilan 'Menu Action' default pada form sederhana dari object buatan saya di ODOO14. Bisa dilihat digamabar untuk defaultnya hanya ada dua fungsi menu (Duplicate dan Delete) di dalam 'Menu Action'. Untuk menambahkannya cukup mudah, anda bisa menuliskan source code pada xml seperti dibawah ini:

<record id="model_tutorial_action" model="ir.actions.server">
    <field name="name">Tutorial Menu Tambahan</field>
    <field name="type">ir.actions.server</field>
    <field name="model_id" ref="ab_test.model_test_test"/>
    <field name="binding_model_id" ref="ab_test.model_test_test"/>
    <field name="state">code</field>
    <field name="code">action = records.action_pop_up()</field>
</record>

    

    Keterangan:

1. untuk attributes id dan model dalam <record/>

    - id : Bisa di isi bebas dan harus unik

   - model : Harus di isi "ir.actions.server". Hal ini berarti kita akan menambahkan pada model/object/tabel ir_actions_server

2. Untuk attributes name pada <field/>. attributes ini bisa di isi sesuai field yang ada pada model/object/tabel ir_actions_server

    - "name" : Bagian ini bisa di isi nama yang akan muncul  pada menu tambahan di 'Menu Action'

    - "type" : Bagian ini bisa di isi sama dengan model yaitu "ir.actions.server"

  - "model_id" : Bagian ini bisa di ini dengan model/object/tabel mana yang kita akan tambahkan menu dengan cara                                                                    "nama_modul.model_nama_model"

   - "binding_model_id"  : Bagian ini bisa di isi seperti "model_id"

  - "state"  : Bagian ini di isi 'code', karena kita akan memberikan fungsi (memanggil method)

  - "code" : Bagian ini di isi sesuai nama method pada python

        Maka akan muncul tampilan seperti dibawah ini:


    Kemudian buatlah method pada file.py nya pada object yang anda buat (saya membuat dengan object "test.test"). Untuk isi method ini dibuat sesuai kebutuhan dari fungsi anda dan saya disini membuat method sederhana yang berfungsi untuk menampilkan pop up. Jika anda ingin mencoba membuat pop up seperti saya, anda bisa mengikuti  atau menambahkan codingan seperti dibawah ini.

1. Masukkan / Import library dengan cara:

from odoo.exceptions import ValidationError, UserError


2. Buatlah pada file.py nya seperti di bawah ini:

def action_pop_up(self):
    raise ValidationError("Tutorial Menu Tambahan")


    Maka akan muncul tampilan seperti dibawah ini:

    Mungkin cukup disini dulu untuk tuilsan blog saya kali ini dan semoga tulisan saya ini bermanfaat bagi saya dan pembaca. Jika ada pertanyaan atau mengalami kendala dalam pembahasan yang saya tulis bisa comment saja di blog ini, Jazakumullahu khorin wa baarokallahu fiikum..




Menghilangkan Action Archive/Unarchive object tertentu di Odoo 14