improve pagination add total nb to request
authorymh <ymh.work@gmail.com>
Tue, 18 Jun 2013 10:51:25 +0200
changeset 20 ec738ea574a7
parent 19 c65f3713c7bd
child 21 4129164c0d1e
improve pagination add total nb to request
src/jocondelab/__init__.py
src/jocondelab/locale/en/LC_MESSAGES/django.mo
src/jocondelab/locale/en/LC_MESSAGES/django.po
src/jocondelab/locale/fr/LC_MESSAGES/django.mo
src/jocondelab/locale/fr/LC_MESSAGES/django.po
src/jocondelab/settings.py
src/jocondelab/templates/jocondelab/partial/pagination.html
src/jocondelab/utils.py
--- a/src/jocondelab/__init__.py	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/__init__.py	Tue Jun 18 10:51:25 2013 +0200
@@ -1,4 +1,4 @@
-VERSION = (0, 2, 0, "final", 0)
+VERSION = (0, 3, 0, "final", 0)
 
 
 def get_version():
Binary file src/jocondelab/locale/en/LC_MESSAGES/django.mo has changed
--- a/src/jocondelab/locale/en/LC_MESSAGES/django.po	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/locale/en/LC_MESSAGES/django.po	Tue Jun 18 10:51:25 2013 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-06-17 13:52+0200\n"
+"POT-Creation-Date: 2013-06-18 10:42+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -88,13 +88,19 @@
 msgid "Search"
 msgstr "Search"
 
+# python-format
 #: templates/jocondelab/partial/pagination.html:6
-#: templates/jocondelab/partial/pagination.html:8
+#, python-format
+msgid "Total number of term in the request : %(total_count)s"
+msgstr "Total request: %(total_count)s"
+
+#: templates/jocondelab/partial/pagination.html:10
+#: templates/jocondelab/partial/pagination.html:12
 msgid "previous"
 msgstr "previous"
 
-#: templates/jocondelab/partial/pagination.html:24
-#: templates/jocondelab/partial/pagination.html:26
+#: templates/jocondelab/partial/pagination.html:27
+#: templates/jocondelab/partial/pagination.html:29
 msgid "next"
 msgstr "next"
 
Binary file src/jocondelab/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/jocondelab/locale/fr/LC_MESSAGES/django.po	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/locale/fr/LC_MESSAGES/django.po	Tue Jun 18 10:51:25 2013 +0200
@@ -3,12 +3,11 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-06-17 13:52+0200\n"
+"POT-Creation-Date: 2013-06-18 10:42+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -91,12 +90,17 @@
 msgstr "Rech."
 
 #: templates/jocondelab/partial/pagination.html:6
-#: templates/jocondelab/partial/pagination.html:8
+#, python-format
+msgid "Total number of term in the request : %(total_count)s"
+msgstr "Total requête: %(total_count)s"
+
+#: templates/jocondelab/partial/pagination.html:10
+#: templates/jocondelab/partial/pagination.html:12
 msgid "previous"
 msgstr "préc."
 
-#: templates/jocondelab/partial/pagination.html:24
-#: templates/jocondelab/partial/pagination.html:26
+#: templates/jocondelab/partial/pagination.html:27
+#: templates/jocondelab/partial/pagination.html:29
 msgid "next"
 msgstr "suiv."
 
--- a/src/jocondelab/settings.py	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/settings.py	Tue Jun 18 10:51:25 2013 +0200
@@ -187,7 +187,7 @@
 DBPEDIA_URI_TEMPLATE = "http://fr.dbpedia.org/resource/%s"
 
 TERM_LIST_PAGE_SIZE = 20
-PAGINATOR_VISIBLE_RANGE = 7
+PAGINATOR_VISIBLE_RANGE = 5
 
 from .config import *  # @UnusedWildImport
 
--- a/src/jocondelab/templates/jocondelab/partial/pagination.html	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/templates/jocondelab/partial/pagination.html	Tue Jun 18 10:51:25 2013 +0200
@@ -1,13 +1,16 @@
 {% load i18n %}
 {% load core_extras %}
 {% with page_obj.number as current_page_nb %}
+<div class="pagination-container">
+<div class=pagination-total-count>
+{% blocktrans with total_count=page_obj.paginator.count %}Total number of term in the request : {{ total_count }}{% endblocktrans %}
+</div>
 <div class="pagination">
     {% if page_obj.has_previous %}
         <a href="{% append_to_param page=1 %}{{ hashtag }}" class="prev">&lsaquo;&lsaquo;</a><a href="{% append_to_param page=page_obj.previous_page_number %}{{ hashtag }}" class="prev">&nbsp;{% trans "previous" %}</a>
     {% else %}
         <span class="disabled prev">&lsaquo;&lsaquo;&nbsp;{% trans "previous" %}</span>
     {% endif %}
-    {% if page_obj.ellipsis_before %}...{% endif %}
     {% for page in page_obj.visible_page_range %}
         {% if page %}
             {% ifequal page page_obj.number %}
@@ -26,4 +29,5 @@
         <span class="disabled next">{% trans "next" %}&nbsp;&rsaquo;&rsaquo;</span>
     {% endif %}
 </div>
-{% endwith %}
\ No newline at end of file
+</div>
+{% endwith %}
--- a/src/jocondelab/utils.py	Mon Jun 17 14:26:45 2013 +0200
+++ b/src/jocondelab/utils.py	Tue Jun 18 10:51:25 2013 +0200
@@ -39,19 +39,26 @@
 
 class JocondePage(Page):
     
+    visible_range = getattr(settings, 'PAGINATOR_VISIBLE_RANGE', 5)
+    start_range = getattr(settings, 'PAGINATOR_START_RANGE', visible_range/2)
+    
     def __get_start_range(self):
-        return max(1,self.number-settings.PAGINATOR_VISIBLE_RANGE/2)
+        return max(1,self.number-self.visible_range/2)
     
     def __get_end_range(self):
-        return min(self.paginator.num_pages, self.number+settings.PAGINATOR_VISIBLE_RANGE/2) + 1
+        return min(self.paginator.num_pages, self.number+self.visible_range/2) + 1
     
-    def visible_page_range(self):
+    def visible_page_range(self):        
         start = self.__get_start_range()
         end = self.__get_end_range()
-        return range(start , end) 
-    
-    def ellipsis_before(self):
-        return self.__get_start_range() > 1
-    
-    def ellipsis_after(self):
-        return self.__get_end_range() < self.paginator.num_pages
+                
+        ranges = set(range(1,self.start_range+1)) | set(range(start , end)) | set(range(self.paginator.num_pages - self.start_range +1, self.paginator.num_pages+1))         
+        prev = None
+        res = []
+        for i in sorted(ranges):
+            if prev and i-prev > 1:
+                res.append(0)
+            res.append(i)
+            prev = i
+        return res
+    
\ No newline at end of file