From 24e2b1b9ab87d2479af3e83d4e35ea873ab8278b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 12 Sep 2024 09:28:19 +0200 Subject: [PATCH] Import: Parse iso dates --- src/pretix/base/modelimport.py | 8 +++++++- src/tests/base/test_modelimport_vouchers.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/modelimport.py b/src/pretix/base/modelimport.py index 7f2e38017d..d15396e952 100644 --- a/src/pretix/base/modelimport.py +++ b/src/pretix/base/modelimport.py @@ -213,7 +213,13 @@ class DatetimeColumnMixin: except (ValueError, TypeError): pass else: - raise ValidationError(_("Could not parse {value} as a date and time.").format(value=value)) + try: + d = datetime.datetime.fromisoformat(value) + if not d.tzinfo: + d = d.replace(tzinfo=self.timezone) + return d + except (ValueError, TypeError): + raise ValidationError(_("Could not parse {value} as a date and time.").format(value=value)) class DecimalColumnMixin: diff --git a/src/tests/base/test_modelimport_vouchers.py b/src/tests/base/test_modelimport_vouchers.py index 65e9e3c8cf..98fd044ef5 100644 --- a/src/tests/base/test_modelimport_vouchers.py +++ b/src/tests/base/test_modelimport_vouchers.py @@ -66,7 +66,7 @@ def inputfile_factory(multiplier=1): 'A': 'GHIJK432', 'B': 'Ticket', 'C': 'False', - 'D': '2021-05-28 11:00:00', + 'D': '2021-05-28T11:00:00+00:00', 'E': '2', 'F': '1', },