forked from CGM_Public/pretix_original
API: Fix overriding date_admission during event clone
This commit is contained in:
@@ -411,6 +411,7 @@ class CloneEventSerializer(EventSerializer):
|
||||
has_subevents = validated_data.pop('has_subevents', None)
|
||||
tz = validated_data.pop('timezone', None)
|
||||
sales_channels = validated_data.pop('sales_channels', None)
|
||||
date_admission = validated_data.pop('date_admission', None)
|
||||
new_event = super().create({**validated_data, 'plugins': None})
|
||||
|
||||
event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first()
|
||||
@@ -426,6 +427,10 @@ class CloneEventSerializer(EventSerializer):
|
||||
new_event.sales_channels = sales_channels
|
||||
if has_subevents is not None:
|
||||
new_event.has_subevents = has_subevents
|
||||
if has_subevents is not None:
|
||||
new_event.has_subevents = has_subevents
|
||||
if date_admission is not None:
|
||||
new_event.date_admission = date_admission
|
||||
new_event.save()
|
||||
if tz:
|
||||
new_event.settings.timezone = tz
|
||||
|
||||
@@ -261,6 +261,8 @@ class EventViewSet(viewsets.ModelViewSet):
|
||||
new_event.sales_channels = serializer.validated_data['sales_channels']
|
||||
if 'has_subevents' in serializer.validated_data:
|
||||
new_event.has_subevents = serializer.validated_data['has_subevents']
|
||||
if 'date_admission' in serializer.validated_data:
|
||||
new_event.date_admission = serializer.validated_data['date_admission']
|
||||
new_event.save()
|
||||
if 'timezone' in serializer.validated_data:
|
||||
new_event.settings.timezone = serializer.validated_data['timezone']
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
import copy
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from decimal import Decimal
|
||||
from unittest import mock
|
||||
|
||||
@@ -372,6 +372,8 @@ def test_event_create(team, token_client, organizer, event, meta_prop):
|
||||
'/api/v1/organizers/{}/events/?clone_from={}',
|
||||
])
|
||||
def test_event_create_with_clone(token_client, organizer, event, meta_prop, urlstyle):
|
||||
event.date_admission = event.date_from - timedelta(hours=1)
|
||||
event.save()
|
||||
resp = token_client.post(
|
||||
urlstyle.format(organizer.slug, event.slug),
|
||||
{
|
||||
@@ -384,7 +386,7 @@ def test_event_create_with_clone(token_client, organizer, event, meta_prop, urls
|
||||
"currency": "EUR",
|
||||
"date_from": "2018-12-27T10:00:00Z",
|
||||
"date_to": "2018-12-28T10:00:00Z",
|
||||
"date_admission": None,
|
||||
"date_admission": "2018-12-27T08:00:00Z",
|
||||
"is_public": False,
|
||||
"presale_start": None,
|
||||
"presale_end": None,
|
||||
@@ -407,6 +409,7 @@ def test_event_create_with_clone(token_client, organizer, event, meta_prop, urls
|
||||
assert cloned_event.plugins == 'pretix.plugins.ticketoutputpdf'
|
||||
assert cloned_event.is_public is False
|
||||
assert cloned_event.testmode
|
||||
assert cloned_event.date_admission.isoformat() == "2018-12-27T08:00:00+00:00"
|
||||
assert organizer.events.get(slug="2030").meta_values.filter(
|
||||
property__name=meta_prop.name, value="Conference"
|
||||
).exists()
|
||||
|
||||
Reference in New Issue
Block a user