diff --git a/src/pretix/base/migrations/0038_auto_20160924_1448.py b/src/pretix/base/migrations/0038_auto_20160924_1448.py
new file mode 100644
index 000000000..ad14feea9
--- /dev/null
+++ b/src/pretix/base/migrations/0038_auto_20160924_1448.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-24 14:48
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('pretixbase', '0037_invoice_payment_provider_text'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='eventpermission',
+ name='can_view_vouchers',
+ field=models.BooleanField(default=True, verbose_name='Can view vouchers'),
+ ),
+ migrations.AlterField(
+ model_name='item',
+ name='allow_cancel',
+ field=models.BooleanField(default=True, help_text='If you deactivate this, an order including this product might not be canceled by the user. It may still be canceled by you.', verbose_name='Allow product to be canceled'),
+ ),
+ migrations.AlterField(
+ model_name='order',
+ name='status',
+ field=models.CharField(choices=[('n', 'pending'), ('p', 'paid'), ('e', 'expired'), ('c', 'canceled'), ('r', 'refunded')], db_index=True, max_length=3, verbose_name='Status'),
+ ),
+ ]
diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py
index ca3aad943..db2f99593 100644
--- a/src/pretix/base/models/event.py
+++ b/src/pretix/base/models/event.py
@@ -243,6 +243,10 @@ class EventPermission(models.Model):
default=True,
verbose_name=_("Can change orders")
)
+ can_view_vouchers = models.BooleanField(
+ default=True,
+ verbose_name=_("Can view vouchers")
+ )
can_change_vouchers = models.BooleanField(
default=True,
verbose_name=_("Can change vouchers")
diff --git a/src/pretix/control/templates/pretixcontrol/event/base.html b/src/pretix/control/templates/pretixcontrol/event/base.html
index a615fc16e..0bf8c0be7 100644
--- a/src/pretix/control/templates/pretixcontrol/event/base.html
+++ b/src/pretix/control/templates/pretixcontrol/event/base.html
@@ -87,7 +87,7 @@
{% endif %}
- {% if request.eventperm.can_change_vouchers %}
+ {% if request.eventperm.can_view_vouchers %}
diff --git a/src/pretix/control/templates/pretixcontrol/event/permissions.html b/src/pretix/control/templates/pretixcontrol/event/permissions.html
index a25712371..0fdaa1346 100644
--- a/src/pretix/control/templates/pretixcontrol/event/permissions.html
+++ b/src/pretix/control/templates/pretixcontrol/event/permissions.html
@@ -18,6 +18,7 @@
{% trans "View orders" %} |
{% trans "Change orders" %} |
{% trans "Change permissions" %} |
+ {% trans "View vouchers" %} |
{% trans "Change vouchers" %} |
{% trans "Delete" %} |
@@ -31,6 +32,7 @@
{{ form.can_view_orders }} |
{{ form.can_change_orders }} |
{{ form.can_change_permissions }} |
+ {{ form.can_view_vouchers }} |
{{ form.can_change_vouchers }} |
{{ form.DELETE }} |
@@ -49,6 +51,7 @@
{{ add_form.can_change_orders }} |
{{ add_form.can_change_permissions }} |
{{ add_form.can_change_vouchers }} |
+ {{ add_form.can_view_vouchers }} |
diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py
index 29d51987a..4c4f999b0 100644
--- a/src/pretix/control/views/event.py
+++ b/src/pretix/control/views/event.py
@@ -445,7 +445,7 @@ class EventPermissionForm(I18nModelForm):
model = EventPermission
fields = (
'can_change_settings', 'can_change_items', 'can_change_permissions', 'can_view_orders',
- 'can_change_orders', 'can_change_vouchers'
+ 'can_change_orders', 'can_view_vouchers', 'can_change_vouchers'
)
diff --git a/src/pretix/control/views/vouchers.py b/src/pretix/control/views/vouchers.py
index d8b9e55eb..567e079fd 100644
--- a/src/pretix/control/views/vouchers.py
+++ b/src/pretix/control/views/vouchers.py
@@ -28,7 +28,7 @@ class VoucherList(EventPermissionRequiredMixin, ListView):
context_object_name = 'vouchers'
paginate_by = 30
template_name = 'pretixcontrol/vouchers/index.html'
- permission = 'can_change_vouchers'
+ permission = 'can_view_vouchers'
def get_queryset(self):
qs = self.request.event.vouchers.all().select_related('item', 'variation')
@@ -90,7 +90,7 @@ class VoucherList(EventPermissionRequiredMixin, ListView):
class VoucherTags(EventPermissionRequiredMixin, TemplateView):
template_name = 'pretixcontrol/vouchers/tags.html'
- permission = 'can_change_vouchers'
+ permission = 'can_view_vouchers'
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
diff --git a/src/tests/control/test_permissions.py b/src/tests/control/test_permissions.py
index 523a8a53a..ebcb552c4 100644
--- a/src/tests/control/test_permissions.py
+++ b/src/tests/control/test_permissions.py
@@ -58,6 +58,7 @@ event_urls = [
"vouchers/rng",
"quotas/",
"quotas/2/delete",
+ "quotas/2/change",
"quotas/2/",
"quotas/add",
"orders/ABC/transition",
@@ -138,7 +139,7 @@ event_permission_urls = [
("can_change_items", "questions/2/delete", 404),
("can_change_items", "questions/add", 200),
# ("can_change_items", "quotas/", 200),
- ("can_change_items", "quotas/2/", 404),
+ ("can_change_items", "quotas/2/change", 404),
("can_change_items", "quotas/2/delete", 404),
("can_change_items", "quotas/add", 200),
("can_view_orders", "orders/overview/", 200),
@@ -153,7 +154,8 @@ event_permission_urls = [
("can_change_orders", "orders/FOO/change", 200),
("can_change_vouchers", "vouchers/add", 200),
("can_change_vouchers", "vouchers/bulk_add", 200),
- ("can_change_vouchers", "vouchers/", 200),
+ ("can_view_vouchers", "vouchers/", 200),
+ ("can_view_vouchers", "vouchers/tags/", 200),
("can_change_vouchers", "vouchers/1234/", 404),
("can_change_vouchers", "vouchers/1234/delete", 404),
]