Minta Saran: Cara Sembunyikan Tombol 'Create' di Odoo (View Tertentu & User Role)
Diposting pada 10 Mar 2026, 15:05
Ditanyakan oleh: Kurniawan
Halo rekan-rekan praktisi Odoo di sini!
Perkenalkan, saya Kurniawan, IT Staff di salah satu perusahaan di Jakarta. Saat ini kami sedang mengimplementasikan Odoo ERP untuk operasional harian di kantor.
Ada satu kendala yang ingin saya diskusikan dan mohon masukannya dari teman-teman. Kami punya requirement untuk menyembunyikan tombol 'Create' di beberapa form/list view tertentu. Contohnya, untuk modul Purchase Order, kami ingin user dengan role 'Purchaser' bisa melihat dan mengedit PO, tapi tidak bisa membuat PO baru (itu cuma bisa dilakukan oleh manajer). Atau di modul lain, kami ingin mencegah semua user untuk create data baru di sebuah tabel master yang memang harusnya cuma di-import dan tidak di-create manual.
Sudah coba cari-cari beberapa opsi, tapi masih ragu mana yang paling best practice dan minim risiko. Apakah ini bisa diatasi pakai group access rights saja? Atau perlu pakai studio/customization melalui XML view, mungkin dengan `create="false"` atau atribut lainnya? Kalau pakai atribut, apakah ada efek samping yang perlu diwaspadai di versi Odoo terbaru?
Barangkali ada yang punya pengalaman serupa atau tips jitu untuk kasus seperti ini? Mohon pencerahannya ya, teman-teman. Terima kasih banyak sebelumnya!
Admin Odoo ForumAdmin & AI Support10 Mar 2026, 15:06
Halo Mas Kurniawan! Senang sekali bisa bantu diskusi di komunitas Odoo Indonesia ini. Topik yang Mas Kurniawan angkat ini sering banget jadi pertanyaan dan memang penting untuk implementasi ERP yang rapi dan aman.
Oke, mari kita bahas solusinya ya, Mas. Ada beberapa opsi yang bisa dipertimbangkan, dan yang paling best practice adalah mengombinasikan keduanya untuk hasil yang optimal.
1. Pembatasan Berdasarkan Role (Contoh: 'Purchaser' tidak bisa buat PO baru)
Untuk kasus seperti ini, di mana pembatasan bersifat role-based atau user-specific, solusi paling utama dan Odoo-native adalah dengan mengatur Access Rights (Hak Akses) di level model. Ini adalah fondasi keamanan di Odoo.
Bagaimana Caranya?
1. Aktifkan Developer Mode (Mode Pengembang) di Odoo Anda. Biasanya ada di bagian paling bawah menu Settings.
2. Masuk ke menu Settings -> Technical -> Security -> Access Rights.
3. Cari model yang ingin Anda batasi (misalnya 'Purchase Order' atau nama model teknisnya `purchase.order`).
4. Cari baris hak akses yang terkait dengan grup (role) 'Purchaser' (misalnya grup 'Purchases / User: All Documents' atau yang serupa di implementasi Anda).
5. Edit baris tersebut. Di kolom 'Create', pastikan tidak dicentang (false).
6. Ulangi langkah ini untuk grup lain yang relevan jika ada.
Kenapa Ini Best Practice?
Dengan cara ini, hak akses untuk membuat data baru dicabut di level backend (model). Artinya, tombol 'Create' secara otomatis akan menghilang dari UI bagi user yang tidak memiliki hak tersebut, dan bahkan jika ada cara lain (misalnya API, atau view lain yang tidak dibatasi) untuk mencoba membuat data, Odoo akan menolaknya karena hak aksesnya memang tidak ada. Ini adalah lapisan keamanan paling kuat.
2. Pembatasan untuk Semua User di View Tertentu (Contoh: Master data yang hanya di-import)
Untuk kasus di mana Anda ingin semua user tidak bisa membuat data secara manual di suatu view (misalnya tabel master yang hanya boleh di-import), Anda bisa menggunakan atribut `create="false"` di XML view.
Bagaimana Caranya?
1. Pastikan Developer Mode sudah aktif.
2. Navigasi ke view yang ingin Anda ubah (misalnya List View / Tree View atau Form View dari model master tersebut).
3. Klik ikon Debug (biasanya ikon kumbang kecil) di kanan atas layar.
4. Pilih Edit View: List (untuk Tree View) atau Edit View: Form (untuk Form View).
5. Di dalam kode XML view, cari tag `` atau ``. Tambahkan atribut `create="false"` ke tag tersebut.
Contoh untuk Tree View: ``
Contoh untuk Form View: ``
6. Simpan perubahan. Tombol 'Create' akan menghilang dari view tersebut.
Bisakah Pakai Odoo Studio?
Ya, jika Anda punya akses ke Odoo Studio, ini lebih mudah lagi. Saat Anda mengedit sebuah view dengan Studio, biasanya ada opsi di panel pengaturan kanan (atau di bagian 'Views' jika Anda mengedit langsung dari Studio) untuk menonaktifkan tombol 'Create' atau 'Import'. Studio akan otomatis menambahkan atribut `create="false"` ini di baliknya.
Kombinasi Terbaik dan Efek Samping `create="false"`:
Saran saya, selalu kombinasikan kedua metode ini untuk hasil yang paling aman dan rapi:
Pertama, terapkan Access Rights untuk mencabut hak akses 'Create' di level model bagi grup atau user yang tidak seharusnya bisa membuat data. Ini adalah lapisan keamanan utama Anda.
Kedua, sebagai pelengkap UI, gunakan `create="false"` pada view-view yang relevan. Ini akan memastikan tombol 'Create' benar-benar hilang dari antarmuka, sehingga user tidak kebingungan mengapa tombolnya ada tapi tidak bisa diklik (jika hanya dibatasi via Access Rights tanpa `create="false"`).
Mengenai pertanyaan Mas Kurniawan tentang efek samping `create="false"` di versi Odoo terbaru:
Tidak ada efek samping yang merusak sistem atau menyebabkan masalah fungsionalitas inti Odoo. Atribut ini adalah bagian standar dari kerangka kerja view Odoo.
Efek samping yang perlu dipahami adalah sifatnya yang hanya di level UI (tampilan) dan hanya untuk view spesifik tersebut. Artinya:
Jika user masih memiliki hak akses 'Create' di level model (via Access Rights), mereka mungkin masih bisa membuat data melalui cara lain (misalnya API, atau view lain yang tidak memiliki atribut `create="false"` ini, atau bahkan mungkin via Odoo Studio jika mereka punya akses Studio).
Inilah mengapa sangat penting untuk selalu menggabungkannya dengan pengaturan Access Rights. `create="false"` adalah perubahan tampilan, Access Rights adalah perubahan keamanan.
Semoga penjelasan ini mencerahkan ya, Mas Kurniawan! Jika ada pertanyaan lanjutan, jangan sungkan untuk bertanya lagi di komunitas Odoo Indonesia. Semangat terus implementasi Odoo-nya!