# 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 %}
{% for img in results %}
-
@@ -50,7 +50,7 @@
{% endfor %}
- {% 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))