OpenERP: Menambah Field pada Partner

Foto os

Partner merupakan mitra usaha, bisa pemasok atau pelanggan dimana OpenERP menggabungkan keduanya. Sekarang kita akan berbisnis ISP - Internet Service Provider - dimana Modul Partner perlu ada tambahan merk modem ADSL yang digunakan. Menurut OpenERP 5.0.5, di Partner ada sebuah tab notebook yang berisi page General, Sales & Purchases, History, dan Notes. Pertama, kita akan tambahkan sebuah page lagi bernama Internet Access yang berisi field merek modem tersebut. Kedua, penambahan Yahoo Messenger ID pada Partner Contacts.

Direktori yang digunakan disini sesuai dengan prosedur Instalasi OpenERP.
 
Pembuatan
Kita akan membuat modul baru bernama isp, jadi buatlah direktori /usr/lib/openerp-server/addons/isp:

$ sudo su
# cd /usr/lib/openerp-server/addons
# mkdir isp

Definisikan objeknya pada isp/isp.py:
from osv import fields, osv
 
class partner_customer(osv.osv):
    _name = 'res.partner'
    _inherit = 'res.partner'
    _columns = {
            'modem_name': fields.char('Modem name', size=64),
            }
 
partner_customer()
 
class partner_customer_address(osv.osv):
    _name = 'res.partner.address'
    _inherit = 'res.partner.address'
    _columns = {
            'yahoo_id': fields.char('Yahoo Messenger ID', size=50),
            }
 
partner_customer_address()

 
Buat isp/__init__.py sebagaimana prosedur Python untuk membuat direktori sebagai modul:
import isp

 
Buat isp/isp_view.xml untuk menambahkan page Internet Access pada form Partner:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id="view_partner_form_inherit">
            <field name="name">res.partner.form</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_partner_form"/>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <notebook>
                    <page string="Internet Access">
                        <field name="modem_name"/>
                    </page>
                </notebook>
            </field>
        </record>
 
        <record model="ir.ui.view" id="view_partner_form_inherit1">
            <field name="name">res.partner.form</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_partner_form"/>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <field name="email" position="after">
                    <field name="yahoo_id"/>
                </field>
            </field>
        </record>
 
        <record model="ir.ui.view" id="view_partner_address_form_inherit">
            <field name="name">res.partner.address</field>
            <field name="model">res.partner.address</field>
            <field name="inherit_id" ref="base.view_partner_address_form1"/>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <field name="email" position="after">
                    <field name="yahoo_id"/>
                </field>
            </field>
        </record>
 
    </data>
</openerp>

 
Lalu buat isp/__terp__.py sebagai informasi paket:
{
    'name': 'Internet Service Provider',
    'version': '1.0',
    'author': 'RAB',
    'depends': ['base_module_merge'],
    'update_xml': ['isp_view.xml'],
    'description': 'CRM for internet service provider'
}

 
Pemasangan
Pembuatan modul selesai. Berikutnya memasangnya melalui OpenERP Web.

  1. Setelah login, masuklah ke menu Administration, Module Management, Update Module List, Check New Modules, OK.
  2. Pada Basic search carilah isp. Setelah ketemu, klik isp, Schedule for Installation, Apply Scheduled Upgrades, Start Upgrade, Close.

Pemasangan selesai. Sekarang cobalah ke menu Partner, klik salah satu record-nya dan perhatikan tab notebook. Seharusnya kini sudah ada page baru bernama Internet Access berisi field Modem name. Sedangkan di page General ada field baru bernama Yahoo Messenger ID.
 
Pembaharuan Modul
Selama fase development, kita kerap menambah field dan mengubah-ubah tampilannya. Bila telah selesai mengubah, lakukanlah pembaharuan modul dengan perintah berikut ini:

$ sudo su
# su openerp -c "openerp-server --stop-after-init --database=openerp --update=isp"

Anda juga perlu me-restart web client-nya agar ia tidak menggunakan cache sehingga perubahan bisa terlihat:
# /etc/init.d/openerp-web stop
# /etc/init.d/openerp-web start

 
Selamat mencoba.