diff --git a/metacore/forms.py b/metacore/forms.py index 63bb35e541b910afafa39fcefb5d530b3b990bbe..1d6ce972e01b476f36d646f9d2fed44703a8f1e2 100644 --- a/metacore/forms.py +++ b/metacore/forms.py @@ -10,7 +10,7 @@ class CitableSearchForm(forms.Form): def search_results(self): """Return all Citable objects according to search""" - return Citable.objects.filter( + return Citable.objects.simple().filter( title__icontains=self.cleaned_data.get('title', ''), authors__icontains=self.cleaned_data.get('author', ''), publisher__icontains=self.cleaned_data.get('publisher', ''), diff --git a/metacore/managers.py b/metacore/managers.py index dd4a783e4fbccef82e358561fddbe2a053bc9ebd..d32ea5b7e7abeb5e51608f06e7f576afcf8c8bd5 100644 --- a/metacore/managers.py +++ b/metacore/managers.py @@ -5,3 +5,6 @@ class CitableQuerySet(QuerySet): def cited_by(self, dois): return self.only('references').filter(references__in=dois) + + def simple(self): + return self.only('doi', 'title', 'authors', 'metadata.is-referenced-by-count', 'publication_date', 'publisher') diff --git a/metacore/models.py b/metacore/models.py index 8e3bbe527149610115761fe5759ef974cfda7d41..776034d61e79e734daff8daf061737ba93e6dd9d 100644 --- a/metacore/models.py +++ b/metacore/models.py @@ -30,7 +30,7 @@ class Citable(DynamicDocument): # Settings for mongoengine meta = { 'queryset_class': CitableQuerySet, # use the custom queryset - 'indexes': ['doi'], # define indices on database + 'indexes': ['doi', 'authors', 'title', 'publication_date', 'publisher'], # define indices on database 'allow_inheritance': True } diff --git a/metacore/templates/citable_list.html b/metacore/templates/citable_list.html index 100bc5293a7e7e4c66ec0fca38182eb5131ed6cb..23fdcb03905cfe58c3ed7d0298d309c6a7cd371b 100644 --- a/metacore/templates/citable_list.html +++ b/metacore/templates/citable_list.html @@ -41,7 +41,7 @@ {% if browse %} <h2>Citables </h2> {% else %} - <h2>Search results:</h3> + <h2>Search results ({{ object_list.count }} total):</h3> {% endif %} </div> {% if is_paginated %} diff --git a/metacore/views.py b/metacore/views.py index 79df1b60a18070ba683103121400187faa3e9e8d..51650641ab9211793f1f97b3453ff433184b3218 100644 --- a/metacore/views.py +++ b/metacore/views.py @@ -18,7 +18,8 @@ class CitableListView(ListView): if self.form.is_valid() and self.form.has_changed(): queryset = self.form.search_results() else: - queryset = Citable.objects.limit(100) + # queryset = Citable.objects.simple().limit(100) + queryset = Citable.objects.simple().order_by('-metadata.is-referenced-by-count').limit(100) return queryset