diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-06-09 04:09:22 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-06-09 04:09:22 -0400 |
commit | f216b563f66cb99f22bb7914072c0526ab882bbc (patch) | |
tree | 126886c17d139f8f8c0c54a25ba0aad8c99a360a | |
parent | 0ab0073be5a734f98fce70cbd59337a4dbaafb07 (diff) | |
download | askbot-f216b563f66cb99f22bb7914072c0526ab882bbc.tar.gz askbot-f216b563f66cb99f22bb7914072c0526ab882bbc.tar.bz2 askbot-f216b563f66cb99f22bb7914072c0526ab882bbc.zip |
added absolutized urls to images in the instant email alerts
-rw-r--r-- | askbot/models/__init__.py | 3 | ||||
-rw-r--r-- | askbot/templatetags/extra_filters_jinja.py | 9 | ||||
-rw-r--r-- | askbot/tests/__init__.py | 1 | ||||
-rw-r--r-- | askbot/tests/templatefilter_tests.py | 14 |
4 files changed, 26 insertions, 1 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index 1a5295b3..603426f7 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -2081,7 +2081,8 @@ def format_instant_notification_email( ) #todo: remove hardcoded style else: - content_preview = post.html + from askbot.templatetags.extra_filters_jinja import absolutize_image_urls_func + content_preview = absolutize_image_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 8e394345..76b3cf9d 100644 --- a/askbot/templatetags/extra_filters_jinja.py +++ b/askbot/templatetags/extra_filters_jinja.py @@ -1,4 +1,5 @@ import datetime +import re import time from coffin import template as coffin_template from django.core import exceptions as django_exceptions @@ -17,6 +18,14 @@ from django_countries import settings as countries_settings register = coffin_template.Library() +def absolutize_image_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) + 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) + @register.filter def country_display_name(country_code): country_dict = dict(countries.COUNTRIES) diff --git a/askbot/tests/__init__.py b/askbot/tests/__init__.py index a2d0bdc0..77989fcb 100644 --- a/askbot/tests/__init__.py +++ b/askbot/tests/__init__.py @@ -9,3 +9,4 @@ from askbot.tests.management_command_tests import * from askbot.tests.search_state_tests import * from askbot.tests.form_tests import * from askbot.tests.follow_tests import * +from askbot.tests.templatefilter_tests import * diff --git a/askbot/tests/templatefilter_tests.py b/askbot/tests/templatefilter_tests.py new file mode 100644 index 00000000..c9acb09b --- /dev/null +++ b/askbot/tests/templatefilter_tests.py @@ -0,0 +1,14 @@ +from unittest import TestCase +from askbot.templatetags import extra_filters_jinja as filters +from askbot.conf import settings as askbot_settings + +class AbsolutizeImageUrlsTests(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) + self.assertEqual( + output, + '<img class="junk" src="http://example.com/some.gif"> <IMG SRC="http://example.com/some.png">' + ) |