diff --git a/src/pretix/api/serializers/item.py b/src/pretix/api/serializers/item.py index f9ff35deb5..2f237120e2 100644 --- a/src/pretix/api/serializers/item.py +++ b/src/pretix/api/serializers/item.py @@ -77,7 +77,7 @@ class InlineItemVariationSerializer(SalesChannelMigrationMixin, I18nAwareModelSe super().__init__(*args, **kwargs) self.fields['require_membership_types'].queryset = lazy(lambda: self.context['event'].organizer.membership_types.all(), QuerySet) self.fields['limit_sales_channels'].child_relation.queryset = ( - self.context['event'].organizer.sales_channels() if 'event' in self.context else SalesChannel.objects.none() + self.context['event'].organizer.sales_channels.all() if 'event' in self.context else SalesChannel.objects.none() ) def validate_meta_data(self, value): diff --git a/src/pretix/api/views/checkin.py b/src/pretix/api/views/checkin.py index 62a7f6baf3..4f374f6e0a 100644 --- a/src/pretix/api/views/checkin.py +++ b/src/pretix/api/views/checkin.py @@ -406,7 +406,7 @@ def _checkin_list_position_queryset(checkinlists, ignore_status=False, ignore_pr 'item__variations').select_related('item__tax_rule') if expand and 'variation' in expand: - qs = qs.prefetch_related('variation') + qs = qs.prefetch_related('variation', 'variation__meta_values') return qs diff --git a/src/tests/api/test_checkin.py b/src/tests/api/test_checkin.py index f3f1f18634..8545b15c12 100644 --- a/src/tests/api/test_checkin.py +++ b/src/tests/api/test_checkin.py @@ -1381,3 +1381,18 @@ def test_checkin_pdf_data_requires_permission(token_client, event, team, organiz organizer.slug, event.slug, clist_all.pk )) assert not resp.data['results'][0].get('pdf_data') + + +@pytest.mark.django_db +def test_expand(token_client, organizer, event, clist, clist_all, item, other_item, order, django_assert_max_num_queries): + with scopes_disabled(): + op = order.positions.first() + var1 = item.variations.create(value="XS") + op.variation = var1 + op.save() + + resp = token_client.get('/api/v1/organizers/{}/events/{}/checkinlists/{}/positions/?search=z3fsn8jyu&expand=variation'.format( + organizer.slug, event.slug, clist_all.pk + )) + assert resp.status_code == 200 + assert 'value' in resp.data['results'][0]['variation']