diff options
author | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2012-09-20 20:22:28 -0600 |
---|---|---|
committer | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2012-09-20 20:37:57 -0600 |
commit | 03b57bbd1ef4bf46d274c1a580a750aadea2270c (patch) | |
tree | 42421626848efbd9661460e9829131d3ee3158dc | |
parent | 5a3167df967f982e650faebf9e7de8de9abdfebe (diff) | |
download | askbot-03b57bbd1ef4bf46d274c1a580a750aadea2270c.tar.gz askbot-03b57bbd1ef4bf46d274c1a580a750aadea2270c.tar.bz2 askbot-03b57bbd1ef4bf46d274c1a580a750aadea2270c.zip |
uploaded images work again on emails notifications
-rw-r--r-- | askbot/models/post.py | 3 | ||||
-rw-r--r-- | askbot/skins/default/templates/email/macros.html | 3 | ||||
-rw-r--r-- | askbot/templatetags/extra_filters_jinja.py | 10 | ||||
-rw-r--r-- | askbot/tests/templatefilter_tests.py | 8 |
4 files changed, 13 insertions, 11 deletions
diff --git a/askbot/models/post.py b/askbot/models/post.py index 49220a63..e15516eb 100644 --- a/askbot/models/post.py +++ b/askbot/models/post.py @@ -840,15 +840,12 @@ class Post(models.Model): if quote_level > 0, the post will be indented that number of times todo: move to views? """ - from askbot.templatetags.extra_filters_jinja \ - import absolutize_urls_func from askbot.skins.loaders import get_template from django.template import Context template = get_template('email/quoted_post.html') data = { 'post': self, 'quote_level': quote_level, - #'html': absolutize_urls_func(self.html), 'is_leaf_post': is_leaf_post, 'format': format } diff --git a/askbot/skins/default/templates/email/macros.html b/askbot/skins/default/templates/email/macros.html index 3c2d1c02..46aa1b90 100644 --- a/askbot/skins/default/templates/email/macros.html +++ b/askbot/skins/default/templates/email/macros.html @@ -1,3 +1,4 @@ +{% load extra_filters_jinja %} {% macro quoted_post( post = None, quote_level = 0, @@ -71,7 +72,7 @@ {% endif %} </p> {% endif %} - {{ post.html }} + {{ post.html | absolutize_urls}} {{ end_quote(quote_level) }} {% endspaceless %} {% endmacro %} diff --git a/askbot/templatetags/extra_filters_jinja.py b/askbot/templatetags/extra_filters_jinja.py index 3643e3c9..62a41895 100644 --- a/askbot/templatetags/extra_filters_jinja.py +++ b/askbot/templatetags/extra_filters_jinja.py @@ -24,17 +24,19 @@ from django_countries import settings as countries_settings register = coffin_template.Library() -def absolutize_urls_func(text): +@register.filter +def absolutize_urls(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) + img_replacement = '\g<prefix>"%s\g<url>" style="max-width:500px;"' % askbot_settings.APP_URL replacement = '\g<prefix>"%s\g<url>"' % askbot_settings.APP_URL - text = url_re1.sub(replacement, text) - text = url_re2.sub(replacement, text) + text = url_re1.sub(img_replacement, text) + text = url_re2.sub(img_replacement, text) text = url_re3.sub(replacement, text) return url_re4.sub(replacement, text) -absolutize_urls = register.filter(absolutize_urls_func) + TIMEZONE_STR = pytz.timezone( django_settings.TIME_ZONE diff --git a/askbot/tests/templatefilter_tests.py b/askbot/tests/templatefilter_tests.py index a82737a4..090be956 100644 --- a/askbot/tests/templatefilter_tests.py +++ b/askbot/tests/templatefilter_tests.py @@ -7,14 +7,16 @@ class AbsolutizeUrlsTests(TestCase): 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_urls_func(text) + #jinja register.filter decorator works in a weird way + output = filters.absolutize_urls[0](text) self.assertEqual( output, - '<img class="junk" src="http://example.com/some.gif"> <IMG SRC="http://example.com/some.png">' + '<img class="junk" src="http://example.com/some.gif" style="max-width:500px;"> <IMG SRC="http://example.com/some.png" style="max-width:500px;">' ) 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) + #jinja register.filter decorator works in a weird way + output = filters.absolutize_urls[0](text) self.assertEqual( output, '<a class="junk" href="http://example.com/something">link</a> <A HREF="http://example.com/something">link</A>' |