--- a/src/egonomy/search_indexes/backends/elasticsearch_backend.py Mon Feb 18 17:24:37 2013 +0100
+++ b/src/egonomy/search_indexes/backends/elasticsearch_backend.py Tue Feb 19 13:14:20 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' : ["<span class='highlight'>"],
'post_tags' : ["</span>"],
"number_of_fragments" : 0,
--- a/src/egonomy/search_indexes/indexes.py Mon Feb 18 17:24:37 2013 +0100
+++ b/src/egonomy/search_indexes/indexes.py Tue Feb 19 13:14:20 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
--- a/src/egonomy/templates/egonomy_all_fragments.html Mon Feb 18 17:24:37 2013 +0100
+++ b/src/egonomy/templates/egonomy_all_fragments.html Tue Feb 19 13:14:20 2013 +0100
@@ -27,7 +27,8 @@
<a href="{% url 'view_fragment' fragment_pk=frg.pk %}">
<div class="center-image">
<div class="image-and-fragment">
- {% with frg.image.info.image_file as image %}
+ {% with frgmt=frg.object|default:frg %}
+ {% with image=frgmt.image.info.image_file %}
{% if image %}
{% if image|is_portrait %}
{% thumbnail image "x110" format="PNG" crop="center" as im %}
@@ -47,11 +48,12 @@
{% endif %}
{% endwith %}
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 1 1" preserveAspectRatio="none">
- <path d="{{ frg.coordinates }}" stroke="red" stroke-width=".02" fill="red" fill-opacity=".3" />
+ <path d="{{ frgmt.coordinates }}" stroke="red" stroke-width=".02" fill="red" fill-opacity=".3" />
</svg>
+ {% endwith %}
</div>
</div>
- <h3>{% if search %}{% highlight frg.title with search html_tag "span" css_class "highlight" %}{% else %}{{ frg.title }}{% endif %}</h3></a>
+ <h3>{% if search %}{{ frg.highlighted.title|first|safe|default:frg.title }}{% else %}{{ frg.title }}{% endif %}</h3></a>
<p>{% trans "Annotated by" %} <strong>{{ frg.author }}</strong></p>
</li>
{% endfor %}
--- a/src/egonomy/views.py Mon Feb 18 17:24:37 2013 +0100
+++ b/src/egonomy/views.py Tue Feb 19 13:14:20 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},