diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 5edbceab3..e916c70b9 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -163,7 +163,7 @@ class OrderDetail(OrderView): 'item', 'variation' ).prefetch_related( 'item__questions', 'answers', 'answers__question' - ) + ).order_by('positionid') positions = [] for p in cartpos: diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py index 1d077c5aa..171240330 100644 --- a/src/pretix/presale/views/__init__.py +++ b/src/pretix/presale/views/__init__.py @@ -40,10 +40,10 @@ class CartMixin: # Django is unable to join related models in a .values() query def keyfunc(pos): if downloads: - return pos.id, 0, 0, 0, 0 + return pos.positionid, 0, 0, 0, 0 if answers and ((pos.item.admission and self.request.event.settings.attendee_names_asked) or pos.item.questions.all()): - return pos.id, 0, 0, 0, 0 + return pos.positionid, 0, 0, 0, 0 return 0, pos.item_id, pos.variation_id, pos.price, (pos.voucher_id or 0) positions = []