Sama seperti membuat models diawal pada odoo bagi yang belum lihat bisa lihat lagi
Atau bisa kita ulang kembali membuat models baru di odoo (test) tutor ini tidak lengkap sehingga bisa memunculkan atau mengulang kembali yg telah dipelajari.
Buat folder suplier.py didalam models dan tambahkan di init
buat oomodel
class model.technical.name(models.Model):
_name = 'model.technical.name'
_description = 'model.technical.name'
yang nantinya akan diisi dengan
class suplier(models.Model):
_name = 'stylerent.suplier'
_description = 'Data Suplier'
Mengingat kembali bahwa bagian _name ini penting karena nanti berkaitan untuk ke xml dan lainya jadi mudahkan namanya
lalu tambahkan field field yang akan muncul nantinya oofield
sehingga menjadi
name = fields.Char(string='Nama Suplier')
cp = fields.Char(string='Contact Person')
alamat = fields.Char(string='Alamat Suplier')
telp = fields.Char(string='No telefon')
atau kalian bisa tambahkan lainya jika menginginkanya
lalu tambahkan dipaling atas
from odoo import api, fields, models
untuk bisa membaca fields fields dan models nya jangan lupa tambahkan ke __init__.py di models dengan nama suplier.py
Buat xml nya dengan stylerent_pembelian.xml (bebas)
Dalam xml ini maka kita perlu isi apa saja yang ada didalam webnya saat diakses nantinya dengan struktur yang ada didalam odoo dan didalam data
- Tree View (ootree) = saat ditampilan luar
- Form View (oform) = saat diklik dan muncul form
- Action (oact) = untuk menjalankan singkronasi py dan database
- menuitem (menuitem) = untuk membuat menu atau icon di dalam model
Penjelasan tiap struktur
1. dengan ootree atau bisa dengan code
<!-- suplier tree view -->
<record id="model_stylerent_suplier_view_tree" model="ir.ui.view">
<field name="name">stylerent.suplier.view.tree</field>
<field name="model">stylerent.suplier</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="alamat"/>
</tree>
</field>
</record>
dimana record id akan merekam dan _name_ ubah dengan _name yg ada di py tujuan
field name dan field model juga harus sesuai dengan yg nantinya akan di ir.acces untuk field name sesuaikan dengan name.view.tree
lalu untuk field fieldnya bisa ditulis atau dipanggil field yg sudah dibuat di suplier.py
2. dengan ooform atau bisa dengan source
<!-- suplier form view -->
<record id="model_stylerent_suplier_view_form" model="ir.ui.view">
<field name="name">stylerent.suplier.view.form</field>
<field name="model">stylerent.suplier</field>
<field name="arch" type="xml">
<form string="Form Suplier">
<sheet>
<group>
<group colspan='4'>
<group colspan='2'>
<separator string="Data Suplier"/>
<field name="name"/>
<field name="cp"/>
</group>
</group>
</group>
</sheet>
</form>
</field>
</record>
dimana penjelasanya sama dengan diatas dan groupnya memiliki 2 atau 3 dengan lebar yang berbeda beda sehingga bisa merapihkan dari form yang nantinya akan dibuat dan separator berfungsi untuk Batas judul sebelum fieldpython ditaruh
3. dengan oact atau bisa dengan source code
<!-- suplier action window -->
<record id="model_stylerent_suplier_action" model="ir.actions.act_window">
<field name="name">Suplier</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stylerent.suplier</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
diisi
</p><p>
<!-- More details about what a user can do with this object will be OK -->
</p>
</field>
</record>
dimana penjelasanya adalah model_name(sama dengan nanti yg akan ada di ir.acces)
name adalah nama dari actionya
res_model adalah sama dengan ir.acces dan form yg ada di tree,form itu dihapus saja karena sudah ada form diatas sebelum act
content_create (diisi) itu untuk pemberitahuan apabila form masih kosong
4. menuitem source code
<menuitem id="stylerent_pembelian_menu_act"
name="Suplier"
parent="stylerent_pembelian_menu_categ"
action="model_stylerent_suplier_action"
sequence="13"/>
dengan penjelasan menuitem id adalah hanya untuk pemberitahuan id dari menuitem
name= adalah untuk penamaan di menu web nantinya
parent adalah orangtua atau tujuan dari action ini
akan ikut yg mana? atau bisa diikutin ke parent logo jadi nanti akan disebelah dari logo
actionya ini harus sama dengan record id yg ada di menuact sequence nya bebas
Tambahkan di menu.xml apabila parent tidak ikut ke sebelah logo
buat menuitem dipaling bawah (masih dalam odoo dan data)
<menuitem id="stylerent_pembelian_menu_categ"
name="Pembelian"
parent="stylerent_menu_root"
sequence="40"/>
dengan penjelasan id ini adalah yg nantinya akan menjadi parent dari form xml yg dibuat diatas
dan name adalah menu yg ditunjukan nantinya
parent adalah icon pengikut dari icon yg nantinya akan dibuat parent ini biasanya diikutkan di logo, sequence biasanya bersifat urutan menu yg akan ditampilkan makin besar angkanya maka akan semakin kanan
Tambahkan acces di security
Seperti dipenjelasan membuat model maka jika ada form baru atau menu baru maka diharuskan memberikan acces untuk ke database dan juga acces untuk admin maka dari itu bisa ditambahkan
access_stylerent_suplier,access.stylerent.suplier,model_stylerent_suplier,,1,1,1,1
dengan mode yg harus sama name yg ada di py dan name yg sudah dijelaskan diatas
Tambahkan xml yg ada di manifest.py
untuk file stylerent_pembelian.xml agar muncul maka harus di kasih tau di manifest atau didaftarkan
dengan menambah
'views/stylerent_pembelian.xml'
pada data di manifest
Restart server dan upgrade apabila berhasil maka akan menjadi
tree : yg diatas adalah menuitem yg sudah dijelaskan