Trac - Notification email au format HTML

Qu'est-ce que Trac ?

Trac est un outil web Open Source de gestion de projet, développé en Python. Celui-ci inclu :

La notification par email

Trac offre la possibilité de recevoir une notification par email lorsqu'un ticket est créé ou modifié. Cependant les mails envoyés par Trac sont en texte brut. La plupart des clients mails et webmails offrent aujourd'hui la possibilité de recevoir des mails au format HTML.

Je vous propose donc un petit tutoriel vous expliquant les modifications à opérer afin de recevoir les notifications en HTML et de tirer partie des possibilités de mise en page qu'offre ce format. Ce tutoriel donne la procédure à suivre pour Trac 0.11, si vous disposez de Trac en version 0.10, je vous invite à suivre le tutoriel suivant (en anglais) : Getting Trac to send out HTML emails dont je me suis inspiré.

Passons aux choses sérieuses

Avant toute chose, pensez à sauvegarder vos fichiers avant de les modifier. En cas de problème il vous sera ainsi plus facile de revenir en arrière.

  1. Ouvrez un terminal et entrez dans le répertoire où est installé Trac.
  2. Faites une sauvegarde du fichier ticket/notification.py dans le dossier de Trac. Attention à ne pas confondre avec trac/notification.py à la racine de Trac.
  3. Téléchargez le patch notification.patch depuis votre navigateur ou via la commande
    wget http://trac-html-notification.alwaysdata.net/patches/notification.patch
    dans votre terminal.
  4. Appliquez le patch notification.patch en exécutant la commande suivante :
    patch -p0 ticket/notification.py notification.patch
  5. Faites une sauvegarde du fichier ticket_notify_email.txt qui se trouve dans le répertoire de votre projet Trac (/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/ticket/templates/) au cas où vous souhaiteriez revenir à la version originale.
  6. Ajoutez les balises HTML nécessaires dans le fichier ticket_notify_email.txt. Il s'agit d'un gabarit (ou template) pour l'envoi d'emails. Techniquement, il s'agit de gabarits Genshi mais vous devriez réussir assez facilement à l'adapter à vos besoin. Si vous êtes capable d'installer Trac, vous devriez aiséement comprendre la syntaxe de Genshi ;)
    Vous pouvez appliquer le patch ticket_notify_email.patch ou télécharger mon gabarit.
  7. Adapter le gabarit à vos besoins ou suivant vos goûts si vous le souhaitez.
  8. Envoyez un email de test via Trac (en mettant à jour un ticket par exemple) et assurez-vous qu'il est bien envoyé au format HTML. Afin d'avoir un code propre et facilement maintenable, il est préférable de mettre un minimum de code HTML dans le fichier .py et d'utiliser le fichier .txt pour faire la mise en page.
  9. Répétez les deux dernières étapes jusqu'à obtenir le rendu souhaité.
  10. Pensez à relancer votre serveur web si vous ne voyez aucun changement. En effet, il se peut qu'il garde certaines informations en cache.
Voici à quoi ressemblait un mail de notification avant modification :
#78: description of bug number 78
----------------------------+-----------------------------------------------
Reporter: someone | Owner: me
Type: defect | Status: closed
Priority: critical | Milestone:
Component: MyComponent | Resolution: fixed
Keywords: key1 key2 key3 |
----------------------------+-----------------------------------------------
Changes (by me):

* status: assigned => closed
* resolution: => fixed


--
Ticket URL: http://trac.myproject.com/ticket/78#comment:2
MyProject http://trac.myproject.com
MyProject
Et voici à quoi ressemble le mail une fois les modifications appliquées :
MyProject #78: description of bug number 78
Changes (by me)
  • status: accepted → closed
  • resolution: → fixed
Reporter: someone Owner: me
Type: defect Status: closed
Priority: critical Milestone:
Component: myComponent Resolution: fixed
Keywords: key1 key2 key3
MyProject
Admettez que c'est tout de suite plus agréable :)
Partagez cet article :
del.icio.us Digg Facebook Google blogmarks Ne copiez pas les CGV de vos voisins BlogMemes Fr Live Pownce Scoopeo StumbleUpon Technorati Wikio FR TwitThis Furl MisterWong
Pour toute remarque, question ou commentaire,
vous pouvez me contacter à l'adresse suivante :
trac-html-notification [at] alwaysdata.net
Valid XHTML 1.1 Valid CSS