forked from CGM_Public/pretix_original
Order expert search: Allow to filter by check-in/check-out
This commit is contained in:
@@ -573,6 +573,11 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
|||||||
label=_('Sales channel'),
|
label=_('Sales channel'),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
has_checkin = forms.NullBooleanField(
|
||||||
|
required=False,
|
||||||
|
widget=FilterNullBooleanSelect,
|
||||||
|
label=_('At least one ticket with check-in'),
|
||||||
|
)
|
||||||
checkin_attention = forms.NullBooleanField(
|
checkin_attention = forms.NullBooleanField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=FilterNullBooleanSelect,
|
widget=FilterNullBooleanSelect,
|
||||||
@@ -745,6 +750,12 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
|||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
all_positions__country=fdata.get('attendee_address_country')
|
all_positions__country=fdata.get('attendee_address_country')
|
||||||
).distinct()
|
).distinct()
|
||||||
|
if fdata.get('has_checkin') is not None:
|
||||||
|
qs = qs.annotate(
|
||||||
|
has_checkin=Exists(
|
||||||
|
Checkin.all.filter(position__order_id=OuterRef('pk'))
|
||||||
|
)
|
||||||
|
).filter(has_checkin=fdata['has_checkin'])
|
||||||
if fdata.get('ticket_secret'):
|
if fdata.get('ticket_secret'):
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
all_positions__secret__icontains=fdata.get('ticket_secret')
|
all_positions__secret__icontains=fdata.get('ticket_secret')
|
||||||
|
|||||||
Reference in New Issue
Block a user