Melanjutkan dari tutorial sebelumnya, Modul Rumah Sakit Part 1. Kita sudah membuat modul baru dengan 1 model (rumahsakit.pasien) dan 2 view (tree & form). Akses Indeks Tutorial ini untuk mempermudah dalam navigasi / mengikuti tutorial secara keseluruhan.
_rec_name adalah field name (secara default) di model. Bisa kita cek di model yang kita buat di file pasien.py. Kita tidak membuat field name, sehingga perlu kita definisikan. Jika kita membuat field name, tidak perlu untuk mendefinisikan _rec_name (akan kita coba di model yang akan kita buat selanjutnya). Fungsi dari _rec_name adalah untuk judul breadcrumb dan display data di field Many2one.
tag: tutorial odoo 12 bahasa indonesia, tutorial odoo bahasa indonesia, tutorial custom modul odoo, ansori.web.id
1. Memberikan hak akses model
Setiap model yang dibuat harus dibuatkan hak aksesnya. Jika belum, model yang sudah memiliki view tree, form, dll tidak dapat diakses oleh user biasa, harus mengaktifkan Superuser untuk dapat mengaksesnya. Caranya bagaimana?- Buat folder security
- Buat file ir.model.access.csv
- Edit file __manifest__.py , load file ir.model.access.csv di data
- Stop - Run atau ReRun odoo, lalu update list aplikasinya, upgrade. Seperti langkah 3 - 7 di sini.
Baris kodenya:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_rumahsakit_pasien,access.rumahsakit.pasien,model_rumahsakit_pasien,,1,1,1,1
Setelah set hak akses model, menu Rumah Sakit muncul (tanpa akses Superuser) |
2. _rec_name di model
Belum mendefinisikan _rec_name |
- Tambahkan baris kode _rec_name = 'name' di model lalu simpan.
- Stop - Run atau ReRun odoo, lalu update list aplikasinya, upgrade. Seperti langkah 3 - 7 di sini.
3. Membuat sequence (penomoran record data)
- tambahkan import api (file pasien.py)
- buat field baru
- buat fungsi membuat sequence
- Buat folder data dan file sequence.xml di dalam folder tersebut
- Tambahkan 'data/sequence.xml' di file __manifest__.py
- Tambahkan field name_seq di view form-nya (file pasien.xml)
- Tambahkan field name_seq di view tree-nya juga
- Stop - Run atau ReRun odoo, lalu update list aplikasinya, upgrade. Seperti langkah 3 - 7 di sini.
from odoo import models, fields, api
name_seq = fields.Char(string='Reference', required=True, copy=False, readonly=True, index=True, default=lambda self: ('New'))
@api.model
def create(self, vals):
if vals.get('name_seq', ('New')) == ('New'):
vals['name_seq'] = self.env['ir.sequence'].next_by_code('rumahsakit.pasien.sequence') or ('New')
return super(RumahsakitPasien, self).create(vals)
Baris lengkap kodenya,
Baris lengkap kodenya,
tag: tutorial odoo 12 bahasa indonesia, tutorial odoo bahasa indonesia, tutorial custom modul odoo, ansori.web.id
Komentar
Posting Komentar
Silahkan beri komentar terkait postingan ini, berupa pertanyaan atau pernyataan boleh. Terima kasih.