# HG changeset patch # User cavaliet # Date 1360861230 -3600 # Node ID 92e53085020025e886e45162fff3c5f097f39f6b # Parent 599b9b82c75092b32a56cc511706edfbe44e3081 rebuild pagination for search results diff -r 599b9b82c750 -r 92e530850200 src/egonomy/templates/egonomy_all_pictures.html --- a/src/egonomy/templates/egonomy_all_pictures.html Thu Feb 14 16:40:41 2013 +0100 +++ b/src/egonomy/templates/egonomy_all_pictures.html Thu Feb 14 18:00:30 2013 +0100 @@ -19,7 +19,7 @@ {% else %}

{% trans "All pictures" %}

{% endif %} - {% if nb_pages > 1 %}

{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}

{% endif %} + {% if nb_pages > 1 %}

{% build_pagination nb_pages cur_page_nb url_pagination "contents_page clickable" %}

{% endif %} - {% if nb_pages > 1 %}

{% build_pagination nb_pages cur_page_nb "all_pictures" "contents_page clickable" %}

{% endif %} + {% if nb_pages > 1 %}

{% build_pagination nb_pages cur_page_nb url_pagination "contents_page clickable" %}

{% endif %} {% endblock %} diff -r 599b9b82c750 -r 92e530850200 src/egonomy/templates/partial/all_pictures_pagination.html --- a/src/egonomy/templates/partial/all_pictures_pagination.html Thu Feb 14 16:40:41 2013 +0100 +++ b/src/egonomy/templates/partial/all_pictures_pagination.html Thu Feb 14 18:00:30 2013 +0100 @@ -1,21 +1,21 @@ {% if nb_pages %} {% comment %}alors ? : {{begin}} - {{middle}} - {{end}} - nb_pages = {{nb_pages}}
alors ? : nb_pages = {{nb_pages}} - range = {{nb_pages}} - cur_page_nb = {{cur_page_nb}}
{% endcomment %} - {% if 1 < cur_page_nb %}<< {% endif %} + {% if 1 < cur_page_nb %}<< {% endif %} {% for i in begin %} - {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  + {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  {% endfor %} {% if middle %} ... {% for i in middle %} - {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  + {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  {% endfor %} {% endif %} {% if end %} ... {% for i in end %} - {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  + {% if i == cur_page_nb %}{{i}}{% else %}{{i}}{% endif %}  {% endfor %} {% endif %} - {% if cur_page_nb < nb_pages %}>>{% endif %} + {% if cur_page_nb < nb_pages %}>>{% endif %} {% endif %} \ No newline at end of file diff -r 599b9b82c750 -r 92e530850200 src/egonomy/templatetags/navigation.py --- a/src/egonomy/templatetags/navigation.py Thu Feb 14 16:40:41 2013 +0100 +++ b/src/egonomy/templatetags/navigation.py Thu Feb 14 18:00:30 2013 +0100 @@ -20,7 +20,7 @@ @register.inclusion_tag("partial/all_pictures_pagination.html", takes_context=True) -def build_pagination(context, nb_pages, cur_page_nb, url_to, a_class, begin_pages=2, end_pages=2, before_current_pages=2, after_current_pages=2): +def build_pagination(context, nb_pages, cur_page_nb, url_pagination, a_class, begin_pages=2, end_pages=2, before_current_pages=2, after_current_pages=2): # Digg-like pagination. Adapted from http://djangosnippets.org/snippets/2199/ nb_pages = int(nb_pages) cur_page_nb = int(cur_page_nb) @@ -66,12 +66,16 @@ #assert False, str(nb_pages) + ", " + str(page_range) + ", " + str(begin) + # We control if url_pagination has at least "?" + if not "?" in url_pagination: + url_pagination = url_pagination + "?" + context.update({'begin' : begin, 'middle' : middle, 'end' : end, 'nb_pages' : nb_pages, 'cur_page_nb' : cur_page_nb, - 'url_to' : url_to, + 'url_pagination' : url_pagination, 'a_class' : a_class}) #assert False, begin + middle + end return context diff -r 599b9b82c750 -r 92e530850200 src/egonomy/views.py --- a/src/egonomy/views.py Thu Feb 14 16:40:41 2013 +0100 +++ b/src/egonomy/views.py Thu Feb 14 18:00:30 2013 +0100 @@ -1,15 +1,15 @@ from django.conf import settings from django.contrib.auth.decorators import login_required from django.core.paginator import Paginator, InvalidPage, EmptyPage +from django.core.urlresolvers import reverse +from django.db.models.aggregates import Max from django.shortcuts import get_object_or_404, render_to_response, redirect from django.template import RequestContext -from models import Image, Fragment -from django.db.models.aggregates import Max -import logging +from egonomy.models import ImageMetadata, Image, Fragment +from egonomy.search_indexes import QueryParser +from egonomy.search_indexes.paginator import SearchPaginator from egonomy.search_indexes.query import ModelRelatedSearchQuerySet -from egonomy.search_indexes import QueryParser -from egonomy.models import ImageMetadata -from egonomy.search_indexes.paginator import SearchPaginator +import logging logger = logging.getLogger(__name__) @@ -108,15 +108,19 @@ paginator = SearchPaginator(res, nb) else: img_list = img_list.order_by('pk').all() - paginator = Paginator(img_list, nb) + paginator = Paginator(img_list, nb) try: results = paginator.page(cur_page_nb) except (EmptyPage, InvalidPage): results = paginator.page(paginator.num_pages) + + url_pagination = reverse("all_pictures") + if search: + url_pagination = url_pagination + "?search=" + search return render_to_response("egonomy_all_pictures.html", - {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results}, + {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results, "url_pagination":url_pagination}, context_instance=RequestContext(request))