From e29f19e96b7de6da68035295a0cddda4b6080536 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 22 Feb 2016 21:53:08 +0100 Subject: [PATCH] Fixed #29 -- "Shop is live" flag --- .../migrations/0009_auto_20160222_2002.py | 26 ++ src/pretix/base/models/event.py | 3 + .../templates/pretixcontrol/event/base.html | 1 + .../templates/pretixcontrol/event/live.html | 49 ++++ src/pretix/control/urls.py | 1 + src/pretix/control/views/event.py | 52 +++- src/pretix/control/views/event_dashboard.py | 18 ++ src/pretix/locale/de/LC_MESSAGES/django.po | 237 ++++++++++++------ .../locale/de_Informal/LC_MESSAGES/django.po | 237 ++++++++++++------ src/pretix/presale/context.py | 2 + src/pretix/presale/middleware.py | 8 +- .../presale/templates/pretixpresale/base.html | 2 + .../templates/pretixpresale/event/base.html | 18 +- src/static/pretixcontrol/less/main.less | 16 ++ src/static/pretixpresale/less/event.less | 12 + 15 files changed, 530 insertions(+), 152 deletions(-) create mode 100644 src/pretix/base/migrations/0009_auto_20160222_2002.py create mode 100644 src/pretix/control/templates/pretixcontrol/event/live.html diff --git a/src/pretix/base/migrations/0009_auto_20160222_2002.py b/src/pretix/base/migrations/0009_auto_20160222_2002.py new file mode 100644 index 0000000000..362b6fd7d0 --- /dev/null +++ b/src/pretix/base/migrations/0009_auto_20160222_2002.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.2 on 2016-02-22 20:02 +from __future__ import unicode_literals + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0008_invoiceaddress'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='live', + field=models.BooleanField(default=False, verbose_name='Shop is live'), + ), + migrations.AlterField( + model_name='invoiceaddress', + name='order', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='invoice_address', to='pretixbase.Order'), + ), + ] diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 01120e88cd..1e7762452e 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -32,6 +32,8 @@ class Event(LoggedModel): :param slug: A short, alphanumeric, all-lowercase name for use in URLs. The slug has to be unique among the events of the same organizer. :type slug: str + :param live: Whether or not the shop is publicly accessible + :type live: bool :param currency: The currency of all prices and payments of this event :type currency: str :param date_from: The datetime this event starts @@ -65,6 +67,7 @@ class Event(LoggedModel): ], verbose_name=_("Slug"), ) + live = models.BooleanField(default=False, verbose_name=_("Shop is live")) permitted = models.ManyToManyField(User, through='EventPermission', related_name="events", ) currency = models.CharField(max_length=10, diff --git a/src/pretix/control/templates/pretixcontrol/event/base.html b/src/pretix/control/templates/pretixcontrol/event/base.html index 2b5cbb71fa..2d7923be6c 100644 --- a/src/pretix/control/templates/pretixcontrol/event/base.html +++ b/src/pretix/control/templates/pretixcontrol/event/base.html @@ -1,5 +1,6 @@ {% extends "pretixcontrol/base.html" %} {% load i18n %} +{% block title %}{{ request.event.name }}{% endblock %} {% block nav %}
  • diff --git a/src/pretix/control/templates/pretixcontrol/event/live.html b/src/pretix/control/templates/pretixcontrol/event/live.html new file mode 100644 index 0000000000..04092088b3 --- /dev/null +++ b/src/pretix/control/templates/pretixcontrol/event/live.html @@ -0,0 +1,49 @@ +{% extends "pretixcontrol/event/base.html" %} +{% load i18n %} +{% load bootstrap3 %} +{% block content %} +

    {% trans "Shop status" %}

    + {% if request.event.live %} +

    + {% trans "Your shop is currently live. If you take it down, it will only be visible to you and your team." %} +

    +
    + {% csrf_token %} + + +
    + +
    +
    + {% else %} +

    + {% trans "Your ticket shop is currently not live. It is thus only visible to you and your team, not to any visitors." %} +

    + {% if issues|length > 0 %} +

    + {% trans "To publish your ticket shop, you first need to resolve the following issues:" %} +

    + + {% else %} +

    + {% trans "If you want to, you can publish your ticket shop now." %} +

    +
    + {% csrf_token %} + + +
    + +
    +
    + {% endif %} + {% endif %} +{% endblock %} diff --git a/src/pretix/control/urls.py b/src/pretix/control/urls.py index 40c3e61809..a9eb11ea2b 100644 --- a/src/pretix/control/urls.py +++ b/src/pretix/control/urls.py @@ -21,6 +21,7 @@ urlpatterns = [ url(r'^event/(?P[^/]+)/add', main.EventCreate.as_view(), name='events.create'), url(r'^event/(?P[^/]+)/(?P[^/]+)/', include([ url(r'^$', event_dashboard.index, name='event.index'), + url(r'^live/$', event.EventLive.as_view(), name='event.live'), url(r'^settings/$', event.EventUpdate.as_view(), name='event.settings'), url(r'^settings/plugins$', event.EventPlugins.as_view(), name='event.settings.plugins'), url(r'^settings/permissions$', event.EventPermissions.as_view(), name='event.settings.permissions'), diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index caa124f03b..fbb25845dd 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -13,7 +13,9 @@ from django.views.generic.base import TemplateView from django.views.generic.detail import SingleObjectMixin from pretix.base.forms import I18nModelForm -from pretix.base.models import Event, EventPermission, User +from pretix.base.models import ( + Event, EventPermission, Item, ItemVariation, User, +) from pretix.base.signals import ( register_payment_providers, register_ticket_outputs, ) @@ -423,3 +425,51 @@ class EventPermissions(EventPermissionRequiredMixin, TemplateView): 'organizer': self.request.event.organizer.slug, 'event': self.request.event.slug }) + + +class EventLive(EventPermissionRequiredMixin, TemplateView): + permission = 'can_change_settings' + template_name = 'pretixcontrol/event/live.html' + + def get_context_data(self, **kwargs): + ctx = super().get_context_data(**kwargs) + ctx['issues'] = self.issues + return ctx + + @cached_property + def issues(self): + issues = [] + has_paid_things = ( + Item.objects.filter(event=self.request.event, default_price__gt=0).exists() + or ItemVariation.objects.filter(item__event=self.request.event, default_price__gt=0).exists() + ) + + has_payment_provider = False + responses = register_payment_providers.send(self.request.event) + for receiver, response in responses: + provider = response(self.request.event) + if provider.is_enabled: + has_payment_provider = True + break + + if has_paid_things and not has_payment_provider: + issues.append(_('You have configured at least one paid product but have not enabled any payment methods.')) + + return issues + + def post(self, request, *args, **kwargs): + if request.POST.get("live") == "true" and not self.issues: + request.event.live = True + request.event.save() + messages.success(self.request, _('Your shop is live now!')) + elif request.POST.get("live") == "false": + request.event.live = False + request.event.save() + messages.success(self.request, _('We\'ve taken your shop down. You can re-enable it whenever you want!')) + return redirect(self.get_success_url()) + + def get_success_url(self) -> str: + return reverse('control:event.live', kwargs={ + 'organizer': self.request.event.organizer.slug, + 'event': self.request.event.slug + }) diff --git a/src/pretix/control/views/event_dashboard.py b/src/pretix/control/views/event_dashboard.py index 172a3e8b9b..0f7749cc61 100644 --- a/src/pretix/control/views/event_dashboard.py +++ b/src/pretix/control/views/event_dashboard.py @@ -88,6 +88,24 @@ def quota_widgets(sender, **kwargs): return widgets +@receiver(signal=event_dashboard_widgets) +def shop_state_widget(sender, **kwargs): + return [{ + 'width': 3, + 'priority': 1000, + 'content': '
    {t1}
    {state}{t2}
    '.format( + t1=_('Your ticket shop is'), t2=_('Click here to change'), + state=_('live') if sender.live else _('not yet public'), + icon='fa-check-circle' if sender.live else 'fa-times-circle', + cls='live' if sender.live else 'off' + ), + 'url': reverse('control:event.live', kwargs={ + 'event': sender.slug, + 'organizer': sender.organizer.slug + }) + }] + + def index(request, organizer, event): widgets = [] for r, result in event_dashboard_widgets.send(sender=request.event): diff --git a/src/pretix/locale/de/LC_MESSAGES/django.po b/src/pretix/locale/de/LC_MESSAGES/django.po index 25664920aa..fd09cec52b 100644 --- a/src/pretix/locale/de/LC_MESSAGES/django.po +++ b/src/pretix/locale/de/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-22 15:29+0000\n" -"PO-Revision-Date: 2016-02-22 16:30+0100\n" +"POT-Creation-Date: 2016-02-22 20:48+0000\n" +"PO-Revision-Date: 2016-02-22 21:52+0100\n" "Last-Translator: Raphael Michel \n" "Language-Team: Raphael Michel \n" "Language: de\n" @@ -135,7 +135,7 @@ msgstr "Zeitzone" #: pretix/control/templates/pretixcontrol/event/permissions.html:15 #: pretix/control/templates/pretixcontrol/order/index.html:69 #: pretix/control/templates/pretixcontrol/orders/index.html:43 -#: pretix/control/views/event.py:344 +#: pretix/control/views/event.py:346 tests/base/test_mail.py:68 msgid "User" msgstr "Benutzer" @@ -148,7 +148,7 @@ msgstr "Benutzer" msgid "%(family)s, %(given)s" msgstr "%(family)s, %(given)s" -#: pretix/base/models/event.py:53 pretix/base/models/items.py:417 +#: pretix/base/models/event.py:55 pretix/base/models/items.py:417 #: pretix/base/models/orders.py:471 pretix/base/models/organizer.py:25 #: pretix/control/templates/pretixcontrol/order/index.html:190 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:77 @@ -157,7 +157,7 @@ msgstr "%(family)s, %(given)s" msgid "Name" msgstr "Name" -#: pretix/base/models/event.py:58 pretix/base/models/organizer.py:29 +#: pretix/base/models/event.py:60 pretix/base/models/organizer.py:29 msgid "" "Should be short, only contain lowercase letters and numbers, and must be " "unique among your events. This is being used in addresses and bank transfer " @@ -167,32 +167,36 @@ msgstr "" "unter Ihren Veranstaltungen einmalig sein. Wird in URLs und " "Verwendungszwecken für Banküberweisungen benutzt." -#: pretix/base/models/event.py:63 pretix/base/models/organizer.py:34 +#: pretix/base/models/event.py:65 pretix/base/models/organizer.py:34 msgid "The slug may only contain letters, numbers, dots and dashes." msgstr "" "Der Kurzname darf nur Buchstaben, Zahlen, Punkte und Bindestriche enthalten" -#: pretix/base/models/event.py:66 pretix/base/models/organizer.py:37 +#: pretix/base/models/event.py:68 pretix/base/models/organizer.py:37 msgid "Slug" msgstr "Kurzform" -#: pretix/base/models/event.py:71 +#: pretix/base/models/event.py:70 +msgid "Shop is live" +msgstr "Shop ist live" + +#: pretix/base/models/event.py:74 msgid "Default currency" msgstr "Standardwährung" -#: pretix/base/models/event.py:73 +#: pretix/base/models/event.py:76 msgid "Event start time" msgstr "Veranstaltungsbeginn" -#: pretix/base/models/event.py:75 +#: pretix/base/models/event.py:78 msgid "Event end time" msgstr "Veranstaltungsende" -#: pretix/base/models/event.py:77 +#: pretix/base/models/event.py:80 msgid "Visible in public lists" msgstr "Öffentlich sichtbar" -#: pretix/base/models/event.py:78 +#: pretix/base/models/event.py:81 msgid "" "If selected, this event may show up on the ticket system's start page or an " "organization profile." @@ -201,81 +205,81 @@ msgstr "" "dieses Vorverkaufssystem oder auf der Profilseite eines Veranstalters " "aufgelistet werden." -#: pretix/base/models/event.py:82 +#: pretix/base/models/event.py:85 msgid "End of presale" msgstr "Ende des Vorverkaufs" -#: pretix/base/models/event.py:83 +#: pretix/base/models/event.py:86 msgid "No products will be sold after this date." msgstr "Es werden nach diesem Termin keine Produkte mehr verkauft." -#: pretix/base/models/event.py:87 +#: pretix/base/models/event.py:90 msgid "Start of presale" msgstr "Beginn des Vorverkaufs" -#: pretix/base/models/event.py:88 +#: pretix/base/models/event.py:91 msgid "No products will be sold before this date." msgstr "Es werden vor diesem Termin keine Produkte verkauft." -#: pretix/base/models/event.py:92 -#: pretix/control/templates/pretixcontrol/event/base.html:36 +#: pretix/base/models/event.py:95 +#: pretix/control/templates/pretixcontrol/event/base.html:37 msgid "Plugins" msgstr "Erweiterungen" -#: pretix/base/models/event.py:96 pretix/base/models/items.py:109 +#: pretix/base/models/event.py:99 pretix/base/models/items.py:109 #: pretix/base/models/items.py:413 pretix/base/models/orders.py:90 #: pretix/base/models/orders.py:433 pretix/base/models/vouchers.py:25 msgid "Event" msgstr "Veranstaltung" -#: pretix/base/models/event.py:97 -#: pretix/control/templates/pretixcontrol/base.html:99 +#: pretix/base/models/event.py:100 +#: pretix/control/templates/pretixcontrol/base.html:98 #: pretix/control/templates/pretixcontrol/events/index.html:3 #: pretix/control/templates/pretixcontrol/events/index.html:5 msgid "Events" msgstr "Veranstaltungen" -#: pretix/base/models/event.py:110 +#: pretix/base/models/event.py:113 msgid "The end of the presale period has to be later than it's start." msgstr "Das Ende des Vorverkaufs muss nach seinem Beginn liegen." -#: pretix/base/models/event.py:112 +#: pretix/base/models/event.py:115 msgid "The end of the event has to be later than it's start." msgstr "Das Ende der Veranstaltung muss nach ihrem Beginn liegen." -#: pretix/base/models/event.py:222 +#: pretix/base/models/event.py:225 msgid "Can change event settings" msgstr "Kann Veranstaltungseinstellungen ändern" -#: pretix/base/models/event.py:226 +#: pretix/base/models/event.py:229 msgid "Can change product settings" msgstr "Kann Produkte ändern" -#: pretix/base/models/event.py:230 +#: pretix/base/models/event.py:233 msgid "Can view orders" msgstr "Kann Bestellungen einsehen" -#: pretix/base/models/event.py:234 +#: pretix/base/models/event.py:237 msgid "Can change permissions" msgstr "Kann Berechtigungen verändern" -#: pretix/base/models/event.py:238 +#: pretix/base/models/event.py:241 msgid "Can change orders" msgstr "Kann Bestellungen verändern" -#: pretix/base/models/event.py:242 +#: pretix/base/models/event.py:245 msgid "Can change vouchers" msgstr "Kann Gutscheine verändern" -#: pretix/base/models/event.py:246 +#: pretix/base/models/event.py:249 msgid "Event permission" msgstr "Veranstaltungs-Berechtigung" -#: pretix/base/models/event.py:247 +#: pretix/base/models/event.py:250 msgid "Event permissions" msgstr "Veranstaltungs-Berechtigungen" -#: pretix/base/models/event.py:250 pretix/base/models/organizer.py:100 +#: pretix/base/models/event.py:253 pretix/base/models/organizer.py:100 #, python-format msgid "%(name)s on %(object)s" msgstr "%(name)s für %(object)s" @@ -365,8 +369,8 @@ msgid "Product" msgstr "Produkt" #: pretix/base/models/items.py:169 pretix/base/models/items.py:335 -#: pretix/control/templates/pretixcontrol/event/base.html:67 -#: pretix/control/templates/pretixcontrol/event/base.html:74 +#: pretix/control/templates/pretixcontrol/event/base.html:68 +#: pretix/control/templates/pretixcontrol/event/base.html:75 #: pretix/control/templates/pretixcontrol/items/base.html:3 #: pretix/control/templates/pretixcontrol/items/index.html:3 #: pretix/control/templates/pretixcontrol/items/index.html:5 @@ -426,7 +430,7 @@ msgid "This question will be asked to buyers of the selected products" msgstr "Diese Frage wird allen Käufern der ausgewählten Produkte gestellt" #: pretix/base/models/items.py:342 -#: pretix/control/templates/pretixcontrol/event/base.html:91 +#: pretix/control/templates/pretixcontrol/event/base.html:92 #: pretix/control/templates/pretixcontrol/items/questions.html:3 #: pretix/control/templates/pretixcontrol/items/questions.html:5 msgid "Questions" @@ -457,7 +461,7 @@ msgid "Quota" msgstr "Kontingent" #: pretix/base/models/items.py:439 -#: pretix/control/templates/pretixcontrol/event/base.html:79 +#: pretix/control/templates/pretixcontrol/event/base.html:80 #: pretix/control/templates/pretixcontrol/items/quotas.html:3 #: pretix/control/templates/pretixcontrol/items/quotas.html:5 msgid "Quotas" @@ -548,7 +552,7 @@ msgid "Order" msgstr "Bestellung" #: pretix/base/models/orders.py:136 -#: pretix/control/templates/pretixcontrol/event/base.html:101 +#: pretix/control/templates/pretixcontrol/event/base.html:102 #: pretix/control/templates/pretixcontrol/orders/index.html:3 #: pretix/control/templates/pretixcontrol/orders/index.html:5 msgid "Orders" @@ -654,7 +658,7 @@ msgid "Organizer" msgstr "Veranstalter" #: pretix/base/models/organizer.py:44 -#: pretix/control/templates/pretixcontrol/base.html:105 +#: pretix/control/templates/pretixcontrol/base.html:104 #: pretix/control/templates/pretixcontrol/organizers/index.html:3 #: pretix/control/templates/pretixcontrol/organizers/index.html:5 msgid "Organizers" @@ -734,7 +738,7 @@ msgid "Voucher" msgstr "Gutschein" #: pretix/base/models/vouchers.py:69 -#: pretix/control/templates/pretixcontrol/event/base.html:131 +#: pretix/control/templates/pretixcontrol/event/base.html:132 #: pretix/control/templates/pretixcontrol/vouchers/index.html:3 #: pretix/control/templates/pretixcontrol/vouchers/index.html:5 msgid "Vouchers" @@ -1052,7 +1056,7 @@ msgid "We are preparing your file for download…" msgstr "Wir bereiten Ihre Datei zum Download vor…" #: pretix/base/templates/pretixbase/cachedfiles/pending.html:21 -#: pretix/presale/templates/pretixpresale/base.html:43 +#: pretix/presale/templates/pretixpresale/base.html:45 #: pretix/presale/templates/pretixpresale/waiting.html:24 msgid "If this takes longer than a few minutes, please contact us." msgstr "" @@ -1437,8 +1441,8 @@ msgid "You do not have permission to view this content." msgstr "Sie haben keine Berechtigung, diese Inhalte aufzurufen." #: pretix/control/templates/pretixcontrol/auth/base.html:29 -#: pretix/control/templates/pretixcontrol/base.html:127 -#: pretix/presale/templates/pretixpresale/base.html:31 +#: pretix/control/templates/pretixcontrol/base.html:126 +#: pretix/presale/templates/pretixpresale/base.html:33 #, python-format msgid "powered by pretix" msgstr "powered by pretix" @@ -1497,24 +1501,24 @@ msgstr "Neuen Benutzer erstellen" msgid "Login" msgstr "Login" -#: pretix/control/templates/pretixcontrol/base.html:31 +#: pretix/control/templates/pretixcontrol/base.html:30 msgid "Toggle navigation" msgstr "Navigation umschalten" -#: pretix/control/templates/pretixcontrol/base.html:50 -#: pretix/control/templates/pretixcontrol/base.html:77 +#: pretix/control/templates/pretixcontrol/base.html:49 +#: pretix/control/templates/pretixcontrol/base.html:76 msgid "Event overview" msgstr "Überblick" -#: pretix/control/templates/pretixcontrol/base.html:68 -#: pretix/control/templates/pretixcontrol/base.html:70 +#: pretix/control/templates/pretixcontrol/base.html:67 +#: pretix/control/templates/pretixcontrol/base.html:69 msgid "Log out" msgstr "Abmelden" -#: pretix/control/templates/pretixcontrol/base.html:93 +#: pretix/control/templates/pretixcontrol/base.html:92 #: pretix/control/templates/pretixcontrol/dashboard.html:3 #: pretix/control/templates/pretixcontrol/dashboard.html:5 -#: pretix/control/templates/pretixcontrol/event/base.html:9 +#: pretix/control/templates/pretixcontrol/event/base.html:10 msgid "Dashboard" msgstr "Übersicht" @@ -1541,52 +1545,91 @@ msgstr "" "Viele Grüße,\n" "Ihr pretix Team\n" -#: pretix/control/templates/pretixcontrol/event/base.html:16 +#: pretix/control/templates/pretixcontrol/event/base.html:17 #: pretix/control/templates/pretixcontrol/event/settings_base.html:6 msgid "Settings" msgstr "Einstellungen" -#: pretix/control/templates/pretixcontrol/event/base.html:24 +#: pretix/control/templates/pretixcontrol/event/base.html:25 msgid "General" msgstr "Allgemeines" -#: pretix/control/templates/pretixcontrol/event/base.html:30 +#: pretix/control/templates/pretixcontrol/event/base.html:31 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:51 #: pretix/presale/templates/pretixpresale/event/order.html:31 #: pretix/presale/templates/pretixpresale/event/order.html:148 msgid "Payment" msgstr "Zahlung" -#: pretix/control/templates/pretixcontrol/event/base.html:42 +#: pretix/control/templates/pretixcontrol/event/base.html:43 msgid "Tickets" msgstr "Tickets" -#: pretix/control/templates/pretixcontrol/event/base.html:48 +#: pretix/control/templates/pretixcontrol/event/base.html:49 msgid "Email" msgstr "E-Mail" -#: pretix/control/templates/pretixcontrol/event/base.html:56 +#: pretix/control/templates/pretixcontrol/event/base.html:57 #: pretix/control/templates/pretixcontrol/event/permissions.html:8 msgid "Permissions" msgstr "Berechtigungen" -#: pretix/control/templates/pretixcontrol/event/base.html:85 +#: pretix/control/templates/pretixcontrol/event/base.html:86 msgid "Categories" msgstr "Kategorien" -#: pretix/control/templates/pretixcontrol/event/base.html:108 +#: pretix/control/templates/pretixcontrol/event/base.html:109 #: pretix/control/templates/pretixcontrol/orders/index.html:18 msgid "All orders" msgstr "Alle Bestellungen" -#: pretix/control/templates/pretixcontrol/event/base.html:114 +#: pretix/control/templates/pretixcontrol/event/base.html:115 msgid "Overview" msgstr "Überblick" -#: pretix/control/templates/pretixcontrol/event/base.html:120 +#: pretix/control/templates/pretixcontrol/event/base.html:121 msgid "Export" msgstr "Export" +#: pretix/control/templates/pretixcontrol/event/live.html:5 +msgid "Shop status" +msgstr "Shop-Status" + +#: pretix/control/templates/pretixcontrol/event/live.html:8 +msgid "" +"Your shop is currently live. If you take it down, it will only be visible to " +"you and your team." +msgstr "" +"Dein Shop ist aktuell öffentlich verfügbar. Wenn du ihn ausschaltest, ist er " +"nur für dich und dein Team sichtbar." + +#: pretix/control/templates/pretixcontrol/event/live.html:16 +msgid "Go offline" +msgstr "Shop ausschalten" + +#: pretix/control/templates/pretixcontrol/event/live.html:22 +msgid "" +"Your ticket shop is currently not live. It is thus only visible to you and " +"your team, not to any visitors." +msgstr "" +"Dein Ticket-Shop ist zur Zeit offline und daher nur für dich und dein Team " +"verfügbar und nicht für Besucher." + +#: pretix/control/templates/pretixcontrol/event/live.html:26 +msgid "" +"To publish your ticket shop, you first need to resolve the following issues:" +msgstr "" +"Um deinen Ticket-Shop zu veröffentlichen, musst du zuerst die folgenden " +"Probleme beheben:" + +#: pretix/control/templates/pretixcontrol/event/live.html:35 +msgid "If you want to, you can publish your ticket shop now." +msgstr "Du kannst deinen Ticket-Shop jederzeit veröffentlichen." + +#: pretix/control/templates/pretixcontrol/event/live.html:43 +msgid "Go live" +msgstr "Shop veröffentlichen" + #: pretix/control/templates/pretixcontrol/event/mail.html:9 msgid "E-mail settings" msgstr "E-Mail-Einstellungen" @@ -1649,9 +1692,9 @@ msgid "Installed plugins" msgstr "Installierte Erweiterungen" #: pretix/control/templates/pretixcontrol/event/plugins.html:11 -#: pretix/control/views/event.py:66 pretix/control/views/event.py:123 -#: pretix/control/views/event.py:192 pretix/control/views/event.py:249 -#: pretix/control/views/event.py:305 pretix/control/views/event.py:415 +#: pretix/control/views/event.py:68 pretix/control/views/event.py:125 +#: pretix/control/views/event.py:194 pretix/control/views/event.py:251 +#: pretix/control/views/event.py:307 pretix/control/views/event.py:417 #: pretix/control/views/item.py:137 pretix/control/views/item.py:296 #: pretix/control/views/item.py:425 pretix/control/views/item.py:506 #: pretix/control/views/item.py:535 pretix/control/views/item.py:596 @@ -2323,12 +2366,12 @@ msgstr "" msgid "You can now login using your new password." msgstr "Sie können sich nun mit Ihrem neuen Passwort anmelden." -#: pretix/control/views/event.py:242 +#: pretix/control/views/event.py:244 #, python-format msgid "An error occured while contacting the SMTP server: %s" msgstr "Ein Fehler trat auf beim Versuch, den SMTP-Server zu erreichen: %s" -#: pretix/control/views/event.py:244 +#: pretix/control/views/event.py:246 msgid "" "Your changes have been saved and the connection attempt to your SMTP server " "was successful." @@ -2336,23 +2379,41 @@ msgstr "" "Ihre Änderungen wurden gespeichert und die Verbindung zum SMTP-Server war " "erfolgreich." -#: pretix/control/views/event.py:385 +#: pretix/control/views/event.py:387 msgid "There is no user with the email address you entered." msgstr "" "Es existiert kein Benutzer mit der E-Mail-Adresse, die Sie eingegeben haben." -#: pretix/control/views/event.py:390 +#: pretix/control/views/event.py:392 msgid "This user already has permissions for this event." msgstr "Dieser Benutzer hat bereits Zugriff auf diese Veranstaltung." -#: pretix/control/views/event.py:411 +#: pretix/control/views/event.py:413 msgid "You cannot remove your own permission to view this page." msgstr "Sie können Ihre eigene Berechtigung nicht entfernen." -#: pretix/control/views/event.py:418 +#: pretix/control/views/event.py:420 msgid "Your changes could not be saved." msgstr "Die Änderungen konnten nicht gespeichert werden." +#: pretix/control/views/event.py:456 +msgid "" +"You have configured at least one paid product but have not enabled any " +"payment methods." +msgstr "" +"Du hast mindestens ein kostenpflichtiges Produkt konfiguriert aber noch " +"keine Zahlungsmethoden aktiviert." + +#: pretix/control/views/event.py:464 +msgid "Your shop is live now!" +msgstr "Dein Shop ist nun online!" + +#: pretix/control/views/event.py:468 +msgid "We've taken your shop down. You can re-enable it whenever you want!" +msgstr "" +"Wir haben deinen Shop ausgeschaltet. Du kannst ihn hier jederzeit wieder " +"einschalten." + #: pretix/control/views/event_dashboard.py:38 msgid "Attendees (ordered)" msgstr "Teilnehmer (bestellt)" @@ -2375,6 +2436,22 @@ msgstr "Aktive Produkte" msgid "{quota} left" msgstr "{quota} übrig" +#: pretix/control/views/event_dashboard.py:97 +msgid "Your ticket shop is" +msgstr "Dein Ticket-Shop ist" + +#: pretix/control/views/event_dashboard.py:97 +msgid "Click here to change" +msgstr "Hier klicken zum Ändern" + +#: pretix/control/views/event_dashboard.py:98 +msgid "live" +msgstr "online" + +#: pretix/control/views/event_dashboard.py:98 +msgid "not yet public" +msgstr "deaktiviert" + #: pretix/control/views/item.py:53 pretix/control/views/item.py:635 msgid "The requested product does not exist." msgstr "Das ausgewählte Produkt existiert nicht." @@ -3382,27 +3459,39 @@ msgstr "Straße und Hausnummer" msgid "You need to provide either a company name or your name." msgstr "Sie müssen entweder einen Firmennamen oder Ihren Namen eingeben." -#: pretix/presale/middleware.py:25 +#: pretix/presale/middleware.py:26 msgid "The selected event was not found." msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden." -#: pretix/presale/middleware.py:58 +#: pretix/presale/middleware.py:61 +msgid "The selected ticket shop is currently not available." +msgstr "Der ausgewählte Ticket-Shop ist im Moment nicht verfügbar." + +#: pretix/presale/middleware.py:64 msgid "The selected event or organizer was not found." msgstr "" "Die ausgewählte Veranstaltung oder der gesuchte Veranstalter wurde nicht " "gefunden." -#: pretix/presale/templates/pretixpresale/base.html:37 -#: pretix/presale/templates/pretixpresale/base.html:41 +#: pretix/presale/templates/pretixpresale/base.html:39 +#: pretix/presale/templates/pretixpresale/base.html:43 #: pretix/presale/templates/pretixpresale/waiting.html:21 msgid "We are processing your request…" msgstr "Wir verarbeiten Ihre Anfrage…" -#: pretix/presale/templates/pretixpresale/event/base.html:41 +#: pretix/presale/templates/pretixpresale/event/base.html:13 +msgid "This shop is currently only visible to you and your team." +msgstr "Dieser Shop ist aktuell nur für dich und dein Team sichtbar." + +#: pretix/presale/templates/pretixpresale/event/base.html:15 +msgid "Take it live now" +msgstr "Jetzt veröffentlichen" + +#: pretix/presale/templates/pretixpresale/event/base.html:55 msgid "Contact event organizer" msgstr "Veranstalter kontaktieren" -#: pretix/presale/templates/pretixpresale/event/base.html:44 +#: pretix/presale/templates/pretixpresale/event/base.html:58 msgid "Imprint" msgstr "Impressum" diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po index b935b29936..6655b7c725 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-22 15:29+0000\n" -"PO-Revision-Date: 2016-02-22 16:30+0100\n" +"POT-Creation-Date: 2016-02-22 20:48+0000\n" +"PO-Revision-Date: 2016-02-22 21:51+0100\n" "Last-Translator: Raphael Michel \n" "Language-Team: Raphael Michel \n" "Language: de\n" @@ -135,7 +135,7 @@ msgstr "Zeitzone" #: pretix/control/templates/pretixcontrol/event/permissions.html:15 #: pretix/control/templates/pretixcontrol/order/index.html:69 #: pretix/control/templates/pretixcontrol/orders/index.html:43 -#: pretix/control/views/event.py:344 +#: pretix/control/views/event.py:346 tests/base/test_mail.py:68 msgid "User" msgstr "Benutzer" @@ -148,7 +148,7 @@ msgstr "Benutzer" msgid "%(family)s, %(given)s" msgstr "%(family)s, %(given)s" -#: pretix/base/models/event.py:53 pretix/base/models/items.py:417 +#: pretix/base/models/event.py:55 pretix/base/models/items.py:417 #: pretix/base/models/orders.py:471 pretix/base/models/organizer.py:25 #: pretix/control/templates/pretixcontrol/order/index.html:190 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:77 @@ -157,7 +157,7 @@ msgstr "%(family)s, %(given)s" msgid "Name" msgstr "Name" -#: pretix/base/models/event.py:58 pretix/base/models/organizer.py:29 +#: pretix/base/models/event.py:60 pretix/base/models/organizer.py:29 msgid "" "Should be short, only contain lowercase letters and numbers, and must be " "unique among your events. This is being used in addresses and bank transfer " @@ -167,32 +167,36 @@ msgstr "" "unter deinen Veranstaltungen einmalig sein. Wird in URLs und " "Verwendungszwecken für Banküberweisungen benutzt." -#: pretix/base/models/event.py:63 pretix/base/models/organizer.py:34 +#: pretix/base/models/event.py:65 pretix/base/models/organizer.py:34 msgid "The slug may only contain letters, numbers, dots and dashes." msgstr "" "Der Kurzname darf nur Buchstaben, Zahlen, Punkte und Bindestriche enthalten" -#: pretix/base/models/event.py:66 pretix/base/models/organizer.py:37 +#: pretix/base/models/event.py:68 pretix/base/models/organizer.py:37 msgid "Slug" msgstr "Kurzform" -#: pretix/base/models/event.py:71 +#: pretix/base/models/event.py:70 +msgid "Shop is live" +msgstr "Shop ist live" + +#: pretix/base/models/event.py:74 msgid "Default currency" msgstr "Standardwährung" -#: pretix/base/models/event.py:73 +#: pretix/base/models/event.py:76 msgid "Event start time" msgstr "Veranstaltungsbeginn" -#: pretix/base/models/event.py:75 +#: pretix/base/models/event.py:78 msgid "Event end time" msgstr "Veranstaltungsende" -#: pretix/base/models/event.py:77 +#: pretix/base/models/event.py:80 msgid "Visible in public lists" msgstr "Öffentlich sichtbar" -#: pretix/base/models/event.py:78 +#: pretix/base/models/event.py:81 msgid "" "If selected, this event may show up on the ticket system's start page or an " "organization profile." @@ -201,81 +205,81 @@ msgstr "" "dieses Vorverkaufssystem oder auf der Profilseite eines Veranstalters " "aufgelistet werden." -#: pretix/base/models/event.py:82 +#: pretix/base/models/event.py:85 msgid "End of presale" msgstr "Ende des Vorverkaufs" -#: pretix/base/models/event.py:83 +#: pretix/base/models/event.py:86 msgid "No products will be sold after this date." msgstr "Es werden nach diesem Termin keine Produkte mehr verkauft." -#: pretix/base/models/event.py:87 +#: pretix/base/models/event.py:90 msgid "Start of presale" msgstr "Beginn des Vorverkaufs" -#: pretix/base/models/event.py:88 +#: pretix/base/models/event.py:91 msgid "No products will be sold before this date." msgstr "Es werden vor diesem Termin keine Produkte verkauft." -#: pretix/base/models/event.py:92 -#: pretix/control/templates/pretixcontrol/event/base.html:36 +#: pretix/base/models/event.py:95 +#: pretix/control/templates/pretixcontrol/event/base.html:37 msgid "Plugins" msgstr "Erweiterungen" -#: pretix/base/models/event.py:96 pretix/base/models/items.py:109 +#: pretix/base/models/event.py:99 pretix/base/models/items.py:109 #: pretix/base/models/items.py:413 pretix/base/models/orders.py:90 #: pretix/base/models/orders.py:433 pretix/base/models/vouchers.py:25 msgid "Event" msgstr "Veranstaltung" -#: pretix/base/models/event.py:97 -#: pretix/control/templates/pretixcontrol/base.html:99 +#: pretix/base/models/event.py:100 +#: pretix/control/templates/pretixcontrol/base.html:98 #: pretix/control/templates/pretixcontrol/events/index.html:3 #: pretix/control/templates/pretixcontrol/events/index.html:5 msgid "Events" msgstr "Veranstaltungen" -#: pretix/base/models/event.py:110 +#: pretix/base/models/event.py:113 msgid "The end of the presale period has to be later than it's start." msgstr "Das Ende des Vorverkaufs muss nach seinem Beginn liegen." -#: pretix/base/models/event.py:112 +#: pretix/base/models/event.py:115 msgid "The end of the event has to be later than it's start." msgstr "Das Ende der Veranstaltung muss nach ihrem Beginn liegen." -#: pretix/base/models/event.py:222 +#: pretix/base/models/event.py:225 msgid "Can change event settings" msgstr "Kann Veranstaltungseinstellungen ändern" -#: pretix/base/models/event.py:226 +#: pretix/base/models/event.py:229 msgid "Can change product settings" msgstr "Kann Produkte ändern" -#: pretix/base/models/event.py:230 +#: pretix/base/models/event.py:233 msgid "Can view orders" msgstr "Kann Bestellungen einsehen" -#: pretix/base/models/event.py:234 +#: pretix/base/models/event.py:237 msgid "Can change permissions" msgstr "Kann Berechtigungen verändern" -#: pretix/base/models/event.py:238 +#: pretix/base/models/event.py:241 msgid "Can change orders" msgstr "Kann Bestellungen verändern" -#: pretix/base/models/event.py:242 +#: pretix/base/models/event.py:245 msgid "Can change vouchers" msgstr "Kann Gutscheine verändern" -#: pretix/base/models/event.py:246 +#: pretix/base/models/event.py:249 msgid "Event permission" msgstr "Veranstaltungs-Berechtigung" -#: pretix/base/models/event.py:247 +#: pretix/base/models/event.py:250 msgid "Event permissions" msgstr "Veranstaltungs-Berechtigungen" -#: pretix/base/models/event.py:250 pretix/base/models/organizer.py:100 +#: pretix/base/models/event.py:253 pretix/base/models/organizer.py:100 #, python-format msgid "%(name)s on %(object)s" msgstr "%(name)s für %(object)s" @@ -365,8 +369,8 @@ msgid "Product" msgstr "Produkt" #: pretix/base/models/items.py:169 pretix/base/models/items.py:335 -#: pretix/control/templates/pretixcontrol/event/base.html:67 -#: pretix/control/templates/pretixcontrol/event/base.html:74 +#: pretix/control/templates/pretixcontrol/event/base.html:68 +#: pretix/control/templates/pretixcontrol/event/base.html:75 #: pretix/control/templates/pretixcontrol/items/base.html:3 #: pretix/control/templates/pretixcontrol/items/index.html:3 #: pretix/control/templates/pretixcontrol/items/index.html:5 @@ -426,7 +430,7 @@ msgid "This question will be asked to buyers of the selected products" msgstr "Diese Frage wird allen Käufern der ausgewählten Produkte gestellt" #: pretix/base/models/items.py:342 -#: pretix/control/templates/pretixcontrol/event/base.html:91 +#: pretix/control/templates/pretixcontrol/event/base.html:92 #: pretix/control/templates/pretixcontrol/items/questions.html:3 #: pretix/control/templates/pretixcontrol/items/questions.html:5 msgid "Questions" @@ -457,7 +461,7 @@ msgid "Quota" msgstr "Kontingent" #: pretix/base/models/items.py:439 -#: pretix/control/templates/pretixcontrol/event/base.html:79 +#: pretix/control/templates/pretixcontrol/event/base.html:80 #: pretix/control/templates/pretixcontrol/items/quotas.html:3 #: pretix/control/templates/pretixcontrol/items/quotas.html:5 msgid "Quotas" @@ -548,7 +552,7 @@ msgid "Order" msgstr "Bestellung" #: pretix/base/models/orders.py:136 -#: pretix/control/templates/pretixcontrol/event/base.html:101 +#: pretix/control/templates/pretixcontrol/event/base.html:102 #: pretix/control/templates/pretixcontrol/orders/index.html:3 #: pretix/control/templates/pretixcontrol/orders/index.html:5 msgid "Orders" @@ -654,7 +658,7 @@ msgid "Organizer" msgstr "Veranstalter" #: pretix/base/models/organizer.py:44 -#: pretix/control/templates/pretixcontrol/base.html:105 +#: pretix/control/templates/pretixcontrol/base.html:104 #: pretix/control/templates/pretixcontrol/organizers/index.html:3 #: pretix/control/templates/pretixcontrol/organizers/index.html:5 msgid "Organizers" @@ -734,7 +738,7 @@ msgid "Voucher" msgstr "Gutschein" #: pretix/base/models/vouchers.py:69 -#: pretix/control/templates/pretixcontrol/event/base.html:131 +#: pretix/control/templates/pretixcontrol/event/base.html:132 #: pretix/control/templates/pretixcontrol/vouchers/index.html:3 #: pretix/control/templates/pretixcontrol/vouchers/index.html:5 msgid "Vouchers" @@ -1050,7 +1054,7 @@ msgid "We are preparing your file for download…" msgstr "Wir bereiten deine Datei zum Download vor…" #: pretix/base/templates/pretixbase/cachedfiles/pending.html:21 -#: pretix/presale/templates/pretixpresale/base.html:43 +#: pretix/presale/templates/pretixpresale/base.html:45 #: pretix/presale/templates/pretixpresale/waiting.html:24 msgid "If this takes longer than a few minutes, please contact us." msgstr "Wenn dies länger als ein paar Minuten dauert, kontaktiere uns bitte." @@ -1431,8 +1435,8 @@ msgid "You do not have permission to view this content." msgstr "Du has keine Berechtigung, diese Inhalte aufzurufen." #: pretix/control/templates/pretixcontrol/auth/base.html:29 -#: pretix/control/templates/pretixcontrol/base.html:127 -#: pretix/presale/templates/pretixpresale/base.html:31 +#: pretix/control/templates/pretixcontrol/base.html:126 +#: pretix/presale/templates/pretixpresale/base.html:33 #, python-format msgid "powered by pretix" msgstr "powered by pretix" @@ -1491,24 +1495,24 @@ msgstr "Neuen Benutzer erstellen" msgid "Login" msgstr "Login" -#: pretix/control/templates/pretixcontrol/base.html:31 +#: pretix/control/templates/pretixcontrol/base.html:30 msgid "Toggle navigation" msgstr "Navigation umschalten" -#: pretix/control/templates/pretixcontrol/base.html:50 -#: pretix/control/templates/pretixcontrol/base.html:77 +#: pretix/control/templates/pretixcontrol/base.html:49 +#: pretix/control/templates/pretixcontrol/base.html:76 msgid "Event overview" msgstr "Überblick" -#: pretix/control/templates/pretixcontrol/base.html:68 -#: pretix/control/templates/pretixcontrol/base.html:70 +#: pretix/control/templates/pretixcontrol/base.html:67 +#: pretix/control/templates/pretixcontrol/base.html:69 msgid "Log out" msgstr "Abmelden" -#: pretix/control/templates/pretixcontrol/base.html:93 +#: pretix/control/templates/pretixcontrol/base.html:92 #: pretix/control/templates/pretixcontrol/dashboard.html:3 #: pretix/control/templates/pretixcontrol/dashboard.html:5 -#: pretix/control/templates/pretixcontrol/event/base.html:9 +#: pretix/control/templates/pretixcontrol/event/base.html:10 msgid "Dashboard" msgstr "Übersicht" @@ -1535,52 +1539,91 @@ msgstr "" "Viele Grüße,\n" "Dein pretix Team\n" -#: pretix/control/templates/pretixcontrol/event/base.html:16 +#: pretix/control/templates/pretixcontrol/event/base.html:17 #: pretix/control/templates/pretixcontrol/event/settings_base.html:6 msgid "Settings" msgstr "Einstellungen" -#: pretix/control/templates/pretixcontrol/event/base.html:24 +#: pretix/control/templates/pretixcontrol/event/base.html:25 msgid "General" msgstr "Allgemeines" -#: pretix/control/templates/pretixcontrol/event/base.html:30 +#: pretix/control/templates/pretixcontrol/event/base.html:31 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:51 #: pretix/presale/templates/pretixpresale/event/order.html:31 #: pretix/presale/templates/pretixpresale/event/order.html:148 msgid "Payment" msgstr "Zahlung" -#: pretix/control/templates/pretixcontrol/event/base.html:42 +#: pretix/control/templates/pretixcontrol/event/base.html:43 msgid "Tickets" msgstr "Tickets" -#: pretix/control/templates/pretixcontrol/event/base.html:48 +#: pretix/control/templates/pretixcontrol/event/base.html:49 msgid "Email" msgstr "E-Mail" -#: pretix/control/templates/pretixcontrol/event/base.html:56 +#: pretix/control/templates/pretixcontrol/event/base.html:57 #: pretix/control/templates/pretixcontrol/event/permissions.html:8 msgid "Permissions" msgstr "Berechtigungen" -#: pretix/control/templates/pretixcontrol/event/base.html:85 +#: pretix/control/templates/pretixcontrol/event/base.html:86 msgid "Categories" msgstr "Kategorien" -#: pretix/control/templates/pretixcontrol/event/base.html:108 +#: pretix/control/templates/pretixcontrol/event/base.html:109 #: pretix/control/templates/pretixcontrol/orders/index.html:18 msgid "All orders" msgstr "Alle Bestellungen" -#: pretix/control/templates/pretixcontrol/event/base.html:114 +#: pretix/control/templates/pretixcontrol/event/base.html:115 msgid "Overview" msgstr "Überblick" -#: pretix/control/templates/pretixcontrol/event/base.html:120 +#: pretix/control/templates/pretixcontrol/event/base.html:121 msgid "Export" msgstr "Export" +#: pretix/control/templates/pretixcontrol/event/live.html:5 +msgid "Shop status" +msgstr "Shop-Status" + +#: pretix/control/templates/pretixcontrol/event/live.html:8 +msgid "" +"Your shop is currently live. If you take it down, it will only be visible to " +"you and your team." +msgstr "" +"Ihr Shop ist aktuell öffentlich verfügbar. Wenn Sie ihn ausschalten, ist er " +"nur für Sie und Ihr Team sichtbar." + +#: pretix/control/templates/pretixcontrol/event/live.html:16 +msgid "Go offline" +msgstr "Shop ausschalten" + +#: pretix/control/templates/pretixcontrol/event/live.html:22 +msgid "" +"Your ticket shop is currently not live. It is thus only visible to you and " +"your team, not to any visitors." +msgstr "" +"Ihr Ticket-Shop ist zur Zeit offline und daher nur für Sie und Ihr Team " +"verfügbar und nicht für Besucher." + +#: pretix/control/templates/pretixcontrol/event/live.html:26 +msgid "" +"To publish your ticket shop, you first need to resolve the following issues:" +msgstr "" +"Um Ihren Ticket-Shop zu veröffentlichen, müssen Sie zuerst die folgenden " +"Probleme beheben:" + +#: pretix/control/templates/pretixcontrol/event/live.html:35 +msgid "If you want to, you can publish your ticket shop now." +msgstr "Sie können Ihren Ticket-Shop jederzeit veröffentlichen." + +#: pretix/control/templates/pretixcontrol/event/live.html:43 +msgid "Go live" +msgstr "Shop veröffentlichen" + #: pretix/control/templates/pretixcontrol/event/mail.html:9 msgid "E-mail settings" msgstr "E-Mail-Einstellungen" @@ -1643,9 +1686,9 @@ msgid "Installed plugins" msgstr "Installierte Erweiterungen" #: pretix/control/templates/pretixcontrol/event/plugins.html:11 -#: pretix/control/views/event.py:66 pretix/control/views/event.py:123 -#: pretix/control/views/event.py:192 pretix/control/views/event.py:249 -#: pretix/control/views/event.py:305 pretix/control/views/event.py:415 +#: pretix/control/views/event.py:68 pretix/control/views/event.py:125 +#: pretix/control/views/event.py:194 pretix/control/views/event.py:251 +#: pretix/control/views/event.py:307 pretix/control/views/event.py:417 #: pretix/control/views/item.py:137 pretix/control/views/item.py:296 #: pretix/control/views/item.py:425 pretix/control/views/item.py:506 #: pretix/control/views/item.py:535 pretix/control/views/item.py:596 @@ -2316,12 +2359,12 @@ msgstr "" msgid "You can now login using your new password." msgstr "Du kannst dich nun mit Ihrem neuen Passwort anmelden." -#: pretix/control/views/event.py:242 +#: pretix/control/views/event.py:244 #, python-format msgid "An error occured while contacting the SMTP server: %s" msgstr "Ein Fehler trat auf beim Versuch, den SMTP-Server zu erreichen: %s" -#: pretix/control/views/event.py:244 +#: pretix/control/views/event.py:246 msgid "" "Your changes have been saved and the connection attempt to your SMTP server " "was successful." @@ -2329,23 +2372,41 @@ msgstr "" "Deine Änderungen wurden gespeichert und die Verbindung zum SMTP-Server war " "erfolgreich." -#: pretix/control/views/event.py:385 +#: pretix/control/views/event.py:387 msgid "There is no user with the email address you entered." msgstr "" "Es existiert kein Benutzer mit der E-Mail-Adresse, die du eingegeben hast." -#: pretix/control/views/event.py:390 +#: pretix/control/views/event.py:392 msgid "This user already has permissions for this event." msgstr "Dieser Benutzer hat bereits Zugriff auf diese Veranstaltung." -#: pretix/control/views/event.py:411 +#: pretix/control/views/event.py:413 msgid "You cannot remove your own permission to view this page." msgstr "Du kannst deine eigene Berechtigung nicht entfernen." -#: pretix/control/views/event.py:418 +#: pretix/control/views/event.py:420 msgid "Your changes could not be saved." msgstr "Die Änderungen konnten nicht gespeichert werden." +#: pretix/control/views/event.py:456 +msgid "" +"You have configured at least one paid product but have not enabled any " +"payment methods." +msgstr "" +"Sie haben mindestens ein kostenpflichtiges Produkt konfiguriert aber noch " +"keine Zahlungsmethoden aktiviert." + +#: pretix/control/views/event.py:464 +msgid "Your shop is live now!" +msgstr "Ihr Shop ist nun online!" + +#: pretix/control/views/event.py:468 +msgid "We've taken your shop down. You can re-enable it whenever you want!" +msgstr "" +"Wir haben Ihren Shop ausgeschaltet. Sie können ihn hier jederzeit wieder " +"einschalten." + #: pretix/control/views/event_dashboard.py:38 msgid "Attendees (ordered)" msgstr "Teilnehmer (bestellt)" @@ -2368,6 +2429,22 @@ msgstr "Aktive Produkte" msgid "{quota} left" msgstr "{quota} übrig" +#: pretix/control/views/event_dashboard.py:97 +msgid "Your ticket shop is" +msgstr "Ihr Ticket-Shop ist" + +#: pretix/control/views/event_dashboard.py:97 +msgid "Click here to change" +msgstr "Hier klicken zum Ändern" + +#: pretix/control/views/event_dashboard.py:98 +msgid "live" +msgstr "online" + +#: pretix/control/views/event_dashboard.py:98 +msgid "not yet public" +msgstr "deaktiviert" + #: pretix/control/views/item.py:53 pretix/control/views/item.py:635 msgid "The requested product does not exist." msgstr "Das ausgewählte Produkt existiert nicht." @@ -3372,27 +3449,39 @@ msgstr "Straße und Hausnummer" msgid "You need to provide either a company name or your name." msgstr "Du musst entweder einen Firmennamen oder deinen Namen eingeben." -#: pretix/presale/middleware.py:25 +#: pretix/presale/middleware.py:26 msgid "The selected event was not found." msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden." -#: pretix/presale/middleware.py:58 +#: pretix/presale/middleware.py:61 +msgid "The selected ticket shop is currently not available." +msgstr "Der ausgewählte Ticket-Shop ist im Moment nicht verfügbar." + +#: pretix/presale/middleware.py:64 msgid "The selected event or organizer was not found." msgstr "" "Die ausgewählte Veranstaltung oder der gesuchte Veranstalter wurde nicht " "gefunden." -#: pretix/presale/templates/pretixpresale/base.html:37 -#: pretix/presale/templates/pretixpresale/base.html:41 +#: pretix/presale/templates/pretixpresale/base.html:39 +#: pretix/presale/templates/pretixpresale/base.html:43 #: pretix/presale/templates/pretixpresale/waiting.html:21 msgid "We are processing your request…" msgstr "Wir verarbeiten deine Anfrage…" -#: pretix/presale/templates/pretixpresale/event/base.html:41 +#: pretix/presale/templates/pretixpresale/event/base.html:13 +msgid "This shop is currently only visible to you and your team." +msgstr "Dieser Shop ist aktuell nur für Sie und Ihr Team sichtbar." + +#: pretix/presale/templates/pretixpresale/event/base.html:15 +msgid "Take it live now" +msgstr "Jetzt veröffentlichen" + +#: pretix/presale/templates/pretixpresale/event/base.html:55 msgid "Contact event organizer" msgstr "Veranstalter kontaktieren" -#: pretix/presale/templates/pretixpresale/event/base.html:44 +#: pretix/presale/templates/pretixpresale/event/base.html:58 msgid "Imprint" msgstr "Impressum" diff --git a/src/pretix/presale/context.py b/src/pretix/presale/context.py index c1f61fbe9a..eeac785335 100644 --- a/src/pretix/presale/context.py +++ b/src/pretix/presale/context.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.core.urlresolvers import Resolver404, resolve from .signals import html_head @@ -21,5 +22,6 @@ def contextprocessor(request): for receiver, response in html_head.send(request.event, request=request): _html_head.append(response) ctx['html_head'] = "".join(_html_head) + ctx['site_url'] = settings.SITE_URL return ctx diff --git a/src/pretix/presale/middleware.py b/src/pretix/presale/middleware.py index 4e58ef14fd..48d2e18738 100644 --- a/src/pretix/presale/middleware.py +++ b/src/pretix/presale/middleware.py @@ -1,11 +1,12 @@ from urllib.parse import urljoin +from django.core.exceptions import PermissionDenied from django.core.urlresolvers import resolve from django.http import Http404 from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ -from pretix.base.models import Event, Organizer +from pretix.base.models import Event, EventPermission, Organizer from pretix.multidomain.urlreverse import get_domain @@ -54,6 +55,11 @@ class EventMiddleware: path = request.get_full_path().split("/", 2)[-1] return redirect(urljoin('%s://%s' % (request.scheme, domain), path)) + if not request.event.live: + if not request.user.is_authenticated() or not EventPermission.objects.filter( + event=request.event, user=request.user).exists(): + raise PermissionDenied(_('The selected ticket shop is currently not available.')) + except IndexError: raise Http404(_('The selected event or organizer was not found.')) diff --git a/src/pretix/presale/templates/pretixpresale/base.html b/src/pretix/presale/templates/pretixpresale/base.html index 75071cfdc9..ded3838a0c 100644 --- a/src/pretix/presale/templates/pretixpresale/base.html +++ b/src/pretix/presale/templates/pretixpresale/base.html @@ -20,6 +20,8 @@ +{% block above %} +{% endblock %}
    {% block page %} {% endblock %} diff --git a/src/pretix/presale/templates/pretixpresale/event/base.html b/src/pretix/presale/templates/pretixpresale/event/base.html index be27eb5fad..a02f42f1c0 100644 --- a/src/pretix/presale/templates/pretixpresale/event/base.html +++ b/src/pretix/presale/templates/pretixpresale/event/base.html @@ -5,11 +5,25 @@ {% block thetitle %} {% block title %}{% endblock %}{% if url_name != "event.index" %} :: {% endif %}{{ event.name }} {% endblock %} +{% block above %} + {% if not event.live %} +
    +
    + + {% trans "This shop is currently only visible to you and your team." %} + + {% trans "Take it live now" %} + +
    +
    + {% endif %} +{% endblock %} {% block page %}