Selasa, 30 Januari 2024
Bertemu lagi dengan kami di tutorial Odoo 16 , Di kesempatan sebelumnya kita sudah menyelesaikan tutorial Odoo 16 pada volume 1.3 dan sekaligus adalah akhir dari volume 1. Dan pada kesempatan kali ini kita akan melanjutkan tutorial sebelumnya yang sudah kita tunggu - tunggu yaitu kita akan masuk ke volume 2. Baik tanpa berlama - lama kita masuk ke tutorialnya.
Pada tutorial volume 2 ini kita akan mulai proses development secara mendasar untuk modul training kita. Sesuai dengan judul kita akan menggunakan odoo 16, untuk sistem operasinya saya menggunakan ubuntu 22.04 dengan kondisi odoo dan ubuntu dalam keadaan fresh.
Selanjutnya kita akan menambahkan folder project baru yang kita beri nama TRAINING16 dan jangan lupa kita harus menginputkan folder TRAINING16 ke dalam addons_path. berikut contohnya.
[options]
admin_passwd = superadmin
db_user = odoo16
db_password = odoo16
addons_path = ~/odoo/addons/TRAINING16
error_level = debug
Selanjutnya kita bisa menjalankan Odoo16 dengan perintah sebagai berikut
python3 ~/odoo/odoo-16.0/odoo-server -c ~/odoo/conf/odoo-training16.conf
Selanjutnya kita buat database baru dengan master password "superadmin", untuk database name kalian bisa nengisinya sesuai keperluan kalian. di sini saya menggunakan nama TRAINING dan jangan lupa ceklis bagian data demo agar kita bisa melihat data dumy dari Odoo. yang pertama kita lakukan setelah berhasil masuk ke menu utama Odoo adalah install 3 modul utama yaitu Sales, Inventory, dan Purchase.
Selanjutnya kita akan membuat sebuah modul baru dengan memanfaatkan fitur SCAFFOLD. Fitur ini berfungsi untuk membuat template module baru secara instan.
Untuk melakukan SCAFFOLD kita harus men-stop service odoo yang sedang berjalan terlebih dahulu. Setelah itu kita bisa membuat SCAFFOLD dengan mengetikan perintah di bawah
python3 [path_source_odoo] scaffold [nama_modul] [path_addons]
python3 ~/odoo/odoo-16.0/odoo-server scaffold training_odoo ~/odoo/addons/TRAINING16/
Perintah di atas di gunakan untuk membuat modul baru secara otomatis pada odoo (back-end), sedangkan jika kita ingin membuat modul themes (front-end), maka perintahnya kita tambahkan parameter -t themes, seperti berikut.
python3 [path_source_odoo] scaffold -t theme [nama_modul] [path_addons]
Jika kita menggunakan windows, sudah terdapat file odoo.bin pada folder installasi folder. Fungsi Odoo.bin di windows ini sama dengan odoo-server di ubuntu. Jalankan file tersebut di terminal dengan perintah berikut.
odoo-bin scaffold [nama_modul] [path_addons]
Hasilnya
odoo-bin scaffold training_odoo addons
Selanjutnya sesuaikan [path_source_odoo], [nama_modul], dan [path_addons] nya masing - masing. Setelah mengakses perintah di atas maka pada addons kita akan tercipta modul baru dengan susunan sebagai berikut.
Struktur hirarki di atas mencerminkan penerapan konsep Model View Controller (MVC) dalam organisasi folder. Setiap bagian memiliki peran yang terdefinisi dengan jelas, mengikuti prinsip-prinsip MVC. Folder Model didedikasikan untuk menyimpan komponen-komponen terkait logika bisnis dan pemrosesan data, seperti representasi objek dan aturan bisnis aplikasi. Di sisi lain, folder View berfungsi sebagai wadah untuk komponen-komponen antarmuka pengguna, menyimpan elemen-elemen tampilan dan layout yang diperlukan. Sementara itu, folder Controller bertanggung jawab atas pengontrolan alur program dan interaksi dengan model dan tampilan, melibatkan logika pengontrolan input dan pemrosesan peristiwa. Dengan demikian, struktur folder ini tidak hanya menyusun kode secara terorganisir, tetapi juga menciptakan pemisahan yang jelas antara komponen-komponen kunci dalam pengembangan perangkat lunak:
Berisi file python yang mengandung perintah untuk komunikasi model & view (untuk website/front-end)
Berisi file xml yang mengandung data untuk demo (saat create database centang “Demo Data”)
Berisi file python yang mengandung perintah untuk menggunakan ORM seperti membuat model, inherit, dll
Berisi file csv yang mengandung akses right pada setiap model (tabel) dan file xml untuk membuat group sesuai kebutuhan akses right
Berisi file xml yang mengandung syntax untuk membuat berbagai tampilan view seperti list, form, kanban, calendar, pivot, graph, dll
Berisi file python sebagai parsing datanya dan xml sebagai file action dan template reportnya
Berisi file python dan xml untuk membuat model & view dari suatu wizard (model on the fly)
Berisi file translator
Berisi file pendukung seperti javascript, css, image, dll
Di samping folder di atas, modul yang kita buat juga telah mengandung 2 file inti yaitu: __init__.py dan __manifest__.py yang memiliki fungsi sebagai berikut:
File ini berfungsi untuk menjadikan folder biasa menjadi modul python. Karna Odoo dikembangkan dengan python, maka modul odoo harus dikenali oleh python. File ini juga berfungsi sebagai constructor sebagaimana pada file python, Odoo akan membaca file ini pertama kali saat diinstal.
Folder ini berfungsi untuk merubah folder biasa menjadi folder odoo. File ini berisi directory python yang memiliki beberapa key dan mengandung informasi bagi user yang ingin menginstall modul kita. Berikut adalah contoh isi dari file __manifest__.py
{
'name' : 'Undangan',
'version' : '15.0-1.0.0',
'summary' : 'Module Create Undangan',
'description' : """
Membantu anda dalam pembuatan undangan anda
""",
'website' : 'arafatskr.my.id',
'category' : 'create & tools',
'author' : 'Galih Nur Arafat',
'maintenence': 'arafat.cloud',
'license' : 'AGPL-3',
'depends' : [
'base',
'mail',
],
'data' : [
'view/undangan_view.xml',
'security/ir.model.access.csv',
'reports/report.xml',
'reports/undangan_card.xml',
'reports/rismu_card.xml',
'reports/rismu_report.xml',
'view/rismu_view.xml',
],
'images' : 'static/description/icon.png',
'application' : True,
}
Kedua file python ini (__init__ & __manifest__) wajib ada pada setiap modul Odoo. Dan tanpa salah satunya, maka Odoo tidak bisa mengenalinya. Selanjutnya kita akan merubah isi dari file __manifest__, sesuai dengan informasi yang kita inginkan. Seperti berikut.
# -*- coding: utf-8 -*-
{
'name': "Training Odoo",
'summary': """ Modul untuk latihan technical Odoo """,
'description': """
Modul ini berfungsi untuk mempraktekan technical documentation pada website resmi odoo.com. Sebagian hal yang akan dipelajari adalah :
- ORM
- Berbagai View
- Report
- Wizard
- Dll """,
'author': "PT. Ismata Nusantara Abadi",
'website': "https://www.ismata.co.id",
# Categories can be used to filter modules in modules listing
#Check https://github.com/odoo/odoo/blob/16.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'],
# always loaded 'data': [
# 'security/ir.model.access.csv',
'views/views.xml',
'views/templates.xml', ],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
'application': True,
], }
Setelah melakukan pembaruan informasi di file manifest, langkah selanjutnya adalah melanjutkan proses instalasi modul pelatihan di menu Apps. Caranya adalah dengan mengklik menu Apps dan kemudian memilih Update Apps List. Untuk menampilkan opsi Update Apps List, aktivasi Developer Mode terlebih dahulu diperlukan. Caranya adalah masuk ke menu Setting, gulir ke bagian paling bawah, dan klik tautan 'Activate the developer mode'. Setelah itu, kembali ke menu Apps, pilih Update Apps List, dan cari modul yang sesuai dengan nama modul pelatihan, yaitu 'training_odoo'.
Setelah itu restart service Odoonya dan silahkan mengulangi langkah ke menu Apps > Update Apps List, insyaAllah modul training_odoo sudah terdeteksi di menu Apps.
Baca Juga Jangan Sampai Ketinggalan : https://tunasoperasi.co.id/blog/our-blog-1/odoo-16-technical-documentation-volume-1-3-5
Referensi Pembuatan Tutorial : https://tutorialopenerp.wordpress.com/2023/05/28/odoo-16-technical-documentation-part-2/