[Odoo 10] Technical Documentation -Part 1-

Bismillah …

Insya Allah saya akan memulai lagi untuk berbagi sedikit ilmu yang saya miliki khususnya seputar technical odoo 10 yang telah menggunakan API baru. Materi saya ambil dari berbagai ebook dan web yang menjelaskan technical odoo (terutama di website resminya).

Odoo di kembangkan dengan framework OpenObject dengan bahasa python. Olehkarna itu, sebelum kita masuk ke frameworknya, pastikan kita sudah berkenalan dengan python, minimal mengetahui syntax dasarnya. Karna framework OpenObject banyak perbedaan disana dengan bahasa python, sudah banyak campuran dengan ORM dan ‘peringkasan’ atau ‘pembungkusan’ python code. Silahkan mecoba tutorial python yang sangat interaktif di :

https://codesaya.com/python/

atau

https://www.codecademy.com/learn/python

Untuk tutorial ini, saya menggunakan OS Linux Ubuntu 16.04, jika anda berbeda OS, maka silahkan untuk menyesuaikannya. Selanjutnya adalah Instalasi Odoo. Ada banyak sekali tata cara instalasi odoo, silahkan pilih cara yang terbaik bagi anda, saya juga pernah membahasnya pada halaman ini.

Setelah Odoo berjalan dengan baik, maka untuk memulainya kita harus membuat sebuah modul baru. Pada versi terbaru, odoo telah menyiapkan ‘shortcut’ yang bernama “SCAFFOLD”, untuk membuat modul secara instan yang mengandung ‘komponen’ default pada sebuah modul odoo. Kita langsung coba ketikan :


# python [path_source_odoo]/odoo-bin scaffold -t default [nama_modul] [path_addons]

python ~/odoo/odoo-10.0/odoo-bin scaffold -t default training_odoo ~/odoo/addons/DEMO10/

Perintah diatas digunakan untuk membuat modul default pada odoo, sedangkan jika kita ingin membuat modul theme, maka perintahnya seperti ini :


# python [path_source_odoo]/odoo-bin scaffold -t theme [nama_modul] [path_addons]

python ~/odoo/odoo-10.0/odoo-bin scaffold -t theme theme_training_odoo ~/odoo/addons/DEMO10/

Silahkan di sesuaikan untuk [path_source_odoo], [nama_modul] dan [path_addons] nya masing-masing. Untuk kelancaran tutorial, sebaiknya [nama_modul] disamakan.

Setelah kita mengeksekusi perintah di atas, maka pada addons kita akan tercipta sebuah modul baru dengan struktur sebagai berikut :

training_odoo
. controllers
…. __init__.py
…. controllers.py
. demo
…. demo.xml
. models
…. __init__.py
…. models.py
. security
…. ir.model.access.csv
. views
…. templates.xml
…. views.xml
. __init__.py
. __manifest__.py

Pada versi ini, struktur MVC (Model View Controller) sudah terlihat, dengan adanya pembagian per folder. Sama halnya seperti konsep MVC yang lain, masing-masing folder memiliki fungsi tersendiri, penjelasan ringkasnya sebagai berikut :

A. Controllers = Berisi file python yang mengandung perintah untuk komunikasi model & view (untuk website)
B. Demo = Berisi file xml yang mengandung data untuk demo (saat create database centang “Load Demostration Data”)
C. Models = Berisi file python yang mengandung perintah untuk ORM dan lainnya
D. Security = Berisi file csv yang mengandung akses right pada setiap object (tabel) dan file xml untuk membuat group sesuai kebutuhan akses right
E. Views = Berisi file xml yang mengandung syntax untuk membuat tampilan suatu view yaitu list, form, kanban, calendar, pivot, dan graph

Nantinya kita juga bisa menambahkan beberapa folder lagi sesuai kebutuhan seperti report, wizard, i18n, static, dll. Seperti berikut :

F. Report = Berisi file python dan file pembuat report seperti xml, rml, mako, dll
G. Wizard = Berisi file python dan xml untuk membuat object & view dari suatu wizard (object on the fly)
H. i18n = Berisi file translator
I. Static = Berisi file pendukung web seperti javascript, css, dll

Disamping folder, modul yang telah kita buat juga mengandung 2 file yaitu : __init__.py dan __manifest__.py seperti penjelasan berikut ini :

J. __init__.py

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. Pada file ini kita harus mengimport semua folder yang mengandung file python dan mengimport file python yang sejajar dengan file __init__ ini jika ada

K. __manifest__.py

Sebagaimana file __init__.py, file ini juga berfungsi untuk menjadikan folder biasa menjadi modul odoo. fungsinya sama seperti file __openerp__.py pada versi odoo sebelumnya. Isinya mengandung informasi bagi user saat ingin menginstall modul terkait. Isinya seperti berikut :



# -*- coding: utf-8 -*-
{
    'name': "training_odoo",

    'summary': """
        Short (1 phrase/line) summary of the module's purpose, used as
        subtitle on modules listing or apps.openerp.com""",

    'description': """
        Long description of module's purpose
    """,

    'author': "My Company",
    'website': "http://www.yourcompany.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_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',
    ],
}

Penjelasan ringkasnya sebagai berikut :


name : (Nilainya String) # Nama modul
summary : (Nilainya String) # Ringkasan fungsi modul
description : (Nilainya String) # Penjelasan fungsi modul
author : (Nilainya String) # Pembuat modul
website : (Nilainya String) # Website modul
category : (Nilainya String) # Category modul
version : (Nilainya String) # Versi modul
depends : (Nilainya List) # Modul yang diisi akan otomatis terinstall saat modul ini diinstal
data : (Nilainya List) # Akan meload file xml & csv (Isinya file dari folder security, views, data, report, wizard)
demo : (Nilainya List) # Akan meload file xml & csv (Isinya file dari folder demo)
image : (Nilainya List) # Gambar atau screenshoot dari modul
qweb : (Nilainya List) # Akan meload file xml (Isinya file dari folder static)
css : (Nilainya List) # Akan meload file css (Isinya file dari folder static)
installable : (Nilainya Boolean) # Jika diisi True, maka modul dapat diinstal
application : (Nilainya Boolean) # Jika diisi True, modul akan terfilter sebagai Apps
auto_install : (Nilainya Boolean) # Jika diisi True, modul akan otomatis terinstall saat pembuatan database

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 ini :



# -*- coding: utf-8 -*-
{
    'name': "Training Odoo",
    'summary': """
        Modul untuk latihan tehcnical """,

    'description': """
        Modul ini berfungsi untuk menjalankan technical documentation pada website resmi odoo.com. Bahan yang dipelajari adalah :\n
        - ORM\n
        - Berbagai View\n
        - Report\n
        - Wizard\n
        - Dll
    """,

    'author': "Muhammad Aziz",
    'website': "http://www.tutorialopenerp.wordpress.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_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',
    ],
}

Lanjutkan dengan proses instalasi modul, yaitu klik Apps > Update Apps Lits. Cari modul sesuai nama “training_odoo” lalu klik install seperti gambar berikut :

Bagi yang belum berhasil, silahkan mendownload hasil scaffold yang saya buat disini

Semoga bermanfaat dan Insya Allah bersambung …

Saran dan kritik yang membangun selalu saya tunggu ….

Advertisements

2 thoughts on “[Odoo 10] Technical Documentation -Part 1-

    • Saat kita download sourcenya dari https://nightly.odoo.com/10.0/nightly/src/ biasanya tidak ada file odoo-bin, maka kita harus membuatnya dengan perintah :

      Masuk ke folder setup di dalam folder odoo (/home/hasna/odoo/odoo-10.0/setup/) lalu ketik :

      # Memindahkan file odoo ke luar folder setup dan me-rename-nya menjadi odoo-bin

      sudo mv odoo /home/hasna/odoo/odoo-10.0/odoo-bin

      # Merubah akses file odoo-bin agar bisa di eksekusi

      sudo chmod a+x /home/hasna/odoo/odoo-10.0/odoo-bin

      Semoga berhasil …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s