summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/models/test_new_api.py
diff options
context:
space:
mode:
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.py42
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)