from odoo import models, fields class EncoachSubject(models.Model): _name = 'encoach.subject' _description = 'Taxonomy Subject' _order = 'sequence, name' name = fields.Char(required=True, index=True) code = fields.Char(size=20, index=True) description = fields.Text() sequence = fields.Integer(default=10) active = fields.Boolean(default=True) domain_ids = fields.One2many('encoach.domain', 'subject_id', string='Domains') course_count = fields.Integer(compute='_compute_counts') resource_count = fields.Integer(compute='_compute_counts') def _compute_counts(self): for rec in self: rec.course_count = self.env['op.course'].sudo().search_count( [('encoach_subject_id', '=', rec.id)] ) rec.resource_count = self.env['encoach.resource'].sudo().search_count( [('subject_id', '=', rec.id)] ) def to_api_dict(self): self.ensure_one() return { 'id': self.id, 'name': self.name, 'code': self.code or '', 'description': self.description or '', 'active': self.active, 'course_count': self.course_count, 'resource_count': self.resource_count, }