OrderChange: Fix invalid quota query

This commit is contained in:
Raphael Michel
2021-06-22 15:51:10 +02:00
parent e1ac22067a
commit f84b612d7b

View File

@@ -65,7 +65,8 @@ class OrderPositionChangeForm(forms.Form):
) )
qa = QuotaAvailability() qa = QuotaAvailability()
for v in variations: for v in variations:
quotas_to_compute = [q for q in v.quotas.filter(subevent=instance.subevent) if q not in quota_cache] v._quotas = v.quotas.filter(subevent=instance.subevent)
quotas_to_compute = [q for q in v._quotas if q not in quota_cache]
qa.queue(*quotas_to_compute) qa.queue(*quotas_to_compute)
qa.compute() qa.compute()
quota_cache.update(qa.results) quota_cache.update(qa.results)
@@ -82,10 +83,10 @@ class OrderPositionChangeForm(forms.Form):
q_res = [ q_res = [
(qa.results[q] if q in qa.results else quota_cache[q])[0] != Quota.AVAILABILITY_OK (qa.results[q] if q in qa.results else quota_cache[q])[0] != Quota.AVAILABILITY_OK
for q in v.quotas.all() for q in v._quotas
if q not in current_quotas if q not in current_quotas
] ]
if not v.quotas.all() or (q_res and any(q_res)): if not v._quotas or (q_res and any(q_res)):
continue continue
new_price = get_price(i, v, voucher=instance.voucher, subevent=instance.subevent, new_price = get_price(i, v, voucher=instance.voucher, subevent=instance.subevent,