Go to file
Xavier ALT f02b23006b [FIX] fields: during an onchange(), do not invalidate *2many fields because of their domain
Our usage of domain on fields One2many seems to trigger an obscure behaviour on
onchange.

With the following (simplified) config:

    Message(models.Model):
        _name = 'test_new_api.message'
        important = fields.Boolean('Important')

    Discussion(models.Model):
        _name = 'test_new_api.discussion'
        name = fields.Char('Name')
        important_emails = fields.One2Many('test_new_api.emailmessage', 'discussion',
                                           domain=[('important', '=', True)])

    Email(models.Model):
        _name = 'test_new_api.emailmessage'
        _inherits = {'test_new_api.message': 'message'}

        discussion = fields.Many2one('test_new_api.discussion', 'Discussion')
        message = fields.Many2one('test_new_api.message', 'Message')

Steps:
- We change 'name' on discussion, triggers an `onchange()` call
- we ends up filling cache on virtual record (on secondary fields, we calling
  record.mapped('important_emails.important'))
- we get a cache miss ('important' field not provided, only 'important_emails' ids,
  i.e with no change on existing records)
- we fill the cache, this mark 'important' field as modified
- because of commit 5676d81 and because 'important' is that case is a related (i.e
  computed) field we triggers cache recomputation
- as there is no way to recompute 'important_emails' for virtual record (no real
  ID) we ends up with empty 'important_emails' generating removal of existing records.

=> Finally changing any value for 'test_new_api.discussion' that trigger an onchange
will always reset 'important_emails' to empty

Fixed by Raphael Collet <rco@odoo.com>, and test by Xavier Alt <xal@odoo.com>.
2016-06-17 17:50:25 +02:00
.tx [I18N] add Transifex config file 2015-05-27 11:28:22 +02:00
addons [FIX] crm_profiling: backport of cf9230d1ff 2016-06-17 15:19:39 +02:00
debian [FIX] Packaging: Debian: lintian errors and warnings 2015-01-23 11:07:50 +01:00
doc [FIX] doc: Research -> Search 2016-06-17 09:48:47 +02:00
openerp [FIX] fields: during an onchange(), do not invalidate *2many fields because of their domain 2016-06-17 17:50:25 +02:00
setup [FIX] packaging: tarball nightly test 2015-07-15 15:34:14 +02:00
.gitignore [ADD] git mailmap and CLA stats 2015-02-08 23:00:10 +01:00
.mailmap [CLA] update mailmap 2015-09-08 15:45:09 +02:00
CONTRIBUTING.md [FIX] CONTRIBUTING:.md emphasize the fact that PRs supersede issues 2015-02-12 11:08:25 +01:00
LICENSE cleanup repo root 2014-05-15 10:43:02 +02:00
MANIFEST.in [FIX] packaging: include favicon 2015-10-21 13:45:37 +02:00
Makefile [IMP] *: one Makefile to rules them all. 2014-11-05 19:30:28 +01:00
README.md [IMP] README.md: badges for docs, help, nightly 2015-01-20 17:21:38 +01:00
odoo.py [FIX] odoo.py fix fetching of git remotes 2014-12-19 17:39:11 +01:00
openerp-gevent restore the original gevent detection 2013-09-10 01:19:46 +02:00
openerp-server openerp apps main moved to cli ready for new commands 2012-11-27 01:55:13 +01:00
openerp-wsgi.py [FIX] wsgi deployement with openerp-wsgi.py 2014-03-07 21:00:55 +01:00
requirements.txt [FIX] requirements.txt : gevent & greenlet versions updated 2015-09-18 00:55:02 +02:00
setup.cfg [FIX] Packaging: RedHat: dependencies management 2014-11-28 16:40:55 +01:00
setup.py [FIX] Packaging: Windows: pychart dependency 2015-07-07 16:44:03 +02:00

README.md

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/8.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