Saltar al contenido

Servicios: Servicio de Notificaciones

🔔 ODOO · SERVICIOS · NOTIFICACIONES · JS

Servicios en Odoo: el caso de Notificaciones

Los servicios en Odoo son fragmentos de código de larga duración que proporcionan funcionalidad y se inyectan en componentes vía useService. El servicio de notificaciones es uno de los más usados — info, success, warning, danger.

1¿Qué son los servicios en Odoo?

Son fragmentos de código de larga duración que proporcionan funcionalidad. Pueden importarse desde componentes (con useService) o desde otros servicios. En esencia: un sistema de inyección de dependencias (DI).

2Servicios incluidos en Odoo

cookie — leer/modificar cookies
effect — efectos gráficos
http — llamadas HTTP
notification — notificaciones
router — URL del navegador
rpc — solicitudes al servidor
scroller — clicks en anchors
title — título de ventana
user — info del usuario

3Cómo se usa un servicio

El hook useService es la forma adecuada de usar un servicio en un componente — devuelve una referencia al valor del servicio:

Uso de useService en un componente

4Servicio de Notificaciones

El framework de Odoo tiene una forma estándar de comunicar información al usuario: las notificaciones en la esquina superior derecha. Estilo toasts de Bootstrap con cuatro tipos:

ℹ️ info
Retroalimentación de una acción que no puede fallar.
✅ success
Acción que podría fallar pero esta vez no falló.
⚠️ warning
Acción completada parcialmente o problema no causado por el usuario.
❌ danger
El usuario intentó algo y no se pudo completar.

5Dos formas de mostrar notificaciones

🟦 Desde JavaScript
Servicio notification con su método add().
🐍 Desde Python
Acción de cliente display_notification retornada desde un método.

6Ejemplo en JavaScript

Usamos el componente WebClient que se ejecuta al cargar/recargar la ventana de Odoo. Mapeado en web.assets_backend del manifest:

Código JS con dos notificaciones desde el WebClient

Al recargar, vemos ambas notificaciones:

Notificaciones visibles tras recargar la página

7Ejemplo en Python

En sale.order declaramos un botón que crea una nueva venta con el mismo cliente. La notificación muestra el nombre de la nueva orden con un enlace que abre su vista formulario:

Código Python que crea venta y retorna display_notification con link

El botón se añade en la vista formulario heredada:

Vista heredada con el nuevo botón

Y se ve así en la UI:

Botón visible en la cabecera de la venta

Al presionarlo, la notificación con enlace abre la nueva venta:

Notificación con link al nuevo registro
Nueva venta abierta tras pulsar el link

8Consejos rápidos

⚠️ No abuses
El exceso de notificaciones afecta la experiencia del usuario.
✅ Tipo correcto
Un danger sin razón clara genera ansiedad.
✅ Evita duplicadas
Verifica si ya hay una activa con el mismo mensaje antes de mostrar otra.
✅ Tiempo de visibilidad
Breves se van rápido; informativas importantes pueden durar más.
💡 Errores silenciosos
Si el usuario no puede hacer nada al respecto, considera log interno.
✅ Mensajes claros
Lenguaje del usuario, no técnico. Texto corto.

📌 En resumen

Los servicios en Odoo son la forma idiomática de inyectar funcionalidad en componentes. El servicio de notificaciones es uno de los más útiles — desde JS o Python, con tipos info/success/warning/danger y links opcionales para crear accesos directos al feedback. En Exdoo los usamos extensivamente en módulos a medida.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Te gustaría implementar Odoo en tu empresa?

12 años de experiencia · +60 implementaciones exitosas · Partner Gold de Odoo en México

Hablemos por WhatsApp