1.1 KiB
1.1 KiB
Skill: Python (Odoo ORM)
Estilo y convenciones
- Sigue las OCA guidelines estrictamente.
- Usa
blackpara formateo automático (verpyproject.toml). - Ordena imports con
isort(perfil black). - Linting obligatorio con
flake8ypylint-odoo. - Usa docstrings en clases y métodos públicos.
- Comentarios inline solo para lógica compleja.
Patrones clave
- Modelos: hereda de
models.Modelomodels.TransientModel. - Campos de negocio siempre en
product.product(no enproduct.template). - Usa
@api.dependspara campos computados. - Notificaciones: usa
ir.actions.clientcondisplay_notification. - Logging:
_logger.info()para trazabilidad de precios y descuentos. - Bulk updates: prefiere
search().write()sobre loops.
Testing
- Tests en
tests/de cada addon. - Hereda de
odoo.tests.common.TransactionCase. - Ejecuta tests con:
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
Errores comunes
- No uses
_()en definiciones de campos (solo en métodos ejecutables). - Usa
relatedfields en templates para lógica de variantes.