summaryrefslogtreecommitdiffstats
path: root/forum/models
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-04-10 10:50:02 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-04-10 10:50:02 -0400
commitc5a44b521650dd35c9092308ab30f29c5e3a8f43 (patch)
treee64430be885e3de7492e947d1f6b2523d56e979a /forum/models
parent72c356b993771063e080c7cb47b8fc23a964dc1a (diff)
downloadaskbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.tar.gz
askbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.tar.bz2
askbot-c5a44b521650dd35c9092308ab30f29c5e3a8f43.zip
intermediate broken commit
Diffstat (limited to 'forum/models')
-rwxr-xr-xforum/models/__init__.py3
-rwxr-xr-xforum/models/question.py11
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):