From fd5d5ae98e320745118e1ffd6d5da7860dde09e6 Mon Sep 17 00:00:00 2001 From: Jakob Schnell Date: Mon, 2 Oct 2017 14:55:02 +0200 Subject: [PATCH] Fix #628 -- Sorting of filtered order list (#631) * fix sorting of filtered order list fixes #628 * implement comments on pr --- src/pretix/control/forms/filter.py | 10 ++++++++++ src/pretix/control/views/orders.py | 7 ------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index f759c9de3..e052c6890 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -93,10 +93,16 @@ class OrderFilterForm(FilterForm): else: qs = qs.filter(status=s) + if fdata.get('ordering'): + qs = qs.order_by(dict(self.fields['ordering'].choices)[fdata.get('ordering')]) + return qs class EventOrderFilterForm(OrderFilterForm): + orders = {'code': 'code', 'email': 'email', 'total': 'total', + 'datetime': 'datetime', 'status': 'status', 'pcnt': 'pcnt'} + item = forms.ModelChoiceField( label=_('Products'), queryset=Item.objects.none(), @@ -157,6 +163,10 @@ class EventOrderFilterForm(OrderFilterForm): class OrderSearchFilterForm(OrderFilterForm): + orders = {'code': 'code', 'email': 'email', 'total': 'total', + 'datetime': 'datetime', 'status': 'status', 'pcnt': 'pcnt', + 'event': 'event'} + organizer = forms.ModelChoiceField( label=_('Organizer'), queryset=Organizer.objects.none(), diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index e1021e28c..ee0cbb115 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -70,13 +70,6 @@ class OrderList(EventPermissionRequiredMixin, ListView): if self.filter_form.is_valid(): qs = self.filter_form.filter_qs(qs) - if self.request.GET.get("ordering", "") != "": - p = self.request.GET.get("ordering", "") - p_admissable = ('-code', 'code', '-email', 'email', '-total', 'total', '-datetime', - 'datetime', '-status', 'status', 'pcnt', '-pcnt') - if p in p_admissable: - qs = qs.order_by(p) - return qs.distinct() def get_context_data(self, **kwargs):