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 | 42 |
1 files changed, 40 insertions, 2 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 e8c868f212f..bfe9b2fcee9 100644 --- a/odoo/addons/test_new_api/models/test_new_api.py +++ b/odoo/addons/test_new_api/models/test_new_api.py @@ -493,8 +493,17 @@ class ComputeRecursive(models.Model): name = fields.Char(required=True) parent = fields.Many2one('test_new_api.recursive', ondelete='cascade') + full_name = fields.Char(compute='_compute_full_name') display_name = fields.Char(compute='_compute_display_name', store=True) + @api.depends('name', 'parent.full_name') + def _compute_full_name(self): + for rec in self: + if rec.parent: + rec.full_name = rec.parent.full_name + " / " + rec.name + else: + rec.full_name = rec.name + @api.depends('name', 'parent.display_name') def _compute_display_name(self): for rec in self: @@ -787,7 +796,7 @@ class Attachment(models.Model): rec.name = self.env[rec.res_model].browse(rec.res_id).display_name # DLE P55: `test_cache_invalidation` - def modified(self, fnames, create=False): + def modified(self, fnames, *args, **kwargs): if not self: return comodel = self.env[self.res_model] @@ -796,7 +805,7 @@ class Attachment(models.Model): record = comodel.browse(self.res_id) self.env.cache.invalidate([(field, record._ids)]) record.modified(['attachment_ids']) - return super(Attachment, self).modified(fnames, create) + return super(Attachment, self).modified(fnames, *args, **kwargs) class AttachmentHost(models.Model): @@ -1184,3 +1193,32 @@ class ComputeEditableLine(models.Model): def _compute_edit(self): for line in self: line.edit = line.value + + +class TriggerLeft(models.Model): + _name = 'test_new_api.trigger.left' + _description = 'model with a related many2one' + + middle_ids = fields.One2many('test_new_api.trigger.middle', 'left_id') + right_id = fields.Many2one(related='middle_ids.right_id', store=True) + + +class TriggerMiddle(models.Model): + _name = 'test_new_api.trigger.middle' + _description = 'model linking test_new_api.trigger.left and test_new_api.trigger.right' + + left_id = fields.Many2one('test_new_api.trigger.left', required=True) + right_id = fields.Many2one('test_new_api.trigger.right', required=True) + + +class TriggerRight(models.Model): + _name = 'test_new_api.trigger.right' + _description = 'model with a dependency on the inverse of the related many2one' + + left_ids = fields.One2many('test_new_api.trigger.left', 'right_id') + left_size = fields.Integer(compute='_compute_left_size', store=True) + + @api.depends('left_ids') + def _compute_left_size(self): + for record in self: + record.left_size = len(record.left_ids) |
