summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-06-10 03:44:41 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-06-10 03:44:41 -0400
commit2a061a70c148081ea03809092421d3be2bcec7ed (patch)
treeea2e0fa9a742a3d0d260f22ac27ad5b5af396f94
parentf216b563f66cb99f22bb7914072c0526ab882bbc (diff)
downloadaskbot-2a061a70c148081ea03809092421d3be2bcec7ed.tar.gz
askbot-2a061a70c148081ea03809092421d3be2bcec7ed.tar.bz2
askbot-2a061a70c148081ea03809092421d3be2bcec7ed.zip
added absolutization of relative urls in anchors for the instant email alerts
-rw-r--r--askbot/__init__.py2
-rw-r--r--askbot/models/__init__.py4
-rw-r--r--askbot/templatetags/extra_filters_jinja.py10
-rw-r--r--askbot/tests/templatefilter_tests.py11
4 files changed, 19 insertions, 8 deletions
diff --git a/askbot/__init__.py b/askbot/__init__.py
index b0397ee3..5d245db7 100644
--- a/askbot/__init__.py
+++ b/askbot/__init__.py
@@ -9,7 +9,7 @@ import smtplib
import sys
import logging
-VERSION = (0, 6, 95)
+VERSION = (0, 6, 96)
#necessary for interoperability of django and coffin
try:
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 603426f7..74211c23 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -2081,8 +2081,8 @@ def format_instant_notification_email(
)
#todo: remove hardcoded style
else:
- from askbot.templatetags.extra_filters_jinja import absolutize_image_urls_func
- content_preview = absolutize_image_urls_func(post.html)
+ from askbot.templatetags.extra_filters_jinja import absolutize_urls_func
+ content_preview = absolutize_urls_func(post.html)
tag_style = "white-space: nowrap; " \
+ "font-size: 11px; color: #333;" \
+ "background-color: #EEE;" \
diff --git a/askbot/templatetags/extra_filters_jinja.py b/askbot/templatetags/extra_filters_jinja.py
index 76b3cf9d..94bd304c 100644
--- a/askbot/templatetags/extra_filters_jinja.py
+++ b/askbot/templatetags/extra_filters_jinja.py
@@ -18,13 +18,17 @@ from django_countries import settings as countries_settings
register = coffin_template.Library()
-def absolutize_image_urls_func(text):
+def absolutize_urls_func(text):
url_re1 = re.compile(r'(?P<prefix><img[^<]+src=)"(?P<url>/[^"]+)"', re.I)
url_re2 = re.compile(r"(?P<prefix><img[^<]+src=)'(?P<url>/[^']+)'", re.I)
+ url_re3 = re.compile(r'(?P<prefix><a[^<]+href=)"(?P<url>/[^"]+)"', re.I)
+ url_re4 = re.compile(r"(?P<prefix><a[^<]+href=)'(?P<url>/[^']+)'", re.I)
replacement = '\g<prefix>"%s\g<url>"' % askbot_settings.APP_URL
text = url_re1.sub(replacement, text)
- return url_re2.sub(replacement, text)
-absolutize_image_urls = register.filter(absolutize_image_urls_func)
+ text = url_re2.sub(replacement, text)
+ text = url_re3.sub(replacement, text)
+ return url_re4.sub(replacement, text)
+absolutize_urls = register.filter(absolutize_urls_func)
@register.filter
def country_display_name(country_code):
diff --git a/askbot/tests/templatefilter_tests.py b/askbot/tests/templatefilter_tests.py
index c9acb09b..a82737a4 100644
--- a/askbot/tests/templatefilter_tests.py
+++ b/askbot/tests/templatefilter_tests.py
@@ -2,13 +2,20 @@ from unittest import TestCase
from askbot.templatetags import extra_filters_jinja as filters
from askbot.conf import settings as askbot_settings
-class AbsolutizeImageUrlsTests(TestCase):
+class AbsolutizeUrlsTests(TestCase):
def setUp(self):
askbot_settings.update('APP_URL', 'http://example.com')
def test_absolutize_image_urls(self):
text = """<img class="junk" src="/some.gif"> <IMG SRC='/some.png'>"""
- output = filters.absolutize_image_urls_func(text)
+ output = filters.absolutize_urls_func(text)
self.assertEqual(
output,
'<img class="junk" src="http://example.com/some.gif"> <IMG SRC="http://example.com/some.png">'
)
+ def test_absolutize_anchor_urls(self):
+ text = """<a class="junk" href="/something">link</a> <A HREF='/something'>link</A>"""
+ output = filters.absolutize_urls_func(text)
+ self.assertEqual(
+ output,
+ '<a class="junk" href="http://example.com/something">link</a> <A HREF="http://example.com/something">link</A>'
+ )