Reduce number of queries on the order change form

This commit is contained in:
Raphael Michel
2020-03-26 09:50:14 +01:00
parent c89242855c
commit 29cb1e93d8
2 changed files with 21 additions and 5 deletions

View File

@@ -1379,9 +1379,14 @@ class OrderChange(OrderView):
return ff(
prefix='add',
order=self.order,
items=self.items,
data=self.request.POST if self.request.method == "POST" else None
)
@cached_property
def items(self):
return self.request.event.items.prefetch_related('variations', 'tax_rule').all()
@cached_property
def fees(self):
fees = list(self.order.fees.all())
@@ -1397,9 +1402,9 @@ class OrderChange(OrderView):
@cached_property
def positions(self):
positions = list(self.order.positions.all())
positions = list(self.order.positions.select_related('item', 'item__tax_rule'))
for p in positions:
p.form = OrderPositionChangeForm(prefix='op-{}'.format(p.pk), instance=p,
p.form = OrderPositionChangeForm(prefix='op-{}'.format(p.pk), instance=p, items=self.items,
initial={'seat': p.seat.seat_guid if p.seat else None},
data=self.request.POST if self.request.method == "POST" else None)
try: