checkout/src/purchase/views/reports.py
2022-04-25 18:59:32 +02:00

23 lines
854 B
Python

from django.db.models import Sum
from django.views.generic import TemplateView
from purchase.models import Basket, PaymentMethod, Product
from purchase.views.utils import ProtectedViewsMixin
class ReportsView(ProtectedViewsMixin, TemplateView):
permission_required = ["purchase.view_basket"]
template_name = "purchase/reports.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update(
{
"total": Basket.objects.priced().aggregate(total=Sum("price"))["total"],
"products": Product.objects.with_turnover().with_sold(),
"payment_methods": PaymentMethod.objects.with_turnover().with_sold(),
"no_payment_method": Basket.objects.no_payment_method().priced(),
}
)
return context