]> git.parisson.com Git - telemeta.git/commitdiff
add results per page selection on search results template
authorafilsaime <shadow_kungfu@hotmail.fr>
Mon, 8 Jun 2015 12:12:23 +0000 (14:12 +0200)
committerafilsaime <shadow_kungfu@hotmail.fr>
Mon, 8 Jun 2015 12:12:23 +0000 (14:12 +0200)
telemeta/templates/search/search.html
telemeta/views/haystack_search.py

index b6e925d2649967ae6400d7168de507d53d819036..6faa362f00a22799ffb8bd3d1e372c7fd2c0b04e 100644 (file)
                     <p><b><a href="{% url "haystack_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}})</b></p>
                 {% endifequal %}
              {% endifequal %}
+             <div>
+                <form method="GET" action=".">
+                    <select onchange="location='?q={{ query }}&amp;page=1&amp;selected_facets={{selected_facets_url|join:'&selected_facets='}}&results_page='+this.options[this.selectedIndex].value" name="results_page">
+                        <option {% ifequal results_page 20 %}selected{% endifequal %} value="20">20</option>
+                        <option {% ifequal results_page 1 %}selected{% endifequal %} value="1">1</option>
+                        <option {% ifequal results_page 50 %}selected{% endifequal %} value="50">50</option>
+                        <option {% ifequal results_page 100 %}selected{% endifequal %} value="100">100</option>
+                        <option {% ifequal results_page 250 %}selected{% endifequal %} value="250">250</option>
+                        <option {% ifequal results_page 500 %}selected{% endifequal %} value="500">500</option>
+                        <option {% ifequal results_page 1000 %}selected{% endifequal %} value="1000">1000</option>
+                        <option {% ifequal results_page item_count %}selected{% endifequal %} value="{{item_count}}">ALL</option>
+                    </select>
+                </form>
+             </div>
+             {{results_page}}
+             {{selected_facets_url|join:'&selected_facets='}}
              {% include "search/filters.html" %}
 
             <form method="POST" action="{% url "haystack_playlist"%} ">{% csrf_token %}
@@ -47,9 +63,9 @@
 
                 {% if page.has_previous or page.has_next %}
                     <div>
-                        {% if page.has_previous %}<a href="?q={{ query }}&amp;page={{ page.previous_page_number }}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
+                        {% if page.has_previous %}<a href="?q={{ query }}&amp;page={{ page.previous_page_number }}&amp;results_page={{results_page}}&amp;selected_facets={{selected_facets_url|join:'&selected_facets='}}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
                         |
-                        {% if page.has_next %}<a href="?q={{ query }}&amp;page={{ page.next_page_number }}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
+                        {% if page.has_next %}<a href="?q={{ query }}&amp;page={{ page.next_page_number }}&amp;results_page={{results_page}}&amp;selected_facets={{selected_facets_url|join:'&selected_facets='}}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
                     </div>
                 {% endif %}
             {% endwith %}
index c7846502db8776d57ddac5b3d2bb741cbaf2d48a..e43d303b995843e7ebff88595ff9d0dddba93956 100644 (file)
@@ -12,6 +12,10 @@ class HaystackSearch(FacetedSearchView):
         self.type = type
         self.form_class = HaySearchForm
         self.selected_facet=self.selected_facet_list(request.GET.getlist('selected_facets', ['a']))
+        if request.GET.get('results_page'):
+            self.results_per_page=int(request.GET.get('results_page'))
+        else:
+            self.results_per_page = 20
         return super(HaystackSearch, self).__call__(request)
 
     def get_query(self):
@@ -70,6 +74,8 @@ class HaystackSearch(FacetedSearchView):
             extra['type'] = 'item'
 
         extra['selected_facets']=self.selected_facet
+        extra['selected_facets_url']=self.request.GET.getlist('selected_facets')
+        extra['results_page']=self.results_per_page
         return extra