diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-04-10 10:50:02 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-04-10 10:50:02 -0400 |
commit | c5a44b521650dd35c9092308ab30f29c5e3a8f43 (patch) | |
tree | e64430be885e3de7492e947d1f6b2523d56e979a /forum/models | |
parent | 72c356b993771063e080c7cb47b8fc23a964dc1a (diff) | |
download | askbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.tar.gz askbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.tar.bz2 askbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.zip |
intermediate broken commit
Diffstat (limited to 'forum/models')
-rwxr-xr-x | forum/models/__init__.py | 3 | ||||
-rwxr-xr-x | forum/models/question.py | 11 |
2 files changed, 10 insertions, 4 deletions
diff --git a/forum/models/__init__.py b/forum/models/__init__.py index 2349c9e3..191f66d3 100755 --- a/forum/models/__init__.py +++ b/forum/models/__init__.py @@ -5,6 +5,8 @@ from meta import Vote, Comment, FlaggedItem from user import Activity, ValidationHash, EmailFeedSetting, AuthKeyUserAssociation from repute import Badge, Award, Repute from django.core.urlresolvers import reverse +from forum.search.indexer import create_fulltext_indexes +from django.db.models.signals import post_syncdb import re from base import * @@ -440,6 +442,7 @@ tags_updated.connect(record_update_tags, sender=Question) post_save.connect(record_favorite_question, sender=FavoriteQuestion) user_updated.connect(record_user_full_updated, sender=User) user_logged_in.connect(post_stored_anonymous_content) +post_syncdb.connect(create_fulltext_indexes) Question = Question QuestionRevision = QuestionRevision diff --git a/forum/models/question.py b/forum/models/question.py index 98b50490..aae99da2 100755 --- a/forum/models/question.py +++ b/forum/models/question.py @@ -10,6 +10,7 @@ import datetime from django.conf import settings from django.utils.datastructures import SortedDict from forum.models.tag import MarkedTag +from django.db.models import Q markdowner = Markdown(html4tags=True) @@ -77,7 +78,8 @@ class QuestionManager(models.Manager): #return metadata meta_data = {} if tag_selector: - qs = qs.filter(tags__name__in = tag_selector) + for tag in tag_selector: + qs = qs.filter(tags__name = tag) if search_query: qs = qs.filter(deleted=False).extra( @@ -101,9 +103,9 @@ class QuestionManager(models.Manager): #user contributed questions & answers if author_selector: try: - u = User.objects.get(username=author_selector) - qs = qs.filter(Q(author=u) | Q(answers__author=u)) - meta_data['author_name'] = author_selector + u = User.objects.get(id=int(author_selector)) + qs = qs.filter(Q(author=u, deleted=False) | Q(answers__author=u, answers__deleted=False)) + meta_data['author_name'] = u.username except User.DoesNotExist: meta_data['author_name'] = None @@ -155,6 +157,7 @@ class QuestionManager(models.Manager): if orderby: #relevance will be ignored here qs = qs.order_by(orderby) + qs = qs.distinct() return qs, meta_data def update_tags(self, question, tagnames, user): |