Send email to statements@ietf.org when a pending liaison statement gets queued.

- Legacy-Id: 5511
This commit is contained in:
Russ Housley 2013-03-09 16:49:38 +00:00
parent d8c765e72c
commit f55195e3d6
4 changed files with 26 additions and 11 deletions

View file

@ -30,14 +30,19 @@ def send_liaison_by_email(request, liaison, fake=False):
send_mail_text(request, to_email, from_email, subject, body, cc=", ".join(cc), bcc=", ".join(bcc))
def notify_pending_by_email(request, liaison, fake):
from ietf.liaisons.utils import IETFHM
from_entity = IETFHM.get_entity_by_key(liaison.from_raw_code)
if not from_entity:
return None
to_email = []
for person in from_entity.can_approve():
to_email.append('%s <%s>' % person.email())
# Broken: this does not find the list of approvers for the sending body
# For now, we are sending to statements@ietf.org so the Secretariat can nudge
# Bug 880: http://trac.tools.ietf.org/tools/ietfdb/ticket/880
#
# from ietf.liaisons.utils import IETFHM
#
# from_entity = IETFHM.get_entity_by_key(liaison.from_raw_code)
# if not from_entity:
# return None
# to_email = []
# for person in from_entity.can_approve():
# to_email.append('%s <%s>' % person.email())
subject = u'New Liaison Statement, "%s" needs your approval' % (liaison.title)
from_email = settings.LIAISON_UNIVERSAL_FROM
body = render_to_string('liaisons/pending_liaison_mail.txt', dict(
@ -45,7 +50,8 @@ def notify_pending_by_email(request, liaison, fake):
url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_approval_detail", kwargs=dict(object_id=liaison.pk)),
referenced_url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=liaison.related_to.pk)) if liaison.related_to else None,
))
send_mail_text(request, to_email, from_email, subject, body)
# send_mail_text(request, to_email, from_email, subject, body)
send_mail_text(request, ['statements@ietf.org'], from_email, subject, body)
def send_sdo_reminder(sdo):
roles = Role.objects.filter(name="liaiman", group=sdo)

View file

@ -148,6 +148,12 @@ class LiaisonDetailProxy(LiaisonStatement):
# we don't have a request so just pass None for the time being
return send_liaison_by_email(None, self, fake)
def notify_pending_by_email(self, fake=False):
# grab this from module instead of stuffing in on the model
from ietf.liaisons.mails import notify_pending_by_email
# we don't have a request so just pass None for the time being
return notify_pending_by_email(None, self, fake)
def is_pending(self):
return not self.approved

View file

@ -33,7 +33,10 @@ def add_liaison(request, liaison=None):
if form.is_valid():
liaison = form.save()
if request.POST.get('send', None):
liaison.send_by_email()
if liaison.is_pending():
liaison.notify_pending_by_email()
else:
liaison.send_by_email()
return HttpResponseRedirect(reverse('liaison_list'))
else:
form = liaison_form_factory(request, liaison=liaison)

View file

@ -65,8 +65,8 @@ def send_smtp(msg, bcc=None):
log("SMTP server: %s" % repr(server))
#if settings.DEBUG:
# server.set_debuglevel(1)
code, msg = server.connect(settings.EMAIL_HOST, settings.EMAIL_PORT)
log("SMTP connect: code: %s; msg: %s" % (code, msg))
code, conmsg = server.connect(settings.EMAIL_HOST, settings.EMAIL_PORT)
log("SMTP connect: code: %s; msg: %s" % (code, conmsg))
if settings.EMAIL_HOST_USER and settings.EMAIL_HOST_PASSWORD:
server.ehlo()
if 'starttls' not in server.esmtp_features: