Mencegah Penambahan Data Melalui Many2One Widget

Apabila dalam implementasi OpenERP penggunaan access right dirasa kurang manjur dalam mencegah agar data tidak dimasukan melalui many2one widget, maka salah satu solusinya adalah dengan cara melakukan override method create.

Studi Kasus :

Pada Menu “Partners -> Partners” user tidak diperbolehkan menginput data langsung dari many2one widget field “Payment Term”. Maka kita bisa melakukan override method create object account.payment.term

def create(self, cr, uid, values, context={}):
    situasi = context.get(‘situasi’, ‘aman’)
    if situasi == ‘aman’:
        return super(payment_term, self).create(cr, uid, values, context)
    else:
        raise osv.except_osv(‘Peringatan’, ‘Data tidak bisa ditambahkan melalui menu ini’)

Kemudian tambahkan context pada field “property_payment_term” di form, dengan pasangan dictionary ‘situasi’ : ‘tidak_aman’

<field name=”property_payment_term” context=”{‘situasi’ : ‘tidak_aman’}”/>

Jika user diizinkan untuk menambah data langsung dari widget many2one, tinggal hilangkan pasangan dictionary di atas

<field name=”property_payment_term”/>

 

Cara di atas juga bisa diterapkan pada pembatasan pengeditan pada many2one widget

No comments yet.

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