From f2299749fe234138df8751d0aeff7559fafdeb05 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 16 Sep 2014 14:34:56 +0200 Subject: [PATCH] [FIX] models: make field inheritance work when source field is defined in old api --- openerp/addons/test_inherit/models.py | 8 ++++++-- openerp/models.py | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/openerp/addons/test_inherit/models.py b/openerp/addons/test_inherit/models.py index e1957ab95c9..a02b366038d 100644 --- a/openerp/addons/test_inherit/models.py +++ b/openerp/addons/test_inherit/models.py @@ -1,11 +1,15 @@ # -*- coding: utf-8 -*- -from openerp import models, fields, api +from openerp import models, fields, api, osv # We just create a new model class mother(models.Model): _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') state = fields.Selection([('a', 'A'), ('b', 'B')]) diff --git a/openerp/models.py b/openerp/models.py index 31e95153c66..da53a763376 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -237,6 +237,11 @@ class MetaModel(api.Meta): if not self._custom: 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): """ Pseudo-ids for new records. """