forked from CGM_Public/pretix_original
Event settings API: Fix setting confirm_texts
This commit is contained in:
@@ -54,7 +54,7 @@ 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 validate_event_settings
|
from pretix.base.settings import 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__)
|
||||||
@@ -789,6 +789,10 @@ class EventSettingsSerializer(SettingsSerializer):
|
|||||||
data = super().validate(data)
|
data = super().validate(data)
|
||||||
settings_dict = self.instance.freeze()
|
settings_dict = self.instance.freeze()
|
||||||
settings_dict.update(data)
|
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)
|
validate_event_settings(self.event, settings_dict)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|||||||
@@ -28,10 +28,14 @@ from pretix.base.reldate import RelativeDateWrapper
|
|||||||
|
|
||||||
class CustomJSONEncoder(I18nJSONEncoder):
|
class CustomJSONEncoder(I18nJSONEncoder):
|
||||||
def default(self, obj):
|
def default(self, obj):
|
||||||
|
from pretix.base.settings import LazyI18nStringList
|
||||||
|
|
||||||
if isinstance(obj, RelativeDateWrapper):
|
if isinstance(obj, RelativeDateWrapper):
|
||||||
return obj.to_string()
|
return obj.to_string()
|
||||||
elif isinstance(obj, File):
|
elif isinstance(obj, File):
|
||||||
return obj.name
|
return obj.name
|
||||||
|
elif isinstance(obj, LazyI18nStringList):
|
||||||
|
return [s.data for s in obj.data]
|
||||||
if isinstance(obj, PhoneNumber):
|
if isinstance(obj, PhoneNumber):
|
||||||
return str(obj)
|
return str(obj)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1212,7 +1212,12 @@ def test_patch_event_settings(token_client, organizer, event):
|
|||||||
resp = token_client.patch(
|
resp = token_client.patch(
|
||||||
'/api/v1/organizers/{}/events/{}/settings/'.format(organizer.slug, event.slug),
|
'/api/v1/organizers/{}/events/{}/settings/'.format(organizer.slug, event.slug),
|
||||||
{
|
{
|
||||||
'imprint_url': 'https://example.com'
|
'imprint_url': 'https://example.com',
|
||||||
|
'confirm_texts': [
|
||||||
|
{
|
||||||
|
'de': 'Ich bin mit den AGB einverstanden.'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
format='json'
|
format='json'
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user