From da8da016147ffbec9b4cd97c55459c6d4123eb81 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 28 Jan 2019 10:22:31 +0100 Subject: [PATCH] Fix #1148 -- Reduce number of cases in which we show "Reserved" --- src/pretix/base/models/items.py | 12 ++++++------ src/tests/base/test_models.py | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index 4ba6b92a81..3f177eef94 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -1111,16 +1111,16 @@ class Quota(LoggedModel): size_left -= self.count_blocking_vouchers(now_dt) if size_left <= 0: - return Quota.AVAILABILITY_RESERVED, 0 - - size_left -= self.count_in_cart(now_dt) - if size_left <= 0: - return Quota.AVAILABILITY_RESERVED, 0 + return Quota.AVAILABILITY_ORDERED, 0 if count_waitinglist: size_left -= self.count_waiting_list_pending() if size_left <= 0: - return Quota.AVAILABILITY_RESERVED, 0 + return Quota.AVAILABILITY_ORDERED, 0 + + size_left -= self.count_in_cart(now_dt) + if size_left <= 0: + return Quota.AVAILABILITY_RESERVED, 0 return Quota.AVAILABILITY_OK, size_left diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index 3e290e8441..bce761e12f 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -215,7 +215,7 @@ class QuotaTestCase(BaseQuotaTestCase): v.block_quota = True v.save() - self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) def test_voucher_variation(self): self.quota.variations.add(self.var1) @@ -228,7 +228,7 @@ class QuotaTestCase(BaseQuotaTestCase): v.block_quota = True v.save() - self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) def test_voucher_quota(self): self.quota.variations.add(self.var1) @@ -241,7 +241,7 @@ class QuotaTestCase(BaseQuotaTestCase): v.block_quota = True v.save() - self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) def test_voucher_quota_multiuse(self): self.quota.size = 5 @@ -250,7 +250,7 @@ class QuotaTestCase(BaseQuotaTestCase): Voucher.objects.create(quota=self.quota, event=self.event, block_quota=True, max_usages=5, redeemed=2) self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_OK, 2)) Voucher.objects.create(quota=self.quota, event=self.event, block_quota=True, max_usages=2) - self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) def test_voucher_multiuse_count_overredeemed(self): if 'sqlite' not in settings.DATABASES['default']['ENGINE']: @@ -282,7 +282,7 @@ class QuotaTestCase(BaseQuotaTestCase): self.quota.save() Voucher.objects.create(quota=self.quota, event=self.event, valid_until=now() + timedelta(days=5), block_quota=True) - self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) def test_voucher_quota_expired(self): self.quota.variations.add(self.var1) @@ -339,7 +339,7 @@ class QuotaTestCase(BaseQuotaTestCase): WaitingListEntry.objects.create( event=self.event, item=self.item1, email='foo@bar.com' ) - self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) self.assertEqual(self.item1.check_quotas(count_waitinglist=False), (Quota.AVAILABILITY_OK, 1)) def test_waitinglist_variation_active(self): @@ -349,7 +349,7 @@ class QuotaTestCase(BaseQuotaTestCase): WaitingListEntry.objects.create( event=self.event, item=self.item2, variation=self.var1, email='foo@bar.com' ) - self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0)) self.assertEqual(self.var1.check_quotas(count_waitinglist=False), (Quota.AVAILABILITY_OK, 1)) def test_waitinglist_variation_fulfilled(self): @@ -383,10 +383,10 @@ class QuotaTestCase(BaseQuotaTestCase): cache = {} - self.assertEqual(self.var1.check_quotas(_cache=cache), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(_cache=cache), (Quota.AVAILABILITY_ORDERED, 0)) with self.assertNumQueries(1): - self.assertEqual(self.var1.check_quotas(_cache=cache), (Quota.AVAILABILITY_RESERVED, 0)) + self.assertEqual(self.var1.check_quotas(_cache=cache), (Quota.AVAILABILITY_ORDERED, 0)) # Do not reuse cache for count_waitinglist=False self.assertEqual(self.var1.check_quotas(_cache=cache, count_waitinglist=False), (Quota.AVAILABILITY_OK, 1))