diff --git a/ietf/person/models.py b/ietf/person/models.py index 28397cd8b..5e0bb5c29 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())