Membuat models dan addons
buka Docker dan jalankan odoo
Structur membuat models :
buat nama folder sesuai nama models yang akan dibuat
contoh style rentcar
buat struktur didalamnya terdapat
dalam folder views masih kosong sedangkan __init__.py dan __manifest__.py adalah file didalam style rentcar
Tahap pemasukan coding
Pada __Manifest__.py isikan :
# -*- coding: utf-8 -*-
{
'name': 'Style Rent Car',
'summary': 'Style rentcar management software',
'description': """Style rentcar management software""",
'author': "My Company",
'website': "http://srikandiart.com",
'category': 'Productivity',
'version': '0.1',
'application': True,
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
'security/ir.model.access.csv',
],
}
Lalu restart odoo di docker dan akses kembali localhost
lalu ke updat apps dan cari di menu search filenya lalu install
lalu ke updat apps dan cari di menu search filenya lalu install
Buat folder models didalam style_rentcar
dan beri isi __init__.py danjuga models.py
dan __init__.py berisi
from . import models
from odoo import models, fields, api
class ModelDasar(models.Model):
_name = "stylerent.modeldasar"
_description = "model dasar style rent car"
kapasitas = fields.Char(
string='kapasitas penumpang',
Required=True,
)
tipe = fields.Selection(
string='tipe/jenis mobil',
selection=[('sedan', 'Sedan'), ('lcgc', 'LCGC'), ('mpv', 'MPV'), ('suv', 'SUV')]
)
class stylerent(models.Model):
_name = "stylerent.jenismobil"
_description = "Daftar Jenis-jenis mobil"
_inherit = 'stylerent.modeldasar' #memanggil model class yg atas inheriten delegation
name = fields.Char(
string='Jenis Sewa',
Required=True
)
harga = fields.Integer(
string='Harga sewa',
Required=True
)
active = fields.Boolean(
default=True
)
Tambahkan folder security di rentcar yang didalamnya berisi ir.models.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_stylerent_jenismobil,access.stylerent.jenismobil,model_stylerent_jenismobil,,1,1,1,1
dengan struktur
File dalam folder controllers hanya berisi
__init__.py
import . from controllers
dan controllers.py kosong
Lalu restart kembali odoo server didalam docker dan refresh kembali untuk page odoo
lalu lakukan upgrade pada addons :
Cari name yg sudah diinput tadi maka akan keluar modelsnya
Membuat menu bar dan Views
buatlah folder views didalam style_rentcar
dan tambah file menu.xml juga stylerent.xml
dengan code.
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- This Menu Item will appear in the Upper bar, that's why It needs NO parent or action -->
<menuitem id="stylerent_menu_root" name="Style Rent Car" sequence="10"/>
<!-- This Menu Item Must have a parent -->
<menuitem id="stylerent_datamaster_menu_categ"
name="Operasional"
parent="stylerent_menu_root"
sequence="10"/>
<menuitem id="stylerent_datacontact_menu_categ"
name="Contacts"
parent="stylerent_menu_root"
sequence="11"/>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- model.name tree view -->
<record id="stylerent_jenismobil_view_tree" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.tree</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<tree>
<field name="name"></field>
<field name="harga"></field>
<field name="kapasitas"></field>
<field name="tipe"></field>
<field name="active"></field>
</tree>
</field>
</record>
<!-- model.name action window -->
<record id="stylerent_jenismobil_action" model="ir.actions.act_window">
<field name="name">Jenis Mobil Style Rent Car</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stylerent.jenismobil</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_smiling_face">
Diisi dengan daftar tipe/jenis mobil dan Harga sewa
</p><p>
<!-- More details about what a user can do with this object will be OK -->
</p>
</field>
</record>
<!-- This Menu Item must have a parent and an action -->
<menuitem id="stylerent_jenismobil_menu_act"
name="Tipe/Jenis Mobil"
parent="stylerent_datamaster_menu_categ"
action="stylerent_jenismobil_action"
sequence="10"/>
</data>
</odoo>
Remember Menu Item must have *HARUS PALING BAWAH
Lalu jangan lupa untuk tambahkan manifest berikut ke data yang ada di __manifest__.py# always loaded
'data': [
'security/ir.model.access.csv',
'views/menu.xml',
'views/stylerent_views.xml',
],
Setelah itu silahkan Restart odoo didalam docker dan reload kembali page di apps lalu upgrade style_rentcar setelah di update masuk ke menu style rent yg ada di menu -> style rent car
Lalu silahkan create dengan data sebagai berikut
Lalu untuk kembali klik Style Rent Car
dan muncul tampilan
Membuat field Edit
Buka file stylerent_views.xml
lalu tambahkan code ini untuk menambah field jika di klik maka file nya berupa fields edit :
tambahkan dibawah code<!-- model.name tree view --> </record>
<!-- model.name form view -->
<record id="stylerent_jenismobil_view_form" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.form</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<form string="Daftar Harga Sewa">
<sheet>
<group>
<group colspan='4'>
<group colspan='2'>
<separator string="RINCIAN SEWA"/>
<field name="name"/>
<field name="kapasitas"/>
</group>
<group colspan='2'>
<separator string="TIPE MOBIL"/>
<field name="tipe"/>
</group>
<notebook colspan='4'>
<page string="HARGA SEWA">
<field name="harga"/>
</page>
</notebook>
</group>
</group>
</sheet>
</form>
</field>
</record>
Save dan upgrade langsung module stylerent.car yang ada di apps (tidak usah restart server odoo karena tidak mengedit file py)
maka akan tampil jika harian mingguan atau tahunan di klik (salah satu):
Membuat Filter pemanggil di menu search agar otomatis ada pilihanya
masuk ke file stylerent_views.xml
dibawah code <!-- model.name form view -->
<!-- model.name search view -->
<record id="stylerent_jenismobil_view_search" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.search</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<search string="Pencarian">
<!-- Add your fields here (pencarian berdasarkan) -->
<field name="name"/>
<field name="tipe"/>
<filter name="7" string="7" domain="[('tipe', 'ilike', '7')]" />
<filter name="5" string="5" domain="[('tipe', 'ilike', '5')]" />
</search>
</field>
</record>
record id nya diambil dari models -> class stylerent.jenismobil
Upgrade module (tanpa restart server) lalu ke menu style rent car Maka muncul :