diff options
Diffstat (limited to 'odoo/addons/test_new_api/models/test_new_api.py')
| -rw-r--r-- | odoo/addons/test_new_api/models/test_new_api.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/models/test_new_api.py b/odoo/addons/test_new_api/models/test_new_api.py index 0ceb37a0988..602173c4145 100644 --- a/odoo/addons/test_new_api/models/test_new_api.py +++ b/odoo/addons/test_new_api/models/test_new_api.py @@ -1052,3 +1052,29 @@ class SelectionNonStored(models.Model): ('foo', "Foo"), ('bar', "Bar"), ], store=False) + + +# Special classes to ensure the correct usage of a shared cache amongst users. +# See the method test_shared_cache_computed_field +class SharedCacheComputeParent(models.Model): + _name = 'test_new_api.model_shared_cache_compute_parent' + _description = 'model_shared_cache_compute_parent' + + name = fields.Char(string="Task Name") + line_ids = fields.One2many( + 'test_new_api.model_shared_cache_compute_line', 'parent_id', string="Timesheets") + total_amount = fields.Integer(compute='_compute_total_amount', store=True, compute_sudo=True) + + @api.depends('line_ids.amount') + def _compute_total_amount(self): + for parent in self: + parent.total_amount = sum(parent.line_ids.mapped('amount')) + + +class ShareCacheComputeLine(models.Model): + _name = 'test_new_api.model_shared_cache_compute_line' + _description = 'model_shared_cache_compute_line' + + parent_id = fields.Many2one('test_new_api.model_shared_cache_compute_parent') + amount = fields.Integer() + user_id = fields.Many2one('res.users', default= lambda self: self.env.user) # Note: There is an ir.rule about this. |
