diff --git a/src/pretix/base/shredder.py b/src/pretix/base/shredder.py index 7a9476e2cb..552ae08607 100644 --- a/src/pretix/base/shredder.py +++ b/src/pretix/base/shredder.py @@ -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 diff --git a/src/tests/base/test_shredders.py b/src/tests/base/test_shredders.py index 243a3d1ca0..97cfdbd5c2 100644 --- a/src/tests/base/test_shredders.py +++ b/src/tests/base/test_shredders.py @@ -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)