[IMP] models: improve performance of _setup_fields()
authorRaphael Collet <rco@openerp.com>
Thu, 6 Nov 2014 14:03:00 +0000 (15:03 +0100)
committerRaphael Collet <rco@openerp.com>
Thu, 13 Nov 2014 13:54:04 +0000 (14:54 +0100)
commite038fec696ea7029b2f66da36fdbf337c23a18d1
treeaaca67b21b315bb40854027f4860bcfdca42486d
parent552dab0dc858b2d36e6d7a90bbd46dfdb7d9a821
[IMP] models: improve performance of _setup_fields()

There was an issue in _setup_fields(): the method invokes _inherits_reload(),
which recomputes inherited fields, and invokes itself recursively on children
models.  This may be problematic if the children models have already been set
up.

This optimization avoids recursive calls of method _inherits_reload().  In
_setup_fields(), first all parent models are set up, then their fields are
inspected to determine inherited fields, and their setup is done.  This scheme
guarantees that inherited fields are computed once per model.
openerp/fields.py
openerp/models.py
openerp/modules/registry.py