Order-exports: localize salutation (#3160)

This commit is contained in:
Richard Schreiber
2023-03-22 13:12:38 +01:00
committed by GitHub
parent c52ebb4ba9
commit 8a6488fd81
4 changed files with 15 additions and 17 deletions

View File

@@ -35,16 +35,14 @@ from django.dispatch import receiver
from django.template.loader import get_template from django.template.loader import get_template
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.timezone import now from django.utils.timezone import now
from django.utils.translation import ( from django.utils.translation import get_language, gettext_lazy as _
get_language, gettext_lazy as _, pgettext_lazy,
)
from pretix.base.i18n import ( from pretix.base.i18n import (
LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber, LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber,
) )
from pretix.base.models import Event from pretix.base.models import Event
from pretix.base.reldate import RelativeDateWrapper from pretix.base.reldate import RelativeDateWrapper
from pretix.base.settings import PERSON_NAME_SCHEMES from pretix.base.settings import PERSON_NAME_SCHEMES, get_name_parts_localized
from pretix.base.signals import ( from pretix.base.signals import (
register_html_mail_renderers, register_mail_placeholders, register_html_mail_renderers, register_mail_placeholders,
) )
@@ -693,10 +691,3 @@ def base_placeholders(sender, **kwargs):
)) ))
return ph return ph
def get_name_parts_localized(name_parts, key):
value = name_parts.get(key, "")
if key == "salutation":
return pgettext_lazy("person_name_salutation", value)
return value

View File

@@ -56,7 +56,7 @@ from pretix.base.models import (
) )
from pretix.base.models.orders import OrderFee, OrderPayment, OrderRefund from pretix.base.models.orders import OrderFee, OrderPayment, OrderRefund
from pretix.base.services.quotas import QuotaAvailability from pretix.base.services.quotas import QuotaAvailability
from pretix.base.settings import PERSON_NAME_SCHEMES from pretix.base.settings import PERSON_NAME_SCHEMES, get_name_parts_localized
from ...control.forms.filter import get_all_payment_providers from ...control.forms.filter import get_all_payment_providers
from ...helpers import GroupConcat from ...helpers import GroupConcat
@@ -340,7 +340,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1: if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']: for k, label, w in name_scheme['fields']:
row.append( row.append(
order.invoice_address.name_parts.get(k, '') get_name_parts_localized(order.invoice_address.name_parts, k)
) )
row += [ row += [
order.invoice_address.street, order.invoice_address.street,
@@ -477,7 +477,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1: if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']: for k, label, w in name_scheme['fields']:
row.append( row.append(
order.invoice_address.name_parts.get(k, '') get_name_parts_localized(order.invoice_address.name_parts, k)
) )
row += [ row += [
order.invoice_address.street, order.invoice_address.street,
@@ -660,7 +660,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1: if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']: for k, label, w in name_scheme['fields']:
row.append( row.append(
op.attendee_name_parts.get(k, '') get_name_parts_localized(op.attendee_name_parts, k)
) )
row += [ row += [
op.attendee_email, op.attendee_email,
@@ -721,7 +721,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1: if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']: for k, label, w in name_scheme['fields']:
row.append( row.append(
order.invoice_address.name_parts.get(k, '') get_name_parts_localized(order.invoice_address.name_parts, k)
) )
row += [ row += [
order.invoice_address.street, order.invoice_address.street,

View File

@@ -221,7 +221,7 @@ class Customer(LoggedModel):
return salted_hmac(key_salt, payload).hexdigest() return salted_hmac(key_salt, payload).hexdigest()
def get_email_context(self): def get_email_context(self):
from pretix.base.email import get_name_parts_localized from pretix.base.settings import get_name_parts_localized
ctx = { ctx = {
'name': self.name, 'name': self.name,
'organizer': self.organizer.name, 'organizer': self.organizer.name,

View File

@@ -3051,6 +3051,13 @@ def concatenation_for_salutation(d):
return " ".join(filter(None, (salutation, title, given_name, family_name))) return " ".join(filter(None, (salutation, title, given_name, family_name)))
def get_name_parts_localized(name_parts, key):
value = name_parts.get(key, "")
if key == "salutation":
return pgettext_lazy("person_name_salutation", value)
return value
PERSON_NAME_SCHEMES = OrderedDict([ PERSON_NAME_SCHEMES = OrderedDict([
('given_family', { ('given_family', {
'fields': ( 'fields': (