Files
enterprise-addons/esg_csrd/models/esg_esrs.py
T

35 lines
1.2 KiB
Python

from odoo import api, fields, models
class EsgESRS(models.Model):
_name = 'esg.esrs'
_description = 'ESRS'
_order = 'category, code, id'
_rec_name = 'complete_name'
name = fields.Char(required=True)
complete_name = fields.Char(compute='_compute_complete_name', search='_search_complete_name')
code = fields.Char(required=True)
section = fields.Char(required=True)
dr = fields.Char(string='Disclosure Requirement', required=True)
category = fields.Selection([
('1_environment', 'Environment'),
('2_social', 'Social'),
('3_governance', 'Governance'),
], required=True)
_code_unique = models.Constraint(
'unique(code)',
'The code of an ESRS must be unique.',
)
@api.depends('code', 'name')
def _compute_complete_name(self):
for esrs in self:
esrs.complete_name = f'{esrs.code} {esrs.name}'
def _search_complete_name(self, operator, value):
if operator not in ('ilike', 'like', '=', '=ilike'):
raise NotImplementedError(f'Operator {operator} not supported')
return ['|', ('code', operator, value), ('name', operator, value)]