Raphael Collet eb326e669e [FIX] fields: prevent base setup on fields shared across registries
A field shared across registries is normally never setup from scratch, except
when its full setup cannot complete.  This happens when a registry reuses that
field but fails to load, because the base and full setup of fields look like:

    def setup_base(self, model, name):
        if self.setup_full_done:
            # optimization: keep base setup (1)
            self.setup_full_done = False
        else:
            # do the base setup from scratch (2)
            ...

    def setup_full(self, model):
        if not self.setup_full_done:
            # complete full setup (3)
            self.setup_full_done = True

When the field is reused for the first time, its setup state `setup_full_done`
is reset to `False` (1), and it should be set to `True` again after completion
of full setup (3).  However, because the full setup fails, the field remains
with `setup_full_done` equal to `False`.

In that situation, when the same field is reused again, it base setup will be
done from scratch (2), and therefore some attributes (like `column`) are reset
to their initial value.  Because the full setup fails again, those attributes
are lost for other registries that share the field.

Fix this crap by precising the setup states: `None`, `'base'` and `'full'`.
When a field is reused, its setup state is reset to `'base'` instead of `None`,
and consequently it will never be setup from scratch again.
2016-10-28 13:29:53 +02:00
2016-09-22 15:42:02 +02:00
2015-02-08 23:00:10 +01:00
2015-09-08 15:45:09 +02:00
2015-09-08 17:58:38 +02:00
…

Build Status Tech Doc Help Nightly Builds

Odoo

Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, ...

Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.

Getting started with Odoo

For a standard installation please follow the Setup instructions from the documentation.

If you are a developer you may type the following command at your terminal:

wget -O- https://raw.githubusercontent.com/odoo/odoo/9.0/odoo.py | python

Then follow the developer tutorials

For Odoo employees

To add the odoo-dev remote use this command:

$ ./odoo.py setup_git_dev

To fetch odoo merge pull requests refs use this command:

$ ./odoo.py setup_git_review
S
Description
No description provided
Readme LGPL-3.0
3.4 GiB
Languages
Python 49.6%
JavaScript 47.8%
SCSS 2%
CSS 0.3%
HTML 0.2%