|
1 | 1 | # Copyright The IETF Trust 2007, All Rights Reserved |
2 | 2 |
|
3 | 3 | import datetime |
| 4 | +import email.utils |
| 5 | +import email.header |
4 | 6 | from hashids import Hashids |
5 | 7 | from unidecode import unidecode |
6 | 8 | from urlparse import urljoin |
|
17 | 19 | from ietf.person.name import name_parts, initials |
18 | 20 | from ietf.utils.mail import send_mail_preformatted |
19 | 21 | from ietf.utils.storage import NoLocationMigrationFileSystemStorage |
| 22 | +from ietf.utils.mail import formataddr |
| 23 | + |
20 | 24 |
|
21 | 25 | class PersonInfo(models.Model): |
22 | 26 | time = models.DateTimeField(default=datetime.datetime.now) # When this Person record entered the system |
@@ -106,6 +110,14 @@ def email_address(self): |
106 | 110 | return e.address |
107 | 111 | else: |
108 | 112 | return "" |
| 113 | + def formatted_ascii_email(self): |
| 114 | + e = self.email_set.filter(primary=True).first() |
| 115 | + if not e: |
| 116 | + e = self.email_set.order_by("-active", "-time").first() |
| 117 | + if e: |
| 118 | + return e.formatted_ascii_email() |
| 119 | + else: |
| 120 | + return "" |
109 | 121 | def formatted_email(self): |
110 | 122 | e = self.email_set.filter(primary=True).first() |
111 | 123 | if not e: |
@@ -225,9 +237,15 @@ def __unicode__(self): |
225 | 237 | def get_name(self): |
226 | 238 | return self.person.plain_name() if self.person else self.address |
227 | 239 |
|
| 240 | + def formatted_ascii_email(self): |
| 241 | + if self.person: |
| 242 | + return email.utils.formataddr((self.person.plain_ascii(), self.address)) |
| 243 | + else: |
| 244 | + return self.address |
| 245 | + |
228 | 246 | def formatted_email(self): |
229 | 247 | if self.person: |
230 | | - return u'"%s" <%s>' % (self.person.plain_ascii(), self.address) |
| 248 | + return formataddr((self.person.plain_name(), self.address)) |
231 | 249 | else: |
232 | 250 | return self.address |
233 | 251 |
|
|
0 commit comments