The list `proposed_mails` is a list of elements of the kind
`(User, (mail_object, mail_body))` but it was handled as if it were
`(User, mail_body)` in the function `_traitement_post`.
Sometimes the `errors` variable is `None` in `_finalize_traitement`.
It was not an issue when it was just used in the templates but now we
have to handle this in the view. Basically, we shall consider it is an
empty list when it occurs.
- Drop `%` in favour of `.format` which has a better specification
- Remove a string concatenation
- Remove the trailing slashes according to the PEP8:
https://www.python.org/dev/peps/pep-0008/#maximum-line-length
NB. We let some which will disappear in the next commit.
- Remove an unused import and change the imports order
- On installe le package depuis le dépôt COF-Geek
- On supprime tous les fichiers texte des mails
- On charge dans la bdd les mails nécessaires au fonctionnement de
GestioCOF
- On supprime le modèle CustomMail obsolète de gestioncof
Améliore les mails automatiques du BdA
Les mails du BdA sont maintenant tous chargés depuis des templates gérés par le système de templates de Django, et plus par de l'interpolation de chaîne de caractères. Ceci permet en particulier d'utiliser (et de configurer) la localisation de Django afin d'afficher les dates de façon uniforme (et sans "hack" à la `date_no_seconds`) dans un format comportant un "à" entre le jour et l'heure.
See merge request !113
GestioCOF définit une fonction `render_template` qui permet de calculer
l'interpolation d'un gabarit en une chaîne de caractères, par exemple
pour l'envoi de mails. Ce patch supprime cette fonction et remplace son
utilisation par la fonction `django.template.loader.render_to_string` au
comportement identique.
Les valeurs de champs FROM, REPLY-TO et BCC des mails envoyés par
GestioCOF sont enregistrées dans un dictionnaire `settings.MAIL_DATA`
plutôt que d'être toutes enregistrées comme variables indépendantes
Rend GestioCOF compatible avec python 3. En particulier, il s'agit de :
- Utiliser la version "fonction" de `print` dans `sync_clipper` et
`tirage_bda`, avec le `from __future__ import print_function` pour
garder la compatibilité avec python 2
- Utiliser de l'unicode par défaut, même en python 2, avec
`from __future__ import unicode_literals` et le décorateur de
compatibilité `python_2_unicode_compatible` de Django pour les
modèles, comme décrit à
https://docs.djangoproject.com/en/1.9/topics/python3/#str-and-unicode-methods
- Utiliser `six.text_type` à la place de `unicode`
Fixes#2.
Taken MR comments into account:
* `and` is considered a binary operator, thus put at the beginning of the line when splitting a line,
* same for `+`,
* same for `.` (different reasons).