diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py new file mode 100644 index 0000000000..f6cc4a3a3b --- /dev/null +++ b/src/pretix/control/forms/filter.py @@ -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) + ) diff --git a/src/pretix/control/templates/pretixcontrol/search/orders.html b/src/pretix/control/templates/pretixcontrol/search/orders.html index 210fe333f6..8516a0fba1 100644 --- a/src/pretix/control/templates/pretixcontrol/search/orders.html +++ b/src/pretix/control/templates/pretixcontrol/search/orders.html @@ -2,16 +2,25 @@ {% load i18n %} {% load eventurl %} {% load urlreplace %} +{% load bootstrap3 %} {% block title %}{% trans "Order search" %}{% endblock %} {% block content %}