1010from django .utils .safestring import mark_safe , SafeData
1111from django .utils import simplejson
1212from django .utils .html import strip_tags
13- try :
14- from email import utils as emailutils
15- except ImportError :
16- from email import Utils as emailutils
13+ from django .template import RequestContext
14+
15+ import email .utils
1716import re
1817import datetime
1918import types
20- from django .template import RequestContext
2119
2220register = template .Library ()
2321
@@ -74,14 +72,23 @@ def parse_email_list(value):
7472 addrs = re .split (", ?" , value )
7573 ret = []
7674 for addr in addrs :
77- (name , email ) = emailutils .parseaddr (addr )
75+ (name , email ) = email . utils .parseaddr (addr )
7876 if not (name ):
7977 name = email
8078 ret .append ('<a href="mailto:%s">%s</a>' % ( fix_ampersands (email ), escape (name ) ))
8179 return ", " .join (ret )
8280 else :
8381 return value
84-
82+
83+ @register .filter
84+ def strip_email (value ):
85+ """Get rid of email part of name/email string like 'Some Name <email@example.com>'."""
86+ if not value :
87+ return ""
88+ if "@" not in value :
89+ return value
90+ return email .utils .parseaddr (value )[0 ]
91+
8592@register .filter (name = 'fix_angle_quotes' )
8693def fix_angle_quotes (value ):
8794 if "<" in value :
@@ -93,7 +100,7 @@ def fix_angle_quotes(value):
93100@register .filter (name = 'make_one_per_line' )
94101def make_one_per_line (value ):
95102 """
96- Turn a comma-separated list into a carraige -return-seperated list.
103+ Turn a comma-separated list into a carriage -return-seperated list.
97104
98105 >>> make_one_per_line("a, b, c")
99106 'a\\ nb\\ nc'
0 commit comments