Advertisement
Andrey2002951

Untitled

Oct 8th, 2020 (edited)
1,192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.44 KB | None | 0 0
  1. class Pagination():
  2.  
  3.     def __init__(self, items=[], page_size=10) -> None:
  4.         self.items = items
  5.         self.__page_size = page_size
  6.         self.__current_page = 1
  7.         # 1 -> 7
  8.         temp = len(self.items) // self.__page_size
  9.         if len(self.items) % self.__page_size == 0:
  10.             self.__page_count = 1 if not self.items else round(
  11.                 temp)
  12.         else:
  13.             self.__page_count = 1 if not self.items else round(
  14.                 temp) + 1
  15.         j = 1
  16.         self.__pages = dict()
  17.         for i in range(0, len(self.items), self.__page_size):
  18.             self.__pages[j] = self.items[i:i + self.__page_size]
  19.             j += 1
  20.  
  21.     def get_items(self):
  22.         """
  23.        Возвращает список строк
  24.        """
  25.         return self.items
  26.  
  27.     def get_page_size(self):
  28.         """
  29.        Возвращает размер страницы
  30.        """
  31.         return self.__page_size
  32.  
  33.     def get_current_page(self):
  34.         """
  35.        Возвращает текущий номер страницы.
  36.        """
  37.         return self.__current_page
  38.  
  39.     def get_visible_items(self):
  40.         """
  41.        Возвращает элементы на текущей странице.
  42.        """
  43.         return self.__pages.get(self.__current_page)
  44.  
  45.     def prev_page(self,):
  46.         """
  47.        Переход на предыдущую страницу
  48.        """
  49.         if self.__current_page == 1:
  50.             return self
  51.         self.__current_page -= 1
  52.         return self
  53.  
  54.     def next_page(self):
  55.         """
  56.        Переход на следующую страницу
  57.        """
  58.         if self.__current_page == self.__page_count:
  59.             return self
  60.         self.__current_page += 1
  61.         return self
  62.  
  63.     def first_page(self):
  64.         """
  65.        Переход на первую страницу
  66.        """
  67.         self.__current_page = 1
  68.         return self
  69.  
  70.     def last_page(self):
  71.         """
  72.        Переход на последнюю страницу
  73.        """
  74.         self.__current_page = self.__page_count
  75.         return self
  76.  
  77.     def go_to_page(self, page):
  78.         """
  79.        Переходит на конкретную страницу
  80.        """
  81.         if page > self.__page_count:
  82.             self.__current_page = self.__page_count
  83.         elif page < 1:
  84.             self.__current_page = 1
  85.         return self
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement