Setelah kita membahas model, security model, list view, form view, action window, dan navigasi menu, kita bisa mulai latihan CRUD. Kali ini kita coba memulai dari CRUD tanpa form dan list view terlebih dahulu dengan membuat module baru, yaitu gepcode_prd
. Module tersebut dibuat untuk mendokumentasikan requirement-requirement pada project yang akan dibuat. Yuk langsung saja kita mulai.
Pembuatan Module
Pembuatan module dapat kita mulai dengan membuat custom addons terlebih dahulu.
1. Buat Folder Baru
Buat folder pada root
folder anda dengan nama bebas, namun kali ini saya membuat folder dengan nama gepcode
untuk menyimpan module-module-module-saya.
2. Konfigurasi Custom Addons
Siapkan custom addons, untuk mempersiapkan bahwa folder tersebut bisa digunakan untuk menjadi addons.
[options]
addons_path = ./odoo/addons,./addons,./gepcode
3. Membuat Module Baru dengan CLI
Selanjutnya kita bisa membuat module baru dengan cara sebagai berikut:
./odoo-bin scaffold gepcode_prd ./gepcode
Setelah menjalankan command line tersebut, module akan otomatis terbuat pada folder addons kita. Berikut adalah hasil penyimpanannya:
Membuat Model
1. Buat File Model
Buat file gepcode_prd.py
pada folder models, dan hapus file model jika ada.
2. Ubah File __init__.py
folder model
Ubah file __init__.py
pada folder model dengan kode sebagai berikut.
from . import gepcode_prd
kode tersebut digunakan untuk menjelaskan ke sistem odoo bahwa kita mendaftarkan file model kita.
3. Ubah file gepcode_prd.py
Disini saya akan memberikan contoh beberapa field pada model beserta kode lengkapnya yang bisa anda isikan pada file gepcode_prd.py
.
from odoo import models, fields
class GepcodePRD(models.Model):
_name = "gepcode_prd.prd"
_description = "Gepcode PRD"
name = fields.Char(string="Name", required=True)
description = fields.Html(string="Description")
Ubah file ir.model.access.csv
Ubah file ir.model.access.csv
pada folder security untuk memberi akses ke semua internal user. Berikut adalah lokasinya:
Untuk isinya adalah sebagai berikut:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_gepcode_prd_gepcode_prd,access_gepcode_prd_gepcode_prd x internal user,model_gepcode_prd_prd,base.group_user,1,1,1,1
Jika anda bingung akan penjelasan tentang ini anda bisa membuka kembali bab security model [5].
Buat Action Window dan Navigasi Menu
Untuk membuat action window anda perlu melakukan hal berikut
1. Membuat View File
Pada folder views, tambahkan file bernama gepcode_prd_views.xml
. Contoh hasilnya adalah sebagai berikut:
2. Tambahkan Action Window dan Menu pada gepcode_prd_views.xml
Tambahkan kode berikut untuk membuat action dan menu.
<odoo>
<data>
<!-- Action -->
<record id="gepcode_prd_action" model="ir.actions.act_window">
<field name="name">PRD</field>
<field name="res_model">gepcode_prd.prd</field>
<field name="view_mode">list,form</field>
</record>
<!-- Menu -->
<menuitem id="gepcode_prd_menu_root"
name="PRD"
sequence="1"
action="gepcode_prd_action" />
<data>
</odoo>
Update File __manifest__.py
Agar security dan views terbaca oleh odoo, anda perlu mengimport file-file tersebut pada file __manifest__.py
yang ada pada module anda. Berikut adalah contoh untuk mengimport file-file tersebut.
# -*- coding: utf-8 -*-
{
'name': "Gepcode PRD",
'summary': "Project Requirement Document Features",
'description': """
This module can be used to improve your team productivity
""",
'license': 'AGPL-3',
'author': "gepcode",
'website': "https://gepcode.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base', 'web'],
# always loaded
'data': [
'security/ir.model.access.csv',
'views/gepcode_prd_views.xml'
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}
Install Module
Aktivasi Virtual Environment
Sebelum menginstall module, anda harus menjalankan odoo terlebih dahulu. Dalam hal ini kita membutuhkan virtual environment. Aktifkan virtual environment seperti berikut:
source venv/bin/activate
Lalu jalankan odoo anda dengan:
python odoo-bin -u odoo.conf
Aktifkan Developer Mode
Buka menu Setting
lalu pencet Activate the developer mode
Update App List
Buka menu App
lalu pencet menu Update App List
lalu keluar modal dialog, pencet tombol Update
. Seperti berikut:
Upgrade Module
Hapus filter, lalu cari module gepcode_prd
dan pencet tombol upgrade. Selamat, anda telah sukses membuat CRUD tanpa view.
Pada artikel atau bab selanjutnya, saya akan membahas CRUD menggunakan view.