forked from CGM_Public/pretix_original
Expose name scheme over the settings API, including details for device clients
This commit is contained in:
@@ -54,7 +54,10 @@ from pretix.base.models.items import SubEventItem, SubEventItemVariation
|
|||||||
from pretix.base.services.seating import (
|
from pretix.base.services.seating import (
|
||||||
SeatProtected, generate_seats, validate_plan_change,
|
SeatProtected, generate_seats, validate_plan_change,
|
||||||
)
|
)
|
||||||
from pretix.base.settings import LazyI18nStringList, validate_event_settings
|
from pretix.base.settings import (
|
||||||
|
PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS,
|
||||||
|
LazyI18nStringList, validate_event_settings,
|
||||||
|
)
|
||||||
from pretix.base.signals import api_event_settings_fields
|
from pretix.base.signals import api_event_settings_fields
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -777,6 +780,7 @@ class EventSettingsSerializer(SettingsSerializer):
|
|||||||
'logo_image_large',
|
'logo_image_large',
|
||||||
'logo_show_title',
|
'logo_show_title',
|
||||||
'og_image',
|
'og_image',
|
||||||
|
'name_scheme',
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -842,4 +846,25 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
|
|||||||
'invoice_address_from_country',
|
'invoice_address_from_country',
|
||||||
'invoice_address_from_tax_id',
|
'invoice_address_from_tax_id',
|
||||||
'invoice_address_from_vat_id',
|
'invoice_address_from_vat_id',
|
||||||
|
'name_scheme',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.fields['_name_scheme_fields'] = serializers.JSONField(
|
||||||
|
read_only=True,
|
||||||
|
default=[{"key": k, "label": str(v), "weight": w} for k, v, w, *__ in PERSON_NAME_SCHEMES.get(self.event.settings.name_scheme)['fields']]
|
||||||
|
)
|
||||||
|
self.fields['_name_scheme_salutations'] = serializers.JSONField(
|
||||||
|
read_only=True,
|
||||||
|
default=[{"key": k, "label": str(v)} for k, v in PERSON_NAME_SALUTATIONS]
|
||||||
|
)
|
||||||
|
self.fields['_name_scheme_titles'] = serializers.JSONField(
|
||||||
|
read_only=True,
|
||||||
|
default=(
|
||||||
|
[{"key": k, "label": k}
|
||||||
|
for k in PERSON_NAME_TITLE_GROUPS.get(self.event.settings.name_scheme_titles)[1]]
|
||||||
|
if self.event.settings.name_scheme_titles
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
@@ -2594,7 +2594,9 @@ Your {organizer} team"""))
|
|||||||
},
|
},
|
||||||
'name_scheme': {
|
'name_scheme': {
|
||||||
'default': 'full', # default for new events is 'given_family'
|
'default': 'full', # default for new events is 'given_family'
|
||||||
'type': str
|
'type': str,
|
||||||
|
'serializer_class': serializers.ChoiceField,
|
||||||
|
'serializer_kwargs': {},
|
||||||
},
|
},
|
||||||
'giftcard_length': {
|
'giftcard_length': {
|
||||||
'default': settings.ENTROPY['giftcard_secret'],
|
'default': settings.ENTROPY['giftcard_secret'],
|
||||||
@@ -2989,6 +2991,9 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
DEFAULTS['name_scheme']['serializer_kwargs']['choices'] = ((k, k) for k in PERSON_NAME_SCHEMES)
|
||||||
|
|
||||||
COUNTRIES_WITH_STATE_IN_ADDRESS = {
|
COUNTRIES_WITH_STATE_IN_ADDRESS = {
|
||||||
# Source: http://www.bitboost.com/ref/international-address-formats.html
|
# Source: http://www.bitboost.com/ref/international-address-formats.html
|
||||||
# This is not a list of countries that *have* states, this is a list of countries where states
|
# This is not a list of countries that *have* states, this is a list of countries where states
|
||||||
|
|||||||
Reference in New Issue
Block a user