diff options
| -rw-r--r-- | ishtar_common/urls_converters.py | 13 | ||||
| -rw-r--r-- | ishtar_common/views_item.py | 4 |
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) |
