mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Fixed broken grouping
This commit is contained in:
@@ -21,6 +21,7 @@ def tuplesum(tuples):
|
|||||||
def mysum(it):
|
def mysum(it):
|
||||||
sit = [i for i in it if not isinstance(i, Dontsum)]
|
sit = [i for i in it if not isinstance(i, Dontsum)]
|
||||||
return sum(sit)
|
return sum(sit)
|
||||||
|
|
||||||
return tuple(map(mysum, zip(*list(tuples))))
|
return tuple(map(mysum, zip(*list(tuples))))
|
||||||
|
|
||||||
|
|
||||||
@@ -33,39 +34,40 @@ def order_overview(event):
|
|||||||
|
|
||||||
num_total = {
|
num_total = {
|
||||||
(p['item'], p['variation']): (p['cnt'], p['price'])
|
(p['item'], p['variation']): (p['cnt'], p['price'])
|
||||||
for p in
|
for p in (OrderPosition.objects.current
|
||||||
OrderPosition.objects.current.filter(order__event=event).values('item', 'variation').annotate(
|
.filter(order__event=event)
|
||||||
cnt=Count('id'), price=Sum('price'))
|
.values('item', 'variation')
|
||||||
}
|
.annotate(cnt=Count('id'), price=Sum('price')).order_by())
|
||||||
|
}
|
||||||
num_cancelled = {
|
num_cancelled = {
|
||||||
(p['item'], p['variation']): (p['cnt'], p['price'])
|
(p['item'], p['variation']): (p['cnt'], p['price'])
|
||||||
for p in (OrderPosition.objects.current
|
for p in (OrderPosition.objects.current
|
||||||
.filter(order__event=event, order__status=Order.STATUS_CANCELLED)
|
.filter(order__event=event, order__status=Order.STATUS_CANCELLED)
|
||||||
.values('item', 'variation')
|
.values('item', 'variation')
|
||||||
.annotate(cnt=Count('id'), price=Sum('price')))
|
.annotate(cnt=Count('id'), price=Sum('price')).order_by())
|
||||||
}
|
}
|
||||||
num_refunded = {
|
num_refunded = {
|
||||||
(p['item'], p['variation']): (p['cnt'], p['price'])
|
(p['item'], p['variation']): (p['cnt'], p['price'])
|
||||||
for p in (OrderPosition.objects.current
|
for p in (OrderPosition.objects.current
|
||||||
.filter(order__event=event, order__status=Order.STATUS_REFUNDED)
|
.filter(order__event=event, order__status=Order.STATUS_REFUNDED)
|
||||||
.values('item', 'variation')
|
.values('item', 'variation')
|
||||||
.annotate(cnt=Count('id'), price=Sum('price')))
|
.annotate(cnt=Count('id'), price=Sum('price')).order_by())
|
||||||
}
|
}
|
||||||
num_pending = {
|
num_pending = {
|
||||||
(p['item'], p['variation']): (p['cnt'], p['price'])
|
(p['item'], p['variation']): (p['cnt'], p['price'])
|
||||||
for p in (OrderPosition.objects.current
|
for p in (OrderPosition.objects.current
|
||||||
.filter(order__event=event,
|
.filter(order__event=event,
|
||||||
order__status__in=(Order.STATUS_PENDING, Order.STATUS_EXPIRED))
|
order__status__in=(Order.STATUS_PENDING, Order.STATUS_EXPIRED))
|
||||||
.values('item', 'variation')
|
.values('item', 'variation')
|
||||||
.annotate(cnt=Count('id'), price=Sum('price')))
|
.annotate(cnt=Count('id'), price=Sum('price')).order_by())
|
||||||
}
|
}
|
||||||
num_paid = {
|
num_paid = {
|
||||||
(p['item'], p['variation']): (p['cnt'], p['price'])
|
(p['item'], p['variation']): (p['cnt'], p['price'])
|
||||||
for p in (OrderPosition.objects.current
|
for p in (OrderPosition.objects.current
|
||||||
.filter(order__event=event, order__status=Order.STATUS_PAID)
|
.filter(order__event=event, order__status=Order.STATUS_PAID)
|
||||||
.values('item', 'variation')
|
.values('item', 'variation')
|
||||||
.annotate(cnt=Count('id'), price=Sum('price')))
|
.annotate(cnt=Count('id'), price=Sum('price')).order_by())
|
||||||
}
|
}
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
item.all_variations = sorted(item.get_all_variations(),
|
item.all_variations = sorted(item.get_all_variations(),
|
||||||
@@ -94,7 +96,7 @@ def order_overview(event):
|
|||||||
for cat in set([i.category for i in items])
|
for cat in set([i.category for i in items])
|
||||||
# insert categories into a set for uniqueness
|
# insert categories into a set for uniqueness
|
||||||
# a set is unsorted, so sort again by category
|
# a set is unsorted, so sort again by category
|
||||||
],
|
],
|
||||||
key=lambda group: (group[0].position, group[0].identity) if group[0] is not None else (0, "")
|
key=lambda group: (group[0].position, group[0].identity) if group[0] is not None else (0, "")
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -111,38 +113,39 @@ def order_overview(event):
|
|||||||
payment_items = []
|
payment_items = []
|
||||||
num_total = {
|
num_total = {
|
||||||
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
||||||
for o in
|
for o in (Order.objects.current
|
||||||
Order.objects.current.filter(event=event).values('payment_provider').annotate(
|
.filter(event=event)
|
||||||
cnt=Count('id'), payment_fee=Sum('payment_fee'))
|
.values('payment_provider')
|
||||||
}
|
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')).order_by())
|
||||||
|
}
|
||||||
num_cancelled = {
|
num_cancelled = {
|
||||||
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
||||||
for o in (Order.objects.current
|
for o in (Order.objects.current
|
||||||
.filter(event=event, status=Order.STATUS_CANCELLED)
|
.filter(event=event, status=Order.STATUS_CANCELLED)
|
||||||
.values('payment_provider')
|
.values('payment_provider')
|
||||||
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')))
|
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')).order_by())
|
||||||
}
|
}
|
||||||
num_refunded = {
|
num_refunded = {
|
||||||
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
||||||
for o in (Order.objects.current
|
for o in (Order.objects.current
|
||||||
.filter(event=event, status=Order.STATUS_REFUNDED)
|
.filter(event=event, status=Order.STATUS_REFUNDED)
|
||||||
.values('payment_provider')
|
.values('payment_provider')
|
||||||
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')))
|
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')).order_by())
|
||||||
}
|
}
|
||||||
num_pending = {
|
num_pending = {
|
||||||
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
||||||
for o in (Order.objects.current
|
for o in (Order.objects.current
|
||||||
.filter(event=event, status__in=(Order.STATUS_PENDING, Order.STATUS_EXPIRED))
|
.filter(event=event, status__in=(Order.STATUS_PENDING, Order.STATUS_EXPIRED))
|
||||||
.values('payment_provider')
|
.values('payment_provider')
|
||||||
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')))
|
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')).order_by())
|
||||||
}
|
}
|
||||||
num_paid = {
|
num_paid = {
|
||||||
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
o['payment_provider']: (o['cnt'], o['payment_fee'])
|
||||||
for o in (Order.objects.current
|
for o in (Order.objects.current
|
||||||
.filter(event=event, status=Order.STATUS_PAID)
|
.filter(event=event, status=Order.STATUS_PAID)
|
||||||
.values('payment_provider')
|
.values('payment_provider')
|
||||||
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')))
|
.annotate(cnt=Count('id'), payment_fee=Sum('payment_fee')).order_by())
|
||||||
}
|
}
|
||||||
|
|
||||||
provider_names = {}
|
provider_names = {}
|
||||||
responses = register_payment_providers.send(event)
|
responses = register_payment_providers.send(event)
|
||||||
|
|||||||
Reference in New Issue
Block a user