From 34f61778556e798d6aecb8e921b0f2a399e4ab08 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Tue, 8 Dec 2020 17:24:03 +0100 Subject: [PATCH] agendas: include event description in reminders (#49034) --- .../templates/agendas/events_reminder_body.html | 12 ++++++++++++ .../templates/agendas/events_reminder_body.txt | 9 +++++++++ chrono/manager/views.py | 7 +++++-- tests/test_agendas.py | 14 +++++++++++++- tests/test_manager.py | 7 +++++-- 5 files changed, 44 insertions(+), 5 deletions(-) diff --git a/chrono/agendas/templates/agendas/events_reminder_body.html b/chrono/agendas/templates/agendas/events_reminder_body.html index 2134ca0..9cab762 100644 --- a/chrono/agendas/templates/agendas/events_reminder_body.html +++ b/chrono/agendas/templates/agendas/events_reminder_body.html @@ -10,6 +10,18 @@ You have a booking for event "{{ event }}", on {{ date }} at {{ time }}. {% endblocktrans %}

+{% if booking.event.description %} +

{{ booking.event.description }}

+{% endif %} + +{% if booking.event.pricing %} +

{% trans "Pricing:" %} {{ booking.event.pricing }}

+{% endif %} + +{% if booking.event.url %} +

{% trans "Details:" %} {{ booking.event.url }}

+{% endif %} + {% if email_extra_info %}

{{ email_extra_info }}

{% endif %} diff --git a/chrono/agendas/templates/agendas/events_reminder_body.txt b/chrono/agendas/templates/agendas/events_reminder_body.txt index f61bd3f..d046342 100644 --- a/chrono/agendas/templates/agendas/events_reminder_body.txt +++ b/chrono/agendas/templates/agendas/events_reminder_body.txt @@ -6,6 +6,15 @@ {% blocktrans trimmed with event=booking.event date=date|date:"l j F" time=date|time %} You have a booking for event "{{ event }}", on {{ date }} at {{ time }}. {% endblocktrans %} +{% if booking.event.description %} +{{ booking.event.description }} +{% endif %} +{% if booking.event.pricing %} +{% trans "Pricing:" %} {{ booking.event.pricing }} +{% endif %} +{% if booking.event.url %} +{% trans "Details:" %} {{ booking.event.url }} +{% endif %} {% if email_extra_info %} {{ email_extra_info }} {% endif %} diff --git a/chrono/manager/views.py b/chrono/manager/views.py index e146209..4a28a8b 100644 --- a/chrono/manager/views.py +++ b/chrono/manager/views.py @@ -33,7 +33,7 @@ from django.template.loader import render_to_string from django.urls import reverse, reverse_lazy from django.utils.dates import MONTHS from django.utils.timezone import now, make_aware, make_naive, localtime -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext_lazy as _, gettext from django.utils.translation import ungettext from django.utils.encoding import force_text from django.views.generic import ( @@ -1587,8 +1587,11 @@ class AgendaReminderPreviewView(ManagedAgendaMixin, TemplateView): days = self.agenda.reminder_settings.days event = Event( - label='{{ event_label }}', + label=gettext('Event label'), start_datetime=datetime.datetime(year=2020, month=6, day=2, hour=14, minute=30), + description=_('This is the description of the event, if there is one.'), + pricing='10€', + url=_('https://url_of_event'), ) booking = Booking(user_display_label='{{ user_display_label }}', form_url='#') booking.event = event diff --git a/tests/test_agendas.py b/tests/test_agendas.py index 1b5cfee..92e7290 100644 --- a/tests/test_agendas.py +++ b/tests/test_agendas.py @@ -1491,7 +1491,15 @@ def test_agenda_reminders_email_content(mailoutbox, freezer): agenda=agenda, days=1, send_email=True, email_extra_info='Do no forget ID card.' ) start_datetime = now() + datetime.timedelta(days=2) - event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Pool party') + event = Event.objects.create( + agenda=agenda, + start_datetime=start_datetime, + places=10, + label='Pool party', + description='Come !', + url='https://example.party', + pricing='10€', + ) booking = Booking.objects.create(event=event, user_email='t@test.org') @@ -1504,8 +1512,12 @@ def test_agenda_reminders_email_content(mailoutbox, freezer): for body in mail_bodies: assert 'Hi,' in body assert 'You have a booking for event "Pool party", on Friday 3 January at 2 p.m..' in body + assert 'Come !' in body + assert 'Pricing: 10€' in body assert 'Do no forget ID card.' in body assert not 'cancel' in body + assert 'Details: https://example.party' in mail_bodies[0] + assert 'Details: https://example.party' in mail_bodies[1] mailoutbox.clear() freezer.move_to('2020-01-01 14:00') diff --git a/tests/test_manager.py b/tests/test_manager.py index 64ab7f4..0a75e5b 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -4760,14 +4760,17 @@ def test_manager_reminders_preview(app, admin_user): assert 'Users will receive the following email:' in resp.text assert len(resp.pyquery.find('p.email-subject')) == 1 assert 'Subject: Reminder for your booking tomorrow at 2:30 p.m.' in resp.text - assert 'You have a booking for event "{{ event_label }}", on Tuesday 2 June at 2:30 p.m..' in resp.text + assert 'You have a booking for event "Event label", on Tuesday 2 June at 2:30 p.m..' in resp.text + assert 'This is the description' in resp.text + assert '10€' in resp.text + assert 'https://url_of_event' in resp.text assert 'An ID will be required' in resp.text resp = resp.click('Return to settings') resp = resp.click('Preview SMS') assert 'Users will receive the following SMS:' in resp.text assert ( - 'Reminder: you have a booking for event "{{ event_label }}", on 02/06 at 2:30 p.m.. Take ID card.' + 'Reminder: you have a booking for event "Event label", on 02/06 at 2:30 p.m.. Take ID card.' in resp.text ) -- 2.20.1