Added invoice addresses

This commit is contained in:
Raphael Michel
2016-02-22 13:49:15 +01:00
parent f86fe99acb
commit 14e5134890
16 changed files with 763 additions and 276 deletions

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

View File

@@ -3,6 +3,7 @@ import string
from datetime import datetime from datetime import datetime
from decimal import Decimal from decimal import Decimal
from django import forms
from django.db import models from django.db import models
from django.utils.timezone import now from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -461,3 +462,16 @@ class CartPosition(AbstractPosition):
if not self.tax_rate: if not self.tax_rate:
return Decimal('0.00') return Decimal('0.00')
return round_decimal(self.price * (1 - 100 / (100 + self.item.tax_rate))) 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'))

View File

@@ -10,6 +10,7 @@ from pretix.base.i18n import LazyDate, LazyNumber
from pretix.base.models import ( from pretix.base.models import (
CartPosition, Event, EventLock, Order, OrderPosition, Quota, User, CartPosition, Event, EventLock, Order, OrderPosition, Quota, User,
) )
from pretix.base.models.orders import InvoiceAddress
from pretix.base.payment import BasePaymentProvider from pretix.base.payment import BasePaymentProvider
from pretix.base.services.mail import mail from pretix.base.services.mail import mail
from pretix.base.signals import ( 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], 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) event = Event.objects.get(id=event)
responses = register_payment_providers.send(event) responses = register_payment_providers.send(event)
pprov = None 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, order = _create_order(event, email, positions, dt, pprov,
locale=locale) 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( mail(
order.email, _('Your order: %(code)s') % {'code': order.code}, order.email, _('Your order: %(code)s') % {'code': order.code},
event.settings.mail_text_order_placed, 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], 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: try:
return _perform_order(event, payment_provider, positions, email, locale) return _perform_order(event, payment_provider, positions, email, locale, address)
except EventLock.LockTimeoutException: except EventLock.LockTimeoutException:
# Is raised when there are too many threads asking for event locks and we were # Is raised when there are too many threads asking for event locks and we were
# unable to get one # unable to get one
@@ -271,9 +284,9 @@ if settings.HAS_CELERY:
@app.task(bind=True, max_retries=5, default_retry_delay=2) @app.task(bind=True, max_retries=5, default_retry_delay=2)
def perform_order_task(self, event: str, payment_provider: str, positions: List[str], 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: try:
return _perform_order(event, payment_provider, positions, email, locale) return _perform_order(event, payment_provider, positions, email, locale, address)
except EventLock.LockTimeoutException: except EventLock.LockTimeoutException:
self.retry(exc=OrderError(error_messages['busy'])) self.retry(exc=OrderError(error_messages['busy']))

View File

@@ -25,6 +25,18 @@ DEFAULTS = {
'default': 'False', 'default': 'False',
'type': bool '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': { 'reservation_time': {
'default': '30', 'default': '30',
'type': int 'type': int

View File

@@ -130,6 +130,19 @@ class EventSettingsForm(SettingsForm):
help_text=_("Require customers to fill in the names of all attendees."), help_text=_("Require customers to fill in the names of all attendees."),
required=False 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( max_items_per_order = forms.IntegerField(
min_value=1, min_value=1,
label=_("Maximum number of items per order") label=_("Maximum number of items per order")

View File

@@ -41,6 +41,9 @@
{% bootstrap_field sform.max_items_per_order layout="horizontal" %} {% bootstrap_field sform.max_items_per_order layout="horizontal" %}
{% bootstrap_field sform.attendee_names_asked layout="horizontal" %} {% bootstrap_field sform.attendee_names_asked layout="horizontal" %}
{% bootstrap_field sform.attendee_names_required 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> </fieldset>
<div class="form-group submit-group"> <div class="form-group submit-group">
<button type="submit" class="btn btn-primary btn-save"> <button type="submit" class="btn btn-primary btn-save">

View File

@@ -176,4 +176,33 @@
{% endif %} {% endif %}
</div> </div>
</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 %} {% endblock %}

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-20 14:56+0000\n" "POT-Creation-Date: 2016-02-22 12:43+0000\n"
"PO-Revision-Date: 2016-02-20 15:57+0100\n" "PO-Revision-Date: 2016-02-22 13:45+0100\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n" "Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: Raphael Michel <michel@rami.io>\n" "Language-Team: Raphael Michel <michel@rami.io>\n"
"Language: de\n" "Language: de\n"
@@ -27,13 +27,13 @@ msgid "enabled"
msgstr "aktiviert" msgstr "aktiviert"
#: pretix/base/forms/auth.py:13 pretix/base/forms/auth.py:140 #: 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/base/models/auth.py:63 pretix/base/models/orders.py:95
#: pretix/presale/forms/checkout.py:8 #: pretix/presale/forms/checkout.py:10
msgid "E-mail" msgid "E-mail"
msgstr "E-Mail" msgstr "E-Mail"
#: pretix/base/forms/auth.py:14 pretix/base/forms/auth.py:77 #: 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" msgid "Password"
msgstr "Passwort" msgstr "Passwort"
@@ -149,7 +149,10 @@ msgid "%(family)s, %(given)s"
msgstr "%(family)s, %(given)s" msgstr "%(family)s, %(given)s"
#: pretix/base/models/event.py:53 pretix/base/models/items.py:417 #: pretix/base/models/event.py: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 #: pretix/presale/templates/pretixpresale/organizers/index.html:21
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@@ -220,8 +223,8 @@ msgid "Plugins"
msgstr "Erweiterungen" msgstr "Erweiterungen"
#: pretix/base/models/event.py:96 pretix/base/models/items.py:109 #: 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/items.py:413 pretix/base/models/orders.py:90
#: pretix/base/models/orders.py:432 pretix/base/models/vouchers.py:25 #: pretix/base/models/orders.py:433 pretix/base/models/vouchers.py:25
msgid "Event" msgid "Event"
msgstr "Veranstaltung" msgstr "Veranstaltung"
@@ -438,7 +441,7 @@ msgstr "Gesamtanzahl"
msgid "Leave empty for an unlimited number of tickets." msgid "Leave empty for an unlimited number of tickets."
msgstr "Leer lassen für unbegrenzt viele 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" msgid "Item"
msgstr "Produkt" msgstr "Produkt"
@@ -460,152 +463,189 @@ msgstr "Kontingent"
msgid "Quotas" msgid "Quotas"
msgstr "Kontingente" msgstr "Kontingente"
#: pretix/base/models/orders.py:71 #: pretix/base/models/orders.py:72
msgid "pending" msgid "pending"
msgstr "ausstehend" msgstr "ausstehend"
#: pretix/base/models/orders.py:72 #: pretix/base/models/orders.py:73
msgid "paid" msgid "paid"
msgstr "bezahlt" msgstr "bezahlt"
#: pretix/base/models/orders.py:73 #: pretix/base/models/orders.py:74
msgid "expired" msgid "expired"
msgstr "abgelaufen" msgstr "abgelaufen"
#: pretix/base/models/orders.py:74 #: pretix/base/models/orders.py:75
msgid "cancelled" msgid "cancelled"
msgstr "storniert" msgstr "storniert"
#: pretix/base/models/orders.py:75 #: pretix/base/models/orders.py:76
msgid "refunded" msgid "refunded"
msgstr "erstattet" 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/order/index.html:58
#: pretix/control/templates/pretixcontrol/orders/index.html:10 #: pretix/control/templates/pretixcontrol/orders/index.html:10
#: pretix/control/templates/pretixcontrol/orders/index.html:42 #: pretix/control/templates/pretixcontrol/orders/index.html:42
msgid "Order code" msgid "Order code"
msgstr "Bestellnummer" msgstr "Bestellnummer"
#: pretix/base/models/orders.py:85 #: pretix/base/models/orders.py:86
#: pretix/control/templates/pretixcontrol/orders/index.html:46 #: pretix/control/templates/pretixcontrol/orders/index.html:46
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
#: pretix/base/models/orders.py:98 #: pretix/base/models/orders.py:99
msgid "Locale" msgid "Locale"
msgstr "Sprache" 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_assign.html:17
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13
#: pretix/presale/templates/pretixpresale/organizers/index.html:22 #: pretix/presale/templates/pretixpresale/organizers/index.html:22
msgid "Date" msgid "Date"
msgstr "Datum" 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 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form.html:23
msgid "Expiration date" msgid "Expiration date"
msgstr "Ablaufdatum" msgstr "Ablaufdatum"
#: pretix/base/models/orders.py:108 #: pretix/base/models/orders.py:109
#: pretix/control/templates/pretixcontrol/order/index.html:63 #: pretix/control/templates/pretixcontrol/order/index.html:63
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
msgid "Payment date" msgid "Payment date"
msgstr "Zahlungsdatum" msgstr "Zahlungsdatum"
#: pretix/base/models/orders.py:114 #: pretix/base/models/orders.py:115
msgid "Payment provider" msgid "Payment provider"
msgstr "Zahlungsmethode" msgstr "Zahlungsmethode"
#: pretix/base/models/orders.py:118 #: pretix/base/models/orders.py:119
#: pretix/control/templates/pretixcontrol/order/index.html:140 #: pretix/control/templates/pretixcontrol/order/index.html:140
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75
msgid "Payment method fee" msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode" 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 #: pretix/control/templates/pretixcontrol/order/index.html:162
msgid "Payment information" msgid "Payment information"
msgstr "Zahlungsinformationen" msgstr "Zahlungsinformationen"
#: pretix/base/models/orders.py:125 #: pretix/base/models/orders.py:126
msgid "Payment state was manually modified" msgid "Payment state was manually modified"
msgstr "Der Bestellungsstatus wurde manuell verändert" msgstr "Der Bestellungsstatus wurde manuell verändert"
#: pretix/base/models/orders.py:130 #: pretix/base/models/orders.py:131
msgid "Total amount" msgid "Total amount"
msgstr "Gesamtbetrag" 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 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:17
msgid "Order" msgid "Order"
msgstr "Bestellung" 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/event/base.html:101
#: pretix/control/templates/pretixcontrol/orders/index.html:3 #: pretix/control/templates/pretixcontrol/orders/index.html:3
#: pretix/control/templates/pretixcontrol/orders/index.html:5 #: pretix/control/templates/pretixcontrol/orders/index.html:5
msgid "Orders" msgid "Orders"
msgstr "Bestellungen" msgstr "Bestellungen"
#: pretix/base/models/orders.py:184 #: pretix/base/models/orders.py:185
msgid "The payment is too late to be accepted." msgid "The payment is too late to be accepted."
msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können." 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." msgid "Some of the ordered products were no longer available."
msgstr "Einige der ausgewählten Produkte sind nicht mehr verfügbar." 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" msgid "Variation"
msgstr "Variante" msgstr "Variante"
#: pretix/base/models/orders.py:304 #: pretix/base/models/orders.py:305
msgid "Price" msgid "Price"
msgstr "Preis" msgstr "Preis"
#: pretix/base/models/orders.py:308 #: pretix/base/models/orders.py:309
#: pretix/control/templates/pretixcontrol/order/index.html:106 #: 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 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:16
msgid "Attendee name" msgid "Attendee name"
msgstr "Name des Teilnehmers" 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" msgid "Empty, if this product is not an admission ticket"
msgstr "Leer, wenn dies kein Eintrittsticket ist" msgstr "Leer, wenn dies kein Eintrittsticket ist"
#: pretix/base/models/orders.py:367 #: pretix/base/models/orders.py:368
msgid "Tax rate" msgid "Tax rate"
msgstr "Steuersatz" msgstr "Steuersatz"
#: pretix/base/models/orders.py:371 #: pretix/base/models/orders.py:372
msgid "Tax value" msgid "Tax value"
msgstr "Steuer" msgstr "Steuer"
#: pretix/base/models/orders.py:375 #: pretix/base/models/orders.py:376
msgid "Order position" msgid "Order position"
msgstr "Bestelltes Produkt" msgstr "Bestelltes Produkt"
#: pretix/base/models/orders.py:376 #: pretix/base/models/orders.py:377
msgid "Order positions" msgid "Order positions"
msgstr "Bestellzeile" msgstr "Bestellzeile"
#: pretix/base/models/orders.py:436 #: pretix/base/models/orders.py:437
msgid "Cart ID (e.g. session key)" msgid "Cart ID (e.g. session key)"
msgstr "Warenkorb-ID (z.B. Session-ID)" msgstr "Warenkorb-ID (z.B. Session-ID)"
#: pretix/base/models/orders.py:447 #: pretix/base/models/orders.py:448
msgid "Cart position" msgid "Cart position"
msgstr "Produkt im Warenkorb" msgstr "Produkt im Warenkorb"
#: pretix/base/models/orders.py:448 #: pretix/base/models/orders.py:449
msgid "Cart positions" msgid "Cart positions"
msgstr "Produkte im Warenkorb" 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/base/models/organizer.py:43
#: pretix/control/templates/pretixcontrol/events/index.html:20 #: pretix/control/templates/pretixcontrol/events/index.html:20
#: pretix/control/templates/pretixcontrol/organizers/detail.html:4 #: pretix/control/templates/pretixcontrol/organizers/detail.html:4
@@ -753,7 +793,7 @@ msgstr "Kostenlos"
msgid "The order has been marked as refunded." msgid "The order has been marked as refunded."
msgstr "Die Bestellung wurde als zurückerstattet markiert." 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 "" msgid ""
"We were not able to process your request completely as the server was too " "We were not able to process your request completely as the server was too "
"busy. Please try again." "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." msgid "You selected a product which is not available for sale."
msgstr "Sie haben ein Produkt ausgewählt, das nicht zum Verkauf steht." 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 "" msgid ""
"Some of the products you selected were no longer available. Please see below " "Some of the products you selected were no longer available. Please see below "
"for details." "for details."
@@ -777,7 +817,7 @@ msgstr ""
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr " "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr "
"verfügbar, bitte überprüfen Sie Ihren Warenkorb." "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 "" msgid ""
"Some of the products you selected were no longer available in the quantity " "Some of the products you selected were no longer available in the quantity "
"you selected. Please see below for details." "you selected. Please see below for details."
@@ -785,7 +825,7 @@ msgstr ""
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der " "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der "
"gewünschten Anzahl verfügbar, bitte überprüfen Sie Ihren Warenkorb." "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 #, python-format
msgid "You cannot select more than %s items per order" msgid "You cannot select more than %s items per order"
msgstr "Sie können nicht mehr als %s Produkte pro Bestellung auswählen" 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 " "Sie erhalten diese E-Mail, weil Sie eine Bestellung für die Veranstaltung %s "
"getätigt haben." "getätigt haben."
#: pretix/base/services/orders.py:25 #: pretix/base/services/orders.py:26
msgid "" msgid ""
"The price of some of the items in your cart has changed in the meantime. " "The price of some of the items in your cart has changed in the meantime. "
"Please see below for details." "Please see below for details."
@@ -827,26 +867,26 @@ msgstr ""
"Der Preis einiger Produkte in Ihrem Warenkorb hat sich zwischenzeitlich " "Der Preis einiger Produkte in Ihrem Warenkorb hat sich zwischenzeitlich "
"geändert." "geändert."
#: pretix/base/services/orders.py:28 #: pretix/base/services/orders.py:29
msgid "An internal error occured, please try again." msgid "An internal error occured, please try again."
msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen." 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." msgid "A voucher you tried to use already has been used."
msgstr "" msgstr ""
"Ein Gutscheincode, den Sie verwenden wollten, wurde zwischenzeitlich bereits " "Ein Gutscheincode, den Sie verwenden wollten, wurde zwischenzeitlich bereits "
"eingelöst." "eingelöst."
#: pretix/base/services/orders.py:32 #: pretix/base/services/orders.py:33
msgid "A voucher you tried to use has expired." msgid "A voucher you tried to use has expired."
msgstr "Ein Gutscheincode, den Sie verwenden wollten, ist abgelaufen." msgstr "Ein Gutscheincode, den Sie verwenden wollten, ist abgelaufen."
#: pretix/base/services/orders.py:76 #: pretix/base/services/orders.py:77
#, python-format #, python-format
msgid "Payment received for your order: %(code)s" msgid "Payment received for your order: %(code)s"
msgstr "Zahlung erhalten für die Bestellung: %(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 #: pretix/presale/templates/pretixpresale/event/order.html:21
#, python-format #, python-format
msgid "Your order: %(code)s" msgid "Your order: %(code)s"
@@ -860,7 +900,7 @@ msgstr "Unkategorisiert"
msgid "Payment method fees" msgid "Payment method fees"
msgstr "Zahlungsgebühren" msgstr "Zahlungsgebühren"
#: pretix/base/settings.py:102 #: pretix/base/settings.py:114
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -886,7 +926,7 @@ msgstr ""
"Viele Grüße,\n" "Viele Grüße,\n"
"Das {event} Team" "Das {event} Team"
#: pretix/base/settings.py:115 #: pretix/base/settings.py:127
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -915,7 +955,7 @@ msgstr ""
"Viele Grüße,\n" "Viele Grüße,\n"
"Das {event}s Team" "Das {event}s Team"
#: pretix/base/settings.py:130 #: pretix/base/settings.py:142
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -1194,56 +1234,75 @@ msgstr "Namen des Teilnehmer erfordern"
msgid "Require customers to fill in the names of all attendees." msgid "Require customers to fill in the names of all attendees."
msgstr "Erfordere die Eingabe aller Teilnehmer-Namen." 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" msgid "Maximum number of items per order"
msgstr "Maximale Anzahl Produkte pro Bestellung" msgstr "Maximale Anzahl Produkte pro Bestellung"
#: pretix/control/forms/event.py:139 #: pretix/control/forms/event.py:152
msgid "Reservation period" msgid "Reservation period"
msgstr "Reservierungszeitraum" msgstr "Reservierungszeitraum"
#: pretix/control/forms/event.py:140 #: pretix/control/forms/event.py:153
msgid "" msgid ""
"The number of minutes the items in a user's card are reserved for this user." "The number of minutes the items in a user's card are reserved for this user."
msgstr "" msgstr ""
"Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert " "Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert "
"werden." "werden."
#: pretix/control/forms/event.py:143 #: pretix/control/forms/event.py:156
msgid "Imprint URL" msgid "Imprint URL"
msgstr "Impressum (URL)" msgstr "Impressum (URL)"
#: pretix/control/forms/event.py:147 #: pretix/control/forms/event.py:160
msgid "Contact address" msgid "Contact address"
msgstr "Kontakt-E-Mail" msgstr "Kontakt-E-Mail"
#: pretix/control/forms/event.py:149 #: pretix/control/forms/event.py:162
msgid "Public email address for contacting the organizer" msgid "Public email address for contacting the organizer"
msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters" msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters"
#: pretix/control/forms/event.py:156 #: pretix/control/forms/event.py:169
msgid "" msgid ""
"Your default locale must also be enebled for your event (see box above)." "Your default locale must also be enebled for your event (see box above)."
msgstr "" msgstr ""
"Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter " "Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter "
"oben)." "oben)."
#: pretix/control/forms/event.py:160 #: pretix/control/forms/event.py:173
msgid "" msgid ""
"You cannot require specifying attendee names if you do not ask for them." "You cannot require specifying attendee names if you do not ask for them."
msgstr "" msgstr ""
"Sie können die Angabe von Teilnehmernamen nur erfordern, wenn Sie auch nach " "Sie können die Angabe von Teilnehmernamen nur erfordern, wenn Sie auch nach "
"Namen fragen." "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." msgid "This field is required."
msgstr "Dieses Feld ist erforderlich." msgstr "Dieses Feld ist erforderlich."
#: pretix/control/forms/event.py:194 #: pretix/control/forms/event.py:207
msgid "Subject prefix" msgid "Subject prefix"
msgstr "Betreffs-Prefix" msgstr "Betreffs-Prefix"
#: pretix/control/forms/event.py:195 #: pretix/control/forms/event.py:208
msgid "" msgid ""
"This will be prepended to the subject of all outgoing emails. This could be " "This will be prepended to the subject of all outgoing emails. This could be "
"a short form of your event name." "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 " "Dies wird jedem E-Mail-Betreff vorangestellt und könnten z.B. eine Kurzform "
"Ihres Veranstaltungsnamens enthalten." "Ihres Veranstaltungsnamens enthalten."
#: pretix/control/forms/event.py:200 #: pretix/control/forms/event.py:213
msgid "Sender address" msgid "Sender address"
msgstr "Absender-Adresse" msgstr "Absender-Adresse"
#: pretix/control/forms/event.py:201 #: pretix/control/forms/event.py:214
msgid "Sender address for outgoing e-mails" msgid "Sender address for outgoing e-mails"
msgstr "Absender-Adresse für ausgehende 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" msgid "Placed order"
msgstr "Getätigte Bestellung" msgstr "Getätigte Bestellung"
#: pretix/control/forms/event.py:207 #: pretix/control/forms/event.py:220
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, " "Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, "
@@ -1272,25 +1331,25 @@ msgstr ""
"Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, " "Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, "
"{url}" "{url}"
#: pretix/control/forms/event.py:210 #: pretix/control/forms/event.py:223
msgid "Paid order" msgid "Paid order"
msgstr "Bezahlt Bestellung" 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 #, python-brace-format
msgid "Available placeholders: {event}, {url}" msgid "Available placeholders: {event}, {url}"
msgstr "Verfügbare Platzhalter: {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 #: pretix/control/templates/pretixcontrol/order/index.html:76
msgid "Resend link" msgid "Resend link"
msgstr "Link erneut senden" msgstr "Link erneut senden"
#: pretix/control/forms/event.py:222 #: pretix/control/forms/event.py:235
msgid "Use custom SMTP server" msgid "Use custom SMTP server"
msgstr "Eigenen SMTP-Server verwenden" msgstr "Eigenen SMTP-Server verwenden"
#: pretix/control/forms/event.py:223 #: pretix/control/forms/event.py:236
msgid "" msgid ""
"All mail related to your event will be sent over the smtp server specified " "All mail related to your event will be sent over the smtp server specified "
"by you." "by you."
@@ -1298,49 +1357,49 @@ msgstr ""
"Alle E-Mails bezüglich Ihrer Veranstaltung werden über den von Ihnen " "Alle E-Mails bezüglich Ihrer Veranstaltung werden über den von Ihnen "
"angegebenen SMTP-Server versendet." "angegebenen SMTP-Server versendet."
#: pretix/control/forms/event.py:227 #: pretix/control/forms/event.py:240
msgid "Hostname" msgid "Hostname"
msgstr "Hostname" msgstr "Hostname"
#: pretix/control/forms/event.py:231 #: pretix/control/forms/event.py:244
msgid "Port" msgid "Port"
msgstr "Port" msgstr "Port"
#: pretix/control/forms/event.py:235 #: pretix/control/forms/event.py:248
msgid "Username" msgid "Username"
msgstr "Benutzername" msgstr "Benutzername"
#: pretix/control/forms/event.py:244 #: pretix/control/forms/event.py:257
msgid "Use STARTTLS" msgid "Use STARTTLS"
msgstr "STARTTLS verwenden" msgstr "STARTTLS verwenden"
#: pretix/control/forms/event.py:245 #: pretix/control/forms/event.py:258
msgid "Commonly enabled on port 587." msgid "Commonly enabled on port 587."
msgstr "Meistens auf Port 587 verfügbar." msgstr "Meistens auf Port 587 verfügbar."
#: pretix/control/forms/event.py:249 #: pretix/control/forms/event.py:262
msgid "Use SSL" msgid "Use SSL"
msgstr "SSL verwenden" msgstr "SSL verwenden"
#: pretix/control/forms/event.py:250 #: pretix/control/forms/event.py:263
msgid "Commonly enabled on port 465." msgid "Commonly enabled on port 465."
msgstr "Meistens auf Port 465 verfügbar." msgstr "Meistens auf Port 465 verfügbar."
#: pretix/control/forms/event.py:257 #: pretix/control/forms/event.py:270
msgid "Use feature" msgid "Use feature"
msgstr "Funktion benutzen" 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." msgid "Use pretix to generate tickets for the user to download and print out."
msgstr "" msgstr ""
"Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der " "Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der "
"Benutzer herunterladen und ausdrucken kann." "Benutzer herunterladen und ausdrucken kann."
#: pretix/control/forms/event.py:262 #: pretix/control/forms/event.py:275
msgid "Download date" msgid "Download date"
msgstr "Download-Datum" msgstr "Download-Datum"
#: pretix/control/forms/event.py:263 #: pretix/control/forms/event.py:276
msgid "Ticket download will be offered after this date." msgid "Ticket download will be offered after this date."
msgstr "Der Ticket-Download wird zu diesem Zeitpunkt freigeschaltet." 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/mail.html:30
#: pretix/control/templates/pretixcontrol/event/payment.html:31 #: pretix/control/templates/pretixcontrol/event/payment.html:31
#: pretix/control/templates/pretixcontrol/event/permissions.html:56 #: 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/event/tickets.html:36
#: pretix/control/templates/pretixcontrol/events/create.html:30 #: pretix/control/templates/pretixcontrol/events/create.html:30
#: pretix/control/templates/pretixcontrol/item/index.html:28 #: pretix/control/templates/pretixcontrol/item/index.html:28
@@ -1492,9 +1551,9 @@ msgid "General"
msgstr "Allgemeines" msgstr "Allgemeines"
#: pretix/control/templates/pretixcontrol/event/base.html:30 #: 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:31
#: pretix/presale/templates/pretixpresale/event/order.html:111 #: pretix/presale/templates/pretixpresale/event/order.html:148
msgid "Payment" msgid "Payment"
msgstr "Zahlung" 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:4
#: pretix/control/templates/pretixcontrol/order/cancel.html:8 #: pretix/control/templates/pretixcontrol/order/cancel.html:8
#: pretix/control/templates/pretixcontrol/order/index.html:28 #: 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 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:4
msgid "Cancel order" msgid "Cancel order"
msgstr "Stornieren" 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." msgid "The payment has to be completed before %(date)s."
msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein." 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 #: pretix/control/templates/pretixcontrol/order/refund.html:10
msgid "Do you really want to refund this order? You cannot revert this action." msgid "Do you really want to refund this order? You cannot revert this action."
msgstr "" msgstr ""
@@ -2374,11 +2459,11 @@ msgstr "Die Bestellung wurde storniert."
msgid "The order has been marked as not paid." msgid "The order has been marked as not paid."
msgstr "Die Bestellung wurde als unbezahlt markiert." 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." msgid "You requested an invalid ticket output type."
msgstr "Sie haben einen ungültigen Ausgabetyp gewählt." 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." msgid "Order is not paid."
msgstr "Bestellung ist nicht bezahlt." msgstr "Bestellung ist nicht bezahlt."
@@ -2557,7 +2642,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11 #: 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_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 #: pretix/presale/templates/pretixpresale/event/order_pay.html:26
msgid "Continue" msgid "Continue"
msgstr "Fortfahren" msgstr "Fortfahren"
@@ -3274,28 +3359,36 @@ msgstr "Veranstaltungsname-y-Position (mm)"
msgid "Event name size (mm)" msgid "Event name size (mm)"
msgstr "Veranstaltungsname-Größe (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 "" msgid ""
"We had difficulties processing your input. Please review the errors below." "We had difficulties processing your input. Please review the errors below."
msgstr "Wir hatten Schwierigkeiten, Ihre Eingabe zu verarbeiten." 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." msgid "Please enter a valid e-mail address."
msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein." 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." msgid "Please fill in answers to all required questions."
msgstr "Bitte füllen Sie Antworten zu allen benötigten Fragen ein." 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." msgid "Please select a payment method."
msgstr "Bitte wählen Sie eine Zahlungsmethode aus." msgstr "Bitte wählen Sie eine Zahlungsmethode aus."
#: pretix/presale/checkoutflow.py:250 pretix/presale/checkoutflow.py:256 #: pretix/presale/checkoutflow.py:274 pretix/presale/checkoutflow.py:280
#: pretix/presale/views/order.py:154 pretix/presale/views/order.py:184 #: pretix/presale/views/order.py:156 pretix/presale/views/order.py:186
msgid "The payment information you entered was incomplete." msgid "The payment information you entered was incomplete."
msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig." 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 #: pretix/presale/middleware.py:25
msgid "The selected event was not found." msgid "The selected event was not found."
msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden." msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden."
@@ -3332,8 +3425,9 @@ msgstr ""
"Bestellung." "Bestellung."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:17 #: 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:46
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:65 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:66
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:102
msgid "Modify" msgid "Modify"
msgstr "Bearbeiten" msgstr "Bearbeiten"
@@ -3355,22 +3449,22 @@ msgstr ""
msgid "The items in your cart are no longer reserved for you." 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." 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 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:15
msgid "Contact information" msgid "Contact information"
msgstr "Kontaktinformationen" msgstr "Kontaktinformationen"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
msgid "E-mail address" msgid "E-mail address"
msgstr "E-Mail-Adresse" 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_payment.html:38
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:51 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:67
msgid "Go back" msgid "Go back"
msgstr "Zurück" 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" msgid "Place binding order"
msgstr "Zahlungspflichtig bestellen" 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." 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:82
#: pretix/presale/templates/pretixpresale/event/order.html:101
msgid "Change details" msgid "Change details"
msgstr "Details bearbeiten" msgstr "Details bearbeiten"
@@ -3506,11 +3601,11 @@ msgstr "Bestellung bearbeiten"
msgid "Modify order: %(code)s" msgid "Modify order: %(code)s"
msgstr "Bestellung bearbeiten: %(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" msgid "Revert changes"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:45 #: pretix/presale/templates/pretixpresale/event/order_modify.html:61
msgid "Save changes" msgid "Save changes"
msgstr "Änderungen speichern" msgstr "Änderungen speichern"
@@ -3594,27 +3689,27 @@ msgstr "Die gewählten Produkte wurden Ihrem Warenkorb hinzugefügt."
msgid "Your cart is empty" msgid "Your cart is empty"
msgstr "Ihr Warenkorb ist leer." msgstr "Ihr Warenkorb ist leer."
#: pretix/presale/views/order.py:53 pretix/presale/views/order.py:105 #: pretix/presale/views/order.py:55 pretix/presale/views/order.py:107
#: pretix/presale/views/order.py:147 pretix/presale/views/order.py:180 #: pretix/presale/views/order.py:149 pretix/presale/views/order.py:182
#: pretix/presale/views/order.py:229 pretix/presale/views/order.py:249 #: pretix/presale/views/order.py:245 pretix/presale/views/order.py:266
#: pretix/presale/views/order.py:282 #: pretix/presale/views/order.py:299
msgid "Unknown order code or not authorized to access this order." msgid "Unknown order code or not authorized to access this order."
msgstr "" msgstr ""
"Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer." "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." msgid "The payment for this order cannot be continued."
msgstr "Diese Bestellung kann nicht mehr bezahlt werden." 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" msgid "You cannot modify this order"
msgstr "Sie können diese Bestellung nicht bearbeiten" 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" msgid "You cannot cancel this order"
msgstr "Sie können diese Bestellung nicht stornieren" 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." msgid "Ticket download is not (yet) enabled."
msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet." msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet."
@@ -3732,9 +3827,6 @@ msgstr "Deutsch (Du)"
#~ msgid "Deselect all" #~ msgid "Deselect all"
#~ msgstr "Keine auswählen" #~ msgstr "Keine auswählen"
#~ msgid "Require e-mail adresses"
#~ msgstr "E-Mail-Adresse erfordern"
#~ msgid "Require all customers to provide an e-mail address." #~ msgid "Require all customers to provide an e-mail address."
#~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern." #~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern."

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-20 14:56+0000\n" "POT-Creation-Date: 2016-02-22 12:43+0000\n"
"PO-Revision-Date: 2016-02-20 15:57+0100\n" "PO-Revision-Date: 2016-02-22 13:44+0100\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n" "Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: Raphael Michel <michel@rami.io>\n" "Language-Team: Raphael Michel <michel@rami.io>\n"
"Language: de\n" "Language: de\n"
@@ -27,13 +27,13 @@ msgid "enabled"
msgstr "aktiviert" msgstr "aktiviert"
#: pretix/base/forms/auth.py:13 pretix/base/forms/auth.py:140 #: 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/base/models/auth.py:63 pretix/base/models/orders.py:95
#: pretix/presale/forms/checkout.py:8 #: pretix/presale/forms/checkout.py:10
msgid "E-mail" msgid "E-mail"
msgstr "E-Mail" msgstr "E-Mail"
#: pretix/base/forms/auth.py:14 pretix/base/forms/auth.py:77 #: 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" msgid "Password"
msgstr "Passwort" msgstr "Passwort"
@@ -149,7 +149,10 @@ msgid "%(family)s, %(given)s"
msgstr "%(family)s, %(given)s" msgstr "%(family)s, %(given)s"
#: pretix/base/models/event.py:53 pretix/base/models/items.py:417 #: pretix/base/models/event.py: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 #: pretix/presale/templates/pretixpresale/organizers/index.html:21
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@@ -220,8 +223,8 @@ msgid "Plugins"
msgstr "Erweiterungen" msgstr "Erweiterungen"
#: pretix/base/models/event.py:96 pretix/base/models/items.py:109 #: 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/items.py:413 pretix/base/models/orders.py:90
#: pretix/base/models/orders.py:432 pretix/base/models/vouchers.py:25 #: pretix/base/models/orders.py:433 pretix/base/models/vouchers.py:25
msgid "Event" msgid "Event"
msgstr "Veranstaltung" msgstr "Veranstaltung"
@@ -438,7 +441,7 @@ msgstr "Gesamtanzahl"
msgid "Leave empty for an unlimited number of tickets." msgid "Leave empty for an unlimited number of tickets."
msgstr "Leer lassen für unbegrenzt viele 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" msgid "Item"
msgstr "Produkt" msgstr "Produkt"
@@ -460,152 +463,189 @@ msgstr "Kontingent"
msgid "Quotas" msgid "Quotas"
msgstr "Kontingente" msgstr "Kontingente"
#: pretix/base/models/orders.py:71 #: pretix/base/models/orders.py:72
msgid "pending" msgid "pending"
msgstr "ausstehend" msgstr "ausstehend"
#: pretix/base/models/orders.py:72 #: pretix/base/models/orders.py:73
msgid "paid" msgid "paid"
msgstr "bezahlt" msgstr "bezahlt"
#: pretix/base/models/orders.py:73 #: pretix/base/models/orders.py:74
msgid "expired" msgid "expired"
msgstr "abgelaufen" msgstr "abgelaufen"
#: pretix/base/models/orders.py:74 #: pretix/base/models/orders.py:75
msgid "cancelled" msgid "cancelled"
msgstr "storniert" msgstr "storniert"
#: pretix/base/models/orders.py:75 #: pretix/base/models/orders.py:76
msgid "refunded" msgid "refunded"
msgstr "erstattet" 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/order/index.html:58
#: pretix/control/templates/pretixcontrol/orders/index.html:10 #: pretix/control/templates/pretixcontrol/orders/index.html:10
#: pretix/control/templates/pretixcontrol/orders/index.html:42 #: pretix/control/templates/pretixcontrol/orders/index.html:42
msgid "Order code" msgid "Order code"
msgstr "Bestellnummer" msgstr "Bestellnummer"
#: pretix/base/models/orders.py:85 #: pretix/base/models/orders.py:86
#: pretix/control/templates/pretixcontrol/orders/index.html:46 #: pretix/control/templates/pretixcontrol/orders/index.html:46
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:18
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
#: pretix/base/models/orders.py:98 #: pretix/base/models/orders.py:99
msgid "Locale" msgid "Locale"
msgstr "Sprache" 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_assign.html:17
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:13
#: pretix/presale/templates/pretixpresale/organizers/index.html:22 #: pretix/presale/templates/pretixpresale/organizers/index.html:22
msgid "Date" msgid "Date"
msgstr "Datum" 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 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form.html:23
msgid "Expiration date" msgid "Expiration date"
msgstr "Ablaufdatum" msgstr "Ablaufdatum"
#: pretix/base/models/orders.py:108 #: pretix/base/models/orders.py:109
#: pretix/control/templates/pretixcontrol/order/index.html:63 #: pretix/control/templates/pretixcontrol/order/index.html:63
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
msgid "Payment date" msgid "Payment date"
msgstr "Zahlungsdatum" msgstr "Zahlungsdatum"
#: pretix/base/models/orders.py:114 #: pretix/base/models/orders.py:115
msgid "Payment provider" msgid "Payment provider"
msgstr "Zahlungsmethode" msgstr "Zahlungsmethode"
#: pretix/base/models/orders.py:118 #: pretix/base/models/orders.py:119
#: pretix/control/templates/pretixcontrol/order/index.html:140 #: pretix/control/templates/pretixcontrol/order/index.html:140
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:75
msgid "Payment method fee" msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode" 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 #: pretix/control/templates/pretixcontrol/order/index.html:162
msgid "Payment information" msgid "Payment information"
msgstr "Zahlungsinformationen" msgstr "Zahlungsinformationen"
#: pretix/base/models/orders.py:125 #: pretix/base/models/orders.py:126
msgid "Payment state was manually modified" msgid "Payment state was manually modified"
msgstr "Der Bestellungsstatus wurde manuell verändert" msgstr "Der Bestellungsstatus wurde manuell verändert"
#: pretix/base/models/orders.py:130 #: pretix/base/models/orders.py:131
msgid "Total amount" msgid "Total amount"
msgstr "Gesamtbetrag" 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 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_confirm.html:17
msgid "Order" msgid "Order"
msgstr "Bestellung" 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/event/base.html:101
#: pretix/control/templates/pretixcontrol/orders/index.html:3 #: pretix/control/templates/pretixcontrol/orders/index.html:3
#: pretix/control/templates/pretixcontrol/orders/index.html:5 #: pretix/control/templates/pretixcontrol/orders/index.html:5
msgid "Orders" msgid "Orders"
msgstr "Bestellungen" msgstr "Bestellungen"
#: pretix/base/models/orders.py:184 #: pretix/base/models/orders.py:185
msgid "The payment is too late to be accepted." msgid "The payment is too late to be accepted."
msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können." 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." msgid "Some of the ordered products were no longer available."
msgstr "Einige der ausgewählten Produkte sind nicht mehr verfügbar." 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" msgid "Variation"
msgstr "Variante" msgstr "Variante"
#: pretix/base/models/orders.py:304 #: pretix/base/models/orders.py:305
msgid "Price" msgid "Price"
msgstr "Preis" msgstr "Preis"
#: pretix/base/models/orders.py:308 #: pretix/base/models/orders.py:309
#: pretix/control/templates/pretixcontrol/order/index.html:106 #: 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 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:16
msgid "Attendee name" msgid "Attendee name"
msgstr "Name des Teilnehmers" 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" msgid "Empty, if this product is not an admission ticket"
msgstr "Leer, wenn dies kein Eintrittsticket ist" msgstr "Leer, wenn dies kein Eintrittsticket ist"
#: pretix/base/models/orders.py:367 #: pretix/base/models/orders.py:368
msgid "Tax rate" msgid "Tax rate"
msgstr "Steuersatz" msgstr "Steuersatz"
#: pretix/base/models/orders.py:371 #: pretix/base/models/orders.py:372
msgid "Tax value" msgid "Tax value"
msgstr "Steuer" msgstr "Steuer"
#: pretix/base/models/orders.py:375 #: pretix/base/models/orders.py:376
msgid "Order position" msgid "Order position"
msgstr "Bestelltes Produkt" msgstr "Bestelltes Produkt"
#: pretix/base/models/orders.py:376 #: pretix/base/models/orders.py:377
msgid "Order positions" msgid "Order positions"
msgstr "Bestellzeile" msgstr "Bestellzeile"
#: pretix/base/models/orders.py:436 #: pretix/base/models/orders.py:437
msgid "Cart ID (e.g. session key)" msgid "Cart ID (e.g. session key)"
msgstr "Warenkorb-ID (z.B. Session-ID)" msgstr "Warenkorb-ID (z.B. Session-ID)"
#: pretix/base/models/orders.py:447 #: pretix/base/models/orders.py:448
msgid "Cart position" msgid "Cart position"
msgstr "Produkt im Warenkorb" msgstr "Produkt im Warenkorb"
#: pretix/base/models/orders.py:448 #: pretix/base/models/orders.py:449
msgid "Cart positions" msgid "Cart positions"
msgstr "Produkte im Warenkorb" 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/base/models/organizer.py:43
#: pretix/control/templates/pretixcontrol/events/index.html:20 #: pretix/control/templates/pretixcontrol/events/index.html:20
#: pretix/control/templates/pretixcontrol/organizers/detail.html:4 #: pretix/control/templates/pretixcontrol/organizers/detail.html:4
@@ -753,7 +793,7 @@ msgstr "Kostenlos"
msgid "The order has been marked as refunded." msgid "The order has been marked as refunded."
msgstr "Die Bestellung wurde als zurückerstattet markiert." 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 "" msgid ""
"We were not able to process your request completely as the server was too " "We were not able to process your request completely as the server was too "
"busy. Please try again." "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." msgid "You selected a product which is not available for sale."
msgstr "Du hsat ein Produkt ausgewählt, das nicht zum Verkauf steht." 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 "" msgid ""
"Some of the products you selected were no longer available. Please see below " "Some of the products you selected were no longer available. Please see below "
"for details." "for details."
@@ -777,7 +817,7 @@ msgstr ""
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr " "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr "
"verfügbar, bitte überprüfe deinen Warenkorb." "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 "" msgid ""
"Some of the products you selected were no longer available in the quantity " "Some of the products you selected were no longer available in the quantity "
"you selected. Please see below for details." "you selected. Please see below for details."
@@ -785,7 +825,7 @@ msgstr ""
"Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der " "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der "
"gewünschten Anzahl verfügbar, bitte überprüfe deinen Warenkorb." "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 #, python-format
msgid "You cannot select more than %s items per order" msgid "You cannot select more than %s items per order"
msgstr "Du kannst nicht mehr als %s Produkte pro Bestellung auswählen" 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 " "Du erhältst diese E-Mail, weil du eine Bestellung für die Veranstaltung %s "
"getätigt hast." "getätigt hast."
#: pretix/base/services/orders.py:25 #: pretix/base/services/orders.py:26
msgid "" msgid ""
"The price of some of the items in your cart has changed in the meantime. " "The price of some of the items in your cart has changed in the meantime. "
"Please see below for details." "Please see below for details."
@@ -827,26 +867,26 @@ msgstr ""
"Der Preis einiger Produkte in deinem Warenkorb hat sich zwischenzeitlich " "Der Preis einiger Produkte in deinem Warenkorb hat sich zwischenzeitlich "
"geändert." "geändert."
#: pretix/base/services/orders.py:28 #: pretix/base/services/orders.py:29
msgid "An internal error occured, please try again." msgid "An internal error occured, please try again."
msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen." 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." msgid "A voucher you tried to use already has been used."
msgstr "" msgstr ""
"Ein Gutscheincode, den du verwenden wolltest, wurde zwischenzeitlich bereits " "Ein Gutscheincode, den du verwenden wolltest, wurde zwischenzeitlich bereits "
"eingelöst." "eingelöst."
#: pretix/base/services/orders.py:32 #: pretix/base/services/orders.py:33
msgid "A voucher you tried to use has expired." msgid "A voucher you tried to use has expired."
msgstr "Ein Gutscheincode, den du verwenden wolltest, ist abgelaufen." msgstr "Ein Gutscheincode, den du verwenden wolltest, ist abgelaufen."
#: pretix/base/services/orders.py:76 #: pretix/base/services/orders.py:77
#, python-format #, python-format
msgid "Payment received for your order: %(code)s" msgid "Payment received for your order: %(code)s"
msgstr "Zahlung erhalten für die Bestellung: %(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 #: pretix/presale/templates/pretixpresale/event/order.html:21
#, python-format #, python-format
msgid "Your order: %(code)s" msgid "Your order: %(code)s"
@@ -860,7 +900,7 @@ msgstr "Unkategorisiert"
msgid "Payment method fees" msgid "Payment method fees"
msgstr "Zahlungsgebühren" msgstr "Zahlungsgebühren"
#: pretix/base/settings.py:102 #: pretix/base/settings.py:114
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -886,7 +926,7 @@ msgstr ""
"Viele Grüße,\n" "Viele Grüße,\n"
"Das {event} Team" "Das {event} Team"
#: pretix/base/settings.py:115 #: pretix/base/settings.py:127
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -914,7 +954,7 @@ msgstr ""
"Viele Grüße,\n" "Viele Grüße,\n"
"Das {event} Team" "Das {event} Team"
#: pretix/base/settings.py:130 #: pretix/base/settings.py:142
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Hello,\n" "Hello,\n"
@@ -1191,56 +1231,75 @@ msgstr "Namen des Teilnehmer erfordern"
msgid "Require customers to fill in the names of all attendees." msgid "Require customers to fill in the names of all attendees."
msgstr "Erfordere die Eingabe aller Teilnehmer-Namen." 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" msgid "Maximum number of items per order"
msgstr "Maximale Anzahl Produkte pro Bestellung" msgstr "Maximale Anzahl Produkte pro Bestellung"
#: pretix/control/forms/event.py:139 #: pretix/control/forms/event.py:152
msgid "Reservation period" msgid "Reservation period"
msgstr "Reservierungszeitraum" msgstr "Reservierungszeitraum"
#: pretix/control/forms/event.py:140 #: pretix/control/forms/event.py:153
msgid "" msgid ""
"The number of minutes the items in a user's card are reserved for this user." "The number of minutes the items in a user's card are reserved for this user."
msgstr "" msgstr ""
"Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert " "Die Dauer in Minuten, die Produkte im Warenkorb eines Benutzers reserviert "
"werden." "werden."
#: pretix/control/forms/event.py:143 #: pretix/control/forms/event.py:156
msgid "Imprint URL" msgid "Imprint URL"
msgstr "Impressum (URL)" msgstr "Impressum (URL)"
#: pretix/control/forms/event.py:147 #: pretix/control/forms/event.py:160
msgid "Contact address" msgid "Contact address"
msgstr "Kontakt-E-Mail" msgstr "Kontakt-E-Mail"
#: pretix/control/forms/event.py:149 #: pretix/control/forms/event.py:162
msgid "Public email address for contacting the organizer" msgid "Public email address for contacting the organizer"
msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters" msgstr "Öffentliche E-Mail-Adresse zur Kontaktierung des Veranstalters"
#: pretix/control/forms/event.py:156 #: pretix/control/forms/event.py:169
msgid "" msgid ""
"Your default locale must also be enebled for your event (see box above)." "Your default locale must also be enebled for your event (see box above)."
msgstr "" msgstr ""
"Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter " "Die Standardsprache muss eine der aktivierten Sprachen sein (siehe weiter "
"oben)." "oben)."
#: pretix/control/forms/event.py:160 #: pretix/control/forms/event.py:173
msgid "" msgid ""
"You cannot require specifying attendee names if you do not ask for them." "You cannot require specifying attendee names if you do not ask for them."
msgstr "" msgstr ""
"Du kannst die Angabe von Teilnehmernamen nur erfordern, wenn auch nach Namen " "Du kannst die Angabe von Teilnehmernamen nur erfordern, wenn auch nach Namen "
"gefragt wird." "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." msgid "This field is required."
msgstr "Dieses Feld ist erforderlich." msgstr "Dieses Feld ist erforderlich."
#: pretix/control/forms/event.py:194 #: pretix/control/forms/event.py:207
msgid "Subject prefix" msgid "Subject prefix"
msgstr "Betreffs-Prefix" msgstr "Betreffs-Prefix"
#: pretix/control/forms/event.py:195 #: pretix/control/forms/event.py:208
msgid "" msgid ""
"This will be prepended to the subject of all outgoing emails. This could be " "This will be prepended to the subject of all outgoing emails. This could be "
"a short form of your event name." "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 " "Dies wird jedem E-Mail-Betreff vorangestellt und könnten z.B. eine Kurzform "
"Ihres Veranstaltungsnamens enthalten." "Ihres Veranstaltungsnamens enthalten."
#: pretix/control/forms/event.py:200 #: pretix/control/forms/event.py:213
msgid "Sender address" msgid "Sender address"
msgstr "Absender-Adresse" msgstr "Absender-Adresse"
#: pretix/control/forms/event.py:201 #: pretix/control/forms/event.py:214
msgid "Sender address for outgoing e-mails" msgid "Sender address for outgoing e-mails"
msgstr "Absender-Adresse für ausgehende 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" msgid "Placed order"
msgstr "Getätigte Bestellung" msgstr "Getätigte Bestellung"
#: pretix/control/forms/event.py:207 #: pretix/control/forms/event.py:220
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, " "Available placeholders: {event}, {total}, {currency}, {date}, {paymentinfo}, "
@@ -1269,25 +1328,25 @@ msgstr ""
"Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, " "Verfügbare Platzhalter: {event}, {total}, {currency}, {date}, {paymentinfo}, "
"{url}" "{url}"
#: pretix/control/forms/event.py:210 #: pretix/control/forms/event.py:223
msgid "Paid order" msgid "Paid order"
msgstr "Bezahlt Bestellung" 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 #, python-brace-format
msgid "Available placeholders: {event}, {url}" msgid "Available placeholders: {event}, {url}"
msgstr "Verfügbare Platzhalter: {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 #: pretix/control/templates/pretixcontrol/order/index.html:76
msgid "Resend link" msgid "Resend link"
msgstr "Link erneut senden" msgstr "Link erneut senden"
#: pretix/control/forms/event.py:222 #: pretix/control/forms/event.py:235
msgid "Use custom SMTP server" msgid "Use custom SMTP server"
msgstr "Eigenen SMTP-Server verwenden" msgstr "Eigenen SMTP-Server verwenden"
#: pretix/control/forms/event.py:223 #: pretix/control/forms/event.py:236
msgid "" msgid ""
"All mail related to your event will be sent over the smtp server specified " "All mail related to your event will be sent over the smtp server specified "
"by you." "by you."
@@ -1295,49 +1354,49 @@ msgstr ""
"Alle E-Mails bezüglich deiner Veranstaltung werden über den von dir " "Alle E-Mails bezüglich deiner Veranstaltung werden über den von dir "
"angegebenen SMTP-Server versendet." "angegebenen SMTP-Server versendet."
#: pretix/control/forms/event.py:227 #: pretix/control/forms/event.py:240
msgid "Hostname" msgid "Hostname"
msgstr "Hostname" msgstr "Hostname"
#: pretix/control/forms/event.py:231 #: pretix/control/forms/event.py:244
msgid "Port" msgid "Port"
msgstr "Port" msgstr "Port"
#: pretix/control/forms/event.py:235 #: pretix/control/forms/event.py:248
msgid "Username" msgid "Username"
msgstr "Benutzername" msgstr "Benutzername"
#: pretix/control/forms/event.py:244 #: pretix/control/forms/event.py:257
msgid "Use STARTTLS" msgid "Use STARTTLS"
msgstr "STARTTLS verwenden" msgstr "STARTTLS verwenden"
#: pretix/control/forms/event.py:245 #: pretix/control/forms/event.py:258
msgid "Commonly enabled on port 587." msgid "Commonly enabled on port 587."
msgstr "Meistens auf Port 587 verfügbar." msgstr "Meistens auf Port 587 verfügbar."
#: pretix/control/forms/event.py:249 #: pretix/control/forms/event.py:262
msgid "Use SSL" msgid "Use SSL"
msgstr "SSL verwenden" msgstr "SSL verwenden"
#: pretix/control/forms/event.py:250 #: pretix/control/forms/event.py:263
msgid "Commonly enabled on port 465." msgid "Commonly enabled on port 465."
msgstr "Meistens auf Port 465 verfügbar." msgstr "Meistens auf Port 465 verfügbar."
#: pretix/control/forms/event.py:257 #: pretix/control/forms/event.py:270
msgid "Use feature" msgid "Use feature"
msgstr "Funktion benutzen" 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." msgid "Use pretix to generate tickets for the user to download and print out."
msgstr "" msgstr ""
"Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der " "Wenn diese Funktion aktiviert ist, generiert pretix Tickets, die der "
"Benutzer herunterladen und ausdrucken kann." "Benutzer herunterladen und ausdrucken kann."
#: pretix/control/forms/event.py:262 #: pretix/control/forms/event.py:275
msgid "Download date" msgid "Download date"
msgstr "Download-Datum" msgstr "Download-Datum"
#: pretix/control/forms/event.py:263 #: pretix/control/forms/event.py:276
msgid "Ticket download will be offered after this date." msgid "Ticket download will be offered after this date."
msgstr "Der Ticket-Download wird zu diesem Zeitpunkt freigeschaltet." 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/mail.html:30
#: pretix/control/templates/pretixcontrol/event/payment.html:31 #: pretix/control/templates/pretixcontrol/event/payment.html:31
#: pretix/control/templates/pretixcontrol/event/permissions.html:56 #: 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/event/tickets.html:36
#: pretix/control/templates/pretixcontrol/events/create.html:30 #: pretix/control/templates/pretixcontrol/events/create.html:30
#: pretix/control/templates/pretixcontrol/item/index.html:28 #: pretix/control/templates/pretixcontrol/item/index.html:28
@@ -1486,9 +1545,9 @@ msgid "General"
msgstr "Allgemeines" msgstr "Allgemeines"
#: pretix/control/templates/pretixcontrol/event/base.html:30 #: 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:31
#: pretix/presale/templates/pretixpresale/event/order.html:111 #: pretix/presale/templates/pretixpresale/event/order.html:148
msgid "Payment" msgid "Payment"
msgstr "Zahlung" 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:4
#: pretix/control/templates/pretixcontrol/order/cancel.html:8 #: pretix/control/templates/pretixcontrol/order/cancel.html:8
#: pretix/control/templates/pretixcontrol/order/index.html:28 #: 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 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:4
msgid "Cancel order" msgid "Cancel order"
msgstr "Stornieren" 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." msgid "The payment has to be completed before %(date)s."
msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein." 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 #: pretix/control/templates/pretixcontrol/order/refund.html:10
msgid "Do you really want to refund this order? You cannot revert this action." msgid "Do you really want to refund this order? You cannot revert this action."
msgstr "" msgstr ""
@@ -2367,11 +2452,11 @@ msgstr "Die Bestellung wurde storniert."
msgid "The order has been marked as not paid." msgid "The order has been marked as not paid."
msgstr "Die Bestellung wurde als unbezahlt markiert." 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." msgid "You requested an invalid ticket output type."
msgstr "Du hast einen ungültigen Ausgabetyp gewählt." 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." msgid "Order is not paid."
msgstr "Bestellung ist nicht bezahlt." msgstr "Bestellung ist nicht bezahlt."
@@ -2548,7 +2633,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11 #: 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_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 #: pretix/presale/templates/pretixpresale/event/order_pay.html:26
msgid "Continue" msgid "Continue"
msgstr "Fortfahren" msgstr "Fortfahren"
@@ -3264,28 +3349,36 @@ msgstr "Veranstaltungsname-y-Position (mm)"
msgid "Event name size (mm)" msgid "Event name size (mm)"
msgstr "Veranstaltungsname-Größe (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 "" msgid ""
"We had difficulties processing your input. Please review the errors below." "We had difficulties processing your input. Please review the errors below."
msgstr "Wir hatten Schwierigkeiten, deine Eingabe zu verarbeiten." 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." msgid "Please enter a valid e-mail address."
msgstr "Bitte gib eine gültige E-Mail-Adresse ein." 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." msgid "Please fill in answers to all required questions."
msgstr "Bitte fülle Antworten zu allen benötigten Fragen ein." 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." msgid "Please select a payment method."
msgstr "Bitte wähle eine Zahlungsmethode aus." msgstr "Bitte wähle eine Zahlungsmethode aus."
#: pretix/presale/checkoutflow.py:250 pretix/presale/checkoutflow.py:256 #: pretix/presale/checkoutflow.py:274 pretix/presale/checkoutflow.py:280
#: pretix/presale/views/order.py:154 pretix/presale/views/order.py:184 #: pretix/presale/views/order.py:156 pretix/presale/views/order.py:186
msgid "The payment information you entered was incomplete." msgid "The payment information you entered was incomplete."
msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig." 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 #: pretix/presale/middleware.py:25
msgid "The selected event was not found." msgid "The selected event was not found."
msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden." msgstr "Die ausgewählte Veranstaltung wurde nicht gefunden."
@@ -3321,8 +3414,9 @@ msgstr ""
"Bitte überprüfe die untenstehenden Details und bestätige deine Bestellung." "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:17
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:47 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:46
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:65 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:66
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:102
msgid "Modify" msgid "Modify"
msgstr "Bearbeiten" msgstr "Bearbeiten"
@@ -3344,22 +3438,22 @@ msgstr ""
msgid "The items in your cart are no longer reserved for you." 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." 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 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:15
msgid "Contact information" msgid "Contact information"
msgstr "Kontaktinformationen" msgstr "Kontaktinformationen"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
msgid "E-mail address" msgid "E-mail address"
msgstr "E-Mail-Adresse" 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_payment.html:38
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:51 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:67
msgid "Go back" msgid "Go back"
msgstr "Zurück" 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" msgid "Place binding order"
msgstr "Zahlungspflichtig bestellen" 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." 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:82
#: pretix/presale/templates/pretixpresale/event/order.html:101
msgid "Change details" msgid "Change details"
msgstr "Details bearbeiten" msgstr "Details bearbeiten"
@@ -3496,11 +3591,11 @@ msgstr "Bestellung bearbeiten"
msgid "Modify order: %(code)s" msgid "Modify order: %(code)s"
msgstr "Bestellung bearbeiten: %(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" msgid "Revert changes"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:45 #: pretix/presale/templates/pretixpresale/event/order_modify.html:61
msgid "Save changes" msgid "Save changes"
msgstr "Änderungen speichern" msgstr "Änderungen speichern"
@@ -3584,27 +3679,27 @@ msgstr "Die gewählten Produkte wurden deinem Warenkorb hinzugefügt."
msgid "Your cart is empty" msgid "Your cart is empty"
msgstr "Dein Warenkorb ist leer." msgstr "Dein Warenkorb ist leer."
#: pretix/presale/views/order.py:53 pretix/presale/views/order.py:105 #: pretix/presale/views/order.py:55 pretix/presale/views/order.py:107
#: pretix/presale/views/order.py:147 pretix/presale/views/order.py:180 #: pretix/presale/views/order.py:149 pretix/presale/views/order.py:182
#: pretix/presale/views/order.py:229 pretix/presale/views/order.py:249 #: pretix/presale/views/order.py:245 pretix/presale/views/order.py:266
#: pretix/presale/views/order.py:282 #: pretix/presale/views/order.py:299
msgid "Unknown order code or not authorized to access this order." msgid "Unknown order code or not authorized to access this order."
msgstr "" msgstr ""
"Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer." "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." msgid "The payment for this order cannot be continued."
msgstr "Diese Bestellung kann nicht mehr bezahlt werden." 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" msgid "You cannot modify this order"
msgstr "Sie können diese Bestellung nicht bearbeiten" 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" msgid "You cannot cancel this order"
msgstr "Sie können diese Bestellung nicht stornieren" 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." msgid "Ticket download is not (yet) enabled."
msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet." msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet."
@@ -3722,9 +3817,6 @@ msgstr "Deutsch (Du)"
#~ msgid "Deselect all" #~ msgid "Deselect all"
#~ msgstr "Keine auswählen" #~ msgstr "Keine auswählen"
#~ msgid "Require e-mail adresses"
#~ msgstr "E-Mail-Adresse erfordern"
#~ msgid "Require all customers to provide an e-mail address." #~ msgid "Require all customers to provide an e-mail address."
#~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern." #~ msgstr "Erfordere eine E-Mail-Adresse von allen Käufern."

View File

@@ -11,10 +11,11 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic.base import TemplateResponseMixin from django.views.generic.base import TemplateResponseMixin
from pretix.base.models import CartPosition, Order 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.services.orders import OrderError, perform_order
from pretix.base.signals import register_payment_providers from pretix.base.signals import register_payment_providers
from pretix.multidomain.urlreverse import eventreverse 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.signals import checkout_flow_steps
from pretix.presale.views import CartMixin from pretix.presale.views import CartMixin
from pretix.presale.views.async import AsyncAction from pretix.presale.views.async import AsyncAction
@@ -139,14 +140,36 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
'email': self.request.session.get('email', '') '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): def post(self, request):
self.request = request self.request = request
failed = not self.save() or not self.contact_form.is_valid() 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: if failed:
messages.error(request, messages.error(request,
_("We had difficulties processing your input. Please review the errors below.")) _("We had difficulties processing your input. Please review the errors below."))
return self.render() return self.render()
request.session['email'] = self.contact_form.cleaned_data['email'] 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)) return redirect(self.get_next_url(request))
def is_completed(self, request, warn=False): def is_completed(self, request, warn=False):
@@ -183,6 +206,7 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx['forms'] = self.forms ctx['forms'] = self.forms
ctx['contact_form'] = self.contact_form ctx['contact_form'] = self.contact_form
ctx['invoice_form'] = self.invoice_form
return ctx return ctx
@@ -282,6 +306,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
ctx['cart'] = self.get_cart(answers=True) ctx['cart'] = self.get_cart(answers=True)
ctx['payment'] = self.payment_provider.checkout_confirm_render(self.request) ctx['payment'] = self.payment_provider.checkout_confirm_render(self.request)
ctx['payment_provider'] = self.payment_provider ctx['payment_provider'] = self.payment_provider
ctx['addr'] = self.invoice_address
return ctx return ctx
@cached_property @cached_property
@@ -292,6 +317,16 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
if provider.identifier == self.request.session['payment']: if provider.identifier == self.request.session['payment']:
return provider 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): def get(self, request):
self.request = request self.request = request
if 'async_id' in request.GET and settings.HAS_CELERY: if 'async_id' in request.GET and settings.HAS_CELERY:
@@ -302,7 +337,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
self.request = request self.request = request
return self.do(self.request.event.id, self.payment_provider.identifier, return self.do(self.request.event.id, self.payment_provider.identifier,
[p.id for p in self.positions], request.session.get('email'), [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): def get_success_message(self, value):
return None return None

View File

@@ -1,13 +1,42 @@
from django import forms from django import forms
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from pretix.base.models import Question from pretix.base.models import Question
from pretix.base.models.orders import InvoiceAddress
class ContactForm(forms.Form): class ContactForm(forms.Form):
email = forms.EmailField(label=_('E-mail')) 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): class QuestionsForm(forms.Form):
""" """
This form class is responsible for asking order-related questions. This includes This form class is responsible for asking order-related questions. This includes

View File

@@ -37,26 +37,63 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row-fluid"> <div class="panel panel-primary">
<div class="panel panel-primary"> <div class="panel-heading">
<div class="panel-heading"> {% if payment_provider.identifier != "free" %}
{% if payment_provider.identifier != "free" %} <div class="pull-right">
<div class="pull-right"> <a href="{% eventurl request.event "presale:event.checkout" step="payment" %}">
<a href="{% eventurl request.event "presale:event.checkout" step="payment" %}"> <span class="fa fa-edit"></span>
<span class="fa fa-edit"></span> {% trans "Modify" %}
{% trans "Modify" %} </a>
</a> </div>
</div> {% endif %}
{% endif %} <h3 class="panel-title">
<h3 class="panel-title"> {% trans "Payment" %}
{% trans "Payment" %} </h3>
</h3>
</div>
<div class="panel-body">
{{ payment }}
</div>
</div> </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 panel-primary panel-contact">
<div class="panel-heading"> <div class="panel-heading">
<div class="pull-right"> <div class="pull-right">
@@ -77,20 +114,20 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row checkout-button-row"> </div>
<div class="col-md-4"> <div class="row checkout-button-row clearfix">
<a class="btn btn-block btn-default btn-lg" <div class="col-md-4">
href="{{ prev_url }}"> <a class="btn btn-block btn-default btn-lg"
{% trans "Go back" %} href="{{ prev_url }}">
</a> {% trans "Go back" %}
</div> </a>
<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>
<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>
</form> </form>
{% endblock %} {% endblock %}

View File

@@ -22,6 +22,22 @@
</div> </div>
</div> </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 %} {% for form in forms %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">

View File

@@ -91,6 +91,43 @@
{% include "pretixpresale/event/fragment_cart.html" with cart=cart event=request.event editable=False %} {% include "pretixpresale/event/fragment_cart.html" with cart=cart event=request.event editable=False %}
</div> </div>
</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" %} {% if order.status == "n" %}
<div class="row"> <div class="row">
<div class="col-md-12 text-right"> <div class="col-md-12 text-right">

View File

@@ -11,6 +11,22 @@
<form class="form-horizontal" method="post"> <form class="form-horizontal" method="post">
{% csrf_token %} {% csrf_token %}
<div class="panel-group" id="questions_accordion"> <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 %} {% for form in forms %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">

View File

@@ -10,12 +10,14 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, View from django.views.generic import TemplateView, View
from pretix.base.models import CachedFile, CachedTicket, Order, OrderPosition 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.orders import cancel_order
from pretix.base.services.tickets import generate from pretix.base.services.tickets import generate
from pretix.base.signals import ( from pretix.base.signals import (
register_payment_providers, register_ticket_outputs, register_payment_providers, register_ticket_outputs,
) )
from pretix.multidomain.urlreverse import eventreverse from pretix.multidomain.urlreverse import eventreverse
from pretix.presale.forms.checkout import InvoiceAddressForm
from pretix.presale.views import CartMixin, EventViewMixin from pretix.presale.views import CartMixin, EventViewMixin
from pretix.presale.views.questions import QuestionsViewMixin from pretix.presale.views.questions import QuestionsViewMixin
@@ -210,12 +212,26 @@ class OrderModify(EventViewMixin, OrderDetailMixin, QuestionsViewMixin, Template
'item__questions', 'answers' '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): def post(self, request, *args, **kwargs):
failed = not self.save() failed = not self.save() or not self.invoice_form.is_valid()
if failed: if failed:
messages.error(self.request, messages.error(self.request,
_("We had difficulties processing your input. Please review the errors below.")) _("We had difficulties processing your input. Please review the errors below."))
return self.get(request, *args, **kwargs) return self.get(request, *args, **kwargs)
self.invoice_form.save()
self.order.log_action('pretix.event.order.modified') self.order.log_action('pretix.event.order.modified')
return redirect(self.get_order_url()) return redirect(self.get_order_url())
@@ -236,6 +252,7 @@ class OrderModify(EventViewMixin, OrderDetailMixin, QuestionsViewMixin, Template
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx['order'] = self.order ctx['order'] = self.order
ctx['forms'] = self.forms ctx['forms'] = self.forms
ctx['invoice_form'] = self.invoice_form
return ctx return ctx