diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index e51d8272c..5896f4f87 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.core.exceptions import ValidationError from django.db import transaction from django.utils.functional import cached_property @@ -108,7 +109,7 @@ class EventSerializer(I18nAwareModelSerializer): @transaction.atomic def create(self, validated_data): meta_data = validated_data.pop('meta_data', None) - plugins = validated_data.pop('plugins', None) + plugins = validated_data.pop('plugins', settings.PRETIX_PLUGINS_DEFAULT.split(',')) event = super().create(validated_data) # Meta data @@ -122,6 +123,7 @@ class EventSerializer(I18nAwareModelSerializer): # Plugins if plugins is not None: event.set_active_plugins(plugins) + event.save(update_fields=['plugins']) return event diff --git a/src/tests/api/test_events.py b/src/tests/api/test_events.py index 32dec2570..32896a79d 100644 --- a/src/tests/api/test_events.py +++ b/src/tests/api/test_events.py @@ -3,6 +3,7 @@ from decimal import Decimal from unittest import mock import pytest +from django.conf import settings from django_countries.fields import Country from pytz import UTC @@ -150,7 +151,6 @@ def test_event_list(token_client, organizer, event): def test_event_get(token_client, organizer, event): resp = token_client.get('/api/v1/organizers/{}/events/{}/'.format(organizer.slug, event.slug)) assert resp.status_code == 200 - print(resp.data) assert TEST_EVENT_RES == resp.data @@ -183,6 +183,7 @@ def test_event_create(token_client, organizer, event, meta_prop): assert organizer.events.get(slug="2030").meta_values.filter( property__name=meta_prop.name, value="Conference" ).exists() + assert organizer.events.get(slug="2030").plugins == settings.PRETIX_PLUGINS_DEFAULT resp = token_client.post( '/api/v1/organizers/{}/events/'.format(organizer.slug),