Closed wie0815 closed 3 weeks ago
Problem ist dass die Zeitzone des Termins wird nicht korrekt beachtet.
Alle Daten sind bei uns intern in der Datenbank erstmal als "DateTime" (Datum mit Uhrzeit) gespeichert. Bei ganztägigen Ereignissen geben wir aber nur das ical-Format "Date" (ohne Zeit) aus (Format YYYYMMDD). Dafür wandeln wir zu ISO8601 um, nehmen die "-" weg und schneiden alles nach dem T weg.
Also (in dem Fall KU1 Start): → 28. Oktober 2024 00:00 in Central European Standard Time → 2024-10-28T00:00:00+01:00 → 2024-10-27T23:00:00Z → 20241027
Das Problem ist also dass DateTime.to_iso8601/1
grundsätzlich in UTC umwandelt.
Die Umwandlung zu UTC passiert in dem Fall tatsächlich weil postgres anscheinend nur UTC speichern kann. Lösung wird sein die Zeitzone des Ereignisses zusätzlich zu speichern.
Da wird quasi ausschließlich mit CEST zu tun haben, denke ich brauchen wir das erstmal nicht in der Oberfläche anzuzeigen / änderbar machen.
Was heißt das nun? In der Google-Kalender-App ist der Fehler immer noch sichtbar. D.h. dass z.B. der Termin Klausur KU1 am Montag den 28.10. am Sonntag den 27.10. angezeigt wird.
Ja tatsächlich scheint Google bei mir auch noch die falschen Daten anzuzeigen.
Das Problem ist aber gelöst:
> curl 'https://ehrenberg-gymnasium.de/data/calendar/<vertraulich>/ics'
[...]
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
REFRESH-INTERVAL;VALUE=DURATION:PT6H
PRODID:-//einsa Gbr//Lotta//DE
X-WR-CALNAME:11er
NAME:11er
COLOR:#f5af16
DTSTAMP:20241007T095142Z
BEGIN:VEVENT
DTSTART;VALUE=DATE:20241028
DTEND;VALUE=DATE:20241029
LOCATION:
SUMMARY;LANGUAGE=DE:KU1 (Nr.1)
UID:<vertraulich>
DTSTAMP:20241022T085438Z
CLASS:PUBLIC
END:VEVENT
[...]
END:VCALENDAR
Ich kann nur davon ausgehen dass Google hier ziemlich hart und global cached. Vorerst mache ich das Ticket nicht nochmal auf. Bis das Gegeneil bewiesen ist gehe ich davon aus dass alles in Ordnung ist und sich das Problem von alleine lösen wird.
Das Ganze bestätigt sich indem man die URL künstlich ändert.
Wenn man denselben Kalender zB folgendermaßen abonniert: https://ehrenberg-gymnasium.de/data/calendar/<vertraulich>/ics?1=1
Lotta ignoriert den '?1=1'-Teil, aber Google denkt es ist eine neue URL und spuckt eine aktuelle, ungecachte Version aus. Google aktualisiert die Kalender-Abos sehr unregelmäßig und unvorhersehbar.
Auf unserer Seite ist das Problem gelöst.
Super!
Bug-Beschreibung
Kalendereinträge werden in der Marginalen korrekt dargestellt. Bsp.: Klausuren 11er am 28.10.2024 KU1 (Nr.1). Im Abonnement erscheint der Termin am 27.10.2024 (also an einem Sonntag!). Der Fehler betrifft alle Einzeltermine. Vgl. Marginale "Klausuren"
Link zur Seite, auf der das Problem aufgefallen ist
https://ehrenberg-gymnasium.de
Gerätekategorie
Trifft hier nicht zu
In welchem Browser ist das Problem aufgetreten
No response