summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-11-04 18:12:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-11-04 18:15:40 +0100
commitbf9ed50639b4e7a509050763de1fe9f9878dcfdd (patch)
tree279e919d58a298f574c8bd1c88c5743afe73e29a
parentaa54dab9fdff35273dc1b64a772bef4ffb195250 (diff)
downloadIshtar-bf9ed50639b4e7a509050763de1fe9f9878dcfdd.tar.bz2
Ishtar-bf9ed50639b4e7a509050763de1fe9f9878dcfdd.zip
🐛 fix history with non naive date call
-rw-r--r--ishtar_common/urls_converters.py13
-rw-r--r--ishtar_common/views_item.py4
2 files changed, 12 insertions, 5 deletions
diff --git a/ishtar_common/urls_converters.py b/ishtar_common/urls_converters.py
index 3fe593692..a1809fdb7 100644
--- a/ishtar_common/urls_converters.py
+++ b/ishtar_common/urls_converters.py
@@ -17,7 +17,7 @@
# See the file COPYING for details.
-from datetime import datetime
+import datetime
class UnderscoreSlug:
@@ -35,9 +35,16 @@ class DateTimeConverter:
date_format = '%Y-%m-%dT%H:%M:%S.%f'
def to_python(self, value):
- return datetime.strptime(value, self.date_format)
+ tz = None
+ if "+" in value:
+ value, tz = value.split("+")
+ date = datetime.datetime.strptime(value, self.date_format)
+ if tz and len(tz) == 5:
+ hours, minutes = tz.split(":")
+ date = date - datetime.timedelta(hours=int(hours), minutes=int(minutes))
+ return date
def to_url(self, value):
- if isinstance(value, datetime):
+ if isinstance(value, datetime.datetime):
return value.strftime(self.date_format)
return value
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 36194d485..62de9b8b4 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -588,8 +588,8 @@ def show_item(model, name, extra_dct=None, model_for_perms=None, callback=None):
if date:
try:
if not isinstance(date, datetime.datetime):
- date = datetime.datetime.strptime(
- date, DateTimeConverter.date_format)
+ convert = DateTimeConverter()
+ date = convert.to_python(date)
dct["IS_HISTORY"] = True
if item.get_last_history_date() != date:
item = item.get_previous(date=date)