Model hirarki pada development pada Odoo 17 dimengerti sebagai adanya relasi many2one pada model yang sama.
Model Hirarki pada Pemrograman Odoo 17 adalah seperti pada langkah-langkah berikut ini
- Start SSH file system
- Model asrama.category
12345678910111213141516171819202122from odoo import fields, models, api
from odoo.exceptions import ValidationError
class
AsramaCategory(models.Model):
_name =
'asrama.category'
_description =
'Kategori Hostel'
_parent_store = True
_parent_name =
'parent_id'
name = fields.Char(
'Kategori'
)
parent_id = fields.Many2one(
'asrama.category'
,
string=
'Parent Category'
,
ondelete=
'restrict'
,
index=True)
parent_path = fields.Char(index=True,unaccent=False)
child_ids = fields.One2many(
'asrama.category'
,
'parent_id'
, string=
'Child Categories'
)
@api.constrains(
'parent_id'
)
def _check_hierarchy(self):
if
not self._check_recursion():
raise models.ValidationError(
'Error! Tidak boleh kategori yang rekursif'
)
- Model asrama.hostel
12345678910111213141516171819202122232425262728293031323334353637383940from odoo import api, fields, models
class
Hostel(models.Model):
_name =
'asrama.hostel'
_description =
'Informasi tentang asrama-hostel'
_order =
'id desc, name'
_rec_name =
'hostel_code'
name = fields.Char(string=
'Nama Hostel'
,required=True)
hostel_code = fields.Char(string=
'Kode'
,required=True)
street = fields.Char(string=
'Jalan'
)
street2 = fields.Char(string=
'Jalan2'
)
zip = fields.Char(
'Zip'
,change_default=True)
city = fields.Char(
'Kota'
)
state_id = fields.Many2one(
'res.country.state'
, string=
'State'
)
country_id = fields.Many2one(
'res.country'
, string=
'Negara'
)
phone = fields.Char(
'Phone'
,required=True)
mobile = fields.Char(
'Mobile'
,required=True)
email = fields.Char(
'Email'
)
hostel_floors = fields.Integer(string=
'Jml Lantai'
)
image = fields.Binary(
"Gambar Hostel"
)
active = fields.Boolean(
"Active"
,
default
=True, help=
"Aktifkan/Nonaktifkan data hostel"
)
type = fields.Selection([(
'male'
,
'Laki-laki'
),(
'female'
,
'Perempuan'
),(
'common'
,
'Umum'
)]
,
'Tipe'
, help=
'Tipe Hostel'
,required=True,
default
=
'common'
)
other_info = fields.Text(
'Informasi lain'
,help=
'Masukkan informasi lain'
)
description = fields.Html(
'Description'
)
hostel_rating = fields.Float(
'Rata-rata rating hostel'
,digits=
'Nilai Rating'
)
category_id = fields.Many2one(
'asrama.category'
)
@api.depends(
'hostel_code'
)
def _compute_display_name(self):
for
record in self:
name = record.name
if
record.hostel_code:
name = f
'{name} ({record.hostel_code})'
record.display_name = name
- Init pada folder models
12345from . import hostel
from . import asrama_room
from . import asrama_student
from . import asrama_amenities
from . import asrama_categ
- Start Odoo dengan update modul
- Tabel asrama_category
Kunjungi www.proweb.co.id/implementasi-odoo/ untuk menambah wawasan implementasi Odoo ERP.