Merged in [11129] from rjsparks@nostrum.com:

Have person.formatted_email() return the primary address if one is so marked. Fixes #1928.
 - Legacy-Id: 11150
Note: SVN reference [11129] has been migrated to Git commit 2fd2b3a8e6
This commit is contained in:
Henrik Levkowetz 2016-05-04 08:44:19 +00:00
commit bf4350f6dc
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())