fix: invoices month grouping

This commit is contained in:
imperosol 2024-10-13 11:46:03 +02:00
parent 564d95f701
commit e4845b580b

View File

@ -21,9 +21,11 @@
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
import itertools
# This file contains all the views that concern the user model
from datetime import date, timedelta
from operator import itemgetter
from smtplib import SMTPException
from django.conf import settings
@ -665,9 +667,15 @@ class UserAccountView(UserAccountBase):
kwargs["refilling_month"] = self.expense_by_month(
Refilling.objects.filter(customer=self.object.customer)
)
kwargs["invoices_month"] = self.expense_by_month(
Invoice.objects.filter(user=self.object)
)
kwargs["invoices_month"] = [
# the django ORM removes the `group by` clause in this query,
# so a little of post-processing is needed
{"grouped_date": key, "total": sum(i["total"] for i in group)}
for key, group in itertools.groupby(
self.expense_by_month(Invoice.objects.filter(user=self.object)),
key=itemgetter("grouped_date"),
)
]
kwargs["etickets"] = self.object.customer.buyings.exclude(product__eticket=None)
return kwargs