mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
@@ -34,7 +34,6 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
from datetime import timedelta
|
|
||||||
from typing import List, Tuple
|
from typing import List, Tuple
|
||||||
|
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
@@ -70,11 +69,11 @@ def shred_constraints(event: Event):
|
|||||||
max_fromto=Greatest(Max('date_to'), Max('date_from'))
|
max_fromto=Greatest(Max('date_to'), Max('date_from'))
|
||||||
)
|
)
|
||||||
max_date = max_date['max_fromto'] or max_date['max_to'] or max_date['max_from']
|
max_date = max_date['max_fromto'] or max_date['max_to'] or max_date['max_from']
|
||||||
if max_date is not None and max_date > now() - timedelta(days=30):
|
if max_date is not None and max_date >= now():
|
||||||
return _('Your event needs to be over for at least 30 days to use this feature.')
|
return _('Your event needs to be over to use this feature.')
|
||||||
else:
|
else:
|
||||||
if (event.date_to or event.date_from) > now() - timedelta(days=30):
|
if (event.date_to or event.date_from) >= now():
|
||||||
return _('Your event needs to be over for at least 30 days to use this feature.')
|
return _('Your event needs to be over to use this feature.')
|
||||||
if event.live:
|
if event.live:
|
||||||
return _('Your ticket shop needs to be offline to use this feature.')
|
return _('Your ticket shop needs to be offline to use this feature.')
|
||||||
return None
|
return None
|
||||||
|
|||||||
@@ -380,31 +380,34 @@ def test_shred_constraint_offline(event):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_shred_constraint_30_days(event):
|
def test_shred_constraint_after_event(event):
|
||||||
event.live = False
|
event.live = False
|
||||||
event.date_from = now() - timedelta(days=32)
|
now_dt = now()
|
||||||
event.date_to = now() - timedelta(days=32)
|
event.date_from = now_dt - timedelta(hours=1)
|
||||||
|
event.date_to = now_dt - timedelta(hours=1)
|
||||||
assert shred_constraints(event) is None
|
assert shred_constraints(event) is None
|
||||||
event.date_from = now() - timedelta(days=22)
|
event.date_from = now_dt - timedelta(hours=1)
|
||||||
event.date_to = now() - timedelta(days=22)
|
event.date_to = now_dt - timedelta(hours=1)
|
||||||
assert shred_constraints(event)
|
assert shred_constraints(event) is None
|
||||||
event.date_from = now() - timedelta(days=32)
|
event.date_from = now_dt - timedelta(hours=1)
|
||||||
event.date_to = now() - timedelta(days=22)
|
event.date_to = now_dt + timedelta(hours=1)
|
||||||
assert shred_constraints(event)
|
assert shred_constraints(event)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_shred_constraint_30_days_subevents(event):
|
def test_shred_constraint_after_event_subevents(event):
|
||||||
event.has_subevents = True
|
event.has_subevents = True
|
||||||
event.live = False
|
event.live = False
|
||||||
|
|
||||||
|
now_dt = now()
|
||||||
|
|
||||||
event.subevents.create(
|
event.subevents.create(
|
||||||
date_from=now() - timedelta(days=32),
|
date_from=now_dt - timedelta(hours=2),
|
||||||
date_to=now() - timedelta(days=32)
|
date_to=now_dt - timedelta(hours=1)
|
||||||
)
|
)
|
||||||
assert shred_constraints(event) is None
|
assert shred_constraints(event) is None
|
||||||
event.subevents.create(
|
event.subevents.create(
|
||||||
date_from=now() - timedelta(days=22),
|
date_from=now_dt - timedelta(hours=1),
|
||||||
date_to=now() - timedelta(days=32)
|
date_to=now_dt + timedelta(hours=1)
|
||||||
)
|
)
|
||||||
assert shred_constraints(event)
|
assert shred_constraints(event)
|
||||||
|
|||||||
Reference in New Issue
Block a user