From 86da53f4f61e0261d2cace977cf293cf35c164bd Mon Sep 17 00:00:00 2001 From: Phoebe Bright Date: Wed, 28 Jul 2021 20:55:27 +0100 Subject: [PATCH 1/2] Add option to save context even if rendering immediately Call create() with save_context=True to include the context in the database when not using render_on_delivery. This is handy as you can save data you might want to search on later. --- post_office/mail.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/post_office/mail.py b/post_office/mail.py index ba77b682..8b0ff83e 100644 --- a/post_office/mail.py +++ b/post_office/mail.py @@ -29,7 +29,7 @@ def create(sender, recipients=None, cc=None, bcc=None, subject='', message='', html_message='', context=None, scheduled_time=None, expires_at=None, headers=None, template=None, priority=None, render_on_delivery=False, commit=True, - backend=''): + backend='', save_context=False): """ Creates an email from supplied keyword arguments. If template is specified, email subject and content will be rendered during delivery. @@ -73,6 +73,9 @@ def create(sender, recipients=None, cc=None, bcc=None, subject='', message='', subject = Template(subject).render(_context) message = Template(message).render(_context) html_message = Template(html_message).render(_context) + + if not save_context: + context = None email = Email( from_email=sender, @@ -86,7 +89,8 @@ def create(sender, recipients=None, cc=None, bcc=None, subject='', message='', expires_at=expires_at, message_id=message_id, headers=headers, priority=priority, status=status, - backend_alias=backend + backend_alias=backend, + context=context ) if commit: @@ -359,4 +363,4 @@ def send_queued_mail_until_done(lockfile=default_lockfile, processes=1, log_leve if not get_queued().exists(): break except FileLocked: - logger.info('Failed to acquire lock, terminating now.') \ No newline at end of file + logger.info('Failed to acquire lock, terminating now.') From 6a5322b1758fefbac274ee444b6817bee822417c Mon Sep 17 00:00:00 2001 From: Phoebe Bright Date: Wed, 28 Jul 2021 21:11:30 +0100 Subject: [PATCH 2/2] Pass through save_commit from send --- post_office/mail.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/post_office/mail.py b/post_office/mail.py index 8b0ff83e..d2fe1036 100644 --- a/post_office/mail.py +++ b/post_office/mail.py @@ -103,7 +103,7 @@ def send(recipients=None, sender=None, template=None, context=None, subject='', message='', html_message='', scheduled_time=None, expires_at=None, headers=None, priority=None, attachments=None, render_on_delivery=False, log_level=None, commit=True, cc=None, bcc=None, language='', - backend=''): + backend='', save_context=False): try: recipients = parse_emails(recipients) except ValidationError as e: @@ -155,7 +155,7 @@ def send(recipients=None, sender=None, template=None, context=None, subject='', email = create(sender, recipients, cc, bcc, subject, message, html_message, context, scheduled_time, expires_at, headers, template, priority, - render_on_delivery, commit=commit, backend=backend) + render_on_delivery, commit=commit, backend=backend, save_context=save_context) if attachments: attachments = create_attachments(attachments)