mirror of
https://github.com/pretix/pretix.git
synced 2026-01-29 01:22:28 +00:00
API: Fix creation of items with required membership types
This commit is contained in:
@@ -251,9 +251,12 @@ class ItemSerializer(I18nAwareModelSerializer):
|
||||
bundles_data = validated_data.pop('bundles') if 'bundles' in validated_data else {}
|
||||
meta_data = validated_data.pop('meta_data', None)
|
||||
picture = validated_data.pop('picture', None)
|
||||
require_membership_types = validated_data.pop('require_membership_types', [])
|
||||
item = Item.objects.create(**validated_data)
|
||||
if picture:
|
||||
item.picture.save(os.path.basename(picture.name), picture)
|
||||
if require_membership_types:
|
||||
item.require_membership_types.add(*require_membership_types)
|
||||
|
||||
for variation_data in variations_data:
|
||||
require_membership_types = variation_data.pop('require_membership_types', [])
|
||||
|
||||
@@ -213,4 +213,10 @@ def item(event):
|
||||
return event.items.create(name='foo', default_price=3)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@scopes_disabled()
|
||||
def membership_type(organizer):
|
||||
return organizer.membership_types.create(name='foo')
|
||||
|
||||
|
||||
utils.setup_databases = scopes_disabled()(utils.setup_databases)
|
||||
|
||||
@@ -434,7 +434,7 @@ def test_item_detail_bundles(token_client, organizer, event, team, item, categor
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_item_create(token_client, organizer, event, item, category, taxrule):
|
||||
def test_item_create(token_client, organizer, event, item, category, taxrule, membership_type):
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/items/'.format(organizer.slug, event.slug),
|
||||
{
|
||||
@@ -462,6 +462,7 @@ def test_item_create(token_client, organizer, event, item, category, taxrule):
|
||||
"max_per_order": None,
|
||||
"checkin_attention": False,
|
||||
"has_variations": True,
|
||||
"require_membership_types": [membership_type.pk],
|
||||
"meta_data": {
|
||||
"day": "Wednesday"
|
||||
}
|
||||
@@ -472,6 +473,7 @@ def test_item_create(token_client, organizer, event, item, category, taxrule):
|
||||
with scopes_disabled():
|
||||
assert Item.objects.get(pk=resp.data['id']).sales_channels == ["web", "pretixpos"]
|
||||
assert Item.objects.get(pk=resp.data['id']).meta_data == {'day': 'Wednesday'}
|
||||
assert Item.objects.get(pk=resp.data['id']).require_membership_types.count() == 1
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
Reference in New Issue
Block a user