Commits

Niklas Hambüchen committed 9e96f74

Add limit_pages parameter for paginate

Comments (0)

Files changed (1)

webhelpers/paginate.py

     """
     def __init__(self, collection, page=1, items_per_page=20,
         item_count=None, sqlalchemy_session=None, presliced_list=False,
-        url=None, **kwargs):
+        url=None, limit_pages=True, **kwargs):
         """Create a "Page" instance.
 
         Parameters:
             A URL generator function. See module docstring for details.
             This is used only by ``.pager()``.
 
+        limit_pages (optional)
+            Indicates whether page shall be set to ``first_page``/``last_page``
+            if ``page`` exceeds it. The page will be empty otherwise.
+
         Further keyword arguments are used as link arguments in the pager().
         """
         self._url_generator = url
             self.last_page = self.first_page + self.page_count - 1
 
             # Make sure that the requested page number is the range of valid pages
-            if self.page > self.last_page:
-                self.page = self.last_page
-            elif self.page < self.first_page:
-                self.page = self.first_page
+            if limit_pages:
+                if self.page > self.last_page:
+                    self.page = self.last_page
+                elif self.page < self.first_page:
+                    self.page = self.first_page
 
             # Note: the number of items on this page can be less than
             #       items_per_page if the last page is not full
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.