summaryrefslogtreecommitdiffstats
path: root/askbot/models
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-10 21:35:39 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-10 21:52:18 -0400
commit6f5ec65e213a4b4b9ef7e7ea292090e9a809a950 (patch)
tree28aa56ffabe780dd09f1494917967bb5794180dc /askbot/models
parent3bff694afc5b2b7709bf98de1a6c3dcc5c51ccf4 (diff)
downloadaskbot-6f5ec65e213a4b4b9ef7e7ea292090e9a809a950.tar.gz
askbot-6f5ec65e213a4b4b9ef7e7ea292090e9a809a950.tar.bz2
askbot-6f5ec65e213a4b4b9ef7e7ea292090e9a809a950.zip
fixed some issues in postgres full text search and transferred "deleted" info onto the thread objects
Diffstat (limited to 'askbot/models')
-rw-r--r--askbot/models/__init__.py3
-rw-r--r--askbot/models/question.py8
2 files changed, 9 insertions, 2 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 1c08cb0c..8dc81e47 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -1535,6 +1535,9 @@ def user_delete_question(
question.deleted_at = timestamp
question.save()
+ question.thread.deleted = True
+ question.thread.save()
+
for tag in list(question.thread.tags.all()):
if tag.used_count == 1:
tag.deleted = True
diff --git a/askbot/models/question.py b/askbot/models/question.py
index d1fa7cae..51a7c24b 100644
--- a/askbot/models/question.py
+++ b/askbot/models/question.py
@@ -49,15 +49,18 @@ class ThreadQuerySet(models.query.QuerySet):
todo: implement full text search on relevant fields
"""
db_engine_name = askbot.get_database_engine_name()
+ filter_parameters = {'deleted': False}
if 'postgresql_psycopg2' in db_engine_name:
from askbot.search import postgresql
return postgresql.run_title_search(
self, search_query
+ ).filter(
+ **filter_parameters
).order_by('-relevance')
elif 'mysql' in db_engine_name and mysql.supports_full_text_search():
- filter_parameters = {'title__search': search_query}
+ filter_parameters['title__search'] = search_query
else:
- filter_parameters = {'title__icontains': search_query}
+ filter_parameters['title__icontains'] = search_query
if getattr(django_settings, 'ASKBOT_MULTILINGUAL', False):
filter_parameters['language_code'] = get_language()
@@ -550,6 +553,7 @@ class Thread(models.Model):
null=True,
blank=True
)
+ deleted = models.BooleanField(default=False, db_index=True)
#denormalized data: the core approval of the posts is made
#in the revisions. In the revisions there is more data about