diff options
author | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2013-01-10 09:21:00 -0600 |
---|---|---|
committer | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2013-01-10 09:21:00 -0600 |
commit | 31b4af444274fb0bfbf633f12a55e1208ef5ae01 (patch) | |
tree | c9c9964bcbec7a012cca4c9e66c9057dd2391248 /askbot/models | |
parent | 24ef17c6a95c3f52bc2d39061e6ca1fe98b30d25 (diff) | |
parent | 3087781bbba06373797e3010f5ae78abcc9b380a (diff) | |
download | askbot-31b4af444274fb0bfbf633f12a55e1208ef5ae01.tar.gz askbot-31b4af444274fb0bfbf633f12a55e1208ef5ae01.tar.bz2 askbot-31b4af444274fb0bfbf633f12a55e1208ef5ae01.zip |
Merge branch 'master' into tag_subscription
Diffstat (limited to 'askbot/models')
-rw-r--r-- | askbot/models/message.py | 4 | ||||
-rw-r--r-- | askbot/models/post.py | 3 | ||||
-rw-r--r-- | askbot/models/question.py | 31 | ||||
-rw-r--r-- | askbot/models/reply_by_email.py | 13 | ||||
-rw-r--r-- | askbot/models/tag.py | 7 | ||||
-rw-r--r-- | askbot/models/user.py | 19 | ||||
-rw-r--r-- | askbot/models/widgets.py | 6 |
7 files changed, 49 insertions, 34 deletions
diff --git a/askbot/models/message.py b/askbot/models/message.py index 9686e8f5..a2da9c51 100644 --- a/askbot/models/message.py +++ b/askbot/models/message.py @@ -1,7 +1,7 @@ '''Copied from Django 1.3.1 source code, it will use this model to''' from django.db import models from django.contrib.auth.models import User -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy class Message(models.Model): """ @@ -13,7 +13,7 @@ class Message(models.Model): message. """ user = models.ForeignKey(User, related_name='_message_set') - message = models.TextField(_('message')) + message = models.TextField(ugettext_lazy('message')) class Meta: '''Added for backwards compatibility with databases diff --git a/askbot/models/post.py b/askbot/models/post.py index deb7726b..956f875e 100644 --- a/askbot/models/post.py +++ b/askbot/models/post.py @@ -13,7 +13,6 @@ from django.core import urlresolvers from django.db import models from django.utils import html as html_utils from django.utils.translation import ugettext as _ -from django.utils.translation import ungettext from django.utils.http import urlquote as django_urlquote from django.core import exceptions as django_exceptions from django.core import cache @@ -243,7 +242,7 @@ class PostManager(BaseQuerySetManager): author = author, revised_at = added_at, text = text, - comment = const.POST_STATUS['default_version'], + comment = unicode(const.POST_STATUS['default_version']), by_email = by_email ) diff --git a/askbot/models/question.py b/askbot/models/question.py index d0048f2a..e0521f69 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -13,6 +13,7 @@ from django.utils.hashcompat import md5_constructor from django.utils.translation import ugettext as _ from django.utils.translation import ungettext from django.utils.translation import string_concat +from django.utils.translation import get_language import askbot from askbot.conf import settings as askbot_settings @@ -54,9 +55,14 @@ class ThreadQuerySet(models.query.QuerySet): self, search_query ).order_by('-relevance') elif 'mysql' in db_engine_name and mysql.supports_full_text_search(): - return self.filter(title__search=search_query) + filter_parameters = {'title__search': search_query} else: - return self.filter(title__icontains=search_query) + filter_parameters = {'title__icontains': search_query} + + if getattr(django_settings, 'ASKBOT_MULTILINGUAL', False): + filter_parameters['language_code'] = get_language() + + return self.filter(**filter_parameters) class ThreadManager(BaseQuerySetManager): @@ -95,7 +101,7 @@ class ThreadManager(BaseQuerySetManager): tag_list = tag_list[:5] last_topic = _('" and more') - return '"' + '", "'.join(tag_list) + last_topic + return '"' + '", "'.join(tag_list) + unicode(last_topic) def create(self, *args, **kwargs): raise NotImplementedError @@ -124,7 +130,8 @@ class ThreadManager(BaseQuerySetManager): title=title, tagnames=tagnames, last_activity_at=added_at, - last_activity_by=author + last_activity_by=author, + language_code=get_language() ) #todo: code below looks like ``Post.objects.create_new()`` @@ -231,11 +238,16 @@ class ThreadManager(BaseQuerySetManager): """ from askbot.conf import settings as askbot_settings # Avoid circular import + primary_filter = { + 'posts__post_type': 'question', + 'posts__deleted': False + } + + if getattr(django_settings, 'ASKBOT_MULTILINGUAL', False): + primary_filter['language_code'] = get_language() + # TODO: add a possibility to see deleted questions - qs = self.filter( - posts__post_type='question', - posts__deleted=False, - ) # (***) brings `askbot_post` into the SQL query, see the ordering section below + qs = self.filter(**primary_filter) if askbot_settings.ENABLE_CONTENT_MODERATION: qs = qs.filter(approved = True) @@ -522,6 +534,7 @@ class Thread(models.Model): answer_count = models.PositiveIntegerField(default=0) last_activity_at = models.DateTimeField(default=datetime.datetime.now) last_activity_by = models.ForeignKey(User, related_name='unused_last_active_in_threads') + language_code = models.CharField(max_length=16, default=django_settings.LANGUAGE_CODE) followed_by = models.ManyToManyField(User, related_name='followed_threads') favorited_by = models.ManyToManyField(User, through='FavoriteQuestion', related_name='unused_favorite_threads') @@ -715,7 +728,7 @@ class Thread(models.Model): else: attr = None if attr is not None: - return u'%s %s' % (self.title, attr) + return u'%s %s' % (self.title, unicode(attr)) else: return self.title diff --git a/askbot/models/reply_by_email.py b/askbot/models/reply_by_email.py index 0db7244c..983edc8f 100644 --- a/askbot/models/reply_by_email.py +++ b/askbot/models/reply_by_email.py @@ -5,6 +5,7 @@ import logging from django.db import models from django.contrib.auth.models import User from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy from askbot.models.post import Post from askbot.models.base import BaseQuerySetManager from askbot.conf import settings as askbot_settings @@ -34,12 +35,12 @@ class ReplyAddressManager(BaseQuerySetManager): REPLY_ACTION_CHOICES = ( - ('post_answer', _('Post an answer')), - ('post_comment', _('Post a comment')), - ('replace_content', _('Edit post')), - ('append_content', _('Append to post')), - ('auto_answer_or_comment', _('Answer or comment, depending on the size of post')), - ('validate_email', _('Validate email and record signature')), + ('post_answer', ugettext_lazy('Post an answer')), + ('post_comment', ugettext_lazy('Post a comment')), + ('replace_content', ugettext_lazy('Edit post')), + ('append_content', ugettext_lazy('Append to post')), + ('auto_answer_or_comment', ugettext_lazy('Answer or comment, depending on the size of post')), + ('validate_email', ugettext_lazy('Validate email and record signature')), ) class ReplyAddress(models.Model): """Stores a reply address for the post diff --git a/askbot/models/tag.py b/askbot/models/tag.py index e4c4540a..7b51e6db 100644 --- a/askbot/models/tag.py +++ b/askbot/models/tag.py @@ -2,6 +2,7 @@ import re from django.db import models from django.contrib.auth.models import User from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy from django.conf import settings from askbot.models.base import BaseQuerySetManager from askbot import const @@ -307,9 +308,9 @@ class Tag(models.Model): class MarkedTag(models.Model): TAG_MARK_REASONS = ( - ('good', _('interesting')), - ('bad', _('ignored')), - ('subscribed', _('subscribed')), + ('good', ugettext_lazy('interesting')), + ('bad', ugettext_lazy('ignored')), + ('subscribed', ugettext_lazy('subscribed')), ) tag = models.ForeignKey('Tag', related_name='user_selections') user = models.ForeignKey(User, related_name='tag_selections') diff --git a/askbot/models/user.py b/askbot/models/user.py index c27c8759..5fb5b991 100644 --- a/askbot/models/user.py +++ b/askbot/models/user.py @@ -10,6 +10,7 @@ from django.contrib.auth.models import Group as AuthGroup from django.core import exceptions from django.forms import EmailField, URLField from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy from django.utils.html import strip_tags from askbot import const from askbot.conf import settings as askbot_settings @@ -280,17 +281,17 @@ class EmailFeedSetting(models.Model): 'm_and_c': 'i' } FEED_TYPE_CHOICES = ( - ('q_all',_('Entire forum')), - ('q_ask',_('Questions that I asked')), - ('q_ans',_('Questions that I answered')), - ('q_sel',_('Individually selected questions')), - ('m_and_c',_('Mentions and comment responses')), + ('q_all', ugettext_lazy('Entire forum')), + ('q_ask', ugettext_lazy('Questions that I asked')), + ('q_ans', ugettext_lazy('Questions that I answered')), + ('q_sel', ugettext_lazy('Individually selected questions')), + ('m_and_c', ugettext_lazy('Mentions and comment responses')), ) UPDATE_FREQUENCY = ( - ('i',_('Instantly')), - ('d',_('Daily')), - ('w',_('Weekly')), - ('n',_('No email')), + ('i', ugettext_lazy('Instantly')), + ('d', ugettext_lazy('Daily')), + ('w', ugettext_lazy('Weekly')), + ('n', ugettext_lazy('No email')), ) diff --git a/askbot/models/widgets.py b/askbot/models/widgets.py index 27fc3d84..bdec5eb2 100644 --- a/askbot/models/widgets.py +++ b/askbot/models/widgets.py @@ -1,5 +1,5 @@ from django.db import models -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy from askbot.models import Tag, Group from askbot.const import DEFAULT_QUESTION_WIDGET_STYLE, SEARCH_ORDER_BY @@ -24,14 +24,14 @@ class AskWidget(models.Model): class QuestionWidget(models.Model): title = models.CharField(max_length=100) question_number = models.PositiveIntegerField(default=7) - tagnames = models.CharField(_('tags'), max_length=50) + tagnames = models.CharField(ugettext_lazy('tags'), max_length=50) group = models.ForeignKey(Group, null=True, blank=True) search_query = models.CharField( max_length=50, null=True, blank=True, default='' ) order_by = models.CharField(max_length=18, choices=SEARCH_ORDER_BY, default='-added_at') - style = models.TextField(_('css for the widget'), + style = models.TextField(ugettext_lazy('css for the widget'), default=DEFAULT_QUESTION_WIDGET_STYLE, blank=True) class Meta: |