mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Scheduled emails: Extend filter by subevents (Z#23122902) (#3551)
To create automated mail rules for specific subevents only, this adds a selection widget to choose which, only appearing if there are any subevents to select.
This commit is contained in:
@@ -253,6 +253,58 @@ def test_sendmail_rule_send_correct_subevent(order, event_series, subevent1, sub
|
||||
assert djmail.outbox[0].to[0] == p1.attendee_email
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@scopes_disabled()
|
||||
def test_sendmail_rule_specified_subevent(order, event_series, subevent1, subevent2, item):
|
||||
djmail.outbox = []
|
||||
|
||||
order.all_positions.create(item=item, price=13, subevent=subevent1)
|
||||
order.all_positions.create(item=item, price=23, subevent=subevent2)
|
||||
|
||||
order.status = order.STATUS_PAID
|
||||
order.save()
|
||||
|
||||
rule = event_series.sendmail_rules.create(date_is_absolute=False, offset_is_after=False, send_offset_days=1,
|
||||
send_offset_time=datetime.time(4, 30), subevent=subevent1,
|
||||
subject='meow', template='meow meow meow')
|
||||
|
||||
sendmail_run_rules(None)
|
||||
|
||||
assert len(djmail.outbox) == 1
|
||||
|
||||
m = ScheduledMail.objects.filter(rule=rule).first()
|
||||
assert m.subevent == subevent1
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@scopes_disabled()
|
||||
def test_sendmail_rule_all_subevents(event_series, subevent1, subevent2, item):
|
||||
djmail.outbox = []
|
||||
|
||||
o1 = Order.objects.create(event=item.event, status=Order.STATUS_PAID,
|
||||
expires=now() + datetime.timedelta(hours=1),
|
||||
total=13, code='DUMMY', email='dummy1@dummy.test',
|
||||
datetime=now(), locale='en')
|
||||
o1.all_positions.create(item=item, price=13, subevent=subevent1)
|
||||
o1.all_positions.create(item=item, price=13, subevent=subevent2)
|
||||
o2 = Order.objects.create(event=item.event, status=Order.STATUS_PAID,
|
||||
expires=now() + datetime.timedelta(hours=1),
|
||||
total=13, code='DUMMY', email='dummy2@dummy.test',
|
||||
datetime=now(), locale='en')
|
||||
o2.all_positions.create(item=item, price=23, subevent=subevent1)
|
||||
o2.all_positions.create(item=item, price=23, subevent=subevent2)
|
||||
|
||||
rule = event_series.sendmail_rules.create(date_is_absolute=False, offset_is_after=False, send_offset_days=1,
|
||||
send_offset_time=datetime.time(4, 30), subevent=None,
|
||||
subject='meow', template='meow meow meow')
|
||||
sendmail_run_rules(None)
|
||||
|
||||
ms = ScheduledMail.objects.filter(rule=rule)
|
||||
assert len(ms) == 2 # one for each subevent
|
||||
assert ms.get(subevent=subevent1) is not None
|
||||
assert ms.get(subevent=subevent2) is not None
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@scopes_disabled()
|
||||
def test_sendmail_rule_send_correct_products(event, order, item, item2):
|
||||
|
||||
Reference in New Issue
Block a user