diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-10 21:35:39 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-10 21:52:18 -0400 |
commit | 6f5ec65e213a4b4b9ef7e7ea292090e9a809a950 (patch) | |
tree | 28aa56ffabe780dd09f1494917967bb5794180dc /askbot/models | |
parent | 3bff694afc5b2b7709bf98de1a6c3dcc5c51ccf4 (diff) | |
download | askbot-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__.py | 3 | ||||
-rw-r--r-- | askbot/models/question.py | 8 |
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 |