Add add-ons to pretixdroid API

This commit is contained in:
Raphael Michel
2018-05-18 12:15:32 +02:00
parent 777424ad18
commit 835bcb7207
3 changed files with 22 additions and 4 deletions

View File

@@ -257,7 +257,11 @@ def serialize_op(op, redeemed, clist):
'attention': op.item.checkin_attention or op.order.checkin_attention,
'redeemed': redeemed,
'paid': op.order.status == Order.STATUS_PAID,
'checkin_allowed': checkin_allowed
'checkin_allowed': checkin_allowed,
'addons_text': ", ".join([
'{} - {}'.format(p.item, p.variation) if p.variation else str(p.item)
for p in op.addons.all()
])
}
@@ -281,7 +285,9 @@ class ApiSearchView(ApiView):
subevent=self.config.list.subevent
).annotate(
last_checked_in=Subquery(cqs)
).select_related('item', 'variation', 'order', 'order__invoice_address', 'addon_to')
).select_related('item', 'variation', 'order', 'order__invoice_address', 'addon_to').prefetch_related(
'addons', 'addons__item', 'addons__variation'
)
if not self.config.list.all_products:
qs = qs.filter(item__in=self.config.list.limit_products.values_list('id', flat=True))
@@ -329,7 +335,9 @@ class ApiDownloadView(ApiView):
subevent=self.config.list.subevent
).annotate(
last_checked_in=Subquery(cqs)
).select_related('item', 'variation', 'order', 'addon_to')
).select_related('item', 'variation', 'order', 'addon_to').prefetch_related(
'addons', 'addons__item', 'addons__variation'
)
if not self.config.list.all_products:
qs = qs.filter(item__in=self.config.list.limit_products.values_list('id', flat=True))