Overriding function digunakan untuk memperbaharui fungsi yang standard bawaan. Contoh penerapan untuk overriding create, copy dan unlink agar bisa diatur dengan context(parameter).

from osv import fields, osv

class mrp_property_group(osv.osv):

_name = ‘mrp.property.group’
_inherit = ‘mrp.property.group’

def create(self, cr, uid, values, context={}):

# Overriding method create
# Tujuan :
# 1. Agar penginputan data diatur melalui context

situasi = context.get(‘situasi’, ‘aman’)

if situasi == ‘aman’:

return super(mrp_property_group, self).create(cr, uid, values, context)

 else:

 raise osv.except_osv(‘Peringatan’, ‘Data tidak bisa ditambahkan’)

def copy(self, cr, uid, id, default=None, context={}):

# Overriding method copy
# Tujuan :
# 1. Agar copy data diatur oleh context

situasi = context.get(‘situasi’, ‘aman’)

if situasi == ‘aman’:

return super(mrp_property_group, self).copy(cr, uid, id, default, context)

else:

raise osv.except_osv(‘Peringatan’, ‘Data tidak bisa dicopy’)

def unlink(self, cr, uid, ids, context={}):

# Overriding method copy
# Tujuan :
# 1. Agar penghapusan data diatur oleh context

situasi = context.get(‘situasi’, ‘aman’)

if situasi == ‘aman’:

return super(mrp_property_group, self).unlink(cr, uid, ids, context)

else:

raise osv.except_osv(‘Peringatan’, ‘Data tidak bisa dihapus’)

mrp_property_group()

Sumber : Andhitia Rama