mirror of
https://github.com/pretix/pretix.git
synced 2026-05-16 17:03:58 +00:00
get_data_fields: do not fail if invoice_address missing
This commit is contained in:
@@ -27,7 +27,7 @@ from functools import partial
|
|||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from pretix.base.models import Checkin, Order, Question
|
from pretix.base.models import Checkin, InvoiceAddress, Order, Question
|
||||||
from pretix.base.settings import PERSON_NAME_SCHEMES
|
from pretix.base.settings import PERSON_NAME_SCHEMES
|
||||||
|
|
||||||
|
|
||||||
@@ -111,6 +111,13 @@ DataFieldInfo = namedtuple(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_invoice_address_or_empty(order):
|
||||||
|
try:
|
||||||
|
return order.invoice_address
|
||||||
|
except InvoiceAddress.DoesNotExist:
|
||||||
|
return InvoiceAddress()
|
||||||
|
|
||||||
|
|
||||||
def get_data_fields(event, for_model=None):
|
def get_data_fields(event, for_model=None):
|
||||||
"""
|
"""
|
||||||
Returns tuple of (required_input, key, label, type, enum_opts, getter)
|
Returns tuple of (required_input, key, label, type, enum_opts, getter)
|
||||||
@@ -223,7 +230,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address company"),
|
_("Invoice address company"),
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: order.invoice_address.company,
|
lambda order: get_invoice_address_or_empty(order).company,
|
||||||
),
|
),
|
||||||
DataFieldInfo(
|
DataFieldInfo(
|
||||||
ORDER,
|
ORDER,
|
||||||
@@ -231,7 +238,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address name"),
|
_("Invoice address name"),
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: order.invoice_address.name,
|
lambda order: get_invoice_address_or_empty(order).name,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
+ [
|
+ [
|
||||||
@@ -242,7 +249,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
partial(
|
partial(
|
||||||
lambda k, order: (order.invoice_address.name_parts or {}).get(
|
lambda k, order: (get_invoice_address_or_empty(order).name_parts or {}).get(
|
||||||
k, ""
|
k, ""
|
||||||
),
|
),
|
||||||
k,
|
k,
|
||||||
@@ -258,7 +265,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address street"),
|
_("Invoice address street"),
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: order.invoice_address.street,
|
lambda order: get_invoice_address_or_empty(order).street,
|
||||||
),
|
),
|
||||||
DataFieldInfo(
|
DataFieldInfo(
|
||||||
ORDER,
|
ORDER,
|
||||||
@@ -266,7 +273,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address ZIP code"),
|
_("Invoice address ZIP code"),
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: order.invoice_address.zipcode,
|
lambda order: get_invoice_address_or_empty(order).zipcode,
|
||||||
),
|
),
|
||||||
DataFieldInfo(
|
DataFieldInfo(
|
||||||
ORDER,
|
ORDER,
|
||||||
@@ -274,7 +281,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address city"),
|
_("Invoice address city"),
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: order.invoice_address.city,
|
lambda order: get_invoice_address_or_empty(order).city,
|
||||||
),
|
),
|
||||||
DataFieldInfo(
|
DataFieldInfo(
|
||||||
ORDER,
|
ORDER,
|
||||||
@@ -282,7 +289,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address country"),
|
_("Invoice address country"),
|
||||||
Question.TYPE_COUNTRYCODE,
|
Question.TYPE_COUNTRYCODE,
|
||||||
None,
|
None,
|
||||||
lambda order: str(order.invoice_address.country),
|
lambda order: str(get_invoice_address_or_empty(order).country),
|
||||||
),
|
),
|
||||||
DataFieldInfo(
|
DataFieldInfo(
|
||||||
ORDER,
|
ORDER,
|
||||||
@@ -464,7 +471,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address") + ": " + _("Given name") + " (⚠️ auto-generated, not recommended)",
|
_("Invoice address") + ": " + _("Given name") + " (⚠️ auto-generated, not recommended)",
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: split_name_on_last_space(order.invoice_address.name, part=0),
|
lambda order: split_name_on_last_space(get_invoice_address_or_empty(order).name, part=0),
|
||||||
deprecated=True,
|
deprecated=True,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
@@ -486,7 +493,7 @@ def get_data_fields(event, for_model=None):
|
|||||||
_("Invoice address") + ": " + _("Family name") + " (⚠️ auto-generated, not recommended)",
|
_("Invoice address") + ": " + _("Family name") + " (⚠️ auto-generated, not recommended)",
|
||||||
Question.TYPE_STRING,
|
Question.TYPE_STRING,
|
||||||
None,
|
None,
|
||||||
lambda order: split_name_on_last_space(order.invoice_address.name, part=1),
|
lambda order: split_name_on_last_space(get_invoice_address_or_empty(order).name, part=1),
|
||||||
deprecated=True,
|
deprecated=True,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user