usethesource: Make email addresses configurable

This commit is contained in:
Ben Sturmfels 2024-01-31 12:28:45 +11:00
parent 8f58ae83e0
commit c287dac433
Signed by: bsturmfels
GPG key ID: 023C05E2C9C068F0
2 changed files with 21 additions and 6 deletions

View file

@ -149,3 +149,8 @@ MIDDLEWARE = [
'conservancy.middleware.ForceCanonicalHostnameMiddleware', 'conservancy.middleware.ForceCanonicalHostnameMiddleware',
# 'django.middleware.doc.XViewMiddleware', # 'django.middleware.doc.XViewMiddleware',
] ]
USETHESOURCE = {
'SENDER': 'compliance@sfconservancy.org',
'LIST_RECIPIENT': 'nutbush@lists.sfconservancy.org',
}

View file

@ -1,8 +1,9 @@
from django.conf import settings
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
from django.shortcuts import reverse from django.shortcuts import reverse
SENDER = 'compliance@sfconservancy.org' SENDER = settings.USETHESOURCE['SENDER']
LIST_RECIPIENT = 'nutbush@lists.sfconservancy.org' LIST_RECIPIENT = settings.USETHESOURCE['LIST_RECIPIENT']
def make_candidate_email(candidate, user): def make_candidate_email(candidate, user):
@ -21,23 +22,32 @@ Released: {candidate.release_date}
{candidate.description} {candidate.description}
To download this candidate's source and binary image, visit: To view this candidate and download the source and binary image, visit:
https://sfconservancy.org{reverse('usethesource:candidate', kwargs={'slug': candidate.slug})} https://sfconservancy.org{reverse('usethesource:candidate', kwargs={'slug': candidate.slug})}
-- --
{signature} {signature}
''' (Via http//sfconservancy.org{reverse('usethesource:landing')})'''
headers = {'Message-ID': candidate.email_message_id} headers = {'Message-ID': candidate.email_message_id}
return EmailMessage(subject, body, sender, to, headers=headers) return EmailMessage(subject, body, sender, to, headers=headers)
def make_comment_email(comment): def make_comment_email(comment):
"""Email when a comment is added to a candidate.""" """Email when a comment is added to a candidate."""
subject = f'Re: {comment.candidate.name}' candidate = comment.candidate
subject = f'Re: {candidate.name}'
signature = comment.user.get_full_name() or comment.user.username signature = comment.user.get_full_name() or comment.user.username
sender = f'{signature} <{SENDER}>' sender = f'{signature} <{SENDER}>'
to = [LIST_RECIPIENT] to = [LIST_RECIPIENT]
body = f'{comment.message}\n\n--\n{signature}' body = f'''\
{comment.message}
To view this candidate and download the source and binary image, visit:
https://sfconservancy.org{reverse('usethesource:candidate', kwargs={'slug': candidate.slug})}
--
{signature}
(Via http//sfconservancy.org{reverse('usethesource:landing')})'''
headers = {'Message-ID': comment.email_message_id} headers = {'Message-ID': comment.email_message_id}
if in_reply_to := comment.in_reply_to(): if in_reply_to := comment.in_reply_to():
# From my testing, both "In-Reply-To" and "References" headers trigger # From my testing, both "In-Reply-To" and "References" headers trigger