Add lifetime spending to customer details (#2934)

Co-authored-by: Richard Schreiber <schreiber@rami.io>
This commit is contained in:
ser8phin
2022-12-16 15:20:22 +01:00
committed by GitHub
parent bd5c9a4cb5
commit 8dd83e5a35
3 changed files with 79 additions and 47 deletions

View File

@@ -45,8 +45,8 @@ from django.core.exceptions import PermissionDenied, ValidationError
from django.core.files import File
from django.db import connections, transaction
from django.db.models import (
Count, Exists, IntegerField, Max, Min, OuterRef, Prefetch, ProtectedError,
Q, Subquery, Sum,
Count, Exists, F, IntegerField, Max, Min, OuterRef, Prefetch,
ProtectedError, Q, Subquery, Sum,
)
from django.db.models.functions import Coalesce, Greatest
from django.forms import DecimalField
@@ -2312,6 +2312,14 @@ class CustomerDetailView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
o.icnt = annotated.get(o.pk)['icnt']
o.sales_channel_obj = scs[o.sales_channel]
ctx["lifetime_spending"] = (
self.get_queryset()
.filter(status=Order.STATUS_PAID)
.values(currency=F("event__currency"))
.order_by("currency")
.annotate(spending=Sum("total"))
)
return ctx