ATEMI, Aitor Atencia Secuencias, referencias XML y env.ref() Odoo · ORM · Buenas prácticas Un self.env["ir.model.data"]._xmlid_to_res_id(...) hardcodeado con un ID numérico ( browse(37) ) funciona en tu base de datos de desarrollo y explota en la del cliente. L...
ATEMI, Aitor Atencia Traducciones i18n: .pot, .po y flujo de trabajo Odoo · i18n · Localización El código de un módulo Odoo se escribe en inglés por convención, pero los usuarios finales casi nunca trabajan en inglés. La traducción no es un extra de última hora: es un ...
ATEMI, Aitor Atencia Ficheros XML/CSV de datos: noupdate, orden y shortcuts Odoo · Módulos · Datos "Funcionaba en mi máquina" tiene una variante muy odoica: "se instaló bien la primera vez, pero al actualizar el módulo se ha duplicado todo". Casi siempre es un problema de nou...
ATEMI, Aitor Atencia Monitorización: logs, Grafana y alertas en un stack Odoo Odoo · DevOps · Observabilidad Un stack Odoo sin monitorización funciona bien... hasta que deja de hacerlo, y para entonces el problema lleva horas o días acumulándose silenciosamente en los logs. Mon...
ATEMI, Aitor Atencia Actualizar módulos en producción sin downtime Odoo · DevOps · Producción Actualizar un módulo en producción da miedo, y con razón: un -u mal planificado puede dejar la base de datos a medias, romper una vista o tirar el servicio en horario comerc...
ATEMI, Aitor Atencia CI/CD para módulos Odoo: tests en Docker Odoo · DevOps · CI/CD Un módulo Odoo sin pipeline de CI se prueba "a mano" cada vez, lo que en la práctica significa que se prueba cada vez menos. Levantar un contenedor Docker reproducible con --test...
ATEMI, Aitor Atencia Scripts de migración: pre_init, post_init y end hooks Odoo · Migración · Datos Cuando una migración necesita transformar datos existentes —no solo instalar campos nuevos—, la lógica no va en un método del modelo: va en un hook de migración. Elegir el hoo...
ATEMI, Aitor Atencia Migrar módulos de Odoo 17/18 a 19 Odoo 19 · Migración · Calidad Migrar un módulo de Odoo 17 o 18 a la versión 19 rara vez falla por el código Python en sí: falla porque algo que dependia de una API retirada solo se descubre en producc...
ATEMI, Aitor Atencia JSON-RPC / XML-RPC: integrar Odoo con sistemas externos Odoo · Integraciones · APIs Odoo expone su ORM completo por XML-RPC y JSON-RPC desde el primer día: no hace falta escribir un controlador para leer o escribir datos desde fuera. El problema no es la c...
ATEMI, Aitor Atencia Cron jobs y colas en Odoo: tareas programadas fiables Odoo · DevOps · Automatización Un ir.cron mal diseñado no falla de forma ruidosa: se ejecuta dos veces, se solapa consigo mismo o deja registros a medio procesar sin que nadie se entere hasta semanas ...
ATEMI, Aitor Atencia Portal del cliente en Odoo: listas, formularios y descargas Odoo · Portal · Seguridad El portal del cliente es la cara visible de tu ERP para usuarios externos. Aquí un error de permisos no es un bug: es una fuga de datos. La regla es simple y absoluta: cada c...
ATEMI, Aitor Atencia Survey en Odoo: tests online y resultados conectados a tus modelos Odoo · Survey · Integración El módulo Survey de Odoo sirve para mucho más que encuestas de satisfacción: tests de cribado, cuestionarios clínicos, exámenes online. La clave para integrarlo es vincular...