mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 13:32:15 +00:00
Increased query efficiency
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user