diff options
-rw-r--r-- | chimere/search_indexes.py | 9 | ||||
-rw-r--r-- | chimere/static/chimere/js/search-autocomplete.js | 2 | ||||
-rw-r--r-- | chimere/templates/search/search.html | 2 | ||||
-rw-r--r-- | chimere/views.py | 2 |
4 files changed, 11 insertions, 4 deletions
diff --git a/chimere/search_indexes.py b/chimere/search_indexes.py index 6b57450..5e4a69a 100644 --- a/chimere/search_indexes.py +++ b/chimere/search_indexes.py @@ -20,7 +20,10 @@ import datetime from haystack import indexes +from django.db.models import Q + from chimere import models +from chimere.views import checkDate class GeographicItemIndex(indexes.SearchIndex): text = indexes.CharField(document=True, use_template=True) @@ -29,7 +32,9 @@ class GeographicItemIndex(indexes.SearchIndex): content_auto = indexes.EdgeNgramField(model_attr='name') def index_queryset(self, using=None): - return self.get_model().objects.filter(status='A') + q = checkDate(Q(status='A', categories__available=True, + categories__category__available=True)) + return self.get_model().objects.filter(q).distinct('pk').order_by('pk') def prepare_categories(self, obj): cats = [] @@ -42,6 +47,7 @@ class MarkerIndex(GeographicItemIndex, indexes.Indexable): def get_model(self): return models.Marker +""" class RouteIndex(GeographicItemIndex, indexes.Indexable): location = indexes.LocationField() def get_model(self): @@ -50,3 +56,4 @@ class RouteIndex(GeographicItemIndex, indexes.Indexable): def prepare_location(self, obj): centroid = obj.route.centroid return "%s,%s" % (centroid.y, centroid.x) +""" diff --git a/chimere/static/chimere/js/search-autocomplete.js b/chimere/static/chimere/js/search-autocomplete.js index 79faab1..cd1b0e1 100644 --- a/chimere/static/chimere/js/search-autocomplete.js +++ b/chimere/static/chimere/js/search-autocomplete.js @@ -1,5 +1,5 @@ -var no_result_message = "No results found."; +var no_result_message = "No exact match."; var Autocomplete = function(options) { this.form_selector = options.form_selector; diff --git a/chimere/templates/search/search.html b/chimere/templates/search/search.html index 4405381..572276f 100644 --- a/chimere/templates/search/search.html +++ b/chimere/templates/search/search.html @@ -37,7 +37,7 @@ for (idx=0 ; idx < new_ids.length ; idx++){ </form> <div id='search-result'></div> <script type='text/javascript'> -no_result_message = "{% trans 'No results found.' %}"; +no_result_message = "{% trans 'No exact match.' %}"; $(function(){ $('#haystack-search').click( function(evt){ diff --git a/chimere/views.py b/chimere/views.py index 0afb6fa..968492c 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -948,7 +948,7 @@ if hasattr(settings, 'CHIMERE_SEARCH_ENGINE') \ def autocomplete(request): sqs = SearchQuerySet().autocomplete( content_auto=request.GET.get('q', ''))[:5] - suggestions = [result.object.name for result in sqs] + suggestions = [result.object.name for result in sqs if result.object] # make sure it returns a JSON object, not a bare list. # otherwise, it could be vulnerable to an XSS attack. the_data = json.dumps({ |