[FIX] models: make field inheritance work when source field is defined in old api

This commit is contained in:
Raphael Collet 2014-09-16 14:34:56 +02:00
parent acdb43b6cb
commit f2299749fe
2 changed files with 11 additions and 2 deletions

View File

@ -1,11 +1,15 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from openerp import models, fields, api from openerp import models, fields, api, osv
# We just create a new model # We just create a new model
class mother(models.Model): class mother(models.Model):
_name = 'test.inherit.mother' _name = 'test.inherit.mother'
name = fields.Char('Name', required=True) _columns = {
# check interoperability of field inheritance with old-style fields
'name': osv.fields.char('Name', required=True),
}
surname = fields.Char(compute='_compute_surname') surname = fields.Char(compute='_compute_surname')
state = fields.Selection([('a', 'A'), ('b', 'B')]) state = fields.Selection([('a', 'A'), ('b', 'B')])

View File

@ -237,6 +237,11 @@ class MetaModel(api.Meta):
if not self._custom: if not self._custom:
self.module_to_models.setdefault(self._module, []).append(self) self.module_to_models.setdefault(self._module, []).append(self)
# transform columns into new-style fields (enables field inheritance)
for name, column in self._columns.iteritems():
if not hasattr(self, name):
setattr(self, name, column.to_field())
class NewId(object): class NewId(object):
""" Pseudo-ids for new records. """ """ Pseudo-ids for new records. """