mirror of
https://github.com/pretix/pretix.git
synced 2025-12-07 22:42:26 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1416fbdb8 | ||
|
|
1693affba4 | ||
|
|
43d3eb3fe2 |
@@ -1 +1 @@
|
|||||||
__version__ = "3.0.0"
|
__version__ = "3.0.1"
|
||||||
|
|||||||
@@ -631,7 +631,9 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
|||||||
delete_cps = []
|
delete_cps = []
|
||||||
quota_avail_cache = {}
|
quota_avail_cache = {}
|
||||||
if consume_carts:
|
if consume_carts:
|
||||||
for cp in CartPosition.objects.filter(event=self.context['event'], cart_id__in=consume_carts):
|
for cp in CartPosition.objects.filter(
|
||||||
|
event=self.context['event'], cart_id__in=consume_carts, expires__gt=now()
|
||||||
|
):
|
||||||
quotas = (cp.variation.quotas.filter(subevent=cp.subevent)
|
quotas = (cp.variation.quotas.filter(subevent=cp.subevent)
|
||||||
if cp.variation else cp.item.quotas.filter(subevent=cp.subevent))
|
if cp.variation else cp.item.quotas.filter(subevent=cp.subevent))
|
||||||
for quota in quotas:
|
for quota in quotas:
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ def generate_widget_js(lang):
|
|||||||
]
|
]
|
||||||
for fname in files:
|
for fname in files:
|
||||||
f = finders.find(fname)
|
f = finders.find(fname)
|
||||||
with open(f, 'r') as fp:
|
with open(f, 'r', encoding='utf-8') as fp:
|
||||||
code.append(fp.read())
|
code.append(fp.read())
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
|
|||||||
@@ -2439,6 +2439,35 @@ def test_order_create_quota_consume_cart(token_client, organizer, event, item, q
|
|||||||
assert not CartPosition.objects.filter(pk=cr.pk).exists()
|
assert not CartPosition.objects.filter(pk=cr.pk).exists()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_order_create_quota_consume_cart_expired(token_client, organizer, event, item, quota, question):
|
||||||
|
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||||
|
res['positions'][0]['item'] = item.pk
|
||||||
|
res['positions'][0]['answers'][0]['question'] = question.pk
|
||||||
|
|
||||||
|
with scopes_disabled():
|
||||||
|
cr = CartPosition.objects.create(
|
||||||
|
event=event, cart_id="uxLJBUMEcnxOLI2EuxLYN1hWJq9GKu4yWL9FEgs2m7M0vdFi@api", item=item,
|
||||||
|
price=23,
|
||||||
|
expires=now() - datetime.timedelta(hours=3)
|
||||||
|
)
|
||||||
|
|
||||||
|
quota.size = 0
|
||||||
|
quota.save()
|
||||||
|
res['consume_carts'] = [cr.cart_id]
|
||||||
|
resp = token_client.post(
|
||||||
|
'/api/v1/organizers/{}/events/{}/orders/'.format(
|
||||||
|
organizer.slug, event.slug
|
||||||
|
), format='json', data=res
|
||||||
|
)
|
||||||
|
assert resp.status_code == 400
|
||||||
|
assert resp.data == {
|
||||||
|
'positions': [
|
||||||
|
{'item': ['There is not enough quota available on quota "Budget Quota" to perform the operation.']},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_order_create_free(token_client, organizer, event, item, quota, question):
|
def test_order_create_free(token_client, organizer, event, item, quota, question):
|
||||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||||
|
|||||||
Reference in New Issue
Block a user