mirror of
https://github.com/pretix/pretix.git
synced 2026-08-19 12:16:26 +00:00
Fix sendmail/scheduled-mails preview event-based placeholders
* Fix sendmail/scheduled-mails placeholders
* Add event_or_subevent to context
* Add placeholders to tests
* fix and improve test
* Revert "fix and improve test"
This reverts commit 874a11e982.
* undo placeholder-tests
* add test
This commit is contained in:
@@ -384,8 +384,8 @@ class RuleForm(FormPlaceholderMixin, I18nModelForm):
|
||||
]
|
||||
)
|
||||
|
||||
self._set_field_placeholders('subject', ['event', 'order', 'event_or_subevent'])
|
||||
self._set_field_placeholders('template', ['event', 'order', 'event_or_subevent'], rich=True)
|
||||
self._set_field_placeholders('subject', ['event', 'order', 'event_or_subevent', 'position_or_address'])
|
||||
self._set_field_placeholders('template', ['event', 'order', 'event_or_subevent', 'position_or_address'], rich=True)
|
||||
|
||||
choices = [
|
||||
(Order.STATUS_PAID, _('Paid (or canceled with paid fee)')),
|
||||
|
||||
@@ -657,7 +657,7 @@ class UpdateRule(EventPermissionRequiredMixin, UpdateView):
|
||||
|
||||
for lang in self.request.event.settings.locales:
|
||||
with language(lang, self.request.event.settings.region):
|
||||
placeholders = get_sample_context(self.request.event, ['event', 'order', 'position_or_address'])
|
||||
placeholders = get_sample_context(self.request.event, ['event', 'order', 'event_or_subevent', 'position_or_address'])
|
||||
subject = bleach.clean(self.object.subject.localize(lang), tags=set())
|
||||
preview_subject = prefix_subject(self.request.event, format_map(subject, placeholders), highlight=True)
|
||||
template = self.object.template.localize(lang)
|
||||
|
||||
@@ -35,6 +35,8 @@ def event():
|
||||
organizer=o, name='Dummy', slug='dummy',
|
||||
date_from=now(), live=True,
|
||||
plugins='pretix.plugins.sendmail,tests.testdummy',
|
||||
location='Foo City',
|
||||
date_admission=now().replace(hour=11, minute=30),
|
||||
)
|
||||
return event
|
||||
|
||||
@@ -81,7 +83,12 @@ def event_series(event):
|
||||
|
||||
@pytest.fixture
|
||||
def subevent1(event_series):
|
||||
se1 = event_series.subevents.create(name='Meow', date_from=now() + datetime.timedelta(days=1))
|
||||
se1 = event_series.subevents.create(
|
||||
name='Meow',
|
||||
date_from=now() + datetime.timedelta(days=1),
|
||||
location='Meow Town',
|
||||
date_admission=now().replace(hour=10, minute=0),
|
||||
)
|
||||
return se1
|
||||
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ def test_sendmail_rule_send_order_vs_pos(send_to, amount_mails, recipients, orde
|
||||
|
||||
order.event.sendmail_rules.create(date_is_absolute=True, send_date=dt_now - datetime.timedelta(hours=1),
|
||||
send_to=send_to,
|
||||
subject='meow', template='meow meow meow')
|
||||
subject='{event}: {event_location} @ {event_admission_time}', template='meow meow meow')
|
||||
order.all_positions.create(item=item, price=0, attendee_email='meow@dummy.test')
|
||||
|
||||
sendmail_run_rules(None)
|
||||
@@ -196,6 +196,8 @@ def test_sendmail_rule_send_order_vs_pos(send_to, amount_mails, recipients, orde
|
||||
_recipients = [mail.to[0] for mail in djmail.outbox]
|
||||
assert set(recipients) == set(_recipients)
|
||||
|
||||
assert djmail.outbox[0].subject == 'Dummy: Foo City @ 11:30'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@scopes_disabled()
|
||||
@@ -243,7 +245,7 @@ def test_sendmail_rule_send_correct_subevent(order, event_series, subevent1, sub
|
||||
|
||||
event_series.sendmail_rules.create(date_is_absolute=False, offset_is_after=False, send_offset_days=2,
|
||||
send_offset_time=datetime.time(9, 30), send_to=Rule.ATTENDEES,
|
||||
subject='meow', template='meow meow meow')
|
||||
subject='{event}: {event_location} @ {event_admission_time}', template='meow meow meow')
|
||||
p1 = order.all_positions.create(item=item, price=13, attendee_email='se1@dummy.test', subevent=subevent1)
|
||||
order.all_positions.create(item=item, price=23, attendee_email='se2@dummy.test', subevent=subevent2)
|
||||
|
||||
@@ -253,6 +255,8 @@ def test_sendmail_rule_send_correct_subevent(order, event_series, subevent1, sub
|
||||
|
||||
assert djmail.outbox[0].to[0] == p1.attendee_email
|
||||
|
||||
assert djmail.outbox[0].subject == 'Meow: Meow Town @ 10:00'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@scopes_disabled()
|
||||
|
||||
Reference in New Issue
Block a user