Files
@ 3cccc3bdd90e
Branch filter:
Location: website/conservancy/usethesource/emails.py - annotation
3cccc3bdd90e
1.6 KiB
text/x-python
Email announcement about new UTS candidate
cadd69061f18 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e 3cccc3bdd90e cadd69061f18 cadd69061f18 cadd69061f18 3cccc3bdd90e cadd69061f18 cadd69061f18 3cccc3bdd90e 3cccc3bdd90e cadd69061f18 cadd69061f18 cadd69061f18 cadd69061f18 cadd69061f18 cadd69061f18 cadd69061f18 | from django.core.mail import EmailMessage
from django.shortcuts import reverse
SENDER = 'compliance@sfconservancy.org'
LIST_RECIPIENT = 'nutbush@lists.sfconservancy.org'
def make_candidate_email(candidate, user):
"""The initial email announcing the new candidate."""
subject = candidate.name
signature = user.get_full_name() or user.username
sender = f'{signature} <{SENDER}>'
to = [LIST_RECIPIENT]
body = f'''\
We've just published the following new candidate:
{candidate.name}
Vendor: {candidate.vendor}
Device: {candidate.device}
Released: {candidate.release_date}
{candidate.description}
To download this candidate's source and binary image, visit:
https://sfconservancy.org{reverse('usethesource:candidate', kwargs={'slug': candidate.slug})}
--
{signature}
'''
headers = {'Message-ID': candidate.email_message_id}
return EmailMessage(subject, body, sender, to, headers=headers)
def make_comment_email(comment):
"""Email when a comment is added to a candidate."""
subject = f'Re: {comment.candidate.name}'
signature = comment.user.get_full_name() or comment.user.username
sender = f'{signature} <{SENDER}>'
to = [LIST_RECIPIENT]
body = f'{comment.message}\n\n--\n{signature}'
headers = {'Message-ID': comment.email_message_id}
if in_reply_to := comment.in_reply_to():
# From my testing, both "In-Reply-To" and "References" headers trigger
# email threading in Thunderbind. Sticking to "In-Reply-To" for now.
headers['In-Reply-To'] = in_reply_to
return EmailMessage(subject, body, sender, to, headers=headers)
|