From 85cfe0ed8af266ce8f9e4dd3ef75d58aa5b9d303 Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Thu, 7 May 2015 16:29:17 +0000
Subject: [PATCH] Show leadership when and where mail was sent at the time it
 is sent. Commit ready for merge.  - Legacy-Id: 9608

---
 ietf/iesg/tests.py  |  4 ++--
 ietf/utils/mail.py  | 19 +++++++++++++++++++
 static/css/ietf.css |  4 ++++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/ietf/iesg/tests.py b/ietf/iesg/tests.py
index dfcc7d7fa..295c00c67 100644
--- a/ietf/iesg/tests.py
+++ b/ietf/iesg/tests.py
@@ -435,8 +435,8 @@ class RescheduleOnAgendaTests(TestCase):
         r = self.client.get(url)
         self.assertEqual(r.status_code, 200)
         d_header_pos = r.content.find("IESG telechat %s" % d.isoformat())
-        draft_pos = r.content.find(draft.name)
-        self.assertTrue(d_header_pos < draft_pos)
+        draft_pos = r.content[d_header_pos:].find(draft.name)
+        self.assertTrue(draft_pos>0)
 
         self.assertTrue(draft.latest_event(TelechatDocEvent, "scheduled_for_telechat"))
         self.assertEqual(draft.latest_event(TelechatDocEvent, "scheduled_for_telechat").telechat_date, d)
diff --git a/ietf/utils/mail.py b/ietf/utils/mail.py
index d2aa78a3c..deeaa67e2 100644
--- a/ietf/utils/mail.py
+++ b/ietf/utils/mail.py
@@ -21,6 +21,7 @@ import time
 import copy
 import textwrap
 import traceback
+import datetime
 
 # Testing mode:
 # import ietf.utils.mail
@@ -228,6 +229,19 @@ def condition_message(to, frm, subject, msg, cc, extra):
             if v:
                 msg[k] = v
 
+def show_that_mail_was_sent(request,leadline,msg,bcc):
+        if request and request.user:
+            from ietf.ietfauth.utils import has_role
+            if has_role(request.user,['Area Director','Secretariat','IANA','RFC Editor','ISE','IAD','IRTF Chair','WG Chair','RG Chair','WG Secretary','RG Secretary']):
+                info =  "%s at %s %s\n" % (leadline,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),settings.TIME_ZONE)
+                info += "Subject: %s\n" % msg.get('Subject','[no subject]')
+                info += "To: %s\n" % msg.get('To','[no to]')
+                if msg.get('Cc'):
+                    info += "Cc: %s\n" % msg.get('Cc')
+                if bcc:
+                    info += "Bcc: %s\n" % bcc
+                messages.info(request,info,extra_tags='preformatted',fail_silently=True)
+
 def send_mail_mime(request, to, frm, subject, msg, cc=None, extra=None, toUser=False, bcc=None):
     """Send MIME message with content already filled in."""
     
@@ -238,6 +252,9 @@ def send_mail_mime(request, to, frm, subject, msg, cc=None, extra=None, toUser=F
     # and EMAIL_PORT=2025 in settings_local.py
     debugging = getattr(settings, "USING_DEBUG_EMAIL_SERVER", False) and settings.EMAIL_HOST == 'localhost' and settings.EMAIL_PORT == 2025
 
+    if settings.SERVER_MODE == 'development':
+        show_that_mail_was_sent(request,'In production, email would have been sent',msg,bcc)
+
     if test_mode or debugging or settings.SERVER_MODE == 'production':
         try:
             send_smtp(msg,bcc)
@@ -245,6 +262,8 @@ def send_mail_mime(request, to, frm, subject, msg, cc=None, extra=None, toUser=F
             log_smtp_exception(e)
             build_warning_message(request, e)
             send_error_email(e)
+
+        show_that_mail_was_sent(request,'Email was sent',msg,bcc)
             
     elif settings.SERVER_MODE == 'test':
 	if toUser:
diff --git a/static/css/ietf.css b/static/css/ietf.css
index be6b4c09e..84a193dc8 100644
--- a/static/css/ietf.css
+++ b/static/css/ietf.css
@@ -178,6 +178,10 @@ pre {
   font-size: 14px;
 }
 
+.preformatted {
+    white-space: pre;
+}
+
 /* Make ampersands pretty */
 /* This sets ampersand in a different font than the rest of the text. Fancy, but it's
 really better to select a pretty font in the first place.  Additionally, _which_ 'pretty'