mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
* Add Go input for vouchers on the vouchers list page (#357) * Final fixes
This commit is contained in:
committed by
Raphael Michel
parent
6fe02f156a
commit
479a7d9162
@@ -11,32 +11,41 @@
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<div class="row filter-form">
|
||||
<form class="col-lg-2 col-sm-6 col-xs-6"
|
||||
action="{% url "control:event.vouchers.go" event=request.event.slug organizer=request.event.organizer.slug %}">
|
||||
<div class="input-group">
|
||||
<input type="text" name="code" class="form-control" placeholder="{% trans "Voucher code" %}" autofocus>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">{% trans "Go!" %}</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<form class="" action="" method="get">
|
||||
<div class="col-md-2 col-xs-6">
|
||||
<div class="col-lg-2 col-sm-3 col-xs-6">
|
||||
{% bootstrap_field filter_form.search layout='inline' %}
|
||||
</div>
|
||||
<div class="col-md-2 col-xs-6">
|
||||
<div class="col-lg-1 col-sm-3 col-xs-6">
|
||||
{% bootstrap_field filter_form.tag layout='inline' %}
|
||||
</div>
|
||||
{% if request.event.has_subevents %}
|
||||
<div class="col-md-1 col-xs-6">
|
||||
<div class="col-lg-1 col-sm-3 col-xs-6">
|
||||
{% bootstrap_field filter_form.status layout='inline' %}
|
||||
</div>
|
||||
<div class="col-md-2 col-xs-6">
|
||||
<div class="col-lg-2 col-sm-3 col-xs-6">
|
||||
{% bootstrap_field filter_form.subevent layout='inline' %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-md-3 col-xs-6">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6">
|
||||
{% bootstrap_field filter_form.status layout='inline' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-md-2 col-xs-6">
|
||||
<div class="col-lg-2 col-sm-6 col-xs-6">
|
||||
{% bootstrap_field filter_form.itemvar layout='inline' %}
|
||||
</div>
|
||||
<div class="col-md-1 col-xs-6">
|
||||
<div class="col-lg-1 col-sm-6 col-xs-6">
|
||||
{% bootstrap_field filter_form.qm layout='inline' %}
|
||||
</div>
|
||||
<div class="col-md-2 col-xs-6">
|
||||
<div class="col-lg-1 col-sm-6 col-xs-6">
|
||||
<button class="btn btn-primary btn-block" type="submit">
|
||||
<span class="fa fa-filter"></span>
|
||||
<span class="hidden-md">
|
||||
|
||||
@@ -151,6 +151,7 @@ urlpatterns = [
|
||||
url(r'^vouchers/(?P<voucher>\d+)/delete$', vouchers.VoucherDelete.as_view(),
|
||||
name='event.voucher.delete'),
|
||||
url(r'^vouchers/add$', vouchers.VoucherCreate.as_view(), name='event.vouchers.add'),
|
||||
url(r'^vouchers/go$', vouchers.VoucherGo.as_view(), name='event.vouchers.go'),
|
||||
url(r'^vouchers/bulk_add$', vouchers.VoucherBulkCreate.as_view(), name='event.vouchers.bulk'),
|
||||
url(r'^orders/(?P<code>[0-9A-Z]+)/transition$', orders.OrderTransition.as_view(),
|
||||
name='event.order.transition'),
|
||||
|
||||
@@ -10,6 +10,7 @@ from django.http import (
|
||||
Http404, HttpResponse, HttpResponseBadRequest, HttpResponseRedirect,
|
||||
JsonResponse,
|
||||
)
|
||||
from django.shortcuts import redirect
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import (
|
||||
@@ -225,6 +226,23 @@ class VoucherCreate(EventPermissionRequiredMixin, CreateView):
|
||||
return super().post(request, *args, **kwargs)
|
||||
|
||||
|
||||
class VoucherGo(EventPermissionRequiredMixin, View):
|
||||
permission = 'can_view_vouchers'
|
||||
|
||||
def get_voucher(self, code):
|
||||
return Voucher.objects.get(code__iexact=code, event=self.request.event)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
code = request.GET.get("code", "").strip()
|
||||
try:
|
||||
voucher = self.get_voucher(code)
|
||||
return redirect('control:event.voucher', event=request.event.slug, organizer=request.event.organizer.slug,
|
||||
voucher=voucher.id)
|
||||
except Voucher.DoesNotExist:
|
||||
messages.error(request, _('There is no voucher with the given voucher code.'))
|
||||
return redirect('control:event.vouchers', event=request.event.slug, organizer=request.event.organizer.slug)
|
||||
|
||||
|
||||
class VoucherBulkCreate(EventPermissionRequiredMixin, CreateView):
|
||||
model = Voucher
|
||||
template_name = 'pretixcontrol/vouchers/bulk.html'
|
||||
|
||||
Reference in New Issue
Block a user