mirror of
https://github.com/pretix/pretix.git
synced 2026-08-21 12:36:26 +00:00
Allow RelativeDate in relation to a moment of order (#6160)
* initial implementation * factor out _resolve_base_date * add js to prevent illegal inputs * fix tests * Update src/pretix/base/reldate.py Co-authored-by: Raphael Michel <michel@pretix.eu> * Apply suggestions from code review Co-authored-by: Raphael Michel <mail@raphaelmichel.de> * move js includes of to fragment_js.html * add type annotations * moves logic from RelativeDateWrapper into RelativeDate and adds BaseChoice for configuring which models attributes support which relationship * fix tests * test upgrade behaviour * Apply suggestions from code review Co-authored-by: Raphael Michel <mail@raphaelmichel.de> * move reldate.js include in correct file * add OptionAttrsSelect to allow select options with their own attributes per value * add a little bit of information to the tests for future reference * rewrite reldate.js use data-attributes * general cleanup * add test for order.subevents cases * use correct choice format * remove order.subevent variants * various cleanup * Apply suggestions from code review Co-authored-by: Raphael Michel <mail@raphaelmichel.de> * remove empty docstrings * add depreciation warning * change event listener to pretix:bind-forms --------- Co-authored-by: Raphael Michel <michel@pretix.eu> Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
This commit is contained in:
co-authored by
Raphael Michel
Raphael Michel
parent
f25c233e91
commit
7fe31634e6
@@ -133,7 +133,7 @@ def test_availability_date_relative(event):
|
||||
event.save()
|
||||
prov = DummyPaymentProvider(event)
|
||||
prov.settings.set('_availability_date', RelativeDateWrapper(
|
||||
RelativeDate(days=2, time=None, base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=2, time=None, base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
|
||||
utc = datetime.timezone.utc
|
||||
@@ -150,7 +150,7 @@ def test_availability_start_relative(event):
|
||||
event.save()
|
||||
prov = DummyPaymentProvider(event)
|
||||
prov.settings.set('_availability_start', RelativeDateWrapper(
|
||||
RelativeDate(days=2, time=datetime.time(12, 0), base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=2, time=datetime.time(12, 0), base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
|
||||
utc = datetime.timezone.utc
|
||||
@@ -193,12 +193,12 @@ def test_availability_date_cart_relative_subevents(event):
|
||||
|
||||
prov = DummyPaymentProvider(event)
|
||||
prov.settings.set('_availability_date', RelativeDateWrapper(
|
||||
RelativeDate(days=3, time=None, base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=3, time=None, base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
assert prov._is_available_by_time(cart_id="123")
|
||||
|
||||
prov.settings.set('_availability_date', RelativeDateWrapper(
|
||||
RelativeDate(days=4, time=None, base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=4, time=None, base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
assert not prov._is_available_by_time(cart_id="123")
|
||||
|
||||
@@ -233,11 +233,11 @@ def test_availability_date_order_relative_subevents(event):
|
||||
|
||||
prov = DummyPaymentProvider(event)
|
||||
prov.settings.set('_availability_date', RelativeDateWrapper(
|
||||
RelativeDate(days=3, time=None, base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=3, time=None, base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
assert prov._is_available_by_time(order=order)
|
||||
|
||||
prov.settings.set('_availability_date', RelativeDateWrapper(
|
||||
RelativeDate(days=4, time=None, base_date_name='date_from', minutes=None)
|
||||
RelativeDate(days=4, time=None, base_date_name='event__date_from', minutes=None)
|
||||
))
|
||||
assert not prov._is_available_by_time(order=order)
|
||||
|
||||
Reference in New Issue
Block a user