diff --git a/src/accounts/search_indexes.py b/src/accounts/search_indexes.py index c452b8e..b76eb59 100644 --- a/src/accounts/search_indexes.py +++ b/src/accounts/search_indexes.py @@ -10,12 +10,12 @@ class UserIndex(indexes.SearchIndex, indexes.Indexable): username = indexes.CharField(model_attr='username') name = indexes.CharField(model_attr='get_full_name') email = indexes.CharField(model_attr='email') - institution = indexes.CharField(model_attr='institution') - role = indexes.CharField(model_attr='role') - twitter = indexes.CharField(model_attr='twitter') - facebook = indexes.CharField(model_attr='facebook') - google_talk = indexes.CharField(model_attr='google_talk') - webpage = indexes.CharField(model_attr='webpage') + institution = indexes.CharField(model_attr='institution', null=True) + role = indexes.CharField(model_attr='role', null=True) + twitter = indexes.CharField(model_attr='twitter', null=True) + facebook = indexes.CharField(model_attr='facebook', null=True) + google_talk = indexes.CharField(model_attr='google_talk', null=True) + webpage = indexes.CharField(model_attr='webpage', null=True) def get_model(self): return User diff --git a/src/colab/urls.py b/src/colab/urls.py index 5fbbefa..c1fdcdb 100644 --- a/src/colab/urls.py +++ b/src/colab/urls.py @@ -8,7 +8,7 @@ from haystack.query import SearchQuerySet from haystack.views import SearchView from accounts.models import User -from super_archives.models import Thread +from super_archives.models import Message admin.autodiscover() @@ -19,7 +19,7 @@ urlpatterns = patterns('', url(r'^search/$', 'colab.deprecated.views.other.search', name='search'), url(r'^full_search/', SearchView( template='search/search.html', - searchqueryset=SearchQuerySet().models(User, Thread), + searchqueryset=SearchQuerySet().models(User, Message), form_class=ModelSearchForm, ), name='haystack_search'), diff --git a/src/super_archives/search_indexes.py b/src/super_archives/search_indexes.py index 04689d2..418c28c 100644 --- a/src/super_archives/search_indexes.py +++ b/src/super_archives/search_indexes.py @@ -2,23 +2,36 @@ from haystack import indexes -from .models import Thread +from .models import Message -class ThreadIndex(indexes.SearchIndex, indexes.Indexable): +class MessageIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) - subject_token = indexes.CharField(model_attr='subject_token') - mailinglist = indexes.CharField(model_attr='mailinglist') - latest_message = indexes.CharField(model_attr='latest_message') - Description = indexes.CharField(use_template=True) - Title = indexes.CharField(use_template=True) - url = indexes.CharField(use_template=True, null=True) - modified = indexes.CharField(use_template=True) + mailinglist = indexes.CharField(model_attr='thread__mailinglist__name') + description = indexes.CharField(model_attr='body') + title = indexes.CharField(model_attr='subject_clean') + modified = indexes.DateTimeField(model_attr='received_time') + from_address_user_full_name = indexes.CharField( + model_attr='from_address__user__get_full_name', + null=True, + ) + from_address_full_name = indexes.CharField( + model_attr='from_address__get_full_name', + null=True, + ) + from_address_user_url = indexes.CharField( + model_attr='from_address__user__get_absolute_url', + null=True, + ) + url = indexes.CharField(model_attr='url', null=True) def get_model(self): - return Thread + return Message + + def get_updated_field(self): + return 'received_time' def index_queryset(self, using=None): return self.get_model().objects.filter( - spam=False - ).exclude(subject_token='') + thread__spam=False, spam=False + ).exclude(thread__subject_token='') diff --git a/src/super_archives/templates/search/indexes/super_archives/message_text.txt b/src/super_archives/templates/search/indexes/super_archives/message_text.txt new file mode 100644 index 0000000..802cb7a --- /dev/null +++ b/src/super_archives/templates/search/indexes/super_archives/message_text.txt @@ -0,0 +1,6 @@ +{{ object.thread.mailinglist.name }} +{{ object.thread.subject_token }} +{{ object.body }} +{{ object.subject_clean }} +{{ object.url }} +{{ object.received_time }} diff --git a/src/super_archives/templates/search/indexes/super_archives/thread_Description.txt b/src/super_archives/templates/search/indexes/super_archives/thread_Description.txt deleted file mode 100644 index bf94f5f..0000000 --- a/src/super_archives/templates/search/indexes/super_archives/thread_Description.txt +++ /dev/null @@ -1,3 +0,0 @@ -{% for message in object.message_set.all %} - {{ message.Description }} -{% endfor %} diff --git a/src/super_archives/templates/search/indexes/super_archives/thread_Title.txt b/src/super_archives/templates/search/indexes/super_archives/thread_Title.txt deleted file mode 100644 index 4afe7f4..0000000 --- a/src/super_archives/templates/search/indexes/super_archives/thread_Title.txt +++ /dev/null @@ -1,3 +0,0 @@ -{% for message in object.message_set.all %} - {{ message.Title }} -{% endfor %} diff --git a/src/super_archives/templates/search/indexes/super_archives/thread_modified.txt b/src/super_archives/templates/search/indexes/super_archives/thread_modified.txt deleted file mode 100644 index 88d1f9b..0000000 --- a/src/super_archives/templates/search/indexes/super_archives/thread_modified.txt +++ /dev/null @@ -1,3 +0,0 @@ -{% for message in object.message_set.all %} - {{ message.modified }} -{% endfor %} diff --git a/src/super_archives/templates/search/indexes/super_archives/thread_text.txt b/src/super_archives/templates/search/indexes/super_archives/thread_text.txt deleted file mode 100644 index 02b2bec..0000000 --- a/src/super_archives/templates/search/indexes/super_archives/thread_text.txt +++ /dev/null @@ -1,11 +0,0 @@ -{{ object.subject_token }} -{{ object.mailinglist.name }} -{{ object.mailinglist.email }} -{{ object.mailinglist.description }} -{{ object.spam }} -{% for message in object.message_set.all %} - {{ message.Title }} - {{ message.Description }} - {{ message.url }} - {{ message.modified }} -{% endfor %} diff --git a/src/super_archives/templates/search/indexes/super_archives/thread_url.txt b/src/super_archives/templates/search/indexes/super_archives/thread_url.txt deleted file mode 100644 index b315e69..0000000 --- a/src/super_archives/templates/search/indexes/super_archives/thread_url.txt +++ /dev/null @@ -1,3 +0,0 @@ -{% for message in object.message_set.all %} - {{ message.url }} -{% endfor %} diff --git a/src/templates/search/search-message-preview.html b/src/templates/search/search-message-preview.html new file mode 100644 index 0000000..18ad0d0 --- /dev/null +++ b/src/templates/search/search-message-preview.html @@ -0,0 +1,43 @@ +{% load i18n %} + +
  • + {% if result.Type %} + {{ result.Type }} + {% else %} + + {% endif %} + + {% if result.mailinglist %} + + {{ result.mailinglist }} + + {% endif %} + + + + {{ result.title }} + + + + - {{ result.description|striptags }} + +
    + + {% if result.from_address_user_url or result.from_address_full_name or result.last_author or result.Creator %} + {% trans "by" %} + {% endif %} + + {% if result.from_address_user_url %} + {{ result.from_address_user_full_name }} + {% elif result.from_address_full_name %} + {{ result.from_address_full_name }} + {% else %} + {% firstof result.last_author result.Creator "" %} + {% endif %} + + + {{ result.modified|timesince }} {% trans "ago" %} +
    +
  • diff --git a/src/templates/search/search-user-preview.html b/src/templates/search/search-user-preview.html new file mode 100644 index 0000000..8861878 --- /dev/null +++ b/src/templates/search/search-user-preview.html @@ -0,0 +1,11 @@ +{% load i18n %} + +
  • + + + + {{ result.name }} + + + {% if result.institution %}- {{ result.institution }}{% endif %}{% if result.role %} - {{ result.role }}{% endif %} +
  • diff --git a/src/templates/search/search.html b/src/templates/search/search.html index e6ddfa6..3fa2b3e 100644 --- a/src/templates/search/search.html +++ b/src/templates/search/search.html @@ -7,8 +7,7 @@

    {% trans "Search" %}

    - {{ docs.numFound }} {% trans "documents found in" %} - {{ docs.QTime|floatformat:3 }} {% trans "seconds" %} + {{ page.object_list|length }} {% trans "documents found" %}
    @@ -19,7 +18,7 @@

    {% trans "Types" %}

    -