diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-04 15:32:20 -0300 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-04 15:32:20 -0300 |
commit | 13062a447a038fbe5c7cd8ea20887d96c1c37681 (patch) | |
tree | 5cc4bb40f212b70c8a0110756c77dc1b9dee37d9 /askbot/models | |
parent | cec681f1b4551e3d8588cf2d22e4eae3a8c08b66 (diff) | |
download | askbot-13062a447a038fbe5c7cd8ea20887d96c1c37681.tar.gz askbot-13062a447a038fbe5c7cd8ea20887d96c1c37681.tar.bz2 askbot-13062a447a038fbe5c7cd8ea20887d96c1c37681.zip |
improved comment posting works for tinymce editor
Diffstat (limited to 'askbot/models')
-rw-r--r-- | askbot/models/post.py | 12 | ||||
-rw-r--r-- | askbot/models/repute.py | 30 |
2 files changed, 12 insertions, 30 deletions
diff --git a/askbot/models/post.py b/askbot/models/post.py index 66004ce4..625d262b 100644 --- a/askbot/models/post.py +++ b/askbot/models/post.py @@ -1,7 +1,6 @@ from collections import defaultdict import datetime import operator -import cgi import logging from django.utils.html import strip_tags @@ -35,7 +34,7 @@ from askbot.models.tag import tags_match_some_wildcard from askbot.conf import settings as askbot_settings from askbot import exceptions from askbot.utils import markup -from askbot.utils.html import sanitize_html +from askbot.utils.html import sanitize_html, strip_tags from askbot.models.base import BaseQuerySetManager, DraftContent #todo: maybe merge askbot.utils.markup and forum.utils.html @@ -425,25 +424,24 @@ class Post(models.Model): if self.post_type in ('question', 'answer', 'tag_wiki', 'reject_reason'): _urlize = False _use_markdown = (askbot_settings.EDITOR_TYPE == 'markdown') - _escape_html = False #markdow does the escaping elif self.is_comment(): _urlize = True _use_markdown = (askbot_settings.EDITOR_TYPE == 'markdown') - _escape_html = True else: raise NotImplementedError text = self.text - if _escape_html: - text = cgi.escape(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']) + #todo, add markdown parser call conditional on #self.use_markdown flag post_html = text diff --git a/askbot/models/repute.py b/askbot/models/repute.py index e48773e6..5e9c295f 100644 --- a/askbot/models/repute.py +++ b/askbot/models/repute.py @@ -91,7 +91,9 @@ class BadgeData(models.Model): """Awarded for notable actions performed on the site by Users.""" slug = models.SlugField(max_length=50, unique=True) awarded_count = models.PositiveIntegerField(default=0) - awarded_to = models.ManyToManyField(User, through='Award', related_name='badges') + awarded_to = models.ManyToManyField( + User, through='Award', related_name='badges' + ) def _get_meta_data(self): """retrieves badge metadata stored @@ -99,16 +101,13 @@ class BadgeData(models.Model): from askbot.models import badges return badges.get_badge(self.slug) - @property - def name(self): + def get_name(self): return self._get_meta_data().name - @property - def description(self): + def get_description(self): return self._get_meta_data().description - @property - def css_class(self): + def get_css_class(self): return self._get_meta_data().css_class def get_type_display(self): @@ -125,19 +124,6 @@ class BadgeData(models.Model): def get_absolute_url(self): return '%s%s/' % (reverse('badge', args=[self.id]), self.slug) -class AwardManager(models.Manager): - def get_recent_awards(self): - awards = super(AwardManager, self).extra( - select={'badge_id': 'badge.id', 'badge_name':'badge.name', - 'badge_description': 'badge.description', 'badge_type': 'badge.type', - 'user_id': 'auth_user.id', 'user_name': 'auth_user.username' - }, - tables=['award', 'badge', 'auth_user'], - order_by=['-awarded_at'], - where=['auth_user.id=award.user_id AND badge_id=badge.id'], - ).values('badge_id', 'badge_name', 'badge_description', 'badge_type', 'user_id', 'user_name') - return awards - class Award(models.Model): """The awarding of a Badge to a User.""" user = models.ForeignKey(User, related_name='award_user') @@ -148,10 +134,8 @@ class Award(models.Model): awarded_at = models.DateTimeField(default=datetime.datetime.now) notified = models.BooleanField(default=False) - objects = AwardManager() - def __unicode__(self): - return u'[%s] is awarded a badge [%s] at %s' % (self.user.username, self.badge.name, self.awarded_at) + return u'[%s] is awarded a badge [%s] at %s' % (self.user.username, self.badge.get_name(), self.awarded_at) class Meta: app_label = 'askbot' |