From 2fd2b3a8e69e8910dd3073fa68e260bc258b5f70 Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Fri, 22 Apr 2016 20:19:21 +0000
Subject: [PATCH] Have person.formatted_email() return the primary address if
 one is so marked. Fixes #1928. Commit ready for merge.  - Legacy-Id: 11129

---
 ietf/person/models.py | 4 +++-
 ietf/person/tests.py  | 9 +++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/ietf/person/models.py b/ietf/person/models.py
index db4f0f679..086f51636 100644
--- a/ietf/person/models.py
+++ b/ietf/person/models.py
@@ -71,7 +71,9 @@ class PersonInfo(models.Model):
         else:
             return ""
     def formatted_email(self):
-        e = self.email_set.order_by("-active", "-time").first()
+        e = self.email_set.filter(primary=True).first()
+        if not e:
+            e = self.email_set.order_by("-active", "-time").first()
         if e:
             return e.formatted_email()
         else:
diff --git a/ietf/person/tests.py b/ietf/person/tests.py
index 80c239d98..a94bff135 100644
--- a/ietf/person/tests.py
+++ b/ietf/person/tests.py
@@ -6,6 +6,8 @@ from django.core.urlresolvers import reverse as urlreverse
 from ietf.utils.test_utils import TestCase
 from ietf.utils.test_data import make_test_data
 
+from ietf.person.factories import EmailFactory,PersonFactory
+
 class PersonTests(TestCase):
     def test_ajax_search_emails(self):
         draft = make_test_data()
@@ -15,3 +17,10 @@ class PersonTests(TestCase):
         self.assertEqual(r.status_code, 200)
         data = json.loads(r.content)
         self.assertEqual(data[0]["id"], person.email_address())
+
+    def test_default_email(self):
+        person = PersonFactory()
+        primary = EmailFactory(person=person,primary=True,active=True)
+        EmailFactory(person=person,primary=False,active=True)
+        EmailFactory(person=person,primary=False,active=False)
+        self.assertTrue(primary.address in person.formatted_email())