Package reahl.web.bootstrap.pagination¶
New in version 3.2.
Sometimes you need to display a long list of items. Displaying such a list on a single page is not a good idea, because the page will take forever to load.
This module provides a few classes you can use to build a single View that displays
only one “pageful” of the list. You can then also include a PageMenu
– a
menu on which a user can choose to navigate to another section (or page) of the list.
PagedPanel¶
-
class
reahl.web.bootstrap.pagination.
PagedPanel
(view, page_index, css_id)¶ A
Div
whose contents change, depending on the page selected by a user from aPageMenu
. A programmer should subclass from PagedPanel, supplying an __init__ method which populates the PagedPanel with appropriate contents, based on its .current_contents.Styling
Represented in HTML by an <div> element.
- Parameters
view – (See
reahl.web.fw.Widget
)page_index – The
PageIndex
to use to supply contents to the pages displayed by this PagedPanel.css_id – (See
reahl.web.ui.HTMLElement
)
-
property
current_contents
¶ The list of items that should be displayed for the current page.
PageIndex¶
-
class
reahl.web.bootstrap.pagination.
PageIndex
(current_page_number=1, start_page_number=1, max_page_links=5)¶ An object responsible for breaking a long list of items up into shorter lists for display. Each such shorter list is referred to as a page. Different ways of breaking long lists into smaller lists are provided by subclasses.
- Parameters
-
abstract
get_contents_for_page
(page_number)¶ Override this method in subclasses to obtain the correct list of items for the given page_number.
-
abstract property
total_number_of_pages
¶ Override this @property in subclasses to state what the total number of pages is.
SequentialPageIndex¶
-
class
reahl.web.bootstrap.pagination.
SequentialPageIndex
(items, items_per_page=5, current_page_number=1, start_page_number=1, max_page_links=4)¶ A PageIndex that breaks a list of items up into smaller lists, by cutting the original list into sections that have a maximum number of items per page.
- Parameters
-
get_contents_for_page
(page_number)¶ Override this method in subclasses to obtain the correct list of items for the given page_number.
-
property
total_number_of_pages
¶ Override this @property in subclasses to state what the total number of pages is.
AnnualPageIndex¶
-
class
reahl.web.bootstrap.pagination.
AnnualPageIndex
(annual_item_organiser, current_page_number=1, start_page_number=1, max_page_links=4)¶ A PageIndex that breaks a list of items up into smaller lists, by arranging all items that have the same year on the same page.
- Parameters
-
get_contents_for_page
(page_number)¶ Override this method in subclasses to obtain the correct list of items for the given page_number.
-
property
total_number_of_pages
¶ Override this @property in subclasses to state what the total number of pages is.