ATEMI, Aitor Atencia Sale → proyecto → factura: automatizar el flujo en Odoo Odoo · Ventas · Automatización El flujo presupuesto → proyecto → factura es el corazón de muchos negocios de servicios. Odoo lo soporta de serie, pero encadenar los pasos sin intervención manual (y si...
ATEMI, Aitor Atencia Website y eCommerce: extender plantillas sin romper el tema Odoo · Website · eCommerce Personalizar el website de Odoo sin romper el tema es cuestión de herencia, no de reescritura. Editar plantillas con replace agresivo, mezclar cambios de tema con datos de l...
ATEMI, Aitor Atencia QWeb para informes PDF: t-out, tablas y cabeceras Odoo · QWeb · Informes Un informe PDF en Odoo es una plantilla QWeb que wkhtmltopdf convierte en papel. La mayoría de fallos no están en el código: están en el paperformat, en los márgenes o en que wk...
ATEMI, Aitor Atencia OWL en Odoo 19: primer componente custom Odoo · OWL · Frontend Odoo 19 usa OWL 2 para el backend web. Un componente custom bien registrado puede sustituir widgets XML limitados o pantallas compuestas. Esta guía monta el esqueleto mínimo: JS ...
ATEMI, Aitor Atencia Vistas XML en Odoo: form, list, kanban y search Odoo · Vistas · XML Las vistas XML definen la UX del backend. IDs inconsistentes, xpath frágiles y olvidar la vista search provocan errores al actualizar módulos ( -u ) y pantallas rotas en producción...
ATEMI, Aitor Atencia RGPD en módulos Odoo: datos de menores y portal Odoo · RGPD · Portal En proyectos con datos de menores o salud, mezclar titular del servicio ( res.partner facturable) con el perfil evaluado es un error de diseño y de cumplimiento. Odoo no trae RGPD...
ATEMI, Aitor Atencia Seguridad en controladores web y rutas HTTP en Odoo Odoo · Seguridad · HTTP Los controladores Odoo son la frontera entre Internet y tu ORM. Una ruta mal configurada con auth='public' , un write sin whitelist o un JSON sin validar puede anular meses de ...
ATEMI, 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...
ATEMI, 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...
ATEMI, 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...
ATEMI, 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...
ATEMI, 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...