 Je viens vous parler de la génération de courriel avec Genshi. En fait, j'aurais pu aussi appeler cette présentation, génération de courriel HTML avec Genshi, sur l'utilisation que l'on va en faire. Genshi, qu'est-ce que c'est? C'est un engin de templating basé sur l'XML, donc pour générer du HTML, par exemple, et qui nous permet aussi d'exécuter des bouts de code en Python. Je vais vous donner un exemple d'utilisation qu'on fait chez Artbox Technologies. Bon, on est une compagnie qui fait un système de biétrie. On a comme client, par exemple, le cycle du soleil, et puis si jamais vous achetez des billets pour la dernière tournée du cirque Amaluna, qui est présentement avant couvert, bien bien sûr, à la fin de votre achat, vous allez recevoir un courriel de confirmation comme ça. Dans un deuxième courriel, vous allez recevoir des billets aussi, mais on va se concentrer sur le courriel de confirmation. Et je vais vous montrer, en fait, le gabarit qui est utilisé pour générer ce courriel-là sur l'HTML. Donc, c'est ici. Je peux vous montrer de suite, faire porter votre attention sur ici. On a l'exemple d'utilisation d'une variable avec Genchy. Puis, pour vous montrer, ici, par exemple, j'ai dans un aviateur ici un engin de rendu qui me fait le rendu de ce courriel. Et puis ici, je le change ici. J'ai une structure qui est un dictionnaire qui me contient les informations sur le client. Puis si je change pour Firstname pour Lastname, on peut bien s'attendre d'avoir. Bonjour, Monsieur Pratt, à la place. Vous avez remarqué ici que toutes les phrases sont écrites en anglais et que dans mon courriel ici, dans la génération, c'est écrit en français. En fait, c'est que... C'est traduit, vous vous en doutez. Il y a un projet qui est complémentaire à Genchy qui s'appelle Babel et qui permet de prendre toutes les strings qu'on a dans un template comme ça et d'en faire des fichiers.po. Donc, ça donne un fichier comme ça ici qui va permettre de traduire. Et on a, par exemple ici, des variables dans notre chaîne de caractère qui est traduite. En fait, c'est qu'on va avoir une balise ici qui va nous permettre d'associer les chaînes de caractère du point FAO avec les chaînes de caractère du fichier Genchy. D'autres caractéristiques de Genchy que je vais vous montrer, on peut faire bien sûr du contrôle de logique. Par exemple, ici, on a un if. Donc, on va inclure de façon conditionnelle un bout de texte dans le message selon la valeur de la variable. Puis ici, ce que ça nous permet de faire, ça nous permet d'afficher ou non un bout de message pour dire vous pouvez aller chercher vos billets. Vous allez savoir soit par le biétrier électronique par courriel dans un deuxième courriel soit à la poste, la troisième choix, ou soit à la biétrie, ce qu'on appelle le will card en anglais. Ce qu'on marque aussi, c'est que on a des sections ici où est-ce qu'on fait des inclusions de fichiers. En fait, chaque section va correspondre à une section qui est ici dans le courriel. Par exemple, la section reçue d'étariés, la section votre commande. Ces fichiers-là, c'est une instruction XI include, c'est du standard XML. Et dans le cas ici, par exemple, du premier bloc d'inclusion qui est le cartes, ça va venir ouvrir ici, ça va venir inclure ce fichier-là, XML, dans le rendu. J'en profite pour vous montrer d'autres balises aussi qu'on peut faire avec Genshi. Ici, on a des boucles. Donc, c'est le même principe que Capiton pour la variable PUnit dans l'ensemble des unités d'une commande pour les items dans la commande, etc. On remarque aussi ici un bloc de code, un bloc de code en piton. Directement, on peut exécuter du code abritaire en piton avec ça. Je m'en sers entre autres pour faire des prints. Des fois, ça nous permet de voir la variable, la valeur de variable et de l'afficher dans la console. Mais aussi de modifier des variables ici qui, par exemple, qui servent au contrôle qu'on a ici, qui permet de changer un peu l'affichage du courriel. Et en dernier lieu, je vais vous montrer un petit truc ici. Dans le bas du courriel, on a des sections avec des informations supplémentaires. Et on a cette petite section ici. C'est une section qui va ne s'afficher uniquement que pour le client nord-américain du cirque. Et donc, ça va être ici. Parce qu'on va avoir un ensemble d'instructions si jamais, en fait, normalement, un include. Quand on fait un include d'un fichier, si le fichier n'existe pas, ça va créer une erreur. Mais on peut avoir une instruction fallback qui va permettre de masquer cet erreur-là ou même d'afficher du texte si jamais le include ne fonctionne pas. Par exemple, ici, si je commande le texte qui est ici, ça va permettre d'afficher, juste en haut ici, le texte d'afficher si le include ne fonctionne pas. En ce cas-là, ici, ça permet d'étendre les gabarits de courriel pour rajouter des blocs de texte. Par exemple, ici, pour un fichier qui s'appelle client nord-américain, on va rajouter un bloc de texte de commande stère. Donc, ça conclut ma présentation.