From 5adbdb80a809568ad25db73cceae40e9478844a4 Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Fri, 30 Jun 2023 15:50:32 +0200 Subject: [PATCH] Badge-Export: Explicitly convert dt/df to deal with celery (Fixes PRETIXEU-8NW) --- src/pretix/plugins/badges/exporters.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/pretix/plugins/badges/exporters.py b/src/pretix/plugins/badges/exporters.py index 9dc9a9066..5171cdfe4 100644 --- a/src/pretix/plugins/badges/exporters.py +++ b/src/pretix/plugins/badges/exporters.py @@ -35,7 +35,7 @@ import json import logging from collections import OrderedDict -from datetime import datetime, time, timedelta +from datetime import datetime, time, timedelta, date from decimal import Decimal from io import BytesIO from typing import Tuple @@ -351,15 +351,19 @@ class BadgeExporter(BaseExporter): qs = qs.filter(Q(order__status=Order.STATUS_PAID) | Q(order__status=Order.STATUS_PENDING, order__valid_if_pending=True)) if form_data.get('date_from'): - dt = make_aware(datetime.combine( - dateutil.parser.parse(form_data['date_from']).date(), + if not isinstance(form_data.get('date_from'), date): + form_data['date_from'] = dateutil.parser.parse(form_data['date_from']).date() + df = make_aware(datetime.combine( + form_data['date_from'], time(hour=0, minute=0, second=0) ), self.event.timezone) - qs = qs.filter(Q(subevent__date_from__gte=dt) | Q(subevent__isnull=True, order__event__date_from__gte=dt)) + qs = qs.filter(Q(subevent__date_from__gte=df) | Q(subevent__isnull=True, order__event__date_from__gte=df)) if form_data.get('date_to'): + if not isinstance(form_data.get('date_to'), date): + form_data['date_to'] = dateutil.parser.parse(form_data['date_to']).date() dt = make_aware(datetime.combine( - dateutil.parser.parse(form_data['date_to']).date() + timedelta(days=1), + form_data['date_to'] + timedelta(days=1), time(hour=0, minute=0, second=0) ), self.event.timezone) qs = qs.filter(Q(subevent__date_from__lt=dt) | Q(subevent__isnull=True, order__event__date_from__lt=dt))