Tagging teammates with period in their username

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-06-02 14:55:37 +02:00 committed by David Barragán Merino
parent 7cfa01c58f
commit 0b8f958a73
2 changed files with 12 additions and 6 deletions

View File

@ -25,22 +25,22 @@
from markdown.extensions import Extension
from markdown.inlinepatterns import Pattern
from markdown.util import etree
from markdown.util import etree, AtomicString
from taiga.users.models import User
class MentionsExtension(Extension):
def extendMarkdown(self, md, md_globals):
MENTION_RE = r'(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9-]+)'
MENTION_RE = r'(@)([a-z0-9.-\.]+)'
mentionsPattern = MentionsPattern(MENTION_RE)
mentionsPattern.md = md
md.inlinePatterns.add('mentions', mentionsPattern, '_begin')
md.inlinePatterns.add('mentions', mentionsPattern, '_end')
class MentionsPattern(Pattern):
def handleMatch(self, m):
username = m.group(2)
username = m.group(3)
try:
user = User.objects.get(username=username)
@ -49,10 +49,11 @@ class MentionsPattern(Pattern):
url = "/profile/{}".format(username)
link_text = "&commat;{}".format(username)
link_text = "@{}".format(username)
a = etree.Element('a')
a.text = link_text
a.text = AtomicString(link_text)
a.set('href', url)
a.set('title', user.get_full_name())
a.set('class', "mention")

View File

@ -46,3 +46,8 @@ def test_render_and_extract_mentions():
user = factories.UserFactory(username="user1", full_name="test")
(_, extracted) = render_and_extract(dummy_project, "**@user1**")
assert extracted['mentions'] == [user]
def test_proccessor_valid_email():
result = render(dummy_project, "**beta.tester@taiga.io**")
expected_result = "<p><strong><a href=\"mailto:beta.tester@taiga.io\" target=\"_blank\">beta.tester@taiga.io</a></strong></p>"
assert result == expected_result