KERNEL: remove old inheritor and add _constraints and _sql_constraints to the fields inherited
bzr revid: ced-8b70c7c1adcf4991f2e1a449fc00e5066e414cbe
This commit is contained in:
parent
88baca3679
commit
fca8e731d1
|
@ -169,22 +169,23 @@ class osv_pool(netsvc.Service):
|
||||||
#
|
#
|
||||||
# See if we can use the pool var instead of the class_pool one
|
# See if we can use the pool var instead of the class_pool one
|
||||||
#
|
#
|
||||||
class inheritor(type):
|
# XXX no more used
|
||||||
def __new__(cls, name, bases, d):
|
#class inheritor(type):
|
||||||
parent_name = d.get('_inherit', None)
|
# def __new__(cls, name, bases, d):
|
||||||
if parent_name:
|
# parent_name = d.get('_inherit', None)
|
||||||
parent_class = class_pool.get(parent_name)
|
# if parent_name:
|
||||||
assert parent_class, "parent class %s does not exist !" % parent_name
|
# parent_class = class_pool.get(parent_name)
|
||||||
for s in ('_columns', '_defaults', '_inherits'):
|
# assert parent_class, "parent class %s does not exist !" % parent_name
|
||||||
new_dict = copy.copy(getattr(parent_class, s))
|
# for s in ('_columns', '_defaults', '_inherits'):
|
||||||
new_dict.update(d.get(s, {}))
|
# new_dict = copy.copy(getattr(parent_class, s))
|
||||||
d[s] = new_dict
|
# new_dict.update(d.get(s, {}))
|
||||||
bases = (parent_class,)
|
# d[s] = new_dict
|
||||||
res = type.__new__(cls, name, bases, d)
|
# bases = (parent_class,)
|
||||||
#
|
# res = type.__new__(cls, name, bases, d)
|
||||||
# update _inherits of others objects
|
# #
|
||||||
#
|
# # update _inherits of others objects
|
||||||
return res
|
# #
|
||||||
|
# return res
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -213,17 +214,20 @@ class osv(orm.orm):
|
||||||
if parent_name:
|
if parent_name:
|
||||||
parent_class = pool.get(parent_name).__class__
|
parent_class = pool.get(parent_name).__class__
|
||||||
assert parent_class, "parent class %s does not exist !" % parent_name
|
assert parent_class, "parent class %s does not exist !" % parent_name
|
||||||
ndict = {}
|
nattr = {}
|
||||||
for s in ('_columns', '_defaults', '_inherits'):
|
for s in ('_columns', '_defaults', '_inherits', '_constraints', '_sql_constraints'):
|
||||||
new_dict = copy.copy(getattr(pool.get(parent_name), s))
|
new = copy.copy(getattr(pool.get(parent_name), s))
|
||||||
new_dict.update(cls.__dict__.get(s, {}))
|
if hasattr(new, 'update'):
|
||||||
ndict[s] = new_dict
|
new.update(cls.__dict__.get(s, {}))
|
||||||
|
else:
|
||||||
|
new.extend(cls.__dict__.get(s, []))
|
||||||
|
nattr[s] = new
|
||||||
#bases = (parent_class,)
|
#bases = (parent_class,)
|
||||||
#obj.__class__ += (parent_class,)
|
#obj.__class__ += (parent_class,)
|
||||||
#res = type.__new__(cls, name, bases, d)
|
#res = type.__new__(cls, name, bases, d)
|
||||||
name = hasattr(cls,'_name') and cls._name or cls._inherit
|
name = hasattr(cls,'_name') and cls._name or cls._inherit
|
||||||
#name = str(cls)
|
#name = str(cls)
|
||||||
cls = type(name, (cls, parent_class), ndict)
|
cls = type(name, (cls, parent_class), nattr)
|
||||||
|
|
||||||
obj = object.__new__(cls)
|
obj = object.__new__(cls)
|
||||||
obj.__init__(pool)
|
obj.__init__(pool)
|
||||||
|
|
Loading…
Reference in New Issue