diff --git a/ietf/doc/tests_review.py b/ietf/doc/tests_review.py index fff8049be..39eebf21d 100644 --- a/ietf/doc/tests_review.py +++ b/ietf/doc/tests_review.py @@ -397,7 +397,7 @@ class ReviewTests(TestCase): # plain text msg = email.mime.text.MIMEText("Hello,\n\nI have reviewed the document and did not find any problems.\n\nJohn Doe") - msg["From"] = "johndoe@example.com" + msg["From"] = "John Doe " msg["To"] = review_req.team.list_email msg["Subject"] = "Review of {}-01".format(review_req.doc.name) msg["Message-ID"] = email.utils.make_msgid() @@ -408,7 +408,7 @@ class ReviewTests(TestCase): # plain text + HTML msg = email.mime.multipart.MIMEMultipart('alternative') - msg["From"] = "johndoe2@example.com" + msg["From"] = "John Doe II " msg["To"] = review_req.team.list_email msg["Subject"] = "Review of {}".format(review_req.doc.name) msg["Message-ID"] = email.utils.make_msgid() @@ -453,14 +453,20 @@ class ReviewTests(TestCase): messages = json.loads(r.content)["messages"] self.assertEqual(len(messages), 2) + today = datetime.date.today() + self.assertEqual(messages[0]["url"], "https://www.example.com/testmessage") self.assertTrue("John Doe" in messages[0]["content"]) self.assertEqual(messages[0]["subject"], "Review of {}-01".format(review_req.doc.name)) + self.assertEqual(messages[0]["splitfrom"], ["John Doe", "johndoe@example.com"]) + self.assertEqual(messages[0]["utcdate"][0], today.isoformat()) self.assertEqual(messages[1]["url"], "https://www.example.com/testmessage2") self.assertTrue("Looks OK" in messages[1]["content"]) self.assertTrue("" not in messages[1]["content"]) self.assertEqual(messages[1]["subject"], "Review of {}".format(review_req.doc.name)) + self.assertEqual(messages[1]["splitfrom"], ["John Doe II", "johndoe2@example.com"]) + self.assertEqual(messages[1]["utcdate"][0], "") finally: ietf.review.mailarch.construct_query_urls = real_fn diff --git a/ietf/review/mailarch.py b/ietf/review/mailarch.py index 51f419fda..70b48cd99 100644 --- a/ietf/review/mailarch.py +++ b/ietf/review/mailarch.py @@ -66,13 +66,21 @@ def retrieve_messages_from_mbox(mbox_fileobj): charset = part.get_content_charset() or "utf-8" content += part.get_payload(decode=True).decode(charset, "ignore") + # parse a couple of things for the front end + utcdate = None + d = email.utils.parsedate_tz(msg["Date"]) + if d: + utcdate = datetime.datetime.fromtimestamp(email.utils.mktime_tz(d)) + res.append({ "from": msg["From"], + "splitfrom": email.utils.parseaddr(msg["From"]), "subject": msg["Subject"], "content": content.replace("\r\n", "\n").replace("\r", "\n").strip("\n"), "message_id": email.utils.unquote(msg["Message-ID"]), "url": email.utils.unquote(msg["Archived-At"]), "date": msg["Date"], + "utcdate": (utcdate.date().isoformat(), utcdate.time().isoformat()) if utcdate else ("", ""), }) return res diff --git a/ietf/static/ietf/css/ietf.css b/ietf/static/ietf/css/ietf.css index bfce8c59b..f433707b8 100644 --- a/ietf/static/ietf/css/ietf.css +++ b/ietf/static/ietf/css/ietf.css @@ -487,6 +487,16 @@ form.complete-review .mail-archive-search .results .list-group { margin-bottom: 0.5em; } +form.complete-review .mail-archive-search-result .from { + width: 9em; + padding-left: 0.4em; +} + +form.complete-review .mail-archive-search-result .date { + width: 6em; + padding-left: 0.4em; +} + .closed-review-filter { margin-bottom: 1em; } diff --git a/ietf/static/ietf/js/complete-review.js b/ietf/static/ietf/js/complete-review.js index c90b9fa3d..fc6a7cad8 100644 --- a/ietf/static/ietf/js/complete-review.js +++ b/ietf/static/ietf/js/complete-review.js @@ -68,7 +68,8 @@ $(document).ready(function () { var msg = data.messages[i]; var row = $(mailArchiveSearchResultTemplate).attr("title", "Click to fill in link and content from this message"); row.find(".subject").text(msg.subject); - row.find(".date").text(msg.date); + row.find(".date").text(msg.utcdate[0]); + row.find(".from").text(msg.splitfrom[0]); row.data("url", msg.url); row.data("content", msg.content); results.append(row); diff --git a/ietf/templates/doc/review/complete_review.html b/ietf/templates/doc/review/complete_review.html index 12112fc98..5d55433e6 100644 --- a/ietf/templates/doc/review/complete_review.html +++ b/ietf/templates/doc/review/complete_review.html @@ -61,12 +61,15 @@ {% endif %} + {% spaceless %} + {% endspaceless %}