Membuat bagian Suplier


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

Oform :

menu pembelian berhubungan dengan alat yg disediakan suplier untuk dibeli maka dari itu untuk alat atau bahan yg dibeli bisa dibuat sendiri