forked from CGM_Public/pretix_original
Check-in list export: Allow to filter by subevent date
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
from datetime import datetime, time, timedelta
|
||||||
|
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
from django import forms
|
from django import forms
|
||||||
@@ -41,6 +42,20 @@ class CheckInListMixin(BaseExporter):
|
|||||||
),
|
),
|
||||||
initial=self.event.checkin_lists.first()
|
initial=self.event.checkin_lists.first()
|
||||||
)),
|
)),
|
||||||
|
('date_from',
|
||||||
|
forms.DateField(
|
||||||
|
label=_('Start date'),
|
||||||
|
widget=forms.DateInput(attrs={'class': 'datepickerfield'}),
|
||||||
|
required=False,
|
||||||
|
help_text=_('Only include tickets for dates on or after this date.')
|
||||||
|
)),
|
||||||
|
('date_to',
|
||||||
|
forms.DateField(
|
||||||
|
label=_('End date'),
|
||||||
|
widget=forms.DateInput(attrs={'class': 'datepickerfield'}),
|
||||||
|
required=False,
|
||||||
|
help_text=_('Only include tickets for dates on or before this date.')
|
||||||
|
)),
|
||||||
('secrets',
|
('secrets',
|
||||||
forms.BooleanField(
|
forms.BooleanField(
|
||||||
label=_('Include QR-code secret'),
|
label=_('Include QR-code secret'),
|
||||||
@@ -77,6 +92,10 @@ class CheckInListMixin(BaseExporter):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not self.event.has_subevents:
|
||||||
|
del d['date_from']
|
||||||
|
del d['date_to']
|
||||||
|
|
||||||
d['list'].queryset = self.event.checkin_lists.all()
|
d['list'].queryset = self.event.checkin_lists.all()
|
||||||
d['list'].widget = Select2(
|
d['list'].widget = Select2(
|
||||||
attrs={
|
attrs={
|
||||||
@@ -118,6 +137,20 @@ class CheckInListMixin(BaseExporter):
|
|||||||
if cl.subevent:
|
if cl.subevent:
|
||||||
qs = qs.filter(subevent=cl.subevent)
|
qs = qs.filter(subevent=cl.subevent)
|
||||||
|
|
||||||
|
if form_data.get('date_from'):
|
||||||
|
dt = make_aware(datetime.combine(
|
||||||
|
dateutil.parser.parse(form_data['date_from']).date(),
|
||||||
|
time(hour=0, minute=0, second=0)
|
||||||
|
), self.event.timezone)
|
||||||
|
qs = qs.filter(subevent__date_from__gte=dt)
|
||||||
|
|
||||||
|
if form_data.get('date_to'):
|
||||||
|
dt = make_aware(datetime.combine(
|
||||||
|
dateutil.parser.parse(form_data['date_to']).date() + timedelta(days=1),
|
||||||
|
time(hour=0, minute=0, second=0)
|
||||||
|
), self.event.timezone)
|
||||||
|
qs = qs.filter(subevent__date_from__lt=dt)
|
||||||
|
|
||||||
o = tuple()
|
o = tuple()
|
||||||
if self.event.has_subevents and not cl.subevent:
|
if self.event.has_subevents and not cl.subevent:
|
||||||
o = ('subevent__date_from', 'subevent__name')
|
o = ('subevent__date_from', 'subevent__name')
|
||||||
|
|||||||
Reference in New Issue
Block a user