diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-09-16 11:03:50 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-09-16 11:03:50 +0200 |
| commit | f4fc3985b6b8857e573b8aea35986cf1dfd552de (patch) | |
| tree | 9d44d633b6d71472fdfb4d491d1e89a8a506dc31 /odoo/addons/test_new_api | |
| parent | d4b878af534d8770794664f560ba2268d4fa373d (diff) | |
| parent | 10cde43fd4c0f85e86c21a15dcd3f39e10c87d96 (diff) | |
[MERGE] forward port branch saas-12 up to 10cde43
Diffstat (limited to 'odoo/addons/test_new_api')
| -rw-r--r-- | odoo/addons/test_new_api/models.py | 9 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_onchange.py | 27 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/views.xml | 1 |
3 files changed, 37 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py index 513fe06ca8c..5fc58ea976a 100644 --- a/odoo/addons/test_new_api/models.py +++ b/odoo/addons/test_new_api/models.py @@ -13,6 +13,7 @@ class Category(models.Model): name = fields.Char(required=True) color = fields.Integer('Color Index') parent = fields.Many2one('test_new_api.category') + root_categ = fields.Many2one(_name, compute='_compute_root_categ') display_name = fields.Char(compute='_compute_display_name', inverse='_inverse_display_name') dummy = fields.Char(store=False) discussions = fields.Many2many('test_new_api.discussion', 'test_new_api_discussion_category', @@ -26,6 +27,14 @@ class Category(models.Model): else: self.display_name = self.name + @api.depends('parent') + def _compute_root_categ(self): + for cat in self: + current = cat + while current.parent: + current = current.parent + cat.root_categ = current + @api.one def _inverse_display_name(self): names = self.display_name.split('/') diff --git a/odoo/addons/test_new_api/tests/test_onchange.py b/odoo/addons/test_new_api/tests/test_onchange.py index 16d122c712c..87fc8229b7c 100644 --- a/odoo/addons/test_new_api/tests/test_onchange.py +++ b/odoo/addons/test_new_api/tests/test_onchange.py @@ -75,6 +75,33 @@ class TestOnChange(common.TransactionCase): result = self.Message.onchange(values, 'body', field_onchange) self.assertNotIn('name', result['value']) + def test_onchange_many2one(self): + Category = self.env['test_new_api.category'] + + field_onchange = Category._onchange_spec() + self.assertEqual(field_onchange.get('parent'), '1') + + root = Category.create(dict(name='root')) + + values = { + 'name': 'test', + 'parent': root.id, + 'root_categ': False, + } + + self.env.invalidate_all() + result = Category.onchange(values, 'parent', field_onchange).get('value', {}) + self.assertIn('root_categ', result) + self.assertEqual(result['root_categ'], root.name_get()[0]) + + values.update(result) + values['parent'] = False + + self.env.invalidate_all() + result = Category.onchange(values, 'parent', field_onchange).get('value', {}) + self.assertIn('root_categ', result) + self.assertIs(result['root_categ'], False) + def test_onchange_one2many(self): """ test the effect of onchange() on one2many fields """ BODY = "What a beautiful day!" diff --git a/odoo/addons/test_new_api/views.xml b/odoo/addons/test_new_api/views.xml index b8c0f5bfa8b..0b053635319 100644 --- a/odoo/addons/test_new_api/views.xml +++ b/odoo/addons/test_new_api/views.xml @@ -205,6 +205,7 @@ <group> <field name="name"/> <field name="parent"/> + <field name="root_categ"/> <field name="dummy"/> </group> </sheet> |
