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), ]