Use aggregation for all_balance
This commit is contained in:
parent
53c35377c6
commit
39700082e1
@ -5,10 +5,12 @@ from django.conf import settings
|
|||||||
from users.models import User
|
from users.models import User
|
||||||
import operator
|
import operator
|
||||||
from upload.models import Media
|
from upload.models import Media
|
||||||
|
from django.db.models import Sum
|
||||||
|
|
||||||
|
|
||||||
def homePage(request):
|
def homePage(request):
|
||||||
iter_var = 0
|
iter_var = 0
|
||||||
all_balance = []
|
all_balance = 0
|
||||||
Cashier = False
|
Cashier = False
|
||||||
Processor = False
|
Processor = False
|
||||||
|
|
||||||
@ -29,19 +31,19 @@ def homePage(request):
|
|||||||
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
||||||
else:
|
else:
|
||||||
userQR=None
|
userQR=None
|
||||||
a = Balance.objects.all()
|
|
||||||
|
|
||||||
for user in a:
|
# Use aggregation that can be calculated in database (fast)
|
||||||
all_balance.append(user.balanceValue)
|
all_balance = Balance.objects.all().aggregate(s=Sum("balanceValue"))['s']
|
||||||
print(f"{all_balance}")
|
# print(f"{all_balance}")
|
||||||
limited_coins = settings.ALL_COINS - sum(all_balance)
|
|
||||||
|
limited_coins = settings.ALL_COINS - all_balance
|
||||||
context = {
|
context = {
|
||||||
"isCashier": Cashier,
|
"isCashier": Cashier,
|
||||||
"isProcessor": Processor,
|
"isProcessor": Processor,
|
||||||
"userQR":userQR,
|
"userQR":userQR,
|
||||||
"fullbalance": limited_coins,
|
"fullbalance": limited_coins,
|
||||||
"currencyTotal": sum(all_balance),
|
"currencyTotal": all_balance,
|
||||||
"userBalance": userBalance
|
"userBalance": userBalance,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user