summaryrefslogtreecommitdiffstats
path: root/askbot/models
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-04-07 04:40:04 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-04-07 04:40:04 -0400
commitb03f881b11204b7e0fe323dd9148085ef0dfa35d (patch)
tree45fc9053dc3b7aa2ba5888b3ab26bfb22fc2b09e /askbot/models
parent580dce30624e7af950159e3f74f9181506b57a5d (diff)
downloadaskbot-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.py40
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()