From 650f2412c21ebdd7dd92cc6061b6938d5f0e8a35 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 30 Jul 2016 13:56:43 +0200 Subject: [PATCH] Added filtering to the voucher list --- .../pretixcontrol/vouchers/base.html | 16 +++++++++ .../pretixcontrol/vouchers/index.html | 33 +++++++++++++------ src/pretix/control/views/vouchers.py | 12 +++++++ 3 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 src/pretix/control/templates/pretixcontrol/vouchers/base.html diff --git a/src/pretix/control/templates/pretixcontrol/vouchers/base.html b/src/pretix/control/templates/pretixcontrol/vouchers/base.html new file mode 100644 index 000000000..a795273f3 --- /dev/null +++ b/src/pretix/control/templates/pretixcontrol/vouchers/base.html @@ -0,0 +1,16 @@ +{% extends "pretixcontrol/event/base.html" %} +{% load i18n %} +{% load bootstrap3 %} +{% block title %}{% trans "Vouchers" %}{% endblock %} +{% block content %} +

{% trans "Vouchers" %}

+ + {% block inside %} + {% endblock %} +{% endblock %} diff --git a/src/pretix/control/templates/pretixcontrol/vouchers/index.html b/src/pretix/control/templates/pretixcontrol/vouchers/index.html index 9f4029576..3941e062d 100644 --- a/src/pretix/control/templates/pretixcontrol/vouchers/index.html +++ b/src/pretix/control/templates/pretixcontrol/vouchers/index.html @@ -1,20 +1,38 @@ -{% extends "pretixcontrol/items/base.html" %} +{% extends "pretixcontrol/vouchers/base.html" %} {% load i18n %} {% block title %}{% trans "Vouchers" %}{% endblock %} {% block inside %} -

{% trans "Vouchers" %}

{% blocktrans trimmed %} Vouchers allow you to assign tickets to specific persons for a lower price. They also enable you to reserve some quota for your very special guests. {% endblocktrans %}

+
+

+ + + + +

+
{% if vouchers|length == 0 %}

- {% blocktrans trimmed %} - You haven't created any vouchers yet. - {% endblocktrans %} + {% if request.GET.search or request.GET.tag or request.GET.status %} + {% trans "Your search did not match any vouchers." %} + {% else %} + {% blocktrans trimmed %} + You haven't created any vouchers yet. + {% endblocktrans %} + {% endif %}

{% trans "Create multiple new vouchers" %}

-
- - -
diff --git a/src/pretix/control/views/vouchers.py b/src/pretix/control/views/vouchers.py index 73298f1bc..c0f80c96a 100644 --- a/src/pretix/control/views/vouchers.py +++ b/src/pretix/control/views/vouchers.py @@ -3,6 +3,7 @@ from django.core.urlresolvers import resolve, reverse from django.db import transaction from django.db.models import Q from django.http import Http404, HttpResponseRedirect +from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ from django.views.generic import CreateView, DeleteView, ListView, UpdateView @@ -24,6 +25,17 @@ class VoucherList(EventPermissionRequiredMixin, ListView): if self.request.GET.get("search", "") != "": s = self.request.GET.get("search", "") qs = qs.filter(Q(code__icontains=s) | Q(tag__icontains=s) | Q(comment__icontains=s)) + if self.request.GET.get("tag", "") != "": + s = self.request.GET.get("tag", "") + qs = qs.filter(tag=s) + if self.request.GET.get("status", "") != "": + s = self.request.GET.get("status", "") + if s == 'v': + qs = qs.filter(Q(valid_until__isnull=True) | Q(valid_until__gt=now())).filter(redeemed=False) + elif s == 'r': + qs = qs.filter(redeemed=True) + elif s == 'e': + qs = qs.filter(Q(valid_until__isnull=False) & Q(valid_until__lt=now())).filter(redeemed=False) return qs