Increased query efficiency

This commit is contained in:
Tom Price
2015-02-01 23:41:03 +00:00
parent e00a8771cc
commit 3dc856c489
2 changed files with 8 additions and 5 deletions

View File

@@ -13,7 +13,8 @@ class InvoiceIndex(generic.ListView):
template_name = 'RIGS/invoice_list.html'
def get_queryset(self):
active = self.model.objects.filter(void=False).select_related('payment_set')
active = self.model.objects.filter(void=False).select_related('payment_set', 'event').prefetch_related(
'event__items').defer('event__person', 'event__organisation', 'event__venue', 'event__mic')
set = []
for invoice in active:
if invoice.balance != 0:

View File

@@ -248,7 +248,7 @@ class Event(models.Model, RevisionMixin):
@property
def sum_total(self):
total = 0
for item in self.items.all():
for item in self.items.filter(cost__gt=0):
total += item.total_cost
return total
@@ -329,9 +329,9 @@ class Invoice(models.Model):
@property
def payment_total(self):
total = 0
for payment in self.payment_set.all():
total += payment.amount
total = self.payment_set.aggregate(models.Sum('amount'))
# for payment in self.payment_set.all():
# total += payment.amount
return total
@property
@@ -352,11 +352,13 @@ class Payment(models.Model):
INTERNAL = 'I'
EXTERNAL = 'E'
SUCORE = 'SU'
ADJUSTMENT = 'T'
METHODS = (
(CASH, 'Cash'),
(INTERNAL, 'Internal'),
(EXTERNAL, 'External'),
(SUCORE, 'SU Core'),
(ADJUSTMENT, 'TEC Adjustment'),
)
invoice = models.ForeignKey('Invoice')