# HG changeset patch
# User cavaliet
# Date 1361275950 -3600
# Node ID ea2c1961a51533a3061ae6ee8e1c269fb30af7e0
# Parent 119cd616faa4bc363258ae8979689ae00045a407
Enhance fragment search. Highlight works.
diff -r 119cd616faa4 -r ea2c1961a515 src/egonomy/search_indexes/backends/elasticsearch_backend.py
--- a/src/egonomy/search_indexes/backends/elasticsearch_backend.py Mon Feb 18 15:43:46 2013 +0100
+++ b/src/egonomy/search_indexes/backends/elasticsearch_backend.py Tue Feb 19 13:12:30 2013 +0100
@@ -30,18 +30,17 @@
result_class=result_class)
#TODO : try to make list of field dynamic
- #TODO : How to handle multiple
+ #TODO : How to handle multiple
if highlight:
highlight_def = kwargs.get('highlight', {})
+ fields_def = highlight_def.get('fields', {})
- fields_def = highlight_def.get('fields', {})
-
- if models is None or len(models) == 0 or ImageMetadata in models or Fragment in models:
+ if models is None or len(models) == 0 or Fragment in models:
fields_def['tags'] = {}
fields_def['title'] = {}
fields_def['description'] = {}
- kwargs['highlight'] = highlight_def.update({
+ highlight_def.update({
'pre_tags' : [""],
'post_tags' : [""],
"number_of_fragments" : 0,
diff -r 119cd616faa4 -r ea2c1961a515 src/egonomy/search_indexes/indexes.py
--- a/src/egonomy/search_indexes/indexes.py Mon Feb 18 15:43:46 2013 +0100
+++ b/src/egonomy/search_indexes/indexes.py Tue Feb 19 13:12:30 2013 +0100
@@ -34,10 +34,10 @@
text = indexes.CharField(document=True, use_template=True)
image = indexes.CharField(model_attr='image', indexed=False, stored=True)
- author = indexes.CharField(model_attr='author', null=True)
- title = indexes.CharField(model_attr='title', null=True)
- description = indexes.CharField(model_attr='description', null=True)
- tags = indexes.CharField(model_attr='tags', null=True)
+ author = indexes.CharField(model_attr='author', null=True, stored=True)
+ title = indexes.CharField(model_attr='title', null=True, stored=True)
+ description = indexes.CharField(model_attr='description', null=True, stored=True)
+ tags = indexes.CharField(model_attr='tags', null=True, stored=True)
def get_model(self):
return Fragment
diff -r 119cd616faa4 -r ea2c1961a515 src/egonomy/templates/egonomy_all_fragments.html
--- a/src/egonomy/templates/egonomy_all_fragments.html Mon Feb 18 15:43:46 2013 +0100
+++ b/src/egonomy/templates/egonomy_all_fragments.html Tue Feb 19 13:12:30 2013 +0100
@@ -27,7 +27,8 @@
{% if search %}{% highlight frg.title with search html_tag "span" css_class "highlight" %}{% else %}{{ frg.title }}{% endif %}
+
{% trans "Annotated by" %} {{ frg.author }}
{% endfor %} diff -r 119cd616faa4 -r ea2c1961a515 src/egonomy/views.py --- a/src/egonomy/views.py Mon Feb 18 15:43:46 2013 +0100 +++ b/src/egonomy/views.py Tue Feb 19 13:12:30 2013 +0100 @@ -145,8 +145,8 @@ if not field or field == 'all': field = 'text' qp = QueryParser(field) - res = RelatedSearchQuerySet().filter(qp.parse(search)).models(Fragment).load_all_queryset(Fragment, frg_list).load_all() - paginator = SearchPaginator(res, nb) + res = RelatedSearchQuerySet().filter(qp.parse(search)).models(Fragment).load_all_queryset(Fragment, frg_list).load_all().highlight() + paginator = Paginator(res, nb) else: frg_list = frg_list.order_by('pk').all() paginator = Paginator(frg_list, nb) @@ -159,7 +159,6 @@ url_pagination = reverse("all_fragments") if search: url_pagination = url_pagination + "?search=" + search - return render_to_response("egonomy_all_fragments.html", {"search_fragment":True, 'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results, "url_pagination":url_pagination},