adapt audience display for multiple values
[redakcja.git] / apps / email_mangler / templatetags / email.py
1 # -*- coding: utf-8 -*-
2 #
3 # This file is part of MIL/PEER, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
5 #
6 from django.utils.html import escape
7 from django.utils.safestring import mark_safe
8 from django.utils.translation import ugettext as _
9 from django import template
10
11 register = template.Library()
12
13
14 @register.filter
15 def email_link(email):
16     email_safe = escape(email)
17     try:
18         name, domain = email_safe.split('@', 1)
19     except ValueError:
20         return email
21
22     at = escape(_('at'))
23     dot = escape(_('dot'))
24     mangled = "%s %s %s" % (name, at, (' %s ' % dot).join(domain.split('.')))
25     return mark_safe(
26         "<a class='mangled' data-addr1='%(name)s' "
27         "data-addr2='%(domain)s'>%(mangled)s</a>" % {
28             'name': name.encode('rot13'),
29             'domain': domain.encode('rot13'),
30             'mangled': mangled,
31         })