From c2e4dc75c49378a3e53b28c40972ee0a6f99a020 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Tue, 23 Jan 2018 20:45:16 +0100 Subject: Bon fuseau horaire dans les ICS. Les bases de données stockent et renvoient seulement des dates en UTC. Django inscrit cette information dans les objets datetime, par conséquent les dates inscrites sur les templates étaient automatiquement converties à l’heure indiquée dans la configuration. Or, les ICS sont générées avec une librairie tierce (icalendar), et ne tient donc pas compte de la configuration de Django. Le module inscrit donc des dates UTC dans les ICS. C’est sans conséquences, car l’heure est correcte, juste décalée avec une information de fuseau horaire. Un bon client iCalendar est censé convertir les heures de lui-même en fonction des préférences du systèmes. Seulement certains d’entre eux affichent aussi le fuseau horaire d’origine. --- feeds.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/feeds.py b/feeds.py index aced5e6..da077f0 100644 --- a/feeds.py +++ b/feeds.py @@ -21,6 +21,7 @@ from django.db.models.functions import ExtractWeek, ExtractYear from django.template import loader from django.urls import reverse from django.utils.feedgenerator import Atom1Feed, SyndicationFeed +from django.utils.timezone import localtime from icalendar import Calendar, Event @@ -85,9 +86,9 @@ class IcalFeed(Feed): def item_extra_kwargs(self, item): return {"uid": "{0}@celcatsanitizer".format(item.id), - "dtstart": item.begin, - "dtend": item.end, - "dtstamp": item.last_update, + "dtstart": localtime(item.begin), + "dtend": localtime(item.end), + "dtstamp": localtime(item.last_update), "summary": self.item_summary(item), "location": format_rooms(item.rooms.all())} -- cgit v1.2.1 From 94e35d0018cc1210594a08f33ffc27ecfd5bb7ba Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Tue, 23 Jan 2018 22:04:50 +0100 Subject: Version 0.12.2 --- __init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index f75615a..6d78c7a 100644 --- a/__init__.py +++ b/__init__.py @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Affero General Public License # along with celcatsanitizer. If not, see . -VERSION = "0.12.1" +VERSION = "0.12.2" __version__ = VERSION default_app_config = "edt.apps.EdtConfig" -- cgit v1.2.1