forked from CGM_Public/pretix_original
Added invoice addresses
This commit is contained in:
32
src/pretix/base/migrations/0008_invoiceaddress.py
Normal file
32
src/pretix/base/migrations/0008_invoiceaddress.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.2 on 2016-02-22 11:17
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pretixbase', '0007_auto_20160211_1710'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='InvoiceAddress',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('last_modified', models.DateTimeField(auto_now=True)),
|
||||
('company', models.CharField(blank=True, max_length=255, verbose_name='Company name')),
|
||||
('name', models.CharField(blank=True, max_length=255, verbose_name='Name')),
|
||||
('street', models.TextField(verbose_name='Address')),
|
||||
('zipcode', models.CharField(max_length=30, verbose_name='ZIP code')),
|
||||
('city', models.CharField(max_length=255, verbose_name='City')),
|
||||
('country', models.CharField(max_length=255, verbose_name='Country')),
|
||||
('phone', models.CharField(blank=True, max_length=255, verbose_name='Phone number')),
|
||||
('vat_id', models.CharField(blank=True, max_length=255, verbose_name='VAT ID')),
|
||||
('order', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='pretixbase.Order')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -3,6 +3,7 @@ import string
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from django import forms
|
||||
from django.db import models
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@@ -461,3 +462,16 @@ class CartPosition(AbstractPosition):
|
||||
if not self.tax_rate:
|
||||
return Decimal('0.00')
|
||||
return round_decimal(self.price * (1 - 100 / (100 + self.item.tax_rate)))
|
||||
|
||||
|
||||
class InvoiceAddress(models.Model):
|
||||
last_modified = models.DateTimeField(auto_now=True)
|
||||
order = models.OneToOneField(Order, null=True, blank=True, related_name='invoice_address')
|
||||
company = models.CharField(max_length=255, blank=True, verbose_name=_('Company name'))
|
||||
name = models.CharField(max_length=255, verbose_name=_('Name'), blank=True)
|
||||
street = models.TextField(verbose_name=_('Address'), blank=False)
|
||||
zipcode = models.CharField(max_length=30, verbose_name=_('ZIP code'), blank=False)
|
||||
city = models.CharField(max_length=255, verbose_name=_('City'), blank=False)
|
||||
country = models.CharField(max_length=255, verbose_name=_('Country'), blank=False)
|
||||
phone = models.CharField(max_length=255, blank=True, verbose_name=_('Phone number'))
|
||||
vat_id = models.CharField(max_length=255, blank=True, verbose_name=_('VAT ID'))
|
||||
|
||||
@@ -10,6 +10,7 @@ from pretix.base.i18n import LazyDate, LazyNumber
|
||||
from pretix.base.models import (
|
||||
CartPosition, Event, EventLock, Order, OrderPosition, Quota, User,
|
||||
)
|
||||
from pretix.base.models.orders import InvoiceAddress
|
||||
from pretix.base.payment import BasePaymentProvider
|
||||
from pretix.base.services.mail import mail
|
||||
from pretix.base.signals import (
|
||||
@@ -216,7 +217,7 @@ def _create_order(event: Event, email: str, positions: List[CartPosition], dt: d
|
||||
|
||||
|
||||
def _perform_order(event: str, payment_provider: str, position_ids: List[str],
|
||||
email: str, locale: str):
|
||||
email: str, locale: str, address: int):
|
||||
event = Event.objects.get(id=event)
|
||||
responses = register_payment_providers.send(event)
|
||||
pprov = None
|
||||
@@ -237,6 +238,18 @@ def _perform_order(event: str, payment_provider: str, position_ids: List[str],
|
||||
order = _create_order(event, email, positions, dt, pprov,
|
||||
locale=locale)
|
||||
|
||||
if address is not None:
|
||||
try:
|
||||
addr = InvoiceAddress.objects.get(
|
||||
pk=address
|
||||
)
|
||||
if addr.order is not None:
|
||||
addr.pk = None
|
||||
addr.order = order
|
||||
addr.save()
|
||||
except InvoiceAddress.DoesNotExist:
|
||||
pass
|
||||
|
||||
mail(
|
||||
order.email, _('Your order: %(code)s') % {'code': order.code},
|
||||
event.settings.mail_text_order_placed,
|
||||
@@ -257,9 +270,9 @@ def _perform_order(event: str, payment_provider: str, position_ids: List[str],
|
||||
|
||||
|
||||
def perform_order(event: str, payment_provider: str, positions: List[str],
|
||||
email: str=None, locale: str=None):
|
||||
email: str=None, locale: str=None, address: int=None):
|
||||
try:
|
||||
return _perform_order(event, payment_provider, positions, email, locale)
|
||||
return _perform_order(event, payment_provider, positions, email, locale, address)
|
||||
except EventLock.LockTimeoutException:
|
||||
# Is raised when there are too many threads asking for event locks and we were
|
||||
# unable to get one
|
||||
@@ -271,9 +284,9 @@ if settings.HAS_CELERY:
|
||||
|
||||
@app.task(bind=True, max_retries=5, default_retry_delay=2)
|
||||
def perform_order_task(self, event: str, payment_provider: str, positions: List[str],
|
||||
email: str=None, locale: str=None):
|
||||
email: str=None, locale: str=None, address: int=None):
|
||||
try:
|
||||
return _perform_order(event, payment_provider, positions, email, locale)
|
||||
return _perform_order(event, payment_provider, positions, email, locale, address)
|
||||
except EventLock.LockTimeoutException:
|
||||
self.retry(exc=OrderError(error_messages['busy']))
|
||||
|
||||
|
||||
@@ -25,6 +25,18 @@ DEFAULTS = {
|
||||
'default': 'False',
|
||||
'type': bool
|
||||
},
|
||||
'invoice_address_asked': {
|
||||
'default': 'True',
|
||||
'type': bool,
|
||||
},
|
||||
'invoice_address_required': {
|
||||
'default': 'False',
|
||||
'type': bool,
|
||||
},
|
||||
'invoice_address_vatid': {
|
||||
'default': 'False',
|
||||
'type': bool,
|
||||
},
|
||||
'reservation_time': {
|
||||
'default': '30',
|
||||
'type': int
|
||||
|
||||
@@ -130,6 +130,19 @@ class EventSettingsForm(SettingsForm):
|
||||
help_text=_("Require customers to fill in the names of all attendees."),
|
||||
required=False
|
||||
)
|
||||
invoice_address_asked = forms.BooleanField(
|
||||
label=_("Ask for invoice address"),
|
||||
required=False
|
||||
)
|
||||
invoice_address_required = forms.BooleanField(
|
||||
label=_("Require invoice address"),
|
||||
required=False
|
||||
)
|
||||
invoice_address_vatid = forms.BooleanField(
|
||||
label=_("Ask for VAT ID"),
|
||||
help_text=_("Does only work if an invoice address is asked for. VAT ID is not required."),
|
||||
required=False
|
||||
)
|
||||
max_items_per_order = forms.IntegerField(
|
||||
min_value=1,
|
||||
label=_("Maximum number of items per order")
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
{% bootstrap_field sform.max_items_per_order layout="horizontal" %}
|
||||
{% bootstrap_field sform.attendee_names_asked layout="horizontal" %}
|
||||
{% bootstrap_field sform.attendee_names_required layout="horizontal" %}
|
||||
{% bootstrap_field sform.invoice_address_asked layout="horizontal" %}
|
||||
{% bootstrap_field sform.invoice_address_required layout="horizontal" %}
|
||||
{% bootstrap_field sform.invoice_address_vatid layout="horizontal" %}
|
||||
</fieldset>
|
||||
<div class="form-group submit-group">
|
||||
<button type="submit" class="btn btn-primary btn-save">
|
||||
|
||||
@@ -176,4 +176,33 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% if request.event.settings.invoice_address_asked %}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
{% trans "Invoice information" %}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>{% trans "Company" %}</dt>
|
||||
<dd>{{ order.invoice_address.company }}</dd>
|
||||
<dt>{% trans "Name" %}</dt>
|
||||
<dd>{{ order.invoice_address.name }}</dd>
|
||||
<dt>{% trans "Address" %}</dt>
|
||||
<dd>{{ order.invoice_address.street|linebreaksbr }}</dd>
|
||||
<dt>{% trans "ZIP code and city" %}</dt>
|
||||
<dd>{{ order.invoice_address.zipcode }} {{ addr.city }}</dd>
|
||||
<dt>{% trans "Country" %}</dt>
|
||||
<dd>{{ order.invoice_address.country }}</dd>
|
||||
<dt>{% trans "Phone" %}</dt>
|
||||
<dd>{{ order.invoice_address.phone }}</dd>
|
||||
{% if request.event.settings.invoice_address_vatid %}
|
||||
<dt>{% trans "VAT ID" %}</dt>
|
||||
<dd>{{ order.invoice_address.vat_id }}</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-02-20 14:56+0000\n"
|
||||
"PO-Revision-Date: 2016-02-20 15:57+0100\n"
|
||||
"POT-Creation-Date: 2016-02-22 12:43+0000\n"
|
||||
"PO-Revision-Date: 2016-02-22 13:45+0100\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: Raphael Michel <michel@rami.io>\n"
|
||||
"Language: de\n"
|
||||
@@ -27,13 +27,13 @@ msgid "enabled"
|
||||
msgstr "aktiviert"
|
||||
|
||||
#: pretix/base/forms/auth.py:13 pretix/base/forms/auth.py:140
|
||||
#: pretix/base/models/auth.py:63 pretix/base/models/orders.py:94
|
||||
#: pretix/presale/forms/checkout.py:8
|
||||
#: pretix/base/models/auth.py:63 pretix/base/models/orders.py:95
|
||||
#: pretix/presale/forms/checkout.py:10
|
||||
msgid "E-mail"
|
||||
msgstr "E-Mail"
|
||||
|
||||
#: pretix/base/forms/auth.py:14 pretix/base/forms/auth.py:77
|
||||
#: pretix/base/forms/auth.py:113 pretix/control/forms/event.py:239
|
||||
#: pretix/base/forms/auth.py:113 pretix/control/forms/event.py:252
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
@@ -149,7 +149,10 @@ 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/organizer.py:25
|
||||
#: 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
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:113
|
||||
#: pretix/presale/templates/pretixpresale/organizers/index.html:21
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
@@ -220,8 +223,8 @@ msgid "Plugins"
|
||||
msgstr "Erweiterungen"
|
||||
|
||||
#: pretix/base/models/event.py:96 pretix/base/models/items.py:109
|
||||
#: pretix/base/models/items.py:413 pretix/base/models/orders.py:89
|
||||
#: pretix/base/models/orders.py:432 pretix/base/models/vouchers.py:25
|
||||
#: 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"
|
||||
|
||||
@@ -438,7 +441,7 @@ msgstr "Gesamtanzahl"
|
||||
msgid "Leave empty for an unlimited number of tickets."
|
||||
msgstr "Leer lassen für unbegrenzt viele Tickets."
|
||||
|
||||
#: pretix/base/models/items.py:426 pretix/base/models/orders.py:293
|
||||
#: pretix/base/models/items.py:426 pretix/base/models/orders.py:294
|
||||
msgid "Item"
|
||||
msgstr "Produkt"
|
||||
|
||||
@@ -460,152 +463,189 @@ msgstr "Kontingent"
|
||||
msgid "Quotas"
|
||||
msgstr "Kontingente"
|
||||
|
||||
#: pretix/base/models/orders.py:71
|
||||
#: pretix/base/models/orders.py:72
|
||||
msgid "pending"
|
||||
msgstr "ausstehend"
|
||||
|
||||
#: pretix/base/models/orders.py:72
|
||||
#: pretix/base/models/orders.py:73
|
||||
msgid "paid"
|
||||
msgstr "bezahlt"
|
||||
|
||||
#: pretix/base/models/orders.py:73
|
||||
#: pretix/base/models/orders.py:74
|
||||
msgid "expired"
|
||||
msgstr "abgelaufen"
|
||||
|
||||
#: pretix/base/models/orders.py:74
|
||||
#: pretix/base/models/orders.py:75
|
||||
msgid "cancelled"
|
||||
msgstr "storniert"
|
||||
|
||||
#: pretix/base/models/orders.py:75
|
||||
#: pretix/base/models/orders.py:76
|
||||
msgid "refunded"
|
||||
msgstr "erstattet"
|
||||
|
||||
#: pretix/base/models/orders.py:80
|
||||
#: pretix/base/models/orders.py:81
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:58
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:10
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:42
|
||||
msgid "Order code"
|
||||
msgstr "Bestellnummer"
|
||||
|
||||
#: pretix/base/models/orders.py:85
|
||||
#: pretix/base/models/orders.py:86
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:46
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: pretix/base/models/orders.py:98
|
||||
#: pretix/base/models/orders.py:99
|
||||
msgid "Locale"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: pretix/base/models/orders.py:102 pretix/base/models/orders.py:439
|
||||
#: pretix/base/models/orders.py:103 pretix/base/models/orders.py:440
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13
|
||||
#: pretix/presale/templates/pretixpresale/organizers/index.html:22
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: pretix/base/models/orders.py:105 pretix/base/models/orders.py:443
|
||||
#: pretix/base/models/orders.py:106 pretix/base/models/orders.py:444
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form.html:23
|
||||
msgid "Expiration date"
|
||||
msgstr "Ablaufdatum"
|
||||
|
||||
#: pretix/base/models/orders.py:108
|
||||
#: pretix/base/models/orders.py:109
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:63
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
|
||||
msgid "Payment date"
|
||||
msgstr "Zahlungsdatum"
|
||||
|
||||
#: pretix/base/models/orders.py:114
|
||||
#: pretix/base/models/orders.py:115
|
||||
msgid "Payment provider"
|
||||
msgstr "Zahlungsmethode"
|
||||
|
||||
#: pretix/base/models/orders.py:118
|
||||
#: pretix/base/models/orders.py:119
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:140
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75
|
||||
msgid "Payment method fee"
|
||||
msgstr "Gebühr für gewählte Zahlungsmethode"
|
||||
|
||||
#: pretix/base/models/orders.py:121
|
||||
#: pretix/base/models/orders.py:122
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:162
|
||||
msgid "Payment information"
|
||||
msgstr "Zahlungsinformationen"
|
||||
|
||||
#: pretix/base/models/orders.py:125
|
||||
#: pretix/base/models/orders.py:126
|
||||
msgid "Payment state was manually modified"
|
||||
msgstr "Der Bestellungsstatus wurde manuell verändert"
|
||||
|
||||
#: pretix/base/models/orders.py:130
|
||||
#: pretix/base/models/orders.py:131
|
||||
msgid "Total amount"
|
||||
msgstr "Gesamtbetrag"
|
||||
|
||||
#: pretix/base/models/orders.py:134 pretix/base/models/orders.py:361
|
||||
#: pretix/base/models/orders.py:135 pretix/base/models/orders.py:362
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:17
|
||||
msgid "Order"
|
||||
msgstr "Bestellung"
|
||||
|
||||
#: pretix/base/models/orders.py:135
|
||||
#: pretix/base/models/orders.py:136
|
||||
#: pretix/control/templates/pretixcontrol/event/base.html:101
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:3
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:5
|
||||
msgid "Orders"
|
||||
msgstr "Bestellungen"
|
||||
|
||||
#: pretix/base/models/orders.py:184
|
||||
#: pretix/base/models/orders.py:185
|
||||
msgid "The payment is too late to be accepted."
|
||||
msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können."
|
||||
|
||||
#: pretix/base/models/orders.py:199
|
||||
#: pretix/base/models/orders.py:200
|
||||
msgid "Some of the ordered products were no longer available."
|
||||
msgstr "Einige der ausgewählten Produkte sind nicht mehr verfügbar."
|
||||
|
||||
#: pretix/base/models/orders.py:299
|
||||
#: pretix/base/models/orders.py:300
|
||||
msgid "Variation"
|
||||
msgstr "Variante"
|
||||
|
||||
#: pretix/base/models/orders.py:304
|
||||
#: pretix/base/models/orders.py:305
|
||||
msgid "Price"
|
||||
msgstr "Preis"
|
||||
|
||||
#: pretix/base/models/orders.py:308
|
||||
#: pretix/base/models/orders.py:309
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:106
|
||||
#: pretix/presale/forms/checkout.py:36
|
||||
#: pretix/presale/forms/checkout.py:65
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:16
|
||||
msgid "Attendee name"
|
||||
msgstr "Name des Teilnehmers"
|
||||
|
||||
#: pretix/base/models/orders.py:310
|
||||
#: pretix/base/models/orders.py:311
|
||||
msgid "Empty, if this product is not an admission ticket"
|
||||
msgstr "Leer, wenn dies kein Eintrittsticket ist"
|
||||
|
||||
#: pretix/base/models/orders.py:367
|
||||
#: pretix/base/models/orders.py:368
|
||||
msgid "Tax rate"
|
||||
msgstr "Steuersatz"
|
||||
|
||||
#: pretix/base/models/orders.py:371
|
||||
#: pretix/base/models/orders.py:372
|
||||
msgid "Tax value"
|
||||
msgstr "Steuer"
|
||||
|
||||
#: pretix/base/models/orders.py:375
|
||||
#: pretix/base/models/orders.py:376
|
||||
msgid "Order position"
|
||||
msgstr "Bestelltes Produkt"
|
||||
|
||||
#: pretix/base/models/orders.py:376
|
||||
#: pretix/base/models/orders.py:377
|
||||
msgid "Order positions"
|
||||
msgstr "Bestellzeile"
|
||||
|
||||
#: pretix/base/models/orders.py:436
|
||||
#: pretix/base/models/orders.py:437
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Warenkorb-ID (z.B. Session-ID)"
|
||||
|
||||
#: pretix/base/models/orders.py:447
|
||||
#: pretix/base/models/orders.py:448
|
||||
msgid "Cart position"
|
||||
msgstr "Produkt im Warenkorb"
|
||||
|
||||
#: pretix/base/models/orders.py:448
|
||||
#: pretix/base/models/orders.py:449
|
||||
msgid "Cart positions"
|
||||
msgstr "Produkte im Warenkorb"
|
||||
|
||||
#: pretix/base/models/orders.py:470
|
||||
msgid "Company name"
|
||||
msgstr "Firmenname"
|
||||
|
||||
#: pretix/base/models/orders.py:472
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:192
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:115
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: pretix/base/models/orders.py:473
|
||||
msgid "ZIP code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: pretix/base/models/orders.py:474
|
||||
msgid "City"
|
||||
msgstr "Ort"
|
||||
|
||||
#: pretix/base/models/orders.py:475
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:196
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:119
|
||||
msgid "Country"
|
||||
msgstr "Land"
|
||||
|
||||
#: pretix/base/models/orders.py:476
|
||||
msgid "Phone number"
|
||||
msgstr "Telefonnummer"
|
||||
|
||||
#: pretix/base/models/orders.py:477
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:201
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:124
|
||||
msgid "VAT ID"
|
||||
msgstr "USt-ID"
|
||||
|
||||
#: pretix/base/models/organizer.py:43
|
||||
#: pretix/control/templates/pretixcontrol/events/index.html:20
|
||||
#: pretix/control/templates/pretixcontrol/organizers/detail.html:4
|
||||
@@ -753,7 +793,7 @@ msgstr "Kostenlos"
|
||||
msgid "The order has been marked as refunded."
|
||||
msgstr "Die Bestellung wurde als zurückerstattet markiert."
|
||||
|
||||
#: pretix/base/services/cart.py:20 pretix/base/services/orders.py:29
|
||||
#: pretix/base/services/cart.py:20 pretix/base/services/orders.py:30
|
||||
msgid ""
|
||||
"We were not able to process your request completely as the server was too "
|
||||
"busy. Please try again."
|
||||
@@ -769,7 +809,7 @@ msgstr "Sie haben keine Produkte ausgewählt."
|
||||
msgid "You selected a product which is not available for sale."
|
||||
msgstr "Sie haben ein Produkt ausgewählt, das nicht zum Verkauf steht."
|
||||
|
||||
#: pretix/base/services/cart.py:24 pretix/base/services/orders.py:21
|
||||
#: pretix/base/services/cart.py:24 pretix/base/services/orders.py:22
|
||||
msgid ""
|
||||
"Some of the products you selected were no longer available. Please see below "
|
||||
"for details."
|
||||
@@ -777,7 +817,7 @@ msgstr ""
|
||||
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr "
|
||||
"verfügbar, bitte überprüfen Sie Ihren Warenkorb."
|
||||
|
||||
#: pretix/base/services/cart.py:26 pretix/base/services/orders.py:23
|
||||
#: pretix/base/services/cart.py:26 pretix/base/services/orders.py:24
|
||||
msgid ""
|
||||
"Some of the products you selected were no longer available in the quantity "
|
||||
"you selected. Please see below for details."
|
||||
@@ -785,7 +825,7 @@ msgstr ""
|
||||
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der "
|
||||
"gewünschten Anzahl verfügbar, bitte überprüfen Sie Ihren Warenkorb."
|
||||
|
||||
#: pretix/base/services/cart.py:28 pretix/base/services/orders.py:27
|
||||
#: pretix/base/services/cart.py:28 pretix/base/services/orders.py:28
|
||||
#, python-format
|
||||
msgid "You cannot select more than %s items per order"
|
||||
msgstr "Sie können nicht mehr als %s Produkte pro Bestellung auswählen"
|
||||
@@ -819,7 +859,7 @@ msgstr ""
|
||||
"Sie erhalten diese E-Mail, weil Sie eine Bestellung für die Veranstaltung %s "
|
||||
"getätigt haben."
|
||||
|
||||
#: pretix/base/services/orders.py:25
|
||||
#: pretix/base/services/orders.py:26
|
||||
msgid ""
|
||||
"The price of some of the items in your cart has changed in the meantime. "
|
||||
"Please see below for details."
|
||||
@@ -827,26 +867,26 @@ msgstr ""
|
||||
"Der Preis einiger Produkte in Ihrem Warenkorb hat sich zwischenzeitlich "
|
||||
"geändert."
|
||||
|
||||
#: pretix/base/services/orders.py:28
|
||||
#: pretix/base/services/orders.py:29
|
||||
msgid "An internal error occured, please try again."
|
||||
msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen."
|
||||
|
||||
#: pretix/base/services/orders.py:31
|
||||
#: pretix/base/services/orders.py:32
|
||||
msgid "A voucher you tried to use already has been used."
|
||||
msgstr ""
|
||||
"Ein Gutscheincode, den Sie verwenden wollten, wurde zwischenzeitlich bereits "
|
||||
"eingelöst."
|
||||
|
||||
#: pretix/base/services/orders.py:32
|
||||
#: pretix/base/services/orders.py:33
|
||||
msgid "A voucher you tried to use has expired."
|
||||
msgstr "Ein Gutscheincode, den Sie verwenden wollten, ist abgelaufen."
|
||||
|
||||
#: pretix/base/services/orders.py:76
|
||||
#: pretix/base/services/orders.py:77
|
||||
#, python-format
|
||||
msgid "Payment received for your order: %(code)s"
|
||||
msgstr "Zahlung erhalten für die Bestellung: %(code)s"
|
||||
|
||||
#: pretix/base/services/orders.py:241 pretix/control/views/orders.py:208
|
||||
#: pretix/base/services/orders.py:254 pretix/control/views/orders.py:208
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:21
|
||||
#, python-format
|
||||
msgid "Your order: %(code)s"
|
||||
@@ -860,7 +900,7 @@ msgstr "Unkategorisiert"
|
||||
msgid "Payment method fees"
|
||||
msgstr "Zahlungsgebühren"
|
||||
|
||||
#: pretix/base/settings.py:102
|
||||
#: pretix/base/settings.py:114
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -886,7 +926,7 @@ msgstr ""
|
||||
"Viele Grüße,\n"
|
||||
"Das {event} Team"
|
||||
|
||||
#: pretix/base/settings.py:115
|
||||
#: pretix/base/settings.py:127
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -915,7 +955,7 @@ msgstr ""
|
||||
"Viele Grüße,\n"
|
||||
"Das {event}s Team"
|
||||
|
||||
#: pretix/base/settings.py:130
|
||||
#: pretix/base/settings.py:142
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -1194,56 +1234,75 @@ msgstr "Namen des Teilnehmer erfordern"
|
||||
msgid "Require customers to fill in the names of all attendees."
|
||||
msgstr "Erfordere die Eingabe aller Teilnehmer-Namen."
|
||||
|
||||
#: pretix/control/forms/event.py:135
|
||||
#: pretix/control/forms/event.py:134
|
||||
msgid "Ask for invoice address"
|
||||
msgstr "Rechnungsadresse erfragen"
|
||||
|
||||
#: pretix/control/forms/event.py:138
|
||||
msgid "Require invoice address"
|
||||
msgstr "Rechnungsadresse erforderlich"
|
||||
|
||||
#: pretix/control/forms/event.py:142
|
||||
msgid "Ask for VAT ID"
|
||||
msgstr "Nach USt-ID fragen"
|
||||
|
||||
#: pretix/control/forms/event.py:143
|
||||
msgid ""
|
||||
"Does only work if an invoice address is asked for. VAT ID is not required."
|
||||
msgstr ""
|
||||
"Funktioniert nur, wenn nach einer Rechnungsadresse gefragt wird. Die USt-ID-"
|
||||
"Eingabe ist freiwillig."
|
||||
|
||||
#: pretix/control/forms/event.py:148
|
||||
msgid "Maximum number of items per order"
|
||||
msgstr "Maximale Anzahl Produkte pro Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:139
|
||||
#: pretix/control/forms/event.py:152
|
||||
msgid "Reservation period"
|
||||
msgstr "Reservierungszeitraum"
|
||||
|
||||
#: pretix/control/forms/event.py:140
|
||||
#: pretix/control/forms/event.py:153
|
||||
msgid ""
|
||||
"The number of minutes the items in a user's card are reserved for this user."
|
||||
msgstr ""
|
||||
"Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert "
|
||||
"werden."
|
||||
|
||||
#: pretix/control/forms/event.py:143
|
||||
#: pretix/control/forms/event.py:156
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (URL)"
|
||||
|
||||
#: pretix/control/forms/event.py:147
|
||||
#: pretix/control/forms/event.py:160
|
||||
msgid "Contact address"
|
||||
msgstr "Kontakt-E-Mail"
|
||||
|
||||
#: pretix/control/forms/event.py:149
|
||||
#: pretix/control/forms/event.py:162
|
||||
msgid "Public email address for contacting the organizer"
|
||||
msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters"
|
||||
|
||||
#: pretix/control/forms/event.py:156
|
||||
#: pretix/control/forms/event.py:169
|
||||
msgid ""
|
||||
"Your default locale must also be enebled for your event (see box above)."
|
||||
msgstr ""
|
||||
"Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter "
|
||||
"oben)."
|
||||
|
||||
#: pretix/control/forms/event.py:160
|
||||
#: pretix/control/forms/event.py:173
|
||||
msgid ""
|
||||
"You cannot require specifying attendee names if you do not ask for them."
|
||||
msgstr ""
|
||||
"Sie können die Angabe von Teilnehmernamen nur erfordern, wenn Sie auch nach "
|
||||
"Namen fragen."
|
||||
|
||||
#: pretix/control/forms/event.py:189 pretix/control/forms/event.py:283
|
||||
#: pretix/control/forms/event.py:202 pretix/control/forms/event.py:296
|
||||
msgid "This field is required."
|
||||
msgstr "Dieses Feld ist erforderlich."
|
||||
|
||||
#: pretix/control/forms/event.py:194
|
||||
#: pretix/control/forms/event.py:207
|
||||
msgid "Subject prefix"
|
||||
msgstr "Betreffs-Prefix"
|
||||
|
||||
#: pretix/control/forms/event.py:195
|
||||
#: pretix/control/forms/event.py:208
|
||||
msgid ""
|
||||
"This will be prepended to the subject of all outgoing emails. This could be "
|
||||
"a short form of your event name."
|
||||
@@ -1251,19 +1310,19 @@ msgstr ""
|
||||
"Dies wird jedem E-Mail-Betreff vorangestellt und könnten z.B. eine Kurzform "
|
||||
"Ihres Veranstaltungsnamens enthalten."
|
||||
|
||||
#: pretix/control/forms/event.py:200
|
||||
#: pretix/control/forms/event.py:213
|
||||
msgid "Sender address"
|
||||
msgstr "Absender-Adresse"
|
||||
|
||||
#: pretix/control/forms/event.py:201
|
||||
#: pretix/control/forms/event.py:214
|
||||
msgid "Sender address for outgoing e-mails"
|
||||
msgstr "Absender-Adresse für ausgehende E-Mails"
|
||||
|
||||
#: pretix/control/forms/event.py:204
|
||||
#: pretix/control/forms/event.py:217
|
||||
msgid "Placed order"
|
||||
msgstr "Getätigte Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:207
|
||||
#: pretix/control/forms/event.py:220
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, "
|
||||
@@ -1272,25 +1331,25 @@ msgstr ""
|
||||
"Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, "
|
||||
"{url}"
|
||||
|
||||
#: pretix/control/forms/event.py:210
|
||||
#: pretix/control/forms/event.py:223
|
||||
msgid "Paid order"
|
||||
msgstr "Bezahlt Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:213 pretix/control/forms/event.py:219
|
||||
#: pretix/control/forms/event.py:226 pretix/control/forms/event.py:232
|
||||
#, python-brace-format
|
||||
msgid "Available placeholders: {event}, {url}"
|
||||
msgstr "Verfügbare Platzhalter: {event}, {url}"
|
||||
|
||||
#: pretix/control/forms/event.py:216
|
||||
#: pretix/control/forms/event.py:229
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:76
|
||||
msgid "Resend link"
|
||||
msgstr "Link erneut senden"
|
||||
|
||||
#: pretix/control/forms/event.py:222
|
||||
#: pretix/control/forms/event.py:235
|
||||
msgid "Use custom SMTP server"
|
||||
msgstr "Eigenen SMTP-Server verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:223
|
||||
#: pretix/control/forms/event.py:236
|
||||
msgid ""
|
||||
"All mail related to your event will be sent over the smtp server specified "
|
||||
"by you."
|
||||
@@ -1298,49 +1357,49 @@ msgstr ""
|
||||
"Alle E-Mails bezüglich Ihrer Veranstaltung werden über den von Ihnen "
|
||||
"angegebenen SMTP-Server versendet."
|
||||
|
||||
#: pretix/control/forms/event.py:227
|
||||
#: pretix/control/forms/event.py:240
|
||||
msgid "Hostname"
|
||||
msgstr "Hostname"
|
||||
|
||||
#: pretix/control/forms/event.py:231
|
||||
#: pretix/control/forms/event.py:244
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: pretix/control/forms/event.py:235
|
||||
#: pretix/control/forms/event.py:248
|
||||
msgid "Username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: pretix/control/forms/event.py:244
|
||||
#: pretix/control/forms/event.py:257
|
||||
msgid "Use STARTTLS"
|
||||
msgstr "STARTTLS verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:245
|
||||
#: pretix/control/forms/event.py:258
|
||||
msgid "Commonly enabled on port 587."
|
||||
msgstr "Meistens auf Port 587 verfügbar."
|
||||
|
||||
#: pretix/control/forms/event.py:249
|
||||
#: pretix/control/forms/event.py:262
|
||||
msgid "Use SSL"
|
||||
msgstr "SSL verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:250
|
||||
#: pretix/control/forms/event.py:263
|
||||
msgid "Commonly enabled on port 465."
|
||||
msgstr "Meistens auf Port 465 verfügbar."
|
||||
|
||||
#: pretix/control/forms/event.py:257
|
||||
#: pretix/control/forms/event.py:270
|
||||
msgid "Use feature"
|
||||
msgstr "Funktion benutzen"
|
||||
|
||||
#: pretix/control/forms/event.py:258
|
||||
#: pretix/control/forms/event.py:271
|
||||
msgid "Use pretix to generate tickets for the user to download and print out."
|
||||
msgstr ""
|
||||
"Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der "
|
||||
"Benutzer herunterladen und ausdrucken kann."
|
||||
|
||||
#: pretix/control/forms/event.py:262
|
||||
#: pretix/control/forms/event.py:275
|
||||
msgid "Download date"
|
||||
msgstr "Download-Datum"
|
||||
|
||||
#: pretix/control/forms/event.py:263
|
||||
#: pretix/control/forms/event.py:276
|
||||
msgid "Ticket download will be offered after this date."
|
||||
msgstr "Der Ticket-Download wird zu diesem Zeitpunkt freigeschaltet."
|
||||
|
||||
@@ -1414,7 +1473,7 @@ msgstr "Neues Passwort setzen"
|
||||
#: pretix/control/templates/pretixcontrol/event/mail.html:30
|
||||
#: pretix/control/templates/pretixcontrol/event/payment.html:31
|
||||
#: pretix/control/templates/pretixcontrol/event/permissions.html:56
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:47
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:50
|
||||
#: pretix/control/templates/pretixcontrol/event/tickets.html:36
|
||||
#: pretix/control/templates/pretixcontrol/events/create.html:30
|
||||
#: pretix/control/templates/pretixcontrol/item/index.html:28
|
||||
@@ -1492,9 +1551,9 @@ msgid "General"
|
||||
msgstr "Allgemeines"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/base.html:30
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:52
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:51
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:31
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:111
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:148
|
||||
msgid "Payment"
|
||||
msgstr "Zahlung"
|
||||
|
||||
@@ -1959,7 +2018,7 @@ msgstr "Verbleibende Kapazität"
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:4
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:8
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:28
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:101
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:138
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:4
|
||||
msgid "Cancel order"
|
||||
msgstr "Stornieren"
|
||||
@@ -2063,6 +2122,32 @@ msgstr "Der Status dieser Bestellung wurde manuell verändert."
|
||||
msgid "The payment has to be completed before %(date)s."
|
||||
msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:183
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:70
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:30
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:106
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:19
|
||||
msgid "Invoice information"
|
||||
msgstr "Rechnungsinformationen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:188
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:75
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:111
|
||||
msgid "Company"
|
||||
msgstr "Firma"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:194
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:117
|
||||
msgid "ZIP code and city"
|
||||
msgstr "PLZ und Ort"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:198
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:121
|
||||
msgid "Phone"
|
||||
msgstr "Telefon"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund.html:10
|
||||
msgid "Do you really want to refund this order? You cannot revert this action."
|
||||
msgstr ""
|
||||
@@ -2374,11 +2459,11 @@ msgstr "Die Bestellung wurde storniert."
|
||||
msgid "The order has been marked as not paid."
|
||||
msgstr "Die Bestellung wurde als unbezahlt markiert."
|
||||
|
||||
#: pretix/control/views/orders.py:236 pretix/presale/views/order.py:279
|
||||
#: pretix/control/views/orders.py:236 pretix/presale/views/order.py:296
|
||||
msgid "You requested an invalid ticket output type."
|
||||
msgstr "Sie haben einen ungültigen Ausgabetyp gewählt."
|
||||
|
||||
#: pretix/control/views/orders.py:239 pretix/presale/views/order.py:284
|
||||
#: pretix/control/views/orders.py:239 pretix/presale/views/order.py:301
|
||||
msgid "Order is not paid."
|
||||
msgstr "Bestellung ist nicht bezahlt."
|
||||
|
||||
@@ -2557,7 +2642,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:43
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:56
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:72
|
||||
#: pretix/presale/templates/pretixpresale/event/order_pay.html:26
|
||||
msgid "Continue"
|
||||
msgstr "Fortfahren"
|
||||
@@ -3274,28 +3359,36 @@ msgstr "Veranstaltungsname-y-Position (mm)"
|
||||
msgid "Event name size (mm)"
|
||||
msgstr "Veranstaltungsname-Größe (mm)"
|
||||
|
||||
#: pretix/presale/checkoutflow.py:147 pretix/presale/views/order.py:217
|
||||
#: pretix/presale/checkoutflow.py:166 pretix/presale/views/order.py:232
|
||||
msgid ""
|
||||
"We had difficulties processing your input. Please review the errors below."
|
||||
msgstr "Wir hatten Schwierigkeiten, Ihre Eingabe zu verarbeiten."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:158 pretix/presale/checkoutflow.py:163
|
||||
#: pretix/presale/checkoutflow.py:181 pretix/presale/checkoutflow.py:186
|
||||
msgid "Please enter a valid e-mail address."
|
||||
msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:173 pretix/presale/checkoutflow.py:178
|
||||
#: pretix/presale/checkoutflow.py:196 pretix/presale/checkoutflow.py:201
|
||||
msgid "Please fill in answers to all required questions."
|
||||
msgstr "Bitte füllen Sie Antworten zu allen benötigten Fragen ein."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:229
|
||||
#: pretix/presale/checkoutflow.py:253
|
||||
msgid "Please select a payment method."
|
||||
msgstr "Bitte wählen Sie eine Zahlungsmethode aus."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:250 pretix/presale/checkoutflow.py:256
|
||||
#: pretix/presale/views/order.py:154 pretix/presale/views/order.py:184
|
||||
#: pretix/presale/checkoutflow.py:274 pretix/presale/checkoutflow.py:280
|
||||
#: pretix/presale/views/order.py:156 pretix/presale/views/order.py:186
|
||||
msgid "The payment information you entered was incomplete."
|
||||
msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig."
|
||||
|
||||
#: pretix/presale/forms/checkout.py:19
|
||||
msgid "Street and Number"
|
||||
msgstr "Straße und Hausnummer"
|
||||
|
||||
#: pretix/presale/forms/checkout.py:37
|
||||
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
|
||||
msgid "The selected event was not found."
|
||||
msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden."
|
||||
@@ -3332,8 +3425,9 @@ msgstr ""
|
||||
"Bestellung."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:17
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:47
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:65
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:46
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:66
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:102
|
||||
msgid "Modify"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
@@ -3355,22 +3449,22 @@ msgstr ""
|
||||
msgid "The items in your cart are no longer reserved for you."
|
||||
msgstr "Die Produkte in Ihrem Warenkorb sind nicht mehr für Sie reserviert."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:69
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:106
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:15
|
||||
msgid "Contact information"
|
||||
msgstr "Kontaktinformationen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
|
||||
msgid "E-mail address"
|
||||
msgstr "E-Mail-Adresse"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:84
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:122
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:38
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:51
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:67
|
||||
msgid "Go back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:89
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:127
|
||||
msgid "Place binding order"
|
||||
msgstr "Zahlungspflichtig bestellen"
|
||||
|
||||
@@ -3489,6 +3583,7 @@ msgid "You will be able to download your tickets here on %(date)s."
|
||||
msgstr "Sie können Ihre Tickets hier ab %(date)s herunterladen."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:82
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:101
|
||||
msgid "Change details"
|
||||
msgstr "Details bearbeiten"
|
||||
|
||||
@@ -3506,11 +3601,11 @@ msgstr "Bestellung bearbeiten"
|
||||
msgid "Modify order: %(code)s"
|
||||
msgstr "Bestellung bearbeiten: %(code)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:40
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:56
|
||||
msgid "Revert changes"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:45
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:61
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
@@ -3594,27 +3689,27 @@ msgstr "Die gewählten Produkte wurden Ihrem Warenkorb hinzugefügt."
|
||||
msgid "Your cart is empty"
|
||||
msgstr "Ihr Warenkorb ist leer."
|
||||
|
||||
#: pretix/presale/views/order.py:53 pretix/presale/views/order.py:105
|
||||
#: pretix/presale/views/order.py:147 pretix/presale/views/order.py:180
|
||||
#: pretix/presale/views/order.py:229 pretix/presale/views/order.py:249
|
||||
#: pretix/presale/views/order.py:282
|
||||
#: pretix/presale/views/order.py:55 pretix/presale/views/order.py:107
|
||||
#: pretix/presale/views/order.py:149 pretix/presale/views/order.py:182
|
||||
#: pretix/presale/views/order.py:245 pretix/presale/views/order.py:266
|
||||
#: pretix/presale/views/order.py:299
|
||||
msgid "Unknown order code or not authorized to access this order."
|
||||
msgstr ""
|
||||
"Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer."
|
||||
|
||||
#: pretix/presale/views/order.py:109 pretix/presale/views/order.py:149
|
||||
#: pretix/presale/views/order.py:111 pretix/presale/views/order.py:151
|
||||
msgid "The payment for this order cannot be continued."
|
||||
msgstr "Diese Bestellung kann nicht mehr bezahlt werden."
|
||||
|
||||
#: pretix/presale/views/order.py:231
|
||||
#: pretix/presale/views/order.py:247
|
||||
msgid "You cannot modify this order"
|
||||
msgstr "Sie können diese Bestellung nicht bearbeiten"
|
||||
|
||||
#: pretix/presale/views/order.py:251
|
||||
#: pretix/presale/views/order.py:268
|
||||
msgid "You cannot cancel this order"
|
||||
msgstr "Sie können diese Bestellung nicht stornieren"
|
||||
|
||||
#: pretix/presale/views/order.py:289
|
||||
#: pretix/presale/views/order.py:306
|
||||
msgid "Ticket download is not (yet) enabled."
|
||||
msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet."
|
||||
|
||||
@@ -3732,9 +3827,6 @@ msgstr "Deutsch (Du)"
|
||||
#~ msgid "Deselect all"
|
||||
#~ msgstr "Keine auswählen"
|
||||
|
||||
#~ msgid "Require e-mail adresses"
|
||||
#~ msgstr "E-Mail-Adresse erfordern"
|
||||
|
||||
#~ msgid "Require all customers to provide an e-mail address."
|
||||
#~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern."
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-02-20 14:56+0000\n"
|
||||
"PO-Revision-Date: 2016-02-20 15:57+0100\n"
|
||||
"POT-Creation-Date: 2016-02-22 12:43+0000\n"
|
||||
"PO-Revision-Date: 2016-02-22 13:44+0100\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: Raphael Michel <michel@rami.io>\n"
|
||||
"Language: de\n"
|
||||
@@ -27,13 +27,13 @@ msgid "enabled"
|
||||
msgstr "aktiviert"
|
||||
|
||||
#: pretix/base/forms/auth.py:13 pretix/base/forms/auth.py:140
|
||||
#: pretix/base/models/auth.py:63 pretix/base/models/orders.py:94
|
||||
#: pretix/presale/forms/checkout.py:8
|
||||
#: pretix/base/models/auth.py:63 pretix/base/models/orders.py:95
|
||||
#: pretix/presale/forms/checkout.py:10
|
||||
msgid "E-mail"
|
||||
msgstr "E-Mail"
|
||||
|
||||
#: pretix/base/forms/auth.py:14 pretix/base/forms/auth.py:77
|
||||
#: pretix/base/forms/auth.py:113 pretix/control/forms/event.py:239
|
||||
#: pretix/base/forms/auth.py:113 pretix/control/forms/event.py:252
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
@@ -149,7 +149,10 @@ 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/organizer.py:25
|
||||
#: 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
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:113
|
||||
#: pretix/presale/templates/pretixpresale/organizers/index.html:21
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
@@ -220,8 +223,8 @@ msgid "Plugins"
|
||||
msgstr "Erweiterungen"
|
||||
|
||||
#: pretix/base/models/event.py:96 pretix/base/models/items.py:109
|
||||
#: pretix/base/models/items.py:413 pretix/base/models/orders.py:89
|
||||
#: pretix/base/models/orders.py:432 pretix/base/models/vouchers.py:25
|
||||
#: 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"
|
||||
|
||||
@@ -438,7 +441,7 @@ msgstr "Gesamtanzahl"
|
||||
msgid "Leave empty for an unlimited number of tickets."
|
||||
msgstr "Leer lassen für unbegrenzt viele Tickets."
|
||||
|
||||
#: pretix/base/models/items.py:426 pretix/base/models/orders.py:293
|
||||
#: pretix/base/models/items.py:426 pretix/base/models/orders.py:294
|
||||
msgid "Item"
|
||||
msgstr "Produkt"
|
||||
|
||||
@@ -460,152 +463,189 @@ msgstr "Kontingent"
|
||||
msgid "Quotas"
|
||||
msgstr "Kontingente"
|
||||
|
||||
#: pretix/base/models/orders.py:71
|
||||
#: pretix/base/models/orders.py:72
|
||||
msgid "pending"
|
||||
msgstr "ausstehend"
|
||||
|
||||
#: pretix/base/models/orders.py:72
|
||||
#: pretix/base/models/orders.py:73
|
||||
msgid "paid"
|
||||
msgstr "bezahlt"
|
||||
|
||||
#: pretix/base/models/orders.py:73
|
||||
#: pretix/base/models/orders.py:74
|
||||
msgid "expired"
|
||||
msgstr "abgelaufen"
|
||||
|
||||
#: pretix/base/models/orders.py:74
|
||||
#: pretix/base/models/orders.py:75
|
||||
msgid "cancelled"
|
||||
msgstr "storniert"
|
||||
|
||||
#: pretix/base/models/orders.py:75
|
||||
#: pretix/base/models/orders.py:76
|
||||
msgid "refunded"
|
||||
msgstr "erstattet"
|
||||
|
||||
#: pretix/base/models/orders.py:80
|
||||
#: pretix/base/models/orders.py:81
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:58
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:10
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:42
|
||||
msgid "Order code"
|
||||
msgstr "Bestellnummer"
|
||||
|
||||
#: pretix/base/models/orders.py:85
|
||||
#: pretix/base/models/orders.py:86
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:46
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: pretix/base/models/orders.py:98
|
||||
#: pretix/base/models/orders.py:99
|
||||
msgid "Locale"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: pretix/base/models/orders.py:102 pretix/base/models/orders.py:439
|
||||
#: pretix/base/models/orders.py:103 pretix/base/models/orders.py:440
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13
|
||||
#: pretix/presale/templates/pretixpresale/organizers/index.html:22
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: pretix/base/models/orders.py:105 pretix/base/models/orders.py:443
|
||||
#: pretix/base/models/orders.py:106 pretix/base/models/orders.py:444
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form.html:23
|
||||
msgid "Expiration date"
|
||||
msgstr "Ablaufdatum"
|
||||
|
||||
#: pretix/base/models/orders.py:108
|
||||
#: pretix/base/models/orders.py:109
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:63
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
|
||||
msgid "Payment date"
|
||||
msgstr "Zahlungsdatum"
|
||||
|
||||
#: pretix/base/models/orders.py:114
|
||||
#: pretix/base/models/orders.py:115
|
||||
msgid "Payment provider"
|
||||
msgstr "Zahlungsmethode"
|
||||
|
||||
#: pretix/base/models/orders.py:118
|
||||
#: pretix/base/models/orders.py:119
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:140
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75
|
||||
msgid "Payment method fee"
|
||||
msgstr "Gebühr für gewählte Zahlungsmethode"
|
||||
|
||||
#: pretix/base/models/orders.py:121
|
||||
#: pretix/base/models/orders.py:122
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:162
|
||||
msgid "Payment information"
|
||||
msgstr "Zahlungsinformationen"
|
||||
|
||||
#: pretix/base/models/orders.py:125
|
||||
#: pretix/base/models/orders.py:126
|
||||
msgid "Payment state was manually modified"
|
||||
msgstr "Der Bestellungsstatus wurde manuell verändert"
|
||||
|
||||
#: pretix/base/models/orders.py:130
|
||||
#: pretix/base/models/orders.py:131
|
||||
msgid "Total amount"
|
||||
msgstr "Gesamtbetrag"
|
||||
|
||||
#: pretix/base/models/orders.py:134 pretix/base/models/orders.py:361
|
||||
#: pretix/base/models/orders.py:135 pretix/base/models/orders.py:362
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:17
|
||||
msgid "Order"
|
||||
msgstr "Bestellung"
|
||||
|
||||
#: pretix/base/models/orders.py:135
|
||||
#: pretix/base/models/orders.py:136
|
||||
#: pretix/control/templates/pretixcontrol/event/base.html:101
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:3
|
||||
#: pretix/control/templates/pretixcontrol/orders/index.html:5
|
||||
msgid "Orders"
|
||||
msgstr "Bestellungen"
|
||||
|
||||
#: pretix/base/models/orders.py:184
|
||||
#: pretix/base/models/orders.py:185
|
||||
msgid "The payment is too late to be accepted."
|
||||
msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können."
|
||||
|
||||
#: pretix/base/models/orders.py:199
|
||||
#: pretix/base/models/orders.py:200
|
||||
msgid "Some of the ordered products were no longer available."
|
||||
msgstr "Einige der ausgewählten Produkte sind nicht mehr verfügbar."
|
||||
|
||||
#: pretix/base/models/orders.py:299
|
||||
#: pretix/base/models/orders.py:300
|
||||
msgid "Variation"
|
||||
msgstr "Variante"
|
||||
|
||||
#: pretix/base/models/orders.py:304
|
||||
#: pretix/base/models/orders.py:305
|
||||
msgid "Price"
|
||||
msgstr "Preis"
|
||||
|
||||
#: pretix/base/models/orders.py:308
|
||||
#: pretix/base/models/orders.py:309
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:106
|
||||
#: pretix/presale/forms/checkout.py:36
|
||||
#: pretix/presale/forms/checkout.py:65
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:16
|
||||
msgid "Attendee name"
|
||||
msgstr "Name des Teilnehmers"
|
||||
|
||||
#: pretix/base/models/orders.py:310
|
||||
#: pretix/base/models/orders.py:311
|
||||
msgid "Empty, if this product is not an admission ticket"
|
||||
msgstr "Leer, wenn dies kein Eintrittsticket ist"
|
||||
|
||||
#: pretix/base/models/orders.py:367
|
||||
#: pretix/base/models/orders.py:368
|
||||
msgid "Tax rate"
|
||||
msgstr "Steuersatz"
|
||||
|
||||
#: pretix/base/models/orders.py:371
|
||||
#: pretix/base/models/orders.py:372
|
||||
msgid "Tax value"
|
||||
msgstr "Steuer"
|
||||
|
||||
#: pretix/base/models/orders.py:375
|
||||
#: pretix/base/models/orders.py:376
|
||||
msgid "Order position"
|
||||
msgstr "Bestelltes Produkt"
|
||||
|
||||
#: pretix/base/models/orders.py:376
|
||||
#: pretix/base/models/orders.py:377
|
||||
msgid "Order positions"
|
||||
msgstr "Bestellzeile"
|
||||
|
||||
#: pretix/base/models/orders.py:436
|
||||
#: pretix/base/models/orders.py:437
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Warenkorb-ID (z.B. Session-ID)"
|
||||
|
||||
#: pretix/base/models/orders.py:447
|
||||
#: pretix/base/models/orders.py:448
|
||||
msgid "Cart position"
|
||||
msgstr "Produkt im Warenkorb"
|
||||
|
||||
#: pretix/base/models/orders.py:448
|
||||
#: pretix/base/models/orders.py:449
|
||||
msgid "Cart positions"
|
||||
msgstr "Produkte im Warenkorb"
|
||||
|
||||
#: pretix/base/models/orders.py:470
|
||||
msgid "Company name"
|
||||
msgstr "Firmenname"
|
||||
|
||||
#: pretix/base/models/orders.py:472
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:192
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:115
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: pretix/base/models/orders.py:473
|
||||
msgid "ZIP code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: pretix/base/models/orders.py:474
|
||||
msgid "City"
|
||||
msgstr "Ort"
|
||||
|
||||
#: pretix/base/models/orders.py:475
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:196
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:119
|
||||
msgid "Country"
|
||||
msgstr "Land"
|
||||
|
||||
#: pretix/base/models/orders.py:476
|
||||
msgid "Phone number"
|
||||
msgstr "Telefonnummer"
|
||||
|
||||
#: pretix/base/models/orders.py:477
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:201
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:124
|
||||
msgid "VAT ID"
|
||||
msgstr "USt-ID"
|
||||
|
||||
#: pretix/base/models/organizer.py:43
|
||||
#: pretix/control/templates/pretixcontrol/events/index.html:20
|
||||
#: pretix/control/templates/pretixcontrol/organizers/detail.html:4
|
||||
@@ -753,7 +793,7 @@ msgstr "Kostenlos"
|
||||
msgid "The order has been marked as refunded."
|
||||
msgstr "Die Bestellung wurde als zurückerstattet markiert."
|
||||
|
||||
#: pretix/base/services/cart.py:20 pretix/base/services/orders.py:29
|
||||
#: pretix/base/services/cart.py:20 pretix/base/services/orders.py:30
|
||||
msgid ""
|
||||
"We were not able to process your request completely as the server was too "
|
||||
"busy. Please try again."
|
||||
@@ -769,7 +809,7 @@ msgstr "Du hast keine Produkte ausgewählt."
|
||||
msgid "You selected a product which is not available for sale."
|
||||
msgstr "Du hsat ein Produkt ausgewählt, das nicht zum Verkauf steht."
|
||||
|
||||
#: pretix/base/services/cart.py:24 pretix/base/services/orders.py:21
|
||||
#: pretix/base/services/cart.py:24 pretix/base/services/orders.py:22
|
||||
msgid ""
|
||||
"Some of the products you selected were no longer available. Please see below "
|
||||
"for details."
|
||||
@@ -777,7 +817,7 @@ msgstr ""
|
||||
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr "
|
||||
"verfügbar, bitte überprüfe deinen Warenkorb."
|
||||
|
||||
#: pretix/base/services/cart.py:26 pretix/base/services/orders.py:23
|
||||
#: pretix/base/services/cart.py:26 pretix/base/services/orders.py:24
|
||||
msgid ""
|
||||
"Some of the products you selected were no longer available in the quantity "
|
||||
"you selected. Please see below for details."
|
||||
@@ -785,7 +825,7 @@ msgstr ""
|
||||
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der "
|
||||
"gewünschten Anzahl verfügbar, bitte überprüfe deinen Warenkorb."
|
||||
|
||||
#: pretix/base/services/cart.py:28 pretix/base/services/orders.py:27
|
||||
#: pretix/base/services/cart.py:28 pretix/base/services/orders.py:28
|
||||
#, python-format
|
||||
msgid "You cannot select more than %s items per order"
|
||||
msgstr "Du kannst nicht mehr als %s Produkte pro Bestellung auswählen"
|
||||
@@ -819,7 +859,7 @@ msgstr ""
|
||||
"Du erhältst diese E-Mail, weil du eine Bestellung für die Veranstaltung %s "
|
||||
"getätigt hast."
|
||||
|
||||
#: pretix/base/services/orders.py:25
|
||||
#: pretix/base/services/orders.py:26
|
||||
msgid ""
|
||||
"The price of some of the items in your cart has changed in the meantime. "
|
||||
"Please see below for details."
|
||||
@@ -827,26 +867,26 @@ msgstr ""
|
||||
"Der Preis einiger Produkte in deinem Warenkorb hat sich zwischenzeitlich "
|
||||
"geändert."
|
||||
|
||||
#: pretix/base/services/orders.py:28
|
||||
#: pretix/base/services/orders.py:29
|
||||
msgid "An internal error occured, please try again."
|
||||
msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen."
|
||||
|
||||
#: pretix/base/services/orders.py:31
|
||||
#: pretix/base/services/orders.py:32
|
||||
msgid "A voucher you tried to use already has been used."
|
||||
msgstr ""
|
||||
"Ein Gutscheincode, den du verwenden wolltest, wurde zwischenzeitlich bereits "
|
||||
"eingelöst."
|
||||
|
||||
#: pretix/base/services/orders.py:32
|
||||
#: pretix/base/services/orders.py:33
|
||||
msgid "A voucher you tried to use has expired."
|
||||
msgstr "Ein Gutscheincode, den du verwenden wolltest, ist abgelaufen."
|
||||
|
||||
#: pretix/base/services/orders.py:76
|
||||
#: pretix/base/services/orders.py:77
|
||||
#, python-format
|
||||
msgid "Payment received for your order: %(code)s"
|
||||
msgstr "Zahlung erhalten für die Bestellung: %(code)s"
|
||||
|
||||
#: pretix/base/services/orders.py:241 pretix/control/views/orders.py:208
|
||||
#: pretix/base/services/orders.py:254 pretix/control/views/orders.py:208
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:21
|
||||
#, python-format
|
||||
msgid "Your order: %(code)s"
|
||||
@@ -860,7 +900,7 @@ msgstr "Unkategorisiert"
|
||||
msgid "Payment method fees"
|
||||
msgstr "Zahlungsgebühren"
|
||||
|
||||
#: pretix/base/settings.py:102
|
||||
#: pretix/base/settings.py:114
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -886,7 +926,7 @@ msgstr ""
|
||||
"Viele Grüße,\n"
|
||||
"Das {event} Team"
|
||||
|
||||
#: pretix/base/settings.py:115
|
||||
#: pretix/base/settings.py:127
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -914,7 +954,7 @@ msgstr ""
|
||||
"Viele Grüße,\n"
|
||||
"Das {event} Team"
|
||||
|
||||
#: pretix/base/settings.py:130
|
||||
#: pretix/base/settings.py:142
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
@@ -1191,56 +1231,75 @@ msgstr "Namen des Teilnehmer erfordern"
|
||||
msgid "Require customers to fill in the names of all attendees."
|
||||
msgstr "Erfordere die Eingabe aller Teilnehmer-Namen."
|
||||
|
||||
#: pretix/control/forms/event.py:135
|
||||
#: pretix/control/forms/event.py:134
|
||||
msgid "Ask for invoice address"
|
||||
msgstr "Rechnungsadresse erfragen"
|
||||
|
||||
#: pretix/control/forms/event.py:138
|
||||
msgid "Require invoice address"
|
||||
msgstr "Rechnungsadresse erforderlich"
|
||||
|
||||
#: pretix/control/forms/event.py:142
|
||||
msgid "Ask for VAT ID"
|
||||
msgstr "Nach USt-ID fragen"
|
||||
|
||||
#: pretix/control/forms/event.py:143
|
||||
msgid ""
|
||||
"Does only work if an invoice address is asked for. VAT ID is not required."
|
||||
msgstr ""
|
||||
"Funktioniert nur, wenn nach einer Rechnungsadresse gefragt wird. Die USt-ID-"
|
||||
"Eingabe ist freiwillig."
|
||||
|
||||
#: pretix/control/forms/event.py:148
|
||||
msgid "Maximum number of items per order"
|
||||
msgstr "Maximale Anzahl Produkte pro Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:139
|
||||
#: pretix/control/forms/event.py:152
|
||||
msgid "Reservation period"
|
||||
msgstr "Reservierungszeitraum"
|
||||
|
||||
#: pretix/control/forms/event.py:140
|
||||
#: pretix/control/forms/event.py:153
|
||||
msgid ""
|
||||
"The number of minutes the items in a user's card are reserved for this user."
|
||||
msgstr ""
|
||||
"Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert "
|
||||
"werden."
|
||||
|
||||
#: pretix/control/forms/event.py:143
|
||||
#: pretix/control/forms/event.py:156
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (URL)"
|
||||
|
||||
#: pretix/control/forms/event.py:147
|
||||
#: pretix/control/forms/event.py:160
|
||||
msgid "Contact address"
|
||||
msgstr "Kontakt-E-Mail"
|
||||
|
||||
#: pretix/control/forms/event.py:149
|
||||
#: pretix/control/forms/event.py:162
|
||||
msgid "Public email address for contacting the organizer"
|
||||
msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters"
|
||||
|
||||
#: pretix/control/forms/event.py:156
|
||||
#: pretix/control/forms/event.py:169
|
||||
msgid ""
|
||||
"Your default locale must also be enebled for your event (see box above)."
|
||||
msgstr ""
|
||||
"Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter "
|
||||
"oben)."
|
||||
|
||||
#: pretix/control/forms/event.py:160
|
||||
#: pretix/control/forms/event.py:173
|
||||
msgid ""
|
||||
"You cannot require specifying attendee names if you do not ask for them."
|
||||
msgstr ""
|
||||
"Du kannst die Angabe von Teilnehmernamen nur erfordern, wenn auch nach Namen "
|
||||
"gefragt wird."
|
||||
|
||||
#: pretix/control/forms/event.py:189 pretix/control/forms/event.py:283
|
||||
#: pretix/control/forms/event.py:202 pretix/control/forms/event.py:296
|
||||
msgid "This field is required."
|
||||
msgstr "Dieses Feld ist erforderlich."
|
||||
|
||||
#: pretix/control/forms/event.py:194
|
||||
#: pretix/control/forms/event.py:207
|
||||
msgid "Subject prefix"
|
||||
msgstr "Betreffs-Prefix"
|
||||
|
||||
#: pretix/control/forms/event.py:195
|
||||
#: pretix/control/forms/event.py:208
|
||||
msgid ""
|
||||
"This will be prepended to the subject of all outgoing emails. This could be "
|
||||
"a short form of your event name."
|
||||
@@ -1248,19 +1307,19 @@ msgstr ""
|
||||
"Dies wird jedem E-Mail-Betreff vorangestellt und könnten z.B. eine Kurzform "
|
||||
"Ihres Veranstaltungsnamens enthalten."
|
||||
|
||||
#: pretix/control/forms/event.py:200
|
||||
#: pretix/control/forms/event.py:213
|
||||
msgid "Sender address"
|
||||
msgstr "Absender-Adresse"
|
||||
|
||||
#: pretix/control/forms/event.py:201
|
||||
#: pretix/control/forms/event.py:214
|
||||
msgid "Sender address for outgoing e-mails"
|
||||
msgstr "Absender-Adresse für ausgehende E-Mails"
|
||||
|
||||
#: pretix/control/forms/event.py:204
|
||||
#: pretix/control/forms/event.py:217
|
||||
msgid "Placed order"
|
||||
msgstr "Getätigte Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:207
|
||||
#: pretix/control/forms/event.py:220
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, "
|
||||
@@ -1269,25 +1328,25 @@ msgstr ""
|
||||
"Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, "
|
||||
"{url}"
|
||||
|
||||
#: pretix/control/forms/event.py:210
|
||||
#: pretix/control/forms/event.py:223
|
||||
msgid "Paid order"
|
||||
msgstr "Bezahlt Bestellung"
|
||||
|
||||
#: pretix/control/forms/event.py:213 pretix/control/forms/event.py:219
|
||||
#: pretix/control/forms/event.py:226 pretix/control/forms/event.py:232
|
||||
#, python-brace-format
|
||||
msgid "Available placeholders: {event}, {url}"
|
||||
msgstr "Verfügbare Platzhalter: {event}, {url}"
|
||||
|
||||
#: pretix/control/forms/event.py:216
|
||||
#: pretix/control/forms/event.py:229
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:76
|
||||
msgid "Resend link"
|
||||
msgstr "Link erneut senden"
|
||||
|
||||
#: pretix/control/forms/event.py:222
|
||||
#: pretix/control/forms/event.py:235
|
||||
msgid "Use custom SMTP server"
|
||||
msgstr "Eigenen SMTP-Server verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:223
|
||||
#: pretix/control/forms/event.py:236
|
||||
msgid ""
|
||||
"All mail related to your event will be sent over the smtp server specified "
|
||||
"by you."
|
||||
@@ -1295,49 +1354,49 @@ msgstr ""
|
||||
"Alle E-Mails bezüglich deiner Veranstaltung werden über den von dir "
|
||||
"angegebenen SMTP-Server versendet."
|
||||
|
||||
#: pretix/control/forms/event.py:227
|
||||
#: pretix/control/forms/event.py:240
|
||||
msgid "Hostname"
|
||||
msgstr "Hostname"
|
||||
|
||||
#: pretix/control/forms/event.py:231
|
||||
#: pretix/control/forms/event.py:244
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: pretix/control/forms/event.py:235
|
||||
#: pretix/control/forms/event.py:248
|
||||
msgid "Username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: pretix/control/forms/event.py:244
|
||||
#: pretix/control/forms/event.py:257
|
||||
msgid "Use STARTTLS"
|
||||
msgstr "STARTTLS verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:245
|
||||
#: pretix/control/forms/event.py:258
|
||||
msgid "Commonly enabled on port 587."
|
||||
msgstr "Meistens auf Port 587 verfügbar."
|
||||
|
||||
#: pretix/control/forms/event.py:249
|
||||
#: pretix/control/forms/event.py:262
|
||||
msgid "Use SSL"
|
||||
msgstr "SSL verwenden"
|
||||
|
||||
#: pretix/control/forms/event.py:250
|
||||
#: pretix/control/forms/event.py:263
|
||||
msgid "Commonly enabled on port 465."
|
||||
msgstr "Meistens auf Port 465 verfügbar."
|
||||
|
||||
#: pretix/control/forms/event.py:257
|
||||
#: pretix/control/forms/event.py:270
|
||||
msgid "Use feature"
|
||||
msgstr "Funktion benutzen"
|
||||
|
||||
#: pretix/control/forms/event.py:258
|
||||
#: pretix/control/forms/event.py:271
|
||||
msgid "Use pretix to generate tickets for the user to download and print out."
|
||||
msgstr ""
|
||||
"Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der "
|
||||
"Benutzer herunterladen und ausdrucken kann."
|
||||
|
||||
#: pretix/control/forms/event.py:262
|
||||
#: pretix/control/forms/event.py:275
|
||||
msgid "Download date"
|
||||
msgstr "Download-Datum"
|
||||
|
||||
#: pretix/control/forms/event.py:263
|
||||
#: pretix/control/forms/event.py:276
|
||||
msgid "Ticket download will be offered after this date."
|
||||
msgstr "Der Ticket-Download wird zu diesem Zeitpunkt freigeschaltet."
|
||||
|
||||
@@ -1408,7 +1467,7 @@ msgstr "Neues Passwort setzen"
|
||||
#: pretix/control/templates/pretixcontrol/event/mail.html:30
|
||||
#: pretix/control/templates/pretixcontrol/event/payment.html:31
|
||||
#: pretix/control/templates/pretixcontrol/event/permissions.html:56
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:47
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:50
|
||||
#: pretix/control/templates/pretixcontrol/event/tickets.html:36
|
||||
#: pretix/control/templates/pretixcontrol/events/create.html:30
|
||||
#: pretix/control/templates/pretixcontrol/item/index.html:28
|
||||
@@ -1486,9 +1545,9 @@ msgid "General"
|
||||
msgstr "Allgemeines"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/base.html:30
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:52
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:51
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:31
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:111
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:148
|
||||
msgid "Payment"
|
||||
msgstr "Zahlung"
|
||||
|
||||
@@ -1952,7 +2011,7 @@ msgstr "Verbleibende Kapazität"
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:4
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:8
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:28
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:101
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:138
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:4
|
||||
msgid "Cancel order"
|
||||
msgstr "Stornieren"
|
||||
@@ -2056,6 +2115,32 @@ msgstr "Der Status dieser Bestellung wurde manuell verändert."
|
||||
msgid "The payment has to be completed before %(date)s."
|
||||
msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:183
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:70
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:30
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:106
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:19
|
||||
msgid "Invoice information"
|
||||
msgstr "Rechnungsinformationen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:188
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:75
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:111
|
||||
msgid "Company"
|
||||
msgstr "Firma"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:194
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:117
|
||||
msgid "ZIP code and city"
|
||||
msgstr "PLZ und Ort"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:198
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:121
|
||||
msgid "Phone"
|
||||
msgstr "Telefon"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund.html:10
|
||||
msgid "Do you really want to refund this order? You cannot revert this action."
|
||||
msgstr ""
|
||||
@@ -2367,11 +2452,11 @@ msgstr "Die Bestellung wurde storniert."
|
||||
msgid "The order has been marked as not paid."
|
||||
msgstr "Die Bestellung wurde als unbezahlt markiert."
|
||||
|
||||
#: pretix/control/views/orders.py:236 pretix/presale/views/order.py:279
|
||||
#: pretix/control/views/orders.py:236 pretix/presale/views/order.py:296
|
||||
msgid "You requested an invalid ticket output type."
|
||||
msgstr "Du hast einen ungültigen Ausgabetyp gewählt."
|
||||
|
||||
#: pretix/control/views/orders.py:239 pretix/presale/views/order.py:284
|
||||
#: pretix/control/views/orders.py:239 pretix/presale/views/order.py:301
|
||||
msgid "Order is not paid."
|
||||
msgstr "Bestellung ist nicht bezahlt."
|
||||
|
||||
@@ -2548,7 +2633,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:43
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:56
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:72
|
||||
#: pretix/presale/templates/pretixpresale/event/order_pay.html:26
|
||||
msgid "Continue"
|
||||
msgstr "Fortfahren"
|
||||
@@ -3264,28 +3349,36 @@ msgstr "Veranstaltungsname-y-Position (mm)"
|
||||
msgid "Event name size (mm)"
|
||||
msgstr "Veranstaltungsname-Größe (mm)"
|
||||
|
||||
#: pretix/presale/checkoutflow.py:147 pretix/presale/views/order.py:217
|
||||
#: pretix/presale/checkoutflow.py:166 pretix/presale/views/order.py:232
|
||||
msgid ""
|
||||
"We had difficulties processing your input. Please review the errors below."
|
||||
msgstr "Wir hatten Schwierigkeiten, deine Eingabe zu verarbeiten."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:158 pretix/presale/checkoutflow.py:163
|
||||
#: pretix/presale/checkoutflow.py:181 pretix/presale/checkoutflow.py:186
|
||||
msgid "Please enter a valid e-mail address."
|
||||
msgstr "Bitte gib eine gültige E-Mail-Adresse ein."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:173 pretix/presale/checkoutflow.py:178
|
||||
#: pretix/presale/checkoutflow.py:196 pretix/presale/checkoutflow.py:201
|
||||
msgid "Please fill in answers to all required questions."
|
||||
msgstr "Bitte fülle Antworten zu allen benötigten Fragen ein."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:229
|
||||
#: pretix/presale/checkoutflow.py:253
|
||||
msgid "Please select a payment method."
|
||||
msgstr "Bitte wähle eine Zahlungsmethode aus."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:250 pretix/presale/checkoutflow.py:256
|
||||
#: pretix/presale/views/order.py:154 pretix/presale/views/order.py:184
|
||||
#: pretix/presale/checkoutflow.py:274 pretix/presale/checkoutflow.py:280
|
||||
#: pretix/presale/views/order.py:156 pretix/presale/views/order.py:186
|
||||
msgid "The payment information you entered was incomplete."
|
||||
msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig."
|
||||
|
||||
#: pretix/presale/forms/checkout.py:19
|
||||
msgid "Street and Number"
|
||||
msgstr "Straße und Hausnummer"
|
||||
|
||||
#: pretix/presale/forms/checkout.py:37
|
||||
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
|
||||
msgid "The selected event was not found."
|
||||
msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden."
|
||||
@@ -3321,8 +3414,9 @@ msgstr ""
|
||||
"Bitte überprüfe die untenstehenden Details und bestätige deine Bestellung."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:17
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:47
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:65
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:46
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:66
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:102
|
||||
msgid "Modify"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
@@ -3344,22 +3438,22 @@ msgstr ""
|
||||
msgid "The items in your cart are no longer reserved for you."
|
||||
msgstr "Die Produkte in deinem Warenkorb sind nicht mehr für dich reserviert."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:69
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:106
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:15
|
||||
msgid "Contact information"
|
||||
msgstr "Kontaktinformationen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
|
||||
msgid "E-mail address"
|
||||
msgstr "E-Mail-Adresse"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:84
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:122
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:38
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:51
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:67
|
||||
msgid "Go back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:89
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:127
|
||||
msgid "Place binding order"
|
||||
msgstr "Zahlungspflichtig bestellen"
|
||||
|
||||
@@ -3479,6 +3573,7 @@ msgid "You will be able to download your tickets here on %(date)s."
|
||||
msgstr "Du kannst deine Tickets hier ab %(date)s herunterladen."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:82
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:101
|
||||
msgid "Change details"
|
||||
msgstr "Details bearbeiten"
|
||||
|
||||
@@ -3496,11 +3591,11 @@ msgstr "Bestellung bearbeiten"
|
||||
msgid "Modify order: %(code)s"
|
||||
msgstr "Bestellung bearbeiten: %(code)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:40
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:56
|
||||
msgid "Revert changes"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:45
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html:61
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
@@ -3584,27 +3679,27 @@ msgstr "Die gewählten Produkte wurden deinem Warenkorb hinzugefügt."
|
||||
msgid "Your cart is empty"
|
||||
msgstr "Dein Warenkorb ist leer."
|
||||
|
||||
#: pretix/presale/views/order.py:53 pretix/presale/views/order.py:105
|
||||
#: pretix/presale/views/order.py:147 pretix/presale/views/order.py:180
|
||||
#: pretix/presale/views/order.py:229 pretix/presale/views/order.py:249
|
||||
#: pretix/presale/views/order.py:282
|
||||
#: pretix/presale/views/order.py:55 pretix/presale/views/order.py:107
|
||||
#: pretix/presale/views/order.py:149 pretix/presale/views/order.py:182
|
||||
#: pretix/presale/views/order.py:245 pretix/presale/views/order.py:266
|
||||
#: pretix/presale/views/order.py:299
|
||||
msgid "Unknown order code or not authorized to access this order."
|
||||
msgstr ""
|
||||
"Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer."
|
||||
|
||||
#: pretix/presale/views/order.py:109 pretix/presale/views/order.py:149
|
||||
#: pretix/presale/views/order.py:111 pretix/presale/views/order.py:151
|
||||
msgid "The payment for this order cannot be continued."
|
||||
msgstr "Diese Bestellung kann nicht mehr bezahlt werden."
|
||||
|
||||
#: pretix/presale/views/order.py:231
|
||||
#: pretix/presale/views/order.py:247
|
||||
msgid "You cannot modify this order"
|
||||
msgstr "Sie können diese Bestellung nicht bearbeiten"
|
||||
|
||||
#: pretix/presale/views/order.py:251
|
||||
#: pretix/presale/views/order.py:268
|
||||
msgid "You cannot cancel this order"
|
||||
msgstr "Sie können diese Bestellung nicht stornieren"
|
||||
|
||||
#: pretix/presale/views/order.py:289
|
||||
#: pretix/presale/views/order.py:306
|
||||
msgid "Ticket download is not (yet) enabled."
|
||||
msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet."
|
||||
|
||||
@@ -3722,9 +3817,6 @@ msgstr "Deutsch (Du)"
|
||||
#~ msgid "Deselect all"
|
||||
#~ msgstr "Keine auswählen"
|
||||
|
||||
#~ msgid "Require e-mail adresses"
|
||||
#~ msgstr "E-Mail-Adresse erfordern"
|
||||
|
||||
#~ msgid "Require all customers to provide an e-mail address."
|
||||
#~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern."
|
||||
|
||||
|
||||
@@ -11,10 +11,11 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic.base import TemplateResponseMixin
|
||||
|
||||
from pretix.base.models import CartPosition, Order
|
||||
from pretix.base.models.orders import InvoiceAddress
|
||||
from pretix.base.services.orders import OrderError, perform_order
|
||||
from pretix.base.signals import register_payment_providers
|
||||
from pretix.multidomain.urlreverse import eventreverse
|
||||
from pretix.presale.forms.checkout import ContactForm
|
||||
from pretix.presale.forms.checkout import ContactForm, InvoiceAddressForm
|
||||
from pretix.presale.signals import checkout_flow_steps
|
||||
from pretix.presale.views import CartMixin
|
||||
from pretix.presale.views.async import AsyncAction
|
||||
@@ -139,14 +140,36 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
||||
'email': self.request.session.get('email', '')
|
||||
})
|
||||
|
||||
@cached_property
|
||||
def invoice_address(self):
|
||||
try:
|
||||
return InvoiceAddress.objects.get(
|
||||
pk=self.request.session.get('invoice_address'),
|
||||
order__isnull=True
|
||||
)
|
||||
except InvoiceAddress.DoesNotExist:
|
||||
return InvoiceAddress()
|
||||
|
||||
@cached_property
|
||||
def invoice_form(self):
|
||||
return InvoiceAddressForm(data=self.request.POST if self.request.method == "POST" else None,
|
||||
event=self.request.event,
|
||||
instance=self.invoice_address)
|
||||
|
||||
def post(self, request):
|
||||
self.request = request
|
||||
failed = not self.save() or not self.contact_form.is_valid()
|
||||
if request.event.settings.invoice_address_asked:
|
||||
failed = failed or not self.invoice_form.is_valid()
|
||||
if failed:
|
||||
messages.error(request,
|
||||
_("We had difficulties processing your input. Please review the errors below."))
|
||||
return self.render()
|
||||
request.session['email'] = self.contact_form.cleaned_data['email']
|
||||
if request.event.settings.invoice_address_asked:
|
||||
addr = self.invoice_form.save()
|
||||
request.session['invoice_address'] = addr.pk
|
||||
|
||||
return redirect(self.get_next_url(request))
|
||||
|
||||
def is_completed(self, request, warn=False):
|
||||
@@ -183,6 +206,7 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['forms'] = self.forms
|
||||
ctx['contact_form'] = self.contact_form
|
||||
ctx['invoice_form'] = self.invoice_form
|
||||
return ctx
|
||||
|
||||
|
||||
@@ -282,6 +306,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
|
||||
ctx['cart'] = self.get_cart(answers=True)
|
||||
ctx['payment'] = self.payment_provider.checkout_confirm_render(self.request)
|
||||
ctx['payment_provider'] = self.payment_provider
|
||||
ctx['addr'] = self.invoice_address
|
||||
return ctx
|
||||
|
||||
@cached_property
|
||||
@@ -292,6 +317,16 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
|
||||
if provider.identifier == self.request.session['payment']:
|
||||
return provider
|
||||
|
||||
@cached_property
|
||||
def invoice_address(self):
|
||||
try:
|
||||
return InvoiceAddress.objects.get(
|
||||
pk=self.request.session.get('invoice_address'),
|
||||
order__isnull=True
|
||||
)
|
||||
except InvoiceAddress.DoesNotExist:
|
||||
return InvoiceAddress()
|
||||
|
||||
def get(self, request):
|
||||
self.request = request
|
||||
if 'async_id' in request.GET and settings.HAS_CELERY:
|
||||
@@ -302,7 +337,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
|
||||
self.request = request
|
||||
return self.do(self.request.event.id, self.payment_provider.identifier,
|
||||
[p.id for p in self.positions], request.session.get('email'),
|
||||
translation.get_language())
|
||||
translation.get_language(), self.invoice_address.pk)
|
||||
|
||||
def get_success_message(self, value):
|
||||
return None
|
||||
|
||||
@@ -1,13 +1,42 @@
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from pretix.base.models import Question
|
||||
from pretix.base.models.orders import InvoiceAddress
|
||||
|
||||
|
||||
class ContactForm(forms.Form):
|
||||
email = forms.EmailField(label=_('E-mail'))
|
||||
|
||||
|
||||
class InvoiceAddressForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = InvoiceAddress
|
||||
fields = ('company', 'name', 'street', 'zipcode', 'city', 'country', 'phone', 'vat_id')
|
||||
widgets = {
|
||||
'street': forms.Textarea(attrs={'rows': 2, 'placeholder': _('Street and Number')}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.event = event = kwargs.pop('event')
|
||||
super().__init__(*args, **kwargs)
|
||||
if not event.settings.invoice_address_vatid:
|
||||
del self.fields['vat_id']
|
||||
if not event.settings.invoice_address_required:
|
||||
for k, f in self.fields.items():
|
||||
f.required = False
|
||||
f.widget.is_required = False
|
||||
if 'required' in f.widget.attrs:
|
||||
del f.widget.attrs['required']
|
||||
|
||||
def clean(self):
|
||||
data = self.cleaned_data
|
||||
if not data['name'] and not data['company'] and self.event.settings.invoice_address_required:
|
||||
raise ValidationError(_('You need to provide either a company name or your name.'))
|
||||
|
||||
|
||||
class QuestionsForm(forms.Form):
|
||||
"""
|
||||
This form class is responsible for asking order-related questions. This includes
|
||||
|
||||
@@ -37,26 +37,63 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{% if payment_provider.identifier != "free" %}
|
||||
<div class="pull-right">
|
||||
<a href="{% eventurl request.event "presale:event.checkout" step="payment" %}">
|
||||
<span class="fa fa-edit"></span>
|
||||
{% trans "Modify" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3 class="panel-title">
|
||||
{% trans "Payment" %}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{{ payment }}
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{% if payment_provider.identifier != "free" %}
|
||||
<div class="pull-right">
|
||||
<a href="{% eventurl request.event "presale:event.checkout" step="payment" %}">
|
||||
<span class="fa fa-edit"></span>
|
||||
{% trans "Modify" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3 class="panel-title">
|
||||
{% trans "Payment" %}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="panel-body">
|
||||
{{ payment }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
{% if request.event.settings.invoice_address_asked %}
|
||||
<div class="col-md-6 col-xs-12">
|
||||
<div class="panel panel-primary panel-contact">
|
||||
<div class="panel-heading">
|
||||
<div class="pull-right">
|
||||
<a href="{% eventurl request.event "presale:event.checkout" step="questions" %}">
|
||||
<span class="fa fa-edit"></span>
|
||||
{% trans "Modify" %}
|
||||
</a>
|
||||
</div>
|
||||
<h3 class="panel-title">
|
||||
{% trans "Invoice information" %}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>{% trans "Company" %}</dt>
|
||||
<dd>{{ addr.company }}</dd>
|
||||
<dt>{% trans "Name" %}</dt>
|
||||
<dd>{{ addr.name }}</dd>
|
||||
<dt>{% trans "Address" %}</dt>
|
||||
<dd>{{ addr.street|linebreaksbr }}</dd>
|
||||
<dt>{% trans "ZIP code and city" %}</dt>
|
||||
<dd>{{ addr.zipcode }} {{ addr.city }}</dd>
|
||||
<dt>{% trans "Country" %}</dt>
|
||||
<dd>{{ addr.country }}</dd>
|
||||
<dt>{% trans "Phone" %}</dt>
|
||||
<dd>{{ addr.phone }}</dd>
|
||||
{% if request.event.settings.invoice_address_vatid %}
|
||||
<dt>{% trans "VAT ID" %}</dt>
|
||||
<dd>{{ addr.vat_id }}</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="{% if request.event.settings.invoice_address_asked %}col-md-6{% endif %} col-xs-12">
|
||||
<div class="panel panel-primary panel-contact">
|
||||
<div class="panel-heading">
|
||||
<div class="pull-right">
|
||||
@@ -77,20 +114,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row checkout-button-row">
|
||||
<div class="col-md-4">
|
||||
<a class="btn btn-block btn-default btn-lg"
|
||||
href="{{ prev_url }}">
|
||||
{% trans "Go back" %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<button class="btn btn-block btn-primary btn-lg" type="submit">
|
||||
{% trans "Place binding order" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<div class="row checkout-button-row clearfix">
|
||||
<div class="col-md-4">
|
||||
<a class="btn btn-block btn-default btn-lg"
|
||||
href="{{ prev_url }}">
|
||||
{% trans "Go back" %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<button class="btn btn-block btn-primary btn-lg" type="submit">
|
||||
{% trans "Place binding order" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -22,6 +22,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if event.settings.invoice_address_asked %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" href="#invoice" data-parent="#questions_accordion">
|
||||
<strong>{% trans "Invoice information" %}</strong>
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="invoice" class="panel-collapse collapsed in">
|
||||
<div class="panel-body">
|
||||
{% bootstrap_form invoice_form layout="horizontal" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for form in forms %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
|
||||
@@ -91,6 +91,43 @@
|
||||
{% include "pretixpresale/event/fragment_cart.html" with cart=cart event=request.event editable=False %}
|
||||
</div>
|
||||
</div>
|
||||
{% if request.event.settings.invoice_address_asked %}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{% if order.can_modify_answers %}
|
||||
<div class="pull-right">
|
||||
<a href="{% eventurl event "presale:event.order.modify" secret=order.secret order=order.code %}">
|
||||
<span class="fa fa-edit"></span>
|
||||
{% trans "Change details" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3 class="panel-title">
|
||||
{% trans "Invoice information" %}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>{% trans "Company" %}</dt>
|
||||
<dd>{{ order.invoice_address.company }}</dd>
|
||||
<dt>{% trans "Name" %}</dt>
|
||||
<dd>{{ order.invoice_address.name }}</dd>
|
||||
<dt>{% trans "Address" %}</dt>
|
||||
<dd>{{ order.invoice_address.street|linebreaksbr }}</dd>
|
||||
<dt>{% trans "ZIP code and city" %}</dt>
|
||||
<dd>{{ order.invoice_address.zipcode }} {{ addr.city }}</dd>
|
||||
<dt>{% trans "Country" %}</dt>
|
||||
<dd>{{ order.invoice_address.country }}</dd>
|
||||
<dt>{% trans "Phone" %}</dt>
|
||||
<dd>{{ order.invoice_address.phone }}</dd>
|
||||
{% if request.event.settings.invoice_address_vatid %}
|
||||
<dt>{% trans "VAT ID" %}</dt>
|
||||
<dd>{{ order.invoice_address.vat_id }}</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if order.status == "n" %}
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
|
||||
@@ -11,6 +11,22 @@
|
||||
<form class="form-horizontal" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="panel-group" id="questions_accordion">
|
||||
{% if event.settings.invoice_address_asked %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" href="#invoice" data-parent="#questions_accordion">
|
||||
<strong>{% trans "Invoice information" %}</strong>
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="invoice" class="panel-collapse collapsed in">
|
||||
<div class="panel-body">
|
||||
{% bootstrap_form invoice_form layout="horizontal" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for form in forms %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
|
||||
@@ -10,12 +10,14 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import TemplateView, View
|
||||
|
||||
from pretix.base.models import CachedFile, CachedTicket, Order, OrderPosition
|
||||
from pretix.base.models.orders import InvoiceAddress
|
||||
from pretix.base.services.orders import cancel_order
|
||||
from pretix.base.services.tickets import generate
|
||||
from pretix.base.signals import (
|
||||
register_payment_providers, register_ticket_outputs,
|
||||
)
|
||||
from pretix.multidomain.urlreverse import eventreverse
|
||||
from pretix.presale.forms.checkout import InvoiceAddressForm
|
||||
from pretix.presale.views import CartMixin, EventViewMixin
|
||||
from pretix.presale.views.questions import QuestionsViewMixin
|
||||
|
||||
@@ -210,12 +212,26 @@ class OrderModify(EventViewMixin, OrderDetailMixin, QuestionsViewMixin, Template
|
||||
'item__questions', 'answers'
|
||||
))
|
||||
|
||||
@cached_property
|
||||
def invoice_address(self):
|
||||
if self.order.invoice_address:
|
||||
return self.order.invoice_address
|
||||
else:
|
||||
return InvoiceAddress(order=self.order)
|
||||
|
||||
@cached_property
|
||||
def invoice_form(self):
|
||||
return InvoiceAddressForm(data=self.request.POST if self.request.method == "POST" else None,
|
||||
event=self.request.event,
|
||||
instance=self.invoice_address)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
failed = not self.save()
|
||||
failed = not self.save() or not self.invoice_form.is_valid()
|
||||
if failed:
|
||||
messages.error(self.request,
|
||||
_("We had difficulties processing your input. Please review the errors below."))
|
||||
return self.get(request, *args, **kwargs)
|
||||
self.invoice_form.save()
|
||||
self.order.log_action('pretix.event.order.modified')
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
@@ -236,6 +252,7 @@ class OrderModify(EventViewMixin, OrderDetailMixin, QuestionsViewMixin, Template
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['order'] = self.order
|
||||
ctx['forms'] = self.forms
|
||||
ctx['invoice_form'] = self.invoice_form
|
||||
return ctx
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user