Coverage for jacc/helpers.py : 100%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from decimal import Decimal
2from django.db.models import QuerySet, Sum
5def sum_queryset(qs: QuerySet, key: str = 'amount', default: Decimal = Decimal(0)) -> Decimal:
6 """
7 Returns aggregate sum of queryset 'amount' field.
8 :param qs: QuerySet
9 :param key: Field to sum (default: 'amount')
10 :param default: Default value if no results
11 :return: Sum of 'amount' field values (coalesced 0 if None)
12 """
13 res = qs.aggregate(b=Sum(key))['b']
14 return default if res is None else res