Meilleur affichage des dates

Configure la localisation (i10n) de Django afin d’afficher un format
plus user-friendly par défaut pour les dates (par exemple, afficher
"21 septembre 2016 à 15:00" plutôt que "21 septembre 2016
15:00"). Ceci permet d’éliminer les utilisations de `date_no_seconds`
pour simplement les remplacer par l’affichage de la date, le format
par défaut étant maintenant satisfaisant.

Attention : le bon fonctionnement de ceci nécessite de changer les
settings afin d’utiliser le module `cof.locale` comme module de
localisation (définir `FORMAT_MODULE_PATH = "cof.locale"`). Le module
`cof.locale` définit le format d’affichage des dates+heures
(`DATETIME_FORMAT`) afin d’incorporer le "à" qui n'est pas présent
dans la localisation française de Django.
This commit is contained in:
Basile Clement 2016-11-08 10:24:17 +01:00 committed by Basile Clement
parent afed3479b0
commit 567c9a0a6d
14 changed files with 24 additions and 23 deletions

View file

@ -14,7 +14,7 @@ from django.contrib.auth.models import User
from django.template import loader
from django.core import mail
from django.conf import settings
from django.utils import timezone
from django.utils import timezone, formats
from django.utils.encoding import python_2_unicode_compatible
@ -28,12 +28,8 @@ class Tirage(models.Model):
enable_do_tirage = models.BooleanField("Le tirage peut être lancé",
default=False)
def date_no_seconds(self):
return self.fermeture.astimezone(timezone.get_current_timezone()) \
.strftime('%d %b %Y %H:%M')
def __str__(self):
return "%s - %s" % (self.title, self.date_no_seconds())
return "%s - %s" % (self.title, formats.localize(timezone.template_localtime(self.fermeture)))
@python_2_unicode_compatible
@ -86,13 +82,13 @@ class Spectacle(models.Model):
def timestamp(self):
return "%d" % calendar.timegm(self.date.utctimetuple())
def date_no_seconds(self):
return self.date.astimezone(timezone.get_current_timezone()) \
.strftime('%d %b %Y %H:%M')
def __str__(self):
return "%s - %s, %s, %.02f" % (self.title, self.date_no_seconds(),
self.location, self.price)
return "%s - %s, %s, %.02f" % (
self.title,
formats.localize(timezone.template_localtime(self.date)),
self.location,
self.price
)
def send_rappel(self):
# On récupère la liste des participants
@ -108,8 +104,7 @@ class Spectacle(models.Model):
members[-1] = ['BdA', 2, 'bda@ens.fr']
# On écrit un mail personnalisé à chaque participant
mails_to_send = []
mail_object = "%s - %s - %s" % (self.title, self.date_no_seconds(),
self.location)
mail_object = str(self)
for member in members.values():
mail_body = loader.render_to_string('bda/mails/rappel.txt', {
'name': member[0],