enhance search results display
authorcavaliet
Thu, 14 Feb 2013 16:40:41 +0100
changeset 40 599b9b82c750
parent 39 cd7f14beffcf
child 41 92e530850200
enhance search results display
src/egonomy/config.py.tmpl
src/egonomy/templates/egonomy_all_pictures.html
src/egonomy/templates/egonomy_annotate_picture.html
src/egonomy/templates/egonomy_base.html
src/egonomy/templates/egonomy_home.html
src/egonomy/views.py
--- a/src/egonomy/config.py.tmpl	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/config.py.tmpl	Thu Feb 14 16:40:41 2013 +0100
@@ -125,10 +125,4 @@
     }
 }
 
-HAYSTACK_CONNECTIONS = {
-    'default': {
-        'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
-    },
-}
-
 IMAGES_PER_PAGE = 32
--- a/src/egonomy/templates/egonomy_all_pictures.html	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/templates/egonomy_all_pictures.html	Thu Feb 14 16:40:41 2013 +0100
@@ -9,8 +9,17 @@
 {% block content %}
                 <div class="fullwidth">
                     <div class="fullwidth">
-                        <h2>{% trans "All pictures" %}</h2>
-						{% if nb_pages %}<p>{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}</p>{% endif %}
+                     {% if search %}
+		              {% ifequal nb_results 0 %}
+		                <h2>{% trans "No results for" %} &laquo;&nbsp;{{ search }}&nbsp;&raquo;&nbsp;
+		              {% else %}
+		                <h2>{% trans "Search results for" %} &laquo;&nbsp;{{ search }}&nbsp;&raquo;&nbsp;:
+		              {% endifequal %}
+		                <span class="right"><a href="{% url 'all_pictures' %}" alt="{% trans "All pictures" %}">{% trans "All pictures" %}</a></span></h2>
+		             {% else %}
+		                <h2>{% trans "All pictures" %}</h2> 
+		             {% endif %}
+						{% if nb_pages > 1 %}<p>{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}</p>{% endif %}
                         <ul class="fullwidth">
                           {% for img in results %}
                             <li class="subcol subcol-eighth">
@@ -36,12 +45,12 @@
 	                             {% endif %}
 	                             {% endwith %}
                                 </div>
-                                <h3>{{ img.metadata.titre }}</h3></a>
-                                <p>{% trans "Annotated by" %} <strong>{{ img.metadata.auteur }}</strong></p>
+                                <h3>{% if img.metadata.titre %}{{ img.metadata.titre }}{% else %}({% trans "No title" %}){% endif %}</h3></a>
+                                <p>{% trans "Author" %}&nbsp;: <strong>{% if img.metadata.auteur %}{{ img.metadata.auteur }}{% else %}({% trans "Not documented" %}){% endif %}</strong></p>
                             </li>   
                           {% endfor %}
                         </ul>
-                        {% if nb_pages %}<p>{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}</p>{% endif %}
+                        {% if nb_pages > 1 %}<p>{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}</p>{% endif %}
                     </div>
                 </div>
 {% endblock %}
--- a/src/egonomy/templates/egonomy_annotate_picture.html	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/templates/egonomy_annotate_picture.html	Thu Feb 14 16:40:41 2013 +0100
@@ -8,7 +8,7 @@
 {% block content %}
                 <div class="fullwidth">
                     <div class="column column-half">
-                        <h2>{{ img.metadata.titre }}</h2>
+                        <h2>{% if img.metadata.titre %}{{ img.metadata.titre }}{% else %}({% trans "No title" %}){% endif %}</h2>
                         <div class="fullphoto">
                           {% with img.info.image_file as image %}
                           {% thumbnail image "476" format="PNG" crop="center" as im %}
--- a/src/egonomy/templates/egonomy_base.html	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/templates/egonomy_base.html	Thu Feb 14 16:40:41 2013 +0100
@@ -20,7 +20,7 @@
         <div class="header-wrap fullwidth">
             <header>
                 <h1 class="column column-third"><a href="{% url 'home' %}">TagItAll {% trans "by" %} eGonomy</a></h1>
-                <form class="column column-third" action="." method="GET">
+                <form class="column column-third" action="{% url 'all_pictures' %}" method="GET">
                     <input class="search-field" type="search" placeholder="{% trans 'Search' %}" id="id_search" name="search"/>
                     <input type="hidden" value="all" name="field">
                 </form>
--- a/src/egonomy/templates/egonomy_home.html	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/templates/egonomy_home.html	Thu Feb 14 16:40:41 2013 +0100
@@ -6,20 +6,10 @@
 {% block title %}{% trans "Home" %}{% endblock %}
 
 {% block content %}
-            {% if search %}
                 <div class="fullwidth">
-                  {% ifequal nb_results 0 %}
-                    <h2>{% trans "No results for" %} &laquo;&nbsp;{{ search }}&nbsp;&raquo;&nbsp;</h2>
-                  {% else %}
-                    <h2>{% trans "Search results for" %} &laquo;&nbsp;{{ search }}&nbsp;&raquo;&nbsp;:</h2>
-                  {% endifequal %}
-                </div>
-            {% endif %}
-                <div class="fullwidth">
-                
                     <!-- Liste des dernières images annotées -->
                     <div class="column column-half">
-                        <h2>{% if search %}{% trans "Corresponding pictures" %}{% else %}{% trans "Last annotated pictures" %}{% endif %}
+                        <h2>{% trans "Last annotated pictures" %}
                             <span class="right"><a href="{% url 'all_pictures' %}" alt="{% trans "All pictures" %}">{% trans "All pictures" %}</a></span></h2>
                         <ul class="fullwidth">
                           {% for img in img_list %}
@@ -46,16 +36,15 @@
 	                             {% endif %}
 	                             {% endwith %}
                                 </div>
-                                <h3>{{ img.metadata.titre }}</h3></a>
-                                <p>{% trans "Annotated by" %} <strong>{{ img.metadata.auteur }}</strong></p>
+                                <h3>{% if img.metadata.titre %}{{ img.metadata.titre }}{% else %}({% trans "No title" %}){% endif %}</h3></a>
+                                <p>{% trans "Author" %}&nbsp;: <strong>{% if img.metadata.auteur %}{{ img.metadata.auteur }}{% else %}({% trans "Not documented" %}){% endif %}</strong></p>
                             </li>
                           {% endfor %}
                         </ul>
                     </div>
-                    
                     <!-- Liste des derniers fragments modifiés -->
                     <div class="column column-half">
-                        <h2>{% if search %}{% trans "Corresponding fragments" %}{% else %}{% trans "Last created fragments" %}{% endif %}
+                        <h2>{% trans "Last created fragments" %}
                             <span class="right"><a href="{% url 'all_fragments' %}" alt="{% trans "All fragments" %}">{% trans "All fragments" %}</a></span></h2>
                         <ul class="fullwidth">
                           {% for frg in fragment_list %}
@@ -88,7 +77,7 @@
                                     </div>
                                 </div>
                                 <h3>{{ frg.title }}</h3></a>
-                                <h4>{% trans "Fragment from" %} <a href="{% url 'annotate_picture' image_id=frg.image.id %}">{{ frg.image.metadata.titre }}</a></h4>
+                                <h4>{% trans "Fragment from" %} <a href="{% url 'annotate_picture' image_id=frg.image.id %}">{% if frg.image.metadata.titre %}{{ frg.image.metadata.titre }}{% else %}({% trans "No title" %}){% endif %}</a></h4>
                                 <p>{% trans "Annotated by" %} <strong>{{ frg.author }}</strong></p>
                             </li>
                           {% endfor %}
--- a/src/egonomy/views.py	Thu Feb 14 16:13:58 2013 +0100
+++ b/src/egonomy/views.py	Thu Feb 14 16:40:41 2013 +0100
@@ -16,15 +16,6 @@
 
 def home(request):
     
-    # if the request has a "search" get parameter, we search this term
-    search = None
-    nb_results = 1
-    if "search" in request.GET:
-        search = request.GET["search"]
-        field = "all"
-        if "field" in request.GET:
-            field = request.GET["field"]
-    
     # We force list() because if not, img_id_list is a valuelistqueryset and not a list of values.
     # We separate image requests and make requests with select_related to optimize database hits.
     img_id_list = list(Image.objects.values_list('id', flat=True).annotate(date_modif=Max('fragment__date_saved')).exclude(date_modif=None).order_by('-date_modif')[:12])
@@ -32,7 +23,7 @@
     frg_list = Fragment.objects.all().order_by('-date_saved').select_related('image', 'image__info', 'image__metadata','author')[:12]
     
     return render_to_response("egonomy_home.html",
-                              {'img_list':img_list, 'fragment_list':frg_list, "search":search, "nb_results":nb_results},
+                              {'img_list':img_list, 'fragment_list':frg_list},
                               context_instance=RequestContext(request))
 
 
@@ -100,6 +91,7 @@
     cur_page_nb = int(cur_page_nb)
 
     search = None
+    nb_results = 1
     if "search" in request.GET:
         search = request.GET["search"]
         field = "all"
@@ -110,8 +102,8 @@
     nb = getattr(settings,"IMAGES_PER_PAGE", 32)
     if search:
         if not field or field == 'all':
-            field = 'text'        
-        qp = QueryParser(field)        
+            field = 'text'
+        qp = QueryParser(field)
         res = ModelRelatedSearchQuerySet(model=Image).filter(qp.parse(search)).models(ImageMetadata).load_all_queryset(Image, img_list).load_all()
         paginator = SearchPaginator(res, nb)
     else:
@@ -124,7 +116,7 @@
         results = paginator.page(paginator.num_pages)
 
     return render_to_response("egonomy_all_pictures.html",
-                              {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb},
+                              {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results},
                               context_instance=RequestContext(request))