[FIX] osv: don't _inherit _custom fields.
- a attribute 'manual' is added on _column to recognize accurately custom fields. bzr revid: vmt@openerp.com-20110525132612-dlxwlh4jvvfhyfsi
This commit is contained in:
parent
f06bea272f
commit
3dc30f5ea5
|
@ -63,7 +63,13 @@ class _column(object):
|
||||||
_symbol_set = (_symbol_c, _symbol_f)
|
_symbol_set = (_symbol_c, _symbol_f)
|
||||||
_symbol_get = None
|
_symbol_get = None
|
||||||
|
|
||||||
def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, **args):
|
def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, manual=False, **args):
|
||||||
|
"""
|
||||||
|
|
||||||
|
The 'manual' kayword argument specify if the field is a custom one. It
|
||||||
|
correspond to the 'state' column in ir_model_fields.
|
||||||
|
|
||||||
|
"""
|
||||||
if domain is None:
|
if domain is None:
|
||||||
domain = []
|
domain = []
|
||||||
if context is None:
|
if context is None:
|
||||||
|
@ -84,6 +90,7 @@ class _column(object):
|
||||||
self.read = False
|
self.read = False
|
||||||
self.view_load = 0
|
self.view_load = 0
|
||||||
self.select = select
|
self.select = select
|
||||||
|
self.manual = manual
|
||||||
self.selectable = True
|
self.selectable = True
|
||||||
self.group_operator = args.get('group_operator', False)
|
self.group_operator = args.get('group_operator', False)
|
||||||
for a in args:
|
for a in args:
|
||||||
|
|
|
@ -2826,6 +2826,7 @@ class orm(orm_template):
|
||||||
'size': field['size'],
|
'size': field['size'],
|
||||||
'ondelete': field['on_delete'],
|
'ondelete': field['on_delete'],
|
||||||
'translate': (field['translate']),
|
'translate': (field['translate']),
|
||||||
|
'manual': True,
|
||||||
#'select': int(field['select_level'])
|
#'select': int(field['select_level'])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -298,6 +298,11 @@ class osv_memory(osv_base, orm.orm_memory):
|
||||||
nattr = {}
|
nattr = {}
|
||||||
for s in ('_columns', '_defaults'):
|
for s in ('_columns', '_defaults'):
|
||||||
new = copy.copy(getattr(pool.get(parent_name), s))
|
new = copy.copy(getattr(pool.get(parent_name), s))
|
||||||
|
if s == '_columns':
|
||||||
|
# Don't _inherit custom fields.
|
||||||
|
for c in new.keys():
|
||||||
|
if new[c].manual:
|
||||||
|
del new[c]
|
||||||
if hasattr(new, 'update'):
|
if hasattr(new, 'update'):
|
||||||
new.update(cls.__dict__.get(s, {}))
|
new.update(cls.__dict__.get(s, {}))
|
||||||
else:
|
else:
|
||||||
|
@ -332,6 +337,11 @@ class osv(osv_base, orm.orm):
|
||||||
nattr = {}
|
nattr = {}
|
||||||
for s in ('_columns', '_defaults', '_inherits', '_constraints', '_sql_constraints'):
|
for s in ('_columns', '_defaults', '_inherits', '_constraints', '_sql_constraints'):
|
||||||
new = copy.copy(getattr(pool.get(parent_name), s))
|
new = copy.copy(getattr(pool.get(parent_name), s))
|
||||||
|
if s == '_columns':
|
||||||
|
# Don't _inherit custom fields.
|
||||||
|
for c in new.keys():
|
||||||
|
if new[c].manual:
|
||||||
|
del new[c]
|
||||||
if hasattr(new, 'update'):
|
if hasattr(new, 'update'):
|
||||||
new.update(cls.__dict__.get(s, {}))
|
new.update(cls.__dict__.get(s, {}))
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue