uid_has_answered = fields.Boolean('Has Answered', compute='_get_uid_has_answered')
has_validated_answer = fields.Boolean('Is answered', compute='_get_has_validated_answer', store=True)
- @api.multi
+ @api.one
@api.depends('create_uid', 'parent_id')
def _is_self_reply(self):
- self_replies = self.search([('parent_id.create_uid', '=', self._uid)])
- for post in self:
- post.is_self_reply = post in self_replies
+ self.self_reply = self.parent_id.create_uid.id == self._uid
@api.one
- @api.depends('child_ids', 'website_message_ids')
- @api.depends('child_ids.create_uid')
++ @api.depends('child_ids.create_uid', 'website_message_ids')
def _get_child_count(self):
- self.child_count = len(self.child_ids)
+ def process(node):
+ total = len(node.website_message_ids) + len(node.child_ids)
+ for child in node.child_ids:
+ total += process(child)
+ return total
+ self.child_count = process(self)
@api.one
def _get_uid_has_answered(self):