Commits

Niklas Hambüchen  committed 9e96f74

Add limit_pages parameter for paginate

  • Participants
  • Parent commits 1c7d931

Comments (0)

Files changed (1)

File 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