Added the page size to the public properties of the Pagination utility. It is used in the pagination template.
This commit is contained in:
parent
16b2eb1c93
commit
4d870f1dcc
@ -86,6 +86,8 @@ class Pagination(t.Generic[T]):
|
|||||||
"""The items shown in the list"""
|
"""The items shown in the list"""
|
||||||
self.pages: list[Link] = pagination.pages
|
self.pages: list[Link] = pagination.pages
|
||||||
"""The pages."""
|
"""The pages."""
|
||||||
|
self.page_size: int = pagination.page_size
|
||||||
|
"""The number of items in a page."""
|
||||||
self.page_size_options: list[Link] = pagination.page_size_options
|
self.page_size_options: list[Link] = pagination.page_size_options
|
||||||
"""The options to the number of items in a page."""
|
"""The options to the number of items in a page."""
|
||||||
|
|
||||||
@ -95,6 +97,8 @@ class AbstractPagination(t.Generic[T]):
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Constructs an empty pagination."""
|
"""Constructs an empty pagination."""
|
||||||
|
self.page_size: int = DEFAULT_PAGE_SIZE
|
||||||
|
"""The number of items in a page."""
|
||||||
self.is_paged: bool = False
|
self.is_paged: bool = False
|
||||||
"""Whether there should be pagination."""
|
"""Whether there should be pagination."""
|
||||||
self.list: list[T] = []
|
self.list: list[T] = []
|
||||||
@ -129,9 +133,8 @@ class NonEmptyPagination(AbstractPagination[T]):
|
|||||||
"""The current URI."""
|
"""The current URI."""
|
||||||
self.__is_reversed: bool = is_reversed
|
self.__is_reversed: bool = is_reversed
|
||||||
"""Whether the default page is the last page."""
|
"""Whether the default page is the last page."""
|
||||||
self.__page_size: int = self.__get_page_size()
|
self.page_size = self.__get_page_size()
|
||||||
"""The number of items in a page."""
|
self.__total_pages: int = int((len(items) - 1) / self.page_size) + 1
|
||||||
self.__total_pages: int = int((len(items) - 1) / self.__page_size) + 1
|
|
||||||
"""The total number of pages."""
|
"""The total number of pages."""
|
||||||
self.is_paged = self.__total_pages > 1
|
self.is_paged = self.__total_pages > 1
|
||||||
self.__default_page_no: int = self.__total_pages \
|
self.__default_page_no: int = self.__total_pages \
|
||||||
@ -139,8 +142,8 @@ class NonEmptyPagination(AbstractPagination[T]):
|
|||||||
"""The default page number."""
|
"""The default page number."""
|
||||||
self.__page_no: int = self.__get_page_no()
|
self.__page_no: int = self.__get_page_no()
|
||||||
"""The current page number."""
|
"""The current page number."""
|
||||||
lower_bound: int = (self.__page_no - 1) * self.__page_size
|
lower_bound: int = (self.__page_no - 1) * self.page_size
|
||||||
upper_bound: int = lower_bound + self.__page_size
|
upper_bound: int = lower_bound + self.page_size
|
||||||
if upper_bound > len(items):
|
if upper_bound > len(items):
|
||||||
upper_bound = len(items)
|
upper_bound = len(items)
|
||||||
self.list = items[lower_bound:upper_bound]
|
self.list = items[lower_bound:upper_bound]
|
||||||
@ -273,7 +276,7 @@ class NonEmptyPagination(AbstractPagination[T]):
|
|||||||
if not self.is_paged:
|
if not self.is_paged:
|
||||||
return []
|
return []
|
||||||
return [Link(str(x), self.__uri_size(x),
|
return [Link(str(x), self.__uri_size(x),
|
||||||
is_current=x == self.__page_size)
|
is_current=x == self.page_size)
|
||||||
for x in self.PAGE_SIZE_OPTIONS]
|
for x in self.PAGE_SIZE_OPTIONS]
|
||||||
|
|
||||||
def __uri_size(self, page_size: int) -> str:
|
def __uri_size(self, page_size: int) -> str:
|
||||||
@ -282,7 +285,7 @@ class NonEmptyPagination(AbstractPagination[T]):
|
|||||||
:param page_size: The page size.
|
:param page_size: The page size.
|
||||||
:return: The URI of the page size.
|
:return: The URI of the page size.
|
||||||
"""
|
"""
|
||||||
if page_size == self.__page_size:
|
if page_size == self.page_size:
|
||||||
return self.__current_uri
|
return self.__current_uri
|
||||||
if page_size == DEFAULT_PAGE_SIZE:
|
if page_size == DEFAULT_PAGE_SIZE:
|
||||||
return self.__uri_set("page-size", None)
|
return self.__uri_set("page-size", None)
|
||||||
|
Loading…
Reference in New Issue
Block a user