Add filters to the order search

This commit is contained in:
Raphael Michel
2017-06-28 12:52:48 +02:00
parent 424b7964b4
commit c2bd2f0672
3 changed files with 102 additions and 23 deletions

View File

@@ -0,0 +1,45 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from pretix.base.models import Organizer
class OrderSearchFilterForm(forms.Form):
query = forms.CharField(
label=_('Search for…'),
widget=forms.TextInput(attrs={
'placeholder': _('Search for…'),
'autofocus': 'autofocus'
}),
required=False
)
status = forms.ChoiceField(
label=_('Order status'),
choices=(
('', _('All orders')),
('p', _('Paid')),
('n', _('Pending')),
('o', _('Pending (overdue)')),
('e', _('Expired')),
('ne', _('Pending or expired')),
('c', _('Canceled')),
('r', _('Refunded')),
),
required=False,
)
organizer = forms.ModelChoiceField(
label=_('Organizer'),
queryset=Organizer.objects.none(),
required=False,
empty_label=_('All organizers')
)
def __init__(self, *args, **kwargs):
request = kwargs.pop('request')
super().__init__(*args, **kwargs)
if request.user.is_superuser:
self.fields['organizer'].queryset = Organizer.objects.all()
else:
self.fields['organizer'].queryset = Organizer.objects.filter(
pk__in=request.user.teams.values_list('organizer', flat=True)
)