Have person.formatted_email() return the primary address if one is so marked. Fixes #1928. Commit ready for merge.

- Legacy-Id: 11129
This commit is contained in:
Robert Sparks 2016-04-22 20:19:21 +00:00
parent 79a7eae0ba
commit 2fd2b3a8e6
2 changed files with 12 additions and 1 deletions

View file

@ -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:

View file

@ -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())