documentation: weekmail documentation

This commit is contained in:
Antoine Bartuccio 2019-08-26 20:30:05 +02:00
parent 1f271c75f0
commit 775413ac7e
Signed by: klmp200
GPG Key ID: E7245548C53F904B
3 changed files with 77 additions and 0 deletions

View File

@ -149,6 +149,13 @@ class NewsDate(models.Model):
class Weekmail(models.Model): class Weekmail(models.Model):
""" """
The weekmail class The weekmail class
:ivar title: Title of the weekmail
:ivar intro: Introduction of the weekmail
:ivar joke: Joke of the week
:ivar protip: Tip of the week
:ivar conclusion: Conclusion of the weekmail
:ivar sent: Track if the weekmail has been sent
""" """
title = models.CharField(_("title"), max_length=64, blank=True) title = models.CharField(_("title"), max_length=64, blank=True)
@ -162,6 +169,10 @@ class Weekmail(models.Model):
ordering = ["-id"] ordering = ["-id"]
def send(self): def send(self):
"""
Send the weekmail to all users with the receive weekmail option opt-in.
Also send the weekmail to the mailing list in settings.SITH_COM_EMAIL.
"""
dest = [ dest = [
i[0] i[0]
for i in Preferences.objects.filter(receive_weekmail=True).values_list( for i in Preferences.objects.filter(receive_weekmail=True).values_list(
@ -183,19 +194,31 @@ class Weekmail(models.Model):
Weekmail().save() Weekmail().save()
def render_text(self): def render_text(self):
"""
Renders a pure text version of the mail for readers without HTML support.
"""
return render( return render(
None, "com/weekmail_renderer_text.jinja", context={"weekmail": self} None, "com/weekmail_renderer_text.jinja", context={"weekmail": self}
).content.decode("utf-8") ).content.decode("utf-8")
def render_html(self): def render_html(self):
"""
Renders an HTML version of the mail with images and fancy CSS.
"""
return render( return render(
None, "com/weekmail_renderer_html.jinja", context={"weekmail": self} None, "com/weekmail_renderer_html.jinja", context={"weekmail": self}
).content.decode("utf-8") ).content.decode("utf-8")
def get_banner(self): def get_banner(self):
"""
Return an absolute link to the banner.
"""
return "http://" + settings.SITH_URL + static("com/img/weekmail_bannerA19.jpg") return "http://" + settings.SITH_URL + static("com/img/weekmail_bannerA19.jpg")
def get_footer(self): def get_footer(self):
"""
Return an absolute link to the footer.
"""
return "http://" + settings.SITH_URL + static("com/img/weekmail_footerA19.jpg") return "http://" + settings.SITH_URL + static("com/img/weekmail_footerA19.jpg")
def __str__(self): def __str__(self):

53
doc/frequent/weekmail.rst Normal file
View File

@ -0,0 +1,53 @@
Modifier le weekmail
====================
Le site est capable de générer des mails automatiques composé de lagrégation d'articles composé par les administrateurs de clubs. Le contenu est inséré dans un template standardisé et contrôlé directement dans le code. Il arrive régulièrement que l'équipe communication souhaite modifier ce template. Que ce soit les couleurs, l'agencement ou encore la bannière ou le footer, voici tout ce qu'il y a à savoir sur le fonctionnement du weekmail en commençant par la classe qui le contrôle.
.. autoclass:: com.models.Weekmail
:members:
Modifier la bannière et le footer
---------------------------------
Comme on peut l'observer plus haut, ces éléments sont contrôlés par les méthodes *get_banner* et *get_footer* de la classe *Weekmail*. Les modifier est donc très simple, il suffit de modifier le contenu de la fonction et de rajouter les nouvelles images dans les statics.
Les images sont à ajouter dans dans **core/static/com/img** et sont à nommer selon le type (banner ou footer), le semestre (Automne ou Printemps) et l'année.
Exemple : *weekmail_bannerA18.jpg* pour la bannière de l'automne 2018.
.. code-block:: python
# Sélectionner le fichier de bannière pour le weekmail de l'automne 2018
def get_banner(self):
return "http://" + settings.SITH_URL + static("com/img/weekmail_bannerA18.jpg")
.. note::
Penser à prendre les images au format **jpg** et que les images soient le plus léger possible, c'est bien mieux pour l'utilisateur final.
.. note::
Pensez à laisser les anciennes images dans le dossier pour que les anciens weekmails ne soient pas affectés par les changements.
Modifier le template
--------------------
Comme on peut le voir dans la documentation de la classe, il existe deux templates différents. Un des templates est en texte pur et sert pour le rendu dégradé des lecteurs de mails ne supportant pas le HTML et un autre fait un rendu en HTML.
Ces deux templates sont respectivement accessibles aux emplacements suivants :
* com/templates/com/weekmail_renderer_html.jinja
* com/templates/com/weekmail_renderer_text.jinja
.. note::
Pour le rendu HTML, pensez à utiliser le CSS et le javascript le plus simple possible pour que le rendu se fasse correctement dans les clients mails qui sont souvent capricieux.
.. note::
Le CSS est inclus statiquement pour que toute modification ultérieure de celui-ci n'affecte pas les versions précédemment envoyées.
.. warning::
Si vous souhaitez ajouter du contenu, n'oubliez pas de bien inclure ce contenu dans les deux templates.

View File

@ -38,6 +38,7 @@ Bienvenue sur la documentation du Sith de l'AE
:caption: Modifications fréquentes :caption: Modifications fréquentes
frequent/subscriptions frequent/subscriptions
frequent/weekmail
.. toctree:: .. toctree::
:maxdepth: 3 :maxdepth: 3