[FIX] convert: use _all_columns instead of _columns as it contain fields from inherited models.
bzr revid: mat@openerp.com-20140422075601-s382vj4c4ren882i
This commit is contained in:
commit
a3def550bb
|
@ -772,8 +772,8 @@ form: module.record_id""" % (xml_id,)
|
|||
f_ref = field.get("ref",'').encode('utf-8')
|
||||
f_search = field.get("search",'').encode('utf-8')
|
||||
f_model = field.get("model",'').encode('utf-8')
|
||||
if not f_model and model._columns.get(f_name,False):
|
||||
f_model = model._columns[f_name]._obj
|
||||
if not f_model and model._all_columns.get(f_name,False):
|
||||
f_model = model._all_columns[f_name].column._obj
|
||||
f_use = field.get("use",'').encode('utf-8') or 'id'
|
||||
f_val = False
|
||||
|
||||
|
@ -785,9 +785,9 @@ form: module.record_id""" % (xml_id,)
|
|||
# browse the objects searched
|
||||
s = f_obj.browse(cr, self.uid, f_obj.search(cr, self.uid, q))
|
||||
# column definitions of the "local" object
|
||||
_cols = self.pool.get(rec_model)._columns
|
||||
_cols = self.pool.get(rec_model)._all_columns
|
||||
# if the current field is many2many
|
||||
if (f_name in _cols) and _cols[f_name]._type=='many2many':
|
||||
if (f_name in _cols) and _cols[f_name].column._type=='many2many':
|
||||
f_val = [(6, 0, map(lambda x: x[f_use], s))]
|
||||
elif len(s):
|
||||
# otherwise (we are probably in a many2one field),
|
||||
|
@ -797,17 +797,17 @@ form: module.record_id""" % (xml_id,)
|
|||
if f_ref=="null":
|
||||
f_val = False
|
||||
else:
|
||||
if f_name in model._columns \
|
||||
and model._columns[f_name]._type == 'reference':
|
||||
if f_name in model._all_columns \
|
||||
and model._all_columns[f_name].column._type == 'reference':
|
||||
val = self.model_id_get(cr, f_ref)
|
||||
f_val = val[0] + ',' + str(val[1])
|
||||
else:
|
||||
f_val = self.id_get(cr, f_ref)
|
||||
else:
|
||||
f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref)
|
||||
if model._columns.has_key(f_name):
|
||||
if f_name in model._all_columns:
|
||||
import openerp.osv as osv
|
||||
if isinstance(model._columns[f_name], osv.fields.integer):
|
||||
if isinstance(model._all_columns[f_name].column, osv.fields.integer):
|
||||
f_val = int(f_val)
|
||||
res[f_name] = f_val
|
||||
|
||||
|
|
Loading…
Reference in New Issue