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