Event settings API: Fix setting confirm_texts

This commit is contained in:
Raphael Michel
2021-09-15 16:28:57 +02:00
parent 002469d523
commit 42a1fe9bd1
3 changed files with 15 additions and 2 deletions

View File

@@ -54,7 +54,7 @@ from pretix.base.models.items import SubEventItem, SubEventItemVariation
from pretix.base.services.seating import (
SeatProtected, generate_seats, validate_plan_change,
)
from pretix.base.settings import validate_event_settings
from pretix.base.settings import LazyI18nStringList, validate_event_settings
from pretix.base.signals import api_event_settings_fields
logger = logging.getLogger(__name__)
@@ -789,6 +789,10 @@ class EventSettingsSerializer(SettingsSerializer):
data = super().validate(data)
settings_dict = self.instance.freeze()
settings_dict.update(data)
if data.get('confirm_texts') is not None:
data['confirm_texts'] = LazyI18nStringList(data['confirm_texts'])
validate_event_settings(self.event, settings_dict)
return data

View File

@@ -28,10 +28,14 @@ from pretix.base.reldate import RelativeDateWrapper
class CustomJSONEncoder(I18nJSONEncoder):
def default(self, obj):
from pretix.base.settings import LazyI18nStringList
if isinstance(obj, RelativeDateWrapper):
return obj.to_string()
elif isinstance(obj, File):
return obj.name
elif isinstance(obj, LazyI18nStringList):
return [s.data for s in obj.data]
if isinstance(obj, PhoneNumber):
return str(obj)
else: