Dokos propose désormais un système de notifications unifié, permettant aux utilisateurs de recevoir et gérer leurs notifications directement depuis l'interface, tout en offrant aux développeurs un cadre extensible pour intégrer des notifications personnalisées.
Le panneau de notifications unifié est accessible depuis la barre de navigation supérieure. Il affiche toutes vos notifications, classées par application (Dokos, CRM, Helpdesk, etc.) et permet de :
Les notifications sont désormais organisées par types, ce qui permet une gestion plus fine des préférences. Chaque type de notification peut être activé ou désactivé individuellement pour les notifications par email.
Exemples de types de notifications intégrés :
Chaque utilisateur peut configurer ses préférences de notification pour chaque type, directement depuis son profil :
::: info Les préférences de notification par email sont basées sur une liste d'autorisation : seuls les types de notifications cochés enverront des emails. Par défaut, tous les types sont activés. :::
Pour ajouter un nouveau type de notification dans votre application :
nouveau_commentaire).Dokos).frappe.send_notification dans votre code Python pour envoyer une notification :frappe.send_notification({
"users": ["utilisateur@example.com"],
"type": "nouveau_commentaire",
"document": doc,
"title": "Nouveau commentaire sur {0}".format(doc.name),
"description": "Un nouveau commentaire a été ajouté par {0}.".format(frappe.session.user)
})
title et description sont sanitizés pour éviter les failles XSS. Utilisez frappe.utils.sanitize_html pour nettoyer le contenu avant de l'envoyer.
:::#header : En-tête du panneau.#item : Rendu d'une notification individuelle.#tab-<valeur> : Contenu d'un onglet spécifique.#empty : Message affiché lorsqu'il n'y a pas de notifications.#error : Message d'erreur.<template>
<NotificationPanel>
<template #item="{ notification }">
<div class="custom-notification">
<strong>{{ notification.title }}</strong>
<p>{{ notification.description }}</p>
</div>
</template>
</NotificationPanel>
</template>
Le système de notifications évite les doublons en utilisant un mécanisme de dédoublonnage basé sur le champ dedupe_on. Si une notification avec les mêmes valeurs pour les champs spécifiés dans dedupe_on existe déjà pour un utilisateur, elle ne sera pas créée.
Pour activer le dédoublonnage dans votre règle de notification :
frappe.get_doc({
"doctype": "Notification Rule",
"name": "ma_regle_de_notification",
"dedupe_on": "document_type,document_name,type"
}).save()
Les notifications par email sont envoyées uniquement pour les types de notifications activés dans les préférences de l'utilisateur. Pour vérifier si un utilisateur a activé les emails pour un type spécifique :
from frappe.desk.doctype.notification_settings.notification_settings import is_email_notifications_enabled_for_type
if is_email_notifications_enabled_for_type(user, "nouveau_commentaire"):
# Envoyer un email
frappe.sendmail(
recipients=[user],
subject="Nouveau commentaire sur {0}".format(doc.name),
message="Un nouveau commentaire a été ajouté par {0}.".format(frappe.session.user)
)
::: info
Les fonctionnalités comme les rappels d'événements ou les emails de thread (lorsqu'un document vous est assigné) ne passent pas par le système de types de notifications. Elles utilisent leurs propres cases à cocher dans les paramètres de notification et sont gérées via is_email_enabled_for_feature.
:::
Si vous utilisiez des notifications personnalisées dans une version antérieure de Dokos, voici comment migrer vers le nouveau système :
Select) sont automatiquement migrés vers le nouveau doctype Type de notification.@framework/ui/Notifications pour afficher les notifications.title, description, et type pour une meilleure intégration avec le panneau unifié.Vous souhaitez notifier l'auteur d'un document lorsqu'un nouveau commentaire est ajouté.
nouveau_commentaireDokosCommentdoc.reference_doctype and doc.reference_nameeval:doc.reference_ownernouveau_commentaireNouveau commentaire sur {0}.format(doc.reference_name)Un nouveau commentaire a été ajouté par {0} sur {1}..format(frappe.session.user, doc.reference_name)document_type,document_name,comment_typededupe_on de votre règle de notification est correctement configuré pour éviter les doublons.Le nouveau système de notifications unifié de Dokos offre une expérience utilisateur cohérente et une intégration simplifiée pour les développeurs. En utilisant les types de notifications, les préférences personnalisables et le panneau unifié, vous pouvez créer des flux de travail plus efficaces et informer vos utilisateurs en temps réel.
Pour aller plus loin, consultez les pages suivantes :