Aitor Atencia sudo() en Odoo: cuándo sí y cuándo nunca Odoo · Seguridad · sudo() sudo() ejecuta código como superusuario: ignora ACL y record rules. Es útil en crons y hooks internos; es peligroso en controladores web, APIs públicas y campos compute que e...
Aitor Atencia ACL y record rules en Odoo: paso a paso con ejemplo real Odoo · Seguridad · Permisos La seguridad en Odoo tiene dos capas: ACL (¿puede este grupo crear/leer/escribir/borrar este modelo?) y record rules (¿qué registros concretos ve?). Configurarlas mal es la...
Aitor Atencia Mixins imprescindibles en Odoo: mail.thread, mail.activity.mixin y utm.mixin Odoo · Mixins · Arquitectura En Odoo, los mixins son la forma más limpia de añadir comportamiento transversal sin inflar cada modelo. mail.thread trae chatter, mail.activity.mixin las actividades y ut...
Aitor Atencia Constraints en Odoo 19: @api.constrains vs models.Constraint Odoo · Validación · Odoo 19 Validar datos en Odoo no es opcional: evita registros huérfanos, duplicados y estados imposibles. En Odoo 19 conviven @api.constrains (Python) y models.Constraint (SQL). Sa...
Aitor Atencia Campos calculados en Odoo: store=True, @api.depends y trampas Odoo · Campos · ORM Los campos compute son la herramienta más usada — y más mal configurada — en módulos Odoo. Un @api.depends incompleto o un store=True mal planteado provoca valores obsoletos, búsqu...
Aitor Atencia ORM de Odoo en profundidad: search, browse, read y search_read Odoo · ORM · Rendimiento El ORM de Odoo abstrae PostgreSQL, pero no hace milagros. Saber cuándo usar search , browse , read y search_read marca la diferencia entre un módulo rápido y uno que dispara c...
Aitor Atencia Herencia en Odoo: _inherit vs _inherits explicado con ejemplos Odoo · Arquitectura · Herencia Odoo ofrece dos mecanismos de herencia que suenan parecidos pero funcionan de forma muy distinta: _inherit extiende un modelo existente; _inherits delega en otro. Elegir...
Aitor Atencia TDD en módulos Odoo: desarrollo guiado por pruebas en Odoo 19 Odoo · Testing · TDD El Test-Driven Development (desarrollo guiado por pruebas) cambia el orden: primero el test que falla, luego el código mínimo que lo pasa, y después el refactor. En Odoo funciona ...
Aitor Atencia SOLID en módulos Odoo: principios de diseño para desarrolladores Odoo · Arquitectura · SOLID Los principios SOLID no son teoría de laboratorio: son la brújula para construir módulos Odoo mantenibles, extensibles y libres de deuda técnica. SOLID aplicado al ecosiste...
Aitor Atencia Cómo desarrollar un módulo Odoo 19: convenciones de la comunidad Odoo · Desarrollo · Convenciones OCA Aprende a crear un módulo Odoo 19 siguiendo las reglas que define la comunidad: estructura de carpetas, manifest, seguridad, ORM y buenas prácticas. Un módulo bien...
Aitor Atencia Cómo instalar Odoo 19 con Docker: guía paso a paso Odoo · Docker · Guía práctica Monta un entorno Odoo 19 reproducible con Docker Compose : PostgreSQL, Odoo, proxy inverso y volúmenes para tus módulos custom. Odoo 19 + Docker: la combinación que uso e...