From 2fd2b3a8e69e8910dd3073fa68e260bc258b5f70 Mon Sep 17 00:00:00 2001 From: Robert Sparks 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())