diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-04-07 04:40:04 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-04-07 04:40:04 -0400 |
commit | b03f881b11204b7e0fe323dd9148085ef0dfa35d (patch) | |
tree | 45fc9053dc3b7aa2ba5888b3ab26bfb22fc2b09e /askbot/models | |
parent | 580dce30624e7af950159e3f74f9181506b57a5d (diff) | |
download | askbot-b03f881b11204b7e0fe323dd9148085ef0dfa35d.tar.gz askbot-b03f881b11204b7e0fe323dd9148085ef0dfa35d.tar.bz2 askbot-b03f881b11204b7e0fe323dd9148085ef0dfa35d.zip |
allowed to choose plain text or rich text editor for the comments
Diffstat (limited to 'askbot/models')
-rw-r--r-- | askbot/models/post.py | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/askbot/models/post.py b/askbot/models/post.py index e6c26154..10003e57 100644 --- a/askbot/models/post.py +++ b/askbot/models/post.py @@ -3,7 +3,6 @@ import datetime import operator import logging -from django.utils.html import strip_tags from django.contrib.sitemaps import ping_google from django.utils import html from django.conf import settings as django_settings @@ -421,26 +420,8 @@ class Post(models.Model): removed_mentions - list of mention <Activity> objects - for removed ones """ - if self.post_type in ('question', 'answer', 'tag_wiki', 'reject_reason'): - _urlize = False - _use_markdown = (askbot_settings.EDITOR_TYPE == 'markdown') - elif self.is_comment(): - _urlize = True - _use_markdown = (askbot_settings.EDITOR_TYPE == 'markdown') - else: - raise NotImplementedError - - text = self.text - - if _urlize: - text = html.urlize(text) - - if _use_markdown: - text = sanitize_html(markup.get_parser().convert(text)) - - if askbot_settings.EDITOR_TYPE == 'tinymce': - #todo: see what can be done with the "object" tag - text = strip_tags(text, ['script', 'style', 'link']) + text_converter = self.get_text_converter() + text = text_converter(self.text) #todo, add markdown parser call conditional on #self.use_markdown flag @@ -614,6 +595,23 @@ class Post(models.Model): return answer + def get_text_converter(self): + have_simple_comment = ( + self.is_comment() and + askbot_settings.COMMENTS_EDITOR_TYPE == 'plain-text' + ) + if have_simple_comment: + parser_type = 'plain-text' + else: + parser_type = askbot_settings.EDITOR_TYPE + + if parser_type == 'plain-text': + return markup.plain_text_input_converter + elif parser_type == 'markdown': + return markup.markdown_input_converter + elif parser_type == 'tynymce': + return markup.tinymce_input_converter + def has_group(self, group): """true if post belongs to the group""" return self.groups.filter(id=group.id).exists() |